部分SHA - 3候选算法约化轮压缩函数近碰撞查找方法研究
1. 爬山算法介绍
1.1 算法流程
首先随机选择一个链接值(CV),计算 $f_{M_1,M_2}(CV)$。接着在集合 $S_k^{CV}$ 中搜索,以找到更优的链接值。若找到,就更新候选值,然后在新候选值的 k 位邻域内重新开始搜索。当获得 k - 最优链接值时,算法终止。其伪代码如下:
Algorithm 1. HillClimbing(M1, M2, k)
Randomly select CV ;
fbest = fM1,M2(CV );
while (CV is not k - opt)
CV = x such that x ∈ SkCV with f(x) < fbest;
fbest = fM1,M2(CV );
return (CV, fbest)
1.2 候选值选择方式
给定当前的 CV,下一个候选值有两种选择方式:
- 贪心梯度上升法 :选择第一个具有更低 f 值的链接值。
- 最陡上升法 :选择 $S_k^{CV}$ 中最优的链接值。
初步实验表明,在相同运行时间和参数 k 的情况下,贪心方法能得到更好的近碰撞结果。例如,对于 2 轮压缩函数 Blake,贪心方法的结果平均比最陡上升法好 2%。
1.3 参数 k 的选择
搜索 $S_k^{CV}$ 时,较大的 k(> 3)值可能得
超级会员免费看
订阅专栏 解锁全文

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



