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

正文內(nèi)容

rsa公鑰密碼算法的一種快速實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2024-09-02 05:59 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 涉及對(duì)文件內(nèi)容進(jìn)行讀寫(xiě)操作,這里使用到了 CFile 類(lèi)。需要加密和解密的數(shù)據(jù)是通過(guò)字符串參數(shù)置入的。由于字符串的結(jié)尾字符“\0”實(shí)際上也可能是需要加密的數(shù)據(jù),所以置入的串長(zhǎng)度并不能以“\0”來(lái)決定,程序里引入一個(gè) unsigned 類(lèi)型的參數(shù)來(lái)決定置入的串長(zhǎng)度,通過(guò) Cfile 類(lèi)中的 Getlength()函數(shù)獲得文件中字符串的長(zhǎng)度,這樣就解決了加密連\0 數(shù)據(jù)時(shí)候被截?cái)嗟膯?wèn)題。加密解密流程均為標(biāo)準(zhǔn) RSA 算法,具體過(guò)程和使用方法參見(jiàn)源程序和接口文檔。⑺. 核心類(lèi)庫(kù)綜述綜上幾小節(jié)所述,實(shí)現(xiàn) RSA 加密算法的 C++核心類(lèi)庫(kù)由兩個(gè)類(lèi)組成,類(lèi)名和對(duì)應(yīng)的功能描述總結(jié)如表 21 和圖 22 所示。表 21:RSA 加密算法的 C++類(lèi)庫(kù)中的類(lèi)CBigInt 主要包含大數(shù)四則運(yùn)算,素?cái)?shù)生成,檢測(cè),密鑰生成,存儲(chǔ),RSA 核心算法等。CDemoDlg 主要包含界面功能的實(shí)現(xiàn),按鈕觸發(fā)時(shí)間等。圖 22:主要函數(shù)成員 編寫(xiě)測(cè)試各項(xiàng)性能需要的計(jì)時(shí)程序由于對(duì)幾個(gè)字符的字符串進(jìn)行 RSA 加密,所用時(shí)間只需 10 幾毫秒,一般的程序計(jì)時(shí)函數(shù)無(wú)法達(dá)到要求測(cè)試結(jié)果很可能是 0,于是在這里定義了 2 個(gè) long型變量 t1,t2 來(lái)分別存儲(chǔ)加密函數(shù)運(yùn)行前后 GetTickCount()函數(shù)獲得的系統(tǒng)時(shí)間,然后將兩個(gè)值相減獲得消耗時(shí)間,這樣做還會(huì)有較大誤差,于是再次進(jìn)行了改進(jìn),通過(guò)一個(gè)簡(jiǎn)單的 for 循環(huán)讓程序運(yùn)行 1000 次 ,然后將 t2t1 的值除1000,以獲得較為精確的時(shí)間。附錄中給出了這段操作的源代碼。 測(cè)試數(shù)據(jù)與分析改進(jìn) 密鑰生成測(cè)試生成密鑰運(yùn)算最費(fèi)時(shí)的工作是尋找素?cái)?shù)。如 小節(jié)所敘述,尋找素?cái)?shù)是一項(xiàng)頗為復(fù)雜的工作,其速度可能受以下影響:RSA 加密需要的 n 的位數(shù)(尋找素?cái)?shù)的整數(shù)起點(diǎn)大小 bits) ,素?cái)?shù)通過(guò)小素?cái)?shù)表進(jìn)行檢查,通過(guò)拉賓米勒算法測(cè)試素?cái)?shù)。其中最具影響力的因素顯然是 RSA 加密需要的 n 的位數(shù)。以下對(duì) N 的位數(shù)對(duì)生成密鑰時(shí)間影響進(jìn)行測(cè)試,暫且忽略操作系統(tǒng)調(diào)度對(duì)測(cè)試的影響。測(cè)試 PC 配置為 CPU 奔騰 4 1024MDDR/MSI6398 主板 845 UltraAD 芯片組,下文測(cè)試中,未說(shuō)明 PC 配置的也都在同一 PC 完成,不再重復(fù)。密鑰生成測(cè)試數(shù)據(jù)見(jiàn)表 31。表 31:RSA 加密模數(shù) n 與密鑰生成耗時(shí)的關(guān)系加密位數(shù) n (bit)第一次 (毫秒)第二次(毫秒)第三次(毫秒)第四次(毫秒)第五次(毫秒)平均值(毫秒)128 22 20 21 21 21 21256 126 125 118 131 130 126512 844 875 812 935 770 8471024 7030 3205 4785 3926 6399 5069(紅色為行中最大,蘭色為行中最?。┯^察表上的統(tǒng)計(jì)數(shù)據(jù),很容易發(fā)現(xiàn)隨著加密位數(shù)的增加,密鑰生成需要的時(shí)間顯著增加。在測(cè)試范圍內(nèi),隨著加密位數(shù)增大,每一行中的最大最小值差距也呈粗略的增大趨勢(shì)。也就是說(shuō)對(duì)于長(zhǎng)密鑰來(lái)說(shuō),RSA 隨機(jī)生成密鑰消耗時(shí)間的可能范圍較大。這是因?yàn)閷?duì)于大整數(shù)來(lái)說(shuō),可能出現(xiàn)在較長(zhǎng)一段區(qū)間中沒(méi)有素?cái)?shù)的情況。此表僅能從實(shí)驗(yàn)的角度直觀理解,具體到一次密鑰生成的運(yùn)算,所需要的時(shí)間是很不確定的,比如,一次 512 位的密鑰生成,需要的時(shí)間完全可能比一次 256 位的密鑰生成時(shí)間短,由于素?cái)?shù)分布規(guī)律非常奧妙,加上測(cè)試運(yùn)算需要的時(shí)間頗長(zhǎng),這里很難給出對(duì)于一個(gè)具體位數(shù)的密鑰生成所需時(shí)間的統(tǒng)計(jì)模型。 加解密測(cè)試加密解密測(cè)試是本工程的核心,重在反映 RSA 算法對(duì)小型文本文件加密的可行性,以及蒙哥馬利算法對(duì) RSA 算法的提速效果。這里給出幾組不同角度進(jìn)行測(cè)試的數(shù)據(jù)。⑴.用相同的密鑰對(duì)不同長(zhǎng)度的文件公鑰加密,私鑰解密,各自消耗的時(shí)間與待加密字符串大小的關(guān)系隨即生成兩組密鑰,一組 n 長(zhǎng) 512bit,一組 n 長(zhǎng) 1024bit。密鑰具體數(shù)據(jù)見(jiàn)附錄。分別對(duì)一組不同大小的文件進(jìn)行公鑰加密。統(tǒng)計(jì)消耗時(shí)間情況如表 32:表 32:加密消耗時(shí)間測(cè)試n 位數(shù) 文件大小20Byte(毫秒)40Byte 60Byte 80Byte 100Byte512bit 公鑰加密119 123 125 128 138512bit 私鑰解密330 453 473 503 5081024bit 公鑰加密442 464 469 473 4791024bit 私鑰解密681 721 721 741 743從表 3 可以看出,使用同一公開(kāi)密鑰加密不同大小的文件,消耗時(shí)間隨著文件大小的增加線(xiàn)性的增加,和 小節(jié)分析的完全一致。對(duì)于較大的文件,加密位數(shù)對(duì)時(shí)間的影響十分明顯。對(duì)于 100 字節(jié)的文件來(lái)說(shuō),1024bit 的公鑰加密比 512bit 的耗時(shí)多 倍左右;1024bit 的私鑰解密比 512bit 的耗時(shí)多 倍以上。對(duì)于一定的加密位數(shù)來(lái)說(shuō),私鑰解密所需要的時(shí)間比公鑰加密需要的時(shí)間長(zhǎng)。對(duì)于一定大小的文件,使用 512bit 的密鑰,私有密鑰解密需要的時(shí)間是公開(kāi)密鑰加密需要時(shí)間的 3 倍左右;而如果使用 1024bit 的密鑰,私有密鑰解密需要的時(shí)間是公開(kāi)密鑰加密需要時(shí)間的 倍以上??梢?jiàn),本軟件密鑰長(zhǎng)度越長(zhǎng),私有密鑰解密與公開(kāi)密鑰加密的耗時(shí)比越大,這和其他軟件是一致的。因?yàn)楦鶕?jù) PCKS 1 的 RSA 的應(yīng)用建議,e 是比較短的,而 d 和 n 的長(zhǎng)度差不多,這就使得求與 d、n 有關(guān)的冪模運(yùn)算量比與 e、n 有關(guān)的冪模運(yùn)算量大很多,而且隨著 n 的增加,兩組冪模運(yùn)算的運(yùn)算量差距也迅速加大。⑵.利用蒙哥馬利算法進(jìn)行冪模運(yùn)算改進(jìn),加密時(shí)間與改進(jìn)前 RSA 加密時(shí)間的對(duì)比測(cè)試蒙哥馬利冪模運(yùn)算是對(duì) RSA 算法優(yōu)化的最常見(jiàn)手段,是提高加密速度,實(shí)現(xiàn)相對(duì)快速的 RSA 加密的關(guān)鍵?,F(xiàn)測(cè)試蒙哥馬利算法改進(jìn)過(guò)的加密算法與普通RSA 加密算法,使用相同密鑰對(duì),對(duì)相同文件加密所用時(shí)間。如表 33:表 33:蒙哥馬利改進(jìn)測(cè)試文件大?。˙) 20 40 60 80 100Montgomery所用時(shí)間(毫秒)35 35 34 37 42512 位密鑰普通 RSA 所用時(shí)間(毫秒)119 123 128 133 133Montgomery所用時(shí)間(毫秒)70 73 89 101 1051024 為密鑰普通 RSA 所用時(shí)間(毫秒)442 461 463 469 467通過(guò)上表可以得出,使用蒙哥馬利冪模運(yùn)算確實(shí)一定程度上提高了 RSA 加密速度,使用 512 位密鑰加密文件蒙哥馬利算法改進(jìn)后的加密所需時(shí)間為為改進(jìn)的算法所用時(shí)間的三分之一左右,而 1024 位密鑰加密文件時(shí),僅為四分之一左右,蒙哥馬利冪模運(yùn)算大大提高了加密效率,當(dāng)文件大小更大,密鑰長(zhǎng)度更長(zhǎng)的情況下,蒙哥馬利冪模運(yùn)算的優(yōu)勢(shì)將更能體現(xiàn)。 性能分析與改進(jìn)優(yōu)化經(jīng)過(guò)一系列的 RSA 密鑰生成、文件輸入輸出和蒙哥馬利加密解密測(cè)試,做簡(jiǎn)要的性能分析如下。① 軟件消耗時(shí)間的運(yùn)算,大部分集中在 C++核心類(lèi)庫(kù),即 RSA 相關(guān)的各種運(yùn)算。其中,冪模運(yùn)算和尋找素?cái)?shù)對(duì)時(shí)間的消耗最大,在核心優(yōu)化時(shí)應(yīng)優(yōu)先考慮。② 文件輸入輸出消耗時(shí)間其次,因?yàn)榇疟P(pán)讀寫(xiě)速度要遠(yuǎn)遠(yuǎn)低于內(nèi)存讀寫(xiě)速度。所以,應(yīng)該將頻繁的讀寫(xiě)操作盡量集中到內(nèi)存,然后一次性寫(xiě)入磁盤(pán)。③蒙哥馬利算法對(duì) RSA 加密效率的提高非常明顯,對(duì)于優(yōu)化冪模運(yùn)算起到了非常重要的工作。針對(duì)以上三點(diǎn),軟件應(yīng)進(jìn)行一系列改進(jìn)和優(yōu)化。主要有以下幾方面。① 在要對(duì)文件進(jìn)行加密解密的時(shí)候,先將文件按一定的數(shù)據(jù)結(jié)構(gòu)讀入內(nèi)存,然后進(jìn)行加密或解密操作。運(yùn)算數(shù)據(jù)都讀取自?xún)?nèi)存。② 在對(duì)加密或解密完成的數(shù)據(jù)進(jìn)行寫(xiě)出的時(shí)候,都是將其直接寫(xiě)到指定好的文件,即直接寫(xiě)入磁盤(pán)。這是因?yàn)?,考慮到中途可能因?yàn)橐馔鈹嚯姷仍蛞鸩僮髦袛?,為了保護(hù)已經(jīng)花費(fèi)時(shí)間運(yùn)算完成的數(shù)據(jù),將其直接寫(xiě)入磁盤(pán)。③ 在安全性上做進(jìn)一步優(yōu)化,例如在尋找素?cái)?shù)時(shí),素?cái)?shù)測(cè)試使用更安全的算法,例如,本系統(tǒng)采用的是查已經(jīng)計(jì)算好的素?cái)?shù)表的方式得到準(zhǔn)確的素?cái)?shù),但是素?cái)?shù)表的方式給 RSA 的安全性帶來(lái)隱患,因?yàn)楣粽呷绻玫搅嗣荑€生成時(shí)所使用的素?cái)?shù)表,攻破 RSA 加密的難度將會(huì)大大降低??梢钥紤]使用幾組小素?cái)?shù),這些小素?cái)?shù)用來(lái)當(dāng)作因子,他們的倍數(shù)將被從大素?cái)?shù)搜索范圍內(nèi)剔除。④ 對(duì) C++核心類(lèi)庫(kù)進(jìn)行重點(diǎn)優(yōu)化,使其運(yùn)算效率盡可能提高。其中包括對(duì)各類(lèi)之間的組織細(xì)節(jié)、各程序模塊的具體編寫(xiě)等,進(jìn)行全面細(xì)致的檢查和修改,例如將大數(shù)據(jù)類(lèi)型以對(duì)象指針傳遞而不拷貝,將簡(jiǎn)單的 for 循環(huán)展開(kāi)等。由于開(kāi)發(fā)時(shí)間倉(cāng)促等因素,在書(shū)寫(xiě)本文時(shí),軟件并未完成全面細(xì)致的優(yōu)化。結(jié)束語(yǔ)RSA 應(yīng)用于文件加密適合交流管理小型文件,將任意文件以非對(duì)稱(chēng)密鑰加密成文本可以對(duì)其更方便的交流和管理,有廣闊的開(kāi)發(fā)前景。而要實(shí)現(xiàn)較為快速的 RSA 文件加密系統(tǒng),對(duì)冪模運(yùn)算的優(yōu)化是核心,只要充分利用蒙哥馬利冪模運(yùn)算原理,對(duì) RSA 加密算法進(jìn)行適當(dāng)?shù)母倪M(jìn),RSA 文件加密將通過(guò)瓶頸,在小型文件加密上有著巨大的發(fā)展空間。參考文獻(xiàn)[1]羅斌等. Visual c++ 編程技巧精選 500 例[M] .北京:中國(guó)水利水電出版社,2022 年 1月,193205[2]張耀仁. C++程序設(shè)計(jì)徹底研究[M].北京:中國(guó)鐵道出版社 2022 年 7 月 280284[3]鄭莉,董淵. C++語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社第 2 版 2022 年 7 月[4]丁有和 鄭進(jìn) 周怡軍. Visual c++:電子工業(yè)出版社 2022 年 1 月[5]于秋生,++Builder 6 實(shí)用編程 100 例[M].北京:中國(guó)鐵道出版社 2022 年 7月[6]王許書(shū),王新輝,夏宏. Montgomery 方法及其在偽隨機(jī)數(shù)發(fā)生器中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件 2022 年 6 月 2324[7]陳逢林, 算法的改進(jìn)及其在 RSA 中的運(yùn)用[J].計(jì)算機(jī)應(yīng)用與軟件 2022 年 4 月 2526[8]CFile 操作詳解[EB]。 。致 謝本論文的工作是 2022 年 2 月至 2022 年 6 月在成都信息工程學(xué)院網(wǎng)絡(luò)工程 系完成的。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。除非另有說(shuō)明,本文的工作是原始性工作。本文是在吳震老師的熱情關(guān)心和指導(dǎo)下完成的,他淵博的知識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對(duì)順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!在論文完成過(guò)程中,本人還得到了各論壇程序愛(ài)好者的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評(píng)審本文的各位專(zhuān)家、老師表示衷心的感謝!作者簡(jiǎn)介:姓 名: 時(shí)超 性別: 男出生年月: 1984 年 9 月 25 日 民族: 漢Email:附錄:long t1=GetTickCount()。for(int j=1。j10。j++){((E,N))。(m_OUT)。}long t2=GetTickCount()。(%d,t2t1)。m_TM+= 毫秒。:讀:char *data。CFile *file。DWORD flen。file = new CFile。fileOpen(m_ED, CFile::shareDenyNone|CFile::modeReadWrite)。//打開(kāi)文件flen = fileGetLength()。data = new char[(int)flen]。 strset(data,0)。//將緩沖區(qū)初始化為全 0fileSeekToBegin()。fileRead(data, flen)。寫(xiě):int len1=()。UpdateData(FALSE)。fileSeekToBegin()。fileWrite(m_OUT, len1)。關(guān)閉文件:()。3. 加密解密測(cè)試時(shí)使用的兩組密鑰512 位:3C54793AA7186DEFFD54A9352E929F5A6A78034F2133D367965467322585D2B2537DED86DAB9A6A0E162A2B80A377CCDE790F221D15C917F9F821BDCBF71D04534F7A974006EA75F1418F77274D0504E2EB9ED95D4BDCEB6DCBA7FDBFC2BB11EC3315F0177DD500463E2F44535324BDF3CC25053E5BF38F74570A9A8A2CBF4A51024 位:B3839FCFB21E7B916B62C20B79075C549BD558465F66C9BC5682DCFDE7818C1504D0D14AECEF1B1254C54CE36D7737EB34248E5F62B0FC4E34DA7C54AAC50CECBC9F3BF5C8C40503E4DD67A6744E0E022B995128D3F8EB9DBCB9E8EF1A5CF48B9D3D601D25850307BFE0AA83E6CDBB4FA765BB0FE7880908A3B48A2956F12FA525DF04DE0A53C7
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1