趙 新, 劉嘉勇
(四川大學 電子信息學院,四川 成都 610064)
辦公自動化OA(Office Automatization)從最初的以大規模采用復印機等辦公設備為標志的初級階段,發展到今天的以運用網絡和計算機為標志的現階段,對企業辦公方式的改變和效率的提高起到了極大的促進作用。該系統采用了獨立的RSA算法[1-2]確保了辦公過程中公文流轉的真實性和有效性。
(1)密鑰的生成
密鑰的生成過程:
①選擇兩個大素數p,q,(p,q為互異素數,需要保密);
②計算 n = p×q,?(n)= (p-1)×(q-1);
③選擇整數 e 使 (?(n),e)=1, 1<e< ?(n);
④計算d,使d = e-1mod ?(n), 得到:公鑰KU={e,n};私鑰KR={d,n}。
(2)加密用(e,n)
加密用(e,n):明文:M < n,密文C = Me(mod n)。
(3)解密用(d,n)
解密用(d,n):密文C,明文M = Cd(mod n)。
數字證書是一個經證書授權中心簽名的包含公開密鑰擁有者及公開密鑰的文件。最簡單的證書包含一個公開密鑰、名稱以及證書授權中心的簽名。一般情況下證書還包含密鑰的有效時間,發證機關,該證書的序列號等信息。
(1)簽名過程
對要簽名的文檔,首先進行散列運算(SHA1或MD5)得到文檔摘要,從證書中得到要簽名的私鑰,然后對獲取到的散列值進行簽名。
(2)驗證過程
驗證過程是簽名過程的逆。當驗收者收到簽名文件時,首先用指明的散列函數對原始文件進行散列,然后導入簽名者的公鑰對簽名值進行 RSA解密,最后對該解密值與散列值進行比較。
軟件系統主要有證書生成模塊、摘要處理模塊、簽名模塊和驗證模塊組成。
證書生成模塊:負責提供簽名所需的密鑰,用兩個 txt文件保存,一個用于保存公鑰,一個用于保存私鑰;
摘要處理模塊:對要簽名的文檔生成散列的摘要,該系統提供生成 16個字節的 MD5算法,和生成 20個字節的SHA1算法;
簽名模塊:通過 RSA算法對對文檔摘要進行簽名,將簽名后的結果以txt文檔保存;
驗證模塊:用RSA算法對簽名后的txt文檔進行驗證,并返回驗證結果。
系統具體流程如圖1所示。
據軟件功能模塊設計,系統定義了三個公共類:MDE5散列算法類(MD5_CTX)、哈希類(CHash)、RSA算法類(CRsa)。
系統中主要有的函數有:
Encrypt(char *OutFile,char *InFile,char *RsaKeyStr,char*RsaModStr):根據摘要生成簽名;
Decrypt(char *InFile,char *RsaKeyStr,char *RsaModStr):根據簽名還原出摘要;
OnSHA1Hash():對選定的文件進行SHA1算法;
OnMD5Hash():對選定的文件進行MD5運算。
RSA算法所用的密鑰來自生成的證書,當申請者填入相關信息后生成兩個txt文件,一個存放私鑰,一個存放公鑰。其中私鑰用口令加密了,保證了私鑰的安全。公鑰文件,進行了自簽名,這樣就保證了其完整性。密鑰的管理也更加方便。

圖1 系統流程
這里系統經過測試系統具有良好的運行效率,引入了證書來保存相關的密鑰信息。解決了以前的一些簽名系統密鑰的管理問題,并且滿足了系統安全的基本要求。方便易用并具有一定的安全強度,有效防止了文件傳輸過程中的破壞和篡改。
[1]DONG XIAOLEI, QIAN HAIFENG, CAO ZHENFU. Provably Secure RSA Type Signature based on Conic Curve[J].Wireless Communications and Mobile Computing,2009(02):217-225.
[2]XU QIU-LIANG, CHEN TZER-SHYONG. An Efficient Threshold RSA Digital Signature Scheme[J].Applied Mathematics and Computation,2005(06):25-34.
[3]TANG SHAOHUA. Simple Secret Sharing and Threshold RSA Signature Schemes[J]. Journal of Information and Computational Science,2004(01):256-262.