當前位置:首頁 > 技術資訊

DES加密算法的特性及其破解方案

來源:超時代軟件     更新時間:2013年01月05日 17:42:19

作者:周緋菲 潘杰;整理:超時代軟件

超時代視頻加密軟件手機視頻加密軟件均采用比DES強度更高的AES加密算法加密,但是DES加密算法,仍然能給我們以啟示,學習和了解它也是非常有必要的。

 

1. DES算法原理及內在特性

這種算法把要傳輸的明文以64比特為單位進行分組,使用64位密鑰(密鑰的實際有效位數是56位).

 

1.1 DES算法描述

I.1.1 加密過程

首先對明文進行初始置換;再將所得結果進16輪處理,這16輪處理完全依賴于密鑰——先將64比特的數據等分為兩半,其中一半數據作為某個復雜函數廠(包括通過確定的8個s盒的非線性代換)的輸入,并將輸出結果和另一半數據進行異或;*后再應用一個末位置換獲得密文.

 

I.1.2 DES算法密鑰的生成

DES算法中每一輪迭代運算都會使用一個子密鑰,它由用戶輸人的密鑰K產生.取64位K作為初始密鑰(主密鑰),每8位中有1位奇偶檢驗位,經過排列選擇1(PC—1),等分成C0和D0兩部分.將C0,D|0各循環左移1位得到cl,D1,再經過排列選擇2(PC~2)得到密鑰K1;對C1,D1作循環左移1位后得到C2,D2,經過PC-2得到子密鑰K2……直到產生子密鑰K16。

 

I.1.3 解密運算

解密運算與加密運算一樣,只是所取子密鑰的順序不同.加密時候的順序是K1-K2-...-k16,解密時的順序則為Kl6-K15一...一K1。

 

1.2 DES算法的內在特性

(1)密鑰有效長度是56位(第8,l6,...,64位為校驗位).分組明文長度為64位,而且明文、密文與密鑰存在互補關系.

(2)僅用16次循環迭代,使得相同明文會產生相同密文.

(3)存在著很好的并行結構:產生內部密鑰的左移次數存在著準對稱性(即內部密鑰生成過程存在并行性).DES屬于傳統的Feistel網絡結構,在DES的基本單元中能夠實施并行操作.

(4)DES有16輪加密,如果將第i輪的P置換移至下一輪后會與下一輪的E擴展操作進行合并,簡化算法的基本操作.(5)可以通過S盒與P置換合并的方法節省P置換的基本操作時間·

 

2. 常見的DES算法破解方法

2.1 利用密鑰的使用誤區進行攻擊

(1)通過DES密鑰的8位校驗位進行攻擊.DES算法只用到64位密鑰中的56位,第8,16,…,64等8個位并未參與DES的運算,即計算密鑰時第8,l6,…,64位等8個位被忽略.例:取密鑰Key為8個0x30,明文為8個0x31,用DES算法加密后明文變為65 5e a6 28?cf 62 58 5f。若加密密鑰Key變為8個0x31則執行DES后的密文也是如此.同理,若加密密文為65 5e a6 28 cf 62 58 5f,無論用8個0x30作為解密密鑰還是用8個0x31作為解密密鑰,均能還原出8個0x31的原始明文.由此可見,DES的安全性是依靠除密鑰Key的第8,16,…,64位以外的其余56位組合變化得以保證的.如果在應用中使用密鑰的第8,16,…,64位作為有效數據位,則容易被黑客利用8位校驗位進行攻擊.

 

(2)通過窮舉法攻擊.因為DES算法的明文、密文與密鑰存在互補關系(若c=DESk(m),m'為m的補,c'是c的補,則c'=DESk(m'))如果用戶使用互補密鑰,窮舉法破解的工作量會減少一半.另外,DES產生內部密鑰的左移次數存在準對稱性,黑客在基本單元里可以利用窮舉攻擊中的并行原理來加速搜索密鑰空間的搜索速度.再有,用戶為提高運行速度會將DES中一些基本操作合并、簡化(如:P排列與擴展置換的合并以及S盒與P置換的合并),這樣會降低窮舉攻擊的硬件代價,并且會提高黑客對密鑰空間的搜索速度.

 

2.2 通過比較法攻擊

因為DES算法的迭代次數少,會出現相同明文產生相同密文的現象.如果黑客獲得一個真正的單詞明碼正文列表的字典文件,然后把這些單詞用所有的符合DES標準的加密程序進行加密并把每個加密的單詞與目標口令比較——如果匹配,則該目標口令很有可能被破解。另外黑客可以使用差分密碼和線性密碼分析方法來破解.

 

2.3 利用生成子密鑰時產生的弱密鑰與半弱密鑰攻擊

如果使用者在生成子密鑰時不注意密鑰的檢查,會產生弱密鑰或半弱密鑰,黑客可以利用這些弱密鑰與半弱密鑰對密文進行解密.DES算法中,至少有4個弱密鑰k滿足DESk(DESk(m))=m

 

(因為在產生子密鑰時初始密鑰被分為兩半,以后各自獨立移位.如果每一半都是0或1,則所有子密鑰都相同).這些弱密鑰是

0101010101010101

1F1F1F1F0E0E0E0E

E0E0EOEOF1F1F1F1

FEFEFEFEFEFEFEFE

如果加密過程中出現弱密鑰,則下一次加密的結果是將本次加密后的密文還原.另外,DES算法中存在至少l2個半弱密鑰對(滿足DESk(m)=DESk的-1次方(m)的密鑰對k與k'),黑客可以利用半弱密鑰將使用其他密鑰加密的信息進行解密.所以使用者在使用DES進行加密的時候要注意子密鑰的檢查,以防產生弱密鑰與半弱密鑰.

 

如今傳統的DES算法雖然已經被攻破,但其提供的加密算法思路仍可為今后設計其他加密算法提供借鑒.之后出現的加密算法如RSA等密鑰位已經達到2048位以上,安全性有所提升,破解方法有所不同.

大乐透周一走势图 河北麻将怎么玩分高 辽宁福彩35选7最近100期 辽宁11选五玩法说明 腾讯游戏斗牛去哪了 一分快三免费全天计划 黑龙江11选5彩乐乐 福利3d开奖结果 福利彩票双色球开奖结果 二人麻将规则讲解 股票入门基础知识k 幸运农场手机版 下载免费血战到底麻将