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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p><b>  ( 屆)</b></p><p>  論文題目數(shù)據(jù)加密方法的研究與實(shí)現(xiàn)</p><p>  所在學(xué)院 </p><p>  專(zhuān)業(yè)班級(jí) 信息管理與信息系統(tǒng) </p&g

2、t;<p>  學(xué)生姓名 學(xué)號(hào) </p><p>  指導(dǎo)教師 職稱(chēng) </p><p>  完成日期 年 月 日</p><p>  數(shù)據(jù)加密方法的研究與實(shí)現(xiàn)</p><p>  摘要:信息是當(dāng)今社會(huì)

3、的一種非常重要的戰(zhàn)略資源。密碼技術(shù)作為保護(hù)信息安全最核心技術(shù)之一,一直是安全專(zhuān)家們研究的重點(diǎn)。本文對(duì)密碼技術(shù)的重要性進(jìn)行了闡述,介紹了當(dāng)今密碼技術(shù)的分類(lèi)、原理,以及它們未來(lái)的發(fā)展。著重對(duì)DES加密算法,RSA加密算法和IDEA加密算法進(jìn)行了描述,并且通過(guò)編寫(xiě)程序?qū)崿F(xiàn)DES加密算法和RSA加密算法對(duì)數(shù)據(jù)的加密。</p><p>  關(guān)鍵詞: 信息;密碼技術(shù);DES;RSA;IDEA;加密;解密</p>

4、<p>  The Research And Implementation of Data Encryption Method </p><p>  Abstract:Information is an very important strategic resources in the society. Cryptographic technology as one of the most techn

5、ology to protect the security of information, has been on the focus of safety experts’ research. This text expounds the importance of the cryptographic technology, introduces the classification, cryptographic technology

6、principle and the future development of them. Focusing on the DES encryption algorithm, RSA encryption algorithm and IDEA encryption algorithm are descri</p><p>  Key words: Information; Cryptographic Techno

7、logy; DES; RSA; IDEA; Encryption; Decryption </p><p><b>  目錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 密碼技術(shù)的研究意義1</p><p>  1.2 論文的主要工作2</p

8、><p>  2 密碼技術(shù)基本概念3</p><p>  2.1 加密原理3</p><p>  2.2 密碼學(xué)的發(fā)展歷史4</p><p>  2.3 密碼技術(shù)的國(guó)內(nèi)外發(fā)展?fàn)顩r4</p><p>  2.4密碼技術(shù)的發(fā)展方向5</p><p>  3 加密算法的分析6<

9、/p><p>  3.1 DES加密算法6</p><p>  3.1.1 DES概述6</p><p>  3.1.2 DES加密算法詳解6</p><p>  3.1.3 DES密鑰計(jì)算7</p><p>  3.1.4 DES安全性分析8</p><p>  3.2 RS

10、A加密算法9</p><p>  3.2.1 RSA概述9</p><p>  3.2.2 RSA算法描述10</p><p>  3.2.3 RSA安全性分析10</p><p>  3.3 IDEA加密算法11</p><p>  3.3.1 IDEA概述11</p><p

11、>  3.3.2 IDEA算法描述12</p><p>  3.3.3 IDEA安全性分析13</p><p>  4 加密算法的實(shí)現(xiàn)14</p><p>  4.1 DES加密算法14</p><p>  4.1.1 界面設(shè)計(jì)與代碼14</p><p>  4.1.2 運(yùn)行結(jié)果16<

12、;/p><p>  4.2 RSA加密算法16</p><p>  4.2.1界面設(shè)計(jì)與代碼16</p><p>  4.2.2運(yùn)行結(jié)果21</p><p>  5 總結(jié)與展望22</p><p>  5.1 總結(jié)22</p><p>  5.2 展望22</p>

13、<p>  致 謝錯(cuò)誤!未定義書(shū)簽。</p><p><b>  參考文獻(xiàn)24</b></p><p><b>  1 緒論</b></p><p>  從第一臺(tái)計(jì)算機(jī)誕生起,經(jīng)過(guò)幾十年的高速發(fā)展,信息技術(shù)已經(jīng)進(jìn)入到我們的生活的方方面面,不斷改變著我們的生活。我們已經(jīng)進(jìn)入了信息化時(shí)代。信息化時(shí)代是一個(gè)

14、信息爆炸的時(shí)代,大量的信息依靠傳統(tǒng)的方式難以實(shí)現(xiàn)有效的儲(chǔ)存和傳輸,因而以計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的信息技術(shù)的發(fā)展顯得尤為重要。</p><p>  1.1 密碼技術(shù)的研究意義</p><p>  在中國(guó),網(wǎng)民的人數(shù)已經(jīng)達(dá)到了3億。每天人們都要通過(guò)計(jì)算機(jī)和網(wǎng)絡(luò)進(jìn)行生活、工作、學(xué)習(xí)、娛樂(lè)等活動(dòng)。這些活動(dòng)都需要依靠信息在網(wǎng)絡(luò)中的傳輸來(lái)完成。其中包括了一些十分敏感的個(gè)人信息,如銀行卡賬戶(hù)信息,

15、公民個(gè)人身份信息等。這些信息都是和人民的切身利益緊密相關(guān)。如果信息被盜,那將會(huì)為人民帶來(lái)巨大的損失。</p><p>  近年來(lái),以淘寶,阿里巴巴等為代表的電子商務(wù)蓬勃發(fā)展。2008年,中國(guó)的電子商務(wù)交易總額已經(jīng)突破了3萬(wàn)億人民幣大關(guān),達(dá)到了GDP總量的10%,年增長(zhǎng)率也達(dá)到了50%[1]。電子商務(wù)已經(jīng)成為我國(guó)經(jīng)濟(jì)發(fā)展的強(qiáng)大的助推力。不僅僅是電子商務(wù),其他計(jì)算機(jī)和網(wǎng)絡(luò)相關(guān)的信息產(chǎn)業(yè)在中國(guó)也得到了大力的發(fā)展。它們所

16、創(chuàng)造的經(jīng)濟(jì)效益也在逐年快速增長(zhǎng),已經(jīng)成為中國(guó)經(jīng)濟(jì)發(fā)展不可或缺的部分和強(qiáng)大動(dòng)力。</p><p>  電子政務(wù)也是近年來(lái)的信息化建設(shè)的重點(diǎn)。電子政務(wù)是指政府機(jī)構(gòu)運(yùn)用現(xiàn)代化的網(wǎng)絡(luò)通訊技術(shù)和計(jì)算機(jī)技術(shù),把政府管理和服務(wù)職能通過(guò)簡(jiǎn)單、優(yōu)化、整合、重組后到網(wǎng)上實(shí)現(xiàn),打破時(shí)間、空間以及條塊的制約,為社會(huì)公眾以及自身提供一體化的高效、優(yōu)質(zhì)廉潔的管理和服務(wù)[2]。它不僅能提高政府的工作效率和工作透明度,也使人民群眾更好的實(shí)行監(jiān)督

17、的權(quán)利。因此,電子政務(wù)的建設(shè)受到了政府的極大的關(guān)注和投入。政府部門(mén)經(jīng)常通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸一些文件資料。有些文件包含了涉及國(guó)家安全的機(jī)密資料,一旦泄露,將為我國(guó)國(guó)家安全和社會(huì)安定帶來(lái)巨大威脅。我們需要對(duì)這些資料進(jìn)行保護(hù),保證其安全的傳輸和儲(chǔ)存。</p><p>  辦公自動(dòng)化是現(xiàn)在企業(yè)信息化建設(shè)的重要步驟。企業(yè)把信息資源和重要文件都以電子文檔的形式存放在服務(wù)器上,以方便各部門(mén)、各公司之間的文檔調(diào)用,這樣能很大程度上提

