7.6.2 模型分析

基于PBE算法的消息传递模型与基于DES算法的消息传递模型还是有一定差别的,如图7-4所示。

甲乙双方作为消息传递双方(甲方作为发送方,乙方作为接收方),我们假定甲乙双方在消息传递前已商定加密算法和迭代次数,欲完成一次消息传递需经过如下步骤:

1)由消息传递双方约定口令,这里由甲方构建口令。

2)由口令构建者公布口令,这里由甲方将口令公布给乙方。

3)由口令构建者构建本次消息传的使用的盐,这里由甲方构建盐。

4)由消息发送方使用口令、盐对数据加密,这里由甲方对数据加密。

5)由消息发送方将盐、加密数据发送给消息接收者,这里由甲方将盐、加密数据发送给乙方。

6)由消息接收方使用盐、口令对加密数据解密,这里由乙方完成数据解密。

figure_0250_0058

图 7-4 基于PBE算法的消息通信模型

基于PBE算法的消息传递模型理解起来并不十分复杂。对于上述单向消息传递而言,如果乙方想要回复甲方消息,甲乙并不需要重复步骤1、2,仅仅需由乙方执行步骤3、4、5,由甲方执行步骤6即可。

当然,甲乙双方也可以在消息传递过程中传递迭代次数。

我们可以设想,“盐”本身是一种可以由消息传递双方按一定规律约定的信息,譬如时间。也可以是某个不可变物理硬件的编号,譬如U盘的自身唯一标识。

甲乙双方可以通过约定消息传递时间,并将其作为“盐”的基本信息,根据预定算法(如MD5算法)对其处理,最终获得真正的“盐”。这样一来,“盐”就无需传递,提高了安全性。

换一种思路考虑,有这样一种系统,使用者需要将U盘插入计算机,同时输入口令方能登录系统,那么U盘就是“盐”信息的提供者!即使U盘丢失,加密的信息也未必能被窃取!

从另一个角度思考,“盐”与口令就像两把不可分割的钥匙。