发明名称 一种Ad hoc网络传输层协议上的加密认证方法
摘要 一种Ad hoc网络传输层协议上的加密认证方法,它包括五大部分十八个具体步骤;五大部分是配置阶段,认证阶段,密钥协商阶段,加密过程,密钥更新流程;本发明涉及的加密认证方法应用在多跳Ad hoc网络中的两个节点进行端到端通信时的握手协商过程中,所述的两个节点先通过验证消息认证码即MAC进行相互认证,认证成功后采用ECDH算法进行密钥协商,最后以通过所述的密钥协商过程获得的共享密钥作为密钥材料采用AES算法对后续消息进行加密,在通信过程中发起密钥更新流程。在认证和密钥协商过程中,采用XOR运算对认证信息和密钥协商信息进行加密,安全性好,效率也很高,系统开销小并能保证加密的强度,所以,本发明在无线网络技术领域里具有广阔地应用前景。
申请公布号 CN101980558A 申请公布日期 2011.02.23
申请号 CN201010545640.2 申请日期 2010.11.16
申请人 北京航空航天大学 发明人 刘建伟;陈杰;毛剑;修春娣;尚涛;张其善
分类号 H04W12/04(2009.01)I;H04W12/06(2009.01)I;H04W28/18(2009.01)I;H04W80/06(2009.01)I 主分类号 H04W12/04(2009.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 一种Ad hoc网络传输层协议上的加密认证方法,其特征在于,该方法包括五个部分:配置阶段,认证阶段,密钥协商阶段,加密过程,密钥更新流程;一、配置阶段的准备设Ad hoc网络中的每个节点都有一定的存储能力和计算能力,节点的存储空间保持在千字节即KB数量级上,在配置阶段,每个节点在自己的内存中存储一份节点ID表,表中包含节点名称和节点ID两列,网络中的每个节点对应表中的一条记录,节点名称可为节点的IP、编号,是明文发送的信息;每个节点都有唯一的节点ID作为该节点的认证码与之相对应,用于认证彼此的身份,节点ID必须密文发送,不能被泄露;二、认证阶段的实施如在配置阶段所述,节点具备一定的计算能力,涉及的算法为异或运算即XOR,记作⊕、杂凑运算,都可以在节点计算能力受限的条件下进行,本阶段具体步骤如下:步骤1:所述节点A生成随机数RA,并计算MACA=h(RA⊕IDA),MACA为所述节点A的消息认证码即message authentication code,h()为一杂凑函数,IDA为所述节点A的ID;步骤2:所述节点A查询节点ID表得到所述节点B的认证码IDB,将RA,IDA,IDB一起做XOR运算,将MACA,RA⊕IDA⊕IDB发送给所述节点B;步骤3:所述节点B将接收到的RA⊕IDA⊕IDB存储起来,查询节点ID表得到所述节点A的认证码IDA,并计算(RA⊕IDA)′=(RA⊕IDA⊕IDB)⊕IDB,MACA′=h((RA⊕IDA)′),判断MACA与MACA′是否相等,若相等,则所述节点B认证所述节点A成功;否则,认证失败,握手失败;步骤4:若步骤3中认证成功,所述节点B生成随机数RB,并计算出MACB=h(RB⊕IDB),MACB为所述节点B的消息认证码;步骤5:所述节点B,将RB,IDB,IDA一起做XOR运算,将MACB,RB⊕IDB⊕IDA发送给所述节点A;步骤6:所述节点A将接收到的RB⊕IDB⊕IDA存储起来,计算(RB⊕IDB)′=(RB⊕IDB⊕IDA)⊕IDA,MACB′=h((RB⊕IDB)′),判断MACB与MACB′是否相等,若相等,则所述节点A认证所述节点B成功,双方彼此认证成功,认证阶段完成;否则,认证失败,握手失败;三、密钥协商阶段的实施步骤7:所述节点A生成整数a作为自己的私钥;步骤8:所述节点A计算RA⊕((g^a)mod p),并将其发送给所述节点B;步骤9:所述节点B生成整数b作为自己的私钥;步骤10:所述节点B使用步骤3中存储的RA⊕IDA⊕IDB,计算出RA=(RA⊕IDA⊕IDB)⊕(IDB⊕IDA),进而计算K=((RA⊕(RA⊕((g^a)mod p)))^b)mod p=(((g^a)mod p)^b)mod p,K为协商后的共享密钥;步骤11:所述节点B计算RB⊕((g^b)mod p),并将其发送给所述节点A;步骤12:所述节点A使用步骤6中存储的RB⊕IDB⊕IDA,计算RB=(RB⊕IDB⊕IDA)⊕(IDA⊕IDB),进而计算K=((RB⊕(RB⊕((g^b)mod p)))^a)mod p=(((g^b)mod p)^a)mod p,K为协商后的共享密钥,密钥协商阶段完成;四、加密过程的实施在完成认证、密钥协商后,所述两个节点可使用共享密钥K作为AES加密算法的密钥材料,对在它们之间交换的消息用AES加密算法进行加密,保证通信安全;五、密钥更新流程的实施在通信进行一段时间后所述节点还可以发起密钥更新流程,密钥更新进一步减小密钥被破译的可能,为数据通信带来更大的安全强度;设所述密钥更新流程由所述节点A发起;步骤13:所述节点A生成整数a′作为新的私钥,要求a′不等于a;步骤14:所述节点A计算RA⊕((g^a′)mod p),并将其发送给所述节点B;步骤15:所述节点B生成整数b′作为新的私钥,要求b′不等于b;步骤16:所述节点B计算K′=((RA⊕(RA⊕((g^a′)mod p)))^b′)mod p=(((g^a′)mod p)^b′)mod p,K′为更新后的共享密钥;步骤17:所述节点B计算RB⊕((g^b′)mod p),并将其发送给所述节点A;步骤18:所述节点A计算K′=((RB⊕(RB⊕((g^b′)mod p)))^a′)mod p=(((g^b′)mod p)^a′)mod p,K′为更新后的共享密钥,密钥更新流程完成。
地址 100191 北京市海淀区学院路37号北航电子信息工程学院