本帖最后由 Aligagago 于 2022-5-7 09:23 编辑
#技术资源# #申请原创# SM4(原名 SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于 2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4 分组密码算法》。其算法公开。该算法的分组长度为 128 bits,密钥长度为 128 bits。与 DES 和 AES 算法类似,加密算法与密钥扩展算法都采用 32 轮非线性迭代结构。
| SM4 | DES(Data Encryption Standard) | 算法结构 | 基本轮函数加迭代,包含非线性变换。 | 使用标准的算术和逻辑运算,先代替后置换,不包含非线性变换。 | 计算轮数 | 32轮 | 16轮(TDES 16轮*3)
| 秘钥长度 | 128bit | 64bit(TDES 128bit) | 实现性能 | 软件和硬件实现都快 | 软件实现慢,硬件实现快。 | 安全性 | 较高 | 较低(TDES 较高) |
功能特性:功能 | 描述 | ECB Electronic Codebook | 电子密码本模式 每个明文块对应固定的密文块。 优点:并行运算,速度快,易标准化,适合短数据加密。 缺点:不能隐藏数据格式,抗攻击性弱(重放,替换,删除) | CBC Cipher Block Chaining | 密码分组链接模式 每个明文快与前一个密文块异或后再进行加密。 优点:隐藏数据格式,抗攻击性强,适合报文完整性和用户身份认证。 缺点:不能并行加密,易出现错误传播。 |
函数描述:
函数 | 描述 | SM4_ECB | ECB 加解密模式,输入明文长度必须为 128bits 倍数,无 IV 参数。 | SM4_CBC | CBC 加解密模式,输入明文长度必须为 128bits 倍数, IV 参数为 16 Bytes |
注: 1. IV:初始化向量(Initialization Vector) 使用 CBC模式时需输入该参数。 2.由于加密第一个明文分组时,不存在前一个密文分组,所以要事先准备好一个分组长度的 IV 变量来替代前一个密文分组。
|