2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  64位DES加密系統(tǒng)設(shè)計與實現(xiàn)</p><p>  摘 要 數(shù)據(jù)加密技術(shù)主要通過對網(wǎng)絡(luò)中傳輸?shù)男畔⑦M行數(shù)據(jù)加密來保障其安全性,是一種主動安全的防御策略。信息技術(shù)改變著人們的生活和工作方式,與此同時,信息安全也已成為世人關(guān)注的社會問題。密碼技術(shù)是信息安全的關(guān)鍵技術(shù),密碼算法的快速實現(xiàn)日益重要,本文簡要介紹了DES 算法的基本原理及具體實現(xiàn)過程,并分析了該算法的安全性,并著重對DES 算法的加

2、密過程及優(yōu)缺點進行了探討。通過對分組密碼DES 算法IP 變換、IP 逆變換、S- 盒換位表的分析, 找出了他們的換位規(guī)則, 根據(jù)這種規(guī)則提出了對DES 算法軟件實現(xiàn)的改進方法。并結(jié)合C 編程環(huán)境,介紹了DES 加密程序?qū)崿F(xiàn)的具體方法。</p><p>  關(guān)鍵詞 DES加密; C編程程序?qū)崿F(xiàn);算法</p><p>  Abstract The encryption of the da

3、ta safeguards its security mainly by encrypting the data transmitted by the netwoyrk.This active defensive device can voluntarily offer considerable safety protection for information with only a little cost . Information

4、 technology changes our life and work style. At the same time, Information security has become one of our important social problems. Cryptotechnique is the key technique of information security , a quick implementation o

5、f cryptographic algorithm </p><p>  Key words DES encryption;C programming achievement of programme; </p><p><b>  目次</b></p><p>  一、引言----------------------------------

6、---</p><p>  二、DES加密算法-----------------------------</p><p>  (一)、DES加密算法的基本概念---------------</p><p> ?。ǘES加密算法基本思想-----------------</p><p> ?。ㄈES加密算法內(nèi)在特性---------

7、--------</p><p>  (四)、DES 加密算法的優(yōu)點-------------------</p><p>  (五)、DES加密算法加密目的------------------</p><p>  三、DES加密算法流程分析---------------------</p><p>  (一)、DES加密算法加密過程----

8、-------------</p><p>  子密鑰的產(chǎn)生-------------------------------------------------------</p><p>  換位操作————初始置換-------------------------</p><p><b>  乘積變換</b></p><p

9、>  <1>、擴展置換---------------------------------------</p><p>  <2>、S-盒置換------------------------------------------</p><p>  <3>、P-盒置換-----------------------------------------&l

10、t;/p><p>  <4>、乘積變換函數(shù)f------------------------------------</p><p>  換位操作————末置換---------------------------</p><p>  DES 加密流程圖--------------------------</p><p> ?。ǘ?/p>

11、DES加密算法解密過程-----------------------</p><p>  1、 DES 加密算法的解密思路--------------------------</p><p>  2、 DES解密流程圖--------------------------</p><p>  四、DES 加密算法的討論---------------------

12、--------</p><p>  (一)、DES加密算法的工作方式--------------------- </p><p>  (二)、DES加密算法的安全性---------------------(三)、DES 加密的實現(xiàn)版本優(yōu)化--------------</p><p>  五、DES 加密算法C環(huán)境下的實現(xiàn)---------------------

13、</p><p>  六、結(jié)束語-----------------------------------------</p><p><b>  一、引 言</b></p><p>  二十一世紀(jì)隨著網(wǎng)絡(luò)的普及和發(fā)展,在給人們提供大量方便的同時,信息注定成為一種重要的戰(zhàn)略資源。也必然對安全提出更高的要求.信息的安全保障能力成為一個國家綜合國力的重

14、要組成部分。 采用數(shù)據(jù)保密技術(shù)能保證網(wǎng)上傳輸信息的安全,以免數(shù)據(jù)在傳輸過程中被盜用、暴露或篡改. 數(shù)據(jù)傳輸保密的數(shù)學(xué)模型主要包括數(shù)據(jù)的加密與解密,使用加密算法能做到數(shù)據(jù)加密,在各種信息安全技術(shù)措施中,硬件結(jié)構(gòu)的安全和操作系統(tǒng)的安全是基礎(chǔ),密碼技術(shù)是網(wǎng)絡(luò)安全與保密的核心和關(guān)鍵。DES 算法是目前使用最多的加密算法,也是最有代表性的分組加密算法,目前廣泛的應(yīng)用于保密通信之中。</p><p>  其問世20多年來,成

15、為密碼界研究的重點,經(jīng)受住了許多科學(xué)家的研究和破譯,是一種世界公認(rèn)的較好的加密算法,在POS、ATM、磁卡及智能卡( IC 卡) 、加油站、高速公路收費站等民用密碼領(lǐng)域有著廣泛的應(yīng)用。范圍包括:計算機網(wǎng)絡(luò)通信中的數(shù)據(jù)保護、電子資金傳送系統(tǒng)中的信息加密、保護用戶文件、用戶識別等,為全球貿(mào)易、金融等非官方部門提供了可靠的通信安全保障。</p><p>  早在1977 年,人們估計建成一臺每秒鐘檢測一百萬個密鑰的專用

