摘要:該文利用門限算法設計了一個基于P2P網絡的分布式簽名系統,在本方案中,群公鑰和分密鑰是由P2P 網絡中的可信任節點共同決定的,保證了安全性。系統同時采用可驗證密鑰分享技術確保了密鑰的安全性。
關鍵詞:門限算法;分布式數字簽名;可信任節點;可驗證密鑰分享
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)36-3071-02
A Distributed Digital Signed System Based on P2P Net
SUN Mei
(Department of Computer Science and Technology, Huaibei Coal Industry Teachers' College, Huaibei 235000,China)
Abstract: The article uses threshold algorithm and puts forward a distributed digital signed scheme based on P2P network, group publish key and detached encrption key are disigned by P2P trusted peers. This scheme can assure security. Verified Secret Share technique is used to protect the security of key.
Key words: threshold algorithm; a distributed digital signed scheme;trusted peers;Verified Secret Share Technique
P2P[1]網絡沒有中心服務器,也沒有固定的網絡拓撲結構和網絡規模的限制,網絡中各個節點地位相等,可以隨時加入或退出網絡。由于P2P網絡的分散性和節點的動態性,密鑰的分發面臨安全問題。采用傳統的集中式方式已無法實現P2P網絡的訪問控制安全。
本文介紹一種適用于P2P網絡的分布式簽名方案,采用t-out-of-n門限密碼算法通過P2P網絡的可信任節點生成并發放密鑰,實現數字簽名。
1 t-out-of-n門限密碼算法介紹
t-out-of-n[2]門限密碼算法將私鑰d分解成t個隨機數之和:d=d1+d2+…+dt,再將分配到i臺服務器中,簽名時將需要簽名的信息M發送到這t臺服務器中,各服務器將計算結果Mi=Mdi送回客戶機,客戶機計算:Md,就得到了簽名后的信息。
為了提供容錯性,把密鑰d分成了多組子密鑰,任意一組子密鑰組合在一起可以重構出d。將這多組子密鑰按一定方法放入n臺服務器中,每臺服務器有多個子密鑰,目標是其中任意t臺服務器可以找到一組完整的子密鑰來進行重構。將密鑰作多組拆分如下:
d=d11+d12+……+d1t;
d=d21+d22+……+d2t;
……
d=dn1+dn2+……+dnt;
這樣,就是允許系統有任意不多于(n-t)臺服務器崩潰。因此整個系統獲得了(n,t)門限的容錯能力。
2 基于P2P網絡的分布式簽名系統
該系統有信任節點和combiner服務器兩部分組成,信任節點通過節點之間的互相信任度選出,并在可信任節點中產生一個權威節點,由權威節點分發子密鑰。combiner服務器組合這t個子簽名, 算出完整的簽名證書Md,傳送給用戶,方案框架如圖1。
該分布式數字簽名系統由信任節點和combiner服務器組成兩層結構,其中每t個信任節點對應一個combiner服務器,構成一個組。系統由很多個組構成。每一個信任節點保存多個子密鑰,任意一個子密鑰都可以和其它t-1個信任節點的對應子密鑰構成一個簽名證書。權威節點負責產生和分發子密鑰,由于權威節點掌握系統完整密鑰,因此只有在分發子密鑰時和做分布式計算時才會在線,平時處于離線狀態。
這種兩層結構也起到了節點隱藏的作用,只有combiner節點才知道信任節點的位置,且信任節點之間也都不知道其他節點的地址。當用戶將需要簽名的信息M發送給combiner,combiner將M轉發給t個信任節點,每個信任節點利用自己的子密鑰di簽名。然后傳回combiner。combiner計算得到簽名證書。若簽名不成功,用戶可以選擇下一個combiner簽名。系統總共有至少t個combiner節點,而信任節點總數n也至少為t2個。這種兩層結構解決了t-out-of-n算法固有的密鑰管理的問題,同時還使信任節點具有一定的隱藏性,提高了系統的安全。
2.1 系統的初始化
對于P2P網絡中的任意節點,根據其歷次交易的滿意次數和交易不滿意次數給相鄰節點打分記作信任度,如節點i對節點j信任度記 ,sij 表示滿意次數,usij表示不滿意次數。節點互相通告對節點j的信任度,節點j總的的信任度為 ,m為總的節點數。通過Tj(j=1…m)可將信任度進行排序,選出可信任節點。假設P2P 中的可信任節點構成的集合為G,|G|=n,其中信任度最高的節點就是權威節點。
2.2 VSS 可驗證子密鑰分發協議
首先,權威節點計算出一組子密鑰d1,d2,...,dt后, 先用系統私鑰d對子密鑰簽名,然后用每個信任節點各自公鑰的對其進行加密。這樣,保證了密鑰不被偽造,子密鑰也可以安全的發送到信任節點。除非攻擊者竊取了信任節點的私鑰, 否則無法得到子密鑰。但是該方案無法抵抗重放攻擊,即將以前權威節點服務器分發過的子密鑰來替換現有子密鑰,從而使得信任節點收到過期的或者是本應發給其他節點的子密鑰,從而造成簽名失敗。一般的抗重放攻擊的方案通常需要服務器之間時間同步,通過增加時間戳的方式來抗重放,但在P2P環境下實現時間同步是很困難的。因此該分布式數字簽名系統采用VSS可驗證密鑰分發(verified secret share)[3]協議,使得每個信任節點通過驗證計算可以檢驗自己收到的子密鑰的真偽。
VSS分發協議:
Step 1:權威節點服務器生成驗證消息g,g的長度小于N的長度。
g隨子密鑰dik一起加密傳輸給信任節點k。
Step 2:權威節點服務器利用一組子密鑰給消息g簽名,sj=gdij mod N, j=1…t并廣播給信任節點;
Step 3:節點k根據sj, j=1…t計算機s= mod N其中sk為節點k自己的子密鑰dik計算得出。
Step 4:使用公約e解密s得到g,說明k的子密鑰沒有被重放。
其中e和N是RSA算法產生的公鑰。
在子密鑰分發時,權威節點會將t個信任節點的地址組成的地址表先用自己的私鑰簽名再用combiner的公鑰加密傳給combiner。另外為了防止權威節點受到攻擊或者權威節點的權限過大,在權威節點分發子密鑰和驗證消息后,權威節點就離線,為了保護信任節點,我們在一個攻擊周期內對系統進行復位,然后在網絡中選擇新的一組信任節點和權威節點,權威節點采用RSA模塊計算私鑰和公鑰,并將公鑰公布,然后將私鑰分割成n個t份,再用自己的私鑰簽名用信任節點的公鑰加密傳給n個信任節點。一個攻擊周期認為是成功攻擊t個節點的時間,設攻擊一個節點的平均時間是△t,則一個攻擊周期pss=t△t。
3 系統的安全性分析
1) 本系統采用t-out-of-n門限密碼算法來分割私鑰d,因此如果攻擊者要想獲得私鑰必須連續的攻擊t個信任節點。另外系統采用了信任節點和combiner兩層結構,隱藏了內部結構加大了攻擊的難度。
2) 本系統的信任節點和權威節點是經過信任模型動態選出的,并且權威節點和信任節點是不固定的,而且權威節點在分發了子密鑰和驗證信息后就離線了,所以避免了權威節點權限過大或者權威節點被攻擊后,泄露私鑰。而且信任節點和權威節點在一個攻擊周期后要復位,進行下一輪的選取。這種信任節點和權威節點的不固定更增加了攻擊的難度。
3) 在密鑰分發階段,私鑰的分發使用權威節點的私鑰簽名,并使用信任節點的公鑰加密。
有效的防止了攻擊者偽造私鑰di,只有擁有信任節點私鑰的攻擊者才可以得到子密鑰di,有效的防止了在傳輸途中篡改di信息,本方案使用技術,權威節點在發送di的同時還向節點廣播驗證值,各個節點利用這些驗證值可以驗證自己收到的di的真偽,有效的避免了子密鑰被重放。
4 結束語
本文采用P2P網絡和多種容錯密碼算法,提出了一個基于t-out-of-n門限密碼算法的P2P數字簽名方案。在本方案中,群公鑰和分密鑰是由P2P 網絡中的可信任節點共同決定的,保證了安全性。此外,本方案采用信任節點和combiner服務器組成兩層結構,用戶將簽名請求發給 combiner節點,由combiner服務器計算完整的簽名證書,并傳送給用戶。這種兩層的結構起到了節點隱藏的作用,提高了安全性。
本文作者創新觀點:將門限簽名技術應用于P2P網絡中,通過可信任節點共同生成群公鑰和分存秘鑰。
參考文獻:
[1] Flenner R,Abbott M.JavaP2P技術內幕[M]. 高嶺,譯.北京:人民郵電出版社.
[2] Desmedt Y, Di Crescenzo G, Burmester M. Multiplicative nonabelian sharing schemes andtheir application to threshold cryptography,Oakland,1991:110-121.
[3] 魏仕民,許春香. 周期更新的可驗證秘密共享方案[J], 計算機科學:增刊, 2004,31(7):112-114.
[4] 許春香,魏仕民,肖國鎮. 定期更新防欺詐的秘密共享方案[J]. 計算機學報, 2002, 25(6):666-669.
[5] Abdalla M. Forward Security in Threshold Signature Schemes[C]. Proceedings of RSA 2001.
[6] Canetti R. Adaptive security for threshold systems[C].Wiener M. ed. Advances in CRYPTO'99, Proceedings. Lecture Notes in Computer Science 1666. Berlin: Springer-verlag, 1999,98-115.
[7] Canetti R. Adaptively Secure Multi-party Computation[Z].TR-682, LCS/MIT, 1996.
[8] Cramer R. Efficient multiparty computations secure against an adaptive[Z].Eurocrypt'99, Springer-Verlag, LNCS 1592, 311-326.
[9] Damgard I, Koprowski M. Practical threshold RSA signatures without a trusted dealer[R]. Technical report, BRICS, 2000.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”