首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么数字签名需要不同的算法

为什么数字签名需要不同的算法
EN

Security用户
提问于 2018-10-21 06:47:17
回答 1查看 240关注 0票数 2

为什么数字签名使用DSA、ECDSA或RSA-PSS等算法,而不仅仅是RSA算法来用私钥加密消息哈希?选择是否与安全性或性能有关?

EN

回答 1

Security用户

回答已采纳

发布于 2018-10-22 07:10:59

当您直接使用数学原语时,它通常容易受到数学关系的影响。从$d或$e$模$n$运算(有时称为“教科书RSA”或“普通RSA”)有一个简单的数学结构,因此很容易找到它允许的一些转换。例如,假设您知道消息$M_1$的签名是$S_1$,而$M_2$的签名是$S_2$。那么$M_1 \cdot M_2$的签名是$S_1 \cdot S_2$,因为$S_1 S_2 = M_1^d M_2^d = (M_1 M_2)^d$ (所有等式都是$\mod n$)。您可以在不知道私钥的情况下伪造签名。那可不好。这位是只是一个例子

在此之前,PSS和PKCS#1 v1.5填充之类的构造避免了这种数学关系。他们将每条消息编码成这样一种方式,即有效编码消息之间没有简单的算术转换。PKCS#1 v1.5通过填充消息来实现这一点。例如,它避免了上述攻击,因为$\mathrm{pad}(M_1) \cdot \mathrm{pad}(M_2)$不是有效的填充消息,因此$S_1 \cdot S_2$不是任何东西的签名。PSS通过屏蔽消息,然后填充结果,以一种更复杂的方式完成这一任务。

因此,普通RSA和签名方案RSASSA-PKCS1-v1_5和RSASSA的区别在于安全性。普通RSA作为一个签名方案有许多安全漏洞,而RSASSA-PKCS1-v1_5和RSASSA都被认为是安全的。有理由选择PSS: v1.5填充已经知道了加密问题,并且有可能有人会找到一种方法来使攻击适应签名。另外,v1.5的签名是很难正确地实现即使在20年后,一些实现也不能正确地实现它;PSS的细微之处较少。

在RSA-PSS、DSA和ECDSA之间,没有特别的安全理由来选择一个而另一个。这主要取决于性能和实现的易用性。DSA速度较慢;当有人担心可能适用于RSA的专利时,这些专利已经过期,DSA正在消亡。大多数新协议都支持ECDSA (或较新的变体EdDSA)。ECDSA密钥和签名比RSA小,RSA在嵌入式设备和超低带宽通信协议中起着重要作用.ECDSA签名也比RSA签名快得多,但RSA的验证速度略快一些。

票数 2
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/196084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档