3. 分割导出密钥DK成由DK的前8字节组成的加密密钥K,和一包含下8个字节的初始化
向量IV:
K=DK<0..7>,
IV=DK<8..15>.
4. 连接M和一填充串PS,以形成一编码消息EM:
EM=MPS,
其中填充串PS由8-(Mmod8)个字节组成,每个的值是8-(Mmod8).填充串PS满
足以下的表达式:
PS=01,ifMmod8=7;
PS=0202,ifMmod8=6;
...
PS=0808080808080808,ifMmod8=0.
编码消息的字节长度将是8的倍数,从编码消息中可以无歧义地恢复出消息M 。(填充规则
来自于RFC1423 。
5. 在加密密钥K和初始向量IV下,用基本块密码算法以CBC模式加密编码消息EM,以产
生密文C 。对于DES,密钥K应被看作一56位DES密钥并且奇位忽略的64位编码 。对
于RC2,“有效密钥位“应为64位 。
6. 输出密文C 。
盐S和迭代次数c应以一AlgorithmIdentifier值传递给执行解密的一方 。(见附录A.3)
6.1.2解密操作
PBES1的解密操作包括以下步骤,在口令P的作用下解密密文C以恢复消息M:
1. 获取八字节盐S和迭代次数c 。
2. 应用PBKDF1密钥导出函数(5.1节)于口令P、附加盐S和迭代次数以产生长度为16字
节的导出密钥:
DK=PBKDF1(P,S,c,16)
3. 分割导出密钥DK,由DK的前8字节组成一加密密钥K,和由下8字节组成的初始向量
IV:
K=DK<0..7>,
IV=DK<8..15>.
4. 在加密密钥K和初始向量IV作用下,用基本块密码算法(DES或RC2)以CBC模式解密密
文,以恢复编码消息EM 。假如密文的字节长度不是8的倍数,输出“解密错”并停止 。
5. 把编码消息EM分割成一消息M和一填充串PS:
EM=MPS,
其中填充串PS由psLen个字节组成,每个的值是psLen,其中psLen介于1和8之间 。假如
不可能以这种方式分割编码消息EM,输出“解密错”并停止 。
6.输出恢复的消息M 。
6.2PBES2
PBES2结合一个基于口令的密钥导出函数,在PKCS#5的本版本中应为PBKDF2(5.2节)和一
基本的加密策略(例子见附录B.2) 。基本加密策略的密钥长度和任何其它参数依靠于策略 。
新的应用推荐使用PBES2 。
6.2.1加密操作
PBES2的加密操作包括以下步骤,应用一选择的密钥导出函数KDF和一选择的基本加密策略,
以在口令P的作用下加密消息M以产生密文C:
1. 如第4节所述,选择一盐S和一迭代次数c 。
2. 为基本加密方法的导出密钥选择字节长度dkLen 。
3. 应用选择的密钥导出函数于口令P、盐S和迭代次数c,以产生长度dkLen字节的导出
密钥 。
4. 在导出密钥K的作用下用基本加密方法加密消息M以产生密文C(依靠于基本策略,这一
步可能包括诸如初始向量和填充等参数的选择) 。
5. 输出密文C 。
6. 盐S和迭代次数、密钥长度dkLen、密钥导出函数的标识符和基本的加密策略可以一
AlgorithmIdentifier值传给执行解密的一方(见附录A.4) 。
6.2.2解密操作
PBES2的解密操作包括以下步骤,在口令的作用解密密文C以恢复消息M:
1. 获取该操作所用的盐S 。
2. 为密钥导出函数获取迭代次数 。
3. 获取基本加密方法的导出密钥的字节长度dkLen 。
4. 应用选择的密钥导出函数于口令P、盐S和迭代次数以产生长度为dkLen字节的导出密
钥DK:
DK=KDF(P,S,c,dkLen) 。
5. 用基本加密方法在导出密钥DK的作用下解密密文C以恢复消息M 。假如解密函数输出“解
密错”,那么输出“解密错”并停止 。
6. 输出恢复的消息M 。
7.消息验证方式
消息验证策略包括一个MAC(消息验证码)产生操作和一个MAC验证函数操作,其中MAC产生
- 基于MPLS的流量工程要求
- Linux下基于DNS的多机均衡负载的实现
- 光以太网基于LAN的WAN
- 支付宝吱口令怎么关闭 停用当前吱口令的方法介绍
- 微信中发语音口令红包具体操作方法
- 基于H.323标准的IP电话附加业务
- 基于VoIP技术的新一代话音业务
- 基于分组网的多媒体视听业务的发展
- 报花名绕口令 绕口令的相关知识
- 支付宝口令红包怎么领取
