見出し画像

エニグマ暗号機と解読機BombeをMathematicaで書こうと苦労したのに

今や生成AIを使うとあっという間に追い抜かれますね。どうやって説明したものか躊躇しましたが、エニグマ暗号機の事は生成AIも知り抜いているので余計な説明は不要でした。

エニグマ暗号機をMathematicaのコードで記述することが出来ますか?
解読機BombeをMathematicaのコードで記述することが出来ますか?

これだけ聞くと、さぁーと(あまり美しくないコードですが)答えてくれました。誰でも出来るのでコードは省略します。私の長年の苦労(10年間+α)はどこに… いつか、簡単に分かる本を書いてみたかったのですがそれも不要ですね。

実はエニグマ暗号機というのは暗号化は簡単なんです。解読が極めて難しい。

とはいえ、生成AIに解読方法をコードで書かせると一瞬で書いてくれます。今は。いい時代になりましたね。

史実上の数少ない解読資料を調べて調べて一応理解したのが15年前で、その時点で既に10年を費やしていました。とはいえ、ここまでシンプルに答えてくれるならばこちらも研究レベルをもう一段階上げる事ができるのです。

1つ目は、数学関数だけでもっと短く書いてみたい。でも、これは生成AIに言えばあっけなく出来るでしょう。ここのポイントは書かせる事ではなくてどういう数学関数を使えば美しく書けるか?ここは人間の楽しめる余地が残されています。

2つ目は、ローター結線の解読です。実はこれは未だに難しい問題です。コンピューターを使えればあっという間かどうかは別ですが、解くことは出来ます。生成AIも「これを解くのは難しい」と言ってました。そのとおりです

https://projects.raspberrypi.org/en/projects/octapi-brute-force-enigma/2

史実では、フランス情報局によるスパイ活動によって判明したんですね。マリアン・レイェフスキが数学的に解読できると主張していますが… 当時の手作業による方法ではかなり難しいと思います。解けるんでしょうけど、もう戦争が始まっている訳で1年も掛かっては意味が無いのです。

私もMathematicaを使ってクリブ(平文と暗号文が分かっている文字列)を幾つか集めれば計算出来ないかと思い途中まで書いたのですが、あまりにもコードが複雑になるので中断していました。生成AIにコードを書いてもらうんだったらば、またアイデアだけは練り直して再挑戦しようと思います。その時の計算量はRaspberry Pi 4では無理だったので、その為だけにRaspberry Pi 5に更新しました。メモリを食わない書き方も生成AIに考えてもらいましょう。
目標は20行くらいで書いてみたいです。数学関数を使いまくれば出来る筈。

※プログラムは生成AIが一瞬で書いてくれますが、当時の解読者達がどんな苦労をしたのか?はこちらにまとめています。
最少の資料で勉強してください。

おまけ

明らかに違うが、これはこれで面白い。

この記事が気に入ったらサポートをしてみませんか?