Bellovin和Merritt提出的加密密钥交换(Encrypted Key Exchange,EKE)协议可实现安全的基于口令的认证。这个协议的新颖之处在于:采用共享密钥来加密随机生成的公钥。使用该协议的两个用户可以实现相互认证,并共享一个会话密钥。
设A和B是通信双方,他们共享一个口令P,EKE协议描述如下:
1)A随机生成一个私钥SKa和公钥PKa,此时的公钥PKa不公开,作为非对称加密算法的加密密钥,A用共享口令P作为密钥加密PKa,连同自己的身份一起发送给B:
A→B:IDa‖EP(PKa)
2)B首先用共享口令P解密出PKa,然后生成一个会话密钥Ks,并用PKa对其加密,再用P加密,最后将结果发送给A。
B→A:EP(EPKa(Ks)
3)A解密双重加密的密文,得到Ks,接着选取一个随机数Na,并用Ks加密,然后把密文发送给B。
A→B:EKs(Na)(www.xing528.com)
4)B解密出Na,他也选取一个随机数Nb,使用会话密钥Ks对Na和Nb加密,把所得密文发送给A。
B→A:EKs(Na‖Nb)
5)A解密密文,并用Ks对Nb加密返回给B。
A→B:EKs(Nb)
6)B解密出Nb,如果第3)~5)步中的询问和应答成功,则通信双方用共享的会话密钥Ks继续通信。
分析:在第5)步中A用解密出的Na与第3)步中的Na进行比较,验证了B通信的真实性。第6)步中B用解密出的Nb与第4)步中的Nb进行比较,验证了A通信的真实性,即第3)~5)步实现了基于询问-应答的双向认证协议。
EKE协议的独创性在于前两步,第1)步中的PKa是一次性随机数,第2)步中包含另一个一次性随机数,即会话密钥Ks。这样,第1)、2)步的密文组能够通过和P统计独立的方式把P隐藏起来。第3)~5)步中随机数Na、Nb进一步隐藏了会话密钥Ks。最终,P保持着和EKE协议中任何消息的统计独立性。它不仅可以抗击对于口令的在线窃听,还可以抗击离线字典攻击。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。