18、高工作效率。目前,各大公司都紛紛建設(shè)辦公自動(dòng)化。有許多涉及商業(yè)機(jī)密的文件也一同被放在服務(wù)器上。這些資料也需要嚴(yán)格保護(hù)。</p><p>  信息是一種戰(zhàn)略資源,在國(guó)防軍事上,信息安全成為了一個(gè)重要的安全防衛(wèi)領(lǐng)域。密碼技術(shù)作為信息安全防御中的不可替代的技術(shù),在世界各國(guó),尤其是歐美等國(guó)受到極大的重視[3]。美國(guó)在這方面投入了巨大的資源來(lái)建立了一只專(zhuān)門(mén)的信息安全部隊(duì)確保其再信息領(lǐng)域的安全。</p><

19、;p>  密碼技術(shù)作為信息安全技術(shù)最重要的部分之一,是一種主動(dòng)的安全防御策略,為信息存儲(chǔ)和傳輸提供保護(hù)。同時(shí),密碼技術(shù)是其他安全技術(shù)的基礎(chǔ),比如數(shù)字簽名和密鑰管理等。因此,密碼技術(shù)受到安全專(zhuān)家的高度關(guān)注和重視。現(xiàn)在,各國(guó)都在大力開(kāi)發(fā)和改進(jìn)密碼技術(shù),用以應(yīng)對(duì)目前日益嚴(yán)重的信息安全問(wèn)題,保障社會(huì)的快速發(fā)展,保護(hù)國(guó)家安全。</p><p>  1.2 論文的主要工作</p><p>  

20、本次設(shè)計(jì)通過(guò)運(yùn)用文獻(xiàn)分析方法、面向?qū)ο蟪绦蛟O(shè)計(jì)方法來(lái)完成預(yù)定的目標(biāo):(1)加密技術(shù)的選擇。(2)加密密鑰長(zhǎng)度的選擇。(3)加密功能。(4)解密功能。</p><p>  具體研究方法和技術(shù)路線(xiàn)如下:</p><p> ?。?)首先要通過(guò)文獻(xiàn)對(duì)加密技術(shù)的原理和算法實(shí)現(xiàn)進(jìn)行系統(tǒng)的學(xué)習(xí),尤其是對(duì)對(duì)稱(chēng)加密算法中的DES算法和IDEA算法,非對(duì)稱(chēng)加密算法中的RSA算法的深入學(xué)習(xí)。</p>

21、<p>  (2)通過(guò)對(duì)其他類(lèi)似的加密軟件的功能的觀(guān)察研究,進(jìn)而對(duì)本軟件進(jìn)行分析:第一,功能分析,即對(duì)軟件要實(shí)現(xiàn)的主要功能進(jìn)行分析,包括加密算法的選擇,密鑰的生成,加密與解密的實(shí)現(xiàn)等。第二,軟件性能分析,即對(duì)軟件的跨平臺(tái)運(yùn)行能力,較高的安全性和高加密效率的實(shí)現(xiàn)。第三,根據(jù)上述分析,對(duì)軟件整體的框架進(jìn)行邏輯設(shè)計(jì)。第四、評(píng)審分析,對(duì)整個(gè)軟件的設(shè)計(jì)方案再做一次評(píng)審,確定其設(shè)計(jì)合理,功能完備,具有可操作性。</p>

22、<p> ?。?)通過(guò)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言來(lái)完成軟件的實(shí)現(xiàn)過(guò)程。</p><p>  2 密碼技術(shù)基本概念</p><p>  為了更好的研究密碼技術(shù),首先要闡述一下和密碼技術(shù)相關(guān)的一些基本的概念:</p><p><b>  2.1 加密原理</b></p><p>  數(shù)據(jù)加密的基本思想是通過(guò)一些手段對(duì)

23、信息進(jìn)行處理,使處理后的結(jié)果與原文截然不同,確保信息只能被授權(quán)的用戶(hù)通過(guò)特定手段處理后得知,非授權(quán)得到處理后的信息不能夠知曉原來(lái)信息。明文是原來(lái)的信息,這些信息需要進(jìn)行特定的處理;加密就是信息處理的過(guò)程;密文是處理后產(chǎn)生的結(jié)果;密碼算法就是在信息處理時(shí)所規(guī)定的特定的規(guī)則;加密者是對(duì)明文進(jìn)行加密的個(gè)體,接收者是接收加密后的密文并且解密密文的個(gè)體;而破譯者則是那利用一些密碼破解手段對(duì)明文進(jìn)行解密的非授權(quán)的個(gè)體[4]。如圖一所示: </

24、p><p>  圖2-1 加密系統(tǒng)圖</p><p>  (1)明文空間M,它是指明文。</p><p>  (2)密文空間C,它是指明文。</p><p>  (3)密鑰空間K,它是一個(gè)密鑰對(duì),包括加密密鑰K和解密密鑰K´,既K=<K, K´>。</p><p>  (4)加密算法E,它是

25、對(duì)M進(jìn)行加密變換成C。</p><p>  (5)解密算法D.它是對(duì)C進(jìn)行解密變換成M。</p><p>  對(duì)于明文M,加密算法E在密鑰K的控制下將明文M加密成密文,而解密算法D在密鑰K´的控制下將密文C解密出同一明文M,即 Ek(m)=c, Dk(c)=m[5]。對(duì)于每一個(gè)確定的密鑰,加密算法將確定一個(gè)具體的加密變換,解密算法將確定一個(gè)具體的解密變換,且解密變換是加密變換的逆

26、變換[6]。</p><p>  2.2 密碼學(xué)的發(fā)展歷史</p><p>  密碼學(xué)的發(fā)展經(jīng)歷的漫長(zhǎng)的時(shí)機(jī),最早可以追溯到幾千年前。其大致可以分為3個(gè)階段:</p><p>  第1階段是從幾千年前到1949年。這一時(shí)期可以看著是科學(xué)密碼學(xué)的前夜[7]。這時(shí)的密碼設(shè)計(jì)和破譯還沒(méi)有具體的理論和規(guī)則。多數(shù)只能靠密碼專(zhuān)家個(gè)人的天賦。</p><p&

27、gt;  第2階段是從1949年到1975年。Shannon在1949年發(fā)表的《保密系統(tǒng)的信息理論》一文,是密碼學(xué)開(kāi)始的標(biāo)志[7]。這篇文章為對(duì)稱(chēng)密鑰密碼系統(tǒng)的建立提供了理論基礎(chǔ),密碼學(xué)從此正式成為了一門(mén)新的學(xué)科。</p><p>  第3階段是從1976年至今。1976年Diffie和Hellman發(fā)表了《密碼學(xué)新方向》一文,提出了公鑰密碼理論。他們首次證明了在發(fā)送端和接收端不需要傳輸密鑰的保密通信的可能性,從

