文件加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
文件加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
文件加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
文件加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
文件加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、文件加密系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要:該文論述了數(shù)據(jù)加密的原理與方法,介紹了幾種常見的加密算法并在此基礎(chǔ)之上比較了常用的加密算法的優(yōu)缺點(diǎn),在掌握了這幾種算法的基礎(chǔ)之上,對(duì)比對(duì)稱密鑰加密體制和公共密鑰密碼體制的優(yōu)缺點(diǎn)以及前面的兩個(gè)需求,最終利用DES算法和RSA算法來設(shè)計(jì)和實(shí)現(xiàn)自己的加密系統(tǒng)。該文詳細(xì)的介紹了理論原理并詳細(xì)記錄了系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)過程。關(guān)鍵詞:密碼學(xué);DES算法;RSA算法;加密系統(tǒng)設(shè)計(jì)中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2011)14-3299-03DesignandImplementationofaEncryptingFileSystemLINPe-tong(

2、GuangdongFoodandDrugVocationalTechnicalSchool,Guangzhou510663,China)Abstract:Aftermasterythesetypesofalgorithms,comparedtheadvantagesanddisadvantagesbetweentheSymmetricalcryptographandnonsymmetricalcryptograph,aswellasconsiderthetwodemandsinfront,atlastdecideuseDESalgorithmandtheRSAalgorithmtodesign

3、andrealizemyencryptionsystem.Inthisarticle,DetailthetheoreticalprinciplesofCryptographicandnotethedetailedofdesignandrealizeprocess.Keywords:cryptography;DES;RSA;design1緒言隨著Internet的發(fā)展人類已經(jīng)步入信息時(shí)代,在信息時(shí)代,信息安全問題越來越重要。我們經(jīng)常需要一種措施來保護(hù)我們的數(shù)據(jù),防止被一些懷有不良用心的人所看到或者破壞。因此,在客觀上就需要一種強(qiáng)有力的安全措施來保護(hù)機(jī)密數(shù)據(jù)不被竊取或篡改。解決這個(gè)問題的方式就是數(shù)

4、據(jù)加密1。近年來,保護(hù)個(gè)人敏感數(shù)據(jù)成為人們關(guān)注的熱點(diǎn)問題。使用加密技術(shù)是一種比較成功的保護(hù)方法。特別是在當(dāng)今相互合作以及公共工作環(huán)境下,電腦中的資料可能對(duì)于寫工作人員時(shí)可見的而對(duì)于另外一些工作人員是不可見的,對(duì)于一些文件進(jìn)行加密是有必要的2。因此選擇這個(gè)方面作為自己的論文研究方向,想通過對(duì)數(shù)據(jù)加密方法的研究對(duì)密碼學(xué)有一個(gè)全面的認(rèn)識(shí),同時(shí)在研究過程中對(duì)當(dāng)前已經(jīng)比較成熟的加密算法進(jìn)行學(xué)習(xí)并且總結(jié)和比較得由自己的結(jié)論并結(jié)合需求分析選擇幾種常見的加密算法設(shè)計(jì)、實(shí)現(xiàn)一個(gè)自己的單機(jī)文件加密系統(tǒng)。2系統(tǒng)采用的關(guān)鍵技術(shù)公開密鑰密碼系統(tǒng)一般是基于數(shù)學(xué)上難解的問題,所以其安全性高,同時(shí),密鑰的管理比較容易。缺點(diǎn)是

5、它的密鑰太長、運(yùn)算速度比對(duì)稱算法的慢很多;公開密鑰密碼系統(tǒng)生成一對(duì)公私鑰的速度比較慢,通常需要幾分鐘以上,從而對(duì)有大量用戶的系統(tǒng)而言,服務(wù)器的工作效率不高3o鑒于對(duì)稱密鑰密碼算法和公開密鑰密碼算法的特點(diǎn),綜合使用DES對(duì)稱密鑰加密算法和RSA公開密鑰加密算法來保障信息安全。大量數(shù)據(jù)用64bit密碼長度的DES對(duì)稱密碼算法進(jìn)行加密,而公開密鑰密碼算法則使用1024bit長度的RSA公開密鑰加密算法進(jìn)行加密,此種方法既保證了數(shù)據(jù)信息的安全又提高了數(shù)據(jù)加密和解密的速度,實(shí)現(xiàn)了對(duì)數(shù)據(jù)信息安全、加密效率的要求4。2.1DES算法的實(shí)現(xiàn)過程DES工作的基本原理是,其入口參數(shù)有三個(gè):key、data、mod

