牛淑芬,,, ,
(西北師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,蘭州 730070)
異構(gòu)密碼系統(tǒng)中的消息在傳輸過(guò)程中需要具備保密性和認(rèn)證性,數(shù)字簽密[1]使得簽密密文同時(shí)具有保密性和認(rèn)證性。近年來(lái)很多學(xué)者研究了各種簽密方案[2-4],包括基于身份的簽密方案[5-8]和無(wú)證書簽密方案[9],其中不乏對(duì)特殊簽密的研究,例如,代理簽密方案[10-12]和異構(gòu)簽密方案[13-15]。文獻(xiàn)[16]提出了從傳統(tǒng)公鑰密碼到身份公鑰密碼的異構(gòu)簽密方案。文獻(xiàn)[17]提出了2個(gè)異構(gòu)簽密方案,第1個(gè)方案是由公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)到基于身份的密碼體制(Identity-based Cryptosystem,IBC),第2個(gè)方案是由IBC到PKI。文獻(xiàn)[18]提出了匿名CLPKC-TPKI異構(gòu)簽密方案。文獻(xiàn)[19]提出了異構(gòu)系統(tǒng)下的雙向簽密方案。但現(xiàn)有的異構(gòu)密碼系統(tǒng)大多采用公鑰加密技術(shù),而公鑰加密技術(shù)由于對(duì)長(zhǎng)消息的加密速度較慢,通常只適合加密短消息。在實(shí)際的安全通信中往往使用混合加密或者混合簽密的方式。文獻(xiàn)[20]提出了新的基于身份的混合簽密。文獻(xiàn)[21]提出了可證安全的無(wú)證書混合簽密。上述文獻(xiàn)都是簽名者在知道明文的環(huán)境下進(jìn)行的簽名,在特殊的環(huán)境下簽名者對(duì)于明文是未知的。為解決這一類特殊情況的簽名,學(xué)者們首次提出了對(duì)盲簽名的定義并進(jìn)行了深入研究[22-24]。此后,又有學(xué)者提出了一系列盲簽密方案[25-27]。
上述異構(gòu)方案均沒有實(shí)現(xiàn)既可對(duì)任意長(zhǎng)度的消息簽密的方案,也沒有滿足在特殊環(huán)境中明文消息對(duì)簽名者具有盲性的特點(diǎn),同時(shí),在不同的密碼體制內(nèi)共享相同的主密鑰是不現(xiàn)實(shí)的。為此,本文提出一個(gè)基于異構(gòu)密碼系統(tǒng)的混合盲簽密方案,該方案是一個(gè)從IBC到無(wú)證書密碼體制(Certificateless Cryptosystem,CLC)(IBC→CLC)的異構(gòu)簽密算法。
設(shè)G1是生成元為P、階為q的循環(huán)加法群,G2是階為q的循環(huán)乘法群,e:G1×G1→G2是一個(gè)雙線性映射,并且具有以下3個(gè)性質(zhì)。
2)非退化性:e(P,P)≠1G2。
3)可計(jì)算性:任意P,Q∈G1,存在一個(gè)有效的算法計(jì)算e(P,Q)。
IBC密鑰生成算法由PKG完成,輸入用戶身份IDA,計(jì)算用戶私鑰SA=s1QA,其中,QA=H1(IDA),最后通過(guò)安全方式發(fā)送給用戶。
CLC密鑰生成算法分為以下3個(gè)子算法:
2)用戶密鑰生成算法。輸入系統(tǒng)參數(shù)params和用戶身份IDB,輸出IDB的秘密值xB和公鑰PB=xBP。
3)私鑰生成算法。輸入系統(tǒng)參數(shù)params、部分私鑰DB和秘密值xB,輸出一個(gè)完全的私鑰SB=xBDB。
A為盲簽密者,M為消息擁有者,簽密過(guò)程如下:
3)A計(jì)算V=(a+h)SA,W=e(PB,P2QAQB)a,然后將(V,W)發(fā)送給M。
4)M計(jì)算W*=Wr,V*=r-1V,K=H2(U1,U2,U3,W*,rPB,IDB),c=DEM.Enc(K,m)。
5)M輸出σ=(c,U1,U2,U3,V*,R)。
驗(yàn)證e(P1U1,V*)=e(P2,R+hQA)是否成立,若成立,則進(jìn)行以下操作:
1)B計(jì)算W*=e(U1,PR)SB。
2)B計(jì)算K=H2(U1,U2,U3,W*,xBU1,IDB)。
3)B計(jì)算m=DEM.Dec(K,c)。
4)輸出m或⊥。
正確性分析推導(dǎo)過(guò)程如下:
e(U1,SBPR)=e(U1,PR)SB
e(P2,aQA+hQA)=e(P2,R+hQA)
盲性指簽名者對(duì)所簽署的內(nèi)容是不可見的。由簽密過(guò)程2)可知,M計(jì)算U1=rP,U2=rR,U3=rQA,t=H2(U2,m),h=H3(U1,U2,U3,t,IDA,QA),其中,r是盲因子,t=H2(U2,m)是對(duì)消息的盲化過(guò)程,最后將h發(fā)送給A。由簽密過(guò)程3)可知,當(dāng)M收到(V,W)時(shí),對(duì)簽名V進(jìn)行去盲,去盲過(guò)程為V*=r-1V。顯然,盲簽名者A不知道所簽署的內(nèi)容。
不可跟蹤性指A對(duì)簽署的密文具有不可跟蹤的特性。當(dāng)B將密文(c,U1,U2,U3,V*,R)公開時(shí),雖然A擁有(a,R,h,V,W,SA),但是不能通過(guò)密文(c,U1,U2,U3,V*,R)計(jì)算出(s,r,W*,xB,DB,SB),所以本文方案具有不可跟蹤的特性。
保密性指敵手通過(guò)密文σ計(jì)算不出消息m。假設(shè)除了M和B之外,還有其他用戶(假設(shè)是A)能從密文σ中得到消息m。由于在盲簽密過(guò)程中M給的是關(guān)于消息的哈希函數(shù),A想要得到消息m只能通過(guò)密文σ得到,因此A必須計(jì)算W*和K才能恢復(fù)出消息m。已知A擁有的值有(c,U1,U2,U3,V*,R,h,V,W,SA),但是A依然從等式h=H3(U1,U2,U3,t,IDA,QA),t=H2(U2,m)中無(wú)法恢復(fù)消息m,因?yàn)榈仁胶形粗獢?shù)m和t。A要求解雙線性映射的逆運(yùn)算是困難的,不能通過(guò)W*=Wr=e(PB,P2QAQB)ar計(jì)算出W*。所以,除M和B知道消息m之外,其他用戶無(wú)法得知消息m。
公開驗(yàn)證性指在不需要B的私鑰SB的情況下,任意第三方驗(yàn)證者都能直接通過(guò)(U1,U2,U3,V*,h,R)驗(yàn)證盲簽密的有效性。
任何第三方驗(yàn)證者從B處得到(U1,U2,U3,V*,h,R)并驗(yàn)證等式e(P1U1,V*)=e(P2,R+hQA)是否成立,如果成立,驗(yàn)證通過(guò);否則,該盲簽密無(wú)效。在上述過(guò)程中無(wú)需A和B的私鑰SA和SB,所以本文方案具有公開驗(yàn)證性。
不可否認(rèn)性指A如果協(xié)助M創(chuàng)建一個(gè)有效盲簽名之后,就不可否認(rèn)自己的盲簽名。
如果A否認(rèn)自己的盲簽名時(shí),因?yàn)楸疚姆桨妇哂泄_驗(yàn)證性,任意第三方得到(U1,U2,U3,V*,h,R)并驗(yàn)證等式e(P1U1,V*)=e(P2,R+hQA)是否成立,若成立,(U1,U2,U3,V*,h,R)是消息m的有效盲簽名。所以接收者B只需公開(U1,U2,U3,V*,h,R)就可證明本文方案具有不可否認(rèn)的特性,無(wú)需公開私鑰SB。
前向安全性指即使A的私鑰SA意外泄漏,敵手也能恢復(fù)A簽署消息的明文。
如果敵手已經(jīng)在公開信道上截獲密文(c,U1,U2,U3,V*,R),同時(shí)盲簽名者A的私鑰SA意外泄漏,因?yàn)閿呈植恢繠的私鑰SB,所以不能從W*=e(U1,PR)SB,K=H2(U1,U2,U3,W*,xBU1,IDB)中獲得對(duì)稱密鑰K。如果敵手想要得到對(duì)稱密鑰K,只能通過(guò)W*=Wr=e(PB,P2QAQB)ar,K=H2(U1,U2,U3,W*,rPB,IDB)得到,但等式內(nèi)含a、r、W*3個(gè)未知數(shù)。因?yàn)閿呈中枰鉀Q橢圓曲線離散困難問(wèn)題和離散對(duì)數(shù)困難問(wèn)題,所以即使擁有截獲的R、U1、U2、U3,也不能通過(guò)R=aQA,U1=rP,U2=rR,U3=rQA計(jì)算出a和r。因此,無(wú)法獲得對(duì)稱密鑰K,僅通過(guò)密文恢復(fù)不出明文。所以本文方案具有前向安全的特性。
不可偽造性指敵手無(wú)法通過(guò)一個(gè)消息m偽造合法盲簽密。
本文方案的簽名雖然有A選擇的隨機(jī)數(shù)a和A的私鑰SA,然而因?yàn)锳需要解決單向散列函數(shù)的逆的困難問(wèn)題,通過(guò)h=H3(U1,U2,U3,t,IDA,QA),t=H2(U2,m)無(wú)法恢復(fù)出消息m,并且A不知道M選擇的隨機(jī)數(shù)r,所以A不能偽造盲簽密。
如果B稱(c,U1,U2,U3,V*,R)是來(lái)自M的密文,需要通過(guò)W*=Wr計(jì)算出r,并偽造(U1,U2,U3,V*),使偽造數(shù)據(jù)能夠通過(guò)驗(yàn)證。但是B無(wú)從得知A選擇的隨機(jī)數(shù)a,通過(guò)W*=Wr=e(PB,P2QAQB)ar計(jì)算不出r。即使B已經(jīng)在公開信道上截獲了W,但是需要解決雙線性映射的逆的困難問(wèn)題,通過(guò)W*=Wr計(jì)算不出r。所以B不能偽造盲簽密。
如果M想要偽造一個(gè)合法的盲簽密,首先他不知道A的私鑰SA,其次他不知道A選擇的隨機(jī)數(shù)a。即使A的私鑰SA意外泄漏,M想要通過(guò)等式R=aQA計(jì)算出a是不可行的,因?yàn)镸需要解決離散對(duì)數(shù)困難問(wèn)題,所以M無(wú)法偽造盲簽密。
如果任意第三方敵手想偽造合法盲簽密,即使他擁有從公開信道上截獲的(c,U1,U2,U3,V*,R,h,W,V,SA,DB),但他不知道(s,xB,SB,a,r),所以一樣無(wú)法偽造盲簽密。
本節(jié)通過(guò)理論和數(shù)值實(shí)驗(yàn)進(jìn)行效率分析。在理論分析中,由于現(xiàn)有可供查閱的文獻(xiàn)中沒有IBC→CLC的異構(gòu)混合盲簽密方案。因此,無(wú)法與同類IBC→CLC的異構(gòu)混合盲簽密方案進(jìn)行效率比較。文獻(xiàn)[26]是基于無(wú)證書的盲簽密方案。比較2個(gè)方案的計(jì)算復(fù)雜性,主要包括4種運(yùn)算:點(diǎn)乘運(yùn)算(M),指數(shù)運(yùn)算(E),對(duì)運(yùn)算(P),異或運(yùn)算(X)。由表1可知,在簽密過(guò)程中本文方案的指數(shù)運(yùn)算比文獻(xiàn)[26]方案少2個(gè),并且沒有異或運(yùn)算,在解簽密過(guò)程中本文方案比文獻(xiàn)[26]方案少1個(gè)異或運(yùn)算。所以本文方案明顯優(yōu)于文獻(xiàn)[26]方案。
表1 2種方案計(jì)算成本比較
在數(shù)值實(shí)驗(yàn)分析中,利用C語(yǔ)言的PBC庫(kù)對(duì)IBC→CLC的異構(gòu)混合盲簽密方案進(jìn)行仿真模擬。在仿真過(guò)程中,群G1、G2的長(zhǎng)度為1 024 bit,利用的參數(shù)類型為橢圓曲線y2=x3+xmodq,用戶身份為160 bit,消息取160 bit,并且用戶身份和消息隨機(jī)生成。仿真環(huán)境的配置如表2所示,雙線性對(duì)包參數(shù)Type的性質(zhì)如表3所示。
表2 實(shí)驗(yàn)環(huán)境配置
表3 各參數(shù)的取值
本文方案與文獻(xiàn)[26]方案在通信過(guò)程中都是單消息。在數(shù)值實(shí)驗(yàn)分析中,本文方案的總體運(yùn)行時(shí)間、簽密運(yùn)行時(shí)間、解簽密運(yùn)行時(shí)間取50次運(yùn)行結(jié)果的平均值,如表4所示。
表4 本文方案運(yùn)行時(shí)間 s
為了比較本文方案和文獻(xiàn)[26]方案在簽密和解簽密過(guò)程中的計(jì)算效率,對(duì)本文方案和文獻(xiàn)[26]方案進(jìn)行同樣的仿真,仿真結(jié)果取50次運(yùn)行結(jié)果的平均值,如圖1所示,從中可以看出,本文方案的運(yùn)行時(shí)間明顯小于文獻(xiàn)[26]方案的運(yùn)行時(shí)間。
圖1 2種方案的計(jì)算效率對(duì)比
現(xiàn)有的異構(gòu)簽密方案的系統(tǒng)主密鑰的產(chǎn)生方式大多相同,不但不能加密任意長(zhǎng)度的消息,而且不具備盲簽密的能力。為此,本文提出一個(gè)由IBC到CLC的基于異構(gòu)密碼系統(tǒng)的混合盲簽密方案。PKG和KGC分別在IBC密碼體制和CLC密碼體制中產(chǎn)生各自的系統(tǒng)主密鑰,而且具有可加密任意長(zhǎng)消息和盲簽密的能力。與現(xiàn)有的簽密方案相比,該方案具有速度快、效率高、計(jì)算量小等特點(diǎn),在隨機(jī)預(yù)言模型下滿足盲性、保密性、不可跟蹤性、公開驗(yàn)證性、不可否認(rèn)性、不可偽造性和前向安全性。