Cryptography
What is crypto? (Old) Ciphers: substitution cipher, polyalphabetic, Vigenere, Enigma. Perfect secrecy, Vernam cipher.
How to construct a block cipher: substitution-permutation networks, Feistel Networks.
Perfect indistinguishability. Eavesdropping experiment. Pseudorandomness. Constructing encryption scheme from a pseudorandom generators. Bad stream ciphers: E0, A5/1, A5/2, CSS.
Chosen Plaintext Attack. Pseudo-random functions
Pseudo-random permutations. Strong pseudo-random permutations. Message authentication codes
Algorithms for factoring
Algorithms for computing discrete logs
Post-quantum cryptography
Elliptic curve cryptography
MPC 2: Zero-knowledge proofs. Fiat-Shamir identification scheme. Non-interactive zero-knowledge proofs
MPC 3: Commitment schemes. Secret sharing. Garbled circuits. GMW (Goldreich, Micali, Widgerson) algorithm. Fully-homomorphic encryption.
  • Assignment 4
  • Play with Factoring experiment slides for different security parameters.
  • Try to extrapolate the running time for different security parameters: 25, 50, 64, 128, 256, 512, 1024
Lab 1: Lab1 (due: 15 III).
Lab 2: Lab 2.
Lab 3: Lab 3.
Project: Project
The test (15 VI 11-13). A list of problems will be posted online on June 15 at 11:00. You need to solve them and write the solutions down on a piece of paper. Then take pictures of your solutions and email them by 13:05.
The second test is on June 30th
You need to take only one of the tests
Final grade is computed from partial grades: Final test, Labs, Classes
Classes are graded based on points for assignents.
To pass labs, you need to get half of all possible points
To pass classes, you need to get 1/3 of all possible points
You need to bass both labs and classes to be admitted to the final test
The exam: 16 VI 13-15. A list of problems will be posted online. You need to solve them and write the solutions down on a piece of paper. Then take pictures of your solutions and email them.