encryption - libsodium xchacha20poly1305 header 敏感吗?

标签 encryption libsodium

我正在使用 libsodium 通过 xchacha20poly1305 结构加密文件。我按照文档 (https://download.libsodium.org/doc/secret-key_cryptography/secretstream.html) 使一切正常工作,但现在我想知道 header 数据的作用。

crypto_secretstream_xchacha20poly1305_init_pull 需要来自 crypto_secretstream_xchacha20poly1305_state 的 header ,该 header 在数据加密时使用,那么我应该如何处理 header 数据?它是否与 AES 的 iv/nonce 一样,它需要并且可以与加密数据一起分发,还是像 key 一样保密?

我意识到这很可能是一个新手问题,但由于我显然不是加密专家,所以我想确保我使用了 libsodium 和正确的构造。

谢谢!

最佳答案

这是一个很老的问题,但由于它仍在等待答案,所以就在这里。

header 确实是一个随机数。它不必是 secret 的。但这是必需的,这样如果同一个流被加密两次,两个密文看起来将完全不同。

关于encryption - libsodium xchacha20poly1305 header 敏感吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49815777/

相关文章:

javascript - 在 libsodium 中使用哪种 key 对类型?各自有什么不同的能力?

c - ARMv5 上的 libsodium 段错误

用于文件 AES 加密/解密的 Java 类

java - 如何去掉 PKCS7Padding 中的零

c++ - 尝试打印文件的十六进制 Blake2 哈希时出现一个非常奇怪的错误

cryptography - libsodium AEAD 实现背后的决定

c# - NSec.Cryptography 使用 ChaCha20Poly1305 和 SharedSecret 进行加密和解密

encryption - 量子计算和加密破解

c - 使用 C 中的密码使用 openssl 加密文件

java - 生成签名和加密的 JWT