密碼知識(shí)教程二
RSA的選擇密文攻擊。
RSA在選擇密文攻擊面前很脆弱。一般攻擊者是將某一信息作一下偽裝(Blind),讓擁有私鑰的實(shí)體簽署。然后,經(jīng)過(guò)計(jì)算就可得到它所想要的信息。實(shí)際上,攻擊利用的都是同一個(gè)弱點(diǎn),即存在這樣一個(gè)事實(shí):乘冪保留了輸入的乘法結(jié)構(gòu):
( XM )^d = X^d *M^d mod n
前面已經(jīng)提到,這個(gè)固有的問(wèn)題來(lái)自于公鑰密碼系統(tǒng)的最有用的特征--每個(gè)人都能使用公鑰。但從算法上無(wú)法解決這一問(wèn)題,主要措施有兩條:一條是采用好的公鑰協(xié)議,保證工作過(guò)程中實(shí)體不對(duì)其他實(shí)體任意產(chǎn)生的信息解密,不對(duì)自己一無(wú)所知的信息簽名;另一條是決不對(duì)陌生人送來(lái)的隨機(jī)文檔簽名,簽名時(shí)首先使用One-Way Hash Function對(duì)文檔作HASH處理,或同時(shí)使用不同的簽名算法。在中提到了幾種不同類型的攻擊方法。
RSA的公共模數(shù)攻擊。
若系統(tǒng)中一共有一個(gè)模數(shù),只是不同的人擁有不同的e和d,系統(tǒng)將是危險(xiǎn)的。最普遍的情況是同一信息用不同的公鑰加密,這些公鑰共模而且互質(zhì),那末該信息無(wú)需私鑰就可得到恢復(fù)。設(shè)P為信息明文,兩個(gè)加密密鑰為e1和e2,公共模數(shù)是n,則:
C1 = P^e1 mod n
C2 = P^e2 mod n
密碼分析者知道n、e1、e2、C1和C2,就能得到P。
因?yàn)閑1和e2互質(zhì),故用Euclidean算法能找到r和s,滿足:
r * e1 + s * e2 = 1
假設(shè)r為負(fù)數(shù),需再用Euclidean算法計(jì)算C1^(-1),則
( C1^(-1) )^(-r) * C2^s = P mod n
另外,還有其它幾種利用公共模數(shù)攻擊的方法??傊绻澜o定模數(shù)的一對(duì)e和d,一是有利于攻擊者分解模數(shù),一是有利于攻擊者計(jì)算出其它成對(duì)的e’和d’,而無(wú)需分解模數(shù)。解決辦法只有一個(gè),那就是不要共享模數(shù)n。
RSA的小指數(shù)攻擊。 有一種提高RSA速度的建議是使公鑰e取較小的值,這樣會(huì)使加密變得易于實(shí)現(xiàn),速度有所提高。但這樣作是不安全的,對(duì)付辦法就是e和d都取較大的值。
RSA算法是第一個(gè)能同時(shí)用于加密和數(shù)字簽名的算法,也易于理解和操作。RSA是被研究得最廣泛的公鑰算法,從提出到現(xiàn)在已近二十年,經(jīng)歷了各種攻擊的考驗(yàn),逐漸為人們接受,普遍認(rèn)為是目前最優(yōu)秀的公鑰方案之一。RSA的安全性依賴于大數(shù)的因子分解,但并沒(méi)有從理論上證明破譯RSA的難度與大數(shù)分解難度等價(jià)。即RSA的重大缺陷是無(wú)法從理論上把握它的保密性能如何,而且密碼學(xué)界多數(shù)人士?jī)A向于因子分解不是NPC問(wèn)題。
RSA的缺點(diǎn)主要有:A)產(chǎn)生密鑰很麻煩,受到素?cái)?shù)產(chǎn)生技術(shù)的限制,因而難以做到一次一密。B)分組長(zhǎng)度太大,為保證安全性,n 至少也要 600 bits以上,使運(yùn)算代價(jià)很高,尤其是速度較慢,較對(duì)稱密碼算法慢幾個(gè)數(shù)量級(jí);且隨著大數(shù)分解技術(shù)的發(fā)展,這個(gè)長(zhǎng)度還在增加,不利于數(shù)據(jù)格式的標(biāo)準(zhǔn)化。目前,SET(Secure Electronic Transaction)協(xié)議中要求CA采用2048比特長(zhǎng)的密鑰,其他實(shí)體使用1024比特的密鑰。
DSS/DSA算法
Digital Signature Algorithm
(DSA)是Schnorr和ElGamal簽名算法的變種,被美國(guó)NIST作為DSS(Digital SignatureStandard)。算法中應(yīng)用了下述參數(shù):
p:L bits長(zhǎng)的素?cái)?shù)。L是64的倍數(shù),范圍是512到1024;
q:p - 1的160bits的素因子;
g:g = h^((p-1)/q) mod p,h滿足h < p - 1, h^((p-1)/q) mod p > 1;
x:x < q,x為私鑰 ;
y:y = g^x mod p ,( p, q, g, y )為公鑰;
H( x ):One-Way Hash函數(shù)。DSS中選用SHA( Secure Hash Algorithm )。
p, q,
g可由一組用戶共享,但在實(shí)際應(yīng)用中,使用公共模數(shù)可能會(huì)帶來(lái)一定的威脅。簽名及驗(yàn)證協(xié)議如下:
1. P產(chǎn)生隨機(jī)數(shù)k,k < q;
2. P計(jì)算 r = ( g^k mod p ) mod q
s = ( k^(-1) (H(m) + xr)) mod q
簽名結(jié)果是( m, r, s )。
3. 驗(yàn)證時(shí)計(jì)算 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,則認(rèn)為簽名有效。
DSA是基于整數(shù)有限域離散對(duì)數(shù)難題的,其安全性與RSA相比差不多。DSA的一個(gè)重要特點(diǎn)是兩個(gè)素?cái)?shù)公開(kāi),這樣,當(dāng)使用別人的p和q時(shí),即使不知道私鑰,你也能確認(rèn)它們是否是隨機(jī)產(chǎn)生的,還是作了手腳。RSA算法卻作不到。
相關(guān)文章
關(guān)于動(dòng)網(wǎng)的cookie瀉露站點(diǎn)絕路徑的問(wèn)題
關(guān)于動(dòng)網(wǎng)的cookie瀉露站點(diǎn)絕路徑的問(wèn)題...2006-09-09分析攻擊IP來(lái)源地與防御IP攻擊的應(yīng)對(duì)策略
今天小編就為大家分享一篇關(guān)于分析攻擊IP來(lái)源地并畫(huà)出餅圖的文章,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-09-09四個(gè)步驟加強(qiáng)網(wǎng)絡(luò)防護(hù)
四個(gè)步驟加強(qiáng)網(wǎng)絡(luò)防護(hù)...2006-09-09跨站式腳本(Cross-SiteScripting)XSS攻擊原理分析
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁(yè)面里插入惡意html代碼,當(dāng)用戶瀏覽該頁(yè)之時(shí),嵌入其中Web里面的html代碼會(huì)被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。2008-09-09