畢業(yè)設計-----文件加密與解密算法研究設計_第1頁
已閱讀1頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  本科畢業(yè)論文(設計)</p><p>  題 目 文件加密與解密算法研究設計</p><p>  學 院 計算機與信息科學學院</p><p>  專 業(yè) 計算機科學與技術 </p><p>  年 級 </p>&l

2、t;p>  學 號 </p><p>  姓 名 </p><p>  指 導 教 師 </p><p>  成 績 ___________________</p><p>  

3、 文件的加密與解密算法研究與實現(xiàn)</p><p>  摘要:隨著信息社會的到來,人們在享受信息資源所帶來的巨大的利益的同時,也面臨著信</p><p>  息安全的嚴峻考驗。信息安全已經(jīng)成為世界性的現(xiàn)實問題,信息安全問題已威脅到國家的政</p><p>  治、經(jīng)濟、軍事、文化、意識形態(tài)等領域,同時,信息安全問題也是人們能否護自己的個人</p&g

4、t;<p>  隱私的關鍵。信息安全是社會穩(wěn)定安全的必要前提條件。</p><p>  本文是一篇討論關于常用文件加密解密算法的畢業(yè)設計論文,它詳細的講述了文件加密解密算法實現(xiàn)的過程中所用到的方法、技術。對公鑰密碼體制和私鑰密碼體制進行了分析和研究,并對公鑰密碼體制和私鑰密碼體制的代表RSA算法和DES算法進行了研究和比較。</p><p>  關鍵詞:解密;文件加密;密碼體

5、制;DES;RSA</p><p>  Design and Implementation of Document tagging software</p><p>  Abstract: With the advent of the information society, people in the enjoyment of information resources brought

6、about tremendous benefits, but also faced with a letter Income security, a severe test. Information security has become a worldwide reality, information security has been a threat to the country's political Governa

7、nce, economic, military, cultural, ideological and other areas at the same time, the issue of information security is also a possibility of retaining their own personal Pri</p><p>  Keywords: Decryption; fi

8、le encryption; cryptosystem; DES; RSA</p><p><b>  目錄</b></p><p>  摘要……………………………………………………………………2</p><p><b>  目錄3</b></p><p><b>  1、前言4<

9、;/b></p><p><b>  2、需求分析5</b></p><p>  2.1 系統(tǒng)概述5</p><p><b>  2.1.1概述5</b></p><p>  2.2密碼學的發(fā)展5</p><p>  2.3文件加密解密中密碼體制研究8<

10、/p><p>  2.3.1密碼原理8</p><p>  2.3.2密碼體制9</p><p>  4、分組加密解密算法-DES算法10</p><p>  4.1 DES算法10</p><p>  3.2 RSA算法11</p><p>  3.2工作原理11</p>

11、<p>  3.2.1優(yōu)點15</p><p>  3.2.1 缺點15</p><p>  4.2 0.DES加密流程圖:17</p><p>  4.3 詳細解析18</p><p>  1 取得64位的密鑰,每個第8位作為奇偶校驗位。18</p><p>  1-2、變換密鑰。18&l

12、t;/p><p>  1-2-1、舍棄64位密鑰中的奇偶校驗位,根據(jù)下表(PC-1)進行密鑰變換得到56位的密鑰,在變換中,奇偶校驗位以被舍棄。18</p><p>  1-2-2、將變換后的密鑰分為兩個部分18</p><p>  1-2-3、生成16個子密鑰18</p><p>  2、處理64位的數(shù)據(jù)19</p>&l

13、t;p>  2-1、取得64位的數(shù)據(jù)19</p><p>  2-2、將64位數(shù)據(jù)按下表變換(IP)19</p><p>  2-3、將變換后的數(shù)據(jù)分為兩部分20</p><p>  2-4、用16個子密鑰加密數(shù)據(jù)20</p><p>  2-4-1、將32位的R[I-1]按下表20</p><p> 

14、 5 DES算法實例演示24</p><p>  5.1 實例程序 DES TOOL24</p><p>  5.2 文件功能描述:DES加密類 頭文件25</p><p><b>  5 測試分析29</b></p><p><b>  6 心得體會30</b></p&g

15、t;<p><b>  參考文獻31</b></p><p><b>  致謝31</b></p><p><b>  1、前言</b></p><p>  信息安全是一個綜合性的交叉學科領域,廣泛涉及數(shù)學、密碼學、計算機、通信、控制、人工智能、安全工程、人文科學等諸多學科,是近幾年

