劉國輝,王東政
(沈陽大學(xué)教務(wù)處計(jì)算中心,沈陽110044)
通常普通數(shù)字簽名安全性主要有兩個(gè)方面,一是通過數(shù)字簽名抵抗密碼分析,即簽名安全性。另一個(gè)是簽名密鑰保管,即簽名密鑰安全性。前者主要是對安全參數(shù)和假設(shè)的依賴,通常選擇著名ELGamal數(shù)字簽名,RSA數(shù)字簽名與參數(shù)的大數(shù)據(jù)簽名安全性來抗密碼分析。后者一旦密鑰被泄漏,整個(gè)系統(tǒng)會(huì)出現(xiàn)災(zāi)難性后果?,F(xiàn)實(shí)世界主要針對后者攻擊,即簽名的泄漏是難免的,一旦密鑰被泄漏后,即使保存很久的簽名安全性也會(huì)出現(xiàn)問題。
針對以上的問題和傳輸中的泄漏,專家們提出了不同的方式去降低系統(tǒng)密鑰被泄露的機(jī)會(huì)。1997年Anderson針對以上問題提出了前向安全概念,前向安全概念主要是對密鑰有效期分時(shí)段,通過單向模式的每個(gè)時(shí)段是最后簽名者,在當(dāng)前時(shí)段,密鑰對下個(gè)時(shí)段得到密鑰,并對不使用的密鑰進(jìn)行安全刪除。公鑰在整個(gè)密鑰周期里不變,通過這種方式保證了泄漏密鑰時(shí)段簽名有效性。
簽名密鑰進(jìn)化是通過前向安全數(shù)字簽名實(shí)現(xiàn)的。初期用戶通過注冊得到一個(gè)證書,獲得初始密鑰SK0與公鑰。針對有效期劃分T個(gè)時(shí)段,記1,2,3,……,T。公鑰PK有效期內(nèi)是固定,通過時(shí)段不段密鑰更新。i時(shí)段密鑰為SKi。i時(shí)段得到SKi=f(SKi-1),f為單向函數(shù),獲得SKi后,馬上刪除SKi-1。在i時(shí)段,攻破系統(tǒng)獲得密鑰SKi,不能得到SKi-1,SKi-2,……,SK0,因?yàn)檫@些密鑰通過單向函數(shù)已經(jīng)被刪除。簽名秘密密鑰進(jìn)化如下:
當(dāng)前向安全方案不斷發(fā)展和實(shí)踐,通過通常簽名Miner,Bellare對安全定義進(jìn)行了擴(kuò)展,得出前向安全正式概念,從此有了許多前向安全的數(shù)字簽名方案如[1-5]被陸續(xù)提出[1-5]。最近,徐光寶等[6]提出了一種強(qiáng)前向安全的數(shù)字簽名方案,本文通過對該方案的分析指出該方案的驗(yàn)證過程存在錯(cuò)誤,并對驗(yàn)證過程做了修改,使真正的簽名能通過驗(yàn)證。1 文獻(xiàn)[6]方案介紹
基于Guillou-Quisquater設(shè)計(jì)強(qiáng)前向安全的數(shù)字簽名。整個(gè)方案分成初始簽名密鑰生成、簽名密鑰的更新、簽名生成、及簽名驗(yàn)證4個(gè)部分。假定簽名者是Alice,簽名接收者是Bob,有效期分T個(gè)時(shí)段。在每個(gè)簽名時(shí)段Alice有2個(gè)私鑰。
簽名密鑰生成過程如下:
第一,Alice進(jìn)行隨機(jī)取2個(gè)素?cái)?shù)p和q,滿足條件p≡q≡3 mod 4,得出n=pq,選取2個(gè)整數(shù)和 ,使它們滿足如下條件:
第三,Alice計(jì)算:
并將它們分別加密保存。
第四,Alice公開{n,y1,y2,v,w}。
令x0=x mod n,第i(1≤i≤T)個(gè)簽名時(shí)段,Alice一方面根據(jù)等式xi=x2i-1,計(jì)算第i階段的第一私鑰xi,同時(shí)永久刪除xi-1;另一方面對zi解密第i時(shí)段私鑰。
假設(shè)m是待簽名,i(1≤i≤T)簽名時(shí)段為例,Alice生成簽名步驟如下:
第一,隨機(jī)選2個(gè)整數(shù)k,r∈RZ*n,得出:
Q=kvrwmod n
第二,計(jì)算雜湊值:e=H(m‖Q‖i),使之滿足1≤e<v和1≤e<w;否則,返回步驟一。
Alice把(m,s1,s2,e,i)簽名數(shù)據(jù)給驗(yàn)證者Bob。
驗(yàn)證者Bob接收到Alice的簽名數(shù)據(jù)后,進(jìn)行驗(yàn)證步驟如下:
第二,計(jì)算出e'=H(m‖Q'‖i)。
第三,驗(yàn)證等式e=e'是否成立,成立簽名有效,否則簽名無效。
通過對文獻(xiàn)[6]的分析發(fā)現(xiàn)其驗(yàn)證部分存在錯(cuò)誤,即使是簽名者Alice的真實(shí)簽名,接收者Bob也不能驗(yàn)證該簽名是真實(shí)的。
設(shè)m為待簽名消息,簽名者Alice在第i時(shí)段執(zhí)行1.3節(jié)步驟,獲得對m簽名(m,s1,s2,e,i),不能通過1.4節(jié)驗(yàn)證得到。
具體證明如下:
所以有
又因?yàn)?/p>
Q≠Q(mào)'
所以有
e≠e'
故即便是簽名者Alice真正的簽名,也不能通過驗(yàn)證,該簽名方案是錯(cuò)誤的。
下面通過對文獻(xiàn)[6]的驗(yàn)證部分進(jìn)行改進(jìn),使真正的簽名能通過驗(yàn)證,證明其有效。具體驗(yàn)證過程如下:
第二,計(jì)算出e=H(m‖Q‖i)。
第三,驗(yàn)證等式e=e'是否成立,成立簽名有效,否則簽名無效。
設(shè)m'為待簽名,簽名者Alice對1.3節(jié)簽名步驟進(jìn)行操作,獲得簽名數(shù)據(jù),通過驗(yàn)證步驟如下。具體證明如下:
所以有
文獻(xiàn)[6]給出了方案的安全性分析及前向安全和后向安全的分析,指出了該方案本身是安全的,同時(shí)具有前向安全和后向安全的特性,由于本文所做的只是在驗(yàn)證部分對原方案作了修改,所以改進(jìn)方案具有前后向安全特點(diǎn)。
本文針對強(qiáng)前向安全數(shù)字簽名進(jìn)行了分析,發(fā)現(xiàn)其驗(yàn)證部分存在錯(cuò)誤,導(dǎo)致正確的簽名不能通過驗(yàn)證,并對該方案的驗(yàn)證部分做了改進(jìn),使其具有驗(yàn)證的功能,并對簽名的安全性做了說明。
[1] 鄧宇喬.前向安全的盲代理重簽名方案[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(16):97—100.
[2] 萬世昌,程麗紅,張珍.前向安全的混合代理多重簽名方案[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(12):80—83.
[3] 蘆殿軍,張秉儒,趙海興.基于多項(xiàng)式秘密共享的前向安全門限簽名方案[J].通信學(xué)報(bào),2009,30(1):45—49.
[4] 于嘉,孔凡玉,郝蓉,等.一個(gè)基于雙線性映射的前向安全門限簽名方案的標(biāo)注[J].計(jì)算機(jī)研究與發(fā)展,2010,47(4): 605—612.
[5] 劉亞麗,秦小麟,殷新春,等.基于模m的n方根的前向安全數(shù)字簽名方案的分析與改進(jìn)[J].通信學(xué)報(bào),2010,31(6):82—87.
[6] 徐東寶,姜東煥,梁向前.一種強(qiáng)前向安全的數(shù)字簽名方案[J].計(jì)算機(jī)工程,2013,39(9):167—169.