28、而開(kāi)創(chuàng)了公鑰密碼學(xué)的新紀(jì)元[7]。</p><p>  2.3 密碼技術(shù)的國(guó)內(nèi)外發(fā)展?fàn)顩r</p><p>  國(guó)際上的密碼技術(shù)主要分為兩類(lèi),一類(lèi)是基于數(shù)學(xué)的密碼理論與技術(shù),比如公鑰密碼、分組密碼、序列密碼、PKI技術(shù)等。另一類(lèi)是非數(shù)學(xué)的密碼理論與技術(shù),比如量子密碼,基于生物特征的識(shí)別理論與技術(shù)等[8]。對(duì)稱(chēng)密鑰密碼和公鑰密碼相比較各自具有不同的特點(diǎn)。</p><p&g

29、t;  目前,基于數(shù)學(xué)的密碼理論與技術(shù)被廣泛的運(yùn)用在各個(gè)領(lǐng)域。公鑰密碼自1979年以來(lái)至今,已經(jīng)有了多種不同的公鑰體制誕生。其中主要有兩類(lèi):一類(lèi)基于大數(shù)因子分解問(wèn)題,比如經(jīng)典的公鑰密碼系統(tǒng)RSA;另一類(lèi)基于離散對(duì)數(shù)問(wèn)題,比如橢圓曲線(xiàn)公鑰體制[8]。由于大數(shù)因子分解的能力在不斷的發(fā)展,使用RSA的安全性也隨之受到威脅。人們通過(guò)增加密鑰的長(zhǎng)度以提高大數(shù)因子分解的難度來(lái)保證提高它的安全性。一般密鑰長(zhǎng)度為1024比特。公鑰密碼體制主要用于數(shù)字簽

30、名和密鑰分配,如PKI。PKI如今已經(jīng)成為公鑰密碼體制研究的一個(gè)熱門(mén)。</p><p>  序列密碼的理論已經(jīng)很成熟了。它被廣泛的運(yùn)用在政府和軍方要害部門(mén)的信息安全上[8]。雖然目前序列密碼已經(jīng)不是一個(gè)熱點(diǎn),但是它依舊具有很高的價(jià)值。比如R C4被用于存儲(chǔ)加密中。</p><p>  1977年制定的分組密碼除了公布具體的算法之外,從來(lái)不公布詳細(xì)的設(shè)計(jì)規(guī)則和方法。DES是分組密碼系統(tǒng)中的經(jīng)

31、典代表。分組密碼的優(yōu)點(diǎn)在于它的加密速率快,效率高,被廣泛應(yīng)用在對(duì)大文件加密上。</p><p>  非數(shù)學(xué)的密碼理論與技術(shù),如量子密碼,基于生物特征的識(shí)別理論與技術(shù)等,目前也受到密碼學(xué)家的高度關(guān)注,在國(guó)際上進(jìn)行熱烈的討論和研究[8]。這些密碼技術(shù)是與其他學(xué)科技術(shù)結(jié)合在一起,大大加強(qiáng)了密碼的安全性。</p><p>  國(guó)外目前不僅在密碼基礎(chǔ)理論方面的研究做的很好,而且在實(shí)際應(yīng)用方面也傲的非

32、常好[8]。歐美等國(guó)都制定了一系列規(guī)范的密碼標(biāo)準(zhǔn)。算法的征集和討論都已經(jīng)公開(kāi)化。我國(guó)在這些方面卻遠(yuǎn)未達(dá)到。因此,國(guó)內(nèi)的密碼技術(shù)要想趕上國(guó)際上的水平,我們就需要和國(guó)際接軌。不僅要學(xué)習(xí)新的密碼技術(shù),也要建立自己的密碼體制和創(chuàng)新機(jī)制。</p><p>  2.4密碼技術(shù)的發(fā)展方向</p><p>  盡管對(duì)稱(chēng)密鑰密碼和公鑰密碼進(jìn)過(guò)多年的發(fā)展和實(shí)踐,已經(jīng)有了十分完整的體系。但是在這信息高速發(fā)展的時(shí)

33、代,各種威脅對(duì)安全構(gòu)成了嚴(yán)重的挑戰(zhàn),已有的密碼技術(shù)對(duì)這些威脅的抵抗顯得有些力不從心,所以我們需要發(fā)展新的的密碼技術(shù)來(lái)實(shí)現(xiàn)信息安全的保障。</p><p>  由于破解能力的增強(qiáng),單一密碼的安全性變大越來(lái)越低,所以,密碼專(zhuān)家們把多種密碼結(jié)合使用,創(chuàng)立出的混合密碼體系變?yōu)榱诵碌陌l(fā)展方向。由 IBM 等公司于 1996 年聯(lián)合推出的用于電子商務(wù)的協(xié)議標(biāo)準(zhǔn) SET(Secure Electronic Transactio

34、n)中和 1992 年由多國(guó)聯(lián)合開(kāi)發(fā)的 PGP 技術(shù)中,均采用了包含單鑰密碼、雙鑰密碼、單向雜湊算法和隨機(jī)數(shù)生成算法在內(nèi)的混合密碼系統(tǒng)[9]。</p><p>  同時(shí),一些新的密碼理論也被提了出來(lái)。近年來(lái)研究火熱的混沌密碼學(xué)就是其中之一。它綜合應(yīng)用了混沌理論、密碼學(xué)、通信工程等方面的理論。還有基于一些其他學(xué)科發(fā)展而發(fā)展的新密碼技術(shù),有基于物理中的光學(xué)和量子理論的量子密碼,基于生物特征密碼技術(shù),指紋加密、瞳孔加密

35、等的高新密碼技術(shù)。</p><p>  當(dāng)然,密碼學(xué)專(zhuān)家們也沒(méi)放棄對(duì)原有密碼體制的繼續(xù)改進(jìn),進(jìn)而增強(qiáng)它們的安全性。比如增加密鑰長(zhǎng)度來(lái)加強(qiáng)RSA的安全性,增加迭代輪數(shù)來(lái)加強(qiáng)DES加密的強(qiáng)度等方法。</p><p>  這些新的密碼覺(jué)有很高的安全性,同時(shí)也有很強(qiáng)的靈活性,為信息加密安全將提供了強(qiáng)有力的保障。</p><p>  3 加密算法的分析</p>

36、<p>  加密算法主要分為對(duì)稱(chēng)密鑰密碼和公鑰密碼。在對(duì)稱(chēng)密鑰密碼中,DES加密算法最具有代表性。同為分組加密算法的IDEA加密算法,具有比DES加密算法更強(qiáng)的安全性和加密速度,因此有著廣泛的應(yīng)用。而在公鑰密碼中,基于大數(shù)分解的RSA加密算法是其代表。它們也是加密技術(shù)中的基礎(chǔ)的技術(shù)。學(xué)習(xí)和掌握它們,對(duì)學(xué)習(xí)其他加密技術(shù)將有十分有力的幫助。</p><p>  3.1 DES加密算法</p>

37、<p>  3.1.1 DES概述</p><p>  數(shù)據(jù)加密標(biāo)準(zhǔn)(DES,Data Encrpytion Standard)是一種使用密鑰加密的塊密碼,1976年被美國(guó)聯(lián)邦政府的國(guó)家標(biāo)準(zhǔn)局確定為聯(lián)邦資料處理標(biāo)準(zhǔn)(FIPS),隨后在國(guó)際上廣泛流傳開(kāi)來(lái)。它基于使用56位密鑰的對(duì)稱(chēng)算法。這個(gè)算法因?yàn)榘恍C(jī)密設(shè)計(jì)元素,相對(duì)短的密鑰長(zhǎng)度以及被懷疑內(nèi)含美國(guó)國(guó)家安全局(NSA)的后門(mén)而在開(kāi)始時(shí)是有爭(zhēng)議的

