本發(fā)明屬于通信技術(shù)領(lǐng)域,涉及一種輕量級rfid群組標(biāo)簽認(rèn)證方法,具體涉及一種基于云數(shù)據(jù)庫的輕量級rfid群組標(biāo)簽認(rèn)證方法,可用于具有低成本要求的rfid系統(tǒng)。
背景技術(shù):
無線射頻識別(radiofrequencyidentification,rfid)技術(shù)是指無線電頻率識別,是一種非接觸式自動(dòng)識別技術(shù),其主要應(yīng)用于物流管理、門禁系統(tǒng)、道路和橋梁的自動(dòng)收費(fèi)以及圖書館書籍分類和管理等各個(gè)方面。傳統(tǒng)的rfid系統(tǒng)主要包括電子標(biāo)簽,閱讀器,后臺(tái)服務(wù)器三部分。
傳統(tǒng)rfid認(rèn)證方案的后臺(tái)服務(wù)器與閱讀器之間是有線信道連接,采用這一連接方式雖然提高了系統(tǒng)安全性,但后臺(tái)數(shù)據(jù)庫的工作容量較小。隨著物聯(lián)網(wǎng)的發(fā)展,海量的物品將依靠rfid技術(shù)進(jìn)行管理、識別和認(rèn)證,這就要求rfid系統(tǒng)需要支持大數(shù)據(jù)的應(yīng)用,那么巨大的搜索能力、存儲(chǔ)能力和計(jì)算能力也就成為了傳統(tǒng)的后臺(tái)服務(wù)器的瓶頸,而引入云數(shù)據(jù)庫取代傳統(tǒng)后臺(tái)服務(wù)器,來架構(gòu)rfid系統(tǒng)可以解決這個(gè)問題。現(xiàn)有的基于云數(shù)據(jù)庫的rfid群組認(rèn)證協(xié)議,都是由閱讀器發(fā)起認(rèn)證請求,通過對比索引哈希值來完成雙向認(rèn)證過程,最后通過簡單的賦值運(yùn)算進(jìn)行密鑰更新,但均會(huì)出現(xiàn)云數(shù)據(jù)庫和群組標(biāo)簽密鑰更新失同步,從而導(dǎo)致不能抵抗dos攻擊,并且不能剔除非法和失效標(biāo)簽,認(rèn)證效率和準(zhǔn)確率較低,例如guo等人在期刊《tientzuhsuehpao/actaelectronicasinica》上發(fā)表了題目為“一種輕量級rfid系統(tǒng)的保密分組驗(yàn)證協(xié)議”的論文(2015,43(2):289-292),公開了一種輕量級隱私保護(hù)的rfid群組認(rèn)證方案,該方案的認(rèn)證過程包括系統(tǒng)初始化、閱讀器授權(quán)、閱讀器與標(biāo)簽組的雙向認(rèn)證、群組證明生成和群組證明驗(yàn)證五個(gè)階段。方案在系統(tǒng)初始化階段先假設(shè)了攻擊者模型,然后進(jìn)行初始化。在閱讀器授權(quán)和閱讀器與標(biāo)簽組的雙向認(rèn)證過程中通過為標(biāo)簽組設(shè)置假名和秘密數(shù)來防止信息交互過程中的隱私泄露,并通過閱讀器的主密鑰和閱讀器生成的臨時(shí)交互號來實(shí)現(xiàn)雙向認(rèn)證,還利用復(fù)雜度較小的偽隨機(jī)數(shù)發(fā)生器及散列運(yùn)算來提高方案的運(yùn)行效率。但是該輕量級隱私保護(hù)rfid群組認(rèn)證方案不能在群組認(rèn)證過程中剔除無效和假冒標(biāo)簽,導(dǎo)致認(rèn)證效率和準(zhǔn)確率較低,也不能解決由于密鑰失同步而導(dǎo)致的頻繁dos攻擊(攻擊者連續(xù)不斷的發(fā)起dos攻擊)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)存在的缺陷,提出了一種基于云數(shù)據(jù)庫的輕量級rfid群組標(biāo)簽認(rèn)證方法,旨在解決云數(shù)據(jù)庫和待認(rèn)證群組標(biāo)簽密鑰更新失同步的技術(shù)問題,同時(shí)提高認(rèn)證的效率和準(zhǔn)確率。
本發(fā)明的技術(shù)思路是:在云數(shù)據(jù)庫對待認(rèn)證群組標(biāo)簽的認(rèn)證過程中通過對比共享密鑰的哈希值,來判斷共享密鑰的更新是否同步,若否,則通過賦值運(yùn)算解決該共享密鑰更新不同步的問題;云數(shù)據(jù)庫再利用一組待認(rèn)證群組標(biāo)簽共享同一個(gè)密鑰的條件,有效篩選出無效和假冒標(biāo)簽并剔除;待認(rèn)證群組標(biāo)簽通過對比云數(shù)據(jù)庫計(jì)算的哈希值h(kg||nc)來實(shí)現(xiàn)對云數(shù)據(jù)庫的認(rèn)證,從而實(shí)現(xiàn)輕量、高效的雙向認(rèn)證。
根據(jù)上述技術(shù)思路,實(shí)現(xiàn)本發(fā)明目的采取的技術(shù)方案包括如下步驟:
(1)數(shù)據(jù)初始化:
將閱讀器注冊身份標(biāo)識、待認(rèn)證群組標(biāo)簽身份標(biāo)識、待認(rèn)證群組標(biāo)簽共享密鑰的新舊密鑰對{kgcnew,kgcold}及其哈希值
將閱讀器身份標(biāo)識idr、待認(rèn)證群組標(biāo)簽身份標(biāo)識gid、對稱密鑰k存放至閱讀器,其中g(shù)表示待認(rèn)證群組標(biāo)簽,id表示身份標(biāo)識,r表示閱讀器,;
將待認(rèn)證群組標(biāo)簽共享密鑰kg、待認(rèn)證群組標(biāo)簽身份標(biāo)識gid、ni個(gè)組成員標(biāo)簽身份標(biāo)識idti存放至待認(rèn)證群組標(biāo)簽,其中ti表示某一個(gè)標(biāo)簽;
(2)閱讀器向rfid群組標(biāo)簽廣播認(rèn)證請求:
閱讀器選取一個(gè)待認(rèn)證群組標(biāo)簽的組身份標(biāo)識gid后,產(chǎn)生一個(gè)隨機(jī)數(shù)nr,并將隨機(jī)數(shù)nr和認(rèn)證請求消息前綴request進(jìn)行級聯(lián),得到認(rèn)證請求消息m0,再將m0廣播給待認(rèn)證群組標(biāo)簽,其中nr表示閱讀器產(chǎn)生的隨機(jī)數(shù),消息m0={request||nr},{·}表示一組消息,||表示消息級聯(lián);
(3)待認(rèn)證群組標(biāo)簽獲取響應(yīng)消息m1并轉(zhuǎn)發(fā)給閱讀器:
(3a)待認(rèn)證群組標(biāo)簽接收認(rèn)證請求消息m0,并計(jì)算隨機(jī)數(shù)nr和每個(gè)標(biāo)簽身份標(biāo)識idti級聯(lián)的哈希值h(nr||idti);
(3b)待認(rèn)證群組標(biāo)簽使用共享密鑰kg,對哈希值h(nr||idti)和每個(gè)標(biāo)簽的身份標(biāo)識idti的級聯(lián)進(jìn)行加密,得到加密消息{h(nr||idti)||idti}kg,同時(shí)計(jì)算待認(rèn)證群組標(biāo)簽共享密鑰kg的哈希值h(kg),其中,每一個(gè)加密消息{h(nr||idti)||idti}kg對應(yīng)一個(gè)待認(rèn)證群組標(biāo)簽成員;
(3c)待認(rèn)證群組標(biāo)簽對加密消息{h(nr||idti)||idti}kg和哈希值h(kg)進(jìn)行級聯(lián),得到響應(yīng)消息m1,并將該響應(yīng)消息m1發(fā)送給閱讀器,其中,m1={{h(nr||idti)||idti}kg||h(kg)};
(4)閱讀器向云數(shù)據(jù)庫轉(zhuǎn)發(fā)消息串:
(4a)閱讀器通過對稱密鑰k對閱讀器身份標(biāo)識idr和待認(rèn)證群組標(biāo)簽身份標(biāo)識gid的級聯(lián)進(jìn)行加密,得到加密消息m2;
(4b)閱讀器將響應(yīng)消息m1和加密消息m2進(jìn)行級聯(lián),得到消息串,并將該消息串轉(zhuǎn)發(fā)給云數(shù)據(jù)庫,其中m2={ek(idr||gid)},ek(·)表示對稱加密函數(shù);
(5)云數(shù)據(jù)庫對閱讀器和待認(rèn)證群組標(biāo)簽分別進(jìn)行認(rèn)證,并剔除非法和失效標(biāo)簽:
(5a)云數(shù)據(jù)庫利用對稱密鑰k對消息串進(jìn)行解密,得到閱讀器身份標(biāo)識idr、待認(rèn)證群組標(biāo)簽身份標(biāo)識gid、待認(rèn)證群組標(biāo)簽共享密鑰的哈希值h(kg)和加密消息{h(nr||idti)||idti}kg,并在云數(shù)據(jù)庫中查找是否有與閱讀器身份標(biāo)識idr相等的注冊身份標(biāo)識,若是,執(zhí)行步驟(5b);否則,判定閱讀器不合法,認(rèn)證失??;
(5b)云數(shù)據(jù)庫從自身存儲(chǔ)的數(shù)據(jù)中查找是否有與待認(rèn)證群組標(biāo)簽身份標(biāo)識gid相等的群組標(biāo)簽身份標(biāo)識,若是,則找出存儲(chǔ)在該對應(yīng)群組標(biāo)簽身份標(biāo)識下的共享密鑰的新舊密鑰對{kgcnew,kgcold}和新舊密鑰對的哈希值
(5c)云數(shù)據(jù)庫將新舊密鑰對的哈希值
(i)若h(kg)=h(kgcold)且h(kg)≠h(kgcnew),則云數(shù)據(jù)庫成功更新共享密鑰,待認(rèn)證群組標(biāo)簽未成功更新共享密鑰,云數(shù)據(jù)庫利用舊共享密鑰kgcold對加密消息{h(nr||idti)||idti}kg進(jìn)行解密,同時(shí)令變量x=kgcold,并執(zhí)行步驟(5d);
(ii)若h(kg)=h(kgcold)=h(kgcnew),則云數(shù)據(jù)庫和待認(rèn)證群組標(biāo)簽都沒有成功更新共享密鑰,云數(shù)據(jù)庫利用舊共享密鑰
(iii)若
(iv)若h(kg)≠h(kgcold)且h(kg)≠h(kgcnew),則待認(rèn)證群組標(biāo)簽不合法,認(rèn)證失?。?/p>
(5d)云數(shù)據(jù)庫將變量x作為解密密鑰,對接收到的加密消息{h(nr||idti)||idti}kg進(jìn)行解密,有以下三種情況:
(i)若云數(shù)據(jù)庫可以將ni加密消息{h(nr||idti)||idti}kg解密,得到ni個(gè)解密消息h(nr||idti)||idti,則說明這ni個(gè)加密消息{h(nr||idti)||idti}kg對應(yīng)的ni個(gè)標(biāo)簽全部合法且有效,并執(zhí)行步驟(6);
(ii)若云數(shù)據(jù)庫可以將a個(gè)加密消息{h(nr||idti)||idti}kg都解密,得到a個(gè)解密消息h(nr||idti)||idti,其中a<ni,則說明這a個(gè)加密消息{h(nr||idti)||idti}kg對應(yīng)的a個(gè)標(biāo)簽均合法且有效,其他ni-a個(gè)標(biāo)簽為失效標(biāo)簽,無法應(yīng)答,同時(shí)云數(shù)據(jù)庫將失效標(biāo)簽和對應(yīng)商品信息剔除,并執(zhí)行步驟(6);
(iii)若云數(shù)據(jù)庫接收到a個(gè)加密消息{h(nr||idti)||idti}kg,但只能將b個(gè)加密消息解密,得到b個(gè)解密消息h(nr||idti)||idti,其中a<ni,b<a,則說明這b個(gè)加密消息{h(nr||idti)||idti}kg對應(yīng)的b個(gè)標(biāo)簽均合法且有效,而有a-b個(gè)標(biāo)簽屬于非法標(biāo)簽,其他ni-a個(gè)標(biāo)簽屬于失效標(biāo)簽,同時(shí)云數(shù)據(jù)庫將失效標(biāo)簽和非法標(biāo)簽以及對應(yīng)商品信息剔除,并執(zhí)行步驟(6);
(6)云數(shù)據(jù)庫將合法有效標(biāo)簽消息m3發(fā)送給閱讀器:
(6a)云數(shù)據(jù)庫生成隨機(jī)數(shù)nc,并將解密消息h(nr||idti)||idti、云數(shù)據(jù)庫存儲(chǔ)的新組共享密鑰kgcnew和變量x進(jìn)行級聯(lián),得到級聯(lián)消息m4,其中m4={h(nr||idti)||idti||kgcnew||x};
(6b)云數(shù)據(jù)庫采用對稱密鑰k對級聯(lián)消息m4進(jìn)行加密,得到組合加密消息m5,其中m5=ek(h(nr||idti)||idti||kgcnew||x);
(6c)云數(shù)據(jù)庫將組合加密消息m5和隨機(jī)數(shù)nc進(jìn)行級聯(lián),得到合法有效標(biāo)簽消息m3,并將該合法有效標(biāo)簽消息m3返回給閱讀器,其中,m3={ek(h(nr||idti)||idti||kgcnew||x)||nc},每一個(gè)合法有效標(biāo)簽消息m3包含一個(gè)合法有效標(biāo)簽的身份標(biāo)識idti;
(7)閱讀器將通知消息m6發(fā)送給待認(rèn)證群組標(biāo)簽中的合法有效標(biāo)簽:
(7a)閱讀器利用對稱密鑰k對合法有效標(biāo)簽消息m3進(jìn)行解密,得到新組共享密鑰
(7b)閱讀器計(jì)算變量x和隨機(jī)數(shù)nc級聯(lián)的哈希值h(x||nc),同時(shí)計(jì)算b個(gè)合法有效標(biāo)簽身份標(biāo)識idti和隨機(jī)數(shù)
(7c)閱讀器將變量x作為加密密鑰,對哈希值h(x||nc)、哈希值
(7d)閱讀器對返回消息
(8)待認(rèn)證群組標(biāo)簽對云數(shù)據(jù)庫進(jìn)行認(rèn)證,并剔除非法和失效標(biāo)簽:
(8a)待認(rèn)證群組標(biāo)簽利用共享密鑰kg對通知消息m6進(jìn)行解密,得到哈希值
(8b)待認(rèn)證群組標(biāo)簽判斷哈希值h(kg||nc)是否等于哈希值h(x||nc),若是,則成功認(rèn)證云數(shù)據(jù)庫,并執(zhí)行步驟(8c);否則,認(rèn)證失?。?/p>
(8c)待認(rèn)證群組標(biāo)簽剔除未收到通知消息m6的非法和失效標(biāo)簽;
(9)認(rèn)證后群組標(biāo)簽令自身的共享密鑰kg與云數(shù)據(jù)庫的共享密鑰kgcnew相等,實(shí)現(xiàn)共享密鑰kg的同步,并給閱讀器發(fā)送共享密鑰同步完畢信息;
(10)閱讀器給云數(shù)據(jù)庫發(fā)送更新密鑰通知m7:
(10a)閱讀器計(jì)算原共享密鑰kg和隨機(jī)數(shù)
(10b)閱讀器存儲(chǔ)新共享密鑰kgnew,并利用對稱密鑰k對新共享密鑰kgnew和隨機(jī)數(shù)
(11)云數(shù)據(jù)庫對共享密鑰
云數(shù)據(jù)庫利用對稱密鑰k對更新密鑰通知m7進(jìn)行解密,得到新共享密鑰kgnew和隨機(jī)數(shù)
(12)閱讀器計(jì)算新共享密鑰kgnew、隨機(jī)數(shù)
(13)認(rèn)證后群組標(biāo)簽更新共享密鑰kg,并驗(yàn)證索引哈希值
(13a)認(rèn)證后群組標(biāo)簽計(jì)算原共享密鑰kg與隨機(jī)數(shù)
(13b)認(rèn)證后群組標(biāo)簽計(jì)算索引哈希值
本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):
第一,本發(fā)明通過對比共享密鑰的哈希值h(kg)實(shí)現(xiàn)了云數(shù)據(jù)庫對群組標(biāo)簽的認(rèn)證,以及通過對比哈希值h(kg||nc)實(shí)現(xiàn)了群組標(biāo)簽對云數(shù)據(jù)庫的認(rèn)證。
第二,本發(fā)明中,在云數(shù)據(jù)庫認(rèn)證待認(rèn)證群組標(biāo)簽時(shí),通過利用群組標(biāo)簽共享密鑰kg對標(biāo)簽加密信息{h(nr||idti)||idti}kg的解密,判斷出非法和失效標(biāo)簽的數(shù)量并剔除,提高了認(rèn)證的準(zhǔn)確率。
第三,本發(fā)明中,在云數(shù)據(jù)庫待認(rèn)證群組標(biāo)簽共享密鑰更新之前進(jìn)行了密鑰同步,有效解決了密鑰更新不同步從而使用舊密鑰認(rèn)證導(dǎo)致的跟蹤攻擊,抵抗了現(xiàn)有認(rèn)證方案不能抵抗的頻繁dos攻擊。
第四,本發(fā)明中由于群組標(biāo)簽總共只進(jìn)行了4次簡單哈希運(yùn)算,從而使得群組標(biāo)簽計(jì)算量小,符合輕量級低成本無源標(biāo)簽的應(yīng)用需求。
附圖說明
圖1為本發(fā)明認(rèn)證方法的實(shí)現(xiàn)流程圖;
具體實(shí)施方式
下面結(jié)合附圖,對本發(fā)明作進(jìn)一步詳細(xì)描述。
參照圖1,基于云數(shù)據(jù)庫的輕量級rfid群組標(biāo)簽認(rèn)證方法,包括如下步驟:
步驟1,數(shù)據(jù)初始化:
將閱讀器注冊身份標(biāo)識、待認(rèn)證群組標(biāo)簽身份標(biāo)識、待認(rèn)證群組標(biāo)簽共享密鑰的新舊密鑰對{kgcnew,kgcold}及其哈希值
將閱讀器身份標(biāo)識idr、待認(rèn)證群組標(biāo)簽身份標(biāo)識gid、對稱密鑰k存放至閱讀器,其中g(shù)表示待認(rèn)證群組標(biāo)簽,id表示身份標(biāo)識,r表示閱讀器,;
將待認(rèn)證群組標(biāo)簽共享密鑰kg、待認(rèn)證群組標(biāo)簽身份標(biāo)識gid、ni個(gè)組成員標(biāo)簽身份標(biāo)識idti存放至待認(rèn)證群組標(biāo)簽,其中ti表示某一個(gè)標(biāo)簽;
步驟2,閱讀器向rfid群組標(biāo)簽廣播認(rèn)證請求:
閱讀器選取一個(gè)待認(rèn)證群組標(biāo)簽的組身份標(biāo)識gid后,產(chǎn)生一個(gè)隨機(jī)數(shù)nr,并將隨機(jī)數(shù)nr和認(rèn)證請求消息前綴request進(jìn)行級聯(lián),得到認(rèn)證請求消息m0,再將m0廣播給待認(rèn)證群組標(biāo)簽,其中nr表示閱讀器產(chǎn)生的隨機(jī)數(shù),消息m0={request||nr},{·}表示一組消息,||表示消息級聯(lián);
本發(fā)明中步驟2、步驟(6a)和步驟(7a)中的隨機(jī)數(shù)均是由利用輕量級隨機(jī)數(shù)發(fā)生器m-prng產(chǎn)生。
步驟3,待認(rèn)證群組標(biāo)簽獲取響應(yīng)消息m1并轉(zhuǎn)發(fā)給閱讀器:
(3a)待認(rèn)證群組標(biāo)簽接收認(rèn)證請求消息m0,并計(jì)算隨機(jī)數(shù)nr和每個(gè)標(biāo)簽身份標(biāo)識idti級聯(lián)的哈希值h(nr||idti);
本步驟中所述的計(jì)算隨機(jī)數(shù)nr和每個(gè)標(biāo)簽身份標(biāo)識idti級聯(lián)的哈希值h(nr||idti),采用輕量級哈希函數(shù)photon-160/36/36,實(shí)現(xiàn)步驟為:
(3a1)初始化內(nèi)部狀態(tài):s0=iv={0}136||40||36||36;
(3a2)將消息{nr||idti}的一個(gè)消息塊填充一個(gè)’1’或一個(gè)’1’和若干’0’后分裂為12個(gè)消息塊,每個(gè)消息塊均為36-bits;
(3a3)對12個(gè)消息塊進(jìn)行吸收壓縮,得到5個(gè)壓縮消息塊z0、z1、z2、z3和z4,將這5個(gè)壓縮消息塊串聯(lián),得到160-bits的哈希值h(nr||idti),其中壓縮消息塊z0、z1、z2和z3的大小均為36-bits,壓縮消息塊z4的大小取16-bits。
步驟(3a)中采用的哈希函數(shù)與步驟(3b)、(4a)、(7b)、(8a)、(10a)、步驟12、(13a)和(13b)中采用的哈希函數(shù)相同,均為photon-160/36/36。
(3b)待認(rèn)證群組標(biāo)簽使用共享密鑰kg,對哈希值h(nr||idti)和每個(gè)標(biāo)簽的身份標(biāo)識idti的級聯(lián)進(jìn)行加密,得到加密消息{h(nr||idti)||idti}kg,同時(shí)計(jì)算待認(rèn)證群組標(biāo)簽共享密鑰kg的哈希值h(kg),其中,每一個(gè)加密消息{h(nr||idti)||idti}kg對應(yīng)一個(gè)待認(rèn)證群組標(biāo)簽成員;
(3c)待認(rèn)證群組標(biāo)簽對加密消息{h(nr||idti)||idti}kg和哈希值h(kg)進(jìn)行級聯(lián),得到響應(yīng)消息m1,并將該響應(yīng)消息m1發(fā)送給閱讀器,其中,m1={{h(nr||idti)||idti}kg||h(kg)};
步驟4,閱讀器向云數(shù)據(jù)庫轉(zhuǎn)發(fā)消息串:
(4a)閱讀器通過對稱密鑰k對閱讀器身份標(biāo)識idr和待認(rèn)證群組標(biāo)簽身份標(biāo)識gid的級聯(lián)進(jìn)行加密,得到加密消息m2;
(4b)閱讀器將響應(yīng)消息m1和加密消息m2進(jìn)行級聯(lián),得到消息串,并將該消息串轉(zhuǎn)發(fā)給云數(shù)據(jù)庫,其中m2={ek(idr||gid)},ek(·)表示對稱加密函數(shù);
步驟(4a)中的對稱加密運(yùn)算為ek(·),其具體計(jì)算過程如下:其中idr||gid為待加密消息,k為對稱密鑰,ek(idr||gid)為對稱加密結(jié)果。
步驟(4a)中的加密運(yùn)算與步驟(4b)、步驟(6b)、步驟(10b)中所使用的對稱加密運(yùn)算相同。
步驟5,云數(shù)據(jù)庫對閱讀器和待認(rèn)證群組標(biāo)簽分別進(jìn)行認(rèn)證,并剔除非法和失效標(biāo)簽:
(5a)云數(shù)據(jù)庫利用對稱密鑰k對消息串進(jìn)行解密,得到閱讀器身份標(biāo)識idr、待認(rèn)證群組標(biāo)簽身份標(biāo)識gid、待認(rèn)證群組標(biāo)簽共享密鑰的哈希值h(kg)和加密消息{h(nr||idti)||idti}kg,并在云數(shù)據(jù)庫中查找是否有與閱讀器身份標(biāo)識idr相等的注冊身份標(biāo)識,若是,執(zhí)行步驟(5b);否則,判定閱讀器不合法,認(rèn)證失敗。
上述閱讀器的身份標(biāo)識idr在云數(shù)據(jù)庫中已注冊過,因此,若查找不到閱讀器的注冊身份標(biāo)識,則意味著閱讀器不合法。判斷閱讀器是否合法可提高認(rèn)證方案的安全性,確保云數(shù)據(jù)庫消息來源可靠。
(5b)云數(shù)據(jù)庫從自身存儲(chǔ)的數(shù)據(jù)中查找是否有與待認(rèn)證群組標(biāo)簽身份標(biāo)識gid相等的群組標(biāo)簽身份標(biāo)識,若是,則找出存儲(chǔ)在該對應(yīng)群組標(biāo)簽身份標(biāo)識下的共享密鑰的新舊密鑰對{kgcnew,kgcold}和新舊密鑰對的哈希值
上述待認(rèn)證標(biāo)簽的身份標(biāo)識gid用于云數(shù)據(jù)庫確認(rèn)待認(rèn)證群組標(biāo)簽身份,以及在查找待認(rèn)證群組標(biāo)簽共享密鑰時(shí)縮小查找范圍,提高云數(shù)據(jù)庫的搜索速度。
(5c)云數(shù)據(jù)庫將新舊密鑰對的哈希值
(ii)若h(kg)=h(kgcold)且h(kg)≠h(kgcnew),則云數(shù)據(jù)庫成功更新共享密鑰,待認(rèn)證群組標(biāo)簽未成功更新共享密鑰,云數(shù)據(jù)庫利用舊共享密鑰kgcold對加密消息{h(nr||idti)||idti}kg進(jìn)行解密,同時(shí)令變量x=kgcold,并執(zhí)行步驟(5d);
(ii)若h(kg)=h(kgcold)=h(kgcnew),則云數(shù)據(jù)庫和待認(rèn)證群組標(biāo)簽都沒有成功更新共享密鑰,云數(shù)據(jù)庫利用舊共享密鑰kgcold對加密消息{h(nr||idti)||idti}kg進(jìn)行解密,再計(jì)算舊共享密鑰kgcold和隨機(jī)數(shù)
(iii)若
(iv)若h(kg)≠h(kgcold)且h(kg)≠h(kgcnew),則待認(rèn)證群組標(biāo)簽不合法,認(rèn)證失??;
(5d)云數(shù)據(jù)庫將變量x作為解密密鑰,對接收到的加密消息{h(nr||idti)||idti}kg進(jìn)行解密,有以下三種情況:
(i)若云數(shù)據(jù)庫可以將ni加密消息{h(nr||idti)||idti}kg解密,得到ni個(gè)解密消息h(nr||idti)||idti,則說明這ni個(gè)加密消息{h(nr||idti)||idti}kg對應(yīng)的ni個(gè)標(biāo)簽全部合法且有效,并執(zhí)行步驟(6);
由于同一個(gè)待認(rèn)證群組標(biāo)簽存儲(chǔ)同一個(gè)共享密鑰kg,因此,可通過用共享密鑰解密標(biāo)簽加密信息來判斷標(biāo)簽是否屬于該待認(rèn)證群組標(biāo)簽,若不屬于,視為非法標(biāo)簽。有效標(biāo)簽可在接收到閱讀器消息時(shí)給閱讀器作出應(yīng)答,若存在沒有作出應(yīng)答的標(biāo)簽,則判斷該標(biāo)簽為失效標(biāo)簽。
(ii)若云數(shù)據(jù)庫可以將a個(gè)加密消息{h(nr||idti)||idti}kg都解密,得到a個(gè)解密消息h(nr||idti)||idti,其中a<ni,則說明這a個(gè)加密消息{h(nr||idti)||idti}kg對應(yīng)的a個(gè)標(biāo)簽均合法且有效,其他ni-a個(gè)標(biāo)簽為失效標(biāo)簽,無法應(yīng)答,同時(shí)云數(shù)據(jù)庫將失效標(biāo)簽和對應(yīng)商品信息剔除,并執(zhí)行步驟(6);
(iii)若云數(shù)據(jù)庫接收到a個(gè)加密消息{h(nr||idti)||idti}kg,但只能將b個(gè)加密消息解密,得到b個(gè)解密消息h(nr||idti)||idti,其中a<ni,b<a,則說明這b個(gè)加密消息{h(nr||idti)||idti}kg對應(yīng)的b個(gè)標(biāo)簽均合法且有效,而有a-b個(gè)標(biāo)簽屬于非法標(biāo)簽,其他ni-a個(gè)標(biāo)簽屬于失效標(biāo)簽,同時(shí)云數(shù)據(jù)庫將失效標(biāo)簽和非法標(biāo)簽以及對應(yīng)商品信息剔除,并執(zhí)行步驟(6);
步驟6,云數(shù)據(jù)庫將合法有效標(biāo)簽消息m3發(fā)送給閱讀器:
(6a)云數(shù)據(jù)庫生成隨機(jī)數(shù)nc,并將解密消息h(nr||idti)||idti、云數(shù)據(jù)庫存儲(chǔ)的新組共享密鑰kgcnew和變量x進(jìn)行級聯(lián),得到級聯(lián)消息m4,其中m4={h(nr||idti)||idti||kgcnew||x};
(6b)云數(shù)據(jù)庫采用對稱密鑰k對級聯(lián)消息m4進(jìn)行加密,得到組合加密消息m5,其中m5=ek(h(nr||idti)||idti||kgcnew||x);
(6c)云數(shù)據(jù)庫將組合加密消息m5和隨機(jī)數(shù)nc進(jìn)行級聯(lián),得到合法有效標(biāo)簽消息m3,并將該合法有效標(biāo)簽消息m3返回給閱讀器,其中,m3={ek(h(nr||idti)||idti||kgcnew||x)||nc},每一個(gè)合法有效標(biāo)簽消息m3包含一個(gè)合法有效標(biāo)簽的身份標(biāo)識idti;
步驟7,閱讀器將通知消息m6發(fā)送給待認(rèn)證群組標(biāo)簽中的合法有效標(biāo)簽:
(7a)閱讀器利用對稱密鑰k對合法有效標(biāo)簽消息m3進(jìn)行解密,得到新組共享密鑰
(7b)閱讀器計(jì)算變量x和隨機(jī)數(shù)nc級聯(lián)的哈希值h(x||nc),同時(shí)計(jì)算b個(gè)合法有效標(biāo)簽身份標(biāo)識idti和隨機(jī)數(shù)
(7c)閱讀器將變量x作為加密密鑰,對哈希值h(x||nc)、哈希值
(7d)閱讀器對返回消息
步驟8,待認(rèn)證群組標(biāo)簽對云數(shù)據(jù)庫進(jìn)行認(rèn)證,并剔除非法和失效標(biāo)簽:
(8a)待認(rèn)證群組標(biāo)簽利用共享密鑰kg對通知消息m6進(jìn)行解密,得到哈希值
(8b)待認(rèn)證群組標(biāo)簽判斷哈希值h(kg||nc)是否等于哈希值h(x||nc),若是,則成功認(rèn)證云數(shù)據(jù)庫,并執(zhí)行步驟(8c);否則,認(rèn)證失??;
(8c)待認(rèn)證群組標(biāo)簽剔除未收到通知消息m6的非法和失效標(biāo)簽;
由于云數(shù)據(jù)庫在步驟(5d)已經(jīng)剔除了非法和失效標(biāo)簽,因此,待認(rèn)證群組標(biāo)簽在判斷出非法和失效標(biāo)簽數(shù)量后,也需將其剔除,可以提高合法有效標(biāo)簽隱私的安全性。
步驟9,認(rèn)證后群組標(biāo)簽令自身的共享密鑰kg與云數(shù)據(jù)庫的共享密鑰kgcnew相等,實(shí)現(xiàn)共享密鑰kg的同步,并給閱讀器發(fā)送共享密鑰同步完畢信息;
由于云數(shù)據(jù)庫和待認(rèn)證群組標(biāo)簽共享密鑰不同步會(huì)造成下一組待認(rèn)證群組標(biāo)簽在認(rèn)證時(shí)繼續(xù)使用舊共享密鑰,使得待認(rèn)證群組標(biāo)簽具有被發(fā)起跟蹤攻擊的可能,從而不能抵抗頻繁dos攻擊,因此必須進(jìn)行密鑰同步操作。
步驟10,閱讀器給云數(shù)據(jù)庫發(fā)送更新密鑰通知m7:
(10a)閱讀器計(jì)算原共享密鑰kg和隨機(jī)數(shù)
閱讀器計(jì)算原共享密鑰kg和隨機(jī)數(shù)
(10b)閱讀器存儲(chǔ)新共享密鑰kgnew,并利用對稱密鑰k對新共享密鑰kgnew和隨機(jī)數(shù)
步驟11,云數(shù)據(jù)庫對共享密鑰
云數(shù)據(jù)庫利用對稱密鑰k對更新密鑰通知m7進(jìn)行解密,得到新共享密鑰kgnew和隨機(jī)數(shù)
步驟12,閱讀器計(jì)算新共享密鑰kgnew、隨機(jī)數(shù)
步驟13,認(rèn)證后群組標(biāo)簽更新共享密鑰kg,并驗(yàn)證索引哈希值
(13a)認(rèn)證后群組標(biāo)簽計(jì)算原共享密鑰kg與隨機(jī)數(shù)
(13b)認(rèn)證后群組標(biāo)簽計(jì)算索引哈希值