收藏 分销(赏)

GM∕T 0093-2020 证书与密钥交换格式规范.pdf

上传人:曲**** 文档编号:182054 上传时间:2022-11-04 格式:PDF 页数:21 大小:1.19MB
下载 相关 举报
GM∕T 0093-2020 证书与密钥交换格式规范.pdf_第1页
第1页 / 共21页
GM∕T 0093-2020 证书与密钥交换格式规范.pdf_第2页
第2页 / 共21页
GM∕T 0093-2020 证书与密钥交换格式规范.pdf_第3页
第3页 / 共21页
GM∕T 0093-2020 证书与密钥交换格式规范.pdf_第4页
第4页 / 共21页
GM∕T 0093-2020 证书与密钥交换格式规范.pdf_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、ICS 35.040 CCS L 80 中华人民共和国密码行业标准G/T 0093-2020 证书与密钥交换格式规范Certificate and key exchange format specification 2020-12-28发布2021-07-01实施也国家密码管理局发布WtJ涂层董真伪G/T 0093-2020 目次前言E引言.凹1 范围-2 规范性引用文件3 术语和定义4 缩略语25 OrD定义26 基本类型定义.6.1 CKX类型36.2 AuthenticatedSafe类型46.3 SafeContents类型46.4 SafeBag类型57 证书与密钥交换基本流程77.

