实例介绍
GMT 0009-2012 SM2 密码算法使用规范,详细描述SM2算法使用规范
GM/T0010-2012 目次 前言 1范围…… 2规范性引用文件…………… 3术语和定义 ·· 4符号和缩略语… 5OID定义… 6基入类型定义…………………… 6.1 Certilicate revocationlists 6.2 Content Encryption AlgorithmIdentifier………………………………………… 6.3 Digest algorithmldentifie 6.4 Digest Encryption algorithmIdentifier…………………… 6.5 Extended certificate OrCertificate 6,6 Extended certificatesAnd certificates……………………… 6,7 Issuer AndserialNumber……………… 6.8 KeyEncryptionAlgorithmldentilier 6,9 Version………………………………………………………………………………… 6.10 Contentinfo 7数据类型data 8签名数据类型 signedData…………… 8.1 signedData类型 8.2 SignerInfo类型…… 9数字信封数据类型 envelopeddata… 9.1 envelopedData类型 9,2 RecipientInfo类型……… 10签名及数字信封数据类型 signed And EnvelopedData……… 11加密数据类型 encryptedData 12密钥协商类型 key AgreementInfo 附录A(规范性附录)SM2密钥格式 A.1椭圆曲线参数语法… A.2公钥语法 A.3私钥语法 参考文献…………………………… GM/T0010-2012 前言 本标准按照GB/T1.12009的规则编写 请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任 本标准由国家密码管理局提出并归口 本标准中的附录A为规范性附录。 木标准起草单位:上海格尔软件股份有限公司、北京海泰方圆科技有限公司、北京数字认证股份有 限公司、无锡江南信息安全工程技术中心、成都卫士通信息产业股份有限公司、上海巾数字证书认证中 心有限公司、兴唐通信科技有限公司、上海颐东网络信息有限公司、山东得安信息技术有限公司、国家信 息安全工程技术研究中心。 本标准起草人:刘平、谭武征、柳増寿、李述胜、徐强、李元正、刘承、王妮娜、夏东山、蒋红宇、孔凡玉 袁峰。 本标准涉及的密码算法按照国家密码管理部门的要求使用 Ⅱ GM/T0010—2012 SM2密码算法加密签名消息语法规范 1范 本规范定义了使用SM2密码算法的加密签名消息语法。 本规范适用于使用SM2密码算法进行加密和签名操作时对操作结果的标准化封装。 2规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仪注日期的版本适用于本文 件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。 GM/T0006密码应用标识规范 GM/ T AAAA SV2密码算法使用规范 PKCS #5 Extended-Certificate Syntax 3术语和定义 下列术语适用于本规范。 算法标识 algorithm identifier 用于标明算法机制的数字化信息 SM2算法SM2 algorithM 一种椭圆曲线密杩算法,密钥长度为256比特。 4符号和缩略语 下列缩略语适用于本规范 ECC 椭圆曲线密码算法( Elliptic Curve cryptography) 用户标识( Identity) OID 对象标识符( Object Identity) 5OID定义 本规范对6个对象data, signeddata, envelopedData, signedAnd Data, encryptedData和 key AgreementInfo的标识符进行了定义,详见表1 GM/T0010-2012 表1对象标识符 对象标识符OID 对象标识符定义 1.2,156.10197.6.1.4.2 SM2密码算法加密签名消息语法规范 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 数字信封数据类型 enveloped Data 签名及数字信封数据类型 1.2.156.1C197.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 密钥协商类型 key AgreementInfo 6基本类型定义 6.1 Certificate Revocation lists Certificaterevocationlists类型标明一个证书撤销列表的集合。 Certificatereyocationlists;:= SET OF Certificaterevocation list 6. 2 ContentEncryptionAlgorithmldentificr Content Encryptionalgorithmldentifier类型标明一个数据加密算法。其OI见GM/T0006 Content Encryption AlgorithmIdentifier :: AlgorithmIdentifier 6.3 DigestAlgorithm ldentifier DigestAlgorithmIdentifier类型标明一个消息摘要算法,夲规范为SM3算法,其OID见GM/ T0006。 DigestAlgorithmIdentifier : AlgorithmIdentifier 6. 4 DigestEncryptionAlgorithmIdentifier Digest Encryption algorithmIdentifier类型标明一个签名算法,本规范为SM2密码算法,其OI见 GM/T OOO Digest EncryptionAlgorithmIdentifier AlgorithmIdentifier 6.5 ExtendedcertificateorCertificate ExtendedcertificateOrCertificate类型指定一个PKCS#6扩展证书或者一个X.509证书。这一类 型见PKCS=6第6节推荐的语法 ExtendedCertificate OrCertificate ::=CHOICE I certificate Certificate.--.509 extendedCertificate [o IMPLICIT Extended Certificate GM/T0010—2012 6.6 ExtendedCertificates And Certificates ExtendedcertificatesAndcertificates类型指定一个扩展证书和X.509证书的集合。它表示集合足 以包含从可识别的“根”或“顶级CA”到所有签名者的证书链。 ExtendedcertificatesandCertificates : SET OF Extendedcertificate orcertificate 6. Issuer AndSeriaINumber Issuer And SerialNumber类型标明一个证书颁发者可识别名和颁发者确定的证书序列号,可据此 确定一份证书和与此证书对应的实体及公钥。 IssuerAndSerialNumber SEQUENCE issuer name serialNumber certificate SerialNumber 6.8 Kcy EncryptionAlgorithmldentificr KeyEncryptionAlgorithmIdentifier类型标明加密对称密钥的加密算法。 Key encryptionalgorith mldentilier :: Algorithmlden 6.9ⅴ ersion Version类型标明语法版本号。 Version :: INTEGER(1 6. 10 ContentInfo ContentInfo类型标眀内容交换通用语法结构,内容交换的通用语法结构定义如下」 ContentInfo :: SEQUENCE contentType Content type contentO] EXPLICIT ANY DEFINED BY content Type OPTIONAL ContentType OBJECT IDEN TⅠFIER 其中 ContentType内容类型是一个对象标识符,其定义见本规范第5章。 content内容,可选。 7数据类型data data数据类型结构定义如下: Data .. OCTET STRING Data数据类型表示任意的字节串,比如ASCI文本文件。 GM/T0010—2012 8签名数据类型 signed Data 8.1 signed Data类型 signeddata数据类型由任意类型的数据和至少一个签名者的签名值组成。任意类型的数据能够同 时被任意数量的签名者签名。 signeddata数据类型结构定义如下 SignedData ::= SEQUENCE versionⅤ ersion, digest algorithms digest algorithmIc entities. contentInfo sm2signature certificates o IMPLICIT ExtendedCertificates And Certificates OPTIONAL crls[ 1] IMPLICIT Certificate Revocation Lists OPTIONAI Signerinlos Signerinlos Digestalgorithm Identifiers : SET OF Digest AlgorithmIdentifier SignerInfos::= SET OF SignerInfo 结构中各项含义见表2 表2 signedData数据类型 字段名称 数据类型 含义 version (1) V ersion 语法的版木号 digestAlgorithms DigestAlgorithmIdentifiers 消息摘要算法标识符的集合 contention SM2Signaturc 被名的数据内谷,数据类型见GM/ T AAAA ExtendedCertificatesAndcertif certifica PKCS#6扩展证书和X.509证书的集合 Icates CrIs Certificate Revocation lists 证书撤销列表的集合 signIngs SignerInfos 每个签名者信息的集合 8.2 Signerlnfo类型 gnerInfo类型结构定义如下: SignerInfo :: SEQUENCE version version issuer And SerialNumber IssuerAndSerial Number digest Algorithm DigestAlgorithmldentifier authenticated AttributesLO] IMPLICIT Attributes OPTIONAL digest Encryption Algorithm Digest EncryptionAlgorithmIdentifier encryptedDigest EncryptedDigest unauthenticatedAttributes [1 IMPLICIT Attributes OPTIONAL EncryptedDigest::OCTET STRING GM/T010-2012 结构中各项含义见表3 表3 Signerlnfo数据类型 字段名称 数据类型 含义 Ⅴ ersion(1) ersion 语法的版本号 个证书颁发者可识别名和颁发者确定的证书序列 And Serial Number d serialnumbi 号,可据此确定一份证书和与此证书对应的实休及 公钥 付内容进行摘要计算的消息摘要算法,本规范采用 igcstAlgorithm gcstAlgorithmldentificr SM3算法 是经由签名者签名的属性的集合,该域可选。如果该 authenticatedAttributes Attributes 域存在,该域中摘要的计算方法是对原文进行摘要计 算结果 Digest Encryption algo digest Encry ptionAlgorithm SM2-1椭圆曲线数字签名算法标识符 rithmldentilier 值是SM2 Signature,用签名者私钥进行签名的结果, encrypted Digest OCTET STRING 其定义见GM/ T AAAA。编码格式为r‖s。 9数字信封数据类型 cnvclopedData 9.1 cnvelopcdData类型 数字信封 envelopedData数据类型由加密数据和至少一个接收者的数据加密密钥的密文组成。其 中,加密数据是用数据加密密钥加密的,数据加密密钥是用接收者的公钥加密的。 该类型用于为接收者的data、 digestedData或 signedData三种类型的数据做数字信封。 envelopedData数据类型结构定义如下 EnvelopedData::= SEQUENCE I versionⅤ ersion, recipient Infos recipientInfos encrypted ContentInfo encryptedContentInfo RecipientInfos : SET OF RecipientInfo 结构中各项含义见表4: 表4 Enveloped Data数据类型 字段名称 数据类型 含义 version(1) Version 语法的版本号 reciplentinfos RecipientInfos 每个接收者信息的集合,至少要有一个接收者 encrypted ContentInfo EncryptedContentInfo J了密的内容信息 GM/T0010—2012 EncryptedContentInfo : SEQUENCE contentType Content Type content Encry ptionAlgorithm Content EncryptionAlgorithmldentifier encryptedContentLO] IMPLICIT EncryptedContent OPTIONAL sharedInfo [1] IMPLICIT OCTET STRING OPTIONAL sharedInfo [2 IMPLICIT OCTET STRING OPTIONAL Encrypted Content :: OCTET STRING 结构中各项含义见表5 表5 EncryptedContentInfo数据类型 字段名称 数据长度 含义 contenType Ty 内容的类型 Content Encryption Algorithml Encryption Algorithm 内容加密算法(和相应的参数) identifier encrypted Contcnt Encrypted Content 内容加密的结果,可诜 sharedInto 1] OCTET STRING 协商好的共享信息,可选 sharedInfo 21 OCTET STRING 协商好的共享信息,可选 9.2 RecipicntInfo类型 每个接收者信息用 RecipientInfo类型表示, RecipientInfo类型结构定义如下 Recipientinfo :: SEQUENCE version version, ssuer SerialNumber issuerAndserial Number key EncryptionAlgorithm Key Encry ptionAlgorithmldentilier encryptedKey OCTET STRINg 结构中各项含义见表6 表6 Recipientinfo数据类型 字段名称 数据类型 vcrsion(1) Version 语法的版本号 issuer Andseria number Issuer Andserialnumbe 颁发者可辨别名和颁发序列号 KeyEncryptionAlgorithmIder-用接收者公钥加密数据加密密钥的算法,为 key Encryption Algorithm tifier SM23椭圆由线加密算法 数拼加帟密钥密文SM2 cipher.其定义见.GiM/ encryptedKey OCTET STRING TAAAA 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论