Classification of Symmetric Encryption Algorithms

Get an overview of the symmetric encryption algorithm and its two types—stream and block ciphers.

Introduction

In this introductory lesson, we introduce an important classification of symmetric encryption algorithms. Let’s list a few things to keep in mind before moving ahead:

  • Encryption algorithms are the cryptographic primitives most people associate with cryptography since they are primarily designed for providing confidentiality. It’s very important to recognize that encryption algorithms are just one of the many components of the cryptographic toolkit, albeit important ones.

  • This chapter deals with one class of encryption algorithms, namely symmetric encryption algorithms. Public-key encryption is discussed in the next chapter.

  • While symmetric encryption algorithms are primarily designed as confidentiality mechanisms, they can also be used to provide other security services, either directly or as the building blocks of those security services. We’ll see examples of this in later chapters.

Since digital data consists of binary strings, we can think of a symmetric encryption algorithm as a process for converting one binary string into another binary string. A symmetric encryption algorithm must, therefore, have the following properties:

  1. It should take as input a sequence of plaintext bits.

  2. It should perform a series of operations on these bits.

  3. It should output a sequence of bits that form the ciphertext.

Types of symmetric encryption algorithms

We can rather crudely classify symmetric encryption algorithms as either of the following:

  • Stream ciphers: The plaintext is processed one bit at a time. In other words, the algorithm selects one bit of plaintext, performs a series of operations on it, and then outputs one bit of ciphertext.

  • Block ciphers: The plaintext is processed in blocks (groups) of bits at a time. In other words, the algorithm selects a block of plaintext bits, performs a series of operations on them, and then outputs a block of ciphertext bits. The number of bits processed each time is normally a fixed number referred to as the block size of the block cipher. For example, the symmetric encryption algorithms DES and AES have block sizes of 64 and 128, respectively.

This rather simplistic classification is illustrated in the following figure, where the block cipher has a block size of 12 (kept artificially small):

Get hands-on with 1400+ tech skills courses.