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.

- Please read: Lecture notes - chapters 1-3
- Lindell, Katz: Introduction to modern cryptography (first 7 chapters)
- Slides

Chosen Plaintext Attack. Pseudo-random functions

Pseudo-random permutations. Strong pseudo-random permutations. Message authentication codes

Introdution to public key cryptography (PKC 1). Number theory. RSA 1 (https://github.com/filipzz/crypto/public_key_crypto_1.ipynb)

Algorithms for factoring

Algorithms for computing discrete logs

Post-quantum cryptography

Elliptic curve cryptography

Introdution to secure multiparty computation (MPC 1). Contact tracing. Oblivious transfer. (https://github.com/filipzz/crypto/mpc_1_zkp.ipynb)

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.

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.

- Handbook of Applied Cryptography (www) - A. J. MenezesP. C. van OorschotS. A. Vanstone
- Cryptography. Theory and practice - Douglas R. Stinson
- Introduction to modern cryptography - Jonathan KatzYehuda Lindell
- The Foundations of Cryptography (www) - Oded Goldreich
- Lecture Notes on Cryptography (www) - S. GoldwasserM. Bellare