劉 媛,張秉儒
(青海師范大學(xué),青海 西寧810000)
盲簽名已經(jīng)發(fā)展成為一類特殊的數(shù)字簽名,簽名者不知道所簽消息的具體內(nèi)容,接收者將盲簽名進(jìn)行脫盲變換轉(zhuǎn)化為普通的簽名,簽名人即使記錄每次簽名的記錄也不能將盲簽名和脫盲后的簽名相關(guān)聯(lián)[1].在那些要求用戶匿名性的場所,如匿名證券交易,口令認(rèn)證,匿名電子現(xiàn)金和匿名電子投票等領(lǐng)域,盲簽名技術(shù)發(fā)揮著重要作用.
在保證安全的前提下,密碼學(xué)家們致力于盡量減少通信量研究,Nyberg-Rueppel提出了消息恢復(fù)簽名方案[2],只需傳遞簽名,接收方可以由簽名和密鑰恢復(fù)消息,直接縮短了傳遞的信息量,節(jié)省通信帶寬,提高效率.
當(dāng)前的簽名方案多數(shù)是由一個安全的雜湊函數(shù)將消息m對應(yīng)到h(m),以此保證消息的完整性、認(rèn)證性和安全性.且h(m)的長度遠(yuǎn)小于m的長度.這樣一來恢復(fù)的是h(m)而不是m;若在簽名方案中用m,消息的保密性勢必會受到威脅.冗余函數(shù)可以兼顧保密性和消息恢復(fù)特性,不過冗余函數(shù)的運(yùn)算效率要低于 hash函數(shù),因此其更適用于短消息傳遞.
簽名技術(shù)發(fā)展到現(xiàn)在,對簽名者的不可否認(rèn)性進(jìn)行了較為深入的研究,提出了各種簽名者不可否認(rèn)的方案.基于當(dāng)前的網(wǎng)絡(luò)技術(shù),信息傳送過程中的延遲或者丟失是客觀存在的,如果接收方恢復(fù)了消息卻予以否認(rèn),這樣的糾紛必須通過監(jiān)管和技術(shù)兩方雙管齊下予以解決.為了滿足當(dāng)今社會的需求,對收發(fā)雙發(fā)不可否認(rèn)的簽名技術(shù)的研究至關(guān)重要.
筆者在已有研究基礎(chǔ)上做了進(jìn)一步嘗試,結(jié)合公鑰/私鑰密碼體制,提出一個收發(fā)雙方都不能否認(rèn)的具有消息恢復(fù)特性的盲簽名方案,有效地解決了上述問題,具有很好的實(shí)用價值和應(yīng)用前景.
生成可恢復(fù)消息的盲簽名步驟:
步驟1 簽名人隨機(jī)選擇 k∈Zq,計算 r=gkmod p.
步驟2 將r發(fā)給消息擁有者;消息擁有者將消息進(jìn)行冗余變換 m→R(m),隨機(jī)選取 l1,l2,l3∈Zn,盲化R(m):
步驟3 將r'發(fā)送給簽名人,簽名人不知道R(m),計算s=r'x+k mod q,然后將s發(fā)給消息擁有者.消息擁有者驗(yàn)證gs=yr'r mod p是否成立.若成立,計算S=sl1+l2mod q,(R,S)為常規(guī)的具有消息恢復(fù)性能的的盲簽名;否則輸出“false”.任何人都可以驗(yàn)證簽名的正確性:R(m)=g-SyRR mod p.再由公開的冗余函數(shù)恢復(fù)原消息.通常只希望指定的接收者能夠恢復(fù)消息,將(R,S)處理得到一個指定接收者的簽名[4].
(R,S)變換為指定接收者的盲簽名步驟:
步驟1 簽名擁有者(以下稱為A)隨機(jī)選取對稱密鑰k,計算 M=Ek(R,S),與關(guān)鍵字ξ結(jié)合后簽名并加密,發(fā)送m1給指定的接收人(以下稱為B):
式中:ξ為關(guān)鍵字,包含報頭,消息摘要等;ωn為實(shí)時時間戳,n=1,2,3,…,N;D 和 E 為 RSA 的加密/解密算法;PA,SA分別為A的公鑰和私鑰;PB,SB分別為B的公鑰和私鑰.
步驟2 B收到m1后,計算得到ξ和M,根據(jù)ξ中的內(nèi)容判斷是否繼續(xù)通信過程.若不需要該報文,單方面終止通信,否則計算
步驟3 發(fā)送m2給A,A保留m2作為B收到m1的證據(jù),將k簽名加密得到的-k發(fā)送給B:
步驟4B解密-k得到T″,判斷時間戳ω3是否合理且沒有使用過,保存ω3,計算:
這樣就可以驗(yàn)證簽名的正確性,計算得到R(m),再利用R-1得到m.
上述方案中,B仍然可以通過否認(rèn)最后一步曾經(jīng)收到-k,來達(dá)到對自己有利但違背公平公正原則的目的.為此引入可信第三方CA來制衡.A選取a∈,傳送λ =(,IDB,IDA)給B.B 選擇隨機(jī)數(shù)b∈,傳送 μ =,gb,IDA,IDB)給 A,H 是收到 λ的反饋承諾.A收到μ以后,計算
傳送υ給CA,并通知B從CA處獲得新數(shù)據(jù).B通過與CA的身份認(rèn)證得到υ,計算
B用消息密鑰k解密
恢復(fù)R(m),檢驗(yàn)如果R(m)∈R(M),則m=R-1(R(m));如果這個消息m有意義,并且和關(guān)鍵字ξ中的信息吻合,就認(rèn)為這個消息是安全、可靠、有效的[5-6].
1)收方不能否認(rèn)其收到簽名.B首先收到的是加密后的簽名,沒有得到 ga之前,既不能對簽名進(jìn)行驗(yàn)證,也不能得到冗余消息R(m),他必須向A發(fā)送已經(jīng)接收到簽名的證據(jù)H,A才會將ga傳送給B,而有關(guān)ga的數(shù)據(jù)A必須經(jīng)由CA得到.這樣,由于可信第三方的存在,B不能否認(rèn)他收到-k,若出現(xiàn)了上述問題中的糾紛,只能由他自己承擔(dān)責(zé)任.從而維護(hù)了信息交互過程的公平公正性,有利于進(jìn)一步促進(jìn)該類協(xié)議的發(fā)展,增強(qiáng)人們對密碼學(xué)協(xié)議的信心,更好地服務(wù)人們的生活.
2)原始簽名的不可偽造性.任何人要偽造一對有效的盲簽名,使得
成立,有以下3種途徑:①任取R,S,帶入上式中,R(m)=g-SyRR mod p,這樣得到的 R(m)冗余度非常高,逆函數(shù)得到的消息沒有錯誤且有意義的概率小之又小,也就是說冗余函數(shù)的引進(jìn)有效防止了惡意的偽造攻擊;②任取消息m和R,從中解出S,等價于求解離散對數(shù)問題;③任取消息m和S,從中解出R,比求解離散對數(shù)問題還要困難.
3)簽名者的不可否認(rèn)性.簽名中含有A的私鑰,B在驗(yàn)證時用到A的公鑰,A不能否認(rèn)自己的簽名.
4)CA不能冒充A,也不能驗(yàn)證簽名.RSA算法保證了B可以確信消息來源和恢復(fù)消息,其他人要想求得A的私鑰,面臨求解離散對數(shù)難題.由于A將gα以加密的形式傳送給TTP,在沒有B的私鑰的情況下,很難獲得gα;即便是不幸CA知道了gα,但沒有B的私鑰,還是不能驗(yàn)證簽名并恢復(fù)消息.這就有了雙重的安全保障。
5)簽名只能被指定的接收方驗(yàn)證恢復(fù).RSA算法中含有接收方的公鑰,只有知道接收方的私鑰才能驗(yàn)證并恢復(fù)消息,故可以認(rèn)為簽名(R,S)只能被指定接收方驗(yàn)證并恢復(fù)消息.
6)盲性分析.可以證明這是一個強(qiáng)盲簽名方案.簽名人的視圖為(r,r',s),指定的接收方視圖為(R,S,M),他們關(guān)系如下:
任給一組(r,r',s)和 (R',S',M'),任選 l1,那么
因此(r,r',s)與任意一組(R',S',M'),都存在一組l1,l2,l3與之對應(yīng),這個方案是無條件盲的.
數(shù)字簽名的作用之一是防止抵賴,已有的方案對簽名人做了這方面的限制,但是對接收方行為的規(guī)范性研究較少.針對這個問題,在具有消息恢復(fù)功能的簽名方案的基礎(chǔ)上,提出了一種收方不可否認(rèn)的方案.該方案過程簡單明了,為構(gòu)造更簡潔實(shí)用的協(xié)議做了一些探索,多次信息交互所花費(fèi)的時間和帶寬,避免了上述漏洞引起的糾紛,徹底保證了通信的公平公正性.保密性好,特別適合于商業(yè)領(lǐng)域的信息交互.需要指出的是,最后一步的傳遞必須要通過可信第三方,而現(xiàn)實(shí)中完全誠實(shí)可靠的第三方是個較難實(shí)現(xiàn)的問題,在較大的系統(tǒng)中,可信第三方也會成為系統(tǒng)的瓶頸.
同一對消息簽名,有的時候需要發(fā)送給不同的接收者,如果采用指定接收人的方案,對于每一個接收者,都要重新進(jìn)行簽名,這無疑是種浪費(fèi).方案中每一個消息(冗余消息)都只對應(yīng)著一個原始的簽名,用RSA密碼算法,對不同的接收者使用不同的公鑰加密,就可以發(fā)送給不同的接收者,只保證有指定的接收者能夠驗(yàn)證并恢復(fù)消息.
[1]趙澤茂.數(shù)字簽名理論[M].北京:科學(xué)出版社,2007.
[2] Nyberg K,Rueppel R.Message recovery for signature schemes based on the discrete logarithm[J].Designs,Codes and Crytography,1996,7(1 -2):61 -81.
[3]吳佩萱.引入冗余函數(shù)的基于橢圓曲線的消息恢復(fù)簽名方案[J].長江大學(xué)學(xué)報,2005,2(10):351 -225.
[4]屈娟,張建中.具有消息恢復(fù)的指定接收者的代理盲簽名方案[J].計算機(jī)工程與應(yīng)用,2008,44(33):110-111.
[5]黃振杰,王育民,陳克非.Nyberg-Rueppel消息恢復(fù)盲簽名的一般化和改進(jìn)[J].通信學(xué)報,2005(12):131-135.
[6]趙澤茂,吳高遠(yuǎn),劉鳳玉.基于橢圓曲線的具有消息恢復(fù)的簽名方案[J].計算機(jī)工程與科學(xué),2005(2):3-4.