Cryptography for Developers

Chapter 2: ASN.1 Encoding

Overview of ASN.1

Abstract Syntax Notation One (ASN.1) is an ITU-T set of standards for encoding and representing common data types such as printable strings, octet strings, bit strings, integers, and composite sequences of other types as byte arrays in a portable fashion. Simply put, ASN.1 specifies how to encode nontrivial data types in a fashion such that any other platform or third-party tool can interpret the content.

For example, on certain platforms the literal character a would be encoded in ASCII (or IA5) as the decimal value 97, whereas on other non-ASCII platforms it may have another encoding. ASN.1 specifies an encoding such that all platforms can decode the string uniformly. Similarly, large integers, bit strings, and dates are also platform sensitive data types that benefit from standardization.

This is beneficial for the developer and for the client (or customer) alike, as it allows the emitted data to be well modeled and interpreted. For example, the developer can tell the client that the data the program they are paying for is in a format another developer down the road can work with avoiding vendor lock-in problems and building trust.

Formally, the ASN.1 specification we are concerned with is ITU-T X.680, which documents the common data types we will encounter in cryptographic applications. ASN.1 is used in cryptography as it formally specifies the encodings down to the byte level of various data types that are not always inherently portable and, as we will see shortly, encodes them in a deterministic fashion.

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: RFID Software
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.