16、迅速發(fā)展的一個熱點學科領域。信息對抗和網(wǎng)絡安全是信息安全的核心熱點,它的研究和發(fā)展又將刺激、推動和促進相關學科的研究與發(fā)展。至今,密碼技術是取得信息安全性最有效的一種方法, 密碼技術是信息安全的核心技術。[1]</p><p>  通過數(shù)據(jù)加密,人們可以有效地保證通信線路上的內容不被泄露,而且還可以檢驗傳送信息的完整性。進一步,密碼技術可以應用于數(shù)字簽名、身份認證和信息鑒定,這些應用對于資源存取控制以及其它安全措

17、施是必須而且有效的。信息安全產(chǎn)品從應用類型上可以分為防火墻類產(chǎn)品、防病毒類產(chǎn)品、防攻擊類產(chǎn)品、密碼類產(chǎn)品、認證類產(chǎn)品和訪問控制類產(chǎn)品。相對于防病毒軟件和防火墻軟件來說,基于密碼技術密碼類產(chǎn)品、認證類產(chǎn)品份額相對較小,但隨著金融、電信、政府等行業(yè)信息化建設對于網(wǎng)絡安全整體解決方案需求的增加,將會有較大的增長。</p><p>  在本次畢業(yè)設計中,對公鑰密碼體制和私鑰密碼體制進行了分析和研究,并對公鑰密碼體制和私鑰

18、密碼體制的代表RSA算法和DES算法進行了研究和比較。并且實現(xiàn)了基本的文件加密解密的處理流程,能提供對文件的安全、有效的保護。</p><p><b>  2、需求分析</b></p><p><b>  2.1 系統(tǒng)概述</b></p><p><b>  2.1.1概述</b></p>

19、<p>  信息是一種資源,也是一種財富。在現(xiàn)代社會中,信息處理和通信技術日益發(fā)展,保護信息的安全,特別是保護重要信息的安全,越來越成受到國內外有關研究人員的極大重視。當前由于信息的保護不利和失誤,世界各國遭受的損失是巨大的?,F(xiàn)在,國際互聯(lián)網(wǎng)上的各站點,幾乎都有各種各樣的安全措施,例如防火墻(FireWall)、網(wǎng)絡加密、加密狗等。但是,這些都是系統(tǒng)或網(wǎng)站層次的安全設施。對于廣大用戶來說,更為直接、也更為有效的辦法,就是使

20、用信息加密技術。加密技術是一門實用的技術,有著悠久的歷史。過去,加密技術僅被軍事和謀報人員以及某些大型商業(yè)企業(yè)所采用,應用范圍十分有限。加密學也是一門與數(shù)學有關的深奧的科學,有能力研究加密學的人為數(shù)不多。恐怕這也是它鮮為人知、較少應用的原因。信息安全的內容主要包括五個部分:信息的保密性、信息的完整性、信息的可用性、信息的可控性、信息的不可否認性。密碼技術是保證信息安全的核心。</p><p><b> 

21、 2.2密碼學的發(fā)展</b></p><p>  認證過程中,用戶必須向系統(tǒng)提供能夠證明自己身份的信息,證明用戶身份的信息種類很多,可以是用戶所知道的秘密(口令),也可以是生物特征(如指紋)等,但目前使用最廣泛的仍然是用戶口令(password)。在認證系統(tǒng)中口令占據(jù)了非常重要的地位,因此對口令的保護就變得至關重要。人們提出了許多保護口令的方法,力圖保障口令的安全與秘密。這些保護認證信息的方法以及認證

22、系統(tǒng)是隨著密碼學的發(fā)展一起發(fā)展的,密碼學為我們提供了保護口令的一個重要方向。歸根結底,用戶用以證明自己身份的是一段信息,不論它是口令還是指紋。而迄今為止,確保信息安全的最重要手段是加密。對信息的加密、解密、信息的保密傳輸,這正是密碼學研究的內容。     密碼學泛指一切有關研究密碼通信的學問,其中包括下面兩個領域:如何達成秘密通信,以及如何破譯秘密通信。也就是密碼編碼學:指如何達到信息的秘密性,

23、鑒別性的科學;密碼分析學:泛指如何破解密碼系統(tǒng),或偽造信息使密碼系統(tǒng)誤以為真的科學。從密碼學的發(fā)展來看,它經(jīng)歷了傳統(tǒng)(古典)密碼學、近代密碼學、現(xiàn)代密碼學幾個階段,計算機、數(shù)學領域的最新成果往往與密碼學有關或被應用于密碼學研究中。</p><p>  傳統(tǒng)密碼學、近代密碼學的發(fā)展</p><p>  密碼學擁有悠久、豐富多彩的歷史。作為古典密碼其中的一種,早期出現(xiàn)的密寫術形式只需要紙和筆就

24、可以完成。古典密碼學的兩大范疇是將消息內容進行重新排列的位移密碼和系統(tǒng)地將字母進行替換的替換密碼。古典密碼學會透露出與明文統(tǒng)計學結果相關的大量信息,因此容易被破解,如對頻率分析可以有效地攻擊古典密碼。盡管保密強度很低,由于實現(xiàn)難度低,加密解密快,古典密碼至今仍然被廣泛使用。在古典密碼學中,有四種類型的代替密碼:    (1)簡單代替密碼,或單字母密碼:就是明文的一個字符用相應的一個密文字符代替。Caesa

