用于加密的公钥;用于解密的私钥?

3
我理解私钥和公钥是数学相关的,使用其中一个密钥加密的数据只能用另一个密钥进行解密。我的问题是,私钥是否始终用于加密数据,而公钥则始终用于解密数据?或者反过来也可以吗?如果可以,请举例说明在反向(公钥加密和私钥解密)中使用的某些应用程序。

相关且可能解决您的问题:https://dev59.com/NFXTa4cB1Zd3GeqP2ot_ - Dante May Code
4个回答

10

加密是保持一些数据的机密性;数据被转换成不透明的块,相反的操作需要攻击者不知道的东西,即“秘密”或“私有”信息。加密的整个意义在于,只有公共信息不能进行解密; 因此解密使用私钥。然而,任何人都可以加密数据,这没有问题,因此加密可以使用公钥。

有一些算法(实际上只有一个:RSA),从 casual glance 看起来似乎是“可逆的”:您可以考虑使用私钥进行加密,公钥进行解密。如上所述,保密性就不存在了(如果解密键是公开的,则任何人都可以解密,因此加密的数据不能再被视为机密)。这样的“反向加密”可以用作数字签名算法的基础,在其中没有保密性概念,而是验证密钥所有者行动的可验证证明。

然而,RSA不仅涉及模幂。RSA加密首先通过称为“填充”的操作将输入消息转换为大整数。 RSA签名生成首先通过另一种称为“填充”的操作将输入消息转换为大整数; 这并不是完全相同的填充。填充对于安全性至关重要,所需特性在加密和签名之间非常不同。例如,加密填充需要高水平的附加随机性,而签名填充需要大量的冗余(和哈希函数,以适应长输入消息)。

将签名称为“使用私钥进行加密”是RSA标准历史上的说法(因此出现了诸如“md5WithRSAEncryption”之类的名称),但这是不准确的(填充是不同的,并且必须是不同的),并且过于具体(它仅适用于RSA,而不适用于El Gamal、DSA、Diffie-Hellman、NTRU…)。这只是一种普遍的混淆。


1
如果我想给你发送一条安全的消息,我会使用你的公钥加密消息。这样,只有你(知道私钥的人)才能解密它。

1

不仅可以使用公钥进行加密,实际上这是保密加密的正常操作模式。这是有道理的 - 任何人都可以使用公钥进行加密,只有正确的接收者才能使用他们的私钥进行解密。

在许多公钥系统中,签名在数学上类似于相反的情况 - “使用私钥加密” - 但请注意,签名操作从根本上与加密操作不同。例如,在RSA中,签名必须使用不变的、可验证的填充方法,而加密应该使用随机填充。


实际上,签名更类似于使用私钥进行解密。但是,正如您所说,它们仍然根本不同,并且具有重要的差异。无论如何,这只适用于RSA。 - forest

-1

它是可互换的。

数字签名 -> 私钥加密,公钥解密以验证发送者。

发送消息 -> 公钥加密,私钥解密,所有者读取消息。

编辑:人们似乎不同意“可互换”的定义。我需要澄清的是,我谈论的是操作的数学角度,而不是安全方面的最佳选择。当然,您应该按照其预期操作使用密钥。

然而,Henrick Hellström在SO线程中的回复解释了为什么它们在数学上是可互换的:Are public key and private key interchangeable?


5
不,它们是不可互换的。数字签名中,私钥用于“签署”,公钥用于“验证”。签名和解密有不同的工作方式,加密和验证也有不同的工作方式。 - Gilles 'SO- stop being evil'
5
不,这是完全错误的。请了解OAEP(RSA加密)与PSS(RSA签名)的区别,请比较ECDSA(签名)与ECIES(加密),了解RSA密钥生成(§B.3.1)并注意公共和私人指数是如何不同创建的。或者只需在此处阅读Thomas的答案。 - Gilles 'SO- stop being evil'
3
这是一个常被重复的谬论:这只有在教科书上的RSA(和可能还有另一个方案)中才能近似地成立,而这是非加密人员唯一知道的方案之一。对于大多数签名方案,即使你尝试,也不能使用私钥操作进行加密,同样有许多公钥加密方案也不能用于签名。请不要继续传播这个谬论。 - Ella Rose
2
@Spyros RSA在问题中并没有被提及。对于一般的公钥加密方案,“使用私钥加密”甚至都不符合语法规则。最后,RSA本身既不是加密方案也不是数字签名方案。它是一个陷门置换,可以用来构造这两个东西。 - Maeher
3
@Spyros,你的观点是错误的。你假设RSA运算仅仅是应用RSA陷门置换(使用两个随机质数之积作为模数进行模幂运算)。事实并非如此,不仅因为签名、加密和解密使用不同的指数源,而且填充(使加密系统更安全)是完全不同的。 - forest
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接