2、1 创建CKX数据单元77.2 从一个CKX数据单元中导人密钥和证书等88 扩展属性8附录A(规范性)ASN.1语法标记9附录B(资料性)双证书及私钥导人导出示例四参考文献.17 I G/T 0093-2020 目。吕本文件按照GB/T1. 1-2020(标准化工作导则第1部分:标准化文件的结构和起草规则的规定起草。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。本文件由密码行业标准化技术委员会提出并归口。本文件起草单位:北京信安世纪科技股份有限公司、格尔软件股份有限公司、北京数字认证股份有限公司、长春吉大正元信息技术股份有限公司、兴唐通信科技有限公司、卫士通信息产业

3、股份有限公司、国家信息安全工程技术研究中心、山东得安信息技术有限公司、北京创原天地科技有限公司、西安西电捷通无线网络通信股份有限公司。本文件主要起草人:汪宗斌、刘婷、郑强、傅大鹏、赵丽丽、王妮娜、赵闪、罗俊、张旭、周淑静、张庆勇、焦靖伟、史晓峰、马洪富、杜志强。阳山G/T 0093-2020 引本文件的内容参照个人信息交换语法(RFC7292PKCS :# 12) ,按照我国相关密码政策和规范,结合我国实际应用需求及产品生产厂商的实践经验,定义了基于SM2密码算法的证书与密钥交换格式。对于需要传递的证书与密钥等用户个人信息,涉及信息机密性和完整性保护方法。机密性保护使用加密技术来防止个人信息被

4、暴露,完整性保护则防止个人信息被篡改。本文件支持机密性保护方法利出甜甜咕咕品叩阳所述机密性保护,有以一一公钥机密性m公钥以数字信封的形式来人能息。如果同时使用口N G/T 0093-2020 证书与密钥交换格式规范1 范围本文件规定了证书与密钥等信息的传递语法,包括私钥、证书、证书撤销列表、各种形式的秘密值及其扩展的标准化封装。本文件适用于个人的SM2算法证书与密钥等信息在不同平台之间迁移的应用场景。2 规范性引用文件下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本

5、文件。GB/ T 15852.2-2012信息技术安全技术消息鉴别码第2部分:采用专用杂凑函数的机制GB/ T 35275-2017 信息安全技术SM2密码算法加密签名消息语法规范GB/ T 35276-2017 信息安全技术SM2密码算法使用规范GB/ T 33560-2017 信息安全技术密码应用标识规范GM/ T 0091-2020 基于口令的密钥派生规范GM/ Z 4001 密码术语3 术语和定义3.1 3.2 3.3 3.4 3.5 GM/ Z 4001和GM/T0091-2020界定的术语和定义适用于本文件。属性aUribute 一个ASN.1类型,标识一个属性类型(通过一个对象标

6、识符)及其相关的属性值。平台platform 机器硬件、操作系统和应用软件组成的集合。注:用户在这些环境中行使他的个人标识。在这里,应用是指使用用户个人信息的软件。如果机器硬件不同,或者软件不同,即为平台不同。在多用户系统中,每个用户至少有一个平台。源平台source platform 最终要传递到目标平台上的个人信息的起源平台。目标平台target platform 源平台上产生的个人信息要传递到的最终目的平台。目的加密密钥对destination encryption key pair 用于公钥机密性保护方法中的特定平台的密钥对。G/T 0093-2020 注:公钥被称作DesEncPu

7、bKey(当需要强调是可信的公钥时,称为TDesEncPubKey),私钥称为DesEncPrivKey。3.6 源签名密钥对source signature key pair 用于公钥完整性保护方法中的特定平台的签名密钥对。注:公钥称为SrcSigPubKey(当需要强调是可信的公钥时,称为TSrcSigPubKey),私钥称为SrcSigPrivKey。3.7 包裹shrouded 对私钥的加密,防止以明文方式保存的密钥被非法接口查看。4 缩略语5 OID 1.2.156.10197.6.1.4.1.12.10.1.3 1.2.156.10197.6.1.4.1.12.10.1.4 1.2

8、.156.10197.6.1.4.1.12.10.1.5 1.2.156.10197.6.1.4.1.12.10.1.6 1.2.156.10197.6.1.4.1. 9.20 1.2.156.10197.6.1.4.1. 9.21 1.2.156.10197.6.1.4.1.9.22 1.2.156.10197.6.1.4.1.9.23 1.2.156.10197.6.1.4.1. 9.216 2 证书包certBag证书废止列表包crlBag秘密包secretBag安全内容包safeContentBag昵称(友好名称)friendlyName 密钥标识localKeyld证书类型certT

9、ypes证书废止列表类型crlTypes用户自定义扩展ckxUser个消息的字ag和相关属G/T 0093-2020 6 基本类型定义6.1 CKX类型CKX是本文件中定义的最高层交换数据单元,通过对AuthenticatedSafe内容进行完整性保护,以实现将CKX数据单元从一个平台安全地传递到另一个平台。AuthenticatedSafe可以经过数字签名(公钥完整性保护方法)或者MAC(口令完整性保护方法)产生一个CKX数据单元。如果AuthenticatedSafe经过数字签名,则CKX由在源平台的签名私钥SrcSigPriv Key产生的数字签名和对应的可信签名公钥TSrcSigPub

10、Key组成。TSrcSigPubKey应和CKX一起传递到目标平台,这样用户才可以验证公钥是否可信并验证AuthenticatedSafe的签名。如果AuthenticatedSafe经过MAC,则CKX由Au thentica tedSafe内容和一个从保密的完整性口令、盐值、迭代次数产生的消息鉴别码组成。CKX类型结构定义如下:(下面仅列出部分ASN.l,完整的ASN.1定义按附录A执行CKX : = SEQUENCE Version INTEG ER (1) , authSafe ContentInfo, macData MacData OPTIONAL authSafe是交换内容,其类

11、型为ContentlnfooContentlnfo结构定义按GB/T35275-2017中的6.10。现摘录如下:Contentlnfo : =SEQUENCE contentType ContentType, content OEXPLICIT ANY DEFINED BY contentType OPTIONAL ContentType : : = OBECT IDENTIFIER ContentType内容类型是一个对象标识符,其定义按GB/T35275-2017的第5章。MacData类型定义如下:(下面仅列出部分ASN.1,完整的ASN.1定义按附录A执行)MacData : = S

12、EQUENCE mac DigestInfo, macSalt OCTET STRING, iterations INTEGER DEFAUL T 1024 Digestlnfo : : = SEQUENCE digestAlgorithm DigestAlgorithmldentifier, digest Digest DigestAlgorithmldentifier : -Algorithmldentifier Digest :二OCTETSTRING DigestAlgorithmldentifier类型标识一个密码杂凑算法,本文件为有密钥使用的SM3密码杂凑算法,其OID按GB/T3

13、3560-2017执行。CKX数据类型组成见表203 G/T 0093-2020 表2CKX数据类型字段名称数据类型含义verSlOn INTEGER 语法的版本号authSafe ContentInfo 交换内容。ContentInfo结构定义,按GB/T35275-2017的6.10macData MacData 消息鉴别码在公钥完整性保护方法下,authSafe的ContentInfo域是SignedData类型,以AuthenticatedSafe作为被签名内容的SignedData类型的BER编码。SignedData类型定义按GB/T35275-2017的第8章。在口令完整性保护方

14、法下,authSafe的ContentInfo域是Data类型,以AuthenticatedSafe作为Data内容的BER编码。Data类型定义按GB/T35275二2017的第7章。macData是可选项,在公钥完整性保护方法下省略,在口令完整性保护方法下可选。在口令完整性保护方法下,authSafe域的content内容的BER编码作为明文内容,通过HMACSM3算法生成消息鉴别码MAC,HMAC算法遵循GB/T15852.2-2012的规定,其中密码杂凑算法推荐使用SM30MAC的密钥由保密的完整性口令、盐值macSalt和迭代次数iterations派生得到,密钥派生函数按GM/T0

15、091-2020执行。口令应为BMPString,且每个字符都以高位有效字节在前的方式以2字节进行编码,最后附带2个字节OxOO。6.2 AuthenticatedSafe类型authSafe的contentType域是Data类型或者SignedData类型。authSafe的content域直接(类型为Data时)或间接(类型为SignedData时)的包含一个AuthenticateSafc类型的BER编码。A u then tica tedSafe类型定义如下:AuthenticatedSafe : :二SEQUENCEOF ContentInfo Contcntlnfo定义见6.10

16、一个Au then tica tedSaf e包括一系列有序的ContentInfo实例。这些Contcntlnfo域的content域包含明文的、加密的或经过数字信封加密的数据。如果是明文,则Contentlnfo域是Data类型,Data类型定义按GB/T35275-2017的第7章。如果是口令机密性保护方法,则ContentInfo域是EncryptedData类型,EncryptedData类型定义按GB/ T 352752017的第11章;如果是公钥机密性保护方法,则Contcntlnfo域是EnvelopedDa ta类型,EnvclopcdData类型定义按GB/T3527520

17、17的第9章。其巾,EncryptedData和EnvelopedData的保护明文是一个或多个SafeContents实例的BER编码。7.1描述了AuthenticatedSafe类型各个域值的解释。可以按照用户的要求,AuthenticatedSafe的每个ContentInfo包含私钥、已加密的私钥、证书、证书撤销列表(CRLs)或其他需要保护的秘密信息等的任意集合,存储为SafcContents类型数据。6.3 SafeContents类型SafeContents类型由多个SafeBag构成。每个SafeBag包含密钥、证书或其他信息,由对象标识符区分。4 类型定义如下:(下面仅列出

18、部分ASN.l,完整的ASN.1定义按附录A执行)SafeContents :二SEQUENCEOF SafeBag G/T 0093-2020 SafeBag : = SEQUENCE bagld BAG-TYPE. &-id ( CKXBagSet) bagValue OJ EXPLICIT BAG-TYPE. &-Type( CKXBagSet bagld) , bagAttributes SET OF CKXAttribute OPTIONAL CKXAttribute : = SEQUENCE attrId ATTRIBUTE. &-id ( CKXAttrSet), attrVal

19、ues SET OF ATTRIBUTE. &-Type ( CKXAttrSet attrId) )一这个类型与X.500类型Attribute兼容CKXAttrSet A TTRIBUTE :二(friendlyName I localKeyld,一其他属性也允许可选的bagAttributes域允许用户指定昵称和密钥标识等,并且允许通过可视化工具向用户显示某种有意义的字符串。6.4 SafeBag类型6.4.1 概述本文件定义了SafeBag的6种类型,分别对应着KeyBag、ShroudedKeyBag、CertBag、CRLBag、SecretBag和SafeContents类型。类

20、型定义如下:(下面仅列出部分ASN.1,完整的ASN.1定义按附录A执行)bagtypes OBJECT IDENTIFIER : = ckx 10 1 BAG-TYPE :二TYPE-IDENTIFIER keyBag BAG-TYPE :二KeyBagIDENTIFIED BY bagtypes 1 shroudedKey Bag BAG-TYPE :二ShroudedKeyBagIDENTIFIED BY bagtypes 2 certBag BAG-TYPE : :二CertBagIDENTIFIED BY bagtypes 3 crlBag BAG-TYPE : :二CRLBagID

21、ENTIFIED BY bagtypes 4 secretBag BAG-TYPE : :二SecretBagIDENTIFIED BY safeContentsBag BAG-TYPE : : = SafeContents IDENTIFIED BY CKXBagSet BAG-TYPE : : = bagtypes 5 bagtypes 6 keyBag I shroudedKeyBag I certBag I crlBag I secretBag I safeContentsBag, .一预留将来扩展6.4.2 KeyBag类型本文件的KeyBag是一个SM2私钥类型ECPrivateK

22、ey。类型定义如下:(下面仅列出部分ASN.1,完整的ASN.1定义按附录A执行)KeyBag : -ECPrivateKey ECPrivateKey结构定义按GB/T35275-2017的13.3。现摘录如下:ECPrivateKeyCURVES:lOSet: = SEQUENCE 5 G/T 0093-2020 vcrsion INTEGERecPrivkeyVerlCl)( ecPrivkeyVerl), privateKey SM2PrivateKey, parameters OJ Parameters IOSet OPTIONAL, publicKey lJ SM2PublicKe

23、y 注:一个KeyBag中只包含一个SM2私钥信息。6.4.3 ShroudedKeyBag类型ShroudedKeyBag是一个加密的SM2私钥结构。ShroudedKeyBag类型定义如下:(下面仅列山部分ASN.l,完整的ASN.1定义按附录A执行)ShroudedKeyBag : -SM2EnvelopedKey SM2EnvelopedKey结构定义按GB/T35276 2017中的7.4。现摘录如下:SM2EnvelopedKey : :二SEQUENCEsymAlgID Algorithmldentifier, 一对称密码算法标识symEncryptedKey SM2Cipher

24、, 一对称密钥密文Sm2Pu blicKey SM2PublicKey, -SM2公钥Sm2EncryptedPrivateKey BITSTRING -SM2私钥密文其中,一-symAlgID域为SM4-CBC的算法标识,其OID按GB/T335602017的附录A。一二symEncryptedKey域为应用程序中的外部SM2公钥加密对称密钥得到的对称密钥密文,这里的外部SM2公钥是指用户的个人密钥,与平台密钥无关。请注意不要与用于传递用户个人信息的密钥,即目标平台SM2公钥(称为TDesEncPubKey)混淆。SM2Cipher类型定义按GB/ T 35276-2017中的7.2。一-S

25、m2PublicKey域为被保护的SM2私钥对应公钥的BER编码,SM2PublicKey类型定义按GB/ T 35276二2017中的7.10一-Sm2 EncryptedPri va teKey域为SM2私钥密文的BER编码,SM2私钥密文由对称密钥使用Algori thmlden tifier域标识的算法加密得到。注ShroudedKeyBag中只包含一个加密的SM2私钥信息。6.4.4 CertBag类型CcrtBag包含一个证书类型。对象标识用来区分不同类型的证书。类型定义如下:(下面仅列出部分ASN.1,完整的ASN.1定义按附录A执行)CertBag : :二SEQUENCE c

26、ertld BAG-TYPE.&.id (CertTypes), ccrtValue OJ EXPLICIT BAG-TYPE. &. Type ( CertTypes certld) x509Certificate BAG-TYPE : : = OCTET STRING IDENTIFIED BY certTypes 1 一DER编码的X.509证书用OCTETSTRING存储CertTypes BAG-TYPE :二x509Certificate, .一未来扩展6.4.5 CrlBag类型CRLBag包含一个证书撤销列表(CRL)。使用对象标识来区分不同类型的CRL。6 G/T 0093-

27、2020 类型定义如下:(下面仅列出部分ASN.l,完整的ASN.l定义按附录A执行)CRLBag : = SEQUENCE crlId BAG-TYPE. &id ( CRL Types) , crlValue OJ EXPLICIT BAG-TYPE.&Type (CRLTypescrlId) x509CRL BAG-TYPE : :二OCTETSTRING IDENTIFIED BY certTypes l -DER编码的X.509CRL用OCTETSTRING格式存储CRL Types BAG-TYPE : : = x509CRL,一为了未来的扩展)6.4.6 SecretBag类型S

28、ecretBag表示其他类型的秘密信息,其值由对象标识符定义。类型定义如下:(下面仅列出部分ASN.l,完整的ASN.l定义按附录A执行)SecretBag :二SEQUENCE secretTypeId BAG-TYPE. &id ( SecretTypes) , secret V al ue 0 J EXPLICIT BAG-TYPE. & Type ( SecretTypes secretTypeId ) SecretTypes BAG-TYPE : :二.一留作扩展注:一个SecretBag只能包含一个秘密信息。6.4.7 SafeContents类型SafeBag第六种类型是Safe

29、Contents,允许以递归的方式实现多个KeyBag、EncryptedPriva teKey-Bag 、CertBag、CRLBag和SecretBags在上层SafeContents下的任意嵌套。7 证书与密钥交换基本流程7.1 创建CKX数据单元创建CKX数据单元的步骤如下所述。a) 根据ASN.l语法创建SafeContents的多个实例,每个实例包含SafeBag的多个(可能嵌套)实例。假设SafeContents的多个实例分别为SCl、SC2、.、SCno注意,在一个CKXPDU中可能有SafeContents的一个或多个实例。正如b)中所述,每个实例可以被单独加密(或者不加密)

