【セキュリティ】数式の隙を突いて鍵をあぶり出す!「線形解読法」|情報処理問題1000本ノック
共通鍵暗号の安全性を脅かす高度な暗号解読手法。複雑にシャッフルされているはずの暗号化の仕組みから、確率的な「直線の関係(一次式)」を見つけ出して鍵を推測する「線形解読法」のメカニズムを攻略しましょう。
1. 【 問題 】:情報セキュリティ(暗号解読法・攻撃手法)
【 問題 】 共通鍵暗号(ブロック暗号)に対する解読攻撃手法に関する記述です。大量の「平文(もとのデータ)」とそれに対応する「暗号文」のペアを収集・分析し、本来は複雑であるはずの暗号化関数の入力ビットと出力ビットの間に成り立つ確率的な「一次近似式(線形関係の式)」を導き出すことで、内部で使用されている暗号鍵を推測しようとする攻撃手法はどれでしょうか?
(ア)差分解読法
(イ)総当たり法
(ウ)高階差分解読法
(エ)線形解読法
2. 正解:
正解:(エ)線形解読法(線形攻撃)
3. 解説:「複雑な迷路」の中に「直線の近道」を見つける
線形解読法(せんけいかいどくほう)は、暗号化アルゴリズムの数理的な弱点を突く攻撃です。
暗号化関数は通常、入力データを予測不可能な形に変形(非線形変換)させますが、特定のビット同士の組み合わせ(排他的論理和など)に注目すると、「50%以上の確率で、平文のAビット目と暗号文のBビット目を足すと0になる」といった直線の数式(線形近似式)が偶然成り立ってしまうことがあります。攻撃者は膨大な平文と暗号文のペアをこの近似式に当てはめ、統計的な偏りを調べることで、総当たりで試すよりも圧倒的に少ない手間で暗号鍵を特定することができます。
| 攻撃名 | 解読アプローチの特徴(問題文で見分けるキーワード) |
|---|---|
| (エ)線形解読法 | 暗号化関数の特定のビット間に成り立つ「近似式(線形関係)」を求めて鍵を推測する。 |
| (ア)差分解読法 | 入力する2つの平文の「差分(違い)」が、暗号文になったときにどう変化(伝播)するかという確率的な偏りを分析して鍵を推測する。 |
※ (イ)総当たり法(ブルートフォース攻撃)は、すべての鍵のパターンを順番に試す力技の手法です。(ウ)高階差分解読法は、差分解読法をさらに高度に発展させた応用攻撃です。
1. 理解のコツ: 「手品師の癖(くせ)を見抜く」ことに例えてみましょう。
・手品師(暗号化関数)が、あなたが渡したカード(平文)を箱に入れてぐちゃぐちゃにシャッフルし、別のカード(暗号文)にして出します。一見すると完全にランダムで予測不可能に見えます。
・しかし、何万回もその手品を観察(大量のペアを収集)していると、「赤いカードを渡したときは、なぜか7割の確率で、出てくるカードの数字が偶数になる」というような、手品師の隠しきれていない奇妙なパターン(近似式)が見つかりました。この「本来はバラバラなはずなのに、特定の条件で直線的なルール(線形関係)が薄っすら見えてしまう現象」を利用して、手品のタネ(暗号鍵)を暴くのが線形解読法です。
2. 試験対策の視点: 情報セキュリティにおける暗号技術の安全性評価や、脆弱性攻撃の分野で頻出するハイレベルな用語問題です。問題文の中に「暗号化関数」「近似式(または線形関係の式)を求める」「鍵を推測・解読する」という記述があれば、ノータイムで線形解読法を選択してください。
試験では、今回の選択肢にある「(ア)差分解読法(平文の差分に着目する)」とセットで出題され、定義文を入れ替えて受験生を迷わせるパターンが鉄板です。問題文が「データの【差分・変化】に注目している」のか、それとも「数式の【近似式・線形】に注目している」のかを最初に見極めることで、確実に得点源にすることができます。
4. まとめ
「平文と暗号文の大量のペアから、暗号化処理の中に潜む確率的な『一次の近似式』を導き出し、統計的な偏りから暗号鍵を特定する解読手法」。これが線形解読法です。差分解読法と並ぶブロック暗号攻撃の二大巨頭として、そのキーワードを完璧に一致させて記憶しておきましょう!