楊占民,曹 斌,閭凡兵,王鵬飛,國洪新
(①貴州大學 計算機科學與信息學院,貴州 貴陽 550025;②貴陽鋁鎂設計研究院,貴州 貴陽 550081;③貴州信安科技有限公司,貴州 貴陽 550002)
二十世紀九十年代以來,網絡技術快速發展,互聯網已經滲透到我們的日常生活,從各方面改變著我們的生活。信息化的電子政務和電子商務已經成為世界各國政府政務和商業經營活動的一種新模式。為了保證在電子政務和電子商務交流的安全,需要采用一定的安全措施,此時電子印章被提出并廣泛的應用[1],然而電子印章的核心技術問題,是如何保證電子印章文件(以下用加印文件代替)的合法性。因為電子文件容易被復制、篡改,那么如何保證加印文件的完整性、合法性、安全性是電子政務和電子商務成功的關鍵,因此就要求加印文件必須具有防偽性、安全性[2]。所以為了解決以上問題,文中在電子印章系統的基礎上,提出一種“基于ECC和SHA-1的加印文件校驗方案及實現”通過相關的密碼學知識,實現了加印文件不可否認、不可偽造及保證完整性。
橢圓密碼體制ECC簽名產生過程,假設用戶A使用以下流程對消息M進行數字簽名[3],具體步驟如下:

驗證過程:
假設驗證方為B,B驗證A簽名,需要知道A的公鑰 PA,那么B的驗證流程如下:

散列函數 SHA是一種數據加密算法。SHA-1是SHA家族中的一種,該算法的思想是輸入一段數據明文,經過SHA之后輸出160位密文,且這一過程是不可逆轉的。輸出值被稱之為散列值或摘要,它與明文唯一對應。與哈希函數MD5相比較摘要更長,安全性也更高[4]。其單個循環過程如圖1所示。

圖1 SHA-1單個循環
其中A,B,C,D,E 是這個狀態中的32 位元文字,F是會變化的非線性函數,<< AES加密算法是密碼學中的高級加密標準,是美國聯邦政府所采用的區塊加密標準,又稱之為Rijndael加密算法[5]。該算法是由比利時的密碼學家joan Daemen/和Vincent Rijmen所設計的,命名時結合了兩人的名字,以Rijndael命名,由美國ANSI(美國國家標準學會)1997年發起征集,經過幾輪的篩選,最終美國國家標準與技術研究院宣布了Rijndael算法作為新的AES算法。AES密鑰長度分別支持128、192、256位,替代更早的DES加密算法,現已被分析證明是安全的,同時得到了世界的廣泛使用。AES算法高級加密算法標準如圖2所示。 圖2 高級加密標準 加印文件校驗是電子印章系統校驗功能的一部分,校驗加印文件的合法性。加印文件合法性是指按照電子印章系統的合法流程對電子文檔加蓋電子印章,在發送給接收方的過程中,不被非法查閱,接收方接收到加印文件后,加印文件符合通信雙方事先的約定,文件具有完整性、真實性。 加印文件的合法性校驗是指加印文件由發送方發送至接收方后,如果加印文件被偽造、破壞、篡改、傳輸錯誤,那么接收方應能夠通過有效的方法檢驗出來,這種有效的檢驗方法就是加印文件的合法性校驗。 所以依據據加印文件的合法性校驗的定義,文中結合了ECC和SHA-1等相關技術,給出了加印文件合法性校驗模型,如圖3所示。 1)通過電子印章系統,生成所需的加印文件。 2)用SHA-1函數對加印文件進行運算,得到加印文件的摘要。 3)根據ECC簽名原理,用發送方的私鑰對加印文件的摘要進行簽名。 4)用對稱加密算法加密加印文件和數字簽名,接收方公鑰加密對稱密鑰,所有密文發送給接收方。 5)接收方收到加印文件及數字簽名的密文后,首先用自己的私鑰解密出對稱密鑰,用對稱密鑰解密密文,用發送方公鑰驗證簽名,得到摘要2,用SHA-1得到摘要1,比較摘要1和摘要2是否相同,若相同,則加印文件合法,否則視為不合法。 圖3 校驗模型 實現模型中的核心加密算法,實現加印文件具有身份認證、防偽造、防篡改、保密性、完整性、不可否認性。開發環境是在Windows平臺下,使用JAVA語言,My eclipse平臺作為開發工具[6]。 本節主要給出加印文件合法性校驗模型實現測試結果,對于測試部分,為了更好的顯示測試效果,將加印文件以明文顯示,以word文檔測試以為例。如圖4(a)為加印文件,圖4(b)為測試結果。 圖4 加印文件及測試結果 將圖4(a)所示的加印文件,由發送方發送到接收方進行驗證,加印文件的內容不做任何修改,其校驗結果如圖4(b)所示。 將圖4(a)所示的加印文件,文件內容做出一些修改,將第一句中的“九”改為“八”,將修改后的加印文件發送給接收方。修改后加印文件的內容如圖5(a)所示,將修改后的加印文件如圖5(a)所示,同樣進行測試,校驗結果如圖5(b)所示。 圖5 加印文件及測試結果 提出的校驗模型,采用安全性更高的ECC和SHA-1替代安全性相對差的RSA[7]和MD5,同時結合了AES,改進了傳統模型中加印文件被非法閱讀的隱患,最終實現了加印文件的合法性校驗,但是采用SHA-1對于大文件的效率,需要改進。 [1]宋澤芳.基于數字印章的文檔簽名問題的解決方案[J].哈爾濱工業大學學報,2005(07):835-837. [2]范志強,李成,馬兆豐,等.基于CPK組合公鑰的電子簽章技術研究[J].信息安全與通信保密,2011(07):98-102. [3]張秀愛.橢圓曲線密碼體制的研究[J].通信技術,2009,42(05):208-209,212. [4]WANG X Y,YIN L S,YI Q,et al.Finding Collisions in the Full SHA-1[C]//Crypto 2005,LNCS 3621.Berlin:Springer-Verlag,2005:17-36. [5]徐艷平,周玉潔.高級加密標準AES的高速實現[J].信息安全與通信保密,2006(04):81-83. [6]劉淳,張鳳元,張其善.基于智能卡的RSA與ECC算法的比較與實現[J].計算機工程與應用,2007,43(04):96-98. [7]趙新,劉嘉勇.基于證書的RSA簽名系統的設計與實現[J].通信技術,2011,44(02):73-74.1.3 高級加密函數

2 ECC和SHA-1加印文件校驗模型

3 模型實現
3.1 測試結果


4 結語