38、,因此DES因此受到了強(qiáng)烈的學(xué)院派式的審查,并以此推動(dòng)了現(xiàn)代的塊密碼及其密碼分析的發(fā)展[10]。</p><p>  3.1.2 DES加密算法詳解</p><p>  DES是混亂和擴(kuò)散的組合。DES用一個(gè)56位的密鑰對(duì)64位的明文分組進(jìn)行操作,將其轉(zhuǎn)換成一個(gè)64為的密文。它的基本思路是:把明文M通過(guò)一個(gè)初始置換,轉(zhuǎn)換成M0,并分成左右兩個(gè)32為長(zhǎng)度的部分,即:L0和R0。然后將R0與

39、子密鑰K1進(jìn)行F函數(shù)的運(yùn)算,結(jié)果在與L0進(jìn)行異或。異或后的結(jié)果與L0進(jìn)行左右交換,成為L(zhǎng)1和R1。如此進(jìn)行16次迭代,再經(jīng)過(guò)一個(gè)木置換(初始置換的逆置換)得到密文。</p><p><b>  加密過(guò)程:</b></p><p> ?。?)將明文分成多個(gè)64bit的組,不足64bit的以適當(dāng)?shù)男问窖a(bǔ)足。</p><p> ?。?)進(jìn)行16輪的相

40、同的運(yùn)算。這些運(yùn)算被稱(chēng)為函數(shù)F。即Li=Ri-1,Ri=Li-1f(Ri-1,Ki)(1≤i≤16).Ki為第i輪計(jì)算中使用的子密鑰。</p><p><b>  以第一次迭代為例:</b></p><p>  首先,將64bit大小的分組M分為左右兩個(gè)大小均為32bit的部分L0,R0。</p><p>  其次,保持L0不變,根據(jù)固定替換表

41、E把R0由32位擴(kuò)展成48位。把擴(kuò)展后的48位R0與第1次迭代生成的48位加密密鑰進(jìn)行按位異或操作,形成一個(gè)新的48位的R。</p><p>  再次,把R視為8個(gè)6bit的分組。每個(gè)6bit組依次與S盒進(jìn)行替換運(yùn)算。第一個(gè)比特和最后一個(gè)比特組合來(lái)確定S盒中的行,中間四位二進(jìn)制數(shù)確定S盒中的列。由行列所對(duì)應(yīng)的數(shù)轉(zhuǎn)換為4bit來(lái)替換6bit的組,由此將48bit的R轉(zhuǎn)換為32bit。接著將R與固定的置換P來(lái)進(jìn)行置換

42、,得到函數(shù)F的結(jié)果P(C)。</p><p>  最后,將函數(shù)F的結(jié)果P(C)與L0進(jìn)行異或運(yùn)算,結(jié)果為R1。L1的值為R0。</p><p>  DES需要進(jìn)行16次的迭代,在完成之前,把第i-1次得到的L和R的值作為第i次的輸入數(shù)據(jù),第i次迭代要選擇第i次迭代生成的密鑰與數(shù)據(jù)進(jìn)行按位異或。</p><p>  DES算法的前15次迭代每完成一次迭代都要交換L和R

43、的值,第16次迭代不交換兩者的數(shù)值.。</p><p>  (3)應(yīng)用初始置換IP的逆置換IP-1對(duì)L16R16進(jìn)行置換,得到密文C[7]。</p><p><b>  解密過(guò)程:</b></p><p>  對(duì)密文C逆序使用密鑰方案,輸出明文M。</p><p>  每一輪的加密算法過(guò)程如下[11]:</p>

44、;<p>  圖3-1 每一輪DES加密過(guò)程</p><p>  3.1.3 DES密鑰計(jì)算</p><p>  子密鑰由初始密鑰K計(jì)算得出。具體步驟如下[7]:</p><p>  ①對(duì)于一個(gè)給定的初始密鑰K,刪除其中的8位的校驗(yàn)位,然后進(jìn)行如下運(yùn)算:PC-1(K)=C0D0。PC-1是對(duì)余下56位的固定置換,并將結(jié)果分為28bit的C0,D0兩個(gè)

45、部分。</p><p> ?、谟?jì)算Ci=LSi(Ci-1),Di=LSi(Di-1),Ki=PC-2(CiDi)(1≤i≤16)。LSi表示一個(gè)位置或者兩個(gè)位置的向左循環(huán)移位,PC-2表示為另外一個(gè)固定置換。</p><p> ?、劢?jīng)過(guò)16次迭代過(guò)后,生產(chǎn)16個(gè)48為的子密鑰。</p><p>  3.1.4 DES安全性分析</p><p&g

46、t;  自從DES算法被公諸于世以來(lái),學(xué)術(shù)界對(duì)DES的安全性和破譯的方法進(jìn)行了激烈的爭(zhēng)論,其中對(duì)密鑰長(zhǎng)度、迭代次數(shù)、S盒的設(shè)計(jì)是人們所關(guān)注的焦點(diǎn)[12]。</p><p>  由于DES采用的對(duì)稱(chēng)加密的體制,這使得加解密雙方使用相同或者可以相互推導(dǎo)的密鑰,因此密鑰的安全分發(fā)成為了整個(gè)加密體系中一個(gè)十分薄弱,且具有巨大風(fēng)險(xiǎn)的環(huán)節(jié)。再加上DES算法的密鑰更新的間隔時(shí)間較長(zhǎng),密碼攻擊者就足夠的時(shí)間去破解密鑰,這也為安全

47、加密安全提供很大的威脅。</p><p>  根據(jù)目前的分析,輪數(shù)為16輪的DES仍然是安全的。但是如果加密輪數(shù)變小,特別是10輪以下,就容易被破解。而達(dá)到16輪的DES,破解方式主要是窮舉攻擊。但是使用窮舉攻擊想要在短時(shí)間內(nèi)破解,是十分困難的。這種攻擊方式需要攻擊者使用十分昂貴的高速計(jì)算機(jī)進(jìn)行窮舉。所以,使用DES算法應(yīng)該不使用輪數(shù)小于16的[12]。密碼專(zhuān)家也盡力擴(kuò)大在一個(gè)迭代密碼算法的輪數(shù)來(lái)改進(jìn)算法[13]

48、。</p><p>  在DES中存在4個(gè)弱密鑰和12個(gè)半弱密鑰。,密鑰初始值被分成了兩部分,每一部分可以獨(dú)立地移動(dòng)。如果每一部分的所有位都是0或l,那么算法的任意一輪的子密鑰都是相同的。所謂“弱密鑰”,指的是密鑰全是1或0,或者一半是1,一半是0的情況。所謂“半弱密鑰”,指的是密鑰對(duì)里的一個(gè)密鑰能解密另一個(gè)密鑰加密的信息。弱密鑰和半弱密鑰的產(chǎn)生,主要是有DES算法的子密鑰產(chǎn)生方式所決定的。在產(chǎn)生子密鑰的過(guò)程中,

