路径: 主页 > GB/T > 第747页 > GB/T 47471-2026
| 标准编号 | GB/T 47471-2026 (GB/T47471-2026) | | 中文名称 | 网络安全技术 SM9密码算法加密签名消息格式 | | 英文名称 | Cybersecurity technology - SM9 cryptographic algorithm encryption and signature message format | | 行业 | 国家标准 (推荐) | | 中标分类 | L80 | | 国际标准分类 | 35.030 | | 字数估计 | 30,368 | | 发布日期 | 2026-04-30 | | 实施日期 | 2026-11-01 | | 发布机构 | 国家市场监督管理总局、国家标准化管理委员会 |
GB/T 47471-2026: 网络安全技术 SM9密码算法加密签名消息格式
GB/T 47471-2026 英文版: Cybersecurity technology - SM9 cryptographic algorithm encryption and signature message format
ICS 35.030
CCSL80
中华人民共和国国家标准
网络安全技术 SM9密码算法加密签名
消息格式
2026-04-30发布
2026-11-01实施
国 家 市 场 监 督 管 理 总 局
国 家 标 准 化 管 理 委 员 会 发 布
1 范围
本文件规定了SM9密码算法在加密签名中的消息格式。
本文件适用于使用SM9密码算法进行加密和签名操作时对操作结果的封装,为基于SM9密码算
法的应用开发和使用提供指导。
4 缩略语
下列缩略语适用于本文件:
CCM:采用密文分组链接消息认证码的计数器工作模式(CounterwithCipherBlockChaining-
MessageAuthenticationCodeMode)
DER:可辨别编码规则(DistinguishedEncodingRules)
GCM:伽罗瓦/计数器工作模式(Galois/CounterMode)
IBC:基于标识的密码(Identity-BasedCryptography)
IRL:标识撤销列表(IdentifierRevocationList)
OID:对象标识符(ObjectIdentifier)
5 概述
使用ContentInfo类型表示内容交换通用语法结构,其定义如下:
ContentInfo∷=SEQUENCE{
contentType ContentType,
content [0]EXPLICITANYDEFINEDBYcontentTypeOPTIONAL
ContentType∷= OBJECTIDENTIFIER
其中:
contentType指示content的内容类型;
content为可选项,其类型由contentType指示。
使用 ContentInfo 对 SM9 密码算法中涉及的 8 个类型 Data、SignedData、EnvelopedData、
SignedAndEnvelopedData、EncryptedData、KeyAgreementInfo、DigestedData和 AuthEnvelopedData
进行定义。contentType的数据类型对象和对象标识符(OID)定义见表1。
6 基本类型定义
6.1 标识撤销列表IdentifierRevocationLists
IdentifierRevocationLists类型标明一个IRL的集合。
IdentifierRevocationLists∷=SETOFIdentifierRevocationList
IdentifierRevocationList的定义应符合附录A的规定。
6.2 内容加密算法标识ContentEncryptionAlgorithmIdentifier
ContentEncryptionAlgorithmIdentifier类型标明一个数据加密算法。
ContentEncryptionAlgorithmIdentifier∷= AlgorithmIdentifier
AlgorithmIdentifier∷=SEQUENCE{
algorithm OBJECTIDENTIFIER,
parameters ANYDEFINEDBYalgorithmOPTIONAL
6.3 杂凑算法标识DigestAlgorithmIdentifier
DigestAlgorithmIdentifier类型标明一个密码杂凑算法,应为SM3密码杂凑算法。
DigestAlgorithmIdentifier∷= AlgorithmIdentifier
6.4 签名算法标识SignatureAlgorithmIdentifier
SignatureAlgorithmIdentifier类型标明一个签名算法,应为SM9签名算法。
SignatureAlgorithmIdentifier∷= AlgorithmIdentifier
6.5 密钥加密算法标识KeyEncryptionAlgorithmIdentifier
KeyEncryptionAlgorithmIdentifier类型标明一个非对称加密算法,应为SM9密钥封装或SM9加
密算法。
KeyEncryptionAlgorithmIdentifier∷= AlgorithmIdentifier
6.6 版本号Version
Version类型标明格式版本。
Version∷=INTEGER
6.7 标识Identifier
Identifier类型标明标识的通用语法数据结构,其定义应符合GM/T 0090的规定。
6.8 有效期Validity
Validity类型标明一个时间有效期。
Validity∷=SEQUENCE{
notBefore Time,
notAfter Time
Time∷= GeneralizedTime
6.9 IBC系统公开参数发布信息IBCSysParamsPublishInfo
IBCSysParamsPublishInfo类型标明公开参数的发布信息数据内容。
IBCSysParamsPublishInfo∷=SEQUENCE{
ibcSysParams IBCSysParams,
signatureAlgorithm OBJECTIDENTIFIER,
signatureValue BITSTRING
6.10 属性Attribute
Attribute类型标明一种特定类型的信息。
Attribute∷=SEQUENCE{
attrType OBJECTIDENTIFIER,
attrValues SETOFAttributeValue
AttributeValue∷= ANY
其中:
attrType内容类型是一个OID。
attrValues是属性值集合。
6.11 扩展Extension
Extension类型标明扩展信息。
Extension∷=SEQUENCE{
extnID OBJECTIDENTIFIER,
critical BOOLEANDEFAULTFALSE,
extnValue OCTETSTRING
其中:
extnID为该扩展的OID;
critical标明该扩展的重要性,可选项,默认值为FALSE;
extnValue为该扩展的内容。
7 数据类型Data
Data定义如下:
Data∷= OCTETSTRING
Data表示任意的字节串。
8 签名数据类型SignedData
signedData数据类型由任意类型的数据和至少一个签名者的签名值组成。任意类型的数据能同时
被任意数量的签名者签名。
signedData数据类型结构定义如下:
SignedData∷=SEQUENCE{
version Version,
digestAlgorithms DigestAlgorithmIdentifiers,
encapContentInfo EncapsulatedContentInfo,
ibcSysParamsPublishInfos[0]IMPLICITIBCSysParamsPublishInfosOPTIONAL,
irls [1]IMPLICITIdentifierRevocationListsOPTIONAL,
signerInfos SignerInfos
IBCSysParamsPublishInfos∷=SETOFIBCSysParamsPublishInfo
DigestAlgorithmIdentifiers∷=SETOFDigestAlgorithmIdentifier
EncapsulatedContentInfo∷=SEQUENCE{
eContentType ContentType,
eContent [0]EXPLICITOCTETSTRINGOPTIONAL
SignerInfos∷=SETOFSignerInfo
SignedData结构中各项含义见表2,示例见附录B中B.1。
9 数字信封数据类型EnvelopedData
数字信封EnvelopedData数据类型由加密数据和至少一个接收者的数据加密密钥的密文组成。其
中,加密数据使用数据加密密钥加密,数据加密密钥使用接收者的标识......
|