30、。附录B给出了包含2个实例的示例供实现者参考。b) 对每个SCi,根据所选择的不同加密选项。1) 如果SCi不被加密,建立一个Data类型的Contentlnfo实例CIioData八位位组流内容是SCi的BER编码(包括标签、长度和值的八位位组流)。2) 如果SCi使用口令加密,建立一个EncryptedData类型的Contentlnfo实例CIi。设置CIi的encryptedContentInfo域的contentType域为data类型,并设置encryptedConten t域是加密过的SCi的BER编码(注意,应包括标签和长度字节的八位位组流)。3) 如果SCi采用公钥加密,建立

31、一个EnvelopedData类型的ContentInfo实例CIi,本质上与b)2)中的EncryptedData Con ten tInfo是同样的方式。c) 在SEQUENCE中排列CIis,生成一个AuthenticatedSafe的实例。d) 生成内容类型为Data的ContentInfo实例T0 Data八位位组流的内容是Au then tica tedSafe 值的BER编码(包括标签、长度和值的八位位组流)。e) 对于完整性保护。7 G/T 0093-2020 1) 如果CKXPDU使用数字签名进行认证,生成一个SignedData类型的Contentlnfo实例Co C中Si

32、gnedData的contentlnfo域是ToC是顶层CKX结构中Contentlnfo域的实例。2) 如果CKXPDU使用HMAC进行认证,对T中Data内容使用SM3密码杂凑算法进行计算,得到HMAC(也就是说,在八位位组流中排除标签和长度字节)。如果使用公钥认证,这也是e)1)中最初要计算杂凑值的内容。7.2 从一个CKX数据单元中导入密钥和证书等从CKX中导人与创建一个CKX的过程相反。大体来讲,当一个应用从CKX导人密钥等,应忽略所有无关的对象标识。有时候,需要提醒用户提供某些对象标识。8 扩展属性本文件提供了证书与密钥的交换格式。当这些信息被存储在一个目录服务中时,应使用user

