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

正文內(nèi)容

利用rsa算法實現(xiàn)數(shù)字簽名畢業(yè)論文-資料下載頁

2025-07-03 10:29本頁面

【導(dǎo)讀】而數(shù)字簽名技術(shù)是目前網(wǎng)絡(luò)安全領(lǐng)域的研究熱門方向。RSA算法是第一個能同時用于加密和數(shù)字簽名的算法,易于應(yīng)用和理解。一直到現(xiàn)在,它經(jīng)歷了各種考驗。它通過認證技術(shù)來分辨真與假。RSA數(shù)字簽名體制使。本文的主要內(nèi)容包括:

  

【正文】 人們還嘗試一些利用解密指數(shù)或 φ ( n) 等等攻擊 . ( 3)速度太慢 ,由于 RSA 的分組長度太大,為保證安全性, n 至少也要 600 bitx 以上,使運算代價很高,尤其是速度較慢,較對稱密碼算法慢幾個數(shù)量級;且隨著大數(shù)分解技術(shù)的發(fā) 展,這個長度還在增加,不利于數(shù)據(jù)格式的標準化。目前, SET(Secure Electronic Transaction)協(xié)議中要求 CA 采用 2048 比特長的密鑰,其他實體使用 1024 比特的密鑰。為了速度問題 ,目前人們廣泛使用單 ,公鑰密碼結(jié)合使用的方法 ,優(yōu)缺點互補 :單鑰密碼加密速度快 ,人們用它來加密較長的文件 ,然河北工程大學(xué)畢業(yè)設(shè)計論文 20 后用 RSA 來給文件密鑰加密 ,極好的解決了單鑰密碼的密鑰分發(fā)問題。 [15] RSA 的優(yōu)點 ( 1) 數(shù)學(xué)表達式簡單 ? ( 2) RSA 的安全性基于大數(shù)分解的困難性 ? ( 3) RSA公鑰密碼體制具有一些 傳統(tǒng)密碼體制不能實現(xiàn)的一些功能 ,如認證 ,鑒別和數(shù)字簽名等 ,特別適合于現(xiàn)代密碼 通信 ? RSA 數(shù)字簽名 RSA 數(shù)字簽名的過程 首先產(chǎn)生密鑰,過程如下: ( 1)隨機產(chǎn)生兩個等長度為 K/2 位的素數(shù) P 和 Q ( 2)然后計算公鑰 publicKey=P*Q; (publicKey 是 k 位的長度 ) ( 3)隨機產(chǎn)生一個加密密鑰 keyE, 2=keyE=Φ (n)1 其 GCD(keyE, Φ (n))=1。注意這是保證解密密鑰 keyE *keyD mod Φ (n)=1 有解的充要條件,Φ (n)稱為 n的歐 拉函數(shù),值為:Φ (n)=(P1)*(Q1) ( 4)求解解密密鑰 keyD=keyE1 mod (n) , keyE1 為解密密鑰 keyD 的逆元 ,此公式原方程為 (keyE*keyD mod (n)=1) 由此公鑰,加密密鑰,解密密鑰全部產(chǎn)生。其次 對明文加密或?qū)γ芪倪M行解密 ,過程如下; ( 1)加密: C = Mkey^E mod publicKey;其中 M 表示明文 ,C 表示密文。 ( 2)解密: M = Ckey^D mod publicKey.;其中 M 表示明文 ,C 表示密文。 ( 2)驗證簽名算法( RSA 解密、 對消息摘要計算和比較) 驗證簽名算法包括兩步: RSA 解密得簽名者的消息摘要,驗證者對原消息計算摘要,比較兩個消息摘要。驗證簽名的過程輸入為消息,簽名者的公鑰,簽名;輸出為驗證的結(jié)果,即是否是正確的簽名。 1 RSA 解密:簽名實際是加密的消息摘要,用以上所述的 RSA 解密方法采用簽名者的公鑰對這個加密的消息摘要解密,解密的結(jié)果應(yīng)為 128 位的消息摘要。 2 消息摘要計算和比較:驗證者對消息用 MD5 算法重新計算,得到驗證者自己的消息摘要。驗證者比較解密得到的消息摘要和自己的消息摘要,如果兩者相同,則驗證成功,可以確 認消息的完整性及簽名確實為簽名者的;否則,驗證失敗,確認簽名被冒充或是被篡改。 河北工程大學(xué)畢業(yè)設(shè)計論文 21 散列函數(shù)的原理 散 列函數(shù) H(M),就是把任意長度的消息 M,通過函數(shù) H,將其變換為一個固定長度的散列值 h: h=H(M)。消息 M 的散列值 h,就像該消息的數(shù)字指紋,可以用來保證數(shù)據(jù)的完整性,我們在前面稱其為數(shù)據(jù)摘要。散列函數(shù)是公開的,一般不涉及保密密鑰。少量有密鑰的散列函數(shù),可以作為計算消息的認證碼等其他用途,因其有密鑰而具有一定的身份鑒別功能。 在信息安全領(lǐng)域中應(yīng)用的 Hash 算法 ,還需要滿足其他關(guān)鍵特性 :第 一當然是單 向性 (oneway),從預(yù)映射 ,能夠簡單迅速的得到散列值 ,而在計算上不可能構(gòu)造一個預(yù)映射 ,使其散列結(jié)果等于某個特定的散列值 ,即構(gòu)造相 應(yīng)的 M=H1(h)不可行 ?這樣 ,散列值就能在統(tǒng)計上唯一的表征輸入值 ,因此 ,密碼學(xué)上的 Hash 又被稱為 消息摘要 (message digest),就是要求能方便的將 消息 進行 摘要 ,但在 摘要 中無法得到比 摘要 本身更多的關(guān)于 消息 的信息 ? 第二 是抗沖突性(collisionresistant),即在統(tǒng)計上無法產(chǎn)生 2個散列值相同的預(yù)映射 ?給定 M,計算上無法 找到 M39。,滿足 H(M)=H (M39。) ,此謂弱抗沖突性 。計算上也難以尋找一對任意的M 和 M39。,使?jié)M足 H(M)=H(M39。) ,此謂強抗沖突性 ?要求 強抗沖突性 主要是為了防范所謂 生日攻擊 (birthday attack),在一 10 人的團體中 ,你能找到和你生日相同的人的概率是 %,而在同一團體中 ,有 2 人生日相同的概率是 %?類似的 ,當預(yù) 映射的空間很大的情況下 ,算法必須有足夠的強度來保證不能輕易找到 相同生日 的人 ? 第三是映射分布均勻性和差分分布均勻性 ,散列結(jié) 果中 ,為 0 的 bit 和為 1 的 bit ,其總數(shù)應(yīng)該大致相等 。輸入中一個 bit 的變化 ,散列結(jié)果中將有一半以上的 bit 改變 ,這又叫做 雪崩效應(yīng) (avalanche effect)。要實現(xiàn)使散列結(jié)果中出現(xiàn) 1bit 的變化 ,則輸入中至少有一半以上的 bit 必須發(fā)生變化 ?其實質(zhì)是必須使輸入中每一個 bit 的信息 ,盡量均勻的反映到輸出的每一個 bit 上去 。輸出中的每一個 bit,都是輸入中盡可能多 bit 的信息一起作用的結(jié)果 [14]? 目前我們指的散列函數(shù)都是單向散列函數(shù) h=H(M),即函數(shù) H 是單向函數(shù)。它有弱單向散列函數(shù)和強單向散列函數(shù) 之分。單向散列函數(shù)是建立在壓縮函數(shù)(pression function)的想法之上的:給一個輸入 n 位長消息,得到一個較短的散列值。 單向散列函數(shù)的性質(zhì): ( 1)函數(shù) H 適用于任何大小的數(shù)據(jù)分組; ( 2)函數(shù) H 產(chǎn)生一定長度輸出; ( 3)對于任何數(shù)據(jù) M,計算 H(M)是容易實現(xiàn)的; ( 4)對于任何給定的散列值 h,要計算出 M 使 H(M)=h,這在計算上是不可行的; 河北工程大學(xué)畢業(yè)設(shè)計論文 22 ( 5)對于任意給定的數(shù)據(jù) x,要計算出另外一個數(shù)據(jù) Y,使 H(x)=H(y),這在計算上是不可行的; ( 6)要尋找任何一對數(shù)據(jù) (x, y),使 H(x)=H(y),這在計算上也是不可行的; 其中前面 3 個性質(zhì)是散列函數(shù)應(yīng)用于報文 (數(shù)據(jù) )鑒別的基本要求;性質(zhì) 4 是單向函數(shù)性質(zhì);性質(zhì) 5 也可稱其為弱抗沖突 (weak collision resistance),就是在給定 x 之后,考察與本特定的 x 相沖突的情況 :性質(zhì) 6 也可稱其為強抗沖突 (strong collision resistance),是考察任意兩個元素 x, y 相沖突的情況。 MD5 算法的簡介 MD5 消息摘要算法是單向散列函數(shù), MD5 不基于任何假設(shè)和密碼體制,它采用了直接構(gòu)造的辦法,速度很快,非常實用。 MD5 算法的 典型應(yīng)用是對一段信息產(chǎn)生信息摘要 ,以防止被篡改。 MD5 將整個文件當作一個大文本信息,通過其不可逆的字符串變換算法,產(chǎn)生了這個唯一的 MD5 信息摘要。如果在以后傳播這個文件的過程中,無論文件的內(nèi)容發(fā)生了任何形式的改變,只要你對這個文件重新計算 MD5 時就會發(fā)現(xiàn)信息摘要不相同,由此可以確定你得到的只是一個不正確的文件。如果再有一個第三方的認證機構(gòu),用 MD5 還可以防止文件作者的 抵賴 ,這就是所謂的數(shù)字簽名應(yīng)用。 MD5 算法以任意長度的消息作為輸入,產(chǎn)生一個 128 比特消息散列值(或稱消息摘要)作為輸出。具體 的算法步驟如下: 步驟 1:附加填充比特,對消息進行填充,使消息的長度(比特數(shù))與 448模 512 同余,即恰好為一個比 512 比特的倍數(shù)僅小 64 位的數(shù)。 步驟 2:附加消息長度值,將用 64 比特表示的初始消息(填充前)的長度(比特數(shù))附加在步驟 1 的結(jié)果后。 步驟 3:初始化 MD 緩存, MD5 算法使用了一個 4 個字( 128 比特, MD4中每個字 32 比特)的緩存來計算消息摘要,它們主要用來存放 MD5 的中間及最終結(jié)果。緩存可以看成是 4 個 32 比特的寄存器( A, B, C, D)。 步驟 4:以 512 比特( 16 個字)分組處理消息,這一步是 MD5 算法的主循環(huán),以 512 比特作為分組 [15] 河北工程大學(xué)畢業(yè)設(shè)計論文 23 6 RSA 數(shù)字簽名設(shè)計與實現(xiàn) 開發(fā)環(huán)境的介紹 C語言概述 在過去的幾十年里, C 和 C++在商業(yè)軟件的開發(fā)領(lǐng)域中得到廣泛的運用,他們?yōu)槌绦騿T提供了十分靈活的操作,但是器效率還是不容樂觀的,其開發(fā)時間相對來說較長。因此,許多程序員在尋求一種新的語言,希望其功能和效率能夠很好的結(jié)合。 C就是這么一種語言,它是一種面向?qū)ο蟮木幊陶Z言。它可是使得程序員能夠快速的編寫基于 .NET 平臺的應(yīng)用程序。正是由于其面向?qū)ο蟮淖吭皆O(shè)計,使得它成為許多程序員的鐘 愛的選擇,在構(gòu)架各類組件的時候。無論是高級的商業(yè)對象還是系統(tǒng)級的應(yīng)用程序,在使用 C語言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為 XML 網(wǎng)絡(luò)服務(wù),從而使它們可以一定的操作系統(tǒng)上通過網(wǎng)絡(luò)調(diào)用 C。 C語言特點 ( 1)簡潔的語法 C的代碼在 .NET 框架提供的“可操縱”環(huán)境下運行,不允許直接地內(nèi)存操作。它所帶來的最大的特色是沒有了指針。與此相關(guān)的是,那些在 C++中被瘋狂使用的操作符(例如:“::”、“ ”和“ .,”)已經(jīng)不再出現(xiàn)。 C只支持一個“ .”,對于我們來說,現(xiàn)在需要理解的一切僅僅是名字的嵌套而已。每 種 C操作符在 .NET 類庫中都有了新名字。語法中的冗余是 C++中的常見的問題, C對此進行了簡化,只保留了常見的形式,而別的冗余形式從它的語法結(jié)構(gòu)中被清除了出去。 ( 2)精心地面向?qū)ο笤O(shè)計 C具有面向?qū)ο蟮恼Z言所應(yīng)有的一切特性:封裝、繼承與多態(tài)性。通過精心地面向?qū)ο笤O(shè)計,從高級商業(yè)對象到系統(tǒng)級應(yīng)用, C建造廣泛組件的絕對選擇。在 C的類型系統(tǒng)中,每種類型都可以看作一個對象。 C提供了一個叫做裝箱 (boxing)與拆箱 (unboxing)的機制來完成這種操作,而不給使用者帶來麻煩。C只允許單繼承,即一個 類不會有多個基類,從而避免了類型定義的混亂。 ( 3)與 Web 的緊密結(jié)合 .NET中新的應(yīng)用程序開發(fā)模型意味著越來越多的解決方案需要與 Web 標準河北工程大學(xué)畢業(yè)設(shè)計論文 24 相統(tǒng)一。由于有了 Web 服務(wù)框架的幫助,對程序員來說,網(wǎng)絡(luò)服務(wù)看起來就象是 C的本地對象。程序員們能夠利用他們已有的面向?qū)ο蟮闹R與技巧開發(fā)Web 服務(wù)。僅需要使用簡單的 C語言結(jié)構(gòu), C組件將能夠方便地為 Web 服務(wù),并允許它們通過 Inter 被運行在任何操作系統(tǒng)上的任何語言所調(diào)用。 ( 4)完整的安全性與錯誤處理 語言的安全性與錯誤處理能力,是衡量一種語言是否優(yōu)秀的重 要依據(jù)。 C的先進設(shè)計思想可以消除軟件開發(fā)中的許多常見錯誤,并提供了包括類型安全在內(nèi)的完整的安全性能。為了減少開發(fā)中的錯誤, C會幫助開發(fā)者通過更少的代碼完成相同的功能,這不但減輕了編程人員的工作量,同時更有效地避免了錯誤的發(fā)生。 ( 5)版本處理技術(shù) C提供內(nèi)置的版本支持來減少開發(fā)費用,使用 C將會使開發(fā)人員更加輕易地開發(fā)和維護各種商業(yè)用戶。 ( 6)靈活性和兼容性 在簡化語法的同時, C并沒有失去靈活性。盡管它不是一種無限制語言,比如:它不能用來開發(fā)硬件驅(qū)動程序,在默認的狀態(tài)下沒有指針等等。 類的介紹 常見的加密和編碼算法都已經(jīng)存在 .NET 中得到了實現(xiàn),為編碼人員提供了極大的便利性,實現(xiàn)這些算法的命名空間 是 ,它的命名空間提供加密服務(wù),包括安全的數(shù)據(jù)編碼和解碼,以及許多其它的操作,例如散列法,和消息身份驗證。 ( 1)哈希值 哈希 函數(shù)將任意長度的二進制字符串映射為固定長度的小二進制字符串 。哈希值是一段數(shù)據(jù)唯一且緊湊的數(shù)值表示形式,若散列一段明文,就是更改其中的一個標點符號,隨后的哈希值都將產(chǎn)生不同的值。因此,要找到散列為同一個數(shù)值的兩個不同 輸入,在計算上是幾乎不可能的。所以數(shù)據(jù)的哈希值可以檢驗數(shù)據(jù)的完整性。在 .NET 所選擇的類為: HashAlgorithm: 所有加密哈希算法實現(xiàn)均必須從中派生的基類 。 ( 2)公鑰加密 公鑰加密使用一個對未授權(quán)的用戶保密的私鑰和一個公開的公鑰。用公鑰加密的數(shù)據(jù)只能是用私鑰解密,而用私鑰簽名的數(shù)據(jù)只能用公鑰去驗證。公鑰可以被任何人使用;該密鑰用于加密要發(fā)送到私鑰持有者的數(shù)據(jù)。在 .NET 所選擇的類為: 河北工程大學(xué)畢業(yè)設(shè)計論文 25 RSACryptoServiceProvider: 使用加密服務(wù)提供程序 (CSP) 提供的 RSA 算法的實現(xiàn)執(zhí) 行不對稱加密和解密 。 RSAPKCS1SignatureFormatter: 類創(chuàng)建數(shù)字簽名 。 RSAPKCS1SignatureDeformatter: 類來驗證該簽名 。 RSA 數(shù)字簽名所需實現(xiàn)的功能 在本軟件中需要實現(xiàn)的功能有以下幾個 : ( 1) 生成 RSA密鑰 ( 2) 利用 MD5算法計算出消息摘要 MD; ( 3) 數(shù)字簽名的實現(xiàn) ; ( 4) 驗證數(shù)字
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1