Lecture 6: Symmetric Key Encryption, PRG

Intro to Block Ciphers


As we'll see later in the class, everytime you use the internet you're using block ciphers! The most common block cipher used today is called AES which we'll discuss in a bit.

Fun fact: Prof. Wagner was part of the team that came up with a block cipher called TwoFish which was one of the top 5 block cipher designs chosen internationally when NIST was attempting to find a standard.




Random Functions and Permutations


(True/False) A Gaussian distribution is considered random


How many bits would it take to represent a truth table of a random permutation with input length of n bits?




Block Cipher Security


What does a block cipher need to computationally indistinguishable from in order to be considered secure? (Computationally indistinguishable means an efficient (ie. polynomial time) attacker can't distinguish)




Why Only Efficient Attackers?


Which input could an unbounded attacker brute force to win the block cipher distinguishing game?




Information Leakage of a Block Cipher


If an adversary could learn first bit of M when given E(K, M) where E is encryption for a secure block cipher, how would this lead to a contradiction?




Overview of AES


If you could prove a block cipher was unconditionally secure, what else would you likely prove in the process?




ECB Mode


Which property of ECB Mode makes it not IND-CPA secure?




CBC Mode


Which property must a block cipher have in order for CBC to be decryptable?




CBC Security and Pseudo-Random Number Generators (PRNGs/PRGs)


What undesirable property would CBC mode have if we always picked the same IV?


Where might computer hardware get sources of weak randomness?




CTR Mode


(True/False) CTR mode also relies on a block cipher being invertible in order to be decryptable




CTR Security


(True/False) Like CBC mode, in CTR mode the nonce must be chosen randomly




Padding


Would appending a sequence of alternating bits (ie. 101010) be a valid padding scheme?




PRGs


(True/False) A block cipher is a type of PRG