コラム

暗号解読の方法一覧|復号との違いと攻撃モデル

更新: 桐生 遼介
コラム

暗号解読の方法一覧|復号との違いと攻撃モデル

紙と鉛筆で短い暗号文の文字を数え、まずはEやTらしい文字に印を付けていくと、暗号を「読む」感覚がふっと立ち上がります。ただ、その楽しさの先には、鍵を知って元に戻す復号(decryption)と、鍵に触れずに平文や鍵を引き出そうとする暗号解読(cryptanalysis)は別物だ、

紙と鉛筆で短い暗号文の文字を数え、まずはEやTらしい文字に印を付けていくと、暗号を「読む」感覚がふっと立ち上がります。
ただ、その楽しさの先には、鍵を知って元に戻す復号(decryption)と、鍵に触れずに平文や鍵を引き出そうとする暗号解読(cryptanalysis)は別物だ、というはっきりした境界があります。
本記事は、暗号文単独攻撃・既知平文攻撃・選択平文攻撃・選択暗号文攻撃という前提条件の違いから、総当たり、頻度分析、カシスキーテスト、差分解読法、線形解読法、サイドチャネル攻撃までを見渡したい人に向けた整理です。
4桁PINが10,000通り、6桁で1,000,000通りに増え、英大文字・英小文字・数字の組み合わせは 62^n で跳ね上がるのを見ると、1桁足すだけで景色が変わる“指数爆発”が腹落ちします。
だからこそ、DESに対する 2^47 や 2^43、Davies系の 2^50、AES-128 の 2^128 といった数字は、ただの記号ではなく「どの条件なら何が現実的か」を測る物差しになります。
比較表を軸に読み進めれば、古典暗号が統計で崩れる場面と、現代暗号が強い攻撃モデルや実装のほころびを突かれて崩れる場面が一本の線でつながって見えてきます。
暗号は魔法ではなく、前提条件が変わると守りも破り方も変わる技術だ、というのがこの記事の核心です。

暗号解読とは何か——復号との違い

用語の定義と境界

ここでまず、言葉の境界をはっきりさせます。
復号(decryption)は、正当な鍵を持つ側が暗号文を元の平文へ戻す操作です。
たとえばTLS 1.3で保護された通信を、正しいセッション鍵で読む行為は復号です。
いっぽうの暗号解読(cryptanalysis)は、その鍵や秘密情報にアクセスせず、暗号文や周辺情報から平文や鍵を推定しようとする試みを指します。
つまり、正規の入口から開けるのが復号、鍵穴や扉の癖を観察して別の開け方を探るのが暗号解読です。

筆者は映画や小説の暗号シーンを見るたびに、この二つがしばしば同じ意味で扱われていると感じます。
登場人物が正規の鍵を入力しているだけなのに「解読した」と語られたり、逆に統計や推理で秘密を暴いているのに「復号」と呼ばれたりするのです。
ドラマとしては通じても、用語がずれると「暗号は鍵さえあれば全部同じ」「解くことと戻すことは同じ操作」という誤解が残ります。
暗号の話を正確に追うには、このズレを最初に取り除いておくほうが話が早いです。

この区別は、安全性の語り方にも直結します。
現代の暗号は「絶対に破れない」と言い切る対象ではなく、どんな前提を攻撃者に許すのか、そしてどれだけの計算量を要するのかという条件付きで評価されます。
たとえばAES-128の鍵空間は 2^128 通りあり、総当たりだけで現実的に崩すのは困難です。
ただし、これは「適切な前提のもとで、既知の攻撃に対して計算量的に十分強い」という意味であって、魔法の盾という意味ではありません。
古典暗号では文字頻度の偏りが近道になり、現代暗号では選択平文や実装漏えいが突破口になることがある。
この見取り図を持っておくと、個々の手法がどこに位置するかが見えてきます。

攻撃モデルの4類型

暗号解読の話は、攻撃者が何を見られるかで景色が変わります。その整理に使われる基本形が、暗号文単独、既知平文、選択平文、選択暗号文の4類型です。

暗号文単独攻撃(ciphertext-only)は、攻撃者が暗号文だけを手にしている状況です。
古典暗号の入門でよく出てくる頻度分析はここに置けます。
単一換字式暗号なら、自然言語では文字の出現頻度が均等ではないため、よく現れる記号からEやTを推定して崩していけます。
紙と鉛筆で文字を数える作業がそのまま攻撃モデルの体験版になっているわけです。

既知平文攻撃(known-plaintext)は、暗号文だけでなく、その一部に対応する平文も攻撃者が知っている状況です。
たとえば定型文やヘッダーのように、毎回ほぼ同じ内容が含まれると、その対応関係が手がかりになります。
現代暗号の研究では、線形解読法のように既知平文を多数集めて統計的な偏りを探る方法がこの枠に入ります。
DES に対する線形解読法では約 2^43 の既知平文が必要という整理があり、ここで求められる前提がどれほど強いかが数字から見えてきます。

選択平文攻撃(chosen-plaintext)は、攻撃者が自分で選んだ平文を暗号化させ、その結果の暗号文を観察できる状況です。
差分解読法はこのモデルの代表格で、入力の差分が出力にどう伝わるかという統計的偏りを利用します。
DES に対する差分解読法で約 2^47 の選択平文が必要とされるのは有名な目安です。
ここまで来ると、ただ暗号文を眺める段階とは別世界で、攻撃者に与えられた権限が一段強くなっています。

選択暗号文攻撃(chosen-ciphertext)はさらに強い前提で、攻撃者が自分で選んだ暗号文を復号させ、その応答から情報を引き出す状況です。
公開鍵暗号や通信プロトコルでは、このモデルへの耐性が設計上の焦点になります。
暗号方式そのものが数学的に堅く見えても、復号の成否やエラーメッセージの差から情報が漏れると、理論上の強さとは別の穴が開きます。

この4類型を並べると、暗号解読は「頭の良い人がなんとなく解く技」ではなく、攻撃者に何を許しているかで難度が変わる技術だとわかります。
同じ「破られた」という結果でも、暗号文しか見ていないのか、平文を選べたのか、復号装置に触れられたのかで意味がまるで違います。

前提条件で比較する意味

本記事では、これから登場する各手法を「必要な前提条件」と「何を主な対象にしているか」で並べていきます。
対象は大きく分けると、単一換字式やヴィジュネル暗号のような古典暗号、DES や AES をめぐる現代暗号、そして電力や電磁波の漏えいを突く実装です。
同じ“暗号の解き方”という題でも、見ている相手は一枚岩ではありません。

たとえば総当たり攻撃は、候補を全部試せることが前提です。
4桁の数字 PIN なら 10,000 通り、6桁なら 1,000,000 通りで、数字だけなら探索空間は 10^n で増えていきます。
英大文字・英小文字・数字を使うと n 文字で 62^n です。
これは理屈がまっすぐで、読者が最も直感を持ちやすいタイプです。
いっぽう頻度分析やカシスキーテストは、自然言語の偏りや繰り返し周期があることを利用するので、古典暗号では鋭く刺さりますが、現代の強い暗号にはそのまま通用しません。

