計算機網絡,是指將地理位置不同的具有獨立功能的多臺計算機及其外部設備,通過通信線路連接起來,在網絡操作系統,網絡管理軟件及網絡通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。由此看來,網絡的安全系數一般都比較小。數據加密是確保計算機網絡重要的安全機制,但是,利用公鑰體制,尤其是利用RSA算法的實用加密解密軟件系統很少。最龐大的計算機網絡就是因特網。它由非常多的計算機網絡通過許多路由器互聯而成。因此因特網也稱為“網絡的網絡”。另外,從網絡媒介的角度來看,計算機網絡可以看做是由多臺計算機通過特定的設備與軟件連接起來的一種新的傳播媒介。
網絡加密的方式主要有鏈路加密、端對端加密。端對端加密的工作僅在目的節點和源節點進行,所以成本低、使用靈活。本文采用這種方式,其處于網絡OSI模型的應用層或表示層。
1公鑰密碼體制
公鑰密碼就是一種陷門單向函數。我們說一個函數f是單向函數,即若對它的定義域中的任意x都易于計算y=f(x),而當f的值域中的y為已知時要計算出x是非常困難的。公鑰密碼體制就是基于這一原理而設計的,將輔助信息(陷門信息)作為秘密密鑰。這類密碼的安全強度取決于它所依據的問題的計算復雜度。
公鑰密碼體制的基本思想是:密鑰分為加密密鑰E,解密密鑰D和公鑰M。加密密鑰E和公鑰M可以公開,D不能公開。加密時采用以E,M為參數的函數f1(E,M)進行加密,解密時采用以D,M為參數的函數f2(D,M)進行解密。
在傳統密碼體制的算法中,知道了加密過程,則可以推出解密過程。而在公鑰密碼體制的算法中,即使知道了加密過程,也不可能推出解密過程。因而計算加密密鑰E,公鑰M和解密密鑰D需要特殊的算法和步驟。以確保不能從加密密鑰E和公鑰M推導出解密密鑰D。
RSA體制是一種新型公鑰密碼體制。該公鑰密碼體制以數論為基礎,其原理是:求2個大素數的乘積很容易實現,但將一個大的合數分解成2個大素數很難實現。RSA加密和解密運算的數學表達式為:
C=XE(modM)
X=CD(mod M)
其中:X為明文,C為密文,(0(1)M是2個大素數P,Q的乘積,從而M的歐拉數φ(M)=(P-1)×(Q-1)。
(2)D是大于P,Q的并與φ(M)互素的正整數。
(3)E是D關于φ(M)的乘逆。即ED=1 mod(φ(M))。
滿足以上3個條件,(E,M)便可作公鑰對,(D,M)作密鑰對。
例如:P=101,Q=113,那么M=P×Q=11 413,φ(M)=(P-1)×(Q-1)=100×112=11 200,與φ( M)互素的整數E有無數個,因此,假設E=3 533,根據公式ED=1mod(φ(M)),求得D =6 597。假設明文X=9 726,那么加密時密文C=9 7263 533mod (11 413)=5 7 61,在解密時明文Y=5 7616 597mod(11 413)=9 726。因此只要加密密鑰E,解密密鑰D和公共密鑰M選擇正確,加密前的明文X和解密后的明文Y一定是相同的。
2系統設計
網絡信息加密解密系統包含2個主要部分,主機程序和客機程序。主機程序具有以下功能:密鑰參數的選擇、對文件的加密解密、加解密文件的校驗、修改用戶密碼;而客機程序則只有一個加密模塊和用戶重置加密密鑰E和公鑰M。如果B有重要的數據往A發送,則該節點就用A節點所發布的加密密鑰E和公鑰M為參數對重要數據進行加密,然后再將加密后的數據發送到A,由于這些數據都經過特殊的處理,不用再為數據的安全而擔心。當一個網絡的許多高級用戶之間需要頻繁地互相傳遞信息,并且還要求高級用戶既能夠對需要發送的數據加密,也能夠對收到的經過加密的數據進行解密。這就要求在網絡的高級用戶的計算機上運行網絡信息加密解密系統的主機程序。
該系統的設計分為密鑰選擇模塊、文件加密模塊、文件解密模塊、數據驗證模塊、修改密碼模塊、系統簡介模塊和退出系統模塊等7大模塊。
3程序的模塊設計
3.1密鑰選擇模塊的設計
選擇RSA密碼體制的密鑰對主要是確定E,D,M。因為密鑰對的選擇不能隨意產生,且P,Q的位數越多,攻破該密碼體制所需時間也越長,系統就越安全。但位數越多,速度也越慢。該模塊可以讓用戶自己來選擇素數位數。
為方便用戶,該模塊不需用戶直接輸入2個大的素數P、Q的值,而是輸入他們的鄰近似任意數,然后由計算機根據特定的算法在鄰近值附近找。得到2個大素數后,也得到公鑰M=P×Q,從而也得到M的歐拉數φ(M)=(P-1)×(Q-1)。
大于P,Q并和φ(M)互素的數有無數個,所以依舊采用由用戶輸入鄰近值,系統在其附近尋找一個滿足條件的整數E(其中用歐幾里德算法判斷E是否與φ(M)互素),得到加密密鑰E之后,將進行尋找密鑰的最后一步:求出解密密鑰D,這可以根據式ED=1 mo d(φ(M))求得。
經過以上3個步驟,計算機輔助產生密鑰對的工作結束。隨后,計算機會提示是否將新產生的參數值更新為系統默認的參數值。用戶有兩種選擇,更新和不更新。
3.2加密模塊的設計
文件在計算機里是以“0”、“1”的形式存儲,一定的二進制比特流將表示一定大小的十進制整數。C是一個十進制的數(0≤C≤M),然后將十進制的數C寫到目標文件。
3.3解密模塊的設計
解密運算為X"=CD(mod M)。解密模塊和加密模塊原理基本相同,只是從文件里讀取需要解密的數據時必須與經過加密算法后寫入目標文件時的數據相同。這一點是系統能否正確運行的前提條件。加密模塊和解密模塊是系統的核心模塊。
3.4數據驗證模塊設計
數據驗證是將你刻在刻錄盤上的數據和你硬盤上源文件進行對比MD5值,看是否一致的。在網站開發中,數據驗證分為客戶端驗證和服務器端驗證。客戶端驗證是為了驗證數據的長度、類型等是否符合輸入要求,一般用JavaScript實現;服務器端驗證則是驗證輸入數據是否與數據庫中已存在的數據匹配,在MVC框架開發中一般采用三層模式進行驗證。
數據驗證模塊是用戶對自己本人計算機上的本地文件進行加密和解密用的。如果多人共同使用一臺計算機最好的方法就是用自己的加密密鑰E和公鑰M為參數對數據加密,然后用相應的解密密鑰D和公鑰M對加密后的數據進行解密。這樣其他用戶就無法查看該文件。需要這些數據時,進入網絡信息加密解密系統,輸入合適的解密密鑰D和公共密鑰M,將文件恢復。
3.5修改用戶密碼模塊設計
為了保證本系統的安全性,如果用戶3次輸入不正確,將終止系統的正常運行。當用戶輸入密碼泄露后,可以通過修改用戶密碼模塊來解決。
該模塊也采用RSA算法設計,系統的合法用戶必須知道該模塊正確的解密密鑰、公鑰和用戶密碼,才能進入系統。否則系統將拒絕進入。
由于解密密鑰、公鑰和用戶密碼可以隨時更改,這就增加了非法用戶進入系統的難度,將系統的不安全系數降至最低,從而保證系統的安全。
4結語
Java 應用編程接口為Java應用提供了一個獨立于操作系統的標準接口,可分為基本部分和擴展部分。在硬件或操作系統平臺上安裝一個Java平臺之后,Java應用程序就可運行。現在Java平臺已經嵌入了幾乎所有的操作系統。這樣Java程序可以只編譯一次,就可以在各種系統中運行。網絡傳輸信息加密解密系統經在實際網絡環境 下測試表明:安裝簡單、人機界面良好、保密性高、實用性強、可對任何類型的文件加密解密。
-
計算機
+關注
關注
19文章
7536瀏覽量
88641 -
操作系統
+關注
關注
37文章
6892瀏覽量
123744 -
因特網
+關注
關注
1文章
41瀏覽量
12846
發布評論請先 登錄
相關推薦
評論