16、機用于DES 的解密要耗資兩千萬美元,而且需要12 小時的破解才能得到結(jié)果,所以當(dāng)時DES 被認(rèn)為是一種十分強壯的加密方法。當(dāng)今的計算機速度越來越快,1997 年,人們估計制造一臺用于DES 解密的專用機的費用降到十萬美元左右,破解時間為6 小時。所以,當(dāng)今社會單純使用傳統(tǒng)的64位密鑰的DES算法進行加密已經(jīng)不再安全。本文通過DES加密技術(shù)的基本原理及具體實現(xiàn)步驟,并分析了該算法的安全性,并著重對DES 算法的加密過程及優(yōu)缺點進行了探討

17、。通過對分組密碼DES 算法IP 變換、IP 逆變換、S- 盒換位表的分析,對DES的安全質(zhì)疑給出了回答。</p><p><b>  二、DES加密算法</b></p><p> ?。ㄒ唬?、DES加密算法基本概念</p><p>  數(shù)據(jù)加密標(biāo)準(zhǔn)(Data Encryption Standard,簡稱DES)是美國國家標(biāo)準(zhǔn)局于1977 年頒布

18、的由IBM公司研制的一種非機密數(shù)據(jù)的正式數(shù)據(jù)加密標(biāo)準(zhǔn)。</p><p>  在正式接觸DES之前,首先讓我們了解一下加密技術(shù)中的一些專業(yè)術(shù)語:</p><p>  加密(Encipher) :通過密碼系統(tǒng)把明文變換為不可懂的形式的密文。</p><p>  加密算法( Encryption Algorithm) : 實施一系列變換,使信息變成密文的一組數(shù)學(xué)規(guī)則。&l

19、t;/p><p>  解密(Decrypt) :使用適當(dāng)?shù)拿荑€,將已加密的文本轉(zhuǎn)換成明文。</p><p>  密文(Ciphertext) :經(jīng)加密處理而產(chǎn)生的數(shù)據(jù),其語義內(nèi)容是不可用的。</p><p>  明文(Cleartext) :可理解的數(shù)據(jù),其語義內(nèi)容是可用的。</p><p>  DES算法是對稱的,即是一種對稱密碼體制,它所使用

20、的加密密鑰和解密密鑰是相同的,既可用于加密又可用于解密。DES 是一種采用傳統(tǒng)的替換和移位的方法加密的分組密碼, 即它將明文分成固定長度(64 比特)的組(塊) ,用同一密鑰(64 比特實際長度為56 比特因有8 比特用于奇偶校驗)和乘法對每一塊加密,輸出也是固定長度(64 比特)的密文。</p><p> ?。ǘ?、DES加密算法基本思想</p><p>  由于這種典型的按分組方式工作

21、的密碼,其基本思想是將二進制序列的明文分成每64比特一組用64比特的密鑰對其進行16輪代換和換位加密,最后形成密文。</p><p> ?。ㄈ?、DES 算法的內(nèi)在特性</p><p> ?。?)密鑰有效長度是56 位(第8,16,?,64 位為校驗位),分組明文長度為64 位,而且明文、密文與密鑰存在互補關(guān)系.</p><p> ?。?)僅用16 次循環(huán)迭代,使得

22、相同明文會產(chǎn)生相同密文.</p><p> ?。?)存在著很好的并行結(jié)構(gòu):產(chǎn)生內(nèi)部密鑰的左移次數(shù)存在著準(zhǔn)對稱性(即內(nèi)部密鑰生成過程存在并行性). DES 屬于傳統(tǒng)的Feistel 網(wǎng)絡(luò)結(jié)構(gòu),在DES 的基本單元中能夠?qū)嵤┎⑿胁僮?</p><p>  (4)DES 有16 輪加密,如果將第i 輪的P置換移至下一輪后會與下一輪的E 擴展操作進行合并,簡化算法的基本操作.</p>

23、<p> ?。?)可以通過S 盒與P 置換合并的方法節(jié)省P 置換的基本操作時間.</p><p> ?。ㄋ模ES 加密算法的優(yōu)點:</p><p>  DES加密算法的優(yōu)點大致上有以下幾點:</p><p>  (1) DES 提供高質(zhì)量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺的修改; </p><p>  (2) 具有相

24、當(dāng)高的復(fù)雜性,使得破譯的開銷超過可能獲得的利益,同時便于理解掌握; </p><p>  (3) DES密碼體制的安全性不依賴于算法的保密,其加密的安全性僅以加密密鑰的保密為基礎(chǔ)。</p><p> ?。ㄎ澹ES加密算法加密目的</p><p>  DES加密算法要達(dá)到的目的(通常稱為DES 密碼算法要求)主要為以下五點:</p><p>

25、;  1.提供高質(zhì)量的數(shù)據(jù)保護,防止數(shù)據(jù)未經(jīng)授權(quán)的泄露和未被察覺的修改;</p><p>  2.具有相當(dāng)高的復(fù)雜性,使得破譯的開銷超過可能獲得的利益,同時又要便于理解和掌握;</p><p>  3.DES 密碼體制的安全性應(yīng)該不依賴于算法的保密,其安全性僅以加密密鑰的保密為基礎(chǔ);</p><p>  4.實現(xiàn)經(jīng)濟,運行有效,并且適用于多種完全不同的應(yīng)用。<

26、/p><p>  5.DES的巧妙之處在于,除了密鑰輸入順序之外其加密和解密的步驟完全相同。</p><p>  三、DES加密算法流程分析</p><p>  (一)、DES加密算法加密過程</p><p>  數(shù)據(jù)加密標(biāo)準(zhǔn)過程主要包括三部分:一個是密鑰產(chǎn)生部分;一個是換位操作,即初始置換部分和末置換部分;另一個是乘積交換部分。</p&g