25、r 密碼就是典型的簡單替代密碼。    (2)多編碼代替密碼:它與簡單代替密碼系統(tǒng)相似,唯一的不同是單個字符明文可以映射成密文的幾個字符之一,例如 A 可能對應于5、13、25 或 56,“B”可能對應于 7、19、31 或 42,等等。    (3)字母代替密碼:字符塊被成組加密,例如“ABA”可能對應于“RTQ”,ABB 可能對應于“SLL”等。  

26、;  (4)多表代替密碼:由多個簡單的代替密碼構成,例如,可能有 5 個被使用的不同的簡單代替密碼,單獨的一個字符用來改變明文的每個字符的位</p><p>  20 世紀初,包括轉輪機在內的一些機械密碼加密裝置被發(fā)明出來,其中最有名的是二次世界大戰(zhàn)中德國使用的恩尼格碼(Enigma)機。由這些裝置實現(xiàn)的密碼顯著提高了密碼分析的復雜程度,大量的攻擊也僅僅取得了有限的結果。  

27、60; 古典密碼學以移位密碼、替換密碼、轉輪機為代表,以替代和置換為基礎的密碼系統(tǒng)在今天看來已經(jīng)不堪一擊,無法保證信息的安全,對處心積慮的攻擊者來說形同虛設,因為已經(jīng)有成熟的分析方法來破解這一類的加密方法。</p><p>  借助電子計算機的發(fā)展,人們可以實現(xiàn)更復雜的密碼系統(tǒng)。與古典密碼和機械密碼對 26 個字母進行操作不同,計算機密碼的一個顯著特征是對二進制串進行操作。計算機密碼對密碼分析有更強的抵抗力,只有

28、少數(shù)情況下唯密文攻擊才會生效。    密碼學的大發(fā)展時期是上世紀 70 年代,以 DES 和 RSA 算法的提出為代表。一系列的突破創(chuàng)立了新的密碼學體系。DES 是對稱密鑰分組密碼的一個典型代表,美國國家標準局于 1977 年公布了由 IBM 公司研制的一種加密算法,批準把它作為非機要部門使用的數(shù)據(jù)加密標準.簡稱 DES,DES 是 Data Encryption Standard 的縮寫。自從公布以來,

29、它一直廣泛用于國際上商用保密通信和計算機通信。但由于弱密鑰的問題和新的攻擊手段不斷出現(xiàn)(差分攻擊、線性攻擊),單純的 DES 加密已經(jīng)很少用于實際。更多的情況下是采用增加密鑰長度和多重 DES 加密的辦法。    RSA 作為一種成功的公鑰密碼系統(tǒng),與傳統(tǒng)的對稱密碼系統(tǒng)(加密、解密使用相同的密鑰)相比,最大的特點就是解決了大量密鑰分配、傳輸?shù)膯栴}。在公鑰密碼系統(tǒng)中,每個通信者擁有一個密鑰對,可用其<

30、/p><p>  近代密碼學的另一個分支是序列密碼,這種密碼體制采用與明文長度相同的密鑰,利用模加(異或)的方法來掩蓋明文的內容。這種加密方法雖然簡單,但在使用一次性密鑰的情況下,可獲得極高的安全性,由于密鑰不重復使用,給破譯帶來了極大的困難。但這種方法也有其缺點,由于密鑰只使用一次,不適合對大量數(shù)據(jù)進行加密,尤其是流媒體數(shù)據(jù),而且大量密鑰的分發(fā)、傳送也是一個問題。這種方法安全性的關鍵是要保證密鑰序列的隨機性,然而“

31、真”隨機數(shù)是不容易通過固定算法來產(chǎn)生的,而使用“偽隨機數(shù)”則存在著一定的風險。    近年來提出的“量子密碼”采用了量子狀態(tài)來傳遞信息。“海森堡測不準原理”是量子力學的基本原理,它表明,在同一時刻以相同的精度測定量子的位置與動量是不可能的,只能精確測定兩者之一?!皢瘟孔硬豢蓮椭贫ɡ怼笔恰昂Iy不準原理”的推論,它表明,在不知道量子狀態(tài)的情況下復制單個量子是不可能的,因為要復制單個量子就只能先作測量,而測

