李 村, 李志華, 辛 平
(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院 計(jì)算機(jī)科學(xué)系,江蘇 無錫 214122)
在實(shí)際應(yīng)用中,經(jīng)常會(huì)遇到轉(zhuǎn)交簽名權(quán)的情況,代理簽名[1]的概念應(yīng)運(yùn)而生。在當(dāng)授權(quán)人因故無法簽名時(shí),可以將簽名權(quán)轉(zhuǎn)交指定代理人,驗(yàn)證人可以驗(yàn)證并區(qū)分授權(quán)人簽名和代理人簽名。Zhang K[2]將秘密分享技術(shù)應(yīng)用到了代理簽名中,提出了門限代理簽名,將原始簽名人的簽名密鑰分成多份子密鑰,分發(fā)給多個(gè)代理簽名人,每個(gè)代理簽名人使用自己的子密鑰產(chǎn)生部分代理簽名,當(dāng)部分代理簽名的數(shù)目大于門限值時(shí),即可生成有效的門限代理簽名[3]。
隨著研究的深入,門限代理簽名也得到了快速的發(fā)展,出現(xiàn)了一些門限代理簽名方案[4~8]。但大都存在簽名易被偽造的弊端。文獻(xiàn)[9]提出了基于身份的門限代理簽名方案,無法有效抵抗合謀攻擊,代理簽名人在進(jìn)行一次代理簽名后,當(dāng)惡意代理成員數(shù)目大于等于門限值時(shí),可以獲得足夠的信息,從而偽造其他代理簽名人簽名;文獻(xiàn)[10~12]分別提出了一種基于身份的門限代理簽名方案,但并不具有前向安全性,因?yàn)橐坏┖灻荑€泄漏,則會(huì)嚴(yán)重影響到簽名的有效性;文獻(xiàn)[13]提出了另外一種基于身份的前向安全的代理簽名方案,但方案易遭受線性攻擊且不具有后向安全性。另外,以上方案均需要可信中心的支持,而在某些實(shí)際應(yīng)用場景下,可信中心并不存在。
針對上述問題,本文提出了一種前向安全的門限代理簽名方案,無需可信中心,且可以抵抗合謀攻擊,并具有前向安全性的特點(diǎn)。
設(shè)G1,G2分別為具有素?cái)?shù)q階的循環(huán)加法群和循環(huán)乘
法群。且G1,G2中的離散對數(shù)是難解的。e:G1×G1→G2是一個(gè)雙線性映射,符合以下特性[14]
e(P+Q,R)=e(P,R)e(Q,R)
e(P,Q+R)=e(P,Q)e(P,R)
e(aP,bQ)=e(abP,Q)=e(P,abQ)=e(P,Q)ab
2)非退化性:存在P∈G1,使e(P,P)≠1;
3)可計(jì)算性:設(shè)P,Q∈G1,則一定存在算法計(jì)算e(P,Q)結(jié)果。
假設(shè)G1為一個(gè)階數(shù)為素?cái)?shù)q的加法群。有基于G1的困難問題:
對于群G1,如果DDHP問題易解,而CDHP問題難解,則將G1稱為GDH群。
本文提出的前向安全的門限代理簽名(forward secure threshold proxy signature,F(xiàn)STPS)方案包括以下部分:
1)系統(tǒng)初始化:輸出系統(tǒng)參數(shù)params。
2)生成用戶密鑰:輸入用戶的身份IDi、系統(tǒng)參數(shù)params,xi,輸出IDi的公鑰PIDi、私鑰SIDi。
3)生成委托證書:分成產(chǎn)生代理權(quán)和驗(yàn)證代理權(quán)兩個(gè)環(huán)節(jié)。產(chǎn)生代理權(quán),輸入委托證書mw、系統(tǒng)參數(shù)params,輸出對mw的簽名σw=(mw,δ,V,U)。驗(yàn)證代理權(quán),輸入原始簽名人公鑰Q0和系統(tǒng)參數(shù)params驗(yàn)證簽名σw,驗(yàn)證通過,輸出1;否則,輸出0。
4)生成代理簽名密鑰:分為生成門限密鑰和更新代理簽名密鑰兩個(gè)環(huán)節(jié)。生成門限密鑰,輸入系統(tǒng)參數(shù)params、原始簽名人產(chǎn)生的ki、mw的簽名σw、用戶的身份IDi輸出代理私鑰Xi和代理公鑰Yi。更新代理簽名密鑰,輸入原始簽名人在第L時(shí)段生成的隨機(jī)數(shù)rL、系統(tǒng)參數(shù)params、mw,輸出代理簽名密鑰(βL,Xi)。
5)生成代理簽名:分為生成部分簽名、驗(yàn)證部分簽名、合并部分簽名3個(gè)環(huán)節(jié)。生成部分簽名,由t個(gè)門限代理簽名人分別執(zhí)行。輸入門限代理簽名人身份IDi、代理密鑰Xi、消息m,輸出部分簽名gi。驗(yàn)證部分簽名,由任意門限代理簽名人執(zhí)行,輸入部分簽名gi、代理公鑰Yi、系統(tǒng)參數(shù)params,驗(yàn)證通過,輸出1;否則,輸出0。合并部分簽名,由任意門限代理簽名人執(zhí)行。輸入部分簽名gi、消息m,mw的簽名σw、代理公鑰Yi、時(shí)段L、參數(shù)T。輸出對m的簽名σm=(m,mw,U,y,k,g,L,T)。
6)驗(yàn)證代理簽名:可由任何人執(zhí)行。輸入原始簽名人公鑰Q0、系統(tǒng)參數(shù)params輸入、對m的簽名σm。驗(yàn)證通過,輸出1;否則,輸出0。
設(shè)群G1為循環(huán)加法群,G2為循環(huán)乘法群,G1,G2的階均為素?cái)?shù)q。e為一個(gè)雙線性映射,如式 (1)。定義H1,H2,H3為3個(gè)安全的哈希函數(shù),分別如式(2)~式(4)。公開參數(shù)params如式(5)
e:G1×G1→G2
(1)
H1:{0,1}*→G1
(2)
(3)
H3:{0,1}*×G1→G1
(4)
params={G1,G2,e,q,P,H1,H2,H3}
(5)
Qi=xiH1(IDi)
(6)
U=rwH1(ID0)
(7)
W=H3(mw,U,ID0)
(8)
Hw=H1(W)
(9)
V=x0W
(10)
δ=rwHw+V
(11)
產(chǎn)生mw的簽名為σw=(mw,δ,V,U)。將σw發(fā)送給每個(gè)代理簽名人。
2)驗(yàn)證代理權(quán)。每個(gè)代理簽名人Pi收到原始簽名人的簽名σw后,驗(yàn)證等式是否成立
e(V,H1(ID0))=e(H3(mw,U,ID0),Q0)
(12)
e(δ,H1(ID0))=e(H3(mw,U,ID0),Q0)+
e(H1(H3(mw,U,ID0)),U)
(13)
若等式成立,接受簽名;反之,要求重發(fā)委托證書簽名。
1)生成門限密鑰
Ki=kiP
(14)
(15)
ai,0=xiδ+kiH3(mw,U,ID0)
(16)
fi(x)=ai,0+ai,1x+ai,2x2+…+ai,t-1xt-1
(17)
Pi通過式(18)計(jì)算并廣播Ai,j,然后將fi(IDj)秘密發(fā)送給Pj,j=1,2,…,j≠i
Ai,j=ai,jP,j=1,2,…,t-1
(18)
Pi接收到fj(IDi)后,驗(yàn)證等式(19)是否成立。如果Pi全部通過驗(yàn)證,Pi通過式(20)、式(21)分別計(jì)算出代理私鑰Xi和代理公鑰Yi,并廣播Yi
(19)
(20)
Yi=XiP
(21)
2)更新代理簽名
β0=x0H1(r0P)+r0H1(mw)
(22)
當(dāng)進(jìn)入L時(shí)段,P0利用第L-1時(shí)段的βL-1計(jì)算βL:
(23)
(24)
(25)
將(βL,mw,T)發(fā)送給所有代理簽名人后立刻刪除rL和βL-1。
代理簽名人收到(βL,mw,T)后,驗(yàn)證式(26)
e(βL,P)=e(H1(mw),T)e(H1(T),Q0)
(26)
如果成立,則得到代理簽名密鑰為(βL,Xi)。
m為需要簽名的消息,P1,P2,…,Pt為t個(gè)對消息m簽名的代理簽名人。簽名步驟如下:
1)生成部分簽名:每個(gè)代理簽名人Pi(i=1,2,…,t)通過式(27)計(jì)算di,再通過式(28)使用代理簽名密鑰產(chǎn)生消息m的部分代理簽名gi。隨機(jī)選擇一名代理簽名人作為門限簽名合成者。向門限密鑰合成者發(fā)送(gi,IDi),其中IDi用于確定代理簽名者的身份
(27)
gi=XidiH1(m)H2(m)+kiHw
(28)
2)驗(yàn)證部分簽名:門限簽名合成者驗(yàn)證式(29)是否成立,如果成立,則輸出1;否則,輸出0
e(P,gi)=e(Yi,H1(m))diH2(m)e(Ki,Hw)
(29)
3)合并部分簽名:當(dāng)所有的部分簽名有效時(shí),通過式(30)、式(31)計(jì)算y,g,則(m,mw,U,y,k,g,L,T)是對消息m的門限代理簽名
(30)
(31)
驗(yàn)證人在獲得對m的簽名(m,mw,U,y,k,g,L,T)后,驗(yàn)證等式(32),如果等式成立,則該簽名合法
(32)
為方便分析方案的效率,假設(shè)代理人共n個(gè),門限值為t,配對運(yùn)算記為Ep,乘法運(yùn)算記為Mu,加法運(yùn)算記為Ad,Hash函數(shù)運(yùn)算記為Ha,更新代理簽名密鑰的時(shí)段編號(hào)為L,方案對比如表1。
表1 方案的性能對比
可以看出,本文方案在生成用戶密鑰、生成代理簽名、驗(yàn)證代理簽名階段性能優(yōu)異,均高于對比方案;在生成代理簽名密鑰階段,當(dāng)更新代理簽名密鑰的時(shí)段數(shù)較少時(shí),由更新代理簽名帶來的運(yùn)算次數(shù)較少,此時(shí)該階段的計(jì)算復(fù)雜度與他方案相近。
硬件加密相對于軟件加密具有加密性能好、加密強(qiáng)度高的特性[15]。在數(shù)據(jù)加密技術(shù)的應(yīng)用中,逐漸成為關(guān)注的焦點(diǎn)。FSTPS方案具有前向安全的特性,并且無需可信中心,因此,方案可以很好的應(yīng)用于密碼卡的場景。
密碼卡的硬件結(jié)構(gòu)如圖1所示,包括:FPGA芯片、SM1芯片、SM3芯片、SM9芯片、ARM處理器模塊、CPLD模塊、SDRAM、FLASH存儲(chǔ)器、物理噪音發(fā)生器等。密碼卡通過PCI-E接口與主機(jī)連接,F(xiàn)PGA芯片通過有限狀態(tài)機(jī)控制SM1,SM9等算法芯片。FPGA和ARM模塊直接通過CPLD隔離數(shù)據(jù)總線連接。
圖1 PCI-E密碼卡結(jié)構(gòu)特征
在密碼卡的設(shè)計(jì)方案中,Pi是一組USBkey,其中P0被標(biāo)注為Rootkey,具有原始簽名人權(quán)限。USBkey中存放的PID信息可以作為身份信息,并在應(yīng)用中對USBkey與用戶進(jìn)行綁定。
生成代理簽名階段描述如下:
2)Pi通過式(18)計(jì)算并廣播Ai,j,將fi(IDj)秘密發(fā)送給Pj,j=1,2,…,j≠i。
3)Pi接收到fj(IDi)后,驗(yàn)證等式(19)是否成立。如果Pi全部通過驗(yàn)證,Pi計(jì)算出其代理私鑰Xi和代理公鑰Y≠i,并公布Yi。
4)Rootkey用戶計(jì)算出代理密鑰更新初始值β0。當(dāng)進(jìn)入L時(shí)段,利用第L-1時(shí)段的βL-1計(jì)算βL。隨后將(βL,m,T)發(fā)送給每個(gè)代理簽名人,并立刻刪除上時(shí)段代理密鑰更新信息。代理簽名人在驗(yàn)證信息有效性后,獲得代理簽名密鑰(βL,Xi),將(βL,Xi)寫入U(xiǎn)SBkey中。
每個(gè)代理簽名人使用代理簽名密鑰產(chǎn)生消息m的部分簽名gi。如果每個(gè)gi均驗(yàn)證通過,則合并部分簽名,產(chǎn)生對消息m的門限代理簽名(m,mw,U,y,k,g,L,T)。
驗(yàn)證人首先向代理簽名人Pi索要(PIDi,xiQi),并驗(yàn)證各代理簽名人身份,隨后通過驗(yàn)證式(32)是否成立,如果成立,則簽名合法;否則,簽名無效。
方案中的密鑰均由密碼卡的安全芯片生成,經(jīng)加密后導(dǎo)入U(xiǎn)SBkey,有效防止了人為的泄漏,有效保障了密鑰的安全。另外,由于密碼卡中的敏感信息斷電即消失,可以有效杜絕密鑰被竊取。Rootkey持有者將簽名的權(quán)限分擔(dān)給多名管理員,只有不少于t名管理員同時(shí)簽名才能生成有效的代理簽名。由于代理密鑰更新算法的應(yīng)用,使方案具有了前向安全性與后向安全性的特性,從而保障了簽名的有效性。由于方案不需要可信中心支持,降低了系統(tǒng)的實(shí)現(xiàn)代價(jià)和復(fù)雜度。
提出了一種前向安全的門限代理簽名方案。具有不需要可信中心支持,前向安全性、后向安全性、門限性的特性,并在一定程度上有效防止了合謀攻擊。通過對方案進(jìn)行正確性和安全性分析,驗(yàn)證了方案的可實(shí)用性。給出了本方案在PCI-E密碼卡方面的應(yīng)用實(shí)例,說明具有良好的應(yīng)用前景。
[1] Mambo M,Usuda K,Okamoto E.Proxy signatures for delegating signing operation[C]∥Proceedings of the 3rd ACM Conference on Computer and Communications Security,New York:ACM,1996:48-57.
[2] Zhang K.Threshold proxy signature schemes[C]∥Information Security Workshop,Japan,1997:91-197.
[3] 石 光.網(wǎng)絡(luò)安全技術(shù)綜述[J].傳感器與微系統(tǒng),2007,26(9):1-3.
[4] Hsu C,Wu T.New nonrepudiable threshold proxy signature scheme with known signers[J].Journal of Systems and Software,2004,73(3):507-514.
[5] Hu J H,Zhang J Z.Cryptanalysis and improvement of a threshold proxy signature scheme[J].Computer Standards & Interfaces,2009,31(1):169-173.
[6] 張學(xué)軍,張 岳.基于身份前向安全的代理簽名方案[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(19):66-68.
[7] Sun Y,Xu C,Yu Y,et al.Improvement of a proxy multisignature scheme without random oracles[J].Computer Communications,2011,34(3):257-263.
[8] 于義科,鄭雪峰.標(biāo)準(zhǔn)模型下基于身份的高效動(dòng)態(tài)門限代理簽名方案[J].通信學(xué)報(bào),2011,32(8):55-63.
[9] 黃梅娟.基于RSA密碼體制的門限代理簽名方案[J].計(jì)算機(jī)工程,2012,38(4):105-107.
[10] 張建中,薛榮紅.基于身份的門限代理簽名方案[J].計(jì)算機(jī)工程,2011,37(7):171-173.
[11] 高歡歡,張建中.一種基于身份的門限代理簽名方案[J].計(jì)算機(jī)工程,2012,38(1):132-134.
[12] 田志剛,鮑皖蘇.基于身份的門限代理簽名方案[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(9):117-119.
[13] Liu J,Huang S.Identity-based threshold proxy signature from bilinear pairings[J].Informatica,Inst Math & Science,2010,21(1):41-56.
[14] 吳開興,張榮華.身份密碼在WSNs安全定位中的應(yīng)用[J].傳感器與微系統(tǒng),2012,31(7):143-145.
[15] 張永政,張 申,韓培培,等.基于無線傳感器網(wǎng)絡(luò)的礦震監(jiān)測系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2009,28(1):80-82.