1. 首页
  2. 文档大全

补充知识:编码规则

上传者:97****76 2022-07-16 11:30:46上传 PPT文件 83KB
补充知识:编码规则_第1页 补充知识:编码规则_第2页 补充知识:编码规则_第3页

《补充知识:编码规则》由会员分享,可在线阅读,更多相关《补充知识:编码规则(43页珍藏版)》请在文档大全上搜索。

1、2022-6-11n ASN.1n BERn DERX.509 数字证书的描述与编码数字证书的描述与编码2022-6-12 X.509证书采用证书采用ASN.1描述,经过描述,经过DER编码后装载入存储介质中发放给用户或者放编码后装载入存储介质中发放给用户或者放到存储库中供其他用户访问。到存储库中供其他用户访问。 2022-6-13 ASN.1(Abstract Syntax Notation One,抽象语法符号)是一种描述抽象数据,抽象语法符号)是一种描述抽象数据类型的形式语言,它广泛用于类型的形式语言,它广泛用于RFC(Request For Comments)文本中的数)文本中的数据结

2、构描述,它有严格的据结构描述,它有严格的BNF定义。定义。 ASN.12022-6-14 ASN.1描述抽象数据类型的方法与高级描述抽象数据类型的方法与高级程序设计语言定义数据结构的方法类似。程序设计语言定义数据结构的方法类似。ASN.1定义了若干种简单类型,也提供了由定义了若干种简单类型,也提供了由简单类型构造复杂数据结构的手段。简单类型构造复杂数据结构的手段。ASN.1中定义的类型除类型名外还有一个中定义的类型除类型名外还有一个Tag,它,它的作用与编码规则有关。的作用与编码规则有关。 2022-6-15 标记(标记(tag)包括一个类型名和一个非负的标)包括一个类型名和一个非负的标记数。

3、而这个非负的标记数是起决定性作用的。记数。而这个非负的标记数是起决定性作用的。ASN.1中的标记共有中的标记共有4种类型:种类型:(1) 全局类型全局类型(universal) 全局类型在所有的应全局类型在所有的应用中有着相同的意义。用中有着相同的意义。(2) 应用类型应用类型(application) 应用类型在特定的应用类型在特定的应用中有着相同的含义。应用中有着相同的含义。2022-6-16(3) 私有类型私有类型(private) 私有类型只在特定的实私有类型只在特定的实体中有意义,实际上很少用到私有类型。体中有意义,实际上很少用到私有类型。(4) 上下文特定类型上下文特定类型(Con

4、text Specific) 上下文上下文特定类型在一个给定的结构里是有效的。特定类型在一个给定的结构里是有效的。 2022-6-17基本类型基本类型 TAG 值的集合值的集合BIT STRING Universal 3 0个或多个比特序列个或多个比特序列 IA5String Universal 22 任意由任意由ASCII码组成码组成 的字符串的字符串INTEGER Universal 2 正负整数和零正负整数和零 NULL Universal 5 一个空的值一个空的值OBJECT IDENTIFIER Universal 6 一串整数一串整数OCTET STRING Universal 4

5、 0个或多个位组序列个或多个位组序列PrintableString Universal 19 可打印字符可打印字符UTCTime Universal 23 用来表示时间的值用来表示时间的值2022-6-18 用以上简单类型构造复杂数据结构的手用以上简单类型构造复杂数据结构的手段表示序列和集合。段表示序列和集合。 SEQUENCE SEQUENCE OF SET SET OFUniversal 16Universal 172022-6-19ASN.1描述抽象语法的形式是类型赋值语句:描述抽象语法的形式是类型赋值语句:= 在序列或集合中的某些项可以是任选的,在序列或集合中的某些项可以是任选的,即可

