最近,我用chacha20实现了Poly1305流密码。由于构成第四轮chacha20 (ARX -加法旋转Xor)的核心操作确实是可逆的,如果攻击者知道该函数生成的512位密钥流,或者通过已知的明文攻击XORing生成的明文攻击已知的明文,那么是否可以逆转ChaCha20?
我理解使用处理器友好的ARX作为核心的Chacha20的设计,使得它非常高效、快速和安全,因此被广泛采用,我也对它提供的混乱和扩散很有信心。
但是,如果不是经典的计算机,它在量子计算机面前是可逆的吗?
对不起,如果我的担心是天真的!
发布于 2020-02-15 15:12:23
目前还没有已知的攻击。
使用已知的明文,您可以通过XORing明文和密文获取密钥流。
但作为keystream =矩阵前任何一轮(输入状态)+矩阵后20轮(混合ARXed状态)。
你不能轻易地把它们分开来得到钥匙。
发布于 2021-10-22 17:03:43
chacha20不容易受到已知的明文攻击。
https://datatracker.ietf.org/doc/html/rfc7539#section-2.3.2
这是chacha20的过程。第一行是常数“展开32字节k”,因为小印度十六进制。第二行和第三行你的加密密钥。第4行块号和现在。你有初始矩阵:
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
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
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)
https://crypto.stackexchange.com/questions/77628
复制相似问题