web-dev-qa-db-ja.com

狭いパイプのハッシュ関数の設計に対する懸念はどの程度有効ですか?

狭いパイプハッシュ関数の設計は、特にいくつかのSHA-3候補に関して、最近非難されています。この批判は有効ですか? この論文 よりも簡単に説明できますか?

これが古いハッシュ関数も評価できる基準であるかどうかを知りたいので、興味があります。

6
Omnifarious

非常に厳密で狭い見方では、狭いパイプの批判は有効な攻撃であり、256ビットの出力サイズと「狭いパイプ」(出力以下の実行状態)を持つハッシュ関数が次のように提供することを示しています。ほとんどの場合、255.34ビットの出力を持つハッシュ関数で達成できるプリイメージ耐性。より実用的な観点では、これは実際のセキュリティには何の影響も及ぼしません。 Gligoroskiは、この論文をワイドパイプ設計の議論として提供しました。特に、SHA-3に関する彼自身の提案 Blue Midnight Wish と呼ばれています。

別のSHA-3候補(細いパイプの設計)である [〜#〜] blake [〜#〜] の設計者の1人であるAumassonは、この攻撃は「my- pipe-is-bigger-than-yours」であり、それほど深刻ではありませんでした。しかし、14の第2ラウンドSHA-3候補に関するすべての調査結果の中で、Gligoroskiによる狭いパイプの批判がおそらく最もよく知られている攻撃であることは非常にわかりやすいです-つまり、私たちが知る限り、14の機能すべてが非常に堅牢です。また、SHA-3コンペティションの第3ラウンドでは、BMWではなくBLAKEが選択されたことにも注意してください。

MD4、MD5、SHA-1、SHA-256、およびSHA-512は細いパイプの設計であり、その事実について誰もがハートビートを見逃すことはありません。

この攻撃が機能する理由(非常に低い値の作業の場合)は、ランダム関数が真にランダムな関数である場合、入力から出力への1-> 1マッピングを持つ可能性が低いためです。実際、数学がうまくいく方法では、完全なランダムマッピングでは、可能な出力スペースの1〜1/eしか生成されません。これは0.632程度になり、出力の半分弱が発生しないため、部分的なビットでプレイメージを見つける難しさが軽減されます(出力の半分が発生しない場合はフルビットになります) 。

ご覧のとおり、これは純粋に理論的なものであり、率直に言ってかなりばかげています。

5
Thomas Pornin