程元元,毛志芹
(華北水利水電大學(xué) 信息工程學(xué)院,鄭州 450046)
信息技術(shù)迅速發(fā)展的今天,政府和企業(yè)為了加快公文流轉(zhuǎn)速度,提高辦公效率和資源利用率,實(shí)現(xiàn)公文的無(wú)紙化辦公,電子公文系統(tǒng)已越來(lái)越多的應(yīng)用于各級(jí)政府和企事業(yè)單位中。電子公文系統(tǒng)包括對(duì)公文的制作、傳輸、存儲(chǔ)、閱讀及打印等流程,它實(shí)現(xiàn)了公文在各部門(mén)間、上下級(jí)間、地區(qū)之間及一個(gè)部門(mén)的內(nèi)部之間的傳遞。電子公文主要分為上行文和下行文,根據(jù)公文發(fā)放時(shí)所涉及蓋章部門(mén)的多少,大體可將電子公文分為兩類:一類是需單個(gè)部門(mén)蓋章發(fā)放的上行或下行公文,主要用在政府各部門(mén)之間的網(wǎng)絡(luò)互聯(lián)和電子數(shù)據(jù)交換(G2G);一類是需要多個(gè)部門(mén)聯(lián)合蓋章發(fā)放的上行或下行公文(聯(lián)合發(fā)文),主要用在政府和企業(yè)、公民之間的商業(yè)電子數(shù)據(jù)交換(G2CG2B)。電子公文應(yīng)用領(lǐng)域的特殊性,決定了電子公文內(nèi)容的高敏感性,由于其內(nèi)容往往涉及到經(jīng)濟(jì)利益甚至是國(guó)家機(jī)密,需要嚴(yán)格保密,因此,電子公文在網(wǎng)絡(luò)傳遞過(guò)程中必須采用高安全性的加密技術(shù)。
數(shù)字簽名技術(shù)的不斷發(fā)展和完善為電子公文系統(tǒng)的保密性需求提供了可靠的保障,文獻(xiàn)[1]介紹了電子公文中數(shù)字簽名的設(shè)計(jì)和實(shí)現(xiàn)方法,文獻(xiàn)[2]利用XML加密技術(shù)和數(shù)字簽名技術(shù)設(shè)計(jì)了一種電子公文的加密和簽名流程,文獻(xiàn)[3-4] 分別提出了一種安全的電子公文交換系統(tǒng):基于PKI體系公文交換系統(tǒng)和基于Word文檔的公文交換系統(tǒng),文獻(xiàn)[5]采用自證明公鑰原理,取消數(shù)字證書(shū),提出了一種不依賴權(quán)威機(jī)構(gòu)認(rèn)證的公文交換系統(tǒng)。在以上方案中,各部門(mén)的簽名權(quán)都是獨(dú)有的,可以很好的滿足第一類電子公文的簽名需求,但對(duì)于第二類電子公文,由于聯(lián)合發(fā)文的多部門(mén)性和業(yè)務(wù)辦理流程的復(fù)雜性,實(shí)際生活中,不熟悉公文辦理流程的企業(yè)或公民在申請(qǐng)相關(guān)業(yè)務(wù)辦理的過(guò)程中經(jīng)常出現(xiàn)耗時(shí)長(zhǎng)、精力投入大等問(wèn)題,在一定程度上嚴(yán)重影響了政府辦公的效率。
本文分析了電子公文的安全性要求和代理多重簽名的基本原理,設(shè)計(jì)了一種基于代理多重簽名的電子公文傳輸系統(tǒng),該系統(tǒng)在電子公文系統(tǒng)基礎(chǔ)上,通過(guò)增設(shè)代理簽名部門(mén)的方法有效解決聯(lián)合發(fā)文問(wèn)題,避免聯(lián)合發(fā)文流程的復(fù)雜性,直接提高辦公效率。另外,采用基于自認(rèn)證密碼系統(tǒng)的代理多重簽名方案,有效的解決了代理多重簽名的可驗(yàn)證性、可區(qū)分性、不可偽造性、不可否任性和可識(shí)別性。采用公鑰密碼體制RSA算法解決電子公文在傳輸過(guò)程中的信息安全問(wèn)題,保證了公文的機(jī)密性、完整性、不可偽造性、不可否認(rèn)性和身份的可驗(yàn)證性。
代理多重簽名是一種特殊的數(shù)字簽名,它是指多個(gè)原始簽名人同時(shí)委托一個(gè)代理人,在一個(gè)文件上行使有效簽名的特殊簽名方式。根據(jù)實(shí)際應(yīng)用情況,如文獻(xiàn)[6-8]所述,代理多重簽名一般可分為兩類:第一類是一組原始簽名人A1、A2、…、AL聯(lián)合委托授權(quán)給一個(gè)代理簽名人B,讓他代替原始簽名組產(chǎn)生代理簽名;第二類是一組原始簽名人A1、A2、…、AL分別授權(quán)給自己的代理簽名人B1、B2、…、BL和特定用戶B,由B1、B2、…、BL和特定用戶B聯(lián)合生成代理簽名。前一種是基于公鑰基礎(chǔ)設(shè)施(PKI)的簽名體制,需要密鑰認(rèn)證中心(KCA)頒發(fā)數(shù)字證書(shū),對(duì)公鑰進(jìn)行認(rèn)證;后一種是基于身份(ID)密碼系統(tǒng)的簽名體制,雖然不需要KCA中心頒發(fā)的數(shù)字證書(shū),但需要密鑰托管。
自認(rèn)證密碼系統(tǒng)的簽名方案是一種基于用戶身份(用戶 ID)的密碼系統(tǒng),兼有以上兩種密碼系統(tǒng)的優(yōu)點(diǎn):既不像 PKI 需要公證證書(shū)對(duì)公鑰進(jìn)行認(rèn)證,也不像基于身份密碼系統(tǒng)那樣要進(jìn)行密鑰托管[9]。系統(tǒng)管理員(SA)生成密鑰參數(shù)M只由代理簽名人共同掌握,隨機(jī)選取M階循環(huán)乘法子群QN的一個(gè)生成元g和抗碰撞的單項(xiàng)哈希函數(shù)h(g),其中{N,g,h}公開(kāi),{M}保密,原始簽名人Ai的公私鑰對(duì)為XAi,YAi=gXAimodN,代理簽名人Bi的公私鑰對(duì)為XBi,YBi=gXBimodN。
Bi隨機(jī)選取一個(gè)整數(shù)αi,計(jì)算υi=gαimodN,然后將υi發(fā)送給Ai,Ai任選整數(shù)Ki,計(jì)算出ωi=υi·gkimodN,τi=2Ki+h(IDAi)·XAi,并發(fā)送給Bi,Bi,i收到(ωi,τi)后就可以計(jì)算出代理密鑰
δi=τi+2αi+h(IDBi)·XBimodM
并通過(guò)gδi=ωi2(YAi)h(IDAi)·(YBi)h(IDBi)modN
驗(yàn)證代理簽名的有效性。
若代理簽名的信息為m,那么Bi隨機(jī)選取整數(shù)γi,計(jì)算出R1=gr1modN,將Ri發(fā)給其他Bj(j≠i)后,就可以計(jì)算Si=δih(m)-γiRmodN得到代理簽名(ωi,τi),然后發(fā)給特定用戶B。
gs·RR=Th(m)modN
來(lái)檢驗(yàn)簽名。
聯(lián)合公文代理多重簽名權(quán)的委托、實(shí)現(xiàn)和驗(yàn)證過(guò)程是系統(tǒng)的核心,考慮到電子公文需要滿足機(jī)密性、完整性、不可偽造性、不可否認(rèn)性和身份可驗(yàn)證性等安全性需求,該系統(tǒng)的代理簽名過(guò)程必須由政府設(shè)立的權(quán)威機(jī)構(gòu)完成,在此簡(jiǎn)稱為代理簽名機(jī)構(gòu)。
系統(tǒng)參數(shù)由可信賴的系統(tǒng)管理員(SA)生成,用戶是具有收文和發(fā)文權(quán)限的部門(mén)或個(gè)人,用戶的身份標(biāo)識(shí)就是用戶的ID信息,該系統(tǒng)有L個(gè)原始簽名人A1、A2、…、AL和代理簽名人B1、B2、…、BL、B組成。
(1)SA選取兩個(gè)大素?cái)?shù)p′和q′,使得p′=2p+1,q′=2q+1;
(3)QN是ZN*中所有平方剩余數(shù)所構(gòu)成的乘法子群;
(4)SA隨意選取QN的一個(gè)生成元g,則gMmodN=1;
(5)選擇一個(gè)抗碰撞的單向哈希函數(shù)h(g)。
公開(kāi){N,g,h},重要參數(shù)M有代理簽名人B1、B2、…、BL和特定用戶B共同保密。
代理簽名機(jī)構(gòu)由對(duì)應(yīng)的代理簽名人B1、B2…BL和特定用戶B組成,如果企業(yè)或個(gè)人需要由多個(gè)部門(mén)聯(lián)合簽名的公文,可以直接向代理簽名機(jī)構(gòu)咨詢并提交相關(guān)材料,經(jīng)代理簽名機(jī)構(gòu)和各部門(mén)同意后,原始簽名部門(mén)就將簽名權(quán)委托給代理簽名機(jī)構(gòu)的相應(yīng)代理簽名人,由代理簽名機(jī)構(gòu)生成各部門(mén)聯(lián)合簽名的公文并發(fā)送。
為便于說(shuō)明,以需要A1、A2兩個(gè)部門(mén)聯(lián)合簽名的公文為例,其中Ai和Bi的公私鑰對(duì)分別為(XAi,YAi)、(XBi,YBi),B的公私鑰對(duì)為(XB,YB)。
系統(tǒng)代理授權(quán)工作流程如圖1所示,其工作步驟如下:
(1)代理簽名人B1,B2分別任選擇整數(shù)?1∈Zm*、?2∈Zm*,計(jì)算參數(shù)
V1=g?1modN,
(1)
V2=g?2modN
(2)
分別發(fā)送V1、V2給原始簽名部門(mén)A1、A2。
(2)A1、A2收到V1、V2后,分別計(jì)算
ω1=υ1gk1modN,τ1=2K1+h(IDA1)·XA1
(3)
ω2=υ2gk1modN,τ2=2K2+h(IDA2)·XA2
(4)
然后分別將(ω1、τ1),(ω2、τ2)發(fā)送給B1,B2。
(3)收到(ω1、τ1),(ω2、τ2)后,B1,B2分別計(jì)算子代理密鑰
δ1=τ1+2α1+h(IDB1)·XB1modM
(5)
δ2=τ1+2α2+h(IDB2)·XB2modM
(6)
(4)代理簽名人分別驗(yàn)證子代理密鑰有效性。驗(yàn)證等式
gδi=ωi2(YAi)h(IDAi)·(YBi)h(IDBi)modN
(7)
是否成立,若成立,則接收(ωi,τi)并將δ1,δ2作為各自有效的子代理密鑰,否則,要求原始簽名部門(mén)重發(fā)。
系統(tǒng)公文代理簽名生成流程如圖2所示,其工作步驟如下:
(1)B1,B2任意選擇整數(shù)γ1、γ2,計(jì)算參數(shù)
R1=gγ1modN
(8)
R2=gγ2modN
(9)
并將計(jì)算結(jié)果發(fā)送給對(duì)方。
(2)收到對(duì)方的R1,R2后,計(jì)算
R=R1·R2modN。
(10)
(3)B1,B2用B的公鑰Ys對(duì)公文F加密得到密文m。
(4)對(duì)密文m計(jì)算摘要,得到密文摘要D。
(5)分別用代理密鑰δi對(duì)密文摘要簽名。計(jì)算
Si=δ1h(m1)-γ1RmodM
(11)
S2=δ2h(m2)-γ2RmodM
(12)
則B1,B2的代理簽名Sign分別為(S1、ω1、R1)(S2、ω2、R2)。
(6)B1,B2分別發(fā)送(m1、D1、Sign1)和(m2、D2、Sign2)給特定用戶B。
圖2 代理簽名生成流程圖
系統(tǒng)公文簽名和發(fā)文流程如圖3所示,其工作步驟如下:
(1)特定用戶B收到所有Bi發(fā)來(lái)的(mi、Di、Signi)后,驗(yàn)證代理簽名有效性。計(jì)算
R=R1·R2modN
(13)
驗(yàn)證等式
gsi·RiR=[ωi2(YAi)h(IDAi)·(YBi)h(IDBi)]h(mi)modN
(14)
是否成立,若成立,則表明公文的發(fā)送方為Bi。
(3)B用私鑰Xs對(duì)密文m解密,得到明文F。
(4)B用私鑰Xs對(duì)明文F加密,得到發(fā)送密文M′。
(5) 對(duì)密文M′計(jì)算摘要,得到發(fā)送密文摘要D′。
圖3 簽名生成流程圖
(6)生成最終簽名。計(jì)算S=S1+S2modN。
(7)則最終簽名Sign為(S、ω1、ω1…ωL,R)。
(8)發(fā)送m,M′,D′和Sign給指定企業(yè)或個(gè)人進(jìn)行驗(yàn)證。
收文方對(duì)公文進(jìn)行驗(yàn)證的工作流程如圖4所示,其工作步驟如下:
(1) 企業(yè)或個(gè)人收到特定用戶B發(fā)來(lái)的(m,M′,D′,Sign)后,驗(yàn)證代理簽名有效性。計(jì)算
(16)
驗(yàn)證等式:gs·RR=Th(m)modN
(17)
是否成立,若成立,則表明公文的發(fā)送方為B。
(2)對(duì)密文M′計(jì)算摘要D″,驗(yàn)證D″=D′是否成立,若成立,表明公文是完整的。
(3)用公鑰Ys對(duì)密文M′解密,得到明文F。
圖4 簽名驗(yàn)證流程圖
由公式(1)(3)(5)可知:
ω1=gα1·g1modN,
δ1=2K1+2α1+h(IDAi)·XAi+h(IDBi)·XBimodM,
gδ1=g2ki+2αi+h(IDA1)·XA1+h(IDB1)·XB1modM
=ω12·gh(IDA1)·XA1+h(IDB1)·XB1modN
因?yàn)間MmodN=1,YAi=gXA1modN,YBi=gXB1modN,
所以gδ1=ω12(YA1)h(IDA1·(YB1)h(IDB1)modN成立。
同理,δ2也滿足驗(yàn)證等式。
由公式(8)(10)(11)可知:
gs1·R1R=gδ1h(m)-γ1R·gγ1·RmodN=gδ1h(m)modN,
因?yàn)間δi=ω12(YA1)h(IDA1)·(YB1)h(IDB1modN,
所以gs1·R1R=[ω12(YA1)h(IDA1)·
(YB1)h(IDB1)]h(m)modN成立。
同理,S2也滿足驗(yàn)證等式。
由公式(7)和(13)(14)(15)可知:
gs·RR=gs1+s2·(R1·R2)R
=(gs1·R1R)·(gs2·R2R)
所以gs·RR=Th(m)modN成立。
本文提出的基于代理多重簽名的電子公文系統(tǒng)很好的實(shí)現(xiàn)了代理簽名的安全性和公文系統(tǒng)的安全性需求。
(1)代理簽名中每一個(gè)A的子代理密鑰是采用離散對(duì)數(shù)求解方法,由原始簽名人的生成參數(shù)A、代理簽名人A的私鑰,身份標(biāo)識(shí)Idi和重要參數(shù)M共同生成,所以自代理密鑰具有唯一性和不可攻擊性,這保證了最終有效的代理簽名(S、ω1、ω1、…、ωL,R)的可驗(yàn)證性、可區(qū)分性、不可偽造性、不可否認(rèn)性和可識(shí)別性。
(2)公文的發(fā)送和接受采用基于公鑰密碼體制RSA的加解密方法并對(duì)密文摘要進(jìn)行核對(duì),保證了公文傳輸?shù)臋C(jī)密性、完整性、不可否認(rèn)性、不可偽造性和身份的可驗(yàn)證性。
(3)代理多重簽名機(jī)構(gòu)是政府增設(shè)的權(quán)威機(jī)構(gòu),公文發(fā)行前,特定用戶B需要對(duì)每一個(gè)代理簽名人發(fā)來(lái)的公文進(jìn)行摘要核對(duì),確保了公文在系統(tǒng)內(nèi)部傳輸?shù)陌踩浴?/p>
電子公文制作和傳輸系統(tǒng)作為一種高效、高技術(shù)的電子政務(wù)系統(tǒng),是促進(jìn)政府辦公信息化的重要工程,也是提高政府辦公便民、惠民宗旨的關(guān)鍵。本文在很好的保證代理簽名安全性的前提下,公文系統(tǒng)不需要數(shù)字證書(shū),對(duì)用戶公鑰的驗(yàn)證和簽名驗(yàn)證過(guò)程是同時(shí)完成的,節(jié)約了大量的存儲(chǔ)空間,提高了系統(tǒng)利用率;通過(guò)增設(shè)代理多重簽名機(jī)構(gòu)并運(yùn)用強(qiáng)RSA假定的代理多重簽名方法,解決了聯(lián)合發(fā)文的多部門(mén)性和業(yè)務(wù)辦理流程的復(fù)雜性。
本文提出的電子公文傳輸系統(tǒng)還存在某些缺陷。第一,采用第二種代理簽名算法,使得簽名權(quán)的委托過(guò)程經(jīng)過(guò)兩個(gè)環(huán)節(jié),過(guò)程復(fù)雜;第二,系統(tǒng)僅提供了對(duì)發(fā)文方的身份驗(yàn)證方法,沒(méi)有對(duì)收文方的身份進(jìn)行確認(rèn)。
參考文獻(xiàn):
[1]張大陸,時(shí)慧.電子公文中數(shù)字簽名的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2001(6):78-79.
[2]朱俊林,夏清國(guó),曹克琦.基于XML的電子公文加密與數(shù)字簽名設(shè)計(jì)[J].微處理機(jī),2009(2):71-73.
[3]徐林杰.基于PKI的電子公文傳輸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)艦船研究院,2011.
[4]劉廣志.基于WORD文檔的電子公文審批系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].山東大學(xué),2013.
[5]呂強(qiáng).基于自證明公鑰的電子公文交換系統(tǒng)的研究與設(shè)計(jì)[C]//中國(guó)通信學(xué)會(huì)、湖北省通信管理局.2011年通信與信息技術(shù)新進(jìn)展——第八屆中國(guó)通信學(xué)會(huì)學(xué)術(shù)年會(huì)論文集.北京:中國(guó)通信學(xué)會(huì),2011:4.
[6]Fu x,Yi L,Xiao G.A new type of proxy multi—signature schemes[J].Journal of Xidian University,2001,28(6):729-731.
[7]臧偉洲,肖岸峰,施榮華,等.一種代理多重簽名的改進(jìn)方案[J].湖北工學(xué)院學(xué)報(bào),2004(5):29-30.
[8]A Proxy Signature Schemeas Secure as Decisional Diffie-Hellman Problem[J].Wuhan University Journal of Natural Sciences,2005(1):51-55.
[9]周萍,何大可.基于強(qiáng)RSA假定的代理多重簽名方案[J].計(jì)算機(jī)工程,2011(4):165-167.