国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種改進(jìn)的基于SM2的代理簽名方案

2019-04-12 06:38宋靖文張大偉孟吳同劉曉東
關(guān)鍵詞:公鑰密鑰橢圓

宋靖文,張大偉,孟吳同,高 凡,劉曉東

(1.北京交通大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院 北京 100044;2.山東大學(xué) 網(wǎng)絡(luò)信息安全研究所 山東 濟(jì)南 250000)

0 引言

1996年,Mambo等[1-2]針對(duì)現(xiàn)實(shí)生活中數(shù)字簽名權(quán)力的委托問(wèn)題提出了代理簽名的概念.代理簽名可以看作是數(shù)字簽名的擴(kuò)展形式.RSA算法[3]、Elgamal算法[4]、Schnorr算法[5]是常用的可用于數(shù)字簽名的算法,這些算法主要依賴于離散對(duì)數(shù)問(wèn)題或大數(shù)因子分解問(wèn)題.1985年,Koblitz和Miller[6-7]分別提出將橢圓曲線應(yīng)用到公鑰密碼系統(tǒng).橢圓曲線公鑰密碼體制依賴的橢圓曲線離散對(duì)數(shù)問(wèn)題相較于前兩類難題,更加難以求解.2003年白國(guó)強(qiáng)等[8]設(shè)計(jì)出基于橢圓曲線的代理數(shù)字簽名;2005年張寧等[9]指出文獻(xiàn)[8]中原始簽名者也能生成有效的代理簽名,對(duì)此進(jìn)行了改進(jìn);2007年高勝[10]對(duì)文獻(xiàn)[9]進(jìn)一步改進(jìn),提高了方案效率.此外,其他基于橢圓曲線的代理簽名的研究也在進(jìn)行.2004年紀(jì)家慧等[11]改進(jìn)了ECDSA,并提出新的代理簽名體制;2007年左為平等[12]指出文獻(xiàn)[11]存在原始簽名者能偽造代理簽名者的普通簽名的情況,并提出避免此攻擊的方案;2010年胡蘭蘭等[13]指出文獻(xiàn)[12]中原始簽名者仍可偽造代理簽名,并進(jìn)行改進(jìn);2017年郭青霄等[14]基于SM2算法[15]提出一種新的代理簽名方案.一般來(lái)說(shuō),不采用授權(quán)書(shū)的代理簽名方案存在一些固有的局限性[16].文獻(xiàn)[14]中的方案也是如此,其安全性要由證書(shū)來(lái)保證,如果沒(méi)有公開(kāi)證書(shū)將代理簽名者的身份和授權(quán)信息綁定,則方案不滿足可識(shí)別性和不可否認(rèn)性.

本文借鑒文獻(xiàn)[17]中的授權(quán)信息的構(gòu)造方法,在文獻(xiàn)[14]方案的基礎(chǔ)上加以改進(jìn),改進(jìn)的方案將原方案中證書(shū)的信息加入到授權(quán)信息生成過(guò)程中,使得驗(yàn)證代理簽名的同時(shí)也是在驗(yàn)證證書(shū)中的內(nèi)容,從而無(wú)須額外生成和驗(yàn)證證書(shū),提高效率的同時(shí)保證了代理簽名的安全性.

1 代理簽名

代理簽名是指在代理簽名方案中,被指定的代理簽名者可以代表原始簽名者生成有效的簽名.

文獻(xiàn)[1-2]指出代理簽名應(yīng)滿足可驗(yàn)證性、可區(qū)分性、不可偽造性、可識(shí)別性和不可否認(rèn)性等性質(zhì).之后,文獻(xiàn)[18-19]在一定程度上加強(qiáng)了不可偽造性、可識(shí)別性、不可否認(rèn)性的定義.

可以認(rèn)為代理簽名分為4大類:完全代理簽名、部分代理簽名、具有證書(shū)的代理簽名[1-2]以及具有證書(shū)的部分代理簽名[17].本文僅對(duì)后3類進(jìn)行介紹.

部分代理簽名中的代理簽名密鑰是由原始簽名者的私鑰計(jì)算生成的.代理簽名者使用代理簽名密鑰進(jìn)行簽名,驗(yàn)證者仍使用原始簽名者公鑰進(jìn)行驗(yàn)證,以確保簽名消息得到了原始簽名者的認(rèn)可.

