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.