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

正文內(nèi)容

rsa算法的研究及其在數(shù)字簽名技術中的應用(編輯修改稿)

2024-12-09 12:17 本頁面
 

【文章內(nèi)容簡介】 用的算法加上一個密鑰加上密文的樣本必須不足以確定另一個密鑰 燕山大學本科生畢業(yè)設計 (論文 ) 7 (6)步驟 6 解密變換:對密文 c m=cd(modn) 如果第三者進行竊聽時,他會得到幾個數(shù): m,e,n(=pq), c… 他如果要解碼的話,必須想辦法得到 d。所以,他必須先知道 p, q,即對 n作素因子分解,而分解 1024位的素數(shù) n卻是非常困難的。 RSA數(shù)字簽名體制的研究 RSA數(shù)字簽名體制使用了 RSA公開密鑰密碼算法進行數(shù)字簽名,鑒于RSA算法在實踐中已經(jīng)被證明了的安全性, RSA數(shù)字簽名體制在許多安全標準中得以廣泛應用。 ISO/IEC 9796和 ANSI 理標準 FIPS 1862已經(jīng)將 RSA作為推薦的數(shù)字簽名標準算法之一 [5]。 RSA數(shù)字簽名算法,包括簽名算法和驗證簽名算法。它是利用的 RSA算法的加密和解密算法的原理進行的一種數(shù)字簽名,實際上是通過一個 Hash函數(shù)來實現(xiàn)的產(chǎn)生消息摘要 (MD)來實現(xiàn)的所需加密的對象。 數(shù)字簽名的特點是它代表了消息的特征,消息如果發(fā)生改變,數(shù)字簽名的值也將發(fā)生改變,不同的消息將得到不同的數(shù)字簽名。安全的數(shù)字簽名使接收方可以得到保證:消息確實來自發(fā)送方。因為簽名的私鑰只有發(fā)送方自己保存,他人無法做一樣的數(shù)字簽名,如果第三方冒充發(fā)送方 發(fā)出一個消息,而接收方在對數(shù)字簽名進行解密時使用的是發(fā)送方的公開密鑰,只要第三方不知道發(fā)送方的私有密鑰,加密出來的數(shù)字簽名和經(jīng)過計算的數(shù)字簽名必然是不相同的,這就提供了一個安全的確認發(fā)送方身份的方法,即數(shù)字簽名的真實性得到了保證。 數(shù)字簽名通過認證技術來辨認真?zhèn)巍UJ證技術主要包括數(shù)字簽名認證、身份認證以及公開密鑰證明等。數(shù)字簽名認證機制提供了一種對數(shù)字簽名進行鑒別的方法;身份認證機制提供了辨別和確認通信雙方真實身份的方法;公開密鑰證明機制則對密鑰進行驗證。網(wǎng)絡時代中,人們驗證數(shù)字簽名來確定你正在和誰打交道, 驗證你的文件是否已被黑客篡改。數(shù)據(jù)的安全性和真實性已成為網(wǎng)絡安全中至關重要的一部分。 數(shù)字簽名類似手書簽名,它具有以 下的性質(zhì): 能夠驗證簽名產(chǎn)生者的身燕山大學本科生畢業(yè)設計 (論文 ) 8 份,以及產(chǎn)生簽名的日期和時間;能用于證實被簽消息內(nèi)容;數(shù)字簽名可由第三方驗證,從而能夠解決通信雙方的爭議 [10]。 為了實現(xiàn)數(shù)字簽名的以上性質(zhì),它就應滿足下列要求: (1)條件 1 簽名是可信的:任何人都可以驗證簽名的有效性; (2)條件 2 簽名是不可偽造的:除了合法的簽名者外,任何人偽造其簽名是困難的; (3)條件 3 簽名是不可復制的:對一個消息的簽名不 能通過復制變?yōu)榱硪粋€消息的簽名。如果一個消息的簽名是從別處復制得到的,則任何人都可以發(fā)現(xiàn)消息與簽名之間的不一致性,從而可以拒絕簽名的消息; (4)條件 4 簽名的消息是不可改變的:經(jīng)簽名的消息不能篡改,一旦簽名的消息被篡改,任何人都可以發(fā)現(xiàn)消息與簽名之間的不一致性; (5)條件 5 簽名是不可抵賴的:簽名者事后不能否認自己的簽名。可以由第三方或仲裁方來確認雙方的信息,以做出仲裁。 為了滿足數(shù)字簽名的這些要求,例如,通信雙方在發(fā)送消息時,既要防止接收方或其他第三方偽造,又要防止發(fā)送方因對自己的不利而否認,也就是說,為了保證數(shù)字簽名的真實性。 數(shù)字簽名的原理是: (發(fā)送方和接收方根據(jù)要求各自產(chǎn)生自己的一對公鑰和私鑰 ) (1)步驟 1 被發(fā)送文件采用某種算法對原始消息進行運算,得到一個固定長度的數(shù)字串,稱為消息摘要 (MD),不同的消息得到的消息摘要各異,但是對相同的消息它的消息摘要卻是唯一的; (2)步驟 2 發(fā)送方生成消息的消息摘要,用自己的私鑰對摘要進行加密來形成發(fā)送方的數(shù)字簽名; (3)步驟 3 這個數(shù)字簽名將作為消息的附件和消息一同用接收方的公鑰進行加密,將加密后的密文一起發(fā)送給接收方; (4)步驟 4 接收 方首先把接收到的密文用自己的私鑰解密,得到原始消息和數(shù)字簽名,再用發(fā)送方的公鑰解密數(shù)字簽名,隨后用同樣的算法計算出消息摘要; (5)步驟 5如果計算出來的消息摘要和發(fā)送方發(fā)送給他的消息摘要 (通過燕山大學本科生畢業(yè)設計 (論文 ) 9 解密數(shù)字簽名得到的 )是相同的,這樣接收方就能確認數(shù)字簽名確實是發(fā)送方的,否則就認為收到的消息是偽造的或是中途被篡改的。 Hash函數(shù) 的研究 Hash函數(shù)是一種將任意長度的消息壓縮為某一固定長度的消息摘要函數(shù)。 Hash函數(shù)的輸入為任意長度的消息,其輸出為固定長度的消息。一個Hash函數(shù)是一個多對一的映射。 Hash函數(shù)可以用于數(shù)字簽名,將 Hash函數(shù)應用于數(shù)字簽名有許多好處。一方面加快簽名的速度;另一方面是可以破壞被攻擊者用于消息偽造的數(shù)學結構。 Hash函數(shù)除了應用于數(shù)字簽名之外,還可以用于其他方面,比如消息的完整性檢測。為了保證消息的完整性,及時發(fā)現(xiàn)消息是否被非法篡改,可以在消息傳輸之前對消息做 Hash變換,然后對消息進行傳輸,對于接收到的消息也做 Hash變換,將傳輸前的消息的 Hash變換值與接收到的消息的 Hash變換值作比較,如果兩者相同,則可以認為消息在傳輸過程中沒有被篡改,否則消息一定被非法篡改。常見的 Hash函數(shù)有 Hash函數(shù) MD4, MD5和安全 Hash算法 SHA等 [13]。 首先對 MD5 的算法進行研究, MD5 消息摘要算法是由 Rivest(公開密鑰密碼 RSA 算法的設計者之一 )所設計的單向散列函數(shù), MD5 不基于任何假設和密碼體制,它采用了直接構造的辦法,速度很快,非常實用。 MD5算法的 典型應用是對一段信息 (message)產(chǎn)生信息摘要 (MD),以防止被篡改。 MD5 將整個文件當作一個大文本信息,通過其不可逆的字符串變換算法,產(chǎn)生了這個唯一的 MD5 信息摘要。如果在以后傳播這個文件的過程中,無論文件的內(nèi)容發(fā)生了任 何形式的改變 (包括人為修改或者下載過程中線路不穩(wěn)定引起的傳輸錯誤等 ),只要你對這個文件重新計算 MD5 時就會發(fā)現(xiàn)信息摘要不相同,由此可以確定你得到的只是一個不正確的文件。如果再有一個第三方的認證機構,用 MD5 還可以防止文件作者的“抵賴”,這就是所謂的數(shù)字簽名應用。 MD5 還廣泛用于加密和解密技術上。比如在 unix 系統(tǒng)中用戶的密碼就是以 MD5(或其它類似的算法 )經(jīng)加密后存儲在文件系統(tǒng)中。當用戶登錄的時候,系統(tǒng)把用戶輸入的密碼計算成 MD5 值,然后再去和保燕山大學本科生畢業(yè)設計 (論文 ) 10 存在文件系統(tǒng)中的 MD5 值進行比較,進而確定輸入的密碼是否正確。 通過這樣的步驟,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這不但可以避免用戶的密碼被具有系統(tǒng)管理員權限的用戶知道,而且還在一定程度上增加了密碼被破解的難度。 MD5 算法以任意長度的消息作為輸入,產(chǎn)生一個 128 比特消息散列值(或稱消息摘要 )作為輸出。具體的算法步驟如下: (1)步驟 1 附加填充比特,對消息進行填充,使消息的長度 (比特數(shù) )與448 模 512 同余,即恰好為一個比 512 比特的倍數(shù)僅小 64 位的數(shù)。 (2)步驟 2 附加消息長度值,將用 64 比特表示的初始消息 (填充前 )的長度 (比 特數(shù) )附加在步驟 1 的結果后。 (3)步驟 3 初始化 MD 緩存, MD5 算法使用了一個 4 個字 (128 比特,MD4 中每個字 32 比特 )的緩存來計算消息摘要,它們主要用來存放 MD5 的中間及最終結果。緩存可以看成是 4 個 32 比特的寄存器 (A, B, C, D)。 (4)步驟 4 以 512 比特 (16 個字 )分組處理消息,這一步是 MD5 算法的主循環(huán),以 512 比特作為分組,在后面有詳細的介紹。 本章小結 本章詳細研究了公鑰密碼體制中應用最廣泛的 RSA密碼體制的基本原理, RSA數(shù)字簽名體制的基本原理, Hash函數(shù)的基本原理 ,這些 是后面在 c++語言中實現(xiàn)的基礎。 燕山大學本科生畢業(yè)設計 (論文 ) 11 第 3章 RSA算法的仿真 RSA算法的參數(shù)的選擇 為保證算法的安全性,必須要認真的選擇 RSA算法的參數(shù)。 參數(shù) p, q的選擇 (1)要求 1 p和 q必須為強素數(shù),且通常 p和 q的位數(shù)相等。 只有 p和 q足夠大, n=pq才能足夠大,才能抵抗因子分解的攻擊。根據(jù)目前因子分解的能力,應當選擇 n為 1024位或 2048位。這樣就要求 p和 q的選擇應為 512位或 1024位左右。 (2)要求 2 p和 q差值必須較大,最好與 p、 q位數(shù)接近。 由 [(p+q)2/4]n=[(p+q)2/4]pq=(pq)2/4,如果 p和 q的差值較小,則 (pq)2/4也小,因此 (pq)2/4稍大于 n, (pq)/2稍大于 n ??傻?n的如下分解法:順序檢查大于 n 的每一個整數(shù) x,直到找到一個 x使得 x2n是某一整數(shù) (記為 y)的平方。有 x2n=y2,得 n=(x+y)(xy)。 (3)要求 3 p1和 q1的最大公因數(shù)應該很小。 (4)要求 4 p和 q應大到使用因子分解 n為計算上的不可能。 參數(shù) e的選擇 (1)要求 1 e不能太小。 (2)要求 2 e應使其在模 Φ (n)下的階為最大。 參數(shù) d的選擇 應使 d4n且越大越好,如 n為 1024位時, d的長度應大于 256位??傮w考慮,盡量降低 e的長度,不要降低 d的長度。 RSA算法 的 仿真 產(chǎn)生 消息摘要的 設計 在 MD5算法中,首先需要對信息進行填充,使其字節(jié)長度對 512求余的結果等于 448。因此,信息的字節(jié)長度 (Bits Length)將被擴展至 N*512+448,燕山大學本科生畢業(yè)設計 (論文 ) 12 即 N*64+56個字節(jié) (Bytes), N為一個正整數(shù)。填充的方法如下,在信息的后面填充一個 1和無數(shù)個 0,直到滿足上面的條件時才停止用 0對信息的填充。然后,在在這個結果后面附加一個以 64位二進制表示的填充前信息長度。經(jīng)過這兩步的處理,現(xiàn)在的信息字節(jié)長度 =N*512+448+64=(N+1)*512,即長度恰好是 512的整數(shù)倍。這樣做的原因是為滿足后面處理中對信息長度的要求。 MD5中有四個 32位被稱作鏈接變量的整數(shù)參數(shù),他們分別為:A=0x01234567, B=0x89abcdef, C=0xfedcba98, D=0x76543210。 當設置好這四個鏈接變量后,就開始進入算法的四輪循環(huán)運算。循環(huán)的次數(shù)是信息中 512位信息分組的數(shù)目。 將上面四個鏈接變量復制到另外四個變量中: A到 a, B到 b, C到 c, D到 d。 主循環(huán)有四輪,每輪循環(huán)都很相似。第一輪進行 16次操作。每次操作對a、 b、 c和 d中的其中三個作一次非線性函數(shù)運算,然后將所得結果加上第四個變量,文本的一個子分組和一個常數(shù)。再將所得結果向右環(huán)移一個不定的數(shù),并加上 a、 b、 c或 d中之一。最后用該結果取代 a、 b、 c或 d中之一。以一下是每次操作中用到的四個非線性函數(shù) (每輪一個 )。 第一輪 (操作 0至 15): F(X, Y, Z)=(X∧ Y)∨ ((172。X)Z) 第二輪 (操作 16至 31): G(X, Y, Z)=(X∧ Z)∨ (Y∧ (172。Z)) 第三輪 (操作 32至 47): H(X, Y, Z)=X⊕ Y⊕ Z 第四輪 (操作 48至 63): I(X, Y, Z)=Y⊕ (X∨ (172。Z)) 其中,⊕使逐位異或,∧是按位與,∨是按位或, 172。是按位取反。 這四個函數(shù)的說明:如果 X、 Y和 Z的對應位是獨立和均勻的,那么結果的每一位也應是獨立和均勻的。 F是一個逐位運算的函數(shù)。即,如果 X,那么 Y,否則 Z。函數(shù) H是逐位奇偶操作符。 假設 Mj表示消息的第 j個子分組 (從 0到 15), FF(a,b,c,d,Mj,s,ti)表示 a=b+((a+(F(b,c,d)+Mj+ti) GG(a,b,c,d,Mj,s,ti)表示 a=b+((a+(G(b,c,d)+Mj+ti) HH(a,b,c,d,Mj,s,ti)表示 a=b+((a+(H(b,c,d)+Mj+ti) II(a,b,c,d,Mj,s,ti)表示 a=b+((a+(I(b,c,d)+Mj+ti) 燕山大學本科生畢業(yè)設計 (論文 ) 13 這四輪 (64步 )是: 第一輪 FF(a,b,c,d,M0,7,0xd76aa478) FF(d,a,b,c,M1,12,0xe8c7b756) FF(c,d,a,b,M2,17,0x242070db) FF(b,c,d,a,M3,22,0xc1bdceee) FF(a,b,c,d,M4,7,
點擊復制文檔內(nèi)容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1