趙 新, 劉嘉勇
(四川大學(xué) 電子信息學(xué)院,四川 成都 610064)
辦公自動(dòng)化OA(Office Automatization)從最初的以大規(guī)模采用復(fù)印機(jī)等辦公設(shè)備為標(biāo)志的初級(jí)階段,發(fā)展到今天的以運(yùn)用網(wǎng)絡(luò)和計(jì)算機(jī)為標(biāo)志的現(xiàn)階段,對(duì)企業(yè)辦公方式的改變和效率的提高起到了極大的促進(jìn)作用。該系統(tǒng)采用了獨(dú)立的RSA算法[1-2]確保了辦公過(guò)程中公文流轉(zhuǎn)的真實(shí)性和有效性。
(1)密鑰的生成
密鑰的生成過(guò)程:
①選擇兩個(gè)大素?cái)?shù)p,q,(p,q為互異素?cái)?shù),需要保密);
②計(jì)算 n = p×q,?(n)= (p-1)×(q-1);
③選擇整數(shù) e 使 (?(n),e)=1, 1<e< ?(n);
④計(jì)算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)。
數(shù)字證書(shū)是一個(gè)經(jīng)證書(shū)授權(quán)中心簽名的包含公開(kāi)密鑰擁有者及公開(kāi)密鑰的文件。最簡(jiǎn)單的證書(shū)包含一個(gè)公開(kāi)密鑰、名稱以及證書(shū)授權(quán)中心的簽名。一般情況下證書(shū)還包含密鑰的有效時(shí)間,發(fā)證機(jī)關(guān),該證書(shū)的序列號(hào)等信息。
(1)簽名過(guò)程
對(duì)要簽名的文檔,首先進(jìn)行散列運(yùn)算(SHA1或MD5)得到文檔摘要,從證書(shū)中得到要簽名的私鑰,然后對(duì)獲取到的散列值進(jìn)行簽名。
(2)驗(yàn)證過(guò)程
驗(yàn)證過(guò)程是簽名過(guò)程的逆。當(dāng)驗(yàn)收者收到簽名文件時(shí),首先用指明的散列函數(shù)對(duì)原始文件進(jìn)行散列,然后導(dǎo)入簽名者的公鑰對(duì)簽名值進(jìn)行 RSA解密,最后對(duì)該解密值與散列值進(jìn)行比較。
軟件系統(tǒng)主要有證書(shū)生成模塊、摘要處理模塊、簽名模塊和驗(yàn)證模塊組成。
證書(shū)生成模塊:負(fù)責(zé)提供簽名所需的密鑰,用兩個(gè) txt文件保存,一個(gè)用于保存公鑰,一個(gè)用于保存私鑰;
摘要處理模塊:對(duì)要簽名的文檔生成散列的摘要,該系統(tǒng)提供生成 16個(gè)字節(jié)的 MD5算法,和生成 20個(gè)字節(jié)的SHA1算法;
簽名模塊:通過(guò) RSA算法對(duì)對(duì)文檔摘要進(jìn)行簽名,將簽名后的結(jié)果以txt文檔保存;
驗(yàn)證模塊:用RSA算法對(duì)簽名后的txt文檔進(jìn)行驗(yàn)證,并返回驗(yàn)證結(jié)果。
系統(tǒng)具體流程如圖1所示。
據(jù)軟件功能模塊設(shè)計(jì),系統(tǒng)定義了三個(gè)公共類:MDE5散列算法類(MD5_CTX)、哈希類(CHash)、RSA算法類(CRsa)。
系統(tǒng)中主要有的函數(shù)有:
Encrypt(char *OutFile,char *InFile,char *RsaKeyStr,char*RsaModStr):根據(jù)摘要生成簽名;
Decrypt(char *InFile,char *RsaKeyStr,char *RsaModStr):根據(jù)簽名還原出摘要;
OnSHA1Hash():對(duì)選定的文件進(jìn)行SHA1算法;
OnMD5Hash():對(duì)選定的文件進(jìn)行MD5運(yùn)算。
RSA算法所用的密鑰來(lái)自生成的證書(shū),當(dāng)申請(qǐng)者填入相關(guān)信息后生成兩個(gè)txt文件,一個(gè)存放私鑰,一個(gè)存放公鑰。其中私鑰用口令加密了,保證了私鑰的安全。公鑰文件,進(jìn)行了自簽名,這樣就保證了其完整性。密鑰的管理也更加方便。
圖1 系統(tǒng)流程
這里系統(tǒng)經(jīng)過(guò)測(cè)試系統(tǒng)具有良好的運(yùn)行效率,引入了證書(shū)來(lái)保存相關(guān)的密鑰信息。解決了以前的一些簽名系統(tǒng)密鑰的管理問(wèn)題,并且滿足了系統(tǒng)安全的基本要求。方便易用并具有一定的安全強(qiáng)度,有效防止了文件傳輸過(guò)程中的破壞和篡改。
[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.