忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【セキュリティ】計算をサボるための巨大な辞書!「データ参照法(テーブル参照攻撃)」|情報処理問題1000本ノック

暗号を解読する際、その場でスーパーコンピュータを回すと時間がかかります。しかし、「事前に計算して表にまとめておく」ことで一瞬で鍵を暴く、データ参照法の驚異を攻略しましょう。

1. 【 問題 】:暗号解読におけるテーブル参照攻撃

【 問題 】 セキュリティにおける暗号解読手法のうち、特定の平文に対して、想定されるすべての「秘密鍵」を適用して生成される「暗号文」の組み合わせをあらかじめ計算し、それらを検索可能なテーブル(データ参照表)として管理・保管しておくことで、実際の攻撃時に入手した暗号文から、複雑な逆計算を行うことなく高速なデータ参照によって秘密鍵を特定する手法(時間・メモリトレードオフ攻撃の基礎)はどれでしょうか?

① 暗号文単独攻撃 (Ciphertext-Only Attack)
② 選択平文攻撃 (Chosen-Plaintext Attack)
③ データ参照法 / テーブル参照攻撃 (Table Lookup / Rainbow Table Attack)
④ 差分暗号解読法 (Differential Cryptanalysis)

2. 正解:

正解: ③ データ参照法 / テーブル参照攻撃(レインボーテーブル攻撃など)

3. 解説:「事前準備」に命をかけるタイム・メモリ・トレードオフ

暗号文から秘密鍵を直接ハッキングしようとしても、現代の暗号は非常に堅牢であるため膨大な時間がかかります。そこで、計算の時間を「メモリの容量(テーブル)」で解決するのがこのデータ参照法(テーブル参照攻撃)です。

【データ参照法(テーブル管理)の仕組みと応用】

仕組み:犯人は攻撃の「前段階」として、ある決まった平文(例:「LOGIN」という文字列など)に対して、鍵Aなら暗号文X、鍵Bなら暗号文Y……という【平文 × 秘密鍵 → 暗号文】の関係性を網羅した超巨大なデータベース(テーブル)を、何日もかけて構築しておきます。
攻撃時:ターゲットの通信を盗聴し、例の平文が暗号化されたデータ(例:暗号文Y)を横取りします。このとき、犯人はその場で鍵を総当たり計算するのではなく、手元のテーブルから「暗号文Y」をキーワードとして検索(データ参照)します。すると、隣に記録されている「秘密鍵B」が一瞬で特定できてしまいます。 ← ココが問題の正解!

※このデータ参照法をさらに進化させ、テーブルのデータ容量を劇的に節約した特殊な探索表のことを、試験でもお馴染みの「レインボーテーブル(Rainbow Table)」と呼び、ハッシュ化されたパスワードの破り方(レインボーテーブル攻撃)として非常に有名です。
[ 選択肢のひっかけポイント(暗号解読の4大アプローチ) ]
★ ① 暗号文単独攻撃:平文が一切不明で、手元にある暗号文のデータだけを頼りに、文字の出現頻度などの統計的な特徴から鍵や平文を推理する最も難易度の高い解読法です。
★ ② 選択平文攻撃:攻撃者が「自分で自由に選んだ平文」を暗号化装置に入力させ、それによって得られた暗号文のペアを観察して鍵を予測する、より有利な状況での解読法です。
★ ④ 差分暗号解読法:2つの異なる平文の「差分(変化)」が、暗号化された後にどのような暗号文の「差分」として現れるかを確率的に分析し、内部の鍵を絞り込む高度な数理解読法です。

1. 理解のコツ: 「数学の試験対策」に例えてみましょう。
・試験本番の席で、複雑な公式をこねくり回してその場で答え(秘密鍵)を計算するのは時間がかかりますよね。だから、家を出る前に「問題(平文・暗号文)と答え(秘密鍵)」の組み合わせをあらかじめノート(テーブル)に全部書き写しておき、本番ではそのノートをパッと開いてカンニング(データ参照)するだけで一瞬で答えを導き出す。この、事前の力技を本番のスピードに変える手法がデータ参照法です。
2. 試験対策の視点: 「平文と暗号文と秘密鍵の関係をテーブルで管理」「データ参照(検索)して秘密鍵を特定」という記述があれば、テーブル参照やレインボーテーブルの基本原理を指しています。情報処理安全確保支援士や応用情報技術者試験の午前試験では、暗号の強度(鍵長が短いとテーブル化されて破られやすいリスク)や、パスワードハッシュにランダムな文字列を混ぜてテーブル参照を防ぐ「ソルト(Salt)」の重要性を理解するための根本知識として問われます。


4. まとめ

「暗号化プロセスの結果を事前に膨大なデータ参照表(テーブル)として用意しておくことで、本番の計算負荷をゼロにし、高速な検索によって秘密鍵をあぶり出す暗号解読アプローチ」。これがデータ参照法です。この脅威に対抗するため、現代のセキュリティシステムでは、同じパスワードであっても毎回異なる暗号文やハッシュ値が生成される仕組みを導入し、固定のテーブルを無力化する設計が標準となっています。


PR