GM/T0015-2012学习笔记

GM/T0015-2012学习笔记

文章目录

  • GM/T0015-2012学习笔记
    • 数字证书
      • 数字证书特性
        • 用户证书形式
    • 数字证书格式
      • DER
        • 资料1
        • 资料2
    • //TODO

吐槽一下:既然是标准,就应该是广而告知,被一些信息查的网站,高价出售。

我从“密码行业标准化技术委员会”下载到官方版本。http://www.gmbz.org.cn/main/bzlb.html
如果还找不到的,可以联系我索要,微信yjkhtddx。
还有大神整理在线版:https://github.com/metanorma/gmt-0015-2012/blob/master/gmt-0015-2012-zh.adoc

数字证书

数字证书特性

  • 任何能够获得和使用认证机构公钥的用户都可以恢复认证机构所认证的公钥。
  • 除了认证机构,没有其他机构能够更改证书,证书是不可伪造的。

用户证书形式

在这里插入图片描述
V 为证书版本;
SN 为证书序列号;
A 为用来签署证书的算法标识符;
UCA 为CA的可选的唯一性标识符;
UA 为用户A的可选的唯一性标识符;
Ap 为用户A的公钥;
TA 表示证书的有效期,由两个日期组成,两者之间的时间段即是证书的有效期。

CA<> = CA{V,SN,AI,CA,UCA,A,UA,Ap,TA}

数字证书格式

本标准采用GB/T16262系列标准的特定编码规则(DER)对下列证书项中的各项信息进行编码, 组成特定的证书数据结构。ASN.1 DER编码是关于每个元素的标记、长度和值的编码系统。

数字证书的基本数据结构如下:

Certificate ::= SEQUENCE {
  tbsCertificate      TBSCertificate,
  signatureAlgorithm  AlgorithmIdentifier,
  signatureValue      BIT STRING }
TBSCertificate ::= SEQUENCE {
  version            [0] EXPLICIT Version DEFAUT v1,
  serialNumber          CertificateSerialNumber,
  signature             AlgorithmIdentifier,
  issuer                Name,
  validity              Validity,
  subject               Name,
  subjectPublicKeyInfo  SubjectPublicKeyInfo,
  issuerUniqueID    [1] IMPLICIT UniqueIdentifier OPTIONAL,
                                --如果出现,version必须是v2或者v3
  subjectUniqueID   [2] IMPLICIT UniqueIdentifier OPTIONAL,
                                --如果出现,version必须是v2或者v3
  extensions        [3] EXPLICIT Extensions OPTIONAL 扩展项
                                --如果出现,version必须是v3
}
Version ::= INTEGER {  v1(0)  ,y2(1) ,v3(2)  }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE {
  notBefore      Time,
  notAfter      Time }
Time ::= CHOICE {
  utcTime        UTCTime,
  generalTime    GeneralizedTime }
UniqueIdentifier ::= BIT STRING 
SubjectPublicKeyInfo ::= SEQUENCE {
  algorithm          AlgorithmIdentifier,
  subjectPublicKey  BIT STRING }
Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
Extension ::= SEQUENCE {
  extnID        OBJECT IDENTIFIER,
  critical      BOOLEAN DEFAULT FALSE,
  extnValue     OCTET STRING }

DER

资料1

DER(Distinguished Encoding Rules)是一种ASN.1(Abstract Syntax Notation One,抽象语法符号一)规范定义的数据编码规则。ASN.1是一种用于描述数据结构和数据格式的标记语言。

DER编码规则定义了将数据结构以二进制形式进行编码的规则,它是一种通用的、确定性的编码规则。DER编码规则在一些常见的应用中得到广泛使用,特别是在X.509数字证书、PKCS标准(如PKCS#5、PKCS#7和PKCS#12)以及其他各种加密算法中。

对于每种类型的数据,DER规定了它的特定编码方式,例如,整数、布尔值、字符串、时间等。数据以TLV(Type-Length-Value)三元组的形式编码,即类型、长度和值,其中类型表示数据的类型标识,长度表示数据的长度,值表示具体的数据内容。

DER编码规则具有以下特点:

  1. 确定性:对于给定的数据,DER编码规则定义了唯一的编码方式,因此可以确保编码和解码的结果始终一致。
  2. 紧凑性:DER编码是非常紧凑的,可以有效地利用存储空间。
  3. 无歧义性:DER编码规则是严格的,不允许任何歧义的情况出现。

总之,通过遵循DER编码规则,可以实现不同系统之间的数据交换和互操作性。

资料2

DER是Distinguished Encoding Rules的缩写,是ASN.1编码规则的一种扩展,它为每个ASN.1类型定义了一种唯一的编码方案。
DER编码规则的特点如下:

长度小于等于127,必须使用短型长度表示法,即一个字节的长度。
长度大于127,必须使用长型长度表示法,即一个或多个字节的长度,并且要尽可能的短。
对于简单的string类型以及在其基础上隐性标签生成的类型,使用简单定长表示法。

DER编码由四个部分组成,分别是类型字段、长度字段、值字段和结束标识字段。

//TODO

你可能感兴趣的:(学习,笔记,GMT0015)