隨着信息技術的飛速發展,人們對信息系統的安全性,信息傳輸的保密性要求愈來愈高。伴隨着通訊和計算機技術發展起來的現代密碼學,不只在解決信息的機密性、並且在解決信息的完整性、可用性和抗抵賴性方面發揮着不可替代的做用。密碼技術使得兩個在不安全信道中通訊的人,以一種使其敵手不能明白和理解通訊內容的方式進行通訊,保證了信息的安全。就密碼體制而言,通常分爲兩類,對稱密碼體制和公鑰密碼體制。html
對稱密碼體制其特色是發送和接收的雙方使用同一密鑰,且該密鑰必須保證不被泄露;加密算法的安全性依賴於密鑰的祕密性,而非算法的祕密性。DES加密算法就是對稱加密體制中的佼佼者。1977年1月,美國政府採納IBM公司設計的方案做爲非機密數據的正式數據加密標準(DES)。DES被受權用於全部公開的和私人的非保密通訊場合,後來它又曾被國際標準組織採納爲國際標準。算法
雖然如今DES已不做爲數據加密標準,但至今它仍然被普遍的應用,並且它是一種最有表明性的分組加密體制。所以,研究這一算法的基本原理、設計思想、安全性分析以及實際應用中有關問題,對於掌握分組密碼理論和當前的實際應用都是頗有意義的。編程
DES是一種分組加密算法。明文分組長度爲64位。加密獲得的密文分組長度爲64位。密鑰長度64位,8個字節。每個字節的最高位用於奇偶效驗,因此有效密鑰長度爲56位。其分組加密過程描述以下:安全
①子密鑰Ki的生成。函數
②64位的明文通過一個初始置換IP後,被分紅左右兩半部分,每一個部分32位,以L0和R0表示。加密
③進行16輪迭代變換:第i 輪變換將上一輪變換所獲得的結果的右半部分與第i個子密鑰Ki結合,這個過程稱爲f函數。第i輪變換結果的左半部分爲上一輪變換結果的右半部分(即:Li=Ri-1),其右半部分爲上一輪變換結果的左半部與上一輪變換結果的右半部通過F函數處理所的結果的異或:Ri=Li-1⊕F(Ri-1,Ki)。spa
④16輪變換以後左右兩部分再鏈接起來,通過一個初始逆置換IP-1獲得密文。 其加密過程如圖1所示。設計
DES的解密算法與加密算法徹底相同,只須要將密鑰的應用次序與加密時相反應用便可。即解密過程是初始置換函IP數接受長度爲64比特的密文輸入, 將16個子密鑰按照K16到K1的順序應用與F函數的16輪迭代運算中, 而後將迭代的結果經由末置換函數IP-1獲得64位的明文輸出。orm
因爲DES密鑰只有56bit,易於遭受窮舉時攻擊。做爲一種替代加密方案,Tuchman提出使用兩個密鑰的三重DES加密方法,並在1985年成爲美國的一個商用加密標準。該方法使用兩個密鑰,執行三次DES算法,如圖2所示。加密的過程是加密-解密-加密,解密的過程是解密-加密-解密。htm
採用兩個密鑰進行三重加密的好處有:
①兩個密鑰合起來有效密鑰長度有112bit,能夠知足商業應用的須要,若採用總長爲168bit的三個密鑰,會產生沒必要要的開銷。
②加密時採用加密-解密-加密,而不是加密-加密-加密的形式,這樣有效的實現了與現有DES系統的向後兼容問題。由於當K1=K2時,三重DES的效果就和原來的DES同樣,有助於逐漸推廣三重DES。
③三重DES具備足夠的安全性,目前尚未關於攻破三重DES的報道。
將原密鑰的各位按照PC-1矩陣從新排列,這一過程剔除了奇偶校驗位。PC-1以下:
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
① 對Ci-1和Di-1進行相同位數的循環左移,獲得Ci和Di
左移的位數爲:
i取數值: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
移 動 數: 1 1 2 2 2 2 2 2 1 2 2 22 221
② 鏈接Ci和Di,按照矩陣PC-2排列選擇合適的位,構成子密鑰Ki,該過程將56位壓縮到48位,PC-2以下:
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
知識點:
三重DES就是對明文使用兩個以上不一樣的密鑰利用相同的加解密算法分別加解密處理三次。