版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、RSA文件加密的研究和實現(xiàn),RSA Encrypter 2007,指導(dǎo)教師:秦海玉 姓名:張俊 ?! I(yè):網(wǎng)絡(luò)工程 學(xué)號:20033528,各位老師 大家好!,1. RSA簡介和文件加密的需求分析,RSA算法概述 為何用于文件加密 需求分析與軟件功能概述,RSA算法概述密鑰:取素數(shù)p,q,令n=p×q.取與t=(p-1)×(q-1)互素的整數(shù)e,e與t必須除1之外沒有其
2、他公共因子.由方程d×e=1 (mod t)解出d,二元組(e,n)作為公開密鑰,二元組(d,n)作為私有密鑰.加密解密:b=ae mod n,c=bd mod n.◆可以看出,加密算法是對稱的,但是加密和解密使用的密鑰不同,因而稱之為非對稱加密?!艚饷芤蕾?d,n),二元組(e,n)公開給別人不會影響密文保密,又稱之為公鑰加密。,為何用來做文件加密◆ 在互聯(lián)網(wǎng)上用作數(shù)字簽名和數(shù)字證書,使用已非常廣泛,
3、IE等瀏覽器直接集成各種相關(guān)功能,不需要另外編碼設(shè)計相關(guān)功能。◆ 用RSA進(jìn)行文件加密較少見,因為其加密速度慢?!?用來做文件加密,可以使小型文件交流更加靈活方便。,相關(guān)的需求分析※舉例· 要把銀行帳號和密碼在互聯(lián)網(wǎng)發(fā)送給某人。◆ 必定要加密傳送。◆ 為了密鑰維護(hù)方便,使用公鑰加密。在當(dāng)今互聯(lián)網(wǎng)傳送遇到的問題:密鑰在服務(wù)器保存,數(shù)據(jù)傳送不安全。只有專用領(lǐng)域方便使用數(shù)字證書。,張三將銀行帳號和
4、密碼通過 Email、論壇等途徑 發(fā)送給李四,張三:發(fā)送出重要保密數(shù)據(jù),,,李四:接收重要保密數(shù)據(jù),服務(wù)器維護(hù):張三和李四的郵箱密碼張三和李四的郵件內(nèi)容張三和李四的論壇密碼張三和李四的論壇個人資料張三和李四的論壇帖子……………………幾乎一切保密措施...,服務(wù)器系統(tǒng)管理員:看起來這些內(nèi)容比較有趣~,這樣安全嗎?,張三將銀行帳號和密碼發(fā)送給李四 (使用一個小型公鑰加密軟件),張三:發(fā)送重要保密數(shù)據(jù)前,用小型公鑰加
5、密軟件對數(shù)據(jù)進(jìn)行加密,加密使用李四的公開密鑰.,,,李四:接收數(shù)據(jù),用自己的私有密鑰解密~,服務(wù)器端即便看到傳送的數(shù)據(jù),也無法得知具體信息.因為沒有李四的私有密鑰,她的私有密鑰保存在自己的電腦,服務(wù)器系統(tǒng)管理員: 全是亂碼 @_@b,RSA保障非常安全,這個小型RSA加密軟件所應(yīng)該實現(xiàn)的功能 能加密任意小型文件 加密生成文本 密鑰可以保存和讀取 可以隨機(jī)生成密鑰 密鑰位數(shù)可以根據(jù)需
6、要設(shè)定,2. RSA文件加密軟件的設(shè)計與實現(xiàn),工程設(shè)計 各部分的具體開發(fā),工程設(shè)計◇java平臺實現(xiàn) 優(yōu)點:標(biāo)準(zhǔn)庫中有公鑰加密功能的實現(xiàn),開發(fā)容易,可以快速完成.跨平臺.缺點:虛擬機(jī)執(zhí)行效率低,不適合大量運(yùn)算.◇.Net平臺實現(xiàn)優(yōu)點:供開發(fā)的語言多,標(biāo)準(zhǔn)庫中有公鑰加密功能的實現(xiàn), 開發(fā)非常容易,可以非??焖偻瓿桑 〕善方M件便于被.Net的其他語言引用.缺點:虛擬機(jī)執(zhí)行效率低,不適合大量運(yùn)算.暫只限于W
7、indows操作系統(tǒng).◇ Win32應(yīng)用程序優(yōu)點:用本地化代碼實現(xiàn),執(zhí)行效率高,適合大量運(yùn)算.缺點:代碼繁瑣不易維護(hù).只限于Windows操作系統(tǒng).◇綜合考慮,分層設(shè)計 把核心運(yùn)算功能用本地化代碼實現(xiàn), 文件操作和圖形界面借助流行的平臺快速開發(fā). 既方便了各層的引用,也顧及了執(zhí)行效率.,軟件各層次的說明(設(shè)計論文圖2-2),各部分的詳細(xì)介紹◇C++核心類庫(RSA算法實現(xiàn))對應(yīng)最前面的RSA算法的概述,我們看到
8、要完成的編碼主要有以下部分:1.大數(shù)存儲和四則運(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ī)素數(shù) 即隨機(jī)的p和q.,◇C++核心類庫中各類的關(guān)系(論文中圖2-7),,,,class flex_unit 大數(shù)運(yùn)算和存儲最基本的類,主要實現(xiàn)超大整數(shù)的
9、存儲和索引管理。 class vlong_value 是flex_unit的派生類,在靈活大數(shù)存儲的基礎(chǔ)上實現(xiàn)四則運(yùn)算函數(shù)。 class vlong 以vlong_value為基礎(chǔ)(將一個vlong_value指針作成員),重載運(yùn)算符。 class monty 為RSA準(zhǔn)備大數(shù)求冪運(yùn)算的函數(shù),vlong的友元。 class Prime_factory_san 素數(shù)工廠,尋找大素數(shù)的類。 class RSA_
10、san 在前5個類的基礎(chǔ)上,實現(xiàn)RSA核心算法的類,組建工程設(shè)計,flex_unit monty vlong_value vlong 四個類實現(xiàn)了超大整數(shù)的存儲和計算功能 Prime_factory_san 用來尋找素數(shù) RSA_san 是RSA核心算法的簡單實現(xiàn) 此類依賴前面敘述的五個類或其對象 DLL的純C接口函數(shù)大多是直接調(diào)用類RSA_san的功能 Sanpack_rsa 是C#類,除了dll基本功能的直接
11、引用,還添加了隨機(jī)字串生成和字串編碼函數(shù) 整個工程最終的用戶界面由C#窗體給出,引用類Sanpack_rsa,通過其實例實現(xiàn)文件加密功能,◇封裝成DLL組件◆把可能用到的功能全部規(guī)劃為新文件中的全局函數(shù),并以C接口導(dǎo)出,即__declspec(dllexport) ◆C接口的DLL組件可以被諸如VB6、Delphi、PowerBuilder等開發(fā)環(huán)境方便的引用?!鬌LL組件可以自己在全局函數(shù)中實現(xiàn)一些其他功能,作為對核
12、心類庫功能的補(bǔ)充。,◇引用DLL組件的.Net類與實現(xiàn)文件操作的窗體應(yīng)用程序◆在C#編寫的.Net類里,使用特性[DllImport("sanpack_rsa.dll")]引用C接口的DLL組件。類中接口DLL的函數(shù)都以靜態(tài)成員的方式對外公開,其他.Net程序可以直接使用?!粑募僮魇褂?Net基礎(chǔ)類庫中的System.IO中的類實現(xiàn)。一般因為文件操作十分簡單,用流輸入輸出的方式包裝完成?!舸绑w等
13、圖形操作界面直接由Visual Studio的所見即所得的方式完成,不需要編碼實現(xiàn)。,啟動RSA加密軟件,,1. 獲得隨機(jī)計算出的密鑰,點擊這里,會隨機(jī)生成素數(shù),刷新各參量的值,,不要忘記保存生成的密鑰,在保存對話框中輸入要保存的文件名字,確定后會生成兩個文件,一個是私密密鑰,一個是公開密鑰。其中私密密鑰需要妥善保管,公鑰公開。別人如果需要發(fā)給你重要數(shù)據(jù),就用你公開的密鑰加密,然后把加密后的數(shù)據(jù)給你。,2。數(shù)據(jù)加密的一般過程,載入
14、需要接收數(shù)據(jù)一方的公鑰,在得到對方的公鑰文件后,如上圖,點擊從文件載入。,選擇對方的公開密鑰文件,雙擊載入。,載入成功,會出現(xiàn)類似上圖提示。,如上圖,載入要加密的文件。注意文件不應(yīng)該過大,一般,默認(rèn)選項加密速度是1kB需要50秒左右(AMD2200+CPU),載入成功后會類似上圖提示,如上圖,一般,要加密點擊這項即可,在彈出的對話框輸入要生成的加密文件的文件名,確定以后開始加密,過程十分漫長。加密成功輸出整個加密好的文件以后,會類似上
15、圖提示。一般,加密以后的文件會是原文件的50--200倍大。,3。數(shù)據(jù)解密的一般過程,首先要載入自己的私密密鑰。要和加密對應(yīng)的公鑰配對。,載入成功以后出現(xiàn)類似上圖的提示。,載入要解密的文件。,載入成功以后出現(xiàn)類似上圖的提示。,選擇解密方式,通常使用私鑰解密,選擇這一項。,鍵入要還原出的文件名,注意與原文件名的擴(kuò)展名一致。,確定以后,開始解密,過程同樣漫長。解密完成后提示類似上圖。注意:上述過程保密安全幾乎全部取決于私密密鑰,請妥善保存
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于RSA快速加密算法的網(wǎng)絡(luò)文件加密系統(tǒng)設(shè)計.pdf
- [vc++畢設(shè)]rsa文件加密軟件的設(shè)計與實現(xiàn)
- rsa加密解密算法
- RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密程序.rar
- RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密程序.rar
- RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密程序.rar
- RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密程序.rar
- 基于java的rsa文件加密軟件的設(shè)計與實現(xiàn)畢業(yè)設(shè)計論文
- rsa加密體制破譯教學(xué)設(shè)計
- 采用RSA算法的加密芯片設(shè)計.pdf
- rsa算法公鑰加密算法
- RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密畢業(yè)設(shè)計論文.doc
- RSA加密算法的ASIC實現(xiàn).pdf
- RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密畢業(yè)設(shè)計論文.doc
- RSA加密子系統(tǒng)的設(shè)計與實現(xiàn).pdf
- rsa加密算法的安全性分析
- 基于rsa加密算法畢業(yè)論文--數(shù)據(jù)通信中的rsa加密算法的設(shè)計與實現(xiàn)
- DES RSA混合加密以及傳輸實現(xiàn).pdf
- RSA加密算法的研究與實現(xiàn).pdf
- 基于FPGA的RSA加密芯片設(shè)計與實現(xiàn).pdf
評論
0/150
提交評論