Kryptografické systémy

Matematická kryptografie a kryptoanalýza I (NMMB335)

Organizace

Cvičení se bude konat každý druhý týden v pondělí od 12:20 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í

Úvod do kryptografie, moderní šifry, sboxy, korelační matice. Python - základní datové typy (notebook)

2. cvičení

Algebraická normální forma, substitučně permutační sítě. Python - SBoxy a SPN (SBoxy a SPN)

3. cvičení

Korelační matice, hledání lineárních cest (prohledávání do šířky) - notebook

4. cvičení

Hledání lineárních cest (prohledávání do hloubky) - notebook

5. cvičení

Princip lineárního útoku, hlubiny Pythonu (objekty, pointery, hodnoty, generátory, typování)

6. cvičení

Princip lineárního útoku, odkud kam hledáme cesty a proč nás nezajímají vstvy s klíči.

Zápočet

Najděte lineární cesty pro každý nibble posledního rundovního klíče SPN o 4 vrstvách, šířce 16 bitů, permutací P(i) = (i div 4) + (i mod 4) * 4 a S-Boxem daným tabulkou SBOX = [0, 1, 6, 2, 7, 14, 12, 9, 5, 11, 4, 13, 8, 10, 15, 3]. Připomínám, že při částečném dešifrování je třeba projít přes S-Box, jinak naše charakteristika sítě (cesta) nám nic neřekne.