13

SHA-1 に基づく HMAC のセキュリティは、SHA-1 に対する衝突攻撃の影響を受けますか?

4

3 に答える 3

16

HMAC のセキュリティへの影響については、RFCのセキュリティ セクションで詳しく説明されています。一言で言えば、HMAC のセキュリティが脅かされる前に、非常に強力な攻撃が必要です。SHA-1 に対する既存の衝突攻撃は、確かにそのようなものではありません。HMAC は攻撃を困難にするように特別に設計されており、通常の衝突攻撃では通常十分ではありません。

ここで提示されるメッセージ認証メカニズムのセキュリティは、ハッシュ関数 H の暗号化特性に依存します: 衝突検出に対する耐性 (初期値が秘密でランダムであり、関数の出力が明示的に利用できない場合に限られます)攻撃者)、および単一ブロックに適用された場合の H の圧縮関数のメッセージ認証プロパティ (HMAC では、これらのブロックは内部 H 計算の結果を含み、特に完全に選択できないため、攻撃者には部分的に不明です。攻撃者によって)。

セクション全体を読むことをお勧めします。HMAC を破るのに十分な攻撃と、どれだけの労力が必要かについて詳しく説明しています。

于 2010-07-26T12:35:14.957 に答える
3

同じテーマに関する議論については、この質問を参照してください。簡単に言うと、衝突攻撃は HMAC に直接害を及ぼすことはありません。しかし、衝突攻撃の存在は、ハッシュ関数が構築されている圧縮関数が「ランダム オラクル」ではないことを意味し、これは HMAC セキュリティ証明を無効にします。

于 2010-07-26T18:39:46.257 に答える
-1

HMAC に対して知られている最も強力な攻撃は、ハッシュ関数 H の衝突の頻度 (「誕生日攻撃」) [PV,BCK2] に基づいており、最小限の妥当なハッシュ関数に対してはまったく実用的ではありません。

例として、出力長が L=16 バイト (128 ビット) に等しい MD5 のようなハッシュ関数を考えると、攻撃者は 既知の約 2 64で計算された正しいメッセージ認証タグを (同じ秘密鍵 K! で) 取得する必要があります。平文。これには、少なくとも 2 つの処理が必要です。H の下に 64 ブロック、現実的なシナリオでは不可能なタスクです (ブロック長が 64 バイトの場合、1 Gbps の連続リンクで 250,000 年かかることになります。その間ずっと秘密鍵 K を変更しなければなりません)。この攻撃は、関数 H の衝突動作に重大な欠陥が発見された場合にのみ現実的になる可能性があります (たとえば、2**30 メッセージの後に衝突が発見された場合)。そのような発見は、関数 H の即時の置き換えを決定します (このような失敗の影響は、デジタル署名、公開鍵証明書などのコンテキストでの H の従来の使用に対してはるかに深刻です)。

注: この攻撃は、秘密鍵が関与せず、2 64 個のオフラインで並列化可能な (!) 操作で衝突を検出するのに十分な、暗号化ハッシュ関数に対する通常の衝突攻撃と強く対比する必要があります。後者の攻撃は実現可能性に近づいています [VW] *** 一方、HMAC に対する誕生日攻撃はまったく実用的ではありません。(上記の例で、たとえば 160 ビットの出力でハッシュ関数を使用する場合、2 64 を 2 80 に置き換える必要があります。)*

上記の構造の正しい実装、ランダム (または暗号学的に疑似ランダム) キーの選択、安全なキー交換メカニズム、頻繁なキー更新、およびキーの適切な機密保護はすべて、HMAC によって提供される整合性検証メカニズムのセキュリティにとって不可欠な要素です。 .

于 2010-07-26T13:17:25.827 に答える