rsa文件加密的_第1頁(yè)
已閱讀1頁(yè),還剩41頁(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、RSA文件加密的研究和實(shí)現(xiàn),RSA Encrypter 2007,指導(dǎo)教師:秦海玉      姓名:張俊 專(zhuān)  業(yè):網(wǎng)絡(luò)工程     學(xué)號(hào):20033528,各位老師   大家好!,1. RSA簡(jiǎn)介和文件加密的需求分析,RSA算法概述   為何用于文件加密   需求分析與軟件功能概述,RSA算法概述密鑰:取素?cái)?shù)p,q,令n=p×q.取與t=(p-1)×(q-1)互素的整數(shù)e,e與t必須除1之外沒(méi)有其

2、他公共因子.由方程d×e=1 (mod t)解出d,二元組(e,n)作為公開(kāi)密鑰,二元組(d,n)作為私有密鑰.加密解密:b=ae mod n,c=bd mod n.◆可以看出,加密算法是對(duì)稱(chēng)的,但是加密和解密使用的密鑰不同,因而稱(chēng)之為非對(duì)稱(chēng)加密?!艚饷芤蕾?lài)(d,n),二元組(e,n)公開(kāi)給別人不會(huì)影響密文保密,又稱(chēng)之為公鑰加密。,為何用來(lái)做文件加密◆ 在互聯(lián)網(wǎng)上用作數(shù)字簽名和數(shù)字證書(shū),使用已非常廣泛,

3、IE等瀏覽器直接集成各種相關(guān)功能,不需要另外編碼設(shè)計(jì)相關(guān)功能?!?用RSA進(jìn)行文件加密較少見(jiàn),因?yàn)槠浼用芩俣嚷??!?用來(lái)做文件加密,可以使小型文件交流更加靈活方便。,相關(guān)的需求分析※舉例· 要把銀行帳號(hào)和密碼在互聯(lián)網(wǎng)發(fā)送給某人?!?必定要加密傳送?!?為了密鑰維護(hù)方便,使用公鑰加密。在當(dāng)今互聯(lián)網(wǎng)傳送遇到的問(wèn)題:密鑰在服務(wù)器保存,數(shù)據(jù)傳送不安全。只有專(zhuān)用領(lǐng)域方便使用數(shù)字證書(shū)。,張三將銀行帳號(hào)和

4、密碼通過(guò) Email、論壇等途徑 發(fā)送給李四,張三:發(fā)送出重要保密數(shù)據(jù),,,李四:接收重要保密數(shù)據(jù),服務(wù)器維護(hù):張三和李四的郵箱密碼張三和李四的郵件內(nèi)容張三和李四的論壇密碼張三和李四的論壇個(gè)人資料張三和李四的論壇帖子……………………幾乎一切保密措施...,服務(wù)器系統(tǒng)管理員:看起來(lái)這些內(nèi)容比較有趣~,這樣安全嗎?,張三將銀行帳號(hào)和密碼發(fā)送給李四 (使用一個(gè)小型公鑰加密軟件),張三:發(fā)送重要保密數(shù)據(jù)前,用小型公鑰加

5、密軟件對(duì)數(shù)據(jù)進(jìn)行加密,加密使用李四的公開(kāi)密鑰.,,,李四:接收數(shù)據(jù),用自己的私有密鑰解密~,服務(wù)器端即便看到傳送的數(shù)據(jù),也無(wú)法得知具體信息.因?yàn)闆](méi)有李四的私有密鑰,她的私有密鑰保存在自己的電腦,服務(wù)器系統(tǒng)管理員: 全是亂碼 @_@b,RSA保障非常安全,這個(gè)小型RSA加密軟件所應(yīng)該實(shí)現(xiàn)的功能   能加密任意小型文件   加密生成文本   密鑰可以保存和讀取   可以隨機(jī)生成密鑰   密鑰位數(shù)可以根據(jù)需

