Jak funguje šifrovací algoritmus Rijndael?
Také známý pod zkratkou AES
Bezpečně přenášet přísně důvěrné informace tak, aby k nim nezískaly přístup neoprávněné osoby, je odjakživa výzvou. Rané „tajné jazyky“ – například jednoduché posuny písmen – lze s dnešním výpočetním výkonem prolomit zcela snadno. Dnes data chráníme 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í a dešifrování přitom probíhá podle šifrovacího algoritmu – jasně popsaného matematického postupu.
Password Depot šifruje vaše důvěrná data pomocí algoritmu Rijndael, který je standardizován jako AES (Advanced Encryption Standard).
Níže vysvětlujeme, jak tento algoritmus funguje, a zasazujeme jej do technického kontextu.
Advanced Encryption Standard (AES) – standardizovaná varianta algoritmu Rijndael
Americký National Bureau of Standards (dnes NIST) standardizoval v roce 1977 DES; tento standard byl v roce 2005 zrušen, protože už nebyl dostatečně bezpečný (oznámení NIST). Jako nástupce NIST v roce 2001 zvolil Rijndael a z něj standardizoval Advanced Encryption Standard (AES) (FIPS 197).
Důležité: AES je podmnožinou rodiny Rijndael. AES stanovuje velikost bloku na 128 bitů a umožňuje klíče o délce 128, 192 nebo 256 bitů (Upozornění NIST, FIPS 197 (PDF)).
AES je schválen pro ochranu informací amerických úřadů až do stupně TOP SECRET (viz CNSSP-15 Fact Sheet a také aktuální CNSA-2.0 FAQ NSA).
Jak funguje Rijndael/AES (stručný přehled)
Rijndael je substitučně-permutační síťová šifra. Základní principy jsou substituce na úrovni bajtů, lineární transformace a XOR operace.
Průběh na úrovni bloku (128bitový „state“)
- Rozšíření klíče (Key Schedule): Ze šifrovacího klíče se odvodí Nr + 1 round keys (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í XOR zkombinuje s prvním round key.
- Kola 1 … Nr:
- SubBytes: Každý bajt je nahrazen pomocí S-Box (multiplikativní inverze v GF(28) plus afinní transformace s konstantou
0x63). Zdroj: FIPS 197. - ShiftRows: řádky matice State se cyklicky posouvají.
- MixColumns: sloupce se pomocí násobení matic nad GF(28) míchají.
- AddRoundKey: XOR s příslušným klíčem kola.
- SubBytes: Každý bajt je nahrazen pomocí S-Box (multiplikativní inverze v GF(28) plus afinní transformace s konstantou
Poznámka: V posledním kole se vynechává MixColumns. Počet kol je 10/12/14 pro klíče o délce 128/192/256 Bit (FIPS 197).
AES lze implementovat v softwaru, firmwaru nebo hardwaru (FIPS 197). Pro praktické použití se Provozní režimy se používají, např. CBC, CTR nebo GCM (autentizované šifrování). Doporučení najdete v NIST SP 800–38A a NIST SP 800–38D (GCM/GMAC).
Důležité pro správné zařazení: AES je symetrická šifra pro šifrování dat. Výměna klíčů obvykle probíhá pomocí asymetrických metod ((EC)DH/RSA). AES však může klíče bezpečně zabalit („Key Wrap“) – viz NIST SP 800–38F.
Oficiální specifikace
Referenci najdete zde: https://csrc.nist.gov/files/pubs/fips/197/final/docs/fips-197.pdf
Brute-force útoky
Brute-force znamená, že útočník všechny možné klíče. Klasické metody jako DES s klíči o délce pouhých 56 bitů lze dnes tímto způsobem prakticky prolomit – NIST proto DES v roce 2005 oficiálně vyřadil (NIST).
Moderní metody jako AES s klíči o velikosti 128/192/256 bitů mají naopak astronomicky velký prostor klíčů. V praxi je méně důležitý samotný algoritmus než odvození klíče z hesel a kvalita hlavního hesla.
Password Depot navíc ztěžuje útoky hrubou silou pomocí funkce zpoždění: Po nesprávném zadání hlavního hesla zůstane program na několik sekund uzamčen.
Závěr: Při správné implementaci, vhodných provozních režimech (např. GCM) a dostatečné délce klíče je AES z dnešního pohledu považován za velmi bezpečný i z dlouhodobého hlediska.
Více o útocích hrubou silou.
Další zdroje
- FIPS 197 – Advanced Encryption Standard (AES)
- FIPS 197 – PDF (původní specifikace)
- NIST: AES je podmnožinou Rijndael (velikost bloku 128 bitů)
- NIST SP 800–38A – provozní režimy (ECB/CBC/CFB/OFB/CTR)
- NIST SP 800–38D – GCM/GMAC (autentizované šifrování)
- NIST SP 800–38F – AES Key Wrap
- CNSSP–15 Fact Sheet – použití AES pro tajné/přísně tajné informace
- NSA: CNSA 2.0 FAQ – aktuální požadavky
- NIST: vyřazení DES (souvislosti)
Porozumějte útokům hrubou silou
Zjistěte, proč je délka hesla zásadní a jak se chránit.
Více o útocích hrubou silou