SM4 (国密) 加密解密
免费在线 SM4 (国密) 加密解密 工具。100% 本地计算,数据不离开您的设备,隐私安全有保障。
结果将显示在这里...
输入 → 加密
使用指南
关于 SM4
SM4 是中国国家密码管理局于 2012 年发布的对称加密算法,是中国商用密码标准(GM/T 0002-2012)的重要组成部分。SM4 采用 128 位密钥和 128 位分组长度,安全性与 AES-128 相当,专为中国密码应用场景设计。SM4 广泛应用于中国的金融、政务、电信等领域,是国密算法体系的核心组件之一。根据《中华人民共和国密码法》,涉及国家安全、国计民生的重要领域应使用国密算法。
使用步骤
SM4 是对称加密算法,加密和解密使用相同的密钥:
算法特点
SM4 基于 Feistel 结构,具有以下技术特点:
加密模式选择
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 管理密钥,定期轮换密钥,限制访问权限。