具有證書(shū)的代理簽名方案需要借助證書(shū)來(lái)實(shí)現(xiàn)簽名權(quán)力的委托.原始簽名者需要使用私鑰對(duì)同意授權(quán)某人的文件進(jìn)行簽名,生成授權(quán)證書(shū).之后,代理簽名者使用自己的私鑰或原始簽名者為其生成的代理簽名密鑰進(jìn)行簽名.驗(yàn)證者不僅要對(duì)代理簽名進(jìn)行驗(yàn)證,還要對(duì)證書(shū)進(jìn)行驗(yàn)證.

具有證書(shū)的部分代理簽名是部分代理簽名和具有證書(shū)的代理簽名的結(jié)合.原始簽名者首先對(duì)授權(quán)文件簽名,但不同于具有證書(shū)的方案,代理簽名者會(huì)結(jié)合授權(quán)文件的簽名和私有信息計(jì)算代理簽名密鑰,利用此密鑰對(duì)消息簽名.這樣,代理密鑰還是由原始簽名者私鑰計(jì)算出來(lái)的,驗(yàn)證者仍使用原始簽名者公鑰驗(yàn)證代理簽名,但無(wú)需再驗(yàn)證授權(quán)文件的簽名,既保證了安全性,又提高了效率.

文獻(xiàn)[14]的方案雖然是部分代理簽名,但可識(shí)別性和不可否認(rèn)性仍需證書(shū)的保證,而證書(shū)的生成和驗(yàn)證會(huì)影響方案的效率,因此,本文將設(shè)計(jì)一種更加高效的具有證書(shū)的部分代理簽名方案.

2 文獻(xiàn)[14]的方案

2.1 初始化參數(shù)

選取SM2公鑰密碼算法[15]中推薦的橢圓曲線參數(shù),G是橢圓曲線中階為n的基點(diǎn).假設(shè)Alice是原始簽名者,私鑰為dA∈[1,n-2],公鑰為PA=dAG,私鑰保密,公鑰公開(kāi);假設(shè)Bob是代理簽名者,代表原始簽名者Alice 簽名;驗(yàn)證者Carol 對(duì)生成的代理簽名進(jìn)行驗(yàn)證.

2.2 代理授權(quán)

首先,Bob進(jìn)行如下操作.

B1:用隨機(jī)數(shù)生成器生成隨機(jī)數(shù)kb∈[1,n-1],計(jì)算橢圓曲線上的點(diǎn)Gb=kbG;

B2:Bob將Gb發(fā)送給Alice.

Alice收到來(lái)自Bob的信息后,進(jìn)行下面的步驟:

A1:用隨機(jī)數(shù)生成器生成隨機(jī)數(shù)ka∈[1,n-1],計(jì)算橢圓曲線上的點(diǎn)Ga=kaG;

A2:計(jì)算橢圓曲線上的另一個(gè)點(diǎn)Gab=(x1,y1)=kaGb;

A3:計(jì)算rab=x1modn,若rab=0則返回步驟A1;

A5:Alice將(Ga,Gab,sA)作為授權(quán)信息發(fā)送給Bob.

其中:Ga和Gab需要公開(kāi)并在證書(shū)中與Bob的身份綁定,而sA需秘密發(fā)送給Bob.

2.3 授權(quán)驗(yàn)證及代理密鑰的生成

Bob收到授權(quán)信息后,對(duì)授權(quán)信息進(jìn)行驗(yàn)證,驗(yàn)證過(guò)程如下.

2.4 代理簽名的生成

當(dāng)Bob代替Alice對(duì)消息M進(jìn)行簽名時(shí),Bob使用的簽名密鑰是dP,簽名過(guò)程如下.

B8:用隨機(jī)數(shù)生成器生成隨機(jī)數(shù)k∈[1,n-1],計(jì)算(x3,y3)=kGab;

B9:令r=(e+x3)modn,若r=0或r+k=n則返回步驟B8;

B10:計(jì)算代理簽名s=((1+dP)-1(k-rdP))modn,若s=0則返回步驟B8;

B11:此時(shí)消息M的代理簽名是(Ga,Gab,r,s).

