廖小平
(四川文理學院 智能制造學院, 達州 635000)
數字簽名的概念首先由Diffie和Hellman[1]利用公鑰密碼的思想在1976年提出。隨著研究的深入,許多具有特殊性質的數字簽名方案相繼被提出,如1983年,David Chaum提出盲簽名[2]、1996年,Mambo提出代理簽名[3],1997年,R.Anderson[4]提出前向安全的概念,近年來,將多種技術相結合設計新的具有特殊性質的數字簽名方案越來越受到重視。肖紅光[5]等人提出了首個前向安全代理盲簽名方案,盧書一碩士論文[6]對肖紅光的文章進行了分析。指出該方案簽名不具有前向安全性,前向安全性只限于代理密鑰,并給出了攻擊者利用交互協議與代理簽名人偽造簽名的過程,然后給出了一個改進的方案(LSY方案),但經分析發現,LSY方案中存在公鑰替換攻擊缺陷,即簽名方案中用到的公鑰沒有經過認證,可能是偽造的,存在公鑰替換攻擊。因此,必須對公鑰進行認證,即確認所使用的公鑰確實是通信方的而不是其他人的。目前,對公鑰進行認證可以采用基于傳統公鑰證書的公鑰密碼體制,但此機制存在復雜的公鑰證書管理問題,也可以利用基于身份密碼體制[7],但此機制存在“密鑰托管”問題,為了解決“復雜的公鑰證書管理問題”和“密鑰托管問題”,2003年,AI-Riyami等提出了無證書密碼體制[8],相繼設計了許多簽名和加密方案[9-11],這種密碼體制是通過某種方法來保障簽名者公鑰的真實性和有效性,并且用戶的簽名密鑰是由用戶和密鑰生成中心共同生成,密鑰生成中心不知道用戶最后的簽名私鑰,也就無法偽造用戶的授權以及簽名。本文基于無證書密碼體制提出一種改進方案,改進方案具有原方案安全性的同時也具有無證書密碼體制的特點。
LSY方案請參見文獻[6],此處對方案進行安全性分析。原始簽名人A給代理簽名人B授權的過程中,存在攻擊者偽造原始簽名人A的公鑰通過驗證,即任何攻擊者都可以偽造原始簽名人A的公鑰,并且通過驗證,具體攻擊過程如下:
所以,任何攻擊者都可以偽造原始簽名人A的公鑰發送給代理簽名人B,并通過驗證,因此,惡意的攻擊者可以濫用授權信息給代理簽名人B進行授權,并聲稱該授權是原始簽名人A產生的,進而對原始簽名人A進行誣陷,所以該方案存在公鑰替換攻擊問題。
(1)選擇一個正整數n,選擇兩個大素數p,q,GF(n)是一個有限域,g∈RZ是生成元,階為q,并且滿足gq≡1 modn, 選擇x為系統主密鑰,計算出系統主公鑰:Ppub=gxmodn

(2)A為原始簽名人,A的身份信息為IDA,計算:QA=H1(IDA),DA=xQA,則DA為A的部分私鑰。B為代理簽名人,B的身份信息為IDB,計算:QB=H1(IDB),DB=xQB,則DB為B的部分私鑰。C為信息m的擁有者,C的身份信息為IDC,計算:QC=H1(IDC),DC=xQC,則DC為C的部分私鑰。
(3)A任意選擇xA為秘密值,計算出A的私鑰:sA=xADA,A的公鑰:yA=gsAmodn,B任意選擇xB為秘密值,計算出B的私鑰:sB=xBDB,B的公鑰:yB=gsBmodn,C任意選擇xC為秘密值,計算出C的私鑰:sC=xCDC,C的公鑰:yC=gsCmodn。



代理簽名人B和信息擁有者C共同產生代理盲簽名。
(1)信息盲化階段
step 1: B任意選擇kB∈RZ,計算:t=gσjkBmodp,然后通過安全信道將(mw,rA,t)發送給C。

(2)簽名階段
B接收到u′后,計算:s′=σju′+σjkBmodq,則消息m的盲簽名為(s′,u′),將s′通過安全信道發送給C。
(3)脫盲階段
C接收到s′后,計算:s=(s′+βsC) modq,則[j,m,mw,(r,s,u)]為代理簽名人B代表原始簽名人A對消息m的盲簽名。


r′=gsyTmodp=gs′+βxCyTmodp
=gσju′+σjkB+βxCyT=gσju′+σjkB+βxCgσjmodp
=gσj(α-u)+σjkB+βxCgσjmodp
=gσjα-σju+σjkB+βxCgσjmodp
=gσjα-σju+σjkB+βxC+umodp
=gσjα+σjkB+βxCmodp
=gσjα+σjkB+βxCmodp
=gσjαgσjkBgβxCmodp
=yTtyCmodp
=r

(1)代理授權安全性:
(2)用戶簽名密鑰、公鑰安全性:
原始簽名人A的私鑰:sA=xADA=xAxQA=xAxH1(IDA)中包含A任意選擇的秘密值xA,系統主密鑰x,即A的私鑰是由密鑰生成中心和用戶任意選擇的秘密值構成,密鑰生成中心不知道A最后的簽名密鑰,也就無法偽造用戶的簽名以及授權,任何攻擊者無法知道用戶任意選擇的秘密值也就無法偽造用戶的簽名密鑰,同理,代理簽名者B,信息擁有者C的密鑰具有同樣的不可偽造性,
綜述所述,新方案中,原始簽名者A,代理簽名者B,信息擁有者C的簽名密鑰是安全的,又因為公鑰是通過密鑰生成的,所以攻擊者無法偽造其公鑰。


(1)原始簽名者A無法否認給代理簽名者B的授權信息
(2)代理簽名者B無法否認對信息m的簽名

(3)信息擁有者C無法否認自己提供的信息
在脫盲階段:s=(s′+βsC) modq中包含信息擁有者C的密鑰sC,所以信息擁有者C無法否認自己提供的信息m
綜上所述,原始簽名者A無法否認為代理簽名者B授過權,代理簽名者B無法否認對信息m的代理簽名,信息擁有者C無法否認提供的信息m。
本文經安全分析,指出LSY方案存在公鑰替換攻擊問題,同時,基于無證書密碼體制提出了一個改進方案,改進方案解決了公鑰認證問題,經安全分析,該方案是正確的,不可偽造的,密鑰更新和代理盲簽名都具有前向安全性。