Birthday_Attack

本次实验我们攻击的是32位输出的SM3函数

此处攻击我们使用自写SM3函数,之后选取足够多的随机字符串(此处为$2^{16}$),将其经过SM3的值均存储于一个集合中,之后来判断集合中的元素是否有重复, 若有重复即视为攻击成功。我们可以很容易反推两个原像。

Rho_Attack

针对此次攻击,我们在每一次循环中随机选取一个字符串,令其过一遍SM3函数,若它的结果已经存在于结果数组中,则证明攻击成功,倘若不在,则将其加入到数组中进行下一次循环。

细节问题请移步具体文件夹