ISO/IEC 8825-1:2015
Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)
发布时间:2015-11-12 实施时间:


ASN.1是一种独立于编程语言和操作系统的标记语言,用于描述数据结构和编码数据。ASN.1定义了一组抽象数据类型(ADT),包括基本类型(如整数、布尔值、字符串等)和构造类型(如序列、集合、选择等)。ASN.1还定义了一组规则,用于将ADT映射到二进制格式,以便在不同系统之间传输和存储数据。

ASN.1编码规则定义了如何将ASN.1数据类型编码为二进制格式。ISO/IEC 8825-1:2015定义了三种ASN.1编码规则:基本编码规则(BER)、规范编码规则(CER)和区分编码规则(DER)。

基本编码规则(BER)是ASN.1最基本的编码规则,也是最常用的编码规则之一。BER将ASN.1数据类型编码为可变长度的二进制格式,其中每个数据元素都以标记-长度-值(TLV)格式表示。BER编码的数据可以包含任意数量的空格和注释,因此在传输和存储数据时,需要进行压缩和解压缩操作。

规范编码规则(CER)是一种更严格的ASN.1编码规则,它在BER的基础上增加了一些限制,以便更好地支持网络传输和存储。CER编码的数据不允许包含空格和注释,而且长度字段必须使用最小的字节数表示。CER编码的数据比BER编码的数据更紧凑,但也更难以解析和调试。

区分编码规则(DER)是一种最严格的ASN.1编码规则,它在CER的基础上增加了一些限制,以便确保编码的数据可以在不同系统之间正确解析。DER编码的数据必须使用固定长度的字节数表示长度字段,而且必须按照特定的顺序编码数据元素。DER编码的数据比CER编码的数据更加紧凑和安全,但也更加复杂和难以实现。

ASN.1编码规则在电信、网络和安全领域得到了广泛应用。例如,在电信领域,ASN.1编码规则用于定义和编码通信协议和消息格式;在网络领域,ASN.1编码规则用于定义和编码网络协议和数据格式;在安全领域,ASN.1编码规则用于定义和编码数字证书和密钥交换协议。

相关标准
- ISO/IEC 8824-1:2015 ASN.1抽象语法标记
- ISO/IEC 8825-2:2015 ASN.1编码规则:基本编码规则(BER)
- ISO/IEC 8825-3:2015 ASN.1编码规则:规范编码规则(CER)
- ISO/IEC 9594-8:2016 X.500目录服务:ASN.1编码规则
- ITU-T X.690 ASN.1编码规则:规范、基本和区分