GM/T 0031-2014《安全电子签章密码技术规范》深度解读:从数据结构到合规实施

标准规范 · 2026-07-29


title: "GM/T 0031-2014《安全电子签章密码技术规范》深度解读:从数据结构到合规实施" slug: "gm-t-0031-2014-electronic-seal-crypto-spec" excerpt: "解读国密电子签章核心标准 GM/T 0031-2014 的电子印章/签章数据结构、密码处理流程和安全机制,分析 2025 修订版与 GB/T 38540-2020 的关系,提供密评合规实施指导。" category: standard tags: - GM/T 0031 - 电子签章 - SM2 - SM3 - 密评合规

概述

GM/T 0031-2014《安全电子签章密码技术规范》是密码行业标准中规范电子印章和电子签章技术的核心标准,由国家密码管理局于 2014-02-13 发布并实施。该标准规定了电子印章和电子签章的数据结构、密码处理流程以及相应的安全机制,适用于电子印章系统的研制开发、使用和检测。

2026 年 7 月 1 日,修订版本 GM/T 0031-2025 正式实施,替代 2014 版。此次修订最大的变化在于:行业标准(GM/T 0031)与国家标准(GB/T 38540-2020《信息安全技术 安全电子签章密码技术规范》)在数据结构层面实现统一,解决了长期存在的"行标与国标并行、厂商实现碎片化"问题。

标准背景与演进

1. 标准定位

GM/T 0031 在密码标准体系中的位置:

维度说明
标准层级密码行业标准(GM/T)
标准性质技术要求规范
归口单位密码行业标准化技术委员会
主管部门国家密码管理局
对应国标GB/T 38540-2020
配套检测标准GM/T 0047-2016 / GM/T 0047-2024
起草单位北京数字认证、上海数字证书认证中心、卫士通、兴唐通信等

2. 版本演进时间线

CODE
2014-02-13  GM/T 0031-2014 发布实施
     ↓
2020-04-28  GB/T 38540-2020 发布(国标,兼容并扩展)
     ↓
2026-01-07  国家密码管理局第54号公告:GM/T 0031-2025 发布
     ↓
2026-07-01  GM/T 0031-2025 正式实施,替代 2014 版

3. 与 GB/T 38540-2020 的关系

GB/T 38540-2020 是国家标准,技术要求更全面,覆盖范围更广;GM/T 0031 是行业标准,侧重密码技术细节。两者长期并行导致厂商"二选一"或"双重适配"的困境。

GM/T 0031-2025 修订的核心目标之一就是与 GB/T 38540-2020 保持数据结构一致,实现互联互通。两者主要差异:

维度GB/T 38540-2020GM/T 0031-2025
性质推荐性国家标准强制性行业标准
适用范围更广(含检测、管理)聚焦密码技术
数据格式统一结构兼容 GB/T 38540
实施要求国密改造参考依据密评合规硬性要求
检测方法自行规定配套 GM/T 0047

密码应用安全机制

GM/T 0031 的安全机制基于 PKI 公钥密码技术,从数据格式和处理流程两个维度保障电子印章和电子签章的安全性。

1. 安全目标

电子签章系统必须满足以下安全属性:

  • 真实性:电子印章代表真实的签章者身份
  • 完整性:签章后的数据未被篡改
  • 不可否认性:签章者不能否认已签署的电子文件
  • 抗伪造性:电子印章图像和数据不可被复制伪造

2. 算法要求

GM/T 0031-2014 规定的安全电子签章必须使用国密算法:

密码功能要求算法相关标准
数字签名SM2GM/T 0003.2-2012
消息摘要SM3GM/T 0004-2012
签名算法标识SM2WithSM3 (OID: 1.2.156.10197.1.501)
数据加密(可选)SM4GM/T 0001-2012
时间戳遵循 GM/T 0033GM/T 0033-2014

3. 证书要求

签章者必须持有有效的 SM2 数字证书,证书需满足:

  • 证书算法:id-ecPublicKey + sm2p256v1(OID: 1.2.156.10197.1.301)
  • 密钥用途:必须包含 digitalSignature
  • 证书链:可信 CA 签发
  • 有效期:在签章时刻处于有效期内

电子印章数据结构与流程

1. 术语定义

标准中三个核心术语的关系:

CODE
电子印章(Electronic Seal)
    = 制章者签名后的数据(含签章者信息 + 印章图像)
    = 数字身份载体

