版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 种畜冻精制作工安全应急考核试卷含答案
- 大型养路机械司机安全专项能力考核试卷含答案
- 钻井平台水手改进考核试卷含答案
- 空管自动化系统机务员岗前技能综合实践考核试卷含答案
- 2026年新科教版初中八年级科学上册第一单元溶液溶质质量分数卷含答案
- 蜂媒授粉员岗前安全意识强化考核试卷含答案
- 局部通风机操作工操作规范知识考核试卷含答案
- 汽轮机值班员岗前技能理论考核试卷含答案
- 矿热电炉熔炼工岗前理论考核试卷含答案
- 日间手术医疗设备维护保养策略
- 2026《中华人民共和国教育法》试题库及答案
- 潍坊职业学院招聘笔试真题
- 滁州职业技术学院招聘考试真题
- 重庆南开中学校2025-2026学年九年级下学期3月月考语文试题(含答案)(含解析)
- 长江产业投资集团校招面笔试题及答案
- 蒸汽热力管道监理实施细则
- 解读临床诊断标准
- 2026年机场消防试题及答案
- 2025影像医学专业试题及答案
- 2026年上海市奉贤区初三上学期一模化学试卷和答案及评分标准
- 雨课堂学堂在线学堂云《大数据与人工智能基础及生物医学应用(中央民族)》单元测试考核答案
评论
0/150
提交评论