袁芳芳
(太原學(xué)院)
現(xiàn)實(shí)生活中的許多事情都需要當(dāng)事人在文件上用印章、手寫簽名或者指紋來(lái)證明作者的身份或表明至少同意文件的內(nèi)容.在電子化的信息世界里,信息在傳輸?shù)倪^(guò)程中存在被偽造、抵賴和篡改的風(fēng)險(xiǎn),因此學(xué)者們由公鑰密碼提出了數(shù)字簽名的概念.由于數(shù)字簽名可以很好地解決數(shù)據(jù)傳輸過(guò)程中的安全隱私問(wèn)題,因此它在網(wǎng)絡(luò)信息安全中有著非常重要的應(yīng)用,也是信息安全的核心技術(shù)之一.
基于身份的數(shù)字簽名是由Shamir在1984年提出的.在一個(gè)基于身份的簽名系統(tǒng)中,用戶的私鑰由一個(gè)可以讓用戶本人信任的第三方(也就是一般被稱為私鑰生成器的PKG)計(jì)算得到.用用戶的標(biāo)識(shí),如用戶的姓名、用戶的IP地址或者他的電子郵件名稱等來(lái)表示公鑰.
為了解決數(shù)字簽名中的簽名權(quán)利的委托問(wèn)題,Mambo等人在1996年首次提出了代理簽名的概念.它是在原始簽名人由于種種原因無(wú)法進(jìn)行簽名時(shí),把自己的簽名權(quán)利委托給一個(gè)或者多個(gè)可以依靠能夠信任的代理簽名人,然后由這個(gè)可以讓原始的簽名人完全信任的代理簽名人完成簽名.由于代理簽名在很多的方面都有著很廣泛的應(yīng)用,因此在它的概念提出后,國(guó)內(nèi)外的很多學(xué)者就對(duì)其展開(kāi)了很深入和透徹的研究和討論,并提出了很多的代替原始簽名者簽名的方案.為滿足不同的特殊的需要,很多學(xué)者還提出了一些其他的形式的代理簽名方案,他們使用代理簽名和其他形式的簽名方案相結(jié)合的方式,例如代理盲簽名方案,代理多重簽名方案[1]等.代理多重簽名是指由代理簽名人代表多個(gè)原始簽名者行使簽名,它是代理簽名的一種擴(kuò)展形式.
1983年Chanm提出了盲簽名的概念,這類簽名可以用來(lái)在電子投票、電子現(xiàn)金等應(yīng)用中為用戶提供匿名性.1994年Nyberg和RuePpel提出了一種有恢復(fù)消息的簽名方案,這種方案能夠直接從用戶簽名中恢復(fù)出來(lái).
目前,基于身份的具有消息恢復(fù)的盲簽名[2]和指定驗(yàn)證者簽名代理多重盲簽名方案[3]已經(jīng)被提出.但是,目前未見(jiàn)有基于身份的具有指定驗(yàn)證者和消息恢復(fù)的代理多重盲簽名方案的構(gòu)造.
給出一種具備了身份的具有原始人指定的驗(yàn)證者和消息恢復(fù)的代理多重盲簽名方案的構(gòu)造及方案的正確性和安全性分析.分析表明,新的方案能滿足代理多重盲簽名方案要求的所有性質(zhì),并且新方案還具有指定驗(yàn)證者和消息恢復(fù)的功能.
設(shè)G1是一個(gè)由p產(chǎn)生的循環(huán)加法群,G2是一個(gè)循環(huán)乘法群,G1、G2的階均為素?cái)?shù)q.設(shè)e:G1× G2→G2為一個(gè)雙線性映射.假定在G1,G2上的離散對(duì)數(shù)問(wèn)題(DLP問(wèn)題)都是困難的,則雙線性映射滿足以下性質(zhì).
(1)非退化性:存在P,Q∈G1使得e(P,Q)≠1.
(2)可計(jì)算性:對(duì)于P,Q∈G1存在一個(gè)高效的算法計(jì)算e(P,Q).
(3)雙線性:對(duì)任意的對(duì)所有的P,Q∈G1和所有的a,b∈Zq都有,e(aP,bQ)=e(P,Q)ab.
(1)計(jì)算Diffie-Hellman問(wèn)題(CDHP):對(duì)a,b∈Zq,給定(P,aP,bP),計(jì)算abP.
(2)離散對(duì)數(shù)問(wèn)題(DLP):給定P,Q∈G1,求n∈Zq,使得P=nQ.
(3)雙線性對(duì)求逆問(wèn)題:已知a=e(P,Q),給定P∈G1,求Q∈G1.
定義1 一個(gè)由原始人指定的驗(yàn)證者消息恢復(fù)的代理多重盲簽名方案由初始化、密鑰的生成、簽名的生成、驗(yàn)證算法的組成.
初始化算法:這個(gè)算法的輸入是一個(gè)安全的參數(shù),算法的輸出是系統(tǒng)的主密鑰和公共參數(shù).
秘鑰生成算法:輸入為用戶的身份,輸出為用戶的公私鑰對(duì).
簽名生成算法:該算法分為兩個(gè)階段.第一階段該算法的輸入是制定的代理簽名人的私鑰和將要簽名的消息,輸出為對(duì)消息的代理多重盲簽名,生成的是代理多重盲簽名的過(guò)程.第二個(gè)階段該算法的輸入是指定驗(yàn)證者的私鑰和代理多重盲簽名,輸出為指定驗(yàn)證者代理多重盲簽名過(guò)程,生成指定驗(yàn)證者代理多重盲簽名過(guò)程.
驗(yàn)證算法:輸入為被指定的驗(yàn)證者代理多重盲簽名以及被簽名的消息,在簽名有效時(shí)該算法的輸出為 ture,簽名無(wú)效時(shí)該算法的輸出為false.
如果滿足以下安全性條件,那么這個(gè)指定的驗(yàn)證者的消息恢復(fù)的代理多重盲簽名方案就是安全的.
(1)指定不可否認(rèn)性:原始簽名者一旦指定了驗(yàn)證人員后就不能夠更改和否認(rèn).
(2)盲性:接收者獲得代理人的簽名后,簽名人既不知道是什么消息,也不知道簽名是什么結(jié)果.
(3)限制驗(yàn)證性:簽名的有效性只能夠被原始人指定的驗(yàn)證人才能夠驗(yàn)證.
(4)不可偽造性:只有代理多重簽名者能夠生成有效的代理多重簽名,而其他任何人(包括原始的簽名人)都不能指定為有效的代理多重簽名的人員.
(5)可驗(yàn)證性:由生成的代理多重簽名的驗(yàn)證者能夠確定該簽名是不是經(jīng)過(guò)了原始的簽名人的同意.
(6)身份識(shí)別性:代理多重簽名者的身份能夠從代理多重簽名中確定.
PKG先選擇q、G1、G2、e其含義與1.1節(jié)中相同.然后,選擇P∈G1作為G1的生成元,定義三個(gè)哈希函數(shù)H1:{0,1}*→G1,H2:G2→{0,1}l, H:{0,1}l→,其中l(wèi)是系數(shù)安全參數(shù).然后PGC選擇s∈R,計(jì)算Ppub=sP,則系統(tǒng)的秘鑰為s,公共參數(shù):params={G1,G2,e,q,P,Ppub,H1,H2,H}
設(shè)IDAi表示簽名人Ai(i=1,2,…,m)的身份信息,其相應(yīng)的公鑰 /密鑰對(duì)為 PKAi= H1(IDAi),SKAi=sPKAii=1,2,…,m;代理多重簽名者B的身份表示為IDB,其相應(yīng)的公鑰 /密鑰對(duì)為PKB=H1(IDB),SKAi=sPKB;指定驗(yàn)證者DV的身份表示為IDDV,其相應(yīng)的公鑰 /密鑰對(duì)為PKDV=H1(IDDV),SKDV=sPKDV.私鑰由PKG為每個(gè)成員產(chǎn)生并安全地發(fā)送給Ai(i=1,2,…,m),B,DV.
(1)Ai分別選擇,計(jì)算KA'i= e(P,Ppub)xi.
(2)每個(gè)Ai將KA'i發(fā)送給接收人B,B收到后選擇m∈{0,1}*作為消息,為盲因子,計(jì)算
(3)然后B將hi'分別發(fā)送給Ai,Ai收到hi'后分別計(jì)算:,
Ai將Si'發(fā)送給B.B首先檢驗(yàn)下面m個(gè)等式是否成立:
若等式成立則計(jì)算:
{K,S}為具有消息恢復(fù)的代理多重盲簽名方案.
B進(jìn)行如下運(yùn)算產(chǎn)生一個(gè)指定驗(yàn)證者代理多重盲簽名:
(2)分別計(jì)算 r=e(Ppub,PKDV)k,v= H2(M,r),Sp=t-1KPpub-vS.
(3)最后B以{SP,v,r,M}作為消息的指定驗(yàn)證者的代理多重盲簽名.
在收到簽名{SP,v,r,M}之后,簽名的有效性由指定驗(yàn)證者通過(guò)驗(yàn)證如下等式來(lái)確認(rèn):
定理1 B檢驗(yàn)m個(gè)等式e(Si',P)= e(PKAi,Ppub)h'iH1(P)的合理性.
證明 e(PKAi,Ppub)h'iH1(P)= e(hi'H1(P)SKAi,hi'H1(P)P)=e(Si',P)
定理2 指定驗(yàn)證者驗(yàn)證H2(M,v的合理性.
定理3 該方案是不可偽造的.
證明 (1)由于PKG計(jì)算并保存主密鑰s,而由公鑰Ppub=SP計(jì)算出s相當(dāng)于破解DLP問(wèn)題.
(2)該方案的構(gòu)造基于Hess的基于身份的簽名,而Hess的基于身份的簽名對(duì)偽造攻擊在隨機(jī)預(yù)言機(jī)模型下是安全的,如果敵手沒(méi)有簽名人的密鑰 ,但是敵手可以成功偽造 的有效簽名,則說(shuō)明敵手可以攻破Hess的基于身份的簽名.
所以方案具有不可偽造性.
由于原始簽名人不能否認(rèn)他指定了由哪一位是驗(yàn)證者.所以在驗(yàn)證的過(guò)程中需要用到原始簽名人的公鑰PKAi.
因?yàn)樾枰?yàn)證者的私鑰在驗(yàn)證的過(guò)程中才能繼續(xù),所以只有被原始簽名人指定的驗(yàn)證者才可以確定簽名是不是有效的.指定驗(yàn)證者可以隨機(jī)選取t,k',并計(jì)算:
來(lái)模擬生成一個(gè)滿足驗(yàn)證等式并且與原始簽名者不可區(qū)分的的簽名副本σ(M')=(S',v',w',M',t').
σ(M')=(S',v',w',M',t')滿足:
因此,除了被指定的驗(yàn)證者外,任何其他的人(第三方)都不能驗(yàn)證這個(gè)簽名的有效性.方案是具有限制驗(yàn)證性.
構(gòu)造了一個(gè)具有指定驗(yàn)證者的和消息恢復(fù)的代理者的基于身份的多重盲簽名方案并對(duì)方案的正確性和是否安全進(jìn)行了分析.分析表明,構(gòu)造的方案滿足指定驗(yàn)證者和消息恢復(fù)的代理多重盲簽名方案的安全性條件.同時(shí),改變了現(xiàn)有方案功能單一的缺點(diǎn),具有更廣泛的用途.
[1] 祁明,Harn L.基于離散對(duì)數(shù)的若干新型代理簽名方案[J].電子學(xué)報(bào),2000,28(11):114-115.
[2] 張學(xué)軍.高效的基于身份具有消息恢復(fù)的盲簽名[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(32):19-22.
[3] 王向陽(yáng),趙茂澤.基于身份的指定驗(yàn)證者代理多重簽名方案[J].杭州電子科技大學(xué)學(xué)報(bào),2008,28(6):41-44.