我读过关于使用PRF函数中的64位字的文章。
我想将32位ARX密码Chacha转换成64位版本,密钥/块大小为1024位(512*2=1024位)。
我的问题是:
我应该增加更多的回合来实现类似的安全吗?
发布于 2022-01-15 15:51:58
通常,当ARX算法从32位字变成64位字的变体时,我们确实会增加循环。正如DannyNiu所提到的,BLAKE2是ChaCha的变体,而BLAKE2s (32位版本)使用10轮,而BLAKE2b (64位版本)使用12轮。一轮BLAKE2相当于两轮ChaCha,所以我们可能希望使用64位ChaCha的24轮变体。
类似地,SHA-256和SHA-512是基于追溯命名SHACAL的分组密码的ARX设计,而SHA-512有80轮,而SHA-256有64轮。Keccak并不是一个ARX设计,但工作方式有点类似,它的32位和64位变体之间也有更多的轮回。
在这种情况下,我们添加循环的典型原因是,对于更多的位,我们必须做更多的工作,以确保每个键位或输入位都以正确的方式对所有输出位产生影响。
应该增加多少轮取决于密码的特性,例如关于雪崩效应的度量以及对线性和差分密码的抵抗。如果我们设计的算法是ChaCha的64位变体,我们将研究这些标准,并可能尝试将对ChaCha的最知名攻击扩展到我们的变体中,以了解什么样的额外级别才能具有类似的安全性。
https://crypto.stackexchange.com/questions/98096
复制相似问题