摘 要:對白國強、黃淳等人發表的《基于橢圓曲線的代理數字簽名》這一方案進行了仔細分析,從中發現了存在的安全隱患,并對其進行了改進,使新方案中的原始簽名人不可以替代代理簽名人生成代理簽名,最后對改進后的新方案進行了安全性分析。改進后的新方案在一定程度上推廣并豐富了代理簽名的研究成果。
關鍵詞:數字簽名; 代理數字簽名; 離散對數; 橢圓曲線離散對數
中圖法分類號:TN918; TP309.2文獻標識碼:A
文章編號:1001—3695(2007)02—0132—02
研究表明,在橢圓曲線上實現數字簽名具有速度快、同樣安全等級的密鑰和簽名短等優點,因此,基于橢圓曲線實現代理簽名具有重要的意義。白國強等人[1]的《基于橢圓曲線的代理數字簽名》所提出的方案,雖然具有橢圓曲線密碼體制的優勢,但是該代理簽名方案并不安全,原始簽名人可以冒充代理人偽造簽名。本文對該方案進行了安全性分析,并在此基礎上加以改進,提出了一個更為安全的代理簽名方案,并進行詳盡的安全性分析。
1 白國強等人的方案
1.1 初始化過程
假定E是定義在有限域GF(p)上的一條橢圓曲線,P∈E是E中一個階為 n的基點,將E,n和P公開;假定A為原始簽名人,A的私鑰為xA,公鑰為yA,私鑰xA保密,公鑰yA公開。公鑰yA與私鑰xA之間有關系yA=xAP。
1.2 委托過程
A將其簽名的權力委托給代理簽名人B,首先選取隨機數k0,并計算k0P。記Q0=k0P=(x0,y0),其中x0,y0∈E;然后計算r0≡x0 mod n。
σ≡(xA+r0k0) mod n(1)
A將σ秘密地發送給B,將Q0可以公開地發送給B,以下稱(σ,Q0)為A給B的委托信息。B收到一組委托信息(σ,Q0)后,驗證以下等式是否成立:
σP=yA+r0Q0(2)
如果不成立,則B必須拒絕接受委托信息(σ,Q0);反之,則說明(σ,Q0) 確實來自于A。
1.3 代理簽名的產生過程
對任何消息m(0<m<n),B選取隨機數k,0<k<n,計算kP。 記kP=(x,y),其中x,y∈E。接著計算
1.4 代理簽名的驗證過程
任何一個驗證人C收到代理簽名(m,r,s,Q0) 后,利用A的公鑰yA進行下列計算:
如果α mod n=r,則代理簽名(m,r,s,Q0)得到驗證。
2 方案中存在的安全問題
在原始簽名人A秘密地將委托信息(σ,Q0)傳送給代理簽名人B的同時,A和B均已經掌握了委托消息(σ,Q0),因此A可以冒充B生成代理簽名,從而來欺騙任何一個驗證人C,事后否認其對消息m的代理簽名。
在代理簽名的生成過程中,假設A利用自己生成的委托信息(σ,Q0)對消息m′(0<m′<n)進行簽名,首先隨機選取一個數k′,0<k′<n,然后按照以下步驟生成代理簽名:
3 改進后的方案
基于以上分析,本文找到了原方案中存在的安全隱患,并且對其進行了改進,具體過程如下:
(1)初始化過程與第1.1節中初始化過程相同。
(2)委托過程與第1.2節中委托過程相同。
(3)下面是代理簽名產生的改進:
在代理簽名的產生過程中,B首先選取隨機數k,0<k<n,然后計算kP。記kP=(x,y),其中x,y∈E;設B有自己的私鑰,私鑰為xB,公鑰為yB,且有yB=xBP;之后B計算
則(m,r,s,Q0)一起構成了B 對消息m的代理簽名。
(4)代理簽名的驗證。任何一個驗證人C收到代理簽名(m,r,s,Q0)后,利用A的公鑰yA和B的公鑰yB進行下列計算:
4 改進后的方案的安全性分析
改進后的方案較原方案有以下優點:
(1)代理簽名人B不能從已知信息中推算出xA,從而不能偽造原始簽名人A的簽名;同時,也不能利用委托信息產生新的委托信息,從而冒充A 發出另一委托信息給另一人D。
新方案中A給予B的委托信息是(σ,Q0),其中σ≡(xA+r0k0) mod n,Q0=k0P 。B需要從Q0=k0P中計算出k0,顯然這是一個典型的基于橢圓曲線的離散對數問題。所以,B不可能通過這種方式獲得A的私鑰xA。
同時,B不能夠隨意產生新的委托信息(σ′,Q′0),冒充A來欺騙另一委托人D。在A給B的信息中,假如計算σ的等
相應的驗證等式變為
設Q=(x,y)∈E為E中任一點,r=x mod n 。本文約定用f表示由Q計算r的函數,記r=f(Q);定義域為集合E,值域是小于n 的一些非負整數。這樣約定后,式(1)可寫為
(2)代理簽名人B用自己的私鑰xB生成了代理簽名(m,r,s,Q0),因此代理簽名的偽造者E(包括原始簽名人A)不能冒充B產生消息m的代理簽名。
因此,對驗證人按照驗證過程計算出的α′有α′≠x′,也即α′ mod n≠x′mod n≠r′。從而,驗證人和接收人都會識別出這個偽造代理簽名(m′,r′,s′,Q0)不是來自代理人B的;同時,接收人也可以拒絕接收這個代理簽名。所以,代理簽名的偽造者E(包括原始簽名人A)不能冒充B而產生消息m的代理簽名,從而欺騙驗證人C。
5 結論
本文首先分析并指出了文獻[1]中提出的基于橢圓曲線的代理簽名方案中的不足,并對其進行了改進,克服了其中存在的安全缺陷,同時保留了它原有的安全性。由于任何人都不知道A的私鑰,所以A不能否認他的一個有效的普通簽名;同理,除了B外,任何人都不能偽造B的代理簽名,所以B也不能否認一個有效的代理簽名。
若將改進后的新方案推廣到基于離散對數問題的代理簽名體制和基于大整數因子分解問題的代理簽名體制中,結合ECC的技術優勢可以更進一步看出,基于橢圓曲線密碼體制的代理簽名方案的安全性指數更高,更能抵擋冒充、偽造和公鑰替代等攻擊。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。