SHA家族

安全散列演算法（，縮寫為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。

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）。

SHAd 

SHAd函數是一個簡單的相同SHA函數的重述：

SHAd-256(m)=SHA-256(SHA-256(m))。它會克服有關延伸長度攻擊的問題。

参考文献

引用

来源 
 Eli Biham, Rafi Chen, Near-Collisions of SHA-0, Cryptology ePrint Archive, Report 2004/146, 2004 (to appear CRYPTO 2004) 
 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在线格计算工具

參見 

 编码
 密码学
 加密技术
 演算法
 图灵机
 图灵归约
 交互式证明系统
 隨機預言機
 MD5

密码散列函数