AFAIK,当爱丽丝想给鲍勃写一条消息时——她使用鲍勃的公钥并加密消息——然后鲍勃——使用他的私钥——用来解密它。
所以公钥用于解密,私钥用于加密。
但后来我看到了这个解释(在数字签名方面):

这里它说哈希值(签名)是用她的私钥加密的?
所以私钥不仅用于解密(发送给我的消息),还用于加密(我计算的哈希)?
AFAIK,当爱丽丝想给鲍勃写一条消息时——她使用鲍勃的公钥并加密消息——然后鲍勃——使用他的私钥——用来解密它。
所以公钥用于解密,私钥用于加密。
但后来我看到了这个解释(在数字签名方面):

这里它说哈希值(签名)是用她的私钥加密的?
所以私钥不仅用于解密(发送给我的消息),还用于加密(我计算的哈希)?
这就是“签名就像用你的私钥加密”的常见混淆。
把它忘了吧。这是一个糟糕的解释,它不起作用。它似乎只是在过去的日子里起作用,当时第一个数字签名算法(基于非对称加密)被首次描述(我说的是 RSA,它是在迪斯科时代);但即使对于 RSA,它也是不正确的,因为它没有考虑到对安全性至关重要的填充。
查看PKCS#1以了解如何使用 RSA。尤其是使用 RSA 和 1024 位密钥加密数据时,一次最多可以加密 117 个字节,但加密结果始终是 128 个字节,这正是解密引擎所期望的。无论您尝试多少,128 字节都不会小于 117 字节...
必须记住的是,私钥是用来做一些不应该被每个人都做的事情的。这意味着数据解密(任何人都可以加密发给 Bob 的消息,但只有 Bob 应该能够阅读它)和签名生成(每个人都可以验证签名,但只有 Bob 应该能够生成每个人都可以验证来自的签名)鲍勃)。
尽管有非对称加密算法可以使用与数字签名算法相同的密钥(有 RSA 加密,也有 RSA 签名,并且都使用“RSA 密钥”),但对两者使用相同的密钥并不是一个好主意。
非对称密码学可用于提供机密性和真实性。
用外行的话来说,可以计算消息的加密哈希并用他们的私钥“加密”它,以产生签名。任何拥有相应公钥的人都可以使用它来验证签名是否正确。这使我们能够证明消息是真实的。
相反,可以用公钥加密消息,只有私钥才能解密它,即使地球上的每个人都知道公钥。这使我们可以对消息进行保密。
结合起来,这两个属性允许我们进行保密交流,并确保我们正在与之交谈的人确实是我们所期望的人。
私钥是您的公钥的一个因素。通过我不太了解的数学,任何人都可以用你的公钥加密你的消息,只有你可以用你的私钥解密它。这称为 RSA 加密以供参考。
需要注意的重要一点是 RSA 需要更长的密钥才能像 AES(对称加密)一样有效,并且主要用于密钥分发。实际消息将使用 AES 加密,使用通过 RSA 分发的共享密钥。