UFOZoo

SM4 加解密 — 国密对称分组加密算法

SM4 加密工具,支持 128 位密钥生成、数据加密和解密。中国国密分组密码算法 GM/T 0002,支持 ECB 和 CBC 模式。

功能特性

  • 生成 SM4 密钥(128 位)
  • 使用 SM4 加密数据
  • 使用 SM4 解密密文
  • 支持 ECB 和 CBC 模式
  • 自动生成初始化向量(IV)
  • 中国国家标准 GM/T 0002
  • 快速对称加密
  • 适合大数据量加密
  • 十六进制密钥输入/输出
  • 所有操作在浏览器本地执行

使用方法

  1. 1密钥生成:点击'生成密钥'创建随机 128 位 SM4 密钥。
  2. 2加密:输入明文、密钥,选择模式(ECB/CBC),点击'加密'。
  3. 3解密:输入密文、密钥,选择模式,点击'解密'。
  4. 4CBC 模式:需要初始化向量(IV)。点击'生成 IV'创建一个。
  5. 5ECB 模式:每个 128 位块独立加密——更快但可能暴露数据模式。
  6. 6CBC 模式:块与 IV 链接在一起——更安全,建议敏感数据使用。
  7. 7密钥和 IV 分开存储。CBC 模式中切勿使用相同的密钥+IV 组合。
  8. 8密钥和 IV 使用十六进制格式输入/输出。密钥为 32 个十六进制字符(128 位)。

常见问题

什么是 SM4?

SM4 是中国国家密码管理局于 2006 年发布的对称分组密码算法。它是中国国家密码标准(GM/T 0002)的一部分,使用 128 位密钥和 128 位分组。SM4 设计类似于 AES,提供相当的安全性和性能。

ECB 和 CBC 模式有什么区别?

ECB(电子密码本)独立加密每个 128 位块。速度快但可能暴露数据模式。CBC(密码块链接)在加密前将每个明文块与前一个密文块异或,提供更好的安全性。CBC 需要初始化向量(IV)。大多数应用使用 CBC。

SM4 与 AES 相比如何?

SM4 和 AES-128 都使用 128 位密钥和分组。SM4 使用 32 轮而 AES-128 使用 10 轮。性能相当,SM4 在某些平台上稍慢。两者都提供 128 位安全性。SM4 在中国政府和金融应用中强制使用,而 AES 是全球标准。

SM4 安全吗?

SM4 自 2006 年以来经过密码学家广泛分析。未发现实际攻击。它于 2011 年被纳入 ISO/IEC 18033-3,确认其国际认可。SM4 被认为密码学强度高,广泛应用于中国关键基础设施。

如何存储密钥和 IV?

密钥必须保密并安全存储。使用环境变量、密钥管理系统或硬件安全模块(HSM)。IV 不需要保密,但每次加密应唯一。在 CBC 模式下,切勿重复使用相同的密钥+IV 组合。

SM4 的分组大小是多少?

SM4 使用 128 位(16 字节)分组大小,与 AES 相同。数据被分成 128 位块进行加密。如果明文长度不是 16 字节的倍数,SM4 会自动应用 PKCS#7 填充来补满剩余空间。解密时自动移除填充。

SM4 使用多少轮加密?

SM4 使用 32 轮加密,而 AES-128 使用 10 轮。每轮应用替换(S-box)、排列(线性变换)和密钥混合操作的组合。32 轮设计提供了强大的安全余量以抵抗密码分析攻击。

SM4 能用于文件加密吗?

可以,SM4 速度高,非常适合文件加密。对于大于分组大小(16 字节)的文件,密码模式(ECB 或 CBC)决定块的处理方式。建议文件使用 CBC 模式以防止模式泄露。十六进制输出可解码存储为二进制加密文件。

SM4 和 DES/3DES 有什么区别?

SM4 使用 128 位密钥、128 位分组和 32 轮,提供现代安全性。DES 使用 56 位密钥(目前已过弱)和 64 位分组。3DES 将安全性提升到 112 位,但明显更慢且仍使用 64 位分组。SM4 比 DES/3DES 更安全也更高效。

SM4 符合国际标准吗?

符合。SM4 于 2021 年被纳入 ISO/IEC 18033-3 成为国际标准分组密码。它被 ISO 与 AES、Camellia 等其他主要密码共同认可。这意味着 SM4 可用于需要标准化密码算法的国际系统。

相关工具