国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

DES加密算法解析

這篇具有很好參考價(jià)值的文章主要介紹了DES加密算法解析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

引言

DES算法介紹

DES發(fā)展

設(shè)計(jì)方案

加密解密過程

16輪F運(yùn)算迭代

原理

混淆和擴(kuò)散

雪崩效應(yīng):

迭代輪數(shù):

函數(shù)F的設(shè)計(jì):

密鑰擴(kuò)展:

S-box 的設(shè)計(jì)準(zhǔn)則

安全分析

DES 算法的一些應(yīng)用

參考文章

引言

今天,我們大部分時(shí)間都生活在互聯(lián)網(wǎng)上。無論是存儲(chǔ)我們的個(gè)人信息、娛樂、購物還是處理我們的工作,我們的社會(huì)都越來越依賴于互聯(lián)網(wǎng)。

對(duì)互聯(lián)網(wǎng)的依賴意味著信息安全比以往任何時(shí)候都更加重要。一旦信息被惡意竊取,將會(huì)產(chǎn)生嚴(yán)重的后果,可以具體到個(gè)人,也可能危及一個(gè)國家。用戶需要知道他們的敏感數(shù)據(jù)是受到保密的、未修改的,并且被授權(quán)者可以隨時(shí)訪問。

數(shù)據(jù)加密只是網(wǎng)絡(luò)安全武器庫中的一種武器,但它是最古老和最常用的武器之一。本文討論了最經(jīng)典的DES加密算法,讓我們開始吧!

DES算法介紹

DES全稱為Data Encryption Standard,即數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法,1977年被美國聯(lián)邦政府的國家標(biāo)準(zhǔn)局確定為聯(lián)邦資料處理標(biāo)準(zhǔn)(FIPS),并授權(quán)在非密級(jí)政府通信中使用,隨后該算法在國際上廣泛流傳開來。需要注意的是,在某些文獻(xiàn)中,作為算法的DES稱為數(shù)據(jù)加密算法(Data Encryption Algorithm,DEA),已與作為標(biāo)準(zhǔn)的DES區(qū)分開來。

DES算法是一種分組密碼算法,使用64位密鑰(除去8位奇偶校驗(yàn),實(shí)際密鑰長(zhǎng)度為56位) 對(duì)64比特的數(shù)據(jù)分組(二進(jìn)制數(shù)據(jù)) 加密,產(chǎn)生64位密文數(shù)據(jù);DES也是一種對(duì)稱密碼體制,在加密和解密的過程中使用相同的密鑰,解密和加密使用同一算法(在硬件與軟件設(shè)計(jì)時(shí)有利于加密單元的重用)。在將明文分塊為64位后,DES算法就是一個(gè)把64位的明文輸入塊變?yōu)?4位密文輸出塊的算法,它所使用的密鑰也是64位(其實(shí)只使用到了56位,其余8位為奇偶校驗(yàn)位),按替代或交換的方式形成密文組。

DES算法的入口參數(shù)有三個(gè): Key、Data、Mode。其中Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰: Data也為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密

DES發(fā)展

DES 基于 Feistel 塊密碼,稱為 LUCIFER,由 IBM 密碼學(xué)研究員 Horst Feistel 于 1971 年開發(fā)。DES 使用 16 輪 Feistel 結(jié)構(gòu),每輪使用不同的密鑰。

1973年,美國國家標(biāo)準(zhǔn)計(jì)算研究所(NIST)征求對(duì)稱加密算法方案,IBM提交了自己的算法;

1977年,IBM的算法(Luciffer算法)被正式采用,成為數(shù)據(jù)加密標(biāo)準(zhǔn):Data Encryption Standard即DES算法;

DES公布后,就被質(zhì)疑算法密鑰比較短,只有56位,迭代次數(shù)少,很容易受到密碼分析手段和暴力破解的攻擊,同時(shí),也有人被懷疑DES內(nèi)部存在NSA(美國國家安全局)安置的后門,他們擔(dān)心DES中的幾個(gè)結(jié)構(gòu)(S 盒)可能有一些秘密后門,使國家安全局 (NSA) 能夠解密密鑰要求之外的消息。后來 IBM 的設(shè)計(jì)者解釋了這些內(nèi)部機(jī)制是為了避免差分密碼分析而設(shè)計(jì)的;

1998年,出現(xiàn)DES算法破譯機(jī),DES算法被攻破,宣告不安全;