27、t;<p><b>  1、子密鑰的產(chǎn)生</b></p><p>  DES的乘積變換部分含16輪非線性變換,而每一輪非線性變換需要一個48比特的子密鑰。這16個子密鑰都是有一個64比特的外部密鑰(即DES的主密鑰)經(jīng)過移位和置換生成。</p><p>  64比特主密鑰是在實施加密之前由外部直接輸入給DES的16個子密鑰是由一個64比特的外部密鑰經(jīng)過移

28、位和轉(zhuǎn)換產(chǎn)生的。</p><p>  64比特主外部密鑰K被輸入后首先經(jīng)過奇偶校驗,同時剔除K8、K16、K24、K32、K40、K48、K56、K64等奇偶校驗位,得到56比特的密鑰K’。再將K’加到密碼置換,</p><p>  密碼置換是將K‘各個位上的數(shù)碼,按照特定的進行換位,置換后的56 比特分別存放到兩個28比特的寄存器C0和D0中。</p><p>&

29、lt;b>  DES密鑰置換表</b></p><p>  密鑰置換有規(guī)律可循:將1~64間的數(shù)字依次從上到下從右向左填入表格(1),將表格(1)消去最后一行,再將其它部分分割成表格(2)和表格(3)。將表格(3)翻轉(zhuǎn)180即可。</p><p><b>  表格(1)</b></p><p><b>  表格(2)

30、</b></p><p><b>  表格(3)</b></p><p>  讀取的順序是從最上面一行開始,由左至右逐行讀取。前四行共28比特。分別置于寄存器C0第1位..第28位 ,后四行共28比特分別置于寄存器D0第1 位...第28位。其它16對寄存器,即(C1,D1)、(C2,D2)、(C3,D3)、(C4,D4)、(C5,D5)、(C6,D6)、

31、(C7,D7)、(C8,D8))、(C9,D9)、(C10,D10)、(C11,D11)、(C12,D12)、(C13,D13)、(C14,D14)、(C15,D15)、(C16,D16)都有28比特。(Ci+1,Di+1)的內(nèi)容均是根據(jù)如圖每輪密鑰的移位表,將寄存器對)(Ci,Di)內(nèi)容循環(huán)左移1至2位到,循環(huán)左移即從寄存器左邊移出的比特,又補到寄存器的最右邊一位上。</p><p>  每輪子密鑰的移位比特數(shù)

32、</p><p>  外部密鑰K的各比特在寄存器Ci的位置</p><p>  外部密鑰K的各比特在寄存器Di的位置</p><p>  將存儲到各寄存器對中的內(nèi)容都加到壓縮置換表中,壓縮置換是按照固定的格式從中選出48比特,其中壓縮置換表的數(shù)字表示寄存器對(Ci,Di)的比特序號,即將(Ci,Di)中的第14,17,11,┅┅位分別置換成Ki的第1,2,3,┅┅位

33、。Ki表中的前四行的均小于28說明Ki的前24位從寄存器Ci 的28 位置換得來,其中剔除第9,18,22,25</p><p>  四個比特。表中的前四行的均小于28說明Ki的前24位從寄存器Di的28 位置換得來其中剔除第35,38,43,54四個比特。</p><p><b>  壓縮置換表</b></p><p>  16對積存器經(jīng)過壓

34、縮置換表的置換產(chǎn)生16個子密鑰K1、K2、K3、 K4、 K5、 K6 、K7、 K8 、K9 、K10、 K11、 K12、 K13、 K14 、K15、 K16 。</p><p>  經(jīng)過壓縮置換置換子密鑰Ki 與外部密鑰K的比特對應(yīng)關(guān)系如圖:</p><p>  DES子密鑰產(chǎn)生過程流程圖如下:</p><p>  2、換位操作————初始置換</p&

35、gt;<p>  加密前,先把明文分成64比特的分組,然后將64比特二進制碼輸入密碼器中。密碼器先對輸入的64位碼進行初始置換.。</p><p>  初始置換是對64為明文分組進行如圖所示的變換。讀法依然是從左到右,從上到下。</p><p>  初始置換表有明顯的規(guī)律性:上四行全為偶數(shù),而且從上到下,從左到右是由小到大排列,下四行全為奇數(shù),而且從上到下,從左到右是由小到大

36、排列.</p><p>  然后在64位主密鑰的產(chǎn)生的16個子密鑰控制下進行16輪的乘積變換,接著再進行末置換就可得到64比特已加密的密文。</p><p><b>  3、乘積變換</b></p><p>  乘積變換包括:擴展置換,與48比特密鑰Ki進行異或操作,S-盒置換,P-盒置換。</p><p><b&

37、gt;  <1>、擴展置換</b></p><p>  在每一輪的變換中,DES對上一輪結(jié)果的右半部分的32比特首先進行擴展置換。</p><p>  擴展置換有時也叫E-盒置換,是將32比特數(shù)據(jù)擴展成48比特。</p><p><b>  擴展置換的目的:</b></p><p>  產(chǎn)生與密鑰

38、同長度的數(shù)據(jù)便于同密鑰進行異或操作;</p><p>  二、 提供更長的結(jié)果,使得在非線性替換運算中能進行壓縮。</p><p><b>  擴展置換具體過程:</b></p><p>  先將輸入的32比特的數(shù)據(jù)分成8組,每組4比特。把上一組的最后一位加在該組的前面,把下一組的最前的一位放在該組的后面,且8組為循環(huán)。</p>

