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

正文內(nèi)容

公開密鑰加密算法rsa的matlab實現(xiàn)畢業(yè)論文(編輯修改稿)

2024-10-02 16:38 本頁面
 

【文章內(nèi)容簡介】 以 %開頭,標志編寫及修改該 M文件的作者和日期等 。 ⑦ 函數(shù)體:為清晰起見,它與前面的注釋以 “ 空 ” 行相隔。 陜西理工學院畢業(yè)論文(設計) 第 8 頁 共 41 頁 函數(shù)調(diào)用和參數(shù)傳遞 ( 1)局 部變量和全局變量 : ① 局部( Local)變量:它存在于函數(shù)空間內(nèi)部的中間變量,產(chǎn)生于該函數(shù)的運行過程中,其影響范圍也僅限于該函數(shù)本身 。 ② 全局( Global)變量:通過 global 指令, MATLAB 也允許幾個不同的函數(shù)空間以及基本工作空間共享同一個變量,這種被共享的變量稱為全局變量。 ( 2)函數(shù)調(diào)用 : ① 在 MATLAB中,調(diào)用函數(shù)的常用形式是: [輸出參數(shù) 1,輸出參數(shù) 2,?] = 函數(shù)名 (輸入?yún)?shù) 1,輸入?yún)?shù) 2, ?) ② 函數(shù)調(diào)用可以嵌套,一個函數(shù)可以調(diào)用別的函數(shù),甚至調(diào)用它自己 (遞 歸調(diào)用)。 ( 3)參數(shù)傳遞 : ① MATLAB在函數(shù)調(diào)用上有一個與眾不同之處 :函數(shù)所傳遞的參數(shù)具有可調(diào)性 。 ② 傳遞參數(shù)數(shù)目的可調(diào)性來源于如下兩個 MATLAB永久變量: ③ 函數(shù)體內(nèi)的 nargin 給出調(diào)用該函數(shù)時的輸入?yún)?shù)數(shù)目。 ④ 函數(shù)體內(nèi)的 nargout 給出調(diào)用該函數(shù)時的輸出參數(shù)數(shù)目。 ⑤ 只要在函數(shù)文件中包括這兩個變量,就可以知道該函數(shù)文件調(diào)用時的輸入?yún)?shù)和輸出參數(shù)數(shù)目。 ⑥ 值得注意: nargin、 nargout 本身都是函數(shù),不是變量,所以用戶不能賦值,也不能顯示。 ⑦ “ 變長度 ” 輸入輸出宗量: varargin 、 varrgout。具有接受 “ 任意多輸入 ” 、返回“ 任意多輸出 ” 的能力 。 ⑧ 跨空間變量傳遞: evalin。 M 文件的調(diào)試 ( 1)編寫 M文件時,錯誤( Bug)在所難免。錯誤有兩種:語法( Syntax)錯誤和運行( Runtime)錯誤。 ( 2)語法錯誤是指變量名、函數(shù)名的誤寫,標點符號的缺、漏等。對于這類錯誤,通常能在運行時發(fā)現(xiàn),終止執(zhí)行,并給出相應的錯誤原因以及所在行號。 ( 3)運行錯誤是算法本身引起的,發(fā)生在運行過程中。相對語法錯誤而言, 運行錯誤較難處理 。尤其是 M函數(shù)文件,它一旦運行停止,其中間變量被刪除一空,錯誤很難查找。 ( 4)有兩種調(diào)試方法:直接調(diào)試法和工具調(diào)試法。 ( 5)直接調(diào)試法:可以用下面方法發(fā)現(xiàn)某些運行錯誤。 ( 6)在 M 文件中,將某些語句后面的分號去掉, 迫使 M文件輸出一些中間計算結果,以便發(fā)現(xiàn)可能的錯誤。 陜西理工學院畢業(yè)論文(設計) 第 9 頁 共 41 頁 ( 7)在適當?shù)奈恢茫砑语@示某些關鍵變量值的語句(包括使用 disp 在內(nèi))。 ( 8)利用 echo 指令,使運行時在屏幕上逐行顯示文件內(nèi)容。 echo on 能顯示 M腳本文件; echo FunNsme on 能顯示名為 FunNsme 的 M函數(shù)文件。 ( 9)在原 M腳本或函數(shù)文件的適當位置,增添指令 keyboard 。 keyboard 語句可以設置程序的斷點 。 ( 10)通過將原 M函數(shù)文件的函數(shù)申明行注釋掉,可使一個中間變量難于觀察的 M 函數(shù)文件變?yōu)橐粋€所有變量都保留在基本工作空間中的 M腳本文件。 陜西理工學院畢業(yè)論文(設計) 第 10 頁 共 41 頁 3 RSA 公鑰密碼體制 算法簡介 公鑰加密算法的典型代表是 RSA (Rivest , Shamir , Adelman)算法 , 它 是公共密鑰 機制中的一種比較成熟的算法。 它 是建立在“大數(shù)分解和素數(shù)據(jù)檢測”的理論基礎上的,兩個大素數(shù)相乘在計算機上是容易實現(xiàn)的 , 但將該乘積分解成兩個素數(shù)因子的計算量卻相當巨大 , 大到甚至在計算機上不可能實現(xiàn),所以就確保了 RSA算法的安全性。 RSA算法是第一個既能用于數(shù)據(jù)加密又能用于數(shù)字簽名的算法, 它為公用網(wǎng)絡上信息的加密和鑒別提供了一種基本的方法,因此 對它的開發(fā)和研究對我們進行知識總結和積累并將所學與實際相結合都有重大的實際意義。 算法的數(shù)學基礎 基于 RSA算法的數(shù)學定理: 定義:設 m 是正整數(shù), 1, 2, 3,?, m 中與 m 互素的數(shù)的個數(shù)記作 ()m? ,稱為歐拉函數(shù)。 定理 1(歐拉定理) 若整數(shù) a和 m 互素,即 gcd(a,m)=1,則 () 1(mod )mam? ? 特別當 p為素數(shù)時,對任意的 a,有 1(mod )pap? 定理 2 若 m? 1, gcd(a,m)=1,則存在 c,使得 ca? 1(modm),稱 c 為 a 的模 m 的逆,記作 1a? (modm) 定理 3 若 , 1(mod )a b m? , 2(mod )a b m? ,? , (mod )ka b m? ,則有 12m od( ... )ka b m m m? 定理 4 (中國剩余定理) 設 : 12, ,..., km m m 是兩兩互素的正整數(shù),則對任意的整數(shù) 12, ,..., ka a a ,一次同余方程組 : (mod )iix a m? (i=1,2,? ,k)對模 [: 12, ,..., km m m ] 有惟一解, 111 1 1 ( m o d ) ,k k kx M M a M M a m???? (1 )jjm m j k? ? ? 1jM? 是滿足 1 1 ( m o d ) ,1j j jM M m j k? ? ? ? 的一個整數(shù),即 1jM? 對模 jM 的逆。 RSA 公鑰密碼算法 算法步驟 首先,產(chǎn)生密鑰 (1)隨機選取兩個大素數(shù) p與 q; (2)計算 n=p*q(公開), Φ( n) =( p1) *( q1)(保密); (3)隨機選取正整數(shù) e,使之滿足 gcd(e,Φ (n))=1,且 1eΦ (n)。 (4)利用歐幾里得算法計算 d,使之滿足 ed≡ 1(modΦ (n)), d為保密的解密密鑰 。 (5)用 E=n,e作為公鑰 ,用 D=n,d)作為私鑰。 其次,加密和解密,用 RSA公鑰密碼體制加密時 ,先將明文數(shù)字化 ,然后進行分組 ,每組的長度不超過 log(n),再每組單獨加密和解密。 陜西理工學院畢業(yè)論文(設計) 第 11 頁 共 41 頁 加密過程如下 : 假設要加密的明文組為 m(0? mn),加密過程就是 c=E(m)= em (mod n),c為密文 。 解密過程是 : m=D(c)= dc (mod n)。m就為恢復出的明文,它應該與前面輸入的待加密的明文內(nèi)容一致。 RSA算法整體思路如上所示,在本文中我們 就此算法過程用對應 Matlab語言實現(xiàn)。 參數(shù)分析 RSA 算法的安全性等價于分解 n 的困難性,但是在實際的應用中,很多時候是因為算法實現(xiàn)的細節(jié)漏洞導致被攻擊,所以在 RSA算法構造密碼系統(tǒng)時 ,為了保證系統(tǒng)的安全性需要仔細地選擇使用的參數(shù)。 RSA 算法主要的參數(shù)有 3 個 :模數(shù) n 、加密密鑰 e和解密密鑰 d 。 ( 1)算法模 n的確定: RSA模數(shù) n =p*q是 RSA算法安全性的核心,如果模數(shù) n被分解,則 RSA公鑰密碼體制將立刻被攻破,所以選擇合適的 n是實現(xiàn) RSA 算法的重要環(huán)節(jié)。 一般來講,模數(shù) n的選擇可以遵守以下 4個原則: ① n=p*q , 要求 p 和 q 為強素數(shù)( Strong Prime); 強素數(shù)定義如下 :存在兩個大素數(shù) 12,pp使得 12( 1), ( 1)p p p p??;存在 4 個大素數(shù)1 1 2 2, , ,r s r s ,使得 1 1 1 2 2 2 2( 1 ) , ( 1 ) , ( 1 ) , ( 1 )r p s p r p s p? ? ? ?;稱 1 1 2 2, , ,r s r s 為三級素數(shù), 12,pp為二級素數(shù) 。 ② p 和 q 之差要大,相差幾位以上; ③ p - 1 與 q - 1 的最大公因子要??; ④ p 和 q 要足夠大。 這是應用 R S A 算法要遵守的最基本原則,如果 RSA算法是安全的,則 n=p*q 必須足夠大,使得因式分解模數(shù) n 在計算上是不可行的,下面給出的是一般性使用原則: ① 臨時性( Casual) 384bit,經(jīng)過努力可以破譯; ② 商用性( Commercial) 512bit,可由專業(yè)組織破譯; ③ 軍用性( Military) 1024b it,專家預測十年內(nèi)不可破譯。 隨著計算機能力的不斷提高和 分布式運算的發(fā)展,沒有人敢斷言具體的安全密鑰長度。 ( 2)算法 e 與 d 的選取原則: 在 RSA算法中 gcd( , ( )) 1en? ? 的條件是很容易滿足的,這是因為任意兩個隨機數(shù)互素的概率 為 15 ,如果 e ,d 比較小,加、解密的速度快,也便于存儲,但這必然導致安全性問題,一般的 e,d 的 陜西理工學院畢業(yè)論文(設計) 第 12 頁 共 41 頁 選取原則如下: ① e不可過小。經(jīng)驗上 e 選 16位的素數(shù),這樣既可以有效地防止攻擊,又有較快的加、解密速度。 ② 最好選 e 為 mod ( )n? 的階數(shù),即存在 i ,使得 1(mod ( ))ien?? , i 達到,可以有效地抗擊攻擊。 ③ d 要大于 。選定 e 后可使用歐幾里德算法在多項式時間內(nèi)計算出 d。 安全性分析 如果說 RSA 體制的安全性等價于因子分解,那就是說,作為公鑰選擇的( e,n)參數(shù), n 是不能輕易被因子分解的,否則構造單向函數(shù)的 T=Φ( n) =(p1)(q1)就沒有秘密可言了。原因很簡單,RSA 的安全性依賴于 因子分解的困難性,目前因子分解速度最快方法的時間復雜度為:T=O(exp(sqrt(ln(n)ln ln(n))))=O( )ln(ln).ln( nne ),且 n 因子被分解,就意味著 RSA 系統(tǒng)被攻破。反過來,能攻破 RSA系統(tǒng),表明可以分解 n的因子,不過這不是絕對的。所以出于安全性考慮,在設計 RSA系統(tǒng)時,對 n的選擇是很重要的。 在 RSA算法中 ,若 n =p*q 被因數(shù)分解 ,則 RSA便被攻破。因為若 p,q 已知 ,則 Φ (n)=(p 1)*(q 1)便可以計算出 ,解密密鑰 d 便可利用歐幾里得算法 求出。因此 RSA的安全性是依賴于因數(shù)分解的困難性。在上一節(jié)的參數(shù)分析中我們重點講了對各參數(shù)選取原則,這里不再重復。在許多實際應用中,人們總希望使用位數(shù)較短的密鑰 d,一是可降低解出或簽名的時間,二是能夠滿足計算能力低于主機的硬件芯片的需求,比如 IC卡中的 CPU處理。 現(xiàn)在我們就分析幾個 RSA體制的安全性問題。 ( 1)弱密鑰情形 類似其他密碼體制一樣, RSA體制也存在弱密鑰現(xiàn)象。若已知明文組1m =123, 2m =183, 3m =72, 4m =30,假定 n=pq=17X11=187,取 e=7時,可以發(fā)現(xiàn),明文 m經(jīng)過 RSA連續(xù)變換后,就能恢復原文。比如 :根據(jù) kC =RSA( 1?km ) = 1?km e ( mod n),則有: 1C = 7123 =183( mod187) 2C = 7183 =72( mod187) 3C = 772 =30( mod187) 4C = 730 =123( mod187) 這時 4C = 1m ,對加密系統(tǒng)來說是不可靠的,必須加以克服。 ( 2)同模攻擊的可能性 假定兩個用戶 1B , 2B 共享一個模為 n的 RSA算法,加密密鑰分別為 1em 1e , 2e ,并且 gcd(1e ,2e )=1,如果用戶 A想加密同一個明文 m,分別從 1e , 2e 加密得到密文: 1C = 1em mod n和2C = 1em mod n,分別將 1C 送給 1B , 2C 送給 2B 。而攻擊者截獲兩個密文后,可以通過使用擴展
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1