非全活跃超级S盒分析在ECHO和Grøstl中的应用
1. 入站阶段分析
入站阶段的计算步骤如下:
1. 从固定的#4A差异和给定的#2A差异,对于每个活跃字节,通过查找步骤0生成的表,获取连接这些差异的一对值。对#6A和#5A的固定s字节差异也进行相同操作。此时非活跃字节的值尚未固定。
2. 连接#4A和#5A的活跃字节的值。利用非活跃字节的自由度来实现这一点。#4A中有s个非活跃字节,#5A中有s个活跃字节,其值在步骤3中已固定。通过求解方程组,可以计算出#4A中s个非活跃字节的值,使#5A中固定的s个字节保持一致。
3. 利用#4A中固定的值,计算#5A中未固定的活跃字节,并进一步计算#6A中的相应值。将状态#2A和#6A的所有值和差异存储在一个表中。
4. 通过改变#4A中所选活跃字节的差异,将步骤1到步骤5迭代2c次。
入站阶段的复杂度:假设r和s与2c相比足够小(例如,在图4中r = 8,s = 3,2c = 256)。步骤0需要2c次计算和2c的内存。步骤1到步骤4的复杂度为1(基于假设,查找r个表和求解大小为s的方程组的成本可忽略不计)。步骤5使用1的内存。由于步骤6中步骤1到步骤5重复2c次,此过程的复杂度为时间2c和内存2c。注意,表中存储了未固定活跃字节的2c个值和差异。因此,对于未固定字节的任何差异,平均可获得1个解。
完成所有超级S盒的计算后,选择图5中#8中未固定字节的一个差异。对于其可能的2c个差异,计算#6中的相应差异,并通过查找每个超级S盒获得连接#2到#6的值。注意,对于#2和#6中的任何一对差异,平均可获得一个解。总之,可以在时间2c和内存2c的情况下获得2c个起始点,即入站阶段的解。换句话说,平均以时
超级会员免费看
订阅专栏 解锁全文
46

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