2.5 代理簽名的驗(yàn)證

為了驗(yàn)證收到的消息M′及其代理簽名(Ga,Gab,r′,s′),驗(yàn)證者Carol進(jìn)行以下驗(yàn)證步驟.

C1:檢驗(yàn)r′∈[1,n-1]和s′∈[1,n-1]是否成立,若不成立則驗(yàn)證不通過(guò);

C3:計(jì)算rab=x1modn;

C4:計(jì)算t=(r′+s′)modn,若t=0,則驗(yàn)證不通過(guò);

2.6 方案存在的不足

文獻(xiàn)[14]方案的某些性質(zhì)依賴授權(quán)證書(shū)的存在.若沒(méi)有證書(shū),則驗(yàn)證者不能識(shí)別出代理簽名生成者的身份;若一個(gè)原始簽名者授權(quán)了多個(gè)代理簽名者,則代理簽名者可以對(duì)自己生成的有效代理簽名進(jìn)行否認(rèn),方案不滿足不可否認(rèn)性.此外,代理簽名者可以利用已知信息偽造其他授權(quán)信息和代理簽名密鑰,進(jìn)而偽造代理簽名.雖然偽造的代理簽名仍是由代理簽名者生成的,看似對(duì)方案的安全性威脅不大,但若代理簽名者為逃避責(zé)任每次都用偽造的代理簽名密鑰進(jìn)行簽名,而驗(yàn)證者在不知情的情況下接受了偽造的代理簽名,那么當(dāng)需要確定代理簽名者身份時(shí),即使原始簽名者記錄了授權(quán)信息與代理簽名者身份的對(duì)應(yīng)關(guān)系,也無(wú)法找出代理簽名的真正生成者.

3 改進(jìn)的方案

3.1 初始化參數(shù)

mW:授權(quán)證書(shū)信息,可以包含原始簽名者及代理簽名者的身份信息、代理簽名者的權(quán)限等.

其他參數(shù)與文獻(xiàn)[14]相同.

3.2 代理授權(quán)

此階段的步驟B1~B2及步驟A1~A3與2.2節(jié)相同,其他步驟為

A4: 計(jì)算e0=H(mW‖rab);

A6: Alice將(mW,Ga,Gab,sA)作為代理簽名的授權(quán)信息發(fā)送給Bob.

其中:mW、Ga和Gab需要對(duì)外公開(kāi),而sA需秘密發(fā)送給Bob.

3.3 授權(quán)驗(yàn)證及代理密鑰的生成

Bob驗(yàn)證授權(quán)信息.

B4: 計(jì)算e0=H(mW‖rab);

3.4 代理簽名的生成

Bob使用密鑰dP對(duì)消息M進(jìn)行簽名,簽名過(guò)程同文獻(xiàn)[14],代理簽名的形式變?yōu)?mW,Ga,Gab,r,s).

3.5 代理簽名的驗(yàn)證

為了驗(yàn)證收到的消息M′及其數(shù)字簽名(mW,Ga,Gab,r′,s′),驗(yàn)證者Carol應(yīng)執(zhí)行以下操作.

C1: 檢驗(yàn)r′∈[1,n-1]和s′∈[1,n-1]是否成立,若不成立則驗(yàn)證不通過(guò);

C3: 計(jì)算rab=x1modn;

C5: 計(jì)算t=(r′+s′)modn,若t=0,則驗(yàn)證不通過(guò);

3.6 正確性驗(yàn)證

3.6.2代理簽名驗(yàn)證的正確性 當(dāng)Carol收到正確的簽名(mW,Ga,Gab,r′,s′)時(shí),應(yīng)有R=r′.

即k=(s′+dPt)modn,得

3.7 安全性分析

改進(jìn)方案的安全性仍然是基于哈希函數(shù)的單向性和橢圓曲線離散對(duì)數(shù)問(wèn)題的困難性.

3.7.1不可偽造性 1) 原始簽名者的普通簽名的不可偽造性

2) 授權(quán)信息的不可偽造性

i) 未被授權(quán)的攻擊者偽造授權(quán)信息.偽造有效的授權(quán)信息等價(jià)于求(mW,Ga,Gab,sA),使得sAGa=rabPA+e0G成立,e0=H(mW‖rab).e0是哈希函數(shù)值,哈希函數(shù)具有單向性,因此,攻擊者必須先確定mW和rab的值.rab=x1modn,x1是Gab的橫坐標(biāo),故也要確定Gab的值,由此,rabPA+e0G的值確定.

3) 代理簽名的不可偽造性

如果通過(guò)構(gòu)造k來(lái)確定(r,s)的值,因?yàn)?x3,y3)=kGab,r=(e+x3)modn,根據(jù)k、e和Gab的值可以進(jìn)一步計(jì)算出r.由kGab=sGab+trabPA+te0G和t=(r+s)modn,可以得到kGab-r(rabPA+e0G)=s(Gab+rabPA+e0G),此時(shí)求解s意味著求解橢圓曲線離散對(duì)數(shù)問(wèn)題.

如果通過(guò)構(gòu)造(r,s)來(lái)確定k的值,無(wú)論是根據(jù)kGab=sGab+trabPA+te0G對(duì)k進(jìn)行求解,還是根據(jù)r=(e+x3)modn和(x3,y3)=kGab進(jìn)行求解,都是求解橢圓曲線離散對(duì)數(shù)問(wèn)題.

3.7.2可區(qū)分性 1) 代理簽名(mW,Ga,Gab,r,s)的形式與普通簽名(r,s)的形式不同.2) 即使對(duì)同一代理簽名者進(jìn)行多次授權(quán),也可以對(duì)不同授權(quán)情況下生成的代理簽名加以區(qū)分.這是因?yàn)?,原始簽名者和代理簽名者在每次授?quán)過(guò)程中,生成的授權(quán)信息不同.3)mW中有代理簽名者的身份信息,所以不同代理簽名者生成的代理簽名之間也可以區(qū)分.

3.7.3可識(shí)別性和不可否認(rèn)性 有效代理簽名(mW,Ga,Gab,r,s)中的mW不能被包括代理簽名者在內(nèi)的任何人篡改.因此,一旦有效的代理簽名被生成,就可以通過(guò)mW識(shí)別出代理簽名者的身份,使得代理簽名者無(wú)法進(jìn)行否認(rèn).

4 方案實(shí)現(xiàn)

實(shí)驗(yàn)主機(jī)配置為1.80 GHz、i5-3337U CPU、4 GB RAM,系統(tǒng)為Ubuntu16.10,編程語(yǔ)言為Golang1.7.6.

4.1 初始化參數(shù)

4.1.1橢圓曲線參數(shù) 采用SM2橢圓曲線公鑰密碼算法標(biāo)準(zhǔn)[15]推薦的素?cái)?shù)域256位橢圓曲線,即y2=x3+ax+b.對(duì)于曲線參數(shù),同樣采用SM2橢圓曲線公鑰密碼算法標(biāo)準(zhǔn)[15]中的推薦,如表1所示.

表1 SM2公鑰密碼算法橢圓曲線參數(shù)[15]Tab.1 Elliptic curve parameters of SM2 public key cryptography algorithms[15]

4.1.2原始簽名者公私鑰 原始簽名者的公私鑰如圖1所示.

圖1 原始簽名者的公私鑰信息Fig.1 The public key and private key of the original signer

4.2 方案各階段實(shí)驗(yàn)結(jié)果

代理授權(quán)的生成、代理授權(quán)的驗(yàn)證及代理密鑰的生成、代理簽名的生成和代理簽名的驗(yàn)證的實(shí)驗(yàn)結(jié)果分別如圖2~5所示.

4.3 方案復(fù)雜性

文獻(xiàn)[14]中的方案除授權(quán)信息的生成外還有授權(quán)證書(shū)的生成.此外,驗(yàn)證者驗(yàn)證代理簽名時(shí)需要進(jìn)行兩次驗(yàn)證:一次是證書(shū)上簽名的驗(yàn)證,另一次是代理簽名的驗(yàn)證.假設(shè)文獻(xiàn)[14]中證書(shū)上的簽名為標(biāo)準(zhǔn)SM2數(shù)字簽名,表2是對(duì)標(biāo)準(zhǔn)SM2數(shù)字簽名、文獻(xiàn)[14]中的代理簽名方案與改進(jìn)的SM2代理簽名方案的復(fù)雜性比較,由于Hash運(yùn)算速度很快,橢圓曲線上的加法運(yùn)算也很高效[20].故本文主要對(duì)點(diǎn)乘次數(shù)TM、表示模乘次數(shù)TMM、表示模逆次數(shù)TINV進(jìn)行比較.實(shí)驗(yàn)對(duì)3種方案的簽名和驗(yàn)證時(shí)間進(jìn)行了多次測(cè)試,計(jì)算得到的平均時(shí)間如表3所示.

