Md5

僅在 FIXED 長度消息上使用時,MD5 第二原像是否具有抗性?

  • February 23, 2017

我完全意識到 MD5 不應該在任何新項目中使用,但在我的特殊情況下,我有嚴重的 CPU 性能問題,所以 MD5 很方便。我已經閱讀了很多關於這個項目的 MD5 安全性的內容,並且我知道它在幾個方面被破壞:例如,在具有相同 MD5 雜湊值的情況下擴展文件,以及生成具有相同 MD5 雜湊值的兩個不同文件。

在我的特定例子中,我有一個 Merkle 樹。根使用 SHA256 進行驗證,但出於性能原因,內部節點使用 MD5。關鍵是在我的應用程序中,MD5 散列是在固定長度的塊上完成的。例如,葉節點是 4096 字節塊上的 MD5。內部節點是 16384 字節塊上的 MD5。

所以,我的問題是:給定一個已知塊及其 MD5 雜湊,是否存在一種攻擊來生成具有相同 MD5 雜湊的相同長度的不同塊?

我不想生成兩個具有相同雜湊的 4096 字節塊。我想知道,當給定一個 4096 字節塊時,是否可以用具有相同 MD5 的不同 4096 字節塊替換它。

目前,針對 MD5 原像抗性(實際上是第一個原像,但它也適用於第二個原像抗性)的最佳已發表攻擊發現成本上的原像 $ 2^{123.4} $ 平均成本,比一般攻擊略好(平均成本為 $ 2^{128} $ ),但仍然遠遠超出了技術上的可行性。攻擊將原像重建為一個兩塊值(128 字節),並且可以調整為任何更大的長度。

所以:

  • 目前還沒有針對您的 4096 字節雜湊樹節點的實際攻擊。
  • 但是它們具有固定的 4096 字節長度這一事實似乎並沒有改善這種情況。

儘管如此,MD5 的安全性基礎似乎有些脆弱,因此(完全)不建議將其用於新系統。如果您有嚴重的 CPU 限制,那麼您可能需要考慮SHA-3 候選者。對 14 個“第二輪”候選函式進行了相當徹底的調查,沒有發現任何中斷;在這方面,它們都比 MD5 強,並且可以說比 SHA-1 強,後者俱有已知的碰撞攻擊(但沒有已知的原像攻擊)。其中一些速度非常快,並且可以與 MD5 競爭。根據您的架構(8 位 CPU、小型 32 位 ARM、具有AES-NI操作碼的大型現代 64 位 PC…),您可能對 BMW、ECHO、Shabal 和 Skein 最感興趣。“The” SHA-3 (Keccak) 沒有這些快(專用 FPGA / ASIC 除外)。

對於公共關係而言,通常最好使用標準的推薦功能。但是,如果您另有決定,那麼使用經過密碼學家的一些審查而沒有已知弱點的函式可以說比使用具有很大弱點的函式更好。

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