首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用已知的明文,ChaCha20块函数是否可逆?

使用已知的明文,ChaCha20块函数是否可逆?
EN

Cryptography用户
提问于 2020-02-15 09:17:48
回答 2查看 2.5K关注 0票数 7

最近,我用chacha20实现了Poly1305流密码。由于构成第四轮chacha20 (ARX -加法旋转Xor)的核心操作确实是可逆的,如果攻击者知道该函数生成的512位密钥流,或者通过已知的明文攻击XORing生成的明文攻击已知的明文,那么是否可以逆转ChaCha20?

我理解使用处理器友好的ARX作为核心的Chacha20的设计,使得它非常高效、快速和安全,因此被广泛采用,我也对它提供的混乱和扩散很有信心。

但是,如果不是经典的计算机,它在量子计算机面前是可逆的吗?

对不起,如果我的担心是天真的!

EN

回答 2

Cryptography用户

发布于 2020-02-15 15:12:23

目前还没有已知的攻击。

使用已知的明文,您可以通过XORing明文和密文获取密钥流。

但作为keystream =矩阵前任何一轮(输入状态)+矩阵后20轮(混合ARXed状态)。

你不能轻易地把它们分开来得到钥匙。

票数 1
EN

Cryptography用户

发布于 2021-10-22 17:03:43

chacha20不容易受到已知的明文攻击。

https://datatracker.ietf.org/doc/html/rfc7539#section-2.3.2

这是chacha20的过程。第一行是常数“展开32字节k”,因为小印度十六进制。第二行和第三行你的加密密钥。第4行块号和现在。你有初始矩阵:

代码语言:javascript
复制
 ChaCha state with the key setup. Matrix X

       61707865  3320646e  79622d32  6b206574
       03020100  07060504  0b0a0908  0f0e0d0c
       13121110  17161514  1b1a1918  1f1e1d1c
       00000001  09000000  4a000000  00000000

然后执行20轮chacha操作

20轮后的ChaCha状态-矩阵X^20

代码语言:javascript
复制
   837778ab  e238d763  a67ae21e  5950bb2f
   c4f2d0c7  fc62bb2f  8fa018fc  3f5ec7b7
   335271c2  f29489f3  eabda8fc  82e46ebd
   d19c12b4  b04e16de  9e83d0cb  4e3c50a2

然后你把X+X^20和得到XOR_MATRIX。

ChaCha操作结束时的ChaCha20状态- XOR_MATRIX

代码语言:javascript
复制
   e4e7f110  15593bd1  1fdd0f50  c47120a3
   c7f4d1c7  0368c033  9aaa2204  4e6cd4c3
   466482d2  09aa9f07  05d7c214  a2028bd9
   d19c12b5  b94e16de  e883d0cb  4e3c50a2

加密操作是XOR_MATRIX和明文之间的异或。

即使您有XOR_MATRIX,您也无法获得键和值,因为使用了求和操作(X+X^20 = XOR_MATRIX)。1个已知变量(XOR_MATRIX和2个未知变量(X和X^20)

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

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

复制
相关文章

相似问题

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