李 巍,趙永彬,王 鷗,于 海
(國網遼寧省電力有限公司信息通信分公司,遼寧 沈陽 110006)
隨著互聯(lián)網的發(fā)展,為了提高工作效率,實現異地遠程辦公,增加協(xié)同辦公能力,電子商務、電子政務、合同及公文的流轉越來越多的以電子文件的形式進行傳遞。為了保證電子文件在網絡傳輸過程中的安全性,需要電子文檔在互聯(lián)網傳遞的過程中,必須在確保發(fā)送方身份的同時,保護文件的完整性,并且保證簽名行為具有不可抵賴性[1,2]。
目前,我國大多數電子簽章技術均是基于PKI/CA體系與數字簽名算法相結合的方式來實現的,其中PKI技術用于實現簽章主體的身份認證,并保證發(fā)送方的不可抵賴性,數字簽名技術保證文件的完整性,如譚杰[3]提出的可視化PKI電子簽章系統(tǒng),張嫻等[4]對電子簽章系統(tǒng)的分析,以及金鋒等[5]利用數字證書,在信息系統(tǒng)中實現的電子簽章應用,均是基于PKI/CA體系。但是RSA算法的安全性主要依賴于大數的因子分解問題,隨著計算機處理能力的不斷增強,這就要求RSA算法使用更長的密鑰,隨之而來的是算法的速度將會越來越慢。冉沛等[6]采用了效率更高、完整性更好的ECDSA算法,并結合印章控件在Word中實現了電子簽章系統(tǒng)。
基于上述分析,本文提出了一種基于ECDSA簽名算法的電子簽章系統(tǒng)方案,通過PKI/CA體系對文件發(fā)送人進行身份認證[7,8],具有安全高效的特點,并研發(fā)出一套制章節(jié)工具。最終,經過實驗與測試,采用ActiveX控件的形式,實現Microsoft Office的電子簽章系統(tǒng),具有較強的應用價值。
PKI(public key infrasturcture)是指公開密鑰基礎設施,CA指的是公開的第三方信任中心。PKI中,CA為所有的用戶頒發(fā)證書,證書中存放有用戶的個人信息及為該用戶分配的公鑰。同時,某一用戶拿到其它用戶的證書時,可向CA中心驗證該證書是否有效及證書中的信息是否正確。有效的PKI體系對于用戶來說是透明的,用戶沒有必要知道PKI管理及實現過程,便可以使用簽名和加密服務。一般來講,PKI系統(tǒng)架構如圖1所示。
圖1 典型PKI系統(tǒng)架構
定義方程兩個變元x、y的三次方程如下
y2+axy+by=x3+cx2+dx+e
其中,a、b、c、d、e為常數。通常橢圓曲線在有限域Fp內定義為Ep(a,b),即如下方程
y2=x3+ax+b(modp)
其中,p為質數,x,y∈[1,p-1],a,b∈Fp且4a3+27b2≠0(modn)。在Ep(a,b)上考慮K=kG,其中K,G都是橢圓曲線上的點,設n為點G的階(即nG=O∞),且k (1)給定Ep(a,b)上的兩個點K、G以及一個小于G點階的整數k,滿足K=kG,在已知G和k的情況下,求點K的坐標是非常容易的,而在已知K和G的情況下,求k是非常困難的。 (2)Diffie-Hellman密鑰中,給定點Ep(a,b)上的一個點G,G的階為大素數n,任意選兩個整數0 為保證簽章圖片本身的安全性與可靠性,本文所提出的電子簽章系統(tǒng)在制章的過程中,使用空間域水印中最低有效位算法(LSB)[9-11]為生成的BMP格式簽章圖片嵌入水印。 在本文中,簽章系統(tǒng)將需數字簽名算法中生成的摘要信息按照一定的規(guī)則排列成二維的水印信號,并將水印信號逐位添加到BMP簽章圖片的相應的每個像素的最低位。LSB算法雖然魯棒性比較差,容易遭到壞,比如在簽章圖片遭受到壓縮或者剪切等情況時,水印也會遭到破壞。但是,LSB算法的容量比較大,并且不可見性非常好,所以LSB算法仍是非常重要和常用的一種水印嵌入算法。而且,在電子簽章系統(tǒng)中,如果文件簽章信息遭到破壞即可認為文件遭破壞,不影響電子簽章系統(tǒng)的正常使用。 電子簽章系統(tǒng)平臺以PKI/CA技術體系、時間戳服務、CA認證中心為基礎,為電子合同管理平臺、電子商務平臺等提供電子簽章及簽名服務,系統(tǒng)為簽章主體頒發(fā)包含對應身份信息數字證書的USB-Key,并利用USB-Key檢查簽章主體身份;簽章主體利用USB-Key完成電子文檔的簽章及簽名。電子簽章系統(tǒng)總體模型設計如圖2所示。 圖2 電子簽章產品總體模型 管理平臺主要以CA認證中心、時間戳服務中心、PKI/CA體系、以及RA注冊中心為技術支撐向應用層提供簽章密鑰管理、簽章制作管理、簽章數據管理、時間戳服務、日志統(tǒng)計、數字證書認證等服務,以控件的形式嵌入到辦公軟件的客戶端程序中,或者業(yè)務應用系統(tǒng)平臺中。 數字證書的管理主要包括數字證書的申請和管理以及簽章的制作功能。本模塊設計的核心就是證書機構CA中心,主要功能是為用戶創(chuàng)建和頒發(fā)證書。需要使用電子簽章系統(tǒng)的用戶,首先向CA中心提交自己的用戶詳細信息,以確認用戶的身份,審核通過后,CA中心將為用戶創(chuàng)建數字證書。本文所提出的電子簽章系統(tǒng)采用的橢圓曲線算法進行數字簽名,所以創(chuàng)建證書時,主要是生成橢圓曲線算法中的公鑰、私鑰以及其它參數信息,之后CA中心對申請用戶發(fā)放數字證書,數字證書中包含CA中心公鑰、用戶的個人信息、用戶公鑰以及證書簽名信息。最后將創(chuàng)建的數字證書、用戶的私鑰以及使用制章工具生成的印章一起封裝到USB-Key中,并將生成的USB-Key以安全的方式送給用戶,用戶利用電子簽章系統(tǒng)為電子文檔加蓋簽章及簽名時,電子簽章系統(tǒng)通過USB-Key核驗用戶身份。因此,USB-Key在用戶首次使用前,需要用戶設定私人密碼,以確保只有用戶自己可以使用該USB-Key。用戶申請數字證書的基本過程如圖3所示。 圖3 用戶申請數字證書的基本過程 需要注意的是,通常將Fp上定義一條二進制域上的橢圓曲線描述為T=(p,a,b,G,n,h)。p,a,b,G,n,h均為公共參數,其中p、a、b確定一條橢圓曲線,G為基點,n為G的階,h是曲線上所有整數點的個數與n相除的商的整數部分。在為用戶制作數字證書時,除用戶的公鑰及詳細信息以外,這些算法中的相關公共參數,也需要寫進數字證書之中。 簽章的過程就是對所發(fā)送的文件進行數字簽名的過程,簽章用戶首先使用單向散列函數計算出原文件的數字摘要,數字摘要為固定長度的字符串。之后簽章用戶從USB-Key中取出自己的私鑰和簽名算法中的各公開參數以及證書信息,并使用自己的私鑰對摘要數據進行計算,計算結果即為簽名信息。再將簽名信息、簽章用戶的證書信息以及橢圓曲線算法中所需要的公開參數以水印的形式嵌入的印章圖片中。最后,將嵌入水印的印章圖片,附加在文件的指定位置,形成簽章后的電子文檔,完成簽章過程。電子簽章系統(tǒng)中的簽章過程基本如圖4所示。 圖4 簽章過程 本文所研究的電子簽章系統(tǒng)基于橢圓曲線簽名算法(ECDSA),所以簽章過程的具體步驟如下所示。 (1)設發(fā)送原文件為M,求出發(fā)送原文件的摘要信息sig=H(M),其中H為單向散列函數,如SHA256等。 (2)用戶插入USB-Key,輸入最初設定的密碼,如果輸入正確則繼續(xù)下一步,反之,禁止使用簽章系統(tǒng)。 (3)從USB-Key中取出用戶的私鑰d、數字證書以及簽章圖片,并從證書中取出用戶的詳細信息、公鑰Q和全局參數(p,a,b,G,n,h),各參數的具體含義見上一節(jié)。 (4)選擇一個隨機數k,k∈[1,n-1]。 (5)計算kG=(x1,y1)。 (6)計算r=x1modn,如果r≠0,執(zhí)行下一操作;否則回到步驟(4)。 (7)計算k-1modn (8)計算s=k-1(e+dr)modn,如果s≠0,執(zhí)行下一操作,否則回到步驟(4)。 (9)將簽名信息(r,s),公鑰Q,證書中用戶的個人詳細信息及算法中涉及到的參數,以水印的形式嵌入到簽章圖片中,之后將簽章附加在文件指定位置。 (10)完成簽章,發(fā)送給接收方。 簽章驗證過程就是從簽章后的電子文檔中提取數字簽名并核驗簽名信息的過程。電子文檔接收者在接收到簽章后的電子文檔后,將接收到的電子文檔與簽章圖片相分離。分離之后對簽章圖片進行水印提出,提取出水印信息,水印信息中包含電子文檔發(fā)送者用自己私鑰加密計算后的摘要數據;查找公開的電子文檔發(fā)送者的公鑰,用于對加密的摘要信息進行解密計算,得到發(fā)送方附加的摘要信息。對于提取出來的原發(fā)送文件,接收用戶用與發(fā)送用戶相同的單向散列函數計算,得出摘要信息。將兩個摘要信息進行對比,如果相同,則驗證通過。反之,驗證不通過。簽章驗證如圖5所示。 圖5 驗章過程 驗章過程的詳細步驟如下所示。 (1)接收用戶從簽章后的文件中提取出原文件M和簽章圖片。 (2)從簽章圖片中提取水印信息,水印信息為發(fā)送用戶加密計算后的簽名信息(r,s)。 (3)從公開渠道查找電子文檔發(fā)送用戶的公鑰Q及簽名算法相關公共參數。 (4)核驗r、s,如果r、s∈[1,n-1],進入下一步;否則,輸出驗證不通過。 (5)計算w=s-1modn。 (6)求出原文件的摘要信息sig=H(M),H為發(fā)送用戶所使用的單向散列函數。 (7)計算 u1=sig*wmodn (8)計算X=u1G+u2Q。 (9)X=(x1,y2),計算v=x1modn。 (10)如果v=r,則表示簽名有效,輸出驗證通過;否則,輸出驗證不通過。 為了使用戶在使用電子簽章的時候更加方便、直觀,本文所提出的電子簽章方案在實現的時候,簽章圖片以ActiveX控件的形式無縫地嵌入Word應用程序中,并在Word工具欄中開發(fā)了電子簽章工具欄。如圖6所示,用戶在使用電子簽章系統(tǒng)時,只需要在Word工具欄中選擇對應的菜單進行操作即可。 圖6 電子簽章系統(tǒng)Word菜單 本文PKI/CA技術體系為支撐,橢圓密碼算法機制為基礎,設計并實現了一套電子簽章系統(tǒng)平臺,系統(tǒng)采用C/S架構,其中電子簽章制作與證書管理等功能由服務端完成,客戶端采用ActiveX技術集成到office軟件中,與Word、Excel等軟件無縫結合,完成簽章與驗章,以及撤消簽名和鎖定文檔等功能。 測試環(huán)境,見表1。 表1 測試環(huán)境 本文提出一種基于橢圓曲線算法的電子簽章技術,并實現了關于Word文檔的簽章系統(tǒng)的簽章及驗章功能,可以確保Word文檔的真實性和完整性。 正常情況下,用戶按照流程順序進行簽章。打開需要簽章的Word文檔后,在操作之前先插入用戶自己從CA中心申請的USB-Key,輸入USB-Key的密碼通過后,選擇Word工具欄上電子簽章的菜單進行簽章操作。電子簽章系統(tǒng)為用戶提供普通簽章、騎縫章和公檢法章3種選擇,用戶根據自己的需要選擇對應的簽章操作。用戶完成簽章操作后,效果如圖7所示。 圖7 簽章文檔示例 由于系統(tǒng)每次重新打開電子文檔時,都會對其進行簽章驗證,重新計算簽名信息,以驗證文檔是否為原始接收文檔,所以當簽章后的電子文檔被重新編輯或惡意篡改后,系統(tǒng)可以立即檢驗到文檔已被篡改過,并在窗口給出明顯提示。當系統(tǒng)打開被篡改后的文檔時,打開后效果如圖8所示。 圖8 簽章文檔篡改后的示例 如果接收者接收到的文檔通過了驗證,接收者可以通過右鍵點擊文檔中的簽章圖片,彈出發(fā)送者的數字證書信息,可以實現對發(fā)送者身份的認證,并且實現了電子簽章系統(tǒng)中的不可抵賴性。 因為電子文檔發(fā)送者的簽名計算私鑰保存在發(fā)送者的USB-Key中,USB-Key一般被用戶保密存放。首先,攻擊者很難獲取到文檔發(fā)送者的USB-Key;其次,USB-Key有文檔發(fā)送者設置的口令,即使獲取到USB-Key,沒有口令也無法使用USB-Key。因此,攻擊者無法獲取發(fā)送者的私鑰,所以無法對本方案提出的電子簽章方案進行攻擊。即時用戶的USB-Key丟失,USB-Key也有自己的驗證信息,攻擊者也很難獲取到用戶的私鑰。并且,本方案基于橢圓曲線算法,在現有的條件下,在沒有私鑰的情況下,想要破解橢圓曲線算法,幾乎是不可能的。 綜上,本方案提出并設計的電子簽章系統(tǒng)可以靈敏檢測到電子文檔任何有意(惡意篡改)或無意的微小改動,很好檢測出攻擊行為,滿足了實際辦公需求中對電子文檔的防篡改要求。 目前,在我國市場上較為成熟的電子簽章產品均RSA數字簽名算法來實現對電子文檔完整性的認證及保護的,如北京安證通信息技術有限公司、江西金格科技股份有限公司的電子簽章產品,所以為驗證本文所采用的基于ECC算法的電子簽章方案比商用電子簽章更加安全,性能更好,我們將對ECC與RSA算法進行比較與分析。 加密算法都是建立在比較復雜、難以解決的數學難題的基于之上,算法的破解難易程序,主要取決于應該數學難題的難易程序。從理論上而言,橢圓曲線算法更加難破解。 如表2所示,ECC算法的單位密鑰安全性強度更高,抗攻擊能力更強。 表2 ECC與RSA安全強度比較 如表3所示,在安全強度相同的情況下,ECC私鑰長度選擇160位,RSA私鑰1024位。根據對比,ECC算法在電子簽章系統(tǒng)中的常用操作性能均比RSA算法更好,因而采用ECC算法的電子簽章系統(tǒng)效率更高。 表3 ECC與RSA計算速度對比結果 互聯(lián)網環(huán)境下,辦公時的公文發(fā)布及合同傳遞由紙質化逐漸轉變?yōu)殡娮踊?,電子文檔極易篡改的特性,使得傳統(tǒng)的紙質化文檔簽章存證方案已不能滿足電子文檔的溯源防偽需求。為了保證電子文件在網絡傳輸過程中的安全性,需要電子文檔在互聯(lián)網傳遞的過程中,必須在確保發(fā)送方身份的同時,保護文件的完整性,并且保證簽名行為具有不可抵賴性。本文提出一套完整的電子簽章系統(tǒng)方案,方案借用PKI/CA技術體系實現對簽章人身份的認證,采用目前安全性最高的橢圓曲線電子簽名算法(ECDSA),綜合利用單向散列函數和數字水印技術,實現了印章管理、簽章及驗章等基本功能,并通過ActiveX控件與Word文檔集成實現整個電子簽章系統(tǒng)的研發(fā)。測試結果表明,相較于RSA算法電子簽章系統(tǒng),安全性更強、效率更高。 [1]XU Shengwei,ZHANG Zhenzhen,CUI Minlong.Research and design of key technology for mutual trust and mutual verify in electronic seal system[J].Computer Engineering and Design,2016,37(7):1777-1780(in Chinese).[許盛偉,張珍珍,崔敏龍.電子印章系統(tǒng)的互信互驗關鍵技術研究與設計[J].計算機工程與設計,2016,37(7):1777-1780.] [2]WANGXiong,LOUJiapeng,PANGYanmei.Designandimplementationofmulti-userdigitalsealsystem[J].ComputerEnginee-ringandDesign,2012,33(5):1767-1771(inChinese).[王雄,婁嘉鵬,龐巖梅.多用戶電子簽章系統(tǒng)設計與實現[J].計算機工程與設計,2012,33(5):1767-1771.] [3]TANJie.ResearchandimplementationofelectronicsealsystembasedonPKI/CA[D].Nanchang:NanchangUniversity,2013(inChinese).[譚杰.基于PKI/CA體系的電子簽章系統(tǒng)研究與實現[D].南昌:南昌大學,2013.] [4]ZHANGXian,ZHULin,JIANGJianfeng.ResearchandanalysisonelectronicsignaturebasedonPKItechnology[J].Science&TechnologyInformation,2012(32):285-285(inChinese).[張嫻,朱麟,蔣建峰.基于PKI技術的電子簽章分析研究[J].科技信息,2012(32):285-285.] [5]XUNan.Theresearchonkeytechniquesofelectronicsignaturebasedonmulti-system[D].Guiyang:GuizhouUniversity,2015(inChinese).[徐楠.面向多系統(tǒng)的電子印章關鍵技術研究[D].貴陽:貴州大學,2015.] [6]RANPei,YANGJiyun,TANJinyong.Newprotectionschemeforintegrityofwordelectronicdocument[J].ComputerEnginee-ringandApplications,2013,49(13):76-79(inChinese).[冉沛,楊吉云,譚金勇.一種新的Word電子文檔完整性保護方案[J].計算機工程與應用,2013,49(13):76-79.] [7]HyeranMun,KyusukHan,YanSunLee,etal.Enhancedsecureanonymousauthenticationschemeforroamingserviceinglobalmobilitynetworks[J].MathematicalandComputerModelling,2011,55(1):214-222. [8]SunYing,XuChunxiang,YuYong,etal.Stronglyunforgeableproxysignatureschemesecureinthestandardmodel[J].TheJournalofSystems&Software,2011,84(9):1471-1479. [9]ZHONGShangping,XUQiaofen,CHENYuzhong,etal.AuniversalsteganalysismethodbasedonlocalfeaturesextractedfromLSBsequences[J].ActaElectronicaSinica,2013,41(2):239-247(inChinese).[鐘尚平,徐巧芬,陳羽中,等.一種基于LSB序列局部特征的通用隱寫檢測方法[J].電子學報,2013,41(2):239-247.] [10]YANGQuanhai.DigitalimagehidingprocessingtechnologybasedonLSBsequence[J].ElectronicDesignEngineering,2016,24(22):142-144(inChinese).[楊全海.一種基于LSB序列的數字圖像隱藏處理技術[J].電子設計工程,2016,24(22):142-144.] [11]BAIDonghui,LIUYanlong.Leastsignificantbitswatermarkalgorithmwithresistinggeometricattacks[J].VideoEngineering,2013,37(5):29-32(inChinese).[白冬慧,劉彥隆.抗幾何攻擊的最低有效位數字水印算法[J].電視技術,2013,37(5):29-32.]1.3 數字水印技術
2 電子簽章系統(tǒng)模型
3 電子簽章系統(tǒng)核心功能設計
3.1 數字證書的管理
3.2 簽章過程
3.3 驗章過程
u2=r*wmodn3.4 嵌入Word工具欄
4 電子簽章系統(tǒng)實現與測評
4.1 系統(tǒng)實現
4.2 測試環(huán)境
4.3 電子簽章系統(tǒng)實驗效果
4.4 安全性與性能對比分析
5 結束語