さらに差分解読法や線形解読法になると、必要なのは根気ではなく、強い攻撃前提と統計的な偏りです。
加えて、サイドチャネル攻撃は暗号アルゴリズムの数式そのものではなく、実装から漏れる電力や電磁波を足場にします。
ここでは「暗号が強いか」だけでは足りず、「どこで動かし、何が漏れるか」が争点になります。
AES や DES のような強い暗号でも、実装の漏えいから鍵抽出につながるのはこの層の話です。

ℹ️ Note

暗号の強さを比べるときは、方式名だけでなく「攻撃者は何を見られるのか」「何回試せるのか」「数学を攻めているのか実装を攻めているのか」を並べると、同じ“破る”でも中身が整理できます。

量子計算の話題も、この「前提条件」で見ると落ち着いて理解できます。
Shor のアルゴリズムは理論上、RSA や楕円曲線暗号の土台を崩し得る一方で、実用規模には大きな量子資源が必要です。
Grover のアルゴリズムは総当たり探索を平方根化するため、対称鍵暗号では鍵長の見積もり方が変わります。
もっとも、ここでも「すぐ全部危険」と断じるのではなく、どの方式に、どの計算資源で、どの程度の脅威があるのかという条件付きで読むのが筋です。
この記事が手法ごとに前提条件を揃えて比べるのは、そのためです。

暗号解読の方法一覧——まず全体像をつかむ

比較表

手法の名前だけを眺めると、どれも「暗号を破る方法」に見えます。
けれど実際には、暗号文だけがあるのか、平文の一部を知っているのか、こちらで入力を選べるのか、実装の電力や時間を観測できるのかで、使える道具はまるで変わります。
筆者はこの表を、暗号解読の“路線図”のようなものだと捉えています。
どの駅から乗れるのかがわかると、無駄に遠回りしません。

手法名対象必要前提(暗号文単独・既知平文・選択平文・実装観測など)古典or現代代表例現実性メモ
総当たりパスワード、PIN、短鍵の暗号鍵候補を順に試せること古典/現代の両方4桁PINは10,000通り、6桁PINは1,000,000通り、数字のみn桁は10^n、英大文字・英小文字・数字n文字は62^n、AES-128鍵空間は2^128理屈は単純ですが、探索空間が少し広がるだけで現実味が急落します。短いPINや弱いパスワードでは現場性が高く、AES-128の全探索は別格です。
辞書・ハイブリッド人が決めたパスワード、パスフレーズ由来鍵よく使われる単語や変形規則を試せること現代寄り辞書語に数字や記号を足す候補列挙純粋な総当たりより候補を絞れる場面で強く、人間由来の偏りを突けると当たりが出ます。ランダム生成鍵には向きません。
頻度分析単一換字式暗号など暗号文単独、かつ自然言語の文字頻度の偏りが残っていること古典英文でETの頻度を手がかりに置換を推定古典暗号では実戦級です。現代暗号の出力は統計的に均されるので、この発想だけでは崩れません。
カシスキーテスト反復キーワード型の多表式暗号暗号文単独、繰り返し列から鍵長推定ができること古典ヴィジュネル暗号の鍵長推定まず鍵長を絞り込み、その後に各列を頻度分析へ持ち込む流れが定番です。古典暗号なら手触りのある有効打になります。
差分解読法主にブロック暗号選択平文が必要。入力差分と出力差分の偏りを観測できること現代DESへの研究攻撃、必要な選択平文は約2^47数学的に洗練された手法ですが、前提は強めです。DES設計ではこの種の攻撃への耐性が意識されていました。
線形解読法主にブロック暗号既知平文が必要。線形近似の偏りを大量データで拾うこと現代松井充によるDESへの適用、必要な既知平文は約2^43理論と統計の橋渡しになる代表手法です。必要データ量が大きく、古典暗号の“ひらめき型”とは別の世界が見えてきます。
関連鍵攻撃鍵スケジュールに弱点がある暗号方式複数の関連した鍵を使う状況を攻撃者が利用できること現代鍵同士の差分が制御された条件での解析方式そのものより、鍵の関係が攻撃条件に入るのが特徴です。一般利用でその前提が出ない設計なら刺さりません。
サイドチャネル攻撃(SPA/DPA/CPA)暗号の実装全般実装観測。電力、電磁波、処理時間などの漏えいが取れること現代AESやDES実装への電力解析、入門例ではAES-128を16×256試行規模で説明することがある暗号方式が強くても、実装から鍵が漏れれば崩れます。数式ではなく“動かし方”が攻撃面になるのが肝です。
Davies系攻撃DES既知平文が必要現代2^50既知平文、計算量2^50、成功率51%DESでは差分・線形以外にも統計攻撃の系譜があります。成功率まで含めて読むと、理論攻撃の輪郭がつかめます。

この一覧でまず見ておきたいのは、手法は万能ではないという点です。
たとえば頻度分析は古典暗号に鋭く効きますが、AESやChaCha20のような現代暗号にはそのまま持ち込めません。
反対に、差分解読法や線形解読法は現代暗号の文脈で語られる代表手法ですが、暗号文を1本拾っただけで気軽に振り回せるものでもありません。
前提が満たせるかどうかで、最初から候補から外れる手法がたくさんあります。

主要手法のワンポイント解説

総当たりは、暗号解読の世界でいちばん“正直”な手法です。
近道を探すのではなく、候補を全部試す。
それだけです。
だからこそ、読者が最初に感覚をつかむには向いています。
4桁PINなら10,000通り、6桁で1,000,000通りまで増え、文字種が増えると 62^n の勢いで膨らみます。
ここで見えるのは、1文字や1桁の追加が、体感以上に重いということです。
AES-128の 2^128 まで行くと、同じ“全部試す”でも、もはや別の宇宙の話になります。

辞書・ハイブリッドは、人が作る秘密には癖が出るという事実を使います。
誕生日、単語、作品名、そこに末尾の数字や記号を足しただけの変形は、完全ランダムよりずっと候補を絞れます。
ここは数学というより人間観察に近い層で、パスワード解析の現場感が強く出ます。
総当たりの前に辞書を当てる、あるいは辞書の後に規則変形を重ねる、という順序は自然です。

頻度分析は古典暗号の花形です。
単一換字式暗号なら、平文の言語が持つ偏りがそのまま足跡になります。
筆者は紙に文字を並べて出現回数を数える作業が好きですが、これは単なるパズル遊びではなく、統計的な偏りを手作業で拾っているわけです。
暗号文単独でも始められるぶん、古典暗号の入口として強い魅力があります。

カシスキーテストはヴィジュネル暗号のような多表式暗号に対して、いきなり全文を読むのではなく、まず鍵長を探る手法です。
繰り返し現れる暗号文断片の間隔から周期を推定し、鍵長の候補を絞る。
そのうえで各列を別々に見ると、ふたたび頻度分析の世界に戻れます。
つまり、カシスキーテストは単独で完結するというより、次の解析に道を開く“前さばき”です。

差分解読法と線形解読法は、現代暗号の数学的な攻め筋として並びます。
差分解読法は入力差分と出力差分の伝わり方に偏りが残るかを見ます。
DESでは約2^47の選択平文が目安として知られています。
線形解読法は、暗号の内部を線形近似でなぞり、その偏りを大量データから拾い上げます。
こちらはDESで約2^43の既知平文が目安です。
数字だけ見ると圧倒されますが、むしろここでは「強い前提と大量データが必要な世界なのだ」と読むのが本筋です。

