« 春一番の陽気の中、今シーズン最長35kmジョグ | トップページ | 横浜の参加案内到着&休養ジョグ »

チューリングが解読したエニグマ暗号機、マシンと計算の簡単な解説

たまたま、『イミテーション・ゲーム』という映画を見る機会があった。英米では

2014年11月公開、日本では15年3月公開。コンピューターの父とも言わ

れる天才数学者、アラン・チューリングの生涯を描いた作品で、アカデミー賞・

脚色賞その他、様々な賞に輝いてる。

 

思ったより面白い映画で、チューリングの変人ぶりが笑えるし、ストーリー

展開と演技と現実の歴史に引き込まれたのは事実。主演のカンバーバッ

チの熱演は光るし、助演女優ナイトレイも魅力的だった。

 

ただ、どこまでが事実でどこからがフィクションなのか、調べるのに時間が

かかるし、数学的・暗号理論的にはあまり誠実な作りになってないと思う。

これなら、日本の数学ドラマ『ハードナッツ』の方が遥かに理論的で親切だ

(多少のミスや不十分さを除けば)。

 

例えば、159×(10の18乗)の設定がある暗号を、10人が1つ1分で休

みなしに試して行くと2000万年かかるという映画の説明は、普通の計算

とは合わないから、間違いか情報不足だ。ちなみに英語版ウィキペディア

を読む限り、設定の数自体は合ってるらしい。

 

この記事の終盤で、私も実際に計算。確かに、

   158962555217826360000通り

になった。今現在、日本語のサイトでは(ほとんど)見当たらない数字だ。

計算式の立て方は単なる高校レベルのもので、下の方に書いておいた。

 

 

          ☆          ☆          ☆

とにかく、映画の文系&理系レビューのようなものはしばらく保留するとし

て、ここでは本物の暗号マシンを見てみよう。映画でチューリング達が解読

した、ナチス・ドイツの暗号機エニグマだ。下の写真は英国メディア「テレグ

ラフ」による、実物らしきビデオ映像より。

 

160216a 

 

 

木箱に入ったワープロ専用機みたいな物で、キーボードのすぐ向こう側に

はアルファベットのランプ表示板があり、そのまた向こうに3枚のローター

(歯車)の上部がのぞいてる(アルファベットの刻印入り)。キーボードの手前

には、プラグボードと呼ばれる物も少し見えてる。下の全体像はウィキメディ

ア、Sperling氏の作品より。

 

160216k

 

 

暗号の作成も解読も簡単にできて、ドイツ軍が1925年から終戦(1945

年)まで多数使用。実は途中で、連合国軍に解読されてたらしい。この電

気式機械で作った暗号も、エニグマと呼ばれる。ドイツ語でEnigma。英

語でもenigma。「謎」を表すギリシャ語「ainigma」が由来との事。

 

 

          ☆          ☆          ☆

さて、暗号作成と解読のシステムについて。作成の流れを逆向きにしたの

が解読の流れだから、作成だけ分かればいい。  

 

基本的には「換字式暗号」で、元の文の1文字を暗号1文字に置き換える。

たとえば、アルファベットを1つ後ろにズラす暗号なら、

   元の文「ABC」 → 暗号文「BCD」

となる。解読は逆に、1つ前にズラせばいい。

 

アルファベット26文字の換字式暗号だと、Aを何にするかで26通り、次に

Bを何にするかで25通り・・・という流れで、26!通り。これは十分な多様

性だけど、文字の使用頻度から解読される恐れもあるし、機械的な作りに

くさや扱いにくさの問題もあるようだ。

 

実際には、1枚のローター(=歯車)について、1つの「設定」ごとに、1種

類の換字パターンができる。ローターの設定とは、簡単に言うと、歯車の

一番上のアルファベットを何にセットするかということで、26通りある。

 

見方を変えると、英国が暗号機を戦場その他で手に入れた後、設定が何

なのか分かれば暗号解読につながる。つまり設定は、解読の「キー」(鍵)