32、量必然改變量子的狀態(tài),所以說不可能。這樣使用量子狀態(tài)作為“一次性便簽”可以達到無條件保密。因為如果量子在傳輸中被測量,其狀態(tài)就會改變,從而在傳輸中監(jiān)聽者會因此而暴露。雖然量子密碼擁有優(yōu)秀的</p><p>  2.3文件加密解密中密碼體制研究</p><p>  就整體而言,計算機網(wǎng)絡加密問題應包括文件存儲加密、口令存儲加密、數(shù)據(jù)庫數(shù)據(jù)加密、電子郵件加密等信息加密和數(shù)據(jù)傳輸加密(信道加密)

33、以及密碼體制、密鑰管理中心等三個方面的內容,下面我們通過加密原理、密碼體制和產(chǎn)品功能介紹來概略地講講這三個方面的內容:    </p><p><b>  2.3.1密碼原理</b></p><p> ?。?)密碼原理。所謂加密,就是將正常情況下可懂的文件數(shù)據(jù)輸入密碼機,由密碼機變成不可懂的亂碼,即將“明文”變成“密文”;所謂解密,就是上述過程的

34、逆過程,即將“密文”   變成“明文”。密碼機可看做是一個用電子元件實現(xiàn)一種復雜數(shù)學運算的機器。復雜數(shù)學運算可記為,這里C=密文,p=明文,k=密鑰,f是密碼算法。K是自變量,C是因變量。不同的K有不同的C,對于某個密碼算法f,K的選擇范圍越大,C的變化就越多,這個密碼算法被人破譯的難度就越大,保密強度就越高。如何評價K的選擇范圍大小呢?一般是看K的位數(shù),位數(shù)長的(如128位以上)選擇范圍大,位數(shù)短的(如56位)選擇范圍小。一

35、個國家的密碼政策,通常是用位數(shù)長的高強度密碼(位數(shù)可達)保護國家秘密,其它用于保護商業(yè)秘密。               在數(shù)據(jù)傳輸加密過程中,收發(fā)雙方線路密碼機使用的是相同的密碼算法,注入了相同的密鑰,發(fā)方向收方發(fā)出明文,經(jīng)密碼機變成密文后送上公網(wǎng)通信線路,到達收方后先經(jīng)密碼機解密再送到收方電腦上。密文在公用通信網(wǎng)上傳輸時,如果被截收,竊密方收到的是不可懂的亂碼

36、,無法竊取信息內容。               在</p><p>  2.3.2密碼體制 </p><p>  (2)密碼體制。剛才講密碼原理時,收發(fā)雙方密碼機的密碼算法一致、密鑰一致,這在密碼體制中叫“秘密密鑰體制”或“單密鑰體制”,這是一種傳統(tǒng)的密碼體制,有系統(tǒng)的理論研究和完善的管理機制,技術成熟,性能穩(wěn)定,

37、國內自行研制的產(chǎn)品安全可靠、保密強度高,一般用于文件數(shù)據(jù)加密存儲和傳輸。國外著名的DES密碼就是美國政府1977年發(fā)布的密鑰長度為56位的“秘密密鑰體制”的密碼。這種密碼的缺陷是:僅適用于內部的,點對點方式的,事前雙方已知密鑰的兩點之間的加密傳輸,保守密鑰的秘密十分重要,密鑰一旦丟失,整個系統(tǒng)都要立即更換密鑰,否則竊密者將可能輕而易舉的破解密文。             &

38、#160; 隨著近代計算機網(wǎng)絡的發(fā)展,不同部門、不同單位網(wǎng)上交往增多,“單密鑰體制”顯出了它的局限性,人們很難對眾多的部門和單位保管好各自不同的密鑰。于是人們又發(fā)明了“公開密鑰體制”或叫“雙密鑰體制”。它是基于一些數(shù)學問題而發(fā)明出來的密碼體制,這些數(shù)學問題可記為,其中,寫在一起就是,這個公式說明有這樣一種數(shù)學運算,它可以將用密鑰k加密的密文用密鑰k’解密,國外1978年公布的RSA密碼就是這種有兩個密鑰的密碼。這種密碼保密強</p

39、><p>  4、分組加密解密算法-DES算法</p><p><b>  4.1 DES算法</b></p><p>  DES算法為密碼體制中的對稱密碼體制,又被成為美國數(shù)據(jù)加密標準,是1972年美國IBM公司研制的對稱密碼體制加密算法。其密鑰長度為56位,明文按64位進行分組,將分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密

40、方法。</p><p>  DES加密算法特點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。</p><p>  DES工作的基本原理是,其入口參數(shù)有三個:key、data、mode。 key為加密解密使用的密鑰,data為加密解密的數(shù)據(jù),mode為其工作模式。當模式為加密模式時,明文按照64位進行分組,形成明文組,key用于對數(shù)據(jù)加密,當模式為解密模式時,key用于對數(shù)據(jù)解密。實