49、人們需要不斷檢查來(lái)避免弱密鑰的產(chǎn)生[14]。</p><p>  密鑰長(zhǎng)度是安全性的一個(gè)重要方面。雖然,在目前的情況下,64位密鑰長(zhǎng)度DES想要使用窮舉方式破解依然具有比較大的難度。然而,隨著計(jì)算機(jī)技術(shù)的發(fā)展,在未來(lái),速度更快,價(jià)格低廉的計(jì)算機(jī)將會(huì)不斷面世。這位DES的生存帶來(lái)挑戰(zhàn)。所以,很多專(zhuān)家都建議增加密鑰長(zhǎng)度,并且做了這方面的改進(jìn)。3DES就是其中的代表。3DES就是使用2個(gè)密鑰對(duì)明文進(jìn)行3次的DES加密。

50、得到的密文在目前破解技術(shù)下具有極高的安全性。</p><p>  在DES加密算法實(shí)現(xiàn)過(guò)程中,S盒作為DES算法的核心其中決定性的作用。S盒式整個(gè)算法中唯一的非線(xiàn)性部件。一個(gè)保密的,設(shè)計(jì)巧妙的S盒能為DES加密的安全性提供極大的支持。雖然它的設(shè)計(jì)原理沒(méi)有被公布,但是有一些設(shè)計(jì)原則可以提供參考[7]:</p><p> ?、偎蠸盒的每一行是0,1,2,...,15的一個(gè)置換。</p&

51、gt;<p> ?、谒蠸盒的輸出都不是輸入的線(xiàn)性函數(shù)或仿射函數(shù);</p><p>  ③S盒的輸入改變?nèi)我庖晃欢紩?huì)引起輸出中至少兩位發(fā)生變化;</p><p> ?、軐?duì)于任何輸入x(6位),S(x)與S(x001100)至少有兩位不同;</p><p> ?、輰?duì)于任何輸入x(6位),S(x)與S(x00ef00)不相等,e,f取0或1;</p&

52、gt;<p>  3.2 RSA加密算法</p><p>  3.2.1 RSA概述</p><p>  RSA是Rivest、Shamir和Adleman在1977年提出的一種公開(kāi)密鑰密碼體制,目前已成為公鑰密碼的國(guó)際標(biāo)準(zhǔn)。RSA的理論基礎(chǔ)是數(shù)論中的一條重要論斷:對(duì)一個(gè)具有大素?cái)?shù)因子的大數(shù)進(jìn)行分解是非常困難的。目前,RSA在世界范圍內(nèi)被廣泛地應(yīng)用于各種產(chǎn)品、平臺(tái)等軟件上

53、[15]。RSA系統(tǒng)是公鑰加密系統(tǒng)中最具代表性也最經(jīng)典的,大多數(shù)目前廣泛被使用的公鑰加密和數(shù)字簽名的產(chǎn)品與標(biāo)準(zhǔn)都是使用RSA算法。</p><p>  RSA算法是第一個(gè)既用于數(shù)據(jù)加密也用于數(shù)字簽名的公鑰算法,所以它成為為公用網(wǎng)絡(luò)上信息提供加密和鑒別一種重要方法。它會(huì)產(chǎn)生一對(duì)密鑰,即公鑰和私鑰。私鑰被用戶(hù)保存著,不進(jìn)行對(duì)外公開(kāi);公鑰則向外進(jìn)行公開(kāi),由他人使用。在用RSA加密是,首先他人使用公鑰對(duì)明文進(jìn)行加密并且傳

54、遞給用戶(hù),用戶(hù)得到密文后,使用自己的私鑰進(jìn)行解密,還原出明文信息。為了保證密鑰的安全性,RSA密鑰要求至少為500位的長(zhǎng)度,一般情況下推薦使用1024位長(zhǎng)度的密鑰。 </p><p>  基于下面的事實(shí),保證了RSA算法的安全性和有效性:</p><p> ?。?)已有確定一個(gè)數(shù)是不是質(zhì)數(shù)的快速算法。</p><p> ?。?)尚未找到確定一個(gè)合數(shù)的質(zhì)因子的快速算法

55、。</p><p>  目前,由于電子商務(wù)和其它因特網(wǎng)的應(yīng)用需求的日益激增,公鑰體系得到極大的發(fā)展。其中包括對(duì)服務(wù)器訪(fǎng)問(wèn)控制和對(duì)電子商務(wù)交易過(guò)程的安全保護(hù),以及權(quán)利保護(hù)、個(gè)人隱私、無(wú)線(xiàn)交易和內(nèi)容完整性(如保證新聞報(bào)道或股票行情的真實(shí)性)等方面的需求。公鑰技術(shù)發(fā)展趨勢(shì)就是PKI與操作系統(tǒng)的集成,PKI是“Public Key Infrastructure”的縮寫(xiě),意為“公鑰基礎(chǔ)設(shè)施”。目前,公鑰體制廣泛地用于CA認(rèn)

56、證、數(shù)字簽名和密鑰交換等領(lǐng)域。</p><p>  公鑰加密中使用最廣的就是RSA算法。RSA算法的一大用處就是解決DES加密算法的密鑰管理和分發(fā)的問(wèn)題。由于RSA的算法復(fù)雜,因此通常情況下人們不使用RSA加密算法來(lái)對(duì)大的數(shù)據(jù)文件進(jìn)行加密,而使用DES加密。但是,DES系統(tǒng)有一個(gè)巨大的風(fēng)險(xiǎn)便是它的密鑰分發(fā)過(guò)程。使用RSA算法來(lái)加密DES算法的密鑰來(lái)進(jìn)行密鑰分發(fā),其結(jié)果非常好,成功的解決了這一問(wèn)題。RSA的另一大用

57、處便是數(shù)字簽名。數(shù)字簽名可以很容易的發(fā)現(xiàn)密文電文是否被篡改,從而對(duì)數(shù)據(jù)信息的完整性進(jìn)行驗(yàn)證。</p><p>  3.2.2 RSA算法描述</p><p>  密鑰對(duì)的產(chǎn)生[16]:</p><p>  1、隨意選擇兩個(gè)大的質(zhì)數(shù)p和q,p不等于q,計(jì)算模數(shù)N=p*q。</p><p>  2、根據(jù)歐拉函數(shù),不大于N且與N互質(zhì)的整數(shù)個(gè)數(shù)為(

58、p-1)(q-1)</p><p>  3、選擇一個(gè)整數(shù)e與(p-1)(q-1)互質(zhì),并且e小于(p-1)(q-1)</p><p>  4、用以下這個(gè)公式計(jì)算d:d* e ≡ 1 (mod (p-1)(q-1))</p><p>  5、將p和q的記錄銷(xiāo)毀。(N,e)是公鑰,(N,d)是私鑰。</p><p>  加密過(guò)程:用下面這個(gè)公式他

59、可以將n加密為c[16]:</p><p>  解密過(guò)程:用以下這個(gè)公式來(lái)將c轉(zhuǎn)換為n[16]:</p><p>  3.2.3 RSA安全性分析</p><p>  自公鑰加密問(wèn)世以來(lái),密碼學(xué)家們提出了多種不同的公鑰加密方法,它們的安全性都是基于復(fù)雜的數(shù)學(xué)難題之上。對(duì)極大整數(shù)做因數(shù)分解的難度決定了RSA算法的可靠性。換言之,對(duì)一極大整數(shù)做因數(shù)分解愈困難,RSA算

