利用长度扩展攻击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。