蔣雨宏,鄧倫治
(貴州師范大學 數(shù)學科學學院,貴州 貴陽 550025)
1984年Shamir[1]提出的基于身份密碼體制,簡化了密鑰管理過程,避開了證書的管理問題,解決了傳統(tǒng)公鑰密碼體制的缺陷。Chaum[2]首次提出盲簽名概念,盲簽名是一種特殊的數(shù)字簽名,是指簽名者在不知道消息的具體內(nèi)容的情況下進行簽名,并且當該簽名公布后,簽名者不能將自己的簽名與消息對應,這一性質(zhì)稱為盲性。由于盲簽名具有盲性,可以有效保護所簽署消息的具體內(nèi)容,所以在電子商務和電子選舉有著廣泛的應用。然而,簽名人不知道所簽消息的任何信息,這樣的完全盲性很容易造成簽名的非法使用。為了解決盲簽名匿名性和可控性之間的矛盾,即在保證盲簽名的不可偽造性、不可抵賴性和盲性的同時解決簽名濫用,1996 年,Abe等[3]首次提出部分盲簽名的概念。部分盲簽名結(jié)合了盲簽名的特點,在部分盲簽名方案中,簽名人在盲簽名時可以加入與用戶協(xié)商的消息或者自己的信息,消息提供者不能篡改簽名人加入的信息,從而阻止簽名申請者提供非法信息而濫用簽名,這樣既有效地保護了用戶的隱私又讓簽名者對所簽署的內(nèi)容部分可控。這比盲簽名更加實用,所以部分盲簽名立刻成為密碼學領域的研究熱點。
Chow等[4]首次提出了一個基于身份的部分盲簽名方案,并詳細的證明了方案的安全性。隨后,人們相繼提出了基于身份的部分盲簽名方案[5-7]。張小萍等[8]提出基于身份的盲簽名方案,但是該文章沒有給出方案的安全性證明。李明祥等[9]提出一種高效的基于身份的部分盲簽名方案,文獻中詳細的給出了方案的安全性證明,但方案的效率不高。余丹等[10]提出了無證書部分盲簽名方案,該方案效率上有很大優(yōu)勢,但并沒有詳細的安全性證明,所以無法確定該方案的安全性。同樣的李明祥等[11]提出一個高效的無證書部分盲簽名方案,但沒有給出方案的安全性證明。榮維堅[12]提出無證書部分盲簽名方案,給了出方案的安全性證明,但沒有進行效率比較。何俊杰等[13]提出基于身份部分盲簽名方案的分析與改進,但已被證明是不安全的。鄧倫治等[14]提出了基于身份的高效代理方案并且在基于n-CDH問題下證明了方案的安全性。尹恒等[15]在基于CT-ACDH困難的假設下,設計了高效安全的基于身份的部分盲簽名方案并且完整的證明了方案的安全性,方案的效率相較于其他方案也有明顯的提高。毛昱昉等[16]基于n-CDH問題提出了基于身份的盲簽名方案并證明了方案的安全性。曹素珍等[17]提出一個改進的基于身份的部分盲簽名方案,在基于離散對數(shù)困難問題下證明了方案的安全性。
本文先對劉二根等[18]的方案進行分析,然后構(gòu)造一種新的方案。本文在隨機預言模型下,基于雙線性映射的逆問題證明了方案的安全性,并且證明了方案的部分盲性和可抵抗篡改公共信息攻擊。
設G1、G2分別是階為q的循環(huán)加法群和乘法循環(huán)群。e:G1×G1→G2是一個滿足下列要求的雙線性對映射:
對?P1,P2∈G1,存在一高效的計算方法可以計算出e(P1,P2)。
1)系統(tǒng)初始化
2)密鑰生成
3)簽名:設簽名者A的身份為IDA,請求者B的身份為IDB,待簽名消息為m∈{0,1}*,設A和B事先協(xié)商好的公共信息為c,計算gc=e(H3(c),P1)并作為公鑰參數(shù)公開,簽名者A和請求者B進行如下交互:
(4)解盲:B收到盲簽名后S′進行解盲,計算S=αS′,則消息m的部分盲簽名為δ=(S,m,h,r,c)
4)驗證:驗證者M收到消息m的簽名δ=(S,m,h,r,c)后,驗證等式
r=e(S,Ppub+H1(IDA)P)g-hH1(IDA)是否成立。如果成立,則接受簽名,否則,簽名無效。
如果攻擊者篡改公共信息,那么就會存在簽名被濫用的可能。具體攻擊過程如下:
方案變的部分只有簽名者A和請求者B進行的交互和驗證部分,方案的其余部分都不變。簽名者A和不誠實的用戶T進行如下交互:
下面證明,如果被不誠實的用戶T篡改過公共信息的簽名能通過驗證等式,則說明攻擊者攻擊成功,也即方案不能抵抗篡改公共信息攻擊。
=r
1)系統(tǒng)初始化
2)密鑰生成
3)簽名
(3)簽名:A收到盲化消息U后,進行簽名,計算V′=kSA+H3(c)xAU,并且將V′發(fā)送給B;
(4)解盲:B收到盲簽名后V′進行解盲,計算V=αV′,則消息m的部分盲簽名為δ=(V,m,h,R,c)
4)驗證
定理1 所提基于身份的部分盲簽名方案是正確的。
證明只要部分盲簽名δ=(V,m,R,c)能夠通過驗證等式即可。具體驗證過程如下:
e(V,Ppub+H1(IDA)P)PKA-hH3 (c)
=e(αV′,Ppub+H1(IDA)P)PKA-hH3 (c)
=e(α(kSA+H3(c)xAU),PA)PKA-hH3 (c)
=e(αkSA+αH3(c)xAU,PA)PKA-hH3 (c)
=e(P,P)αkPKAαH3 (c)PKAhH3 (c)e(xAP,PA)αβPKA-hH3 (c)
=KαPKαβ
=R
方案變的部分只有簽名者A和請求者B進行的交互和驗證部分,方案的其余部分不變。
簽名者A和不誠實的用戶T進行如下交互:
下面證明篡改了公共信息之后就不能通過驗證等式:
≠KαPKαβ
≠R
定理3 在隨機預言模型和基于雙線性映射的逆問題困難的假設下,提出的方案對自適應選擇消息及身份攻擊是存在性不可偽造的。
為了能夠計算出T∈G1,挑戰(zhàn)者C與攻擊者F進行交互,挑戰(zhàn)者C通過回答攻擊者F的H1,H2,H3哈希詢問、個人公鑰詢問、部分密鑰詢問、個人密鑰詢問和簽名詢問分別設置相應的列表:L1(IDi,h1i),L2(mi,Ri,h2i),L3(ci,h3i),LG(IDi,PKi),LJ(IDi,Si),Lj(IDi,xi),Lδ(Vi,mi,hi,Ri,ci)。這些列表初始為空,列表值由隨機預言機模擬回答。F至多做qH1次H1詢問,qH2次H2詢問,qH3次H3詢問,qG次個人公鑰詢問,qJ次部分密鑰詢問,qj次個人密鑰詢問,qδ次簽名詢問。具體的交互過程如下:
系統(tǒng)設置設目標用戶的身份用ID*表示,挑戰(zhàn)者C首先生成并公布系統(tǒng)公開參數(shù)params,其中系統(tǒng)公鑰設置為Ppub=sP,即設置系統(tǒng)主私鑰為s。
H1詢問C設置L1(IDi,h1i),C接收到F關于身份為IDi的H1詢問。C首先查詢列表L1,若表中存在(IDi,h1i)項,則直接返回h1i給F;否則:
2)若IDi=ID*,則C令h1*=t-s,將h1*返回給F,并將(IDi,h1*)添加到列表L1中。
個人公鑰詢問C設置LG(IDi,PKi),C接收到F關于用戶身份為IDi的個人公鑰詢問。C首先查詢列表LG,若表中存在(IDi,PKi),則將PKi返回給F;否則,假設之前已經(jīng)進行過了H1詢問,不然就先進行H1詢問:
2)若IDi=ID*,則C計算P*=sP+h1*P=sP+(t-s)P=tP,設置PK*=W,將PK*返回給F,并將(IDi,PK*)添加到列表LG中。
部分密鑰詢問C設置LJ(IDi,Si),C接收到F關于用戶身份為IDi的部分密鑰詢問。C首先查詢列表LJ,若表中存在(IDi,Si),則將Si返回給F;否則,假設之前已經(jīng)進行過了H1詢問,不然就先進行H1詢問:
個人密鑰詢問C設置Lj(IDi,xi),C接收到F關于用戶身份為IDi的用戶個人密鑰詢問。C首先查詢列表Lj,若表中存在(IDi,xi)項,則將xi直接返回給F;否則:
2)若IDi=ID*,C拒絕回答個人私鑰,詢問終止。
簽名詢問C設置Lδ(Vi,mi,hi,Ri,ci),C接收到F關于消息為mi的簽名詢問。C首先查詢列表Lδ,若表中存在(Vi,mi,hi,Ri,ci)項,則直接返回給F;否則,假設之前已經(jīng)進行過哈希詢問,不然就先進行上述的哈希詢問:
2)若IDi=ID*,則按以下步驟進行:
③令h2=H2(m,c,R),h3=H3(c),儲存(m,c,h2,h3,R),若產(chǎn)生碰撞,則重做①至③。
所以有:
e(V*,sP+(t-s)P)W-h*H3(c*)=
e(V*,tP)e(T,tP)-h*H3(c*)=
e(V*,tP)e(-h*H3(c*)T,tP)=
e(V*-h*H3(c*)T,tP)=
即:
所以,在雙線性映射的逆問題困難下,方案在適應性選擇消息和身份攻擊下對超級攻擊者F是存在性不可偽造的。
定理4 所提部分盲簽名方案滿足部分盲性。
證明給定一個有效的部分盲簽名δ=(V,m,h,R,c)和任意一組簽名者保存簽名過程中的交互中間變量(k,K,V′,h′),可知:
V=αV′
(1)
(2)
(3)
本文所提方案與以前方案的效率比較如表2所示,表1中所涉及到的對比數(shù)據(jù)來自文獻[19-20]。通過表2 的計算效率對比可看出,本文方案的運算效率相較于其他方案有提高。
表1 運算效率Tab.1 operational efficiency
表2 本文方案與其他4種方案計算效率比較Tab.2 Comparison of computational efficiency between the scheme and the other four schemes
部分盲簽名方案允許簽名者在不損害盲性的前提下將與用戶提前商議好的公共信息包含在簽名中,消息和最終簽名對簽名者都是未知的,這有效的防止了簽名被濫用。這一特性使得部分盲簽名在匿名電子投票、電子現(xiàn)金系統(tǒng)、電子商務、電子選舉等方面有著廣泛的運用。本文的方案克服了公共信息被篡改的缺陷,并在基于雙線性映射的逆問題的困難假設上證明了方案的安全性。與文獻[9-10,15]進行效率比較,本文的方案只需要1次雙線性對計算,5次標量乘運算,5次冪乘運算,2次求逆運算,效率上有提高。