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í-permutač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). - SubBytes: Každý bajt je nahrazen pomocí S-boxu (multiplikativní
inverze v GF(28) plus afinní transformace s konstantou
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
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (původní specifikace)
- NIST: AES je podmnožinou Rijndaelu (velikost bloku 128 bitů)
- NIST SP 800-38A – provozní módy (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800-38D – GCM/GMAC (ověřená šifra – autentizované šifrování)
- NIST SP 800-38F – AES Key Wrap
- CNSSP-15 Fact Sheet – použití AES pro tajné a přísně tajné informace
- NSA: CNSA 2.0 FAQ – aktuální požadavky
- NIST: stažení algoritmu DES (pozadí)