1. [21 II] Wprowadzenie. Historia kryptografii (szyfr Cezara, Vigenere'a, afiniczny, ...). Rodzaje ataków na systemy szyfrowania: ciphertext only, known plaintext, chosen plaintext, chosen ciphertext. Security by obscurity versus postulat Kerckhoffa.
2. [4 III] Prokotół TLS/SSL, certyfikaty X.509, podpisy cyfrowe, szyfrowanie symetryczne, asymetryczne, strumieniowe, funkcje haszujące, MAC. W tle: protokoły POP3, IMAP, SMTP, HTTP. Narzędzia:
Wireshark.
3. [8 III] Tajność doskonała. Nierozróżnialność. One-Time Pad (Vernam). Twierdzenie Shannona. Prawdopodobieństwo warunkowe.
4. [11 III] Szyfry strumieniowe - namiastka one-time pad. Szyfry blokowe jako permutacje pseudolosowe. Sieci permutacyjno-zamieniające. Schemat Feistela (sieć Feistela). DES. AES. Tryby szyfrowania (ECB, CBC, Counter mode).
5. CPA-, CCA-security - motywacje, definicje. Funkcje haszujące.
6. Message Authentication Codes, konstrukcja nested MAC, HMAC. Konstrukcja schematu szyfrowania odpornego na atak typu chosen-ciphertext.
7. Kryptografia (szyfrowanie, uwierzytelnianie, uzgadnianie klucza, dystrybucja kluczy) klucza symetrycznego vs. kryptografia asymetryczna. Grupy, grupy cykliczne, generatory. Tw. Eulera, Uzgodnienie klucza Diffie-Hellman. Książkowe RSA, OAEP.
8. Podpisy cyfrowe. Oblivious transfer.
9. Detekcja i korekcja błędów. Algorytm Luhna. Kody Hamminga.
[slajdy]10. Kompresja bezstratna. Entropia. Kody Huffmana.
[slajdy]11. Kompresja bezstratna. Kody Tunstalla. Kodowanie arytmetyczne. Kodowanie słownikowe.
[slajdy]12. [15 V] Kompresja stratna. Kwantyzacja.
[slajdy]