Davies系攻撃もDESを語るときの見取り図に入れておくと、差分・線形だけが現代暗号解析の全景ではないことが見えてきます。
2^50既知平文、計算量2^50、成功率51%という値は、ただ“破れるか破れないか”の二択ではなく、どの程度の条件で、どのくらいの確率で、どのくらいのコストなのかまで含めて評価する視点を与えてくれます。

関連鍵攻撃は、ふだんの入門記事では見落とされがちですが、鍵どうしの関係が攻撃面になる点が独特です。
暗号そのものが単体で弱いというより、関連した鍵が使われる前提に隙があると刺さる。
つまり「暗号方式」と「運用条件」が切り離せないタイプの手法です。
表で独立させておくと、数学だけ見ていても足りない理由が伝わります。

サイドチャネル攻撃は、路線図の中でも線路が一本だけ別の方向へ伸びています。
ここで狙うのは暗号アルゴリズムの理論ではなく、実装から漏れる電力、電磁波、処理時間です。
AESでもDESでも、数式として堅く設計されていても、動かした瞬間に情報が外へにじめば鍵抽出の足場になります。
SPAは波形を目視するような単純電力解析、DPAやCPAは多数の測定を統計処理して鍵候補との相関を見る方法です。
入門的な説明ではAES-128の各バイトに対して16×256試行規模という表現が出てきますが、ここで注目したいのは試行回数そのものより、「総当たりではない近道が実装側から生まれる」という発想です。

ℹ️ Note

手法名を暗記するより、「暗号文だけで始めるのか」「平文を集められるのか」「入力を選べるのか」「装置を観測できるのか」を先に見ると、どの手法が候補に残るかが一気に絞れます。

最初の判断フロー

現場の感覚では、最初から差分解読法や線形解読法へ飛び込むことはまずありません。
筆者がCTFで暗号問題に触れるときも、いちばん先に見るのは「これは総当たりや辞書で当たる類いか」という点です。
短い鍵、弱いパスワード、ありがちな単語、作品名、数字の置換、末尾の年号。
そこに当たりがなければ、次に「暗号文単独で統計が使えるか」を見ます。
文字頻度が偏っている、同じ断片が繰り返される、アルファベット中心で古典暗号らしい手触りがある。
ここまでで古典暗号か、少なくとも“人間っぽい秘密”かどうかの輪郭が見えてきます。

そのどちらにも引っかからないときは、前提条件をひとつずつ増やして考えます。
既知平文があるのか、選択平文が許されるのか、暗号装置のふるまいを観測できるのか。
ここで初めて、差分、線形、関連鍵、サイドチャネルといった手法が候補に入ります。
いきなり高度な方法へ行くのではなく、いま手元にある条件で届く範囲から順に切り分けるわけです。
この順番を持っていると、派手な名前の手法に引っ張られずに済みます。

判断の流れを言い換えると、こうなります。
まずは総当たりや辞書で当たるほど候補空間が狭いか。
違うなら、暗号文単独で頻度や周期が読める古典暗号か。
さらに違うなら、既知平文や選択平文のような強い攻撃モデルが成り立つか。
そこでも道が開かないなら、数学ではなく実装観測へ視点を移す。
この流れを頭に置いておくと、一覧表の各行がバラバラの豆知識ではなく、前提条件に応じて並ぶ道具箱として見えてきます。

手で追える古典暗号の解読法

頻度分析の手順

単一換字式暗号の面白さは、見た目はバラバラでも、言葉の癖までは消せないところにあります。
平文でいちばん多く現れる文字は、暗号文になっても「別の文字として、やはり多く現れる」はずです。
英語ならETA、日本語をローマ字で書いた文でも母音が目立ちます。
つまり、解読の入口は偏りです。
山が高い文字、あまり出ない文字、その凹凸が足跡になります。

紙と鉛筆で追うなら、流れは四つに分けると見通しが立ちます。

  1. まず暗号文の各文字を数え、簡単な頻度表を作ります。どの文字が何回出たかを並べるだけで、暗号文の表面がぐっと立体的になります。
  2. 次に、高頻度の文字に平文の有力候補を当てます。英語文なら、いちばん多い文字をEかもしれない、次をTかもしれない、と仮置きします。
  3. その仮説を、短い語の形で確かめます。1文字語、2文字語、同じ文字が並ぶ形、語尾の繰り返しといったパターンは、単発の頻度よりも強い手掛かりになります。
  4. 合わないところが出たら、対応表を少し戻して組み替えます。全文で読んだときに無理のない単語や文になるかを見て、整合性をチェックします。

ここで効いてくるのは、数字のような一発の正解ではなく、仮説どうしのつながりです。
筆者が短い暗号文を手で解くときも、最頻出だからEだろうと決めた文字が、二文字語に当てはめた瞬間に妙な形になることがよくあります。
そこで消しゴムを入れて、TかAに戻してみる。
すると別の箇所の単語らしさが急に増える。
この行きつ戻りつが、古典暗号のいちばん気持ちいいところです。
解読は一直線ではなく、推理小説の伏線回収のように、後ろから前の仮説を照らし直します。

頭の中では、こんな図を思い浮かべるとつかみやすくなります。
平文の文字列には、背の高い棒と低い棒が並ぶ「頻度の地形」があります。
単一換字式暗号は、その棒のラベルだけを張り替える操作です。
棒の高さそのものは残るので、地形を見れば元のラベルを逆算できる、というわけです。

カシスキーで鍵長を見抜く

ヴィジュネル暗号になると、単一換字式暗号のように「文字ごとの偏りをそのまま読む」ことが難しくなります。
ひとつの置換表ではなく、鍵の長さぶんだけ別々のシーザー暗号が周期的に回るからです。
ここで狙うべきなのが周期です。
頻度ではなく、まず繰り返しの間隔に目を向けます。

カシスキーテストの流れは素朴です。
暗号文の中で同じ3文字以上の並びを探し、その出現位置の距離を測ります。
もし同じ平文断片が、同じ鍵位置で暗号化されていたなら、同じ暗号文断片として現れます。
その距離は鍵長の倍数になりやすいので、いくつかの距離の最大公約数を取ると、鍵長候補が浮かびます。

直感としては、メリーゴーラウンドの座席番号を想像するとわかりやすいのが利点です。
3人乗りの回転なら、同じ席に戻るのは3回ごとです。
4人乗りなら4回ごとです。
ヴィジュネル暗号でも、同じ鍵文字が当たる位置は一定周期で戻ってきます。
繰り返し断片の距離を測るのは、その回転の周期を見抜く作業です。

鍵長候補が出たら、暗号文をその長さごとに縦へ並べ替えます。
鍵長が3なら、1文字目・4文字目・7文字目……を第1列、2文字目・5文字目・8文字目……を第2列、3文字目・6文字目・9文字目……を第3列に分ける、という形です。
ここで景色が変わります。
各列は「同じ鍵文字でずっとずらされた列」なので、実質的にはシーザー暗号として読めます。
各列ごとに頻度分析をかければよいわけです。