60、法愈可靠。如果說(shuō)一種能快速進(jìn)行因數(shù)分解的方法問(wèn)世之后,那么RSA的安全性將極度下降。目前,對(duì)RSA的破解還十分有難度,比如使用強(qiáng)力破解的方式只對(duì)短密鑰長(zhǎng)度的RSA算法有效,密鑰變長(zhǎng)后,這種破解方式也就無(wú)效了。到2008年為止,世界上還沒(méi)有任何可靠的攻擊RSA算法的方式。但在分布式計(jì)算技術(shù)和量子計(jì)算機(jī)理論日趨成熟的今天,RSA加密安全性受到了挑戰(zhàn)[16]。</p><p>  目前RSA算法的三種可能的攻擊的方法是

61、:(1)強(qiáng)行攻擊:這包含對(duì)所有可能的私有密鑰進(jìn)行逐一嘗試,即遍歷法進(jìn)行搜索;(2)數(shù)學(xué)攻擊:對(duì)兩個(gè)素?cái)?shù)乘積的因子進(jìn)行分解;(3)定時(shí)攻擊:這依賴(lài)于解密算法的運(yùn)行時(shí)間[17]。</p><p> ?。?)強(qiáng)行攻擊的防范方式</p><p>  對(duì)于RSA強(qiáng)行攻擊的防范方式其實(shí)很簡(jiǎn)單,那就是增加密鑰的長(zhǎng)度。隨著分解大整數(shù)方法的進(jìn)步、計(jì)算機(jī)運(yùn)算速度的提高以及網(wǎng)絡(luò)的發(fā)展,短密鑰的破解變得越來(lái)越容易

62、,因此,增加密鑰長(zhǎng)度是提高密鑰破解難度,保證RSA的安全性的重要方法。目前,一般認(rèn)為RSA的密鑰需要有1024位以上的長(zhǎng)度才能保障安全。但是密鑰長(zhǎng)度的增加對(duì)加密的效率帶來(lái)了很大的影響。效率地下使的RSA的應(yīng)用范圍受到嚴(yán)重的制約。</p><p>  (2)數(shù)學(xué)攻擊的防范方式</p><p>  對(duì)于數(shù)學(xué)攻擊,算法的發(fā)明者建議對(duì)p和q采用了許多限制[17]:(1)p和q的長(zhǎng)度至少為10140

63、的數(shù)量級(jí);(2)(P-1)和(q-1)都應(yīng)該包含大整數(shù)因子;(3)gcd(p-1,q-1)應(yīng)該小。</p><p>  (3)對(duì)于定時(shí)攻擊的防范方式</p><p>  防范定時(shí)攻擊的方法其實(shí)很簡(jiǎn)單,以下有三種方法可供參考[17]:(1)常數(shù)取冪時(shí)間:保證所有的取冪操作在返回結(jié)果之前都花費(fèi)相同的時(shí)間;(2)隨機(jī)延時(shí):用一個(gè)隨機(jī)的延時(shí)來(lái)迷惑攻擊者,這既保證了安全性,也可以提高性能;(3)盲化

64、:在進(jìn)行取冪運(yùn)算之前,用一個(gè)隨機(jī)數(shù)與密文進(jìn)行相乘,防止了攻擊者了解正在處理的密文,防范逐位分析。</p><p>  3.3 IDEA加密算法</p><p>  3.3.1 IDEA概述</p><p>  IDEA是旅居瑞士中國(guó)青年學(xué)者來(lái)學(xué)嘉和著名密碼專(zhuān)家J.Massey于1990年提出的。它在1990年正式公布并在以后得到增強(qiáng)。這種算法以DES加密算法為基

65、礎(chǔ),接收了DES加密的思想,是對(duì)稱(chēng)加密的一種。IDEA的密鑰為128位,其中有效位是112位,這么長(zhǎng)的密鑰在今后若干年內(nèi)應(yīng)該是安全的。 </p><p>  IDEA算法也是一種基于數(shù)據(jù)塊的加密算法,它設(shè)計(jì)了一系列加密輪次,每輪加密都使用從完整的加密密鑰中生成的一個(gè)子密鑰。不過(guò)它采用軟件實(shí)現(xiàn)和采用硬件實(shí)現(xiàn)同樣快速。 </p><p>  IDEA曾今也是AES算法標(biāo)準(zhǔn)的主要競(jìng)爭(zhēng)者,其安全性

66、已經(jīng)在國(guó)際密碼年會(huì)上被證明。</p><p>  IDEA和DES一樣都是分組加密算法中的一員。但是比起DES,IDEA的速度更快,安全性更強(qiáng)。因此,IDEA具有十分良好的應(yīng)用前景[18]。</p><p>  3.3.2 IDEA算法描述</p><p>  輸入的64位數(shù)據(jù)分組被分成4個(gè)16-位子分組:xl,x2,x3和x4。這4個(gè)子分組成為算法的第一輪的輸入

67、,總共有8輪。在每一輪中,這4個(gè)子分組相互相異或,相加,相乘,且與6個(gè)16-位子密鑰相異或,相加,相乘。在輪與輪間,第二和第三個(gè)子分組交換。最后在輸出變換中4個(gè)子分組與4個(gè)子密鑰進(jìn)行運(yùn)算。</p><p>  在每一輪中,執(zhí)行的順序如下[19]:</p><p>  (1)x1和第一個(gè)子密鑰相乘。</p><p>  (2)x2和第二個(gè)子密鑰相加。</p>

68、;<p>  (3)x3和第三個(gè)子密鑰相加。</p><p>  (4)x4和第四個(gè)子密鑰相乘。</p><p>  (5)將第(1)步和第(3)步的結(jié)果相異或。 ·</p><p>  (6)將第(2)步和第(4)步的結(jié)果相異或。</p><p>  (7)將第(5)步的結(jié)果與第五個(gè)子密鑰相乘。</p>

69、<p>  (8)將第(6)步和第(7)步的結(jié)果相加。</p><p>  (9)將第(8)步的結(jié)果與第六個(gè)子密鑰相乘。</p><p>  (10)將第(7)步和第(9)步的結(jié)果相加。</p><p>  (11)將第(1)步和第(9)步的結(jié)果相異或。</p><p>  (12)將第(3)步和第(9)步的結(jié)果相異或。</

70、p><p>  (13)將第(2)步和第(10)步的結(jié)果相異或。</p><p>  (14)將第(4)步和第(10)步的結(jié)果相異或。</p><p>  每一輪的輸出是第(11)、(12)、(13)和(14) 步的結(jié)果形成的4個(gè)子分組。將中間兩個(gè)分組分組交換(最后一輪除外)后,即為下一輪的輸入。</p><p>  經(jīng)過(guò)8輪運(yùn)算之后,有一個(gè)最終

71、的輸出變換[19]:</p><p>  (1) x1和第一個(gè)子密鑰相乘。</p><p>  (2) x2和第二個(gè)子密鑰相加。</p><p>  (3) x3和第三個(gè)子密鑰相加。</p><p>  (4) x4和第四個(gè)子密鑰相乘。</p><p>  最后,這4個(gè)子分組重新連接到一起產(chǎn)生密文。</p>

72、<p>  這個(gè)算法用了52個(gè)子密鑰。首先,將128位密鑰分成8個(gè)16位子密鑰。這些是算法的第一批8個(gè)子密鑰(第一輪六個(gè),第二輪的頭兩個(gè))。然后,密鑰向左環(huán)移x位后再分成8個(gè)子密鑰。開(kāi)始4個(gè)用在第二輪,后面4個(gè)用在第三輪。密鑰再次向左環(huán)移25位產(chǎn)生另外8個(gè)子密鑰,如此進(jìn)行直到算法結(jié)束[19]。</p><p>  IDEA總共需要52個(gè)子密鑰,其中48個(gè)子密鑰分別使用在8輪迭代操作中,每輪迭代使用6

