安全散列演算法(,縮寫為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) [http://eprint.iacr.org/2004/146/]
- 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.
外部链接
- [https://web.archive.org/web/20021212213605/http://csrc.nist.gov/encryption/tkhash.html FIPS PUB 180-2],安全雜湊標準
- [http://www.ietf.org/rfc/rfc3174.txt RFC 3174],美國安全雜湊演算法1(SHA1)
- [http://www.cs.eku.edu/faculty/styer/460/Encrypt/JS-SHA1.html 這個Javascript SHA-1計算機會展示計算過程中的中繼值]
- [https://web.archive.org/web/20180620001154/https://passwordsgenerator.pro/sha256 SHA-256在线格计算工具]
參見
- 编码
- 密码学
- 加密技术
- 演算法
- 图灵机
- 图灵归约
- 交互式证明系统
- 隨機預言機
- MD5
评论 (0)