Man On a Mission

システム運用屋が、日々のあれこれを記録していくブログです。情報処理技術者試験の話題多し。高度試験の攻略なども。最近はやや歴史づいてます…。

【暗号】イミテーションゲームとエニグマ【映画】

イミテーションゲーム

イミテーションゲーム、という映画をご存知でしょうか?
第二次世界大戦時のドイツが使用した暗号「エニグマ」の、イギリスによる解読を題材とした映画で、IT関係者には(名前だけ)なじみ深いアラン・チューリングが主役です。

2017年5月21日現在、Amazonプライムで見ることができます(プライム会員は見放題)。興味のある方はどうぞ。

イミテーションゲーム

f:id:lmacs510:20170521184714j:plain

さて、上記の映画に触発されて、今回はエニグマ暗号について触れてみます。

 エニグマ

エニグマというと、人によっては某音楽プロジェクトを思い出したり、ジョジョ第4部を思い出したりするかもしれませんが、私が思い出すのは大昔の「スパイズ!」というボードゲームだったりします。
マイナーな話はさておき、エニグマは前述の通り、第二次世界大戦時にドイツが使用していた暗号化・復号化*1を行う機械のことです。
エニグマ機械による暗号も「エニグマ」と呼ばれています。)
20世紀初頭に、ドイツのアルトゥール・シェルビウス(Arthur Scherbius)により発明されました。
回転する円盤(ローター)と電気回路により、暗号化/復号化を行います。

第二次世界大戦時にナチス・ドイツが用いていたことで有名ですが、大戦後はイギリスが多数のエニグマ暗号機を押収し、イギリス連邦諸国に供与したり、他国に売却したりしました。
ちなみに、映画でも描かれてますが、このエニグマ、イギリスは解読できるようになっていたのですが、その事実を隠して、世に広めたわけです。
さすがイギリスさん、えげつない*2

エニグマの外観は、印字機械の代わりに、アルファベット文字の表示盤(ランプボード)を備えたタイプライター、という風情です。

f:id:lmacs510:20170521185535j:plain

エニグマは、キーボードから暗号化していない文章(平文。ひらぶん、と読みます)を入力すると、暗号文が出力されるという仕組みになっています。
もう少し詳細に書くと、キーボードから1文字入力するたびに、ランプボード上の対応するアルファベット文字が点灯するので、それをメモしていきます。
文章を打ち終え、メモした文字列が、暗号文となります。

この暗号文を元に戻す場合も、暗号化と同様の手順を踏みます。
すなわち、暗号文をエニグマで1文字ずつ打ち込むたびに、ランプボード上の対応するアルファベット文字が点灯するので、それをメモ。文章を打ち終えると、平文がメモ上に復元されるわけです。

エニグマのように、ある文字を、別の文字へ変換することで暗号化する方式を、換字式暗号(かえじしきあんごう)といいます。

換字式暗号

一応、単純でわかりやすい換字式暗号を例に説明しましょう。
エニグマは割と仕組みが複雑なので、ここでは最も単純な換字式暗号の例として、シーザー暗号を取り上げます。
シーザー暗号は、平文を、アルファベット順にそって3文字分ずらすことで暗号化する方式です。
例を挙げます。
(※注意点。本記事では、便宜的に、平文は小文字、暗号文は大文字で表記します。)
平文「a」は、暗号化により3文字ずれて「D」になります。同様に「b」は「E」、「c」は「F」となります。ちなみに「x」まで来ると、換字がアルファベット順の頭に戻って、「a」に変換されます。簡単ですね。

このシーザー暗号のように、変換前アルファベットと変換後アルファベットの対応関係が、常に1対1となる換字式暗号を、「単一換字式暗号」と呼びます。
それに対して、エニグマは「多表換字式暗号」です。単一換字式暗号との違いは、変換前/変換後アルファベットの対応関係が、1文字ごとに変化することです。

シーザー暗号と比較して例を挙げましょう。
シーザー暗号で、「aaa」という文字列を暗号化した場合、暗号文は「DDD」となります。当然ながら、平文/暗号文とも、同じアルファベットが連続しています。

エニグマの場合は違います。同じ「aaa」という文字列を暗号化した場合、「VYU」となります。1文字変換されるたびに、変換前/変換後アルファベットの対応関係が変化するわけです。
(※エニグマは、設定の変更により変換後の文字が異なりますので、「aaa」がいつも「VYU」に変換されるわけではありません。この点は後述します。)

仮に、シーザー暗号とエニグマについて、それぞれ変換前/変換後アルファベットの一覧表を作成しようとすると、シーザー暗号は変換表1枚があれば事足りるのに対し、エニグマでは1文字目の変換表、2文字目の変換表、3文字目の変換表…といった風に、膨大な量の変換表が必要となります。
そのため、「多表」換字式暗号と呼ばれています。

上記で分かると思いますが、多表換字式暗号は単一換字式暗号と比べて、より複雑な仕組みとなっています。なので、概ね、単一換字式暗号と比べて解読しにくい…と思ってください。
(歯切れが悪いのは、一概に解読しにくい、とも言い切れないところがあるからです。ただ、この点に言及するとすごく長くなるので、今回記事では触れません。)

再びエニグマ

