Šifrování > Typy šifrování > šifrování AES
Co je šifrování AES?
AES v kryptografii označuje Advanced Encryption Standard, rychlý, efektivní a bezpečný šifrovací algoritmus certifikovaný Národním institutem standardů a technologie USA (NIST). Jedná se o symetrickou šifru, která používá stejný klíč k šifrování i dešifrování dat. To je relativně rychlé, takže je to ideální pro šifrování velkého množství uložených dat.
Díky své síle a spolehlivosti je AES jedním z nejpopulárnějších a nejběžnějších typů šifrování používaných v zabezpečení bezdrátových sítí, při šifrování dat a disků, v online platebních systémech, v cloudových úložištích, ve správě hesel a dokonce i ve vládních a vojenských aplikacích. Vláda USA používá šifrování AES k zabezpečení svých utajovaných informací, což přispělo k jeho popularitě.

Je algoritmus AES bezpečný?
Ano. V roce 2000, po velmi důkladném(nové okno) a otevřeném výběrovém řízení, NIST oznámil, že AES (do té doby známý jako algoritmus Rijndael, který vytvořili Vincent Rijmen a Joan Daemen) nahradí standard DES jako jeho doporučený(nové okno) „neutajovaný, veřejně publikovaný šifrovací algoritmus schopný chránit citlivé vládní informace hluboko do příštího století“.
Podle organizace NIST jsou všechny délky klíčů algoritmu AES považovány za „dostatečné“ k ochraně utajovaných informací až do úrovně „Tajné“. Pro informace stupně „Přísně tajné“ je vyžadován algoritmus AES-192 nebo AES-256.

Útoky hrubou silou
Nejzákladnější možnou formou útoku na jakoukoli šifru je útok hrubou silou, který spočívá v vyzkoušení všech možných kombinací klíče, dokud není nalezen ten správný.
Frontier(nové okno) je nejvýkonnější veřejně známý superpočítač na světě. Pokud by veškerý svůj výkon věnoval prolomení AES-128 hrubou silou, stále by k vyčerpání všech možných kombinací pro AES-128 potřeboval řádově 10–12 bilionů let. To je mnohem déle, než je stáří vesmíru. Takže i při nižších bitových velikostech je AES vysoce odolný vůči útokům hrubou silou z konvenčních počítačů.
Prolomit AES-256 hrubou silou je 340 miliard-miliard-miliard-miliardkrát (2¹²⁸) těžší než prolomit AES-128.
Ačkoli Groverův algoritmus(nové okno) teoreticky snižuje bezpečnost symetrických klíčů na polovinu vůči kvantovým hrozbám, jsou stále relativně kvantově odolné, zejména při použití 256bitového klíče.
Útoky na klíče
V průběhu let kryptografové publikovali řadu teoretických útoků na klíče AES, ale všechny jsou buď v praxi neproveditelné, nebo jsou účinné pouze proti implementacím AES, které používají snížený počet kol (viz níže).
Nejúspěšnějším pokusem byl teoretický biclique attack(nové okno) publikovaný v roce 2011, který může zkrátit čas potřebný k prolomení AES hrubou silou na čtvrtinu. Přesto by prolomení AES hrubou silou na jakémkoli současném nebo předvídatelném hardwaru počítačů stále vyžadovalo miliardy let.
Žádný známý útok na klíč není v praxi účinný proti správně implementovanému AES-128 nebo vyššímu.
Postranní útoky
Postranní útok se snaží snížit počet kombinací potřebných k úspěšnému útoku hrubou silou hledáním stop z počítače provádějícího výpočty šifrování. Stopy lze získat zkoumáním:
- Časování – jak dlouho počítači trvá provedení operace
- Elektromagnetické úniky
- Zvukové stopy
- Vizuální stopy (zachycené pomocí kamery s vysokým rozlišením).
Zejména útoky na časování cache se ukázaly jako poměrně účinné při úspěšném prolomení AES. V nejvýznamnějším příkladu dokázali výzkumníci v roce 2016 obnovit(nové okno) klíč AES-128 s použitím „pouze asi 6–7 bloků prostého textu nebo šifrového textu (teoreticky by stačil i jediný blok)“.
Ke zmírnění hrozby postranních útoků však lze udělat řadu věcí:
- Správně implementované AES může zabránit způsobům, jakými může docházet k úniku dat.
- Hardware, který integruje instrukční sadu AES, dále snižuje plochu útoku postranních útoků na AES.
- K narušení vztahu mezi daty chráněnými AES a jakýmikoli uniklými daty, která by mohla být shromážděna pomocí postranního útoku, lze použít techniky randomizace.
V mnoha případech postranní útoky vyžadují, aby útočník měl těsnou blízkost k zařízení nebo fyzický přístup k zařízení při dešifrování dat, ačkoli vzdálené útoky jsou možné, pokud je v zařízení nainstalován škodlivý software, zejména v případě útoků založených na časování.
Jak AES funguje
AES je bloková šifra, která šifruje a dešifruje data v blocích o 128 bitech pomocí 128bitových, 192bitových nebo 256bitových klíčů. Jak bylo uvedeno dříve, k šifrování i dešifrování dat se používá stejný klíč. AES používající 128bitový klíč se často označuje jako AES-128 a obdobně i AES-192 a AES-256.

