版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ICS35.040.
L80
中华人民共和国国家标准
GB/TXXXX—XXXX
SM2密码算法加密签名消息语法规范
SM2cryptographymessagesyntaxspecification
(征求意见稿)
2016-06
XXXX-XX-XX发布XXXX-XX-XX实施
GB/TXXXX-XXXX
II
GB/TXXXX-201X
SM2密码算法加密签名消息语法规范
1范围
本标准定义了使用SM2密码算法的加密签名消息语法。
本标准适用于使用SM2密码算法进行加密和签名操作时对操作结果的标准化封装。
2规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适
用于本文件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T16262.1-2006信息技术抽象语法记法一(ASN.1):基本记法规范(ISO/IEC
8824-1:2002,IDT)
GM/T0006密码应用标识规范
GM/TAAAASM2密码算法使用规范
PKCS#6Extended-CertificateSyntax
3术语和定义
下列术语适用于本标准。
3.1
算法标识algorithmidentifier
用于标明算法机制的数字化信息。
3.2
SM2算法SM2algorithm
一种椭圆曲线密码算法,密钥长度为256比特。
3.3
SM3算法SM3algorithm
一种杂凑算法,输出长度为256比特。
4缩略语
下列缩略语适用于本文件:
ECC椭圆曲线密码算法(EllipticCurveCryptography)
ID用户标识(Identity)
OID对象标识符(ObjectIdentity)
1
GB/TXXXX-XXXX
5OID定义
本标准对6个对象data,signedData,envelopedData,signedAndEnvelopedData,
encryptedData和keyAgreementInfo的标识符进行了定义,详见表1。
表1对象标识符
对象标识符OID对象标识符定义
1.2.156.10197.6.1.4.2SM2密码算法加密签名消息语法规范
1.2.156.10197.6.1.4.2.1数据类型data
1.2.156.10197.6.1.4.2.2签名数据类型signedData
1.2.156.10197.6.1.4.2.3数字信封数据类型envelopedData
1.2.156.10197.6.1.4.2.4签名及数字信封数据类型
signedAndEnvelopedData
1.2.156.10197.6.1.4.2.5加密数据类型encryptedData
1.2.156.10197.6.1.4.2.6密钥协商类型keyAgreementInfo
6基本类型定义
6.1CertificateRevocationLists
CertificateRevocationLists类型标明一个证书撤销列表的集合。
CertificateRevocationLists::=SETOFCertificateRevocationList
6.2ContentEncryptionAlgorithmIdentifier
ContentEncryptionAlgorithmIdentifier类型标明一个数据加密算法。其OID见GM/T
0006。
ContentEncryptionAlgorithmIdentifier::=AlgorithmIdentifier
6.3DigestAlgorithmIdentifier
DigestAlgorithmIdentifier类型标明一个消息摘要算法,本规范为SM3算法,其OID
见GM/T0006。
DigestAlgorithmIdentifier::=AlgorithmIdentifier
6.4DigestEncryptionAlgorithmIdentifier
DigestEncryptionAlgorithmIdentifier类型标明一个签名算法,本规范为SM2密码算
法,其OID见GM/T0006。
DigestEncryptionAlgorithmIdentifier::=AlgorithmIdentifier
6.5ExtendedCertificateOrCertificate
ExtendedCertificateOrCertificate类型指定一个PKCS#6扩展证书或者一个X.509证
书。这一类型见PKCS#6第6节推荐的语法:
ExtendedCertificateOrCertificate::=CHOICE{
certificateCertificate,--X.509
extendedCertificate[0]IMPLICITExtendedCertificate
2
GB/TXXXX-201X
}
6.6ExtendedCertificatesAndCertificates
ExtendedCertificatesAndCertificates类型指定一个扩展证书和X.509证书的集合。
它表示集合足以包含从可识别的“根”或“顶级CA”到所有签名者的证书链。
ExtendedCertificatesAndCertificates::=SETOF
ExtendedCertificateOrCertificate
6.7IssuerAndSerialNumber
IssuerAndSerialNumber类型标明一个证书颁发者可识别名和颁发者确定的证书序列
号,可据此确定一份证书和与此证书对应的实体及公钥。
IssuerAndSerialNumber::=SEQUENCE{
issuerName,
serialNumberCertificateSerialNumber
}
6.8KeyEncryptionAlgorithmIdentifier
KeyEncryptionAlgorithmIdentifier类型标明加密对称密钥的加密算法。
KeyEncryptionAlgorithmIdentifier::=AlgorithmIdentifier
6.9Version
Version类型标明语法版本号。
Version::=INTEGER(1)
6.10ContentInfo
ContentInfo类型标明内容交换通用语法结构,内容交换的通用语法结构定义如下:
ContentInfo::=SEQUENCE{
contentTypeContentType,
content[0]EXPLICITANYDEFINEDBYcontentTypeOPTIONAL
}
ContentType::=OBJECTIDENTIFIER
其中:
ContentType内容类型是一个对象标识符,其定义见本规范第5章。
content内容,可选。
7数据类型
data数据类型结构定义如下:
Data::=OCTETSTRING
data数据类型表示任意的字节串,比如ASCII文本文件。
3
GB/TXXXX-XXXX
8签名数据类型signedData
8.1signedData类型
signedData数据类型由任意类型的数据和至少一个签名者的签名值组成。任意类型的
数据能够同时被任意数量的签名者签名。
signedData数据类型结构定义如下:
SignedData::=SEQUENCE{
versionVersion,
digestAlgorithmsDigestAlgorithmIdentifiers,
contentInfoSM2Signature,
certificates[0]IMPLICITExtendedCertificatesAndCertificatesOPTIONAL,
crls[1]IMPLICITCertificateRevocationListsOPTIONAL,
signerInfosSignerInfos
}
DigestAlgorithmIdentifiers::=SETOFDigestAlgorithmIdentifier
SignerInfos::=SETOFSignerInfo
结构中各项含义见表2:
表2signedData数据类型
字段名称数据类型含义
version(1)Version语法的版本号
digestAlgorithmsDigestAlgorithmIden消息摘要算法标识符的集合
tifiers
contentInfoSM2Signature被签名的数据内容
certificatesExtendedCertificatePKCS#6扩展证书和X.509证书的集合
sAndCertificates
crlsCertificateRevocati证书撤销列表的集合
onLists
signInfosSignerInfos每个签名者信息的集合
8.2signerInfo类型
signerInfo类型结构定义如下:
SignerInfo::=SEQUENCE{
versionVersion,
issuerAndSerialNumberIssuerAndSerialNumber,
digestAlgorithmDigestAlgorithmIdentifier,
authenticatedAttributes[0]IMPLICITAttributesOPTIONAL,
digestEncryptionAlgorithmDigestEncryptionAlgorithmIdentifier,
encryptedDigestEncryptedDigest,
unauthenticatedAttributes[1]IMPLICITAttributesOPTIONAL
}
EncryptedDigest::=OCTETSTRING
结构中各项含义见表3:
表3SignerInfo数据类型
4
GB/TXXXX-201X
字段名称数据类型含义
version(1)Version语法的版本号
issuerAndSerialNumberIssuerAndSerial一个证书颁发者可识别名和颁发者确定的证书
Number序列号,可据此确定一份证书和与此证书对应
的实体及公钥
表3SignerInfo数据类型(续)
digestAlgorithmDigestAlgorithm对内容进行摘要计算的消息摘要算法,本规范
Identifier采用SM3算法
authenticatedAttributesAttributes是经由签名者签名的属性的集合,该域可选。
如果该域存在,该域中摘要的计算方法是对原
文进行摘要计算结果
digestEncryptionAlgorithDigestEncryptioSM2椭圆曲线数字签名算法标识符
mnAlgorithmIdent
ifier
encryptedDigestOCTETSTRING值是SM2Signature,用签名者私钥进行签名的
结果,其定义见GM/TAAAA。
9数字信封数据类型envelopedData
9.1envelopedData类型
数字信封envelopedData数据类型由加密数据和至少一个接收者的数据加密密钥的密
文组成。其中,加密数据是用数据加密密钥加密的,数据加密密钥是用接收者的公钥加密的。
该类型用于为接收者的data、digestedData或signedData三种类型的数据做数字信封。
envelopedData数据类型结构定义如下:
EnvelopedData::=SEQUENCE{
versionVersion,
recipientInfosRecipientInfos,
encryptedContentInfoEncryptedContentInfo
}
RecipientInfos::=SETOFRecipientInfo
结构中各项含义见表4:
表4EnvelopedData数据类型
字段名称数据类型含义
version(1)Version语法的版本号
recipientInfosRecipientInfos每个接收者信息的集合,至少要有一个接收
者
encryptedContentInfoEncryptedContent加了密的内容信息
Info
EncryptedContentInfo::=SEQUENCE{
5
GB/TXXXX-XXXX
contentTypeContentType,
contentEncryptionAlgorithmContentEncryptionAlgorithmIdentifier,
encryptedContent[0]IMPLICITEncryptedContentOPTIONAL,
sharedInfo1[1]IMPLICITOCTETSTRINGOPTIONAL,
sharedInfo2[2]IMPLICITOCTETSTRINGOPTIONAL
}
EncryptedContent::=OCTETSTRING
结构中各项含义见表5:
表5EncryptedContentInfo数据类型
字段名称数据长度含义
contenTypeContentType内容的类型
contentEncryptionAlgorithmContentEncrypti内容加密算法(和相应的参数)
onAlgorithmIden
tifier
encryptedContentEncryptedConten内容加密的结果,可选
t
sharedInfo1[1]OCTETSTRING协商好的共享信息,可选
sharedInfo2[2]OCTETSTRING协商好的共享信息,可选
9.2recipientInfo类型
每个接收者信息用recipientInfo类型表示,
recipientInfo类型结构定义如下:
RecipientInfo::=SEQUENCE{
versionVersion,
issuerAndSerialNumberIssuerAndSerialNumber,
keyEncryptionAlgorithmKeyEncryptionAlgorithmIdentifier,
encryptedKeyOCTETSTRING
}
结构中各项含义见表6:
表6RecipientInfo数据类型
字段名称数据类型含义
version(1)Version语法的版本号
issuerAndSerialNumberIssuerAndSerial颁发者可辨别名和颁发序列号
Number
keyEncryptionAlgorithmKeyEncryptionAl用接收者公钥加密数据加密密钥的算
gorithmIdentifi法,为SM2椭圆曲线加密算法
er
encryptedKeyOCTETSTRING数据加密密钥密文SM2cipher,其定义见
GM/TAAAA
6
GB/TXXXX-201X
10签名及数字信封数据类型signedAndEnvelopedData
signedAndEnvelopedData数据类型由任意类型的加密数据、至少一个接收者的数据加
密密钥和至少一个签名者的签名组成。
signedAndEnvelopedData数据类型结构定义如下:
SignedAndEnvelopedData::=SEQUENCE{
versionVersion,
recipientInfosRecipientInfos,
digestAlgorithmsDigestAlgorithmIdentifiers,
encryptedContentInfoEncryptedContentInfo,
certificates[0]IMPLICITExtendedCertificatesAndCertificatesOPTIONAL,
crls[1]IMPLICITCertificateRevocationListsOPTIONAL,
signerInfosSignerInfos
}
结构中各项含义见表7:
表7signedAndEnvelopedData数据类型
字段名称数据类型含义
version(1)Version语法的版本号
recipientInfosRecipientInfos每个接受者信息的集合,至少一个元素
digestAlgorithmsDigestAlgorithm消息摘要算法标识符的集合
Identifiers
encryptedContentInfoEncryptedConten加了密的内容,可以是任何定义的数据
tInfo类型
certificatesExtendedCertifiPKCS#6扩展证书和X.509证书的集合,
catesAndCertifi是可选的
cates
crlsCertificateRevo证书撤销列表的集合
cationLists
signerInfosSignerInfos每个签名者的集合,至少要有一个元素
11加密数据类型encryptedData
encryptedData数据类型由任意类型的加了密的数据组成,数据类型既没有接收者也没
有加密的数据加密密钥。
encryptedData数据类型定义如下:
EncryptedData::=SEQUENCE{
versionVersion,
encryptedContentInfoEncryptedContentInfo
}
结构中各项含义见表8:
表8encryptedData数据类型
字段名称数据类型含义
7
GB/TXXXX-XXXX
version(1)Version语法的版本号
encryptedContenInfoEncryptedConten加了密的内容信息
tInfo
12密钥协商类型keyAgreementInfo
密钥协商keyAgreementInfo数据类型标明两个用户之间建立一个共享秘密密钥的结
构,通过这种方式能够确定一个共享秘密密钥的值。
该类型用于两个用户为产生共享秘密密钥进行的公共参数交换。
KeyAgreementInfo::=SEQUENCE{
versionVersion(1),
tempPublicKeyRSM2PublicKey,
userCertificateCertificate,
userIDOCTETSTRING
}
结构中各项含义见表9:
表9keyAgreementInfo数据类型
字段名称数据类型含义
versionVersion语法的版本号
tempPublicKeyRSM2PublicKey临时公钥
userCertificateCertificate用户证书
userIDOCTETSTR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿物在食品级包装材料中的应用考核试卷
- 核电工程设备安装与调试质量控制考核试卷
- 日用杂品跨境电商运营策略考核试卷
- 主题文化公园建设工程-PPP项目合同(编制大纲)
- 2024年水解弹性蛋白项目合作计划书
- 中考真题强化训练之万唯中考徐州黑白卷数学试题
- 2024年电子线圈项目合作计划书
- 期中考试学生检讨书范文集合十篇
- 2024年原乙酸三甲酯项目合作计划书
- 2024年新戊二醇项目合作计划书
- 2025年高考语文备考之10年真题专题分类汇编:论说类
- 七下第1课 互联网和物联网.走进物联网 教学设计 浙教版(2023版)
- 分数乘分数(教学设计)-2023-2024学年六年级上册数学人教版
- 第十五届全国交通运输行业职业技能大赛(公路养护工)考试题库(含答案)
- 世界预防自杀日课件
- 2024版酒店弱电系统维保合同范本
- 大连市解除劳动合同证明书
- GB/T 35607-2024绿色产品评价家具
- 电梯软件采购合同范本
- 投资本金返还协议
- 2024年吉林长春中考数学试题及答案
评论
0/150
提交评论