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

正文內(nèi)容

利用rsa算法實(shí)現(xiàn)數(shù)字簽名畢業(yè)論文(參考版)

2025-07-08 10:29本頁面
  

【正文】 RSA 數(shù)字簽名所需實(shí)現(xiàn)的功能 在本軟件中需要實(shí)現(xiàn)的功能有以下幾個(gè) : ( 1) 生成 RSA密鑰 ( 2) 利用 MD5算法計(jì)算出消息摘要 MD; ( 3) 數(shù)字簽名的實(shí)現(xiàn) ; ( 4) 驗(yàn)證數(shù)字簽。 RSAPKCS1SignatureFormatter: 類創(chuàng)建數(shù)字簽名 。公鑰可以被任何人使用;該密鑰用于加密要發(fā)送到私鑰持有者的數(shù)據(jù)。 ( 2)公鑰加密 公鑰加密使用一個(gè)對未授權(quán)的用戶保密的私鑰和一個(gè)公開的公鑰。所以數(shù)據(jù)的哈希值可以檢驗(yàn)數(shù)據(jù)的完整性。哈希值是一段數(shù)據(jù)唯一且緊湊的數(shù)值表示形式,若散列一段明文,就是更改其中的一個(gè)標(biāo)點(diǎn)符號,隨后的哈希值都將產(chǎn)生不同的值。 類的介紹 常見的加密和編碼算法都已經(jīng)存在 .NET 中得到了實(shí)現(xiàn),為編碼人員提供了極大的便利性,實(shí)現(xiàn)這些算法的命名空間 是 ,它的命名空間提供加密服務(wù),包括安全的數(shù)據(jù)編碼和解碼,以及許多其它的操作,例如散列法,和消息身份驗(yàn)證。 ( 6)靈活性和兼容性 在簡化語法的同時(shí), C并沒有失去靈活性。為了減少開發(fā)中的錯(cuò)誤, C會(huì)幫助開發(fā)者通過更少的代碼完成相同的功能,這不但減輕了編程人員的工作量,同時(shí)更有效地避免了錯(cuò)誤的發(fā)生。 ( 4)完整的安全性與錯(cuò)誤處理 語言的安全性與錯(cuò)誤處理能力,是衡量一種語言是否優(yōu)秀的重 要依據(jù)。程序員們能夠利用他們已有的面向?qū)ο蟮闹R與技巧開發(fā)Web 服務(wù)。 ( 3)與 Web 的緊密結(jié)合 .NET中新的應(yīng)用程序開發(fā)模型意味著越來越多的解決方案需要與 Web 標(biāo)準(zhǔn)河北工程大學(xué)畢業(yè)設(shè)計(jì)論文 24 相統(tǒng)一。 C提供了一個(gè)叫做裝箱 (boxing)與拆箱 (unboxing)的機(jī)制來完成這種操作,而不給使用者帶來麻煩。通過精心地面向?qū)ο笤O(shè)計(jì),從高級商業(yè)對象到系統(tǒng)級應(yīng)用, C建造廣泛組件的絕對選擇。語法中的冗余是 C++中的常見的問題, C對此進(jìn)行了簡化,只保留了常見的形式,而別的冗余形式從它的語法結(jié)構(gòu)中被清除了出去。 C只支持一個(gè)“ .”,對于我們來說,現(xiàn)在需要理解的一切僅僅是名字的嵌套而已。它所帶來的最大的特色是沒有了指針。無論是高級的商業(yè)對象還是系統(tǒng)級的應(yīng)用程序,在使用 C語言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為 XML 網(wǎng)絡(luò)服務(wù),從而使它們可以一定的操作系統(tǒng)上通過網(wǎng)絡(luò)調(diào)用 C。它可是使得程序員能夠快速的編寫基于 .NET 平臺(tái)的應(yīng)用程序。因此,許多程序員在尋求一種新的語言,希望其功能和效率能夠很好的結(jié)合。緩存可以看成是 4 個(gè) 32 比特的寄存器( A, B, C, D)。 步驟 2:附加消息長度值,將用 64 比特表示的初始消息(填充前)的長度(比特?cái)?shù))附加在步驟 1 的結(jié)果后。 MD5 算法以任意長度的消息作為輸入,產(chǎn)生一個(gè) 128 比特消息散列值(或稱消息摘要)作為輸出。如果在以后傳播這個(gè)文件的過程中,無論文件的內(nèi)容發(fā)生了任何形式的改變,只要你對這個(gè)文件重新計(jì)算 MD5 時(shí)就會(huì)發(fā)現(xiàn)信息摘要不相同,由此可以確定你得到的只是一個(gè)不正確的文件。 MD5 算法的 典型應(yīng)用是對一段信息產(chǎn)生信息摘要 ,以防止被篡改。 單向散列函數(shù)的性質(zhì): ( 1)函數(shù) H 適用于任何大小的數(shù)據(jù)分組; ( 2)函數(shù) H 產(chǎn)生一定長度輸出; ( 3)對于任何數(shù)據(jù) M,計(jì)算 H(M)是容易實(shí)現(xiàn)的; ( 4)對于任何給定的散列值 h,要計(jì)算出 M 使 H(M)=h,這在計(jì)算上是不可行的; 河北工程大學(xué)畢業(yè)設(shè)計(jì)論文 22 ( 5)對于任意給定的數(shù)據(jù) x,要計(jì)算出另外一個(gè)數(shù)據(jù) Y,使 H(x)=H(y),這在計(jì)算上是不可行的; ( 6)要尋找任何一對數(shù)據(jù) (x, y),使 H(x)=H(y),這在計(jì)算上也是不可行的; 其中前面 3 個(gè)性質(zhì)是散列函數(shù)應(yīng)用于報(bào)文 (數(shù)據(jù) )鑒別的基本要求;性質(zhì) 4 是單向函數(shù)性質(zhì);性質(zhì) 5 也可稱其為弱抗沖突 (weak collision resistance),就是在給定 x 之后,考察與本特定的 x 相沖突的情況 :性質(zhì) 6 也可稱其為強(qiáng)抗沖突 (strong collision resistance),是考察任意兩個(gè)元素 x, y 相沖突的情況。它有弱單向散列函數(shù)和強(qiáng)單向散列函數(shù) 之分。要實(shí)現(xiàn)使散列結(jié)果中出現(xiàn) 1bit 的變化 ,則輸入中至少有一半以上的 bit 必須發(fā)生變化 ?其實(shí)質(zhì)是必須使輸入中每一個(gè) bit 的信息 ,盡量均勻的反映到輸出的每一個(gè) bit 上去 。) ,此謂強(qiáng)抗沖突性 ?要求 強(qiáng)抗沖突性 主要是為了防范所謂 生日攻擊 (birthday attack),在一 10 人的團(tuán)體中 ,你能找到和你生日相同的人的概率是 %,而在同一團(tuán)體中 ,有 2 人生日相同的概率是 %?類似的 ,當(dāng)預(yù) 映射的空間很大的情況下 ,算法必須有足夠的強(qiáng)度來保證不能輕易找到 相同生日 的人 ? 第三是映射分布均勻性和差分分布均勻性 ,散列結(jié) 果中 ,為 0 的 bit 和為 1 的 bit ,其總數(shù)應(yīng)該大致相等 。計(jì)算上也難以尋找一對任意的M 和 M39。,滿足 H(M)=H (M39。少量有密鑰的散列函數(shù),可以作為計(jì)算消息的認(rèn)證碼等其他用途,因其有密鑰而具有一定的身份鑒別功能。消息 M 的散列值 h,就像該消息的數(shù)字指紋,可以用來保證數(shù)據(jù)的完整性,我們在前面稱其為數(shù)據(jù)摘要。驗(yàn)證者比較解密得到的消息摘要和自己的消息摘要,如果兩者相同,則驗(yàn)證成功,可以確 認(rèn)消息的完整性及簽名確實(shí)為簽名者的;否則,驗(yàn)證失敗,確認(rèn)簽名被冒充或是被篡改。 1 RSA 解密:簽名實(shí)際是加密的消息摘要,用以上所述的 RSA 解密方法采用簽名者的公鑰對這個(gè)加密的消息摘要解密,解密的結(jié)果應(yīng)為 128 位的消息摘要。 ( 2)驗(yàn)證簽名算法( RSA 解密、 對消息摘要計(jì)算和比較) 驗(yàn)證簽名算法包括兩步: RSA 解密得簽名者的消息摘要,驗(yàn)證者對原消息計(jì)算摘要,比較兩個(gè)消息摘要。其次 對明文加密或?qū)γ芪倪M(jìn)行解密 ,過程如下; ( 1)加密: C = Mkey^E mod publicKey;其中 M 表示明文 ,C 表示密文。 [15] RSA 的優(yōu)點(diǎn) ( 1) 數(shù)學(xué)表達(dá)式簡單 ? ( 2) RSA 的安全性基于大數(shù)分解的困難性 ? ( 3) RSA公鑰密碼體制具有一些 傳統(tǒng)密碼體制不能實(shí)現(xiàn)的一些功能 ,如認(rèn)證 ,鑒別和數(shù)字簽名等 ,特別適合于現(xiàn)代密碼 通信 ? RSA 數(shù)字簽名 RSA 數(shù)字簽名的過程 首先產(chǎn)生密鑰,過程如下: ( 1)隨機(jī)產(chǎn)生兩個(gè)等長度為 K/2 位的素?cái)?shù) P 和 Q ( 2)然后計(jì)算公鑰 publicKey=P*Q; (publicKey 是 k 位的長度 ) ( 3)隨機(jī)產(chǎn)生一個(gè)加密密鑰 keyE, 2=keyE=Φ (n)1 其 GCD(keyE, Φ (n))=1。目前, SET(Secure Electronic Transaction)協(xié)議中要求 CA 采用 2048 比特長的密鑰,其他實(shí)體使用 1024 比特的密鑰。但從算法上無法解決這一 問題,主要措施有兩條:一條是采用好的公鑰協(xié)議,保證工作過程中實(shí)體不對其他實(shí)體任意產(chǎn)生的信息解密,不對自己一無所知的信息簽名;另一條是決不對陌生人送來的隨機(jī)文檔簽名,簽名時(shí)首先使用 OneWay Hash Function 對文檔作 HASH 處理,或同時(shí)使用不同的簽名算法。然后,經(jīng)過計(jì)算就可得到它所想要的信息。 RSA 的缺點(diǎn) ( 1) RSA 產(chǎn)生密鑰很麻煩 ,受到素?cái)?shù)產(chǎn)生技術(shù)的限制 ,因而難以做到一次一密 ( 2) 安全性 , RSA 的安全性依賴于大數(shù)的因子分解,但并沒有從理論上證明破譯 RSA 的難度與大數(shù)分解難度等價(jià),而且密碼學(xué)界多數(shù)人 士傾向于因子分解不是 NPC 問題。 設(shè) P 為信息明文,兩個(gè)加密密鑰為 e1 和 e2,公共模數(shù)是 n,則: C1 = P^e1 mod n C2 = P^e2 mod n 密碼分析者知道 n、 e e C1 和 C2,就能得到 P。 A 需要獲得 u,然后計(jì)算 m = (t * u) mod n 計(jì)算結(jié)果 是河北工程大學(xué)畢業(yè)設(shè)計(jì)論文 19 這樣推導(dǎo)的: t *u mod n = [r^(1) * y^d] mod n= [r^(1) * x^d * c^d] mod n= c^d mod n= m[14] ( 2) RSA 的公共模數(shù)攻擊 若系統(tǒng)中共有一個(gè)模數(shù),只是不同的人擁有不同的 e 和 d,系統(tǒng)將是危險(xiǎn)的。他進(jìn)行如下計(jì)算: x = r^e mod n (對 r 用 T 的公鑰加密,得到臨時(shí)密文 x), y = (x * c) mod n (將臨時(shí)密文 x 與密文 c 相乘) t = r^(1) mod n?,F(xiàn)在 A 想知道 m = c^d mod n,但是他不想分解 n。或者說,密碼分析者能獲得解密服務(wù)。 ( 1) RSA 的選擇密文攻擊 RSA 在選擇密文攻擊面前很脆弱。 ( 3) 時(shí)間攻擊:通過觀察解密算法運(yùn)行的時(shí)間來達(dá)到目的??偟膩矸?,RSA 算法攻擊可以區(qū)分為三類: ( 1) 蠻力攻擊:它通過實(shí)驗(yàn)所用的可能私鑰,來達(dá)到目的。以當(dāng)前的計(jì)算機(jī)水平,如選擇 1024 位長的密鑰(相當(dāng)于 300 位十進(jìn)制數(shù)字)就認(rèn)為是無法攻破的。 ( 4) RSA 算法面臨著數(shù)學(xué)方法的進(jìn)步和計(jì)算機(jī)技術(shù)飛躍發(fā) 展帶來的破譯密碼能力日趨增強(qiáng)的嚴(yán)重挑戰(zhàn)。 ( 2)雖然提高 N 位數(shù)會(huì)大大提高 RSA 密碼體制的安全性,但其計(jì)算量呈指數(shù)增長,以致使其實(shí)現(xiàn)的難度增大,實(shí)用性降低。 對于互素的 a 和n,有 a^φ (n)=1(mod n) RSA 安全性的分析 在公布 RSA 算法之后,在使用 RSA 密碼體制和分析 RSA 算法發(fā)現(xiàn)了一系河北工程大學(xué)畢業(yè)設(shè)計(jì)論文 18 列的算法本身脆弱性及其存在的問題。當(dāng) n 是素?cái)?shù) , φ(n)=n1。 并把滿足這些條件的素?cái)?shù)稱為安全素?cái)?shù)。 RSA 中的素?cái)?shù)都是上面位的十進(jìn)制數(shù),怎樣才能選擇好的 P 和 Q,怎樣才能生成這樣的數(shù),并且判斷它是否為素?cái)?shù),這是一個(gè) RSA 系統(tǒng)關(guān)鍵的問題。 RSA 中 素?cái)?shù)的選取 在 RSA 中,因 N=P*Q, 若 P, Q 被知道,即能將 N 因子分解,則由 Φ (n)=( P1) *(Q1)可以算出。 ( 3)計(jì)算 d,使 e*d=1(mod (n)),稱 d 為 e 對模 (n)的逆,其中 d 為解密秘鑰,保密。 RSA 加密的可行性 雖然 RSA 加密運(yùn)算的速度十分慢 ,但是在 PC 性能越來越好的今天 ,對于幾千字節(jié)的數(shù)據(jù)進(jìn)行一次幾百位密鑰的 RSA 加密 ,所消耗的時(shí)間應(yīng)該是可以接受的 ?下面結(jié)合大數(shù)運(yùn)算程序的調(diào)試 ,從理論上簡單的分析消耗時(shí)間 ?在一臺(tái)普通配置的 PC 機(jī)上對一個(gè)整數(shù)進(jìn)行冪模運(yùn)算 ,因?yàn)楣_密鑰的 e 通常取的較小 ,所以指數(shù)取一個(gè)小整數(shù) ,比如 C353,模一個(gè) 70 字節(jié)長的整數(shù) (140 位十六進(jìn)制 ,大數(shù)單元以線性組方式實(shí)現(xiàn) ,對應(yīng)到 RSA 算法中 ,這相當(dāng)于約 560bit 的 n),調(diào)試一個(gè)函數(shù)測試 ,按初等數(shù)論中的知識對程序進(jìn)行算法優(yōu)化 ,最終在一臺(tái)配置為 AMD Athron2800+,外頻 333MHZ,物理內(nèi)存 512MB 的 PC 上測試 需要約 45 毫秒時(shí)間 ?如果按這種速度 ,逐字節(jié)對 1KB 的數(shù)據(jù)進(jìn)行同樣的運(yùn)算 ,所消耗的時(shí)間理論上為 45 毫秒的 1024 倍即約 45 秒 ?這個(gè)時(shí)間并不是非常長 [12]? 其實(shí)從一個(gè)簡單的角度來說 ,既然 RSA 用于數(shù)字簽名可行 ,那就完全可以用于同樣大小的普通文件 ?對于較大的文件 ,如果分成與數(shù)字簽名同樣大小的段 (這里假設(shè)數(shù)字簽名較短 ,不分段一次計(jì)算加密完成 ),分開的各段逐一進(jìn)行加密運(yùn)算 ,那所需要的時(shí)間也只是按文件大小線性的增長 ?通常數(shù)字簽名為幾十字節(jié) ,加密運(yùn)算并不需要很長的等待 ,這就說明對于幾百字節(jié)或一兩 K 字節(jié)大小的文件來說 ,如果進(jìn)行 RSA加密 ,并不會(huì)是非常漫長的工作 ?當(dāng)然 ,如果文件更大 ,加密就顯得十分漫長了 ?比如按前面敘述的 45 毫秒大數(shù)運(yùn)算程序推理 ,加密 1M 字節(jié)大小的文件需要約 1 天的時(shí)間 ?所以 ,要在普通 PC 用幾百位以上的長密鑰 RSA 加密文件 ,文件不能過大 ,一般可以接受的上限是幾 KB?如果要在較短時(shí)間內(nèi)加密大文件 ,需要縮短密鑰長度以減小運(yùn)算量 ,這將帶來安全性隱患 ?[13] RSA 算法的介紹 RSA 系統(tǒng)由以下幾部分組成: ( 1)隨機(jī)選取的在素?cái)?shù) P 和 Q,還有 N ,其中 N=P*Q , P 和 Q 保密, N公開。 因此 ,盡管先后出現(xiàn)了很多新的 公鑰體制 算法 ,但 RSA仍然在不同應(yīng)用領(lǐng)域占河北工程大學(xué)畢業(yè)設(shè)計(jì)論文 16 據(jù)了重要的位置。 實(shí)踐證明 ,在當(dāng)前的技術(shù)和方法下 ,密鑰不小于 1 024 bit的 RSA算法仍然是安全的??煽啃耘c所用密鑰的長度有很大關(guān)系 , 假如有人找到一種很快的分解因子的算法 , 即從一個(gè)公鑰中通過因數(shù)分解得到私鑰 , 那么用 RSA 加密的信息的可靠性肯定 會(huì)極度下降。它基礎(chǔ)是數(shù)論的歐拉定理 ,素?cái)?shù)檢測 ,它的安全性是基于大數(shù)分解 ,后者在數(shù)學(xué)上是一個(gè)困難問題。 [11]由此可看出 ,RSA 算法解決了大量網(wǎng)絡(luò) 用戶密鑰管理的難題 ,這是公鑰密碼系統(tǒng)相對于對稱密碼系統(tǒng)最突出的優(yōu)點(diǎn)。如果某用戶想與另一用戶進(jìn)行保密通信 ,只需從公鑰簿上查出對方的加密密鑰 ,用它
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1