楊麗娜 齊魯工業(yè)大學信息學院
隨著現(xiàn)代計算機的飛速發(fā)展,網(wǎng)絡(luò)安全等問題的出現(xiàn)給廣大用戶帶來了較大的影響。在過去的時間里,DES是主流的密碼,但是因為它的密鑰空間太小,已經(jīng)被進行了攻擊。所以我們在其存在的問題上進行改進,使DES算法的功能更加強大。
DES是對稱密碼,即加解密采用同樣的密鑰,密鑰長度為64比特,8比特是奇偶校驗位,所以有用長度為56比特。DES對明文中每一個分組的加密過程都包括16輪,且每一輪都相同。過程如下:
1.初始置換IP(X)。將64位的明文x進行初始置換IP 后,此明文會被分成兩部分,L0代表左半部分,R0代表右半部分。在初始置換過程中并沒有增加DES的安全性。
2.密鑰生成。1.首先輸入64位密鑰,密鑰分別記為1-64。從64位當中選擇56位作為有效密鑰。2.將所得56位密鑰進行置換并分別生成C0和D0兩部分。3. 每輪進行迭代時,Ci-1和Di-1分別循環(huán)左移一位或者兩位,具體規(guī)則是:在第i=1,2,9,16輪中,左右兩部分向左移動一位;在其他輪中,向左移動兩位。4.對移位后產(chǎn)生值再做一次置換。以上便生成了一個48位的密鑰。
3.加密過程。將初始置換IP產(chǎn)生的32位的左右兩部分做為下一部分的輸入。從 到 L0 到 L16,R0到 R16 共進行 的16次加密變換 。經(jīng)過 i次變化后的左 、右 32比特分別為 Li和 Ri。Li和 Ri計算公式為:Li=Ri-1,Ri=Li-1XORf(Ri-,ki)。( 注:K是第二步中的密鑰; f是以 Ri-1和 K 為變量輸出的由S盒置換構(gòu)成 的 32比特函數(shù).)
4.逆初始置換。進行16輪加密變化之后,將L16和R6進行逆置換,最終得到64位密文。加密過程完成。
DES密鑰空間過小,密鑰長度是56位,利用窮盡搜索就可以輕易得破解標準的DES。在2006年,一個研究小組基于商業(yè)集成電路構(gòu)建了COPACBANA.使破解DES的時間平均不到7天。總之,它的空間大小已經(jīng)不足以保證當今數(shù)據(jù)的安全。
在DES算法中有12個半弱密鑰和4個弱密鑰。子密鑰的生成過程中,密鑰被分解了兩個部分,若這兩個部分是全0或全1,那每輪生產(chǎn)的子密鑰都一樣。當密鑰全0或全1時,或者一半時1或0時,就會產(chǎn)生弱密鑰或半弱密鑰[3]。
S-盒是DES的核心,是唯一非線性的。它的安全強度影響DES安全。
X-DES中的X是指密鑰個數(shù)是不確定的。在加密時手動輸入密鑰的長度,達到了一次一密的結(jié)果。只要添加密鑰的位數(shù),就會使破解的難度成指數(shù)增加,對于將要進行攻擊的攻擊者來說根本不知道密鑰的長度,這樣就會使窮舉的時間增長。
密鑰分為兩種,一種是默認的密鑰,另一種是隨機密鑰[3]。隨機密鑰有(X-1)*64位。加密時用戶輸入隨機密鑰個數(shù)n,程序進行(n+1)次加密(其中有一個密鑰是固定的)。
S-盒是DES的核心。對S-盒的結(jié)構(gòu)進行優(yōu)化,讓S-盒的順序能夠跟著密鑰情況的不同進行變化,如果該系統(tǒng)密鑰位是未知的,那系統(tǒng)就很難被攻擊。特別是能有效地避免對差分密碼的破密。這使DES加密算法更安全。
本文介紹了DES算法和對DES做出的改進。在當今社會中,DES算法已經(jīng)被廣泛的應用,所以對DES算法進行改進具有重要意義。
[1] Christof Paar,Jan Pelzl.深入淺出密碼學.清華大學出版社,2012.
[2] 張春暉.DES算法原理及改進.電腦知識與技術(shù).2009.vol.5
[3] CSDN.DES算法缺陷和改進.2006.12
[4] 馮登園.網(wǎng)絡(luò)安全原理與技術(shù).北京:科學出版社,2003.