电子签章(Electronic Seal Signing)
    = 使用电子印章对电子文件进行签名的过程
    = 签署行为的总称

电子签章数据(SES_Signature)
    = 签章行为的输出结果(含签名值 + 印章信息 + 签名信息)
    = 不可篡改的证据

2. 电子印章数据结构(SESeal)

电子印章由制章者(通常是 CA 或印章管理系统)对签章者的印章信息进行签名后生成,核心字段如下:

CODE
SESesl ::= SEQUENCE {
    header          SES_Header,           -- 印章头信息
    esID            IA5String,            -- 印章标识
    property        SES_ESPropertyInfo,   -- 印章属性信息
    picture         SES_ESPictrueInfo,    -- 印章图像信息
    extDatas        ExtensionDatas OPTIONAL -- 扩展数据
}

#### 印章头(SES_Headal)

CODE
SES_Header ::= SEQUENCE {
    id              IA5String,            -- 标识:"ES"
    version         INTEGER,              -- 版本号(2014版 = 1)
    VID             IA5String,            -- 厂商标识
    esID            IA5String            -- 印章唯一标识
}

#### 印章属性(SES_ESPropertyInfo)

CODE
SES_ESPropertyInfo ::= SEQUENCE {
    cert            CertList,             -- 签章者证书链
    createDate      GeneralizedTime,      -- 制章时间
    validStart      GeneralizedTime,      -- 有效起始时间
    validEnd        GeneralizedTime,      -- 有效终止时间
    name            UTF8String,           -- 印章名称
    issueIA         IA5String             -- 制章者名称
}

#### 印章图像(SES_ESPictrueInfo)

CODE
SES_ESPictrueInfo ::= SEQUENCE {
    type            IA5String,            -- 图像类型("GIF"/"PNG"等)
    data            OCTET STRING,         -- 图像数据
    width           INTEGER,              -- 图像宽度(毫米)
    height          INTEGER               -- 图像高度(毫米)
}

3. 电子印章生成流程

4. 电子印章验证流程

电子签章数据结构与流程

1. 电子签章数据结构(SES_Signature)

签章结果数据是签章行为的最终产出,包含签名值、印章信息、签名信息三大模块:

CODE
SES_Signature ::= SEQUENCE {
    toBeSigned      SES_SealInfo,         -- 待签章信息(印章 + 文件摘要)
    signature       SES_SignInfo          -- 签名信息(算法 + 签名值 + 时间戳等)
}

#### 待签章信息(SES_SealInfo)

CODE
SES_SealInfo ::= SEQUENCE {
    header          SES_Header,           -- 标识 "ES_Seal"
    esID            IA5String,            -- 印章标识
    picture         SES_ESPictrueInfo,    -- 印章图像
    data            OCTET STRING,         -- 签章原始数据
    hash            OCTET STRING,         -- 数据摘要(SM3)
    timeInfo        SES_TSTInfo,          -- 时间信息
    cert            CertList,             -- 签章者证书
    extDatas        ExtensionDatas OPTIONAL
}

#### 签名信息(SES_SignInfo)

CODE
SES_SignInfo ::= SEQUENCE {
    signatureAlgorithm  AlgorithmIdentifier, -- SM2WithSM3
    signature           OCTET STRING,       -- SM2 签名值(DER 编码)
    timestamp           SES_TSTInfo OPTIONAL, -- 时间戳(RFC 3161)
    cert                CertList,            -- 签章者证书(冗余,便于独立验证)
    extDatas            ExtensionDatas OPTIONAL
}

2. 电子签章生成流程

3. 电子签章验证流程

验证是签章的逆过程,需要确认:印章合法、签名有效、数据完整、时间可信。

2025 修订要点

GM/T 0031-2025 于 2026-07-01 正式实施,主要修订内容:

1. 数据结构统一

与 GB/T 38540-2020 实现数据结构层面的统一,消除行业/国家标准之间的格式差异:

项目GM/T 0031-2014GM/T 0031-2025
数据格式独立结构与 GB/T 38540 兼容
签名值编码R+S 拼接DER 编码(与国标一致)
证书引用方式内联完整证书可选引用或内联
OID 标识部分缺失补全国密 OID

2. 密码算法更新

  • 引用标准全面更新:GM/T 0003→GM/T 0003-2012、GM/T 0004→GM/T 0004-2012
  • SM2 签名遵循 GB/T 32918.2-2016
  • 时间戳遵循 GM/T 0033-2023
  • 密码应用标识遵循 GM/T 0006-2023

