モジュール詳細:パスワード撃滅EX

多分、256ビット暗号化よりは複雑じゃないと思うよ。

モジュールを解除するには、入力フェーズで正しいパスワードを入力する。

入力するパスワードは通常モジュールの数によって変化し、長さは少なくとも5文字である。そして毎秒変化する。

序文

モジュールについて:

  • ディスプレーが一つ。
  • ファンクションキー1 (F1) は入力を送信する、もしくはステージフェーズ中に、次のステージへ進める。
  • ファンクションキー2 (F2) は入力を消去する。
  • バックスペースキーが一つ。
  • 四つの方向キーで入力を操作する。
  • タイマーディスプレーが二つ。

モジュールは五つのフェーズに分かれる:

  • プレ・ステージフェーズ
  • ステージフェーズ
  • プレ・入力フェーズ
  • 入力フェーズ
  • ポスト・エラー入力フェーズ

セクションI: プレ・ステージフェーズ

このフェーズでは、ユーザーは認証コードを入力する必要がある。これは次のフェーズへ進む前の、ユーザーの身分を証明するための工程である。

「パスワード生成」モジュールのユニコーンのルールに該当する場合、その認証コードを使用する。 そうでない場合、認証コードは、Aをゼロとして数字を英字に変換した爆弾のシリアルナンバーである。

認証コードを小文字に変換したものを入力し、次のフェーズへ進む。 入力については、付録 IIを参照する。

セクションII: ステージフェーズ

このフェーズでは、必要な情報はすべてディスプレーに表示される。表示される情報は以下の通り:

  • 左上、1段目: 2ファクタ認証サービス第三版 (2FAST™)

    ディスプレーには2ファクタ認証に用いられる六桁の数字が表示されている。 セキュリティ上の理由により、数字は120秒毎に更新される。
  • 左上、2段目: 生値

    ディスプレーは毎秒更新され、現在の生値が表示されている (Rn)。
  • 左下: 合計経過時間

    このディスプレーにはモジュールが起動してから経過した時間が表示されている。 プレ・ステージフェーズが開始すると0秒からカウントアップする。
  • 右下: 爆弾の残り時間

    このディスプレーには爆弾の残り時間が現実時間で表示されている。

ステージnで与えられる生値、Rnは、以下の式で計算されている:

Rn = [Rn + (In)] mod 104

ただし:
In = 加算因数、定数である (102 + 1 ≤ If < 103 - 1)

この加算は毎秒実行され、定数は120秒毎に変化する。

しかし、システムが破損しているため、Rnの値は計算通りにならないことがある。:-

  1. Rnは通常の進数(十進数)で表示されていないことがある。
  2. Rnの除数はその進数によって変化する。
  3. Inの範囲はその進数によって変化する。
  4. Inは定数ではなくなり、加算毎に± 1の範囲内で変化する。

計算値は次の式で計算する:-

Cn = (Inの平均)10 + (2FAST™) mod 9 + CTn+1

ステージnが開始したときの統合時間は、次の式で計算する:

統合時間、CTn = (BTn % 60) + (ETn % 60)

ただし:
BTn = ステージnが開始したときの爆弾の残り時間の現実時間(秒)
   (最終ステージの場合は、プレ・入力フェーズが開始したとき)
ETn = ステージnが開始したときの合計経過時間(秒)
   (最終ステージの場合は、プレ・入力フェーズが開始したとき)

最後に、毎秒変化する最終値は以下の式で求められる:

Fn = [ Cn + t ] mod 94 + 33

ただし:
t= 合計経過時間(秒)

注意: 現在のステージの最終値が前回のステージの最終値と等しい場合、1を足して126を超えないなら最終値に1を足し、超えるなら代わりに1を引く。

セクションIII: プレ・入力フェーズ

時間切れになる前にファンクションキーを押すことで次のフェーズへいつでも進むことができる。 3分経過すると、自動的に次のフェーズへ進む。

セクションIV: 入力フェーズ

入力フェーズに突入すると、パスワードが固定され、パスワードの変化は発生しなくなる。

パスワードの文字はステージフェーズの情報から求めることができる。各ステージにおいて:

  • それぞれのFnの先頭に&#を追加し、;を末尾に追加する。
  • それぞれの結果を、HTML数値文字参照表を用いて文字に変換する。
  • 入力については付録 IIを参照する

セクションV: ポスト・エラー入力フェーズ

モジュールが少なくとも一回ミスを記録した場合、何も入力せずに送信ボタンを押すことでポスト・エラー入力フェーズへ切り替えることができる。

左もしくは右矢印キーでそれぞれのステージ情報をスクロールする。

送信ボタンをもう一度押すことで入力フェーズへ切り替える。

付録 I: HTML数値文字参照表

文字数値表現
!&#33;
"&#34;
#&#35;
$&#36;
%&#37;
&&#38;
'&#39;
(&#40;
)&#41;
*&#42;
+&#43;
,&#44;
-&#45;
.&#46;
/&#47;
0&#48;
1&#49;
2&#50;
3&#51;
4&#52;
5&#53;
6&#54;
7&#55;
8&#56;
9&#57;
:&#58;
;&#59;
<&#60;
=&#61;
>&#62;
?&#63;
@&#64;
文字数値表現
A&#65;
B&#66;
C&#67;
D&#68;
E&#69;
F&#70;
G&#71;
H&#72;
I&#73;
J&#74;
K&#75;
L&#76;
M&#77;
N&#78;
O&#79;
P&#80;
Q&#81;
R&#82;
S&#83;
T&#84;
U&#85;
V&#86;
W&#87;
X&#88;
Y&#89;
Z&#90;
[&#91;
\&#92;
]&#93;
^&#94;
_&#95;
`&#96;
文字数値表現
a&#97;
b&#98;
c&#99;
d&#100;
e&#101;
f&#102;
g&#103;
h&#104;
i&#105;
j&#106;
k&#107;
l&#108;
m&#109;
n&#110;
o&#111;
p&#112;
q&#113;
r&#114;
s&#115;
t&#116;
u&#117;
v&#118;
w&#119;
x&#120;
y&#121;
z&#122;
{&#123;
|&#124;
}&#125;
~&#126;

付録 II: 入力リファレンス

直接入力できない文字については、対応する文字を2回連続で入力することで入力ができる。
例: 「77」と入力すると自動的に「&」へ変換される。

なお、あくまでもパスワードであるため、入力した内容はディスプレーには表示されず、文字は*に置き換わって表示される。

入力対応する文字
小文字
(a, b, c, ...)
対応する大文字
(A, B, C, ...)
~`
!1
@2
#3
$4
%5
^6
&7
*8
(9
)0
_-
+=
{[
}]
|\
:;
"'
<,
>.
?/