April 20
Questions about anything so far? OK with what's expected for term project?
In class : Numen asked for some sample code for flipping bits in python strings.
I've uploaded
bitflip.py which does that.
crypto
Last topic of the term: crypto.
The rest of the textbook - chapters 10 through 15 - are all on cryptography.
We are going to dance around through these topics, depending on how much
you folks have already seen of this stuff.
crypto basics
Discuss material in chap 10 and 11 in text, "old-style" crypto.
Make sure that the basic terms and ideas are clear, and do some
of those problems as class exercises.
I hope this will be a discussion, not a lecture;
I want to see how much background folks have with these topics.
Ideas and vocabulary :
- source (and stationary source)
- frequency table
- digrams
- entropy per symbol of "english"
- "meaning"
- redundancy = 1 - (entropy per symbol base N), N symbol alphabet
- (experimental approach to removing letters and having people guess meaning)
- alice, bob, eve
- encryption function and key (symmetric)
- security by obscurity (trying to hide the method) isn't generally practical
- ... but security by secret key is.
- attack; formal definition
- brute force approach
- frequency analysis
- symmetric key
- poly-alphabetic (Vigenere) system
- ... which falls to "index of coincidence"
- "playfair system" ... and digram
- permutation ciphers (not discussed in text)
- linear algebra transformations
- methods of attack:
- ciphertext only
- known plaintext
- chosen plaintext
"codes" : as used by cryptographers, means phrase-substitution; no longer used much.
Modern crypto - mid 1970's to now - explosion in the field; all sorts of crazy stuff now possible.
desired properties :
- secrecy
- authenticity
- integrity
- non-repudiation
1-time pad: unbreakable (!)
resources
symmetric key
"symmetric key ciphers"
Several themes:
- more math ... more trickiness
- building blocks are (like old ones) substitutions and permutations
- can also think as multiple folding and stretching operations to diffuse information (Shannon's description)
read chapter 11, particularly "Hill system". (1930; wikipedia "Hill cipher")
- explain why it isn't vulnerable to "ciphertext only" attack (no frequencies left)
- but *is* vulnerable to "known plaintext" (invert the matrix)
- Do 11.10, 11.11, pg 89
browse chapter 12, particularly 12.4, 12.5
follow-up with a look at modern symmetric key systems,
and a few examples: DES, AES, Blowfish, Serpent
Mention the large number of these things.
Pick one to look at (implement?) in more detail. (blowfish?)
Implementation notes: "chaining"
Assignment coming ... likely some sort of "install and test"
and some toy problems like the ones in the text.
Coming: RSA, chapter 13 - an asymmetric key code.