6、要設(shè)定,2. RSA文件加密軟件的設(shè)計(jì)與實(shí)現(xiàn),工程設(shè)計(jì)   各部分的具體開(kāi)發(fā),工程設(shè)計(jì)◇java平臺(tái)實(shí)現(xiàn) 優(yōu)點(diǎn):標(biāo)準(zhǔn)庫(kù)中有公鑰加密功能的實(shí)現(xiàn),開(kāi)發(fā)容易,可以快速完成.跨平臺(tái).缺點(diǎn):虛擬機(jī)執(zhí)行效率低,不適合大量運(yùn)算.◇.Net平臺(tái)實(shí)現(xiàn)優(yōu)點(diǎn):供開(kāi)發(fā)的語(yǔ)言多,標(biāo)準(zhǔn)庫(kù)中有公鑰加密功能的實(shí)現(xiàn),   開(kāi)發(fā)非常容易,可以非??焖偻瓿桑  〕善方M件便于被.Net的其他語(yǔ)言引用.缺點(diǎn):虛擬機(jī)執(zhí)行效率低,不適合大量運(yùn)算.暫只限于W

7、indows操作系統(tǒng).◇ Win32應(yīng)用程序優(yōu)點(diǎn):用本地化代碼實(shí)現(xiàn),執(zhí)行效率高,適合大量運(yùn)算.缺點(diǎn):代碼繁瑣不易維護(hù).只限于Windows操作系統(tǒng).◇綜合考慮,分層設(shè)計(jì)  把核心運(yùn)算功能用本地化代碼實(shí)現(xiàn), 文件操作和圖形界面借助流行的平臺(tái)快速開(kāi)發(fā). 既方便了各層的引用,也顧及了執(zhí)行效率.,軟件各層次的說(shuō)明(設(shè)計(jì)論文圖2-2),各部分的詳細(xì)介紹◇C++核心類(lèi)庫(kù)(RSA算法實(shí)現(xiàn))對(duì)應(yīng)最前面的RSA算法的概述,我們看到

8、要完成的編碼主要有以下部分:1.大數(shù)存儲(chǔ)和四則運(yùn)算,  如n=p×q2.解不定方程,  如d×e=1 (mod (p-1)×(q-1)),已知e,求d.3.大數(shù)冪模運(yùn)算,  如b=ae mod n,c=bd mod n4.尋找隨機(jī)素?cái)?shù)  即隨機(jī)的p和q.,◇C++核心類(lèi)庫(kù)中各類(lèi)的關(guān)系(論文中圖2-7),,,,class flex_unit 大數(shù)運(yùn)算和存儲(chǔ)最基本的類(lèi),主要實(shí)現(xiàn)超大整數(shù)的

9、存儲(chǔ)和索引管理。   class vlong_value 是flex_unit的派生類(lèi),在靈活大數(shù)存儲(chǔ)的基礎(chǔ)上實(shí)現(xiàn)四則運(yùn)算函數(shù)。   class vlong 以vlong_value為基礎(chǔ)(將一個(gè)vlong_value指針作成員),重載運(yùn)算符。   class monty 為RSA準(zhǔn)備大數(shù)求冪運(yùn)算的函數(shù),vlong的友元。   class Prime_factory_san 素?cái)?shù)工廠(chǎng),尋找大素?cái)?shù)的類(lèi)。   class RSA_

10、san 在前5個(gè)類(lèi)的基礎(chǔ)上,實(shí)現(xiàn)RSA核心算法的類(lèi),組建工程設(shè)計(jì),flex_unit monty vlong_value vlong 四個(gè)類(lèi)實(shí)現(xiàn)了超大整數(shù)的存儲(chǔ)和計(jì)算功能   Prime_factory_san 用來(lái)尋找素?cái)?shù)   RSA_san 是RSA核心算法的簡(jiǎn)單實(shí)現(xiàn) 此類(lèi)依賴(lài)前面敘述的五個(gè)類(lèi)或其對(duì)象   DLL的純C接口函數(shù)大多是直接調(diào)用類(lèi)RSA_san的功能   Sanpack_rsa 是C#類(lèi),除了dll基本功能的直接

