6.1.2 PBES1 Decryption Operation (PBES1 解密操作)
PBES1 的解密操作包括以下步骤, 在密码 P 下解密密文 C 以恢复消息 M:
-
获取八个八位字节的盐值 S 和迭代次数 c.
-
将 PBKDF1 密钥派生函数 (第 5.1 节) 应用于密码 P、盐值 S 和迭代次数 c 以产生长度为 16 个八位字节的派生密钥 DK:
DK = PBKDF1 (P, S, c, 16)
- 将派生密钥 DK 分离为由 DK 的前八个八位字节组成的加密密钥 K 和由后八个八位字节组成的初始化向量 IV:
K = DK<0..7>
IV = DK<8..15>
-
使用底层分组密码 (DES 或 RC2) 在 CBC 模式下, 在加密密钥 K 和初始化向量 IV 下解密密文 C 以恢复编码消息 EM.如果密文 C 的长度 (以八位字节为单位) 不是 8 的倍数, 则输出 "decryption error" (解密错误) 并停止.
-
将编码消息 EM 分离为消息 M 和填充串 PS:
EM = M || PS
其中填充串 PS 由一定数量 psLen 个八位字节组成, 每个八位字节的值为 psLen, 其中 psLen 在 1 到 8 之间.如果无法以这种方式分离编码消息 EM, 则输出 "decryption error" (解密错误) 并停止.
- 输出恢复的消息 M.