6、能出现,也可能不出现。我们用保留字即可能出现,也可能不出现。我们用保留字OPTIONAL说明任选项,进一步可以用保留说明任选项,进一步可以用保留字字DEFAULT说明任选项的缺省值。说明任选项的缺省值。 2022-6-1101. BER编码编码 基本编码规则基本编码规则BER(Base Encoding Rules)中有各种方法,用来把)中有各种方法,用来把ASN.1的抽的抽象值编码为字节串,这个字节串就叫做抽象象值编码为字节串,这个字节串就叫做抽象值的传送语法。值的传送语法。 编码的基本原则是类型编码的基本原则是类型-长度长度-值三段式结值三段式结构,简称构,简称TLV(Type-Lengt

7、h-Value)结构。)结构。 BER编码和编码和DER编码编码2022-6-111 共有共有3种种BER方法:本原的、有限长度编方法:本原的、有限长度编码;结构的、有限长度编码;结构的、无长码;结构的、有限长度编码;结构的、无长度限制的编码。在每种方式中,度限制的编码。在每种方式中,BER编码包编码包括三或四个部分:括三或四个部分:2022-6-112(1) 标识八元组标识八元组:这个八元组标识这个八元组标识ASN.1抽象值抽象值的类和标注码,而且从这个八元组可以看出,的类和标注码,而且从这个八元组可以看出,编码方法是本原的还是结构的。编码方法是本原的还是结构的。(2) 长度八元组长度八元组

8、:对于有限长度方法,这部分给对于有限长度方法,这部分给出了出了ASN.1抽象值内容中八元组的个数;对抽象值内容中八元组的个数;对于无长度限制编码方法,它表明长度是无限于无长度限制编码方法,它表明长度是无限制的。制的。2022-6-113(3) 内容八元组内容八元组:对于本原、有限长度方法,这对于本原、有限长度方法,这部分给出了对本原值的一个具体表述;对于部分给出了对本原值的一个具体表述;对于结构方法,这部分就是结构内组件的连接。结构方法,这部分就是结构内组件的连接。(4) 内容结束八元组内容结束八元组:对于结构的、无长度限制对于结构的、无长度限制的方法来说,此八元组代表了内容的结束;的方法来说

9、,此八元组代表了内容的结束;对于其他方法来说,没有内容结束八元组。对于其他方法来说,没有内容结束八元组。2022-6-114 任何编码的第一个字节都是起标识类型的任何编码的第一个字节都是起标识类型的作用,前两位用于标识作用,前两位用于标识4种标签(通用、应用、种标签(通用、应用、上下文专用和用户专用),第三位用于区分简上下文专用和用户专用),第三位用于区分简单类型和构造类型,剩下的单类型和构造类型,剩下的5位用于对标签的位用于对标签的数值部分进行编码。如果标签的值大于数值部分进行编码。如果标签的值大于30,则这则这5位位全位位全1,实际标签值表示在后继字节,实际标签值表示在后继字节中。中。 2

10、022-6-115标标 签签标标签签值值0 0 简简单单类类型型1 1 构构造造类类型型0 0 0 0 U U N N I I V V E E R R S S A A L L0 0 1 1 A A P P P P L L I I C C A A T T I I O O N N1 1 0 0 上上下下文文专专用用1 1 1 1 P P R R I I V V A A T T E E2022-6-1162. DER编码编码 DER(Distinguished Encoding Rules)是是BER的一个子集,它为每一个的一个子集,它为每一个ASN.1类型类型制定唯一的编码方案。制定唯一的编码方案

11、。 DER编码由三个或四个部分构成:编码由三个或四个部分构成: 2022-6-117 使用类型的使用类型的TAG来标识该值的类型,在来标识该值的类型,在证书中用一个字节来表示。证书中用一个字节来表示。Bit8-Bit7用来标用来标示示TAG类型,类型,Bit6标示是否为结构类型(标示是否为结构类型(1为结构类型),为结构类型),Bit5-Bit1是类型的是类型的TAG值。值。 如如SEQUENCE类型,其类型,其TAG类型为类型为UNIVERSAL(00),属于结构类型(),属于结构类型(1),),TAG值为值为16(10000),所以其类型标示字),所以其类型标示字段值为(段值为(00110


文档来源:https://www.renrendoc.com/paper/212709697.html

文档标签:

下载地址