Baby-step giant-step
这一方法又被称为小步大步法,用了中间相遇攻击的思想,将时间复杂度为o(n),空间复杂度o(1),折中为(o(sqrt(n)).例如给定 y≡gx (mod n)令x=m*i+j 其中m=sqrt(n),i,和j 都小于m,(这是因为x>n的话会发生冗余)那么就可以得到:y≡gx (mod n)=>y≡gm*i+j (mod n) =>y*g-mi ≡gj(mod n)这样的话,就可以先枚举j 将所有的结果保存下来,然后在去枚举i, 对gj 的值进行碰撞,碰撞成功后即可得到i,j,
原创
2020-08-04 14:31:09 ·
147 阅读 ·
0 评论