1. 程式人生 > >DES/3DES/AES區別 (對稱加密)

DES/3DES/AES區別 (對稱加密)

 公元前400年,古希臘人發明了置換密碼。1881年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用“恩尼格瑪”密碼機,密碼學在戰爭中起著非常重要的作用。

DES

  1977年1月,美國政府頒佈:採納IBM公司設計的方案作為非機密資料的正式資料加密標準(DES Data Encryption Standard) 

  目前在國內,隨著三金工程尤其是金卡工程的啟動,DES演算法在POS、ATM、磁卡及智慧卡(IC卡)、加油站、高速公路收費站等領域被廣泛應用,以此來實現關鍵資料的保密,如信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認證、金融交易資料包的MAC校驗等,均用到DES演算法。

  DES演算法的入口引數有三個:Key、Data、Mode。

  其中Key為8個位元組共64位,是DES演算法的工作金鑰

  Data也為8個位元組64位,是要被加密或被解密的資料

  Mode為DES的工作方式,有兩種:加密解密

  DES演算法是這樣工作的:

  如Mode為加密,則用Key 去把資料Data進行加密, 生成Data的密碼形式(64位)作為DES的輸出結果;

  如Mode為解密,則用Key去把密碼形式的資料Data解密,還原為Data的明碼形式(64位)作為DES的輸出結果。

  在通訊網路的兩端,雙方約定一致的Key,在通訊的源點用Key對核心資料進行DES加密,然後以密碼形式在公共通訊網(如電話網)中傳輸到通訊網路的終點,資料到達目的地後,用同樣的Key對密碼資料進行解密,便再現了明碼形式的核心資料。這樣,便保證了核心資料(如PIN、MAC等)在公共通訊網中傳輸的安全性和可靠性。

  通過定期在通訊網路的源端和目的端同時改用新的Key,便能更進一步提高資料的保密性,這正是現在金融交易網路的流行做法。

3DES

  3DES是DES加密演算法的一種模式,它使用3條64位的金鑰對資料進行三次加密資料加密標準(DES)是美國的一種由來已久的加密標準,它使用對稱金鑰加密法。

  3DES(即Triple DESDESAES過渡的加密演算法(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)))

  K1、K2、K3決定了演算法的安全性,三個金鑰互不相同,本質上就相當於用一個長為168位的金鑰進行加密。多年來,它在對付強力攻擊時是比較安全的。若資料對安全性要求不那麼高,K1可以等於K3。在這種情況下,金鑰的有效長度為112位

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是一個迭代的對稱金鑰分組的密碼,它可以使用128192256位金鑰,並且用128位(16位元組)分組加密和解密資料。

  與公共金鑰加密使用金鑰對不同,對稱金鑰密碼使用相同的金鑰加密和解密資料。通過分組密碼返回的加密資料的位數與輸入資料相同。迭代加密使用一個迴圈結構,在該迴圈中重複置換和替換輸入資料。