メッセージの秘密を解き明かせ

encryption, decryptionについて、情報理論の観点から探求する物語。

  • #encryption
  • #decryption
  • #keys
  • #information hiding

「これ、読める?」

ミラが紙を差し出した。意味不明な文字列が並んでいる。

「暗号ですか?」由紀が興味津々だった。

「Encrypted message」ミラが頷いた。

陸が覗き込んだ。「うわ、全然分からん。『KHOOR ZRUOG』って何?」

葵が微笑んだ。「古典的な暗号だね。シーザー暗号かもしれない」

「シーザー暗号?」

「各文字を、アルファベット順で一定数ずらす。例えば、3文字ずらすと、AがDになる」

由紀が試した。「KHOORのKを3文字戻すと…H?」

「そう。Hだ。続けて」

「HELLO…?」

「正解!『KHOOR ZRUOG』は『HELLO WORLD』だ」

陸が感心した。「暗号って、こういう仕組みか!」

葵がホワイトボードに図を描いた。「暗号化は、情報を隠す技術。平文を暗号文に変換する」

「でも、ルールが分かれば簡単に解けちゃう」由紀が指摘した。

「そこで鍵の概念が重要になる。暗号化と復号化には鍵が必要」

ミラが新しいメモを見せた。「Public key, Private key」

「公開鍵暗号。送信者は公開鍵で暗号化。受信者だけが持つ秘密鍵で復号化できる」

陸が混乱した。「公開されてるのに、安全なの?」

「数学的に、公開鍵から秘密鍵を推測するのは極めて難しい。素因数分解などの計算量理論に基づく」

「難しそう…」

葵が簡単に説明した。「例えば、15は3×5と簡単に因数分解できる。でも、巨大な数になると、因数分解に何年もかかる」

「それで安全性が保たれるんですね」由紀が理解した。

「そう。情報理論と計算理論の交差点に、暗号理論がある」

ミラがさらに複雑な暗号を見せた。今度は数字とアルファベットの混合だった。

「これは?」陸が挑戦する気になった。

「ヒントを出そう。情報理論的に考えて。よく使われる文字は何?」

「英語なら、Eとか?」由紀が答えた。

「正確。頻度分析という手法がある。暗号文で最も多い文字は、平文のEかもしれない」

陸が数えた。「この暗号で一番多いのは『7』だ」

「じゃあ、7をEと仮定してみよう」

三人で協力して、少しずつ暗号を解いていく。頻度、パターン、文脈。情報理論の原理を使って。

「解けた!」由紀が叫んだ。

「何て書いてあった?」

「『Information is power』」

ミラが静かに微笑んだ。

葵が説明を続ける。「暗号は、情報の機密性を保つ。でも完璧な暗号は存在しない。シャノンが証明したワンタイムパッドだけが、理論的に破れない」

「ワンタイムパッド?」

「鍵が平文と同じ長さで、ランダムで、一度だけ使う。この条件を満たせば、情報理論的に安全だ」

陸が考えた。「でも、鍵をどうやって安全に送る?」

「それが鍵配送問題。量子通信や公開鍵暗号が、その解決策の一つだ」

ミラが最後のメッセージを見せた。今度はQRコードだった。

「これも暗号?」由紀が聞いた。

「ある意味、符号化の一種。情報を二次元パターンに変換してる」

陸がスマホでスキャンした。「『Thank you for learning』って出た!」

「情報を隠し、守り、伝える。それが暗号と符号化の世界だ」葵が言った。

由紀が感心した。「毎日使ってるメッセージアプリも、暗号化されてるんですよね」

「そう。現代社会は、暗号なしには成り立たない。クレジットカード、パスワード、通信。全て暗号で守られてる」

ミラが立ち上がった。「Secrets everywhere. Information is valuable.」

「秘密を守ることも、情報理論の大事な役割なんですね」

陸が笑った。「じゃあ、今日の部活の内容も暗号化しとく?」

「それは必要ないだろう」葵が笑った。

でも、情報の価値と秘密の重要性を、三人は確かに学んだ。