モジュール詳細:黒色暗号

世界が生まれた暗黒のように、この暗号はあなたを終わらせるだろう。

モジュールは、3つのディスプレー、キーボード、英字が書かれた2つのボタン、及び現在のページを表示するボタン(送信ボタン)で構成されている。

右の英字を押すと、次のページに移動できる。左の英字を押すと前のページに移動できる。ページは全部で2ページある。

1ページ目には、上のディスプレーに6文字の暗号化された単語、真ん中のディスプレーにある単語が表示される。

2ページ目には、上のディスプレーには3つのローマ数字、真ん中のディスプレーには3つの英字、下のディスプレーには英字のペアが表示される。

ステップ1:ディグラフィド暗号(亜種)

ここでは、上の暗号化された単語と1ページ目の真ん中と下のディスプレーに表示された単語、2つのボタンにある英字が必要となる。

真ん中と下のディスプレーは、2つのキーを作るために使用される。

真ん中のディスプレーの単語を使用して、重複する英字の2文字目以降を削除する。それから、アルファベット全体の文字列を取得し、この単語に表示された英字を削除する。

シリアルナンバーの最初の英字についてアルファベットにおける位置(A = 1,B = 2...Z = 26)が奇数の場合、単語の末尾にアルファベットを配置する。
そうでない場合、単語の先頭にアルファベットを配置する。

これが、キーAである。

下のディスプレーの単語を使用して、重複する英字の2文字目以降を削除する。それから、アルファベット全体の文字列を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの最後の英字についてアルファベットにおける位置(A = 1,B = 2...Z = 26)が偶数の場合、単語の末尾にアルファベットを配置する。
そうでない場合、単語の先頭にアルファベットを配置する。

これが、キーBである。

ページ番号/送信ボタンの上にある左のボタンに書かれた文字は、「#」に置き換えられ、その英字はキーAの末尾に追加される。これを右のボタンとキーBに対しても行う。

キーAとキーBを、左から右、上から下に9文字ごとに3つの段に分ける。

最後に、1~9の数字文字列の真上にキーAを配置し、その横に読み順で1~9の順番になるように3×3の正方形型の数字文字列を配置する。それから、キーAがある数字文字列の真下にキーBを配置し、その横に上から下、左から右に1~9の順番になるように3×3の正方形型の数字文字列を配置する。

真ん中のディスプレー:COMBO
下のディスプレー:REFUND
シリアルナンバー:S73BW0
左のボタン:S
右のボタン:A
キーA:COMBADEFGHIJKLNPQR#TUVWXYZS
キーB:#BCGHIJKLMOPQSTVWXYZREFUNDA

COMBADEFG123
HIJKLNPQR456
#TUVWXYZS789
123456789---
#BCGHIJKL147
MOPQSTVWX258
YZREFUNDA369

暗号化された単語を3組の英字のペアに分割する。各ペアに対して以下の指示に従う。

  • 1:キーAから一つ目の英字を見つける。
  • 2:キーBから二つ目の英字を見つける。
  • 3:一つ目の英字の列から、一つ目の数字を取得する。
  • 4:二つ目の英字の列から、三つ目の数字を取得する。
  • 5:両方の英字がある段を探し、その段の3×3のグリッドを参照する。両方に含まれている数字が一つだけあり、それが二つ目の数字である。
  • 6:数字を上から下に、今まで書いた数字の右に記していく。

これを読み順で読み、新たな3つの数字を取得する。3つの数字の組み合わせに対して以下の指示に従う。

  • 1:一つ目の数字を列、二つ目の数字を上の段に使用して一つ目の英字を取得する。
  • 2: 三つ目の数字を列、二つ目の数字を下の段に使用して二つ目の英字を取得する。
  • 注意:上のグリッドは一つ目の英字に対して使用し、下のグリッドは二つ目の英字に対して使用することになる。

すべて完了したら、新しい暗号化された単語を取得できる。

暗号化された単語:LTVDPL
キー:上記の復号プロセスで使用した表を使用

LT -> 556
VD -> 498
PL -> 749

数字を上から下、左から右に並べると、
547
594
689
これを左から右、上から下に読む。

547 -> LJ
594 -> WE
689 -> XX
新たな暗号化された単語:LJWEXX

ステップ2:スキュタレー転置

ここでは、ステップ1で取得した暗号化された単語が必要となる。

