Kurs: Kryptoanaliza stosowana zima 2023/24

Język wykładowy Polski
Opiekun Tomasz Wierzbicki
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj K2 - kurs zaawansowany
ECTS 6
Polecany dla I roku No
Egzamin No

Opis przedmiotu:

W dziedzinie bezpieczeństwa komputerowego bardzo ceni się demonstrowanie podatności systemów poprzez przeprowadzenie udanego ataku w praktyce. Co prawda do zdyskwalifikowania algorytmu kryptograficznego zwykle wystarczy teoretyczne opracowanie ataku, którego ze względu na złożoność nie da się przeprowadzić w praktyce, ale ze względu na prawo Moore'a i rozwój kryptoanalizy ataki na starsze algorytmy z czasem stają się możliwe do wykonania nawet na przeciętnym komputerze. Zajęcia są przeznaczone dla osób, które zamierzają wykorzystywać kryptografię we własnych programach. Celem zajęć jest nauka poprawnego — tj. pozbawionego podatności — implementowania kryptografii poprzez badanie, co może pójść źle, tj. opracowywanie i wykonywanie ataków na implementacje posiadające takie podatności. Zajęcia będą polegać na wykonywaniu w praktyce ataków na algorytmy kryptograficzne, np. znalezienie kolizji w MD5 i wykorzystanie jej do przygotowania fałszywego certyfikatu SSL itp. Głownym efektem nauczania jest wpojenie uczestnikom zasady YANAC. ### Tematyka - Kryptoanaliza szyfrów klasycznych. Analiza częstościowa. Szyfry podstawieniowe, Vigenère’a, _one-time pad_. - Szyfry blokowe. Kryptoanaliza różnicowa i liniowa. DES, uproszczony AES. - Szyfry strumieniowe. Kryptoanaliza LFSR. Podatności RC4. - Tryby łączenia bloków i ich podatności. Plastyczność szyfrów. _Watermarking attack_. - Kolizje funkcji haszujących. Ataki na MD5 i SHA-1. - Praktyczne ataki na klucze i certyfikaty. Evil-32 itp. - RSA. Proste ataki na podręcznikowy RSA. Faktoryzacja metodą Fermata. Atak z użyciem ułamków łańcuchowych. - _Padding_ w RSA. Atak Bleichenbachera. - Krzywe eliptyczne w kryptografii. - TLS, jego rozwój i podatności. Przegląd ataków. - PKI. - Protokoły i narzędzia. OpenPGP, OpenSSH, OpenVPN. - Tokeny kryptograficzne, TPM. - Szyfrowanie dysków. - Hasła i ich łamanie. Hashcat i John the Ripper. ### Wymagania - W większości zadań programistycznych wykorzystuje się język Python. Nieliczne zadania wymagają programowania w języku C. - Niezbędna wiedza teoretyczna zostanie przedstawiona na wykładzie, choć zakłada się wstępną wiedzę uczestników na temat kryptografii. - Zajęcia w ramach pracowni odbywają się w sali ćwiczeniowej wyposażonej w rzutnik. Uczestnicy w trakcie zajęć używają własnych komputerów. ### Literatura 1. Mark Stamp, Richard M. Low, _Applied cryptanalysis_, Wiley, 2007. 2. Seth James Nielson, Christopher K. Monson, _Practical Cryptography in Python. Learning Correct Cryptography by Example_, Apress 2019. 3. Shannon W. Bray, _Implementing Cryptography Using Python®_, Wiley 2020.

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Tomasz Wierzbicki
wt 16:00-18:00 (s. 140) 15 12 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Tomasz Wierzbicki
wt 18:00-20:00 (s. 140) 15 12 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Tomasz Wierzbicki 303 Po wcześniejszym umówieniu pocztą elektroniczną. Nie w trakcie lub bezpośrednio przed moimi zajęciami (plan zajęć jest dostępny w systemie Zapisy).