SHA家族

安全散列演算法(英語: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-3:2015年正式发布,由於對MD5出現成功的破解,以及對SHA-0和SHA-1出現理論上破解的方法,NIST感覺需要一個與之前演算法不同的,可替換的加密雜湊演算法,也就是現在的SHA-3。

SHA函数对比

下表中的中繼雜湊值(internal state)表示對每個資料區塊壓縮雜湊過後的中繼值(internal hash sum)。

SHA函数对比
算法和变体 輸出雜湊值長度
(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))。它會克服有關延伸長度攻擊的問題。

参考文献

引用

  1. ^ SHAttered. shattered.it. [2017-02-24]. (原始内容存档于2017-02-23) (英语). 
  2. ^ Crypto++ 5.6.0 Benchmarks. [2013-06-13]. (原始内容存档于2016-10-14). 
  3. ^ Found on an AMD Opteron 8354 2.2 GHz processor running 64-bit Linux[2]
  4. ^ The MD5 Message-Digest Algorithm. [2016-04-18]. (原始内容存档于2017-04-26). 
  5. ^ The SHAppening: freestart collisions for SHA-1. [2015-11-05]. (原始内容存档于2017-04-19). 
  6. ^ Announcing the first SHA1 collision. 2017-02-23 [2017-02-23]. (原始内容存档于2017-04-24). 
  7. ^ The Sponge Functions Corner. [2016-01-27]. (原始内容存档于2012-09-04). 
  8. ^ The Keccak sponge function family. [2016-01-27]. (原始内容存档于2016-08-06). 

来源

  • 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計算機會展示計算過程中的中繼值(页面存档备份,存于互联网档案馆
  • SHA-256在线格计算工具

參見

  • 信息技术主题
  • 计算机科学主题
 
常用函数
SHA-3入围英语NIST hash function competition
  • BLAKE
  • Grøstl
  • JH英语JH (hash function)
  • Skein英语Skein (hash function)
  • Keccak(胜出)
其他函数
  • ECOH英语Elliptic curve only hash
  • FSB英语Fast Syndrome Based Hash
  • GOST英语GOST (hash function)
  • HAS-160英语HAS-160
  • HAVAL英语HAVAL
  • Kupyna英语Kupyna
  • LM hash英语LM hash
  • MD2英语MD2 (cryptography)
  • MD4
  • MD6
  • MDC-2英语MDC-2
  • N-Hash英语N-Hash
  • RIPEMD
  • RadioGatún英语RadioGatún
  • SWIFFT英语SWIFFT
  • SipHash英语SipHash
  • Snefru英语Snefru
  • Streebog英语Streebog
  • Tiger英语Tiger (cryptography)
  • VSH英语Very smooth hash
  • WHIRLPOOL英语Whirlpool (cryptography)
  • SM3
  • X11
密码散列/
密钥延伸函数
  • Argon2
  • Balloon
  • bcrypt
  • Catena英语Catena (cryptography)
  • crypt(3)英语Crypt (C) (DES)
  • LM散列英语LAN Manager#LM hash details
  • Lyra2
  • Makwa英语Makwa (cryptography)
  • PBKDF2
  • scrypt
  • yescrypt
通用
密钥派生函数
  • HKDF
  • KDF1/KDF2
MAC算法
  • DAA英语Data Authentication Algorithm
  • CBC-MAC英语CBC-MAC
  • HMAC
  • OMAC英语One-key MAC/CMAC英语CMAC
  • PMAC英语PMAC (cryptography)
  • VMAC英语VMAC
  • UMAC英语UMAC
  • Poly1305
认证加密模式
攻击
设计
  • 雪崩效应
  • 碰撞
  • 默克尔-达姆加德结构英语Merkle–Damgård construction
标准化
  • CRYPTREC英语CRYPTREC
  • NESSIE英语NESSIE
  • NIST散列函数竞赛英语NIST hash function competition
实际应用
  • 分类 分类
  • 主题 主题
  • 专题 专题