问答题
如何利用公开密钥加密进行常规加密密钥的分配?
【参考答案】
假定通信的双方A和B已经通过某种方法得到对方的公开密钥,常规加密密钥分发过程如下步骤所示:
(1) A->B:EKUb[N1||IDa]
A使用B的公开密钥KUb加密一个报文发给B,报文内容包括一个A的标识符IDa和一个现时值N1,该现时值用于惟一地标识本次交互。
(2) B-->A:EKUb[N1||N2]
B返回一个用A的公开密钥KUa加密的报文给A,报文内容包括A的现时值N1和B新产生的现时值N2。因为只有B才可以解密(1)中的报文,报文(2)中的N1存在使得A确信对方是B。
(3) A->B:EKUb[N2]
A返回一个用B的公开密钥KUb加密的报文给B,因为只有A才可以解密(2)中的报文,报文(3)中的N2存在使得B确信对方是A。
(4) A->B:EKUb[EKRa[Ks]]
A产生一个常规加密密钥Ks,并对这个报文用A的私有密钥KRa加密,保证只有A才可能发送它,再用B的公有密钥KUb加密,保证只有B才可能解读它。
(5) B计算DKUa[DKRb[EKUb[EKRa[Ks]]]]得到Ks,从而获得与A共享的常规加密密钥,因而通过Ks可以与之安全通信。