吐槽一下:既然是标准,就应该是广而告知,被一些信息查的网站,高价出售。
我从“密码行业标准化技术委员会”下载到官方版本。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(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编码规则具有以下特点:
总之,通过遵循DER编码规则,可以实现不同系统之间的数据交换和互操作性。
DER是Distinguished Encoding Rules的缩写,是ASN.1编码规则的一种扩展,它为每个ASN.1类型定义了一种唯一的编码方案。
DER编码规则的特点如下:
长度小于等于127,必须使用短型长度表示法,即一个字节的长度。
长度大于127,必须使用长型长度表示法,即一个或多个字节的长度,并且要尽可能的短。
对于简单的string类型以及在其基础上隐性标签生成的类型,使用简单定长表示法。
DER编码由四个部分组成,分别是类型字段、长度字段、值字段和结束标识字段。