Encryption DSA和RSA之间有什么区别?

Encryption DSA和RSA之间有什么区别?,encryption,rsa,key,dsa,Encryption,Rsa,Key,Dsa,看起来它们都是需要公钥和私钥的加密算法。为什么我要选择一个而不是另一个来在客户端服务器应用程序中提供加密?检查 我以前的答案似乎错了顺便说一句,你不能用DSA加密,只能签名。尽管它们在数学上是等价的(或多或少),但实际上不能将DSA用作加密方案,只能用作数字签名方案。参考man ssh keygen,DSA密钥的长度被限制为1024位,以保持与NIST的FIPS 186-2兼容。尽管如此,更长的DSA密钥在理论上是可能的;FIPS 186-3明确允许它们。此外,1024位长的RSA或DSA密钥不

看起来它们都是需要公钥和私钥的加密算法。为什么我要选择一个而不是另一个来在客户端服务器应用程序中提供加密?

检查


我以前的答案似乎错了

顺便说一句,你不能用DSA加密,只能签名。尽管它们在数学上是等价的(或多或少),但实际上不能将DSA用作加密方案,只能用作数字签名方案。

参考
man ssh keygen
,DSA密钥的长度被限制为1024位,以保持与NIST的FIPS 186-2兼容。尽管如此,更长的DSA密钥在理论上是可能的;FIPS 186-3明确允许它们。此外,1024位长的RSA或DSA密钥不再保证安全性

总之,2048位RSA密钥目前是最佳选择。

采取更多预防措施 建立安全的SSH连接比选择安全的加密密钥对技术需要更多的。鉴于爱德华·斯诺登(Edward Snowden)被国家安全局(NSA)揭露的事实,人们必须比以前认为足够的更加警惕

举一个例子,使用安全的密钥交换算法同样重要。这是一个很好的当前概述。

参考

RSA
RSA加密和解密是可交换的
因此,它可以直接用作数字签名方案
给定一个RSA方案{(e,R),(d,p,q)}
要对消息M签名,请计算:
S=M功率d(模数R)
要验证签名,请计算:
M=S功率e(模R)=M功率e.d(模R)=M(模R)

RSA可用于加密和数字签名, 只需颠倒指数的使用顺序: 创建签名的秘密指数(d),公共指数(e) 供任何人验证签名。其他一切都是一样的。

DSA(数字签名算法)
DSA是ElGamal和Schnorr算法的变体。 它创建一个320位的签名,但具有512-1024位的安全性 同样地,这取决于计算离散对数的难度 已经被广泛接受。

DSA密钥生成
首先选择共享的全局公钥值(p、q、g):
选择一个大素数p=2次方L
其中L=512到1024位,是64的倍数
选择q,p-1的160位素数因子
选择g=h功率(p-1)/q
对于任何h1
然后每个用户选择一个私钥并计算其公钥:

选择x,除了上面漂亮的答案之外

  • DSA使用离散对数
  • RSA使用整数分解

RSA代表RonRivest、AdiShamir和LeonardAdleman.

那么这是否意味着如果要加密的数据量很大,使用RSA会运行得更快?不,相反。DSA在签名方面的速度更快(从数学上讲,这或多或少等于加密),因此,如果必须经常加密和解密,DSA会更快。许多数据需要在客户端加密,但在服务器上只解密一次,所以DSA仍然会赢?DSA不加密。重复,DSA不加密。这里有一个小测验:DSA中的“s”是什么意思?@GregS RSA能够加密还是DSA不能加密主要是一个术语问题。我们将几种不同的算法称为RSA,其中一些是带符号的(例如RSA-PSS),一些是加密的(例如RSA-OAEP)。但是我们给基于组的加密中的每一种算法都赋予了不同的名称,调用其中一种加密算法ElGamal encryption并调用其中一种签名算法DSA。一些较旧版本的
ssh-keygen
也允许使用其他位大小的密钥(我自己使用在RHEL上使用
ssh-keygen
生成的2048位DSA密钥)。如所述,DSA不是用于加密,只是用于签名。指向您的引用的链接的可能重复项已断开