实验目的

利用长度扩展攻击SM3。

攻击流程

1.随机选取字符串m(此处为1234),使用SM3加密得到其hash值h。

2.随机选取字符串m2(此处为5678),作为扩展攻击的字符串备用。

3.首先计算出m扩展后的与m2拼接的字符串m1(此处为1234800...00105678),计算出m1的hash值h1,来作为正确答案以备后用。

4.在m2前面补充数量为M长度的0,之后以h作为初始向量进行加密,即可得到长度扩展攻击的hash值。之后与正确答案对比发现攻击成功。

实验结果

数组第一个为原始hash,后两个为长度扩展后的hash。

image