8.2.2 模型分析

我们仍以消息传递模型为例,甲方作为发送者,乙方作为接收者,分述甲乙双方如何构建密钥、交互密钥和加密数据。

首先,甲乙双方需要在收发消息前构建自己的密钥对,如图8-1所示。

figure_0271_0060

图 8-1 初始化DH算法密钥对

甲乙两方构建密钥需要经过以下几个步骤:

1)由消息发送的一方构建密钥,这里由甲方构建密钥。

2)由构建密钥的一方向对方公布其公钥,这里由甲方向乙方发布公钥。

3)由消息接收的一方通过对方公钥构建自身密钥,这里由乙方使用甲方公钥构建乙方密钥。

4)由消息接收的一方向对方公布其公钥,这里由乙方向甲方公布公钥。

这里要注意的是,乙方构建自己的密钥对的时候需要使用甲方公钥作为参数。这是很关键的一点,如果缺少了这一环节则无法确保甲乙双方获得同一个秘密密钥,消息加密更无从谈起。

其次,假设甲乙双方事先约定好了用于数据加密的对称加密算法(如AES算法),并构建本地密钥(即对称加密算法中的秘密密钥),如图8-2和图8-3所示。

甲方需要使用自己的私钥和乙方的公钥才能构建本地密钥,即用于数据加密/解密操作的对称加密算法的秘密密钥。

figure_0272_0061

图 8-2 甲方构建DH算法本地密钥

figure_0272_0062

图 8-3 乙方构建DH算法本地密钥

乙方构建本地密钥的方式与甲方相类似,同样需要通过使用自己的私钥和甲方的公钥构建本地密钥。

虽然,甲乙两方使用了不同的密钥来构建本地密钥,但甲乙两方得到密钥其实是一致的,我们可以通过后续的测试用例验证这一点。也正因于此,甲乙双方才能顺利地进行加密消息的传递。

最后,甲乙双方构建了本地密钥后,可按基于对称加密算法的消息传递模型完成消息传递,如图8-4所示。

figure_0272_0063

图 8-4 DH算法加密消息传递

作为对称加密体制向非对称加密体制的一种过渡,DH算法仅仅比一般的对称加密算法多了密钥对的构建和本地密钥的构建这两项操作,而真正的数据加密/解密操作仍由对称加密算法完成。