41、際運用中,密鑰只用到了64位中的56位,這樣才具有高的安全性。</p><p>  DES( Data Encryption Standard)算法,于1977年得到美國政府的正式許可,是一種用56位密鑰來加密64位數(shù)據(jù)的方法。雖然56位密鑰的DES算法已經(jīng)風光不在,而且常有用Des加密的明文被破譯的報道,但是了解一下昔日美國的標準加密算法總是有益的,而且目前DES算法得到了廣泛的應用,在某些場合,仍然發(fā)揮著余熱

42、。</p><p>  3.2 RSA算法 </p><p>  當前最著名、應用最廣泛的公鑰系統(tǒng)RSA是在1978年,由美國麻省理工學院(MIT)的Ron Rivest, Adi Shamir 和Leonard Adleman在題為《獲得數(shù)字簽名和公開鑰密碼系統(tǒng)的方法》的論文中提出的。它是一個基于數(shù)論的非對稱(公開鑰)密碼體制,是一種分組密碼體制。其名稱來自于三個發(fā)明者的姓名首字母。 它

43、的安全性是基于大整數(shù)素因子分解的困難性,而大整數(shù)因子分解問題是數(shù)學上的著名難題,至今沒有有效的方法予以解決,因此可以確保RSA算法的安全性。RSA系統(tǒng)是公鑰系統(tǒng)的最具有典型意義的方法,大多數(shù)使用公鑰密碼進行加密和數(shù)字簽名的產(chǎn)品和標準使用的都是RSA算法。RSA算法是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法,因此它為公用網(wǎng)絡上信息的加密和鑒別提供了一種基本的方法。它通常是先生成一對RSA 密鑰,其中之一是保密密鑰,由用戶保存;另一

44、個為公開密鑰,可對外公開,甚至可在網(wǎng)絡服務器中注冊,人們用公鑰加密文件發(fā)送給個人,個人就可以用私鑰解密接受。為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。該算法基于下面的兩個事實,這些事實保證了RSA算法的安全</p><p><b>  3.2工作原理</b></p><p>  1) 任意選取兩個不同的大質數(shù)p和q,計算乘積r=p*q;

45、2) 任意選取一個大整數(shù)e,e與(p-1)*(q-1)互質,整數(shù)e用做加密密鑰。注意:e的選取是很容易的,例如,所有大于p和q的質數(shù)都可用。 3) 確定解密密鑰d: d * e = 1 modulo(p - 1)*(q - 1) 根據(jù)e、p和q可以容易地計算出d。 4) 公開整數(shù)r和e,但是不公開d; 5) 將明文P (假設P是一個小于r的整數(shù))加密為密文C,計算方法為: C = Pe modulo r 6) 將密文

46、C解密為明文P,計算方法為: P = Cd modulo r 然而只根據(jù)r和e(不是p和q)要計算出d是不可能的。因此,任何人都可對明文進行加密,但只有授權用戶(知道d)才可對密文解密。數(shù)學原理定理若 p, q 是相異質數(shù), rm == 1 mod (p-1)(q-1), a 是任意一個正整數(shù), b == a^m mod pq, c == b^r mod pq, 則 c == a mod pq 證明的過程, 會用到費

47、馬小定理, 敘述如下: m 是任一質數(shù), n 是任一整數(shù)</p><p>  為了說明該算法的工作過程,我們下面給出一個簡單例子,顯然我們在這只能取很小的數(shù)字,但是如上所述,為了保證安全,在實際應用上我們所用的數(shù)字要大的多得多。例:選取p=3, q=5,則r=15,(p-1)*(q-1)=8。選取e=11(大于p和q的質數(shù)),通過d * 11 = 1 modulo 8,計算出d =3。 假定明文為整數(shù)13。

48、則密文C為    C = Pe modulo r     = 1311 modulo 15     = 1,792,160,394,037 modulo 15     = 7 復原明文P為:    P = Cd modulo r     = 73 modulo 15     = 343 modulo 15     = 13 因為e和d互逆,公開密鑰加密方法也允許采用這樣的方式對加密信息進行"簽名"

49、,以便接收方能確定簽名不是偽造的。 兩個在不安全信道中通信的人,假設為Alice(收信者)和Bob(發(fā)信者),他們希望能夠安全的通信而不被他們的敵手Oscar破壞。Alice 想到了一種辦法,她使用了一種鎖(相當于公鑰),這種鎖任何人只要輕</p><p><b>  3.2.1優(yōu)點</b></p><p>  RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,也

50、易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近二十年,經(jīng)歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優(yōu)秀的公鑰方案之一。該算法的加密密鑰和加密算法分開,使得密鑰分配更為方便。它特別符合計算機網(wǎng)絡環(huán)境。對于 網(wǎng)上的大量用戶,可以將加密密鑰用電話簿的方式印出。如果某用戶想與另一用戶進行保密通信,只需從公鑰簿上查出對方的加密密鑰,用它對所傳送的信息加密發(fā)出即可。對方收到信息后,用僅為自己所知的解密密鑰將信息脫密,了

