首页/安全/等保与合规速查/SM2 公钥加密与密文格式互操作
本包目录(268 条)
等保 2.0 基础50 条测评与整改57 条数据安全与个人信息51 条
密码与认证合规50 条
审计与日志留存28 条体系与检查应对32 条

SM2 公钥加密与密文格式互操作

SM2 公钥加密用于保护会话密钥或小段数据;不同实现的密文分量顺序可能不同(国密规范为 C1||C3||C2),跨实现对接必须核对格式。

等保与合规速查安全更新于 2026-10-12

Python(gmssl)示例

Python(gmssl)示例
from gmssl import sm2
crypt = sm2.CryptSM2(public_key=pub_hex, private_key=priv_hex)
ct = crypt.encrypt(b"session-key-01")      # 加密
pt = crypt.decrypt(ct)                     # 解密
# 注意:不同库/版本的密文分量顺序与编码可能不同,需按对接文档核对
SM2 加密前应确认对方接收的密文顺序(C1C3C2 或 C1C2C3)与十六进制编码约定,否则解密失败。

易错点

  • 用 SM2 直接加密大文件:应加密数据密钥,再由对称算法处理数据
  • 忽略随机数质量:加密依赖高质量随机数,弱随机导致密钥可预测

数据来源与参考

  • GB/T 32918.4-2016
  • openEuler / GMSSL 社区文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