Data jsou šifrována v několika kolech, z nichž každé se skládá z řady matematických operací.
Proces začíná použitím Rijndaelova algoritmu pro plánování klíčů k odvození řady nových klíčů pro jednotlivá kola z původního tajného klíče. To je známé jako expanze klíče.
Každé kolo se pak skládá z jedné nebo více (nebo kombinace) následujících operací:
1. Add Round Key: Provede se operace XOR(nové okno), která zkombinuje data určená k šifrování (šifrový text) s klíčem daného kola.

2. Sub Bytes: K dalšímu promíchání dat se používá substituční tabulka. Představte si v principu jednoduché substituční šifry, které jste jako děti používali, když jste každé písmeno ve zprávě nahradili písmenem, které je v abecedě o pevný počet míst dál.

3. Shift Rows: Každý 128bitový blok dat se skládá ze 16bitového bloku 4 × 4. Tato operace posouvá každý bajt v řádku bloku doleva o určitý offset.

4. Mix Columns: Na každý sloupec v bloku je aplikována další invertibilní lineární transformace.

Tato série transformací tvoří jedno kolo, které se pak nad daty opakuje po určitý počet kol v závislosti na velikosti klíče:
- AES-128 — 10 kol
- AES-192 — 12 kol
- AES 256 — 14 kol
K dešifrování dat se všechny kroky použité k jejich šifrování jednoduše provedou v opačném pořadí. To vyžaduje původní tajný klíč k obrácení procesu pomocí každého inverzního klíče kola.
Proč je AES-256 preferováno před AES-192 nebo AES-128?
Při současných a předvídatelných technologiích by prolomení AES-128 hrubou silou trvalo déle, než je stáří vesmíru. Legendární kryptograf Bruce Schneier dokonce tvrdí(nové okno), že AES-128 by mohl být silnější než AES-256 díky tomu, že má silnější plánování klíčů — algoritmus, který vypočítává všechny klíče pro jednotlivá kola z původního tajného klíče.
Přesto se AES-256 stal de facto zlatým standardem pro symetrické šifrování. Často je (i když poněkud kontroverzně) považován za silnější volbu, protože větší velikost jeho klíče signalizuje dodatečnou bezpečnostní rezervu, takže šifrovaná data zůstanou v bezpečí, i kdyby se našel způsob, jak algoritmus dramaticky oslabit. Tento argument nabývá na síle s tím, jak je potřeba odolnosti vůči kvantovým počítačům stále naléhavější.
AES-CBC vs. AES-GCM
Ještě poměrně nedávno se AES obvykle používalo v režimu cipher block chaining (CBC), kde je každý blok prostého textu před zašifrováním XORován s předchozím blokem šifrového textu. Při použití v režimu CBC je k ověření dat vyžadován hashovací algoritmus HMAC(nové okno), například HMAC-SHA256.
Stále častěji se však AES používá v režimu Galois/counter (GCM), který využívá režim čítače(nové okno) šifrování. Hlavní výhodou je, že k ověření dat používá Galoisovo pole(nové okno) bez potřeby externího algoritmu. Je proto efektivnější než použití samostatného autentizačního algoritmu, který může mít vysokou výpočetní režii.
Přestože je AES-CBC s ověřením HMAC obecně považováno za bezpečné, CBC je potenciálně zranitelné vůči padding útokům(nové okno), jako je POODLE(nové okno). GCM nikoli.
Hardwarově akcelerované AES
Většina moderních procesorů obsahuje instrukční sadu Advanced Encryption Standard New Instructions (AES-NI(nové okno)), což je sada hardwarových instrukcí, které provádějí operace AES přímo na procesoru. Díky tomu je AES mnohem rychlejší a pomáhá to také předcházet útokům postranními kanály založenými na časování, protože operace probíhají uvnitř zabezpečených prováděcích jednotek procesoru, takže útočník může zneužít méně pozorovatelných časových odchylek.
Proton a AES
AES ve velké míře používáme k zabezpečení produktů Proton:
Události a kontakty jsou zabezpečeny pomocí AES-256 v kombinaci s ECC pro výměnu klíčů, aby bylo zajištěno Vaše soukromí prostřednictvím koncového šifrování.
Proton VPN se zaměřuje hlavně na rychlý a efektivní protokol VPN WireGuard® (který používá ChaCha20), ale připojení OpenVPN používají AES-256.
Proton Pass ukládá hesla, poznámky, identity a další položky do Vašeho zabezpečeného trezoru pomocí AES-256.
Proton Drive šifruje všechny nahrané soubory koncově pomocí AES-256 a používá ECC pro výměnu klíčů. Proton Docs a Proton Sheets také používají AES-256 s výměnou klíčů založenou na ECC, i když se jejich implementace šifrování liší od obecného schématu šifrování souborů v Proton Drive.
Proton Mail ukládá e-maily a přílohy pomocí AES-256 prostřednictvím standardu OpenPGP. Dokonce i Váš soukromý klíč, který odemyká Vaše e-maily, je před uložením na server zašifrován pomocí AES-256.
Proton Meet používá Messaging Layer Security (MLS) k šifrování zvuku, videa a chatových zpráv, čímž zajišťuje dopředné utajení (PFS) a bezpečnost po kompromitaci (PCS) pro veškerou komunikaci. Všechna data schůzek jsou koncově šifrovaná pomocí AES-256-GCM.
Zmírnění útoků na šifrování AES
Zabezpečení je jen tak silné, jak silný je jeho nejslabší článek, kterým je obvykle vaše heslo. To znamená, že metody sociálního inženýrství, phishingové útoky a keyloggery(nové okno) jsou také hrozbou pro data šifrovaná pomocí AES. I když se tedy AES používá, měli byste dodržovat následující opatření:
- Používejte šifrovaného správce hesel
- Používejte hardwarové bezpečnostní klíče (například YubiKey) jako dodatečnou vrstvu ochrany
- Pokud jste součástí nějaké organizace, provádějte pravidelná bezpečnostní školení zaměstnanců, abyste předcházeli phishingovým útokům
Převezměte kontrolu nad svými daty
Proton byl vytvořen tak, aby chránil vaše data od samého začátku. Díky koncovému šifrování, aplikacím s otevřeným zdrojovým kódem a nezávislým auditům zůstávají vaše informace vaše.
Často kladené otázky o šifrování AES
- Co je lepší: AES vs. DES?
- Co je lepší: AES vs. RSA?
- Jak silné je zabezpečení AES?