73、個(gè)子密鑰,另外4個(gè)子密鑰是額外子密鑰。這52個(gè)子密鑰都是從128位密鑰中擴(kuò)展出來(lái)的,因此,模乘逆運(yùn)算和模乘運(yùn)算是IDEA算法的關(guān)鍵運(yùn)算。其中,模乘逆運(yùn)算運(yùn)用于密鑰擴(kuò)展,復(fù)雜度較高,而模乘運(yùn)算直接關(guān)系到IDEA的加解密速度[20]。</p><p>  3.3.3 IDEA安全性分析</p><p>  IDEA可以說(shuō)是目前世界上一種十分安全的加密算法。曾經(jīng)許多專(zhuān)家都對(duì)IDEA的弱點(diǎn)進(jìn)行分

74、析,均沒(méi)有效果。對(duì)于IDEA的攻擊基本就只有窮舉攻擊了。然而,總所周知IDEA的密鑰達(dá)到了128位,換算成十進(jìn)制數(shù)的話(huà),那是一個(gè)十分龐大的天文數(shù)字。因此,破解它以目前的計(jì)算機(jī)的運(yùn)算水平而言,基本是不可能的事。因而對(duì)于它的算法安全性而言,人們是可以放心的。</p><p>  4 加密算法的實(shí)現(xiàn)</p><p>  本次軟件設(shè)計(jì)選擇用C++語(yǔ)言來(lái)實(shí)現(xiàn)。選擇C++來(lái)作為編程語(yǔ)言在于它具有許多

75、的優(yōu)點(diǎn):第一,C++由C語(yǔ)言發(fā)展而來(lái),它繼承了C語(yǔ)言的許多優(yōu)點(diǎn),比如語(yǔ)法簡(jiǎn)潔靈活,數(shù)據(jù)結(jié)構(gòu)豐富,運(yùn)行效率高等。第二,C++引入了類(lèi)、虛函數(shù)、繼承等特性。這些特性使得C++能夠支持面向?qū)ο蟮木幊?,使編程更加快捷。第三,用C++編寫(xiě)軟件能有效避免平臺(tái)限定或沒(méi)有普遍用途的特性。</p><p>  4.1 DES加密算法</p><p>  4.1.1 界面設(shè)計(jì)與代碼</p>

76、<p>  程序運(yùn)行之后,在密鑰文本框中輸入8位密鑰,在明文文本框中輸入明文。點(diǎn)擊“加密”,把明文加密成密文;點(diǎn)擊“解密”,把密文還原成明文。</p><p>  圖4-1 DES初始界面</p><p><b>  其代碼如下:</b></p><p><b>  //加密過(guò)程</b></p>&

77、lt;p>  Int lenth; //輸入明文的長(zhǎng)度</p><p>  void CBysjDlg::OnBtnDesE() </p><p><b>  {</b></p><p>  UpdateData(TRUE);</p><p>  lenth = m_DesM.GetLength();</p&

78、gt;<p>  char key[8];</p><p>  char Input[100],Output[100];</p><p>  memcpy(key,(LPCTSTR)m_DesK,8);</p><p>  memcpy(Input,(LPCTSTR)m_DesM,(lenth/8)*8);</p><p>  

79、CString str_C="";</p><p>  CDES des;</p><p>  des.Des_Go(Output, Input, sizeof(Input), key, sizeof(key), TRUE);</p><p>  for(int i=0;i<(lenth/8)*8+1;i++)</p>&l

80、t;p>  str_C += Output[i]; </p><p>  m_DesC=str_C;</p><p>  UpdateData(FALSE);</p><p><b>  }</b></p><p><b>  //解密過(guò)程</b></p><p&g

81、t;  void CBysjDlg::OnBtnDesD() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData(TRUE);</p><p>  char

82、 key[8];</p><p>  char Input[100],Output[100];</p><p>  memcpy(key,(LPCTSTR)m_DesK,8);</p><p>  memcpy(Input,(LPCTSTR)m_DesC,(lenth/8)*8);</p><p>  CString str_M;</p

83、><p>  CDES des;</p><p>  des.Des_Go(Output, Input, sizeof(Input),key, sizeof(key), FALSE);</p><p>  for(int i=0;i<(lenth/8)*8;i++)</p><p>  str_M += Output[i];</p

84、><p>  m_DesDC=str_M;</p><p>  UpdateData(FALSE);</p><p><b>  }</b></p><p>  4.1.2 運(yùn)行結(jié)果</p><p><b>  運(yùn)行的結(jié)果如下圖:</b></p><p&g

85、t;  圖4-2 DES測(cè)試結(jié)果</p><p>  4.2 RSA加密算法</p><p>  4.2.1界面設(shè)計(jì)與代碼</p><p>  運(yùn)行程序后,首先選擇密鑰長(zhǎng)度,若不選擇,則顯示選擇提示。點(diǎn)擊“密鑰產(chǎn)生”按鈕,產(chǎn)生密鑰。輸入明文后點(diǎn)擊“加密”來(lái)進(jìn)行加密,點(diǎn)擊“解密”來(lái)對(duì)密文解密成明文。</p><p>  圖4-3 RSA界

86、面設(shè)計(jì)</p><p><b>  其代碼如下:</b></p><p>  unsigned int p,q; //隨機(jī)素?cái)?shù)</p><p>  unsigned int PublicKey; //公鑰</p><p>  unsigned int PrivateKey; //私鑰</p><p&g

87、t;  unsigned int N; //模數(shù)</p><p>  unsigned int Cryptograph[100]; //存儲(chǔ)密文</p><p>  unsigned int Lenght; //明文長(zhǎng)度</p><p><b>  //密鑰產(chǎn)生</b></p><p>  void CBysjDlg::

88、OnBtnProKey() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  int len=GetDlgItemInt(IDC_COMBOKEYLENGTH);</p><p&g

