SM2密码算法加密签名消息语法规范.docx
ICS35.040.1.80中华人民共和国家标准GB/TXXXXXXXXSM2密码算法加密签名消息语法规范SM2cryptographymessagesyntaxspecification(征求意见稿)2016-06XXXX-XX-XX实施XXXX-XX-XX发布中华人民共和国国家质量监督检验检疫总局中国国家标准化管理委员会范囹本标准定义了使用SM2密码算法的加密签名消息语法。本标准适用于使用SX2密码算法进行加密和签名操作时对操作结果的标准化封装.2 规范性引用文件下列文件对于本文件的应用是必不可少的.凡是注日期的引用文件,仅注H期的版本适用于本文件,凡是不注日期的引用文件,其最新版本(包括所有的怪改单)适用于本文件,GB/T16262.1-2006信息技术抽象语法记法一(ASN.D;基本记法规范(IS0/1EC8824-1:2002.IDT)GM/T0006密码应用标识规范GM/TAAASX!2密码灯法使用规范PKCS»6Extended-CertificateSyntax3 术语和定义下列术语适用于本标准,3.1算法标识a1.gorithmidentifier用于标明算法机制的数字化信息.3.2SM2算法SM2a1.gorithm一种椭即曲找束码算法,密钥长度为256比特。3.3SM3算法SM3a1.gorithm一种杂凑算法,输出长度为256比特.4 缩略语卜列缩略语适用于本文件:ECC描圆曲线密码律法(EI1.iPtiCCurveCryptography)ID用户标识(Identity)OID对象标识符(ObjectIdentity)5 O1.D定义本标准对6个对象data,SignedOata1Cnve1.optx1.Data,SignedAndEnve1.opedData,G8TXXXX-XXXXencryptedData和keygreementInfo的标识符进行/定义.洋见表1“表1对象标识符对象标M符oe对象标识持定义1.2.IM.10197.6.1.4.2SM2青码林法加率左名消息语法政范1.2,156.10197.6.1.4.2.1«C据类型I1.ata1.2,156.10197.6.1.1.2.2不名数据类型SicnedData1.2.156.10197.6.1.4.2.3故字信式数据类型Cnve1.opedData1.2,156.10197.6.1.4.2.4茶名及Ik字信为数榭类型SiKnedAiK1.EnvckipedData1.2.156.10197.6.1.4.2.5加密ttW类型Uncryptedhita1.2.15.10197.6.1.4.2.6客的出商类型key>:reeiieniInfo6 基本类型定义6.1CertifiCateRevocation1.istsCertificateRevocation1.ists类型标明个证的撤销列表的集合CertifiesteRevocation1.ists:=SETOFCertifiCateRevoca1.ion1.ist6.2ContentEncryptionAIgorithmIdontifierConIen1.EnCIytionA1.goriUwIdentifier类型标明一个数据加密算法.其O1.DI1.GMZTOoo60ContentEncryptionA1.goritha1.dentifier:-A1.goriIhmIdentifier6.3DigeStAIgorithmIdentifirDgeSIR1.KOri1.hnI1.dCnIificr类型标明一个消息摘要算法,本规范为SM3算法其O1.D见GWT0006.DigestA1.gorithmIdentiTier:=1.gorithnIdentifier6.4DigestEncryptionAIgorithm1.dentifierDigestEncryptio111gorIthmIdentifier类型标明一个签名算法,本规范为SM2密码算法,-On)见GM/T0006,DigestEncryptionA1gorithmIdentifier:=A1.gorithm1.dentifier6.5ExtendcdCertifiCateOrCertificateExtendedCertifiCateOrCertificate类型指定一个PKCSUfi扩展证书或者一个X.509证书。这一类型见PKCS46第6节推荐的语法:ExtendedCcrtificate0Ccrtificaie:=CHOICEcertificateCertificate.-X.509extendedCertificate0IMP1.ICITExtendedCertificate6. 6ExtcndcdCcrtifiCatcsAndCertificatesExtendedCertificatesAndCertificates类型指定一个扩展证书和X.509证书的佻合”它表示集合足以包含从可识别的根”或"顶级CA”到所有签名者的证书链,ExtcndcdCcrtificatcsAndCcrtiCicates:=SETOFExtendedCertificate<ertificate7. 7ISsuerAndSeriaINurberISSUerAndSOria1.而<n类型标明一个证书颁发者可识别名和颁发者确定的证书序列号,可据此确定一份证书和与此证书对应的实体及公钥.1 SsuerAndSeria1.Number:=SEQ1.iENCEissuerName.Seria1.NumbcrCcrtifica1.cSeria1.Nuinber16. 8KeyEncryptio11AIgorithm1.dentifierKeyEncryptionAIgorith三Identifier类型标明加密对称密钥的加密尊法.KeyEncryptionIgorithnIdentifier:=A1.gorithm1.dentitier6.9VersionVerSiOn类型标明语法版本号。Version:=INTEGER(1)6. 10Content1.nfoContent1.nfo类型标明内容交换通用语法结构,内容交换的通用谙法结构定义如下:ContentInfo:=SEQUENCEcontentTyX!ContentType1content0EXP1.ICITANYDEFINEDBYContentTypeOPTIONA1.)ContentType:=OBJECTIDENT1.F1.ER其中:ContentType内容类型是一个对象标识符,其定义见本规范第5章,content内容,可选.7. 数据类型data数据类型结构定义如下:1.>ata:=OCTETSTRINGdata数据类型表示任意的字节小,比如ASCI1.文本文件.8. 1SignedData类型SigncK1.Data数据类型由任意类型的数据和至少一个签名者的签名伍娟成。任意类鞭的数据能好同时被任意数盘的签名者签名.SignCdData数据类型结构定义如下:SignedData:=SEQUENCEversionVersion,digestA1.gorithmsDigestA1.gorith三Identifiers.contentInfoSMZSignature,certifiedtes0jIMP1.ICITExtendedCertifiCatesAndCerXificatesOPTIONA1.,cr1.s1.IMP1.ICITCer1.ificateRevoction1.istsOPTIONA1.,signerinfosSignerInfosDigestA1Rorithm1dentifiers:=SETOFDige$tA1gorithm1.doniifierSignerInfos:-SETOFSignerInfo结构中各项含义见衣2:表2SignedDota数据类型字段名称放据类型含义version(1)Version语法的收本号dijestA1.KorithmsDigestA1.gorithmidentifier消息情要靠法标识符的集合Conteni1.nfoSM2SIgnature被签名的攻据内容certificatesExtendedCerti11cateSAndCrrtificatrxPKCSee/粕Ii书和X.509证书的梁合cr)a;Crr1.ifiCatcRcvocntion1.ists证必拉用列表的媒合SijjnInfosSignerInfos柘个警名存信息的介9. 2signerinfo类型signerinfo类型结构定义如下:SignerInfo:=SEQuENCEversionVersion.1 ssuer.ndSeria1.NumberISsuerAndSeria1Number,digestA1.gorithmDigestAIgorithm1.dentifier,authenticatedAttributes0IMP1.ICITAttributesOPTIONAI.,digestEncryptio11jIgorithmDigestEncryptionIgoriIhnIdentifier,encrypted1.)igestHncryptedDigest,UnauthenticatedAttributesJ1.IMPIJCITAttributesOPTIONA1.)EncryptedDigest:二OCTETSTRING结构中各项含义见表3,表3Signermf。数据类型字段名称数据类中含义version(1>Versioniff法的版本“iXJiurrAndSrriaINunhcrIxsucrAndScrirtINunber一个证号领发者可识别名和领发者确定的证价序列号,可据此碇定一份i£书和与此证书对应的实体及公钊表3Signer1.nf。数据类型(续)digest1.gorithmDigestA1.gorithnIdentifier时内在避行摘要计W的泊史摘要修法,A短池采用SM3算法authcnticatedttributesAttributes是经由弟W者签名的隔性的集合.该城可选.S1.埋设域存在.该城中摘要的计尊方法是对Ki文送行摘要计算结果digcxtEnrrypti<>nA1.grith11DigestKnc11ptionIgorithm1.dentifierSM2忡WI曲战Bt字卷名算法标以符©n。iyPIRdDigeStOCTETSTRING值是SMZSignature.用签名者私翎逃行签名的结果.耳定义见GH"AAM.9 数字信封数据类型CnvcIopcdData10. 1enveIOpedData类型数字信封ervc1.ope<1.Data数据类里由加密数据和至少一个接收者的数据加密密钥的密文组成.其中加密数据是用数据加密密钥加密的,数据加密密钥是用接收者的公钥加密的该类型用于为接收者的dauudigcsted1.)ata或SignCd1.)ataY种类里的数据做数字信封,Cnve1.opedData数据类型结构定义如下:Envc1.opedData:=SEQUENCEversionVersion.recipientInfosRecipientInfos,encryptedContent1.nfoEncryptedContentInfo)RecipientInfos:=SETOFRecipientInfo结构中各项含义见表4:表4EnVe1.OPedData数据类型字段名称SdK类型含义version(1)Version语法的版本弓reciientInfosRecipieniInfcs用个接收者伯目的袋合.至少唉仃个接收Honerytr<K'ontentInfaEncrypIrdContentInfo加了邂的内容信息EncryptedContentInfo:-SEQUENCE(GB/TXXXX-XXXXContentTypeContentType.ContentBncryptionA1.gorithmContentEncryptionIgorith«Identifier,encryptedContcnt0IMP1.ICITEncryptedContentOPTIONA1.SharedInfo1.IIMP1.ICITOCTETSTRINGOPTIONA1.,sharedInfo22IMP1.ICITOCTETSTRINGOPTIONA1.)EncryptedContent:=OCTETSTRING结构中各项含义见表5:表5EnCryPtCdCOntCntInfO数据类型字段名称数据长度含义ContmTypeContcntTypc内容的类型ContmtEncryptinA1.gorith11ContcntEncryption1.gorithm1.dnCifier内容加密算法(和相戚的蒙效enciyptedContentEncryt<dCor1.<nt内容加密的耕Sft.可选Xharrd1.nfn1.1OCTETSIRING协商好的共享信息,可选xharcxi!nfo22OCTETSFKING协商好的共享信息,可选11. 2recipientInfo类型每个接收者信息用recipientinfo类型表示,recipieni1.nfo类型结构定义如下:RecipicntInfo:=SEQUENCE(versionVersion,iSsuerAndSeria1NumberIssuerndSeria1Number,keyEncry>tionA1gorithnKeyEncryptionA1.gorithm1.dentifier,CncryptedKeyOCTETSTRING结构中各项含义见表6:表6ReCiPiernInfO数据类型字段名麻致据类型含义version(1>Version诺法的版本“isSuerAndSeria1NnerIssuerndS<ria1.XU1.Iber例发者可防别名和例发序列9kryErx:rypti<>nAIgorithsKcyEncryption1.gorithm1.dentifier用接收井公忸加密数据加密邂忸的算法,为SM2WiBi曲炫加密以法encryptedKeyOCTETSIRING粒掘加密密包玄文SM2ciphor共定义电CMrAAAA10签名及数字信封数据类型sIgnedAndEnveIOpedDatasignedAndEnveIopedData数据类型由任意类型的加密数据、至少一个接收者的数据加密玄钊和至少一个签名者的签2组成。SignedAndEnVeIOPedDatiI数据类型结构定义如下:SignedAndEnVeIOPedData:=SHQ1.ENCE(versionVersion,recipientInfosRccipientInfos,digestIgorithmsDigcstA1.gorithaIdentifiers,PncryptedContentInfoEncryptedContentInfo1certificatesOIMP1.ICITEXtendedCerIificatesAndCertificatesOPTIONA1.,cr1.s1.IMP1.ICITCcrtifica1.cRcvocation1.istsOPTIONA1.,signerInfosSignerInfos结构中各项含义见表7:表7siEncdAndEnvcIopcdData数据类型字段名称数据类型含义version(1>Version语法的板木”recipientInfosRecipientInfos每个接受者俏息的集余至少一个元素digcxt1.gorithmsDigrxtA1.gorithnIdentifiers消电摘要算法标识符的夔合CncryptedContentInfoEncrypteXontgnt1.nfo加了吏的内容,可以是任何定义的数据类型certificatesExtendedCertifiCatesAndCer1.ificntpsPKCS#6扩墟证书和X.509iE书的集合.是可选的cr1.sCcrtificatcKrvoCotion1.ists证的撤用列表的埃合SignerInfosSignerInfos林个笠Z者的妪合,至少更有一个元式11加至数据类型encryptedDataencryuiedDa<a数据类型由任懑类型的加了密的数据组成,数据类型既没有接收者也没有加密的数据加率率钥。OncryptedDnta数据类型定义如下:EncryptedData:=SEQUENCEversionVersion,CncryptedCon1.entInfoEncryp1.edContentInfo)结构中各项含义见表8:表8ecryptedData数据类型字段名称数祗类型含义version(1>Version语法的板本9encrypiedConten1.nfcEtWryPIgdCOn1.dntInfo加了密的内容倒息12密知协商类型kcyAgrcmcntInfo密钥协商kevAree三enUnfo数据类型标明两个用户之间建立一个共里秘密密钥的结构,通过这稗方式能终断定一个共享秘密密钥的值。该类型用于两个用户为产牛.共享秘密密钥进行的公共参数交换。KeyAgreeaentInfo:-SEQUENCE(Version(I),SM2PubIicKey.CertificMe,OCTETSTRINGversionIeepPub1.icKeyRUsei-CertificateuserIDI结构中各项含义见表9:表9keyARrcarcnt1.nfo数据类型字段名称Si据类型含义versionVersionJS法的版本号tenpHib1.icKcyRSV2PubIicKey格时公的UNcrOrtificnt<Certificate用户逐书uxcr1.DOCFETSTRING用户标识附录A(规范性附录)SM2密钥格式A,1椭圆曲线卷散语法勘网曲线参数的表达采用与X962相同的ASN.1定义.其定义如下:ParaMters:=CHOICE(eeParametersECParameters,namedCurvcObjectIdcn1.ifier,imp1.icit1.yCNU1.1.)在用于SM2密码算法表达时,只使用na*edCurve这一种发达方法,SM2密码号法曲规定义的3D.%GM/TOOO6。A.2公钥语法蜿随曲戏公初的表达采用与X962相同的ASNj定义,其定义如下;Subjectpub1.icKoyInfo:=SEQUENCEa1.gorithmA1.goriIhmIdentifier(ECPKA1.gorithms)1.SubjectPub1.icKeySM2Pub1.icKey其中:a1.gorithm定义了公钥的类型SUbjeCt.Pub1.icKey定义了公钥的实际依A1.gorithnIdentifier是对象标识与参数的绑定,其定义如下:A1.goriIhmIdentifier:-SEQUENCE(a1.gorithmOBJECTIDENTIFIER,parametersANYDEFINEDBYa1.gorithmOPTIONA1.对于SM2密码算法,其(HMa1.gorithm)定义见GwT0006.A.3私钥语法励阳曲线私知的表达采用与X962相同的ASN.1定义.其定义如下:ECPrivateKey(CURVES:IOSet:=SEQUENCE(versionINTEGER(ecPrivkeyVer1.(1)(ecPrivkeyVer1.),PrivatcKeySM2PrivateKcy,parameters0Parameters(11OSet)OPTIONA1.,pub1.icKey1SM2Pub1.icKey其中:VerSion指定了私钥的版本号,这里使用整数1米表示SX2私W的版本号.SM2密码算法加密签名消息语法规范SM2密码算法加密签名消息语法规范SM2密码算法加密签名消息语法规范表I不定形耐然防护材料性能指标项目性能指标抗压强度,MPa水泥基聚合物基Id25>257d>60>6028d>80>80耐热度500C残氽强度,MPa500C3h>80%设计强度不应出现裂蚊耐热度S1.SOC1.5OC×3h>50%强度不应出现裂纹骨科粒度nun0-50-5舛性模量,MPa4.0×!014.O×1O4耐磨损失量,KgW<0.8<0.6战变化率,%±0.5±0.5表2界面剂材料性能指标项目性能指标剪切粘结强度,MPa7(11.014d.5拉伸粘结强度,MPa浸水处理>0,5热处理0.5冻融循环处理0.5破处理>0,5枝I不定形耐磨防护材料性能指标项目性能指标抗HI强度,MPa水泥基聚合物基Id25257d>60>6028d80>80耐热度W5OOX2残余强度,MPa5<)01.C×3h>80%设计强度不应出现裂纹耐热度15(C15(>C×3h>50%强度不应出现裂纹骨料粒度,mm0-50-5弹性模IihMPa4.0×1.0*>4.0×1.Q4耐磨损失量,KgZm20.80.6线变化率±0.5±0.5表2界面剂材料性能指标项目性能指标剪切粘结强度,MPa7d>1.014<i>1.5拉伸粘结强度,MPa浸水处理0.5热处理0.5冻融循环处理0.5碱处理0.5