廖小平,鄧小亞,成淑萍
(四川文理學(xué)院 計(jì)算機(jī)學(xué)院,四川 達(dá)州 635000)
簡(jiǎn)單地說(shuō),數(shù)字簽名方案提夠了手寫(xiě)簽名的密碼學(xué)類比,其實(shí)他提夠了更強(qiáng)的安全保障。數(shù)字簽名作為一種強(qiáng)大的工具已被多個(gè)國(guó)家接受為具有法律效力;可用于合同或證明文件的證明,用于對(duì)個(gè)人或公司的認(rèn)證,并可作為復(fù)雜安全協(xié)議的組成部分。數(shù)字簽名同時(shí)能夠用于安全的分發(fā)和傳輸公鑰。
在實(shí)際的應(yīng)用中,除了普通的數(shù)字簽名外,還有些特殊的數(shù)字簽名方案,代理數(shù)字簽名方案就是其中的一種,代理數(shù)字簽名這個(gè)概念是由Mambo、Usada和Okamoto[1]于1996年首次提出的。它的主要思想是當(dāng)原始簽名人因某種原因不能行使簽名權(quán)利時(shí),將簽名權(quán)委派給其他人替自己行使簽名權(quán)。由原始簽名者(部分)授權(quán)代理簽名者,使代理簽名者產(chǎn)生代替原始簽名者的簽名就是代理簽名。
近年來(lái),人們提出了許多新型的代理簽名方案[2],如強(qiáng)代理簽名和弱代理簽名等方案。新型的代理簽名方案出現(xiàn)了新的一些特點(diǎn)[3-5],新型的代理簽名方案不同于以往各類型的代理簽名方案,它的特點(diǎn)是:1)在代理簽名中隱藏代理簽名者身份,驗(yàn)證者無(wú)法從代理簽名中識(shí)別代理者身份,在出現(xiàn)爭(zhēng)議時(shí),驗(yàn)證者可以通過(guò)原始簽名者揭示代理簽名者的身份;2)為了防止代理簽名被偽造,所以新方案要求任何人包括原始簽名者都不可能偽造代理簽名。這種特點(diǎn)的簽名方案在實(shí)際應(yīng)用中得到了廣泛的應(yīng)用。例如原始簽名者希望對(duì)外保密代理簽名者身份,又不能完全信賴代理簽名者,代理簽名者要防止原始簽名者偽造代理簽名對(duì)自己進(jìn)行誣陷。本文提出的新方案滿足這類需求。
定義[6]:設(shè)G是一個(gè)有限階的循環(huán)群,且g是G中的階為q的生成元,使得y=gx成立的一個(gè)最小非負(fù)整數(shù)x(0≤x≤q)成為元素y∈G的離散對(duì)數(shù),記為x=logyg。
定義[7]:給定一個(gè)大素?cái)?shù)p,p-1含另一個(gè)大素?cái)?shù)因子q,則域Zp的乘法群Z*p是一個(gè)p-1階循環(huán)群,設(shè)g是Z*p的一個(gè)生成元,1 定義:對(duì)于一個(gè)有限循環(huán)群Z*p,g是Z*p的生成元,給定元素ga和gb,計(jì)算出gabmod p,其中p為素?cái)?shù)。 定義:給定一個(gè)有限循環(huán)群G,G的生成元為g,以及群元素 ga,gb,gc,判斷 gc=gabmod p 是否成立。 任意選擇兩個(gè)大素?cái)?shù)p和q且滿足條件q|p-1,g∈Z*p并且滿足 gq=1mod p(g≠1);定義 h(·)為安全的哈希函數(shù);定義mw是授權(quán)書(shū),主要用來(lái)描述原始簽名者A對(duì)代理簽名者B代理權(quán)限的約定,主要包括A的標(biāo)識(shí),B的代理期限、簽名消息范圍等內(nèi)容;A為原始簽名者,B為代理簽名者;V為驗(yàn)證者;原始簽名者A的私鑰為xA,公鑰為mod p并將yA公開(kāi);代理簽名者B的私鑰為xB,公鑰為mod p并將yB公開(kāi);xp為原始簽名者A和代理簽名者B共同生成的代理私為對(duì)應(yīng)的代理公鑰;代理簽名者B的標(biāo)識(shí)為IDB;簽名者的標(biāo)識(shí)為 IDP;需要簽名的消息為 m,σ=Sig(m,x)是簽名者用私鑰x對(duì)消息m的一個(gè)離散對(duì)數(shù)型數(shù)字簽名;Ver(y,σ,m)與簽名算法相對(duì)應(yīng)的驗(yàn)證算法;y為簽名者的公鑰;返回值為真或者為假。 1)原始簽名者A隨機(jī)選擇數(shù)kA∈,計(jì)算rA=gkAmod p,A把(mw,rA)通過(guò)安全信道發(fā)送給B。B如果認(rèn)為授權(quán)是合法的,則生成自己的代理私鑰sB,r1和s1。過(guò)程如下: 然后 B 把生成的密鑰值及身份標(biāo)識(shí)(rB,IDB,r1,s1)通過(guò)安全信道發(fā)送給A。A驗(yàn)證等式是否成立,若成立,則 A 秘密保存(rB,yB,IDB),以備用來(lái)揭示代理者的身份,最后A計(jì)算YP=yBrBrBmod p,并將其寫(xiě)入mw中。2)原始簽名者A利用 1)中得到的kA和rA,計(jì)算 然后 A 把(rA,sA,mw)通過(guò)安全信道發(fā)送給 B,B 驗(yàn)證等式是否成立,若成立,B秘密保存(rA,sA,mw,sB)。 代理簽名人B首先驗(yàn)證消息m是否符合授權(quán)證書(shū)mw的約定,若m滿足要求,則B利用代理私鑰xP產(chǎn)生代理簽名σP=Sig(m,xP),得到代理簽名值(m,σP,mw,rA,yA)。 1)驗(yàn)證者 V 得到代理簽名值(m,σP,mw,rA,yA),首先驗(yàn)證消息m是否符合mw的約定,若m滿足要求則進(jìn)入下一步,否則認(rèn)為代理簽名σP無(wú)效。 2)驗(yàn)證者 V 利用代理簽名(m,σP,mw,rA,yA)計(jì)算: 其中 yP是從 mw中取得, 然后檢驗(yàn)等式 Ver (yP,σP,m)=true是否成立,若成立,則認(rèn)為代理簽名有效,否則無(wú)效。 1)驗(yàn)證者V向原始簽名者A提供代理簽名(m,σP,mw,rA,yA),A使用代理簽名驗(yàn)證算法驗(yàn)證代理簽名的有效性,如果有效,則進(jìn)入下一步。 2)原始簽名者A從mw中取出YP,然后依次取出在代理密鑰對(duì)生成階段保存的(rB,yB,IDB),判斷等式 YP=yBrBrBmod p是否成立,如果存在(rB,yB,IDP)滿足這個(gè)等式,則 IDP是實(shí)現(xiàn)代理簽名(m,σP,mw,rA,yA)的代理簽名者。 定理1代理簽名者B使用代理私鑰xP,代表原始簽名者A 對(duì)消息 m 簽名,驗(yàn)證者 V 利用代理簽名(m,σP,mw,rA,yA)計(jì)算代理公鑰: 然后使用yP驗(yàn)證相應(yīng)的代理簽名,那么yP=gxPmod p 證明 由于 即:yP=gxPmod p成立 證畢 由于代理簽名(m,σP,mw,rA,yA)包含 yA,表明這是原始簽名者A承認(rèn)的代理簽名。 3.2.1 代理簽名的不可偽造性 1)根據(jù)yP,偽造者無(wú)法偽造xP。 這是因?yàn)閙od p,而(rA,sA)是 A 對(duì) mw的簽名,yP包含在 mw中,rA,sA,mw,YP都是不可更改和偽造的,所以偽造者不可能通過(guò)計(jì)算yP偽造xP,又已知yP求xP是離散對(duì)數(shù)問(wèn)題。 2)根據(jù),xP=sA+sBmod q,如果偽造者想偽造代理簽名者B的代理簽名,偽造者必須同時(shí)具備以下兩個(gè)條件: 第一個(gè)條件:偽造sA,因?yàn)?/p> 而A的私鑰xA和kA對(duì)偽造者都是無(wú)法得到的,所以偽造者不可能偽造sA。又由于原始簽名者A和代理簽名者B之間的交互都是經(jīng)過(guò)安全通道完成的,所以偽造者不可能冒充B或直接竊取sA。 第二個(gè)條件:偽造sB,由于 而B(niǎo)的私鑰xB,kB和rB對(duì)偽造者都是無(wú)法得到的,所以偽造者也不可能偽造sB。 所以,根據(jù)xP=sA+sBmod q,偽造者不可能得到xP。 3)原始簽名者A也不可能偽造代理簽名者B的代理簽名,雖然 A 可得到 sA,卻無(wú)法得到 sB,這是因?yàn)?sB=(xB+kBrB)yAmod q,B的私鑰 xB和kB(雖 A可知rB,但已知 rB推出 kB是離散對(duì)數(shù)問(wèn)題)對(duì)于A是無(wú)法獲得的,所以A也是不可能得到xP。 3.2.2 公鑰的不可偽造性 總之,除了代理簽名者B,任何人都無(wú)法偽造代理簽名。 防止代理權(quán)限濫用包含兩層含義: 1)防止代理權(quán)的轉(zhuǎn)移:原始簽名者A對(duì)代理簽名者B的代理授權(quán)信息是 (mw,rA,sA),(rA,sA)是 A 對(duì) m 的簽名,所以(rA,sA,mw)都是不可更改的,且 YP包含在 mw中,代理公鑰: 即一旦原始簽名者A指定代理簽名者B,yP就已經(jīng)確定,除非 B 把 xP給他的代理者,否則 B 不能利用(rA,sA,mw)再次代理授權(quán)。 2)防止代理簽名者越權(quán):代理簽名驗(yàn)證算法的第1步就是驗(yàn)證消息m是否符合代理授權(quán)書(shū)mw的約定,如果不符合,那么簽名無(wú)效,所以A可以充分利用代理授權(quán)書(shū)mw有效約束B(niǎo)代理權(quán)限范圍。 驗(yàn)證者 V 利用代理簽名(m,σP,mw,rA,yA)計(jì)算代理公鑰: 驗(yàn)證這個(gè)代理簽名,(m,σP,mw,rA,yA)沒(méi)有包含代理簽名者身份,雖然已知,但rB對(duì)于V是無(wú)法得到的,已知YP是無(wú)法推出yB的,由此可見(jiàn),驗(yàn)證者V能夠驗(yàn)證代理簽名的有效性,但并不知代理簽名者的身份。 在必要時(shí),在原始簽名者A的幫助下,驗(yàn)證者V利用揭示代理者身份的算法,能夠揭示代理簽名者的身份。 首先,從代理簽名生成方式可以看到,有效代理密鑰生成包括了代理簽名人B的身份信息,因此,他不能否認(rèn)自己對(duì)消息m的代理簽名。其次,從不可偽造性證明也可以看到,原始簽名人及任何第三方不能偽造代理簽名,所以代理簽名人不能否認(rèn)由原始簽名人揭示的代理簽名是由自己產(chǎn)生的。因此,該方案能滿足不可否認(rèn)性。 現(xiàn)在滿足匿名性的代理數(shù)字簽名方案很多,但大部分方案還存在一定的安全缺陷,主要原因在于要滿足匿名性同時(shí)還必須公開(kāi)足夠的數(shù)據(jù)以提供驗(yàn)證者驗(yàn)證,本文提出的安全匿名代理數(shù)字簽名方案在滿足匿名性的同時(shí)還滿足了其他很多的要求,比如不可偽造,不可否認(rèn)等,所以該方案具有更高的安全性。 [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 Dehi,India,1996:48-57. [2]張建中,薛榮紅,彭麗慧.一種基于身份的代理環(huán)簽名方案[J].計(jì)算機(jī)工程,2011,37(17):126-148.ZHANG Jian-zhong,XUE Rong-hong,PENG Li-hui.Id-based proxy ring signature scheme[J].Computer Engineering,2011,37(17):126-148. [3]谷利澤,張勝,楊義先.一種新型的代理簽名方案[J].電子與信息學(xué)報(bào),2005,27(9):58-62.GU Li-ze,ZHANG Sheng,YANG Yi-xian.A new proxy signature scheme[J].Journal of Electronics&Information Technology,2005,27(9):58-62. [4]魯榮波,何大可,王常吉,等.對(duì)一種新型代理簽名方案的分析與改進(jìn)[J].電子與信息學(xué)報(bào),2007,29(10):116-119.LU Rong-bo,HE Da-ke,WNANG Chang-ji,et al.Cryptanalysis and improvement of a new proxy signature scheme[J].Journal of Electronics&Information Technology,2007,29(10):116-119. [5]鮑皖蘇,隗云,鐘普查.原始簽名人匿名的代理環(huán)簽名研究[J].電子與信息學(xué)報(bào),2009,31(10):2392-2396.BAO Wan-su,WEI Yun,ZHONG Pu-cha.Research on proxy ring signature with anonymity of the original signer[J].Journal of Electronics&Information Technology,2009,31(10):2392-2396. [6]柯召,孫琦.數(shù)論講義[M].北京:高等教育出版社,2001. [7]Wang X Y,Yu H B,et al.Efficient collision search attacks on SHA-0 [C]//In Proc.the 25th Int.Cryptology Conf.(CRYPTO),2005:1-16 [8]Douglas R.Stinson.密碼學(xué)原理與實(shí)踐[M].3版.馮登國(guó),譯.北京:電子工業(yè)出版社,2009.1.3 計(jì)算 Diffie-Hellman問(wèn)題(CDHP)[8]
1.4 判定 Diffie-Hellman問(wèn)題(DDHP)[8]
2 新方案的實(shí)現(xiàn)
2.1 系統(tǒng)參數(shù)初始化
2.2 代理密鑰對(duì)生成算法
2.3 代理簽名算法
2.4 代理簽名驗(yàn)證算法
2.5 揭示代理者身份算法
3 方案的安全性分析
3.1 可驗(yàn)證性
3.2 不可偽造性
3.3 防止代理權(quán)濫用
3.4 匿名性和身份確認(rèn)
3.5 不可否認(rèn)性
4 結(jié)束語(yǔ)