古典暗号 vs ChatGPT5.0 ~単一換字式暗号とその脆弱性~ - 金沢市・野々市市・白山市の塾なら東大セミナー
2025.10.30保護者通信

古典暗号 vs ChatGPT5.0 ~単一換字式暗号とその脆弱性~


 

 

以下の文字列はある古典暗号で暗号化されています。解読し、暗号文中にある質問の答えを述べてください。
J GHP HBWHVN SGCRUGS ZHFK UJNQROT OHSGYO H FGYHM UYTJRN–SGCRUG H UCCP DYBBCW YTCRUG–NC JS WHN TC UOYHS NROMOJNY SC IY SC GYHO SGHS, JT SGY GYJUGS CD GJN UBCOV, GY GHP POCMMYP GJN MHJTSJTU, IHOOJYP H OJFG WJPCW, HTP YNSHQBJNGYP GJINYBD JT H LJBBH CT SGY OJLJYOH. (SGCRUG J OHSGYO SGCRUGS JS WCRBP GHLY QYYT OCIY CO DBCOYTFY.) SGY WCOPN WGHS J WHTS VCR SC HTNWYO HOY SGY SJSBY CD SGJN TCLYB.

 こんにちは。東進衛星予備校 金沢南校の北川です。

 皆さんは「暗号」というものをご存じでしょうか。メッセージを送るときに、当事者の間でのみ理解でき、第三者が盗み見ても分からないようにする方法・手順のことです。

 古代から、人は様々な暗号によって通信の秘密を守ろうとしてきました。例えば見えないインクで書く、言葉を別の言葉に書き換える[1]、一部地域でしか使われない文法が複雑な言葉[2]を使う……などなど様々な試みがされてきました。それだけ人間には秘密があり、秘密を安全にやり取りする手段は渇望されてきたのです。

今日はそうした人類の秘密を守る取り組みを取り上げ、ChatGPTに暗号を解かせることを通じて、暗号化技術の巧みさとそれを破る快感を知っていただければと思います。
 どうぞよろしくお願いいたします。

目次

1.単一換字式暗号 ~文字をめちゃくちゃに入れ替えてしまえ!~

2. vs ChatGPT ~単一換字式暗号の敗北とそのからくり~

3.難攻不落の暗号を作ろう ~単一換字式暗号の先へ~

4.おわりに


1.単一換字式暗号 ~文字をめちゃくちゃに入れ替えてしまえ!~

 ではさっそく、以下の文章を暗号化することを考えてみましょう。

A word is enough to the wise. [3]

 この文章を暗号化しろ……つまり、「自分と送りたい相手以外読めない状態にしろ」と言われたなら、どうしますか?

 歴史上様々な人々が様々な答えを出してきましたが、人類が千年近く使ってきた方法の1つとして「単一換字式暗号」というものがあります。これは「1つの文字を、別の1つの文字に置き換える」という方法になります。

 例えば、aをHに、oをCに、tをSに置き換えてみるとどうなるでしょうか?

H wCrd is enCugh SC She wise.

 これだけでも少し読みにくくなりました。この調子で、ある文字に別の文字を適当に、1対1で対応させてみましょう[4]。今回はこうなりました。

H WCOP JN YTCRUG SC SGY WJNY.

 どうでしょう? 元の文章を知らない人たちはこの文字列を見て意味を推測できるでしょうか? おそらく簡単には見破ることができなくなるはずです。

 あとはどの文字がどの文字と対応しているかを、メッセージを送りたい相手と共有しさえすれば秘密の通信が実現します。そのあとでメッセージが誰かに盗み見られたとしても、一を聞いて十を知る如く中身を悟るのは困難でしょう。

 ところで、皆さんはこの記事の冒頭で暗号文と問いを目にしたはずです。

 最初の暗号文も上の例と同じルールで暗号化されています。しかし、パッと見てその意味を理解することはできなかったはずです。ごく初期の暗号化ですらも、人の目をごまかすには十分すぎるほどの効果を持つ、ということが何となくお分かりいただけたでしょうか。

 

 この暗号化方法においては、暗号文を復号化するのに必要な情報が、「文字と文字の対応」というごく簡単な要素であることが重要です。それでいて、文字同士の対応を知らない人が適当にやっても解読できないというところが面白いポイントです。

 上記の例による単一換字式暗号は、26文字を別の26文字に並び替えることによって行われます。この並び替えの総数は26!通り……十進法の位取り記数法で記述するならば、403,291,461,126,605,635,584,000,000通りです。

 文明の利器を使ったとしても、あてずっぽうの解読には天文学的な時間がかかります。例えば、今皆さんの目の前にあるパソコンやスマホでこの暗号を破るとしましょう。ざっくり、みなさんのパソコンが1秒に10の9乗回程度の計算ができるものとします。

 これに従うと、この計算はざっくり403,291,461,126,605,635秒程度あれば終わることになります。年に直すと約12,788,288,341年……大体120億年です。せいぜい数百万年の歴史しかない人類史では比較対象がないくらい長いですね。
 国立科学博物館のWebサイトによれば、太陽の寿命は理論上100億年くらいだそうです。それよりも長いのです。

 高々数枚の手紙を解読するのに太陽より長く動く頑丈なPCを使わないといけないなんて、なんだか笑えてきますね!

 

