專利名稱:一個具有前向安全的門限數(shù)字簽名方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,涉及對數(shù)字信息進行簽名問題,更確切地說是涉及一種 能夠增加敵手竊取簽名密鑰難度并且能夠減輕簽名密鑰泄露影響的數(shù)字簽名方法與系統(tǒng)。
背景技術(shù):
前向安全簽名的概念在1997年由Anderson引入,解決了通常數(shù)字簽名的一些缺陷一 旦秘密密鑰丟失(或被竊取),以前由這個密鑰生成的所有簽名都變得無效。為了減少這樣的 損失,Anderson提出把密鑰的有效期分成時段,在每個時段的最后,簽名者以一個單向的模 式從當(dāng)前時段的秘密密鑰得到一個新的下一個時段秘密密鑰,并且安全的刪除不再使用的秘 密密鑰。而在整個密鑰的生命周期里公鑰不變,這個方法確保了泄露密鑰的時段以前的所有 簽名的有效性。在最近這些年,具備前向安全的數(shù)字簽名方案得到研究和發(fā)展。Bellare和 Miiie通過對通常簽名方案安全定義的擴展,給出了前向安全正式的定義,同時提出了兩個方 案 一個是在普通簽名基礎(chǔ)上使用樹型結(jié)構(gòu)的證書鏈構(gòu)造的方案另一個是修改通常的簽名 方案(Fiat-Sham簽名方案)。2001年,Abdalla和Miner給出一個前向安全的門限數(shù)字簽名, 但是該方案的簽名密鑰和驗證密鑰都比較長。
我們這里要研究的前向安全的門限簽名方案應(yīng)用門限機制對消息進行簽名,即將簽名密 鑰分割成多份,分別有多人保管,須由一定數(shù)目的簽名子密鑰擁有者聯(lián)合才能夠產(chǎn)生一個有 效的簽名,該簽名等同于由簽名密鑰直接產(chǎn)生并可使用對應(yīng)的公開密鑰驗證其有效性。方案 還采用密鑰進化機制,把整個周期(一般是聲明的公鑰有效期)分成更小的一個個時段,在 整個周期內(nèi),公鑰是固定不變的,而私鑰是隨時段不斷進化。
一個標(biāo)準(zhǔn)的數(shù)字簽名包括密鑰生成協(xié)議、簽名協(xié)議和簽名驗證算法,而在前向安全的數(shù) 字簽名方案中,還包括一個密鑰進化協(xié)議,這個協(xié)議是用來說明在整個周期中,密鑰是怎樣 進化的。另外, 一個不可忽視的問題是在門限簽名系統(tǒng)中,成員簽名子密鑰會出現(xiàn)損壞或丟 失,當(dāng)子密鑰損失數(shù)目超過一定值后,整個系統(tǒng)將不可用,另外針對某具體應(yīng)用,可能會有 向系統(tǒng)中加入新成員的應(yīng)用需求,因此一個完善的前向安全的門限簽名方案還應(yīng)該包括一個 成員加入?yún)f(xié)議。
一個4(/,^^^, )前向安全的門限數(shù)字簽名是指該方案最多可以在/個參與者被攻陷后,
仍能保證其簽名密鑰的安全性,^:的工作過程如下在密鑰生成階段,分發(fā)者生成公、私鑰并將私鑰分割后^'發(fā)給《個參與者。
在每一個時間段的開始時刻,由《個參與者中的/^個沒被攻陷的參與者執(zhí)行密鑰進化 協(xié)議,協(xié)議執(zhí)行后,這個時段的私鑰將改變,并且每一個參與者,無論是否參與密鑰進化協(xié) 議,都會得到這個時段屬于自己的新的子密鑰。
要對一個消息m進行簽名,需&個參與者共同執(zhí)行簽名協(xié)議,進而生成一個使用當(dāng)前 時段簽名密鑰簽署的消息簽名。這個簽名中將包括本時段的序號并可以由公鑰驗證通過。
當(dāng)有新成員要加入系統(tǒng)時,需要&個參與者共同執(zhí)行成員加入?yún)f(xié)議,為新加入成員生成 一個這一時段屬于他的簽名子密鑰。該過程不泄露任何原有成員的秘密信息,并且新成員加 入后,與原有成員擁有相同的地位。
驗證過程同普通數(shù)字簽名驗證過程相同。任何持有公鑰的一方都可以執(zhí)行該過程,驗證 結(jié)果將是"接受"或"拒絕",以告知驗證者被驗證的簽名是否有效。我們假設(shè)前向安全的門 限數(shù)字簽名方案產(chǎn)生的簽名形式是-,tog、其中_/為產(chǎn)生該簽名的時段序號,對于一個前向 安全的門限簽名方案,李時段/,即使敵手攻陷Z個以上參與者,他也不能成功偽造一個簽名 </《塔>滿足1^^/^附,<_/, 昭>)=1并且_/</。這里,venj50是簽名驗證算法,也就是說,敵手即 使在第/時段獲得簽名密鑰,他也不能偽造出/時段之前的有效簽名。前向安全的方案都要求 使用者刪除前一時段使用的密鑰,并將這一步驟作為密鑰進化協(xié)議的一部分,這很關(guān)鍵,否 則,敵手攻陷系統(tǒng)后將根據(jù)以前時段的子秘密信息獲得以前時段的簽名密鑰來生成以前時段 的有效簽名。
在我們的發(fā)明中,應(yīng)用了下面的數(shù)論知識
設(shè)&和/是兩個安全參數(shù),A^p2^3(mod4)是兩個大素數(shù)。^=^; 2是一個A:位的整數(shù)(即 W是一個Blum整數(shù))。為了簡化計算,我們可以合理地假設(shè)A^2^1,并且I ZN* I ^卞2+l 》2"1。記2是模W的二次剩余集合。由數(shù)論中的定理可知I 2 I》2k—3,并且對于集合2中 任意元素義,x的四個平方根中有且僅有一個屬于g,因此,平方在0上是一個置換。從現(xiàn)在 起,當(dāng)我們說:c的平方根時,我們是指屬于Q的那個平方根。
令^/eg,定義i^(Z)-z2modW, F, = (7Z2 mod W 。對于/位二進制串cr =…cr,,
定義f; :g — 2為巧(z) = (…(/^(、(z)))…)=z2'〃ff modw。(注意這里的tr并非
通常意義上的C/的o"次冪,o"在這里是一個二進制串,而非代表一個整數(shù))因為平方是在Q 上的置換,而f/e0,故&在Q上也是一個置換。在知道u和n的前提下,i^(z)可以快速計算,同時,如果知道a和a,則對于給定 的Y,可以快速計算出Z二i^—'(y)。(通過計算5 = ^2, modAr, Z = y2—' S^modAT可得。
這些計算可以先分別計算mod^和modA的結(jié)果,然后用中國剩余定理合并。)然而,如果 不知道U的平方根,那么F。'是難于計算的。下面我們給出證明
引理給定yeg和兩個不同的等長的串tr和T, Z1= iV、y), Z2= i^1(7),能夠計算出Fe^ 且 一三f/modW
證明如果|<7|=|7:|=1,(無損于一般性地),令<7=0, r=l,則Fo(Zi)-^(Z2)-;r,則&2三C/Z22 mod見于是得到r= & /Z2 mod AT。在歸納證明中,令ff和f為兩個長w+l位的串,<7,和r,
為其對應(yīng)的前加位。如果F。,(Z,)^i^(Z2),則歸納假設(shè)完成,否則(t和t最后一位應(yīng)該是不同 的,于是(不失一般性),假設(shè)ff最后一位為O, T最后一位為l,則F"F。d)h^^,(Z2)), 同上可以得證。根據(jù)上面提到的單向函數(shù)可以構(gòu)造下面的數(shù)字簽名方案。本文提出的前向安全的門限簽 名方案就是以該方案為基礎(chǔ),加入門限機制和前向安全機制得到的。
簽名者生成大模數(shù)W和一個隨機數(shù)SEg, S作為簽名密鑰,需安全保管。計算u-(^v1 并公開(AT,i;)作為公鑰。H()為一個輸出位數(shù)為/的哈希函數(shù)。
要對消息M簽名時,首先生成隨機數(shù)/ eg,計算p^, o-風(fēng)igw), Z^^/(7)^f modAf。輸出(Z, o)作為消息M的簽名。
驗證者驗證簽名時,首先驗證Z^OmodW,而后計算y=F。(Z)=Z2't/CTmodW,最后檢 驗0=//(/州是否成立,成立則證明該簽名是A/的合法簽名。'
該數(shù)字簽名算法是一個經(jīng)典算法,其正確性和安全性已經(jīng)由許多前輩學(xué)者證明過并經(jīng)歷 了長時間的實踐檢驗。
發(fā)明內(nèi)容
本發(fā)明的目的是設(shè)計一種數(shù)字簽名方法與簽名系統(tǒng),該簽名方法具有門限機制與子秘密 更新機制。門限機制增強了簽名密鑰的安全性,并可以起到權(quán)利分散的作用;子秘密更新機 制實現(xiàn)了簽名密鑰的前向安全,即即使敵手獲得當(dāng)前時間段的簽名密鑰,敵手也不能夠通過該密鑰偽造出一個屬于前一時間段的合法簽名,保護了以前的簽名的有效性,降低了密鑰 泄露的損失。另外,該簽名方法還擁有成員加入機制,加強了方案的安全性和適用范圍。
方法的特點
1. 本簽名方法是一個(t,2t+l,2t+l,t+l,n)的簽名方案,其中n^3t+l,
2. 密鑰長度短簽名密鑰(私鑰)與驗證密鑰(公鑰)的長度是常數(shù),與總時段數(shù)無關(guān), 并且與其他不具前向安全性的簽名方案的密鑰長度相當(dāng)。
3. 在門限數(shù)字簽名方案中加入前向安全機制的方法具有不額外增加計算量的特點,即該 前向安全門限簽名方案與普通門限數(shù)字簽名方案具有相同的效率。
4. 完善的成員加入機制,使系統(tǒng)更安全更靈活。
本發(fā)明的技術(shù)方案是這樣的 .
整個方案包括五個部分密鑰生成協(xié)議、密鑰進化協(xié)議、簽名協(xié)議、簽名驗證算法、新 成員加入?yún)f(xié)議。另外,方案中應(yīng)用到一些關(guān)于秘密共享以及安全多方計算的知識,我們將這 些知識作為基礎(chǔ)模塊應(yīng)用在我們的方案中。下面我們首先介紹基于這些基礎(chǔ)知識協(xié)議模塊, 然后給出我們發(fā)明的前向安全的門限數(shù)字簽名方案的完整描述。
一、Shamir秘密共享方案(Shamir-SS)
1979年,Shamir提出秘密共享的思想,并給出了一個有限域上的秘密共享方案。具體方 案如下設(shè)GF(《)是一有限域,其中9是一大素數(shù),滿足《2" + l,秘密fl。是在GF(g)^0)上
均勻選取的一個隨機數(shù),;t-l個系數(shù)A,^,…aH的選取也滿足AeKGF。)U(^。在GF(《)上構(gòu)
造一個f次多項式/0) = 00十a(chǎn),;c + a2A:2 +' 《。
"個參與者記為尸,,A…尸n ,"分配到的子密鑰為/(i)。如果任意什l個參與者 A,…,i^ (is/, </2 《")要想得到秘密。q,可使用{(';,/(~))|/ = 1,2,.〃 + 1}構(gòu)造如
下的線性方程組<formula>formula see original document page 8</formula>因為"1《/Sf + 1)均不相同,所以可由Lagrange插值公式構(gòu)造如下的多項式 /") = W》n)^: (mod《)
_/=1 ,=1 l!廣1,)
從而可得秘密 =/(0)。
由上面知識我們構(gòu)造下面的秘密共享算法-
Shamir-SS算法
算法參數(shù)Z, s, ", f
1. 執(zhí)行者在集合Z中選擇《個隨機數(shù)a,,^,…,^作為系數(shù),以秘密s作為常數(shù)項構(gòu)造f次 多項式/(x)-s + ajjc + fl,2十…a,;
2. 執(zhí)行者為多項式賦值,得到關(guān)于秘密s的子秘密^ = = /(2),…,、=/( )。
算法說明Shamir-SS實現(xiàn)將秘密s利用Shamir秘密共享方案分割成n份,得到子秘密 ^&,…A并且其中的什l份聯(lián)合可以恢復(fù)出共享秘密s。
二、安全多方計算
在我們的協(xié)議的子秘密更新的部分中,需要解決參與者聯(lián)合計算生成原共享秘密平方的 子秘密的問題,這個問題可歸類于計算生成兩個共享秘密的乘積的子秘密的問題,艮P:假設(shè) "個參與者,通過f次多項式/;(Jc)和力(:c)共享秘密a和/ '即厶(O)-a,力(0) = / 。現(xiàn)在,
參與者要聯(lián)合計算獲得o^的子秘密。對于這個問題,有下面的解決方案。
令^所擁有的關(guān)于"、/ 的子秘密記為、,厶(x)與力(x)的乘積為
A W+ — + 7Vc + "/9 = _Mx),對于B"2"1,有/^(!) = / (0力(0,所以可 以寫成
爿=
力,-這里矩陣^-( )是(2f + l)x(2f + l)的范德蒙矩陣, =i"。顯然,是可逆矩陣,設(shè) 」的逆矩陣為vT1, v^的第一行記為(;ij…A,+,),當(dāng)Z確定的情況下,^…Aw為確定的常 數(shù),W-A/^(l) +…+ A,""(2, + l)。如果給定、次多項式A(jc),…,Ux)滿足
<formula>formula see original document page 10</formula>),定義<formula>formula see original document page 10</formula>
則有z/(o卜;ij^(i)+…+ ;i^y^(2"i—a/ 。因此,如果每一個參與者用一個多項式
A,.(x)共享他的子秘密,那么/f(;c)就是可以將a^秘密共享的那個《次多項式。
根據(jù)上面的知識,我們設(shè)計了下面的Mult-SS協(xié)議
Mult-SS協(xié)議
參與者S的輸入厶(!')和的值
1. 參與者選取一個隨機f次多項式A,.(x),滿足&(0) = ,用各個參與者對應(yīng)的公 鑰加密屬于他們的值&0)得到五^/A,.C/)) , 1+ 1并以廣播的形式將這些加密后 的子秘密公布出去。
2. 每一個參與者^接收i m^C/))解密出/jiC/),然后計算屬于他的c^的子秘密
,=1
協(xié)議說明協(xié)議利用安全多方計算實現(xiàn)共享兩個共享秘密乘積,參與者利用該協(xié)議可以 利用自己當(dāng)前擁有的兩個共享秘密a和/ 的子秘密厶(0和//0得到屬于他的""的子秘密。
三、聯(lián)合生成并秘密共享隨機數(shù)(Joint-Shamir-RSS) .
在門限數(shù)字簽名方案中,要涉及參與者聯(lián)合生成并秘密共享隨機數(shù)的問題,這個問題可 以用下面的方法解決。每一個參與者S選取一個隨機數(shù)并將它作為秘密,用Shamir秘密共享
方案,計算屬于每一個參與者的子秘密&(1>,&(2) — ,用各個參與者對應(yīng)的公鑰加密屬于他們的子秘密得到^^(《"),丑;^Cs";)…,并以廣播的形式將這些加密后的子秘密公布出去。 這樣,聯(lián)合生成的隨機數(shù)就是各個參與者選取的隨機數(shù)之和,而每一個參與者/^掌握的對應(yīng) 的子秘密為s卩)
Joint-Shamir-RSS協(xié)議
1. 參與者/)選取一個隨機數(shù)s,.作為秘密,并選取f個隨機數(shù) ,fl^…,"f,作為系數(shù)構(gòu)造f次 多項式,(X) = + + <3,.2jc2 + -;
2. 參與者S計算屬于每一個參與者的子秘密S尸,SP,…,S",用各個參與者對應(yīng)的公鑰
加密屬于他們的子秘密得到^^CS"),E&CS^),并以廣播的形式將這些 加密后的子秘密公布出去。
3. 每一個參與者巧解密所有接收到的五^.os^)得《力,而參與者p;.掌握的對應(yīng)的聯(lián)合生
成的隨機數(shù)的子秘密為《力+《"
協(xié)議說明協(xié)議通過每一個參與者選取一個隨機數(shù)并執(zhí)行一個類似于Shamir-SS協(xié)議的 過程,使所有參與者共同生成一個隨機數(shù),而每個參與者掌握這個隨機數(shù)對應(yīng)的子秘密。
下面我給出FST-SIG數(shù)字簽名方案的完整描述,其中所有計算都是modW的。
Protocol FST-S1GL keygen (k, T)
1. 分發(fā)者挑選兩個隨機的大素數(shù);7和^并且滿足pEg三3(mod4), p,《需要保密;
2. 分發(fā)者計算iV,使A^/^;
3. 分發(fā)者在Z^中隨機選取So并計算U, C7-(sf^)-i;
4. 分發(fā)者利用Shamir-SS,在&上計算5b的子秘密"",Sf ,…,"";
5. 令S《=(",0,^)(產(chǎn)l,2,…,ra) , F《-(AT,r,");
6. 分發(fā)者通過保密的信道將a:^發(fā)送給第p個參與者并發(fā)布簽名驗證密鑰尸^ 。
Protocol FST-SIGLsign (m, j)1. 參與者利用Joint-Shamir-RSS共同生成隨機數(shù)及(/ e ZJ ,每個參與者擁有/ 的子秘
2. 參與者根據(jù)/ (^利用Mult-SS計算y,使y^及2^'"、
3. 每一個參與者/ 計算ff^Z/(y,r,/n);
4. 利用Mult-SS參與者聯(lián)合計算Z =及S/;
5. 公布消息m的簽名< ,(Z,o") > 。 Algor她m FST-SIGLverify (叫PIQ sign)
假設(shè)PK是(iV, f/, 7); sign是< y,(Z,cr) > ; ifZ三O(modiV)
return(0); .
else , =Z2'(T+'-i>C/ffmodW;
if o" = i/(/,:r',;w)
thenretum(l); else retura(0);
Protocal FST-SlGLupdate(j)
1. 如果J^:r,則返回空串;否則,執(zhí)行
2. 參與者根據(jù)各自的子秘密利用Mult-SS,計算S,,的2f次方&的子秘密《W;
3. 每個參與者p刪除Sg; Protocal FST-SIGLjion(j,n+l>
1.每一個參與者6,/e0…")在Zg上選取一個隨機Z次多項式《(:c),滿足《("+ 1) = 0。
12(可以這樣選取在Z,上選取隨機數(shù)然后計算《。=-l^1...<>《(H + l)、m0dW 。)
2. 每個參與者s使用其他參與者s的公鑰加密w) (_/ e 0…"),y * o得到
,。(《,楊并廣播。
3. 每個參與者《計算sf+5^^^(1')并將《)保密傳送給尸計i 。
4. 新加入者《+,獲得所有的sf用拉格朗日插值法恢復(fù)出屬于他的子秘密""+1),進而獲
得簽名子密鑰s《"+1> = (w,r,,s)"+1>)。
下面分別對上述協(xié)議、算法進行說明
Protocol FST-SKlkeygen(k,T)是密鑰生成協(xié)議,由可信的分發(fā)者執(zhí)行。分發(fā)者選擇好密 鑰后,用我們上面提到過的Shamir秘密共享方案將秘密密鑰共享生成子密鑰 Si^w =(^,7\0,15^)并通過安全信道傳送給每一個參與者。這里下標(biāo)0代表該應(yīng)用密鑰的時
段序號,上標(biāo)(p)表示該密鑰為參與者Pp擁有。我們需要強調(diào)一點是在簽名方案中應(yīng)用 Shamir秘密共享時,我們的計算是在Zw上的,這里Zw顯然不是域,但是,我們?nèi)匀豢梢宰C
明系統(tǒng)是可以正確運行的。首先,我們要求所有參與者的數(shù)目/J要小于系統(tǒng)參與/7,9,其次
我們要求分發(fā)者分配給參與者g的子秘密為/(0。這樣,所有用于重構(gòu)秘密的子秘密將都不 含有因子p或g。這樣,在秘密恢復(fù)時,我們構(gòu)造的G + l)x(f + l)范德蒙矩陣中的所有元素都 不含有因子p或《,這樣,因為矩陣的行列式為[X^^a(、-、)modW,因此可以保證行列
式值是與W互素的。因此,在上面提出的兩個前提下,在Z^上的Shamir秘密共享方案仍然 是正確的。
Protocol FST-SIGsign(m,j)是簽名協(xié)議,該協(xié)議需要2f+l個參與者參與完成。在基礎(chǔ)的
數(shù)字簽名算法中,隨機數(shù)/ 應(yīng)該是取自于z;;,而在這里,為了加入門限機制,隨機數(shù)需要由 多方共同選取的,這樣w是z^中的一個隨機數(shù)。但是, 一個數(shù)屬于z^但不屬于z;;的概率是
十分小的,大約是1+1,是一個可以忽略的小概率。所以我們可以認(rèn)為由這個簽名協(xié)議生成的簽名仍然是有效的。
Algorithm FST-SIGverifyw (叫PK sign)是簽名驗證算法,與普通數(shù)字簽名方案的驗證算 法相同,該算法由任何擁有對應(yīng)公鑰的一方執(zhí)行。
Protocol FST-SIGupdate(j)是密鑰進化協(xié)議。在每個時段的開始,由2z + l個參與者參與, 執(zhí)行密鑰進化協(xié)議,完成密鑰進化,獲得該時段所使用的簽名密鑰。在時段乂的開始時刻, 成功進行上次密鑰進化的參與者擁有y-l時段簽名密鑰5^,,的子密鑰5^g ,利用Mult-SS,
參與者可計算的2'次方&的子秘密S",然后立即刪除,此時
就"-(iv,r,y,《力)。要強調(diào)的是,除了參與密鑰進化計算的2"i個參與者外,當(dāng)前所有的
沒有被敵手阻斷攻陷的參與者(包括在前一時段被阻斷,現(xiàn)在恢復(fù)的參與者)都可以從這2/ + 1
個參與者獲得足夠信息,計算出屬于自己這一時段的子秘密。
ProtocalFST-SIGjion(j,n+l)是新成員加入?yún)f(xié)議。該協(xié)議可以在任何時刻添加入新成員,例 如在y時段時,首先當(dāng)前成員之間先依據(jù)申請加入成員的序列號"+ l共同生成一個《次多項
式,可以記為A.(x)滿足《.(《 +1) = 0 ,而后當(dāng)前每個成員A分別計算Sf' = S, + ~(/)并將Sf
保密傳送給尸 +1,新加入成員尸"可以更加接受到得Sf'恢復(fù)出一個多項式,帶入M + 1即可得
,繼而得到屬于自己y時段的子密鑰汰)"")二 (iv,r,y,""+1>)。
具體實施例方式
在我們前向安全的門限數(shù)字簽名系統(tǒng)中,所有的參與方包括n個簽名服務(wù)器(即方案中
的參與者)用A表示lS/Sw,他們都位于一個廣播網(wǎng)絡(luò)上,并且他們兩兩之間存在可進行
保密通信的安全信道,這樣的信道可以在廣播信道上使用加密技術(shù)實現(xiàn),使用的加密算法應(yīng) 該是前向安全的公鑰加密算法。另外系統(tǒng)還包括一個可信的分發(fā)者,簽名服務(wù)器與分發(fā)者之 間可以進行廣播通信也可以進行點對點的加密通信。其中任意一臺簽名服務(wù)器都可以接受簽 名請求,發(fā)起并組織一次簽名,并最后將生成的簽名發(fā)送給簽名請求者。最后我們要求系統(tǒng) 具有同歩性,他們在協(xié)議的某一階段可以同步地發(fā)送他們的信息。
本發(fā)明的發(fā)明內(nèi)容部分對實施己經(jīng)做出了詳細(xì)說明,在此不再重復(fù)描述。但需要說明的
是針對不同的應(yīng)用需求,不同的安全性等級要求,可以采用不同規(guī)模的參數(shù)W, /等。因
此本發(fā)明可以具有很多種具體的實施方式。
權(quán)利要求
1、一種數(shù)字簽名方法與簽名系統(tǒng),該簽名方法具有門限機制、子秘密更新機制以及成員加入機制。其特征是,以Shamir-SS協(xié)議、Mult-SS協(xié)議、Joint-Shamir-RSS協(xié)議為基礎(chǔ)模塊,設(shè)計出的前向安全的門限簽名方案(FST-SIG簽名方案)。整個數(shù)字簽名方案包括五個部分密鑰生成協(xié)議、密鑰進化協(xié)議、簽名協(xié)議、簽名驗證算法、新成員加入?yún)f(xié)議。方案中涉及到的協(xié)議及算法的核心內(nèi)容如下Protocol FST-SIG.keygen(k,T)//密鑰生成協(xié)議(1). 分發(fā)者挑選兩個隨機的大素數(shù)p和q,并且滿足p≡q≡3(mod4),p,q需要保密;(2). 分發(fā)者計算N,使N=pq;(3). 分發(fā)者在ZN*中隨機選取S0并計算U,(4). 分發(fā)者利用Shamir-SS,在Zn上計算S0的子秘密(5). 令(ρ=1,2,…,n),PK=(N,T,U);(6). 分發(fā)者通過保密的信道將發(fā)送給第ρ個參與者并發(fā)布簽名驗證密鑰PK。Protocol FST-SIG.sign(m,j)//簽名協(xié)議(1). 參與者利用Joint-Shamir-RSS共同生成隨機數(shù)R(R∈ZN),每個參與者擁有R的子秘密R(ρ);(2). 參與者根據(jù)R(ρ)利用Mult-SS計算Y,使Y=R2l(T+1-j);(3). 每一個參與者ρ計算σ=H(j,Y,m);(4). 利用Mult-SS參與者聯(lián)合計算(5). 公布消息m的簽名<j,(Z,σ)>。Algorithm FST-SIG.verify(m,PK,sign)//簽名驗證算法假設(shè)PK是(N,U,T);sign是<j,(Z,σ)>;ifZ≡0(modN)return(0);else Y′=Z2l(T+1-j)Uσmod N;if σ==H(j,Y′,m)then return(1);else return(0);Protocal FST-SIG.update(j)//密鑰進化協(xié)議(1). 如果j=T,則返回空串;否則,執(zhí)行(2). 參與者根據(jù)各自的子秘密利用Mult-SS,計算Sj-1的2l次方Sj的子秘密(3). 每個參與者ρ刪除Protocal FST-SIG.jion(j,n+1)//成員加入?yún)f(xié)議(1). 每一個參與者Pi,i∈{1…n}在Zq上選取一個隨機t次多項式δi(x),滿足δi(n+1)=0。(可以這樣選取在Zq上選取隨機數(shù){δij}j∈{1…t}然后計算δi0=-∑j∈{1…t}δij(n+1)j(modq)。)(2). 每個參與者Pi使用其他參與者Pj的公鑰加密δi(j)(j∈{1…n},j≠i)得到{ENCj(δi(j))}并廣播。(3). 每個參與者Pi計算并將保密傳送給Pn+1。(4). 新加入者Pn+1獲得所有的用拉格朗日插值法恢復(fù)出屬于他的子秘密,進而獲得簽名子密鑰Shamir-SS算法算法參數(shù)Z,s,n,t(1). 執(zhí)行者在集合Z中選擇t個隨機數(shù)a1,a2,…,at作為系數(shù),以秘密s作為常數(shù)項構(gòu)造t次多項式f(x)=s+a1x+a2x2+…atxt;(2). 執(zhí)行者為多項式賦值,得到關(guān)于秘密s的子秘密s1=f(1),s2=f(2),…,sn=f(n)。Mult-SS協(xié)議參與者Pi的輸入fα(i)和fβ(i)的值(1). 參與者選取一個隨機t次多項式hi(x),滿足hi(0)=fα(i)fβ(i),用各個參與者對應(yīng)的公鑰加密屬于他們的值hi(j)得到1≤j≤2t+1并以廣播的形式將這些加密后的子秘密公布出去。(2). 每一個參與者Pj接收解密出hi(j),然后計算屬于他的αβ的子秘密Joint-Shamir-RSS協(xié)議(1). 參與者Pi選取一個隨機數(shù)si作為秘密,并選取t個隨機數(shù)ai1,ai2,…,ait作為系數(shù)構(gòu)造t次多項式fi(x)=si+ai1x+ai2x2+…aitxt;(2). 參與者Pi計算屬于每一個參與者的子秘密,用各個參與者對應(yīng)的公鑰加密屬于他們的子秘密得到,并以廣播的形式將這些加密后的子秘密公布出去;(3). 每一個參與者Pj解密所有接收到的得,而參與者Pj掌握的對應(yīng)的聯(lián)合生成的隨機數(shù)的子秘密為
全文摘要
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,涉及對數(shù)字信息進行簽名問題,更確切地說是涉及一種能夠增加敵手竊取簽名密鑰難度并且能夠減輕簽名密鑰泄露影響的數(shù)字簽名方法與系統(tǒng)。該簽名方法通過應(yīng)用Shamir秘密共享技術(shù)以及多方安全計算技術(shù)為一個經(jīng)典的基礎(chǔ)數(shù)字簽名方法添加了門限機制與子秘密更新機制。門限機制增強了簽名密鑰的安全性,并可以起到權(quán)利分散的作用;子秘密更新機制實現(xiàn)了簽名密鑰的前向安全,即即使敵手獲得當(dāng)前時間段的簽名密鑰,敵手也不能夠通過該密鑰偽造出一個屬于前一時間段的合法簽名,保護了以前的簽名的有效性,降低了密鑰泄露的損失。另外,該簽名方法還包括一個成員加入機制,加強了方案的安全性和適用范圍。
文檔編號H04L9/32GK101425902SQ20081004653
公開日2009年5月6日 申請日期2008年11月12日 優(yōu)先權(quán)日2008年11月12日
發(fā)明者輝 張, 許春香 申請人:電子科技大學(xué)