1. DES算法簡介算法
1977年1月,美國政府頒佈:採納IBM公司設計的方案做爲非機密數據的正式數據加密標準(DESData Encryption Standard) 。安全
目前在國內,隨着三金工程尤爲是金卡工程的啓動,DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收費站等領域被普遍應用,以此來實現關鍵數據的保密,如信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認證、金融交易數據包的MAC校驗等,均用到DES算法。網絡
DES算法的入口參數有三個:Key、Data、Mode。加密
其中Key爲8個字節共64位,是DES算法的工做密鑰;spa
Data也爲8個字節64位,是要被加密或被解密的數據;設計
Mode爲DES的工做方式,有兩種:加密或解密。ip
DES算法是這樣工做的:io
如Mode爲加密,則用Key 去把數據Data進行加密, 生成Data的密碼形式(64位)做爲DES的輸出結果;dva
如Mode爲解密,則用Key去把密碼形式的數據Data解密,還原爲Data的明碼形式(64位)做爲DES的輸出結果。循環
在通訊網絡的兩端,雙方約定一致的Key,在通訊的源點用Key對核心數據進行DES加密,而後以密碼形式在公共通訊網(如電話網)中傳輸到通訊網絡的終點,數據到達目的地後,用一樣的Key對密碼數據進行解密,便再現了明碼形式的核心數據。這樣,便保證了核心數據(如PIN、MAC等)在公共通訊網中傳輸的安全性和可靠性。
經過按期在通訊網絡的源端和目的端同時改用新的Key,便能更進一步提升數據的保密性,這正是如今金融交易網絡的流行作法。
2. 3DES
3DES是DES加密算法的一種模式,它使用3條64位的密鑰對數據進行三次加密。數據加密標準(DES)是美國的一種由來已久的加密標準,它使用對稱密鑰加密法。
3DES(即Triple DES)是DES向AES過渡的加密算法(1999年,NIST將3-DES指定爲過渡的加密標準),是DES的一個更安全的變形。它以DES爲基本模塊,經過組合分組方法設計出分組加密算法。
設Ek()和Dk()表明DES算法的加密和解密過程,K表明DES算法使用的密鑰,P表明明文,C表明密表,這樣,
3DES加密過程爲:C=Ek3(Dk2(Ek1(P)))
3DES解密過程爲:P=Dk1((EK2(Dk3(C)))
K一、K二、K3決定了算法的安全性,若三個密鑰互不相同,本質上就至關於用一個長爲168位的密鑰進行加密。多年來,它在對付強力攻擊時是比較安全的。若數據對安全性要求不那麼高,K1能夠等於K3。在這種狀況下,密鑰的有效長度爲112位。
3. AES
AES(Advanced Encryption Standard):高級加密標準,是下一代的加密算法標準,速度快,安全級別高。
用AES加密2000年10月,NIST(美國國家標準和技術協會)宣佈經過從15種候選算法中選出的一項新的密匙加密標準。Rijndael被選中成爲未來的 AES。Rijndael是在1999年下半年,由研究員Joan Daemen 和 Vincent Rijmen 建立的。AES正日益成爲加密各類形式的電子數據的實際標準。
美國標準與技術研究院(NIST)於2002年5月26日製定了新的高級加密標準(AES)規範。
AES算法基於排列和置換運算。排列是對數據從新進行安排,置換是將一個數據單元替換爲另外一個。
AES使用幾種不一樣的方法來執行排列和置換運算。AES是一個迭代的、對稱密鑰分組的密碼,它可使用12八、192和256位密鑰,而且用128位(16字節)分組加密和解密數據。
與公共密鑰加密使用密鑰對不一樣,對稱密鑰密碼使用相同的密鑰加密和解密數據。經過分組密碼返回的加密數據的位數與輸入數據相同。迭代加密使用一個循環結構,在該循環中重複置換和替換輸入數據。