《信息安全技术 SM2密码算法加密签名消息语法规范》_第1页
《信息安全技术 SM2密码算法加密签名消息语法规范》_第2页
《信息安全技术 SM2密码算法加密签名消息语法规范》_第3页
《信息安全技术 SM2密码算法加密签名消息语法规范》_第4页
《信息安全技术 SM2密码算法加密签名消息语法规范》_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论