一種輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法
【專利摘要】本發(fā)明涉及一種輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,在任意兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備之間預(yù)置一個(gè)長(zhǎng)期共享密鑰K,所述任意兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上各自存儲(chǔ)一個(gè)計(jì)數(shù)器CTR;所述兩個(gè)節(jié)點(diǎn)中實(shí)現(xiàn)加密算法E和偽隨機(jī)數(shù)生成算法PRNG;在兩個(gè)節(jié)點(diǎn)之間建立認(rèn)證和共享密鑰。本發(fā)明針對(duì)現(xiàn)有的網(wǎng)絡(luò)認(rèn)證技術(shù)和密鑰協(xié)商技術(shù)不適合資源受限通信環(huán)境的問(wèn)題,可以高效、安全地適用于具有大量資源受限節(jié)點(diǎn)的物聯(lián)網(wǎng)或者移動(dòng)通信網(wǎng)絡(luò)。本發(fā)明中認(rèn)證和密鑰協(xié)商過(guò)程中只用到4次對(duì)稱密碼算法,并且可以使用輕量級(jí)的分組對(duì)稱密碼算法,需要的密鑰長(zhǎng)度較短,加解密速度快。認(rèn)證過(guò)程只有兩次信息交互便可以完成雙向認(rèn)證,通信的數(shù)據(jù)量較小,占用的網(wǎng)絡(luò)資源少。
【專利說(shuō)明】一種輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于身份認(rèn)證【技術(shù)領(lǐng)域】,涉及認(rèn)證與密鑰協(xié)商,具體涉及輕量級(jí)身份認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,該方法適用于資源受限的網(wǎng)絡(luò)環(huán)境中節(jié)點(diǎn)間的快速認(rèn)證以及共
享密鑰的建立。
技術(shù)背景
[0002]在網(wǎng)絡(luò)環(huán)境中,信息交互是連接網(wǎng)絡(luò)中節(jié)點(diǎn)的必要條件。而在信息交互的過(guò)程中,又很容易造成敏感信息的泄露。因此,在網(wǎng)絡(luò)通信過(guò)程中,通過(guò)定義一組協(xié)議規(guī)則來(lái)規(guī)范節(jié)點(diǎn)之間的網(wǎng)絡(luò)行為,從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)通信的安全保護(hù)是一項(xiàng)重要的研究?jī)?nèi)容。
[0003]網(wǎng)絡(luò)通信過(guò)程中,保護(hù)數(shù)據(jù)不被非法竊取的最基本的技術(shù)手段是使用加密措施。在使用對(duì)稱加密方案的網(wǎng)絡(luò)系統(tǒng)中,網(wǎng)絡(luò)節(jié)點(diǎn)間進(jìn)行加密傳輸數(shù)據(jù)前,首先需要享有共同的會(huì)話密鑰,因此需要定義一整套規(guī)則在兩個(gè)或多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)間協(xié)商會(huì)話密鑰。
[0004]在使用對(duì)稱加密方案的網(wǎng)絡(luò)系統(tǒng)中,需要對(duì)通信雙方的身份通過(guò)特定的身份認(rèn)證機(jī)制來(lái)證明他們的身份,即驗(yàn)證網(wǎng)絡(luò)節(jié)點(diǎn)的身份與其所宣稱的是否一致,然后在通信雙方間協(xié)商一個(gè)會(huì)話密鑰用于通信過(guò)程中的加解密,這就是關(guān)鍵的認(rèn)證與密鑰協(xié)商(Authentication and Key Agreement, AKA)過(guò)程。AKA過(guò)程的基本步驟是先完成認(rèn)證,然后再進(jìn)行密鑰協(xié)商,但有時(shí)候認(rèn)證與密鑰協(xié)商過(guò)程是結(jié)合在一起的。
[0005]為了保證3G通信的安全,3GPP的規(guī)范中定義了 AKA協(xié)議的具體過(guò)程和使用方法,為了說(shuō)明方便,我們先介紹一下一些常用的縮寫標(biāo)記,在接下來(lái)要介紹的AKA協(xié)議中以及本發(fā)明的輕量級(jí)認(rèn)證與密鑰協(xié)商方法中都需要用到這些標(biāo)記。
[0006]`
【權(quán)利要求】
1.一種輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,在任意兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備間預(yù)置共享密鑰K、各自維護(hù)一計(jì)數(shù)器CTR,其步驟包括: 1)在一節(jié)點(diǎn)上生成隨機(jī)數(shù)RAND并更新計(jì)數(shù)器,所述CTR的值為最近一次兩網(wǎng)絡(luò)節(jié)點(diǎn)間成功會(huì)話的序列號(hào)SQN=++CTR ;根據(jù)所述RAND、SQN和共享密鑰K執(zhí)行對(duì)稱加密算法,計(jì)算得到認(rèn)證消息AUTN、期望的響應(yīng)XRES以及會(huì)話密鑰SK ; 2)所述一節(jié)點(diǎn)將RAND和AUTN發(fā)送給另一節(jié)點(diǎn)進(jìn)行認(rèn)證; 3)所述另一節(jié)點(diǎn)根據(jù)接收到的RAND計(jì)算AK,并將AK與AUTN異或得到待驗(yàn)證的SQN,在所述另一節(jié)點(diǎn)端驗(yàn)證所述待驗(yàn)證SQN>CTR且待驗(yàn)證SQN〈CTR+N,其中N為常數(shù),驗(yàn)證通過(guò)后更新CTR=SQN ; 4)所述另一節(jié)點(diǎn)根據(jù)已驗(yàn)證的SQN、隨機(jī)數(shù)RAND、共享密鑰K執(zhí)行對(duì)稱加密算法,計(jì)算得到響應(yīng)消息RES以及SK,并將RES發(fā)送給所述任意一節(jié)點(diǎn); 5)驗(yàn)證RES=XRES,則雙方認(rèn)證通過(guò),所述兩節(jié)點(diǎn)之間共享會(huì)話密鑰SK。
2.如權(quán)利要求1所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,根據(jù)所述RAND, SQN和共享密鑰K執(zhí)行對(duì)稱加密算法的具體步驟如下: 1)更新計(jì)數(shù)器SQN=++CTR后利用共享密鑰K和隨機(jī)數(shù)RAND作為輸入,執(zhí)行對(duì)稱加密算法得到AK ; 2)將AK與SQN異或得到AUTN作為輸出; 3)所述SQN與隨機(jī)數(shù)RAND異或,異或結(jié)果循環(huán)左移之后再次利用密鑰K和對(duì)稱加密算法加密得到XRES作為輸出; 4)所述SQN與隨機(jī)數(shù)RAND異或,異或結(jié)果循環(huán)左移之后利用密鑰K和對(duì)稱加密算法加密得到會(huì)話密鑰高比特SK作為輸出; 5)所述SQN與隨機(jī)數(shù)RAND異或,異或結(jié)果循環(huán)左移之后利用密鑰K和對(duì)稱加密算法加密得到會(huì)話密鑰低比特SK作為輸出。
3.如權(quán)利要求2所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,所述AUTN為64比特認(rèn)證消息、所述XRES為64比特期望的認(rèn)證響應(yīng)、所述SK為128比特會(huì)話密鑰。
4.如權(quán)利要求3所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,會(huì)話密鑰SK的高64比特和會(huì)話密鑰SK的低64比特組成所述128比特會(huì)話密鑰SK。
5.如權(quán)利要求1所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,所述另一節(jié)點(diǎn)根據(jù)已驗(yàn)證的SQN、隨機(jī)數(shù)RAND、共享密鑰K執(zhí)行對(duì)稱加密算法的步驟如下: 1)利用共享密鑰K和隨機(jī)數(shù)RAND作為輸入,執(zhí)行對(duì)稱加密算法得到AK; 2)將AK與AUTN異或得到SQN作為輸出; 3)所述SQN與隨機(jī)數(shù)RAND異或,異或結(jié)果循環(huán)左移后利用密鑰K和對(duì)稱加密算法加密得到RES作為輸出; 4)所述SQN與隨機(jī)數(shù)RAND異或,異或結(jié)果循環(huán)左移后利用密鑰K和對(duì)稱加密算法加密得到高比特SK作為會(huì)話密鑰輸出; 5)所述SQN與隨機(jī)數(shù)RAND異或,異或結(jié)果循環(huán)左移后利用密鑰K和對(duì)稱加密算法加密得到低比特SK作為會(huì)話密鑰輸出。
6.如權(quán)利要求5所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,所述RES為64比特認(rèn)證響應(yīng),所述SK為128比特會(huì)話密鑰由低低比特SK和高比特SK會(huì)話密鑰組成作為輸出。
7.如權(quán)利要求2-6任意一項(xiàng)所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,所述SQN與隨機(jī)數(shù)RAND異或結(jié)果分別循環(huán)左移3比特得到RES作為輸出、循環(huán)左移11比特得到高比特SK作為會(huì)話密鑰輸出和循環(huán)左移17比特低比特SK作為會(huì)話密鑰輸出。
8.如權(quán)利要求2-6任意一項(xiàng)所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,所述對(duì)稱加密算法為分組長(zhǎng)度64比特,密鑰長(zhǎng)度128比特的present算法或者分組長(zhǎng)度64比特,密鑰長(zhǎng)度為80比特的LBlock算法。
9.如權(quán)利要求2-6任意一項(xiàng)所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,所述對(duì)稱加密算法可擴(kuò)展為任意密鑰長(zhǎng)度、任意數(shù)據(jù)分組長(zhǎng)度的對(duì)稱分組密碼算法,其擴(kuò)展方法如下: 1)如果密鑰K加密算法的密鑰長(zhǎng)度len>128,則將輸入?yún)?shù)密鑰K高位填充1,使其長(zhǎng)度等于len,作為E的密鑰; 2)如果密鑰K加密算法的密鑰長(zhǎng)度len〈128,則截取輸入?yún)?shù)密鑰K的低Ien比特作為E的密鑰; 3)如果密鑰K加密算法的數(shù)據(jù)分組長(zhǎng)度L>64比特,則將輸入高位填充1,使其長(zhǎng)度等于L,作為E的輸入,并將E的輸出截取低64比特作為輸出; 4)如果密鑰K加密算法的數(shù)據(jù)分組長(zhǎng)度L〈64比特,則將輸入分組截取低L比特,作為E的輸入,并將E的輸出高位填充1,使其長(zhǎng)度為64比特作為輸出。
10.如權(quán)利要求1所述的輕量級(jí)認(rèn)證與密鑰協(xié)商的實(shí)現(xiàn)方法,其特征在于,預(yù)置共享密鑰K采用密鑰預(yù)分配或者密`鑰池方法使得每個(gè)節(jié)點(diǎn)都存有和其他節(jié)點(diǎn)共享的長(zhǎng)期密鑰,存儲(chǔ)方式采用二元組表(節(jié)點(diǎn)ID,共享密鑰)。
【文檔編號(hào)】H04L9/32GK103560879SQ201310468552
【公開(kāi)日】2014年2月5日 申請(qǐng)日期:2013年10月9日 優(yōu)先權(quán)日:2013年10月9日
【發(fā)明者】武傳坤, 劉卓華 申請(qǐng)人:中國(guó)科學(xué)院信息工程研究所