Overview of Cryptography 5
Block Cipher vs Stream Cipher–This classification is on the basis of en-
cryption process. In block cipher, the message is encrypted after being
divided into fixed size of blocks. Examples of block ciphers are DES,
AES, Triple DES, Serpent, Blowfish, Twofish, IDEA, RC5, Clefia etc.
In stream cipher, the entire message is encrypted at a time using a key
stream. RC4, ChaCha, SOSEMANUK, SEAL, SNOW, Grain, MICKEY,
Trivium, Linear Feed Back Shift Registrar (LFSR) are some popular
stream ciphers.
Deterministic vs Randomized–This classification is also based on the na-
ture of encryption process. If the encryption formula always outputs the
same ciphertext for a fixed plaintext then the cryptosystem is called deter-
ministic cryptosystem. However, if the output of the encryption algorithm
depends on some random number i.e. if encryption of the same message
yields different ciphertext everytime depending upon the random number
used in the encryption formula, then the cryptosystem is called random-
ized cryptosystem. Randomized cryptosystems are assumed to be more
secure than deterministic cryptosystems. DES, AES, RSA, Rabin, XTR
and others are deterministic cryptosystems and RSA-OAEP, ElGamal,
NTRU etc. are randomized.
Pre-quantum vs Post-quantum–This classification is on the basis of the
strength of the cryptosystem against quantum computer. The cryptosys-
tems which are secure against quantum computer (quantum algorithm)
are called post-quantum cryptosystems otherwise they are referred as pre-
quantum cryptosystems. Examples of pre-quantum cryptosystems are all
classical cryptosystems, RSA, ElGamal, Rabin etc. and the examples
of post-quantum cryptosystems are Lattice-based cryptosystems (Ring-
LWE, NTRU, GGH), Code-based cryptosystems (McEliece cryptosys-
tem), Multivariate cryptography (Rainbow), Hash-based cryptography
(Merkle signature scheme), Isogeny-based cryptosystem etc.
1.4 Practically Useful Cryptosystem
Following are two desired properties for a practically useful cryptosystem-
1. Each encryption function e
k
and decryption function d
k
should be easily
computable.
2. An opponent, upon seeing a ciphertext string y, should be unable to deter-
mine the key k (that was used), or the plaintext string x.