6.1.1. PBES1 Encryption Operation (PBES1 暗号化操作)
6.1.1. PBES1 Encryption Operation (PBES1 暗号化操作)
PBES1 の暗号化操作は、以下のステップから構成されます。これらは、パスワード P の下でメッセージ M を暗号化して暗号文 C を生成します:
-
セクション4で概説されているように、8オクテットのソルト S と反復回数 c を選択します。
-
PBKDF1 鍵導出関数 (セクション 5.1) を、パスワード P、ソルト S、および反復回数 c に適用して、長さ16オクテットの導出鍵 DK を生成します:
DK = PBKDF1 (P, S, c, 16) -
導出鍵 DK を、DK の最初の8オクテットから構成される暗号化鍵 K と、次の8オクテットから構成される初期化ベクトル IV に分離します:
K = DK<0..7>
IV = DK<8..15> -
M とパディング文字列 PS を連結してエンコードされたメッセージ EM を形成します:
EM = M || PSここで、パディング文字列 PS は、8-(||M|| mod 8) オクテットから構成され、各オクテットの値は 8-(||M|| mod 8) です。パディング文字列 PS は以下のステートメントのいずれかを満たします:
PS = 01, if ||M|| mod 8 = 7 ;
PS = 02 02, if ||M|| mod 8 = 6 ;
...
PS = 08 08 08 08 08 08 08 08, if ||M|| mod 8 = 0.エンコードされたメッセージの長さ (オクテット単位) は8の倍数となり、エンコードされたメッセージからメッセージ M を明確に回復することが可能となります (このパディング規則は RFC 1423 [RFC1423] から取られています)。
-
エンコードされたメッセージ EM を、暗号化鍵 K と初期化ベクトル IV の下で、CBC モードの基礎となるブロック暗号 (DES または RC2) で暗号化して暗号文 C を生成します。DES の場合、鍵 K はパリティビットを無視した56ビット DES 鍵の64ビットエンコーディングと見なされるべきです ([NIST46] を参照)。RC2 の場合、"effective key bits" (有効鍵ビット) は64ビットであるべきです。
-
暗号文 C を出力します。
ソルト S と反復回数 c は、AlgorithmIdentifier 値で復号化を実行する当事者に伝達される場合があります (Appendix A.3 を参照)。