許盛偉 郭春銳 李新玉
(北京電子科技學(xué)院 北京 100070)(西安電子科技大學(xué)通信工程學(xué)院 陜西 西安 710071)
在信息全球化的今天,隨著技術(shù)的不斷進(jìn)步,資源的共享方式更加多樣化,獲取資源也更加便捷。但與此同時(shí)也為信息安全帶來(lái)了巨大的挑戰(zhàn),因此各種各樣的加密方式應(yīng)運(yùn)而生。而基于身份加密體制將用戶(hù)身份信息直接與用戶(hù)公鑰聯(lián)系起來(lái),從而避免了傳統(tǒng)公鑰密碼體制中復(fù)雜的證書(shū)管理問(wèn)題,因此有著良好的應(yīng)用前景并成為密碼學(xué)一個(gè)重要的研究方向[1]。但是在傳統(tǒng)IBC體制中由于PKG掌握著生成所有用戶(hù)私鑰的系統(tǒng)主密鑰,帶來(lái)了IBC與生俱來(lái)的密鑰托管問(wèn)題。
解決基于身份的公鑰密碼體制的密鑰托管問(wèn)題目前主要有以下幾種方式:
(1) 基于秘密共享方案:Boneh和Franklin[2]提出的基于秘密共享的門(mén)限密鑰分發(fā)方案。該方案通過(guò)將系統(tǒng)主密鑰分散到多個(gè)PKG中,應(yīng)用(t,n)門(mén)限方案來(lái)分散密鑰生成中心過(guò)大的權(quán)利,降低PKG被攻擊的危險(xiǎn)。
(2) 基于多方共管方案:由Chen等[3]提出,設(shè)置了n個(gè)PKG,同時(shí)加入了一個(gè)由用戶(hù)自由選擇的n字節(jié)字符串來(lái)最終確定私鑰的生成。
(3) 基于證書(shū)方案:Gentry[4]提出的基于證書(shū)的加密方案引入了數(shù)字證書(shū),通過(guò)用戶(hù)自己隨機(jī)選擇一個(gè)秘密信息的辦法在保留IBC隱式認(rèn)證優(yōu)勢(shì)的同時(shí)改善了密鑰托管的問(wèn)題。
(4) 基于無(wú)證書(shū)方案:在Al-Riyami等[5]提出的基于無(wú)證書(shū)的方案中,用戶(hù)私鑰由密鑰生成中心和用戶(hù)合作生成。
在此基礎(chǔ)上,基于身份的加密體制不斷發(fā)展,各種解決密鑰托管問(wèn)題的方案被相繼提出。
本文結(jié)合已有的方案,在對(duì)現(xiàn)有的多方共管方案研究的基礎(chǔ)之上,針對(duì)其存在的問(wèn)題,提出了基于多方共管的改進(jìn)密鑰生成方案。主要思想如下:設(shè)置一個(gè)權(quán)威的可信MPKG(例如國(guó)家政府單位或者被政府單位授予認(rèn)證的第三方組織機(jī)構(gòu))和n個(gè)CPKG,MPKG負(fù)責(zé)進(jìn)行用戶(hù)身份認(rèn)證以及確保用戶(hù)合法地利用CPKG生成部分密鑰,n個(gè)PKG只有在驗(yàn)證用戶(hù)已經(jīng)得到權(quán)威PKG的認(rèn)可后才會(huì)響應(yīng)用戶(hù)的請(qǐng)求為其生成部分密鑰。本方案在保留多方密鑰共管方案優(yōu)勢(shì)的同時(shí)解決了其存在的問(wèn)題。
設(shè)有兩個(gè)循環(huán)群G1和G2,它們的階是同一個(gè)安全大素?cái)?shù)q,其中G1為加法循環(huán)群,G2為乘法循環(huán)群;P是G1的一個(gè)生成元。假設(shè)在群G1以及G2中離散問(wèn)題都是困難的。我們稱(chēng)滿(mǎn)足以下條件的映射e:G1×G1→G2為一個(gè)雙線(xiàn)性映射[8]:
(1) 雙線(xiàn)性:
e(P1+P2,P3)=e(P1,P3)e(P2,P3),e(aP1,bP2)=e(P1,P2)ab,?P1,P2,P3∈G1,?a,b∈Zq*。
(2) 非退化性:若e(P1,P2)=I,?P2∈G1,則P1=?。這里?、I分別代表G1、G2的單位元。
(3) 可計(jì)算性:存在有效算法可以計(jì)算e(P1,P2),?P1,P2∈G1。
基于身份的加密體制如下所示:
(1) 系統(tǒng)參數(shù)生成:選定安全參數(shù),密鑰生成中心適當(dāng)選取階為素?cái)?shù)q的循環(huán)群G1、G2和雙線(xiàn)性映射e:G1×G1→G2;三個(gè)hash函數(shù):H1:{0,1}*→G1,用于將用戶(hù)ID映射到G1上;H2:G2→{0,1}m,m是明文長(zhǎng)度;H3:{0,1}*×G1→Zq*。
(3) 加解密:
(1)
密文為C=〈U,V〉,解密收到的密文C,計(jì)算:
M=V⊕H2(e(skID,U))
(2)
(4) 簽名:
簽名消息M,計(jì)算:
U=rQIDV=(r+H3(M,U))skID
(3)
將〈M,U,V〉一起發(fā)送給接收方。接收方接收到消息后,可通過(guò)判斷e(P,V)=e(PPKG,U+hQID)是否成立來(lái)驗(yàn)證簽名的有效性,式中h=H3(M,U)。
但是該方案存在以下三個(gè)問(wèn)題[11]:
(1) 由于n個(gè)PKG獨(dú)立操作,彼此無(wú)關(guān)。當(dāng)各個(gè)PKG意見(jiàn)不一致時(shí)難以做到調(diào)節(jié)統(tǒng)一。
(2) 由于該方案中由用戶(hù)自己選擇的字符串最終決定私鑰的生成,存在惡意用戶(hù)任意修改自己所選字符串從而獲得多個(gè)用戶(hù)私鑰的問(wèn)題。
(3) 用戶(hù)要與n個(gè)PKG進(jìn)行身份認(rèn)證,存在認(rèn)證次數(shù)頻繁系統(tǒng)負(fù)擔(dān)過(guò)大的問(wèn)題。
該方案的系統(tǒng)由三個(gè)部分組成:權(quán)威密鑰生成中心(MPKG),n個(gè)普通密鑰生成中心(CPKG),用戶(hù)。各個(gè)部分所承擔(dān)的工作如下:
(1) MPKG:為國(guó)家政府單位或者被政府單位授予認(rèn)證的第三方組織機(jī)構(gòu),假設(shè)MPKG可信。MPKG主要承擔(dān)的工作為用戶(hù)身份認(rèn)證,確定統(tǒng)一的密鑰使用規(guī)則以及確保用戶(hù)合法地利用CPKG生成部分主密鑰。
(2)n個(gè)CPKG:核實(shí)用戶(hù)密鑰是否處于生存周期內(nèi),若經(jīng)查證未過(guò)期,再驗(yàn)證用戶(hù)是否獲得權(quán)威密鑰生成中心MPKG所生成的認(rèn)可密鑰。若用戶(hù)擁有這部分密鑰,則利用自己的主密鑰為用戶(hù)生成部分主密鑰,否則,拒絕用戶(hù)的密鑰生成請(qǐng)求并通知MPKG。
(3) 用戶(hù):用戶(hù)在申請(qǐng)私鑰時(shí),需要首先向MPKG申請(qǐng)身份驗(yàn)證,驗(yàn)證通過(guò)后,MPKG為其生成認(rèn)證密鑰并設(shè)置密鑰生存周期。用戶(hù)在得到MPKG生成的認(rèn)證密鑰之后才可以向n個(gè)CPKG提出密鑰生成請(qǐng)求。
系統(tǒng)初始化算法:
私鑰生成算法:
MPKG將(U,V,Info)發(fā)送給用戶(hù),同時(shí)將c發(fā)送給各個(gè)CPKG。
(4) CPKG收到用戶(hù)的部分密鑰生成請(qǐng)求之后,與MPKG建立連接,將用戶(hù)提供的與MPKG公示的Info對(duì)比,若對(duì)比結(jié)果一致,則計(jì)算QID=H1(ID’);接著MPKG驗(yàn)證Z=Ye(X,c)是否成立,若驗(yàn)證不通過(guò),則拒絕用戶(hù)的部分密鑰生成請(qǐng)求。若驗(yàn)證通過(guò),則證明用戶(hù)擁有MPKG生成的認(rèn)證密鑰,CPKG利用自己的秘密密鑰為用戶(hù)生成部分主密鑰di=siQID并將di發(fā)送給用戶(hù)。
加密算法:
(4)
密文為C=〈U,V〉,解密算法:
解密收到的密文C,計(jì)算:M=V⊕H2(e(d,U))
簽名算法:
簽名消息M,U=rQID,V=(r+H3(M,U))d,將〈M,U,V〉一起發(fā)送給接收方。接收方接收到消息后,可通過(guò)判斷e(p,V)=e(puser,U+hQID)是否成立來(lái)驗(yàn)證簽名的有效性,式中h=H3(M,U)。
密鑰撤銷(xiāo):
用戶(hù)的密鑰撤銷(xiāo)可以通過(guò)可信的權(quán)威機(jī)構(gòu)MPKG實(shí)現(xiàn),MPKG儲(chǔ)存了用戶(hù)的密鑰生存周期。用戶(hù)在向MPKG申請(qǐng)生成驗(yàn)證密鑰的時(shí)候,MPKG檢驗(yàn)用戶(hù)密鑰生存周期T是否過(guò)期,若檢驗(yàn)通過(guò)則為用戶(hù)生成驗(yàn)證密鑰。否則,拒絕用戶(hù)的驗(yàn)證密鑰生成請(qǐng)求,并且發(fā)送警示消息告知用戶(hù)身份信息已經(jīng)過(guò)期。
(1) 針對(duì)原方案中n個(gè)PKG是各自獨(dú)立進(jìn)行密鑰生成分發(fā)[12],而只有可以確定用戶(hù)會(huì)正確使用所得到的部分密鑰之后PKG才能為其生成部分密鑰,因此當(dāng)多個(gè)PKG意見(jiàn)不統(tǒng)一時(shí)關(guān)于密鑰使用會(huì)產(chǎn)生協(xié)調(diào)管理問(wèn)題。在該方案中設(shè)置了一個(gè)權(quán)威中心MPKG,由MPKG來(lái)進(jìn)行對(duì)于密鑰管理的統(tǒng)一,在同一個(gè)系統(tǒng)中,各個(gè)CPKG遵從MPKG對(duì)于部分密鑰di的生成意見(jiàn)與使用方法的規(guī)定。不同系統(tǒng)中由各個(gè)系統(tǒng)中的MPKG進(jìn)行協(xié)商形成統(tǒng)一的意見(jiàn)。
(2) 針對(duì)惡意用戶(hù)任意修改選取的字符串獲得多個(gè)用戶(hù)私鑰的問(wèn)題[13]。通過(guò)由MPKG對(duì)用戶(hù)進(jìn)行身份審查,在確保用戶(hù)可以合法生成密鑰的情況下為用戶(hù)生成驗(yàn)證密鑰,而各CPKG只有在驗(yàn)證用戶(hù)擁有MPKG為其生成的驗(yàn)證密鑰之后才會(huì)為用戶(hù)生成密鑰的方式來(lái)解決。
(3) 針對(duì)身份認(rèn)證頻繁的問(wèn)題[14]。由于MPKG進(jìn)行了統(tǒng)一的身份認(rèn)證,用戶(hù)與各個(gè)CPKG通信時(shí)向CPKG發(fā)送從MPKG處得到的Info,CPKG只需與MPKG公開(kāi)的Info進(jìn)行對(duì)比即可,減輕了系統(tǒng)的負(fù)擔(dān)。
(1) 系統(tǒng)密鑰最終由用戶(hù)選取的字符串、MPKG生成的驗(yàn)證密鑰以及n個(gè)CPKG生成的部分密鑰di共同影響,解決了基于身份加密系統(tǒng)中密鑰生成中心權(quán)利過(guò)大這一問(wèn)題。
(2) 由于用戶(hù)身份認(rèn)證由MPKG完成,CPKG得到的只是經(jīng)過(guò)匿名化后的ID’,CPKG無(wú)法得到用戶(hù)的真正身份信息(基于ECC上的DL難解問(wèn)題),因此CPKG無(wú)法冒充用戶(hù)向MPKG進(jìn)行驗(yàn)證密鑰生成請(qǐng)求。
通過(guò)設(shè)立可信的權(quán)威密鑰生成中心MPKG解決了用戶(hù)身份認(rèn)證帶來(lái)的通信負(fù)擔(dān),并且各CPKG可以通過(guò)MPKG形成統(tǒng)一的密鑰使用規(guī)則,當(dāng)多個(gè)系統(tǒng)需要交互時(shí),可以通過(guò)每個(gè)系統(tǒng)各自的MPKG來(lái)進(jìn)行協(xié)商,這就解決了各個(gè)互相獨(dú)立的密鑰生成中心之間難以協(xié)調(diào)統(tǒng)一的問(wèn)題,提高了原方案的可行性。
為了解決基于身份加密體制中與生俱來(lái)的密鑰托管問(wèn)題,本文在對(duì)傳統(tǒng)的多方共管方案進(jìn)行研究的基礎(chǔ)之上,提出了一種改進(jìn)的解決基于身份加密的密鑰托管問(wèn)題的方案。即通過(guò)引入權(quán)威密鑰生成機(jī)構(gòu)MPKG進(jìn)行身份認(rèn)證、密鑰使用規(guī)則確定以及為用戶(hù)生成驗(yàn)證密鑰,在保留原有方案優(yōu)勢(shì)的同時(shí)解決原有方案中認(rèn)證繁瑣,各個(gè)PKG難以統(tǒng)一協(xié)調(diào)以及用戶(hù)惡意生成多個(gè)密鑰的問(wèn)題,提高了方案的安全性與可行性。對(duì)于密鑰托管問(wèn)題的改善有利于促進(jìn)基于身份加密系統(tǒng)的推廣使用。因此該研究具有一定的意義和價(jià)值。