関連鍵攻撃
関連鍵攻撃(related-key attack)とは、
暗号理論における特定の攻撃手法の一種です。この攻撃は、複数の鍵が使われる
暗号処理において、攻撃者がそれぞれの鍵に数学的な関連性があるということを前提として行われます。攻撃者は鍵の具体的な値を知らずとも、鍵同士に何らかの関連性が存在することを認識している状態です。
攻撃の基本的な考え方
関連鍵攻撃は一見すると理論的なシナリオに思われるかもしれません。たとえば、攻撃者が鍵の末尾80ビットが同じであることを知っている場合、具体的なそのビットの内容は知らなくとも攻撃を仕掛けることが可能になります。このように、鍵同士の関係性を利用することで、
暗号の解読がなされるのです。
この攻撃手法が成立する背景には、さまざまな実装が考えられます。現代の複雑な
暗号プロトコルの中には、十分に調査が行われていないものが存在し、そのため関連鍵攻撃に対して脆弱である場合があります。
WEPの事例
関連鍵攻撃の著名な例として、
Wi-Fi無線ネットワークに使用される
Wired Equivalent Privacy(WEP)があります。WEPは、無線ネットワークデバイスやアクセスポイントが同じWEP鍵を使用するプロトコルです。ここでは
ストリーム暗号である
RC4を使用して
暗号化が行われます。
ストリーム暗号では、使用された鍵を再度利用することが難しいため、WEPでは各パケットに24ビットの
初期化ベクトル(IV)が挿入されています。
ですが、WEP鍵は通常手動で変更されるため、頻繁に鍵を変更することはなく、攻撃者はすべてのパケットで同じWEP鍵を利用する状況を前提とした攻撃を行いやすくなります。その結果、WEPに対する攻撃がいくつも実行可能であり、最もシンプルな方法は「24ビットのIVは1700万弱の組み合わせしかない」という特性を利用します。誕生日のパラドックスにより、4096パケットを得るだけで重複するIVを持つパケットが存在する確率は非常に高いのです。
より悪質な攻撃としては、
RC4の弱い鍵を利用し、最終的にWEP鍵を発見する方法があります。2005年には、米国
連邦捜査局がこの脆弱性を示すデモを行い、利用可能なツールを用いればわずか3分で攻撃が成功することを証明しました。
防止策
関連鍵攻撃を防ぐための方法の一つは、
暗号プロトコルやアプリケーションの設計段階で、鍵同士に単純な関係を持たせない工夫をすることです。たとえば鍵導出時に、
暗号的ハッシュ関数を利用することで、生成する鍵が互いに無関係になるように設計することが挙げられます。
WEPに代わって登場した
Wi-Fi Protected Access(WPA)では、「マスターキー」「ワーキングキー」「
RC4キー」の三層の鍵リングが導入されています。WPAでは、ワーキングキーが一定の頻度で作り直され、安全性を維持しています。また、この設計はWEPと似ていますが、古い
Wi-Fiネットワークカードでも利用可能となる配慮があります。
さらに、WPAの新バージョンであるWPA2では、
RC4の代わりにAESが使用されています。これにより関連鍵攻撃に対する耐性が強化されます。ただし、旧式のネットワークカードはWPA2が利用できないことがあります。
このように、関連鍵攻撃は
暗号理論における重要なテーマであり、対策や改善の取り組みは常に求められています。