×

ASN.1/BER/DER编码子集入门指南-RSA实验室的技

消耗积分:5 | 格式:rar | 大小:479 | 2010-12-07

分享资料个

本文简单介绍了OSI 抽象语法符号(ASN.1)的子集——基本编码规则(BER)和可辨别编码规则(DER)。本文的主要目的是为理解和实现PKCS协议族提供足够的背景材料。

众所周知,软件开发管理最主要的设计原理就是抽象。通过抽象,设计者可以定义系统的一部分,而不需要关心这部分实际上如何实现或如何表示。这一方法使得实现很open,它简化了定义过程,使得在实现部件之前可以声明某些“公理”、并且在设计高层部件时假定下层部件是可以实现的。抽象是现代多数软件规范的特点。
作为当今最复杂的系统之一,开放系统互联(OSI,在X.200种定义)是一个包含了大量抽象的例子。OSI是一个国际通用的标准体系,从物理层一直到用户应用层,管理着计算机之间的互联。高层次的对象被抽象定义,并将由底层的对象来实现。比如,某层的一个服务可能需要在计算机之间传递某个抽象对象;某一底层则可能提供关于0、1字符串的实现,利用一些编码规则把高层的抽象对象转换成这些字符串。OSI之所以被称为开放系统是因为它在每一层上支持不同的服务实现。
OSI定义抽象对象的方法称为ASN.1(Abstract Syntax Notation One,X.208),把这些对象转换成“0”和“1”的比特流的一套规则称为BER(Basic Encoding Rules ,X.209)。ASN.1是一套灵活的记号,它允许定义多种数据类型,从integer、bit string一类的简单类型到结构化类型,如set和sequence,还可以使用这些类型构建复杂类型。BER说明了如何把每种ASN.1类型的值编码为8bit的octet流。通常每个值有不止一种的BER编码方法。一般使用另外一套编码规则DER,它是BER的一个子集,对每个ASN.1值只有唯一一种编码方法。
本文档的目的是通过描述ASN.1、BER和DER的一套子集,以便提供足够的背景知识理解和实现一种基于OSI的应用——RSA公司的Public-Key Cryptography Standards。本文概括介绍了ASN.1、BER和DER,列举了一部分ASN.1类型和它们的BER/DER编码。第2-4节概括介绍了ASN.1、BER和DER。第5节列出了部分ASN.1类型,给出了它们的符号、详细的编码规则和举例,并介绍了其在PKCS中的应用。第6节用一个X.500 distinguished names例子作为总结。
本笔记没有谈到ASN.1的高级特点(例如宏),因为它们在实现PKCS时并不必要。关于其它特征和更多细节,请读者参考CCITT的建议文档:X.208、X.209,这两份文档中定义了ASN.1和BER。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !