專利名稱:一種橢圓曲線上基于公鑰證書的數(shù)字簽名方法
技術(shù)領(lǐng)誠本發(fā)明涉及保密或安全通信的數(shù)字簽名方法,具體地說是一種橢圓曲線上基于公鑰證書的數(shù)字簽名方法。
背景技術(shù):
信息系統(tǒng)在運行過程中,往往受到許多威脅和攻擊。信息傳遞過程中的保密和安全問題正受到越來越多的國家所關(guān)注。網(wǎng)絡(luò)和信息安全對經(jīng)濟發(fā)展、國家安全和社會穩(wěn)定起著重要的作用。在一個系統(tǒng)內(nèi)許多用戶之間發(fā)送的信息如開出的電子支票和匯票等,怎樣確保用戶開出的信息或開出的支票不被人破譯、修改和偽造,是確保信息安全的核心問題。為此,國內(nèi)外學者進行了大量有意義的研究工作,產(chǎn)生了許多數(shù)字簽名方法。CN1177872A公開了一種用于實現(xiàn)具有消息附錄的數(shù)字簽名方法,采用一散列函數(shù)以減少簽名長度,保密程度不夠理想。CN1197248A公開了一種數(shù)字簽名方法,該方法中需要采用簽名黑匣子硬件,實施起來比較困難。EP0807908A2公開了一種將橢圓曲線應(yīng)用于簽名體制上的方法,但該方法中選用的模數(shù)極小,因而只限用于智能卡。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種橢圓曲線上基于公鑰證書的數(shù)字簽名方法,是從橢圓曲線上的離散對數(shù)困難問題出發(fā),輔以抗碰撞雜湊函數(shù)和公鑰證書進行簽名和驗證簽名的數(shù)字簽名方法,它可以用來防止信息的假冒和內(nèi)容篡改。
本發(fā)明采用的技術(shù)方案具體的步驟如下1.建立一個系統(tǒng)參數(shù)(Fq,E,P,n,H),其中Fq是有限域,域的特征為大素數(shù)q,E是Fq上的橢圓曲線,P是E上的一個有理點,稱為基點,P的階為素數(shù)n,H是抗碰撞雜湊函數(shù)。系統(tǒng)參數(shù)矢量(Fq,E,P,n,H)由一組用戶公用。
2.隨機選取一個小于n的元素x作為私鑰矢量,由私鑰矢量x跟基點P進行橢圓曲線E上的模乘運算得到的結(jié)果y作為公鑰矢量的第一分量y,加上c=H(Cert-data)構(gòu)成公鑰矢量(y,c),其中Cert-data是用戶證書數(shù)據(jù),c為用戶證書數(shù)據(jù)的雜湊值,設(shè)系統(tǒng)參數(shù)為(Fq,E,P,n,H),則數(shù)字簽名的私鑰和公鑰矢量的生成操作如下(a)隨機選取1<x<n,計算y=(x-1mod n)P;(b)私鑰為x,公鑰為(y,c)。
3.通過簽名者和驗證者通過交互實現(xiàn)驗證者對簽名的驗證,系統(tǒng)參數(shù)為(Fq,E,P,n,H),簽名者A的私鑰為x,公鑰為(y,c),m為想要簽名的消息,則A進行簽名的步驟為(a)A隨機選取1<r<n,計算u=H(c,rP),e=H(u,m)和計算v=x(r-e)mod n,把(u,v)稱為m的數(shù)字簽名;(b)驗證者B接受到消息m的一個相關(guān)的三元組(u,v,m)后,計算e=H(u,m),驗證u=H(c,eP+yv)是否成立,如成立則接受A簽名,否則拒絕簽名。
容易驗證,如果協(xié)議雙方都按照本數(shù)字簽名方法的操作步驟進行,那么A的簽名能被其他人驗證eP+yv=eP+x(r-e)x-1P=eP+(r-e)P=rP因而u=H(c,rP)=H(c,eP+yv)。
本發(fā)明所提出的數(shù)字簽名方法,在簽名過程中只需一次橢圓曲線模乘運算,一次模乘運算,一次加法,所用的計算資源很少所以具有很高的效率。
本發(fā)明與背景技術(shù)相比具有的有益效果是本發(fā)明是從橢圓曲線上的離散對數(shù)問題出發(fā),輔以抗碰撞雜湊函數(shù)和公鑰證書的數(shù)字簽名方法。它具有可證明的安全性,且具有較快的運算速度??梢杂糜诰W(wǎng)絡(luò)通信,電子商務(wù),票據(jù)、證件以及信息發(fā)送者的身份驗證,信息的防偽和防篡改。由于本發(fā)明利用橢圓曲線加密方法作為主體,因此具有計算量很小,安全性高,密鑰空間小,速度快等優(yōu)點,即使在計算資源非常有限的智能卡中也能適用。
具體實施例方式
當本發(fā)明用于網(wǎng)絡(luò)通信時,假定用戶A想發(fā)送給用戶B一個保密的信息,并且要讓B確認是A發(fā)送的。這時想發(fā)送的信息就是明文m,本發(fā)明中,用戶A和用戶B共同用一橢圓曲線,這里給出一橢圓曲線如下Ey2=x3+ax+b mod n其中p=6277101735386680763835789423207666416083908700390324961279;seedE=0x3045ae6fc8422f64ed579528d38120eae12196d5;r=0x3099d2bbbfcb2538542dcd5fb078b6ed5f3d6fe2c745de65;a=-3;b=0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1;h=1
橢圓曲線的階為n=6277101735386680763835789423176059013767194773182842284081;它是一個素數(shù)。
階為n的基點為P的選取為P=(xG,yG)其中xG=0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012;yG=0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811;(a)用戶A與用戶B分別選取a,b小于n作為自己的保密私鑰,分別計算ya=aP,yb=bP。并將(ya,ca)(yb,cb)作為公鑰并公開。用戶A按照本方法的步驟進行操作,發(fā)送密文和簽名。用戶B在收到后進行驗證簽名,同時對信息解密。如果簽名正確,則確認收到的信息是由A發(fā)送的,再處理解密后的信息。
權(quán)利要求
1.一種橢圓曲線上基于公鑰證書的數(shù)字簽名方法,其特征是從橢圓曲線上的離散對數(shù)困難問題假設(shè)出發(fā),輔以抗碰撞雜湊函數(shù)和公鑰證書的數(shù)字簽名方法。
2.根據(jù)權(quán)利要求1所述的一種橢圓曲線上基于公鑰證書的數(shù)字簽名方法,其特征是建立一個系統(tǒng)參數(shù)(Fq,E,P,n,H),其中Fq是有限域,域的特征為大素數(shù)q,E是Fq上的橢圓曲線,P是E上的一個有理點,稱為基點,P的階為素數(shù)n,H是抗碰撞雜湊函數(shù),系統(tǒng)參數(shù)矢量(Fq,E,P,n,H)由一組用戶公用。
3.根據(jù)權(quán)利要求2所述的一種橢圓曲線上基于公鑰證書的數(shù)字簽名方法,其特征是隨機選取一個小于n的元素x作為私鑰矢量;由私鑰矢量x跟基點P進行橢圓曲線E上的模乘運算得到的結(jié)果y作為公鑰矢量的第一分量y,加上c=H(Cert-data)構(gòu)成公鑰矢量(y,c),其中Cert-data是用戶證書數(shù)據(jù),c為用戶證書數(shù)據(jù)的雜湊值,設(shè)系統(tǒng)參數(shù)為(Fq,E,P,n,H),則數(shù)字簽名的私鑰和公鑰矢量的生成步驟如下(a)隨機選取1<x<n,計算y=(x-1mod n)P,(b)私鑰為x,公鑰為(y,c)。
4.根據(jù)權(quán)利要求2所述的一種橢圓曲線上基于公鑰證書的數(shù)字簽名方法,其特征是通過簽名者和驗證者通過交互實現(xiàn)驗證者對簽名的驗證,系統(tǒng)參數(shù)為(Fq,E,P,n,H),簽名者A的私鑰為x,公鑰為(y,c),m為想要簽名的消息,則A進行簽名的步驟為(a)A隨機選取1<r<n,計算u=H(c,rP),e=H(u,m)和計算v=x(r-e)mod n,把(u,v)稱為m的數(shù)字簽名;(b)驗證者B接受到消息m的一個相關(guān)的三元組(u,v,m)后,計算e=H(u,m),驗證u=H(c,eP+yv)是否成立,如成立則接受A簽名,否則拒絕簽名。
全文摘要
本發(fā)明公開了一種橢圓曲線上基于公鑰證書的數(shù)字簽名方法。它是從橢圓曲線上的離散對數(shù)問題出發(fā),輔以抗碰撞雜湊函數(shù)和公鑰證書的數(shù)字簽名方法。它具有可證明的安全性,且具有較快的運算速度??梢杂糜诰W(wǎng)絡(luò)通信,電子商務(wù),票據(jù)、證件以及信息發(fā)送者的身份驗證,信息的防偽和防篡改。由于本發(fā)明利用橢圓曲線加密方法作為主體,因此具有計算量很小,安全性高,密鑰空間小,速度快等優(yōu)點,即使在計算資源非常有限的智能卡應(yīng)用中也能適用。
文檔編號G06K9/00GK1444167SQ0311662
公開日2003年9月24日 申請日期2003年4月23日 優(yōu)先權(quán)日2003年4月23日
發(fā)明者朱華飛 申請人:浙江大學