2. vs ChatGPT ~単一換字式暗号の敗北とそのからくり~

 さて、この「強固な」暗号を解くには、太陽より長生きしないといけないことが分かりました。

 しかし、現在この暗号を使ってやり取りをしている人はいません。せいぜい、小学生や中学生が遊びで使うとか、創作物の中にイースターエッグとして忍ばせるぐらいでしょうか。

 それはなぜなのか、端的に示してみます。

 冒頭の問いを今一度思い出しましょう。

以下の文字列はある古典暗号で暗号化されています。解読し、暗号文中にある質問の答えを述べてください。
J GHP HBWHVN SGCRUGS ZHFK UJNQROT OHSGYO H FGYHM UYTJRN–SGCRUG H UCCP DYBBCW YTCRUG–NC JS WHN TC UOYHS NROMOJNY SC IY SC GYHO SGHS, JT SGY GYJUGS CD GJN UBCOV, GY GHP POCMMYP GJN MHJTSJTU, IHOOJYP H OJFG WJPCW, HTP YNSHQBJNGYP GJINYBD JT H LJBBH CT SGY OJLJYOH. (SGCRUG J OHSGYO SGCRUGS JS WCRBP GHLY QYYT OCIY CO DBCOYTFY.) SGY WCOPN WGHS J WHTS VCR SC HTNWYO HOY SGY SJSBY CD SGJN TCLYB.

 これは皆さんに向けての問いかけでもありますが、実はこの記事を書くほんの数時間前に、私がChatGPTに与えたプロンプトでもあります。

 この問いに、ChatGPTは答えを出すことができるでしょうか? さっきまでの話を考えると、どだい無理そうに思えます。……でも、本当に?

 実際に入力して待つこと3分7秒。ChatGPTは以下のような出力を返してきました。

復号しました。元の英語文は次の通りです(大文字・句読点は原文のまま):
I had always thought Jack Gisburn rather a cheap genius–though a good fellow enough–so it was no great surprise to me to hear that, in the height of his glory, he had dropped his painting, married a rich widow, and established himself in a villa on the Riviera. (Though I rather thought it would have been Rome or Florence.) The words what I want you to answer are the title of this novel.
この文はエディス・ウォートンの短編 “The Verdict”(1908) の冒頭です。したがって、暗号文中にある質問の答えは
The Verdict(Edith Wharton)。 (eastoftheweb.com)

 完全に、私が想定した通りの解答が返ってきました(正確に暗号文の内容を述べると、The verdictという小説の冒頭一段落に、”The words what I want you to answer are the title of this novel.(私があなたに答えてほしい言葉は、この小説の題名です)”という一文を付け加えたものです)。

 太陽の年齢どころか、カップラーメンが完成するぐらいの時間で正解が返ってきたことに驚いた方もいるかもしれません。しかし、これにはもちろんトリックがあります。それもChatGPTが何かとんでもないウルトラCをやって解読したというより、16世紀までに積み重ねられた人間の知見が解読の根拠になっています。

 これから、解読の基礎を紐解いていきましょう。

 

 まず、元の暗号文を見てみましょう。

J GHP HBWHVN SGCRUGS ZHFK UJNQROT OHSGYO H FGYHM UYTJRN–SGCRUG H UCCP DYBBCW YTCRUG–NC JS WHN TC UOYHS NROMOJNY SC IY SC GYHO SGHS, JT SGY GYJUGS CD GJN UBCOV, GY GHP POCMMYP GJN MHJTSJTU, IHOOJYP H OJFG WJPCW, HTP YNSHQBJNGYP GJINYBD JT H LJBBH CT SGY OJLJYOH. (SGCRUG J OHSGYO SGCRUGS JS WCRBP GHLY QYYT OCIY CO DBCOYTFY.) SGY WCOPN WGHS J WHTS VCR SC HTNWYO HOY SGY SJSBY CD SGJN TCLYB.

 一見すれば意味が分かりませんが、実は解読のためのポイントがいくつもあります。

 キーワードは「頻度分析」です。

 まず、この文章の中に「いくつ」「どの文字」が出現するかを数えてみましょう。すると、結果は以下の通りになります。