の1つとも言えるわけだ。

 

 

          ☆          ☆          ☆   

下の画像だと、3枚のローターがV、A、Tと設定されてる。言い換えると、設

定のキー(鍵)はVAT。この操作で、各ローターの換字パターンが決まる。

26×26×26=17576通りの換字パターンの中から1つが選び出された

わけだ。

 

160216b

 

3枚のローターの左側には、リフレクターと呼ばれる部品があって、信号

変換の流れを反対方向に変えるから、「反転ローター」とも呼ばれる。た

だし、普通のローターとは別物だ。下の2枚の写真は、連結された3枚の

ローターを取り出した様子と、リフレクター。

 

160216c

 

160216d

 

リフレクターを通過した後、信号は逆向きに3枚のローターを流れて、最後

はランプを光らせる。それが、出来上がった暗号の文字、または、解読され

た元の字だ。下はGAGA(ギャガ)による映画の予告動画(YouTube)より。

左上で、「U」のランプが光ってる様子。

 

160216e2

 

 

          ☆          ☆          ☆

結局、キー入力からランプ点灯まで、暗号化(または解読)の流れの全体

は、次のようにまとめられる。矢印の向きの反転に注意。

 

 キー入力 → ローター1 → ローター2 → ローター3 → リフレクター 

   ランプ ← ローター1 ← ローター2 ← ローター3 ←

 

では、実際の文字信号の変化、アルファベットの変換はどうなるのか。こ

の説明は、単純だけどやりにくい。というのも、キッチリ書くと図が大きくて

複雑になるから、少なくとも一般向けHPにはあまり向かない。

 

私があちこち見た中だと、三菱電機セキュリティーによる図が良かったけど、

ローターとか設定の感じがあまり出てないし、ローター3つ、アルファベット

26文字で書いてるから、流れを追うだけでも目が疲れてしまう。そこで私は

ローター1枚、アルファベット4文字(ABCD)だけの簡単な図を書いてみた。

 

ちなみに、文字数を奇数にすると、リフレクターで1文字だけ配線なしになっ

て、変換されないことになる(下図参照)。別にそれでもいいと思うが、全26

文字と同じく、偶数にしとこう。

 

 

         ☆          ☆          ☆

160216f

 

 

上図で、黒い線は、変換のための配線を表してる。例えば、ローターのA

はDへ、逆にDはAへと変換される。この図は、後で見るシミュレーション

のHPを単純化したものでもある。  

 

今、キーボードでCを押した時の信号の流れを見ると、下図の太い矢印の

ようになる。

 

160216g

 

流れをまとめ直すと、次の通り。

 

 Cのキー → ローターのC → ローターのA → リフレクターのA 

 → リフレクターのB → ローターのB → リフレクターのB → ランプB

 

逆に、Bのキーを押すと、反対の流れでCのランプが点灯。つまり、暗号を

元の文(平文=ひらぶん=へいぶん)に戻せるのだ。

 

 

         ☆          ☆          ☆

実際には、ローターは3枚が普通で、それ以上に増やしたマシンも登場。

しかも、ローターの連結の仕方も変更できたらしい。3枚の場合、連結の

仕方は3!=3×2×1=6通りだから、3枚の設定17576通りとかけ合

わせて、6×17576=105456通りのパターンが可能になる(重複が無

いとして)。

 

さらに、ここまで省略して来た、マシンの手前の「プラグボード」によっても

文字変換が可能。流れとしては、キーボード・ランプと、ローターとの間に

挟まるプロセスとなる。下図はウィキメディア、Bob Lord氏の作品より。

手作業で数本のコードをつないで、文字変換したらしい。SとO、AとJをつ

ないだ様子。

 

160216h

 

日本語のウィキでは、3組の文字を交換した場合の数を、計算式なしで

3.5×(10の6乗)と書いてる。これは高校数学の基本問題レベルで、

数が大きいだけのこと。正確には次の通り。異なる26個から2つ組を3

