Web教材一覧情報倫理・セキュリティ

暗号解読の方法

キーワード

ブルートフォース、頻度分析法、線形解読法、サイドチャネル攻撃


暗号解読とは

暗号解読とは、解読するための鍵を鍵を与えられずに暗号文を平文に戻すことです。
 鍵を知っている正当な利用者が平文に戻すこと(復号)といい、何らかの不正手段で鍵を入手することは暗号解読とはいいません。  例えば「図書館に行った」は「A方面を攻撃せよ」、「猫が子を産んだ」は「B方面から退却せよ」というように、文字列特徴とは無関係で、しかも毎回変更するような暗号は、数学的に解読するのは不可能ですので、暗号解読手法だとはいえません。  また、公開鍵暗号方式では、巨大な数を大きな2つの素数に分解すれば鍵が得られますが、それを見つけるには現在の数学理論やコンピュータ能力では到底不可能だということで成立しています。ある暗号文での鍵がたまたま偶然に見つかって解読できることもあるでしょうが、反復可能な理論になりませんので、暗号解読の対象にはなりません。

それに対して、素数を高速に見つけるアルゴリズムを研究することは暗号解読の対象になります。しかし、ここでは公開鍵暗号方式での暗号解読は不可能だとの前提で、換字式暗号方式や共通鍵暗号方式での暗号解読を対象にします。

暗号解読の研究は、不正行為や軍事目的に使われるだけでなく、暗号化方式の脆弱性発見や高強度の暗号化方式、の研究などにも用いられます。

暗号解読の方法

鍵を知るための手段は、大きく2つに区分されます。

ブルートフォース(Brute-force)法
総当たり法、力任せ法ともいいます。鍵となる理論的にありうる組合せを全て試すやり方です。
暗号解読とやや外れますが、他人のパスワードを盗むときなどには、生年月日、辞書、人名表など(最終的には全文字種)の文字列を片っ端から試すことも行われています。
ショートカット法
暗号化アルゴリズムの弱点を突いて、数学的・統計的な手段により、鍵となる候補を絞りこむ方法です。

代表的な暗号解読方法を列挙します、これらはすべてショートカット法に属します。

頻度分析法(Frequency analysis)
暗号文だけが与えられたときに、それが換字式による暗号文だと知っていれば、文字や文字列の出現頻度を手掛りとして解読できます。平文が英語文章だとすれば、 e, t, a, o, iの文字、t-h, h-e, i-n, e-rの順序の発生頻度が高いので、暗号文での発生頻度を調べて割り付けていきます。推理小説「踊る人形」ではホームズがこの方法を用いています。
差分解読法(Differential cryptanalysis)
平文から暗号文が得られる場合、いくつかの平文を暗号化して、入力差分と出力差分の関係から解読の方法を調べる方法です。
線形解読法(Linear cryptanalysis)
暗号化関数の統計的な偏りを線形関数によって近似して解読する方法です。当時の標準的共通鍵暗号方式であったのDESがこの方式で解読できることが発表され、その強度を上げる動きになりました。

攻撃方法の種類

暗号解読に必要な条件による攻撃方法の種類を列挙します。

暗号文単独攻撃 Ciphertext-only attack;COA)/既知暗号文攻撃(Known-ciphertext attack;KCA)
一つの暗号文だけを与えられたときに、平文を求める攻撃です。換字式暗号文のときは頻度分析法が使われます。
既知平文攻撃(Known-plaintext attack;KPA)
たまたま平文とそれに対応する暗号文を得られたとき、それを分析することにより他の暗号文から平文を求める攻撃です。得られる平文・暗号文の数が増加すれば、解読の精度が向上します。共通鍵暗号方式での暗号解読で差分解読法が用いられます。
選択平文攻撃(Chosen-plaintext attack:(CPA)
暗号化装置を入手したときには、任意の平文に対応する暗号文を得られます。そのようなときに、暗号文から平文を求める攻撃です。差分解読法が用いられます。
公開鍵暗号方式では、公開鍵を用いて任意の平文を暗号化できるので、選択平文攻撃に対しての対策が必要になります。
選択暗号文攻撃(Chosen-ciphertext attack;CCA)
公開鍵暗号方式での秘密鍵を取られたなど、解読対象の暗号文以外の任意の暗号文が対応する平文を得られるときに、解読対象の暗号文から平文を求める攻撃です。
関連鍵攻撃(Related-key attack;RKA)
例えば、会員制のサイトに加入すると、サイト側から仮のパスワードが通知されます。何度も加入申込みをして多数の仮パスワードを入手すれば、その生成方法を知ることができ、仮パスワードをそのままにしている利用者になりすますことができます。
このように関連する鍵を入手して、対象となる暗号解読のための鍵を探す手口です。
サイドチャネル攻撃(side channel attack:SCA)
無線LANやICカードを使うとき、外部から傍受することができます(参照:「無線環境でのセキュリティ」)。暗号化するときの処理時間や消費電力の推移、外部に放出する電磁波、熱、音の変動などを継続的に測定・分析、秘密鍵などを得る攻撃です。

本シリーズの目次へ