この二段構えが、古典暗号らしい美しさを持っています。
単一換字式暗号で使った偏りの読み方は、そのままでは届かない。
そこで先に周期を見抜き、暗号文を列にほどいてから、もう一度偏りへ戻る。
偏りと周期という二つの構造が、別々の角度から扉を開けてくれます。

小さな作例と答え合わせ

では、紙の上で追えるサイズに縮めてやってみます。まずは単一換字式暗号の小例です。

暗号文を QXXEA QXFEA とします。

文字を数えると、Qが2回、Xが4回、Eが2回、Aが2回、Fが1回です。
いちばん多いXを、まずはEかもしれないと置いてみます。
すると5文字語が ? E E ? ? といった形になります。
同じ5文字語が少し形を変えて2回出るので、語尾が共通する単語かもしれない、と考えられます。
ここで同じ位置のQとFだけが違い、他は同じなので、平文でも1文字だけ違う近い単語である可能性が高いと読めます。

答えを明かすと、これは平文 HELLO HERO を単一換字した形です。
対応の一部はH→QE→XL→EO→AR→Fです。
最頻出文字を起点にしつつ、同じ形の語を比べると、一文字差の単語が浮かびます。
短文でも、頻度だけではなく語の骨格が効くことがわかります。

続いて、ヴィジュネル暗号の作例です。暗号文を LXFOPVEFRNHR とします。長さは12文字なので、手で追うにはちょうどいい分量です。

この暗号文では、短すぎてはっきりした繰り返し断片が多くありません。
実戦ではもう少し長い文のほうがカシスキーテストは効きますが、流れを体験するには十分です。
ここでは答え合わせを兼ねて、鍵長候補が5だとわかった場面から追います。
12文字を鍵長5で並べると、列はこう分かれます。

  • 第1列: 1, 6, 11文字目
  • 第2列: 2, 7, 12文字目
  • 第3列: 3, 8文字目
  • 第4列: 4, 9文字目
  • 第5列: 5, 10文字目

各列はそれぞれ別のシーザー暗号です。
ここで列ごとに「どのずれ量なら英語らしい文字分布に戻るか」を見ます。
短文なので頻度表は粗いのですが、母音が出そうな位置、ありがちな並び、既に読めた断片とのつながりを使って少しずつ寄せていけます。
答えは平文 ATTACKATDAWN、鍵は LEMON です。

この例で見てほしいのは、鍵長がわかった瞬間に暗号文の見え方が変わるところです。
ひとかたまりだった12文字が、5本の細い列に分かれた途端、それぞれがシーザー暗号として扱えるようになります。
大きな錠前を無理にこじ開けるのではなく、まず歯車の周期を見つけて分解し、小さな錠前にしてから順に開ける感覚です。

💡 Tip

古典暗号の手解きでは、偏りを見る目と、周期を見る目を行き来すると道筋が見えてきます。単一換字式暗号では「どの文字が目立つか」を追い、ヴィジュネル暗号では「どの間隔で同じ鍵位置が戻るか」を追う。この切り替えが、解読をただの当てずっぽうから推理へ変えます。

短い作例でも、解読の楽しさは十分に味わえます。
最頻出文字をEと見て進めた仮説が外れ、別の対応へ差し替えた瞬間に単語の輪郭が立ち上がることがありますし、鍵長候補がひとつ定まった途端、それまでノイズだった列が急に読める列へ変わることもあります。
古典暗号が今もパズルとして愛されるのは、ここにあります。
力任せではなく、言葉の癖と繰り返しの癖を読む。
その手触りが、紙の上できれいに残るからです。

総当たり攻撃はなぜ最後の基準になるのか

鍵空間のスケール感

総当たり攻撃がいつも話題に上るのは、理屈がいちばん素直だからです。
候補を一つずつ試し、当たりにぶつかるまで進む。
発想としては金庫のダイヤルを端から回すのと同じです。
ただし、ここで本当に見るべきなのは手法そのものより、候補の総数=鍵空間です。

数字4桁のPINなら候補は 10,000通り です。
数字6桁なら 1,000,000通り、8桁なら 100,000,000通り になります。
ここで効いてくるのが 10^n という増え方です。
1桁増えるたびに「10個増える」のではなく、候補全体が10倍に膨らみます。
4桁から6桁へは2桁しか増えていないのに、10,000通りが1,000,000通りになります。
暗号や認証の世界では、この指数の増え方が景色を一変させます。

英大文字・英小文字・数字を使うなら、1文字ごとに候補は62通りです。
長さがnなら探索空間は 62^n です。
ここでも「文字が少し長くなるだけ」の感覚が通用しません。
たとえば1文字増えるたびに62倍です。
数字だけの 10^n でも十分に急ですが、62^n はさらに傾きがきつい坂です。
短いパスワードと少し長いパスワードの差が、見た目以上に大きく開くのはこのためです。

筆者はこの話をするとき、ストップウォッチの感覚で考えるようにしています。
1秒に1回しか試せない場面では、数字6桁でも延々と待つ感じがあります。
ところが1秒に10万回試せる場面へ移ると、同じ探索でも時間の流れが別物になります。
4桁、6桁、8桁という並びは、桁数の差というより「時間の単位が何段階も飛ぶ差」として見たほうが実感に近いです。
秒で終わるものが、分になり、時間になり、その先へ伸びていく。
この伸び方を支配しているのが指数です。

この感覚は現代暗号の鍵長に触れると、さらにはっきりします。
AES-128の鍵空間は 2^128 です。
4桁PINの10,000通りや、6桁PINの1,000,000通りとは、同じ「総当たり」という言葉で並べても別世界です。
理論上は候補を順に試せばいつか正解へ届きますが、2^128 という桁の壁は、日常的な計算資源で眺める数字ではありません。
総当たりは万能のものさしに見えて、実際には鍵長が少し伸びるだけで現実味を失います。

オンライン/オフライン/辞書の違い

総当たり攻撃とひと口に言っても、現場では何をどこで試すかで現実性が変わります。いちばんわかりやすい違いが、オンラインオフライン です。

オンライン攻撃は、ログイン画面や認証APIのように、相手のシステムへ一回ずつ試行を送る形です。
この場合、攻撃者は試すたびに相手のルールを受けます。
レート制限、ロックアウト、遅延、IP単位の制御、そしてreCAPTCHAのようなCAPTCHAが入ると、1秒1回どころか、もっとゆっくりになります。
鍵空間そのものより、試行レートを絞られることが効いてきます。
数字6桁でも、ネット越しに一回ずつ叩くのと、手元で猛烈な速度で検証できるのとでは、体感がまるで違います。

オフライン攻撃は、盗まれたハッシュや暗号化データを手元で検証する形です。
こちらは認証サーバのレート制限もロックアウトも受けません。
だからこそ「1秒10万回」という感覚が現実味を帯びます。
同じ候補数でも、オンラインでは門番が一回ごとに止めに来るのに対し、オフラインでは広い駐車場を端から走り回れるようなものです。
総当たりの話で試行回数だけを見てしまうと、この差を見落とします。

これは教育的な例示であり、実運用で要求される試行回数や成功確率は観測品質、ノイズ、保護策(マスキングやノイズ注入)などによって大きく変わります。
したがって入門例の数値は考え方を示すための目安として理解してください。

