Block ciphers, DES and AES Flashcards
What are 2 widely deployed block ciphers?
AES and DES
Wha are block ciphers?
Symmetric key
Each block of plaintext is encrypted with the same key
Each block has a fixed size, often between 64 and 256 bits.
Used in certain configurations called modes of operation.
What is the encryption technique Confusion?
Use substitution to make the relationship between the key and the ciphertext as complex as possible.
What is the encryption technique diffusion?
Involves transformations that dissipate the statistical properties of the plaintext across ciphertext.
What is a product cipher?
Cryptosystem
Encryption function is formed by applying several sub-encryption functions.
Most block ciphers are compositions of function f_i, where each f_i has a different key K_i
C = E(P, K) = f_i(…,( f2 ( f1 (P,K1), K2)…) Ki)
What are iterated ciphers?
A class of product ciphers
Encryption process divided into r similar rounds
sub-encryptions are all the same round function g
Each round-key Ki is derived from an overall master key K..
What is a round function?
The sub-encryption function used in iterate ciphers
What is a key schedule in iterate ciphers?
The process that derives sub-keys from a master key
Give an example of how a ciphertext is derived through r rounds of an iterate cipher
W0 = P
W1 = g(w0, k1)
W2 = g(w1, k2)
…
Wr = g(w_(r-1), k_r)
C = Wr
Give an example of how a ciphertext is decrypted through r rounds of an iterate cipher
Wr = C
W_(r-1) = g^-1 ( Wr, Kr)
W_(r-2) = g^-1 ( Wr-1, Kr-1)
…
W0 = g^-1 ( W1, K1)
P = W0
What does an iterate cipher need to have to be able to decrypt?
A round function g that have an inverse g^-1
with g^-1(g(W,ki), ki) = W for all Ki and blocks W
What type of block cipher is DES (Data Encryption Standard)
Feistel ciphers
What type of block cipher is AES (Advanced Encryption Standard)
Substitution-Permutation Networks (SPNs)
What is a Feistel cipher?
Iteration cipher
The round function swaps the two halves of the block and forms a new right hand half.
Why is the Feistel cipher process often called a Feistel network?
The process can be seen as a network which the two halves of the plaintext block travel through
Describe feistel encryption
Plaintext: P = Wo
Split plaintext into two halves: W0 = (L0, R0)
For each round r, perform:
Li = Ri-1
Ri = Li-1 XOR f(Rw-1, K1)
C = Wr
C = (Lr, Rr)
Describe feistel decryption
C = (Lr, Rr)
For each round r, perform:
Li-1 = Ri XOR f(Li, Ki)
Ri-1 = Li
P = (L0, R0)
Does every round function allow decryption when using Feistel cipher?
Yes, Feistel don’t use an inverse, so any function f allows decryption.
Because of this, the choice of f is critical for security
What is substitution-permutation network (SPNs)?
Iterated cipher
Block length n must allow for each block to be split into m sub-blocks of length l.
n = lm
2 permutations are defined
Permutation P_S operates on sub-blocks of size r bits
P_s: {0, 1}^r -> {0, 1}^r
The permutation P_s is normally called an S-box (substitution box)
Permutation P_p swaps the inputs from {1, …, n}. This is similar to the transposition cipher
Pp: {1, 2, …, n} -> {1, 2, …, n}