概要。 暗号文単独攻撃(COA)は、攻撃者が暗号文だけにアクセスでき、対応する平文、鍵、内部状態を直接知らない暗号解析の状況である。攻撃者の目的は、文全体の平文を復元することから、基礎となる鍵の一部を抽出すること、あるいは暗号文をランダムデータと区別することまで幅広い。こうした用語と基本モデルは、現代暗号の議論や標準で用いられている。一般的な背景は 暗号技術の資料 や 攻撃モデル の説明を参照できる。
特徴と成功条件
暗号文単独攻撃が成功したとみなされるのは、攻撃者がそれまで得ていなかった有用な情報を引き出せた場合である。成功には次のような形がある。
- 平文全体の復元
- 頻出語、見出し、構造などの部分的復元
- 鍵流の再構成、または鍵の導出
- 暗号文を一様なランダムデータと区別する能力の獲得(識別攻撃)
平文の統計的性質を知る程度のわずかな優位でも、実務上は大きな意味を持つことがある。暗号解析の概念や評価指標の背景は 暗号解析入門 を参照するとよい。
一般的な手法
古典的手法と現代的手法では、暗号方式の種類や利用できる暗号文の量によってアプローチが異なる。典型的な方法には次がある。
- 頻度分析: 単換字式や単一換字式の暗号では、文字や二文字連接の頻度から有力な対応関係を推定できる。
- パターン検出: 繰り返しブロックや構造から、鍵の再利用や決定的なパディングが見つかることがある。
- 統計検定: 相互一致指数やカイ二乗検定などにより、非ランダム性を示し、暗号方式の種類を推測できる。
- 鍵流再利用攻撃: ストリーム暗号の鍵流が再利用された場合(いわゆる二重使用のワンタイムパッド状況)、暗号文同士を組み合わせることで鍵流を打ち消し、平文どうしの関係を明らかにできる。
- 機械学習とコーパス支援法: 現代の分類器や大規模言語モデルは、統計的パターンから平文の可能性が高い断片を推定できる。
これらの手法の一部は、よく知られた古典技法の応用であり、別のものは数学的弱点ではなく実装上の誤りを突く。実例や参考資料としては、暗号文例集 が役立つ。
歴史と代表例
暗号文のみの解析は、19世紀の単換字暗号研究にさかのぼる。そこで頻度分析は、出来の悪い暗号をしばしば破る手段として機能した。20世紀になると、機械式・電気機械式の暗号が新たな課題を生み、一部の方式は暗号文単独攻撃に耐えた一方で、別の方式は暗号解読者に利用されるパターンを漏らした。現代の標準化アルゴリズムは、合理的な仮定の下で暗号文だけからの復元を防ぐよう設計されているが、実運用では誤設定や独自方式が依然として脆弱なことがある。歴史的背景のさらなる説明は、一般的な暗号史や報告書の 歴史概説 にある。
実務上の重要性と防御策
運用環境では、暗号文単独の状況は現実的である。攻撃者はしばしば、鍵や平文に触れずに暗号化通信を捕捉できるためである。リスクを抑えるには、次の対策が推奨される。
- 独自方式ではなく、実績のある標準化暗号とモードを用いる。
- 適切な鍵管理を行い、ワンタイム鍵や鍵流を再利用しない。
- 乱数化された初期化ベクトル、ソルト、パディング方式を正しく適用する。
- 暗号文を見分けやすくする決定性や、メタデータ漏えいがないか実装を監査する。
堅牢な設計と慎重な導入により、暗号文だけから有用情報が得られる可能性は下がる。実践的な指針や検証済みのアルゴリズム選定については、セキュリティ指針 を参照できる。
重要な区別。 暗号文単独攻撃は、攻撃者が平文を自由に用意したり、既知の平文例を持っていたりする既知平文攻撃や選択平文攻撃とは異なる。一般に実行は難しいが、成功すれば攻撃者に必要な事前情報が最小限で済むため非常に価値が高い。COAへの防御は、現代の暗号設計と安全な実装における中核的な目標である。