共通鍵ブロック暗号への攻撃モデル
暗号の強さは、「攻撃者が何を手に入れられるか」を決めたうえで評価します。この前提を攻撃モデルと呼びます。このページでは、共通鍵のブロック暗号(AES など)を例に、攻撃モデルと代表的な解析の手法をまとめます。
共通鍵ブロック暗号
送信者と受信者が同じ鍵を使って
暗号化と復号を行う方式(共通鍵暗号)のうち、データを決まった長さのブロックに分けて処理するものです。代表例は AES です。DES は鍵が短く、現在は新しく使うべきではありません。
攻撃モデル
暗号の教科書『Handbook of Applied Cryptography』(Menezes ほか、1996年)は、暗号化の方式への攻撃を、攻撃者が使える情報によって次のように分けています。
| 攻撃モデル |
攻撃者が手に入れられるもの |
| 暗号文単独攻撃(ciphertext-only) |
暗号文だけ |
| 既知平文攻撃(known-plaintext) |
ある量の平文と、それに対応する暗号文 |
| 選択平文攻撃(chosen-plaintext) |
自分で選んだ平文に対応する暗号文 |
| 適応的選択平文攻撃 |
前の結果を見てから、次に暗号化させる平文を選べる |
| 選択暗号文攻撃(chosen-ciphertext) |
自分で選んだ暗号文に対応する平文(例:鍵は取り出せないが、復号の装置は使える) |
| 適応的選択暗号文攻撃 |
前の結果を見てから、次に復号させる暗号文を選べる |
- 同書は、暗号文単独攻撃に負ける方式は、まったく安全でないとみなされるとしています
- 同書は、選択平文攻撃に耐える暗号は、既知平文攻撃と暗号文単独攻撃にも耐えるとし、現実にはそうした攻撃が難しい場面でも、選択平文攻撃に耐える暗号を使うのが通例だとしています
- 関連鍵攻撃(related-key):未知の鍵と、それと一定の関係にある(関係を攻撃者が選んだ、または知っている)別の鍵の両方で、平文を暗号化した結果を使えるという前提の攻撃です(同書)
解析の手法の例
差分解読と線形解読
- 差分解読:平文の組の差が、暗号文の差にどう伝わるかの偏りを使って、鍵を推定する
- 線形解読:平文・暗号文・鍵のビットの間に成り立つ、近似的な線形の関係を使って、鍵を推定する
同書の表は、DES に対して、線形解読には既知平文が約2^43個、差分解読には選択平文が約2^47個必要だとしています。理論上は総当たりより速くても、それだけの平文と暗号文を集めること自体が現実には難しい、という点も大事です。
Biclique 攻撃
2011年に発表された、関連鍵を仮定しない攻撃としては最初の、AES の全段に対する鍵の復元の攻撃です。AES-128 の鍵を求める計算量は約2^126.1で、総当たり(2^128)よりわずかに少ないだけです。論文の著者自身が、計算量が大きいため AES の実用を脅かすものではないと述べています。
そのほか
高階差分攻撃、Square 攻撃、ブーメラン攻撃など、暗号の内部構造を使う解析の手法が数多く研究されています。新しい暗号は、こうした既知の手法に耐えることを確かめてから標準になります。
使う側の要点
解析の研究は、多くの場合「理論上、総当たりより少しでも速い」ことを示すものです。使う側にとって大事なのは、次の点です。
- 評価された暗号を選ぶ:CRYPTREC 暗号リストの電子政府推奨暗号リストなど、評価を経た暗号と鍵の長さを選ぶ。独自の暗号を作らない
- 使い方を誤らない:アルゴリズムが強くても、鍵の管理、暗号利用モードの選び方、実装の誤りで破られる(鍵管理・サイドチャネル攻撃)
- 評価の更新を追う:解析が進むと、推奨は変わる。CRYPTREC は、推奨すべき状態ではなくなった暗号を「運用監視暗号リスト」に移している
関連するページ
出典
確認日:2026年10月15日
最終更新:2026年10月15日 14:38