ASN.1介绍
精选 转载ASN.1提供了多种编码方式,比如:BER (Basic Encoding Rules)是 ASN.1最基本的编码方式;DER (Distinguished Encoding Rules)主要用于对安全性要求比较高的应用程序;CER (Canonical Encoding Rules)主要用于编解码数据量巨大的消息,它能够保证在所有数据还没有到达的时候就开始进行编码解码的工作;PER (Packet Encoding Rules)采用了有效算法,缩短了编解码的时间;此外,还有XER等其他类型的解码方式。这些编码规则描述了如何对 ASN.1中定义的数值进行编码便于传输,而不管是否有相同的计算机环境、编程语言和应用系统等因素。
BER采用了最基本的TLV三元组结构对抽象数据进行编解码操作,其编码规则简单,但编码后数据开销过大,增加了很多冗余数据。
CER和DER两种编码规则均在BER的基础上增加了一定的约束发展而来。CER与DER的主要区别在于:CER使用不定长编码格式,满足了传输大量数据的需要;DER使用定长编码格式为可靠数据的传输而设计。
1994年ASN.1引入了PER编码规则。与BER规则相比,PER编码后数据占用的空间能获得40%-50%的改进,因此被广泛应用于VoIP、视频电话、多媒体及第三代移动通信系统等高速数据传输领域。与BER中递归使用三元组TLV不同,PER的格式为:[P][L][V] (optional Preamble, optional Length, optional Value),PLV中每个域不是八位组串,而是比特串。在PER规则中,由于Length可以省略(有些时候Value也可以省略),因而不能从编码中得知边界,×××必须知道抽象描述才能正确解码。PER编码中没有Tag域,因此,PER不再缺省支持扩展,必须明确在描述中添加扩展符。只有当长度没有被固定或者数据长度很重要的情况下,才对Length进行编码。对SEQUENCE或SET类型的值编码时,使用一个bitmap来标识可选成员是否出现;同样,在编码CHOICE的被选择成员前,也会增加一个序号指示其位置。和BER相比,PER使编×××的的处理时间相对少些,传输速度更快。PER编码规则可以分为基本的和规范的两类,每一类又可以分为对齐和不对齐两种。
XER编码规则主要被用来将数据转换成XML格式数据,该编码规则在1999年才被引入到ASN.1标准中。
下一篇:PC-Lint选项详解
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Qt入门之概述
Qt6介绍、环境搭建、应用示例
Qt6 QtCreator C++ -
【7】ASN.1打开证书报错
ASN.1打开证书报错
密评 商用密码 密码学 问题分析 辅助工具 -
有一种密码学专用语言叫做ASN.1
简介 ASN.1是一种跨平台的数据序列化的接口描述语言。可能很多人没有听说过ASN.1, 但是
java 程序那些事 密码学 标识符 内置类型