发明名称 基于身份的匿名双向认证方法
摘要 本发明公开了一种基于身份的匿名双向认证方法,通过对节点初始化,认证激活,认证请求,认证响应,密钥确认等步骤,采用随机选取伪名的方法,通过所选取的伪名和其它节点进行双向认证,使得网络节点不必预分配伪名集,也无需安全保存伪名集,而且当节点被入侵之后也不能通过跟踪通信的方法获取其真实身份信息,提高了网络使用过程中的安全性。
申请公布号 CN101599959A 申请公布日期 2009.12.09
申请号 CN200910023289.8 申请日期 2009.07.10
申请人 西北工业大学 发明人 李慧贤;庞辽军
分类号 H04L29/06(2006.01)I;H04L9/32(2006.01)I;H04L9/30(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 西北工业大学专利中心 代理人 黄毅新
主权项 1、一种基于身份的匿名双向认证方法,其特征在于包括以下步骤:(a)节点初始化:可信第三方TTP建立系统参数并为认证双方节点:节点A和节点B分配私钥,该系统参数包括:两个q阶的循环群(G<sub>1</sub>,+)和(G<sub>2</sub>,·);P为G<sub>1</sub>的生成元;令e为G<sub>1</sub>和G<sub>2</sub>上的双线性变换,即e:G<sub>1</sub>×G<sub>1</sub>→G<sub>2</sub>;可信第三方TTP随机选取自己的私钥<maths num="0001"><![CDATA[<math><mrow><msub><mi>S</mi><mi>TTP</mi></msub><mo>&Element;</mo><msubsup><mi>Z</mi><mi>q</mi><mo>*</mo></msubsup><mo>,</mo></mrow></math>]]></maths>其对应公钥为Q<sub>TTP</sub>=S<sub>TTP</sub>·P∈G<sub>1</sub>;h(x)表示一个单向哈希函数;可信第三方TTP为节点A和节点B分配私钥的方法为:节点A和节点B的身份ID<sub>1</sub>和ID<sub>2</sub>分别为其公钥,其私钥分别为S<sub>1</sub>=S<sub>TTP</sub>·ID<sub>1</sub>和S<sub>2</sub>=S<sub>TTP</sub>·ID<sub>2</sub>;(b)认证激活:由节点B发送认证激活分组给节点A;该认证激活分组内容包括:PID<sub>2</sub>字段,其中:PID<sub>2</sub>字段:节点B当前的伪身份,其计算方法为:节点B首先随机选取一个仅用于本次认证及密钥协商过程的临时私钥<maths num="0002"><![CDATA[<math><mrow><mi>b</mi><mo>&Element;</mo><msubsup><mi>Z</mi><mi>q</mi><mo>*</mo></msubsup><mo>,</mo></mrow></math>]]></maths>然后计算PID<sub>2</sub>=b·ID<sub>2</sub>;(c)认证请求:当节点A收到认证激活分组后,构造并发送认证请求分组给节点B;该认证请求分组内容包括:PID<sub>2</sub>字段、PID<sub>1</sub>字段、TKM<sub>1</sub>字段和MIC<sub>1</sub>字段,其中:PID<sub>2</sub>字段:其值与认证激活分组中的PID<sub>2</sub>字段值相同;PID<sub>1</sub>字段:节点A当前的伪身份,其计算方法为:节点A首先随机选取一个仅用于本次认证及密钥协商过程的临时私钥<maths num="0003"><![CDATA[<math><mrow><mi>a</mi><mo>&Element;</mo><msubsup><mi>Z</mi><mi>q</mi><mo>*</mo></msubsup><mo>,</mo></mrow></math>]]></maths>然后计算PID<sub>1</sub>=a·ID<sub>1</sub>;TKM<sub>1</sub>字段:节点A选取的临时公钥信息,其计算方法为:TKM<sub>1</sub>=a·P;MIC<sub>1</sub>字段:节点A对本字段之前所有字段计算的消息完整性校验码,其计算方法为:MIC<sub>1</sub>=h(PID<sub>2</sub>,PID<sub>1</sub>,TKM<sub>1</sub>,e(PID<sub>2</sub>,a·S<sub>1</sub>));(d)认证响应:当节点B收到认证请求分组后,节点B验证PID<sub>2</sub>是否是自己选取的伪身份;如果不是,则丢弃该分组,否则,重新计算MIC<sub>1</sub>=h(PID<sub>2</sub>,PID<sub>1</sub>,TKM<sub>1</sub>,e(PID<sub>1</sub>,b·S<sub>2</sub>))并与接收到的MIC<sub>1</sub>进行比较;如果不相等,则丢弃该分组,如果相等,构造并发送认证响应分组给节点A;该认证响应分组内容包括:PID<sub>1</sub>字段、TKM<sub>2</sub>字段和MIC<sub>2</sub>字段,其中:PID<sub>1</sub>字段:其值与认证请求分组中的PID<sub>1</sub>字段值相同;TKM<sub>2</sub>字段:节点B选取的临时公钥信息,其计算方法为:TKM<sub>2</sub>=b·P;MIC<sub>2</sub>字段:节点B对本字段之前所有字段计算的消息完整性校验码,其计算方法为:MIC<sub>2</sub>=h(PID<sub>1</sub>,TKM<sub>1</sub>,TKM<sub>2</sub>,e(PID<sub>1</sub>,b·S<sub>2</sub>),b·TKM<sub>1</sub>);(e)密钥确认:当节点A收到认证响应分组后,节点A验证PID<sub>1</sub>是否是自己选取的伪身份,如果不是,则丢弃该分组,否则,验证TKM<sub>1</sub>是否是自己选取的临时公钥信息;如果不是,则丢弃该分组,否则,重新计算MIC<sub>2</sub>=h(PID<sub>1</sub>,TKM<sub>1</sub>,TKM<sub>2</sub>,e(PID<sub>2</sub>,a·S<sub>1</sub>),a·TKM<sub>2</sub>)并与接收到的MIC<sub>2</sub>进行比较;如果不相等,则丢弃该分组,如果相等,构造并发送密钥确认分组给节点B;节点A完成对节点B的匿名认证,并得到主密钥MK=a·TKM<sub>2</sub>=a·b·P;该认证响应分组内容包括:PID<sub>1</sub>字段、TKM<sub>2</sub>字段和MIC<sub>2</sub>字段,其中:PID<sub>1</sub>字段:其值与认证请求分组中的PID<sub>1</sub>字段值相同;TKM<sub>2</sub>字段:节点B选取的临时公钥信息,其计算方法为:TKM<sub>2</sub>=b·P;MIC<sub>2</sub>字段:节点B对本字段之前所有字段计算的消息完整性校验码,其计算方法为:MIC<sub>2</sub>=h(PID<sub>1</sub>,TKM<sub>1</sub>,TKM<sub>2</sub>,e(PID<sub>1</sub>,b·S<sub>2</sub>),b·TKM<sub>1</sub>);当节点B收到密钥确认分组后,节点B验证TKM<sub>2</sub>是否是自己选取的临时公钥信息;如果不是,则丢弃该分组,否则,重新计算MIC<sub>3</sub>=h(TKM<sub>2</sub>,b·TKM<sub>1</sub>)并与接收到的MIC<sub>3</sub>进行比较;如果不相等,则丢弃该分组,如果相等,匿名双向认证及密钥协商过程成功;节点B完成对节点A的匿名认证,并得到主密钥MK=b·TKM<sub>1</sub>=a·b·P。
地址 710072陕西省西安市友谊西路127号