rebound(反弹)攻击技术分析

  rebound攻击技术由Florian Mendel等在2009年提出。

  rebound攻击技术是运用碰撞攻击中的可用自由度来降低追踪差分的概率。rebound攻击技术主要应用在基于分组密码,置换结构中。我们把hash函数的加密部分分为三个子部分,E = Efor  ◦ Ein  ◦ Ebw;同样的,把置换部分分为三部分 P = Pfor ◦ Pin ◦ Pbw.



上图为rebound攻击的结构图,rebound攻击主要可分为两个阶段:

  1. inbound 阶段  :入站阶段主要是使用中间相遇方法,结合s盒的差分匹配性质找到足够数量的匹配输入输出差分,开发可用自由度。为反弹阶段找到起点。

outbound 阶段:在前后两个方向运算,使用截断差分的扩散性质,有效的控制差分扩散,寻找碰撞。


原像攻击:给定输出y,找到输入x,使得H(x)=y;

第二原像攻击:给定x, y=H(x),找到任一一个x' ,使得y=H(x')且x' ≠ x;

碰撞攻击:找到任意一对输入x, x' (x' ≠ x),使得H(x)= H(x').

 截断差分:是指在分析基于S盒构造的算法时,不必考虑比特级的具体差分,只考虑字节级的差分。(也就是说,只要一个字节上有差分,则看作1,没有差分就看作0)。我们可以通过截断差分来提高分析的效率。


反弹攻击实例分析

whirlpool4.5轮压缩函数分析

 碰撞的差分路径为:

 

 攻击原理如上图所示 黑色部分表示为活跃字节。

图中第一步和第二步都是反弹的入站截断,我们通过在S2’‘和S3’‘状态的如图位置(只有在对角线位置上全部为活跃字节经过MR运算之后S盒的输入状态才能扩散为全活跃字节。S3‘’做MR的逆运算之后活跃字节也全部在对角线位置上)处引入八个活跃字节,通过遍历这八个字节(2的64次方)的取值,我们可以找到符合S盒的差分匹配的S2和S3’这两个状态值。我们能在S2和S3“分别取到2的64次方个值,所以我们能找到2的128次方个S盒输入输出对。根据S盒的差分匹配性质,S盒输入输出每比特的匹配的概率为1/2,所以在r3我们至少能找到2的64次方的输入输出对。这些状态将作为反弹截断的起点。

第三步是反弹截断。遍历每一对匹配的输入输出对,为了合理的控制前向,后向运算的差分扩散。因为经列混淆运算后,差分字节越少,差分越容易得到控制。我们仍然分别选取S盒输入输出值的第一步中固定的位置值,并且把其他字节看作非活跃状态(即差分为0)。r1和r4的MR运算将截断差分从8字节扩散到1字节,概率为2的-56次方(截断差分扩散一个非活跃字节的概率为2的-8次方)。因此,前向,后向运算的概率一共是2的-112次方。也就是说,我们大概需要执行2的112次方次运算才能找到两处匹配差分。由于只剩下1比特的值,所以该比特得到碰撞的概率为2的-8次方。所以总的来说,反弹阶段的计算复杂度为2的-120次方。

猜你喜欢

转载自blog.csdn.net/Thea_1207/article/details/81368251