密碼知識教程二

2022-10-07 13:12:09 字數 2334 閱讀 9572

rsa的選擇密文攻擊。 

rsa在選擇密文攻擊面前很脆弱。一般攻擊者是將某一資訊作一下偽裝(blind),讓擁有私鑰的實體簽署。然後,經過計算就可得到它所想要的資訊。實際上,攻擊利用的都是同乙個弱點,即存在這樣乙個事實:乘冪保留了輸入的乘法結構: 

( xm )^d = x^d *m^d mod n 

前面已經提到,這個固有的問題來自於公鑰密碼系統的最有用的特徵--每個人都能使用公鑰。但從演算法上無法解決程式設計客棧這一問題,主要措施有兩條:一條是採用好的公鑰協議,保證工作過程中實體不對其他實體任意產生的資訊解密,不對自己一無所知的資訊簽名;另一條是決不對陌生人送來的隨機文件簽名,簽名時首先使用one-way hash function對文件作hash處理,或同時使用不同的簽名演算法。在中提到了幾種不同型別的攻擊方法。    

rsa的公共模數攻擊。 

若系統中共有乙個模數,只是不同的人擁有不同的e和d,系統將是危險的。最普遍的情況是同一資訊用不同的公鑰加密,這些公鑰共模而且互質,那末該資訊無需私鑰就可得到恢復。設p為資訊明文,兩個加密金鑰為e1和e2,公共模數是n,則: 

c1 = p^e1 mod n 

c2 = p^e2 mod n 

密碼分析者知道n、e1、e2、c1和c2,就能得到p。 

因為e1和e2互質,故用euclidean演算法能找到r和s,滿足: 

r * e1 + s * e2 = 1 

假設r為負數,需再用euclidean演算法計算c1^(-1),則 

( c1^(-1) )^(-r) * c2^s = p mod n 

另外,還有其它幾種利用公共模數攻擊的方法。總之,如果知道給定模數的一對e和d,一是有利於攻擊者分解模數,一是有利於攻擊者計算出其它成對的e'和d',而無需分解模數。解決辦法只有乙個,那就是不要共享模數n。 

rsa的小指數攻擊。 有一種提高rsa速度的建議是使公鑰e取較小的值,這樣會使加密變得易於實現,速度有所提高。但這樣作是不安全的,對付辦法就是e和d都取較大的值。 

rsa演算法是第乙個能同時用於加密和數字簽名的演算法,也易於理解和操作。rsa是被研究得最廣泛的公鑰演算法,從提出到現在已近二十年,經歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優秀的公鑰方案之一。rsa的安全性依賴於大數的因子分解,但並沒有從理論上證明破譯rsa的難度與大數分解難度等價。即rsa的重大缺陷是無法從理論上把握它的保密性能如何,而且密碼學界多數人士傾向於因子分解不是npc問題。 

rsa的缺點主要有:a)產生金鑰很麻煩,受到素數產生技術的限制,因而難以做到一次一密。b)分組長度太大,為保證安全性,n 至少也要 600 bits以上,使運算代價很高,尤其是速度較慢,較對稱密碼演算法慢幾個數量級;且隨著大數分解技術的發展,這個長度還在增加,不利於資料格式的標準化。目前,set(secure electronic transaction)協議中要求ca採用2048比特長的金鑰,其他實體使用1024位元的金鑰。 

dss/dsa演算法 

digital signa程式設計客棧ture algorithm 

(dsa)是schnorr和elgamal簽名演算法的變種,被美國nist作為dss(digital signaturestandard)。演算法中應用了下述引數: 

p:l bits長的素數。l是64的倍數,範圍是512到1024; 

q:p - 1的160bits的素因子; 

g:g = h^((p-1)/q) mod p,h滿足h  1; 

x:x y:y = g^x mod p ,( p, q, g, y )為公鑰; 

h( x ):one-way hash函式。dss中選用sha( secure hash algorithm )。 

p, q, 

g可由一組使用者共享,但在實際應用中,使用公共模數可能會帶來一定的威脅。簽名及驗證協議如下: 

1. p產生隨機數k,k 2. p計算 r = ( g^k mod p ) mod q 

s = ( k^(-1) (h(m) + xr)) mod q 

簽名結果是( m, r, s )。 

3. 驗證時計算 w = s^(-1)mod q 

u1程式設計客棧 = ( h( m ) * w ) mod q 

u2 = ( r * w ) mod q 

v = (( g^u1 * y^u2 ) mod p ) mod q 

若v = r,則認為簽名有效。 

dsa是基於整數有限域離散對數難題的,其安全性與rsa相比差不多。dsa的乙個重要特點是兩個素數公開,這樣,當使用別人的p和q時,即使不知道私鑰,你也能確認它們是否是隨機產生的,還是作了手腳。rsa演算法卻作不到。

本文標題: 密碼知識教程二

本文位址: /wangluo/safe/20695.html

密碼學基礎知識(二)密碼體制

密碼體制五元組 m,c,k,e,d 分別是明文,密文,金鑰,加密,解密。咱們基本目的就是,有明文m,經過加密金鑰k加密就能得到密文c。但是有密文c卻沒有解密金鑰就不能得到明文m。大家看見了解密金鑰和加密金鑰,想這是怎麼回事呢。原來,密碼體制有兩大正派,一是對稱密碼體制,就是單鑰密碼體制,加密和解密金...

密碼學初級教程(二)對稱密碼

密碼學家工具箱中的6個重要的工具 編碼 將現實世界中的東西對映為位元序列的操作成為編碼。xor 異或運算,同零異一,0xor0 0,0xor1 1,1xor0 1,1xor1 0 異或的性質 a異或b異或b為a。一次性密碼本 絕對不會被破譯的密碼 定義 將明文與一串與明文等長的位元序列進行異或運算。...

密碼演算法知識

收集相關小知識 搜尋到的有用文章 最近在看密碼演算法的相關知識,要寫會話秘鑰的相關 1 alice 與 bob 協商會話金鑰。採用公鑰密碼體系 公鑰加密演算法也稱非對稱秘鑰演算法 通過自選密碼庫實現金鑰協商 10 分 session key 每次通訊只能使用一次的 會話金鑰也稱為資料加密金鑰或者工作...