FORK - 256压缩函数的密码分析与碰撞查找策略
1. FORK - 256压缩函数的近碰撞分析
在对FORK - 256压缩函数的研究中,我们首先关注其七步简化版本。该简化版本保留了两次加法、异或和前馈操作,但去掉了第八步(除寄存器的最终置换外)。起初,我们可能认为能找到针对这个七步简化版本的碰撞,但实际上并非如此。在内部寄存器$A_{j,7}$中会存在差异,这些差异的最低位与最初引入的差异$d$的最低位在相同位置(在我们的例子中是第三最低有效位)。这些位在第一、二分支和最后两个分支的加法操作中左移,异或操作会消除它们,但由于前馈操作,差异位会在之前的位置重新出现,无法消除。
因此,我们寻求1 - 比特近碰撞,其概率估计如下:选择第七步之前的随机内部状态(即四个分支中每个分支的$A_{j,6}$、$B_{j,6}$、$C_{j,6}$和$D_{j,6}$值),运行第七步变换和重组机制。经过$2^{32}$次实验,平均有8.96个非零位。1 - 比特近碰撞的概率估计为$2^{-15}$(在$2^{32}$次实验中,有127665个输出是1 - 比特近碰撞)。由于上一节给出的算法在$2^{30}/P_{6d}=2^{49}$次哈希计算中输出$2^{32}$个正确值,因此找到一组$2^{17}$个不同的1 - 比特近碰撞的复杂度约为$2^{49}$次哈希计算。
对于完整压缩函数的近碰撞,之前段落研究的算法以$2^{49}$次哈希计算的复杂度输出FORK - 256输出在八个32位字中的四个上碰撞的$2^{32}$对。在第二个字中仍有一位差异(在固定位置),还需要消除三个32位字。实验发现,第二个字上1 - 比特近碰撞的概率为$2^{-15}$,对于$d = 0x0000404$,
超级会员免费看
订阅专栏 解锁全文
171万+

被折叠的 条评论
为什么被折叠?