39、<p>  擴展置換:E(R)= R32 R1 R2 R3 R4 R5</p><p>  R4 R5 R6 R7 R8 R9</p><p>  R8 R9 R10 R11 R12 R13</p><p>  R12 R13 R14 R15 R16 R17 </p>

40、<p>  R16 R17 R18 R19 R20 R21</p><p>  R20 R21 R22 R23 R24 R25</p><p>  R24 R25 R26 R27 R28 R29</p><p>  R28 R29 R30 R31 R32 R1</p>

41、<p>  然后再與已經(jīng)經(jīng)過移位和置換的48比特密鑰Ki進行異或操作,將得到的結(jié)果新的48比特數(shù)據(jù)送入S-盒進行非線性替換。</p><p><b>  <2>、S-盒置換</b></p><p>  S-盒將48比特的輸入分成8組,每組6比特。每一個6比特的分組由一個S-盒進行以下操作:</p><p>  若輸入的6比

42、特為A=(a1, a2, a3, a4, a5, a6)則a1 和a6 兩位二進制數(shù)可以確定0~3之間的一個數(shù)字,它決定S-盒置換表中的某一行,而a2, a3, a4, a5,這四位二進制數(shù)可以確定0~15之間的一個數(shù)字,它決定S-盒置換表中的某一列,行列叫界交叉初所存的十六進制數(shù)的二進制數(shù)轉(zhuǎn)換即為新的輸出。</p><p><b>  <3>、P-盒置換</b></p&g

43、t;<p>  通過將48比特數(shù)據(jù)替換成新的32比特的數(shù)據(jù),新得到32比特的數(shù)據(jù)再經(jīng)過P-盒進行換位重排. </p><p><b>  P-盒置換表</b></p><p>  將P-盒置換的結(jié)果與最初的64比特分組的左半部分的32比特進行異或運算,作為下一輪變換輸入的右半部分,而原來的右半部分作為下一輪變換輸入的左半部分 ,即完成一輪變換!</

44、p><p>  <4>、乘積變換函數(shù)f</p><p>  擴展置換,與48比特密鑰Ki進行異或操作,S-盒置換,P-盒置換四步運算構(gòu)成了乘積變換函數(shù)f. </p><p>  乘積變換函數(shù)f示意圖:</p><p>  4、換位操作————末置換.</p><p>  末置換其置換的格式如表所示</p&

45、gt;<p><b>  末置換表IP-1</b></p><p>  記表技巧:上表一列隔一列從下往上讀容易發(fā)現(xiàn)規(guī)律!</p><p>  5、DES加密流程圖</p><p>  (二)、DES解密過程</p><p>  1、DES加密算法的解密思路</p><p>  解密運

46、算與加密運算一樣,只是所取子密鑰的順序不同. 加密時候的順序是K1 →K2 →Ki→K16,解密時的順序則為K16 →K15 →Ki→ K1.</p><p>  2、DES解密流程圖</p><p>  四、DES 加密算法的討論</p><p> ?。ㄒ唬?、DES的工作模式:</p><p>  DES的工作模式有四種,即:電子密碼本模式

47、(electronic codebook mode簡稱ECB),密碼分組鏈接模式(cipher block chaining mode簡稱CBC),密碼反饋模式(cipher feedback mode簡稱CFB)以及輸出反饋模式(output feedback mode簡稱OFB).</p><p>  ECB模式y(tǒng)i=DESk(xi); 1in</p><p>  電子

48、密本工作方式的特點:</p><p> ?。?)密鑰相同的情況下,輸入的明文分組相同,加密出來的密文分組也相同。</p><p> ?。?)一個密文分組只與相應(yīng)的明文分組和密鑰K有關(guān)而與同一文本中的其它分組無關(guān)。</p><p> ?。?)果密文分組的邊界發(fā)生了錯誤,就會引起收、發(fā)雙方失步,使分組紊亂,這時解密出來的明文分組都是錯誤的。</p><

49、;p>  CBC模式y(tǒng)i=DESk(xi yi-1); 1in</p><p><b>  CBC加密</b></p><p><b>  CBC解密</b></p><p>  密文分組鏈接方式的特點;</p><p> ?。?)第一個密文分組C1 不但是密鑰K和明文P1的函數(shù),而且還

50、是初始化向量VI的函數(shù);其它密文分組Ci (I=1,2,3,┅,n)不但是密鑰K和明文Pi的函數(shù),而且還是密文分組Ci-1的函數(shù),而密文分組Ci-1 又是K,Pi-1和Ci-1函數(shù),類推可知,任何一個密文Ci都是P1, P2, P3,┅,Pi-的函數(shù)。</p><p> ?。?)解密后的第一個明文分組與初始化向量VI有關(guān),如果收、發(fā)雙方的初始化向量VI不一致,第一個明文分組將不正確。</p>&

51、lt;p> ?。?)具有有限的錯誤擴散性。如第i 個密文分組Ci上發(fā)生錯誤,那么錯誤將會引起解密后的第i個和第i+1明文分組上的誤碼,但是第i+2以及其后的各密文分組的解密將不受Ci錯誤的影響。</p><p> ?。?)如果密文分組的邊界發(fā)生失步,則其后的解密將是不正確的。只有在收、發(fā)雙方重新同步后,才能正確解密。</p><p>  OFB模式zi= DESk (xi zi-1

52、); 1in</p><p>  yi= xi zi; 1in</p><p>  輸出反饋方式的特點:</p><p> ?。?)DES只是用來產(chǎn)生密鑰分組序列,不論在加密端還是解密端,DES所處的工作狀態(tài)都相同,所以加密和解密所用的子密鑰的順序應(yīng)該相同,而不是相反。</p><p> ?。?)密文在傳輸和

