一 PBE加密过程图例
二 PBE加密过程介绍
1 生成KEK
首先,伪随机数生成器会生成一个盐的随机数。将盐和Alice输入的口令一起输入单向散列函数,得到的散列值就是用来加密密钥的密钥(KEK).
正如在饭菜上撒盐会改变饭菜的味道一样,在口令中加盐就会改变所生成的KEK值。盐是一种用于防御字典攻击的机制。
2 生成会话密钥并加密
接下来,使用伪随机数生成会话密钥。会话密钥是用来加密消息的密钥(CEK)。
会话密钥需要用刚才第1步中生成的KEK进行加密,并和盐一起保存在安全的地方。会话密码加密之后,KEK就会被丢弃,因为KEK没有必要保存下来,只要通过盐和口令就可以重建KEK。
3 加密消息
最后,用步骤2中生成的会话密钥对消息进行加密。
PBE加密后所产生的输出包括下来3中。
- 盐
- 用KEK加密的会话密钥
- 用会话密钥加密的消息
其中“盐”和“用KEK加密的会话密钥”需要保存在安全的地方。