まず、シリアルナンバーの二番目の文字(A = 10, B = 11, ... Z = 35)を4で割った余りに2を足した数を取得し、必要な段数を求める。それから、上から下、左から右の順に6つのアスタリスクを配置する。

段:(7 % 4) + 2 = 5
**
*  
*  
*  
*  

暗号化された各文字について、各アスタリスクを読み順でその文字に置き換える。

最後に、英字を上から下、左から右に読む。

これで新たな暗号化された単語が得られる。

暗号化された単語:LJWEXX
LJ
W  
E  
X  
X  
新たな暗号化された単語:LWEXXJ

ステップ3:エニグマ暗号

ここでは、ステップ2で取得した暗号化された単語と、2ページ目の3つすべてのディスプレーが必要となる。

2ページ目には、ローター/リフレクターの設定、その下にローターの初期設定、一番下にプラグボードの初期設定が表示される。

ステップ3A:ローター/リフレクター/プラグボードの設定

上のディスプレーは、使用するローター、使用する順番、使用するリフレクターを示している。正しいローター表と正しいリフレクター表を使用しエニグマ復号機を作成する。

これらは「リフレクター-下部ローター-中央ローター-上部ローター」の順で読む。上部ローターの真上にAからZの文字列を配置し、プラグボードとして使用する。

下のディスプレーの回路図を用いて、エニグマ復号機を作成する。

ローターの真下にあるディスプレーには各ローターの英字がどこにあるかを示している。左下の英字がその英字と同じになるようにローターを回転させる。

プラグボードの初期設定にある各英字のペアごとに、プラグボード上の2つの英字を入れ替える。

Enigma Schematic

すべての設定が完了すると、使用準備が整う。はじめにステップ3Bを行い、暗号化された英字の一文字目を復号する。その後、ステップ3Cの通りにローターを回転させる。

ステップ3B:エニグマ復号機の使用方法

  • 1:単語内の英字を取得し、復号機のプラグボードの段からそれを探す。
  • 2:真下に上部ローターの上段へ進み、新しい英字を取得する。
  • 3:上部ローターの下段から、新しい英字を探す。
  • 4:真下に中央ローターの上段へ進み、新しい英字を取得する。
  • 5:中央ローターの下段から、新しい英字を探す。
  • 6:真下に下部ローターの上段へ進み、新しい英字を取得する。
  • 7:下部ローターの下段から、新しい英字を探す。
  • 8:真下にリフレクターの上段へ進み、新しい英字を取得する。
  • 9:リフレクターの下段から、新しい英字を探す。
  • 10:真上に下部ローターの下段へ進み、新しい英字を取得する。
  • 11:下部ローターの上段から、新しい英字を探す。
  • 12:真上に中央ローターの下段へ進み、新しい英字を取得する。
  • 13:中央ローターの上段から、新しい英字を探す。
  • 14:真上に上部ローターの下段へ進み、新しい英字を取得する。
  • 15:上部ローターの上段から、新しい英字を探す。
  • 16:真上にプラグボードの段へ進み、復号された英字を取得する。

以下の例はIを使用し、復号後の英字Fを取得している。

ステップ3C:ローターの回転機構

次のセクションではローターの回転がどのように作動するかについて述べている。

ローターの下段には横にアスタリスクがついている英字が二つあることにお気づきだろうか。ローターの状態によって、以下のように異なる影響がある。

  • アスタリスクが中央ローターの左端にある場合、3つすべてのローターを回転させる。
  • そうでなければ、アスタリスクが上部ローターの左端にある場合、中央と上部の両方のローターが回転する。
  • そうでない場合、上部ローターのみが回転する。
  • 各回転は1段階だけ左に動かす。(例:A -> B, G -> H, Z -> Aなど)

ステップ3Bと3Cを単語の各英字に対して繰り返し、復号された単語を取得する。

復号された単語を取得したら、それを送信する。入力を開始すると、全てのディスプレーが暗転し下のディスプレーに入力された文字が表示される。

入力を消去するには、いずれかの英字をクリックする。ページが移動し、入力した文字列が消去される。6文字を超える入力はできないようになっている。

入力に問題がなければ、「SUB」と書かれたボタンを押して、回答を送信する。ミスが記録された場合、モジュールの最初のページに戻るが、暗号の再生成はされない。