我正在通过libsodium-公用密钥密码术的实例进行研究,并且在加密明文时,似乎除了接收者公钥之外,还使用了发送者私钥。从相关example为什么发件人在加密中使用私钥?
提取物:
的crypto_box_easy()函数加密消息m的长度为 MLEN字节,用接收者的公钥pk,一个发送者的秘密密钥sk 和现时值。
这是什么意思?我的理解是发件人私钥只在签署邮件时使用过?
我正在通过libsodium-公用密钥密码术的实例进行研究,并且在加密明文时,似乎除了接收者公钥之外,还使用了发送者私钥。从相关example为什么发件人在加密中使用私钥?
提取物:
的crypto_box_easy()函数加密消息m的长度为 MLEN字节,用接收者的公钥pk,一个发送者的秘密密钥sk 和现时值。
这是什么意思?我的理解是发件人私钥只在签署邮件时使用过?
的libsodium文档是指“认证标签”,这是一个different chapter在下面的章节解释说:
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(...)
函数将发件人私钥作为输入是有意义的,因为加密确实是加密和签名。
好吧,我想我对公钥密码学的把握是缺乏的。我会做一些阅读... – PureW
@zaph但是为什么在使用发件人私钥的例子中加密代码为“crypto_box_easy()”? – PureW
你将不得不知道用例。 – zaph