圖2 代理授權(quán)生成階段結(jié)果Fig.2 The results of proxy generation

圖3 代理授權(quán)驗(yàn)證及代理密鑰生成階段結(jié)果Fig.3 The results of proxy verification and proxy key generation

圖4 代理簽名生成階段結(jié)果Fig.4 The results of proxy signature generation

圖5 代理簽名驗(yàn)證階段結(jié)果Fig.5 The results of proxy signature verification

表2 三種方案的復(fù)雜性比較Tab.2 Comparison of the complexity of three schemes

表3 三種方案的簽名和驗(yàn)證速度比較Tab.3 Comparison of signing and verification speeds of three schemes ms

由表3可見(jiàn),標(biāo)準(zhǔn)SM2數(shù)字簽名、原SM2代理簽名方案和改進(jìn)的代理簽名方案的簽名生成時(shí)間相差不大,這是因?yàn)閮煞N代理簽名方案中的簽名算法與標(biāo)準(zhǔn)SM2簽名算法所需運(yùn)算次數(shù)相同;原SM2代理簽名方案中,總驗(yàn)證時(shí)間約是標(biāo)準(zhǔn)驗(yàn)證時(shí)間的2.03倍,原因是總驗(yàn)證時(shí)間等于證書(shū)驗(yàn)證時(shí)間與代理簽名的驗(yàn)證時(shí)間之和;改進(jìn)后的代理簽名方案的驗(yàn)證時(shí)間接近標(biāo)準(zhǔn)SM2驗(yàn)證時(shí)間的1.5倍,這是由于代理簽名驗(yàn)證過(guò)程比標(biāo)準(zhǔn)簽名驗(yàn)證過(guò)程多了兩次數(shù)乘運(yùn)算和一次點(diǎn)乘運(yùn)算.從總體上來(lái)說(shuō),改進(jìn)方案的代理簽名生成效率與文獻(xiàn)[14]中的方案相近,驗(yàn)證效率提高了約26%.

5 總結(jié)

本文分析并指出了文獻(xiàn)[14]方案的不足,并進(jìn)行了改進(jìn).改進(jìn)的方案無(wú)需可信任方生成證書(shū),但仍能滿足可驗(yàn)證性、不可偽造性、可區(qū)分性、可識(shí)別性和不可否認(rèn)性.與原方案相比,雖然改進(jìn)的方案中增加了部分運(yùn)算,但減少了原方案中證書(shū)的生成和驗(yàn)證過(guò)程.總體來(lái)說(shuō),改進(jìn)方案的效率比原方案有所提高.

猜你喜歡
公鑰密鑰橢圓
Heisenberg群上由加權(quán)次橢圓p-Laplace不等方程導(dǎo)出的Hardy型不等式及應(yīng)用
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
例談橢圓的定義及其應(yīng)用
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
巧用點(diǎn)在橢圓內(nèi)解題
TPM 2.0密鑰遷移協(xié)議研究
神奇的公鑰密碼
國(guó)密SM2密碼算法的C語(yǔ)言實(shí)現(xiàn)
基于身份的聚合簽名體制研究
织金县| 美姑县| 兴和县| 舒城县| 惠安县| 浦东新区| 怀仁县| 巧家县| 博爱县| 和平区| 来凤县| 宜君县| 东辽县| 安徽省| 利津县| 华宁县| 根河市| 瓦房店市| 泉州市| 上栗县| 津市市| 青神县| 从化市| 晋江市| 长丰县| 景德镇市| 平原县| 南宫市| 华蓥市| 永安市| 普陀区| 嘉义县| 临澧县| 津南区| 青田县| 平南县| 海原县| 友谊县| 集贤县| 卢湾区| 永修县|