モジュール詳細:形状暗号

幾何学の先生から、あなたへの宿題だって。

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

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

ページ1には、上のディスプレーに6文字の暗号化された単語、真ん中のディスプレーにキーワードが表示される。このキーワードをKW1とする。

ページ2とページ3には、3つのディスプレーすべてに数字が表示される。各桁は円形暗号で使用する。

ページ4には、上のディスプレーにキーワードが表示される。このキーワードをKW2とする。

ページ4とページ5には、0~11の範囲の値が表示され、その真下のディスプレーに回転方向が表示される。

ページ5には、下のディスプレーにある数字が表示される。この数字は正三角形暗号の十二角形キーの作成で使用する。

ページ6とページ7には、ディスプレーに6文字の英字がモールス信号で表示されている。これをKW3とする。これは四角形暗号で使用する。

暗号化された単語を取得し、以下のルールに従う。

ステップ1:円形暗号

このステップでは、KW1を使用して文字列を作成する。

作成するには、キーワードの後ろにアルファベット全体の文字列を作成し、重複する英字を削除する(最初に出てきた英字は除外する)。

文字列と円周率は、左端を0番目とする。

2ページ目の上のディスプレーの数字を取得し、円周率の位置を得る。その桁の位置にある数字を取り、最初の文字からその数だけ左にシフトし、必要ならループする。この作業を6文字と数字すべてについて続ける。

円周率の先頭120桁は、以下の通りである。

31415926535897932384
62643383279502884197
16939937510582097494
45923078164062862089
98628034825342117067
98214808651328230664

出来上がった英字が新しい暗号化された単語を形成する。

暗号化された単語:LSXTFC
KW1:CARNIVAL
キー1:CARNIVLBDEFGHJKMOPQSTUWXYZ
数字:2, 12, 33, 44, 45, 62

2番目:4, L->R
12番目:9, S->F
33番目:2, X->U
44番目:9, T->G
45番目:9, F->A
62番目:9, C->P
暗号化された単語:RFUGAP

ステップ2:正三角形暗号

このステップでは、KW2を使用して文字列を作成する。

作成するには、キーワードの後ろにアルファベット全体の文字列を置き、重複する英字を削除する(最初に出てきた英字は除外する)。それから先頭の10文字を取得し、それを末尾に加える。これで、36文字の文字列ができるはずである。

文字列の最初の文字を取得する。次に、5ページにある数字だけ右に進み、到達した英字を取得する。そのステップをもう一度繰り返し、もう一つ英字を取得する。この3文字の文字列が、最初の正三角形となる。この作業を、毎回未使用の一番左にある位置から始めて、合計12個の正三角形ができるまで繰り返す。各英字は正三角形の頂点に、反時計回りに配置されている。

4ページと5ページにある時計回りと反時計回りのマークは、暗号化された単語を解読するために必要な回転を伝えている。各回転は、真上にあるディスプレーの各正三角形に対応している。

モジュール上で最初にリストアップされた正三角形(先頭は0番目)に最初の回転を使用し、その方向に60度だけ回転させて英字を変更する。変換元の英字があった位置にある英字が変換後の英字である。すべての英字が解読されるまでこれを繰り返す。

暗号化された単語:RFUGAP
KW2:FANFARE
キー2:FANREBCDGHIJKLMOPQSTUVWXYZFANREBCDGH
数字:9, 0, 6, 10, 9, 4
正三角形:2
回転:↻↻↻↻↻↺

正三角形の文字列:

FNE
ARB
CGI
DHJ
KMP
LOQ
SUW
TVX
YFN
ZAR
ECG
BDH

復号:

R->Z
F->N
U->W
G->E
A->R
P->M

新たな暗号化された単語:ZNWERM

ステップ3:四角形暗号

このステップでは、付録:モールス信号を参照して、KW3を解読し復号したKW3を使用して行列を作成する。

作成するには、Jがある場合はそれをIに変換し、KW3から重複する英字を削除する(最初に出てきた英字は除外する)。その後、Jを除くアルファベット全体の文字列を取得し、現在のキーに含まれるすべての英字を削除したら、キーの末尾にアルファベットを配置する。

25文字の文字列を取得できたら、5×5の行列を作成していく。

暗号化された単語を2文字のペアに分ける。各ペアに対し、

  • 2つの英字が全く同じ場合、そのままにする。
  • そうでなければ、英字が行列内の同じ段にある場合、中央の段に対して線対称である位置の英字に置き換える。
  • そうでなければ、英字が行列内の同じ列にある場合、中央の列に対して線対称である位置の英字に置き換える。
  • そうでなければ、ペアの一方の英字と同じ列かつもう一方の英字と同じ段にある英字に置き換える。

暗号化された単語:ZNWERM
KW3:VOLUME
キー3:VOLUMEABCDFGHIKNPQRSTWXYZ

VOLUM
EABCD
FGHIK
NPQRS
TWXYZ

ZN -> ST
WE -> AT
RM -> US
復号された単語:STATUS

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

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

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

付録:モールス信号