私はlibsodiumの公開鍵暗号の例を見ています。平文を暗号化するときに受信者の公開鍵に加えて送信者の秘密鍵が使われているようです。関連exampleから暗号化に送信者の秘密鍵が使用されるのはなぜですか?
エキス:
crypto_box_easy()関数は、受信者の公開鍵pk、送信者の秘密鍵sk とノンスNと、その長さ MLENバイトであるメッセージMを暗号化します。
この点は何ですか?私の理解は、送信者の秘密鍵はメッセージに署名するときにのみ使用されたということでした。
私はlibsodiumの公開鍵暗号の例を見ています。平文を暗号化するときに受信者の公開鍵に加えて送信者の秘密鍵が使われているようです。関連exampleから暗号化に送信者の秘密鍵が使用されるのはなぜですか?
エキス:
crypto_box_easy()関数は、受信者の公開鍵pk、送信者の秘密鍵sk とノンスNと、その長さ MLENバイトであるメッセージMを暗号化します。
この点は何ですか?私の理解は、送信者の秘密鍵はメッセージに署名するときにのみ使用されたということでした。
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