{‘A’: 0, ‘B’: 12, ‘C’: 26, ‘D’: 5, ‘E’: 0, ‘F’: 4, ‘G’: 31, ‘H’: 27, ‘I’: 4, ‘J’: 25, ‘K’: 1, ‘L’: 4, ‘M’: 5, ‘N’: 15, ‘O’: 22, ‘P’: 11, ‘Q’: 3, ‘R’: 10, ‘S’: 28, ‘T’: 15, ‘U’: 12, ‘V’: 3, ‘W’: 10, ‘X’: 0, ‘Y’: 32, ‘Z’: 1}

 こうしてみると、色んなことに気が付きます。
 まず、YとGの出現頻度が30回を超えているということです。そのほかにも、HやG、CやSの出現頻度も高いですね。ここから何が分かるのか? ちょっとしたクイズを通して考えてみましょう。

 つづりにEが含まれる英単語と、Qが含まれる英単語、皆さんはどちらを多く思いつきますか?

 Eの方は、egg,eight,feed,enter……などなどたくさん思いつくのに、Qの方はqueenを思いついてから何も思いつかない……そんな方が多いのではないでしょうか?

 ここから推察できるように、アルファベットは単語中(ひいては文章中)に均等に出てくるわけではないのです。実際に1000文字程度の英文には、平均してEが127文字ほど登場するそうですが、Qはたったの1回のようです。

 これが分かると、単一換字式暗号の解読について糸口が得られます。つまり、変換前に多かった文字は、変換後も多いのです。つまり今回で言えば、YやGは、元の英文において「よく見かける文字」だったのではないかと判断できます[5]。eのほかにも、tやhなどもよく出ます(1000字当たり、tは90字/前後、hは60字前後のようです)。

 さらに、アルファベット3文字で「よく見る文字の並び」を考えてみましょう。例えば英語なら「the」や「and」がよく登場しますし、今回のように単語ごとに切れ目があるならば「3文字で区切れているところ」がこれらの語である可能性は非常に高いです。

 実際に文章を眺めると、4回ばかり「SGY」という並びが登場していることに気が付きます。先ほどGやYはeの可能性が高いとありましたが、もし「SGY」が「the」なのだとしたらどうでしょうか?

 S,G,Yはいずれも出現頻度が高い文字でしたし、t,h,eはどれも英文中では比較的よく見ますから、大きな矛盾はなさそうです。実際、このように仮定して読み進めていくと問題なく読めていきます。

 他にも様々なテクニック(例えば2文字連続して現れる文字列でよく見るものは何か、など)がありますが、これらを駆使することで、総当たりよりもっとスマートに暗号を解読できてしまうのです。

 

3.難攻不落の暗号を作ろう ~単一換字式暗号の先へ~

 かくして、単一換字式暗号は陥落することになります(実際は文字数を増やして、冗字と呼ばれる「読まない文字」を差し込んだり、わざとスペルを乱してアルファベットの頻度をぐちゃぐちゃにしたり、色々抵抗を試みたようですが、それも根本解決には至りませんでした)。

 単一換字式暗号の弱点を克服した……つまり、頻度分析に負けない暗号を作ることはできないでしょうか? もしこれが作れたなら、盗まれても読むことのできない、本当に強固な暗号が生まれたことになります。

 この問いには様々な人が関わりましたが、16世紀フランスの外交官ブレーズ・ド・ヴィジュネルが先人たちの成果をまとめてある暗号を作りました。この暗号は彼の名を取って「ヴィジュネル暗号」と呼ばれます。

 ヴィジュネル暗号のルールは、さっきに比べて少し複雑です。まず次のような表を用意します。

ヴィジュネル方陣
                   (図1 ヴィジュネル方陣)

 そして、キーワード(鍵)を1つ決めます。例えば安直に「key」とでもしましょう。

 暗号化するべき文章(平文)は「I am Bob.(私はボブです)」にしましょうか。

 まずは鍵の1文字目と暗号化する文章の1文字目を見ます。今回は鍵の方が「K」で、平文は「I」です。このとき、一番左(赤く塗った列)のKがあるマスから右に線を引き、一番上(青く塗った列)のIがあるマスから下に線を引きます。すると、「S」のマスでぶつかります。このマスに書かれた文字が暗号文の文字になります。

 この調子で2文字目も見ましょう。鍵は「E」、平文は「A」ですから、暗号文の2文字目は「E」になります。3文字目は「Y」と「M」の交点ですから、「K」になります。

 4文字目になると、鍵の文字数より長くなってしまいます。この時は、鍵をもう一度最初から見ていきます。つまり、4文字目は「K」と「B」の交点を探すわけです。

 このように繰り返し、鍵「key」を使って平文「I am Bob.」を暗号化すると以下のようになります。

S EK LSZ.

 空白を詰めて、アルファベットを消してしまえばこうなります。

