多籤名者強指定多個驗證者的數字籤名文檔安全保護方法
2023-06-06 14:20:11 1
專利名稱:多籤名者強指定多個驗證者的數字籤名文檔安全保護方法
技術領域:
本發明屬於信息安全技術領域,涉及一種多籤名者強指定多個驗證者 的數字籤名文檔安全保護方法。
背景技術:
在傳統的以書面文件為載體的事務處理中,通常採用手寫籤字、印章、 指紋等方式作為書面籤名,具有法律意義。但是網際網路的快速發展使得人 們通過網絡實現快速、遠距離的電子商務活動的需求越來越高。在以計算 機數據文件為基礎的電子郵件、電子商務等的數字通信中,因為書面籤名 可被任意拷貝,因此籤名的安全性非常重要,數字籤名技術應運而生。
人們通過網絡進行電子文檔的傳輸中,可能面臨各種安全威脅,例如, 文檔的內容可能被盜取或篡改,文檔的發送者可能是假冒的,文檔的發送 者可能否認自己曾發送過該文檔等。信息加密和數字籤名是應對這些安全 威脅的重要手段。數字籤名也稱電子籤名或電子籤章。通俗的說,電子籤 名就是通過密碼技術對電子文檔的電子形式的籤名,並非是書面籤名的數 字圖象化,它的作用類似於手寫籤名或印章。準確的說,數字籤名是以密 碼學的方法對數據文件作用,產生的一組代表籤名者身份與數據完整性的 數據信息,通常附加在數據文件的後面,數據文件的接收者可以利用籤名 者的公鑰作用在數字籤名上,驗證數據文件的真實性、完整性。數字籤名 的應用包括身份鑑別,可辨別信源的真實性而防止冒充;數據完整性保護,抵禦數據的篡改或重排;不可抵賴性,信源事後不可否認其發送過或
生成過籤名信息,可以防止當事人事後抵賴。
多籤名者多指定驗證者數字籤名算法可以為多個用戶提供生成數字籤 名的方法,該籤名可以由指定的多個驗證者驗證。由於數字籤名一般都攜 帶了籤名者的私鑰信息,籤名的驗證者可能正是數字籤名的攻擊者,故需
要對於籤名的驗證權進行限制;而多籤名者數字籤名指由多個籤名者共同 生成文檔的數字籤名,適應於多人協同的文檔認證應用。例如,在大型虛 擬企業的分布式產品設計中, 一組設計人員可能希望他們的設計文檔的數 字籤名只有指定的多個設計人員(或驗證者)可以驗證,這就需要多籤名 者多個指定驗證者的數字籤名方案。在實際的電子舉報違法現象的應用中, 為了提高舉報信息的完整性和真實性,多個舉報人應該對其舉報材料進行 籤名。為了保護舉報人,希望舉報材料的真實性只有指定的一組紀檢人員 可以共同驗證。
現有的數字籤名方案中有多籤名者指定驗證者算法,也有指定多驗證 者算法,但還沒有對於多籤名者多指定驗證者數字籤名算法,另外現有大 部分的指定驗證者籤名方案中運用了雙線性對運算,其運算效率較低。
發明內容
本發明的目的是提供一種多籤名者強指定多個驗證者的數字籤名文檔 安全保護方法,解決了網絡環境中多人協同在電子文檔上進行數字籤名並 由指定的多個驗證者驗證的安全問題。
本發明所採用的技術方案是, 一種多籤名 強指定多個驗證者的數字 籤名文檔安全保護方法,多人共同生成數字籤名,並只有指定的多個驗證 者可以驗證該數字籤名,該方法按照以下步驟具體實施步驟l.生成系統參數選擇階為素數《的循環群A,a,其中g是生成元,即G^《g〉, |^,g| = GW(g)=、《是一個二進位長度為/的素數,/是安全參數,要求在循 環群中計算離散對數問題DLP是困難的,選擇一個密碼學單向哈希函數^ :{G,《—{0,1}';步驟2.用戶密鑰建立為多個籤名者"',/ = 1,'","秘密選擇私鑰\£""/ = 1,''',",並通過秘密信道分發,分別為每個籤名者生成公鑰&=^'" = 1,—,";為多個指定的驗證者v^'^,…,v秘密選擇私鑰、^《,7、1,…^,並通過秘密信道分發,分別為每個驗證者生成公鑰A-g、"、1,…,、 步驟3.籤名過程設多個籤名者為"',/ = 1,'",",強指定多個驗證者為、,7、1,…^, 消息為^;31 )每個籤名者"X…,",隨機選擇 " 2£《,7、1,…,v ; 計算A H'"ll《'《2 ,並將計算結果A發送給籤名收集者或者廣播給其他的籤名者;32) 籤名收集者或者籤名者將上步每個籤名者計算得到的A收集完全 後,按照步驟1選擇的哈希函數,根據下列公式c-M附llglkll4J…ll4J卜.11《)計算得到。並將c廣播給所有的籤名者;33) 每個籤名者""^,…,"計算氣n1, ^2:、-^ mod《,風…,v, 並將"",^,…,&,^)e《發送給籤名收集者或者廣播給其他的籤名34) 根據步驟32)和步驟33)得到的計算結果,籤名收集者或者所有的籤名者確定消息M的籤名者(""…,"")的強指定驗證者(v"…,W的籤名是 (c; ^丄i, & 12 ,…,, slv2;…;swl!, sMl2 ,…,《wvi,)e {0, 1} x ,35) 籤名收集者或者籤名者將消息^和籤名(Qiii,Sm,…,^,、2;…;&iiAi2,…,u,0發給驗證者;步驟4.驗證過程* 1 l 2 41) 每個驗證者","1,…,17,計算, "L…,",並將計算結 果發送給驗證收集者或者直接廣播給其他的驗證者;42) 驗證收集者或者驗證者將步驟41)中每個驗證者的計算結果收集完後計算4 h…ii《'《々H…ll収2(,將計算得到的A帶入步驟1選取的哈希函數仏^,W — W1}',計算得到訊一g^H夂H…114 H…H夂),將該計算結果與所收到的籤名(c^m,^,…,^,^;…Au,^,…,^,U)中的c進行比較,如果相等即驗證通過,否則驗證不通過。本發明的方法由於沒有涉及雙線性對運算,運算效率明顯提高,並具 有籤名短、安全性高的特點,確保電子文件在存儲及網絡傳輸中的安全性。
具體實施方式
下面用具體實施例對本發明進行詳細說明。本發明方法的技術方案源於Schnorr籤名思想,構造了一個基於 Schnorr籤名的強指定驗證者籤名方案,並對於方案的安全性進行了分析; 在該方案的基礎上,構造了多籤名者強指定多個驗證者籤名方案 (MSMV國SDVS)。本發明的方法按照以下步驟具體實施 步驟1.生成系統參數選擇階為素數g的循環群G^,其中g是生成元,即0^=, |Gg」=0W(g)=《,《是一個二進位長度為/的素數,/是安全參數。要求在循 環群Gg,9中計算離散對數問題DLP是困難的。選擇一個密碼學單向哈希函數7/ : {0, 1}' 4 {0,1}',例如可選取// = S/i4-1 或/Z二MD5 。步驟2.用戶密鑰建立為多個籤名者",,/ = 1,...,"秘密選擇私鑰、^《,/ = 1,...,",並通過秘密 信道分發,分別為每個籤名者生成公鑰A=g、,Z = l,...,M;為多個指定的驗證者",7、l,…,v秘密選擇私鑰、q《,X…,v,並通過秘密信道分發,分別為每個驗證者生成公鑰、=g、,y = l,...,v。 步驟3.籤名過程設多個籤名者為",,/",…,", 強指定多個驗證者為".,7、1,…,v , 消息為m;31 )每個籤名者",, 1,…,",隨機選擇^,&e《,_/ = l,.',v ; 計算4,||...|| l卜.ll《'《2 ,並將計算結果A發送給籤名收集者 或者廣播給其他的籤名者;32)籤名收集者或者籤名者將上步每個籤名者計算得到的人收集完全後,按照步驟1選擇的哈希函數,根據下列公式 c^MmllglklMJ…ll4JI…11《)計算得到c,並將c廣播給所有的籤名者;33) 每個籤名者w, ,/ = 1,-'-,"計算5(/1 :、, := 2 -mod《,X.-,v, 並將(^,^,…,&,&X發送給籤名收集者或者廣播給其他的籤名者;34) 根據步驟32)和步驟33)得到的計算結果,籤名收集者或者所有籤名者確定消息附的籤名者("p…,"u)的強指定驗證者(v,,…,、)的籤名是(c;^,&2,…, i,&2;…;"W&'2,…a"v2)"o,i〉'x《'、35) 籤名收集者或者籤名者將消息w和籤名(c;Sm,^,…,&,w.;^,&2,…,^,0發給驗證者。 步驟4.驗證過程41) 每個驗證者",X…,v,計算 乂、 , "1,…,",並將計算結 果發送給驗證收集者或者直接廣播給其他的驗證者;42) 驗證收集者或者驗證者將步驟41)中每個驗證者的計算結果收集完後計算4 =乂':'乂'乂" h…iio::、、 h…ii乂h ,將計算得到的4帶入步驟1選取的哈希函數//:{0,1}'—{0,1}、計算得到Mmllglkll凡,l卜.llAj…ll&),將該計算結果與所收到的籤名)中的c進行比較,如果相等即驗證通過,否則驗證不通過。以下從密碼理論上證明本發明方法的正確性。若消息w的多籤名者(",,...," )強指定驗證者的籤名(c^川,^,…,&,&2;…^a,2,…,^,^)^,'是嚴格按照籤名協議計算的,則 凡 =《《2, hi,…,",y^,…,v,所以有=《'《2 h…ii乂:'乂:211…11《1《2故c =訊m II g Ik II A, i卜.…il人)成立, 一定能夠通過驗證算法。本發明的多籤名者多指定驗證者數字籤名方法,突出特色是可以由多 個人共同生成文檔的數字籤名,同時對於籤名的驗證權可以進行限制,應 用本發明,任意多個籤名者可以協同產生文檔的數字籤名,同時可以由指 定的多個人進行籤名驗證。設有三名設計人員A、 B、 C完成了一份電子圖紙的審查,並需要共 同在文檔上簽名,指定主管D和主管E可以驗證該數字籤名。步驟l.生成系統參數設系統建立的公共參數為階為素數《的循環群 Ggg,以及安全Hash函數// = 5/^4-1 。步驟2.用戶密鑰建立用戶A、 B、 C、 D、 E的私鑰分別為^&,x。;^,XE,這些私鑰分別由 每個用戶秘密保存,對應地,他們的公鑰分別為三名設計人員A、 B、 C欲對消息^計算強指定兩個驗證者D和E的 數字籤名,於是有"=3,^ = 2。步驟3.籤名過程籤名者A隨機選擇r週,^2 e《,。£1,。£2 e《,計算A =力"^ IW;^ , 將^廣播給其他的籤名者B和C;籤名者B隨機選擇^"^^《,r則,^E《,計算4=#'力1《"^2,將^廣播給其他的籤名者A和C;籤名者C隨機選擇r,,^2E《,rC£1,fe^;計算4=-。'《1#';^, 將4廣播給其他的籤名者A和B;籤名者A、 B、 C各自計算c-F(mligll《ll4JI4JI々);4 mod《,s必i = r細,s必2 = raf2 mod《. 籤名者B計算
《則=,則,5肌2 ="肌2 — "s mod《,5則=r朋,s肪2 =廠朋2 - "s mod《
籤名者c計算
《CD1 二廠CD1 ,《CD2 二 rCD2 — "c Hl。d《,5*C£1 二 ,C£1 , 5C£7 二 ,Cii.2 — CXC mod《
三個籤名者分別向其他籤名者廣播(^,^,^,^X,其中卜A、 B、
C。則籤名者A、 B、 C均可將消息附的籤名者(4AC)的強指定驗證者(A。 的籤名(c
;s細,^z 2 , 5超,s必2; 5則,s鵬,5則,s朋2;《,,scto ,《c五!,《c五2)e {0, i} x z《發送*曰
驗證者。
步驟4.驗證過程驗證者D計算力,,2力。,》。'3^2《 3^。'W。2《。, 驗證者E計算3^'力",,力, ,,,:^':^",,分別互相廣播三項計算結 果;驗證者D和E收集完對方的廣播數據後,均可以計算
i =《HD II《H£ ,
驗證者D和E均可將得到的4,i,^帶入步驟1選取的哈希函數 // = S/i4-l,計算得到訊mllglkll^llAlli),將該計算結果與所收到的籤 名(c
;S週,*^£)2 , S肌,S起,《則,SfiD2 , S朋l, S服2 ,》CD1 , ^CD2 ,,《Cf2 )中白勺C進4丁比較,如果
相等即驗證通過,否則驗證不通過。 實施例2
設有四名工作人員A、 B、 C、 D完成了工作報告,需要共同在報告上
籤名,並指定主管E、主管F和主管G可以驗證該數字籤名。
步驟l.生成系統參數設系統建立的公共參數為階為素數《的循環群
iiggg,以及安全Hash函數/f = mz>5。 步驟2.用戶密鑰建立
用戶A、 B、 C、 D、 E、 F、 0的私鑰分別為&^,&,^&,&,&,這些 私鑰分別由每個用戶秘密保存,對應地,他們的公鑰分別為
h,:^,少c,:^,:^,;v,少G °
工作人員A、 B、 C、 D欲共同對消息w進行數字籤名並指定三個驗證 者E、 F、 G進行驗證,於是有^4,v-3。設A是籤名者中的負責人,即籤 名收集者,E是驗證者中的負責人,即驗證收集者。
步驟3.籤名過程-
籤名者A隨機選擇。£1, g£2 e《,。w, gF2 e z: , 。cl, 。C2
A =力",II力 II少n2;
籤名者B隨機選擇^£1,^2€《,rBF1,rBF2ez: , 4c"rBC2
4 = 3^W" II力,纊2 II力。'力",將4發送給籤名收集者A;
籤名者C隨機選擇rC£1, rC£2 e z; , rOT, rCf 2 e z; , rCG1, rCG2 々=ii ^w》"ii《。1;^。2 ,將々發送給籤名收集者A;
籤名者D隨機選擇r, r脂e z:, 』,rDF2 e《,rDG1, rDG2
JD =力,廣il力,"II :^'《002 ,將^發送給籤名收集者A;
收集者八計算^//(附||《||《||^||4114:||戽),並將c發送給B、 C、 D。
籤名者A (兼收集者)計算
s超=G£i, s還=。£2 — CA mod《, w = Gfi, ^;'-2 = GF2 — mod仏.並保存 = , = GG2 - % mod《 '
籤名者B計算
12
計算 e《;計算 計算 計s朋i = r,, s朋2 = — mod《,= , = — cxtf mod
SflGl 二— r8Gl, "^flG2 = rBG2 — CXfi mod《 (X朋'l , 5服2 ,,《BF2 , 了SG1, SflG2 ) e《V發送會合籤名4父集者A_ 。
籤名者c計算
Son = "on , &2 = ro 2 - cxc mod《,《ot = r。-,i, = rc/''2 _ cxc mod《,
ScGl = rCGI,《CG2 = rCG2 _ CXC mod《
C^c/n, ,《m,《CF2, % i,《CG2) e《發送給籤名收集者A 。
籤名者D計算
s朋i = rz n, s促2 = _ cxD mod《,= , = rD/72 — cx0 mod《,
並將
並
;並
^DG1 二 rDGl, ^DG2 =廠ZX 2 — CXZ) mod《 O則, £.2 , i鵬, F2, ^XJ,, ^XJ2 ) e《發送給籤名收集者A 。
籤名收集者A發送消息m的籤名者(4AC,Z))的強指定驗證者(五,F,G)
的攀名S超,, , , ^G1 , ^G2 ; ^服1 , S朋2 , S肌,, ^SG1 ,《恥2 ; 么厶j匕定
Sc51,Sc五2,Sot,^CF2,ScG1,ScG2;S皿,^2,S朗,Sz^2,5dG1,SdG2) G {0,1}' x《"V
的驗證者。
步驟4.驗證過程
驗證者E計算,力" ", , #£'34c£2《£ , a促';4啦3^
驗證者F計算力,,,r,:^';^,,,:^'J^;^,;^';;,2;;, 驗證收集者E;
並發送給
驗證者G計算力。'《"7,力。《,,,#。';^。2《。,7,'力"f ,並發送給 驗證收集者E。
驗證收集者E計算
A =》£'《E2:^ 1l力" "7 1l力。W少7 , ^ ii《" "r 11《。'《",,
忑ik";d, 11《",",,
134 IIWHG ,
並向其他驗證者F和G廣播以上四項計算結果。 驗證者E、 F、 G均可將得到的4,^,^,iD帶入步驟1選取的哈希函數 // =廳,計算得到Mmllglkll^ll^ll^llA),將該計算結果與所收到的
籤名5週,^五2 , ^屍1, ",, ; S朋l , S腦,S肌,^胖2 , , ^G2 ;中白勺^進行比較 如
果相等即驗證通過,否則驗證不通過。
本發明提供的數字籤名算法可以有效地防止籤名偽造,偽造籤名相當 於求解公認的基於離散對數困難問題,其安全性基於離散對數的困難性和 哈希函數的單向性。
綜上所述,本發明所提供的電子文檔數字籤名安全保護方法,運算效 率高,可以控制該籤名的驗證權,能夠提供電子文檔在存儲或傳輸中的完 整性、真實性和不可否認性的安全保護。
權利要求
1、一種多籤名者強指定多個驗證者的數字籤名文檔安全保護方法,其特徵在於,多人共同生成數字籤名,並只有指定的多個驗證者可以驗證該數字籤名,該方法按照以下步驟具體實施步驟1.生成系統參數選擇階為素數q的循環群Gg,q,其中g是生成元,即Gg,q=g,|Gg,q|=ord(g)=q,q是一個二進位長度為l的素數,l是安全參數,要求在循環群Gg,q中計算離散對數問題DLP是困難的,選擇一個密碼學單向哈希函數H{0,1}*→{0,1}l;步驟2.用戶密鑰建立為多個籤名者ui,i=1,…,u秘密選擇私鑰 top= "127" left = "121"/>並通過秘密信道分發,分別為每個籤名者生成公鑰 top= "138" left = "116"/>為多個指定的驗證者vj,j=1,…,v秘密選擇私鑰 top= "149" left = "135"/>並通過秘密信道分發,分別為每個驗證者生成公鑰 top= "160" left = "131"/>步驟3.籤名過程設多個籤名者為ui,i=1,…,u,強指定多個驗證者為vj,j=1,…,v,消息為m;31)每個籤名者ui,i=1,…,u,隨機選擇 top= "216" left = "135"/>j=1,…,v;計算 top= "227" left = "36"/>並將計算結果 top= "227" left = "140"/>發送給籤名收集者或者廣播給其他的籤名者;32)籤名收集者或者籤名者將上步每個籤名者計算得到的 top= "250" left = "161"/>收集完全後,按照步驟1選擇的哈希函數,根據下列公式<![CDATA[ c=H ( m | | g | | q | | A u 1 | | | | A u i | | | | A u u ) ]]>計算得到c,並將c廣播給所有的籤名者;33)每個籤名者ui,i=1,…,u計算sij1=rij1, top= "53" left = "120"/>mod q,j=1,…,v,並將 top= "62" left = "34"/>發送給籤名收集者或者廣播給其他的籤名者;34)根據步驟32)和步驟33)得到的計算結果,籤名收集者或者所有的籤名者確定消息m的籤名者(u1,…,uu)的強指定驗證者(v1,…,vv)的籤名是<![CDATA[ ( c ; s111 , s112 , , s 1 v 1 , s 1 v 2 ; ; s u 11 , s u 12 , , s uv 1 , s uv 2 ) {0,1} l z q 2uv ; ]]>35)籤名收集者或者籤名者將消息m和籤名(c;s111,s112,…,s1v1,s1v2;…;su11,su12,…,suv1,suv2)發給驗證者;步驟4.驗證過程41)每個驗證者vj,j=1,…,v,計算 top= "139" left = "110"/>i=1,…,u,並將計算結果發送給驗證收集者或者直接廣播給其他的驗證者;42)驗證收集者或者驗證者將步驟41)中每個驗證者的計算結果收集完後計算 top= "172" left = "43"/>將計算得到的 top= "173" left = "168"/>帶入步驟1選取的哈希函數H{0,1}*→{0,1}l,計算得到 top= "195" left = "53"/>將該計算結果與所收到的籤名(c;s111,s112,…,s1v1,s1v2;…;su11,su12,…,suv1,suv2)中的c進行比較,如果相等即驗證通過,否則驗證不通過。
2、根據權利要求1所述的數字籤名文檔安全保護方法,所述的哈希函 數//: {0,1}* ■> {0,1}'選取// =鵬-1或= MD5 。
全文摘要
本發明公開了一種多籤名者強指定多個驗證者的數字籤名文檔安全保護方法,該方法按照以下步驟具體實施步驟1.生成系統參數選擇階為素數的循環群和一個密碼學單向哈希函數;步驟2.用戶密鑰建立為多個籤名者秘密選擇私鑰,並通過秘密信道分發,分別為每個籤名者生成公鑰;為多個指定的驗證者秘密選擇私鑰,並通過秘密信道分發;步驟3.籤名過程多個籤名者通過運算對消息m計算強指定驗證者數字籤名;步驟4.驗證過程通過數字運算驗證等式是否成立,若成立,驗證通過,否則驗證失敗。本發明的方法運算效率高,能夠提供電子文檔在存儲或傳輸中的完整性、真實性和不可否認性的安全保護。
文檔編號H04L9/32GK101651542SQ20091002370
公開日2010年2月17日 申請日期2009年8月26日 優先權日2009年8月26日
發明者張亞玲, 王尚平, 王曉峰 申請人:西安理工大學