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

正文內(nèi)容

基于cbuilder的rsa算法的實現(xiàn)(參考版)

2025-06-29 17:10本頁面
  

【正文】 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學(xué)院。(4)學(xué)??稍试S學(xué)位論文被查閱或借閱。(2)學(xué)??梢圆捎糜坝 ⒖s印或其他復(fù)制方式保存學(xué)位論文。除非另有說明,本文的工作是原始性工作。在此向他表示我最衷心的感謝!感謝王敏老師在課題研究初期給予的幫助,在王敏老師的幫助下課題才得以很好的展開,有了一個很好的開端!在論文完成過程中,本人還得到了其他老師和各論壇程序員朋友的支持與建議的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!作者簡介姓 名:吳俊杰 性別:男 出生年月:1985年1月9號 民族:漢Email:wujunjie110聲 明本論文的工作是 2007年 2月至 2007年6月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的。 return elapsed。 } public void Stop () { QueryPerformanceCounter (ref stop)。 public HighResolutionTimer() { QueryPerformanceFrequency (ref frequency)。 private long stop。[7] 陳發(fā)來,——素數(shù)[M].北京:。[5] 吳春明,秦建. RSA在軟件實現(xiàn)中的算法研究[J].北京:農(nóng)業(yè)網(wǎng)絡(luò)信息,2006, 08:4146。[3] 沈世鎰,[M].北京:。 參考文獻[1] [M].北京:。本項目應(yīng)用的設(shè)計模式兼顧執(zhí)行效率和可復(fù)用性。由于開發(fā)時間倉促等因素,在書寫本文時,軟件并未完成全面細致的優(yōu)化。 ④ 對C++核心類庫進行重點優(yōu)化,使其運算效率盡可能提高。這是因為,考慮到中途可能因為意外斷電等原因引起操作中斷,為了保護已經(jīng)花費時間運算完成的數(shù)據(jù),將其直接寫入磁盤。運算數(shù)據(jù)都讀取自內(nèi)存。主要有以下幾方面。所以,應(yīng)該將頻繁的讀寫操作盡量集中到內(nèi)存,然后一次性寫入磁盤。其中,冪模運算和尋找素數(shù)對時間的消耗最大,在核心優(yōu)化時應(yīng)優(yōu)先考慮。結(jié)論經(jīng)過一系列的RSA密鑰生成、文件輸入輸出和加密解密測試,做簡要的性能分析如下。表33 待加密文件大小與加密時間的關(guān)系再次測試(時間單位:秒)n位數(shù) 文件大小50Byte100Byte150Byte200Byte250Byte512bit公鑰加密512bit私鑰解密1024bit公鑰加密1024bit私鑰解密對于這組數(shù)據(jù),經(jīng)過一系列各種機型、各種Windows操作系統(tǒng)(包括Windows XP/2000SP4/ME/98,)上的測試,本軟件均能正常運行。下面對照表34,給出一組其他PC上同樣的測試得到的數(shù)據(jù),測試PC配置為CPU AMD Athron2800+,外頻333MHZ,物理內(nèi)存512MB。因為根據(jù)PCKS 1的RSA的應(yīng)用建議,e是比較短的,而d和n的長度差不多,這就使得求與d、n有關(guān)的冪模運算量比與e、n有關(guān)的冪模運算量大很多,而且隨著n的增加,兩組冪模運算的運算量差距也迅速加大。再測試幾個1280bit的密鑰加解密,發(fā)現(xiàn)私有密鑰解密所需要的時間相對于公鑰加密時間更長。對于一定的加密位數(shù)來說,私鑰解密所需要的時間比公鑰加密需要的時間長。對于較大的文件,加密位數(shù)對時間的影響十分明顯。統(tǒng)計消耗時間情況如表32所示。密鑰具體數(shù)據(jù)見附錄(n的實際位數(shù)有微小差距)。 加密解密測試進行對任意文件加密與解密的測試,這里給出幾組從不同角度進行測試的數(shù)據(jù)。在配置為CPU ,讀入一個100KB的文件僅需要35毫秒,寫出一個100KB的文件需要29毫秒。、StreamWriter等類的讀寫性能。所以,在表31實際測試填寫時,加密位數(shù)可能會有幾位的差距,但是這不礙大局。如果隨機生成的起點整數(shù)大小比較接近更長一位的整數(shù)的話(例如FFFF很接近10000),向后尋找所得到的素數(shù)很可能長出一位。另外需要說明的是,表3-1的加密位數(shù)在實際軟件設(shè)置時并不嚴格。在較常用的1024位RSA加密時,用本軟件的算法,測試時最長出現(xiàn)了17秒多的計算,雖然這對于用戶來說時漫長的等待,但是考慮到安全性,還是舍棄了素數(shù)表和密鑰庫的方案,而使用大素數(shù)隨機生成,以獲得更高的安全性。也就是說對于長密鑰來說,RSA隨機生成密鑰消耗時間的可能范圍較大。表31 RSA加密模數(shù)n與密鑰生成耗時的關(guān)系觀察表31上的統(tǒng)計數(shù)據(jù),很容易發(fā)現(xiàn)隨著加密位數(shù)的增加,密鑰生成需要的時間顯著增加。測試PC配置為CPU ,下文測試中,未說明PC配置的也都在同一PC完成,不再重復(fù)。1. 測試加密使用的n的位數(shù)對耗時的影響即 在固定A、NP、SS等變量的情況下,改變加密位數(shù)n,測試密鑰生成的時間消耗情況。其中最具影響力的因素顯然是RSA加密需要的n的位數(shù)。 測試數(shù)據(jù)與分析改進 密鑰生成測試生成密鑰運算最費時的工作是尋找素數(shù)。API 函數(shù)QueryPerformanceCounter和QueryPerformanceFrequency是靠查詢CPU的高精度計時器來計時的,所以可以輕松的精確到毫秒級計時。3 軟件整體測試與分析改進 編寫測試各項性能需要的精確計時類,無法勝任軟件性能測試的工作,這里使用Windows API 函數(shù)QueryPerformanceCounter和QueryPerformanceFrequency進行精確計時。另外,DLL組件可以自己在全局函數(shù)中實現(xiàn)一些其他功能,作為對核心類庫功能的補充。在關(guān)閉上層引用程序以前,應(yīng)執(zhí)行int finish_RSA_san()來釋放WRSA,該函數(shù)執(zhí)行delete WRSA的操作。 封裝C++核心類庫的DLL組件在Visual Studio當(dāng)前的解決方案中以VC++創(chuàng)建一個win32dll工程,將測試好的實現(xiàn)RSA加密算法的C++核心類庫中的所有文件加入到此工程下,新建一對cpp和h文件,把可能用到的功能全部規(guī)劃為新文件中的全局函數(shù),并以C接口導(dǎo)出,即__declspec(dllexport)。圖216 C++核心功能類圖另外需要說明的是,程序中有幾個不屬于任何類的全局函數(shù),比如應(yīng)用輾轉(zhuǎn)相除法求最大公約數(shù)的函數(shù)gcd、解同余方程的函數(shù)modinv等。class Prime_factory_san素數(shù)工廠,尋找大素數(shù)的類。class vlong以vlong_value為基礎(chǔ)(將一個vlong_value指針作成員),重載運算符。表21 RSA加密算法的C++類庫中的類class flex_unit大數(shù)運算和存儲最基本的類,主要實現(xiàn)超大整數(shù)的存儲和索引管理。}6. 核心類庫綜述綜上幾小節(jié)所述,實現(xiàn)RSA加密算法的C++核心類庫由六個類組成,類名和對應(yīng)的功能描述總結(jié)如表21所示。 m=candp(c,d,n)。 return。 t = (p 1) * (q 1)。 e = StrToInt(Edit3Text)。 p = StrToInt(Edit1Text)。 Edit6Text = IntToStr(c)。 } m = StrToInt(Edit5Text)。 if(e1||et||fun(e,t)) { ApplicationMessageBox(公匙輸入錯誤!,提示,MB_ICONASTERISK)。 n = p * q。 q = StrToInt(Edit2Text)。}②加密過程:相關(guān)代碼:void __fastcall TForm1::Button1Click(TObject *Sender){ int p,q,e,d,m,n,t,c,r。 while( ((e*d)%t) !=1 ) d++。 return。 t = (p 1) * (q 1)。 e = StrToInt(Edit3Text)。 p = StrToInt(Edit1Text)。因為是對文件加密的軟件,需要加密的數(shù)據(jù)通常并不止幾字節(jié),本軟件默認的分塊大小是1字節(jié),即逐個字節(jié)作為參數(shù),調(diào)用C++核心模塊中的方法。需要加密和解密的數(shù)據(jù)也是通過字符串參數(shù)置入的。所以,需要實現(xiàn)一系列的編碼轉(zhuǎn)換函數(shù),比如將unsigned指針指向的一段空間里保存的一個大數(shù),表示成十六進制形式的字符串文本。之后可以直接使用類的其他成員進行RSA加解密操作。為了方便閱讀,整個類的源程序中,所使用的變量字母均和RSA算法協(xié)議中一致。對應(yīng)前面的敘述,參數(shù)a對應(yīng)A,參數(shù)m對應(yīng)M,函數(shù)返回值即為B的最小值。a, const vlong amp。y=2即為所求
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1