補助メソッド

公開鍵暗号スキームで用いられる補助メソッド(鍵導出関数,メッセージエンコード関数)である.

KDF

鍵導出関数 (Key Derivation Function) $\mathrm{KDF} (x, l)$ は,入力バイト列 $x$ から指定された長さ $l\ (\ge 0)$ のバイト列を出力する関数である.この出力バイト列は,共通鍵暗号用の鍵として利用するためランダム性を考慮して生成される.KDF はマスク生成関数 (Mask Generation Function: MGF)とも呼ばれる.KDF は,ISO-18033-2 に規定されている.

メッセージ・エンコーディング

PKCS#1 Ver1.5

メッセージ $M$ に対し,次のようにブロック $EB$ をパディング文字列 $PS$ を用いて構成する.

 $EB = 00\ ||\ \mathrm{BT}\ ||\ PS\ ||\ 00\ ||\ M$

ここで,$\mathrm{BT}$ はブロックタイプで秘密鍵を用いた処理(署名)の場合 0x01,公開鍵を用いた処理(暗号化)の場合 0x02 の値を取る.

パディング文字列 $PS$ は,$k - 3 - |M|$ 個の文字(バイト)から構成される.ここで,$k$ は鍵長である.パディング文字列 $PS$ の値は,$\mathrm{BT}$ が 0x01 のとき FF,$\mathrm{BT}$ が 0x02 のとき 0 でない乱数バイトを設定する.この乱数バイトは各暗号化プロセスごとに異なった乱数を設定することが推奨されている.

メッセージ $M$ の長さは,$k - 11$ より大きくてはならない.これは,少なくともパディング文字列 $PS$ を $8$ 文字以上にするためで,セキュリティ上必要である.

ブロック $EB$ の先頭の 0 を除いて次に現れる 0 までがパディング文字と判断でき,元のメッセージを取り出すことができる.

PKCS#1 Ver2.0

inserted by FC2 system