6、e。其中Key為8個(gè)字節(jié)共64位,是DES算法的工作密鑰;Data也為8個(gè)字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密。實(shí)際運(yùn)用中,密鑰只用到了64位中的56位,這樣才具有高的安全性4。DES算法是這樣工作的:如Mode為加密,則用Key去把數(shù)據(jù)Data進(jìn)行加密,生成Data的密碼形式(64位)作為DES的輸由結(jié)果;如Mode為解密,則用Key去把密碼形式的數(shù)據(jù)Data解密,還原為Data的明碼形式(64位)作為DES的輸生結(jié)果5對(duì)于單機(jī)用戶用于保存不需在網(wǎng)絡(luò)中傳遞的文件則只需要在加密的時(shí)候輸入一個(gè)自己熟悉但相對(duì)來說比較復(fù)雜不易被其他人破解的密碼串就行,

7、記住該密碼串在解密的時(shí)候輸入就行。DES算法具有極高安全性,到目前為止,除了用窮舉搜索法對(duì)DES算法進(jìn)行攻擊外,還沒有發(fā)現(xiàn)更有效的辦法。而56位長的密鑰的窮舉空間為256,這意味著如果一臺(tái)計(jì)算機(jī)的速度是每一秒種檢測(cè)一百萬個(gè)密鑰,則它搜索完全部密鑰就需要將近2285年的時(shí)間,可見,這是難以實(shí)現(xiàn)的,當(dāng)然,隨著科學(xué)技術(shù)的發(fā)展,當(dāng)由現(xiàn)超高速計(jì)算機(jī)后,我們可考慮把DES密鑰的長度再增長一些,以此來達(dá)到更高的保密程度6。2.2RSA算法的實(shí)現(xiàn)過程首先產(chǎn)生一對(duì)公鑰和私鑰:(l)選取兩個(gè)大素?cái)?shù)p和q(10到20個(gè)十進(jìn)制數(shù)或更大),為了獲得最大程度的安全性,兩個(gè)數(shù)的長度最好相同。兩個(gè)素?cái)?shù)p和q必須保密。(2)計(jì)

8、算p與q的乘積:n=p*q。(3)再由p和q計(jì)算另一個(gè)數(shù)Z,Z=(p-1)*(q-1)。(4)隨機(jī)選取加密密鑰e,使e和Z互素。(5)用歐幾里德擴(kuò)展算法計(jì)算解密密鑰d,以滿足e*d=lmod(z)o(6)由此而得到的兩組數(shù)(n,e)和(n,d)分別被稱為公開密鑰和私人密鑰,簡稱公鑰和私鑰7o其次是加密過程:RSA算法是一種分組加密算法,加密消息M時(shí),首先將它分成比n小的數(shù)據(jù)分組(采用二進(jìn)制數(shù),選取小于n的2的最大次哥),也就是說,p和q為100位的素?cái)?shù),那么n將有200位,每個(gè)消息分組m,應(yīng)小于200位長(如果需要加密固定的消息分組,那么可以在它的左邊填充一些0并且保證該數(shù)比n小)。加密后的密