53、存儲的過程中發(fā)生的任何錯誤,在解密后都只影響本分組解密后的明文,而不會影響其它分組,而且錯誤的位置不發(fā)生變化,因此他不存在錯誤擴散特性。</p><p> ?。?)如果DES的輸出發(fā)生錯誤。或者收發(fā)雙方失步,則解密后將面目全非。只有當(dāng)重新初始化后,才能建立同步,恢復(fù)正常工作。</p><p> ?。?)對明文加密用的隨機比特序列,即密鑰序列只依賴初始話向量VI和密鑰K ,與被加密的信息無關(guān)

54、。所以在某種I和K的使用期限內(nèi),每次加密所用的隨機比特序列都相同,這是他的弱點。</p><p>  CFB模式zi=DESk(yi-1); 1in</p><p>  yi= xi zi; 1in</p><p>  密文反饋方式的特點:</p><p> ?。?)在密文反饋方式中,由于反饋序列取自輸出密

55、文序列它不僅與密鑰K和初始化向量有關(guān),還和明文分組有關(guān)。</p><p>  (2)這種工作方式具有顯著的錯誤擴散特性。</p><p> ?。?)這種工作方式一般沒有自同步功能,一旦收發(fā)雙方失步,必須重新同步后才能恢復(fù)正確解密。</p><p> ?。?)在密文反饋方式中,明文分組的大小J可以根據(jù)需要加以選擇。如果選擇J =8,則是按字節(jié)對明文進行加密;。如果選擇

56、J=16,則是按雙字節(jié)或字對明文進行加密;。如果選擇J=1,則是逐比特對明文進行加密。由于可以是逐比特進行加密,就不存在同步問題,因此密文反饋方式特別適合于異步。</p><p>  以上四種模式各有不同不足。在ECB模式和OFB模式中改變一個明文塊Mi 將引起相應(yīng)的密文塊Ci的改變而且其它密文塊不變。所以O(shè)FB模塊通常用來加密衛(wèi)星傳輸。在CBC模式和CFB模式中改變一個明文塊Mi那么密文塊Ci以及Ci之后的密文

57、塊將會改變。這意味著CBC模式和CFB模式適用于鑒別的目的。更明確的講,CBC模式和CFB模式能夠用來產(chǎn)生信息鑒別碼(MAC)。</p><p><b>  雙重DES</b></p><p>  雙重DES的密鑰長度為56*2=112。</p><p>  有人說雙重DES等價于使用一個56位密鑰的單重DES。沒有任何實際的價值,不但沒有提高

58、安全性能,反而增加了計算量。但實踐證明雙重DES并不等價于使用一個56位密鑰的單重DES,但是密鑰計算量的大大增加,使得一種被稱為中途相遇攻擊(meet-in-the-middle attack)的破譯方法對它構(gòu)成威脅。</p><p>  設(shè)k1 和k2 是兩個長度為56的密鑰,</p><p>  給定的明文為x,則密文y為:</p><p>  y=DES k

59、2 (DES k1 (x)) .</p><p>  給定的密文y,則明文x為:</p><p>  x=DES k1-1 (DES k2 –1 (y)) .</p><p><b>  三重DES</b></p><p>  三重DES有三個顯著的優(yōu)點:</p><p>  首先,三重DES可以

60、采用三個密鑰或者兩個密鑰,完全能夠抵御窮舉攻擊。</p><p>  其次,三重DES 的底層加密算法和DES 相同,因此相當(dāng)安全。</p><p>  再者,許多現(xiàn)有的DES軟硬件產(chǎn)品都能方便的實現(xiàn)三重DES,因此使用方便。</p><p>  設(shè)k1 , k2 ,k3 是三個長度為56的密鑰,給定的明文為x,則密文y為:</p><p>

61、  y= DES k3 (DES k2 –1 (DES k1 (x))) .</p><p>  給定的密文y,則明文x為:</p><p>  x=DES k1-1 (DES k2 (DES k3 –1 (y))).</p><p> ?。ǘ?、DES加密算法的安全性</p><p>  通過對DES 加、解密過程分析,從技術(shù)上講,DES

62、存在的缺陷主要集中在三個方面:</p><p>  (1)、密鑰較短作為分組密碼,DES 的加密單位僅有64 位二進制,這對于數(shù)據(jù)傳輸來說太小,因為每個區(qū)組僅含8 個字符,而且其中某些位還要用于奇偶校驗或其他通訊開銷。密鑰僅有56 位二進制未免太短,各次迭代中使用的密鑰K(i) 是遞推產(chǎn)生的,這種相關(guān)性必然降低了密碼體制的安全性。如果密鑰的長度再長一些,顯然會更加安全。因此,有人認(rèn)為:在現(xiàn)有的技術(shù)條件下用窮舉搜索

63、法來尋找正確密鑰已趨于可行,因此,若要安全保護10 年以上的數(shù)據(jù)最好不用DES 算法。</p><p>  (2)、DES 存在一些弱密鑰和半弱密鑰。由它們所產(chǎn)生的16 個子密鑰是有相重的。弱密鑰和半弱密鑰的存在無疑是DES的一個不足。</p><p> ?。?)、存在互補對稱性。設(shè)C = D E S (M ,K ),則C ' = D E S (M ',K ' ),

