數據加密標準

數據加密標準

數據加密標準( Data Encryption Standard)1977年美國國家標準局公布IBM公司研製的用於電子數據加密的對稱密鑰算法。DeDES是原型塊密碼,它採用固定長度的明文比特字元串,並通過一系列複雜的操作將其轉換成相同長度的另一個密文比特字元串。 在DES的情況下,塊大小是64位。 DES還使用密鑰來定製變換,使得解密可以僅由知道用於加密的特定密鑰的人來執行。

基本介紹

  • 中文名:數據加密標準
  • 外文名:Data Encryption Standard
  • 簡稱:DES
  • 時間:1977年
  • 算法:F函式、調度生成子密碼
算法簡介,發展歷史,算法,簡化,威脅意義,破譯方法,DES挑戰賽,

算法簡介

DeDES是原型塊密碼,它採用固定長度的明文比特字元串,並通過一系列複雜的操作將其轉換成相同長度的另一個密文比特字元串。 在DES的情況下,塊大小是64位。 DES還使用密鑰來定製變換,使得解密可以僅由知道用於加密的特定密鑰的人來執行。 密鑰表面上由64位組成; 然而,其中只有56個實際上被算法使用。 還有8位僅用於檢查奇偶校驗,並且此後被丟棄。 因此,有效密鑰長度為56位。
密鑰名義上存儲或傳輸為8位元組,每個具有奇偶校驗。 根據ANSI X3.92-1981(現在,稱為ANSI INCITS 92-1981),第3.5節:KEY的每個8位位元組中的一個位可以用於密鑰生成,分配和存儲中的錯誤檢測。 位8,16,...,64用於確保每個位元組具有奇數奇偶性。
與其他塊密碼一樣,DES本身不是加密的安全手段,而是必須在操作模式中使用。 FIPS-81規定了與DES一起使用的幾種模式。解密使用與加密相同的結構,但使用相反順序的密鑰。 (這具有可以在兩個方向上使用相同的硬體或軟體的優點)。

發展歷史

該算法基於Horst Feistel的早期設計在20世紀70年代早期由IBM開發,在機構邀請後提交給國家標準局(NBS),以提出保護敏感、未分類的電子政府數據的候選。 1976年,在與國家安全局(NSA)協商後,國家統計局最終選擇了一個略微修改的版本(加強了防差別密碼分析,但對強力攻擊削弱),作為官方的聯邦信息處理標準美國在1977年。
國家安全局批准的加密標準的出版同時導致其迅速的國際通過和廣泛的學術審查。爭議來自分類的設計元素,對稱密鑰塊密碼設計的相對短的密鑰長度,以及NSA的參與,滋擾對後門的懷疑。隨著時間的推移,算法所接受的激烈的學術審查導致了對塊密碼及其密碼分析的現代理解。
DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。與每輪編碼時,一個48位的“每輪”密鑰值由56位的完整密鑰得出來。DES用軟體進行解碼需要用很長時間,而用硬體解碼速度非常快。在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用於DES的解密,而且需要12個小時的破解才能得到結果。所以,當時DES被認為是一種十分強壯的加密方法。
隨著攻擊技術的發展,DES本身又有發展,如衍生出可抗差分分析攻擊的變形DES以及密鑰長度為128比特的三重DES等。

算法

