DSA与RSA
在用 ssh-keygen 生成密鑰對(duì)時(shí),通常會(huì)面臨是使用RSA還是DSA的選擇:RSA or DSA, this is a question! 今天在這里分析一下:
原理與安全性
????RSA 與 DSA 都是非對(duì)稱加密算法。其中RSA的安全性是基于極其困難的大整數(shù)的分解(兩個(gè)素?cái)?shù)的乘積);DSA 的安全性是基于整數(shù)有限域離散對(duì)數(shù)難題。基本上可以認(rèn)為相同密鑰長度的 RSA 算法與 DSA 算法安全性相當(dāng)。
????有點(diǎn)要注意,RSA 的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆]有證明破解 RSA 就一定需要作大數(shù)分解。不過也不必太過擔(dān)心,RSA 從誕生以來,經(jīng)歷了各種攻擊,至今未被完全攻破(依靠暴力破解,小于1024位密鑰長度的 RSA 有被攻破的記錄,但未從算法上被攻破)。
用途:
????DSA 只能用于數(shù)字簽名,而無法用于加密(某些擴(kuò)展可以支持加密);RSA 即可作為數(shù)字簽名,也可以作為加密算法。不過作為加密使用的 RSA 有著隨密鑰長度增加,性能急劇下降的問題。
性能:
????相同密鑰長度下,DSA 做簽名時(shí)速度更快,但做簽名驗(yàn)證時(shí)速度較慢,一般情況驗(yàn)證簽名的次數(shù)多于簽名的次數(shù)。
????相同密鑰長度下,DSA (在擴(kuò)展支持下)解密密文更快,而加密更慢;RSA 正好反過來,一般來說解密次數(shù)多于加密次數(shù)。不過由于非對(duì)稱加密算法的先天性能問題,兩者都不是加密的好選擇。
業(yè)界支持:
????在業(yè)界支持方面,RSA 顯然是贏家。RSA 具有更為廣泛的部署與支持。
使用 ssh-keygen 時(shí)的選擇:
????上面說了那么多,可以看到RSA 與 DSA 各有優(yōu)缺點(diǎn)。回到開頭的問題,在使用 ssh-keygen 時(shí),RSA 與 DSA到底選哪個(gè)? 比較有意思的是,這個(gè)問題最終答案與上面那些優(yōu)缺點(diǎn)無關(guān)。雖然理論上可以生成更長長度的 DSA 密鑰 (NIST FIPS 186-3),但ssh-keygen在生成 DSA 密鑰時(shí),其長度只能為1024位(基于NIST FIPS 186-2);而 ssh-keygen 在 RSA 的密鑰長度上沒有限制。
?????由于小于1024位密鑰長度的 RSA 已經(jīng)有被攻破的記錄,所以說現(xiàn)在:RSA 2048 位密鑰是更好的選擇。
其它選擇:
????RSA 與 DSA 各有優(yōu)缺點(diǎn),那有沒一個(gè)更好的選擇呢?答案是肯定的,ECC(Elliptic Curves Cryptography):橢圓曲線算法。
????ECC 與 RSA 相比,有以下的優(yōu)點(diǎn):
(1)相同密鑰長度下,安全性能更高,如160位ECC已經(jīng)與1024位RSA、DSA有相同的安全強(qiáng)度。
(2)計(jì)算量小,處理速度快,在私鑰的處理速度上(解密和簽名),ECC遠(yuǎn) 比RSA、DSA快得多。
(3)存儲(chǔ)空間占用小 ECC的密鑰尺寸和系統(tǒng)參數(shù)與RSA、DSA相比要小得多, 所以占用的存儲(chǔ)空間小得多。
(4)帶寬要求低使得ECC具有廣泛得應(yīng)用前景。
????在 ssh-keygen 中,ECC 算法的相應(yīng)參數(shù)是 “-t ecdsa”。可惜的是由于橢圓曲線算法只有在較新版本的 openssl 與 ssh-keygen 中才被支持,而無法得到普遍使用而去完全替代 RSA/DSA。不過由于橢圓曲線算法的優(yōu)點(diǎn),使其取代 RSA/DSA 而成為新一代通用的非對(duì)稱加密算法成為可能,至少 SET 協(xié)議的制定者們已經(jīng)把它作為下一代 SET 協(xié)議中缺省的公鑰密碼算法了。
?轉(zhuǎn)載:http://blog.sina.com.cn/s/blog_6f31085901015agu.html
DES(Digital Encryption Standard. Obsolete standard)算法,好在加/解速度快,密鑰量短,采用對(duì)稱加密.
RSA(Digital Signature Algorithm. based on discrete logarithms computation)算法,好在網(wǎng)絡(luò)容易實(shí)現(xiàn)密鑰管理,便進(jìn)行數(shù)字簽名,算法復(fù)雜,加/解速度慢,采用非對(duì)稱加密
總結(jié)
- 上一篇: 全连接神经网络的两大缺陷
- 下一篇: 搜索引擎优化核心关键词策略