89、t;  if(len == 0) MessageBox("請(qǐng)選擇密鑰!");</p><p><b>  else</b></p><p><b>  {</b></p><p>  UpdateData(TRUE);</p><p><b>  CRSA rsa;

90、</b></p><p>  //隨機(jī)產(chǎn)生兩個(gè)素?cái)?shù)p,q</p><p>  srand( time( 0 ) );</p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  p=(unsigned int

91、)rand();</p><p>  if(len == 32)</p><p><b>  {</b></p><p>  if (12<p && p<100 && rsa.IsPrime(p)) </p><p><b>  break;</b><

92、;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if (99<p && p<250 && rsa.IsPrime(p)) </p>

93、;<p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  while (1)</b></p><p><b>  {</b>&

94、lt;/p><p>  q=(unsigned int)rand();</p><p>  if(len == 32)</p><p><b>  {</b></p><p>  if (12<q && q<100 && rsa.IsPrime(q)) </p>&l

95、t;p><b>  break;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if (99<q && q<250

96、 && rsa.IsPrime(q)) </p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //求模數(shù)N</b></p>

97、;<p><b>  N=p*q;</b></p><p>  //求歐拉函數(shù)Euler</p><p>  unsigned int Euler;</p><p>  Euler=(p-1)*(q-1);</p><p>  //隨機(jī)產(chǎn)生公鑰PublicKey</p><p>&l

98、t;b>  while(1)</b></p><p><b>  {</b></p><p>  PublicKey=(unsigned int) rand();</p><p>  if (PublicKey< Euler && rsa.gcd(PublicKey,Euler)==1) break;&l

99、t;/p><p><b>  }</b></p><p>  //計(jì)算私鑰PrivateKey</p><p>  PrivateKey=rsa.ProductD(PublicKey,Euler);</p><p>  m_Euler=Euler;</p><p>  m_Publickey=Publ

100、icKey;</p><p>  m_Privatekey=PrivateKey;</p><p><b>  m_N=N;</b></p><p>  UpdateData(FALSE);</p><p><b>  }</b></p><p><b>  //加

101、密過(guò)程</b></p><p>  void CBysjDlg::OnBtnRsaE() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData(T

102、RUE);</p><p>  Lenght = m_RsaM.GetLength(); </p><p>  LPTSTR p = m_RsaM.GetBuffer(Lenght);</p><p>  char * CryptographCString = new char [Lenght];</p><p><b>  //加

103、密明文</b></p><p>  if(m_Publickey==0)</p><p>  MessageBox("請(qǐng)點(diǎn)擊密鑰產(chǎn)生,產(chǎn)生一個(gè)密鑰對(duì)!"); </p><p><b>  else</b></p><p><b>  {</b></p>

104、<p>  for (unsigned int i=0;i<Lenght;i++)</p><p><b>  {</b></p><p>  unsigned int temp= 1;</p><p>  for(unsigned int k=0;k<PublicKey;k++)</p><p>

105、<b>  {</b></p><p>  temp *= p[i];</p><p>  temp %= N; </p><p><b>  }</b></p><p>  Cryptograph[i] = temp % N;</p><p><b&g

106、t;  }</b></p><p>  for (i=0;i<Lenght;i++)</p><p><b>  {</b></p><p>  CryptographCString[i] = (char) Cryptograph[i];</p><p><b>  }</b>&l

107、t;/p><p>  m_RsaC.Format(_T("%s"),CryptographCString);</p><p><b>  }</b></p><p>  UpdateData(FALSE);</p><p><b>  }</b></p><p&g

108、t;<b>  //解密過(guò)程</b></p><p>  void CBysjDlg::OnBtnRsaD() </p><p><b>  {</b></p><p>  UpdateData(TRUE); </p><p>  char * Decrypt = new char[Len

109、ght];</p><p><b>  //解密密文</b></p><p>  for (unsigned int i=0;i<Lenght;i++)</p><p><b>  {</b></p><p>  unsigned int temp = 1;</p><p&

110、gt;  for(unsigned int k=0;k<PrivateKey;k++)</p><p><b>  {</b></p><p>  temp *= Cryptograph[i];</p><p>  temp %= N; </p><p><b>  }</b&

111、gt;</p><p>  Decrypt[i]= temp % N;</p><p><b>  }</b></p><p>  m_RsaDC.Format(_T("%s"),Decrypt);</p><p>  UpdateData(FALSE); </p><p>

112、;<b>  }</b></p><p>  4.2.2運(yùn)行結(jié)果</p><p><b>  運(yùn)行結(jié)果圖:</b></p><p>  圖4-4 運(yùn)行結(jié)果圖</p><p>  圖4-5 RSA運(yùn)行結(jié)果</p><p><b>  5 總結(jié)與展望</b&g

113、t;</p><p><b>  5.1 總結(jié)</b></p><p>  密碼技術(shù)的研究一直都是各國(guó)信息安全專(zhuān)家們研究的重點(diǎn)。在各國(guó)政府的大力投入下,各種密碼技術(shù)得到了大力的發(fā)展。但是,在密碼技術(shù)發(fā)展的同時(shí),針對(duì)各種密碼技術(shù)的破解技術(shù)也同時(shí)在快速發(fā)展著。由此可見(jiàn),當(dāng)今的信息安全的威脅依舊嚴(yán)重。我們需要認(rèn)清一個(gè)事實(shí),那就是沒(méi)有永遠(yuǎn)不被破解的加密。數(shù)據(jù)加密是肯定可以被

114、破解的, 但我們所想要的是一個(gè)特定時(shí)期的安全,也就是說(shuō), 密文的破解應(yīng)該是足夠的困難, 至少是在短時(shí)間內(nèi)實(shí)現(xiàn)是不可能的, 這也就需要我們不斷對(duì)加密技術(shù)進(jìn)行新的研究和探索[21]。</p><p>  本文介紹了密碼技術(shù)的重要性和研究發(fā)展它的必要性。同時(shí),本文選取了幾個(gè)加密算法進(jìn)行深入分析和學(xué)習(xí)。DES和RSA分別作為對(duì)稱(chēng)密鑰密碼和公鑰密碼的代表和基礎(chǔ),分析它們能讓我們更好的學(xué)習(xí)和掌握著兩類(lèi)密碼系統(tǒng)的算法基礎(chǔ)。它們

115、的加密思路推動(dòng)了密碼技術(shù)的發(fā)展。IDEA作為DES加密算法的改進(jìn),把原來(lái)DES的56位密鑰擴(kuò)展為128位。這大大加強(qiáng)了算法的安全性。同時(shí),它的算法設(shè)計(jì)使IDEA的加密速度也高于DES。最后,通過(guò)C++語(yǔ)言,編寫(xiě)了一個(gè)能夠?qū)崿F(xiàn)DES和RSA兩種算法的軟件程序。</p><p><b>  5.2 展望</b></p><p>  21世紀(jì)是信息化的世紀(jì)。從計(jì)算機(jī)產(chǎn)生到

116、今天,信息在我們生活中的地位越來(lái)越高,重要性也越來(lái)越強(qiáng)。這使得我們對(duì)高效安全的密碼技術(shù)的需要越來(lái)越迫切。事物總是在向前發(fā)展,停止前進(jìn)的總將會(huì)被淘汰。密碼技術(shù)也不例外。計(jì)算機(jī)性能和科學(xué)發(fā)展,縱然是密碼技術(shù)得到了提升,但是也為密碼的破解提供了助力。所以,我們需要不斷發(fā)展密碼技術(shù)來(lái)應(yīng)對(duì)不斷加強(qiáng)且新穎的密碼攻擊技術(shù),保證信息的安全性。</p><p>  密碼技術(shù)將會(huì)有如下的幾點(diǎn)發(fā)展:</p><p&

117、gt;  單一加密體制轉(zhuǎn)向混合加密體制。</p><p>  在原有的密碼基礎(chǔ)上不斷改進(jìn),不斷提高密碼的加密強(qiáng)度。</p><p>  在混沌理論的基礎(chǔ)上發(fā)展混沌密碼學(xué)。</p><p>  發(fā)展量子加密,實(shí)現(xiàn)在光纖中的數(shù)據(jù)安全。</p><p>  在生物特征的基礎(chǔ)上,發(fā)展利用人體聲音,照片,瞳孔等個(gè)人所特有的特征進(jìn)行加密,實(shí)現(xiàn)數(shù)據(jù)安全。&

118、lt;/p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 周宏仁.中國(guó)信息化和電子政務(wù)的發(fā)展[J].中國(guó)信息界,2010,01:4-8.</p><p>  [2] 劉康.淺析我國(guó)電子政務(wù)的發(fā)展現(xiàn)狀及完善對(duì)策[J].科技致富向?qū)?2010,15:50.</p><p>  [3] 付增少,婁世峰,申瑞卜,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論