Jak funguje šifrovací algoritmus Rijndael?

Také známý pod zkratkou AES

Vysoce citlivé informace bezpečně přenášet tak, aby k nim neměly přístup neoprávněné osoby, je odjakživa výzva. Raně používané „tajné jazyky“ – například jednoduché posuny písmen – lze s dnešním výpočetním výkonem prolomit zcela triviálně. Dnes chráníme data pomocí kryptografických metod, které jsou matematicky přesně definované a jejichž bezpečnost byla veřejně posouzena.

Takové metody používají klíč, který znají pouze odesílatel a příjemce. Šifrování i dešifrování se řídí šifrovacím algoritmem – jednoznačně popsaným matematickým postupem.

Password Depot šifruje Vaše citlivé údaje algoritmem Rijndael, který je standardizován jako AES (Advanced Encryption Standard).

Níže algoritmus stručně vysvětlujeme a zasazujeme jej do technického kontextu.

Advanced Encryption Standard (AES) – standardizovaná varianta algoritmu Rijndael

U.S. National Bureau of Standards (dnes NIST) standardizoval v roce 1977 algoritmus DES; tento standard byl v roce 2005 stažen, protože již nebyl považován za dostatečně bezpečný (oznámení NIST). Jako nástupce zvolil NIST v roce 2001 algoritmus Rijndael a na jeho základě standardizoval Advanced Encryption Standard (AES) (FIPS 197).

Důležité: AES je podmnožinou rodiny algoritmů Rijndael. AES stanovuje velikost bloku na 128 bitů a povoluje klíče o délce 128, 192 nebo 256 bitů (poznámka NIST, FIPS 197 (PDF)).

AES je schválen pro ochranu informací amerických vládních orgánů až do úrovně TOP SECRET (viz informační list CNSSP-15 a aktuální dokument CNSA 2.0 FAQ agentury NSA).

Jak pracuje Rijndael/AES (stručný přehled)

Rijndael je substituční-permu­tační síť-šifra. Základními principy jsou záměny na úrovni bajtů, lineární transformace a XOR-operace.

Průběh na úrovni bloků (128bitový „state“)

  • Rozšíření klíče (Key Schedule): Ze vstupního klíče se odvodí Nr + 1 rundovních klíčů (např. 11 u AES-128, 13 u AES-192, 15 u AES-256). Zdroj: FIPS 197.
  • Počáteční kolo: AddRoundKey – blok otevřeného textu (jako matice 4×4 bajtů) se pomocí operace XOR zkombinuje s klíčem prvního kola.
  • Kola 1 … Nr:
    • SubBytes: Každý bajt je nahrazen pomocí S-boxu (multiplikativní inverze v GF(28) plus afinní transformace s konstantou 0x63). Zdroj: FIPS 197.
    • ShiftRows: Řádky stavové matice se cyklicky posouvají.
    • MixColumns: Sloupce se promíchají maticovým násobením nad GF(28).
    • AddRoundKey: Operace XOR s příslušným klíčem kola.
    Poznámka: V posledním kole se krok MixColumns neprovádí. Počet kol je 10/12/14 pro klíče délky 128/192/256 bitů (FIPS 197).

AES lze implementovat v softwaru, firmwaru nebo hardwaru (FIPS 197). Pro praktické nasazení se používají různé provozní módy, např. CBC, CTR nebo GCM (ověřená šifra – autentizované šifrování). Doporučení najdete v NIST SP 800-38A a NIST SP 800-38D (GCM/GMAC).

Důležité z hlediska zařazení: AES je symetrická šifra pro šifrování dat. Výměna klíčů se obvykle realizuje asymetrickými algoritmy ((EC)DH/RSA). AES však může klíče bezpečně také zabalit („Key Wrap“) – viz NIST SP 800-38F.

Oficiální specifikace

Referenční specifikaci najdete zde: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf

Útoky hrubou silou (Brute-Force)

Brute-Force znamená, že útočník zkouší všechny možné klíče. Klasické algoritmy jako DES s pouhými 56bitovými klíči lze tímto způsobem dnes prakticky prolomit – NIST proto DES v roce 2005 oficiálně stáhl (NIST).

Moderní algoritmy jako AES s klíči délky 128/192/256 bitů mají naproti tomu astronomicky velký prostor klíčů. V praxi je proto často důležitější než samotný algoritmus odvozování klíče z hesla a kvalita hlavního hesla.

Password Depot dále ztěžuje Brute-Force-útoky použitím zpožďovací funkce: po chybně zadaném hlavním hesle zůstane program po několik sekund zablokován.

Závěr: Při správné implementaci, vhodně zvoleném provozním módu (např. GCM) a dostatečné délce klíče je AES z dnešního pohledu považován za velmi dlouhodobě bezpečný.

Více o útocích hrubou silou (Brute-Force).

Další zdroje