33、CKX属性。8 类型定义如下:userCKX A TTRIBUTE : :二(WITH SYNT AX CKX ID ckx-at-userCKX G/T 0093-2020 附录A(规范性)ASN.l语法标记本附录给出了本文件中定义的所有的ASN.1类型、值和对象。一本模块已经通过OSSASN.1工具进行的一致性检验DEFINITIONS IMPLICIT T AGS :二BEGIN 一全部导出一导出这个模块中定义的所有类型和值都到其他ASN.1模块中使用IMPORTS informationFramework FROM UsefulDefinitions joint-iso-itu-t(2

34、) ds(5) module(l) usefulDefinitions(O) 3 ATTRIBUTE FROM InformationFramework informationFramework Contentlnfo, DigestInfo 一Objectidentifiers cstc OBJECT IDENTIFIER : = iso(l) member-body(2) cn(l56) cstc(10197) ckx OBJECT IDENTIFIER :二cstc ss(6) bc(1) sm(4) 12 ckxPbeIds OBJECT IDENTIFIER : : = ckx 1

35、pbeWithSM3ANDSM4_CBC OBJECT IDENTIFIER : = ckxPbeIds 8 bagtypes OBJECT IDENTIFIER : = ckx 10 1 ckx-at-userCKX OBJECT IDENTIFIER := cstc ss(6) bc(l) sm(4) 19 216 -The CKX PDU CKX :二SEQUENCE verslOn authSafe macData INTEG ER (1) , ContentInfo, MacDa ta OPTION AL MacData : = SEQUENCE 口lacmacSalt lterat

36、lOns Digestlnfo, OCTET STRING, INTEGER DEFAULT 1024 AuthenticatedSafe : :二SEQUENCEOF ContentInfo - Data if unencrypted -EncryptedData if password-encrypted 一EnvelopedDataif public key-encrypted SafeContents : -SEQUENCE OF SafeBag SafeBag : = SEQUENCE 9 G/T 0093-2020 bagld bagValue bagAttributes BAG-

37、TYPE. &-id ( CKXBagSet ) , OJ EXPLICIT BAG-TYPE. &-Type( CKXBagSet bagld) , SET OF CKXAttribute OPTIONAL QU e DA Vd 令,、b ba a门口BY -K BAG-TYPE : = KeyBag IDENTIFIED BY bagtypes 1 shroudedKeyBag BAG-TYPE : : = ShroudedKcyBag IDENTIFIED BY bagtypes 2 certBag BAG-TYPE : : = CertBag IDENTIFIED BY bagtype

38、s 3 crlBag BAG-TYPE :二CRLBag IDENTIFIED BY bagtypes 4 secretBag BAG-TYPE : :二SecretBag IDENTIFIED BY bagtypes 5 safeContentsBag BAG-TYPE :二SafeContentsIDENTIFIED BY bagtypes 6 CKXBagSet BAG-TYPE : = keyBag shroudedKeyBag certBag crlBag secretBag safeContentsBag, . -For future extensions BAG-TYPE :二T

39、YPE-IDENTIFIER VJ e k e + a v r PA C E -b a Bg uy只MG,RU K句-K Shrouded KeyBag ShroudedKeyBag : : -SM2EnvelopedKey - CertBag CertBag :二SEQUENCE certld certValue BAG-TYPE. &-id ( CertTypes) , OJEXPLICIT BAG-TYPE. &-Type ( CertTypes certld) x509Certificate BAG-TYPE -OCTET STRING IDENTIFIED BY certTypes

40、1 DER-encoded X.509 certificate stored in OCTET STRING CertTypes BAG-TYPE : -x509Certificate . -For future extensions 一CRLBagCRLBag : = SEQUENCE crlld BAG-TYPE. &-id ( CRLTypes), 10 GM/T 0093-2020 crltValue OEXPLICIT BAG-TYPE.忌Type( CRLTypes crlId) x509CRL BAG-TYPE :二OCTET STRING IDENTIFIED BY certT

41、ypes l 一DER-encodedX.509 CRL stored in OCTET STRING CRL Types BAG-TYPE : : = x509CRL, . -For future extensions 一SecretBag ,d y-2 阳山Il ya TV 4E4Ea-ee AA cc ee ququ CKX ID END 11 G/T 0093-2020 B.1 需求说明附录B(资料性)双证书及私钥导入导出示例为了将用户个人信息如双证书(签名证书和加密证书)及对应的私钥从源平台传递到目标平台,满足双证书及私钥同步的迁移需求,本文件可提供类似智能密码钥匙密钥容器的功能,密

42、钥容器示意图见图B.l。签名密钥| 拥密密钥| 签名证书|时|主签名密钥加密密钥签名证书加密证书图B.1智能密码钥匙的容器示意图本附录将详细列举从双证书及私钥导出CKX PDU以及从CKX PDU导人双证书及私钥的过程。以实际应用场景中,常用的口令机密性和口令完整性保护方法为例,说明本文件的用法以及CKX语法格式。一般来说,口令方式的机密性保护方法和完整性保护方法若被同时采用,机密性保护口令和完整性保护口令可以相同,也可以不相同。本附录中机密性保护和完整性保护假设设置相同的口令。B.2说明了从双证书及私钥导出CKX PDU的过程,B.3说明了从CKX PDU导人双证书及私钥的过程,B.4从外层

43、到内层阐述了CKXPDU的语法格式。B.2 从双证书及私钥导出CKXPDU 以创建双证书及对应私钥的CKX PDU为例,从内层到外层,步骤如下。a) ASN.l中建立SafeContents的两个实例SC_sign、SC_enc。每个实例都包含SafeBag类型的两个实例。SC_sign的两个SafeBag类型实例设为SB_sign_cert、SB_sign_shroudedKey,其中,SB_sign_cert是CertBag类型,SB_sign_shroudedKey是ShroudedKeyBag类型。SC_enc的两个实例设为SB_enc_cert、SB_enc_shroudedKey,