1999年,NIST公布新標(biāo)準(zhǔn)3DES,3DES取代DES,DES作為遺留系統(tǒng)的加密手段被廢棄;

DES 的統(tǒng)治地位在 2002 年結(jié)束,當(dāng)時(shí)高級(jí)加密標(biāo)準(zhǔn) (AES) 取代 DES 加密算法成為公認(rèn)的標(biāo)準(zhǔn),隨后公開競(jìng)爭(zhēng)尋找替代品。NIST 于 2005 年 5 月正式撤回了 FIPS 46-3(1999 年的重申),盡管 Triple DES (3DES) 在 2030 年之前仍被批準(zhǔn)用于敏感的政府信息。

雖然DES被取代了,但是DES的CBC工作模式是基礎(chǔ)性的算法和工作模型,有很強(qiáng)的意義,在遺留系統(tǒng)中也有一些使用的。

設(shè)計(jì)方案

DES加密算法解析

?

DES加密解密首先要準(zhǔn)備好由64位密鑰(8位為校驗(yàn)位)轉(zhuǎn)換得到16組子密鑰,每個(gè)密鑰長(zhǎng)32位。

16個(gè)子密鑰生成

64位的初始密鑰,密鑰只包括56位,剩余的位在硬件中用作奇偶校驗(yàn),在軟件中可直接忽略,初始密鑰通過長(zhǎng)為56的PC1置換矩陣進(jìn)行置換(丟棄了8位):

[

57, 49, 41, 33, 25, 17, 9,

1, 58, 50, 42, 34, 26, 18,

10, 2, 59, 51, 43, 35, 27,

19, 11, 3, 60, 52, 44, 36,

63, 55, 47, 39, 31, 23, 15,

7, 62, 54, 46, 38, 30, 22,

14, 6, 61, 53, 45, 37, 29,

21, 13, 5, 28, 20, 12, 4,

]

將置換后的56位的密鑰分為兩個(gè)28位的組。然后,針對(duì)每個(gè)子密鑰,根據(jù)子密鑰的序列值(也就是16個(gè)子密鑰中的第i個(gè))旋轉(zhuǎn)這兩組值,旋轉(zhuǎn)的位數(shù)在左移表中查找:

KEY_MOVE = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1]

然后重新合并為56位。之后再按照PC2置換矩陣對(duì)重組后的密鑰進(jìn)行置換,使56位的子密鑰縮小為48位(丟棄了8位),這個(gè)排列過程就稱為置換選擇。

[

14, 17, 11, 24, 1, 5, 3, 28,

15, 6, 21, 10, 23, 19, 12, 4,

26, 8, 16, 7, 27, 20, 13, 2,

41, 52, 31, 37, 47, 55, 30, 40,

51, 45, 33, 48, 44, 49, 39, 56,

34, 53, 46, 42, 50, 36, 29, 32

]

針對(duì)16個(gè)子密鑰,每個(gè)子密鑰重復(fù)一次該過程。這里的目的是保證將初始密鑰中的不同位在每一輪排列后應(yīng)用于加密的數(shù)據(jù)上。最終得到16個(gè)子密鑰K

加密解密過程

DES加密算法解析

?

準(zhǔn)備好子密鑰后,再進(jìn)行明文的加密解密:將明文分組,每組56位,最后一組不足56位的向前補(bǔ)零;對(duì)一組明文進(jìn)行初始置換,即通過位置的替換,將56位文組轉(zhuǎn)換位64位分組,并將64位分組分成左右兩個(gè)組L0和R0各32位,一次對(duì)兩組進(jìn)行16輪的F運(yùn)算,其中會(huì)使用到之前準(zhǔn)備的16個(gè)子密鑰,最后將兩組合并得到64位的組,在經(jīng)過最后一次逆置換將其轉(zhuǎn)換位56位的密文組。按順序?qū)⒚芪姆纸M拼接即可得到密文。

在初始變換中,使用到的變換矩陣M如下:

[

58, 50, 42, 34, 26, 18, 10, 2,

60, 52, 44, 36, 28, 20, 12, 4,

62, 54, 46, 38, 30, 22, 14, 6,

64, 56, 48, 40, 32, 24, 16, 8,

57, 49, 41, 33, 25, 17, 9, 1,

59, 51, 43, 35, 27, 19, 11, 3,

61, 53, 45, 37, 29, 21, 13, 5,

63, 55, 47, 39, 31, 23, 15, 7

]

