(Translated by https://www.hiragana.jp/)
SHA-1 - 维基百科,自由的百科全书 とべ转到内容ないよう

SHA-1

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
重定しげさだこうSHA-0
SHA-1
がいじゅつ
设计しゃ美国びくに国家こっか安全あんぜんきょく
くび发布1993ねん(SHA-0)
1995ねん(SHA-1)
系列けいれつ安全あんぜんれつ算法さんぽう家族かぞく
认证FIPS PUB 180-4,CRYPTRECえいCRYPTREC(监测)
みつ码细节
摘要てきよう长度160もと
ぶん组长512もと
结构Merkle–Damgård结构えいMerkle–Damgård construction
じゅう复回すう80
さいけいおおやけやぶかい
2011ねん,Marc Stevensてきおさむ击,以通过复杂度260.3いたり265.3てき操作そうさ产生れつ碰撞。[1]2017ねん2がつ23にちしゅおおやけ开碰撞。[2]SHA-1容易ようい受到长度扩展おさむ

SHA-1英語えいごSecure Hash Algorithm 1ちゅう文名ぶんめい安全あんぜんれつ算法さんぽう1)いちみつ码散れつ函数かんすう美国びくに国家こっか安全あんぜんきょく设计,并由美国びくに國家こっか標準ひょうじゅん技術ぎじゅつ研究所けんきゅうじょ(NIST)发布为聯邦れんぽう資料しりょう處理しょり標準ひょうじゅん(FIPS)[3]。SHA-1生成せいせい一个被称为消息摘要的160くらい(20れつ值,れつ通常つうじょうてきてい现形しき为40个じゅうろく进制かず

2005ねんみつ分析ぶんせきじん员发现了对SHA-1てき有效ゆうこうおさむ击方ほう,这表明ひょうめい该算ほう可能かのう安全あんぜん不能ふのう继续使用しよう[4]2010ねん以来いらい,许多组织けん议用SHA-2あるSHA-3らいがえ换SHA-1[5][6][7]Microsoft[8]Google[9]以及Mozilla[10][11][12]宣布せんぷ,它们旗下きかてき浏览はたざい2017ねん停止ていし接受せつじゅ使用しようSHA-1算法さんぽう签名てきSSL证书

2017ねん2がつ23にちCWI AmsterdamえいCWI AmsterdamあずかGoogle宣布せんぷりょういち成功せいこうてきSHA-1碰撞おさむえいCollision_attack[13][14],发布りょう两份内容ないよう不同ふどうただしSHA-1れつ值相どうてきPDFぶんけんさく概念がいねん证明。[15]

2020ねんはりたいSHA-1てき选择ぜん缀冲突攻击已けい實際じっさいぎょう建議けんぎつき可能かのうようSHA-2あるSHA-3がわSHA-1[16][17]

SHA-0SHA-1

[编辑]
SHA-1壓縮あっしゅく演算えんざんほうちゅうてきいち迴圈。A, B, C, DE這個stateちゅうてき32もと文字もじFかい變化へんかてきせんせい函數かんすう;<<<n代表だいひょうbitこうひだり循環じゅんかん移動いどうn位置いち。nいん操作そうさ而異。代表だいひょうmodulo 232これてき加法かほう。Ktいち常數じょうすう。Wt代表だいひょう经过つぶせてんきさきてき原文げんぶん

最初さいしょあきらてき演算えんざんほう於1993ねんはつ佈,しょう做安ぜんざつみなと標準ひょうじゅん(Secure Hash Standard),FIPS PUB 180。這個版本はんぽん現在げんざいつねしょうためSHA-0。它在はつ佈之很快就被NSA撤回てっかいなみ且由1995ねんはつ佈的修訂しゅうてい版本はんぽんFIPS PUB 180-1(通常つうじょうしょうためSHA-1)だい。SHA-1SHA-0てき演算えんざんほうただざい壓縮あっしゅく函數かんすうてき訊息轉換てんかん份差りょう一個位元的循環位移。根據こんきょNSAてき說法せっぽう,它修正しゅうせいりょう一個在原始演算法中會降低雜湊安全性的弱點。しか而NSAなみぼつゆう提供ていきょうにんなんしん一步的解釋或證明該弱點已被修正。而後SHA-0SHA-1てき弱點じゃくてんしょうまましおさむやぶ,SHA-1乎是あらわとくSHA-0ゆう抵抗ていこうせい,這多少たしょうしょうじつりょうNSA當初とうしょ修正しゅうせい演算えんざんほう增進ぞうしん安全あんぜんせいてき聲明せいめい

SHA-0SHA-1しょういち最大さいだい264もとてき訊息,轉換てんかんなりいちくし160もとてき訊息摘要てきよう;其設けい原理げんり相似そうじ於MIT教授きょうじゅRonald L. Rivestところ設計せっけいてきみつ碼學ざつみなと演算えんざんほうMD4MD5

SHA-0てきやぶかい

[编辑]

ざいCRYPTO 98じょうりょうほうこく研究けんきゅうしゃ提出ていしゅついちしゅたいSHA-0てき攻擊こうげき方式ほうしき[18]ざい261てき計算けいさん複雜ふくざつ內,就可以發現はつげんいち碰撞(そく兩個りゃんこ不同ふどうてき訊息對應たいおういたあいどうてき訊息摘要てきよう);這個數字すうじしょうなまにち攻擊こうげきほうところ需的280,也就せつ存在そんざいいちしゅ演算えんざんほう使つかい安全あんぜんせいいた一個理想的雜湊函數抵抗攻擊所應具備的計算複雜度。

2004ねんBihamかずChen也發現はつげんりょうSHA-0てき近似きんじ碰撞,也就兩個りゃんこ訊息以雜みなといずるいく乎相どうてきすう值;其中162もと中有ちゅうう142もとしょうどう們也發現はつげんりょうSHA-0てきかんせい碰撞(相對そうたい近似きんじ碰撞),はた本來ほんらい需要じゅよう80かたてき複雜ふくざつくだていいた62かた

2004ねん8がつ12にち,Joux, Carribault, LemuetJalbyせん佈找到SHA-0演算えんざん法的ほうてきかんせい碰撞てき方法ほうほう,這是歸納きのうChabaudJouxてき攻擊こうげきしょ完成かんせいてき結果けっか發現はつげん一個完整碰撞只需要251てき計算けいさん複雜ふくざつ使用しようてきいちだいゆう256顆Itanium2處理しょりてきちょうきゅう電腦でんのうやく耗80,000 CPUこう

2004ねん8がつ17にちざいCRYPTO 2004てきRump會議かいぎじょうおうしょうくも馮登こく(Feng)、がくよしみ(Lai),于紅(Yu)せん佈了攻擊こうげきMD5、SHA-0其他ざつみなと函數かんすうてき初步しょほ結果けっか們攻げきSHA-0てき計算けいさん複雜ふくざつ240,這意味いみてき們的攻擊こうげき成果せいかJouxかえゆう他人たにんしょ做的さらこのみ。請參MD5安全あんぜんせい

2005ねんがつおうしょうくもいんえきぐん于紅再度さいど發表はっぴょうりょうたいSHA-0やぶみつてき演算えんざんほうざい239てき計算けいさん複雜ふくざつ內就找到碰撞。

SHA-1てきやぶかい

[编辑]

鑒於SHA-0てきやぶみつ成果せいかせん建議けんぎ些計劃利用りようSHA-1さくみつ系統的けいとうてきじん們也おうおもしん考慮こうりょざい2004ねんCRYPTO會議かいぎ結果けっかおおやけ佈之,NISTそく宣布せんぷ們將逐漸減少げんしょう使用しようSHA-1,あらため以SHA-2而代

2005ねんRijmenOswald發表はっぴょうりょうたいSHA-1較弱版本はんぽん(53てきみつ迴圈而非80てき攻擊こうげきざい280てき計算けいさん複雜ふくざつ內找到碰撞。

2005ねんがつおうしょうくもいんえきぐん于紅發表はっぴょうりょうたいかんせいばんSHA-1てき攻擊こうげきただ需少於269てき計算けいさん複雜ふくざつ,就能找到いちくみ碰撞。(利用りようなまにち攻擊こうげきほう找到碰撞需要じゅよう280てき計算けいさん複雜ふくざつ。)

這篇論文ろんぶんてき作者さくしゃ們寫どう;「わが們的やぶみつ分析ぶんせき以對づけSHA-0てき差分さぶん攻擊こうげき近似きんじ碰撞、おおかたまり碰撞技術ぎじゅつ、以及したがえMD5演算えんざんほうちゅうひろ找碰撞的訊息更改こうかい技術ぎじゅつため基礎きそぼつゆう這些強力きょうりょくてき分析ぶんせき工具こうぐ,SHA-1就無ほうやぶかい。」此外,作者さくしゃかえ展示てんじりょういちたい58みつ迴圈SHA-1てきやぶみつざい233單位たんい操作そうさ內就找到いちくみ碰撞。かんせい攻擊こうげき方法ほうほうてき論文ろんぶん發表はっぴょうざい2005ねんはちがつてきCRYPTO會議かいぎちゅう

いんえきぐんざいいち面談めんだんちゅう如此陳述ちんじゅつ:「だい致上らいせつわが們找到りょう兩個りゃんこ弱點じゃくてん:其一是前置處理不夠複雜;其二そのじまえ20迴圈ちゅうてきぼう些數がく運算うんざんかい造成ぞうせい不可ふかあずかてき安全あんぜんせい問題もんだい。」

2005ねん8がつ17にちてきCRYPTO會議かいぎごえちゅうおうしょうくも姚期さとし姚儲かえで再度さいど發表はっぴょうさら有效ゆうこうりつてきSHA-1攻擊こうげきほうのうざい263計算けいさん複雜ふくざつ內找到碰撞。

2006ねんてきCRYPTO會議かいぎじょうChristian RechbergerChristophe De Cannière宣布せんぷ們能ざいようもと攻擊こうげきしゃ決定けってい部分ぶぶんげん訊息てき條件じょうけんした,找到SHA-1てきいち碰撞。

ざいみつ碼學てき學術がくじゅつ理論りろんちゅうにんなん攻擊こうげき方式ほうしき,其計算けいさん複雜ふくざつわかしょう於暴りょくさがせひろほうしょ需要じゅようてき計算けいさん複雜ふくざつ,就能ためはりたい該密碼系統けいとうてき一種破密法;ただし這並表示ひょうじ該破みつほうやめけい進入しんにゅう實際じっさい應用おうようてき階段かいだん

應用おうようそうめんてき考量こうりょう而言,一種新的破密法出現,暗示あんじ將來しょうらい可能かのうかい出現しゅつげんさら有效ゆうこうりつあし實用じつようてき改良かいりょう版本はんぽん。雖然這些實用じつようてきやぶみつほう版本はんぽん根本こんぽんかえぼっ誕生たんじょうただしかくゆう必要ひつよう發展はってんさら強的ごうてきざつみなと演算えんざんほうらいだいきゅうてき演算えんざんほうざい「碰撞」攻擊こうげきほうそと,另有いちしゅ反譯はんやく攻擊こうげきほう(Pre-image attack),就是よしざつみなといずるてきくしはん原本げんぽんてき訊息;反譯はんやく攻擊こうげきてき嚴重げんじゅうせいさらざい碰撞攻擊こうげきうえただし也更困難こんなんざい許多きょたかい應用おうよういたみつ碼雜みなとてきじょうさかい(如用みつ碼的そんぶんけんてきすう簽章ひとしちゅう,碰撞攻擊こうげきてき影響えいきょうなみ很大。舉例らいせつ,一個攻擊者可能不會只想要偽造一份一模一樣的文件,而會そう改造かいぞうばららいてきぶんけんさいじょう合法ごうほうてき簽章,らい愚弄ぐろうゆうこう钥的けんしょうしゃ。另一方面ほうめん,如果以從みつ文中ぶんちゅうはん推未みつまえてき使用しようしゃみつ碼,攻擊こうげきしゃ就能利用りよういたてきみつ碼登にゅう其他使用しようしゃてきとばり,而這しゅごとざいみつ系統けいとうちゅう不能ふのう允許いんきょてきただしわか存在そんざい反譯はんやく攻擊こうげきただようのういた指定してい使用しようしゃみつ碼雜みなとこうてきくし通常つうじょう存在そんざいかげ檔中,而且可能かのうかいとおるはらひそか碼資訊),就有可能かのういた使用しようしゃてきみつ碼。

2017ねん2がつ23にち,Google公司こうし宣布せんぷ们与CWI Amsterdam合作がっさく创建りょう两个ゆうしょうどうSHA-1值但内容ないよう不同ふどうてきPDFぶんけん,这代表だいひょうSHA-1演算えんざんほうやめ正式せいしきおさむやぶ[19]

2020ねんはりたいSHA-1てき选择ぜん缀冲突攻击已けい實際じっさいぎょう建議けんぎつき可能かのうようSHA-2あるSHA-3がわSHA-1ざいすう簽章領域りょういきようさら安全あんぜんてきSHA-2あるSHA-3かえかわSHA-1やめけいへんとく急迫きゅうはく[16][17]

SHA-1演算えんざんほう

[编辑]

以下いかSHA-1演算えんざんほうてき伪代码

Note: All variables are unsigned 32 bits and wrap modulo 232 when calculating
Initial variables:
h0 := 0x67452301
h1 := 0xEFCDAB89
h2 := 0x98BADCFE
h3 := 0x10325476
h4 := 0xC3D2E1F0
Pre-processing:
append the bit '1' to the message
append k bits '0', where k is the minimum number >= 0 such that the resulting message
    length (in bits) is congruent to 448(mod 512)
append length of message (before pre-processing), in bits, as 64-bit big-endian integer
Process the message in successive 512-bit chunks:
break message into 512-bit chunks
for each chunk
    break chunk into sixteen 32-bit big-endian words w[i], 0 ≤ i ≤ 15
    Extend the sixteen 32-bit words into eighty 32-bit words:
    for i from 16 to 79
        w[i] := (w[i-3] xor w[i-8] xor w[i-14] xor w[i-16]) leftrotate 1
    Initialize hash value for this chunk:
    a := h0
    b := h1
    c := h2
    d := h3
    e := h4
    Main loop:
    for i from 0 to 79
        if 0 ≤ i ≤ 19 then
            f := (b and c) or ((not b) and d)
            k := 0x5A827999
        else if 20 ≤ i ≤ 39
            f := b xor c xor d
            k := 0x6ED9EBA1
        else if 40 ≤ i ≤ 59
            f := (b and c) or (b and d) or(c and d)
            k := 0x8F1BBCDC
        else if 60 ≤ i ≤ 79
            f := b xor c xor d
            k := 0xCA62C1D6
        temp := (a leftrotate 5) + f + e + k + w[i]
        e := d
        d := c
        c := b leftrotate 30
        b := a
        a := temp
    Add this chunk's hash to result so far:
    h0 := h0 + a
    h1 := h1 + b
    h2 := h2 + c
    h3 := h3 + d
    h4 := h4 + e
Produce the final hash value (big-endian):
digest = hash = h0 append h1 append h2 append h3 append h4

上述じょうじゅつせきf運算うんざんしきれつ於FIPS PUB 180-1ちゅう以下いかがえだい運算うんざんしき也許也能ざい主要しゅよう迴圈うら計算けいさんf

(0  ≤ i ≤ 19): f := d xor (b and (c xor d))         (alternative)
 
(40 ≤ i ≤ 59): f := (b and c) or (d and (b or c))   (alternative 1)
(40 ≤ i ≤ 59): f := (b and c) or (d and (b xor c))  (alternative 2)
(40 ≤ i ≤ 59): f := (b and c) + (d and (b xor c))   (alternative 3)

SHA-1しめせれい

[编辑]

空文くうぶんてきれつ为:

SHA-1("") 
= da39a3ee5e6b4b0d3255bfef95601890afd80709

参考さんこう文献ぶんけん

[编辑]
  1. ^ Stevens, Marc. Attacks on Hash Functions and Applications (PDF) (学位がくい论文). Leiden University. 2012-06-19 [2016-12-15]. ISBN 9789461913173. OCLC 795702954. hdl:1887/19093. (原始げんし内容ないようそん (PDF)于2017-03-18). 
  2. ^ Stevens, Marc; Bursztein, Elie; Karpman, Pierre; Albertini, Ange; Markov, Yarik. Katz, Jonathan; Shacham, Hovav , 编. The First Collision for Full SHA-1 (PDF). Advances in Cryptology – CRYPTO 2017. Lecture Notes in Computer Science 10401. Springer: 570–596. 2017 [2017-02-23]. ISBN 9783319636870. doi:10.1007/978-3-319-63688-7_19. (原始げんし内容ないよう (PDF)そん档于2018-05-15). 简明摘要てきようGoogle Security Blog (2017-02-23). 
  3. ^ そん副本ふくほん (PDF). [2016-12-15]. (原始げんし内容ないようそん (PDF)于2013-02-17). 
  4. ^ Schneier, Bruce. Schneier on Security: Cryptanalysis of SHA-1. 2005-02-18 [2016-12-15]. (原始げんし内容ないようそん档于2017-04-14). 
  5. ^ NIST.gov - Computer Security Division - Computer Security Resource Center. [2016-12-15]. (原始げんし内容ないようそん档于2017-04-29). 
  6. ^ Stevens1, Marc; Karpman, Pierre; Peyrin, Thomas. The SHAppening: freestart collisions for SHA-1. [2015-10-09]. (原始げんし内容ないようそん于2017-04-19). 
  7. ^ Bruce Schneier. SHA-1 Freestart Collision. Schneier on Security. 2015-10-08 [2016-12-15]. (原始げんし内容ないようそん于2017-01-28). 
  8. ^ Windows Enforcement of Authenticode Code Signing and Timestamping. Microsoft. 2015-09-24 [2016-08-07]. (原始げんし内容ないようそん于2016-10-05). 
  9. ^ Intent to Deprecate: SHA-1 certificates. Google. 2014-09-03 [2014-09-04]. [失效しっこう連結れんけつ]
  10. ^ Bug 942515 - stop accepting SHA-1-based SSL certificates with notBefore >= 2014-03-01 and notAfter >= 2017-01-01, or any SHA-1-based SSL certificates after 2017-01-01. Mozilla. [2014-09-04]. (原始げんし内容ないようそん档于2014-09-07). 
  11. ^ CA:Problematic Practices - MozillaWiki. Mozilla. [2014-09-09]. (原始げんし内容ないようそん于2017-05-06). 
  12. ^ Phasing Out Certificates with SHA-1 based Signature Algorithms | Mozilla Security Blog. Mozilla. 2014-09-23 [2014-09-24]. (原始げんし内容ないようそん档于2017-04-25). 
  13. ^ CWI, Google announce first collision for Industry Security Standard SHA-1. [2017-02-23]. (原始げんし内容ないようそん于2017-02-23). 
  14. ^ Announcing the first SHA1 collision. Google Online Security Blog. 2017-02-23. (原始げんし内容ないようそん于2017-04-24). 
  15. ^ SHAttered. [2017-02-23]. (原始げんし内容ないようそん档于2017-04-12). 
  16. ^ 16.0 16.1 そん副本ふくほん (PDF). [2020-09-09]. (原始げんし内容ないようそん (PDF)于2020-09-10). 
  17. ^ 17.0 17.1 Critical flaw demonstrated in common digital security algorithm. media.ntu.edu.sg. [2020-09-08]. (原始げんし内容ないようそん于2020-04-19) 美国びくにえい语). 
  18. ^ Chabaud and Joux, 1998
  19. ^ Announcing the first SHA1 collision. Google Online Security Blog. 2017-02-23 [2017-02-24]. (原始げんし内容ないようそん于2017-04-24).