密码杂凑算法是3类基础密码算法之一,它可以将任意长度的消息压缩成固定长度的摘要,主要用于数字签名和数据完整性保护等。目前最著名且使用最多的杂凑算法就是SHA-2系列算法,而国密算法中的SM3也同为密码杂凑算法。下面我们就以SHA-2为对比,来了解一下SM3算法有哪些特点。

SM3算法简介

SM3是国密算法中唯一的杂凑密码算法,采用Merkle-Damgard结构,消息分组长度为512bit,输出摘要长度256bit。主要用于数字签名及验证、消息认证码生成及验证、随机数生成等。在相同条件下,SM3整体性能和SHA-256相似。

SM3

SM3算法的性能

运行速度

SM3

当消息长度为16字节,SM3执行速度是最高的。

当消息长度大于等于64字节,SM3执行速度和SHA-256相当,高于其他的。

X64环境下,当消息长度等于64字节,SM3执行速度和SHA-256相当,低于SHA3-256,高于SHA-512和Whirlpool。

X64环境下,当消息长度大于64字节,SM3执行速度和SHA-256相当,低于SHA-512和SHA3-256,高于Whirlpool。

ASIC实现

SM3

SM3的ASIC实现面积优于其他四种算法,是性能优越的Merkle-Damgard结构的杂凑算法。

SM3算法的安全性

杂凑算法的安全性就在于碰撞难易度,即已知结果,构建出具有相同结果的输入数据的难易度。根据相关数据显示,SM3算法的安全性要高于MD5算法和SHA-1算法,在相同环境下其安全性与SHA-256相当,是十分优秀的杂凑算法。

SM3算法的特点

SM3压缩函数整体结构和SHA-256相似,但增加了一些新技术,比如增加16步全异或操作,消息双子介入,增加快速雪崩效应的P置换等,能有效的避免高概率的局部碰撞,有效抵抗碰撞行的差分分析、弱碰撞性的线性分析和比特追踪法等密码分析。

SM3 密码杂凑算法合理使用字加运算, 构成进位加 4 级流水, 在不显著增加硬件开销的情况下 ,采 用 P 置 换 , 加 速 了 算 法 的 雪 崩 效 应 , 提 高 了运算效率 同时 SM3 密码杂凑算法采用了适合32bit的微处理器和8bit智能卡实现的基本运算,具有跨平台的高效性和广泛的适用性。

免责声明:素材源于网络,如有侵权,请联系删稿。