51、解報文的內容。由此可看出,RSA算法解決了大量網(wǎng)絡用戶密鑰管理的難題,這是公鑰密碼系統(tǒng)相對于對稱密碼系統(tǒng)最突出的優(yōu)點。</p><p><b>  3.2.1 缺點</b></p><p>  缺點:1)產(chǎn)生密鑰很麻煩,受到素數(shù)產(chǎn)生技術的限制,因而難以做到一次一密。2)安全性, RSA的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯RSA的難度與大數(shù)分解難度

52、等價,而且密碼學界多數(shù)人士傾向于因子分解不是NPC問題。目前,人們已能分解140多個十進制位的大素數(shù),這就要求使用更長的密鑰,速度更慢;另外,目前人們正在積極尋找攻擊RSA的方法,如選擇密文攻擊,一般攻擊者是將某一信息作一下偽裝(Blind),讓擁有私鑰的實體簽署。然后,經(jīng)過計算就可得到它所想要的信息。實際上,攻擊利用的都是同一個弱點,即存在這樣一個事實:乘冪保留了輸入的乘法結構:   ( XM )d = Xd *Md mod n

53、前面已經(jīng)提到,這個固有的問題來自于公鑰密碼系統(tǒng)的最有用的特征--每個人都能使用公鑰。但從算法上無法解決這一問題,主要措施有兩條:一條是采用好的公鑰協(xié)議,保證工作過程中實體不對其他實體任意產(chǎn)生的信息解密,不對自己一無所知的信息簽名;另一條是決不對陌生人送來的隨機文檔簽名,簽名時首先使用One-Way Hash Function對文檔作HASH處理,或同時使用不同的簽名算法。除了利用公</p><p>  公鑰加密算

54、法中使用最廣的是RSA。RSA算法研制的最初理念與目標是努力使互聯(lián)網(wǎng)安全可靠,旨在解決DES算法秘密密鑰的利用公開信道傳輸分發(fā)的難題。而實際結果不但很好地解決了這個難題;還可利用RSA來完成對電文的數(shù)字簽名以抗對電文的否認與抵賴;同時還可以利用數(shù)字簽名較容易地發(fā)現(xiàn)攻擊者對電文的非法篡改,以保護數(shù)據(jù)信息的完整性。目前為止,很多種加密技術采用了RSA算法,該算法也已經(jīng)在互聯(lián)網(wǎng)的許多方面得以廣泛應用,包括在安全接口層(SSL)標準(該標準是網(wǎng)

55、絡瀏覽器建立安全的互聯(lián)網(wǎng)連接時必須用到的)方面的應用。此外,RSA加密系統(tǒng)還可應用于智能IC卡和網(wǎng)絡安全產(chǎn)品。但目前RSA算法的專利期限即將結束,取而代之的是基于橢圓曲線的密碼方案(ECC算法)。較之于RSA算法,ECC有其相對優(yōu)點,這使得ECC的特性更適合當今電子商務需要快速反應的發(fā)展潮流。此外,一種全新的量子密碼也正在發(fā)展中。</p><p>  4.2 0.DES加密流程圖:</p>&l

56、t;p><b>  1-1、變換密鑰</b></p><p><b>  4.3 詳細解析</b></p><p>  1 取得64位的密鑰,每個第8位作為奇偶校驗位。</p><p><b>  1-2、變換密鑰。</b></p><p>  1-2-1、舍棄64位密

57、鑰中的奇偶校驗位,根據(jù)下表(PC-1)進行密鑰變換得到56位的密鑰,在變換中,奇偶校驗位以被舍棄。</p><p>  Permuted Choice 1 (PC-1)</p><p>  57 49 41 33 25 17 9</p><p>  1 58 50 42 34 26 18</p><p>  10 2 59 51 43 35

58、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 13 5 28 20 12 4</p&g

59、t;<p>  1-2-2、將變換后的密鑰分為兩個部分,開始的28位稱為C[0],最后的28位稱為D[0]。</p><p>  1-2-3、生成16個子密鑰,初始I=1。</p><p>  1-2-3-1、同時將C[I]、D[I]左移1位或2位,根據(jù)I值決定左移的位數(shù)。見下表</p><p>  I: 1 2 3 4 5 6 7 8 9 10 11

60、 12 13 14 15 16</p><p>  左移位數(shù): 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1</p><p>  1-2-3-2、將C[I]D[I]作為一個整體按下表(PC-2)變換,得到48位的K[I]</p><p>  Permuted Choice 2 (PC-2)</p><p>  14 17 1

61、1 24 1 5</p><p>  3 28 15 6 21 10</p><p>  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&

