基于预共享密钥的实体鉴别方法及装置的制造方法
【技术领域】
[0001]本发明属网络安全技术领域,尤其涉及基于预共享密钥的实体鉴别方法及装置。
【背景技术】
[0002]对于通信网络来说,如局域网WLAN、无线传感器网络WSN、近场通信NFC、射频识别RFID、个域网WPAN等,在通信时易遭受伪造、窃听、重放等攻击,因此在通信之前必须解决通信双方之间的身份鉴别问题,以确保通信双方身份的合法性。目前,基于密码算法的,尤其是基于对称密码算法的鉴别方案中,由于鉴别过程中通常不对鉴别双方的身份进行确认,而导致即使身份鉴别通过了,也只能确定对方拥有某个共享的秘密,但实际上仍没法确定对方究竟是谁,存在一定的安全隐患。
【发明内容】
[0003]为了解决【背景技术】中存在的上述技术问题,有必要提供一种基于预共享密钥的实体鉴别方法及装置。一种基于预共享密钥的实体鉴别方法,用于共享了预共享密钥PSK且相互知晓对方身份标识IDa和IDb的实体A和实体B之间进行身份鉴别,其包括:
[0004]步骤I)实体A产生随机数Na,并发送给实体B。
[0005]步骤2)实体B收到Na后,生成随机数Nb和用于作为密钥种子的随机数ZSEEDb,计算密钥 MKAI I KEIA = KDFl (Na, Nb, PSK, IDa, IDb),计算第一加密认证数据 AuthEncDataB = AuthEncKEIA (AAD, IV,Nb | | Na | | IDb | | IDa | | ZSEEDb),实体 B 发送 Nb | | Na | | AuthEncDataB 给实体 A ;其中,MKA为鉴别密钥,KEIA为消息加密和完整性密钥,KDFl为一种密钥推导算法,IDaS实体A的身份标识,IDb为实体B的身份标识,AuthEnc为一种加密认证算法,AAD为所述加密认证算法需要的其他鉴别数据,IV为初始向量;
[0006]步骤3)实体A收到Nb I I Na I I AuthEncDatae后进行解密验证;
[0007]步骤4)实体A产生用于作为密钥种子的随机数ZSEEDa,计算第二加密认证数据AuthEncDataA = AuthEncKEIA(AAD, IV, Na Nb IDa IDb | ZSEEDa),计算共享密钥种子 Z =ZSEEDa ? ZSEEDb,计算主密钥 MK = KDF2 (Na, Nb, Z, IDa, IDb),计算第一消息鉴别标识 MacTagA=MAC (MK, MsgIDl | | IDa | | IDb | | Na | | Nb),实体 A 发送 Na | | Nb | | AuthEncDataA | | MacTagA 给实体B ;其中,MsgIDl为一消息序列号,“ 表示逐比特异或,KDF2为一种密钥推导算法,MAC为一种消息鉴别码生成算法;
[0008]步骤5)实体B收到Na I I Nb I I AuthEncDataA | | MacTagA后进行解密验证;
[0009]步骤6)实体B计算共享密钥种子Z = ZSEEDa ? ZSEEDb,计算主密钥MK =KDF2 (Na,Nb, Z, IDa, IDb),计算第一消息鉴别标识 MacTagA = MAC (MK, MsgIDl | | IDa | | IDb | | Na
I Nb),并与收到的MacTagA进行比较,如果相等,则认为实体A身份合法;
[0010]步骤7)实体 B 计算第二消息鉴别标识 MacTagB = MAC (MK, MsgID2 | | IDb | | IDa | | NbNa),并将MacTage发送给实体A,其中,MsgID2为一消息序列号;
[0011]步骤8)实体A收到MacTagB后,首先计算第二消息鉴别标识MacTagB = MAC (MK, MsgID2 I I IDb I I IDa | | Nb | | Na),然后将计算得到的MacTagB与收到的MacTagB进行比较,如果相等,则认为实体B身份合法。
[0012]一种装置,用于和另一装置进行身份鉴别,该装置包括存储单元、处理单元及收发单元,其中,所述存储单元用于存储与所述另一装置之间的预共享密钥PSK及所述另一装置的身份标识IDb ;所述收发单元用于将随机数Na发送给另一装置,并用于接收另一装置发送的 Nb| Na AuthEncDatae ;
[0013]所述收发单元还用于发送Na| Nb I AuthEncDataA I I MacTagA给另一装置,并用于接收另一装置发来的第二消息鉴别标识MacTage ;
[0014]所述处理单元用于产生随机数Na ;
[0015]所述处理单元还用于对另一装置发来的Nb| Na| I AuthEncDatae进行解密验证;
[0016]所述处理单元还用于产生作为密钥种子的随机数ZSEEDa,计算第二加密认证数据 AuthEncDataA = EncDataA MACa = AuthEncKEIA (AAD, IV, Na Nb IDa IDb ZSEEDa),计算共享密钥种子 Z = ZSEEDa ? ZSEEDb,计算主密钥 MK = KDF2 (Na, Nb, Z, IDa, IDb),计算第一消息鉴别标识 MacTagA = MAC (MK, MsgIDl IDa | | IDb | | Na | | Nb),生成Na Nb I AuthEncDataA I I MacTagA ;其中AuthEnc为一种加密认证算法,EncDataA为该装置生成的加密数据,MACa为该装置生成的完整性鉴别码,AAD为加密认证计算方法需要的其他鉴别数据,IV为初始向量,IDa为该装置的身份标识,IDb为另一装置的身份标识,KDF2为一种密钥推导算法,MsgIDl为一消息序列号,MAC为一种消息鉴别码生成算法,“Θ”表示逐比特异或;
[0017]所述处理单元还用于计算第二消息鉴别标识MacTagB = MAC (MK, MsgID2 | | IDb | | IDaI Inb |凡),然后将计算得到的1^(^&&与另一装置发来的1^(^&&进行比较,如果相等,则另一装置身份合法。
[0018]一种装置,用于与另一装置进行身份鉴别,所述装置包括存储单元、处理单元及收发单元,其中:所述存储单元用于存储与所述另一装置之间的预共享密钥PSK及所述另一装置的身份标识IDa ;
[0019]所述收发单元用于接收另一装置发来的随机数Na ;
[0020]所述收发单元还用于向另一装置发送化| |Na| |AuthEncDataB,并用于接收另一装置发来的 NaI Nb I AuthEncDataA I MacTagA ;
[0021]所述收发单元还用于向另一装置发送第二消息鉴别标识MacTagB ;
[0022]所述处理单元用于生成随机数Nb和作为密钥种子的随机数ZSEEDb,计算密钥 MKAI I KEIA = KDFl (Na, Nb, PSK, IDa, IDb),计算第一加密认证数据 AuthEncDataB=EncDataJ Imacb = AuthEncKEIA (AAD, IV,nb| |na| I idb| I ida| Izseedb),并生成Nb Na AuthEncDataB ;其中MKA为鉴别密钥,KEIA为消息加密和完整性密钥,KDFl为一种密钥推导算法,IDb为该装置的身份标识,IDa为另一装置的身份标识,AuthEnc为一种加密认证算法,EncDatae为该装置生成的加密数据,MACb为该装置生成的完整性鉴别码,AAD为加密认证计算方法需要的其他鉴别数据,IV为初始向量;
[0023]所述处理单元还用于对另一装置发来的Na| Nb IAuthEncDataAI |MacTagA进行解密验证;
[0024]所述处理单元还用于计算共享密钥种子Z = ZSEEDa ? ZSEEDb,计算主密钥MK =KDF2 (Na, Nb,Z, IDa, IDb),计算第一消息鉴别标识MacTagA = MAC (MK, MsgIDl | | IDa | | IDb | | Na |Nb),并与收到的MacTagA进行比较,如果不相等,终止鉴别;如果相等,则认为另一装置身份合法,并计算第二消息鉴别标识 MacTagB = MAC (MK, MsgID2 | | IDb | | IDa | | Nb | | Na)。
[0025]一种实体A与实体B进行身份鉴别时,实体A的工作方法,其中,实体A具有和实体B之间的预共享密钥PSK且知晓实体B的身份标识IDb,其包括:
[0026]产生随机数Na,并发送给实体B ;
[0027]收到实体B发来的Nb I I Na I I AuthEncDataB后进行解密验证;
[0028]产生用于作为密钥种子的随机数ZSEEDa,计算第二加密认证数据AuthEncDataA =EncDataA MACa = AuthEncKEIA (AAD, IV,Na Nb IDa | IDb ZSEEDa),计算共享密钥种子 Z =ZSEEDa ? ZSEEDb,计算主密钥 MK = KDF2 (Na, Nb, Z, IDa, IDb),计算第一消息鉴别标识 MacTagA=MAC (MK, MsgIDl | | IDa | | IDb | | Na | | Nb),发送 Na | | Nb | | AuthEncDataA | | MacTagA 给实体 B ;
[0029]收到实体B发来的第二消息鉴别标识MacTage后,首先计算第二消息鉴别标识 MacTagB = MAC (MK, MsgID2 | | IDb | | IDa | | Nb | | Na),然后将计算得到的 MacTage 与收到的MacTage进行比较,如果相等,则认为实体B身份合法;
[0030]其中IDa为实体A的身份标识,IDb为实体B的身份标识,AuthEnc为一种加密认证算法,EncDataA为实体A生成的加密数据,MACa为实体实体A生成的完整性鉴别码,KDF2为一种密钥推导算法,MsgIDl和MsgID2分别为一消息序列号,“ ? ”表示逐比特异或,MAC为一种消息鉴别码生成算法。
[0031]一种实体A与实体B进行身份鉴别时,实体B的工作方法,其中,实体B具有和实体B之间的预共享密钥PSK且知晓实体A的身份标识IDa,其特征在于,该方法包括:
[0032]收到实体A发来的随机数Na后,生成随机数Nb和用于作为密钥种子的随机数ZSEEDb,计算第一加密认证数据 AuthEncDataB = EncDatae MACb = AuthEncKEIA (AAD, IV, Nb
Na I I IDb I I IDa I I ZSEEDb),实体 B 发送 Nb | | Na | | AuthEncDataB 给实体 A ;
[0033]收到实体A发来的Na I I Nb I I AuthEncDataA | | MacTagA后进行解密验证;
[0034]计算共享密钥种子Z = ZSEEDa ? ZSEEDb,计算主密钥 MK = KDF2 (Na, Nb, Z, IDa, IDb),计算第一消息鉴别标识MaCTagA = MAC (MK, MsgIDl | | IDa | | IDb | | Na | | Nb),并与收到的MacTagA进行比较,如果不相等,终止鉴别;如果相等,则认为实体A身份合法,并计算第二消息鉴别标识 MacTagB = MAC (MK, MsgID2 | | IDb | | IDa | | Nb | | Na),将 MacTagB 发送给实体 A ;
[0035]其中IDa为实体A的身份标识,IDb为实体B的身份标识,AuthEnc为一种加密认证算法,EncDatae为实体B生成的加密数据,MACb为实体实体B生成的完整性鉴别码,KDF2为一种密钥推导算法,MsgIDl以及MsgID2分别为一消息序列号,“ ? ”表示逐比特异或,MAC为一种消息鉴别码生成算法。
[0036]本发明包括如下优点:
[0037]I)可实现两网络实体之间双向鉴别并建立用于保护后续通信数据的主密钥;
[0038]2)在鉴别的同时确定对方的身份;
[0039]3)利用同一算法、同一密钥且同时执行数据加密和完整性保护两种计算,有效的利用并行处理的方式,大大提高了效率和降低了硬件计算资源消耗,有利于降低数据传输延迟和计算操作重叠。
【附图说明】
[0040]图1为本发明所提供的实体鉴别