freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

rsa應(yīng)用現(xiàn)狀及應(yīng)用于文件加密畢業(yè)設(shè)計論文-文庫吧在線文庫

2025-09-08 04:58上一頁面

下一頁面
  

【正文】 on using that DLL. The application can encrypt any file and decrypt them. The file after encryption can be saved as a text file. And the encryptionkeys also can be saved as pivotal classes chart, project description, core algorithm flowchart, all source code, and module interfaces document. Do application performance test and record the performance data. Analyze the result then optimize core algorithm and improve the application. Finally, create a practical application using RSA algorithm that can encrypt and decrypt any file. And several modules in the project can be reuse by other applications. For instance, the C++ class can be crosspiled for handheld devices, the DLL can be referenced by other win32 applications, and the .Net class can be easily referenced by web server applications or web services.Keywords RSA RSA algorithm file encryption encrypt to text 目 錄前 言 1第1章 RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密的分析 2 RSA算法介紹與應(yīng)用現(xiàn)狀 2 RSA應(yīng)用于文件加密的分析 3 文件加密使用RSA的可行性 3 文件加密使用RSA的意義 4第2章 RSA文件加密軟件的設(shè)計與實現(xiàn) 6 需求分析與總體設(shè)計 6 功能分析 6 工程方案選擇 7 各部分的設(shè)計與開發(fā) 8 實現(xiàn)RSA加密算法的C++核心類庫 8 封裝C++核心類庫的DLL組件 18 19第3章 軟件整體測試與分析改進 20 編寫測試各項性能需要的精確計時類 20 測試數(shù)據(jù)與分析改進 20 密鑰生成測試 20 數(shù)據(jù)輸入輸出測試 23 加密解密測試 23 性能分析與改進優(yōu)化 26 使用中國余數(shù)定理 27第4章 可移植模塊的簡要說明與開發(fā)前景 29結(jié)束語 30謝 辭 31參考文獻 32附 錄 33前 言RSA公鑰加密算法是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。將任意文件加密成文本的解決方案,使其使用更加靈活。日常應(yīng)用中,有比較著名的工具包Open SSL(SSL,Security Socket Layer,是一個安全傳輸協(xié)議,在Internet上進行數(shù)據(jù)保護和身份確認。 JCA (Java Cryptography Architecture)提供基本的加密框架,如證書、數(shù)字簽名、報文摘要和密鑰對產(chǎn)生器; JCA由幾個實現(xiàn)了基本的加密技術(shù)功能的類和接口組成,此軟件包包含的是一組核心的類和接口,Java中數(shù)字簽名的方法就集中在此軟件包中。雖然RSA加密運算的速度十分慢,但是在PC性能越來越好的今天,對于幾千字節(jié)的數(shù)據(jù)進行一次幾百位密鑰的RSA加密,所消耗的時間應(yīng)該是可以接受的。當然,如果文件更大,加密就顯得十分漫長了。 文件加密使用RSA的意義,小型文件加密可以使用RSA。如果采用對稱密鑰加密,張三和李四提前約好一個密碼就可以。一種更實際的情況是,我們想通過Internet上的公眾論壇或郵件發(fā)送重要保密信息給某人。例如,我們可以將任意一個文件用某人的公開密鑰加密變換成一段可以復(fù)制粘貼的文本,然后粘貼在公眾互聯(lián)網(wǎng)上,對方只需把需要解密的文本復(fù)制保存成一個文本文件,在本地機用自己的私有密鑰解密即可。② 可以保存密鑰和裝載密鑰,密鑰保存為純文本。因為有強大的標準庫支持,文件的讀取和保存操作、各環(huán)節(jié)必要的數(shù)據(jù)編碼轉(zhuǎn)換、圖形操作界面的實現(xiàn)也很簡單( 等包),如果結(jié)合一種快速開發(fā)的IDE,比如JBuilder,整個軟件可以在很短的時間內(nèi)編碼完成。但是對于非PC設(shè)備,只能方便的移植到運行Windows嵌入式操作系統(tǒng)的設(shè)備,向其他操作系統(tǒng)移植困難,需要重新編寫大量代碼。圖22形象的說明了分層設(shè)計給復(fù)用帶來的好處。和普通的類型一樣,每一個大數(shù)對應(yīng)一個flex_unit的實例。四則運算實現(xiàn)的原理十分簡單,都是按最基本的算術(shù)原理實現(xiàn)的,四則運算過程的本質(zhì)就是按一定數(shù)制對數(shù)字的計算,比如相加,就是低位單元對齊,逐單元相加并進位,減法同理。冪模運算是RSA 算法中比重最大的計算,最直接地決定了RSA 算法的性能,針對快速冪模運算這一課題,西方現(xiàn)代數(shù)學(xué)家提出了很多的解決方案。觀察上述算法,發(fā)現(xiàn)E根據(jù)奇偶除以二或減一除以二實際就是二進制的移位操作,所以要知道需要如何乘模變量,并不需要反復(fù)對E 進行除以二或減一除以二的操作,只需要驗證E 的二進制各位是0 還是1 就可以了。在本軟件的代碼中采用直接掃描vlong二進制各位的辦法。并且選擇R1及n’,滿足0 R1n, 0 n’n,使得 RR1nn’=1。將上述乘模算法結(jié)合前面敘述的冪模算法,構(gòu)成標準Montgomery冪模算法,即本軟件所使用的流程,敘述如下。 if(E的當前二進制位Ei==1)D=M(D*P)。但是素數(shù)表的方式給RSA的安全性帶來隱患,因為攻擊者如果得到了密鑰生成時所使用的素數(shù)表,攻破RSA加密的難度將會大大降低。程序中構(gòu)造了一個數(shù)組b[],大小為一輪素數(shù)搜索的范圍,記搜索范圍大小為SS。這些小素數(shù)用來當作因子,他們的倍數(shù)將被從大素數(shù)搜索范圍內(nèi)剔除(即把數(shù)組b[]的對應(yīng)元素標記為0),剔除的程序代碼如下。 } }這里利用start對各小素數(shù)因子p求模的辦法,得到當前p在素數(shù)搜索范圍內(nèi)的最小倍數(shù)在b[]中的對應(yīng)位置,將其剔除后,不斷后移p個位置,將這個小素數(shù)因子p在搜索范圍內(nèi)的所有倍數(shù)全部剔除,如圖25所示。按這種原理,我們編寫素數(shù)測試函數(shù)如下。//這里modexp計算any[i]p1mod p。 i=0計數(shù)iSS?b[i]==1?判定為素數(shù)?start+=1。y=2即為所求。之后可以直接使用類的其他成員進行RSA加解密操作,也可以載入以前保存的密鑰或再次隨機生成密鑰。加密解密流程均為標準RSA算法,具體過程和使用方法參見源程序和接口文檔。class RSA_san在前5個類的基礎(chǔ)上,實現(xiàn)RSA核心算法的類。C接口的DLL組件可以被諸如VB、Delphi等開發(fā)環(huán)境方便的引用。圖28 本軟件的Visual Studio解決方案第3章 軟件整體測試與分析改進 編寫測試各項性能需要的精確計時類,無法勝任軟件性能測試的工作,這里使用Windows API 函數(shù)QueryPerformanceCounter和QueryPerformanceFrequency進行精確計時。1. 測試加密使用的n的位數(shù)對耗時的影響即 在固定A、NP、SS等變量的情況下,改變加密位數(shù)n,測試密鑰生成的時間消耗情況。這是因為對于大整數(shù)來說,可能出現(xiàn)在較長一段區(qū)間中沒有素數(shù)的情況。2. 測試底數(shù)A對耗時的影響為了保證生成素數(shù)的成功率,A至少要有4個。表32 素數(shù)測試底數(shù)A對密鑰生成時間的影響A的設(shè)置測試5次 n為512bit時密鑰生成需要的時間(秒)平均耗間(秒)2,3,5,72,3,5,7,112,3,5,7,11,13A的設(shè)置測試5次 n為1024bit時密鑰生成需要的時間(秒)平均耗間(秒)2,3,5,72,3,5,7,112,3,5,7,11,13由表32可以看出,對于512bit密鑰,A取從4個到6個,對隨機密鑰的產(chǎn)生時間影響不大。而且通過本次測試還可以發(fā)現(xiàn),表33中NP為200,n為1024bit測試的一行,變量設(shè)置和表32中A設(shè)置為11,n為1024bit的一行完全一致(對應(yīng)還有一行n為512bit的數(shù)據(jù)變量設(shè)置一致),但是耗時平均差距相差4秒之多(512bit的一行差距不到1秒)。在配置為CPU ,讀入一個100KB的文件僅需要35毫秒,寫出一個100KB的文件需要29毫秒。統(tǒng)計消耗時間情況如表34所示,統(tǒng)計數(shù)據(jù)以曲線表示如圖31。因為根據(jù)PCKS 1的RSA的應(yīng)用建議,e是比較短的,而d和n的長度差不多,這就使得求與d、n有關(guān)的冪模運算量比與e、n有關(guān)的冪模運算量大很多,而且隨著n的增加,兩組冪模運算的運算量差距也迅速加大。所以同樣的信息量,采用十六進制文本要比原始數(shù)據(jù)大一倍。下面測試多字節(jié)為步長的加密執(zhí)行效率。數(shù)據(jù)見表37。② 文件輸入輸出消耗時間其次,因為磁盤讀寫速度要遠遠低于內(nèi)存讀寫速度。③ 在關(guān)鍵算法上做進一步優(yōu)化,例如在尋找素數(shù)時,素數(shù)測試使用更快速的算法;,在用私有密鑰進行冪模運算時使用中國余數(shù)定理等。最后,應(yīng)用中國余數(shù)定理就能計算出的值m。一般可以直接將本模塊交叉編譯給嵌入式設(shè)備,或在其他操作系統(tǒng)編譯使用。,將任意文件加密成文本有其重要的意義。整個項目開放源代碼和各種開發(fā)資料,便于引用和繼續(xù)開發(fā)。編譯好的軟件下載地址:源代碼下載地址:相關(guān)開發(fā)資源站點:(提供各層接口函數(shù)和各類成員函數(shù)文檔)軟件使用幫助:在C使用Windows public class HighResolutionTimer { private long start。 } } [(, CharSet=)] private static extern bool QueryPerformanceCounter(ref long performanceCount)。 首先定義mi=n/ni(i=1,2...k),則mi是除了ni以外的所有nj的乘積,接下來令ci=mi與模n意義下mi的逆元的積,則a為(a1c1+a2c2+...+akck) (mod n)。1. 如果 a 不是 p 的倍數(shù), 也不是 q 的倍數(shù)時, 則 (費馬小定理) a (根據(jù)質(zhì)數(shù)算術(shù)基本定理,a與素數(shù)p互素,則am也與p互素,m是整數(shù)) (費馬小定理) a ∴ p, q 均能整除 1 a pq | 1 即 = 1 mod pq a c = = a mod pq 2. 如果 a 是 p 的倍數(shù), 但不是 q 的倍數(shù)時, 則 (費馬小定理) a = 1 mod q a c = = a mod q a q | c a ∵ p | a a c = = 0 mod p a p | c a ∴ pq | c a a c = a mod pq 3. 如果 a 是 q 的倍數(shù),但不是 p 的倍數(shù)時,證明同2理顯然 4. 如果 a 同時是 p 和 q 的倍數(shù)時, 則 pq | a a c = = 0 mod pq a pq | c a a c = a mod pq 證畢□ 費馬小定理敘述:e 是任一素數(shù), n 是任一整數(shù), 則 = n mod e (即如果 n 和 e 互質(zhì), 則 = 1 mod e) 運用群論知識可以證出費馬小定理。 } public void Start () { QueryPerformanceCounter (ref start)。NonSecret Encryption39。通過這種加密方式,可以滿足重要的小應(yīng)用程序等小型二進制數(shù)據(jù)在網(wǎng)絡(luò)上安全順利傳輸?shù)囊蟆@缭赩B6,要使用這個組件,只需在程序最開始以引用win32api的方式引用即可,即public declare function XXX的形式。在書寫本文時軟件中尚未使用中國余數(shù)定理。 使用中國余數(shù)定理對于用RSA加密解密的一方,是計算。① 在要對文件進行加密解密的時候,先將文件按一定的數(shù)據(jù)結(jié)構(gòu)讀入內(nèi)存,然后進行加密或解密操作。在2006年初主流配置的PC上運行此軟件,逐字節(jié)加密1KB大小的文件,消耗時間均在1分鐘以內(nèi)。這都是因為增大了步長后,文件被分成的塊數(shù)少了,冪模運算次數(shù)下降。根據(jù)這些數(shù)據(jù),可以總結(jié)出本軟件使用的加密方式,加密前后文件大小的近似換算公式如下: ,其中A是待加密文件數(shù)據(jù)長度,B是加密后文件長度,N是RSA加密位數(shù),N8。表35 本軟件生成的加密文件大小測試(文件大小單位:Byte)n位數(shù) 文件大小50Byte100Byte150Byte200Byte250Byte512bit公鑰加密6,55712,97719,39725,81732,2371024bit公鑰加密12,98625,83538,68451,53364,382從表35的數(shù)據(jù)可以發(fā)現(xiàn),對于同樣的文件進行加密,使用1024bit密鑰加密所得到的文件大小是使用512bit加密的2倍左右。對于一定的加密位數(shù)來說,私鑰解密所需要的時間比公鑰加密需要的時間長。加密時使用的測試文件、各密鑰文件以及加解密后生成的文件可以從以下地址下載:。4. 測試SS對耗時的影響同樣未發(fā)現(xiàn)
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1