9、文C,將由相同長度的分組組成。由上述RSA算法可知:若n被因式分解,則RSA便可以被擊破。因?yàn)閚=p*q,如果p和q已知,那么Z=(p-1)*(q-1)便可以算由,故滿足條件e*d=lmod(Z)的解密密鑰d也不難求出。因此RSA的安全性完全依賴于大數(shù)的分解難度。RSA算法的公開密鑰和私人密鑰是一對(duì)大素?cái)?shù)(10到20個(gè)十進(jìn)制數(shù)或更大)的函數(shù)。從一個(gè)公開密鑰和密文中恢復(fù)由明文的難度等價(jià)于分解兩個(gè)大素?cái)?shù)之積8o目前因子分解速度最快的方法,其時(shí)間復(fù)雜性為:exp(Sqrt(ln(n)lnln(n).從技術(shù)上講,這種安全性只是一種推測(cè)。3系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)根據(jù)需求分析,本系統(tǒng)的主要功能是保護(hù)存儲(chǔ)在電腦的

10、文件不被非法用戶盜取后讀取信息,面向用戶主要是單機(jī)用戶以及多用戶系統(tǒng),不涉及到網(wǎng)絡(luò)傳輸,結(jié)合對(duì)稱密鑰加密體制和公開密鑰加密體制的優(yōu)缺點(diǎn)。設(shè)計(jì)主要功能有:讀取文件路徑,利用DES算法對(duì)文本文件中的數(shù)據(jù)進(jìn)行加密和解密,利用RSA算法將DES算法的密鑰加密并保存即密鑰導(dǎo)由功能;同時(shí)可以導(dǎo)入加密后的DES密鑰文件對(duì)其解密后輔助完成利用DES算法對(duì)數(shù)據(jù)的解密。主要功能如圖1所示。與此同時(shí)考慮到加密后密鑰的安全問題以及當(dāng)前移動(dòng)存儲(chǔ)介質(zhì)的普遍使用,系統(tǒng)可以將保存加密后的DES密鑰的文件導(dǎo)生到移動(dòng)存儲(chǔ)介質(zhì)中,以便更好的保護(hù)密鑰的安全同時(shí)也方便了用戶對(duì)密鑰的管理。在以前功能上有幾點(diǎn)修改,將以前的導(dǎo)生功能改為保存

11、,保存只是將加密后的密鑰文件保存在當(dāng)前文件夾下,新添加的導(dǎo)生功能是將加密后的密鑰文件導(dǎo)生到移動(dòng)存儲(chǔ)器中;將導(dǎo)入功能改為加載,加載是將解密后的密鑰讀取到系統(tǒng)輔助數(shù)據(jù)的解密,新添加的導(dǎo)入是將保存在移動(dòng)存儲(chǔ)器中的加密后的密鑰文件導(dǎo)入到系統(tǒng)。經(jīng)過添加功能后系統(tǒng)的功能圖如圖2所示。根據(jù)功能的不同將整個(gè)系統(tǒng)實(shí)現(xiàn)分為三個(gè)模塊,分別為:MainFrame、DESRSAMainFrame的主要功能是顯示系統(tǒng)界面,對(duì)系統(tǒng)界面布局進(jìn)行定位并且接收由DES和RSA模塊傳來的參數(shù)輔助完成文件加密和解密功能,在加密和解密過程中給用戶提供交互界面并文成加密后密鑰的保存和導(dǎo)生及導(dǎo)入功能。DES的主要功能是接受由MainFra

12、me傳遞過來的參數(shù),對(duì)指定文件的數(shù)據(jù)進(jìn)行加密和解密。RSA的主要功能接受由MainFrame傳遞的參數(shù)對(duì)指定的DES鑰進(jìn)行加密并保存,同時(shí)可以將加密后的DES密鑰導(dǎo)由,一邊以后輔助完成數(shù)據(jù)解密功能。3.1 MainFrame模塊設(shè)計(jì)定義一個(gè)MainFrame類,主要是界面的初始化,同時(shí)在加密和解密過程中起到橋梁的作用,傳遞參數(shù)。同時(shí)所有的相應(yīng)函數(shù)均封裝在MainFrame類中,便以管理和界面的優(yōu)化。界面的初始化及所有的響應(yīng)按鈕:publicclassMainframeextendsjavax.swing.JFrame主要響應(yīng)按鈕響應(yīng)的函數(shù)如下:選擇要加密或者解密的源文件,將文件路徑傳遞DES對(duì)

13、象并顯示在文本框中,privatevoidjButton1ActionPerformed();輸入DES密鑰,并彈由對(duì)話框確認(rèn):privatevoidjButton2ActionPerformed();數(shù)據(jù)解密,通過調(diào)用DES對(duì)象中的加密函數(shù)對(duì)數(shù)據(jù)進(jìn)行加密:privatevoidjButton4ActionPerformed();數(shù)據(jù)加密,首先通過調(diào)用DES對(duì)象中的獲取密鑰函數(shù)得到密鑰,然后調(diào)用解密函數(shù)對(duì)數(shù)據(jù)進(jìn)行解密:privatevoidjButton3ActionPerformed()生成RSA密鑰對(duì):privatevoidjButton6ActionPerformed()用RSA算法對(duì)D

14、ES密鑰進(jìn)行加密并保存:privatevoidjButton7ActionPerformed()將加密后的DES密鑰文件導(dǎo)生到移動(dòng)存儲(chǔ)器中:privatevoidjButton14ActionPerformed()將RSA私鑰導(dǎo)生到移動(dòng)存儲(chǔ)器中:privatevoidjButton16ActionPerformed()將經(jīng)過加密并保存在電腦中的DE牖鑰解密并導(dǎo)入到加密系統(tǒng):privatevoidjButton8ActionPerformed()結(jié)束系統(tǒng):privatevoidjButton9ActionPerformed()3.2 DES模塊設(shè)計(jì)定義一個(gè)DES類,將參數(shù)和函數(shù)封裝在DES類中。

15、publicclassDES定義一個(gè)初始化函數(shù)和三個(gè)成員函數(shù):publicvoidsetKey(Strings)/獲得DES密鑰publicvoidinit()/對(duì)DES加密初始化,主要調(diào)用java系統(tǒng)函數(shù)加密函數(shù),source為要加密的文件的路徑,result為加密后文件保存路徑;因?yàn)樵贛ainFrame模塊中要對(duì)是否加密成功進(jìn)行判斷所以此函數(shù)要返回參數(shù):publicStringencryptorFile(Stringsource,Stringresult)力口密函數(shù)設(shè)計(jì)框架圖如圖3所示解密函數(shù),source為要解密的文件的路徑,result為解密后文件保存路徑;因?yàn)樵贛ainFrame模塊

