安全雜湊演算法(英語:Secure Hash Algorithm,縮寫為SHA)是一個密碼雜湊函數家族,是FIPS所認證的安全雜湊演算法。能計算出一個數碼訊息所對應到的,長度固定的字串(又稱訊息摘要)的演算法。且若輸入的訊息不同,它們對應到不同字串的概率很高。
SHA家族的演算法,由美國國家安全域(NSA)所設計,並由美國國家標準與技術研究院(NIST)發佈,是美國的政府標準,其分別是:
- SHA-0:1993年發佈,當時稱做安全雜湊標準(Secure Hash Standard),發佈之後很快就被NSA撤回,是SHA-1的前身。
- SHA-1:1995年發佈,SHA-1在許多安全協定中廣為使用,包括TLS、GnuPG、SSH、S/MIME和IPsec,是MD5的後繼者。但SHA-1的安全性在2010年以後已經不被大多數的加密場景所接受。2017年荷蘭密碼學研究小組CWI和Google正式宣佈攻破了SHA-1[1]。
- SHA-2:2001年發佈,包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。SHA-2目前沒有出現明顯的弱點。雖然至今尚未出現對SHA-2有效的攻擊,但它的演算法跟SHA-1基本上仍然相似。
SHA函數對比
下表中的中繼雜湊值(internal state)表示對每個資料區塊壓縮雜湊過後的中繼值(internal hash sum)。
演算法和變體 | 輸出雜湊值長度 (bits) |
中繼雜湊值長度 (bits) |
資料區塊長度 (bits) |
最大輸入訊息長度 (bits) |
迴圈次數 | 使用到的運算子 | 碰撞攻擊 (bits) |
效能範例[3] (MiB/s) | |
---|---|---|---|---|---|---|---|---|---|
MD5(作為參考) | 128 | 128 (4 × 32) |
512 | 無限[4] | 64 | And, Xor, Rot, Add (mod 232), Or | ≤18 (發現碰撞) |
335 | |
SHA-0 | 160 | 160 (5 × 32) |
512 | 264 − 1 | 80 | And, Xor, Rot, Add (mod 232), Or | <34 (發現碰撞) |
- | |
SHA-1 | 160 | 160 (5 × 32) |
512 | 264 − 1 | 80 | <63[5] (發現碰撞[6]) |
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 |
無限[7] | 24[8] | 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))。它會克服有關延伸長度攻擊的問題。
參考文獻
外部連結
參見
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.