SHA家族
外观
此條目需要补充更多来源。 (2014年8月12日) |
安全散列演算法(英語:Secure Hash Algorithm,縮寫為SHA)是一個密碼雜湊函數家族,是FIPS所認證的安全雜湊演算法。能計算出一個數位訊息所對應到的,長度固定的字串(又稱訊息摘要)的算法。且若輸入的訊息不同,它們對應到不同字串的機率很高。
SHA家族的演算法,由美國國家安全局(NSA)所設計,並由美國國家標準與技術研究院(NIST)發佈,是美國的政府標準,其分別是:
- SHA-0:1993年发布,当时称做安全散列标准(Secure Hash Standard),发布之后很快就被NSA撤回,是SHA-1的前身。
- SHA-1:1995年发布,SHA-1在許多安全協定中廣為使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被視為是MD5(更早之前被廣為使用的雜湊函數)的後繼者。但SHA-1的安全性如今被密碼學家嚴重質疑。
- SHA-2:2001年发布,包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。雖然至今尚未出現對SHA-2有效的攻擊,它的演算法跟SHA-1基本上仍然相似;因此有些人開始發展其他替代的雜湊演算法。
- SHA-3:2015年正式发布,SHA-3並不是要取代SHA-2,因為SHA-2目前並沒有出現明顯的弱點。由於對MD5出現成功的破解,以及對SHA-0和SHA-1出現理論上破解的方法,NIST感覺需要一個與之前演算法不同的,可替換的加密雜湊演算法,也就是現在的SHA-3。
SHA函数对比
下表中的中繼雜湊值(internal state)表示對每個資料區塊壓縮雜湊過後的中繼值(internal hash sum)。
算法和变体 | 輸出雜湊值長度 (bits) |
中繼雜湊值長度 (bits) |
資料區塊長度 (bits) |
最大輸入訊息長度 (bits) |
迴圈次數 | 使用到的運算子 | 碰撞攻击 (bits) |
性能示例[2] (MiB/s) | |
---|---|---|---|---|---|---|---|---|---|
MD5(作为参考) | 128 | 128 (4 × 32) |
512 | 无限[3] | 64 | And, Xor, Rot, Add (mod 232), Or | <64 (发现碰撞) |
335 | |
SHA-0 | 160 | 160 (5 × 32) |
512 | 264 − 1 | 80 | And, Xor, Rot, Add (mod 232), Or | <80 (发现碰撞) |
- | |
SHA-1 | 160 | 160 (5 × 32) |
512 | 264 − 1 | 80 | <80 (理论攻击[4]) |
192 | ||
SHA-2 | SHA-224 SHA-256 |
224 256 |
256 (8 × 32) |
512 | 264 − 1 | 64 | And, Xor, Rot, Add (mod 232), Or, Shr | 112 128 |
139 |
SHA-384 SHA-512 SHA-512/224 SHA-512/256 |
384 512 224 256 |
512 (8 × 64) |
1024 | 2128 − 1 | 80 | And, Xor, Rot, Add (mod 264), Or, Shr | 192 256 112 128 |
154 | |
SHA-3 | SHA3-224 SHA3-256 SHA3-384 SHA3-512 |
224 256 384 512 |
1600 (5 × 5 × 64) |
1152 1088 832 576 |
无限[5] | 24[6] | And, Xor, Rot, Not | 112 128 192 256 |
- |
SHAKE128 SHAKE256 |
d (arbitrary) d (arbitrary) |
1344 1088 |
min(d/2, 128) min(d/2, 256) |
- |
SHAd
SHAd函數是一個簡單的相同SHA函數的重述:
SHAd-256(m)=SHA-256(SHA-256(m))。它會克服有關延伸長度攻擊的問題。
應用
SHA-1, SHA-224, SHA-256, SHA-384和SHA-512都被需要安全雜湊演算法的美國聯邦政府所應用,他們也使用其他的密碼演算法和協定來保護敏感的未保密資料。FIPS PUB 180-1也鼓勵私人或商業組織使用SHA-1加密。Fritz-chip將很可能使用SHA-1雜湊函數來實現個人電腦上的數位版權管理。
首先推動安全雜湊演算法出版的是已合併的數位簽章標準。
参考文献
引用
- ^ Crypto++ 5.6.0 Benchmarks. [2013-06-13].
- ^ Found on an AMD Opteron 8354 2.2 GHz processor running 64-bit Linux[1]
- ^ The MD5 Message-Digest Algorithm. [2016-04-18].
- ^ The SHAppening: freestart collisions for SHA-1. [2015-11-05].
- ^ The Sponge Functions Corner. [2016-01-27].
- ^ The Keccak sponge function family. [2016-01-27].
来源
- Eli Biham, Rafi Chen, Near-Collisions of SHA-0, Cryptology ePrint Archive, Report 2004/146, 2004 (to appear CRYPTO 2004) [1]
- Florent Chabaud, Antoine Joux: Differential Collisions in SHA-0. CRYPTO 1998. pp. 56–71.
- Henri Gilbert, Helena Handschuh: Security Analysis of SHA-256 and Sisters. Selected Areas in Cryptography 2003: pp. 175–193.
外部链接
- FIPS PUB 180-2,安全雜湊標準
- RFC 3174,美國安全雜湊演算法1(SHA1)
- 這個Javascript SHA-1計算機會展示計算過程中的中繼值
參見
|