编辑“︁
SHA-1
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
== SHA-0和SHA-1 == [[File:SHA-1.svg|thumbnail|right|300px|SHA-1壓縮演算法中的一個迴圈。A, B, C, D和E是這個state中的32位元文字;''F''是會變化的非線性函數;<<<<sub>n</sub>代表bit向左循環移動n個位置。n因操作而異。田代表modulo 2<sup>32</sup>之下的加法。K<sub>t</sub>是一個常數。W<sub>t</sub>代表经过拓展后的原文。]] 最初載明的演算法於1993年發佈,稱做安全雜湊標準(Secure Hash Standard),[[联邦资料处理标准|FIPS]] PUB 180。這個版本現在常被稱為SHA-0。它在發佈之後很快就被NSA撤回,並且由1995年發佈的修訂版本FIPS PUB 180-1(通常稱為SHA-1)取代。SHA-1和SHA-0的演算法只在壓縮函數的訊息轉換部份差了一個位元的循環位移。根據NSA的說法,它修正了一個在原始演算法中會降低雜湊安全性的弱點。然而NSA並沒有提供任何進一步的解釋或證明該弱點已被修正。而後SHA-0和SHA-1的弱點相繼被攻破,SHA-1似乎是顯得比SHA-0有抵抗性,這多少證實了NSA當初修正演算法以增進安全性的聲明。 SHA-0和SHA-1可將一個最大2<sup>64</sup>位元的訊息,轉換成一串160位元的訊息摘要;其設計原理相似於MIT教授[[Ron Rivest|Ronald L. Rivest]]所設計的密碼學雜湊演算法[[MD4]]和[[MD5]]。 === SHA-0的破解 === 在[[CRYPTO]] 98上,兩位法國研究者提出一種對SHA-0的攻擊方式<ref>Chabaud and Joux, 1998</ref>:在2<sup>61</sup>的計算複雜度之內,就可以發現一次碰撞(即兩個不同的訊息對應到相同的訊息摘要);這個數字小於[[生日攻擊|生日攻擊法]]所需的2<sup>80</sup>,也就是說,存在一種演算法,使其安全性不到一個理想的雜湊函數抵抗攻擊所應具備的計算複雜度。 2004年時,[[Eli Biham|Biham]]和Chen也發現了SHA-0的近似碰撞,也就是兩個訊息可以雜湊出幾乎相同的數值;其中162位元中有142位元相同。他們也發現了SHA-0的完整碰撞(相對於近似碰撞),將本來需要80次方的複雜度降低到62次方。 2004年8月12日,Joux, Carribault, Lemuet和Jalby宣佈找到SHA-0演算法的完整碰撞的方法,這是歸納Chabaud和Joux的攻擊所完成的結果。發現一個完整碰撞只需要2<sup>51</sup>的計算複雜度。他們使用的是一台有256顆[[Itanium#Itanium2|Itanium2]]處理器的[[超級電腦]],約耗80,000 CPU工時。 2004年8月17日,在[[CRYPTO]] 2004的Rump會議上,[[王小雲]],[[馮登國]](Feng)、[[來學嘉]](Lai),和[[于紅波]](Yu)宣佈了攻擊[[MD5]]、SHA-0和其他[[雜湊函數]]的初步結果。他們攻擊SHA-0的計算複雜度是2<sup>40</sup>,這意味的他們的攻擊成果比Joux還有其他人所做的更好。請參見[[MD5#Security|MD5安全性]]。 2005年二月,[[王小雲]]和[[殷益群]]、[[于紅波]]再度發表了對SHA-0破密的演算法,可在2<sup>39</sup>的計算複雜度內就找到碰撞。 === SHA-1的破解 === 鑒於SHA-0的破密成果,專家們建議那些計劃利用SHA-1實作密碼系統的人們也應重新考慮。在2004年[[CRYPTO]]會議結果公佈之後,NIST即宣布他們將逐漸減少使用SHA-1,改以SHA-2取而代之。 2005年,[[Rijmen]]和[[Oswald]]發表了對SHA-1較弱版本(53次的加密迴圈而非80次)的攻擊:在2<sup>80</sup>的計算複雜度之內找到碰撞。 2005年二月,[[王小雲]]、[[殷益群]]及[[于紅波]]發表了對完整版SHA-1的攻擊,只需少於2<sup>69</sup>的計算複雜度,就能找到一組碰撞。(利用[[生日攻擊|生日攻擊法]]找到碰撞需要2<sup>80</sup>的計算複雜度。) 這篇論文的作者們寫道;「我們的破密分析是以對付SHA-0的[[差分攻擊]]、近似碰撞、多區塊碰撞技術、以及從[[MD5]]演算法中尋找碰撞的訊息更改技術為基礎。沒有這些強力的分析工具,SHA-1就無法破解。」此外,作者還展示了一次對58次加密迴圈SHA-1的破密,在2<sup>33</sup>個單位操作內就找到一組碰撞。完整攻擊方法的論文發表在2005年八月的[[CRYPTO]]會議中。 殷益群在一次面談中如此陳述:「大致上來說,我們找到了兩個弱點:其一是前置處理不夠複雜;其二是前20個迴圈中的某些數學運算會造成不可預期的安全性問題。」 2005年8月17日的[[CRYPTO]]會議尾聲中[[王小雲]]、[[姚期智]]、[[姚儲楓]]再度發表更有效率的SHA-1攻擊法,能在2<sup>63</sup>個計算複雜度內找到碰撞。 2006年的[[CRYPTO]]會議上,[[Christian Rechberger]]和[[Christophe De Cannière]]宣布他們能在容許攻擊者決定部分原訊息的條件之下,找到SHA-1的一個碰撞。 在密碼學的學術理論中,任何攻擊方式,其計算複雜度若少於暴力搜尋法所需要的計算複雜度,就能被視為針對該密碼系統的一種破密法;但這並不表示該破密法已經可以進入實際應用的階段。 就應用層面的考量而言,一種新的破密法出現,暗示着將來可能會出現更有效率、足以實用的改良版本。雖然這些實用的破密法版本根本還沒誕生,但確有必要發展更強的雜湊演算法來取代舊的演算法。在「碰撞」攻擊法之外,另有一種反譯攻擊法(Pre-image attack),就是由雜湊出的字串反推原本的訊息;反譯攻擊的嚴重性更在碰撞攻擊之上,但也更困難。在許多會應用到密碼雜湊的情境(如用戶密碼的存放、文件的[[數位簽章]]等)中,碰撞攻擊的影響並不是很大。舉例來說,一個攻擊者可能不會只想要偽造一份一模一樣的文件,而會想改造原來的文件,再附上合法的簽章,來愚弄持有公钥的驗證者。另一方面,如果可以從密文中反推未加密前的使用者密碼,攻擊者就能利用得到的密碼登入其他使用者的帳戶,而這種事在密碼系統中是不能被允許的。但若存在反譯攻擊,只要能得到指定使用者密碼雜湊過後的字串(通常存在影檔中,而且可能不會透露原密碼資訊),就有可能得到該使用者的密碼。 2017年2月23日,Google公司宣布,他们与CWI Amsterdam合作创建了两个有着相同SHA-1值但内容不同的PDF文件,这代表SHA-1演算法已被正式攻破。<ref>{{Cite blog|url=https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html|title=Announcing the first SHA1 collision|date=2017-02-23|website=Google Online Security Blog|accessdate=2017-02-24|archive-date=2017-04-24|archive-url=https://web.archive.org/web/20170424012912/https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html|dead-url=no}}</ref> 2020年,針對SHA-1的选择前缀冲突攻击已經實際可行。建議盡可能用[[SHA-2]]或[[SHA-3]]取代SHA-1。在[[數位簽章]]領域,用更安全的[[SHA-2]]或[[SHA-3]]替換SHA-1已經變得急迫。<ref name="#1"/><ref name="#2"/>
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息