リバースブルートフォース も見落とされがちです。
これは「一つのアカウントにたくさんの候補を当てる」のではなく、「一つのよくある候補を、たくさんのアカウントに当てる」発想です。
個別アカウントのロックアウトを避けつつ、どこかで弱いパスワードに当たるのを狙います。
総当たりという言葉から連想する一直線の全探索より、実務の攻撃はこうした変種のほうがむしろ人間くさい偏りを突いてきます。

“最後の基準”としての位置づけ

総当たり攻撃が「最後の基準」と呼ばれるのは、どんな巧妙な近道も使えないときに、なお残る普遍的な攻め筋だからです。
頻度分析のように言語の偏りへ乗るわけでもなく、差分解読法や線形解読法のように構造上の偏りを突くわけでもない。
候補空間が有限で、試行できるなら、理論上はいつか成功します。
だから暗号や認証の強さを考えるとき、最終的には「では全探索に耐えるか」がものさしになります。

ただし、その“いつか”が実務上の脅威になるかどうかは、鍵長と試行環境(保存年限、運用実態、誤り訂正を含む量子資源の要件など)がどのように組み合わさるかで決まります。
単純に「いつか破られる」と断定する表現は避けてください。

実務の設計では、この発想を単独で使いません。
長いランダムなパスフレーズで候補空間そのものを押し広げ、オンライン側ではレート制限やロックアウトで試行速度を落とし、さらにMFAで一要素突破の価値を下げる、という多層構えが基本です。
たとえばパスワードが多少推測されやすくても、ログイン試行が絞られ、追加要素が要求されるだけで、総当たりの現実味は急にしぼみます。
逆に、短いパスワードを一つ置いただけでは、総当たりに対して裸同然です。

⚠️ Warning

総当たりは「最強の攻撃」だから基準になるのではありません。近道が全部ふさがれたあとにも残る、逃げ道のない比較軸だから基準になります。鍵空間を広げることと、試行回数を稼がせないことを同時にやる設計が、ここで効いてきます。

この見方を持つと、暗号の強さを「破れるか破れないか」の二択で眺めずに済みます。
どれだけ候補があり、どんな順序で狙われ、どこで試せて、どれだけの速度で回るのか。
その四つを重ねると、総当たり攻撃は単なる力任せではなく、計算量を読むための基準線として見えてきます。

数学的攻撃——差分解読法と線形解読法

差分解読法の直感と前提

差分解読法は、ブロック暗号に対する代表的なショートカット法です。
見るところは「暗号文そのもの」よりも、2つの入力の差が、暗号化の途中や出力でどう伝わるかにあります。
発想としては、同じ迷路を1人で歩くのではなく、少しだけ出発点をずらした2人を同時に入れて、そのズレが出口でどう現れるかを観察する感じです。

この手法の核になるのは、入力差分と出力差分のあいだに偏りがあるかという点です。
理想的な暗号なら、ある入力差分を与えても、出力差分はほぼ無秩序に散ってほしいところです。
ところが、S-boxやラウンド関数の設計が甘いと、特定の入力差分から特定の出力差分が思ったより高い確率で現れます。
そこに統計の“ひっかかり”が生まれ、鍵候補を絞る足場になります。

ここでいう差分は、普通は2つの値の XOR 差分として扱います。
つまり「何文字違うか」ではなく、「ビット単位でどこが反転しているか」を見るわけです。
暗号の内部は非線形で入り組んでいますが、差分という見方をすると、どのズレがどこへ流れ込みやすいかを追跡できます。
差分解読法は、その偏りを多段のラウンドにまたがって組み合わせ、最終的に鍵に関する情報へ変換していきます。

前提条件は強めです。
典型的には選択平文攻撃で、攻撃者が差分を意図して作った平文ペアを大量に暗号化させられる状況を想定します。
だから古典暗号の頻度分析のように、暗号文を眺めてひらめくタイプとは世界が違います。
むしろ、実験計画を組んで統計を回収する研究室的な攻撃です。
DESに対する古典的な差分解読法では、理論上およそ 2^47 の選択平文が必要とされます。
これは「近道」と呼ばれても、気軽に持ち出せる抜け道ではないことも同時に示しています。

筆者が初学者にこの話をするときは、いきなりDES全体へ入らず、小さなS-boxを紙に書き出すやり方をよく勧めます。
たとえば入力値を順番に並べ、そこから1ビットだけ違う入力ペアを作って、出力の XOR 差分を表に埋めていくのです。
数行でも埋めると、「この入力差分だと、この出力差分が妙に何度も出るな」という偏りが目で見えてきます。
差分解読法の面白さは、あの瞬間にいっきに具体物になります。
抽象語だった“偏り”が、紙の上の回数として立ち上がるからです。

もちろん、現代の主要ブロック暗号はこの種の観察を前提に設計されています。
差分の流れに偏りが出ないよう、S-boxの性質やラウンド構造が吟味され、特定の差分経路が高確率で残らないよう抑え込まれています。
ここで暗号設計は「動けばよい」から一歩進み、「どんな統計テストを掛けられても足場を与えない」方向へ進化しました。

線形解読法の直感と前提

線形解読法もまた、暗号を真正面から総当たりせず、偏りを使って近道を探す手法です。
ただし差分解読法が「入力のズレと出力のズレ」を追うのに対し、線形解読法は平文・暗号文・鍵ビットのあいだに成り立つ線形近似式の偏りを使います。
暗号が理想的なら、そうした近似式は半々でしか当たりません。
ところが実際の構造には、ほんの少しだけ当たりやすい式が存在することがあります。

イメージとしては、複雑な機械を100%再現するのではなく、「このスイッチとあのランプには、少しだけ相関が残る」という弱い規則を大量観測で拾うやり方です。
1回ごとの観測ではノイズに埋もれますが、データを山ほど集めると、五分五分からわずかにずれた偏りが見えてきます。
その偏りの向きと大きさから、正しい鍵候補がほかより少し有利になります。

ここでいう線形近似は、平文のあるビット群、暗号文のあるビット群、そして部分鍵のビットに対して XOR を取った式が、ちょうど半分ではなく少しだけ多く成り立つ、という形で表されます。
暗号は非線形部品で守られているのに、なぜ線形近似が効くのかというと、S-boxのふるまいに完全な均一性がないからです。
非線形の塊にも、遠目で見ると少し傾いた影が落ちる。
その影を拡大鏡で拾うのが線形解読法です。

DESに対する線形解読法では、古典的な結果としておよそ 2^43 の既知平文が必要とされます。
差分解読法より攻撃モデルは一段ゆるく、選択平文ではなく既知平文で議論される点が特徴です。
ただし必要データ量はなお巨大で、ここでも「理論上の近道」と「現場で簡単に使える攻撃」は別物だとわかります。

この分野で決定的な名前が松井充です。
線形解読法は、ブロック暗号解析の風景を一段深くしました。
差分解読法が差の伝播を見るなら、線形解読法は相関の偏りを見る。
どちらも統計の二次的な偏りを使う点で共通していますが、見る角度が違います。
その違いが、暗号設計者に「一方向の強さだけでは足りない」と突きつけました。
差分には強いが線形には弱い、あるいはその逆、という設計では足元をすくわれるからです。

