【セキュリティ】ブロック暗号の弱点を突く!符号表攻撃の仕組み|情報処理問題1000本ノック
暗号アルゴリズムそのものを破らなくても、すべてのパターンを記録されたら終わりです。そんなシンプルながら強力な脅威である「符号表攻撃」の性質を整理しましょう。
1. 問題:暗号と平文の対応表による攻撃
【 問題 】 ブロック暗号において、小さいブロックサイズが使用されている場合に有効な攻撃手法で、あらかじめ平文ブロックとそれに対応する暗号文ブロックのすべての組み合わせを取得・記録しておき、その対応表(コードブック)を用いて未知の暗号文を解読する手法を何と呼ぶでしょうか?
① 符号表攻撃 ② 総当たり攻撃 ③ 差分解読法 ④ 中間者攻撃
2. 正解:暗号解読の手法に関する正解
正解: ① 符号表攻撃
3. 解説:パターンの記録が解読に繋がる
「この平文は必ずこの暗号文になる」というルールが固定されている場合、その組み合わせを辞書のように記録されると、鍵を特定しなくても中身が丸見えになってしまいます。ブロックサイズが小さいほど全パターンを網羅しやすくなるため、この攻撃の餌食になりやすくなります。
[ 符号表攻撃のポイント ]
・前提条件:暗号化のブロックサイズが小さく、パターンが限られている場合に成立します。
・対策:AESのように十分な長さ(128ビット以上など)のブロックサイズを使用する、または「CBCモード」のように直前の暗号化結果を次の入力に混ぜる(暗号文をランダム化する)ことで防ぎます。
[ 他の選択肢との違い ]
★ 総当たり攻撃(ブルートフォース):可能な鍵をすべて試す攻撃。符号表攻撃は「対応表」を作るのが特徴です。
★ 差分解読法:平文と暗号文のわずかな変化を統計的に解析する高度な攻撃。
★ 中間者攻撃:通信の間に割り込んで情報を盗み見たり改ざんしたりする攻撃。
・前提条件:暗号化のブロックサイズが小さく、パターンが限られている場合に成立します。
・対策:AESのように十分な長さ(128ビット以上など)のブロックサイズを使用する、または「CBCモード」のように直前の暗号化結果を次の入力に混ぜる(暗号文をランダム化する)ことで防ぎます。
[ 他の選択肢との違い ]
★ 総当たり攻撃(ブルートフォース):可能な鍵をすべて試す攻撃。符号表攻撃は「対応表」を作るのが特徴です。
★ 差分解読法:平文と暗号文のわずかな変化を統計的に解析する高度な攻撃。
★ 中間者攻撃:通信の間に割り込んで情報を盗み見たり改ざんしたりする攻撃。
1. 理解のコツ: 英語では「Codebook Attack」と呼ばれます。ECB(電子符号表)モードという、各ブロックを独立して暗号化する方式では、同じ平文から常に同じ暗号文ができるため、この攻撃に対して非常に脆弱です。
2. 最新トレンドの視点: 現代のAESなどはブロックサイズが128ビットあり、そのパターン数は $2^{128}$ と天文学的です。これをすべて記録して符号表を作ることは事実上不可能なため、現代の標準的な暗号はこの攻撃に耐性を持っています。
4. まとめ
「同じ入力には同じ出力を返す」という性質を悪用するのが符号表攻撃です。これを防ぐために、現代の暗号では「ブロックサイズを大きくする」ことと「暗号化モードを工夫して出力をバラつかせる」ことが基本戦略となっています。
PR