基于身份的匿名双向认证方法

文档序号:7945690阅读:150来源:国知局

专利名称::基于身份的匿名双向认证方法
技术领域
:本发明涉及一种匿名双向认证方法,尤其涉及基于身份的匿名双向认证方法。技术背景'为了在安全认证的同时保护网络中敏感节点身份的机密性,匿名双向认证己成为密码学中一种重要的研究手段,其优点是能够防止攻击者利用敏感节点的身份信息发起拒绝服务(DoS)等各种攻击。文献"Anonymoushandshakesinmobileadhocnetworks.2004IEEEMilitaryCommunicationsConference,31October—03November2004,Monterey,CA.pi193-1199,,公开了一种利用伪名集的基于双线性映射的匿名认证方法。该方法在进行匿名认证之前为各网络节点预分配伪名集合;在认证时,每个节点从自己的伪名集中随机选取一个伪名和其它节点进行认证,通过不断变换伪名的方法来隐藏其真实身份。但是此方法使用静态的预分配的伪名集合,存在一些安全缺陷,攻击者一旦入侵某节点成功,则可根据以往通信记录发现所有通信节点的真实身份。另外,这种方法扩展性不强,需要事先手工预设置伪名集,而且,各个节点需要安全保存多个节点的伪名信息,安全存储负担大,容易引起攻击者的攻击。
发明内容为了克服现有技术由于使用静态伪名集而导致的安全性差的不足,本发明提供一种基于身份的匿名双向认证方法,采用随机选取伪名的方法,通过所选取的伪名和其它节点进行双向认证,使得网络节点不必预分配伪名集,也无需安全保存伪名集,而且当节点被入侵之后也不能通过跟踪通信的方法获取其真实身份信息,可以提高网络使用过程中的安全性。本发明解决其技术问题所采用的技术方案一种基于身份的匿名双向认证方法,其特点是包括以下步骤(a)节点初始化可信第三方TTP建立系统参数并为认证双方节点节点A和节点B分配私钥,该系统参数包括两个《阶的循环群(^,+)和(G2,.);P为(^的生成元;令£为(^和(2上的双线性变换,即e:《x《—G2;可信第三方TTP随机选取自己的私钥^Tpe《,其对应公钥为2TTP-Snp.户eG,;/z(x)表示一个单向哈希函数;可信第三方TTP为节点A和节点B分配私钥的方法为节点A和节点B的身份ID,ID2分别为其公钥,其私钥分别为S:&flD,和二iS^Tp.ID;;(b)认证激活由节点B发送认证激活分组给节点A;该认证激活分组内容包括PID2字段,其中-PID2字段节点B当前的伪身份,其计算方法为节点B首先随机选取一个仅用于本次认证及密钥协商过程的临时私钥6eZ:,然后计算PIDf6.ID2;(C)认证请求当节点A收到认证激活分组后,构造并发送认证请求分组给节点B;该认证请求分组内容包括PID2字段、PID,字段、TKM,字段和MId字段,其中:PID2字段其值与认证激活分组中的PID2字段值相同;PIDi字段节点A当前的伪身份,其计算方法为节点A首先随机选取一个仅用于本次认证及密钥协商过程的临时私钥aeZ:,然后计算PID^^IDj;TKM,字段节点A选取的临时公钥信息,其计算方法为TKM产^P;MId字段节点A对本字段之前所有字段计算的消息完整性校验码,其计算方法为-MIC产,D2,PIDbTKM!,e(PID2,a&));(d)认证响应当节点B收到认证请求分组后,节点B验证PID2是否是自己选取的伪身份;如果不是,则丢弃该分组,否则,重新计算MIC产/<PID2,PID1;TKM!,e(PIDi,6.&》并与接收到的MId进行比较;如果不相等,则丢弃该分组,如果相等,构造并发送认证响应分组给节点A;该认证响应分组内容包括PID,字段、TKM2字段和MIC2字段,其中PID,字段其值与认证请求分组中的PID,字段值相同;TKM2字段节点B选取的临时公钥信息,其计算方法为TKM2=6-P;MIC2字段:节点B对本字段之前所有字段计算的消息完整性校验码,其计算方法为:MIC2=/z(PID,,TKM,TKM2,e(PIDi,6-TKM,);(e)密钥确认当节点A收到认证响应分组后,节点A验证PID!是否是自己选取的伪身份,如果不是,则丢弃该分组,否则,验证TKM,是否是自己选取的临时公钥信息;如果不是,则丢弃该分组,否则,重新计算MICf/2(PID!,TKMi,TKM2,e(PID2,a.&),".TKM2)并与接收到的MIC2进行比较;如果不相等,则丢弃该分组,如果相等,构造并发送密钥确认分组给节点B;节点A完成对节点B的匿名认证,并得到主密钥MK-a.TKM2=该认证响应分组内容包括PIDi字段、TKM2字段和MIC2字段,其中-PID,字段其倌与认证请求iHi^teEIDi^段值相同;TKM2字段节点B选取的临时公钥信息,其计算方法为TKMfZ);MIC2字段节点B对本字段之前所有字段计算的消息完整性校验码,其计算方法为MIC2=/z(PIDbTKMi,TKM2,e(PIDb6-TKM!);当节点B收到密钥确认分组后,节点B验证TKM2是否是自己选取的临时公钥信息;如果不是,则丢弃该分组,否则,重新计算MICf/z(TKM2,6TKM,)并与接收到的MIC3进行比较;如果不相等,则丢弃该分组,如果相等,匿名双向认证及密钥协商过程成功;节点B完成对节点A的匿名认证,并得到主密钥MK-6.TKM产g.6vP。本发明的有益效果是由于采用动态随机选取的伪名,每个节点无需事先预分配伪名集,也无需安全保存伪名信息;根据随机选取的伪名进行认证,攻击者无法通过跟踪通信的方法获取节点真实身份信息,从而保证了认证过程中节点身份的匿名性,提高了网络使用过程中的安全性。下面结合附图和实施例对本发明作详细说明。附图是本发明基于身份的匿名双向认证方法的流程图。具体实施例方式参照附图,本实施例任意选取网络中的两个网络节点A和B,假设A和B要进行匿名双向认证。具体步骤如下首先,可信第三方TTP需要建立系统参数并为节点A和节点B分配私钥,该系统参数包括两个《阶的循环群(《,+)和(Gy);户为d的生成元;令e为G和(72上的双线性变换,即e:G,xG,—G,;可信第三方TTP随机选取自己的私钥STTPsZ:,其对应公钥为gTTp=STTP.PeG1;/z(x)表示一个单向哈希函数。可信第三方TTP为节点A和节点B分配私钥的方法为节点A和节点B的身份H^和ID2分别为其公钥,其私钥分别为S,S,.ID,和S2=STTP.ID2。该步骤仅在节点初始化时使用。认证过程如下第一步,节点B构造认证激活分组发送给节点A。认证激活分组内容包括其中-PID2字段节点B当前的伪身份,其计算方法为B首先随机选取一个仅用于本次认证及密钥协商过程的临时私钥6e《,然后计算PIDfWD2。第二步,收到认证激活分组后,节点A构造并发送认证请求分组给节点B。认证请求分组内容包括<table>tableseeoriginaldocumentpage7</column></row><table>其中-PID2字段其值与认证激活分组中的PID2字段值相同;PID,字段节点A当前的伪身份,其计算方法为A首先随机选取一个仅用于本次认证及密钥协商过程的临时私钥aeZ:,然后计算PID产aJDnTKMi字段节点A选取的临时公钥信息,其计算方法为TKM产a-尸。MIC,字段:节点A对本字段之前所有字段计算的消息完整性校验码,其计算方法为MIC产A(PID2,PID丄,TKMi,e(PID2,a.&))。第三步,收到认证请求分组后,节点B验证PID2是否是自己选取的伪身份。如果不是,则丢弃该分组,否贝U,重新计算MIC产/<PID2,PID!,TKM!,e(PIDh6&))并与接收到的MId进行比较。如果不相等,则丢弃该分组,如果相等,构造并发送认证响应分组给节点A。密钥请求分组内容包括-<table>tableseeoriginaldocumentpage7</column></row><table>其中PID!字段其值与认证请求分组中的PID!字段值相同;TKM2字段节点B选取的临时公钥信息,其计算方法为TKM2=6。MIC2字段节点B对本字段之前所有字段计算的消息完整性校验码,其计算方法为MIC2=,D丄,TKMi,TKM2,e(PIDi,6.TKMi)。第四步,收到认证响应分组后,节点A验证PID!是否是自己选取的伪身份,如果不是,则丢弃该分组,否则,验证TKMi是否是自己选取的临时公钥信息。如果不是,则丢弃该分组,否则,重新计算1^1<:2=ft(PIDbTKMbTKM2,e(PID2,fl.TKM2)并与接收到的MIC2进行比较。如果不相等,则丢弃该分组,如果相等,构造并发送密钥确认分组给节点B。节点A完成对B的匿名认证,并得到主密钥MK^a.TKMffl各P。密钥确认分组内容包括<table>tableseeoriginaldocumentpage7</column></row><table>其中TKM2字段其值与认证响应分组中的TKM2字段值相同;MIC3字段节点A对本字段前所有字段计算的完整性校验码,即MICf/(TKM2,&TKM2)。第五步,收到密钥确认分组后,节点B验证TKM2是否是自己选取的临时公钥信息。如果不是,则丢弃该分组,否则,重新计算MICf/KTKM2,6.TKMt)并与接收到的MIC3进行比较。如果不相等,则丢弃该分组,如果相等,匿名双向认证及密钥协商过程成功。节点B完成对A的匿名认证,并得到主密钥MK-6TKM产aH。通过上述过程,节点A和节点B实现了匿名双向认证,并协商主密钥MK,该密钥可以被用来加密消息或进行消息完整性运算。其中,IDi是节点A的身份;ID2是节点B的身份;PIDt是节点A选取的伪身份;PID2是节点B选取的伪身份;TKMi是节点A选取的临时公钥;TKM2是节点B选取的临时公钥;MIC是消息完整性校验码。权利要求1、一种基于身份的匿名双向认证方法,其特征在于包括以下步骤(a)节点初始化可信第三方TTP建立系统参数并为认证双方节点节点A和节点B分配私钥,该系统参数包括两个q阶的循环群(G1,+)和(G2,·);P为G1的生成元;令e为G1和G2上的双线性变换,即eG1×G1→G2;可信第三方TTP随机选取自己的私钥<mathsid="math0001"num="0001"><math><![CDATA[<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>id="icf0001"file="A2009100232890002C1.tif"wi="17"he="5"top="52"left="153"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>其对应公钥为QTTP=STTP·P∈G1;h(x)表示一个单向哈希函数;可信第三方TTP为节点A和节点B分配私钥的方法为节点A和节点B的身份ID1和ID2分别为其公钥,其私钥分别为S1=STTP·ID1和S2=STTP·ID2;(b)认证激活由节点B发送认证激活分组给节点A;该认证激活分组内容包括PID2字段,其中PID2字段节点B当前的伪身份,其计算方法为节点B首先随机选取一个仅用于本次认证及密钥协商过程的临时私钥<mathsid="math0002"num="0002"><math><![CDATA[<mrow><mi>b</mi><mo>&Element;</mo><msubsup><mi>Z</mi><mi>q</mi><mo>*</mo></msubsup><mo>,</mo></mrow>]]></math>id="icf0002"file="A2009100232890002C2.tif"wi="11"he="5"top="122"left="74"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>然后计算PID2=b·ID2;(c)认证请求当节点A收到认证激活分组后,构造并发送认证请求分组给节点B;该认证请求分组内容包括PID2字段、PID1字段、TKM1字段和MIC1字段,其中PID2字段其值与认证激活分组中的PID2字段值相同;PID1字段节点A当前的伪身份,其计算方法为节点A首先随机选取一个仅用于本次认证及密钥协商过程的临时私钥<mathsid="math0003"num="0003"><math><![CDATA[<mrow><mi>a</mi><mo>&Element;</mo><msubsup><mi>Z</mi><mi>q</mi><mo>*</mo></msubsup><mo>,</mo></mrow>]]></math>id="icf0003"file="A2009100232890002C3.tif"wi="11"he="5"top="173"left="74"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>然后计算PID1=a·ID1;TKM1字段节点A选取的临时公钥信息,其计算方法为TKM1=a·P;MIC1字段节点A对本字段之前所有字段计算的消息完整性校验码,其计算方法为MIC1=h(PID2,PID1,TKM1,e(PID2,a·S1));(d)认证响应当节点B收到认证请求分组后,节点B验证PID2是否是自己选取的伪身份;如果不是,则丢弃该分组,否则,重新计算MIC1=h(PID2,PID1,TKM1,e(PID1,b·S2))并与接收到的MIC1进行比较;如果不相等,则丢弃该分组,如果相等,构造并发送认证响应分组给节点A;该认证响应分组内容包括PID1字段、TKM2字段和MIC2字段,其中PID1字段其值与认证请求分组中的PID1字段值相同;TKM2字段节点B选取的临时公钥信息,其计算方法为TKM2=b·P;MIC2字段节点B对本字段之前所有字段计算的消息完整性校验码,其计算方法为MIC2=h(PID1,TKM1,TKM2,e(PID1,b·S2),b·TKM1);(e)密钥确认当节点A收到认证响应分组后,节点A验证PID1是否是自己选取的伪身份,如果不是,则丢弃该分组,否则,验证TKM1是否是自己选取的临时公钥信息;如果不是,则丢弃该分组,否则,重新计算MIC2=h(PID1,TKM1,TKM2,e(PID2,a·S1),a·TKM2)并与接收到的MIC2进行比较;如果不相等,则丢弃该分组,如果相等,构造并发送密钥确认分组给节点B;节点A完成对节点B的匿名认证,并得到主密钥MK=a·TKM2=a·b·P;该认证响应分组内容包括PID1字段、TKM2字段和MIC2字段,其中PID1字段其值与认证请求分组中的PID1字段值相同;TKM2字段节点B选取的临时公钥信息,其计算方法为TKM2=b·P;MIC2字段节点B对本字段之前所有字段计算的消息完整性校验码,其计算方法为MIC2=h(PID1,TKM1,TKM2,e(PID1,b·S2),b·TKM1);当节点B收到密钥确认分组后,节点B验证TKM2是否是自己选取的临时公钥信息;如果不是,则丢弃该分组,否则,重新计算MIC3=h(TKM2,b·TKM1)并与接收到的MIC3进行比较;如果不相等,则丢弃该分组,如果相等,匿名双向认证及密钥协商过程成功;节点B完成对节点A的匿名认证,并得到主密钥MK=b·TKM1=a·b·P。全文摘要本发明公开了一种基于身份的匿名双向认证方法,通过对节点初始化,认证激活,认证请求,认证响应,密钥确认等步骤,采用随机选取伪名的方法,通过所选取的伪名和其它节点进行双向认证,使得网络节点不必预分配伪名集,也无需安全保存伪名集,而且当节点被入侵之后也不能通过跟踪通信的方法获取其真实身份信息,提高了网络使用过程中的安全性。文档编号H04L9/28GK101599959SQ200910023289公开日2009年12月9日申请日期2009年7月10日优先权日2009年7月10日发明者庞辽军,李慧贤申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1