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