对称密码体制具有安全性高、加密/解密速度快等优点,但密钥管理比较复杂。非对称密码体制密钥管理简单,但非对称密码算法一般比较复杂,加密/解密速度较慢。可将两种密码体制的优点结合起来,使用非对称密码体制来分配对称密码体制的会话密钥,下面列举了两个相关的例子。
1.简单方式密钥分配
图7-5是使用非对称密码体制建立共享会话密钥的一个简单实例。如果用户A想和用户B通信,在通信之前,需先通过以下几步建立共享会话密钥。
1)用户A向用户B发送消息PKa||IDa,其中IDa是A的身份,PKa是A的公钥。
2)用户B产生会话密钥Ks,并用A的公钥PKa对Ks加密后生成消息EPKa[Ks]发往A,A收到消息后,使用自己的私钥SKa恢复会话密钥Ks。
图7-5 简单方式密钥分配实例
用户A和B都获得了共享密钥Ks,现在双方可以用对称密码体制以Ks作为会话密钥进行保密通信了,通信完成后,他们都将Ks销毁。该密钥分配实例尽管简单,但却由于用户A和B双方在通信前和完成通信后都未存储密钥,且通信过程中,只有用户A能解读Ks,仅A、B双方知道这一共享密钥,因此,密钥泄露的危险性最小,还可防止双方的通信被敌手监听。该分配方案的最大缺点在于易受到主动攻击,如果攻击者T已接入用户A、B双方的通信信道,就可通过不被察觉的方式截获双方的通信,当然会话密钥Ks也会被截获。当A、B双方用Ks通信时,T就可以实施监听。
2.强安全方式密钥分配(www.xing528.com)
使用简单方式分配密钥容易受到主动攻击,为了增强密钥分配过程中的安全性,使用图7-6所示的方案建立共享会话密钥,密钥分配过程具有保密性和认证性,既可防止被动攻击,又可防止主动攻击。
图7-6 强安全方式密钥分配实例
在图7-6中,如果用户A想和用户B通信,在通信之前,需先通过以下几步建立共享会话密钥。
1)用户A将自己的身份IDa和一个一次性随机数N1用自己的私钥SKa加密,并附上自己的公钥证书CERTa的消息ESKa[IDa||N1]||CERTa一起发送给用户B,其中N1用于唯一地标识这次业务。
2)用户B验证收到的消息,并从中提取用户A的公钥PKa和一次性随机数N1。用户B选取一个新的一次性随机数N2,将自己的身份IDb、N1和N2一起用自己的私钥SKb加密,将附上自己的公钥证书的消息ESKb[IDb||N1||N2]||CERTb回送给用户A。第1)和2)步都使用用户的私钥加密消息是为了让对方验证自己的公钥证书,同时还可以抵抗对消息的篡改。
3)用户A验证收到的消息,并解密随机数N2,然后向B发送消息EPKb[f(N2)],其中f是对N2进行的某种变换(比如加1)。用户B从消息EPKb[f(N2)]中解密出N2,相信与自己通信的确实是用户A。
4)用户A选取一个会话密钥Ks,然后将加密消息EPKb[ESKa(Ks)]发给B,其中用B的公钥加密是为了保证只有B能解读加密结果,用A的私钥加密是为了保证该加密结果只有A能发送。B收到消息后解密出Ks。通信双方共享了会话密钥Ks,会话密钥的分配工作结束。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。