SM4 (国密) 加密解密

免费在线 SM4 (国密) 加密解密 工具。100% 本地计算,数据不离开您的设备,隐私安全有保障。

National Standards
Legacy
输出

结果将显示在这里...

输入 加密

使用指南

关于 SM4

SM4 是中国国家密码管理局于 2012 年发布的对称加密算法,是中国商用密码标准(GM/T 0002-2012)的重要组成部分。SM4 采用 128 位密钥和 128 位分组长度,安全性与 AES-128 相当,专为中国密码应用场景设计。SM4 广泛应用于中国的金融、政务、电信等领域,是国密算法体系的核心组件之一。根据《中华人民共和国密码法》,涉及国家安全、国计民生的重要领域应使用国密算法。

国密标准:SM4 是中国商用密码标准的对称加密算法,与 SM3 (哈希)、SM2(非对称加密)、SM9(标识密码)共同构成完整的国密算法体系。在中国境内的金融、政务、电信等关键领域,推荐或强制使用国密算法

使用步骤

SM4 是对称加密算法,加密和解密使用相同的密钥:

1. 选择模式选择加密模式(CBC、ECB),推荐使用 CBC 模式
2. 设置密钥输入或生成 128 位密钥(16 字节),密钥必须保密
3. 设置 IVCBC 模式需要初始化向量(IV),每次加密应使用不同的随机 IV
4. 加密数据输入明文,点击「加密」按钮,获得密文
5. 解密数据使用相同的密钥、IV 和模式,输入密文,点击「解密」按钮恢复明文
隐私保护:所有计算在浏览器本地高速完成,数据不会上传服务器,完全离线处理。

算法特点

SM4 基于 Feistel 结构,具有以下技术特点:

国密标准中国商用密码标准(GM/T 0002-2012),符合《密码法》要求
128 位密钥固定使用 128 位密钥,与 AES-128 安全性相当
128 位分组分组长度 128 位,与 AES 相同
32 轮加密使用 32 轮非线性迭代,安全性高
本土化设计针对中国应用场景优化,与国密算法体系无缝集成
合规要求:根据《中华人民共和国密码法》和相关行业规范,金融、政务、电信等关键领域的密码应用应使用国密算法。如果您的应用涉及这些领域,应优先使用 SM4 而非 AES

加密模式选择

SM4 支持多种加密模式,不同模式有不同的安全性和性能特点:

CBC(推荐)密码块链接模式,安全性高,需要 IV,适合大多数场景
ECB(不推荐)电子密码本模式,不需要 IV,但安全性低,相同明文产生相同密文
安全警告:ECB 模式存在安全隐患,相同的明文块会产生相同的密文块,容易被攻击者识别模式。生产环境应使用 CBC 模式,并确保每次加密使用不同的随机 IV。

应用场景

SM4 广泛应用于中国的关键信息基础设施和商用密码领域:

金融行业银行、证券、保险等金融机构的数据加密、交易保护
政务系统电子政务、电子证照、政府数据交换的数据加密
电信运营移动通信、物联网设备的数据加密和传输保护
国密 SSL国密 SSL 证书(SM2-SM3-SM4 套件)使用 SM4 进行对称加密
文件加密政府、企业内部敏感文件的加密存储
数据库加密加密数据库字段、备份文件

常见问题

Q: SM4 和 AES 有什么区别?

A: 标准来源:SM4 是中国国家密码管理局发布的商用密码标准(2012), AES 是美国 NIST 发布的联邦标准(2001)。密钥长度:SM4 仅支持 128 位密钥,AES 支持 128/192/256 位。算法结构:SM4 基于 Feistel 结构(32 轮),AES 基于 SPN 结构(10/12/14 轮)。安全性:SM4 与 AES-128 安全性相当,都是 2^128 复杂度。性能:AES 在有硬件加速的平台上性能更好,SM4 在软件实现上性能相当。合规性:在中国关键领域,SM4 符合《密码法》要求,AES 不符合。推荐:中国境内关键领域使用 SM4,国际应用使用 AES。

Q: 哪些场景必须使用 SM4?

A: 根据《中华人民共和国密码法》(2020 年 1 月 1 日施行)和相关行业规范:强制使用:涉及国家安全、国计民生、社会公共利益的商用密码产品,必须通过国家密码管理局认证,使用国密算法(包括 SM4)。推荐使用:金融(银行、证券、保险)、政务(电子政务、电子证照)、电信(移动通信、物联网)、能源(电力、石油)、交通(铁路、民航)等关键领域。可选使用:一般商业应用、个人应用可以自主选择,但使用国密算法有助于提升安全性和合规性。注意:具体要求以最新的法律法规和行业标准为准。

Q: SM4 的密钥长度为什么只有 128 位?

A: SM4 设计时选择 128 位密钥是基于安全性和性能的平衡考虑。安全性充足:128 位密钥的破解复杂度为 2^128(约 3.4×10^38),即使用全球所有计算机也需要数十亿年。性能优势:128 位密钥比 256 位密钥性能更好,加密速度更快。国际标准:AES-128 也是广泛使用的标准,证明 128 位密钥足够安全。未来扩展:如果未来需要更高安全性,可以使用 SM4 的变体或升级版本。实际应用:对于绝大多数应用场景,SM4 的 128 位密钥已经提供了足够的安全性。

Q: 如何在国际应用中使用 SM4?

A: 兼容性考虑:SM4 主要在中国使用,国际支持有限。如果应用需要国际化,建议同时支持 SM4 和 AES双算法方案:1)协商机制:客户端和服务端协商使用的算法(中国境内用 SM4,境外用 AES)。2)双重加密:同时使用 SM4 和 AES 加密,确保国内外都能解密。3)算法标识:在数据中标识使用的算法,解密时根据标识选择算法。库支持:OpenSSL 1.1.1+ 支持 SM4,GmSSL 是专门的国密算法库。

