This document provides an overview of popular encryption algorithms. It discusses both symmetric and asymmetric ciphers such as the one-time pad, stream ciphers like A5/1, symmetric block ciphers including DES, 3DES and AES, and asymmetric ciphers RSA and elliptic curve cryptography. It also covers block cipher modes of operation like ECB, CBC, OFB, CFB and CTR. The one-time pad requires truly random keys of the same length as plain text but is impractical. AES with 128-256 bit keys is now secure standard, while DES and 3DES are insecure due to small key sizes. RSA uses 1024-4096 bit keys but is slower than elliptic curve cryptography which provides equivalent security with smaller
3. One-time pad
Main features:
Totally secure crypto technic
A key has to be the same length as
a plain text
A key has to be truly random
XOR operation is often used to
combine a key and a text
Impractical in most cases due to the
above key length requirement
4. Stream ciphers
Inspiration from the one-time pad
Types:
synchronous
self-synchronizing
LFSR (linear feedback shift registers)
6. DES
DES, Data Encryption Standard, was
developed in the 1970s at IBM and
based on design of Horst Feistel.
It is a symmetric-key algorithm based
on Feistel network.
Key size is 56 bits only and it is
considered insecure now.
7. 3DES
3DES - Triple DES
Brute force attack on 2DES can use
“meet in the middle” technique.
It is a symmetric-key algorithm based
on Feistel network.
Key size is 168 bits only and it is
considered insecure now.
8. AES
AES, Advanced Encryption Standard,
established in 2001 by the NIST and
based on design of Joan Daemen
and Vincent Rijmen.
It is a symmetric-key algorithm based
on Galois field.
Supported key sizes are 128, 192 or
256 bits.
9. Block cipher modes
A mode of operation is used to encrypt more than one block of plain
data. The following is the list of some popular modes:
ECB - Electronic Codebook - the simplest mode
CBC - Cipher Block Chaining
OFB - Output Feedback - makes a synchronous stream cipher
CFB - Cipher Feedback - makes a self-synchronizing stream cipher
CTR - Counter - makes a synchronous stream cipher
10. RSA
RSA, described in 1977, was called
after its inventors Ron Rivest, Adi
Shamir, and Leonard Adleman.
It is a public key algorithm.
Key size could be in range of 1024 to
4096 bits
It is a relatively slow algorithm and
usually used to share keys for
symmetric algorithms.
11. Elliptic curve cryptography
It is based on the algebraic structure of
elliptic curves.
This is the fastest public key algorithm
as of now.
256 bit ECC public key provides
security compared to 3072 bit RSA
public key.