62、gt;  44 49 39 56 34 53</p><p>  46 42 50 36 29 32</p><p>  1-2-3-3、從1-2-3-1處循環(huán)執(zhí)行,直到K[16]被計算完成。</p><p>  2、處理64位的數(shù)據(jù)</p><p>  2-1、取得64位的數(shù)據(jù),如果數(shù)據(jù)長度不足64位,應該將其擴展為64位(例如補零)<

63、;/p><p>  2-2、將64位數(shù)據(jù)按下表變換(IP)</p><p>  Initial Permutation (IP)</p><p>  58 50 42 34 26 18 10 2</p><p>  60 52 44 36 28 20 12 4</p><p>  62 54 46 38 30 22 14

64、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 53 45 37 29 21 13 5</p><p>  63 55 47 39 31 23

65、 15 7</p><p>  2-3、將變換后的數(shù)據(jù)分為兩部分,開始的32位稱為L[0],最后的32位稱為R[0]。</p><p>  2-4、用16個子密鑰加密數(shù)據(jù),初始I=1。</p><p>  2-4-1、將32位的R[I-1]按下表(E)擴展為48位的E[I-1]</p><p>  Expansion (E)</p>

66、;<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><p>  16 17 18 19 20 21</p><p>  20 21 22 23 24 25&l

67、t;/p><p>  24 25 26 27 28 29</p><p>  28 29 30 31 32 1</p><p>  2-4-2、異或E[I-1]和K[I],即E[I-1] XOR K[I]</p><p>  2-4-3、將異或后的結果分為8個6位長的部分,第1位到第6位稱為B[1],第7位到第12位稱為B[2],依此類推,第43

68、位到第48位稱為B[8]。</p><p>  2-4-4、按S表變換所有的B[J],初始J=1。所有在S表的值都被當作4位長度處理。</p><p>  2-4-4-1、將B[J]的第1位和第6位組合為一個2位長度的變量M,M作為在S[J]中的行號。</p><p>  2-4-4-2、將B[J]的第2位到第5位組合,作為一個4位長度的變量N,N作為在S[J]中的

69、列號。</p><p>  2-4-4-3、用S[J][M][N]來取代B[J]。</p><p>  Substitution Box 1 (S[1])</p><p>  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 3

70、8</p><p>  4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0</p><p>  15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13</p><p><b>  S[2]</b></p><p>  15 1 8 14 6 11 3 4 9 7 2 13 12

71、 0 5 10</p><p>  3 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><b>  S

72、[3]</b></p><p>  10 0 9 14 6 3 15 5 1 13 12 7 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

73、 13 0 6 9 8 7 4 15 14 3 11 5 2 12</p><p><b>  S[4]</b></p><p>  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>

74、  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 2 14</p><p><b>  S[5]</b></p><p>  2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9</p><

75、;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>  11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3</p><p><b>  S[6]</b></p>

76、;<p>  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 1 13 11 6</p><p>  4 3 2 12 9 5 15 10 11 14 1

77、 7 6 0 8 13</p><p><b>  S[7]</b></p><p>  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>  1 4 11 13 12 3 7 14

78、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><b>  S[8]</b></p><p>  13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7</p><p>  1 15 13 8 10 3

79、 7 4 12 5 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>  2-4-4-4、從2-4-4-1處循環(huán)執(zhí)行,直到B[8]被替代完成。</p><p>

80、;  2-4-4-5、將B[1]到B[8]組合,按下表(P)變換,得到P。</p><p>  Permutation P</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>&l

81、t;p><b>  2 8 24 14</b></p><p><b>  32 27 3 9</b></p><p>  19 13 30 6</p><p>  22 11 4 25</p><p>  2-4-6、異或P和L[I-1]結果放在R[I],即R[I]=P XOR L[I-1]

82、。</p><p>  2-4-7、L[I]=R[I-1]</p><p>  2-4-8、從2-4-1處開始循環(huán)執(zhí)行,直到K[16]被變換完成。</p><p>  2-4-5、組合變換后的R[16]L[16](注意:R作為開始的32位),按下表(IP-1)變換得到最后的結果。</p><p>  Final Permutation (IP

83、**-1)</p><p>  40 8 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 5

84、2 20 60 28</p><p>  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>  以上就是DES算法的描述。</p><p>  5 DES算法實例演示<

85、/p><p>  5.1 實例程序 DES TOOL</p><p>  這是DES TOOL 的截圖,MFC寫的,編譯器是VS 2008</p><p>  5.2 文件功能描述:DES加密類 頭文件</p><p>  #ifndef yxyDESH#define yxyDESH</p><p>  #incl

86、ude <string>#include <cmath>#include <stdio.h>#include <windows.h>using namespace std;class yxyDES{public:         yxyDES(); //類構造函數(shù)  

87、60;     ~yxyDES(); //類析構函數(shù)      </p><p>  void InitializeKey(string);        //功能:產(chǎn)生16個28位的key    &

