モジュール詳細:距離暗号

2メートルでお願いします。

モジュール上には、平行四辺形のディスプレーが2つ、3つの三角形のボタンがトライフォース状に配置され、その右隣に別の三角形のボタンがあり、キー英字とキー数字が表示されている。

このモジュールを解除するには、以下の手順で三角形状のキーグリッドを入手し、それを使って解読した単語を入手し、トライフォース状に配置されたボタンを使ってモジュールに送信する。

ステップ0:キー三角形の作成

頂点の一つが南を向いている7×7の正三角形を作成する。キーワードの最初の英字を、この三角形の読み順の最初のセルに配置する。次に、キーワードの各英字について、その英字が使用されている場合は、その英字と最も近い未使用の英字(ループ可能なため、AとZの文字間の距離は1であり、AとBと同じになる)を見つけ、三角形内の次の未記入セルに配置する。これをキーワード内のすべての英字が使われ、三角形の最上段が埋まるまで繰り返す。

次に、後続の各セルについて、真上の2つのセルにある2つのアルファベット上の位置間の絶対値を考える。その値に対応する英字が使われていなければ、その英字を次の埋まっていないセルに入れる。そうでなければ、使用済みの英字を得た時と同じ手順に従う。その後、未使用の英字を次の未記入セルに入れる。アルファベット26文字のうち25文字が使われるまでこれを繰り返す。残りの文字を「未使用文字」と呼ぶ。下から2番目の段のセルに#を入れ、一番下に未使用文字を入れる。

使用済みの文字を得た際に、最も近い未使用の2文字がそれと同じ距離である場合、アルファベットの逆順(AからZへのループ可能)で到達する未使用の英字を取る。

キーワードがFOREVERの場合

F   O   R   E   V   D   Q
I   C   M   P   S   L
G   J   B   A   H
Z   K   Y   N
T   U   W
#   #
X

ステップ1:カエサル切り替え暗号

復号するには、暗号化された単語の最初の英字からキー英字まで、アルファベットを前方に進む回数を考える。このシフトをキー英字に適用し、得られた英字が最初の復号された英字となる。次に、次の暗号化された文字と先程の復号された文字を、それぞれ「最初の英字」と「キー英字」に当てはめ、暗号化された文字がすべてなくなるまで同じプロセスを適用する。

ステップ2:回転モノアルファベット置換暗号

キー三角形のコピーを作成し、以下で求めた方向に120°回転させる。

  • キー数字と元のキー英字のアルファベット上の位置の数字が同じ偶奇性である場合、時計回りに回転させる。
  • キー数字と元のキー英字のアルファベット上の位置の数字が同じ偶奇性ではない場合、反時計回りに回転させる。

元のキー三角形から暗号化された英字を見つけ、回転した鍵の三角形で同じ位置にある英字を見つける。#に到達した場合、新しい三角形を一時的に同じ方向に120°回転させて元の三角形の中の暗号化された英字がある位置を見つけ、一時的に回転させた鍵の三角形の中の同じ位置にある英字を見つける。その結果が復号された英字となる。

そうでない場合、到達した英字が復号された英字となる。

ステップ3:回答の入力

ボタンをクリックすると、ボタンの中に3つのサブボタンが現れる。2層のボタンが現れるまで、ボタンは文字を入力しない。

右図はモジュール上の文字の位置を示しており、「<」は削除キーである。ミスが記録されるか入力された文字がすべて削除されると、モジュールは暗号化された単語とキーワードの表示に戻る。