メインコンテンツまでスキップ

6.1.2. PBES1 Decryption Operation (PBES1 復号化操作)

6.1.2. PBES1 Decryption Operation (PBES1 復号化操作)

PBES1 の復号化操作は、以下のステップから構成されます。これらは、パスワード P の下で暗号文 C を復号化してメッセージ M を回復します:

  1. 8オクテットのソルト S と反復回数 c を取得します。

  2. PBKDF1 鍵導出関数 (セクション 5.1) を、パスワード P、ソルト S、および反復回数 c に適用して、長さ16オクテットの導出鍵 DK を生成します:

    DK = PBKDF1 (P, S, c, 16)
  3. 導出鍵 DK を、DK の最初の8オクテットから構成される暗号化鍵 K と、次の8オクテットから構成される初期化ベクトル IV に分離します:

    K = DK<0..7>
    IV = DK<8..15>
  4. 暗号文 C を、暗号化鍵 K と初期化ベクトル IV の下で、CBC モードの基礎となるブロック暗号 (DES または RC2) で復号化して、エンコードされたメッセージ EM を回復します。暗号文 C の長さ (オクテット単位) が8の倍数でない場合、"decryption error" (復号化エラー) を出力して停止します。

  5. エンコードされたメッセージ EM を、メッセージ M とパディング文字列 PS に分離します:

    EM = M || PS

    ここで、パディング文字列 PS は、ある数 psLen のオクテットから構成され、各オクテットの値は psLen です。psLen は1から8の間です。この方法でエンコードされたメッセージ EM を分離することが不可能な場合、"decryption error" (復号化エラー) を出力して停止します。

  6. 回復されたメッセージ M を出力します。