64、其中M',C',K' 表示M,C,K 的非, 密碼學(xué)上稱這種特性為互補對稱性。這將使DES 在使用選擇明文攻擊的窮舉試探工作量減半。</p><p>  (4)、除去S 盒,DES 里的所有計算全是線性的,而且S盒的設(shè)計對密碼算法的安全性至關(guān)重要。由于DES 算法采用美國國家安全局精心設(shè)計的8個S - 盒和IP - 置換,而實現(xiàn)迭代函數(shù)Si 所用的S - 盒的設(shè)計原理尚未公開,其中可能留有

65、隱患。更有人擔(dān)心DES算法中有“陷門”,知道秘密的人可以很容易地進行密文解密。</p><p>  根據(jù)目前DES 算法的使用情況看,采用DES 算法仍然具有極高的安全性。</p><p> ?。ㄈ?、DES 加密的實現(xiàn)版本優(yōu)化</p><p>  基于DES 算法上的缺陷,各國信息安全專家都在研究,在基本不改變DES 算法加密強度條件下提出了幾十種增強DES安全性

66、的方法,經(jīng)過研究比對,常用的有以下7種,具有可行性:</p><p>  1、多重DES[3] </p><p>  為了增加密鑰的長度,可采用多重加密技術(shù)。將分組密碼進行級聯(lián),在不同的密鑰作用下,連續(xù)多次對一組明文進行加密。對DES ,專家的共識是使用三重加密DES ,可使加密密鑰長度擴展到128 位(112 位有效) 或192 位(168 位有效) 。用三把不同密鑰對數(shù)據(jù)連續(xù)加密三次,

67、構(gòu)成所謂Tripe - DES 。它等價于把DES 的鑰匙長度增加到112位。鑰匙長度每增加一位,鑰匙總數(shù)就會翻一番,能有效地防止對密鑰的窮盡搜索。當(dāng)然, 加密、解密的運算量也會是DES 的3 倍。</p><p>  以128 位的密鑰為例,其基本原理是將128 位的密鑰分為64 位的兩組( K1 ,K2) :</p><p>  <1>、用密鑰K1 進行DES 加密。<

68、;/p><p>  <2>、用K2 對步驟<1>的結(jié)果進行DES 解密。</p><p>  <3>、用步驟<2>的結(jié)果使用密鑰K1 進行DES 加密。</p><p>  如此對明文數(shù)據(jù)進行三次普通的DES 加解密操作,從而提高了加密強度。據(jù)稱,目前尚無人找到針對此方案的攻擊方法。</p><p>

69、;  2、S - 盒可變的DES[1] </p><p>  通過優(yōu)化S - 盒的設(shè)計,使S - 盒的次序隨密鑰而變化或使S - 盒的內(nèi)容本身是可變的,就可以抵抗破譯時差分密碼分析,以達(dá)到進一步增強DES 算法加密強度的目的。</p><p>  在DES 算法中S-box 是核心。其設(shè)計準(zhǔn)則是:</p><p>  <1>、沒有一個S-box 的輸出位

70、是輸入位的線性函數(shù)。</p><p>  <2>、如果將輸入的兩端固定,中間4 位變化,產(chǎn)生的輸出只能得到一次。</p><p>  <3>、如果S-box 的兩個輸入之間有一位的差異,則輸出中至少兩位不同。</p><p>  <4>、S-box 的兩個輸入前兩位不同而最后兩位已知,則輸出必須不同。</p><

71、;p>  <5>、對于輸入之間的任何6 位差分,32 對中至多有8 對顯示出的差分導(dǎo)致了相同的輸出差分。</p><p>  3、具有獨立子密鑰的DES</p><p>  這種改進是每一輪迭代都使用一個不同的子密鑰,而不是由一個56 位二進制的密鑰產(chǎn)生。由于16 輪迭代的每一輪使用一個48 位二進制的密鑰,所以這種變形的DES 密鑰長度是768 位。這一方法可以大大地增

72、加窮舉破譯難度,相應(yīng)增強了DES 的加密強度,</p><p><b>  4、G- DES</b></p><p>  G- DES 是廣義DES 的縮寫,設(shè)計它的目的是為了提高DES 的速度和強度。將DES 的2 個32 位子組擴充為q個32 位子組,在每圈中只有第q 個子組通過f 函數(shù)變換,并與其他各子組分別異或,而后按組循環(huán)右移交換位置。雖然總的分組長度增加了

73、(分組長度是可變的) ,但圈函數(shù)f 保持不變。</p><p><b>  5、DES - X</b></p><p>  這是由RSA 數(shù)據(jù)安全公司設(shè)計的一種DES 的變形用法,已用在MailSafe 電子函件的安全程序和BSAFE 的加密工具中。它采用了白化技術(shù),在n 個已知明文下,窮舉攻擊的運算量為2120/ n ,而在差分攻擊下所需的選擇明文數(shù)和已知明文數(shù)分別

74、為261和260 ,較DES 的強度大得多,大大增加了攻擊難度。</p><p><b>  6、snDESi</b></p><p>  Kim 等人提出利用布爾函數(shù),構(gòu)造嚴(yán)格滿足雪崩準(zhǔn)則SAC 的類似于DES 的S 盒,以此來提高分組密碼算法的抗差分和抗線性攻擊的能力。他們提出了五條構(gòu)造S 盒的準(zhǔn)則,給出了8 個具體的S - 盒例,后來經(jīng)過改進,又提出了s4DES

75、 和s5DES 方案,進一步提高了抗差分和抗線性攻擊性能。</p><p><b>  7、xDESi</b></p><p>  xDESi 方案利用DES 構(gòu)造了一族分組密碼,加大了數(shù)據(jù)分組和密鑰長度。當(dāng)i = 0 時,就是DES ;</p><p>  當(dāng)i > 0時,xDESi :GF(2) 56i (2i + 1) ×

