モジュール詳細:アビス
球体!
このモジュールの初期状態では、8文字の英字が2行表示される。これを結合した長さ16の文字列を「シード」と呼ぶ。また、その下に「Ready」ボタンがあるがこれはまだ押してはならない。このモジュールの目的は、シードを元に求めた8桁のコードをモジュールに入力することである。誤ったコードを入力するとミスが記録されるが、シードは変わらない。
コードの特定
次のステップを利用して8桁のコードを得る。
- シードを8つのペアに分割する。
- ペアがそれぞれ五十二進数の数字(A = 0、B = 1... Z = 25、a = 26... z = 51)であるとして、十進数に変換する。
- 4桁以下の数字については、4桁になるように左に0を追加する。
- これらを結合して32桁の数字を得る。
-
以下の通りに数字を入れ替える。
- バッテリーが奇数である場合、最初の数字と2個目の数字、3個目の数字と4個目の数字、...とすべて入れ替える。
- そうでない場合、2個目の数字と3個目の数字、4個目の数字と5つ目の数字、...とすべて入れ替え、最後に32個目の数字と最初の数字を入れ替える。
- 数字を8つの4桁の数字に分割する。
-
シリアルナンバーの3つ目と6つ目の文字に従ってこのグループを入れ替える。
- どちらも奇数の場合、1と2、3と4、5と6、7と8を入れ替える
- 奇数、偶数の場合、1と3、2と4、5と7、6と8を入れ替える
- 偶数、奇数の場合、1と5、2と6、3と7、4と8を入れ替える
- どちらも偶数の場合、1と8、2と7、3と6、4と5を入れ替える
- それぞれのグループについて、ポートの数の分だけ右にシフトする(例: ポートが1つならば 1234→4123
-
シリアルナンバーを2つに分割し、それぞれから利用するグループを特定する。シリアルナンバーのそれぞれの文字について、
- 5より小さい、あるいはアルファベットでNより前である場合、右半分を利用しない。
- そうでない場合、左半分を利用しない。
- 得られた2つ目の4桁の数字が1つ目の4桁の数字と同じである場合、(手順8からの文字列において)読み順で次にある4桁を、必要に応じてループさせて使用する。
得られた8桁の数字がコードである。「Ready」ボタンを押して進む。
次のページに続く...