keccak和sha3的區別


keccak應用

在以太坊中,用keccak哈希算法來計算公鑰的256位哈希,再截取這256位哈希的后160位哈希作為地址值。

keccak和sha3的區別

sha3由keccak標准化而來,在很多場合下Keccak和SHA3是同義詞,但在2015年8月SHA3最終完成標准化時,NIST調整了填充算法:SHA3-256(M) = KECCAK [512] (M || 01, 256)。所以標准的NIST-SHA3就和keccak計算的結果不一樣。
以太坊在開發的時候sha3還在標准化中,所以采用了keccak,所以Ethereum和Solidity智能合約代碼中的SHA3是指Keccak256,而不是標准的NIST-SHA3,為了避免混淆,直接在合約代碼中寫成Keccak256是最清晰的

為何推出sha3

推出sha3不是因為sha2出現了漏洞,只是當時學術界對於sha1被成功碰撞的擔憂,但目前基於NIST的建議,sha2和sha3都是屬於可以安全商用的哈希算法,sha3相當於多了一種安全選擇,比特幣選用的就是sha2(SHA256)。

Which cryptographic hash function does Ethereum use?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM