Sha-1

Google的 Shattered 論文(完整 SHA-1 的第一次沖突)是否意味著創建一個與原始文件具有相同雜湊的新文件?

  • November 8, 2021

我有一個源數據 A 和這個 A 的雜湊 H(A)。Google的破碎文件是否有可能創建一個輸出這個 H(A) 的新數據 B?

方法1,2

++ 我明白了,論文的內容是補充兩個消息塊,使最終的CV相同。我想到的方法是是否可以正確找到“Dummy File”的M2(2),以便“Original File”和“DummyFile”的CV2輸出與照片中的Method1相同,或者僅使CV2與在 Method2 中通過找到新的 M1(2)、M2(2)。

一個 64 字節的消息塊是無意義的數據。因此,文件不必正常打開。

文件格式不限於PDF。

不,你描述的是第二次原像攻擊,而Google團隊產生了碰撞攻擊。在Mark Stevens 等人的 SHAttered “The first full collision on SHA1”論文中。在您的方法 1 中引用了這些狀態時,作者首先能夠同時選擇 $ M_1^{(1)} $ 和 $ M_1^{(2)} $ 對其中一個或另一個進行輕微擾動,直到一對接近的值 $ CV_1^{(1)} $ 和 $ CV_1^{(2)} $ 產生了。在你的場景中 $ M_1^{(1)} $ 將是固定的,只有 $ M_1^{(2)} $ 可以調整,使其更難找到關閉 $ CV_1 $ 價值觀。同樣,在第二步中,研究人員能夠同時擾亂 $ M_2^{(1)} $ 和 $ M_2^{(2)} $ 找到完整的碰撞,但在你的場景中,攻擊者只能調整 $ M_2^{(2)} $ .

這些挑戰的難度差異使得為 SHA1 找到第二個原像仍然可能需要大致 $ 2^{160} $ 雜湊函式評估。這類似於在房間裡找到兩個生日相同的人機率與在房間裡找到與你生日相同的人的機率之間的差異。

最近的工作(Leurent 和 Peyrin 的“SHA1 is a shambles”)表明,攻擊者有可能獲取任意文件並將他們控制的數據附加到您的文件和他們的文件中,從而產生相同的 SHA1兩個文件的值。這被稱為選擇前綴衝突,並且仍然是需要棄用 SHA1 的有力證據。

注意:您的字節值表左右標記為 $ M_1^{(2)} $ 我已經恢復到 SHAttered 論文的符號。我不確定你的第二張桌子的來源。

Shattered 攻擊會找到與文件/消息 A 具有相同 SHA-1 雜湊的不同文件/消息 B,但前提是 A 中的某些數據部分具有不會偶然發生的特徵。對於大多數文件格式/數據語義,這仍然允許攻擊者無法改變 A 的含義/外觀/效果,但會稍微影響 A 的二進制內容。


我有一個源數據 A 和這個 A 的雜湊 H(A)。Google的破碎文件是否有可能創建一個輸出這個 H(A) 的新數據 B?

答案取決於數據 A,它本身取決於 A 是如何獲得或產生的,問題沒有說明或允許猜測。

  1. 的,如果 A 以 Shattered 攻擊給出的兩個特定 320 字節值之一開始,則無需計算工作。我們可以將一個替換為另一個,以形成具有相同 SHA-1 雜湊的 B。這可以(除其他外)用於毫不費力地製作兩個不同的有效 PDF 文件,它們的字節內容略有不同,視覺外觀完全不同。
  2. ,如果 A 小於約 125 字節,則在堅持使用 Shattered 論文中的方法時,即使他們的計算量很大。但是,如果我們改變方法並接受將計算量增加一個適度的因子(大約 25 萬)到大約 $ 2^{81} $ SHA-1 雜湊。
  3. 的,通過 Shattered 的計算工作,如果對手可以選擇 A 的前 128 個字節。那仍然是 Shattered 攻擊,但需要大量工作。如果我們接受前一點的計算量增加,我們可以將該限制降低到 64 個字節。
  4. 的,作為 3 的擴展,如果對手知道第一個 $ n $ A的字節,可以選擇下一個 $ 128+(-n\bmod 64) $ 字節。我們必須將其降低到 $ 64+(-n\bmod 64) $ 字節與增加的計算工作量。這可以進一步擴展到攻擊者在任何第一個中選擇大約 20 個字節的資訊 $ 64,f $ 知道 A 的那個部分的 A 的字節,並且工作量進一步增加不大於 $ f $ .
  5. 的,作為 4 的結果,如果 A 是以在對手控制下的方式準備的,例如,如果 A 是 PDF 文件、PNG 圖像、CD/DVD“ISO”圖像,可能是使用對手製作的工具準備的執行檔. 有關數字證書,請參閱此問題
  6. ,如果 A 通過了 Shattered 作者提供的測試並且我們堅持他們的攻擊方法。但是他們的測試無法防禦成本相當的其他攻擊,也沒有任何測試可以防禦成本適度增加的攻擊。
  7. ,如果在對手可以影響 A 的時候,對於任何可行的計算工作,A 的前 64 個字節中至少有 64 位的熵對於對手來說是未知的。這包括隨機 A 和由證書頒發機構頒發的數字證書,採取簡單的預防措施,在證書開頭使用隨機序列號。

我想確保文件的格式不限於 PDF。

Shattered 攻擊和擴展不僅限於 PDF,請參閱 3/4/5。它可以(通過一些工作)以任何文件格式攜帶,而無需進行一些內部冗餘檢查;也就是說,大多數。此外,可以為多種格式設計類似於 1 的前綴(專門用於廉價偽造 PDF),包括 JPEG、PNG、GIF、MP4、JPEG2000、攜帶式可執行格式等,只需完成大量但可行的工作一次。1 的前綴甚至適用於一些現有的文件格式,例如跳過他們無法辨識的內容的播放器的音頻和影片(因為問題沒有要求不同的 A 和 B 的行為不同;這很難用不是 PDF 的東西的前綴 1,以及不是為此目的而製作的標準播放器)。

如果有疑問:比抱歉更安全,假設是的,攻擊是可能的,並使用比 SHA-1 更寬且完整的散列


論文的(原理)是補兩個消息塊

不完全是。它在兩個連續的消息塊(每個 64 字節)中補充*了一些位,*在處理這兩個消息塊之前,根據雜湊狀態選擇哪些內容(具有相當大但可行的工作)。因此 A 中這兩個消息塊的內容不是任意的,它必須匹配這些痛苦計算的 128 個字節。這種匹配不會偶然發生(例如對於隨機 A),它需要對 A 進行一些控制,並且在對這兩個塊進行散列之前了解散列的狀態。這樣的知識可以通過在 A 的這兩個塊必須選擇使攻擊起作用之前知道消息 A 的部分來獲得。

適用於任意 A 的攻擊將是(第二次)原像攻擊。這種攻擊對於 SHA-1 是未知的。

引用自:https://crypto.stackexchange.com/questions/95964