3. 流程步骤细化

  • 电子印章生成流程增加"印章图像格式校验"步骤
  • 签章验证流程增加"证书吊销状态检查(OCSP/CRL)"强制要求
  • 时间戳验证流程细化

4. 扩展性增强

  • extDatas 字段定义更加规范
  • 支持多格式印章图像(新增 SVG、OFD 嵌入式)
  • 增加对签章者多证书场景的支持

合规实施建议

1. 密评合规要点

GM/T 0031 是密评(电子签章系统密码应用评估)的核心依据,合规实施需重点关注:

合规项要求常见问题
算法合规必须使用 SM2/SM3使用 SHA-256 替代 SM3 → 不合规
证书合规必须使用 SM2 证书使用 RSA 证书签章 → 不合规
数据结构必须遵循 ASN.1 结构自定义 JSON/XML 格式 → 不合规
时间戳必须使用可信时间戳无时间戳或本地时间 → 扣分
密钥管理签章私钥必须安全存储软存储私钥 → 高风险

2. 实施步骤建议

阶段一:差距分析(1-2 周)

  • 盘点现有电子签章系统使用的算法和数据格式
  • 对照 GM/T 0031 逐条标记不符合项
  • 评估改造工作量(算法替换、格式迁移、流程重构)
阶段二:方案设计(2-4 周)

  • 确定 SM2 证书签发方案(自建 CA 或公共 CA)
  • 设计电子印章 ASN.1 编解码模块
  • 设计签章/验章服务接口
  • 确定时间戳服务方案(自建 TSA 或第三方)
阶段三:开发集成(4-8 周)

  • 集成国密密码模块(加密机/密码卡/KMS)
  • 实现 SESeal 和 SES_Signature 编解码
  • 实现签章/验章核心逻辑
  • 集成时间戳服务
  • 证书吊销状态检查(OCSP/CRL 客户端)
阶段四:测试验证(2-4 周)

  • 功能测试:签章/验章全链路
  • 互操作性测试:与第三方系统互通
  • 密评预评估:对照 GM/T 0047 自查
  • 性能压测:并发签章场景

3. 兼容性策略

GM/T 0031-2014 到 2025 的过渡期内,建议采用"双格式并行"策略:

CODE
签章服务端
    ├─ 签章请求
    │    ├─ 旧系统 → 生成 2014 格式签章数据
    │    └─ 新系统 → 生成 2025 格式签章数据
    │
    └─ 签章格式标识(header.version 字段区分版本)

验章服务端
    ├─ 解析 header.version
    ├─ version=1 → 2014 格式验证逻辑
    └─ version=4(2025版版本号) → 2025 格式验证逻辑

与相关标准的关系

GM/T 0031 不是孤立标准,它在国密标准生态中与其他多个标准协同:

总结

GM/T 0031-2014/2025 是国密电子签章领域最核心的技术标准,其核心价值在于:

  • 统一数据格式:通过 ASN.1 严格定义电子印章和签章数据结构,确保跨平台互认
  • 强制国密算法:要求使用 SM2/SM3 算法,从根本上保障技术自主可控
  • 全链路安全:从印章制作到签章验证的闭环密码处理,覆盖签名、摘要、时间戳、证书验证
  • 密评基石:是电子签章系统密码应用评估的直接依据
2025 年修订版的最大意义在于与 GB/T 38540-2020 实现数据结构统一,为电子印章的跨域互认和互联互通奠定了技术基础。对于正在或计划进行国密改造的电子印章厂商和政企用户,深入理解并严格遵循该标准,既是技术需要,也是合规底线。

参考来源

  • GM/T 0031-2014《安全电子签章密码技术规范》(国家密码管理局,2014-02-13 发布)
  • GM/T 0031-2025《安全电子签章密码技术规范》(国家密码管理局第54号公告,2026-07-01 实施)
  • GB/T 38540-2020《信息安全技术 安全电子签章密码技术规范》
  • GM/T 0047-2016《安全电子签章密码检测规范》
  • GM/T 0047-2024《安全电子签章密码检测规范》(修订版)
  • GB/T 32918.2-2016《信息安全技术 SM2 椭圆曲线公钥密码算法 第2部分:数字签名算法》
  • GB/T 32905-2016《信息安全技术 SM3 密码杂凑算法》
  • GM/T 0033-2023《时间戳接口规范》
  • GM/T 0006-2023《密码应用标识规范》