76、GF(2) 128i →GF (2) 128i ,即為采用密鑰長度為56 ×i ×(2i + 1) 位、組長為128 ×i 位的分組密碼;</p><p>  當(dāng)i = 1時,它將分組長度加倍,成為密鑰長度增至3 倍的三輪方案,它比一般三重加密DES 快;</p><p>  當(dāng)i ≥3 時,由于實現(xiàn)復(fù)雜而不實用。</p><p>  

77、8、對DES 算法實現(xiàn)方法的改進</p><p>  DES 算法實現(xiàn)時最關(guān)鍵的是初始置換表IP、末變換表IP- 1及S盒的設(shè)計, 但出于安全的需要, 分組密碼DES 的若干換位表都是直接引出, 使使用者很難理解, 更無法找到其換位規(guī)則, 下面就通過對它的分析力圖找到DES算法的換位規(guī)則和提高其運算效率的實現(xiàn)方法。</p><p>  IP 變換表分析及實現(xiàn)方法的改進</p>

78、<p>  通過對表1 分析可以看出, 先輸入64 比特的一組明文M(64), 編號次序為0,1,2,3,… ,63,把M(64)的第2,4,6,8,1,3,5,7 列變成第1,2,3,4,5,6,7,8 行后再首尾翻轉(zhuǎn)180°就得到明文M(64)的初始換位表IP(64)。IP- 1 換位表是將64 比特的字符串R16L16 的第1,2,3,4,5,6,7,8行變成2,4,6,8,1,3,5,7 列后再首尾翻轉(zhuǎn)18

79、0°得到的。找到這個規(guī)律有助于程序?qū)崿F(xiàn)的改進并能夠提高計算速度。軟件設(shè)計上, 可以用一個表實現(xiàn)兩個表的操作,減少程序的大小; 也可以直接用算式代替IP 及IP- 1 變換表, 由計算代替查表, 可以大大提高計算的速度。</p><p>  S 盒實現(xiàn)方法的改進</p><p>  在進行S 盒運算時, 設(shè)6 位輸入為A=a1,a2,a3,a4,a5,a6,記h= a1a6, k=

80、 a2a3a4a5, 則在S i(i=1,2,...,8) 表中第h 行, k列所對應(yīng)的值即為輸出值。由于a1a2a3a4a5a6= a1a6*16+ a2a3a4a5, 所以在具體軟件實現(xiàn)時, 可以將S 盒的二維表化為一維表來操作, 將在4 行, 16 列的一個二維表中查找對應(yīng)的值Si(a1a6, a2a3a4a5) 變成逐行接續(xù)的一維表,直接查找一維表中a1a2a3a4a5a6所對應(yīng)的值, 這樣可以大大提高程序運行速度。進一步將E

81、表第6 列變到第2 列, PC- 2 表第6 列變到第2 列, 在查找S i ( i=1,2,...,8)表時, 只須去查找a1a6 行, a2a3a4a5 列所對應(yīng)的值, 變成一維表后, 直接查找表中a1a2a3a4a5a6所對應(yīng)的值即可。</p><p>  通過以上改進, 減少了DES 算法設(shè)計上的難度, 同時提高了算法的執(zhí)行效率。</p><p>  六、DES 加密算法C環(huán)境下的

82、實現(xiàn)</p><p>  #include "Stdio.h"</p><p>  #include <Malloc.h></p><p>  #define NULL 0</p><p>  #ifdef LITTLE-ENDIAN</p><p>  unsigned long by

83、teswap();</p><p><b>  #endif</b></p><p>  static char ip[]=</p><p><b>  {</b></p><p>  58,50,42,34,26,18,10,2,</p><p>  60,52,44,36

84、,28,20,12,4,</p><p>  62,54,46,38,30,22,14,6,</p><p>  64,56,48,40,32,24,16,8,</p><p>  57,49,41,33,25,17,9,1,</p><p>  59,51,43,35,27,19,11,3,</p><p>  61

85、,53,45,37,29,21,13,5,</p><p>  63,55,47,39,31,23,15,7</p><p><b>  };</b></p><p>  static char fp[]=</p><p><b>  {</b></p><p>  40,8

86、,48,16,56,24,64,32,</p><p>  39,7,47,15,55,23,63,31,</p><p>  38,6,46,14,54,22,62,30,</p><p>  37,5,45,13,53,21,61,29,</p><p>  36,4,44,12,52,20,60,28,</p><p

87、>  35,3,43,11,51,19,59,27,</p><p>  34,2,42,10,50,18,58,26,</p><p>  33,1,41,9,49,17,57,25 </p><p><b>  };</b></p><p>  #ifdef notdef</p><p>

88、;  static char ei[]=</p><p><b>  {</b></p><p>  32,1,2,3,4,5,</p><p>  4,5,6,7,8,9,</p><p>  8,9,10,11,12,13,</p><p>  12,13,14,15,16,17,</p

89、><p>  16,17,18,19,20,21,</p><p>  20,21,22,23,24,25,</p><p>  24,25,26,27,28,29,</p><p>  28,29,30,31,32,1</p><p><b>  };</b></p><p>

90、;<b>  #endif</b></p><p>  static char pc1[]=</p><p><b>  {</b></p><p>  57,49,41,33,25,17,9,</p><p>  1,58,50,42,34,26,18,</p><p> 

