Types of Ciphers Symmetric Ciphers
Substitution Ciphers
Simple Substitution Ciphers
Homophonic Substitution Ciphers
Polygraphic Substitution Ciphers
Polyalphabetic Substitution Ciphers
The “Simple XOR Cipher”
Related: Vigenère cipher and The One Time Pad
Disambiguate Simple XOR vs. Vigenerè
The simple XOR cipher is a variation of the Vigenère cipher. It differs from the original version because it operates on bytes, which are stored in computer memory, instead of letters.
Instead of adding two alphabet letters, as in the original version of the Vigenère cipher, the XOR algorithm adds subsequent plaintext bytes to secret key bytes using XOR operation. After using the last secret key byte, one should return to the first byte (as in the Vigenère encryption). From: Simple XOR Cipher | Polyalphabetic Substitution | Crypto-IT
Transposition Ciphers
Rail Fence Cipher
Route Cipher
Columnar Cipher
Double Transposition
Myszkowski Transposition
Rotor Machines
See: Cryptographic Rotor Machines | Crypto-IT
Hebern Rotor Machine
Lorenz Rotor Machine
Enigma Machine
Quantum-Resistant algorithms
CRYSTALS-Kyber
CRYSTALS-Kyber - A key encapsulation mechanism (KEM) algorithm selected by NIST as one of the first four quantum-resistant cryptographic algorithms.
Types of Asymmetric Ciphers
Asymmetric ciphers are also referred to as ciphers with public and private keys. They use two keys, one for encryption of messages and the other one during decryption.
Technical Definition
From: Asymmetric Ciphers | Cryptography | Crypto-IT The system of asymmetric encryption consists of three algorithms (G, E, D):
- G( ) - the nondeterministic algorithm which returns a pair of keys (pk, sk),
- E(pk, m) - the nondeterministic algorithm which encrypts plaintext m and returns ciphertext c,
- D(sk, c) - the deterministic algorithm which decrypts c and returns plaintext m.
All the three algorithms must provide consistency. For each pair of keys (pk, sk) created by G and for every plaintext message m the following condition must be fulfilled:
- D(sk, E(pk, m)) = m
Merkle’s Puzzles algorithm
See: Merkle’s Puzzles | Asymmetric Cipher | Crypto-IT
Diffie-Hellman Protocol
See: Diffie–Hellman Protocol | Asymmetric Cipher | Crypto-IT
RSA
See: RSA Asymmetric Cipher | Cryptography | Crypto-IT
Quantum Resistant algorithms
See: Quantum-Resistant
- CRYSTALS-Dilithium - A digital signature algorithm selected by NIST as one of the first four quantum-resistant cryptographic algorithms. 34
- FALCON - A digital signature algorithm selected by NIST as an alternative to CRYSTALS-Dilithium for applications needing smaller signatures. 34
- SPHINCS+ - A digital signature algorithm selected by NIST as a backup option, as it is based on a different mathematical approach compared to the other NIST selections. 34
Attributes of Ciphers
Reciprocal Ciphers
A reciprocal cipher is a cipher that can be encrypted and decrypted using the same algorithm. You might also say that the cipher has the attribute of reciprocality
A reciprocal cipher is a cipher where, just as one enters the plaintext into the cryptography system to get the ciphertext, one could enter the ciphertext into the same place in the system to get the plaintext. A reciprocal cipher is also sometimes referred as self-reciprocal cipher.[21][22]
Practically all mechanical cipher machines implement a reciprocal cipher, a mathematical involution on each typed-in letter. Instead of designing two kinds of machines, one for encrypting and one for decrypting, all the machines can be identical and can be set up (keyed) the same way.[23]
Examples of reciprocal ciphers include:
- Atbash
- Beaufort cipher[24]
- Enigma machine[25]
- Marie Antoinette and Axel von Fersen communicated with a self-reciprocal cipher.[26]
- the Porta polyalphabetic cipher is self-reciprocal.[27]
- Purple cipher[28]
- RC4
- ROT13
- XOR cipher
- Vatsyayana cipher
The majority of all modern ciphers can be classified as either a stream cipher, most of which use a reciprocal XOR cipher combiner, or a block cipher, most of which use a Feistel cipher or Lai–Massey scheme with a reciprocal transformation in each round.[29]
Technical definitions
Mathematical Definition of a Cipher
Source: Cryptography I (Stanford Course): Week 1: Information Theoretic Security and The One Time Pad
- A cipher is defined over (K, M, C).
- This means a cipher is defined over a set of:
- all possible keys, (the Key space)
- all possible messages (plaintext)
- all possible ciphered messages.
- This means a cipher is defined over a set of:
- The cipher itself is a pair of “efficient” algorithms: (E, D) where:
- E stands for encryption:
- E: K x M → C
- E often includes randomness.
- D stands for decryption:
- D: K x C → M
- D is always deterministic. Given the key and the ciphertext, it will always output the same.
- Testing a cipher:
- A cipher must satisfy this test:
D(K, E(K,M)) = M
- i.e. If I encrypt and then decrypt with the same key, I should get the same message back.
- This is called the consistency equation.
- A cipher must satisfy this test:
- E stands for encryption:
Security of Ciphers
See: Information-theoretic security of ciphers | Cryptography | Crypto-IT