国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種通用的數(shù)字簽名方案的實(shí)現(xiàn)方法

      文檔序號:7645292閱讀:315來源:國知局
      專利名稱:一種通用的數(shù)字簽名方案的實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及信息安全領(lǐng)域。特別的,本發(fā)明涉及一種基于任意具體數(shù)字簽名方案的數(shù)字簽名生成和驗(yàn)證系統(tǒng)。

      背景技術(shù)
      數(shù)字簽名是一種基本的信息安全技術(shù),在身份認(rèn)證、數(shù)據(jù)完整性、不可否認(rèn)性以及匿名性等方面有重要應(yīng)用,特別是在網(wǎng)絡(luò)安全通信中的密鑰分配,認(rèn)證以及電子商務(wù)、電子政務(wù)等系統(tǒng)中具有重要的作用。數(shù)字簽名是實(shí)現(xiàn)認(rèn)證的重要工具。
      數(shù)字簽名的生成和驗(yàn)證需要簽名者的簽名私鑰和驗(yàn)證公鑰。簽名者的簽名私鑰是僅被簽名者知曉的。簽名者的驗(yàn)證公鑰則是公開的。數(shù)字簽名的生成需要使用簽名者的簽名私鑰和被簽名的數(shù)字內(nèi)容。數(shù)字簽名的驗(yàn)證則是使用驗(yàn)證公鑰來確認(rèn)簽名者擁有對應(yīng)的簽名私鑰。數(shù)字簽名的安全性要求數(shù)字簽名應(yīng)是不可偽造的,即沒有簽名私鑰的任何人或者設(shè)備都不能偽造一個(gè)數(shù)字簽名。簽名私鑰具有唯一標(biāo)志簽名者身份的重要作用,數(shù)字簽名不應(yīng)泄漏簽名私鑰的有用信息。
      目前存在多種公開的數(shù)字簽名方案,例如RSA簽名方案,Rabin簽名方案,ElGamal簽名方案,Schnorr簽名方案,DSS簽名方案,GOST簽名方案等。其中部分的簽名方案具有如下的一種良好性質(zhì)以離線/在線方式完成數(shù)字簽名。例如Schnorr簽名方案,簽名者可以在任意時(shí)間預(yù)先計(jì)算并存儲(chǔ)一部分?jǐn)?shù)據(jù)完成離線計(jì)算部分,然后在需要計(jì)算被簽名的數(shù)字內(nèi)容的簽名時(shí),使用存儲(chǔ)的數(shù)據(jù)來快速生成數(shù)字簽名,完成在線計(jì)算部分。因?yàn)楹灻桨竿ǔI婕皬?fù)雜耗時(shí)的指數(shù)運(yùn)算,而這些運(yùn)算通??梢苑诺诫x線計(jì)算部分,所以離線/在線方式完成數(shù)字簽名可以顯著減小簽名方案的在線響應(yīng)時(shí)間,提高簽名的效率。遺憾的是,具有這種良好性質(zhì)的數(shù)字簽名方案通常具有特定的數(shù)學(xué)結(jié)構(gòu)并基于特定的數(shù)學(xué)困難問題,它不適用于任意的數(shù)字簽名方案。一旦某個(gè)要使用的數(shù)字簽名方案受專利保護(hù)或者不具有這種性質(zhì)時(shí),那么應(yīng)用就會(huì)被限制。
      為了彌補(bǔ)這種缺憾,Even等在1989年提出了數(shù)字簽名方案。一個(gè)數(shù)字簽名方案首先是一種數(shù)字簽名方案,可以生成和驗(yàn)證數(shù)字簽名。然而更為重要的是一個(gè)數(shù)字簽名方案可以使用任意具體數(shù)字簽名方案,并且依舊具有離線/在線計(jì)算方式這一良好性質(zhì)。Even等提出的數(shù)字簽名方案實(shí)現(xiàn)方法計(jì)算量較大,其簽名的長度是消息長度的非線性函數(shù),不具備實(shí)用性。Shamir等在2001年使用變色龍函數(shù),提出“雜湊-簽名-轉(zhuǎn)換”的方式來實(shí)現(xiàn)數(shù)字簽名方案,意在提高數(shù)字簽名方案的效率。然而Shamir等實(shí)現(xiàn)的數(shù)字簽名方案具有密鑰泄漏的問題。當(dāng)簽名者使用相同的變色龍函數(shù)生成值來對不同的被簽名數(shù)字內(nèi)容進(jìn)行運(yùn)算,獲得不同的數(shù)字簽名時(shí),驗(yàn)證者就可以獲得簽名者的簽名私鑰。為了解決這一問題,簽名者必須在離線階段計(jì)算大量的變色龍函數(shù)生成值,并存儲(chǔ)這些生成值和相應(yīng)的具體簽名方案的簽名值。然而當(dāng)具體簽名方案的簽名長度較長時(shí),需要的額外存儲(chǔ)空間急劇增加,例如使用RSA簽名體制,模長為1024比特,那么存儲(chǔ)1024個(gè)變色龍函數(shù)生成值,就需要額外的存儲(chǔ)空間1M,這在智能卡、PDA、手機(jī)等瘦客戶的信息安全應(yīng)用環(huán)境中受到限制。除了存儲(chǔ)空間的問題,Shamir等人的數(shù)字簽名方案所需要的離線計(jì)算量較大,簽名的長度較長,效率不高。
      陳等人在2007年提出了一種解決密鑰泄露的方法,其中使用了一種特殊的雙陷門變色龍函數(shù),并把具體簽名方案的簽名值作為用戶的公開信息,減少了帶寬和計(jì)算消耗,具有很好的效率。
      門限數(shù)字簽名是一種數(shù)字簽名方案。該數(shù)字簽名方案通常有n個(gè)簽名者共同參與簽名私鑰和簽名公鑰的生成,其中n是自然數(shù)。一個(gè)給定消息的數(shù)字簽名,需要t個(gè)具有簽名私鑰的簽名者共同參與生成,其中t是自然數(shù),小于n/2。數(shù)字簽名的驗(yàn)證可以由任何擁有簽名公鑰的驗(yàn)證者驗(yàn)證。門限數(shù)字簽名具有如下優(yōu)點(diǎn)即使一小部分擁有簽名私鑰的簽名者簽名私鑰泄露了,只要泄露私鑰的簽名者數(shù)量小于t,那么t個(gè)具有簽名私鑰的簽名者共同參與生成的數(shù)字簽名依舊是有效的。
      門限數(shù)字簽名可以通過離線/在線方式生成。Crutchfield等人給出了一種離線/在線方式門限數(shù)字簽名方案。Crutchfield等人的方案基于Shamir等人實(shí)現(xiàn)的數(shù)字簽名方案,因而具有密鑰泄露問題。陳等人的數(shù)字簽名方案在數(shù)字簽名生成過程中使用了私鑰的逆運(yùn)算,很難實(shí)現(xiàn)門限數(shù)字簽名方案。
      由上述可知,現(xiàn)有技術(shù)中已公布數(shù)字簽名方案并不理想。我們希望給出一種數(shù)字簽名方案,使之可以擴(kuò)展為門限數(shù)字簽名方案,解決密鑰泄露問題,并在存儲(chǔ)空間、計(jì)算量、簽名長度等技術(shù)指標(biāo)上進(jìn)一步優(yōu)化。


      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種通用的數(shù)字簽名方案的實(shí)現(xiàn)方法,解決背景技術(shù)中陳等人所提方案關(guān)于使用私鑰逆運(yùn)算的限制,減少計(jì)算量,并擴(kuò)展為門限數(shù)字簽名方案,解決密鑰泄露問題,減小存儲(chǔ)空間、計(jì)算量、簽名長度。
      為實(shí)現(xiàn)上述目的,本發(fā)明提供一種數(shù)字簽名方案的實(shí)現(xiàn)方法設(shè)置公開的系統(tǒng)參數(shù);設(shè)置所有簽名者擁有的簽名私鑰和公開的驗(yàn)證公鑰;所有簽名者預(yù)先計(jì)算部分?jǐn)?shù)據(jù);所有簽名者存儲(chǔ)預(yù)先計(jì)算的部分?jǐn)?shù)據(jù);部分簽名者實(shí)時(shí)計(jì)算給出的數(shù)字內(nèi)容對應(yīng)的數(shù)字簽名;驗(yàn)證者使用驗(yàn)證公鑰來驗(yàn)證數(shù)字簽名的正確性。
      1)公開的系統(tǒng)參數(shù)包括素?cái)?shù)p,有限域Fp,有限域上的橢圓曲線E(Fp),素?cái)?shù)q,橢圓曲線的一個(gè)階為q的點(diǎn)P,由點(diǎn)P生成的子群G,密碼學(xué)安全的雜湊函數(shù)fZq×G→Zq,雙陷門變色龍函數(shù)H,具體簽名方案(JG,JS,JV),密鑰生成協(xié)議KG。
      其中密碼學(xué)安全的雜湊函數(shù)f是指該函數(shù)滿足抗碰撞、輸出序列與偽隨機(jī)序列不可區(qū)分、單向等密碼學(xué)特性。
      其中雙陷門變色龍函數(shù)H的構(gòu)造方法為子群G中兩個(gè)元素A、B進(jìn)行點(diǎn)加操作,其中A或者B由子群G中另外兩個(gè)群元素C、D的點(diǎn)加結(jié)果與Zq中元素E進(jìn)行數(shù)乘操作獲得。一種設(shè)置方法為輸入(m∈Zq,K∈G,Y∈G,r∈Zq)時(shí),輸出f(m,K)·(K+Y)+rP。
      2)所有簽名者的數(shù)量為n,n為自然數(shù),其中簽名者j(j∈{1…n})的簽名私鑰(SKj,xj,kj*)和所述公開的驗(yàn)證公鑰(VK,Y,h,σ)按照如下的步驟生成 (1)簽名者j使用具體簽名方案中的密鑰生成算法JG來生成簽名者j的簽名私鑰之一SKj和簽名者的驗(yàn)證公鑰之一VK。
      (2)簽名者j使用KG協(xié)議生成(xj,Y),簽名者j的簽名私鑰之二是xj,驗(yàn)證公鑰之二是Y。
      (3)簽名者j使用KG協(xié)議生成(kj*,h),簽名者j的簽名私鑰之三是kj*,驗(yàn)證公鑰之三是h。簽名者j運(yùn)行具體簽名方案中的簽名算法JS,把h作為被簽名內(nèi)容,獲得具體簽名方案的簽名值σ,把簽名值σ作為公鑰之四。
      其中密鑰生成協(xié)議KG在n=1時(shí)由簽名者j均勻選擇隨機(jī)數(shù)rKG并進(jìn)行數(shù)乘操作獲得rKGP,進(jìn)而獲得(rKG,rKGP)數(shù)據(jù)對;在n>1時(shí)由所有簽名者共同執(zhí)行安全的分布式密鑰生成協(xié)議DKG,簽名者j獲得(rKGj,rKGP)數(shù)據(jù)對; 其中具體簽名方案(JG,JS,JV)在n=1時(shí)為簽名者j單獨(dú)執(zhí)行的、任意的、在選擇消息攻擊下安全的簽名方案,在n>1時(shí)為多個(gè)簽名者共同執(zhí)行的、任意的、在選擇消息攻擊下安全的門限簽名方案。
      3)所有簽名者中的簽名者j預(yù)先計(jì)算一次性數(shù)據(jù)對(kij,Ki),i∈{1…L},L為簽名者j的安全存儲(chǔ)區(qū)所能容納的一次性數(shù)據(jù)對(kij,Ki)的數(shù)量上限,i為該安全存儲(chǔ)區(qū)的當(dāng)前空區(qū)的索引值,如果不存在空區(qū),則提示簽名者j停止計(jì)算一次性數(shù)據(jù)對的操作。一次性數(shù)據(jù)對(kij,Ki)計(jì)算如下 簽名者j使用KG協(xié)議生成(kij,Ki)。
      其中安全存儲(chǔ)區(qū)意味著該存儲(chǔ)區(qū)的數(shù)據(jù)在使用前不得泄露。
      4)簽名者j在i所索引的存儲(chǔ)區(qū)存儲(chǔ)預(yù)先計(jì)算的一次性數(shù)據(jù)對(kij,Ki)。
      5)部分簽名者的數(shù)量為t+1,t取值0或者自然數(shù),并且t<n/2,其中簽名者j實(shí)時(shí)計(jì)算數(shù)字簽名的過程如下 (1)簽名者j從其安全存儲(chǔ)區(qū)中提取未曾使用的一次性數(shù)據(jù)對(kij,Ki)。
      (2)給定被簽名內(nèi)容mi,計(jì)算rij=kj*-f(mi,ki)·(kij+xj)(模q),如果t=0,則rij為簽名值之一。
      (3)如果t>0,則簽名者j通過安全廣播信道把rij發(fā)送給其它的t個(gè)簽名者;同時(shí)簽名者j在j>1時(shí)接收到(ri1…ri(j-1),ri(j+1)…ri(t+1))t個(gè)值,或者在j=1時(shí)接收到(ri2…ri(t+1))t個(gè)值,之后使用Lagrange插值獲得簽名值之一ri=k*-f(mi,Ki)·(ki+x)(模q)。如果t=0,則跳過執(zhí)行該步驟。
      (4)把(ri,Ki)作為被簽名內(nèi)容mi的數(shù)字簽名,從安全存儲(chǔ)區(qū)刪除已經(jīng)使用過的一次性數(shù)據(jù)對(kij,Ki)。
      其中Lagrange插值可以定義插值多項(xiàng)式為然后通過來計(jì)算ri的值。
      6)驗(yàn)證者使用驗(yàn)證公鑰來驗(yàn)證數(shù)字簽名的過程包括 (1)使用數(shù)字簽名的簽名值之一ri,簽名值之二Ki以及公開的系統(tǒng)參數(shù)f和公開的驗(yàn)證公鑰Y計(jì)算hi=f(mi,Ki)·(Ki+Y)+riP。
      (2)運(yùn)行具體簽名方案中的驗(yàn)證算法JV來驗(yàn)證公開的驗(yàn)證公鑰中的σ是否是hv的簽名值,如果是則認(rèn)為消息mi的數(shù)字簽名(ri,kiP)是正確的。
      本發(fā)明具有以下優(yōu)點(diǎn) 本發(fā)明采用的雙陷門變色龍函數(shù)是特殊構(gòu)造的,可以減少預(yù)先計(jì)算數(shù)據(jù)對時(shí)群上逆運(yùn)算的操作,具有很好的擴(kuò)展性;當(dāng)簽名者的數(shù)量大于1時(shí),解決了目前門限簽名方案中密鑰泄露的問題,具有低的存儲(chǔ)需求,減少了簽名長度,節(jié)約了通信帶寬、計(jì)算資源和存儲(chǔ)資源,具有更高的效率。
      本發(fā)明提供的數(shù)字簽名方案實(shí)現(xiàn)方法,適用于智能卡、PDA、手機(jī)等計(jì)算和存儲(chǔ)資源性能有限的設(shè)備和高性能的安全服務(wù)器,會(huì)獲得短的服務(wù)響應(yīng)時(shí)間和好的用戶體驗(yàn)。



      圖1為通用的數(shù)字簽名實(shí)現(xiàn)方法框圖 圖2為n=1時(shí)通用數(shù)字簽名方案實(shí)現(xiàn)方法; 圖3為n>1時(shí)通用數(shù)字簽名方案實(shí)現(xiàn)方法。

      具體實(shí)施例方式 以智能卡為例說明本發(fā)明n=1,安全存儲(chǔ)區(qū)為100個(gè)數(shù)據(jù)對大小時(shí)數(shù)字簽名方案的具體實(shí)施。
      1.對于實(shí)現(xiàn)本發(fā)明中數(shù)字簽名方案的智能卡,需要存儲(chǔ)以下公開信息{E,p,q,P,G,f,H,(JG,JS,JV),(VK,Y,h,σ)}和以下秘密信息{(SK,x,k*),(ki,kiP),i∈{1…100}} 其中公開信息(JG,JS,JV)為任意可證安全的數(shù)字簽名算法,這里選定為Boneh-Lynn-Shacham短簽名算法,簽名長度160比特,該簽名算法的參數(shù)(E,p,q,k,P,G)建議如下 Ey2=x3+3 Q=p=1461501624496790265145448589920785493717258890819 q=1461501624496790265145447380994971188499300027613 MOV degree k=12 P=(x,y) x=60232771925335406215268478438736418092310 y=689153346037673625529930425534358412369109232196 G=<P>,為點(diǎn)P生成的群; 公開信息中H為所述的數(shù)字簽名方案系統(tǒng)參數(shù)中雙陷門變色龍函數(shù)H規(guī)定的實(shí)現(xiàn)方法; 公開信息中f為任意密碼學(xué)安全的雜湊函數(shù),這里選定為SHA-256算法; 公開信息中(E,p,q,P,G)分別定義如下 Ey2=x3+ax+b,其中 a=-3 b=67236789897895454534230235651860890517841345604560562138 p=2192-264-1,192bit =6277101735386680763835789423207666416083908700390324961279 q=6277101735386680763835789423308534963364820143210894481897 P=(x,y) x=3225743880086619282892109672206023277192533540621 526332917 y=5311403117772569158290023367750256572682401384201134690284 G=<P>,為點(diǎn)P生成的群 智能卡中需要存儲(chǔ)以下秘密信息(SK,x,k*)。秘密信息(SK,x,k*)和公開信息(VK,Y,h,σ)按照如下方式生成 (1)首先使用具體簽名方案中的密鑰生成算法JG來生成簽名者的簽名私鑰之一SK和簽名者的驗(yàn)證公鑰之一VK。
      (2)然后隨機(jī)選擇x∈RZq*,并作為簽名者的簽名私鑰之二;計(jì)算橢圓曲線上的數(shù)乘運(yùn)算Y=xP,獲得簽名者的驗(yàn)證公鑰之二Y。
      (3)最后隨機(jī)選擇k*∈RZq*,并作為簽名者的簽名私鑰之三;計(jì)算橢圓曲線上的標(biāo)量乘運(yùn)算h=k*P,運(yùn)行具體簽名方案中的簽名算法JS,用SK作為簽名私鑰,把h作為被簽名內(nèi)容,獲得具體簽名方案的簽名值σ=JSSK(h),并把被簽名內(nèi)容h作為簽名者的公鑰之三,把簽名值σ作為簽名者的公鑰之四。
      智能卡需要存儲(chǔ)的秘密信息還包括離線計(jì)算的數(shù)據(jù)對。這些數(shù)據(jù)對的存儲(chǔ)和計(jì)算方式為隨機(jī)選擇ki∈RZq,進(jìn)行橢圓曲線上的數(shù)乘操作獲得kiP,i∈{1…100},i為該安全存儲(chǔ)區(qū)的當(dāng)前空區(qū)的索引值,如果不存在空區(qū),則提示用戶停止計(jì)算一次性數(shù)據(jù)對的操作。完成計(jì)算后在i所索引的存儲(chǔ)區(qū)存儲(chǔ)數(shù)據(jù)對(ki,kiP)。離線數(shù)據(jù)對的生成時(shí)機(jī)可以在智能卡與有源設(shè)備相連接時(shí)完成。
      2.在用戶需要完成某個(gè)消息的簽名時(shí),用戶需要把待簽署的消息mi導(dǎo)入智能卡,然后智能卡按照如下的過程完成數(shù)字簽名,并輸出給用戶 (1)提取未曾使用的數(shù)據(jù)對(ki,kiP)。
      (2)對給定被簽名內(nèi)容mi,計(jì)算簽名值ri=k*-f(mi,kiP)·(ki+x)(模q)。
      (3)把(ri,kiP)作為被簽名內(nèi)容mi的數(shù)字簽名輸出給用戶。
      (4)刪除使用過的數(shù)據(jù)對(ki,kiP)。
      3.在驗(yàn)證某個(gè)數(shù)字簽名的時(shí)候,用戶可以把數(shù)字簽名和消息輸入智能卡,然后由智能卡按照所述的數(shù)字簽名方案驗(yàn)證數(shù)字簽名的方法完成驗(yàn)證,并把驗(yàn)證結(jié)果輸出給用戶;也可以由用戶在其它計(jì)算設(shè)備上運(yùn)行按照所述的數(shù)字簽名方案驗(yàn)證數(shù)字簽名的方法,輸入數(shù)字簽名和消息,完成驗(yàn)證。
      以多個(gè)智能卡為例說明n>1時(shí)數(shù)字簽名方案的具體實(shí)施。
      1.考慮在一個(gè)單位中管理層成員有6個(gè),需要簽署文件時(shí)必須有4個(gè)管理層成員簽署該文件才有效。此時(shí)6名管理層成員都擁有一張智能卡,每張智能卡的安全存儲(chǔ)區(qū)均能夠存儲(chǔ)100個(gè)數(shù)據(jù)對。按照如下方式實(shí)施本發(fā)明的門限數(shù)字簽名方案 每一名管理層成員的智能卡都需要存儲(chǔ)以下公開信息{E,p,q,P,G,f,H,(TG,TS,TV),(VK,Y,h,σ),DKG}和以下秘密信息{(SKj,xj,kj*),(kij,kiP),i∈{1…100}} 公開信息中DKG為分布式密鑰生成算法,這里選定Gennaro等1999年提供的DKG算法。
      公開信息中(TG,TS,TV)為任意可證安全的門限數(shù)字簽名算法,這里選定為Gennaro等人1996年所提出的門限D(zhuǎn)SS簽名算法; 公開信息中H、f、(E,p,q,P,G)與n=1時(shí)數(shù)字簽名方案的具體實(shí)施中的參數(shù)選擇相同; 每一名管理層成員的智能卡都需要存儲(chǔ)專屬于該成員的秘密信息(SKj,xj,kj*)。秘密信息(SKj,xj,kj*)和公開信息(VK,Y,h,σ)的生成如下 (1)首先使用具體門限簽名方案中的密鑰生成算法TG來生成第j個(gè)簽名者的簽名私鑰之一SKj和簽名者的驗(yàn)證公鑰之一VK。
      (2)然后使用DKG協(xié)議生成簽名者的驗(yàn)證公鑰之二Y=xP,第j個(gè)簽名者在參與DKG協(xié)議時(shí)獲得簽名私鑰之二xj。
      (3)最后使用DKG協(xié)議生成簽名者的公鑰之三h=k*P,第j個(gè)簽名者在參與DKG協(xié)議時(shí)獲得簽名私鑰之私鑰之三kj*;運(yùn)行具體門限簽名方案中的簽名算法TS,把h作為被簽名內(nèi)容,獲得具體門限簽名方案的簽名值σ,并把σ作為簽名者的公鑰之四。
      每一名管理層成員的需要用DKG協(xié)議生成kiP和kij,i∈{1…100},100為智能卡的安全存儲(chǔ)區(qū)所能容納的一次性數(shù)據(jù)對(kij,kiP)的數(shù)量上限,i為該安全存儲(chǔ)區(qū)的當(dāng)前空區(qū)的索引值,如果不存在空區(qū),則提示用戶停止計(jì)算一次性數(shù)據(jù)對的操作。完成計(jì)算后在i所索引的存儲(chǔ)區(qū)存儲(chǔ)數(shù)據(jù)對(kij,kiP)。離線數(shù)據(jù)對的生成時(shí)機(jī)可以在智能卡與有源設(shè)備相連接、并且6名管理層成員在場時(shí)完成。
      2.在4名管理層成員需要完成某個(gè)消息mi的簽名時(shí),這些管理層成員需要把待簽署的消息mi導(dǎo)入智能卡,然后智能卡按照如下的過程完成數(shù)字簽名,并輸出給持有該智能卡的管理層成員 (1)提取未曾使用的數(shù)據(jù)對(kij,kiP)。
      (2)對給定被簽名內(nèi)容mi,計(jì)算rij=kj*-f(mi,kiP)·(kij+x)(模q)。
      (3)第一名管理成員通過安全廣播信道把ri1發(fā)送給其它的3個(gè)管理層成員。第一名管理成員接收到另外3個(gè)(ri2,ri3,ri4)之后,使用標(biāo)準(zhǔn)Lagrange插值獲得ri=k*-f(mi,kiP)·(ki+x)(模q)。其它幾名管理層成員執(zhí)行類似操作。
      (4)把(ri,kiP)作為被簽名內(nèi)容mi的數(shù)字簽名輸出給持有該智能卡的管理層成員。
      (5)每一名管理成員的智能卡刪除使用過的數(shù)據(jù)對(kij,kiP)。
      其中,4名管理成員所提取得數(shù)據(jù)對應(yīng)該屬于一次DKG過程生成的,為了獲得這種同步,可以為每一個(gè)數(shù)據(jù)對增加一個(gè)索引,表明該數(shù)據(jù)對所屬的批次。
      3.在驗(yàn)證某個(gè)數(shù)字簽名的時(shí)候,用戶可以把數(shù)字簽名和消息輸入智能卡,然后由智能卡按照所述的門限數(shù)字簽名方案驗(yàn)證數(shù)字簽名的方法完成驗(yàn)證,并把驗(yàn)證結(jié)果輸出給用戶;也可以由用戶在其它計(jì)算設(shè)備上運(yùn)行按照所述的數(shù)字簽名方案驗(yàn)證數(shù)字簽名的方法,輸入數(shù)字簽名和消息,完成驗(yàn)證。
      權(quán)利要求
      1.一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,包括
      用于計(jì)算公開的系統(tǒng)參數(shù)的步驟;
      用于計(jì)算所有簽名者擁有的簽名私鑰和公開的驗(yàn)證公鑰的步驟;
      用于所有簽名者預(yù)先計(jì)算部分?jǐn)?shù)據(jù)的步驟;
      用于所有簽名者存儲(chǔ)預(yù)先計(jì)算的部分?jǐn)?shù)據(jù)的步驟;
      用于部分簽名者實(shí)時(shí)計(jì)算給出的數(shù)字內(nèi)容對應(yīng)數(shù)字簽名的步驟;
      用于驗(yàn)證者使用驗(yàn)證公鑰來驗(yàn)證數(shù)字簽名的正確性的步驟;
      其特征在于
      其中所述公開的系統(tǒng)參數(shù)包括素?cái)?shù)p,有限域Fp,有限域上的橢圓曲線E(Fp),素?cái)?shù)q,橢圓曲線的一個(gè)階為q的點(diǎn)P,由點(diǎn)P生成的子群G,密碼學(xué)安全的雜湊函數(shù)fZp×G→Zq,雙陷門變色龍函數(shù)H,具體簽名方案(JG,JS,JV),密鑰生成協(xié)議KG。其中雙陷門變色龍函數(shù)H的構(gòu)造方法為子群G中兩個(gè)元素A、B進(jìn)行點(diǎn)加運(yùn)算,其中A或者B由子群G中另外兩個(gè)群元素C、D的點(diǎn)加結(jié)果與Zq中元素E進(jìn)行標(biāo)量乘運(yùn)算獲得。
      2.根據(jù)權(quán)利要求1所述的一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,其特征在于所述雙陷門變色龍函數(shù)的一種實(shí)現(xiàn)方法為輸入(m∈Zq,K∈G,Y∈G,r∈Zq),輸出f(m,K)·(K+Y)+rP。
      3.根據(jù)權(quán)利要求2所述的一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,其特征在于所述所有簽名者的數(shù)量為n,n為自然數(shù),其中簽名者j(j∈{1…n})的簽名私鑰(SKj,xj,kj*)和所述公開的驗(yàn)證公鑰(VK,Y,h,σ)按照如下的步驟生成
      (1)簽名者j使用具體簽名方案中的密鑰生成算法JG來生成簽名者j的簽名私鑰之一SKj和簽名者的驗(yàn)證公鑰之一VK。
      (2)簽名者j使用KG協(xié)議生成(xj,Y),簽名者j的簽名私鑰之二是xj,驗(yàn)證公鑰之二是Y。
      (3)簽名者j使用KG協(xié)議生成(kj*,h),簽名者j的簽名私鑰之三是kj*,驗(yàn)證公鑰之三是h。簽名者j運(yùn)行具體簽名方案中的簽名算法JS,把h作為被簽名內(nèi)容,獲得具體簽名方案的簽名值σ,把簽名值σ作為公鑰之四。
      4.根據(jù)權(quán)利要求3所述的一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,其特征在于所述密鑰生成協(xié)議KG在n=1時(shí)由簽名者j均勻選擇隨機(jī)數(shù)rKG并進(jìn)行數(shù)乘操作獲得rKGP,進(jìn)而獲得(rKG,rKGP)數(shù)據(jù)對;在n>1時(shí)由所有簽名者共同執(zhí)行安全的分布式密鑰生成協(xié)議DKG,簽名者j獲得(rKGj,rKGP)數(shù)據(jù)對;所述具體簽名方案(JG,JS,JV)在n=1時(shí)為簽名者j單獨(dú)執(zhí)行的、任意的、在選擇消息攻擊下安全的簽名方案,在n>1時(shí)為多個(gè)簽名者共同執(zhí)行的、任意的、在選擇消息攻擊下安全的門限簽名方案。
      5.根據(jù)權(quán)利要求4所述的一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,其特征在于所述所有簽名者中的簽名者j預(yù)先計(jì)算一次性數(shù)據(jù)對(kij,Ki),i∈{1…L},L為簽名者j的安全存儲(chǔ)區(qū)所能容納的一次性數(shù)據(jù)對(kij,Ki)的數(shù)量上限,i為該安全存儲(chǔ)區(qū)的當(dāng)前空區(qū)的索引值,如果不存在空區(qū),則提示簽名者j停止計(jì)算一次性數(shù)據(jù)對的操作。一次性數(shù)據(jù)對(kij,Ki)計(jì)算如下
      簽名者j使用KG協(xié)議生成(kij,Ki)。
      6.根據(jù)權(quán)利要求5所述的一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,其特征在于所述簽名者j在i所索引的存儲(chǔ)區(qū)存儲(chǔ)預(yù)先計(jì)算的一次性數(shù)據(jù)對(kij,Ki)。
      7.根據(jù)權(quán)利要求6所述的一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,其特征在于所述部分簽名者的數(shù)量為t+1,t取值0或者自然數(shù),并且t≤n/2,其中簽名者j(j∈{1…t+1})實(shí)時(shí)計(jì)算數(shù)字簽名的過程如下
      (1)簽名者j從其安全存儲(chǔ)區(qū)中提取未曾使用的一次性數(shù)據(jù)對(kij,Ki)。
      (2)給定被簽名內(nèi)容mi,計(jì)算rij=kj*-f(mi,Ki)·(kij+xj)(模q),如果t=0,則rij為簽名值之一。
      (3)如果t>0,則簽名者j通過安全廣播信道把rij發(fā)送給其它的t個(gè)簽名者;同時(shí)簽名者j在j>1時(shí)接收到(ri1…ri(j-1),ri(j+1)…ri(t+1))t個(gè)值,或者在j=1時(shí)接收到(ri2…ri(t+1))t個(gè)值,之后使用Lagrange插值獲得簽名值之一ri=k*-f(mi,Ki)·(ki+x)(模q)。如果t=0,則跳過執(zhí)行該步驟。
      (4)把(ri,Ki)作為被簽名內(nèi)容mi的數(shù)字簽名,從安全存儲(chǔ)區(qū)刪除已經(jīng)使用過的一次性數(shù)據(jù)對(kij,Ki)。
      8.根據(jù)權(quán)利要求7所述的一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,其特征在于所述驗(yàn)證者使用驗(yàn)證公鑰來驗(yàn)證數(shù)字簽名的過程包括
      使用數(shù)字簽名的簽名值之一ri,簽名值之二Ki以及公開的系統(tǒng)參數(shù)f和公開的驗(yàn)證公鑰Y計(jì)算hi=f(mi,Ki)·(Ki+Y)+riP。
      9.根據(jù)權(quán)利要求8所述的一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案實(shí)現(xiàn)方法,其特征在于所述驗(yàn)證者使用驗(yàn)證公鑰來驗(yàn)證數(shù)字簽名的過程包括
      運(yùn)行具體簽名方案中的驗(yàn)證算法JV來驗(yàn)證公開的驗(yàn)證公鑰中的σ是否是hv的簽名值,如果是則認(rèn)為消息mi的數(shù)字簽名(ri,kiP)是正確的。
      全文摘要
      本發(fā)明涉及一種生成和驗(yàn)證數(shù)字內(nèi)容的通用數(shù)字簽名方案的實(shí)現(xiàn)方法,其實(shí)現(xiàn)步驟包括設(shè)置系統(tǒng)參數(shù),生成用戶簽名私鑰和公開的驗(yàn)證公鑰,以離線/在線方式生成數(shù)字簽名,驗(yàn)證數(shù)字簽名。本發(fā)明通過采用特殊的方法構(gòu)造了一種新的雙陷門變色龍函數(shù),解決了背景技術(shù)中預(yù)先計(jì)算部分?jǐn)?shù)據(jù)時(shí)需要使用群上逆運(yùn)算的限制,減小了計(jì)算量,去掉了簽名者數(shù)量的限制,解決了門限數(shù)字簽名方案背景技術(shù)中密鑰泄露的問題,減小了數(shù)字簽名和驗(yàn)證的計(jì)算量,縮短了簽名長度,減小了存儲(chǔ)需求,具有更高的效率和更好的擴(kuò)展性。
      文檔編號H04L9/32GK101252431SQ20071003010
      公開日2008年8月27日 申請日期2007年9月6日 優(yōu)先權(quán)日2007年9月6日
      發(fā)明者陳曉峰, 田海博, 張方國, 韋寶典, 陳滿祥 申請人:廣州信睿網(wǎng)絡(luò)科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1