0

我正在查看 libsodium-examples of public-key-cryptography ,似乎在加密明文时,除了接收者的公钥之外,还使用了发送者的私钥。

从相关示例中提取:

crypto_box_easy() 函数使用接收者的公钥 pk、发送者的密钥 sk 和随机数 n 加密长度为 mlen 字节的消息 m。

这有什么意义?我的理解是发件人的私钥仅在签署消息时使用?

4

2 回答 2

0

libsodium 文档引用了一个“身份验证标签”,该标签在下一节的不同章节中进行了解释:

This operation: 

 * Encrypts a message with a key and a nonce to keep it confidential.
 * Computes an authentication tag. This tag is used to make sure that
   the message hasn't been tampered with before decrypting it.

所以 libsodium 所称的身份验证标签等价于更常见的对消息进行签名的术语。crypto_box_easy(...)因此,该函数将发送者的私钥作为输入是有意义的,因为加密实际上是加密和签名。

于 2016-07-01T01:57:37.343 回答
0

数字签名用私钥加密,用公钥解密。这允许任何人使用签名者的公钥验证签名。

于 2016-06-30T21:13:52.883 回答