其從左到右,從上到下依次數(shù)共64個(gè),表中第i個(gè)數(shù)據(jù)1<=M[i]<=64,M[i]表示原始數(shù)據(jù)中第M[i]個(gè)數(shù)置換到第i位。逆置換的矩陣為

[

40, 8, 48, 16, 56, 24, 64, 32,

39, 7, 47, 15, 55, 23, 63, 31,

38, 6, 46, 14, 54, 22, 62, 30,

37, 5, 45, 13, 53, 21, 61, 29,

36, 4, 44, 12, 52, 20, 60, 28,

35, 3, 43, 11, 51, 19, 59, 27,

34, 2, 42, 10, 50, 18, 58, 26,

33, 1, 41, 9, 49, 17, 57, 25

]

16輪F運(yùn)算迭代

每一輪以Li-1和Ri-1開始,在前15輪中有:

DES加密算法解析

最后一輪為:

DES加密算法解析

在F運(yùn)算中,ki為第i個(gè)子密鑰,F(xiàn)運(yùn)算分為四個(gè)階段:

  1. E擴(kuò)展:將Ri-1從32位擴(kuò)展到48位。E置換矩陣為:

[

32, 1, 2, 3, 4, 5,

4, 5, 6, 7, 8, 9,

8, 9, 10, 11, 12, 13,

12, 13, 14, 15, 16, 17,

16, 17, 18, 19, 20, 21,

20, 21, 22, 23, 24, 25,

24, 25, 26, 27, 28, 29,

28, 29, 30, 31, 32, 1

]

該置換的主要目的是在加密數(shù)據(jù)的過程中制造一些雪崩效應(yīng),使用數(shù)據(jù)塊中的1位將在下一步操作中影響更多位,從而產(chǎn)生擴(kuò)散效果。

  1. 異或:將計(jì)算出的48位的結(jié)果值與這一輪子密鑰Ki進(jìn)行異或運(yùn)算,這將產(chǎn)生48位的中間值,記為Rint。如果將E計(jì)為擴(kuò)展置換的結(jié)果,則本輪到目前為止的操作可以表示為:

DES加密算法解析

?

  1. S盒壓縮:Rint 需要通過8個(gè)單獨(dú)的S盒執(zhí)行8次替換操作,每個(gè)S盒對(duì)應(yīng)一個(gè)S表:

[

??[

[14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7],

[0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8],

[4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0],

[15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13]

??],

??[

[15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10],

[3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5],

[0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15],

[13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9]

??],

??[

[10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8],

[13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1],

[13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7],

[1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12]

??],

??[

[7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15],

[13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9],

[10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4],

[3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14]

??],

??[

[2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9],

[14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6],

[4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0, 14],

[11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3]

??],

??[

[12, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11],

[10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8],

[9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6],

[4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13]

??],

??[

[4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1],

[13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6],

[1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2],

[6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12]

??],

??[

[13, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7],

[1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2],

[7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8],

[2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11]

??]

]

第j(j=1...8)個(gè)S盒從Rint的6(j-1) 到 6(j-1)+6 的位置取出6位,并為其在S[j]表中查出1個(gè)4位的值,該值為取出這6位壓縮后的結(jié)果。通過前面取出的6位值,根據(jù)第1位和最后1位組成的2位值找到S[j]中的行號(hào),而根據(jù)中間剩下的4位來確定S[j]中的列號(hào)。例如,若Rint中的第3個(gè)6位組是101011。因此對(duì)應(yīng)S[3]表中,行號(hào)等于11 = 3,列號(hào)等于0101= 5 得到結(jié)果為8,轉(zhuǎn)換為二進(jìn)制位0100。S盒壓縮為數(shù)據(jù)增加了不確定性,除了給DES帶來安全性外,沒什么特別的。

  1. P置換:使用P置換矩陣將S盒結(jié)果位置置換:

[

16, 7, 20, 21, 29, 12, 28, 17,

1, 15, 23, 26, 5, 18, 31, 10,

2, 8, 24, 14, 32, 27, 3, 9,

19, 13, 30, 6, 22, 11, 4, 25

]

如果 bj 代表Rint中的第j個(gè)6位組,Sj 代表第j個(gè)S盒,而P代表P盒置換,則3、4階段可以用函數(shù)f表示:DES加密算法解析

