004:密碼學算法簡介|《ETH原理與智能合約開發(fā)》筆記

待字閨中開發(fā)了一門區(qū)塊鏈方面的課程:《深入淺出ETH原理與智能合約開發(fā)》,馬良老師講授趁矾。此簡書文集記錄我的學習筆記且预。

課程共8節(jié)課槽袄。其中,前四課講ETH原理锋谐,后四課講智能合約遍尺。
第一課分為四部分:

  1. 以太坊簡介
  2. 課程框架
  3. 密碼學算法簡介
  4. 實驗平臺搭建

這篇文章是第三部分的學習筆記:密碼學算法簡介。


在以太坊中主要使用了兩種密碼學的算法涮拗,單向散列函數(shù)和橢圓曲線加密算法乾戏。

1、單向散列函數(shù)

Hash函數(shù)(單向散列)是密碼學的一個重要分支三热,它是一種將任意長度的輸入變換為固定長度的輸出且不可逆的單項密碼體制鼓择,Hash函數(shù)在數(shù)字簽名和消息完整性檢測等方面有著廣泛的應用。

1.1 單向散列函數(shù)簡介

單向散列函數(shù)的特點:

  1. 任意長度的輸入數(shù)據(jù)就漾,輸出值是固定長度呐能,相當于輸入數(shù)據(jù)的指紋。
  2. 每一個特定的輸入數(shù)據(jù)都對應到一個“唯一”的輸出值抑堡。這一點摆出,可以聯(lián)想人的指紋。
  3. 從輸出值(散列值)無法反推出輸入值夷野。
  4. 在給定時間和給定計算資源的條件下懊蒸,以目前的技術水平,無法找到有同一個數(shù)據(jù)“指紋”的兩條不同的數(shù)據(jù)悯搔。
  5. 輸入數(shù)據(jù)改變 1 bit(位)骑丸,輸出結果也會產(chǎn)生巨大變化。

常見的Hash函數(shù)有MD5妒貌、SHA1通危、SHA256。其中灌曙,MD5菊碟、SHA1都已被破解,有安全隱患在刺。SHA256目前是安全的逆害。

1.2 Keccak256

由于MD5头镊、SHA系列的Hash函數(shù)遭受到了碰撞攻擊,NIST(National Institute of Standards and Technology)在2005年10月31日到11月1日和2006年8月24日至25日舉辦了兩次Hash函數(shù)研討會魄幕,評估了Hash函數(shù)當前的使用狀況相艇,征求了公眾對Hash函數(shù)的新規(guī)則。經(jīng)過討論之后纯陨,在2007年11月坛芽,NIST決定通過公開競賽,以高級加密標準AES的開發(fā)過程為范例開發(fā)新的Hash函數(shù)翼抠。經(jīng)過一系列競賽咙轩,NIST在2012年評選出最終算法并產(chǎn)生了新的Hash標準。Keccak算法由于其較強的安全性和軟硬件實現(xiàn)性能阴颖,最終被選為新一代的標準Hash算法活喊,并被命名為SHA-3。

以太坊采用的是Keccak256膘盖,也就是 SHA-3 的前身胧弛。

  • SHA256 屬于MD4 家族尤误,使用同一結構的壓縮函數(shù)引擎侠畔,所以,攻擊MD5和SHA1的方法可以被擴展损晤,用來攻擊SHA256软棺。雖然目前還沒有爆出SHA256 被攻擊成功的案例,但如果下一代單向散列函數(shù)還基于同一原理尤勋,系統(tǒng)風險會大大增加喘落。
  • Keccak 屬于完全不同的框架(海綿函數(shù)引擎),可以分散被成功攻擊的風險最冰。Keccak256軟件實現(xiàn)速度較慢瘦棋, 但是對于硬件實現(xiàn)非常友好,基于硬件的算法實現(xiàn)數(shù)據(jù)處理速度很快暖哨。
  • NIST接受原始的Keccak256設計后赌朋,更改了Padding的格式, 以太坊堅持使用了原始的方案篇裁,因為這一更改存在爭議沛慢,導致了正式的SHA3實現(xiàn)和原始的Keccak不兼容。

2达布、橢圓曲線加密算法

2.1 secp256 k1 數(shù)字簽名算法

數(shù)字簽名算法一般的框架是由非對稱密鑰算法結合單向散列函數(shù)算法構成的一個綜合解決方案团甲。

