劉國輝,王東政
(沈陽大學教務處計算中心,沈陽110044)
通常普通數字簽名安全性主要有兩個方面,一是通過數字簽名抵抗密碼分析,即簽名安全性。另一個是簽名密鑰保管,即簽名密鑰安全性。前者主要是對安全參數和假設的依賴,通常選擇著名ELGamal數字簽名,RSA數字簽名與參數的大數據簽名安全性來抗密碼分析。后者一旦密鑰被泄漏,整個系統會出現災難性后果。現實世界主要針對后者攻擊,即簽名的泄漏是難免的,一旦密鑰被泄漏后,即使保存很久的簽名安全性也會出現問題。
針對以上的問題和傳輸中的泄漏,專家們提出了不同的方式去降低系統密鑰被泄露的機會。1997年Anderson針對以上問題提出了前向安全概念,前向安全概念主要是對密鑰有效期分時段,通過單向模式的每個時段是最后簽名者,在當前時段,密鑰對下個時段得到密鑰,并對不使用的密鑰進行安全刪除。公鑰在整個密鑰周期里不變,通過這種方式保證了泄漏密鑰時段簽名有效性。
簽名密鑰進化是通過前向安全數字簽名實現的。初期用戶通過注冊得到一個證書,獲得初始密鑰SK0與公鑰。針對有效期劃分T個時段,記1,2,3,……,T。公鑰PK有效期內是固定,通過時段不段密鑰更新。i時段密鑰為SKi。i時段得到SKi=f(SKi-1),f為單向函數,獲得SKi后,馬上刪除SKi-1。在i時段,攻破系統獲得密鑰SKi,不能得到SKi-1,SKi-2,……,SK0,因為這些密鑰通過單向函數已經被刪除。簽名秘密密鑰進化如下:

當前向安全方案不斷發展和實踐,通過通常簽名Miner,Bellare對安全定義進行了擴展,得出前向安全正式概念,從此有了許多前向安全的數字簽名方案如[1-5]被陸續提出[1-5]。最近,徐光寶等[6]提出了一種強前向安全的數字簽名方案,本文通過對該方案的分析指出該方案的驗證過程存在錯誤,并對驗證過程做了修改,使真正的簽名能通過驗證。1 文獻[6]方案介紹
基于Guillou-Quisquater設計強前向安全的數字簽名。整個方案分成初始簽名密鑰生成、簽名密鑰的更新、簽名生成、及簽名驗證4個部分。假定簽名者是Alice,簽名接收者是Bob,有效期分T個時段。在每個簽名時段Alice有2個私鑰。
簽名密鑰生成過程如下:
第一,Alice進行隨機取2個素數p和q,滿足條件p≡q≡3 mod 4,得出n=pq,選取2個整數和 ,使它們滿足如下條件:


第三,Alice計算:

并將它們分別加密保存。
第四,Alice公開{n,y1,y2,v,w}。
令x0=x mod n,第i(1≤i≤T)個簽名時段,Alice一方面根據等式xi=x2i-1,計算第i階段的第一私鑰xi,同時永久刪除xi-1;另一方面對zi解密第i時段私鑰。
假設m是待簽名,i(1≤i≤T)簽名時段為例,Alice生成簽名步驟如下:
第一,隨機選2個整數k,r∈RZ*n,得出:
Q=kvrwmod n
第二,計算雜湊值:e=H(m‖Q‖i),使之滿足1≤e<v和1≤e<w;否則,返回步驟一。
Alice把(m,s1,s2,e,i)簽名數據給驗證者Bob。
驗證者Bob接收到Alice的簽名數據后,進行驗證步驟如下:
第二,計算出e'=H(m‖Q'‖i)。
第三,驗證等式e=e'是否成立,成立簽名有效,否則簽名無效。
通過對文獻[6]的分析發現其驗證部分存在錯誤,即使是簽名者Alice的真實簽名,接收者Bob也不能驗證該簽名是真實的。
設m為待簽名消息,簽名者Alice在第i時段執行1.3節步驟,獲得對m簽名(m,s1,s2,e,i),不能通過1.4節驗證得到。
具體證明如下:

所以有

又因為
Q≠Q'
所以有
e≠e'
故即便是簽名者Alice真正的簽名,也不能通過驗證,該簽名方案是錯誤的。
下面通過對文獻[6]的驗證部分進行改進,使真正的簽名能通過驗證,證明其有效。具體驗證過程如下:
第二,計算出e=H(m‖Q‖i)。
第三,驗證等式e=e'是否成立,成立簽名有效,否則簽名無效。
設m'為待簽名,簽名者Alice對1.3節簽名步驟進行操作,獲得簽名數據,通過驗證步驟如下。具體證明如下:


所以有

文獻[6]給出了方案的安全性分析及前向安全和后向安全的分析,指出了該方案本身是安全的,同時具有前向安全和后向安全的特性,由于本文所做的只是在驗證部分對原方案作了修改,所以改進方案具有前后向安全特點。
本文針對強前向安全數字簽名進行了分析,發現其驗證部分存在錯誤,導致正確的簽名不能通過驗證,并對該方案的驗證部分做了改進,使其具有驗證的功能,并對簽名的安全性做了說明。
[1] 鄧宇喬.前向安全的盲代理重簽名方案[J].計算機工程與應用,2011,47(16):97—100.
[2] 萬世昌,程麗紅,張珍.前向安全的混合代理多重簽名方案[J].計算機工程與應用,2011,47(12):80—83.
[3] 蘆殿軍,張秉儒,趙海興.基于多項式秘密共享的前向安全門限簽名方案[J].通信學報,2009,30(1):45—49.
[4] 于嘉,孔凡玉,郝蓉,等.一個基于雙線性映射的前向安全門限簽名方案的標注[J].計算機研究與發展,2010,47(4): 605—612.
[5] 劉亞麗,秦小麟,殷新春,等.基于模m的n方根的前向安全數字簽名方案的分析與改進[J].通信學報,2010,31(6):82—87.
[6] 徐東寶,姜東煥,梁向前.一種強前向安全的數字簽名方案[J].計算機工程,2013,39(9):167—169.