?

注意,解密過程同加密過程相同,只需要將子密鑰按照逆向的順序(16-1)對(duì)密文進(jìn)行處理

原理

從本質(zhì)上來說,DES的安全性依賴于虛假表象,從密碼學(xué)的術(shù)語來講就是依賴于“混淆和擴(kuò)散”的原則?;靵y的目的是為隱藏任何明文同密文、或者密鑰之間的關(guān)系,而擴(kuò)散的目的是使明文中的有效位和密鑰一起組成盡可能多的密文。兩者結(jié)合到一起就使得安全性變得相對(duì)較高。

混淆和擴(kuò)散

擴(kuò)散就是指使明文的統(tǒng)計(jì)特征消散在密文中,這可以通過讓每個(gè)明文數(shù)字盡可能地影響多個(gè)密文數(shù)字獲得,等價(jià)于說每個(gè)密文數(shù)字被許多明文數(shù)字影響?;煜齽t是盡可能使密文和加密密鑰間的統(tǒng)計(jì)關(guān)系更加復(fù)雜,以阻止攻擊者發(fā)現(xiàn)密鑰,從而導(dǎo)致明文的統(tǒng)計(jì)結(jié)構(gòu)消失,密文中各字母的出現(xiàn)頻率趨于一致,無法通過統(tǒng)計(jì)方法來破解密文。注意簡(jiǎn)單的線性代替函數(shù)幾乎增加不了混淆,而需要嘗試復(fù)雜代替算法。

DES算法具體通過對(duì)明文進(jìn)行一系列的排列和替換操作來將其加密。過程的關(guān)鍵就是從給定的初始密鑰中得到16個(gè)子密鑰的函數(shù)。要加密一組明文,每個(gè)子密鑰按照順序(1-16)以一系列的位操作施加于數(shù)據(jù)上,每個(gè)子密鑰一次,一共重復(fù)16次。每一次迭代稱之為一輪。要對(duì)密文進(jìn)行解密可以采用同樣的步驟,只是子密鑰是按照逆向的順序(16-1)對(duì)密文進(jìn)行處理。

S-boxes 和 P-boxes 用于增加數(shù)學(xué)的復(fù)雜性,連同一個(gè)密鑰使得確定一些輸入位和每個(gè)輸出位之間發(fā)生的實(shí)際映射變得非常困難。真正觸及問題核心的是 S-box 的設(shè)計(jì)原理/標(biāo)準(zhǔn)。

雪崩效應(yīng):

在密碼學(xué)中,雪崩效應(yīng)是密碼算法的理想屬性,通常是塊密碼和密碼哈希函數(shù),其中如果輸入略有變化(例如,翻轉(zhuǎn)一位),輸出會(huì)顯著變化(例如,一半輸出位翻轉(zhuǎn))。在高質(zhì)量分組密碼的情況下,密鑰或明文的如此小的變化應(yīng)該會(huì)導(dǎo)致密文發(fā)生劇烈變化。

迭代輪數(shù):

僅執(zhí)行擴(kuò)散或混淆的密碼都不是安全的,比如移位密碼或第二次世界大戰(zhàn)使用的密碼機(jī)?Enigma。這兩個(gè)密碼都是僅執(zhí)行擴(kuò)散的密碼。然而,將擴(kuò)散操作串聯(lián)起來就可以建立一個(gè)更強(qiáng)壯的密碼。將若干加密操作串聯(lián)起來的思想也是 Shannon 提出的,這樣的密碼也叫乘積密碼(Product cipher)。目前,所有的分組密碼都是乘積密碼,因?yàn)樗鼈兌际怯蓪?duì)數(shù)據(jù)重復(fù)操作的輪組成的。迭代輪數(shù)越多,密碼分析就越困難。迭代輪數(shù)的選擇標(biāo)準(zhǔn)是使密碼分析的難度大于簡(jiǎn)單窮舉攻擊的難度。有學(xué)者觀察到,對(duì)于16輪選代的DES,差分密碼分析比窮舉攻擊的效率要差一點(diǎn);差分密碼分析需要?2^55.1次操作,而窮舉攻擊平均則需要 2^55次操作。如果 DES 只有15 層選代或更少,差分密碼分析比窮舉攻擊效率就要高一些。

函數(shù)F的設(shè)計(jì):