88、#160;   //參數(shù):源8位的字符串(key)        //結果:函數(shù)將調用private CreateSubKey將結果存于char SubKeys[16][48]      </p><p>  void EncryptData(string);

89、        //功能:加密8位字符串        //參數(shù):8位字符串        //結果:函數(shù)將加密后結果存放于private szCiphertext[16]    &#

90、160;   //      用戶通過屬性Ciphertext得到               void DecryptData(string );      

91、60; //功能:解密16位十六進制字符串        //參數(shù):16位十六進制字符串        //結果:函數(shù)將解密候結果存放于private szPlaintext[8]        //  

92、    用戶通過屬性Plaintext得到               void EncryptAnyLength(string);        //功能:加密任意長度字符串 

93、60;      //參數(shù):任意長度字符串        //結果:函數(shù)將加密后結果存放于private szFCiphertextAnyLength[8192]        //      用

94、戶通過屬性Ciph</p><p><b>  #endif</b></p><p><b>  5 測試分析</b></p><p>  經(jīng)過不斷的測試與修改,該程序算法實現(xiàn)步驟是 Matthew Fischer 的 des-how-to實現(xiàn),程序已經(jīng)可以很好的滿足用戶的要求,所預計的各功能都能實現(xiàn),比如說:</p

95、><p>  1.本程序可以加密1-4096個字符的任意長度字符串2.如果密鑰長度過短或者為空,程序將使用默認密鑰進行加密.3.加密結果將用16進制字符顯示4.本加密程序同時支持中/英文字符(包括密鑰和明文)5.本加密程序支持特殊字符[例如換行符(回車鍵)]</p><p><b>  6 心得體會</b></p><p>  經(jīng)過幾個星期

96、的設計和開發(fā),系統(tǒng)基本開發(fā)完畢。在本次課程設計中困難遇到不少,比如如何如何實現(xiàn)用樹視控件實現(xiàn)子項的展開和合攏,使得用戶方便快捷的找到文件所在位置;如何使用列表視控件實現(xiàn)文件的不同顯示風格等,由于設計時間較短,所以該系統(tǒng)還有許多不盡如人意的地方,如出錯處理不夠完善等多方面問題。在這次系統(tǒng)開發(fā)的過程中,我深深體會到了做一個系統(tǒng),首先進行需求分析的重要性,了解了一個系統(tǒng)的制作,從功能分析到功能模塊分析、與其他系統(tǒng)的關系,這些都有待以后進一步改

97、進。通過實踐對于我以后的學習是一筆不小的財富!</p><p><b>  參考文獻</b></p><p>  [1] 《加密解密技能百練叢書》 出 版 社 (中國鐵道出版社)書號(71130585)</p><p><b>  致謝</b></p><p>  歲月如梭,四年匆匆而過,

98、不知不覺已經(jīng)走到了最后的路口。相對于四年前那些迷茫的眼神,現(xiàn)在的我有著更多的堅強與理智,而帶給我這些巨大變化的正式我們辛勤耕耘的老師們?!霸粕缴n蒼,江水泱泱,先生之風,山高水長?!?lt;/p><p>  回首我四年的求學歷程,無一不有著老師們的心血,無論是起步的《計算機導論》,嚴謹?shù)摹陡叩却鷶?shù)》,還是更深一層的《數(shù)據(jù)庫》、《C++》,再到后來的《操作系統(tǒng)》,《軟件工程》,《計算機輔助教學》,老師們無一不在用自己的臂

99、膀托起我們明天的希望,他們毫不保留的奉獻自己全部的知識與精力,對我們襟懷無私、諄諄教誨,傾心吐露,唯恐不盡。而同時,他們也用自己的行動和人格的力量,教會我們做人的道理,指引我們前進的方向。時間總是飛逝而過,現(xiàn)在的我們即將離開老師的庇護,帶著老師對我們的殷切希望走向自己的工作崗位,去打拼屬于自己的一片天空。但是先生之風,定會永遠作為我們行動的指南,陪伴激勵我們向著更高、更快、更強的目標奮斗。

100、 </p><p>  本論文是在我的導師***老師的悉心指導下完成的,*老師學識淵博,勤奮好學,工作嚴謹,待人誠懇,令我十分敬佩。我從*老師的身上學到的不僅是先進的計算機方面的專業(yè)知識,他的優(yōu)秀的俄學習和工作作風、嚴謹?shù)目茖W態(tài)度以及高尚的品質更使我受益匪淺。作為*老師帶的第一批畢業(yè)設計學生,我很高興,真的。在做畢業(yè)設計的過程中漸漸和xx老師成為了朋友,使我們的師生情誼更深了一層。我在此由衷地感謝*

溫馨提示

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

評論

0/150

提交評論