

この静岡大学の入試問題の背景にあるテーマは
ENCRYPTION
この言葉の意味を知っているかどうかで、テーマを即座に把握できた人と「え、何それ?」と戸惑った人に明確に分かれたであろう。高校生には馴染みが薄い言葉なので、大半の高校生は後者だったかもしれない。
今、その知識の非対称性を利用することで、本問のテーマを意味を知る特定の人だけに伝え、それ以外の人には隠すことに成功した。すなわち、ごく簡単な形ではあるが、秘密の通信が成立したのである。
多くの人は「ENCRYPTION」というと、複雑な記号や数式で文章を組み替える高度な技術をイメージしがちである。しかし、知識がなければ言語そのものが ENCRYPTION として機能する場合がある。その本質は、「伝えたい相手にだけ伝え、それ以外には隠す」という一点にあり、それさえ満たせるなら必ずしも高度な方法は必要ない。
この言語という最も身近な ENCRYPTION を極めて実戦的に活用しているのがサッカー日本代表の選手達である。
代表戦において、日本人選手同士が日本語で指示を出し合えば、相手チームに日本語を解する者がいない限り、作戦を悟られにくい。一方で、近年は欧州を拠点とする日本代表選手が多く、もし相手チームが英語や欧州の主要言語で会話をしていれば、日本側はその作戦内容を比較的容易に理解できてしまう。ピッチ上では、言語そのものが簡単な ENCRYPTION として強力な武器となり、防壁にもなっているのである。
さて、今回扱う静岡大学の問題の(3)は、長い歴史の末に人類が到達した ENCRYPTION の一つの完成形であり、今このページを読んでいる読者自身が、日常的にとてつもなく大きな恩恵を受けている。
高校数学の範囲で、数式そのものがこれほど直接的に現代人の生活に直結し、社会を下支えしている例は他にない。
そもそも ENCRYPTION とは何なのか。人類がいかにして(3)の境地に辿り着いたのか。我々が受けている恩恵の正体とは――。本問の価値を真に理解するためには、ENCRYPTION の歴史を人類の歴史と重ねて辿ることが不可欠である。
暗号の歴史 ― The History of Encryption ―
情報を巡る終わりなき競争
人類が暗号を必要としてきた理由は、単なる秘密保持ではない。暗号は常に、政治と軍事の中枢に位置し、国家の命運や戦争の勝敗を左右してきた。情報が正確に、そして安全に届くかどうかは、時に兵士の生死を分け、国家そのものの存続を決定づける。
政治や軍事の世界では、情報はそれ自体が武器となる。敵に行動計画が漏れれば奇襲は失敗し、連絡が遮断されれば組織は機能不全に陥る。だからこそ通信の安全性を確保することは, 古代から現代まで国家にとって最重要課題の一つだった。暗号の開発は, その課題への最も直接的な解答である。
しかし、暗号は作った瞬間に完成する技術ではない。どれほど巧妙な暗号であっても、それを解読しようとする者が必ず現れる。暗号は破られ、改良され、再び破られる。その繰り返しが、暗号技術を進化させてきた。
この構図は、単なる技術競争ではなく、知恵と知恵の衝突である。暗号の歴史とは、知恵の軍拡競争の歴史であり、そこでは数学、言語、論理、そして人間の発想力そのものが武器となってきた。
人類は最初に、どんな発想で秘密を守ろうとしたのか。――そこから、暗号の歴史は始まる。
暗号のはじまり:隠す技術から読めなくする技術へ
暗号というと、文字を規則的に変形し、意味が分からない文章を作る技術だと考えられがちである。しかし、暗号の歴史をたどると、出発点は必ずしも「読めなくする」ことではなかった。むしろ、根本的な目的は、「秘密の情報が存在すること自体を悟られない」ことにあった。
このような発想に基づく技術は、ステガノグラフィー(Steganography)と呼ばれる。情報は別の情報の中に巧妙に隠し込まれ、第三者からは普通の文章や物体、画像にしか見えない。暗号文であることに気づかれなければ、そもそも解読という行為そのものが行われない。この「存在を隠す」という点が、ステガノグラフィーの最大の特徴である。
古代ギリシャでは、すでに高度なステガノグラフィーが用いられていた。歴史家ヘロドトスの記録によれば、ある人物は使者の頭を剃り、その頭皮に直接文字を書いた。髪が再び伸びるのを待ってから使者を送り出すことで、外見上は何の変哲もない人物として移動させることができた。目的地に到着した後で再び頭を剃ると、初めて隠されたメッセージが現れる。この方法では、仮に使者が捕らえられても、秘密の情報があること自体に気づかれにくかった。
同じく古代ギリシャでは、蝋板を利用した方法も知られている。蝋板とは、木の板の上に蝋を塗り、その表面に文字を書く道具である。この蝋を一度はがし、木の板そのものに秘密の文章を書いた上で、再び蝋を塗り、表向きには無害な文章を書く。検閲者が目にするのは表面の文章だけであり、意図的に蝋を削らない限り、下に隠された本当の内容は分からない。この方法もまた、「読む前に疑われない」ことを重視した暗号であった。
時代が下り、第二次世界大戦においても、ステガノグラフィーは重要な役割を果たした。ナチス・ドイツが使用したマイクロドットは、その代表例である。これは、写真や文書を極端に縮小し、直径1mmにも満たない点状の画像として、手紙の句読点や印刷の汚れに紛れ込ませる技術であった。顕微鏡を用いなければ発見できず、通常の検閲では完全に見落とされてしまう。この例から、ステガノグラフィーが技術の進歩とともに洗練されていったことが分かる。
しかし、情報の探索や検閲の技術が発達すると、「隠すだけ」の暗号には限界が生じる。どれほど巧妙に隠しても、いずれは発見される可能性がある。そこで次に求められたのが、暗号文であることが分かっても、内容そのものが読めないようにする技術である。この発想に基づく暗号を、クリプトグラフィー(Cryptography)という。
クリプトグラフィーでは、秘密の情報はあらかじめ「読めない形」に変換される。第三者はそれが暗号文であることを容易に認識できるが、正しい方法や規則を知らなければ、意味を理解することはできない。ここでは、もはや「気づかれないこと」ではなく、「破られにくさ」が暗号の価値を決める基準となる。
こうして暗号は、ステガノグラフィーからクリプトグラフィーへと軸足を移していった。その転換点を象徴するのが、文字を規則的に変換するという単純だが画期的な発想である。次に登場するカエサル暗号は、その幕開けを示す代表例である。
最初の本格的暗号 ― カエサル暗号
古代ローマにおいて、暗号は初めて、「隠す」ための工夫から、「読めなくする」ための工夫へと明確に姿を変えた。その象徴的な存在が、ユリウス・カエサル (Julius Caesar)の名を冠したカエサル暗号(シーザー暗号)である。これは、紀元前1世紀、カエサルがローマ共和政末期に軍事指導者として活動していた時代に用いたとされている。
カエサル暗号の発想はきわめて単純である。アルファベットの文字を一定の規則に従って別の文字に置き換えるだけで、元の文章を読めない形に変換する。たとえば、すべての文字を三つ先の文字にずらすと決めれば、AはDに、BはEに、CはFに変わる。この規則を知らない第三者が暗号文を目にしても、そこに書かれている内容を理解することはできない。
重要なのは、この暗号では、もはや秘密の存在を隠そうとしていない点である。暗号文を見れば、それが何らかの暗号であることは誰にでも分かる。それでもなお、内容が守られることに意味がある。この考え方こそが、ステガノグラフィーとは決定的に異なる、クリプトグラフィーの核心である。
紀元前1世紀のローマ社会において、この暗号は十分に実用的であった。アルファベットを一定数ずらすという発想自体が一般的ではなく、文字の規則的な置換を体系的に分析する理論も存在していなかったからである。限られた人間だけが規則を共有していれば、暗号文は安全に機能した。カエサル暗号は、軍事命令や政治的連絡を守るための現実的な手段であった。
カエサル暗号の例
高校生であるあなたは, 気になっている人にメッセージを伝えるため、紙に書いたメッセージを下駄箱に入れておくことにした。
もし同級生にメッセージの存在に気づかれたとしても、内容まで知られたくはない。そこでカエサル暗号を用いた。
L ORYH BRX
暗号化したので安心できるかと思いきや、このやりとりが実際に機能するためには、次の2点の懸念をクリアしている必要がある。
- 第三者に解読されないか。
- 目的の相手が意味を読み取れるか。
これらは、暗号の原理と本質に関わる問題である。
暗号の原理と鍵配送問題
暗号には、時代や方式を超えて共通する、根本的な原理が存在する。どれほど高度な暗号であっても、その基本構造は驚くほど単純である。
まず、暗号で守りたい元の文章を平文という。平文は、そのままでは誰が読んでも内容が理解できてしまうため、安全ではない。そこで、平文にある規則を適用し、意味の分からない形に変換したものが暗号文である。暗号とは、この平文を暗号文へと変換する仕組みそのものを指す。
この変換において決定的に重要なのが、鍵である。鍵とは、どのような規則で文字や情報を変換するかを定めた情報であり、これを知らなければ暗号文を元の平文に戻すことはできない。暗号の安全性は、暗号文そのものではなく、この鍵が第三者に知られていないことによって保たれている。
ここで重要なのは、暗号文は隠さなくてもよいという点である。たとえ第三者が暗号文を手に入れたとしても、鍵を知らなければ内容を理解できないからである。この考え方は、現代暗号における最も基本的な前提となっている。
暗号の強さを左右するもう一つの重要な要素が、鍵の数の多さである。鍵の数とは、取りうる鍵の種類の総数を指す。鍵の数が少なければ、すべての鍵を順に試すことで暗号を破ることができてしまう。逆に、鍵の数が非常に多ければ、総当たり(ブルートフォース)は現実的に不可能になる。多くの暗号が複雑な構造を持つ理由は、この鍵の数を爆発的に増やすためである。
しかし鍵には、もう一つ避けて通れない重大な問題がある。それは、鍵を誰がどのように持つのかという問題である。暗号を使って通信を行うためには、暗号を作成する側とそれを解読する側の両方が、同じ鍵をあらかじめ持っていなければならない。どれほど安全な暗号であっても、鍵が共有されていなければ通信は成立しない。
ここで生じるのが、鍵配送問題と呼ばれる根本的な課題である。安全に通信したい相手に、そもそもどうやって安全に鍵を渡すのか、という問題である。鍵を渡す途中で第三者に盗まれてしまえば、暗号の意味は失われてしまう。暗号作成者は、「鍵を守るためにさらに別の安全な手段が必要になる」という矛盾に、長い間悩まされてきた。
暗号の歴史とは、平文と暗号文を結ぶ規則を工夫する歴史であると同時に、鍵の数を増やし、鍵を安全に共有する方法を模索してきた歴史でもある。
カエサル暗号の解読例
カエサル暗号は、総当たり攻撃に極めて弱い。
アルファベットならば26文字しかないため、鍵の数も26通りしかなく、容易に総当たりできてしまう。
試しに、先程の暗号文を入手した第三者が解読を試みたとしよう。
まず、「すべての文字が同じ規則でずらされている(カエサル暗号である)」と仮定する。
先程の暗号文のすべての文字をアルファベット3文字分だけ前に戻してみると、意味の通る英文が現れる。
I LOVE YOU
いやん、バレちゃった(*/ω\*)
カエサル暗号は、カエサル暗号かもと勘づかれた瞬間に無力になる。
それにもかかわらず、カエサル暗号は長く使われ続けた。その理由は単純である。
- 読み書きができる層が極めて限られていた。
- 短い命令文であれば、それで十分だった。
- 暗号という概念自体が一般的ではなかった。
つまり、理論的に破れることと現実に破られること(実用性)は別問題である。敵が解読方法を知らなければ、単純な規則でも強力な防御になる。
カエサル暗号の本質は、知識の非対称性の利用なのである。
その意味では、解読する気のない第三者に対しては、カエサル暗号は現代でも十分に効果的である。
重要なのは、暗号は必ずしも高度である必要はないということである。
単一換字暗号の登場
カエサル暗号は、「文字を一定の数だけずらす」という単純な規則によって平文を暗号文へと変換する暗号であった。この発想は画期的であったが、同時に規則があまりにも単純であるという弱点も抱えていた。ずらす数には限りがあり、すべての可能性を試すことで解読できてしまう。
そこで考え出されたのが、より自由度の高い文字の置き換えである。アルファベットの各文字を別のアルファベットに一対一で対応させ、その対応関係そのものを秘密にする暗号が登場した。これが、単一換字暗号と呼ばれる暗号である。
単一換字暗号では、「何文字ずらすか」という単純な規則は存在しない。代わりに、AはQ、BはL、CはZといったように、すべての文字について個別の対応表が用意される。この対応表こそが暗号の鍵であり、正しい対応関係を知らなければ、暗号文を平文に戻すことはできない。
この方法の大きな特徴は、鍵の数が飛躍的に増えた点にある。アルファベット26文字の場合、対応表の作り方は 通りにのぼり, 単純な総当たりでは現実的に解読できなくなる。暗号の安全性を高めるためには鍵の数を増やすことが重要であるという考え方が、ここで初めて明確な形で現れた。
この発想は、暗号の歴史において大きな前進であった。暗号は単なる工夫や技巧から、より体系的な設計の対象へと変化しつつあったのである。単一換字暗号は、暗号の安全性を「規則の複雑さ(アルゴリズム)」ではなく、「鍵の多さ」によって確保しようとする最初の試みであった。
単一換字暗号の例
高校生であるあなたは、先生にバレないように生徒間で秘密情報を共有することにした。
カエサル暗号では簡単に解読されてしまうため、単一換字暗号を利用する。
文字の対応表(鍵)は以前から生徒間で共有されているため、鍵配送の問題は生じない。
Yt dgu dumegux’f kufa, dgu Utwzcfg iyemrhzmxl dufd oyx dypyxxys smf jzmeuk, mtk dgu dgxuu syxkf suxu ctduwxcdl, eytfunhuteu, mtk eyppcdputd.
Ky tyd fgmxu dgcf ctoyxpmdcyt mtk kuzudu dgcf tydu.
頻度分析 ― 言語の癖が暴いた秘密 ―
単一換字暗号は、長い間「破れない暗号」だと信じられていた。対応表という膨大な鍵の数を前にすれば、第三者が力ずくで正しい鍵を見つけ出すことは、ほとんど不可能に思われたからである。暗号作成者たちは、ついに安全な暗号に到達したかのように見えた。
しかし、暗号文を注意深く観察すると、そこには消しきれない痕跡が残されていた。置き換えの規則が単一であるため、文字は別の文字に置き換えられても、言語としての癖までは消えなかったのである。特定の文字が頻繁に現れたり、特徴的な語の形が繰り返されたりする点は、平文と変わらない。この性質は、後に暗号を破る側にとって決定的な手がかりとなる。
英語では、E が最も頻繁に使われる文字である。したがって、暗号文の中で最も多く現れる文字は、高い確率で E に対応していると推測できる。もし暗号文中で X という文字が突出して多く現れていれば、「X は E に対応しているのではないか」と考えるのが自然である。
T や A、O、I といった文字もよく使われる。一方で、Q や Z のような文字はめったに現れない。暗号文中の文字の頻度分布を調べ、それを英語の一般的な頻度と照らし合わせることで、対応関係は徐々に絞り込まれていく。
頻度分析では, 暗号文の文字出現率を, 英語の一般的な出現率と照合して対応関係を推測する。
| 上位(出やすい) | 頻度(%) |
|---|---|
| E | 12.70 |
| T | 9.06 |
| A | 8.17 |
| O | 7.51 |
| I | 6.97 |
| N | 6.75 |
| S | 6.33 |
| H | 6.09 |
| R | 5.99 |
| D | 4.25 |
| L | 4.03 |
| C | 2.78 |
| U | 2.76 |
| 下位(出にくい) | 頻度(%) |
|---|---|
| M | 2.41 |
| W | 2.36 |
| F | 2.23 |
| G | 2.02 |
| Y | 1.97 |
| P | 1.93 |
| B | 1.49 |
| V | 0.98 |
| K | 0.77 |
| J | 0.15 |
| X | 0.15 |
| Q | 0.10 |
| Z | 0.07 |
暗号文を一つの文章として読むのではなく、文字の出現回数、文字の並び方、単語の長さや形といった情報を統計的に調べていく。暗号文は、もはや意味の分からない文章ではなく、分析対象としてのデータになる。
実際に単一換字暗号が理論的に破られるのは、9世紀のイスラム世界である。アラブの学者アル・キンディ(約801年〜873年)は、文字の出現頻度に注目することで暗号文を理論的に解読できることを示し、暗号解読を勘や経験に頼る技術から、頻度分析に基づく学問へと引き上げた。これにより、単一換字暗号は歴史的に「破られる暗号」と位置づけられるようになった。
頻度分析の登場によって、単一換字暗号の安全神話は完全に崩れ去った。鍵の数がどれほど多くても、言語の特徴が暗号文に残っている限り、解読の糸口は必ず存在する。この事実は、暗号作成者たちに大きな衝撃を与えた。
こうして、暗号作成者と暗号解読者の戦いは、新たな段階へと進む。文字そのものを隠すだけでは不十分であり、言語の癖そのものを隠す必要があることが明らかになったのである。ここから先、暗号の歴史はさらに巧妙な発想を求めて加速していくことになる。
単一換字暗号の解読例
先生「生徒達が共有しているこの怪しげな文字列は何だ?」
Yt dgu dumegux’f kufa, dgu Utwzcfg iyemrhzmxl dufd oyx dypyxxys smf jzmeuk, mtk dgu dgxuu syxkf suxu ctduwxcdl, eytfunhuteu, mtk eyppcdputd.
Ky tyd fgmxu dgcf ctoyxpmdcyt mtk kuzudu dgcf tydu.
先生「カエサル暗号ではなさそうだから、単一換字暗号か?」
まず、暗号文中で dgu が非常に高い頻度で現れる。英語では3文字語の中で the が圧倒的に多く、しかも 母音 e を含むことから、最初の有力候補となる。
そこで dgu = the と仮定すると、d→t、g→h、u→e と考えられる。この時点で、暗号文中で頻出している u が英語で最頻の母音 e に対応する点も、頻度的に整合的である。
次に、暗号文全体でよく現れる文字を数えると、u・d・g などが上位に来る。英語では e, t, a, o, n が最頻文字なので、すでに u→e、d→t、g→h が決まったことで、他の対応候補も絞られてくる。
2文目冒頭の Ky tyd は、語形と文法構造から命令文の Do not が強く疑われる。
Ky = Do、tyd = not と置くと、k→d、y→o、t→n が確定する。ここで t が母音ではなく n(子音)に対応するが、英語では n も非常に出現頻度が高いため不自然ではない。
1文目冒頭の Yt dgu は、直後に the が続くことから On the が自然であり、Yt = On と確定する(つまりY→O、t→n)。
さらに mtk が繰り返し現れる。文法的に and が最も自然であり、mtk = and と置くと m→a、k→d が確定する。
ここまでで判明した対応を復号すると、次のようになる。
On the tea?he?’? de??, the En????h ?o?a???a?? te?t ?o? to?o??o? ?a? ??a?ed, and the th?ee ?o?d? ?e?e ?nte???t?, ?on?e??en?e, and ?o???t?ent.
Do not ?ha?e th?? ?n?o??at?on and de?ete th?? note.
単一換字暗号は一つ強い手がかり(頻出語や定型句)が刺さると、後は語彙力と文法知識によって最終的に解読されてしまう。
tea?he?’? は teacher’s、En????h は English などど予想でき、残りの文字の対応も芋づる式に確定する。
| 暗号文 | m | r | e | k | u | o | w | g | c | a | z | p | t | y | j | n | x | f | d | h | i | s | l |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 平文 | a | b | c | d | e | f | g | h | i | k | l | m | n | o | p | q | r | s | t | u | v | w | y |
この表に従い、以下のように復号が完了する。
On the teacher’s desk, the English vocabulary test for tomorrow was placed, and the three words were integrity, consequence, and commitment.
Do not share this information and delete this note.
先生の机の上に明日の英単語の試験問題があり、その3つの単語は「integrity」「consequence」「commitment」だった。この情報を共有してはならない。また、このメモは削除せよ。
先生「よし、試験問題変えてやろっとΨ(`∀´)Ψケケケ」
解読しづらくする工夫、それでも破られる単一換字暗号
単一換字暗号が安全ではないことがわかると、次は「少し工夫すれば解読を防げるのではないか」と試してみたくなる。
例えば、暗号文から単語間の空白・アポストロフィ・カンマ・ピリオドをすべて取り除いてみよう。
ytdgudumeguxfkufadguutwzcfgiyemrhzmxldufdoyxdypyxxyssmfjzmeukmtkdgudgxuusyxkfsuxuctduwxcdleytfunhuteumtkeyppcdputdkytydfgmxudgcfctoyxpmdcytmtkkuzududgcftydu
この状態では、どこが単語の区切りか一見わからず、解読が非常に難しくなったように見える。しかし、文字の出現頻度そのものは変わらない。
単語間の空白がなくても、実際に頻出する暗号文字を眺めると u、d、g 、t、y などが目立つ。英語では e、t、a、o、n が最頻文字である。今回の例では u の出現回数が極端に多く、u→e という対応が強く示唆される。
さらに、dgu や mtk という3文字の並びが何度も現れることも重要である。単語の区切りが消えていても、同じ文字列が同じ長さで繰り返される以上、the や and のような頻出語である可能性が高い。u→e も考慮し、 dgu = the, mtk = and と仮定すると、その前後に自然な単語境界が浮かび上がってくる。
単語間の空白や句読点を取り除いても、文字の出現頻度、特定の文字列の繰り返し、母音と子音の分布といった言語の特徴は失われない。よって、それが単一換字暗号である以上、結局は頻度分析によって解読されてしまう。
空白や記号は「読みやすさ」を助けてはいるが、解読の本質は文字の統計的性質にある。暗号文そのものが解読の手がかりを含んでいるのである。
空白のない平文を見ると、英文読解において単語間の空白が本質的に重要ではないことがよくわかる。英語の知識さえあれば、空白などなくても思いの外簡単に読めてしまうことに気付くだろう。
ontheteachersdesktheenglishvocabularytestfortomorrowwasplacedandthethreewordswereintegrityconsequenceandcommitmentdonotsharethisinformationanddeletethisnote
頻度分析への対抗 ― 多表式暗号の発想
9世紀に確立された頻度分析によって、単一換字暗号は理論的に破られる暗号となった。文字の対応関係が固定されている限り、暗号文の中には必ず言語の癖が残り、それは頻度分析によって暴かれてしまう。暗号作成者たちは、もはや従来の方法では情報を守れないという現実に直面することになった。
この問題に対する新しい発想が生まれたのは、15世紀から16世紀にかけてのヨーロッパである。ここで登場したのが、多表式暗号という考え方であった。多表式暗号とは、暗号文を作成する際に、複数の対応表を使い分けることで、同じ平文の文字が、場所や状況によって異なる文字に変換される暗号である。
たとえば、ある位置では A が Q に変換され、別の位置では A が M に変換されるといったことが起こる。この結果、暗号文中の文字の出現頻度は大きく分散され、単純な頻度分析が通用しにくくなる。
この発想を初めて体系的に示した人物として知られているのが、15世紀のイタリアの学者レオン・バッティスタ・アルベルティ(1404年〜1472年)である。アルベルティは、円盤を回転させることで文字の対応関係を次々に切り替える暗号装置を考案し、単一換字暗号の弱点を克服しようとした。彼はしばしば「多表式暗号の父」と呼ばれる。
この仕組みを成立させるために重要となるのが、鍵の概念である。多表式暗号では、どの対応表をどの順番で使うか、あるいはどのタイミングで切り替えるかが鍵として定められる。暗号文を正しく解読するためには、この鍵を共有していなければならない。ここで暗号は、単なる文字の置き換えから、より複雑な手続きと管理を必要とする技術へと進化した。
ヴィジュネル暗号 ― 多表式暗号の完成
16世紀後半、暗号作成者たちは、頻度分析に対抗するための理論をついに実用的な形にまとめ上げた。その代表例が、ヴィジュネル暗号である。
この暗号の名は、フランスの外交官ブレーズ・ド・ヴィジュネル(1523年〜1596年)に由来する。同様の発想はそれ以前から存在していたが、体系的で分かりやすい形でまとめられたことで、長く使われる標準的な方式となった。
ヴィジュネル暗号の核心は、あらかじめ決められた鍵語を用いる点にある。鍵語を平文の上に繰り返し並べ、ヴィジュネル方陣に基づいて暗号化を行う。
たとえば、鍵語が「KEY」である場合、平文の1文字目は K に対応する行、2文字目は E に対応する行、3文字目は Y に対応する行、4文字目は再び K に対応する行を用いて暗号化する。同じ平文の文字であっても、鍵語の文字が異なれば、異なる文字へと変換されるため、単一換字暗号のような固定的な対応関係は存在しない。
実際、平文「TOMATO」を鍵語「KEY」を用いて暗号化すると以下のようになる。
| 鍵語 \ 平文 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
| B | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A |
| C | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B |
| D | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
| E | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D |
| F | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E |
| G | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F |
| H | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G |
| I | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H |
| J | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I |
| K | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J |
| L | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K |
| M | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L |
| N | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M |
| O | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N |
| P | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
| Q | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
| R | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q |
| S | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R |
| T | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S |
| U | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T |
| V | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U |
| W | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V |
| X | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W |
| Y | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X |
| Z | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y |
| 平文 | T | O | M | A | T | O |
|---|---|---|---|---|---|---|
| 鍵語 | K | E | Y | K | E | Y |
| 暗号文 | D | S | K | K | X | M |
このように、平文の同じ T でも暗号文では D や X に変換される。一方で、平文の異なる M や A が暗号文の同じ K に変換されることもある。
この仕組みにより、暗号文中の文字の出現頻度は大きく分散する。英語で頻繁に使われる文字であっても、暗号文中では一様にばらけて現れるため、単純な頻度分析はほとんど通用しなくなる。それゆえ、ヴィジュネル暗号は長年にわたって「解読不能の暗号」と考えられていた。
実際、16世紀から19世紀にかけての数百年間、ヴィジュネル暗号は外交文書や軍事通信に広く用いられた。暗号作成者たちは、ついに頻度分析を打ち破ったと考え、この方式に大きな信頼を寄せていた。多表式暗号は、ここで一つの完成形に到達したのである。
「解読不能」は破られた ― ヴィジュネル暗号の解読
無敵に思われたヴィジュネル暗号であったが、暗号文をより深く観察した解読者たちは、別の種類の痕跡に気づき始める。それは、文字そのものの頻度ではなく、暗号文全体に潜む「周期性」であった。ヴィジュネル暗号では、鍵語が一定の長さで繰り返される。その結果、暗号文の中には、同じ鍵が使われた位置どうしに、目に見えない規則性が生じてしまうのである。
この性質に注目したのが、19世紀の暗号解読者たちであった。1863年、プロイセンの軍人フリードリヒ・カシスキー(1805年〜1881年)は、暗号文の中に繰り返し現れる文字列の間隔を調べることで、鍵語の長さを推定できることを示した。この方法は、後にカシスキー検査法と呼ばれるようになる。
鍵語の長さが分かれば、ヴィジュネル暗号はもはや一つの暗号ではなくなる。暗号文を鍵語の周期ごとに分割すれば、それぞれは単一換字暗号として扱うことができるからである。ここで、かつて単一換字暗号を破った頻度分析が、再び威力を発揮する。ヴィジュネル暗号は、多表式暗号でありながら、段階的に単一換字暗号へと分解されてしまうのである。
さらに20世紀初頭には、アメリカの暗号学者ウィリアム・フリードマン(1891年〜1969年)が、統計的な手法を用いて鍵語の長さを推定する方法を確立した。フリードマン検定と呼ばれるこの方法は、暗号解読をより数学的・体系的なものへと押し上げた。ここにおいて、暗号解読は完全に科学の領域へと移行する。
こうして、かつて「解読不能」と信じられていたヴィジュネル暗号は、理論的にも実践的にも破られる暗号となった。頻度分析を打ち破ったかに見えた多表式暗号も、新しい視点からの分析の前では、完全な安全を保つことができなかったのである。
この出来事が示した教訓は重い。暗号の安全性は、当時知られている解読法に耐えられるかどうかで決まるのではない。将来生まれるかもしれない新しい分析手法を含めて、どれほど耐えられるかが問われるのである。暗号作成者と暗号解読者の戦いは、決して終わることのない知恵の競争であることが、ここで改めて明らかになった。
ヴィジュネル暗号の例
高校の生徒会長であるあなたは、生徒会員と秘密情報を共有することにした。
絶対に先生に知られてはいけない重大な情報であるため、ヴィジュネル暗号を利用する。
鍵語は以前から生徒会員間で共有されているため、鍵配送の問題は生じない。
YFUSEUTNIJGHWJKLBRQSMJBUJRVCGHFTPIEQTKQGRVTETCNIJNUIZEJIASSW
MVAXHGJEBGBXSTQPJLQCOIGWTXMXUHWKWXNOPNMTYDSKWLRDWUQVRFYCGJER
RKIVBBFDIHNDSUPEADPFAEGRFSWYGWMVQWFXJKPEGWMVGQNBMRDIOUTBMRGK
JJKLBRQICPRWMRBJBUGZLWERRRVXVFWVTEGLTEALVSXSMXJHJEJSLVFELKVU
QJQJGKNJQWEHUFZXRGYFBLRLWYWQRUTFUXRDHYMVBUXKCHRQYXCMQDSTMXUH
NIZIPRRDMRQDYZWRSRWLVMIHWJQXLDIDQWFLTEKSHOISMGNQHVTIQWMRBABX
QUJIVPUFAWVEQVBSHQIFNSEWMVUJBUYYIXEHFJWRCOJRAIXHJGBLVVRRBXRU
XKZMPWQPKSAINUMRGLFCIJGHWIMEQLSXBLVVRVAWNJJSMWHUJKWHROJKMXUL
XEWXR
ヴィジュネル暗号の解読例
先生「ま~た大人を舐めた生徒達が怪しげなやりとりをしてる(メ`⌒´)」
先生「頻度分析が通用しないから今度はヴィジュネル暗号か?」
最初にやるべきは「鍵語が何文字周期で繰り返されているか」、つまり 鍵長の推定(カシスキー検査)である。
そのために、暗号文中で同じ3文字並びが繰り返し現れる箇所を探す。
ここで重要なのは「同じ並びが出現した位置の差(距離)」である。
3文字並びが繰り返し現れるのは、その場所の平文が同じ3文字並びで、しかも暗号化に使われた鍵の3文字もたまたま同じ並びになった場合である。鍵語は鍵長ごとに同じ位置(位相)に戻るため、鍵の3文字並びが一致しやすいのは距離が鍵長の整数倍のときであり、その結果、出現間隔に鍵長の倍数が現れやすい。
JBUが3回現れ、出現間隔が 174, 192WMVが4回現れ、出現間隔が 90, 12, 222MXUが3回現れ、出現間隔が 210, 180
これらの最大公約数は 6 であるから、鍵長の最有力候補は 6 である(2,3,12等の可能性もある)。
鍵長を 6 と仮定し、暗号文を
- 1文字目, 7文字目, 13文字目, …
- 2文字目, 8文字目, 14文字目, …
- …
- 6文字目, 12文字目, 18文字目, …
という 6本の列に分ける。
この操作により、各列は「同じ鍵文字で暗号化された部分」だけを集めたものになるので、これは単なるカエサル暗号である。
各列をシフト0〜25で総当たりして復号し、文字頻度が英語に最も近い(例えばE,T,A,O,Nが上位に来る)シフトを採用する。
6本の列それぞれについて最適なシフト量を調べると、鍵語が浮かび上がる。
- 列1: F
- 列2: R
- 列3: I
- 列4: E
- 列5: N
- 列6: D
鍵語は FRIEND であり、これを繰り返して全文復号すると、冒頭から自然な英文になる。
さらに、空白や句読点を入れて読みやすくすると以下となる。
Tomorrow after school, before any teacher notices,
only a few members of the student council will get together to talk.
We plan to hear directly from Taro Yamada and Hanako Sato
about the issue that they may have broken the school rule
that forbids romantic relationships between boys and girls.
If this is reported to their homeroom teacher or student guidance,
their recommendation for university admission could be canceled.
That would be impossible to undo for them.
For that reason, please keep this matter strictly confidential.
After reading this message, be sure to delete this note.
明日の放課後、先生に気づかれる前に生徒会の一部メンバーで集まって話し合う。
山田太郎と佐藤花子が「男女交際禁止」の校則を破った疑いについて、本人たちから直接話を聞く予定だ。
もし担任や生徒指導に報告されれば、彼らの大学推薦が取り消される可能性があり、取り返しがつかない事態になる。
だからこの件は絶対に秘密にしてくれ。
読んだらこのメモは必ず消すこと。
先生「全員の推薦取り消しじゃああああ。゚(゚^ヮ^゚)゚。アハハハハ」
機械が暗号を作る ― 機械式暗号の原型
多表式暗号は、理論的にも実用的にも暗号を大きく前進させた。
しかし一方で、人間が手作業で運用する暗号には次の限界が見え始めた。
- 規則が複雑になるほど運用が難しくなる。
- 暗号化・復号に時間がかかる。
- 人為的ミスが起こりやすい。
さらに20世紀に近づくにつれ通信量が増大して情報の即時性が強く求められるようになると、人間の処理能力そのものがボトルネックになっていった。
ここで登場するのが、暗号化と復号を「機械」に任せるという発想である。
機械式暗号とは、歯車や円盤といった物理的な装置を用いて、暗号化と復号を自動的に行う暗号方式である。人間が一文字ずつ規則を適用するのではなく、機械が規則を実行することで、複雑な暗号を高速かつ正確に扱えるようになった。
機械式暗号の原型は、19世紀末から20世紀初頭にかけて現れる。たとえば、1890年代には回転式の暗号円盤が考案され、文字の対応関係を機械的に切り替える仕組みが実現された。これらの装置は、多表式暗号の発想を物理的に実装したものだといえる。
機械式暗号の最大の特徴は、暗号化のたびに対応関係が自動的に変化する点にある。文字を一つ処理するごとに歯車が回転し、次の文字では別の対応表が使われる。その結果、同じ平文の文字であっても、毎回異なる文字に暗号化される可能性が生じる。これは、人間が手作業で行う多表式暗号では事実上不可能だった複雑さである。
この仕組みによって暗号の鍵の数は飛躍的に増大した。歯車の初期位置、回転の順序、組み合わせ方などがすべて鍵の一部となり、総当たりによる解読は現実的でなくなった。暗号はここで、理論だけでなく工学的な装置としても高度化していったのである。
20世紀に入ると、機械式暗号は本格的に軍事・外交の中枢へと組み込まれる。特に第一次世界大戦以降、通信量が爆発的に増加したことで、人力では処理しきれない暗号通信を支える技術として不可欠となった。暗号はもはや専門家だけの技術ではなく、国家規模のシステムとして運用されるようになったのである。
しかし、機械が暗号を作るようになったことで、解読もまた機械の力を必要とするようになる。暗号作成者と暗号解読者の戦いは、人間の知恵だけでなく機械の性能そのものを競う段階へと移行していった。この流れの中で生まれた代表的な暗号機が、後に歴史を大きく動かすことになる。
エニグマ暗号 ― 機械・数学・スパイ、そして人間の盲点
20世紀前半、機械式暗号はその頂点ともいえる姿に到達した。その象徴がエニグマ暗号である。エニグマは、第二次世界大戦期にナチス・ドイツが軍事通信で使用した暗号機であり、暗号史の中でも最も有名で、かつ大きな影響を与えた存在である。これは単なる通信装置ではなく、作戦命令、部隊配置、補給計画といった戦争の中枢情報を支える、国家の神経系そのものだった。
エニグマ暗号機が本格的に運用され始めたのは1920年代から1930年代にかけてである。もともとは商業用として開発されたが、ドイツ軍によって軍事用に改良され、陸軍・海軍・空軍の通信に広く用いられた。1939年に第二次世界大戦が始まると、エニグマはドイツ軍の作戦を支える中枢技術となった。
エニグマ暗号の最大の特徴は、複数の回転子(ローター)によって、文字の対応関係が絶えず変化する点にある。キーを一文字入力するたびにローターが回転し、次の文字では別の対応表が用いられる。その結果、同じ平文の文字であっても、文中の位置が異なればまったく別の文字に暗号化される。
さらに、鍵はローターの選択、並び順、初期位置、そして配線盤による文字の入れ替えなど、多数の要素の組み合わせで決まる。これらをすべて考慮すると、取りうる鍵の総数は 10²⁰ 通り以上という天文学的な規模に達し、総当たりによる解読は不可能と考えられていた。
Source: Wikimedia Commons / License: Public domain
ただし、暗号は常に人間によって運用され、情報は人を通して流れる。どれほど強固な暗号機であっても、そこには運用や情報管理という人間的な層が介在する。その層に入り込んだのがスパイ活動であった。
1930年代初頭、ドイツ軍暗号部門に関する内部情報がフランス軍情報部を通じて外部へ流出し、エニグマの運用マニュアル、通信手順、鍵設定に関する文書といった断片的だが致命的な情報がポーランド暗号局へと渡った。ここで重要なのは、エニグマ暗号は「暗号機そのものを盗んだから破れた」のではないという点である。スパイがもたらした設計思想と運用情報が、数学的解析の入口を開いたのである。
これらの情報をもとに、1930年代のポーランドの暗号研究者たち、とりわけ数学者マリアン・レイェフスキを中心とするグループは、数学的手法によってエニグマの内部構造を解析し、解読の基礎を築いた。この成果は、第二次世界大戦直前にイギリスへと引き継がれる。
第二次世界大戦中、イギリスのブレッチリー・パークでは、膨大な量のエニグマ暗号文が日々傍受されていた。しかも、エニグマの鍵は毎日変更されるため、解読は時間との戦いでもあった。この状況において、人間が紙と鉛筆だけで解読を行うことは、もはや現実的ではなかった。
ここで中心的な役割を果たしたのが、天才数学者アラン・チューリング(1912年〜1954年)である。彼は、暗号解読をひらめきや勘に頼る作業ではなく、明確な手順に分解できる計算問題として捉え直した。すなわち、「仮定を置く→矛盾を検査する→成立しなければ次を試す」という思考過程そのものを、機械に実行させようとしたのである。
この発想から生まれたのが、ボンベと呼ばれる電気機械式装置であった。ボンベは、エニグマの膨大な設定の中から条件に合わないものを高速に排除し、人間では到底処理できない量の試行を短時間で実行できた。重要なのは、ボンベが単なる計算機ではなく、論理的手順を自動実行する機械だった点である。
もっとも、機械だけで解読が進んだわけではない。どの条件を与え、どの仮定を試すかという判断には、戦場や占領地からもたらされる情報が不可欠であった。沈没したUボートや拿捕された気象観測船から回収された暗号機や鍵表、通信規則は解読を加速させる重要な要素となった。エニグマ解読は、数学・機械・スパイ活動・現場情報が結びついた総力戦だったのである。
なぜドイツ軍は、自らの暗号が破られていることに最後まで気づかなかったのだろうか。主な理由は次の通りである。
- 暗号への過信
鍵の総数が天文学的である以上、理論的に破られるはずがないという前提が疑う力を奪った。 - 連合軍側の情報運用の巧妙さ
解読情報は露骨に使われず、偵察などを挟んで「偶然見つけた」ように見せた。ときに悟られないため、あえて被害を黙認する判断すらあった。 - 組織の分断
陸軍・空軍・海軍は異なる設定を用い、情報共有も限定的だったため、部分的な異常が暗号全体の危機として認識されにくかった。海軍は独自改良機への自信も強かった。 - 人為的ミスが体系的危機に結びつかなかった
定型文の多用、通信規則の省略、鍵表管理の甘さなどは存在していたが、個々の規律違反として処理され、暗号体系の破綻とは結びつけられなかった。
こうして、暗号への過信、巧妙な情報隠蔽、組織構造、人間心理が重なり、エニグマ暗号が破られているという決定的な事実は、戦争が終わるまでドイツ側には見えなかった。
エニグマ暗号の解読は、戦争の勝敗に影響しただけでなく、計算と論理を機械に任せるという新しい思想を生み出し、戦後には汎用計算機、すなわちコンピュータへと発展していく。暗号を破るために生まれた機械が、人類の知的活動そのものを支える基盤へと変貌したのである。
アラン・チューリング ― 暗号と計算機を生んだ天才の生涯
Source: Wikimedia Commons / License: Public domain
アラン・チューリングは、20世紀を代表する数学者であり、同時にコンピュータ科学と人工知能の礎を築いた人物である。その人生は、暗号解読という極限の実務と、抽象的な数学理論、そして社会の偏見に翻弄された個人的悲劇が、複雑に交差するものだった。
チューリングは1912年、イギリスに生まれた。幼少期から際立った数学的才能を示し、ケンブリッジ大学で数学を学ぶ。在学中の1936年、彼は後に「チューリングマシン」と呼ばれる抽象的な計算モデルを提案した。これは、どのような計算が機械的に実行可能かを定式化した理論であり、当時は純粋数学の一分野にすぎないと考えられていた。しかしこの発想こそが、後のコンピュータの理論的基盤となり、さらに戦時の現場で「現実の機械」へ接続されていくことになる。
第二次世界大戦が始まると、チューリングの人生は大きく転換する。彼はイギリスの暗号解読拠点ブレッチリー・パークに招集され、ドイツ軍のエニグマ暗号解読に従事する。ここでチューリングは、暗号解読を「ひらめき」ではなく、「論理的手順の集まり」として扱う姿勢を貫いた。どの仮定を置き、どの条件で排除するかという思考過程を機械に実行させるという発想から、電気機械式の解読装置「ボンベ」の改良に深く関与した。
エニグマ解読は、数学・機械・現場情報が結びついた総力戦であったが、その中心には常にチューリングの論理的思考があった。彼の貢献によって連合軍はドイツ軍の通信を継続的に読み取ることが可能となり、戦争の終結を早めたと評価されている。ただし、その功績は長く極秘とされ、戦後もしばらく公に語られることはなかった。
戦後のチューリングは、暗号解読で培った発想をもとに汎用計算機の設計に関わる。彼は、計算とは何か、機械はどこまで人間の思考を模倣できるのかという問題に強い関心を持ち、1950年には「機械は考えることができるか」という問いを投げかける論文を発表した。そこで提案されたのが、後にチューリングテストと呼ばれる思考実験である。これは、人工知能研究の出発点として、現在でも語り継がれている。
しかし、チューリングの私生活は当時の社会によって厳しく裁かれることになる。1952年、同性愛が犯罪とされていたイギリスで有罪判決を受け、化学的去勢という屈辱的な処置を強いられた。研究の自由は制限され、国家機密にも関われなくなった。これは、戦時中に国家へ尽くした人物に対する仕打ちとして、あまりにも過酷なものであった。
1954年、チューリングは41歳で亡くなる。死因については長く議論があるが、彼の人生が社会的偏見によって深く傷つけられたことは疑いようがない。その死は天才の早すぎる喪失であると同時に、社会の未熟さを象徴する出来事でもあった。
現在、アラン・チューリングは暗号解読者としてだけでなく、コンピュータ科学の創始者、人工知能の思想的先駆者として再評価されている。彼の考えた「計算を機械に任せる」という発想は、インターネット、暗号通信、人工知能へと姿を変え、現代社会の深部に浸透している。
共通鍵暗号 ― すべての暗号の出発点
暗号の歴史を振り返ると、古代から20世紀半ばに至るまで、ほぼすべての暗号は同じ基本構造を持っていた。それが共通鍵暗号である。共通鍵暗号とは、暗号化と復号に同じ鍵を用いる暗号方式を指す。
これまで登場してきた暗号は、形こそ異なるものの、すべて共通鍵暗号であった。カエサル暗号では「何文字ずらすか」が鍵であり、単一換字暗号では対応表そのものが鍵であった。ヴィジュネル暗号では鍵語が使われ、エニグマ暗号ではローターの並びや初期位置が鍵となった。いずれの場合も、暗号を作る側と解読する側は、同じ鍵を共有していなければ通信が成立しない。
共通鍵暗号の強みは効率の良さにある。暗号化と復号の手続きが比較的単純で高速に処理できるため、大量の通信を扱うのに適している。この性質は現代においても変わらない。実際、今日の暗号通信でも、データそのものの暗号化には共通鍵暗号が広く利用されている。
しかしこの方式には、根本的かつ避けることのできない問題が存在する。それが鍵配送問題である。共通鍵暗号の安全性は、暗号そのものではなく、「鍵をどう守るか」に大きく依存している。
この問題は、通信相手が限られている状況ではある程度回避できていた。たとえば、対面で鍵を渡したり、信頼できる使者を通じて鍵を共有したりできた。しかし、通信の規模が拡大し、相手が世界中に広がると、この方法は現実的ではなくなる。
特にインターネットのような開かれた通信網では、初めて通信する相手と事前に安全な方法で鍵を共有することはほぼ不可能である。安全な通信を行うために事前に鍵を相手と共有しておく必要があるにもかかわらず、その鍵を安全に渡すための手段が存在しないという矛盾が生じるのである。ここに共通鍵暗号の決定的な限界が現れる。
この矛盾の根本的な解決は長らく不可能と考えられていた。
しかしその一方で、鍵配送問題の解決の糸口になりそうな思考実験が存在する。ここでは、メッセージを箱📦に入れ、南京錠🔒を鍵の代わりだと思ってほしい。
以下の方法では、送信者Aと受信者Bが共に一度も「鍵そのもの」を相手に渡すことなく、また、第三者に途中で箱を奪われても開けられることなく、安全な受け渡しが成立している。
ここには、共通鍵暗号とは異なる発想がある。すなわち、「同じ鍵を共有する」のではなく、それぞれが別々の鍵を持ったまま、安全なやり取りを成立させるという考え方である。
これ自体は直感を与える比喩であるが、この発想を数学的に昇華させたものが「公開鍵暗号」という仕組みであり、その代表例が「RSA暗号」である。
RSA暗号 ― 鍵を渡さないという革命
鍵配送問題という、暗号史における長年の「アキレス腱」を根本から解決したのが、1970年代に登場した公開鍵暗号である。その最初の実用的な方式が、1977年にロン・リベスト、アディ・シャミア、レナード・エーデルマンの3人によって考案されたRSA暗号である。その名称は、若き天才たちの姓の頭文字(Rivest-Shamir-Adleman)に由来している。
RSA暗号の画期的な点は、「暗号化」と「復号」の鍵をあえて分離したことである。RSA暗号では、誰にでも公開してよい公開鍵と持ち主だけが秘密にしておく秘密鍵の2つが存在する。通信したい相手は、公開鍵を使って暗号文を作成するが、その暗号文を元に戻せるのは、対応する秘密鍵を持つ者だけである。
前述の三回渡しプロトコルの比喩を借りるなら、RSA暗号はよりスマートである。
受信者Bが「開いた状態の南京錠🔒」に相当する公開鍵を世界中に配布し、送信者Aはその南京錠で箱📦に施錠してBに送るだけでよい(A→B 📦+🔒B)。一旦施錠してしまえば、第三者はもちろんのこと、送信者Aも開錠することはできない。復号(開錠)に必要な「鍵(秘密鍵)」はBが所有したまま、たった1回の往復で安全な受け渡しが成立する。
これを可能にしているのが、「大きな素数同士の掛け算は簡単だが、逆の素因数分解は極めて難しい」という数学的な一方通行性である。
例えば、4桁の素数 を掛け合わせると
合成数 は簡単に作れるが、逆向きに 9173503 から を突き止める(素因数分解する)のは一般に難しく、特に合成数 が数千桁にもなると計算機を用いても現実的な時間では困難になる。それゆえ、公開鍵として を公開しても、秘密鍵に関わる情報(=分解結果 )は持ち主以外に知られないという構図が成立する。公開鍵は「箱を閉じるための情報」だけを提供し、箱を開けるために必要な情報(秘密鍵)は持ち主の手元に残り続けるのである。
重要なのは、RSA暗号が「理論上絶対に破れない」ことを保証しているわけではない点である。その安全性は、現在知られている計算方法と計算機の性能では、解読に天文学的な時間がかかるという「計算量的安全性」に依存している。
この発想は、暗号史における大きな転換点であった。暗号はもはや、巧妙な規則や装置によって守られるものではなく、計算資源と数学理論によって守られるものとなった。RSA暗号の登場によって、暗号は情報科学と数学の中心的なテーマへと移行していく。
現在の通信では、実データは高速な共通鍵暗号で暗号化され、公開鍵暗号は主に相手の正当性の確認(電子署名)や共通鍵の安全な合意に用いられる。RSAはその代表例として長く利用され、鍵を渡さずに安全な通信を可能にしたという点で暗号史における革命となった。この後、暗号はより数学的で抽象的な世界へと進んでいくことになる。
RSA暗号の数学的原理
南京錠の比喩だけを聞くと、公開鍵暗号の構造は単純に見える。
しかし、これを実用的な暗号にするには、「一方通行性(逆向きの計算が困難)」に加え、受信者だけが秘密の情報を用いて逆演算を可能にする「落とし戸(トラップドア)」という特殊な数学的仕掛けを備える必要がある。
この条件を同時に満たす数学的原理を見つけるのは至難の業だった。1976年頃からマサチューセッツ工科大学で開発に取り組んだコンピュータ科学者のリベストとシャミアは次々と新たな候補を考案したが、いずれも致命的な欠陥があった。その欠陥を論理と数学で突き、2人の案を片端から「破る」役割を担ったのが数学者のエーデルマンであった。
実際、彼ら自身が「リベストとシャミアが1年間アイデアを出し続け、エーデルマンが1年間それを撃ち落とし続けた」と回想するほど、その道のりは過酷な消耗戦であった。しかし、この「失敗の積み重ね」こそが、数多の“行き止まりの数式”を排除し、研究をより実りある本質的な方向へと押し流していったのである。
1977年4月のある夜、リベストは数学書を片手に「受信者だけが逆向きを実行できる関数」への思考を巡らせていた。その夜のうちに、複雑に絡み合っていた発想が一点へと結晶化した。翌朝、いつも通り論理的欠陥を探し出そうとエーデルマンが原稿を精査したが、今度はどこをどう突いても壊せる箇所が見つからなかった。
こうして、「誰でも閉じられるが、持ち主だけが開けられる」南京錠の概念は、初めて数学の数式として形を成した。
その核となる数式こそ
ここで、 は異なる素数、 は平文を数値化したものであり、これは静岡大学の入試問題の(3)に他ならない。
2020年静岡大学の問題の解答
RSA暗号のアルゴリズム紹介の前のタイミングで、静岡大学の入試問題の解答を示す。問題を再掲。

