信陽農業高等專科學校計算機科學系 何 勇 潘 赟
與發達國家相比,我國檔案管理現代化建設還存在著滯后性。我們要充分利用現代技術改造傳統的檔案管理方式,加快電子檔案建設,逐步實現檔案管理的數字化。與此同時,數字檔案的加密自然也在檔案管理數字化過程中起著越來越重要的作用。RSA算法是世界上第一個既能用于數據加密也能用于數字簽名的非對稱性加密算法。它易于理解和操作,流行甚廣,經歷了各種攻擊,至今未被完全攻破。
與傳統檔案相比,數字檔案具有以下主要特點:數字檔案信息的可變性、數字檔案載體的脆弱性、數字檔案信息與載體的相分離性、數字檔案對系統的依賴性、數字檔案內容傳輸的網絡性、數字檔案信息組織形式的網狀性等。數字檔案的這些特性,對數字檔案的管理與安全維護提出了更高的要求,如何做好數字檔案的安全管理工作,是目前檔案界必須認真研究和探討的問題。網絡、計算機、存儲器和信息系統是數字檔案生存的基礎,也是引發安全問題的風險基地。目前數字檔案在長期安全保存中存在的主要問題有:數字檔案的長期安全存取問題、計算機系統的不安全性問題、數字檔案的真實性問題、安全技術滯后的問題、安全管理滯后的問題。本文主要針對數字檔案管理中的安全性問題和真實性問題進行探討和研究,通過使用RSA對數字檔案進行加密,來確保數據傳輸過程中的安全性問題和真實性問題。
要解決上述問題,主要有兩種方案,一種是采取保證數字檔案安全的管理措施,如建立健全檔案信息網絡安全的法律法規、建立完善數字檔案的安全管理制度等。另一種方案是應用能夠保障數字檔案安全的技術措施,如加密技術、防火墻規則設置技術、入侵檢測技術和簽署技術等。
密碼技術是網絡安全技術的核心,是提高網絡系統數據的保密性、防止秘密數據被外部破析所采用的主要技術手段。采用加密技術可以確保數字檔案內容的非公開性。加密技術通過信息的變換或編碼將機密敏感信息變換為難以讀懂的亂碼型信息,以達到保護數據安全的目的。
RSA算法是世界上第一個既能用于數據加密也能用于數字簽名的非對稱性加密算法。由于它易于理解和操作,所以流行甚廣。算法的名字以發明者的名字命名,他們是:Ron Rivest,Adi Shamir和Leonard Adleman。雖然RSA的安全性一直未能得到理論上的證實,但它經歷了各種攻擊,至今未被完全攻破。
在RSA算法中,我們先要獲得兩個不同的質數P和Q做為算法因子,再找出一個正整數E,使得E與(P-1)*(Q-1)的值互質,這個E就是私鑰。找到一個整數D,使得(E*D)mod((P-1)*(Q-1))=1成立,D就是公鑰1。設N為P和Q的乘積,N則為公鑰2。加密時先將明文轉換為一個或一組小于N的整數I,并計算ID mod N的值M,M就密文。解密時將密文ME mod N,也就是M的E次方再除以N所得的余數就是明文。
RSA算法是最著名的公開密碼體制。基于大數分解的難度,其公開密鑰和私人密鑰是一對大素數的函數,從一個公開密鑰和密文中恢復出明文的難度等價于分解兩個大素數之積。因此可以確保RSA算法的安全性。RSA算法過程:首先是設計密鑰,然后是對消息加密,最后是對密文解密。

表1
為確保檔案信息在使用過程中的可靠性、安全性及真實性,在管理者與使用者,創建者與管理者之間利用數字簽名技術實現雙方身份的確認,并保護數據,防止偽造,確保檔案管理部門與其他部門之間信息的收集與安全管理。
(1)設計公私密鑰(e,n)和(d,n)
令p=3,q=11,得出n=p×q=3×11=33;f(n)=(p-1)(q-1)=2×10=20;取e=3,(3與20互質)則e×d≡1 mod f(n),即3×d≡1 mod 20。d怎樣取值呢?可以用試算的辦法來尋找。試算結果見表1。
通過試算我們找到,當d=7時,e×d≡1 mod f(n)同余等式成立。因此,可令d=7。從而我們可以設計出一對公私密鑰,加密密鑰(公鑰)為:KU=(e,n)=(3,33),解密密鑰(私鑰)為:KR=(d,n)=(7,33)。
(2)英文數字化
將明文信息數字化,并將每塊兩個數字分組。假定明文英文字母編碼表為按字母順序排列數值,如表2所示。
則得到分組后的key的明文信息為:11,05,25。
(3)明文加密
用戶加密密鑰(3,33)將數字化明文分組信息加密成密文。由C≡Me(mod n)得:

因此,得到相應的密文信息為:11,26,16。
(4)密文解密
用戶B收到密文,若將其解密,只需要計算M≡Cd(mod n),即:

用戶B得到明文信息為:11,05,25。根據上面的編碼表將其轉換為英文,我們又得到了恢復后的原文“key”。
(5)安全性分析分析
RSA的保密性基于一個數學假設:對于一個很大的合數進行質因數分解是不可能的。若RSA用到的兩個質數足夠大,可以保證使用目前的計算機無法分解。即RSA公開密鑰密碼體制的安全性取決于公開密鑰(n,e)計算出秘密密鑰(n,d)的困難程度。RSA的安全性取決于模n分解的困難性,但數學上至今還未證明分解模就是攻擊RSA的最佳方法。出于安全考慮,建議在RSA中使用1024位的n,對于重要場合n應該使用2048位。

程序運行結果及相關說明如下:
主函數實現求N的歐拉數、由公鑰求解私鑰、加密解密選擇以及相應的密文明文輸出。子函數candp實現加密解密時的求冪取余運算,fun實現e與t的互素判斷,已驗證e是否符合要求。程序主體參考了網上的相關RSA算法程序,我對其中e的合法性判斷、主函數實現的順序以及相關提示信息做了補充與修改并加上了注釋,這樣程序可讀性更強,運行時更容易操作,思路也更加嚴密。

表2
當P=43,q=59時,對134進行加密,運行結果如下:

本文主要介紹了數字檔案系統及其特點和存在的安全隱患、數字加密技術及RSA加密算法的具體內容,并在此基礎上用源程序實現了RSA算法,最后論述了基于RSA的數字簽名系統。該算法具有較高的安全性和可靠性,并確保信息在傳輸中的完整性和不可否認性等,為數字檔案的管理提供了必要的條件。
[1]郭立新.基于數字簽名的數字檔案信息安全管理研究[J].信陽師范學院學報(自然科學版),2008,21(2):279-281,290.
[2]趙小明,章美仁.RSA數字簽名與信息隱藏的電子簽名技術改進方案[J].計算機科學,2007,34(10):112-115.
[3]陳鐵英,陳華,劉瑜.基于三層次的數據庫加密應用系統[J].華中科技大學學報(自然科學版),2005,7:41-46.
[4]陳紅軍,邵國寶.數字簽名在網上公文流轉系統中的應用[J].信陽師范學院:自然科學報,2008,21(2):279-281,290.
[5]陽文澤,李翠華.數字簽名技術在辦公自動化系統中的應用[J].計算機工程,2005,31(23):33-35,51.