44、其中SB_enc_cert是CertBag类型,SB一12 G/T 0093-2020 enc_shroudedKey是ShroudedKeyBag类型。注意,本示例中的CKXPDU包含SafeContents的两个实例SC_sign、SC_encob) 对于SC_sign或SC_enc,分别根据选择的不同加密选项。1) SC_sign使用口令方式加密,建立一个EncryptedData类型的ContentInfo实例CI_sign。CI_sign的encryptedConten tlnfo域的contentType为Data类型,并设置encryptedContent域是对加密过的SC_si

45、gn的BER编码(注意,应包括标签和长度字节的八位位组流)。其中,SC_sign是SB_sign_cert和SB_sign_shroudedKey的有序序列的BER编码。2) SC_enc使用口令方式加密,建立一个EncryptedData类型的ContentInfo实例CI_encoCI B.3 c) d) uthenticatedSafe 的Data与Mac、,/10 1) CertBag类型,根据bagValue和bagAttributes域ii) SafeBag实例SB_sign_shroudedKey根据bagID域得到是一个shroudedKey类型,根据bagValue和bagA

46、ttributes域导出签名证书对应的私钥。2) 对EncryptedData类型的ContentInfo实例CI_enc的密文内容进行解密,得到SafeContents实例SC_encC排除标签和长度字节的八位位组流)0 SC_enc是SB_enccert和SBenc_ shroudedKey的有序序列的BER编码。i) SafeBag实例SB_enc_cert根据bagID域得到是一个CertBag类型,根据bagValue和bagA ttri butes域导出加密证书。ii) SafeBag实例SB_enc_shroudedKey根据bagID域得到是一个shroudedKey类型,根据