この手法を直感でつかむには、コイン投げの比喩が役立ちます。
表と裏がそれぞれ50%ずつ出るコインなら表と裏は半々ですが、ほんの少しだけ表に寄るコインを何千回も投げれば、その偏りは数字に現れます。
線形解読法で拾うのは、まさにその“ほんの少しだけ”です。
暗号の1回の実行だけ見ても意味は薄いのに、大量データを並べると式の偏りが鍵候補の順位を変えてしまう。
この統計の積み上がりが、現代暗号研究の醍醐味でもあります。

DESと“耐性設計”の歴史

差分解読法と線形解読法が面白いのは、単にDESを攻撃したからではありません。
暗号設計の歴史そのものを塗り替えたからです。
DESをめぐる物語には、IBMとNSAが関わり、S-boxの設計が長くブラックボックスのように見えていました。
そのため当時は「なぜこのS-boxなのか」が外から読みにくかったのですが、のちに見えてきたのは、IBMが差分攻撃への耐性を設計目標として意識していたという筋書きです。
公表より先に、差分的な発想に近い知見が内部で共有されていたことが示唆され、暗号史の有名な伏線回収になりました。

ここで対照的に語られるのがFEALです。
FEALは教育的な意味で象徴的な存在で、差分解読法が威力を示す舞台になりました。
差分や線形の偏りが抑え切れていない設計は、見た目の複雑さとは別に、統計の近道を許してしまうことをはっきり見せたわけです。
暗号は「複雑なら強い」ではなく、「どんな偏りが残るかまで管理されているか」で評価される。
この転換点にDESとFEALが並んで立っています。

DES周辺には、差分・線形以外の統計攻撃の系譜もあります。
Davies系攻撃はその代表で、2^50 の既知平文、計算量 2^50、成功率 51% という輪郭で語られます。
成功率が五分五分を少し上回る程度でも、そこに「完全なランダムではない偏り」があること自体が研究上の意味を持ちます。
ここでもポイントは、暗号解析が白黒ではなく、偏りの大きさと必要データ量と計算量の釣り合いで語られることです。

この歴史が残した教訓は、現代の主要ブロック暗号の設計哲学にそのまま入っています。
AESを含む現在の代表的な方式は、差分解読法と線形解読法への耐性を中心条件として設計されています。
S-boxの非線形性、差分一様性、線形特性の偏り、ラウンドをまたいだ拡散の速さといった要素が、最初から評価軸に組み込まれています。
言い換えると、現代暗号は「暗号文が読めない」だけでなく、「統計的な足跡が残らない」ことまで求められているのです。

映画や小説の暗号では、ひらめき一発で秘密が剥がれる場面が絵になります。
けれど現代暗号の本番は、そうしたドラマよりずっと地味で、ずっと精密です。
紙に小さなS-boxを書いて偏りを数える作業の延長線上に、DESの設計思想やAESの安全性評価があります。
地味な表計算のように見えるその世界が、実は現代暗号研究のど真ん中です。

暗号アルゴリズムではなく実装を破る——サイドチャネル攻撃

数学の世界で暗号を攻める話が、前のセクションまでの主役でした。
ここで景色が少し変わります。
現代の「解読」は、数式の弱点だけを探すものではありません。
暗号アルゴリズムそのものは堅くても、それを動かす回路やソフトウェアのふるまいから鍵がにじむことがあります。
金庫の番号を計算で当てるのではなく、ダイヤルを回す手つきや金属音から中身を読むような発想です。
これがサイドチャネル攻撃です。

SPA/DPA/CPAの違い

サイドチャネル攻撃の入門でまず出てくるのが、SPA、DPA、CPAという三つの略語です。
どれも電力消費などの観測データを使いますが、見ているものと、鍵候補を絞るための手つきが違います。

SPA(Simple Power Analysis)は、単一のトレースをそのまま読むやり方です。
暗号処理中の電力波形を一回ぶん観測し、その形の違いから分岐や演算内容を推測します。
たとえば、あるビットが1のときと0のときで処理の流れが違えば、波形の特定区間に目で見える差が出ることがあります。
これは統計というより、波形の“癖”を直接読む攻撃です。
分岐のある実装や、秘密値に応じて処理順序が変わる実装では刺さります。

DPA(Differential Power Analysis)は、単発では見えない差を大量の観測で浮かび上がらせるやり方です。
複数のトレースを集め、ある鍵候補を仮定したうえで中間値を予測し、グループ分けや差分計算をして偏りを見ます。
1本の波形ではただのざわつきに見えても、何十本、何百本と重ねると、正しい鍵候補だけに対応する位置で差が立ち上がることがあります。
筆者はこの瞬間を、研究室でオシロスコープの画面をのぞき込む場面と結びつけて想像します。
ICカードの電力トレースを何十本も取り、最初はほとんど平らに見えた統計量が、処理を重ねるうちに一か所だけ山として持ち上がってくる。
あの“見えた”感覚こそ、サイドチャネル攻撃の手触りです。

CPA(Correlation Power Analysis)は、DPAをもう一段整理した形と考えるとつかみやすくなります。
鍵候補ごとに「この中間値なら、電力はこう変わるはずだ」という消費モデルを置き、実測トレースとの相関を計算します。
DPAが差分を見るのに対し、CPAは相関係数の山を見る方法です。
中間値のハミング重みやハミング距離を手がかりにする説明が定番で、正しい鍵候補だけが高い相関を示します。
統計処理の筋道が明快なので、教育用の例ではこちらが紹介されることも多いです。

1バイトごとに256通りの鍵候補を試し、それを16バイトぶん繰り返す形で話が進みます。
16×256回規模の候補評価で各バイトの正解を探るイメージです。
もちろん、これは攻撃の前提がそろった教材向けの見取り図で、実際には観測品質や対象実装の保護策によって難しさは変わります。
それでも、鍵空間全体を総当たりするのではなく、中間値に切り分けて局所的に当てにいくのがサイドチャネル攻撃の面白いところです。

情報が漏れるメカニズム

では、なぜ電力や電磁波から鍵の情報が漏れるのでしょうか。
理由は単純で、計算は物理現象だからです。
ビットを反転させ、レジスタに値を書き込み、メモリを読み出すたびに、回路はわずかに電流を使い、周囲に電磁的な痕跡を残します。
理想的な数学の世界では「AESはAES」ですが、現実のチップ上では「どの値を、どの順番で、どの部品に通したか」が波形としてにじみます。

この“にじみ”は、電力消費だけに限りません。
電磁波、処理時間、キャッシュアクセスの癖、分岐予測の揺れ方まで、観測できるなら攻撃面になります。
タイミング攻撃が典型で、秘密値によって処理時間がわずかに変わると、その差を外から測って鍵の一部を推定できます。
電磁波解析は、電源ラインに直接触れなくても近接観測で情報を拾える場面があります。
アルゴリズム攻撃が暗号文や平文の関係を解析するのに対し、こちらは実装が外に漏らした物理的な副作用を読むわけです。

