GM/T 0010-2023 SM2密码算法加密签名消息语法规范
GM/T 0010-2023 SM2 cryptography message syntax specification
基本信息
发布历史
-
2012年11月
-
2023年12月
研制信息
- 起草单位:
- 格尔软件股份有限公司、北京海泰方圆科技有限公司、北京数字认证股份有限公司、广东省电子商务认证有限公司、无锡江南信息安全工程技术中心、中电科网络安全科技股份有限公司、北京信安世纪科技股份有限公司、北京国脉信安科技有限公司、上海市数字证书认证中心有限公司、兴唐通信科技有限公司、山东得安信息技术有限公司、山东大学、深圳奥联信息安全技术有限公司、智巡密码(上海)检测技术有限公司、上海颐东网络信息有限公司、国家信息安全工程技术研究中心
- 起草人:
- 刘平、郑强、谭武征、柳增寿、李述胜、赵永省、赵敏、梁宁宁、汪宗斌、袁锋、孔凡玉、程朝辉、韩玮、马洪富、蒋红宇、王妮娜、刘伟、徐强、李元正、刘承、夏东山
- 出版信息:
- 页数:26页 | 字数:50 千字 | 开本: 大16开
内容描述
ICS35030
CCSL.80
中华人民共和国密码行业标准
GM/T0010—2023
代替GM/T0010—2012
SM2密码算法加密签名消息语法规范
SM2cryptographymessagesyntaxspecification
2023-12-04发布2024-06-01实施
国家密码管理局发布
GM/T0010—2023
目次
前言
…………………………Ⅲ
范围
1………………………1
规范性引用文件
2…………………………1
术语和定义
3………………1
缩略语
4……………………1
定义
5OID…………………1
基本类型定义
6……………2
6.1CertificateRevocationLists…………2
6.2ContentEncryptionAlgorithmIdentifier…………2
6.3DigestAlgorithmIdentifier…………2
6.4DigestEncryptionAlgorithmIdentifier……………2
6.5Certificate……………2
6.6IssuerAndSerialNumber……………2
6.7KeyEncryptionAlgorithmIdentifier………………3
6.8Version………………3
6.9ContentInfo…………………………3
数据类型
7Data……………3
签名数据类型
8signedData………………3
类型
8.1signedData……………………3
类型
8.2signerInfo………………………4
数字信封数据类型
9envelopedData……………………5
类型
9.1envelopedData…………………5
类型
9.2recipientInfo……………………5
签名及数字信封数据类型
10signedAndEnvelopedData………………6
加密数据类型
11encryptedData…………7
密钥协商类型
12keyAgreementInfo……………………7
附录资料性示例
A()……………………8
附录规范性隐式证书的加密签名消息语法
B()SM2…………………20
附录规范性密钥格式
C()SM2…………24
Ⅰ
GM/T0010—2023
SM2密码算法加密签名消息语法规范
1范围
本文件规定了使用密码算法的加密签名消息语法
SM2。
本文件适用于使用密码算法进行加密和签名操作时对操作结果的标准化封装
SM2。
2规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款其中注日期的引用文
。,
件仅该日期对应的版本适用于本文件不注日期的引用文件其最新版本包括所有的修改单适用于
,;,()
本文件
。
信息安全技术术语
GB/T25069
密码应用标识规范
GM/T0006
密码算法使用规范
GM/T0009SM2
数字证书格式
GM/T0015
密码术语
GM/Z4001
3术语和定义
和界定的术语和定义适用于本文件
GB/T25069GM/Z4001。
31
.
隐式证书implicitcertificate
包含用户标识公钥还原数据和签发者标识信息但不显式包含证书认证机构的数字签名的数
、(CA)
字证书
。
注用户关联的实际公钥由椭圆曲线系统参数的公钥隐式证书中相关的用户信息和公钥还原数据计算
:、CA、
得出
。
4缩略语
下列缩略语适用于本文件
。
证书认证机构
CA:(CertificationAuthority)
对象标识符
OID:(ObjectIdentity)
5OID定义
本文件对个对象
9data,signedData,envelopedData,signedAndEnvelopedData,encryptedData,
和的标识符进行
keyAgreementInfo,imcSignedData,imcEnvelopedDataimcSignedAndEnvelopedData
了定义详见表
,1。
1
GM/T0010—2023
表1对象标识符
对象标识符对象标识符定义
OID
密码算法加密签名消息语法规范
0.2SM2
数据类型
0.2.1
签名数据类型
0.2.2
数字信封数据类型
0.2.3
签名及数字信封数据类型
0.2.4
加密数据类型
0.2.5
密钥协商类型
0.2.6
隐式证书签名数据类型
0.2.7
隐式证书数字信封数据类型
0.2.8
隐式证书签名及数字信封数据类型
0.2.9
6基本类型定义
61CertificateRevocationLists
.
类型标明一个证书撤销列表的集合
CertificateRevocationLists。
CertificateRevocationLists∷=SETOFCertificateRevocationList
62ContentEncryptionAlgorithmIdentifier
.
类型标明一个数据加密算法其应符合
ContentEncryptionAlgorithmIdentifier。OIDGM/T0006。
ContentEncryptionAlgorithmIdentifier∷=AlgorithmIdentifier
63DigestAlgorithmIdentifier
.
类型标明一个消息摘要算法本文件为密码算法其应符合
DigestAlgorithmIdentifier,SM3,OID
GM/T0006。
DigestAlgorithmIdentifier∷=AlgorithmIdentifier
64DigestEncryptionAlgorithmIdentifier
.
类型标明一个签名算法本文件为签名算法其应
DigestEncryptionAlgorithmIdentifier,SM2,OID
符合
GM/T0006。
DigestEncryptionAlgorithmIdentifier∷=AlgorithmIdentifier
65Certificate
.
类型指定一个符合格式的证书它表示集合足以包含从可识别的根或
CertificateGM/T0015。“”
顶级到所有签名者的证书链
“CA”。
Certificates∷=SETOFCertificate
66IssuerAndSerialNumber
.
类型标明一个证书颁发者可识别名和颁发者确定的证书序列号可据此
IssuerAndSerialNumber,
2
GM/T0010—2023
确定一份证书和与此证书对应的实体及公钥
。
IssuerAndSerialNumber∷=SEQUENCE{
issuerName,
serialNumberCertificateSerialNumber
}
67KeyEncryptionAlgorithmIdentifier
.
类型标明加密对称密钥的加密算法
KeyEncryptionAlgorithmIdentifier。
KeyEncryptionAlgorithmIdentifier∷=AlgorithmIdentifier
68Version
.
类型标明语法版本号
Version。
Version∷=INTEGER(1)
69ContentInfo
.
类型标明内容交换通用语法结构内容交换的通用语法结构定义如下
ContentInfo,:
ContentInfo∷=SEQUENCE{
contentTypeContentType,
content[0]EXPLICITANYDEFINEDBYcontentTypeOPTIONAL
}
ContentType∷=OBJECTIDENTIFIER
其中
:
内容类型是一个对象标识符其定义见第章
ContentType,5。
内容可选
content,。
7数据类型Data
数据类型结构定义如下
Data:
Data∷=OCTETSTRING
数据类型表示任意的字节串
Data。
8签名数据类型signedData
81signedData类型
.
数据类型由任意类型的数据和至少一个签名者的签名值组成任意类型的数据能同时
signedData。
被任意数量的签名者签名签名数据类型示例见附录中的隐式证书的签名数据类型应符合附
。AA.1,
录中的
BB.1。
数据类型结构定义如下
signedData:
SignedData∷=SEQUENCE{
versionVersion,
digestAlgorithmsDigestAlgorithmIdentifiers,
contentInfoContentInfo,
certificates[0]IMPLICITCertificatesOPTIONAL,
crls[1]IMPLICITCertificateRevocationListsOPTIONAL,
3
GM/T0010—2023
signerInfosSignerInfos
}
DigestAlgorithmIdentifiers∷=SETOFDigestAlgorithmIdentifier
SignerInfos∷=SETOFSignerInfo
结构中各项含义见表
2。
表2signedData数据类型
字段名称数据类型含义
版本号此处取值为
versionVersion,1
消息摘要算法标识符的集合
digestAlgorithmsDigestAlgorithmIdentifiers
数据内容
contentInfoContentInfo
证书的集合
certificatesCertificates
证书撤销列表的集合
crlsCertificateRevocationLists
签名者信息的集合
signInfosSignerInfos
82signerInfo类型
.
类型结构定义如下
signerInfo:
SignerInfo∷=SEQUENCE{
versionVersion,
issuerAndSerialNumberIssuerAndSerialNumber,
digestAlgorithmDigestAlgorithmIdentifier,
authenticatedAttributes[0]IMPLICITAttributesOPTIONAL,
digestEncryptionAlgorithmDigestEncryptionAlgorithmIdentifier,
encryptedDigestEncryptedDigest,
unauthenticatedAttributes[1]IMPLICITAttributesOPTIONAL
}
EncryptedDigest∷=OCTETSTRING
结构中各项含义见表
3。
表3SignerInfo数据类型
字段名称数据类型含义
版本号此处取值为
VersionVersion,1
一个证书颁发者可识别名和颁发者确定的证书序列
issuerAndSerialNumberIssuerAndSerialNumber号可据此确定一份证书和与此证书对应的实体及公钥
,
对内容进行摘要计算的消息摘要算法本文件采用
,
digestAlgorithmDigestAlgorithmidentifier密码算法
SM3
是经由签名者签名的属性的集合该域可选如果该
,。
域存在该域中摘要的计算方法是对原文进行摘要计
authenticatedAttributesAttributes,
算结果
椭圆曲线数字签名算法标识符
digestEncryptionAlgorithmDigestEncryptionAlgorithmIdentifierSM2
值是用签名者私钥进行签名的结
SM2Signature,
encryptedDigestOCTETSTRING果其定义应遵循
,GM/T0009
4
GM/T0010—2023
9数字信封数据类型envelopedData
91envelopedData类型
.
数字信封数据类型由加密数据和至少一个接收者的数据加密密钥的密文组成其
envelopedData。
中加密数据是用数据加密密钥加密的数据加密密钥是用接收者的公钥加密的
,,。
数字信封数据类型示例见隐式证书数字信封数据类型应符合
A.2,B.2。
该类型用于为接收者的或三种类型的数据做数字信封
data、digestedDatasignedData。
数据类型结构定义如下
envelopedData:
EnvelopedData∷=SEQUENCE{
versionVersion,
recipientInfosRecipientInfos,
encryptedContentInfoEncryptedContentInfo
}
RecipientInfos∷=SETOFRecipientInfo
结构中各项含义见表
4。
表4EnvelopedData数据类型
字段名称数据类型含义
版本号此处取值为
versionVersion,1
接收者信息的集合至少要有一个接收者
recipientInfosRecipientInfos,
被加密的内容
encryptedContentInfoEncryptedContentInfo
EncryptedContentInfo∷=SEQUENCE{
contentTypeContentType,
contentEncryptionAlgorithmContentEncryptionAlgorithmIdentifier,
encryptedContent[0]IMPLICITEncryptedContentOPTIONAL,
sharedInfo1[1]IMPLICITOCTETSTRINGOPTIONAL,
sharedInfo2[2]IMPLICITOCTETSTRINGOPTIONAL
}
EncryptedContent∷=OCTETSTRING
结构中各项含义见表
5。
表5EncryptedContentInfo数据类型
字段名称数据类型含义
内容的类型
contenTypeContentType
内容加密算法和相应的参数
contentEncryptionAlgorithmContentEncryptionAlgorithmIdentifier()
内容加密的结果可选
encryptedContentEncryptedContent,
协商好的共享信息可选
sharedInfo1OCTETSTRING,
协商好的共享信息可选
sharedInfo2OCTETSTRING,
92recipientInfo类型
.
接收者信息用类型表示
recipientInfo。
定制服务
推荐标准
- NB/T 31113-2017 陆上风电场工程施工组织设计规范 2017-11-15
- NB/T 10038-2017 煤层气井小型压裂测试设计及评价规范 2017-11-15
- NB/T 10039-2017 煤层气开发前期评价技术规范 2017-11-15
- NB/T 31112-2017 风电场工程招标设计技术规定 2017-11-15
- NB/T 10037-2017 煤层气水两相相对渗透率非稳态测定方法 2017-11-15
- NB/T 31114-2017 风电清洁供热可行性研究专篇编制规程 2017-11-15
- NB/T 13010-2017 小桐子精炼油 2017-11-15
- NB/T 13009-2017 小桐子毛油 2017-11-15
- NB/T 31115-2017 风电场工程110kV~220kV海上升压变电站设计规范 2017-11-15
- NB/T 10040-2017 煤层气录井资料解释及验收规范 2017-11-15