47、bagValue和bagAttributes域导出加密证书对应的私钥。13 G/T 0093-2020 B.4 双证书及私钥的CKXPDU语法B.4.1 CKX ;吾法以下从外层到内层,对双证书及私钥的CKXPDU的具体语法进行示例。CKX : = SEQUENCE version INTEGER v1 (1) , authSafe ContentInfo, macData MacData OPTIONAL Contentlnfo实例T的语法结构如下:Contentlnfo: :二SEQUENCEcontentType ContentType,一Data类型OID:1.2.156.10197.

48、6.1.4.2.1 content OEXPLICIT ANY DEFINED BY contentType OPTIONAL -AuthenticatedSafe实例的BER编码(包括标签、长度和值的八位位组流)ContentType : :二OBECTIDENTIFIER MacData : :二SEQUENCE mac DigestInfo, macSalt OCTET STRING, lteratlOns INTEGER DEFAULT 1024 DigestInfo :二SEQUENCE digestAlgorithm DigestAlgorithmldentifier, 一本文件为

49、有密钥的SM3密码杂凑算法,其OID按GB/T33560-2017执行。Digest Digest DigestAlgorithmldentifier : :二AlgorithmldentifierDigest :二OCTETSTRING B.4.2 AuthenticatedSafe ;吾?去AuthenticatedSafe实例由两个Contentlnfo实例CI_sign和CI_enc的有序集合构成,其语法结构如下:AuthenticatedSafe :二SEQUENCEOF ContentInfo 以下是EncryptedData类型的Contentlnfo实例CI_sign的语法结构

50、:ContentInfo: =SEQUENCE contentType ContentType,一EncryptedData类型的OID为1.2.156.10197.6.1.4.2.5content OEXPLICIT ANY DEFINED BY contentType OPTIONAL 其中,contentType域是EncryptedData类型,content域是对SafeContents实例SC_sign加密封装成EncryptedData类型的BER编码(包括标签、长度和值的八位位组流)。14 GM/T 0093-2020 B.4.3 SafeContents 吾?去B.4.3.1

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 品牌综合 > 行业标准/行业规范

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服