kakke18’s blog

ゆるふわ学生エンジニア

難攻不落の暗号 - エニグマ

個人的に、暗号=エニグマという印象が強かったので、今回はエニグマについて調べていきます。

エニグマとは

  • 第二次世界大戦ナチス・ドイツが使用
  • 19世紀までは手作業で暗号化が行われていたが、20世紀以降は機械によって行われた → 機械式暗号
  • ローター(暗号円盤)による多表式暗号

アルゴリズム

暗号化と復号はこのような同一なアルゴリズムである。

  1. 平文(暗号文)を入力
  2. 内部の3つのローターが異なる文字を出力
  3. 反転ローターによって逆方向に送信
  4. 再び3つのローターを経由
  5. ランプボード上で暗号文(平文)が点灯
  6. 最初のローターが1目盛り分回転

このような処理により、1文字が暗号化(復号)され、これを繰り返すことで全体を変換することができる。

また、手順6によって、同じ文字を連続で入力しても前回と同じ出力にならないようになっている。

強力なのに簡単に使える暗号

ローター1が26目盛り回転すると、2番目のローターも1目盛り分回転する。同様に、ローター2が26目盛り回転するとローター3が1目盛り分回転する。この結果、同じローターの組み合わせとなるために17,576(=26 ^3)種類存在することになる。

このような複雑な仕組みであるにも関わらず、3つのローターの配置と順序、プラグの配置だけ知っていれば暗号化して通信を行うことができる。しかし、この組み合わせ数は、159,000,000,000,000,000,000(1垓5900京)通りあるので、解読に要する時間が膨大にかかってしまう。エニグマの鍵は日替わりで変更されていたため、解読に1日以上かかってしまっては意味がないのである。

天才数学者チューリング

コンピュータの概念を初めて理論化したことで有名なイギリスの数学者アラン・チューリングによって、エニグマは解読された。エニグマが解読されたことで、第二次世界大戦は連合国軍の勝利となった。

まとめ

雑談

現在、話題となっている仮想通貨の中にもエニグマというものがあります。

とてもおもしろい技術なので、興味のある方はこちら のサイトを参考にすると良いと思います。

参考