王 碩,程相國,陳亞萌,王 越
WANG Shuo1,CHENG Xiangguo1,CHEN Yameng2,WANG Yue1
1.青島大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,山東 青島 266071
2.青島大學(xué) 數(shù)據(jù)科學(xué)與軟件工程學(xué)院,山東 青島 266071
1.College of Computer Science and Technology,Qingdao University,Qingdao,Shandong 266071,China
2.College of Data Science and Software Engineering,Qingdao University,Qingdao,Shandong 266071,China
1984年,Shamir首次提出了基于身份的簽名方案[1],給出了傳統(tǒng)公鑰密碼體制中對數(shù)字證書過度依賴的解決方法。2011年,谷科等[2]提出了一個(gè)基于CDHP假設(shè)的高效安全的基于身份的簽名方案,使得簽名的長度更短且安全性更高。1991年,Chaum和Heyst[3]提出了群簽名體制,該簽名對簽名者給予保護(hù),即驗(yàn)證者不知道簽名者的身份,但在對簽名存在爭議時(shí),群管理員可以打開簽名,進(jìn)而識別出真正的簽名者。將基于身份的簽名技術(shù)和群簽名方案相結(jié)合,先后構(gòu)造出了眾多的基于身份的群簽名方案[4-5]。群簽名在軍事、政治和經(jīng)濟(jì)方面有著廣泛的應(yīng)用,如電子現(xiàn)金[6]、身份托管[7]、競標(biāo)[8]等。
密鑰是密碼體制的安全保障,密鑰的泄露會(huì)對密碼體制造成毀滅性的打擊。在公鑰密碼體制中,在保持公鑰不變的前提下,密鑰自保護(hù)技術(shù)主要有3種,包括前向安全技術(shù)[9]、入侵容忍技術(shù)[10]和密鑰隔離技術(shù)。2002年,Dodis等[11]首次給出了密鑰隔離的概念,簽名者的臨時(shí)簽名密鑰在協(xié)助器的協(xié)助下完成密鑰演化,若沒有協(xié)助器提供更新消息,簽名者的密鑰無法從當(dāng)前時(shí)間段更新到下一時(shí)間段,在協(xié)助器密鑰安全的情況下,敵手只能偽造當(dāng)前時(shí)間段的簽名方案。2006年,Zhou等[12]為解決基于身份的簽名方案中的密鑰泄露問題,將密鑰隔離技術(shù)同基于身份的簽名方案相結(jié)合,提出了基于身份的密鑰隔離簽名方案。Song[13]首次提出了具有前向安全性質(zhì)的群簽名方案,但方案基于RSA問題,簽名長度較長,構(gòu)造較為復(fù)雜,實(shí)用性不強(qiáng)。2015年,Zhang等[14]在雙線性對上構(gòu)造了基于身份的前向安全群簽名方案。2007年,Li等[15]提出了能夠選擇性撤銷的密鑰隔離群簽名方案,方案是基于DDH假設(shè)和RSA構(gòu)造的,而在雙線性對上,DDH假設(shè)能夠得到驗(yàn)證,因此不滿足安全性。2015年,Zhao等[16]在隨機(jī)預(yù)言模型下提出了并行密鑰隔離聚合簽名方案。Reddy等[17]在隨機(jī)預(yù)言模型下提出了基于身份的密鑰隔離聚合簽名。這些群體性簽名方案都是基于CDH困難問題構(gòu)造的,在選擇消息攻擊下具有不可偽造性。本文以Cheng等[18]提出的基于身份的群簽名方案為基礎(chǔ),提出了基于身份的密鑰隔離群簽名方案。在構(gòu)造群簽名的過程中不需要執(zhí)行零知識證明協(xié)議,簡化了構(gòu)造過程。方案是基于CDH問題構(gòu)造的,采用的密鑰隔離技術(shù)不但能解決密鑰泄露和安全密鑰更新的問題,而且在同等的安全條件下,具有較短的簽名長度,對于群成員的跟蹤只需要搜索存儲(chǔ)列表即可,大大提高了方案的實(shí)用性。
設(shè)(G1,+)和(G2,?)是階為素?cái)?shù)q的循環(huán)群,P為G1的一個(gè)生成元。如果映射e:G1×G1→G2能夠滿足下面的性質(zhì),則稱該映射為雙線性對。
(1)雙線性:對于任意的a,b∈?和P,Q∈G1,滿足e(aP,bQ)=e(P,Q)ab。
(2)非退化性:存在P∈G1,滿足e(P,P)≠1。
(3)可計(jì)算性:對于任意的P,Q∈G1,存在一個(gè)計(jì)算e(P,Q)的有效算法。
(1)離散對數(shù)問題(DL):對于任意的Q∈G1,求a∈使得Q=aP∈G1在計(jì)算上是不可行的。
(2)計(jì)算Diffie-Hellman問題(CDH):對于給定的aP,bP∈G1,a,b∈是未知的,計(jì)算Q=abP∈G1是困難的。
(3)判斷Diffie-Hellman問題(DDH):對于給定的aP,bP,cP∈G1,a,b,c∈是未知的,判斷c≡ab(modq)是否成立是困難的。
上述的CDH和DDH問題在群G1上求解是困難的,但借助雙線性對,通過計(jì)算e(aP,bP)=e(P,abP)可以判定c≡ab(modq)等式是否成立,因而DDH問題就可解。
本文提出的基于身份的密鑰隔離群簽名方案包括一個(gè)可信的第三方(PKG)、管理員IA、管理員OA、協(xié)助器和用戶。PKG負(fù)責(zé)進(jìn)行初始設(shè)置,IA負(fù)責(zé)群成員的加入,OA負(fù)責(zé)為簽名者提供簽名幫助,協(xié)助器負(fù)責(zé)提供密鑰更新消息。方案由以下11個(gè)多項(xiàng)式時(shí)間算法構(gòu)成。
(1)系統(tǒng)建立算法(Setup):對于給定的安全參數(shù)λ,由PKG運(yùn)行Setup算法生成主密鑰、協(xié)助器密鑰和必須的系統(tǒng)參數(shù)。
①(G1,+)和(G2,)是素?cái)?shù)階為q的循環(huán)群,P為G1的一個(gè)生成元,構(gòu)造安全的雙線性對e。
②隨機(jī)選擇s∈作為群的主密鑰,并計(jì)算Ppub=sP;隨機(jī)選擇sH∈作為協(xié)助器密鑰,并計(jì)算PH=sHP。
③選擇兩個(gè)安全的哈希函數(shù)H1:{0,1}*→G1,H2:{0,1}*→。
④公開系統(tǒng)參數(shù):
SP={G1,G2,q,P,Ppub,PH,e,H1,H2}
(2)管理員密鑰生成算法(Gkg):輸入管理員IA的身份信息IDM,由PKG計(jì)算QM=H1(IDM),DM=sQM,則IA的私鑰為DM。
(3)用戶密鑰生成算法(Ukg):輸入用戶Ui的身份信息IDi,由PKG計(jì)算Qi=H1(IDi),Di=sQi,則Ui的私鑰為Di。
(4)群成員加入算法(Join):用戶Ui申請加入群,Ui和IA、OA完成以下的交互協(xié)議。
①用戶Ui將身份信息IDi發(fā)送給IA,申請加入群。
②IA隨機(jī)選擇Xi∈G1,計(jì)算Yi=DM-Xi,將Xi保存并發(fā)送給Ui,IA將(IDi,Yi)發(fā)送給OA,OA將(IDi,Yi)保存到存儲(chǔ)列表L1。執(zhí)行完上述協(xié)議后,Ui成為合法的群成員。
(5)密鑰提取算法(Extract):給定用戶Ui的身份信息IDi和IA的身份信息IDM,系統(tǒng)主密鑰s和協(xié)助器的密鑰sH。由PKG進(jìn)行以下運(yùn)算:
①計(jì)算Qi,t=H1(IDM,t),其中t為時(shí)間段。
②計(jì)算USi,0=sQM+sHQi,0。
算法輸出用戶Ui的初始密鑰USi,0。然后用戶根據(jù)PKG產(chǎn)生初始密鑰USi,0和簽名密鑰Xi計(jì)算得出USXi,0=USi,0+Xi=sQM+sHQi,0+Xi作為群成員的初始的臨時(shí)密鑰。
(6)協(xié)助器更新消息生成算法(UpdateM):該算法輸入(sH,IDi,IDM,t)。協(xié)助器計(jì)算t時(shí)間段的更新消息UKi,t=sH(Qi,t-Qi,t-1),并將更新消息UKi,t發(fā)送給指定的簽名者Ui。
(7)用戶臨時(shí)私鑰更新算法(UpdateU):給定t時(shí)間段協(xié)助器的更新消息UKi,t和t-1時(shí)間段的臨時(shí)密鑰USXi,t-1,計(jì)算t時(shí)間段的臨時(shí)簽名密鑰:
USXi,t=USXi,t-1+UKi,t=sQM+sHQi,t+Xi之后刪除UKi,t、USXi,t-1。
(8)簽名算法(Sign):在t時(shí)間段,對于給定的消息m∈{0,1}*,用戶Ui在OA的協(xié)助下對其進(jìn)行簽名。
①Ui計(jì)算wi,t=hi,t(USXi,t+Di),這里hi,t=H2(m),并將(IDi,hi,t,wi,t)發(fā)送給OA。
②OA接收到(IDi,hi,t,wi,t),首先根據(jù)Ui的身份信息IDi判斷其是否為合法的群成員,若不合法,則拒絕提供簽名幫助,若合法,則OA隨機(jī)選擇zi,t∈Z*q,計(jì)算Zi,t=zi,tP,δi,t=hi,tzi,tPpub,ηi,t=hi,tYi,σi,t=wi,t+δi,t+ηi,t,Vi,t=Qi+Zi,t。OA將(IDi,zi,t,hi,t,t)保存到存儲(chǔ)列表L2,并將對消息m的簽名設(shè)置為(σi,t,Vi,t)。
(9)驗(yàn)證算法(Verify):驗(yàn)證者可以通過等式e(P,σi,t)=e(Ppub,hi,t(2QM+Vi,t))e(PH,hi,tQi,t)驗(yàn)證簽名是否正確。
(10)打開算法(Open):OA可以打開群簽名,通過查詢存儲(chǔ)列表(L1,L2)來確定該簽名是否由合法的群成員所簽。
(11)示證算法(Judge):證明在t時(shí)間段,簽名(σi,t,Vi,t)是用戶Ui對消息m的一個(gè)簽名。OA通過計(jì)算δi,t=hi,tzi,tPpub和εi,t=σi,t-δi,t,可知εi,t是由OA和Ui合作產(chǎn)生的多簽名,只有OA和Ui聯(lián)合才能產(chǎn)生,因此可以判定,簽名(σi,t,Vi,t)確實(shí)是Ui在t時(shí)間段對消息m的群簽名。
通過對簽名方案進(jìn)行分析,給出了方案九方面的安全性。下面給出具體分析。
(1)正確性
方案的正確性由兩部分組成:一是驗(yàn)證算法的正確性,即Ui對消息m產(chǎn)生的群簽名一定能夠被驗(yàn)證;二是示證算法的正確性,即驗(yàn)證者對簽名提出異議時(shí),管理員OA運(yùn)行Judge算法,驗(yàn)證簽名是由合法的群成員所簽,并確定簽名者的身份。
①驗(yàn)證算法的正確性
由上面的驗(yàn)證過程可知,簽名能夠被正確驗(yàn)證。
②示證算法的正確性
驗(yàn)證簽名(σi,t,Vi,t)確實(shí)是群成員Ui在t時(shí)間段對消息m的群簽名。則OA計(jì)算δi,t=hi,tzi,tPpub和εi,t=σi,t-δi,t,并通過下面的等式證明:
由上面的驗(yàn)證過程可知,εi,t是IA和Ui在t時(shí)間段對消息m產(chǎn)生的多簽名,該多簽名只有OA和Ui合作才能完成,因此可得知示證算法的正確性。
(2)不可偽造性
不可偽造性指的是只有合法的群成員才能代表群體對消息進(jìn)行簽名。對于給定Ui在t時(shí)間段對消息m的群簽名(σi,t,Vi,t),可得知其構(gòu)造過程如下:
由簽名的構(gòu)造過程可知,(σi,t,Vi,t)是由OA和Ui共同合作完成的多簽名。由分析可知,π1是由OA和Ui共同合作完成的具有(2,2)門限性質(zhì)的簽名,該簽名是不可偽造的;π2是Ui產(chǎn)生的基于身份的簽名方案,該簽名可證是不可偽造的;π3是OA為了保證Ui簽名的匿名性隨機(jī)產(chǎn)生的一個(gè)離散對數(shù)問題,而CDH問題在群G1上是難解的[19],因此也是不可偽造的。即使敵手獲得了管理員IA的私鑰DM且能代表OA隨機(jī)生成一個(gè)關(guān)于消息m的離散對數(shù)問題,也就是說,敵手能夠偽造π1和π3,在敵手不能獲得簽名者身份私鑰的情況下,由于不能偽造π2而不能偽造群簽名。因此,本文提出的密鑰隔離的群簽名方案滿足不可偽造性。
(3)匿名性
匿名性是指簽名者不能從簽名中識別出具體的簽名者的身份。簽名(σi,t,Vi,t)是Ui在t時(shí)間段對消息m產(chǎn)生的群簽名。由(1)和(2)中簽名的構(gòu)造過程可知,本文提出的方案在驗(yàn)證過程中會(huì)涉及Ui的身份信息,但在產(chǎn)生簽名的過程中,OA隨機(jī)選擇zi,t∈,計(jì)算Zi,t=zi,tP,Vi,t=Qi+Zi,t,將Ui的身份信息Qi進(jìn)行掩蓋,而hi,t是上的隨機(jī)元素,其他元素都是群G1上的隨機(jī)元素,因此滿足匿名的基本要求。
在敵手具有一定的攻擊能力的前提下,該簽名方案仍然能夠滿足匿名性的要求。假設(shè)敵手攻擊群成員Ui和管理員IA的私鑰,同時(shí)敵手能夠執(zhí)行Join算法添加群成員并能撤銷群成員使得管理員OA不對其提供簽名幫助,敵手能夠在OA的幫助下打開除目標(biāo)群簽名外的其他任何的群簽名。對于給定的消息m,敵手隨機(jī)選擇兩個(gè)誠實(shí)的群成員i0和i1。敵手可以得到群成員ib(b∈{0,1})在t時(shí)間段對消息m產(chǎn)生的群簽名(σib,t,Vib,t)。敵手若能夠判別出簽名(σib,t,Vib,t)來自于i0或i1,則稱其贏得了游戲,即解決了G1上的一例CDH問題。
假設(shè)敵手獲得了Ui在t時(shí)間段臨時(shí)群簽名密鑰USXib,t、私鑰Dib和IA的私鑰DMb,計(jì)算v=hib,t(USXib,t+Dib),u=hib,tYib,ε=σib,t-v-u,Zib,t=Vib,t-Qib,因?yàn)镻pub,Zib,t∈G1,所以一定存在m,n∈,使得Ppub=mP,hib,tZib,t=nP,則:
由雙向性對的非退化性可知ε=mnP,即敵手解決了G1上的一例CDH問題,而CDH問題在群G1上的是難解的,因此方案滿足匿名性。
(4)可跟蹤性
可跟蹤性是指群管理員通過打開算法可識別出簽名者的具體身份。對于Ui在t時(shí)間段對消息m產(chǎn)生的群簽名(σi,t,Vi,t),在群簽名產(chǎn)生的過程中,需要向OA尋求簽名幫助,而OA在為Ui提供簽名幫助的時(shí)候,首先驗(yàn)證Ui的合法身份,若不合法則拒絕提供幫助;若合法,則提供幫助。OA在為Ui提供簽名幫助的時(shí)候會(huì)將Ui的身份信息保存到存儲(chǔ)列表中。因此,OA能夠?qū)戏ㄈ撼蓡T產(chǎn)生的簽名進(jìn)行跟蹤。
可跟蹤性的含義還包括在OA不提供簽名幫助的情況下,敵手不能產(chǎn)生有效的群簽名。假設(shè)敵手獲得Ui在t時(shí)間段的臨時(shí)簽名密鑰USXi,t和私鑰Di,保證IA是安全可信的,根據(jù)(2)中群簽名的構(gòu)造過程,在Yi未知的前提下,敵手不能偽造一個(gè)被OA跟蹤的群簽名。這是因?yàn)閁i通過執(zhí)行Join算法成為群成員,IA隨機(jī)選擇Xi發(fā)送給用戶Ui,計(jì)算Yi=DM-Xi,將Yi發(fā)送給OA。若Ui只知道Xi,在IA可信且OA不提供簽名幫助的情況下,因?yàn)镃DH問題在G1上是難解的,所以Ui不能產(chǎn)生被OA跟蹤的合法的群簽名。此部分簽名是Ui和OA合作完成的(2,2)門限簽名[20],即使敵手獲得Ui的私鑰,在OA的私鑰未知的情況下,仍然不能夠偽造該部分簽名。
綜上可知,在G1上的CDH問題難解的前提下,方案滿足可跟蹤性。
(5)無關(guān)聯(lián)性
無關(guān)聯(lián)性是指對于任意給定的一些有效的群簽名,只有群管理員能夠區(qū)分其中的某兩個(gè)簽名是否來自同一個(gè)簽名者。對于群成員Ui在兩個(gè)不同的時(shí)間段k和j產(chǎn)生的群簽名 (σi,k,Vi,k)和 (σi,j,Vi,j),假設(shè)敵手能夠?qū)蓚€(gè)群簽名進(jìn)行區(qū)分,即敵手得知了(σi,k,Vi,k)是Ui在k時(shí)間段對消息m的簽名。假設(shè)敵手知道了Ui的臨時(shí)簽名密鑰USXi,k、私鑰Di和管理員IA的私鑰DM,但OA必須是可信的。計(jì)算v=hi,k(USXi,k+Di),u=hi,kYi,ε=σi,k-v-u,Zi,k=Vi,k-Qi??梢宰C明求解(Ppub,Zi,k,hi,k,ε)是計(jì)算群G1上的一例CDH問題,而CDH問題在群G1上的是難解的。因此在群簽名不被打開的情況下,判斷兩個(gè)不同的群簽名是否是同一個(gè)簽名者是困難的。
(6)不可陷害性
方案滿足不可偽造性,在協(xié)助器密鑰安全的情況下,只有合法的群成員才能在管理員OA的協(xié)助下產(chǎn)生群簽名,因此滿足不可陷害性。
(7)抗聯(lián)合攻擊
抗聯(lián)合攻擊是指部分群成員合謀在一起也不能產(chǎn)生被管理員跟蹤不到的有效簽名。簽名者只有在群管理員OA的幫助下才能完成群簽名,在為簽名者提供簽名幫助時(shí),只有在確定簽名者的合法身份之后才為其提供幫助。因此,部分群成員聯(lián)合在一起在沒有OA提供簽名幫助的情況下仍然不能產(chǎn)生被OA跟蹤到的群簽名。
(8)密鑰隔離安全性
假設(shè)在t時(shí)間段,敵手獲得了Ui的私鑰Di和臨時(shí)群簽名密鑰USXi,t,他只能對當(dāng)前時(shí)間階段的簽名造成危害。在協(xié)助器密鑰安全的情況下,敵手不能從協(xié)助器獲得密鑰的更新消息,因而不能危害其他時(shí)間段的群簽名。因此,本文提出的方案能夠滿足密鑰隔離安全性。
(9)安全密鑰更新
假設(shè)敵手已經(jīng)獲得了用戶Ui的私鑰Di。在t時(shí)間段,Ui正將其臨時(shí)群簽名密鑰從USXi,t-1更新到USXi,t,此時(shí)敵手對Ui進(jìn)行攻擊,那么敵手只能獲得USXi,t-1、USXi,t和更新消息UKi,t,然而敵手只能對t-1、t時(shí)間段內(nèi)的簽名造成危害,不能對其他時(shí)間段的簽名造成威脅,因此方案滿足安全密鑰更新。
本文方案首次將密鑰隔離技術(shù)運(yùn)用到基于身份的群簽名方案中,提高了簽名的安全性,減輕了密鑰泄露以后帶來的損失。將本文提出的基于身份的密鑰隔離群簽名方案與方案[15]提出的密鑰隔離群簽名方案和方案[18]提出的基于身份的群簽名方案相比較。假設(shè)方案在有限域Zq(q是長度為170 bit的素?cái)?shù))的橢圓曲線上運(yùn)行,(G1,+)是該橢圓曲線上一個(gè)q階子群。G1中的元素長度為170 bit的字符串,(G2,?)是大小約為21020有限域Zq某個(gè)有限擴(kuò)域的子群。從簽名長度和算法復(fù)雜度兩方面在簽名長度、數(shù)乘運(yùn)算、加法運(yùn)算、模乘運(yùn)算和雙線性對次數(shù)方面對方案進(jìn)行比較,見表1。
表1 簽名長度和復(fù)雜度比較
通過與方案[15]比較可知,本文方案簽名長度較短,且不需要模指數(shù)運(yùn)算,計(jì)算較為簡便。而方案[15]基于RSA和DDH假設(shè),DDH假設(shè)在雙線性對下是可驗(yàn)證的,不具備安全性。相對于基于RSA構(gòu)造的方案,本文方案只需要進(jìn)行簡單的數(shù)乘和加法運(yùn)算,群成員的跟蹤也較為方便,不需要繁雜的零知識證明,構(gòu)造相對簡單。而與方案[18]比較,本文方案構(gòu)造更為簡單,簽名長度更短,且滿足密鑰隔離安全性。
本文在基于身份的群簽名的基礎(chǔ)上提出了基于身份的密鑰隔離群簽名方案,解決了群簽名中的密鑰泄露問題,降低了密鑰泄露帶來的損失。方案具有較短的簽名長度,對群成員的跟蹤只需要搜索存儲(chǔ)列表,滿足密鑰隔離安全性,提高了群簽名的實(shí)用性。本文方案的不足是,OA在為簽名者提供簽名幫助時(shí),必須時(shí)刻在線;任意的群成員和OA串通就可以獲得IA的私鑰;群成員的跟蹤由OA來完成,一些存儲(chǔ)列表也由OA完成,因此OA必須是可信的。