たとえばAESでは、平文1バイトと鍵1バイトから最初のS-box入力や出力が決まります。
攻撃者は平文を知っていて、鍵候補を1つ仮定できます。
すると、その鍵候補が正しければ中間値はこうなる、という予測が立ちます。
次に、その予測値と実際の電力トレースのある時点を比べ、相関が高い候補を探します。
これを各バイトについて繰り返すと、暗号方式そのものを破らなくても、実装が計算した途中の姿から鍵に近づけます。

ここで前提条件も、数学的解読とははっきり違います。
サイドチャネル攻撃には、対象デバイスに近づけること、トレースを取れること、観測を何度も繰り返せることが必要です。
ICカード、組み込み機器、セキュアエレメント、暗号アクセラレータのように、実機が手元にある世界では現実味が出ます。
逆に、暗号文だけを遠隔で眺める状況とは条件が別です。
アルゴリズムの強さと、実装観測のしやすさは別の軸なのです。

ℹ️ Note

サイドチャネル攻撃が教えてくれるのは、暗号の安全性が「方式」と「実装」の掛け算で決まるということです。方式が堅くても、実装が漏れれば全体の強度はそこで頭打ちになります。

実務の対策と限界

実務での対策は、一枚岩ではありません。ひとつの魔法で消える話ではなく、漏えいを減らす層を何枚も重ねる発想になります。

代表的なのがマスキングです。
中間値をランダムな値で覆い、回路が直接「鍵そのもの」と結びついた電力パターンを出さないようにします。
攻撃者から見えるのは、鍵ではなく乱数で揺らされた値になるので、単純な相関が取りにくくなります。
特にAESのようにS-boxを多用する処理では、マスキング設計が防御の中心に置かれます。

もう一つの方向がハイディング、つまりノイズ付加や信号の見えにくさを増す工夫です。
ダミー演算を入れる、タイミングをばらす、電力波形に揺らぎを持たせる、筐体のシールドで電磁観測を難しくする、といった対策がここに入ります。
攻撃側は統計でノイズをならしてきますが、観測コストを押し上げられれば、それだけ現実的な成功率は落ちます。

ソフトウェア側では定数時間実装が欠かせません。
秘密値によって分岐しない、テーブル参照の位置で差が出ない、処理時間が入力と鍵に依存しない、という原則です。
とくにタイミング攻撃やキャッシュ由来の漏えいでは、この原則が効きます。
暗号アルゴリズムが安全でも、実装が「0ならこの道、1ならあの道」と動けば、それだけで情報を外に話してしまいます。

ただし、ここにも限界があります。
マスキングは乱数品質と実装の丁寧さが問われますし、ノイズ付加は統計量を増やせば押し切られることがあります。
定数時間実装も、コンパイラ最適化やマイクロアーキテクチャの癖まで含めて見ないと、意図せぬ漏えいが残ります。
ハードウェアのシールドも万能ではなく、観測位置や装置の工夫で突破されることがあります。
だから実務では、マスキング、ノイズ付加、定数時間化、乱数化、筐体対策を重ねる多層防御が基本線になります。

ここで見えてくるのは、現代の暗号評価が「この方式は数学的に安全か」だけで終わらないという事実です。
AESやDESのような方式の安全性を論じるだけでは足りず、それを実際に載せたICカードや組み込み機器、ライブラリ実装、CPU上の動かし方まで含めて見ないと、本当の耐性は測れません。
暗号は数式でできていますが、破られる入口は案外、電流計やアンテナや時計の針のほうにある。
そこが、サイドチャネル攻撃がこの分野に突きつけた、少し皮肉で、でもとても現実的な教訓です。

2025-2026年の文脈——量子計算とPQC移行

公開鍵/共通鍵への影響差

量子計算の話題が出ると、「暗号が全部まとめて終わるのか」という受け止め方になりがちです。
ここは、影響を公開鍵暗号共通鍵暗号に分けて見ると輪郭がはっきりします。

まず、いまのインターネットや企業システムで広く使われているRSAや楕円曲線暗号のECCは、量子計算機にとって本質的に相性が悪い側です。
理由はShorのアルゴリズムで、整数の素因数分解や離散対数問題を多項式時間で扱えるからです。
RSAは素因数分解の難しさ、ECDHやECDSAを支えるECCは離散対数問題の難しさに立っています。
土台そのものが量子計算で崩される可能性があるわけです。
TLS証明書で使うRSA-2048やECDSA、VPNで使う鍵交換、コード署名の公開鍵署名は、この文脈で真っ先に点検対象になります。

一方で、共通鍵暗号は話が違います。
AESのような方式に対してはGroverのアルゴリズムが未構造探索を平方根ぶん短縮します。
古典計算で鍵空間を総当たりするより速くなるのは確かですが、これはShorのように仕組みを根こそぎ無力化するタイプではありません。
探索回数が平方根化されるので、鍵長を増やして受け止める発想が取れます。
AES-128は量子総当たりに対して理論上およそ 64 ビット相当の作業量に下がり、AES-256ならおよそ 128 ビット相当を保てる、という整理です。
ここでは「壊れるか、壊れないか」より、「必要な安全余裕を鍵長でどこまで持てるか」が論点になります。

この差は、映画の金庫破りにたとえると伝わりやすいのが利点です。
公開鍵暗号は、量子計算によって鍵穴の仕組みそのものを読まれる側です。
共通鍵暗号は、総当たりの探索係が増える側に近い。
前者は錠前の原理が通じなくなる話で、後者は見張りの人数を増やせばまだ持ちこたえられる話です。
どちらも無視はできませんが、対策の方向は同じではありません。

ただし、ここで言及した100万量子ビット未満・1週間以内に RSA-2048 を解読可能といった報道は、単一の研究による試算に基づくものです。
実用的な解読には誤り訂正を含む大規模な論理量子ビット、長時間の安定運用、その他多数の技術的条件が必要であり、学術的合意を得た結論ではありません。
したがって現時点で既存の RSA-2048 が街頭で次々と破られている、という受け取り方は誤解を招きます。

PQC移行の考え方と目安年

そこで出てくるのがPQC、つまり耐量子計算機暗号への移行です。
ここで大事なのは、量子計算機が完成してから一斉に切り替える話ではない、という点です。
暗号の移行は、新しい鍵を採用して終わりではありません。
証明書、ライブラリ、HSM、VPN装置、端末OS、ブラウザ、アプリ、署名の検証基盤まで、連鎖する部品を順番に更新していく必要があります。

しかも、量子時代のリスクは「その時点で読まれる」だけではありません。
harvest now, decrypt later と呼ばれる発想があり、いまは解読できない通信やデータでも、暗号化されたまま収集され、将来の量子計算機であとから読まれる可能性があります。
長期秘匿が必要な契約書、研究データ、設計情報、人事情報、医療関連データのように、数年先まで秘密であってほしい情報では、この時間差が効いてきます。
だから移行は、量子計算機の完成予想図ではなく、守りたい情報の保存年限から逆算して考えるのが実務的です。

筆者がこの種の話でまず頭に浮かべるのは、派手な新技術の導入より前にやるべき「暗号資産の棚卸し」です。
社内で洗い出す対象は、公開WebのTLS証明書だけでは足りません。
拠点間やリモート接続のVPN、開発パイプラインのコード署名、端末管理用の証明書、社内PKI、SaaS連携で使うクライアント証明書、古いアプライアンスに埋め込まれたRSA鍵まで並べてみると、思った以上に公開鍵はあちこちに散っています。
この一覧がない状態では、PQC移行は地図なしで街を歩くようなものです。
逆に、どこでRSAやECCを使い、どこでAESやChaCha20-Poly1305が動いているか見えるだけで、移行の順番が定まります。