11、引用,還添加了隨機(jī)字串生成和字串編碼函數(shù)   整個(gè)工程最終的用戶(hù)界面由C#窗體給出,引用類(lèi)Sanpack_rsa,通過(guò)其實(shí)例實(shí)現(xiàn)文件加密功能,◇封裝成DLL組件◆把可能用到的功能全部規(guī)劃為新文件中的全局函數(shù),并以C接口導(dǎo)出,即__declspec(dllexport) ◆C接口的DLL組件可以被諸如VB6、Delphi、PowerBuilder等開(kāi)發(fā)環(huán)境方便的引用?!鬌LL組件可以自己在全局函數(shù)中實(shí)現(xiàn)一些其他功能,作為對(duì)核

12、心類(lèi)庫(kù)功能的補(bǔ)充。,◇引用DLL組件的.Net類(lèi)與實(shí)現(xiàn)文件操作的窗體應(yīng)用程序◆在C#編寫(xiě)的.Net類(lèi)里,使用特性[DllImport("sanpack_rsa.dll")]引用C接口的DLL組件。類(lèi)中接口DLL的函數(shù)都以靜態(tài)成員的方式對(duì)外公開(kāi),其他.Net程序可以直接使用?!粑募僮魇褂?Net基礎(chǔ)類(lèi)庫(kù)中的System.IO中的類(lèi)實(shí)現(xiàn)。一般因?yàn)槲募僮魇趾?jiǎn)單,用流輸入輸出的方式包裝完成?!舸绑w等

13、圖形操作界面直接由Visual Studio的所見(jiàn)即所得的方式完成,不需要編碼實(shí)現(xiàn)。,啟動(dòng)RSA加密軟件,,1. 獲得隨機(jī)計(jì)算出的密鑰,點(diǎn)擊這里,會(huì)隨機(jī)生成素?cái)?shù),刷新各參量的值,,不要忘記保存生成的密鑰,在保存對(duì)話(huà)框中輸入要保存的文件名字,確定后會(huì)生成兩個(gè)文件,一個(gè)是私密密鑰,一個(gè)是公開(kāi)密鑰。其中私密密鑰需要妥善保管,公鑰公開(kāi)。別人如果需要發(fā)給你重要數(shù)據(jù),就用你公開(kāi)的密鑰加密,然后把加密后的數(shù)據(jù)給你。,2。數(shù)據(jù)加密的一般過(guò)程,載入

14、需要接收數(shù)據(jù)一方的公鑰,在得到對(duì)方的公鑰文件后,如上圖,點(diǎn)擊從文件載入。,選擇對(duì)方的公開(kāi)密鑰文件,雙擊載入。,載入成功,會(huì)出現(xiàn)類(lèi)似上圖提示。,如上圖,載入要加密的文件。注意文件不應(yīng)該過(guò)大,一般,默認(rèn)選項(xiàng)加密速度是1kB需要50秒左右(AMD2200+CPU),載入成功后會(huì)類(lèi)似上圖提示,如上圖,一般,要加密點(diǎn)擊這項(xiàng)即可,在彈出的對(duì)話(huà)框輸入要生成的加密文件的文件名,確定以后開(kāi)始加密,過(guò)程十分漫長(zhǎng)。加密成功輸出整個(gè)加密好的文件以后,會(huì)類(lèi)似上

15、圖提示。一般,加密以后的文件會(huì)是原文件的50--200倍大。,3。數(shù)據(jù)解密的一般過(guò)程,首先要載入自己的私密密鑰。要和加密對(duì)應(yīng)的公鑰配對(duì)。,載入成功以后出現(xiàn)類(lèi)似上圖的提示。,載入要解密的文件。,載入成功以后出現(xiàn)類(lèi)似上圖的提示。,選擇解密方式,通常使用私鑰解密,選擇這一項(xiàng)。,鍵入要還原出的文件名,注意與原文件名的擴(kuò)展名一致。,確定以后,開(kāi)始解密,過(guò)程同樣漫長(zhǎng)。解密完成后提示類(lèi)似上圖。注意:上述過(guò)程保密安全幾乎全部取決于私密密鑰,請(qǐng)妥善保存

溫馨提示

  • 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)論