簡述網(wǎng)絡(luò)安全中的DES加密算法

隨著科學技術(shù)的飛速發(fā)展,計算機已經(jīng)滲透到了社會生活的各個方面,各種信息系統(tǒng)的建立和使用造成我們對計算機,尤其是對數(shù)據(jù)庫和網(wǎng)絡(luò)的事實上的依賴。由于數(shù)據(jù)庫中存儲的數(shù)據(jù)都是具有一定價值的信息,對這些信息的非法訪問、竊取、篡改等行為必然導致計算機安全問題的出現(xiàn)。目前有許多保障數(shù)據(jù)安全的方式,其中加密方法就是其中的一種。

在網(wǎng)絡(luò)通信中,加密是組織傳輸中的數(shù)據(jù)被竊取的最好方法,同時,通過數(shù)據(jù)的加脫密也可及時發(fā)現(xiàn)對數(shù)據(jù)的篡改,加密還是防止假冒和抵賴的主要方法。

加密算法通常分為兩大類,如果密碼體制的加密密鑰等于解密密鑰,或者由其中一個很容易推出另外一個,則成為傳統(tǒng)密碼體制。否則,稱為非對稱密碼體制。

DES使用一個56 位的密鑰以及附加的8 位奇偶校驗位, 產(chǎn)生最大64 位的分組大小。這是一個迭代的分組密碼,使用稱為Feistel的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換,DES 使用16 個循環(huán)。

DES的常見變體是三重DES,使用168 位的密鑰對資料進行三次加密的一種機制,它通常提供極其強大的安全性。如果三個56位的子元素相同,則三重DES 向后兼容DES。由于DES 是加(解)密64 位明(密)文,即為8 個字節(jié)(8*8=64),可以據(jù)此初步判斷這是分組加密, 加密的過程中會有16 次循環(huán)與密鑰置換過程,據(jù)此可以判斷有可能是用到DES 密碼算法,更精確的判斷還得必須懂得一點DES 的加密過程。

RSA加密算法是一種非對稱加密算法。依賴的數(shù)學難題是大素數(shù)乘積的分解問題。

1、公鑰和私鑰的產(chǎn)生
假設(shè)A 想要通過一個不可靠的媒體接收B 的一條私人訊息。她可以用以下的方式來產(chǎn)生一個公鑰和一個密鑰:

其中,e 是公鑰,d 是私鑰,d 是秘密的, 而N 是公眾都知道的。A將她的公鑰傳給B,而將她的私鑰藏起來。

2、加密消息
假設(shè)B 想給A 送一個消息m,他知道A 產(chǎn)生的N 和e。他使用起先與A 約好的格式將m 轉(zhuǎn)換為一個小于N 的整數(shù)n, 比如他可以將每一個字轉(zhuǎn)換為這個字的Unicode 碼,然后將這些數(shù)字連在一起組成一個數(shù)字。假如他的信息非常長的話,他可以將這個信息分為幾段,然后將每一段轉(zhuǎn)換為n。用下面這個公式他可以將n 加密:

c:n^e \equiv c\ (\mathrm{mod}\ N)

計算c 并不復雜,B 算出c 后就可以將它傳遞給A。

3、解密消息
A 得到B 的消息c 后就可以利用她的密鑰d 來解碼??梢杂靡韵逻@個公式來將c 轉(zhuǎn)換為n:

c^d \equiv n\ (\mathrm{mod}\ N)

得到n 后,可以將原來的信息m 重新復原,解碼的原理如下:

c^d \equiv n^{e \cdot d}\ (\mathrm{mod}\ N)

4、簽名消息
RSA 也可以用來為一個消息署名。假如阿紅想給阿綠傳遞一個署名的消息的話,那么她可以為她的消息計算一個散列值,然后用她的密鑰加密這個散列值并將這個“署名”加在消息的后面。這個消息只有用她的公鑰才能被解密。阿綠獲得這個消息后可以用阿黃的公鑰解密這個散列值,然后將這個數(shù)據(jù)與他自己為這個消息計算的散列值相比較。假如兩者相符的話,那么他就可以知道發(fā)信人持有阿黃的密鑰,以及這個消息在傳播路徑上沒有被篡改過。

5、安全
假設(shè)偷聽者阿紫獲得了阿紅的公鑰N 和e 以及阿綠的加密消息c,但她無法直接獲得阿黃的密鑰d。要獲得d,最簡單的方法是從c 算出n,然后將N 分解為p 和q,這樣她可以計算(p-1)(q-1)并從而由e推算出d。至今為止還沒有人找到一個多項式時間的計算方法來分解一個大的整數(shù)的因子。