分野的には「整数」の問題である。
(1)は二項係数の素因数、(2)はフェルマーの小定理に関する上級者向けの有名パターン問題である。
(1)の別解として、二項係数に関する恒等式(証明は割愛)を用いる方法がある。また、(2)は数学的帰納法を利用して証明している。

(3)およびその後に述べるRSA暗号のアルゴリズムは、記述が煩雑にならないよう、また本質がわかりやすくなるように合同式を用いている。簡単にではあるが、合同式の定義と性質を載せておいたので、必要に応じて確認してほしい。
合同式の定義と性質

RSA暗号のアルゴリズム
すべての準備が整ったので、RSA暗号のアルゴリズムを示す。
は、 と の最大公約数(Greatest Common Divisor)である。

RSA暗号の実践シミュレーション
さらに、具体的な数値を用いて使用例を示す。

以上が、世界を変えた「RSA暗号」の全体構造である。
かつて数論は、「純粋数学の典型」であり実利とは無縁だと思われがちだった。ところが、今日のデジタル社会では、自然科学の法則ではなく数式という抽象的概念そのものが、我々の通信のプライバシーを最前線で守ってくれているのである。
現在使われている暗号とその未来
RSA暗号の登場によって、鍵配送問題は理論的に解決された。しかし、現代の暗号通信はRSA暗号だけで成り立っているわけではない。実際に使われている暗号は、それぞれの長所と短所を踏まえた役割分担の上に構築されている。
現在のインターネット通信で中心となっているのは、共通鍵暗号と公開鍵暗号を組み合わせた方式である。たとえば、Web通信で使われるTLS(Transport Layer Security)では、最初の段階で公開鍵暗号(鍵共有や証明書による認証)を用いて共通鍵を安全に共有し、その後の大量のデータ通信は高速な共通鍵暗号によって行われる。このような方式は、ハイブリッド暗号と呼ばれている。
共通鍵暗号の代表例として広く使われているのが、AES(Advanced Encryption Standard)である。AESは2001年に標準化された暗号方式であり、高速かつ安全性が高いことから、現在の暗号通信の中核を担っている。AESは、理論的にも実用的にも十分な安全性を持ち、現代の計算機環境では現実的な時間で破ることは困難である。
一方、公開鍵暗号の分野では、RSA暗号に加えて、楕円曲線暗号(ECC)が広く利用されるようになっている。楕円曲線暗号は、RSAと同等の安全性をより短い鍵長で実現できるという特徴を持つ。そのため、計算資源や通信量が限られる環境、たとえばスマートフォンやIoT機器などで特に有効である。
このように、現代の暗号は「一つの暗号で全てを守る」ものではない。高速な共通鍵暗号、鍵交換や認証を担う公開鍵暗号、そして通信の正当性を保証する電子署名などが組み合わさり、一つの安全な通信システムが構成されている。暗号は、単独の技術ではなく、総合的な仕組みとして運用されているのである。
では、この暗号の世界に、今後どのような変化が訪れるのだろうか。最大の注目点は、量子コンピュータの発展である。これが実用化されると、現在の公開鍵暗号の安全性の前提が大きく揺らぐ可能性がある。特にRSA暗号や楕円曲線暗号は、量子コンピュータによって効率的に解読されると予測されている。一方で共通鍵暗号は、鍵長を十分に確保することで影響を緩和できると考えられている。
この問題に対応するため、現在は耐量子暗号と呼ばれる新しい暗号方式の研究が進められている。耐量子暗号は、量子計算機を用いても現実的に解読が困難であると考えられる数学的問題に基づいて設計されている。すでに国際的な標準化も進みつつあり、将来の暗号基盤として重要な役割を担うと期待されている。
カエサル暗号から始まった暗号の物語は、数学、機械、そして計算機へと舞台を移しながら続いてきた。暗号の歴史を振り返ると、常に「破る技術」と「守る技術」が互いに影響し合いながら進化してきたことが分かる。
暗号とは、完成された技術ではなく、常に更新され続ける「知恵の体系」なのである。
あとがき
当記事は、構想から公開までに約5年間を要した。
当初、次の記事作成の際に参考にした『フェルマーの最終定理』と同じ著者であるサイモン・シンの『暗号解読』を参考に記事を作成する構想だった。
しかし、特に暗号の具体例の提示など、自分がイメージするクオリティの記事を個人で実現するにはあまりにハードルが高く、なかなか構想段階から実制作へ踏み出せなかった。
今回、膨大な暗号の歴史的背景の整理と説明、平文と暗号文の作成、図表の作成、数学的解説、複雑なCSS装飾など、個人で一から取り組めば何ヶ月かかるかわからない内容をAIに頼ることで、1週間もかからずに一切の妥協のないクオリティまで仕上げることができた。
参考書籍:サイモン・シン『暗号解読(上下巻)』
ほぼ全ての内容をAIに頼ったとはいえ、AIに指示を出すにも一定の歴史的背景の把握が必要であり、サイモン・シン『暗号解読』を大きな手がかりにしたことに変わりはない。
そして、この記事で語ることができたのは暗号の広大な歴史のほんの一片である。
同書では、悲劇の女王メアリーの暗号、ルイ14世の「大暗号」、古代文字の解読、第2次世界大戦中にアメリカ軍や日本軍が用いた暗号、そしてRSAの3人よりも実は4年も早く「公開鍵暗号」の概念に到達していた英国政府通信本部(GCHQ)の男たちの物語などが、息を呑むような筆致で描かれているので、是非手に取ってみてほしい。






