發(fā)布源:深圳維創(chuàng)信息技術發(fā)布時間:2020-11-23 瀏覽次數(shù): 次
視頻加密軟件、手機視頻加密軟件均采用比DES強度更高的AES加密算法加密,但是DES加密算法,仍然能給我們以啟示,學習和了解它也是非常有必要的。
1. DES算法原理及內(nèi)在特性
這種算法把要傳輸?shù)拿魑囊?4比特為單位進行分組,使用64位密鑰(密鑰的實際有效位數(shù)是56位).
1.1 DES算法描述
I.1.1 加密過程
首先對明文進行初始置換;再將所得結果進16輪處理,這16輪處理完全依賴于密鑰——先將64比特的數(shù)據(jù)等分為兩半,其中一半數(shù)據(jù)作為某個復雜函數(shù)廠(包括通過確定的8個s盒的非線性代換)的輸入,并將輸出結果和另一半數(shù)據(jù)進行異或;*后再應用一個末位置換獲得密文.
I.1.2 DES算法密鑰的生成
DES算法中每一輪迭代運算都會使用一個子密鑰,它由用戶輸人的密鑰K產(chǎn)生.取64位K作為初始密鑰(主密鑰),每8位中有1位奇偶檢驗位,經(jīng)過排列選擇1(PC—1),等分成C0和D0兩部分.將C0,D|0各循環(huán)左移1位得到cl,D1,再經(jīng)過排列選擇2(PC~2)得到密鑰K1;對C1,D1作循環(huán)左移1位后得到C2,D2,經(jīng)過PC-2得到子密鑰K2……直到產(chǎn)生子密鑰K16。
I.1.3 解密運算
解密運算與加密運算一樣,只是所取子密鑰的順序不同.加密時候的順序是K1-K2-...-k16,解密時的順序則為Kl6-K15一...一K1。
1.2 DES算法的內(nèi)在特性
(1)密鑰有效長度是56位(第8,l6,...,64位為校驗位).分組明文長度為64位,而且明文、密文與密鑰存在互補關系.
(2)僅用16次循環(huán)迭代,使得相同明文會產(chǎn)生相同密文.
(3)存在著很好的并行結構:產(chǎn)生內(nèi)部密鑰的左移次數(shù)存在著準對稱性(即內(nèi)部密鑰生成過程存在并行性).DES屬于傳統(tǒng)的Feistel網(wǎng)絡結構,在DES的基本單元中能夠?qū)嵤┎⑿胁僮鳎?/p>
(4)DES有16輪加密,如果將第i輪的P置換移至下一輪后會與下一輪的E擴展操作進行合并,簡化算法的基本操作.(5)可以通過S盒與P置換合并的方法節(jié)省P置換的基本操作時間·
2. 常見的DES算法破解方法2.1 利用密鑰的使用誤區(qū)進行攻擊
(1)通過DES密鑰的8位校驗位進行攻擊.DES算法只用到64位密鑰中的56位,第8,16,…,64等8個位并未參與DES的運算,即計算密鑰時第8,l6,…,64位等8個位被忽略.例:取密鑰Key為8個0x30,明文為8個0x31,用DES算法加密后明文變?yōu)?5 5e a6 28?cf 62 58 5f。
若加密密鑰Key變?yōu)?個0x31則執(zhí)行DES后的密文也是如此.同理,若加密密文為65 5e a6 28 cf 62 58 5f,無論用8個0x30作為解密密鑰還是用8個0x31作為解密密鑰,均能還原出8個0x31的原始明文.由此可見,DES的安全性是依靠除密鑰Key的第8,16,…,64位以外的其余56位組合變化得以保證的.如果在應用中使用密鑰的第8,16,…,64位作為有效數(shù)據(jù)位,則容易被黑客利用8位校驗位進行攻擊.
(2)通過窮舉法攻擊.因為DES算法的明文、密文與密鑰存在互補關系(若c=DESk(m),m'為m的補,c'是c的補,則c'=DESk(m'))如果用戶使用互補密鑰,窮舉法破解的工作量會減少一半.另外,DES產(chǎn)生內(nèi)部密鑰的左移次數(shù)存在準對稱性,黑客在基本單元里可以利用窮舉攻擊中的并行原理來加速搜索密鑰空間的搜索速度.再有,用戶為提高運行速度會將DES中一些基本操作合并、簡化(如:P排列與擴展置換的合并以及S盒與P置換的合并),這樣會降低窮舉攻擊的硬件代價,并且會提高黑客對密鑰空間的搜索速度.
2.2 通過比較法攻擊
因為DES算法的迭代次數(shù)少,會出現(xiàn)相同明文產(chǎn)生相同密文的現(xiàn)象.如果黑客獲得一個真正的單詞明碼正文列表的字典文件,然后把這些單詞用所有的符合DES標準的加密程序進行加密并把每個加密的單詞與目標口令比較——如果匹配,則該目標口令很有可能被破解。
另外黑客可以使用差分密碼和線性密碼分析方法來破解.
2.3 利用生成子密鑰時產(chǎn)生的弱密鑰與半弱密鑰攻擊
如果使用者在生成子密鑰時不注意密鑰的檢查,會產(chǎn)生弱密鑰或半弱密鑰,黑客可以利用這些弱密鑰與半弱密鑰對密文進行解密.DES算法中,至少有4個弱密鑰k滿足DESk(DESk(m))=m
(因為在產(chǎn)生子密鑰時初始密鑰被分為兩半,以后各自獨立移位.如果每一半都是0或1,則所有子密鑰都相同).這些弱密鑰是
0101010101010101
1F1F1F1F0E0E0E0E
E0E0EOEOF1F1F1F1
FEFEFEFEFEFEFEFE
如果加密過程中出現(xiàn)弱密鑰,則下一次加密的結果是將本次加密后的密文還原.另外,DES算法中存在至少l2個半弱密鑰對(滿足DESk(m)=DESk的-1次方(m)的密鑰對k與k'),黑客可以利用半弱密鑰將使用其他密鑰加密的信息進行解密.所以使用者在使用DES進行加密的時候要注意子密鑰的檢查,以防產(chǎn)生弱密鑰與半弱密鑰.
如今傳統(tǒng)的DES算法雖然已經(jīng)被攻破,但其提供的加密算法思路仍可為今后設計其他加密算法提供借鑒.之后出現(xiàn)的加密算法如RSA等密鑰位已經(jīng)達到2048位以上,安全性有所提升,破解方法有所不同.
Copyright © 2021 深圳市維創(chuàng)信息技術有限公司 版權所有