PseudoRandom and Random

When talking about block cipher being “cryptographically secure”, we have to consider whether a permutation outputted by a pseudorandom block cipher is the same (or indistinguishable) from a random block cipher. Meaning pseudorandom is something you cant separate from random

This means for a block cipher of k-bits, there are 2^k rows in the table. For a n-bit key, there are 2^n permutations of a 2^k-row table.

What is random practically? Well, we consider the algorithm that can determine if its random or not. If this algorithm does not run in polynomial time, then it is secure.

Parity Attack

Not significant in real life, but to teach professional paranoia, how a crypotgrapher thinks. You need to consider all possible attacks, and eliminaite unrealistic attacks like parity attack.

Basically says that since operations are performed on 32-bits in the block cipher, only even permutations signify a real block cipher, whereas odd permutations signify an ideal cipher.

To simplify, we just say ideal ciphers are all even, which narrows our space for more attack, but not that much as the even permutation space is still very large.

Feistel Construction

The structure of DES

Each round

The beauty of the construction is that decryption requires exactly the same set of operations as encryption. Enc and Decr are the same in implementation

Makes cipher design simpler, ensures that the two halves L and R are mixed together.

XOR key and data makes sure they are mixed.

S-box provide nonlinearity (prevent linear combination attacks)