This module defines substitution cipher technique and describes multiple examples for substitution-based classical algorithms: Caesar Cipher, Monoalphabetic Cipher, and Vigenere Cipher (which is a type of Polyalphabetic Cipher). We will also discuss the mathematical concepts in Modulo Operations to use them to describe the cipher algorithms.
Classical Cipher: Transposition
This module studies transposition cipher which, along with substitution cipher, provides a base technique for symmetric ciphers. We define transposition cipher and product cipher and discuss transposition examples in Rail Fence and Permutation Cipher.
Block Cipher and DES
This module is about modern ciphers based on product ciphers. We will first define block cipher and contrast it with stream cipher. We will then describe the ideal block cipher, which maximizes the number of transformations, and Feistel Cipher, which is a practical structure framework approximating the ideal block cipher. As a widely used cipher example based on the Feistel Cipher structure; we will study Data Encryption Standard (DES).
3-DES and AES
To provide stronger security than DES, modern symmetric ciphers can either use multiple ciphers or use an entirely different algorithm. This module reviews examples of each in Triple-DES and AES.
Block Cipher Operation Modes
Given a cipher and a key, this module reviews how to use block cipher operation modes when the data spans across multiple blocks. The module describes five popular operation modes: ECB, CBC, CFB, OFB, and CTR mode.