Kryptografické systémy

Matematická kryptografie a kryptoanalýza I (NMMB335)

Organizace

Cvičení se bude konat každý druhý týden ve středu od 10:40 v učebně K11.
Pokud mě budete chtít kontaktovat, pak nejlépe při/po cvičení nebo e-mailem na adrese adolf.[prijmeni]@matfyz.cz. V předmětu e-mailu prosím použijte kód předmětu, snížíte pravděpodobnost, že e-mail zapadne.
Stránky přednášky jsou zde.

1. cvičení

Booleovské funkce, korelace, parity, SPN a distinguisher

2. cvičení

Difuze

3. cvičení

Hledání cest v grafu (matice přechodu tu), hledání cest v SPN s danou přechodovou maticí.

4. cvičení

5. cvičení

Jaké cesty hledáme a proč (obrázek).

Zápočet

Zápočet bude udělen za vypracování alespoň 4 z 5 domácích úloh, které budou zadány během semestru. Deadline na odevzdání je 14 dní, nebude-li řečeno jinak.
  • SPN: implementace SPN v Pythonu s délkou bloku 16 bitů, S-Boxy o šířce 4 bitů, a permutací posouvající i-tý bit na (i % 4) * 4 + (i // 4) pozici. Funkci S-Boxu si můžete vymyslet (musí být bijekce). SPN by měla mít flexibilní počet rund. Zadáno 11.10. Deadline 25.10.
  • Cesty 1: naimplementujte si hledání cest v SPN rekurzí tester. Stačí dostatečně dobrá cesta. Zadáno 17.11., deadline 23.12. V případě podezření na chybu v testeru, bez váhání pište!
  • Cesty 2: naimplementujte si hledání cest v SPN prohledáváním do šířky tester. Stačí dostatečně dobrá cesta. Zadáno 17.11., deadline 23.12. V případě podezření na chybu v testeru, bez váhání pište!
  • Korelační matice: najděte korelační matici pro zadaný SBox. Bude se vám hodit funkce dumps z knihovny json. Úloha. Zadáno 23.11., deadline 10.12. Úlohu jsem testoval, ale bugy se mohou stát. Kdyžtak se ptejte!
  • Lineární útok: najděte klíč lineárním útokem. Úloha. Deadline konec semestru. Úlohu jsem testoval, ale bugy se mohou stát. Kdyžtak se ptejte!