算法的整體結構如圖所示:有16個相同的處理階段,稱為循環。還存在稱為IP和FP的初始和最終排列,其是反轉(IP“撤銷”FP的動作,反之亦然)。 IP和FP沒有加密意義,但是它被包含在內以便於在20世紀70年代中期基於8位的硬體載入塊使用。
數據加密標準
在主循環之前,塊被分成兩個32位半部分進行交替處理;這個十字交叉被稱為Feistel方法。 Feistel結構確保解密和加密是非常類似的過程 - 唯一的區別是當解密時子密鑰以相反的順序套用。算法的其餘部分是相同的。這極大地簡化了實現,特別是在硬體中,因為不需要單獨的加密和解密算法。
F函式
數據加密標準
圖所示的F函式一次操作半個數據塊(32位),由四個階段組成:
擴展:使用擴展置換(在圖中用E表示),通過複製一半的比特,將32比特半塊擴展為48比特。輸出由8個6位(8 * 6 = 48位)片組成,每個片包含4個對應輸入位的副本,以及從每個輸入片到任一側的直接相鄰位的副本。
密鑰混合:結果與使用異或運算的子密鑰組合。使用密鑰調度表從主密鑰導出16個48位子密鑰(每個循環一個)。
替換:在子密鑰中混合之後,該塊在被S盒或替換盒處理之前被分成8個6位片。八個S盒中的每一個根據以查找表的形式提供的非線性變換,用其四個輸出位替換其六個輸入位。 S盒提供了DES的安全性的核心 - 沒有它們,密碼將是線性的,並且易於破壞。
置換:最後,根據固定置換,P盒,重新排列來自S盒的32個輸出。這被設計為使得在置換之後,每個S盒的輸出比特在下一輪中散布在四個不同的S盒上。來自S盒的替換的交替和來自P盒和E擴展的比特的置換分別提供了所謂的“混淆和擴散”,Claude Shannon在1940年代時認為這是安全的必要條件。
調度-生成子密碼
圖片顯示了用於加密的密鑰調度 - 生成子密鑰的算法。
數據加密標準
最初,通過排列選擇1(PC-1)從初始64中選擇密鑰的56個比特,剩餘的8個比特被丟棄或用作奇偶校驗比特。 然後將56位分成兩個28位的一半; 然後分別處理每一半。 在連續的循環中,兩半都向左旋轉一位或兩位(為每個循環指定),然後通過排列選擇2(PC-2)選擇48個子密鑰位,從左半邊開始24位,從右邊開始24位 。 旋轉(在圖中由“<<<”表示)意味著在每個子密鑰中使用不同的比特集合; 每個位用於16個子密鑰中的14個。
解密的關鍵調度表類似 - 子密鑰與加密相反的順序。 除了這種變化,該過程與加密相同。

簡化

簡化DES(SDES)
簡化DES(SDES)僅用於教育目的,以幫助學生了解現代密碼分析技術。 SDES具有與DES類似的屬性和結構,但已經被簡化,以使其更容易用鉛筆和紙張手動執行加密和解密。 有些人認為學習SDES可以了解DES和其他塊密碼的原理。

威脅意義

原定服役十年,由於在這期間,該加密標準沒有受到真正的威脅,20多年來一直活躍在國際保密通信的舞台上。近些年,隨著計算機技術的提高,已經有了現實的威脅。512位的密鑰已經能被破解,但是要花很多的時間,計算量非常大,1024位長度密鑰至今沒能被破解。DES作為一種高速對稱加密算法,仍然具有重要意義,特別是DES(密鑰系統)和公鑰系統結合組成混合密碼系統。使DES和公鑰系統(如RSA)能夠各自揚長避短,提高了加密系統的安全和效率。

破譯方法

DES受到的最大攻擊是它的密鑰長度僅有56比特,1990年S.Biham 和 A.Shamir提出了差分攻擊的方法,採用選擇明文247攻擊,最終找到可能的密鑰,M.Matsui 提出的線性分析方法,利用243個已知明文,成功地破譯了16圈DES算法,到目前為止,這是最有效的破譯方法。

DES挑戰賽

從1997年開始,RSA公司發起了一個稱作“向DES挑戰”的競技賽。在首屆挑戰賽上,羅克·維瑟用了96天時間破解了用DES加密的一段信息。
1999年12月22日,RSA公司發起“第三屆DES挑戰賽(DES Challenge III)”。2000年1月19日,由電子邊疆基金會組織研製的25萬美元的DES解密機以22.5小時的戰績,成功地破解了DES加密算法。DES已逐漸完成了它的歷史使命。

相關詞條

熱門詞條

聯絡我們