A note: I appreciate comments and questions during class I can monologue, but that's not ideal Typical Scenario: Alice sends a message to Bob Trudy, who is bad, wants to: - Read the message - Change the message - Send a counterfeit message Alice and Bob either have or don't have the key Ciphertext vs. plaintext - ciphertext in caps Cipher vs. code Historical example: Ceaser Cipher - Used to work! - I don't know what this means: rkifhbfkqebmxpqfkltexsbqtlzxqpoxqeboqexklkb Making Ciphers Stronger: Vigenere - Use a word for the key - Increases number of keys Brute Force Attack - Shift cipher is vulnerable to this, if you know the algorithm - The solution: Bigger key space - Computers don't really change anything here - How does a computer tell when it has the correct answer? + Search for words, in text + In files? Common headers Attack Scenarios: - Ciphertext only - Known Plaintext - Probable Plaintext - Chosen Plaintext - Algorithm and Ciphertext Should the attacker send messages? - May be used to obtain specific information - Midway example (note: This is a code, not a cipher) - May be used to obtain more ciphertext - May also be detected! Shannon: - Secrecy proportional to labor - Keys and algorithm should be uncomplicated - Implementation should be as simple as possible - Errors shouldn't propegate - Ciphertext shouldn't be bigger than plaintext Attacking Vigenere: - Frequency analysis by word length - Frequency analysis requires knowledge of plaintext! + Must know if it's English text, etc. + List of foreigners? Improving Vigenere: - Very long key? - One-time pad to reduce ciphertext - Send a new key with every message A new idea: Permutation Ciphers Stick cipher Example: Transposition - key is block size - Frequency analysis? - Digrams, trigrams, etc "Commercial grade" encryption: - Based on sound mathematics - Analyzed by experts - Time-tested A note before we go too far: Alphabet is 26 characters for English A byte has 256 possible values Suppose we shift bytes instead of letters Then we could do a shift cipher on binary data Project 1 brief explanation