比特幣的加密本質: 雜湊函式是什麼?

買賣虛擬貨幣
什麼是雜湊?加密雜湊函式是在數字資料上執行的數學運算。在比特幣中,所有操作都使用SHA256作為底層加密雜湊函式。安全雜湊演算法是由美國國家安全域性(NSA)設計的一套加密雜湊函式。簡單地說,雜湊函式就像一個黑盒子,在這裡輸入任何大小的數字資訊,結果(輸出)是一個字母數字字串(例如:0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855)。對於SHA-256,輸出是32位元組。該函式有兩個特點:1)毫不含糊:雜湊 (輸出)就像輸入資料的指紋。因此,從數字輸入的雜湊中,您無法建立原始數字輸入。

2)抗衝突:任何人都不可能能夠找到導致相同雜湊輸出的兩個不同輸入值。換句話說,對於任何不同的輸入,總會有不同的輸出。這允許使用這個函式來檢查資料完整性,透過將計算的“雜湊”(演算法執行的輸出)與已知和期望的雜湊進行比較,可以確定資料的完整性。例如,計算下載檔案的雜湊,並將結果與之前釋出的雜湊進行比較,可以顯示下載是否被修改或篡改。

但是為什麼雜湊在區塊鏈中如此重要呢?

這是挖礦過程和礦工職責的一部分: 礦工獲取一些交易並將其用作輸入的一部分,他們試圖計算一個雜湊函式來為鏈提供一個新的塊。

加密雜湊演算法有很多。下面列出了一些相對經常被引用的演算法。可以在包含加密雜湊函式比較的頁面上找到更廣泛的列表。

MD5

MD5是由Ronald Rivest在1991年設計的,用於替換以前的雜湊函式MD4,並在1992年指定為RFC 1321。對MD5的衝突可以在幾秒鐘內計算出來,這使得該演算法不適合大多數需要加密雜湊的用例。MD5生成128位(16位元組)。

SHA-1

SHA-1是美國政府Capstone專案的一部分。該演算法的最初規範——現在通常稱為SHA-0——由美國政府標準機構NIST(國家標準與技術研究所)於1993年以“安全雜湊標準FIPS PUB 180”的名義釋出。它在出版後不久就被美國國家安全域性撤回,並被1995年在FIPS PUB 180-1(通常稱為SHA-1)上出版的修訂版所取代。SHA-1生成一個160位(20位元組)的雜湊。

文件可能只將SHA-1稱為“SHA”,這可能與其他標準雜湊演算法(如SHA-0、SHA-2和SHA-3)相沖突。

RIPEMD - 160

RIPEMD (RACE Integrity Primitives Evaluation Message Digest)是由比利時魯汶大學(Katholieke Universiteit Leuven) COSIC研究小組的Hans Dobbertin、Antoon Bosselaers和Bart Preneel在魯汶開發的一個加密雜湊函式,於1996年首次出版。RIPEMD基於MD4中使用的設計原則,其效能類似於更流行的SHA-1。然而,RIPEMD-160並沒有被破壞。顧名思義,RIPEMD-160生成160位(20位元組)的雜湊。

Whirlpool

在電腦科學和密碼學中,Whirlpool是一個加密雜湊函式。它是由Vincent Rijmen和Paulo s.l. M. Barreto設計的,他們在2000年首次描述了它。Whirlpool是基於一個基本修改版本的高階加密標準(AES)。Whirlpool生成一個512位(64位元組)的雜湊。

SHA-2

SHA-2(安全雜湊演算法2)是由美國國家安全域性(NSA)設計的一組加密雜湊函式,於2001年首次釋出。它們是使用merker - damgard結構(來自單向壓縮函式本身)構建的,使用分類的專用塊密碼器中使用的Davies結構來構建。

SHA-2基本上由兩種雜湊演算法組成:SHA-256和SHA-512。SHA-224是SHA-256的一個變體,具有不同的初始值和截斷的輸出。SHA-384和不太為人所知的SHA-512/224和SHA-512/256都是SHA-512的變形。在AMD64等64位上,SHA-512比SHA-256更安全,而且通常比SHA-256更快。

以位為單位的輸出大小由“SHA”名稱的副檔名給出,因此SHA-224的輸出大小為224位(28位元組),SHA-256生成32位元組,SHA-384生成48位元組,最後SHA-512生成64位元組。

SHA-3

SHA-3 (Secure Hash Algorithm 3)於2015年8月5日由NIST釋出。SHA-3是更廣泛的Keccak的一個子集。Keccak演算法是Guido Bertoni、Joan Daemen、Michael Peeters和Gilles Van Assche的成果。Keccak基於sponge 結構,sponge 結構還可以用於構建其他加密原語,如流cypher。SHA-3提供與SHA-2相同的輸出大小:224、256、384和512位。

還可以使用SHAKE-128和SHAKE-256函式獲得可配置的輸出大小。這裡名稱的-128和-256擴充套件表示函式的安全強度,而不是以位為單位的輸出大小。

BLAKE2

2012年12月21日,布萊克的改版產品BLAKE2釋出。它是由Jean-Philippe Aumasson、Samuel Neves、Zooko Wilcox-O 'Hearn和Christian Winnerlein建立的,目標是取代廣泛使用的MD5和SHA-1演算法。當執行在64x64和ARM架構上時,BLAKE2b比SHA-3、SHA-2、SHA-1和MD5更快。儘管BLAKE和BLAKE2還沒有被標準化為SHA-3,但它已經在許多協議中使用,包括argon2加密雜湊,因為它在現代cpu上提供了很高的效率。由於BLAKE是SHA-3的候選物件,BLAKE和BLAKE2都提供了與SHA-3相同的輸出大小——包括可配置的輸出大小。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;