移行の議論では、2030年と2035年がひとつの目安として語られます。
2030年ごろまでに主要なシステムの新規導入や更新でPQC対応を織り込み、2035年ごろを見据えて旧来の量子脆弱な公開鍵を計画的に縮退させていく、という時間軸です。
これは「その年に突然危険になる」という予言ではなく、企業や行政が調達、更新、監査、互換性検証を回すのに必要な長さから出てくる現実的なスケジュール感です。
証明書やVPNの更新は定期的に来ますが、コード署名基盤や組み込み機器は一度入ると長く残ります。
短命なWeb設定と長命な装置が同じ会社の中に同居しているので、早めに設計原則を変えておかないと、古い鍵が静かに居座ります。

ℹ️ Note

PQC移行の第一歩は、新方式の名前を覚えることではありません。TLS証明書VPNコード署名の3つを起点に、自社のどこで公開鍵暗号が動いているかを書き出すと、移行の難所が先に見えてきます。

誤解しやすいポイント

ここでいちばん避けたいのが、「量子計算機が来たら、すべての暗号がすぐ破られる」という受け取り方です。
これは半分だけ当たっていて、半分は外れています。
公開鍵のRSAやECCには本質的な脅威がありますが、共通鍵暗号やハッシュ関数は同じ形では崩れません。
対称鍵側は鍵長やパラメータの取り方で受け止める余地があり、現場の暗号が一夜で無意味になるわけではありません。

もうひとつの誤解は、「研究段階の試算が出たから、現実の攻撃能力も同じ速度で並ぶ」という見方です。
量子アルゴリズムの理論、必要な論理量子ビット、誤り訂正を含む物理資源、実機の安定運用は、それぞれ別の山です。
たとえばShorは1994年から知られていて、理論のインパクトは決定的でしたが、実験実装は長く小規模な因数分解にとどまってきました。
ここで見るべきなのは、「まだ無理だから安心」でも「もう終わりだから絶望」でもなく、移行に要する時間のほうが機械の完成を待つより長いという事実です。

さらに、PQCへ移れば何もかも解決する、という理解も少し乱暴です。
暗号の歴史を振り返ると、方式そのものの強さだけでなく、実装、鍵管理、証明書運用、署名のライフサイクルが安全性を左右してきました。
前のセクションで見たサイドチャネル攻撃の話と同じで、数式が新しくなっても、運用が古いままなら別の入口が残ります。
PQCは魔法の盾ではなく、公開鍵の前提が変わる時代に合わせて、防御線を引き直す作業です。

暗号解読の世界は、古典暗号の頻度分析から現代のサイドチャネル、そして量子計算まで、時代ごとに「どこを突くか」が変わってきました。
2025年から2026年にかけての面白さは、その変化が教科書の先ではなく、TLS証明書やVPN、コード署名といった日常のインフラにまで降りてきたことです。
暗号を解く物語が、研究室の話だけで終わらず、いま動いているシステムの更新計画そのものになっている。
ここが、現在進行形の論点として見逃せないところです。

まとめ——どの解読法も前提条件で見る

前提条件別のマップ

暗号解読は、手法名より先に「何が手元にあるか」で見ると混乱しません。
暗号文だけで挑めるのは、古典暗号なら頻度分析やカシスキー、候補空間をそのまま試せる場面なら総当たりです。
既知平文がある世界では線形解読法のような統計攻撃が視野に入り、選択平文まで取れるなら差分解読法の出番になります。
実装の動作を観測できるなら、狙う対象はアルゴリズムそのものではなくサイドチャネルです。

この並べ方をすると、古典暗号と現代暗号の差も見えます。
古典暗号は暗号文の中に自然言語の偏りが残りやすく、紙と鉛筆でも糸口が立ちます。
現代暗号は偏りを消す設計に加えて、既知平文や選択権、実装観測といった前提そのものが重く、難しさの質が別物です。

読者の次の一歩

筆者なら、まず短い暗号文で頻度分析とカシスキーを一度手で試します。
そこで得られる「読めた」という感触は、暗号を知識ではなく手触りに変えてくれます。
そのうえで、暗号文単独攻撃、既知平文攻撃、選択平文攻撃、実装観測という攻撃モデルの名前を覚えると、ニュースや技術解説の見え方が整います。

次に押さえたいのは、数学的安全性と実装安全性が別の軸だという点です。
さらに量子の話はRSAECCへの影響と、AESのような共通鍵への影響を分けて理解すると、過剰にも過小にも受け取りません。
短い暗号文を自力でほどけたときの達成感は鮮やかですが、現代暗号ではその先にある「前提条件の壁」こそが本題だと実感します。

参考リンクと学習ルート

学ぶ順番は、古典暗号の手作業から攻撃モデルへ、そこから現代暗号の解析と実装へ進むのが自然です。
以下は一次資料や標準化機関の公式ページを中心にした外部リンクです。
なお、当サイトはまだ関連記事が少ないため、内部リンクは順次整備し、記事群が揃い次第本記事から参照リンクを追加します。
外部一次資料(抜粋):

  • NIST — Post‑Quantum Cryptography (PQC) project
  • RFC 8446 — TLS 1.3 (IETF)
  • Shor, P. (1994) "Algorithms for quantum computation: discrete logarithms and factoring"

ℹ️ Note

当サイトは現在記事数が少ないため、内部リンクは順次整備していきます。暗号図鑑(ciphers)や人物図鑑(figures)等の関連エントリを作成次第、本記事からの内部回遊リンクを追加します。

シェア

桐生 遼介

サイエンスライター。暗号と映画・文学・パズル文化の接点を探るコラムを得意とし、暗号を「解く楽しさ」から伝えます。

関連記事

コラム

紙にHELLOと書き、文字を3つ先へずらしてKHOORに変えると、暗号はまず手で触れる遊びとして立ち上がります。そこからブラウザの錠前アイコンを開く気持ちでTLS 1.3の流れを指でなぞると、暗号は遊びではなく、毎日の通信を支える社会基盤だと実感できます。

コラム

調達仕様書のレビューで、アルゴリズム名だけが並び、肝心の鍵長がどこにも書かれていない文書に出会ったことがあります。その場では通っても、後日AESの解釈がベンダーごとに割れ、評価軸のすり合わせがもつれた経験から、暗号は名前だけで選ぶものではないと痛感しました。

コラム

机の上にO U O S V A V Vだけが刻まれた紙を置いて意味を考えてみると、未解読暗号の難しさは一瞬で伝わります。手がかりが少なすぎると、解読はひらめきの勝負ではなく、検証そのものが立ち上がらない。

コラム

暗号の本は、歴史から入るか、仕組みを先に押さえるか、実装に触れるか、理論を掘るか、耐量子まで見据えるかで最適な一冊が変わります。本稿はおすすめ10冊を読者タイプ別に整理し、「最初の1冊」と「次に読むべき一歩」を具体的な学習順序とともに提示します。