基于預(yù)共享密鑰的實(shí)體鑒別方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,尤其涉及基于預(yù)共享密鑰的實(shí)體鑒別方法及裝置。
【背景技術(shù)】
[0002]對(duì)于通信網(wǎng)絡(luò)來(lái)說(shuō),如局域網(wǎng)WLAN、無(wú)線傳感器網(wǎng)絡(luò)WSN、近場(chǎng)通信NFC、射頻識(shí)別RFID、個(gè)域網(wǎng)WPAN等,在通信時(shí)易遭受偽造、竊聽(tīng)、重放等攻擊,因此在通信之前必須解決通信雙方之間的身份鑒別問(wèn)題,以確保通信雙方身份的合法性。目前,基于密碼算法的,尤其是基于對(duì)稱密碼算法的鑒別方案中,由于鑒別過(guò)程中通常不對(duì)鑒別雙方的身份進(jìn)行確認(rèn),而導(dǎo)致即使身份鑒別通過(guò)了,也只能確定對(duì)方擁有某個(gè)共享的秘密,但實(shí)際上仍沒(méi)法確定對(duì)方究竟是誰(shuí),存在一定的安全隱患。
【發(fā)明內(nèi)容】
[0003]為了解決【背景技術(shù)】中存在的上述技術(shù)問(wèn)題,有必要提供一種基于預(yù)共享密鑰的實(shí)體鑒別方法及裝置。一種基于預(yù)共享密鑰的實(shí)體鑒別方法,用于共享了預(yù)共享密鑰PSK且相互知曉對(duì)方身份標(biāo)識(shí)IDa和IDb的實(shí)體A和實(shí)體B之間進(jìn)行身份鑒別,其包括:
[0004]步驟I)實(shí)體A產(chǎn)生隨機(jī)數(shù)Na,并發(fā)送給實(shí)體B。
[0005]步驟2)實(shí)體B收到Na后,生成隨機(jī)數(shù)Nb和用于作為密鑰種子的隨機(jī)數(shù)ZSEEDb,計(jì)算密鑰 MKAI I KEIA = KDFl (Na, Nb, PSK, IDa, IDb),計(jì)算第一加密認(rèn)證數(shù)據(jù) AuthEncDataB = AuthEncKEIA (AAD, IV,Nb | | Na | | IDb | | IDa | | ZSEEDb),實(shí)體 B 發(fā)送 Nb | | Na | | AuthEncDataB 給實(shí)體 A ;其中,MKA為鑒別密鑰,KEIA為消息加密和完整性密鑰,KDFl為一種密鑰推導(dǎo)算法,IDaS實(shí)體A的身份標(biāo)識(shí),IDb為實(shí)體B的身份標(biāo)識(shí),AuthEnc為一種加密認(rèn)證算法,AAD為所述加密認(rèn)證算法需要的其他鑒別數(shù)據(jù),IV為初始向量;
[0006]步驟3)實(shí)體A收到Nb I I Na I I AuthEncDatae后進(jìn)行解密驗(yàn)證;
[0007]步驟4)實(shí)體A產(chǎn)生用于作為密鑰種子的隨機(jī)數(shù)ZSEEDa,計(jì)算第二加密認(rèn)證數(shù)據(jù)AuthEncDataA = AuthEncKEIA(AAD, IV, Na Nb IDa IDb | ZSEEDa),計(jì)算共享密鑰種子 Z =ZSEEDa ? ZSEEDb,計(jì)算主密鑰 MK = KDF2 (Na, Nb, Z, IDa, IDb),計(jì)算第一消息鑒別標(biāo)識(shí) MacTagA=MAC (MK, MsgIDl | | IDa | | IDb | | Na | | Nb),實(shí)體 A 發(fā)送 Na | | Nb | | AuthEncDataA | | MacTagA 給實(shí)體B ;其中,MsgIDl為一消息序列號(hào),“ 表示逐比特異或,KDF2為一種密鑰推導(dǎo)算法,MAC為一種消息鑒別碼生成算法;
[0008]步驟5)實(shí)體B收到Na I I Nb I I AuthEncDataA | | MacTagA后進(jìn)行解密驗(yàn)證;
[0009]步驟6)實(shí)體B計(jì)算共享密鑰種子Z = ZSEEDa ? ZSEEDb,計(jì)算主密鑰MK =KDF2 (Na,Nb, Z, IDa, IDb),計(jì)算第一消息鑒別標(biāo)識(shí) MacTagA = MAC (MK, MsgIDl | | IDa | | IDb | | Na
I Nb),并與收到的MacTagA進(jìn)行比較,如果相等,則認(rèn)為實(shí)體A身份合法;
[0010]步驟7)實(shí)體 B 計(jì)算第二消息鑒別標(biāo)識(shí) MacTagB = MAC (MK, MsgID2 | | IDb | | IDa | | NbNa),并將MacTage發(fā)送給實(shí)體A,其中,MsgID2為一消息序列號(hào);
[0011]步驟8)實(shí)體A收到MacTagB后,首先計(jì)算第二消息鑒別標(biāo)識(shí)MacTagB = MAC (MK, MsgID2 I I IDb I I IDa | | Nb | | Na),然后將計(jì)算得到的MacTagB與收到的MacTagB進(jìn)行比較,如果相等,則認(rèn)為實(shí)體B身份合法。
[0012]一種裝置,用于和另一裝置進(jìn)行身份鑒別,該裝置包括存儲(chǔ)單元、處理單元及收發(fā)單元,其中,所述存儲(chǔ)單元用于存儲(chǔ)與所述另一裝置之間的預(yù)共享密鑰PSK及所述另一裝置的身份標(biāo)識(shí)IDb ;所述收發(fā)單元用于將隨機(jī)數(shù)Na發(fā)送給另一裝置,并用于接收另一裝置發(fā)送的 Nb| Na AuthEncDatae ;
[0013]所述收發(fā)單元還用于發(fā)送Na| Nb I AuthEncDataA I I MacTagA給另一裝置,并用于接收另一裝置發(fā)來(lái)的第二消息鑒別標(biāo)識(shí)MacTage ;
[0014]所述處理單元用于產(chǎn)生隨機(jī)數(shù)Na ;
[0015]所述處理單元還用于對(duì)另一裝置發(fā)來(lái)的Nb| Na| I AuthEncDatae進(jìn)行解密驗(yàn)證;
[0016]所述處理單元還用于產(chǎn)生作為密鑰種子的隨機(jī)數(shù)ZSEEDa,計(jì)算第二加密認(rèn)證數(shù)據(jù) AuthEncDataA = EncDataA MACa = AuthEncKEIA (AAD, IV, Na Nb IDa IDb ZSEEDa),計(jì)算共享密鑰種子 Z = ZSEEDa ? ZSEEDb,計(jì)算主密鑰 MK = KDF2 (Na, Nb, Z, IDa, IDb),計(jì)算第一消息鑒別標(biāo)識(shí) MacTagA = MAC (MK, MsgIDl IDa | | IDb | | Na | | Nb),生成Na Nb I AuthEncDataA I I MacTagA ;其中AuthEnc為一種加密認(rèn)證算法,EncDataA為該裝置生成的加密數(shù)據(jù),MACa為該裝置生成的完整性鑒別碼,AAD為加密認(rèn)證計(jì)算方法需要的其他鑒別數(shù)據(jù),IV為初始向量,IDa為該裝置的身份標(biāo)識(shí),IDb為另一裝置的身份標(biāo)識(shí),KDF2為一種密鑰推導(dǎo)算法,MsgIDl為一消息序列號(hào),MAC為一種消息鑒別碼生成算法,“Θ”表示逐比特異或;
[0017]所述處理單元還用于計(jì)算第二消息鑒別標(biāo)識(shí)MacTagB = MAC (MK, MsgID2 | | IDb | | IDaI Inb |凡),然后將計(jì)算得到的1^(^&&與另一裝置發(fā)來(lái)的1^(^&&進(jìn)行比較,如果相等,則另一裝置身份合法。
[0018]一種裝置,用于與另一裝置進(jìn)行身份鑒別,所述裝置包括存儲(chǔ)單元、處理單元及收發(fā)單元,其中:所述存儲(chǔ)單元用于存儲(chǔ)與所述另一裝置之間的預(yù)共享密鑰PSK及所述另一裝置的身份標(biāo)識(shí)IDa ;
[0019]所述收發(fā)單元用于接收另一裝置發(fā)來(lái)的隨機(jī)數(shù)Na ;
[0020]所述收發(fā)單元還用于向另一裝置發(fā)送化| |Na| |AuthEncDataB,并用于接收另一裝置發(fā)來(lái)的 NaI Nb I AuthEncDataA I MacTagA ;
[0021]所述收發(fā)單元還用于向另一裝置發(fā)送第二消息鑒別標(biāo)識(shí)MacTagB ;
[0022]所述處理單元用于生成隨機(jī)數(shù)Nb和作為密鑰種子的隨機(jī)數(shù)ZSEEDb,計(jì)算密鑰 MKAI I KEIA = KDFl (Na, Nb, PSK, IDa, IDb),計(jì)算第一加密認(rèn)證數(shù)據(jù) AuthEncDataB=EncDataJ Imacb = AuthEncKEIA (AAD, IV,nb| |na| I idb| I ida| Izseedb),并生成Nb Na AuthEncDataB ;其中MKA為鑒別密鑰,KEIA為消息加密和完整性密鑰,KDFl為一種密鑰推導(dǎo)算法,IDb為該裝置的身份標(biāo)識(shí),IDa為另一裝置的身份標(biāo)識(shí),AuthEnc為一種加密認(rèn)證算法,EncDatae為該裝置生成的加密數(shù)據(jù),MACb為該裝置生成的完整性鑒別碼,AAD為加密認(rèn)證計(jì)算方法需要的其他鑒別數(shù)據(jù),IV為初始向量;
[0023]所述處理單元還用于對(duì)另一裝置發(fā)來(lái)的Na| Nb IAuthEncDataAI |MacTagA進(jìn)行解密驗(yàn)證;
[0024]所述處理單元還用于計(jì)算共享密鑰種子Z = ZSEEDa ? ZSEEDb,計(jì)算主密鑰MK =KDF2 (Na, Nb,Z, IDa, IDb),計(jì)算第一消息鑒別標(biāo)識(shí)MacTagA = MAC (MK, MsgIDl | | IDa | | IDb | | Na |Nb),并與收到的MacTagA進(jìn)行比較,如果不相等,終止鑒別;如果相等,則認(rèn)為另一裝置身份合法,并計(jì)算第二消息鑒別標(biāo)識(shí) MacTagB = MAC (MK, MsgID2 | | IDb | | IDa | | Nb | | Na)。
[0025]一種實(shí)體A與實(shí)體B進(jìn)行身份鑒別時(shí),實(shí)體A的工作方法,其中,實(shí)體A具有和實(shí)體B之間的預(yù)共享密鑰PSK且知曉實(shí)體B的身份標(biāo)識(shí)IDb,其包括:
[0026]產(chǎn)生隨機(jī)數(shù)Na,并發(fā)送給實(shí)體B ;
[0027]收到實(shí)體B發(fā)來(lái)的Nb I I Na I I AuthEncDataB后進(jìn)行解密驗(yàn)證;
[0028]產(chǎn)生用于作為密鑰種子的隨機(jī)數(shù)ZSEEDa,計(jì)算第二加密認(rèn)證數(shù)據(jù)AuthEncDataA =EncDataA MACa = AuthEncKEIA (AAD, IV,Na Nb IDa | IDb ZSEEDa),計(jì)算共享密鑰種子 Z =ZSEEDa ? ZSEEDb,計(jì)算主密鑰 MK = KDF2 (Na, Nb, Z, IDa, IDb),計(jì)算第一消息鑒別標(biāo)識(shí) MacTagA=MAC (MK, MsgIDl | | IDa | | IDb | | Na | | Nb),發(fā)送 Na | | Nb | | AuthEncDataA | | MacTagA 給實(shí)體 B ;
[0029]收到實(shí)體B發(fā)來(lái)的第二消息鑒別標(biāo)識(shí)MacTage后,首先計(jì)算第二消息鑒別標(biāo)識(shí) MacTagB = MAC (MK, MsgID2 | | IDb | | IDa | | Nb | | Na),然后將計(jì)算得到的 MacTage 與收到的MacTage進(jìn)行比較,如果相等,則認(rèn)為實(shí)體B身份合法;
[0030]其中IDa為實(shí)體A的身份標(biāo)識(shí),IDb為實(shí)體B的身份標(biāo)識(shí),AuthEnc為一種加密認(rèn)證算法,EncDataA為實(shí)體A生成的加密數(shù)據(jù),MACa為實(shí)體實(shí)體A生成的完整性鑒別碼,KDF2為一種密鑰推導(dǎo)算法,MsgIDl和MsgID2分別為一消息序列號(hào),“ ? ”表示逐比特異或,MAC為一種消息鑒別碼生成算法。
[0031]一種實(shí)體A與實(shí)體B進(jìn)行身份鑒別時(shí),實(shí)體B的工作方法,其中,實(shí)體B具有和實(shí)體B之間的預(yù)共享密鑰PSK且知曉實(shí)體A的身份標(biāo)識(shí)IDa,其特征在于,該方法包括:
[0032]收到實(shí)體A發(fā)來(lái)的隨機(jī)數(shù)Na后,生成隨機(jī)數(shù)Nb和用于作為密鑰種子的隨機(jī)數(shù)ZSEEDb,計(jì)算第一加密認(rèn)證數(shù)據(jù) AuthEncDataB = EncDatae MACb = AuthEncKEIA (AAD, IV, Nb
Na I I IDb I I IDa I I ZSEEDb),實(shí)體 B 發(fā)送 Nb | | Na | | AuthEncDataB 給實(shí)體 A ;
[0033]收到實(shí)體A發(fā)來(lái)的Na I I Nb I I AuthEncDataA | | MacTagA后進(jìn)行解密驗(yàn)證;
[0034]計(jì)算共享密鑰種子Z = ZSEEDa ? ZSEEDb,計(jì)算主密鑰 MK = KDF2 (Na, Nb, Z, IDa, IDb),計(jì)算第一消息鑒別標(biāo)識(shí)MaCTagA = MAC (MK, MsgIDl | | IDa | | IDb | | Na | | Nb),并與收到的MacTagA進(jìn)行比較,如果不相等,終止鑒別;如果相等,則認(rèn)為實(shí)體A身份合法,并計(jì)算第二消息鑒別標(biāo)識(shí) MacTagB = MAC (MK, MsgID2 | | IDb | | IDa | | Nb | | Na),將 MacTagB 發(fā)送給實(shí)體 A ;
[0035]其中IDa為實(shí)體A的身份標(biāo)識(shí),IDb為實(shí)體B的身份標(biāo)識(shí),AuthEnc為一種加密認(rèn)證算法,EncDatae為實(shí)體B生成的加密數(shù)據(jù),MACb為實(shí)體實(shí)體B生成的完整性鑒別碼,KDF2為一種密鑰推導(dǎo)算法,MsgIDl以及MsgID2分別為一消息序列號(hào),“ ? ”表示逐比特異或,MAC為一種消息鑒別碼生成算法。
[0036]本發(fā)明包括如下優(yōu)點(diǎn):
[0037]I)可實(shí)現(xiàn)兩網(wǎng)絡(luò)實(shí)體之間雙向鑒別并建立用于保護(hù)后續(xù)通信數(shù)據(jù)的主密鑰;
[0038]2)在鑒別的同時(shí)確定對(duì)方的身份;
[0039]3)利用同一算法、同一密鑰且同時(shí)執(zhí)行數(shù)據(jù)加密和完整性保護(hù)兩種計(jì)算,有效的利用并行處理的方式,大大提高了效率和降低了硬件計(jì)算資源消耗,有利于降低數(shù)據(jù)傳輸延遲和計(jì)算操作重疊。
【附圖說(shuō)明】
[0040]圖1為本發(fā)明所提供的實(shí)體鑒別