Computer Science: A Hands Off Approach
which did some theory. One thing I did was the following storyline:
- Shift Cipher
- Affine Cipher
- Gen perm cipher (any perm of a,b,c,...,z
- PROOF that perm is unbreakable: Eve has to go through all 26! possibilities
- PROOF that perm IS breakable: Freq analysis. Moral of the story: Any proof that a system is unbreakable makes some assumptions that Eve might not agree to. Hence proving security is tricky.
- Matrix Ciphers. PROOF that if you use a big enough matrix its unbreakable. Sort-of true for ciphertext only (though I doubt really proven). PROOF that requires going through all possibile nxn matrices that have det rel prime to 26 to crack it using plaintext only. PROOF that this is NOT true (I leave that to my reader).
- Vig Cipher. Proof that its unbreakble, Proof that you can break it
(NOTE-- I never teach the cows paradox - all cows are the same color- when
doing induction since half the class will think induction can prove anything and the other half will think that all cows are the same color.)
I then encapsulated all of this with what I call A SHORT HISTORY OF CRYPTO:
For i=1 to infinity
Alice and Bob: We have a cipher that nobody can crack
Alice and Bob: We have PROVEN that it can't be cracked
Eve: I just cracked it
Alice and Bob: Whoops.
(I later did Diffie-Hellman in the class which I will talk about in a later blog.)