"多次握手,相互了解." - CollinderAccess密钥交换(曲线验证)协议

这是毕业设计一个比较伤脑细胞的需求。

CollinderAccess密钥交换(曲线验证)协议是用于Collinder无线安全系统中可信节点间的安全密钥更新问题。在假设不可信的通讯管道上完成安全的密钥交流。这个问题本身可以被描述为:局域网内的两个节电A和B,它们之间互相确认为可信节点(协议包中包含了两个节点的唯一标识),而A和B节点互相之间不了解对方密钥,协议本身必须确保在安全性未知的无线网络上传输密钥以达到密钥交流目的。

CollinderAccess协议的交换方法分为两种:一种是共享密钥式,另一种是分享密钥式。第一种共享密钥式,意思就是选择两个节点密钥中的一个做为双方共享的密钥,在这种共享密钥方式通讯模型中假设A和B节点中,A的密钥KeyA为需要被共享的密钥,则KeyA会作为两者间相互分享的密钥,B节点可以获得A的密钥的信息,然而B节点的密钥A可能永远无法得知。在这种方式下,A节点会先利用曲线验证加密算法Curve采用密钥A加密密钥本身,也即获得了Curve(KeyA,KeyA),将加密后的数据转换为CollinderAccess包发送给B节点;B节点收到CollinderAccess包后直接将密文用B的密钥加密密文,也即获得了Curve(KeyB,Curve(KeyA,KeyA)),随后B节点将之转换为CollinderAccess包再发还A节点;A节点收到包后立即用Curve的解密算法DeCurve和A的密钥解密密文,也即获得了DeCurve(KeyA,Curve(KeyB,Curve(KeyA,KeyA)))这么一个混杂密文,再转换成CollinderAccess包回复B节点;B节点获得了A返回的包后利用DeCurve算法和B的密钥解密混杂密文DeCurve(KeyA,Curve(KeyB,Curve(KeyA,KeyA)))获得A的密钥,也即DeCurve(KeyB,DeCurve(KeyA,Curve(KeyB,Curve(KeyA,KeyA)))) = KeyA。另一种分享密钥的方式则是为了让A和B两者都获取到对方的密钥,以达到相互分享自己的密钥的方式,在这种方式下,A与B之间交换密钥的方式要比共享密钥的方法多两个步骤,在B节点获得了A的密钥后利用A的密钥KeyA再次加密自己的密钥KeyB返回A节点,这时平台可以根据条件选择任何可解密的加密算法来加密,A节点获得了B节点返回的数据后利用自己的密钥解密就获得了B节点的密钥,此时分享密钥式的交流完成。

posted @ 2011-10-10 15:55  fantaros  阅读(228)  评论(0编辑  收藏  举报