Date
|
Topic
|
Handouts and Readings
|
Problem
Sets and Projects
|
September 2
|
Basic terminology surrounding symmetric
cryptosystems. Classical Cryptosystems. Demonstration of
Python code. |
Alice
and
Bob
Kerckhoffs' Principle
Python code for Caesar Cipher
Lecture 1: What
cryptography does; symmetric encryption
|
Assignment
0--Install the software
|
September 9
|
Classical Cryptosystems,
|
Lecture
2: Classical cryptosystems
Python notebook illustrating
cryptanalysis of Vigenere cipher.
Python code from the Vigenere
notebook.
Python code for encryption and
decryption with autokey cipher (for use in Assignment
1).
Extract from 'The Gold Bug', by
Edgar Allen Poe, describing cryptanalysis of a
monoalphabetic substitution cipher.
|
Assignment
1, due September 12.
File containing the
ciphertexts for Assignment 1.
Solutions
Project Topic: Automated
Cryptanalysis of Monoalphabetic Substitution Cipher
|
September 16
|
One-time pad, Stream Ciphers. |
Lecture 3:
One-time pad, perfect secrecy, and less-than-perfect
secrecy
Lecture 4: Binary encoding;
stream ciphers
Python code for converting
between different representations of binary data.
Python notebook illustrating
these routines.
|
Assignment 2, due
September 24
Texts accompanying Assignment
2
Solutions
A Python implementation of the
PRNG in Java.
The LFSR for the last problem.
Project Topic:
Cryptanalysis of Stream Ciphers
|
September 18
|
Modern Block Ciphers: DES, AES, modes of
operation. |
Lecture
5: Block Ciphers
Python implementation of baby
block cipher.
Demo of ECB and CBC
encryption of a bitmapped image.
|
Assignment
3, due October 3.
Solutions to the written
problems
Solutions to the
computer problems
Ciphertexts accompanying
Assignment 3.
ECB, CBC and CTR modes
for baby block cipher.
Project Topic:
Padding Oracle Attack on CBC mode.
Project Topic: Linear
Cryptanalysis of Baby Block Cipher
|
September 30
|
Basic number theory
|
Lecture
6: Number Theory
Python implementation of Euclid's
algorithm and Miller-Rabin Primality Test
|
Assignment
4, due Ocober 15.
Solutions to written problems
Solutions to
computer problems
Modulus-ciphertext pairs
for the RSA Problem
In-class exercise on RSA.
Project Topic: AKS Algorithm;
Efficient, Deterministic Primality Testing
|
October 7
|
Public-key cryptosystems. RSA.
|
Two classic papers from
the origins of Public-key Cryptography:
Diffie and Hellman, 'New
Directions in Cryptography'
Rivest, Shamir and Adelman, 'A
Method for Obtaining Digital Signatures and Public-key
Cryptography' (and the first appearance of Alice
and Bob in the scientific literature).
Lecture 7: Public Key
Cryptography and RSA
Recent research on weak
RSA keys found on the Internet. Easy reading and
a scandalous result!
|
Assignment
5, due October 24
Data for Assignment 5
Solutions to the written
problems
Solutions to the
computer problems
Project Topic:
Bleichenbacher Padding Oracle Attack on RSA
|
October 16
|
Public-key cryptosystems continued.
Primitive Elements, Discrete Logs, and Diffie-Hellman
key agreement.
|
Lecture 8:
Discrete Logs, Diffie-Hellman, and ElGamal Public-key
encryption.
|
Assignment
6, due Tuesday, November 11
The data for Assignment 6
Solutions
|
October 30
|
Midterm
|
|
The midterm
from 2012 (note: this was a MWF class, so
the students had only 50 minutes to complete it.)
Solutions to
the 2012 test. (Don't look at these until
you've tried to work the problems.)
This year's midterm
with solutions.
|
November 6
|
Cryptographic hash functions and message
authentication codes. |
Lecture
9: Hash Functions and Message Authentication
Article
on password cracking
|
Assignment
7: Due November 21
Solutions: code, discussion
|
November 13
|
Digital Signatures
|
Lecture 10: Digital
Signatures
|
|
November 18
|
Applications:
TLS--secure internet connections
Bitcoin--digital cash
Zero-knowledge protocols
|
Lecture
11: Demo of the start of a secure Web session.
'MD5
considered harmful today'--Description of how
collisions in the MD5 hash function were used to create
a forged server certificate and thus launch a
man-in-the-middle attack
|
Assignment
8: Due December 11
My 'certificate' (ASCII text file)
Public-key parameters of the
signing authority, and the signature on my certificate
(ASCII text file--the values are given in decimal)
Code containing both the good
and bad signature verification algorithms.
|
December 2 |
Quantum Cryptography and Quantum
Computing |
|
|
Take-home final exam
|
|
|
Parameters
for the final exam problems
|