Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
計算機システムⅡ コンピュータの歴史-2
戦時期における暗号解読
和田俊和
講義計画 1. コンピュータの歴史1 2. コンピュータの歴史2 (←本日) 3. コンピュータの歴史3 4. 演習問題 5. 論理回路と記憶,計算:レジスタとALU 6. 主記憶装置とALU,レジスタの制御 7. 命令セットアーキテクチャ 8. 演習問題 9. パイプライン処理 10. メモリ階層:キャッシュと仮想記憶 11. 命令レベル並列処理 12. 命令実行順序の変更 13. 入出力と周辺装置:DMA,割り込み処理 14. 演習問題 15. 現代的な計算機アーキテクチャの解説と試験 • 教科書:坂井修一著:電子情報通信学会レクチャーシリーズC−9,コンピュータア
ーキテクチャ,コロナ社 • 最終回の試験によって成績評価を行う.5回以上欠席で不合格とする.
戦時中最も計算を必要としたのは 兵器開発ではなく,暗号解読だった • ドイツは第一次世界大戦(1914〜1918)勃発後にアメ
リカ駐在のドイツ大使に暗号の電文を送っていた. – メキシコに資金を提供し,参戦を躊躇していたアメリカ南部
を攻撃し,州を奪還するように要求させ,さらにメキシコ経由で日本にアメリカ西岸を攻撃させるよう,メキシコ政府とコンタクトを取れという内容
• この電文をイギリスは傍受・解読し,内容をアメリカ側に伝え,アメリカは参戦し,ドイツは敗北
• しかし,イギリスは暗号解読ができなかったと嘘の情報を流したため,第2次大戦開始時までドイツは暗号解読の重要性を認識できていなかった.
無線の発達と暗号
• 1894年,イタリアの物理学者グリエルモ・マルコーニが無線通信を発明
• 1901年,イギリスのポルデュからカナダのニューファンドランドまでの(地平線を超えての)無線通信に成功.
• 暗号の必要性が高まる.
シェルビウスのエニグマ 1918年
• 暗号円盤:換字式暗号のための円盤 • 別のキーワードを用いて円盤を回転させる
ヴィジュネル暗号にも利用可能 • 文字を打つたびに円盤が回転する換字式暗
号のための機械がエニグマ
ヴィジュネル暗号とは
• 換置式暗号ではあるが,キーによって換置テーブルが変化する.
エニグマは当初全く売れなかった
• 1928年シェルビウスは特許を取得.1機2万ポンドでビジネスと軍用に販売を開始したが全く売れなかった.
• その後,ドイツ軍はこれまで使用してきた暗号が破られていたことに気づきエニグマを採用した.
エニグマのエンコード h+p://www.bletchleypark.org.uk/content/simulator.html
エニグマのデコード
円盤の初期値が同じであれば, デコードとエンコードは同じ
• 円盤の初期配置が鍵になる. • 各円盤の目盛は26,3枚の組み合わせ=263
• 円盤の枚数は3枚で,交換可能3!=6通り. • さらに6本のケーブルで6つの文字にスクラ
ンブルをかけると26C6*6! • したがって,暗号化のパターンは263×= 2913496185600通り.
• 正規の受信者が解読する場合にも鍵が必要であった.
各日で鍵は変わった.(日鍵)
• 前日の日鍵を使って翌日の日鍵を暗号化して送った.但し,日鍵が正しく伝わらなければ全ての通信が無駄になるため,毎朝2回暗号化して無線送信された.
• さらにメッセージを送る前に各メッセージの暗号化鍵が2回,日鍵で暗号化され付与されていた.
• このルールがスパイによって漏らされ,これを手掛かりに暗号解読を行うことをポーランドの暗号解読者レイエフスキーが発見した.
ドイツ軍によるエニグマの運用 送信者 エニグマによる暗号化 受信者
前日の日鍵
今日の日鍵 今日の日鍵
暗号化された今日の日鍵
前日の日鍵
メッセージの 暗号化鍵
暗号化されたメッセージの暗号化鍵
メッセージの 暗号化鍵
メッセージ
暗号化されたメッセージ
メッセージ
2回送信
2回送信
レイエフスキの作戦
• 暗号の連鎖を辿ることで日鍵を割り出す.
• メッセージ鍵は3つの鍵の繰り返しから成る6文字.1番目と4番目は同じ文字を暗号化したもの.メッセージ鍵から作った下記の1,4番の対応表があれば,スクランブルが解ける.
• ABCDEFGHIJKLMNOPQRSTUVWXYZ • FQHPLWOGBMVRXUYCZITNJEASDK
暗号の指紋
• ABCD EFG HI J K LMNOPQRSTUVWXY Z • FQHPLWOGBMVRX UYC Z I TNJ EA S DK
から,連鎖と連結数を求め,これを手掛かりに日鍵を求めた.(プラグボードの影響が無い)
A→F→W→A 3 B→Q→Z→K→V→E→L→R→I→B 9 C→H→G→O→Y→D→P→C 7 J→M→X→S→T→N→U→J 7
ボンブ 改造エニグマによる日鍵の探索
• 3つの円盤の並び方は3!=6通り • 6台のエニグマで並列に263=17576通りの
日鍵を探索する機械をレイエフスキが考案し作成した.(チェックはメッセージキーの繰り返しを利用する.)
• 約2時間で日鍵は解読できた. • これにより,わずかな暗号化方法の変更に
も対応できた.
エニグマの大幅な変更 • 円盤(スクランブラ-)の数が5個になり,こ
れらのうちから3つ取り出して使うようになった.3!=6通りから,5C2×3!=60通りになった.
• プラグボードに接続するケーブルの本数が6本から10本に増えた.
• 60台の改造エニグマによるボンブの作成は予算上無理であり,解読は不可能になった.
• 1939年ドイツ軍の侵攻を前に,全ての成果をイギリスに手渡した.
ブレッチレーパークの暗号解読チーム GCCS: Government Code and Cipher School1919
• 19世紀の富豪の邸宅内にプレハブ住宅を建て,数学者,エンジニア,言語学者,クロスワードパズルマニアなどを雇い入れた.ポーランドよりも予算も人的資源も豊富であったため,1940年には改良型エニグマの解読も十分に行えた.
次の難題に備えて
• 日鍵やメッセージキーの反復が無くなったらどうするか?
• 暗号と平文の対応関係(ク
リブ)が分かったとすれば,暗号解読が行えるのではないか?
• we+er → ETJWPX だとすれば,どうすればスクランブラ-の設定を見抜けるか?
クリブの内部ループ
• クリブにはループがある.
電気回路による日鍵の発見 ーボンブー
• 機械による鍵の発見 右図のように回路を 組んで,スクランブラ-‐ を回転させれば,正し い日鍵の位置でラン プが点灯する! これを様々なスクラン ブラ-‐の配置で並列に 運転する.
ローレンツマシーンの登場 • ヒトラーと将軍との
通信用に開発されたより複雑な暗号化マシーン
• ランダムに無関係な文字を挿入する機能を持つ
• 円盤の数は12枚 • ボンブでは解読不能
コロッサス(巨人)の誕生
• ボンブは定型的な処理しか行えなかった. • ローレンツマシーンの解読には統計計算,
検索,照合計算,などが必要であり,汎用な計算が行える機械が必要であった.
• マックス・ニューマンが,「万能チューリングマシン」を実現することを提案,しかしGCCSでは実現を不可能視していたため,開発は中断.
• 1943年に実現したのは郵政省の研究所から派遣された技術者トミー・フラワーズであった.
コロッサス
• 1944年コロッサスMarkⅠは1500個の真空管を使い,高速に動作した.
• 同年 MarkⅡが2400個の真空管で動作性能はMarkⅠの5倍.
• 右図は関係者らの証言から複製されたもの(9割は正しいらしい)
暗号解読は計算機を生んだ! • Colossus はローレンツマシンを使って暗号化され
たメッセージを解読する際に使われた。Colossus はふたつのデータ列を比較し、プログラム可能な論理演算を行う。
• 一方のデータは紙テープから高速に読み込まれ、もう一方は内部で生成される。そして、様々な設定でローレンツマシンのエミュレーションを実行する。ある設定での演算が所定の閾値を越えると電気式タイプライタにその結果を出力する。
コロッサスの性能 • 紙テープは毎秒12mの速度で
処理可能. • 処理できる文字数は毎秒5000文字
• これは紙テープ中央に穿孔された穴を通過するたびにクロックが生成されていたために生じた限界である.
• 条件分岐命令はなかった.
コロッサスのその後 • チャーチルは 戦後コロッサスを手のひらより小
さい破片に破壊するよう命令した.製作者Tommy Flowers は青写真を燃やした.部品を引き抜き,Newmanが マンチェスター大学の計算機研究所に持ち込んだColossus Mark I は後に撤去された.
• しかし,2台の Colossus はGCHQ(旧GCCS)が 1952年から1954年に移転した後も保管されたが,最後の1台も1960年に分解された.
• コロッサスの存在は戦後も極秘であり,1970年代後半まで,その存在は知られていなかった.
コロッサスが秘密にされた理由
• 暗号解読の持つ政治的重要性(再び強力な暗号生成機構が現れれば,解読に対する投資が爆発的に増加する)
• 実際にイギリスはエニグマやローレンツマシーンの暗号を解読していたことを隠してきた.
• さらに,戦後ドイツ軍から回収したエニグマを植民地に配り,通信を行わせ,傍受・解読もおこなってきた.
コロッサスの特性
• ある計算機あるいはプログラミング言語がチューリングマシンと等価な計算が行えるとき,「チューリング完全」であるという.
• コロッサスは,チューリング完全ではなかったため,正確には計算機とはみなされない.
• 但し,Harvard Mark Iの初期版やコンラッド・ツーゼのZ1,Z2などもチューリング完全ではない.
チューリング・マシン チューリングマシンは, • 無限に長いテープ
• テープに格納された文字を読み書きするヘッド
• 機械の内部状態を記憶するメモリとその遷移機構 (制御部)
で構成され,内部状態とヘッドから読み出した文字の組み合わせで、次の動作を実行する。
• ヘッドの位置の情報を読みとる
• ヘッドの位置に情報を書き込む
• 機械の内部状態を変える
• ヘッドを右か左に一つ移動する
停止状態になるまでこれを反復して実行し続ける.
Turing Machineのイメージ
チューリング・マシンの意義
• 「計算とは何であるか」を明確に定義した.
• すなわち,チューリング・マシンで計算可能なことが「計算できることのすべて」であることを示した.
• ゲーデルの「自然数論を含む帰納的に記述可能な公理系の不完全性に関する定理」によって危機にさらされた数学を守るために確固とした計算の基盤を作りたかったらしい.
レポート課題
• チューリング・マシンは仮想的な機械であるが,磁気テープ,制御部はそれぞれ,現代のコンピュータの何に対応するか,理由を含めて説明しなさい.