Feistel密碼的核心是函數(shù) F。函數(shù)F給 Feistel密碼注入了混淆的成分,F(xiàn) 的明顯標(biāo)準(zhǔn)是非線性,任何形式的分析就會(huì)越困難,越難將F近似表示為某些線性等式,F(xiàn)的非線性度就越高。

設(shè)計(jì)F時(shí)還應(yīng)考慮其他幾個(gè)標(biāo)準(zhǔn)。我們希望算法有較好的雪崩效應(yīng),即輸入的一位變化應(yīng)該引起輸出的很多位變化。一個(gè)更嚴(yán)格的定義是嚴(yán)格雪崩效應(yīng)準(zhǔn)則SAC(Strict Avalanche Criterion),參見文獻(xiàn)[WEBS86],即對(duì)于所有的i和,它要求若S 盒的輸入的任意一位i發(fā)生變化,輸出的任意位i發(fā)生變化的可能性為 1/2(參見附錄S 中關(guān)于S 盒的討論)盡管 SAC是對(duì)S盒而言的,作為個(gè)標(biāo)準(zhǔn)它同樣適用于整個(gè)F函數(shù)。當(dāng)F中不含S盒時(shí),這條準(zhǔn)則是很重要的。文獻(xiàn)[WEBS86]中建議的另一項(xiàng)標(biāo)準(zhǔn)是 BIC標(biāo)準(zhǔn)(BitIndependent Criterion),即對(duì)任意的,jk,當(dāng)輸入中的一位i發(fā)生變換時(shí),輸出中的位j和位k的變化應(yīng)是彼此無關(guān)的。SAC 和 BIC 明顯是為了加強(qiáng)混淆的有效性。

密鑰擴(kuò)展:

在密鑰擴(kuò)展算法中,通過左移的方式加大了推導(dǎo)子密鑰及密鑰種子的難度。

S-box 的設(shè)計(jì)準(zhǔn)則

在DES算法中,S-box運(yùn)算是非線性的,而其他運(yùn)算都是線性的,這對(duì)于增加數(shù)學(xué)復(fù)雜性有著決定性的作用,為加密算法提供了更好的安全性。S-box的設(shè)計(jì)準(zhǔn)則如下:

  1. 每個(gè)?S - 盒都有 6 個(gè)輸入位和 4 個(gè)輸出位。
  2. 任何一個(gè)輸出位都不應(yīng)該太接近于輸入位的線性組合。
  3. 如果輸入的最高位和最低位都是固定的,只有中間的?4 個(gè)位是可變的,則每個(gè)可能的 4 位輸出值都必須只出現(xiàn)一次。
  4. 對(duì)于?S - 盒的兩個(gè)輸入,如果僅有 1 位不同,則輸出必須至少有兩位不同。
  5. 對(duì)于?S - 盒的兩個(gè)輸入,如果只有中間兩位不同,則輸出必須至少有兩位不同。
  6. 對(duì)于?S - 盒的兩個(gè)輸入,如果開頭的兩位不同,但最后兩位相同,則輸出必須不同。
  7. 對(duì)于任意有?6 位非零差分的輸入對(duì),32 對(duì)輸入中至多有 8 對(duì)有相同的輸出差分。
  8. 8 個(gè) S - 盒對(duì)應(yīng)的 32 位輸出沖突(零輸出差異)只有在三個(gè)相鄰的 S - 盒的情況下才有可能。
  9. S - 盒是 DES 中最重要的元素,因?yàn)?S - 盒在密碼中引入了非線性,即:

如果沒有非線性構(gòu)造元件,攻擊者很容易就可以使用一個(gè)線性等式系統(tǒng)來表示?DES 的輸入和輸出;其中該系統(tǒng)的密鑰位是已知的。這樣的系統(tǒng)很容易被破解。然而,人們通常會(huì)精心設(shè)計(jì) S - 盒,以便可以抵御各種高級(jí)的數(shù)學(xué)攻擊,尤其是差分密碼分析。

安全分析

DES是不安全的,其主要原因在于其密鑰的長(zhǎng)度太短,56位的密鑰,其密鑰空間大小有限,無法抵擋暴力破解。

在DES剛提出時(shí),非政府密碼學(xué)家就提出 DES 的 56 位密鑰太短,而這起初并沒有被美國政府接受。

