Šifra AES

  • ! Není feistelovského typu
  • Bloková šifra
  • Blok délky 128b, tím se odlišuje od předchozích blokových šifer, které měly blok 64b
  • Podporuje 3 délky klíče
    • 128b (10 rund)
    • 192b (12 rund)
    • 256b (14 rund)
  • Nemá slabé klíče, je odolný proti známým útokům a metodám lineární a diferenciální kryptoanalýzy

Počítání

  • Pracuje s prvky Galoisova tělesa a s polynomy, jejichž koeficienty jsou prvky z

  • Bajt s bity je zde chápán jako polynom

  • Operace "násobení bitů" odpovídá násobení těchto polynomů modulo

  • Velice výhodné na počítání a hardware, protože přenosy do vyšších řádů neexistují, a stačí jen XOR a modulo

  • Pokud dojde k přetečení, redukuje se to tím ireducibilním polynomem

Operace

  • Využívá rundovních 128b klíčů
  • (Ze staré přednášky: Využívá rundovních 32b klíčů)
  • = počet rund (tedy 10, 12 nebo 14)
  • = délka klíče jako počet 32b slov (tedy 4, 6, 8 pro klíče délek 128, 192, 256)

SubBytes

  • ! Jedinou nelineární operací, která slouží jako bariéra pro provedení kryptoanalýzy
  • Na počátku každé rundy se vždy vstup (16B) naplní postupně zleva doprava a shora dolů po sloupcích do matice 4×4 bajty
  • Na každý bajt matice se zvlášť aplikuje substituce daná pevnou tabulkou SubBytes

ShiftRows

  • Řádky matice se cyklicky posunou postupně o 0 až 3 bajty doleva
      1. řádek se posune o 0B
      1. řádek se posune o 1B
      1. řádek se posune o 2B
      1. řádek se posune o 3B
  • Takto dochází k transpozici na úrovni bajtů

MixColumns

  • Na každý sloupec matice se aplikuje operace MixColumns
  • Substituce 32b na 32b
  • Prakticky přenásobení nějakou maticí, označme bajty ze sloupce matice jako
    ../Attachments/Pasted image 20230314164333.png
  • Neprovádí se v poslední rundě!

AddRoundKey

  • Transformace, v níž se na sloupce matice zleva doprava naXORuje odpovídající rundovní klíč (4 x 32 bitů)

Princip

../Attachments/Pasted image 20230314163838.png

  • Pro dešifrování se používají inverzní operace, tedy opravdu to není feistel
  • V každé rundě se používá rundovní klíč, který se přičítává k těm 128 prostupujícím bitům

Vytvořeno: 7. 8. 2024, 13:25
Poslední aktualizace: 7. 8. 2024, 13:25