Cryptographic algorithms
Learning objectives
- understand the fundamental concepts of cryptology;
- distinguish the different types of cryptographic algorithms;
- appreciate how cryptographic algorithms can provide
- confidentiality,
- data authentication.
Overview
Stream ciphers, block ciphers and hash functions are the three classical types of symmetric algorithms.
A stream cipher generates a keystream of random bits which are exclusive-or'ed with the plaintext. Stream ciphers are often used to provide confidentiality for real-time traffic, such as GSM and Bluetooth.
Block ciphers repeat simple substitution and transposition operations many times on fixed size blocks. The Data Encryption Standard (DES) has been widely used in banking, but is superseded by triple-DES and AES.
Hash functions accept input strings of arbitrary length and produce fixed-length output. A Manipulation Detection Code (MDC) affords integrity protection. Given an output of an MDC, it is infeasible to find the corresponding input and it should be difficult to find colliding inputs. Practical examples are SHA-1, SHA-256 and RIPEMD-160.
A Message Authentication Code (MAC) is a hash function with a secret key that provides data origin authentication. Practical examples are CBC-MAC, based on triple-DES and AES block ciphers.