さて、エニグマですが、1文字ごとにアルファベットの対応関係が切り替わるとはいえど、それだけの仕組みでは不十分です。
仮にエニグマが、同じ文章を打ち込んだら、毎回、同じ暗号文が出てくるような仕組みしか備えていなかった場合、あっというまに解読されてしまうでしょう。
(一見、難しそうですが、暗号の専門家は様々なテクニックで解読を行います。第二次世界大戦時の専門家の暗号解読技術なら、この程度は暗号と呼ぶのもおこがましいかもしれません。)
また、エニグマ機械をどうにか入手できれば、それだけで万事休す、暗号解読が可能になってしまいます。

もちろん、実際のエニグマでは、同じ文章を打ち込んだら、毎回、同じ暗号文が出てくるような仕組みにはなっていませんでした。
先に少し触れましたが、エニグマでは、暗号化/復号化の動作について、いくつか設定箇所があります。
エニグマでは、複数のローター機構と電気回路により文字が変換されますが、これらのローターの取り付け角度や、電気回路の配線を変更することで、同じ文章を打ち込んでも、異なる暗号文が出力されるようになります。
先ほどの例、「aaa」の暗号化結果は「VYU」でしたが、例えば、複数のローターのうち最初の一つの取り付け角度を変更すると、それだけで「UWP」という異なる暗号化結果が得られます。

エニグマの実際の運用では、これらの設定情報を送信者・受信者が共有し、日替わりで変更することで、設定内容を知らない第三者が通信を傍受しても、解読できないようにしていたわけです。

なお、設定変更が可能な項目は以下の通りです。

  • セットするローターの選択(エニグマ取り付け可能数よりも多いローターが準備されてました。)
  • ローターの取り付け順序
  • ローターの取り付け角度
  • 電気回路の配線(プラグボードによる端子差し替え)

エニグマのプラグボード
f:id:lmacs510:20170521190059j:plain

Web上に、実際にエニグマ暗号を生成できるシミュレーターが公開されてますので、ちょっといじってみると面白いと思います。

エニグマシミュレータ(Flash)

f:id:lmacs510:20170521185954j:plain

蛇足

エニグマのローターと電気配線による暗号化の仕組みですが、こういった「仕組みの部分」を、暗号の世界では「暗号アルゴリズム」と呼びます。
また、エニグマではいくつかの設定がありましたが、これらの設定情報を「鍵」と呼びます。

暗号の世界では、「暗号アルゴリズム」は他者に知られても構いません。逆に「鍵」は秘密にしておかなければなりません。

暗号アルゴリズムと鍵が分離されているおかげで、高度な(解読されにくい)暗号アルゴリズムを、再利用することが可能です。もし、分離されていなければ、暗号通信ごとに新たな仕組みを考える必要が生じてしまいます。

例えば、もしエニグマに、変更可能な設定項目(鍵)がなければ、野戦などで敵にエニグマを入手*3されただけで、使用できなくなってしまうのです。
(映画「イミテーションゲーム」では、アラン・チューリングらは、この「鍵」の特定に四苦八苦しているわけです。)

暗号に興味をもたれた方、エニグマの仕組みについて、もっと詳細を知られたい方などは、下記の本などどうぞ。

暗号技術入門

なお、当ブログは、IT、特に情報処理技術者試験の話題が多いのですが、情報セキュリティスペシャリスト改め情報処理安全確保支援士を受験予定の方にも、上記書籍はお勧めです。
直接的な試験対策の本ではないのですが、時間があれば是非。

最後に

映画「イミテーションゲーム」について。
軍事史を知ってる方や、IT関係の方は、時々「?」となるシーンもあると思いますが、映画は映画、不特定多数の視聴者がわかるようにしないといけない制約があるのです。そこは紳士的にスルーしましょう。
間違っても「パールハーバー」公開時みたいに「五二型じゃん」とか鬼の首を取ったように騒ぎ立ててはいけません。

ちなみにというか、やや横道にそれますが、以前、真珠湾陰謀説についての記事を書きました。

oplern.hatenablog.com

上記記事で触れている、日本の外務省暗号は、ドイツから日本海軍がエニグマ機械を輸入し、これを参考に海軍技術研究所の田辺一雄技師が改修して外務省に譲り渡したものです。
名称を九七式欧文印字機といい、1937年に制式採用されました。
しかしながら、上記記事にても触れている通り、太平洋戦争開戦前にはアメリカに解読されており、1941年初頭からの外務省暗号はほとんどが解読されています。

なお、日本陸海軍の暗号は、外務省暗号と異なり、コード方式の暗号を採用しています。しかしながら、開戦から数カ月後には、日本海軍暗号も解読され、ミッドウェー海戦に重大な影響を与えています。

旧日本軍について、一般的に「海軍の方が先進的」というイメージを持たれてる方が多いと思うのですが、暗号については日本陸軍の方が高度な技術をもっていました。
日本陸軍の暗号は敗戦まで破られることがなかった」という人もいます。ある暗号専門家いわく、「陸軍の暗号が大学生とするなら、海軍暗号は中学生くらい」だそうです*4

それでは、今日はこの辺で。

 

*1:復号とは、暗号化された文書を元の文書に戻すことです。

*2:道義的には褒められたもんじゃありませんが、まあ、国際政治なんてそんなもの、というのも事実ではあります。日本ではなぜか隣近所感覚で国際政治を語っちゃうことも多いのですが。「アメリカさんに良くしてあげたら、アメリカさんが日本を守ってくれる」とか。

*3:どうでもいいですが、鹵獲(ろかく)と言います。

*4:ただし、この言は元陸軍の暗号専門家がいったことですので、それなりに割り引いて考える必要がありそうです。というか、これ自画自賛ではないか。