首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >否定随机64位当前的风险

否定随机64位当前的风险
EN

Cryptography用户
提问于 2017-07-10 15:25:05
回答 1查看 386关注 0票数 4

如果一个流密码(如Chacha20 )使用64位的nonce,那么使用随机的nonce将是不安全的,因为它有意外重复的风险(如果用相同的密钥重复两次将是灾难性的)。在不使用简单计数器的环境中,请考虑以下构造:

  • staticKey: 256位加密安全伪随机密钥
  • perEncryptionSalt: 128位随机盐
  • perEncryptionKey:香港国防军(staticKey,perEncryptionSalt,info)
  • perEncryptionNonce: 64位随机数

密文= chacha20(clearText,perEncryptionKey,perEncryptionNonce)

盐和现在将被附加到密文和包括在mac中。考虑到每次加密都会改变密钥(因此不太可能与同一次加密一起使用),这种结构安全吗?我知道XChacha20 20/XSalsa20 20,他们已经解决了这个问题,但我还是很好奇。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2017-07-10 15:46:20

如果不看代码,我会说您的构造与XChaCha20基本相同:

来自https://download.libsodium.org/doc/advanced/xchacha20.html

在内部,XChaCha20的工作方式类似于计数器模式中使用的块密码。它使用HChaCha20哈希函数从原始键和扩展的nonce派生子键和子键,以及专用的64位块计数器,以避免在每个块之后增加nonce。

(强调地雷)

我不确定这个HChaCha20哈希函数是否有任何特定的属性,但是使用HKDF可能是很好的。

这里是关于XSalsa20的论文。应该有可能修改安全证明。

票数 6
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/50028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档