摘要:該文利用門(mén)限算法設(shè)計(jì)了一個(gè)基于P2P網(wǎng)絡(luò)的分布式簽名系統(tǒng),在本方案中,群公鑰和分密鑰是由P2P 網(wǎng)絡(luò)中的可信任節(jié)點(diǎn)共同決定的,保證了安全性。系統(tǒng)同時(shí)采用可驗(yàn)證密鑰分享技術(shù)確保了密鑰的安全性。
關(guān)鍵詞:門(mén)限算法;分布式數(shù)字簽名;可信任節(jié)點(diǎn);可驗(yàn)證密鑰分享
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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]網(wǎng)絡(luò)沒(méi)有中心服務(wù)器,也沒(méi)有固定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)規(guī)模的限制,網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)地位相等,可以隨時(shí)加入或退出網(wǎng)絡(luò)。由于P2P網(wǎng)絡(luò)的分散性和節(jié)點(diǎn)的動(dòng)態(tài)性,密鑰的分發(fā)面臨安全問(wèn)題。采用傳統(tǒng)的集中式方式已無(wú)法實(shí)現(xiàn)P2P網(wǎng)絡(luò)的訪問(wèn)控制安全。
本文介紹一種適用于P2P網(wǎng)絡(luò)的分布式簽名方案,采用t-out-of-n門(mén)限密碼算法通過(guò)P2P網(wǎng)絡(luò)的可信任節(jié)點(diǎn)生成并發(fā)放密鑰,實(shí)現(xiàn)數(shù)字簽名。
1 t-out-of-n門(mén)限密碼算法介紹
t-out-of-n[2]門(mén)限密碼算法將私鑰d分解成t個(gè)隨機(jī)數(shù)之和:d=d1+d2+…+dt,再將分配到i臺(tái)服務(wù)器中,簽名時(shí)將需要簽名的信息M發(fā)送到這t臺(tái)服務(wù)器中,各服務(wù)器將計(jì)算結(jié)果Mi=Mdi送回客戶機(jī),客戶機(jī)計(jì)算:Md,就得到了簽名后的信息。
為了提供容錯(cuò)性,把密鑰d分成了多組子密鑰,任意一組子密鑰組合在一起可以重構(gòu)出d。將這多組子密鑰按一定方法放入n臺(tái)服務(wù)器中,每臺(tái)服務(wù)器有多個(gè)子密鑰,目標(biāo)是其中任意t臺(tái)服務(wù)器可以找到一組完整的子密鑰來(lái)進(jìn)行重構(gòu)。將密鑰作多組拆分如下:
d=d11+d12+……+d1t;
d=d21+d22+……+d2t;
……
d=dn1+dn2+……+dnt;
這樣,就是允許系統(tǒng)有任意不多于(n-t)臺(tái)服務(wù)器崩潰。因此整個(gè)系統(tǒng)獲得了(n,t)門(mén)限的容錯(cuò)能力。
2 基于P2P網(wǎng)絡(luò)的分布式簽名系統(tǒng)
該系統(tǒng)有信任節(jié)點(diǎn)和combiner服務(wù)器兩部分組成,信任節(jié)點(diǎn)通過(guò)節(jié)點(diǎn)之間的互相信任度選出,并在可信任節(jié)點(diǎn)中產(chǎn)生一個(gè)權(quán)威節(jié)點(diǎn),由權(quán)威節(jié)點(diǎn)分發(fā)子密鑰。combiner服務(wù)器組合這t個(gè)子簽名, 算出完整的簽名證書(shū)Md,傳送給用戶,方案框架如圖1。
該分布式數(shù)字簽名系統(tǒng)由信任節(jié)點(diǎn)和combiner服務(wù)器組成兩層結(jié)構(gòu),其中每t個(gè)信任節(jié)點(diǎn)對(duì)應(yīng)一個(gè)combiner服務(wù)器,構(gòu)成一個(gè)組。系統(tǒng)由很多個(gè)組構(gòu)成。每一個(gè)信任節(jié)點(diǎn)保存多個(gè)子密鑰,任意一個(gè)子密鑰都可以和其它t-1個(gè)信任節(jié)點(diǎn)的對(duì)應(yīng)子密鑰構(gòu)成一個(gè)簽名證書(shū)。權(quán)威節(jié)點(diǎn)負(fù)責(zé)產(chǎn)生和分發(fā)子密鑰,由于權(quán)威節(jié)點(diǎn)掌握系統(tǒng)完整密鑰,因此只有在分發(fā)子密鑰時(shí)和做分布式計(jì)算時(shí)才會(huì)在線,平時(shí)處于離線狀態(tài)。
這種兩層結(jié)構(gòu)也起到了節(jié)點(diǎn)隱藏的作用,只有combiner節(jié)點(diǎn)才知道信任節(jié)點(diǎn)的位置,且信任節(jié)點(diǎn)之間也都不知道其他節(jié)點(diǎn)的地址。當(dāng)用戶將需要簽名的信息M發(fā)送給combiner,combiner將M轉(zhuǎn)發(fā)給t個(gè)信任節(jié)點(diǎn),每個(gè)信任節(jié)點(diǎn)利用自己的子密鑰di簽名。然后傳回combiner。combiner計(jì)算得到簽名證書(shū)。若簽名不成功,用戶可以選擇下一個(gè)combiner簽名。系統(tǒng)總共有至少t個(gè)combiner節(jié)點(diǎn),而信任節(jié)點(diǎn)總數(shù)n也至少為t2個(gè)。這種兩層結(jié)構(gòu)解決了t-out-of-n算法固有的密鑰管理的問(wèn)題,同時(shí)還使信任節(jié)點(diǎn)具有一定的隱藏性,提高了系統(tǒng)的安全。
2.1 系統(tǒng)的初始化
對(duì)于P2P網(wǎng)絡(luò)中的任意節(jié)點(diǎn),根據(jù)其歷次交易的滿意次數(shù)和交易不滿意次數(shù)給相鄰節(jié)點(diǎn)打分記作信任度,如節(jié)點(diǎn)i對(duì)節(jié)點(diǎn)j信任度記 ,sij 表示滿意次數(shù),usij表示不滿意次數(shù)。節(jié)點(diǎn)互相通告對(duì)節(jié)點(diǎn)j的信任度,節(jié)點(diǎn)j總的的信任度為 ,m為總的節(jié)點(diǎn)數(shù)。通過(guò)Tj(j=1…m)可將信任度進(jìn)行排序,選出可信任節(jié)點(diǎn)。假設(shè)P2P 中的可信任節(jié)點(diǎn)構(gòu)成的集合為G,|G|=n,其中信任度最高的節(jié)點(diǎn)就是權(quán)威節(jié)點(diǎn)。
2.2 VSS 可驗(yàn)證子密鑰分發(fā)協(xié)議
首先,權(quán)威節(jié)點(diǎn)計(jì)算出一組子密鑰d1,d2,...,dt后, 先用系統(tǒng)私鑰d對(duì)子密鑰簽名,然后用每個(gè)信任節(jié)點(diǎn)各自公鑰的對(duì)其進(jìn)行加密。這樣,保證了密鑰不被偽造,子密鑰也可以安全的發(fā)送到信任節(jié)點(diǎn)。除非攻擊者竊取了信任節(jié)點(diǎn)的私鑰, 否則無(wú)法得到子密鑰。但是該方案無(wú)法抵抗重放攻擊,即將以前權(quán)威節(jié)點(diǎn)服務(wù)器分發(fā)過(guò)的子密鑰來(lái)替換現(xiàn)有子密鑰,從而使得信任節(jié)點(diǎn)收到過(guò)期的或者是本應(yīng)發(fā)給其他節(jié)點(diǎn)的子密鑰,從而造成簽名失敗。一般的抗重放攻擊的方案通常需要服務(wù)器之間時(shí)間同步,通過(guò)增加時(shí)間戳的方式來(lái)抗重放,但在P2P環(huán)境下實(shí)現(xiàn)時(shí)間同步是很困難的。因此該分布式數(shù)字簽名系統(tǒng)采用VSS可驗(yàn)證密鑰分發(fā)(verified secret share)[3]協(xié)議,使得每個(gè)信任節(jié)點(diǎn)通過(guò)驗(yàn)證計(jì)算可以檢驗(yàn)自己收到的子密鑰的真?zhèn)巍?/p>
VSS分發(fā)協(xié)議:
Step 1:權(quán)威節(jié)點(diǎn)服務(wù)器生成驗(yàn)證消息g,g的長(zhǎng)度小于N的長(zhǎng)度。
g隨子密鑰dik一起加密傳輸給信任節(jié)點(diǎn)k。
Step 2:權(quán)威節(jié)點(diǎn)服務(wù)器利用一組子密鑰給消息g簽名,sj=gdij mod N, j=1…t并廣播給信任節(jié)點(diǎn);
Step 3:節(jié)點(diǎn)k根據(jù)sj, j=1…t計(jì)算機(jī)s= mod N其中sk為節(jié)點(diǎn)k自己的子密鑰dik計(jì)算得出。
Step 4:使用公約e解密s得到g,說(shuō)明k的子密鑰沒(méi)有被重放。
其中e和N是RSA算法產(chǎn)生的公鑰。
在子密鑰分發(fā)時(shí),權(quán)威節(jié)點(diǎn)會(huì)將t個(gè)信任節(jié)點(diǎn)的地址組成的地址表先用自己的私鑰簽名再用combiner的公鑰加密傳給combiner。另外為了防止權(quán)威節(jié)點(diǎn)受到攻擊或者權(quán)威節(jié)點(diǎn)的權(quán)限過(guò)大,在權(quán)威節(jié)點(diǎn)分發(fā)子密鑰和驗(yàn)證消息后,權(quán)威節(jié)點(diǎn)就離線,為了保護(hù)信任節(jié)點(diǎn),我們?cè)谝粋€(gè)攻擊周期內(nèi)對(duì)系統(tǒng)進(jìn)行復(fù)位,然后在網(wǎng)絡(luò)中選擇新的一組信任節(jié)點(diǎn)和權(quán)威節(jié)點(diǎn),權(quán)威節(jié)點(diǎn)采用RSA模塊計(jì)算私鑰和公鑰,并將公鑰公布,然后將私鑰分割成n個(gè)t份,再用自己的私鑰簽名用信任節(jié)點(diǎn)的公鑰加密傳給n個(gè)信任節(jié)點(diǎn)。一個(gè)攻擊周期認(rèn)為是成功攻擊t個(gè)節(jié)點(diǎn)的時(shí)間,設(shè)攻擊一個(gè)節(jié)點(diǎn)的平均時(shí)間是△t,則一個(gè)攻擊周期pss=t△t。
3 系統(tǒng)的安全性分析
1) 本系統(tǒng)采用t-out-of-n門(mén)限密碼算法來(lái)分割私鑰d,因此如果攻擊者要想獲得私鑰必須連續(xù)的攻擊t個(gè)信任節(jié)點(diǎn)。另外系統(tǒng)采用了信任節(jié)點(diǎn)和combiner兩層結(jié)構(gòu),隱藏了內(nèi)部結(jié)構(gòu)加大了攻擊的難度。
2) 本系統(tǒng)的信任節(jié)點(diǎn)和權(quán)威節(jié)點(diǎn)是經(jīng)過(guò)信任模型動(dòng)態(tài)選出的,并且權(quán)威節(jié)點(diǎn)和信任節(jié)點(diǎn)是不固定的,而且權(quán)威節(jié)點(diǎn)在分發(fā)了子密鑰和驗(yàn)證信息后就離線了,所以避免了權(quán)威節(jié)點(diǎn)權(quán)限過(guò)大或者權(quán)威節(jié)點(diǎn)被攻擊后,泄露私鑰。而且信任節(jié)點(diǎn)和權(quán)威節(jié)點(diǎn)在一個(gè)攻擊周期后要復(fù)位,進(jìn)行下一輪的選取。這種信任節(jié)點(diǎn)和權(quán)威節(jié)點(diǎn)的不固定更增加了攻擊的難度。
3) 在密鑰分發(fā)階段,私鑰的分發(fā)使用權(quán)威節(jié)點(diǎn)的私鑰簽名,并使用信任節(jié)點(diǎn)的公鑰加密。
有效的防止了攻擊者偽造私鑰di,只有擁有信任節(jié)點(diǎn)私鑰的攻擊者才可以得到子密鑰di,有效的防止了在傳輸途中篡改di信息,本方案使用技術(shù),權(quán)威節(jié)點(diǎn)在發(fā)送di的同時(shí)還向節(jié)點(diǎn)廣播驗(yàn)證值,各個(gè)節(jié)點(diǎn)利用這些驗(yàn)證值可以驗(yàn)證自己收到的di的真?zhèn)危行У谋苊饬俗用荑€被重放。
4 結(jié)束語(yǔ)
本文采用P2P網(wǎng)絡(luò)和多種容錯(cuò)密碼算法,提出了一個(gè)基于t-out-of-n門(mén)限密碼算法的P2P數(shù)字簽名方案。在本方案中,群公鑰和分密鑰是由P2P 網(wǎng)絡(luò)中的可信任節(jié)點(diǎn)共同決定的,保證了安全性。此外,本方案采用信任節(jié)點(diǎn)和combiner服務(wù)器組成兩層結(jié)構(gòu),用戶將簽名請(qǐng)求發(fā)給 combiner節(jié)點(diǎn),由combiner服務(wù)器計(jì)算完整的簽名證書(shū),并傳送給用戶。這種兩層的結(jié)構(gòu)起到了節(jié)點(diǎn)隱藏的作用,提高了安全性。
本文作者創(chuàng)新觀點(diǎn):將門(mén)限簽名技術(shù)應(yīng)用于P2P網(wǎng)絡(luò)中,通過(guò)可信任節(jié)點(diǎn)共同生成群公鑰和分存秘鑰。
參考文獻(xiàn):
[1] Flenner R,Abbott M.JavaP2P技術(shù)內(nèi)幕[M]. 高嶺,譯.北京:人民郵電出版社.
[2] Desmedt Y, Di Crescenzo G, Burmester M. Multiplicative nonabelian sharing schemes andtheir application to threshold cryptography,Oakland,1991:110-121.
[3] 魏仕民,許春香. 周期更新的可驗(yàn)證秘密共享方案[J], 計(jì)算機(jī)科學(xué):增刊, 2004,31(7):112-114.
[4] 許春香,魏仕民,肖國(guó)鎮(zhèn). 定期更新防欺詐的秘密共享方案[J]. 計(jì)算機(jī)學(xué)報(bào), 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.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。”