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

この暗号は灰色で殺風景で退屈に見えるかもしれない。まあ、言わせてもらうと...間違ってはいない。

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

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

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

以下のルールに従って単語を解読する。

ステップ1:ビットスイッチ暗号

ここでは、ページ1にある上のディスプレーの暗号文と真ん中のディスプレーにある6桁の二進数を使用する。

まず、シリアルナンバーの最初の文字を使用して変換器を特定する。

021453923154I24513R24531
121534A25134J25413S25431
231524B24153K34512T34521
331452C34152L35214U35421
441523D35124M35412V43251
541532E45123N43512W43521
651234F45132O45213X45231
751423G54123P53412Y53421
851432H54132Q54213Z54231

次に、暗号文の各文字を以下の表を用いて二進数に変換する。

A00001H01000O01111V10110
B00010I01001P10000W10111
C00011J01010Q10001X11000
D00100K01011R10010Y11001
E00101L01100S10011Z11010
F00110M01101T10100
G00111N01110U10101

各二進数に対して、その文字の位置にあるビット(真ん中のディスプレー)が1であれば、その二進数の各ビットを反転させる。そして、変換器を適用して、変換器のそれぞれの位置にある数字をその数字の位置にある二進数の数字にする。


(シリアルナンバーの二番目の英字に対して)

変換器:35124
二進数:10011
10011の3番目 → 0
10011の5番目 → 1
10011の1番目 → 1
10011の2番目 → 0
10011の4番目 → 1
10011 → 01101

最後に二進数を同じ表を用いて英字に変換する。

暗号化された単語:HMCDCC
使用変換器:54123
下のディスプレーの二進数:011010

H → 01000 + 0 → 01000 + 54123 → 00010 → B
M → 01101 + 1 → 10010 + 54123 → 01100 → L
C → 00011 + 1 → 11100 + 54123 → 00111 → G
D → 00100 + 0 → 00100 + 54123 → 00001 → A
C → 00011 + 1 → 11100 + 54123 → 00111 → G
C → 00011 + 0 → 00011 + 54123 → 11000 → X
新たな暗号化された単語:BLGAGX

ステップ2:円柱転置

ここでは、ステップ1で獲得した暗号化された単語とページ1にある下のディスプレーの数字を使用する。

その数字を取得し、その下に、読み順で数字の列に収まるように6本のダッシュを入れる。

121231234 12345123456
--------- -----------
------- -
--

暗号化された単語を取得し、昇順でその数字の下のダッシュをすべて文字に置き換える。

最後に、読み順で英字を取得し新たな英字の並びを得る。

暗号化された単語:BLGAGX
数字:321

321
GGB
XAL

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

ステップ3:ポルタックス暗号

ここでは、ステップ2で獲得した暗号化された単語とページ2にある上のディスプレーの3文字の鍵を使用する。

更に、2段ずつの2グループ、合計4段からなるこの暗号表を使用する。

ABCDEFGHIJKLM
NOPQRSTUVWXYZNOPQRSTUVWXY
-------------------------
ACEGIKMOQSUWYACEGIKMOQSUW
BDFHJLNPRTVXZBDFHJLNPRTVX

暗号文を二分割し、2つの3文字の文字列を取得する。前半の文字列の下に後半の文字列を配置する。各列は上から下に読む文字列のペアとして扱う。各ペアに対して、以下を実行する。

  • Aという文字が、3/4段目にあるN番目の鍵の文字と同じ位置になるように最上段をずらす。Nは左から右に数えたペアの位置である。
  • 最上段の長さの範囲で、1/2段目の中からペアの最初の文字を探す。
  • 最上段の長さの範囲で、3/4段目の中からペアの二番目の文字を探す。
  • 2つの文字が同じ列にある場合、ペアの最初の文字を1/2段目の文字に置き換え、ペアの二番目の文字を3/4段目の文字に置き換える。
  • そうでない場合、ペアの最初の文字をそれと同じ段にあるかつペアの二番目の文字と同じ列にある文字に置き換える。ペアの二番目の文字をそれと同じ段にあるかつペアの最初の文字と同じ列にある文字に置き換える。

ペアの最初の文字で取得した文字の次に、ペアの二番目の文字で取得した文字を読むことで、復号された単語を得られる。

暗号化された単語:GGBXAL
鍵:JSK

GGB
XAL
ABCDEF GHIJKLM
NOPQRSTUVWXYZ NOPQRSTUVWXY
ACEGIKMOQSUWY ACEGIKMOQSUW
BDFHJLNPRTVXZ BDFHJLNPRTVX

GX→ HV

ABCDEF GHIJKLM
NOPQRSTUVWXYZ NOPQRSTUVWXY
ACEGIKMOQSUWY ACEGIKMOQSUW
BDFHJLNPRTVXZ BDFHJLNPRTVX

GA→ EE

ABCDEF GHIJKLM
NOPQRSTUVWXYZ NOPQRSTUVWXY
ACEGIKMOQSUWY ACEGIKMOQSUW
BDFHJLNPRTVXZ BDFHJLNPRTVX

BL→ AN

HEA
VEN

復号された単語:HEAVEN

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

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

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