以太坊重用了比特幣所采用的非對稱密鑰算法。也就是重用了secp256k1 這條曲線黍聂,再結合了Keccak256單向散列函數(shù)算法躺苦。

用戶需要保有一對密鑰:公鑰/私鑰身腻。私鑰是最重要的,公鑰對所有人公開匹厘,同時也是生成地址 /賬戶的根據(jù)霸株。

一個以太坊外部賬號是由公鑰做Keccak256運算,取其后20位而得出集乔。其中去件,Keccak256運算得到的值為32位。公式如下:

EOA_Address=Keccak256(K_pub), LSB 20 bytes

數(shù)字簽名的特性:不可篡改扰路,不可抵賴尤溜。

2.2 數(shù)字簽名的例子

數(shù)字簽名的例子

Alice給Bob轉賬。

  1. Alice 發(fā)起一個交易
  2. 對交易做Kecca256生成其散列值
  3. Alice拿自己的私鑰對散列值簽名
  4. 將交易和簽名一起發(fā)給Bob
  5. Bob也對交易做Kecca256生成其散列值
  6. Bob再拿Alice的簽名和Alice的公鑰通過驗證算法來檢查交易汗唱,通過或失敗宫莱。

2.3 secp256 k1 的廬山真面目

(這部分先略去,在評論區(qū)放一個知乎上搜到的問答貼哩罪,作為延伸閱讀)


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末授霸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子际插,更是在濱河造成了極大的恐慌碘耳,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件框弛,死亡現(xiàn)場離奇詭異辛辨,居然都是意外死亡,警方通過查閱死者的電腦和手機瑟枫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進店門斗搞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人慷妙,你說我怎么就攤上這事僻焚。” “怎么了膝擂?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵虑啤,是天一觀的道長。 經(jīng)常有香客問我猿挚,道長咐旧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任绩蜻,我火速辦了婚禮铣墨,結果婚禮上,老公的妹妹穿的比我還像新娘办绝。我一直安慰自己伊约,他們只是感情好姚淆,可當我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著屡律,像睡著了一般腌逢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上超埋,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天搏讶,我揣著相機與錄音,去河邊找鬼霍殴。 笑死媒惕,一個胖子當著我的面吹牛,可吹牛的內容都是我干的来庭。 我是一名探鬼主播妒蔚,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼月弛!你這毒婦竟也來了肴盏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤帽衙,失蹤者是張志新(化名)和其女友劉穎菜皂,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體佛寿,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡幌墓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了冀泻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡蜡饵,死狀恐怖弹渔,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情溯祸,我是刑警寧澤肢专,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站焦辅,受9級特大地震影響博杖,放射性物質發(fā)生泄漏。R本人自食惡果不足惜筷登,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一剃根、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧前方,春花似錦狈醉、人聲如沸廉油。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抒线。三九已至,卻和暖如春渣慕,著一層夾襖步出監(jiān)牢的瞬間嘶炭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工逊桦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旱物,地道東北人。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓卫袒,卻偏偏與公主長得像宵呛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子夕凝,可洞房花燭夜當晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內容

  • 所有貨幣都需要一些方法來控制供應宝穗,并強制執(zhí)行各種安全屬性以防止作弊。在法定貨幣方面码秉,像中央銀行這樣的組織控制貨幣供...
    Nutbox_Lab閱讀 3,115評論 1 3
  • 〇逮矛、序言 貨幣由于其天然屬性決定了其與安全不可分割的聯(lián)系,從最早的金庫转砖、保險柜须鼎、鏢局到后來的ATM機、運鈔車府蔗;從存...
    怒馬2048閱讀 38,807評論 4 79
  • 前言 《圖解密碼技術》一書介紹了很多關于密碼的知識晋控,通讀一遍需要不少時間。為了方便學習姓赤,我對書中關鍵的部分進行了總...
    咖枯閱讀 7,203評論 1 25
  • 散列表,它是基于快速存取的角度設計的赡译,也是一種典型的“空間換時間”的做法。顧名思義不铆,該數(shù)據(jù)結構可以理解為一個線性表...
    yeying12321閱讀 3,695評論 0 6
  • 醒來一個下雨的早晨 我為不用800米奔跑而竊喜蝌焚。 依舊畫上最好看的眉選擇一款適合今天裝扮的口紅。 周末即將來臨誓斥。 ...
    aLTt閱讀 194評論 0 0