在一項(xiàng)研究密鑰長(zhǎng)度的論文中提出,至少75 位才能認(rèn)為現(xiàn)有密碼是安全的,而至少 90 位才能用于新密碼。

如今,基于專用硬件能夠再幾天時(shí)間內(nèi)破解DES,1998年初,電子前沿基金會(huì)建造了一 臺(tái)DES破解機(jī)。平均幾天的搜索就能找到一個(gè)DES密鑰,并且隨著電子技術(shù)的發(fā)展,這樣的硬件成本只會(huì)越來越低。

還有一種?DES 的變體三重 DES(3DES),它比普通的 DES 好得多,使用三個(gè)不同的密鑰應(yīng)用三次 DES。密鑰空間也十分龐大,無法被輕易的暴力破解。我們的代碼默認(rèn)使用3DES。雖然3DES 的速度大約是 DES 的 1/3,但隨著CPU的發(fā)展,已足夠允許3DES在代碼中運(yùn)行。

在DES之后又出現(xiàn)了許多優(yōu)化之后的加密算法,他們選擇密鑰的長(zhǎng)度至少為128位

DES 算法的一些應(yīng)用

  1. 它用于隨機(jī)數(shù)生成
  2. 當(dāng)需要不太強(qiáng)的加密時(shí)部署它?,DES算法最常用的場(chǎng)景是銀行業(yè),如銀行卡收單,信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認(rèn)證、金融交易數(shù)據(jù)包的MAC校驗(yàn)等,均用到DES算法。另外,在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收費(fèi)站等領(lǐng)域,DES算法也被廣泛應(yīng)用,以此來實(shí)現(xiàn)關(guān)鍵數(shù)據(jù)的保密。
  3. 它用于開發(fā)一種新形式的?DES,稱為 Triple DES(使用由三個(gè)密鑰組成的 168 位密鑰)

參考文章

[1]William Stallings.密碼編碼學(xué)與網(wǎng)絡(luò)安全第七版[M].?北京:電子工業(yè)出版社2017.2。文章來源地址http://www.zghlxwxcb.cn/news/detail-434720.html