16、中要對(duì)是否解密成功進(jìn)行判斷所以此函數(shù)要返回參數(shù):publicStringdecryptorFile(Stringsource,Stringresult)解密函數(shù)設(shè)計(jì)框架圖如圖4所示。3.3 RSA模塊設(shè)計(jì)定義一個(gè)RSA類,將主要參數(shù)和方法封裝在RSA類中。publicclass:RSA定義三個(gè)成員函數(shù):生成RSA的密鑰和公鑰并將私鑰和公鑰分別以dat文件形式保存在系統(tǒng)的當(dāng)前文件夾中;因?yàn)樵贛ainFrame模塊中要對(duì)生成密鑰是否成功進(jìn)行判斷所以此函數(shù)要返回參數(shù);publicStringsetkey(),密鑰生成函數(shù)設(shè)計(jì)框架圖如圖5所示。利用RSA公鑰將傳遞進(jìn)來的DES密鑰進(jìn)行加密并以dat文件

17、形式保存在系統(tǒng)的當(dāng)前文件夾中,傳遞過來的密鑰是String形式的,只能由數(shù)字和字母組成;因?yàn)樵贛ainFrame模塊中要對(duì)是否加密成功進(jìn)行判斷所以此函數(shù)要返回參數(shù);publicStringencryptorFile(StringDkey),加密函數(shù)設(shè)計(jì)框架圖如圖6所示。利用RSA私鑰對(duì)保存的加密后的DE牖鑰解密并傳遞給MainFrame類中的解密方法,實(shí)現(xiàn)密鑰的導(dǎo)入功能,該方法中首先要讀取RSA的私鑰然后讀取加密后的DES密鑰文件;因?yàn)樵贛ainFrame模塊中要對(duì)是否解密成功進(jìn)行判斷所以此函數(shù)要返回參數(shù):publicStringdecryptorFile();解密函數(shù)設(shè)計(jì)框架圖如如7所示。4

18、系統(tǒng)的開發(fā)環(huán)境及實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)選擇在java環(huán)境下。Java技術(shù)是與平臺(tái)無關(guān),是當(dāng)今被各大軟件公司可接受為最高級(jí)的面向?qū)ο笤O(shè)計(jì)語言的主流技術(shù);且Java安全API提供了加密、信息融合、密鑰管理、認(rèn)證、存取控制和數(shù)字簽名等功能,允許開發(fā)者進(jìn)行低層和高層的安全應(yīng)用,而且在Java中,RSA密鑰生成、RSA加密解密的功能實(shí)現(xiàn)十分簡單,因?yàn)闃?biāo)準(zhǔn)庫中集成幾乎所有功能,不需要從RSA算法由發(fā)進(jìn)行編碼。在j2se標(biāo)準(zhǔn)庫中,javax.crypto中的Cipher類用于具體的加密和解密,java.security包直接提供了數(shù)字簽名的相關(guān)方法。測(cè)試實(shí)例一,對(duì)txt文本文件進(jìn)行加解密(密鑰為000000)。5結(jié)束語整體情況來說系統(tǒng)基本上達(dá)到預(yù)期的要求,能夠?qū)ξ谋疚募M(jìn)行加密和解密并且方便公共環(huán)境下多用戶

溫馨提示

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

評(píng)論

0/150

提交評(píng)論