ペア作って、それら3ペア同士の並び順は考えない場合の数だ。Cは組合

せの数を示す記号。

 

  (26C2 × 24C2 × 22C2)÷3!=3453450 通り

 

これと、前の105456通りをかけ合わせても、例の159×(10の18乗)

にはならない。日本語のウィキにはその辺りの説明が無いが、英語版

ウィキにはあった。あの数字は、ローター5つから3つを選んで連結する

タイプのマシンで、プラグボードの変換を10組行う場合の数だ。Pは順列

の記号。

 

 (26×26×26)×5P3×(26C2×24C2×22C2×20C2×18C2× 

    16C2×14C2×12C2×10C2×8C2)÷10!

  =17576×60×150738274937250

  =158962555217826360000

  ≒159×(10の18乗)

 

映画ではこの計算結果を、チェスのチャンピオンがサラッと口にしてた(近

似値の方)。暗算なのか暗記なのかは不明だし、歴史的事実かどうかも不

明。私は、いつものように、カシオの計算サイトを利用させて頂いた。

 

 

         ☆          ☆          ☆

最後に、エニグマのシミュレーション・サイトも見ておこう。良く出来た労作

で、1文字変換するごとにローターが1/26回転する所まで再現してある。

 

ただ、私のPCのモニターだと配線が薄すぎて見えにくいので、少し加工し

て見えやすくしてみた。右下がキーボード&ランプ、左下はリフレクター。

3枚のローターそれぞれの設定を変えるボタンまで付いてる。うっすら見え

る背景は歯車だろう。

 

160216i

 

 

暗号解読のキーという話については、いずれまた書くことにしとこう。映画

だと、暗号に「Heil Hitler」(ハイル・ヒトラー=ヒトラー万歳)というドイツ語

が多用されてることに気付いて、一気に解読してた。歴史的事実だと、多

数のヒントの内の1つみたいな気がする。その辺りは、理論的に難しい所

だし、正確で具体的なネット情報も少ないのだ。

 

ラストの画像はチューリングの苦心の作。解読マシン「bombe」を再現した

もの(ブレッチリー・パークにあるレプリカ)。左側が前面、右側が背面で、

ウィキメディア、Antoine Taveneaux氏の2枚の写真を結合してみた。

 

既に予想外の時間がかかってしまったので、今日はこの辺で。。☆彡

                        (計 3852字)

 

160216j

| |

« 春一番の陽気の中、今シーズン最長35kmジョグ | トップページ | 横浜の参加案内到着&休養ジョグ »

数学」カテゴリの記事

科学」カテゴリの記事

コメント

この映画私も見ました。かなり史実に近いんじゃないですかね?
時間があれば暗号理論について勉強したいと思っているところです。

投稿: U | 2016年2月21日 (日) 20時41分

> 友人 U
       
いや、実物のクラークの写真を英語版ウィキで見ると、
わりと地味な女性だっだぞ  コラコラ!
チューリングの死因についても、別の可能性の説明があった。
  
エニグマの解読に誰がどれだけ貢献したのかも、評価が難しい。
関係者が多いし、全体だと20年くらいの歴史があるし。
  
まあ、暗号理論も含めて、情報関連は今後しばらく
社会の中心を占めるな。サイバー攻撃もますます過激化。
        
・・って言うか、久々の登場だけど、元気なわけね♪ 

投稿: テンメイ | 2016年2月22日 (月) 03時01分

さして元気でもないけど、一応生きてますよ。

投稿: U | 2016年2月23日 (火) 12時37分

> 友人 U
    
オレも実は、しばらく誰にも喋れないけど、
年末にとんでもないアクシデントがあってな
一応生きてるって程度なのよ。
    
まあ、明石家さんまによると、
「生きてるだけで丸儲け」だけどな♪

投稿: テンメイ | 2016年2月24日 (水) 00時33分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 春一番の陽気の中、今シーズン最長35kmジョグ | トップページ | 横浜の参加案内到着&休養ジョグ »