コロッサス | December 1943
コロッサスは、1943年から1945年までイギリスの暗号解読者によって開発されたコンピュータセットで、ロレンツ暗号の解読を支援するために使用されました。コロッサスは真空管を使用してブール演算やカウント作業を行い、プログラム可能な世界初の電子デジタルコンピュータと見なされていますが、ストアプログラムではなく、スイッチとプラグを通じてプログラムされました。
コロッサスは、イギリス一般郵便局(GPO)の電話技術者トミー・フラワーズによって設計され、数学者マックス・ニューマンの計画に基づいています。アラン・チューリングの確率的手法は暗号解読に寄与し、コロッサスの設計にも影響を与えました。チューリングがコロッサスをエニグマ暗号解読のために設計したという主張はしばしば誤解されていますが、チューリングの機械はエニグマを解読するための電気機械式ボンベ(Bombe)でした。
プロトタイプであるコロッサス・マーク1は、1943年12月に稼働が確認され、1944年初頭にはブレッチリー・パークで使用されました。処理速度を5倍に向上させた改良版コロッサス・マーク2は、1944年6月1日に初めて稼働し、これはノルマンディ上陸作戦(D-Day)直前のことでした。戦争の終わりまでに、10台のコロッサスが使用されており、11台目が発注中でした。ブレッチリー・パークでこれらの機械が使用されたことで、連合軍はドイツ最高司令部(OKW)と占領されたヨーロッパの軍司令部間の傍受された無線電報から膨大な軍事情報を得ることができました。
コロッサス機械の存在は1970年代半ばまで秘密にされていました。ほとんどの機械は非常に小さな部品に解体され、その使用を推測することができませんでした。2台の機械だけが残っていましたが、結局1960年代に解体されました。2024年1月、GCHQによって公開された新しい写真は、コロッサスがブレッチリー・パークの建物とは非常に異なる環境で再設計されていたことを示しています。2008年、トニー・セイルとボランティアチームによってコロッサス・マーク2の機能的な再構築が完了し、現在はブレッチリー・パークの国立コンピューティング博物館に展示されています。
コロッサスは、未知の装置によって暗号化された傍受された無線電信メッセージの解読に使用されました。情報分析の結果、ドイツ軍は無線電信送信システムを「ザゲフィッシュ(Sägefisch、ノコザメ)」と呼んでいたことが判明し、これによりイギリス側は暗号化されたドイツの電信トラフィックを「フィッシュ(Fish)」と呼び、未知の機械によって解読されたメッセージを「トゥンニ(Tunny、マグロ)」と名付けました。
ドイツ軍が運用手順のセキュリティを強化する前に、イギリスの暗号解読者たちはこの見えない機械の機能を診断し、「イギリス・トゥンニ(British Tunny)」という模造品を作成しました。
この機械は12個のホイールで構成されており、標準の5ビットITA2電信コードのメッセージに対してヴェルナム(Vernam)暗号化技法を使用することが判明しました。この技法は、平文文字と鍵文字ストリームをXORブール関数を使用して組み合わせることで暗号文を生成しました。
1941年8月、ドイツのオペレーターのミスにより、同じ機械設定で2つのバージョンの同じメッセージが送信され、ブレッチリー・パークで傍受されました。まず、GC&CSの暗号解読者ジョン・ティルトマンがほぼ4000文字の鍵ストリームを導き出しました。その後、研究部門に新たに参加したビル・タットがこの鍵ストリームを使用してロレンツ機械の論理的構造を明らかにしました。彼は12個のホイールが2つのグループに分かれていると推測し、それぞれχ(カイ)ホイールとψ(プサイ)ホイールと名付けました。残りの2つはμ(ミュー)または「モーターホイール」と呼ばれました。カイホイールは暗号化される各文字に応じて定期的に回転し、プサイホイールはモーターホイールの制御を受けて不規則に回転しました。
ヴェルナム暗号は、十分にランダムな鍵ストリームを使用することで、平文メッセージの自然言語に固有の文字頻度分布の不均衡を除去し、暗号文に均一な分布を生成します。トゥンニ機械はこれをうまく実行しましたが、暗号解読者たちは暗号文の平文文字以外の文字間の変化の頻度分布を調べることで均一性が破られることを発見し、これがシステムへのアクセス手段を提供しました。このプロセスは「差分(differencing)」として知られ、各ビットまたは文字と次のビットまたは文字とのXOR演算によって行われました。ドイツが降伏した後、連合軍はトゥンニ機械を捕獲し、それが電気機械式ロレンツSZ(シュクレズァーツゲラート、暗号装置)であることを発見しました。
送信されたメッセージを解読するために、2つの作業を実行する必要がありました。最初は「ホイールブレイキング(wheel breaking)」で、すべてのホイールのキャンパターンを発見することでした。これらのパターンはロレンツ機械に設定され、しばらくの間複数のメッセージに使用されました。各送信はしばしば複数のメッセージを含み、ホイールの開始位置が異なって暗号化されました。アラン・チューリングは「チューリング法(Turingery)」として知られるホイールブレイキングの方法を発明しました。チューリングの技術は「長方形化(Rectangling)」へと発展し、これはコロッサスが手動分析用のテーブルを生成するのに使用されました。コロッサスのモデル2、4、6、7、および9は、このプロセスを助けるための「ガジェット」を備えていました。
2つ目の作業は「ホイール設定(wheel setting)」で、特定のメッセージのホイールの開始位置を特定することでした。キャンパターンが知られた後にのみ試みることができました。この作業がコロッサスの初期設計目的でした。コロッサスは、メッセージに対するカイホイールの開始位置を特定するために、2つの文字ストリームを比較し、プログラム可能なブール関数の評価から統計を計算しました。この2つのストリームは、高速で読み取られた暗号文と、内部で生成された鍵ストリームからなり、これは未知のドイツ機械をシミュレートしたものでした。さまざまなコロッサスの実行を通じて予想されるカイホイール設定を特定した後、処理された暗号文から文字頻度分布を調べて確認しました。コロッサスはこれらの頻度数値を生成しました。