91、 10,2,59,51,43,35,27,</p><p>  19,11,3,60,52,44,36,</p><p>  63,55,47,39,31,23,15,</p><p>  7,62,54,46,38,30,22,</p><p>  14,6,61,53,45,37,29,</p><p>  21,

92、13,5,28,20,12,4</p><p><b>  };</b></p><p>  static char totrot[]=</p><p><b>  {</b></p><p>  1,2,4,6,8,10,12,14, 15,17,19,21,23,25,27,28</

93、p><p><b>  };</b></p><p>  static char pc2[]=</p><p><b>  {</b></p><p>  14,17,11,24,1,5,</p><p>  3,28,15,6,21,10,</p><p&g

94、t;  23,19,12,4,26,8,</p><p>  16,7,27,20,13,2,</p><p>  41,52,31,37,47,55,</p><p>  30,40,51,45,33,48,</p><p>  44,49,39,56,29,32</p><p><b>  };</

95、b></p><p>  static char si[8][64]=</p><p><b>  {</b></p><p>  /* S1 */ 14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,</p><p>  0,15,7,4,14,2,13,1,10,6,12,11,9,5,

96、3,8,</p><p>  4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,6,</p><p>  15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,</p><p>  /* S2 */ 15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,</p><p>  3

97、,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,</p><p>  0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,</p><p>  13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,</p><p>  /* S3 */ 10,0,9,14,6,3,15,5,1,13,12,7,

98、11,4,2,8,</p><p>  13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,</p><p>  13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,</p><p>  1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12,</p><p>  /* S4

99、 */ 7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,</p><p>  13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,</p><p>  10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,</p><p>  3,15,0,6,10,1,13,8,9,4,5,11,12,7,

100、2,14,</p><p>  /* S5 */ 2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,</p><p>  14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,</p><p>  4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,</p><p>  

101、11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3,</p><p>  /* S6 */ 12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,</p><p>  10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,</p><p>  9,14,15,5,2,8,12,3,7,0,4,10,

102、1,13,11,6,</p><p>  4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,</p><p>  /* S7 */ 4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,</p><p>  13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,</p><p&

103、gt;  1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,</p><p>  6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,</p><p>  /* S8 */ 13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,</p><p>  1,15,13,8,10,3,7,4,12,5

104、,6,11,0,14,9,2,</p><p>  7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,</p><p>  2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11</p><p><b>  };</b></p><p>  static char p32i[

105、]=</p><p><b>  {</b></p><p>  16,7,20,21,</p><p>  29,12,28,17,</p><p>  1,15,23,26,</p><p>  5,18,31,10,</p><p>  2,8,24,14,</

106、p><p>  32,27,3,9,</p><p>  19,13,30,6,</p><p>  22,11,4,25</p><p><b>  };</b></p><p>  static long (*sp)[64];</p><p>  static char (

107、*iperm)[16][8];</p><p>  static char (*fperm)[16][8];</p><p>  static unsigned char (*kn)[8];</p><p>  static int bytebit[]=</p><p><b>  {</b></p>&l

108、t;p>  0200,010,040,020,010,04,02,01};</p><p>  static int nibblebit[]={010,04,02,01};</p><p>  static int desmode;</p><p>  desinit(mode)</p><p><b>  int mode;

109、</b></p><p>  {if(sp!=NULL)return 0;</p><p>  desmode=mode;</p><p>  if((sp=(long (*)[64])malloc(sizeof(long)*8*64))==NULL) </p><p>  return -1;</p>

110、<p><b>  spinit();</b></p><p>  kn=(unsigned char (*)[8])malloc(sizeof(char)*8*16);</p><p>  if(kn==NULL){free((char*)sp);</p><p>  return -1;</p><p>

111、<b>  }</b></p><p>  if(mode==1||mode==2)return 0;</p><p>  iperm=(char (*)[16][8])malloc(sizeof(char)*16*16*8);</p><p>  if(iperm==NULL){free((char*)sp);</p><

112、p>  free((char*)kn);</p><p>  return -1;</p><p><b>  }</b></p><p>  perminit(iperm,ip);</p><p>  fperm=(char(*)[16][8])malloc(sizeof(char)*16*18*8);</

113、p><p>  if(fperm==NULL){free((char*)sp);</p><p>  free((char*)kn);</p><p>  free((char*)iperm);</p><p>  return -1;</p><p><b>  }</b></p>&

114、lt;p>  perminit(fperm,fp);</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  desdone()</b></p><p>  {if(sp==NULL)return;<

115、;/p><p>  free((char*)sp);</p><p>  free((char*)kn);</p><p>  if(iperm!=NULL)</p><p>  free((char*)iperm);</p><p>  if(fperm!=NULL)</p><p>  free

116、((char*)fperm);</p><p><b>  sp=NULL;</b></p><p>  iperm=NULL;</p><p>  fperm=NULL;</p><p><b>  kn=NULL;</b></p><p><b>  retur

117、n;</b></p><p><b>  }</b></p><p>  void setkey(key)</p><p>  char *key;</p><p>  {char pclm[56];</p><p>  char pcr[56];</p><p&g

118、t;  register int i,j,l;</p><p><b>  int m;</b></p><p>  if(desmode==2)</p><p>  {for(i=0;i<16;i++)</p><p>  for(j=0;j<16;j++)</p><p>  kn

119、[i][j]=*key++;</p><p><b>  return;</b></p><p><b>  }</b></p><p>  for(i=0;i<16;i++)</p><p>  for(j=0;j<8;j++)kn[i][j]=0;</p><p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論