Hamsi - 256短消息第二原像查找攻击解析
攻击复杂度评估
在对Hamsi - 256的攻击中,为避免无用计算,主要采用位操作而非32位寄存器操作,同时可通过构建多个系统利用并行性。评估攻击复杂度的合适指标是所涉及的基本按位操作(与、或、异或)的数量,经分析Hamsi - 256压缩函数的按位操作约为10500次。
攻击步骤及复杂度如下:
1. 步骤1 - 3 :属于设置步骤,与其他步骤相比复杂度可忽略不计。辅助变量的选择在大范围系统中可以相同,其对中间内部状态影响部分的研究可预先计算,复杂度也可忽略。
2. 步骤4 :涉及约2/3轮压缩函数的计算。经仔细分析,7变量系统需5248次操作,8变量系统需4852次操作。
3. 步骤5 :每个辅助变量最多计算7个第二轮S盒,第二轮扩散层每个变量最多进行7×20 = 140次异或操作,28个系统最多需1120次基本操作。
4. 步骤6 :对不同辅助变量值,在第2轮和第3轮之前对某些S盒的输入值进行异或操作。变量值按格雷码选择可减少重复计算,7变量系统需7 + 4×45 = 187次异或,8变量系统需7 + 4×34 = 143次异或。
5. 步骤7 :评估系统的常数系数,通过计算压缩函数输出的某些部分并结合第二轮输出恢复系数,每系统需473 + 54 + 28 = 555(7变量系统)或328 + 37 + 22 = 387(8变量系统)次操作。
6. 步骤8 :恢复