SEKLSZ

 こうなると、ただのよく分からないアルファベットが6文字ばかり羅列されているだけになります。しかも、平文には「B」の文字が2回(4文字目と6文字目)登場しますが、1回目の方はLに、2回目の方はZに変換されています。同じ文字でもまったく違う文字に変換されてしまうのです。これでは、さっきまで使えていた解読法……頻度分析が通用しなさそうなことが見て取れますね。

 一方で、鍵を知っている正規のやり取り相手が暗号文を元に戻すのは簡単です。試しに1文字目の「S」を元に戻してみましょう。

 まず、表の一番左から鍵の1文字目「K」が書いてある場所を見つけます。

 次に、それと同じ行にある暗号文の文字……今回なら「S」が書かれたマスを見つけます。

 最後に、その「S」が書かれているマスが含まれる縦の列の、一番上に書いてあるアルファベットが平文の1文字目です。今回ならちゃんと「I」になっていますね。

 暗号化するときは鍵で「行」を、平文で「列」を指定して暗号文の「マス」を特定したわけですが、元に戻すときは鍵の「行」と暗号文の「マス」から、平文の「列」を特定したのです。

 

 さて、こうして頻度分析に負けない暗号が出来上がりました。実際、この暗号は1850-1860年代に至るまで無理やり破るための方法が広く知られていなかったようです。

 逆に言えば、1850-60年代になればこの暗号を破る術が見つかることになります。バベッジ、そしてカシスキーという2名の偉人の手によって別々に発見されたとある手法が、ヴィジュネル暗号の安全性を打ち砕きました。

 如何にしてこの暗号が打ち破られたのか……その話は、またいつか(1記事分くらい書けちゃうからね)。

 

4.おわりに

 今回の記事はここまでです。

 頻度分析という、言語が持つある種無意識的な特徴の把握こそが、安全と思われた単一換字式暗号を破るための突破口になったのは面白いですね。

 暗号の歴史には様々なドラマがあります。先のヴィジュネル暗号や、二次大戦時に用いられたドイツの暗号機・エニグマ、そしてそれらとは根本を異にする現代の暗号たち。そのどれもが、通信の秘密を守りたい人と、それを無理にでも破りたい人との争いを背景に持っています。「盗み見されても大丈夫な暗号」を探しに探して、失敗して、また探す。暗号の歴史というのは、そういう執念の物語とも言えそうです。

 そうした物語に惹かれた方々は、是非参考文献も一度読んでみてください。

 それではまた来月。お付き合いいただきありがとうございました。

★参考文献

 『暗号解読』サイモン・シン著、青木薫訳、新潮社(2007)
・単一換字式暗号やヴィジュネル暗号の歴史に関する記述を参考にしました。

 『暗号技術のすべて』IPUSIRON著、翔泳社(2017)
・記事中に登場する暗号の技術的な内容に対して参考にしました。

 

 

[1] 例えば、「王様」を「ABC」に、「暗殺」を「XYZ」と書く、みたいに取り決めをすれば、「王様を暗殺しろ」と書く代わりに「ABCをXYZしろ」と書けば済みますよね。或いは、「ザギンでシースー」と言った場合、「銀座」が「ザギン」に、「寿司」が「シースー」に置き換えられていますから、似たような形態と言えるかもしれません。

[2] 例えば、英語を知らない人が英語を聞いても会話の内容を正しく理解できないですよね。同じように、ほとんど誰も知らない言葉を使ってやり取りすれば、実質的にそれが暗号になる、みたいな話です(実際はもう少し複雑ですが)。
 頻繁に挙げられる例として、ナヴァホ・コードトーカー(アメリカ原住民のナヴァホ族の語彙・文法を使った暗号)があります。詳しいことは参考文献を読んでみてください。

[3] 「賢者には一言で足る」という意味がある英語のことわざです。

[4] と書いていますが、以下の例では適当にやったせいでwとWが対応しています。
まああまり本質に変わりはないのでそのままにしておきます。

[5] 実際は統計的にちゃんとした数字が出ていますが、今回は雰囲気だけ。
 頻度分析について気になる方は『基本暗号学II -情報セキュリティのために』(加藤・1989・サイエンス社)などに詳しいですので、チャレンジしてみてはいかがでしょうか?

SNSでシェアする
カテゴリ
 

【記事監修者】塾長 柳生 好春


1951年5月16日生まれ。石川県羽咋郡旧志雄町(現宝達志水町)出身。中央大学法学部法律学科卒業。 1986年、地元石川県で進学塾「東大セミナー」を設立。以来、38年間学習塾の運営に携わる。現在金沢市、野々市市、白山市に「東大セミナー」「東進衛星予備校」「進研ゼミ個別指導教室」を展開。 学習塾の運営を通じて自ら課題を発見し、自ら学ぶ「自修自得」の精神を持つ人材育成を行い、社会に貢献することを理念とする。

ページTOPへ
Instagram X facebook