Know-how / Šifrování

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.

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.

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