SSH密钥对生成:RSA还是DSA?

SSH支持密钥对的两个签名algorithm:RSA和DSA。 哪一个是首选的,如果有的话? 对于RSA,最小可接受的密钥长度是多less?

RSA通常是首选的(现在专利问题已经结束),因为它可以达到4096比特,其中DSA必须正好是1024比特(在ssh-keygen看来)。 2048位是ssh-keygen对于RSA密钥的默认长度,我没有看到使用较短的默认长度。 (可能的最小值是768位,我认为这是“可接受的”是情景的。)

这不是关于对称或非对称encryption。 这是关于特定的algorithm(RSA和DSA)需要更高的位数来达到可接受的安全级别。 例如,ECC也是一种非对称encryption,但是它比RSA或DSA在低得多的位数上提供了很好的安全性。

如果你有最近的SSH实现,你也可以考虑ECDSA!

银行用于SSL连接的256位证书是对称密钥,如3DES或AES,因此位数较低。 当你看到1024和2048(甚至4096)这些是不对称的密码。

与RSA密钥相比,DSA密钥的签名要短得多(对于相同的“安全级别”),所以使用DSA的一个原因是在受限制的环境中。