Q: SM4 和 SM2、SM3 有什么关系?

A: SM4、 SM2 SM3 是国密算法体系的三个核心组件,经常配合使用。SM4:对称加密算法,用于数据加密,速度快,适合大量数据。SM2:非对称加密和数字签名算法,用于密钥交换和签名,安全性高但速度慢。SM3:哈希算法,用于数据完整性验证、消息摘要。配合使用:典型流程是用 SM2 交换 SM4 密钥,用 SM4 加密数据,用 SM3 验证完整性,用 SM2 签名。国密套件:SM2-SM3-SM4 是完整的国密算法套件,类似于 RSA-SHA256-AES 套件。应用:国密 SSL 证书使用 SM2-SM3-SM4 套件,替代传统的 RSA-SHA256-AES 套件。

Q: 如何验证 SM4 实现的正确性?

A: 标准测试向量 GM/T 0002-2012 标准提供了官方测试向量。例如,使用特定的密钥和明文,SM4 应产生特定的密文。对比工具:使用多个独立实现(如 OpenSSL、GmSSL、本工具)加密相同的数据,对比结果是否一致。解密验证:加密后立即解密,检查是否能恢复原始数据。认证产品:如果用于商用密码产品,应使用通过国家密码管理局认证的密码模块。开源实现:GmSSL(GitHub)是权威的国密算法开源实现,可作为参考。

使用场景

推荐:金融行业数据加密

银行、证券、保险等金融机构的数据加密应使用国密算法。典型应用包括:交易数据加密、客户信息保护、数据库字段加密。推荐使用 SM4-CBC 模式,配合 SM3 进行完整性验证,使用 SM2 进行密钥交换和数字签名。这符合中国人民银行、银保监会等监管机构的要求。

推荐配置:
  • ✅ SM4-CBC(国密标准,金融推荐)
  • ✅ SM2(密钥交换和签名)
  • ✅ SM3(完整性验证)
  • ✅ 使用通过国密认证的密码模块
  • 💡 考虑双算法方案(SM4 + AES)提升兼容性
推荐:政务系统数据加密

电子政务、政府数据交换平台应使用国密算法保护数据机密性。使用 SM4-CBC 加密敏感数据,确保数据在存储和传输过程中的安全。配合 SM2 签名和 SM3 哈希,构建完整的安全体系。

推荐配置:
  • ✅ SM4-CBC(数据加密)
  • ✅ SM2(数字签名)
  • ✅ SM3(完整性验证)
  • 💡 遵循《政务信息系统密码应用技术要求》
推荐:国密 SSL/TLS 通信

国密 SSL/TLS 使用 SM2-SM3-SM4 套件,替代传统的 RSA-SHA256-AES 套件。SM4 用于会话密钥加密,保护传输数据的机密性。适用于政府网站、金融机构、关键信息基础设施等需要符合《密码法》要求的场景。

推荐配置:
  • ✅ SM2-SM3-SM4(国密 SSL 标准套件)
  • ✅ 双证书方案(国密 + RSA,兼容国内外)
  • ✅ 使用支持国密的浏览器和服务器
  • 💡 参考《SSL VPN 技术规范》(GM/T 0024-2014)
推荐:文件和数据库加密

政府、企业内部敏感文件和数据库字段的加密应使用 SM4。使用 SM4-CBC 模式加密文件或数据库字段,密钥通过密钥管理服务(KMS)管理。每次加密使用不同的随机 IV,IV 可以存储在文件头或数据库中。对于涉密文件,应配合 SM2 数字签名,确保文件来源可信。

推荐配置:
  • ✅ SM4-CBC(推荐)
  • ✅ 使用国密 KMS 管理密钥
  • ✅ 每次加密使用不同的 IV
  • ✅ 配合 SM2 签名(最高安全性)
  • 💡 定期轮换密钥
推荐:物联网设备通信加密

电信运营商、智能家居、工业物联网等场景应使用国密算法。SM4 适合资源受限的物联网设备,性能优于 AES-256,安全性与 AES-128 相当。使用 SM4-CBC 加密设备通信数据,配合 SM2 进行设备认证,使用 SM3 验证固件完整性。

推荐配置:
  • ✅ SM4-CBC(轻量级加密)
  • ✅ SM2(设备认证)
  • ✅ SM3(固件完整性)
  • 💡 参考《物联网密码应用技术要求》
推荐:云存储文件加密

上传到云存储的敏感文件应该在客户端使用 SM4 加密后再上传,确保云服务提供商无法访问明文。使用 SM4-CBC 加密文件,密钥由客户端管理(不上传到云端)。对于需要国际化的应用,可以同时支持 SM4 和 AES,根据用户地域选择算法。

推荐配置:
  • ✅ SM4-CBC(国密标准)
  • ✅ 客户端加密,密钥不上传
  • ✅ 考虑双算法方案(SM4 + AES)
  • 💡 备份密钥,丢失密钥将无法恢复数据

最佳实践建议

  • 在中国境内的金融、政务、电信等关键领域,应优先使用 SM4 符合《密码法》要求。
  • 如果应用需要国际化,建议同时支持 SM4 和 AES,根据地域或用户选择算法。
  • 生产环境应使用 CBC 模式,避免使用 ECB 模式,每次加密使用不同的随机 IV。
  • 使用国密算法时,应选择通过国家密码管理局认证的密码模块,确保合规性和安全性。
  • SM4 通常与 SM2(密钥交换、签名)、SM3(完整性验证)配合使用,构建完整的国密安全体系。
  • 密钥管理至关重要,使用国密 KMS 管理密钥,定期轮换密钥,限制访问权限。

讨论与反馈

0 条评论