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

正文內(nèi)容

rsa算法論文——青島大學(xué)-展示頁(yè)

2025-07-07 08:17本頁(yè)面
  

【正文】 約定好的密碼,這樣以來(lái)交流起來(lái)不夠方便,因?yàn)閷?duì)于張三,要自己維護(hù)太多的密鑰。如果采用對(duì)稱(chēng)密鑰加密,張三和李四提前約好一個(gè)密碼就可以。在某些情況下,使用對(duì)稱(chēng)密鑰加密文件,交流使用不夠方便。②如果借助功能強(qiáng)大的大型多用戶(hù)數(shù)據(jù)保護(hù)程序維護(hù)幾個(gè)小型文件,顯得十分煩瑣,好比殺雞用牛刀??尚械姆椒ㄎ幢厥潜匾模拘」?jié)討論何種文件適合用非對(duì)稱(chēng)密鑰加密,即RSA加密文件的意義所在。 文件加密使用RSA的意義,小型文件加密可以使用RSA。通常記錄如銀行帳號(hào)密碼等重要數(shù)據(jù)的文本文件大小不足百字節(jié),加密只需要數(shù)秒鐘。本文的第3章將根據(jù)實(shí)際調(diào)試好的軟件,測(cè)試給出具體的時(shí)間消耗數(shù)據(jù)。所以,要在普通PC用幾百位以上的長(zhǎng)密鑰RSA加密文件,文件不能過(guò)大,一般可以接受的上限是幾KB。當(dāng)然,如果文件更大,加密就顯得十分漫長(zhǎng)了。對(duì)于較大的文件,如果分成與數(shù)字簽名同樣大小的段(這里假設(shè)數(shù)字簽名較短,不分段一次計(jì)算加密完成),分開(kāi)的各段逐一進(jìn)行加密運(yùn)算,那所需要的時(shí)間也只是按文件大小線性的增長(zhǎng)。這個(gè)時(shí)間并不是非常長(zhǎng)。在一臺(tái)普通配置的PC機(jī)上對(duì)一個(gè)整數(shù)進(jìn)行冪模運(yùn)算,因?yàn)楣_(kāi)密鑰的e通常取的較小,所以指數(shù)取一個(gè)小整數(shù),比如C353,模一個(gè)70字節(jié)長(zhǎng)的整數(shù)(140位十六進(jìn)制,大數(shù)單元以線性組方式實(shí)現(xiàn),對(duì)應(yīng)到RSA算法中,這相當(dāng)于約560bit的n),調(diào)試一個(gè)函數(shù)測(cè)試,按初等數(shù)論中的知識(shí)對(duì)程序進(jìn)行算法優(yōu)化,最終在一臺(tái)配置為AMD Athron2800+,外頻333MHZ,物理內(nèi)存512MB的PC上測(cè)試需要約45毫秒時(shí)間。雖然RSA加密運(yùn)算的速度十分慢,但是在PC性能越來(lái)越好的今天,對(duì)于幾千字節(jié)的數(shù)據(jù)進(jìn)行一次幾百位密鑰的RSA加密,所消耗的時(shí)間應(yīng)該是可以接受的。正是因?yàn)檫@樣,把RSA應(yīng)用于普通文件加密的想法一直被忽略。 RSA應(yīng)用于文件加密的分析 文件加密使用RSA的可行性,不難看出RSA當(dāng)今的應(yīng)用多在于數(shù)字簽名和證書(shū)等方面。在上述軟件包的實(shí)現(xiàn)中,集成了應(yīng)用RSA算法的各種數(shù)據(jù)加密規(guī)范(RSA算法應(yīng)用規(guī)范介紹參見(jiàn): ,這些API內(nèi)部支持的算法不僅僅只有RSA,但是RSA是數(shù)字簽名和證書(shū)中最常用的),用戶(hù)程序可以直接使用java標(biāo)準(zhǔn)庫(kù)中提供的API進(jìn)行數(shù)字簽名和證書(shū)的各種操作。 JCA (Java Cryptography Architecture)提供基本的加密框架,如證書(shū)、數(shù)字簽名、報(bào)文摘要和密鑰對(duì)產(chǎn)生器; JCA由幾個(gè)實(shí)現(xiàn)了基本的加密技術(shù)功能的類(lèi)和接口組成,此軟件包包含的是一組核心的類(lèi)和接口,Java中數(shù)字簽名的方法就集中在此軟件包中。在當(dāng)今的企業(yè)級(jí)商務(wù)應(yīng)用中,不得不提及使用最廣泛的平臺(tái)j2ee。另外,家喻戶(hù)曉的IE瀏覽器,自然也實(shí)現(xiàn)了SSL協(xié)議,集成了使用RSA技術(shù)的加密功能,結(jié)合MD5和SHA1,主要用于數(shù)字證書(shū)和數(shù)字簽名,對(duì)于習(xí)慣于使用網(wǎng)上購(gòu)物和網(wǎng)上銀行的用戶(hù)來(lái)說(shuō),幾乎天天都在使用RSA技術(shù)。相關(guān)詳細(xì)介紹見(jiàn))。日常應(yīng)用中,有比較著名的工具包Open SSL(SSL,Security Socket Layer,是一個(gè)安全傳輸協(xié)議,在Internet上進(jìn)行數(shù)據(jù)保護(hù)和身份確認(rèn)。RSA在軟件方面的應(yīng)用,主要集中在Internet上。RSA作為最重要的公開(kāi)密鑰算法,在各領(lǐng)域的應(yīng)用數(shù)不勝數(shù)。第1章 RSA應(yīng)用現(xiàn)狀及應(yīng)用于文件加密的分析 RSA算法介紹與應(yīng)用現(xiàn)狀RSA算法可以簡(jiǎn)單敘述如下:密鑰生成取素?cái)?shù)p,q,令n=pq.取與(p1)(q1)互素的整數(shù)e,由方程de=1 (mod (p1)(q1))解出d,二元組(e,n)作為公開(kāi)密鑰,二元組(d,n)作為私有密鑰.加密解密b=ae mod n,c=bd mod n.附錄中給出了證明a=c (mod n).(具體的RSA算法協(xié)議見(jiàn),提及的算法中的字母與協(xié)議文檔中的一致,不再另做解釋)RSA公開(kāi)密鑰加密算法自20世紀(jì)70年代提出以來(lái),已經(jīng)得到了廣泛認(rèn)可和應(yīng)用。將任意文件加密成文本的解決方案,使其使用更加靈活。網(wǎng)上交易加密連接、網(wǎng)上銀行身份驗(yàn)證、各種信用卡使用的數(shù)字證書(shū)、智能移動(dòng)電話和存儲(chǔ)卡的驗(yàn)證功能芯片等,大多數(shù)使用RSA技術(shù)。隨著越來(lái)越多的商業(yè)應(yīng)用和標(biāo)準(zhǔn)化工作,RSA已經(jīng)成為最具代表性的公鑰加密技術(shù)。算法的名字以發(fā)明者的姓氏首字母命名:Ron Rivest, Adi Shamir 和Leonard Adleman。青島大學(xué)本科生畢業(yè)論文(設(shè)計(jì))目 錄前 言 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è)計(jì)與實(shí)現(xiàn) 6 需求分析與總體設(shè)計(jì) 6 功能分析 6 工程方案選擇 7 各部分的設(shè)計(jì)與開(kāi)發(fā) 8 實(shí)現(xiàn)RSA加密算法的C++核心類(lèi)庫(kù) 8 封裝C++核心類(lèi)庫(kù)的DLL組件 18 19第3章 軟件整體測(cè)試與分析改進(jìn) 20 編寫(xiě)測(cè)試各項(xiàng)性能需要的精確計(jì)時(shí)類(lèi) 20 測(cè)試數(shù)據(jù)與分析改進(jìn) 20 密鑰生成測(cè)試 20 數(shù)據(jù)輸入輸出測(cè)試 23 加密解密測(cè)試 23 性能分析與改進(jìn)優(yōu)化 26 使用中國(guó)余數(shù)定理 27第4章 可移植模塊的簡(jiǎn)要說(shuō)明與開(kāi)發(fā)前景 29結(jié)束語(yǔ) 30謝 辭 31參考文獻(xiàn) 32附 錄 33前 言RSA公鑰加密算法是第一個(gè)既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也十分流行。雖然自1978年提出以來(lái),RSA的安全性一直未能得到理論上的證明,但它經(jīng)歷了各種攻擊,至今(2006年)未被完全攻破。VISA、MasterCard、IBM、Microsoft等公司協(xié)力制定的安全電子交易標(biāo)準(zhǔn)(Secure Electronic Transactions,SET)就采用了標(biāo)準(zhǔn)RSA算法,這使得RSA在我們的生活中幾乎無(wú)處不在。當(dāng)今公鑰加密更廣泛應(yīng)用于互聯(lián)網(wǎng)身份認(rèn)證,本課題將公鑰加密算法RSA應(yīng)用于小型文件加密。整個(gè)工程的分層設(shè)計(jì),給引用移植和后續(xù)開(kāi)發(fā)帶來(lái)便利。發(fā)展至今,電子安全領(lǐng)域的各方面已經(jīng)形成了較為完備的國(guó)際規(guī)范。RSA在硬件方面,以技術(shù)成熟的IC應(yīng)用于各種消費(fèi)類(lèi)電子產(chǎn)品。加密連接、數(shù)字簽名和數(shù)字證書(shū)的核心算法廣泛使用RSA。Open SSL是一個(gè)開(kāi)放源代碼的實(shí)現(xiàn)了SSL及相關(guān)加密技術(shù)的軟件包,由加拿大的Eric Yang等發(fā)起編寫(xiě)的。Open SSL應(yīng)用RSA實(shí)現(xiàn)簽名和密鑰交換,已經(jīng)在各種操作系統(tǒng)得到非常廣泛的應(yīng)用。RSA更出現(xiàn)在要求高度安全穩(wěn)定的企業(yè)級(jí)商務(wù)應(yīng)用中。事實(shí)上,在j2se的標(biāo)準(zhǔn)庫(kù)中,就為安全和加密服務(wù)提供了兩組API:JCA和JCE。JCE(Java Cryptography Extension) 在JCA的基礎(chǔ)上作了擴(kuò)展,JCE也是由幾個(gè)軟件包組成,此軟件包提供了JCE加密技術(shù)操作API。單機(jī)應(yīng)用程序使用RSA加密尚比較少見(jiàn),例如使用RSA加密任意一個(gè)文件。之所以只應(yīng)用于這些短小數(shù)據(jù)的加密解密,是因?yàn)镽SA算法加密極慢,速度是DES對(duì)稱(chēng)密鑰加密速度的千分之一左右。通常文件被想象成大數(shù)據(jù)塊,但是實(shí)際上在日常應(yīng)用中,有些極其重要的文本資料是并不太大的,比如因擔(dān)心遺忘而用普通文本記錄的銀行帳號(hào)和密碼、不應(yīng)被陌生人知道的重要電話號(hào)碼、幾千字節(jié)大的重要小圖片等。下面結(jié)合大數(shù)運(yùn)算程序的調(diào)試,從理論上簡(jiǎn)單的分析消耗時(shí)間。如果按這種速度,逐字節(jié)對(duì)1KB的數(shù)據(jù)進(jìn)行同樣的運(yùn)算,所消耗的時(shí)間理論上為45毫秒的1024倍即約45秒。其實(shí)從一個(gè)簡(jiǎn)單的角度來(lái)說(shuō),既然RSA用于數(shù)字簽名可行,那就完全可以用于同樣大小的普通文件。通常數(shù)字簽名為幾十字節(jié),加密運(yùn)算并不需要很長(zhǎng)的等待,這就說(shuō)明對(duì)于幾百字節(jié)或一兩K字節(jié)大小的文件來(lái)說(shuō),如果進(jìn)行RSA加密,并不會(huì)是非常漫長(zhǎng)的工作。比如按前面敘述的45毫秒大數(shù)運(yùn)算程序推理,加密1M字節(jié)大小的文件需要約1天的時(shí)間。如果要在較短時(shí)間內(nèi)加密大文件,需要縮短密鑰長(zhǎng)度以減小運(yùn)算量,這將帶來(lái)安全性隱患。例如,在一臺(tái)配置為AMD Athron2800+,外頻333MHZ,物理內(nèi)存512MB的PC上測(cè)試實(shí)現(xiàn)的軟件,以560bit的n逐字節(jié)加密一個(gè)1KB大小的文件需要55秒。所以對(duì)于小型文件,進(jìn)行較長(zhǎng)密鑰的RSA加密是完全可行的。比如,因擔(dān)心遺忘而用普通文本記錄的銀行帳號(hào)和密碼、不應(yīng)被陌生人知道的重要電話號(hào)碼、幾千字節(jié)大的重要小圖片等。對(duì)于前面敘述的帶有重要信息的小型文本和二進(jìn)制數(shù)據(jù)的維護(hù),①如果不加密,將無(wú)法放心的保存在計(jì)算機(jī)上,尤其是連網(wǎng)的或機(jī)房里的公共計(jì)算機(jī)。③如果采用對(duì)稱(chēng)密鑰加密,即加密解密的密鑰相同,只適合部分情況。比如,張三由于某種原因,需要將自己的某個(gè)文件在公共計(jì)算機(jī)上留給李四,而不希望別人看到內(nèi)容。但是如果張三想要在同一臺(tái)公共計(jì)算機(jī)上再留一個(gè)秘密文件給王五,而不希望別人看到,就要和王五另外約定一個(gè)密碼。非對(duì)稱(chēng)密鑰(公開(kāi)密鑰方式)恰好解決這樣的問(wèn)題。張三要留給李四的文件,就用李四的公開(kāi)密鑰加密,要留給王五的文件,就用王五的公開(kāi)密鑰加密。顯然,非對(duì)稱(chēng)密鑰體制更適合多用戶(hù)交流,而將這種加密方式直接應(yīng)用于文件加密,使我們?cè)诠_(kāi)場(chǎng)合的交流更加靈活方便。例如發(fā)送一個(gè)銀行帳號(hào)和密碼給某人。①如果用公眾論壇直接留言給指定用戶(hù),論壇管理員和服務(wù)器管理員通常有方法看到數(shù)據(jù)。問(wèn)題的關(guān)鍵在于我們所有的數(shù)據(jù)包括密鑰保存在服務(wù)器之上。RSA文件加密可以靈活的解決這些問(wèn)題。我們可以將自己的私有密鑰通過(guò)DES加密后保存在自己的移動(dòng)磁盤(pán)上,使用的時(shí)候只要將其解密讀取即可,用完后立即從當(dāng)前操作環(huán)境清除。所以,對(duì)于使用小型文件進(jìn)行數(shù)據(jù)交換的情況,更好的方案是通過(guò)一個(gè)小型應(yīng)用程序?qū)@些文件進(jìn)行非對(duì)稱(chēng)密鑰加密。綜上所述,使用前面敘述的方式加密文件有兩點(diǎn)重要意義:①應(yīng)用非對(duì)稱(chēng)密鑰加密任意文件,使非對(duì)稱(chēng)密鑰的應(yīng)用不僅僅局限于互聯(lián)網(wǎng)絡(luò)。第2章 RSA文件加密軟件的設(shè)計(jì)與實(shí)現(xiàn) 需求分析與總體設(shè)計(jì) 功能分析,我們可以將對(duì)軟件的要求總結(jié)如下:① 可以按要求的位數(shù)生成非對(duì)稱(chēng)密鑰。③ 可以用指定密鑰以RSA算法加密任意一個(gè)文件,加密生成的數(shù)據(jù)為純文本。⑤ 提示信息完整、操作舒適、圖形界面雅觀按上述描述,給出Use Case和Statechart如圖21。 工程方案選擇結(jié)合現(xiàn)有的常見(jiàn)開(kāi)發(fā)模式綜合分析,有多種實(shí)現(xiàn)方案,下面陳述其中幾種,并分析選擇一種解決方案,并給出工程框架。在j2se標(biāo)準(zhǔn)庫(kù)中。如果不考慮非PC設(shè)備和機(jī)器效率等問(wèn)題,java平臺(tái)幾乎是最佳解決方案。2. 與使用java平臺(tái)完全類(lèi)似,不需要大量編碼實(shí)現(xiàn),另外由于Visual Studio的強(qiáng)大便利,這種規(guī)模的工程可以十分迅速的完成。3. 整個(gè)工程使用Windows本地化程序?qū)崿F(xiàn)在不應(yīng)用Windows或第三方現(xiàn)成組件的情況下,需從RSA算法出發(fā)編碼實(shí)現(xiàn)。這種工程幾乎是為Windows量身訂做,執(zhí)行效率最好。通常解決本地化代碼的移植問(wèn)題,都是使用C++標(biāo)準(zhǔn)庫(kù),即功能盡量多的由C++標(biāo)準(zhǔn)庫(kù)完成,這樣在移植的時(shí)候,只需要重新編寫(xiě)操作系統(tǒng)相關(guān)的代碼即可。4. 考慮可能的復(fù)用,針對(duì)具體情況分層開(kāi)發(fā)實(shí)現(xiàn)綜合考慮復(fù)用性、可維護(hù)性和執(zhí)行效率,較妥當(dāng)?shù)姆椒ㄊ欠謱釉O(shè)計(jì)。其他各功能如文件操作、數(shù)據(jù)編碼轉(zhuǎn)換和圖形界面等,由托管代碼借助虛擬機(jī)平臺(tái)標(biāo)準(zhǔn)庫(kù)的功能快速開(kāi)發(fā)實(shí)現(xiàn)(論述,選用java由JNI或其他方式調(diào)用本地組件,設(shè)計(jì)模式上是完全類(lèi)似的)。但是每一層都需要依賴(lài)底層的所有組件。圖22 綜合考慮復(fù)用性、可維護(hù)性和執(zhí)行效率的分層設(shè)計(jì)選用第四種設(shè)計(jì)方案,上層使用C,底層算法使用C++,可以由一個(gè)Visual Studio解決方案管理,給調(diào)試帶來(lái)極大的方便??紤]到工作量,本軟件加解密數(shù)據(jù)沒(méi)有嚴(yán)格遵從RSA標(biāo)準(zhǔn)PKCS 1,而是在滿(mǎn)足設(shè)計(jì)要求的前提下,以一種盡可能簡(jiǎn)單的方式實(shí)現(xiàn)加密和解密。當(dāng)今開(kāi)源的大數(shù)運(yùn)算C++類(lèi)有很多,多用于數(shù)學(xué)分析、天文計(jì)算等,本文選用了一個(gè)流行的大數(shù)類(lèi)型,并針對(duì)RSA算法和本項(xiàng)目的具體需要對(duì)其進(jìn)行了擴(kuò)充和改進(jìn)。最先完成的功能是大數(shù)的存儲(chǔ),存儲(chǔ)功能由flex_unit類(lèi)提供。類(lèi)flex_unit中,用一個(gè)無(wú)符號(hào)整數(shù)指針unsigned * a指向一塊內(nèi)存空間的首地址,這塊內(nèi)存空間用來(lái)存儲(chǔ)一個(gè)大數(shù),所以可以說(shuō),大數(shù)是被存儲(chǔ)在一個(gè)以u(píng)nsigned為單元的線性組中。結(jié)合指針a,有兩個(gè)重要的無(wú)符號(hào)整數(shù)來(lái)控制存儲(chǔ),unsigned z和unsigned n,z是被分配空間的單元數(shù),隨數(shù)字變大不斷增大,不會(huì)自己緊縮,而n是當(dāng)前存儲(chǔ)的大數(shù)所占的單元數(shù),組成一個(gè)大數(shù)的各unsigned單元的存入和讀出由set、get方法完成,變量n是只讀的。圖23形象的說(shuō)明了大數(shù)存儲(chǔ)類(lèi)flex_unit對(duì)大數(shù)的管理。當(dāng)大數(shù)被強(qiáng)制轉(zhuǎn)換為unsigned時(shí),將取其最低四字節(jié)的值。而乘除法和取余也都是按照豎式運(yùn)算的原理實(shí)現(xiàn),并進(jìn)行了必要的優(yōu)化。這樣,當(dāng)我們操作vlong大數(shù)對(duì)象的時(shí)候,就可以像使用一個(gè)簡(jiǎn)單類(lèi)型一樣使用各種運(yùn)算符號(hào)了。2. 大數(shù)冪模與乘模運(yùn)算?Montgomery冪模算法在實(shí)現(xiàn)了vlong類(lèi)型后,大數(shù)的存儲(chǔ)和四則運(yùn)算的功能都完成了。所以寫(xiě)一個(gè)vlong的友元,完成冪模運(yùn)算功能。經(jīng)查閱相關(guān)數(shù)學(xué)著作,發(fā)現(xiàn)通常都是依據(jù)乘模的性質(zhì),先將冪模運(yùn)算化簡(jiǎn)為乘模運(yùn)算。歸納分析以上方法,對(duì)于任意指數(shù)E,可采用如圖24的算法流程計(jì)算 。P=C mod nE0?E為奇數(shù)?
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1