對(duì)稱密鑰:DES、TripleDES算法
美國(guó)國(guó)家標(biāo)準(zhǔn)局在1973年開始研究除國(guó)防部以外其他部門的計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)加密標(biāo)準(zhǔn),最終選用了IBM公司設(shè)計(jì)的方案作為非機(jī)密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)(DES即DataEncryptionStandard)。DES算法從誕生開始,就被各個(gè)領(lǐng)域廣泛采用,包括ATM柜員機(jī)、POS系統(tǒng)、收費(fèi)站等,DES以它高強(qiáng)度的保密性能為大眾服務(wù),那么,它是如何工作的呢?
DES算法把64位的明文輸入塊變?yōu)?4位的密文輸出塊,它所使用的密鑰也是64位。首先,DES把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L(zhǎng)0、R0兩部分,每部分各長(zhǎng)32位,并進(jìn)行前后置換,最終由L0輸出左32位,R0輸出右32位,根據(jù)這個(gè)法則經(jīng)過16次迭代運(yùn)算后,得到L16、R16,將此作為輸入,進(jìn)行與初始置換相反的逆置換,即得到密文輸出。
DES算法具有極高的安全性,到目前為止,除了用窮舉搜索法對(duì)DES算法進(jìn)行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法,而56位長(zhǎng)密鑰的窮舉空間為256,這意味著如果一臺(tái)計(jì)算機(jī)的速度是每秒種檢測(cè)100萬個(gè)密鑰,那么它搜索完全部密鑰就需要將近2285年的時(shí)間,因此DES算法是一種很可靠的加密方法。
對(duì)稱密鑰:RC算法
RC系列算法是大名鼎鼎的RSA三人組設(shè)計(jì)的密鑰長(zhǎng)度可變的流 加密算法,其中最流行的是RC4算法,RC系列算法可以使用2048位的密鑰,該算法的速度可以達(dá)到DES加密的10倍左右。
RC4算法的原理是“攪亂”,它包括初始化算法和偽隨機(jī)子密碼生成算法兩大部分,在初始化的過程中,密鑰的主要功能是將一個(gè)256字節(jié)的初始數(shù)簇進(jìn)行隨機(jī)攪亂,不同的數(shù)簇在經(jīng)過偽隨機(jī)子密碼生成算法的處理后可以得到不同的子密鑰序列,將得到的子密鑰序列和明文進(jìn)行異或運(yùn)算(XOR)后,得到密文。
由于RC4算法加密采用的是異或方式,所以,一旦子密鑰序列出現(xiàn)了重復(fù),密文就有可能被破解,但是目前還沒有發(fā)現(xiàn)密鑰長(zhǎng)度達(dá)到128位的RC4有重復(fù)的可能性,所以,RC4也是目前最安全的加密算法之一。
非對(duì)稱密鑰:RSA算法
RSA算法是目前最流行的公鑰密碼算法,它使用長(zhǎng)度可以變化的密鑰。RSA是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。
RSA算法的原理如下:
1.隨機(jī)選擇兩個(gè)大質(zhì)數(shù)p和q,p不等于q,計(jì)算N=pq;
2.選擇一個(gè)大于1小于N的自然數(shù)e,e必須與(p-1)×(q-1)互素。
3.用公式計(jì)算出d:d×e = 1 (mod (p-1)×(q-1)) 。
4.銷毀p和q。
最終得到的N和e就是“公鑰”,d就是“私鑰”,發(fā)送方使用N去加密數(shù)據(jù),接收方只有使用d才能解開數(shù)據(jù)內(nèi)容。

RSA的安全性依賴于大數(shù)分解,小于1024位的N已經(jīng)被證明是不安全的,而且由于RSA算法進(jìn)行的都是大數(shù)計(jì)算,使得RSA最快的情況也比DES慢上好幾倍,這也是RSA最大的缺陷,因此它通常只能用于加密少量數(shù)據(jù)或者加密密鑰。需要注意的是,RSA算法的安全性只是一種計(jì)算安全性,絕不是無條件的安全性,這是由它的理論基礎(chǔ)決定的。因此,在實(shí)現(xiàn)RSA算法的過程中,每一步都應(yīng)盡量從安全性方面考慮。
愛華網(wǎng)