到了這里,關(guān)于DES加密算法解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • DES加密算法實(shí)現(xiàn)

    DES加密算法實(shí)現(xiàn)

    實(shí)驗(yàn)要求: 編寫DES算法實(shí)現(xiàn)程序,運(yùn)行DES程序,演示DES加密與解密的過程。在加密時(shí)顯示明文和密鑰,在加密過程中在每一輪執(zhí)行完畢后顯示該輪的輸出。 (話不多說,直接上代碼!?。。?實(shí)驗(yàn)代碼: 點(diǎn)擊查看代碼 運(yùn)行結(jié)果: 加密過程 解密過程 解析: 其中,子密鑰生成

    2024年01月19日
    瀏覽(24)
  • DES加密算法

    一、DES加密算法簡(jiǎn)介 DES(Data Encryption Standard)是目前最為流行的加密算法之一。DES是對(duì)稱的,也就是說它使用同一個(gè)密鑰來加密和解密數(shù)據(jù)。 DES還是一種分組加密算法,該算法每次處理固定長(zhǎng)度的數(shù)據(jù)段,稱之為分組。DES分組的大小是64位,如果加密的數(shù)據(jù)長(zhǎng)度不是64位的倍數(shù)

    2024年02月16日
    瀏覽(18)
  • DES加密過程及替換算法

    DES加密過程及替換算法

    1、DES加密過程 ①將64位明文進(jìn)行初始置換; ②將置換后的明文分為32位的L0和R0兩部分; ③左邊L1=R0;右邊R1=L0⊕f(R0,K1),其中f()為輪函數(shù),K1為48bit的子密鑰; ④進(jìn)行16輪迭代; ⑤將最后得到的R16和L16進(jìn)行拼接后,再進(jìn)行逆置換,得到密文。 (1)置換 初始置換和逆置換都是

    2024年02月04日
    瀏覽(22)
  • S-DES加密算法

    S-DES加密算法

    S-DES 是一種簡(jiǎn)化版的數(shù)據(jù)加密標(biāo)準(zhǔn)。相對(duì)于 DES 來說,S-DES 更加簡(jiǎn)單、快速、高效,可以用于學(xué)習(xí)加密算法的入門課程。 使用 S-DES 進(jìn)行加密和解密的步驟如下: 初始置換(IP) 將 8 位明文分為左右兩部分,各 4 位,進(jìn)行初始置換,得到置換后的左右兩部分。 輪函數(shù)(F) 對(duì)

    2024年02月08日
    瀏覽(36)
  • Java 中常見的加密算法,DES、3DES、AES、RSA

    Java 中常見的加密算法,DES、3DES、AES、RSA

    加密算法是一種將數(shù)據(jù)轉(zhuǎn)換為不可讀形式的算法,以保護(hù)數(shù)據(jù)的機(jī)密性和完整性。加密算法被廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫、電子商務(wù)等領(lǐng)域,用于保護(hù)敏感數(shù)據(jù)的安全性,如用戶密碼、信用卡信息、醫(yī)療記錄等。在 Java 中,有許多常見的加密算法,本文將對(duì)加密算法的基

    2024年02月03日
    瀏覽(33)
  • DES算法揭秘:數(shù)據(jù)加密的前沿技術(shù)

    DES算法揭秘:數(shù)據(jù)加密的前沿技術(shù)

    DES(Data Encryption Standard)算法是一種對(duì)稱密鑰加密算法,由IBM的Horst Feistel設(shè)計(jì),于1977年被美國國家標(biāo)準(zhǔn)局(NBS)確定為數(shù)據(jù)加密標(biāo)準(zhǔn)。DES算法基于分組密碼,采用置換、替換和迭代運(yùn)算,用于保護(hù)數(shù)據(jù)的機(jī)密性。 DES加密解密 | 一個(gè)覆蓋廣泛主題工具的高效在線平臺(tái)(amd794.c

    2024年03月17日
    瀏覽(19)
  • AES與DES加密解密算法

    AES與DES加密解密算法

    AES(Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))的出現(xiàn),是因?yàn)橐郧笆褂玫腄ES算法密鑰長(zhǎng)度較短,已經(jīng)不適應(yīng)當(dāng)今數(shù)據(jù)加密安 全性的要求,因此2000年10月2日,美國政府宣布將比利時(shí)密碼學(xué)家Joan Daemen和Vincent Rijmen提出的密碼算法RIJNDAEL作為高級(jí)加密標(biāo)準(zhǔn)。2001年11月26日,美國政府

    2024年04月28日
    瀏覽(41)
  • JavaScript學(xué)習(xí) -- 對(duì)稱加密算法3DES

    JavaScript學(xué)習(xí) -- 對(duì)稱加密算法3DES

    在現(xiàn)代的互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)安全性備受關(guān)注。為了保護(hù)敏感數(shù)據(jù)的機(jī)密性,對(duì)稱加密算法是一種常用的方法。在JavaScript中,3DES(Triple Data Encryption Standard)是一種常用的對(duì)稱加密算法。本篇博客將為您展示如何在JavaScript中使用3DES算法進(jìn)行加密和解密,并提供一個(gè)實(shí)際的例子

    2024年02月14日
    瀏覽(37)
  • Sweet32漏洞,升級(jí)openssl或者禁用3DES和DES弱加密算法

    由于等保的原因,被服務(wù)商掃描出漏洞。 warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack 如何不喜歡使用nmap,也可以使用如下工具testssl.sh,但是輸出的內(nèi)容太多了,本次我只截取部分 解決辦法有兩個(gè),一個(gè)是升級(jí)OpenSSL 1.0.2k-fips 26 Jan 2017 以上,另外一個(gè)是更新nginx配置,禁

    2024年02月11日
    瀏覽(28)
  • 通俗易懂,十分鐘讀懂DES,詳解DES加密算法原理,DES攻擊手段以及3DES原理。Python DES實(shí)現(xiàn)源碼

    通俗易懂,十分鐘讀懂DES,詳解DES加密算法原理,DES攻擊手段以及3DES原理。Python DES實(shí)現(xiàn)源碼

    DES(Data Encryption Standard)是一種 對(duì)稱加密 算法。它是在20世紀(jì)70年代初期由IBM研發(fā)的。它的設(shè)計(jì)目標(biāo)是提供高度的數(shù)據(jù)安全性和性能,并且能夠在各種硬件和軟件平臺(tái)上實(shí)現(xiàn)。 DES使用56位的密鑰和64位的明文塊進(jìn)行加密。DES算法的分組大小是64位,因此,如果需要加密的明文長(zhǎng)

    2024年02月03日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包