Co je šifrování AES a jak funguje?
Pokud jde o kybernetickou bezpečnost, AES je jednou z těch zkratek, které se objevují všude. Je to proto, že se stalo globálním standardem šifrování a používá se k udržení značného množství naší komunikace v bezpečí.
Advanced Encryption Standard(AES)je rychlá a bezpečná forma šifrování, která udržuje zvědavé oči mimo naše data. Vidíme to v aplikacích pro zasílání zpráv, jako jeWhatsAppaSignál, programy jakoVeraCryptaWinZip, v řadě hardwaru a řadě dalších technologií, které neustále používáme.
Proč byl AES vyvinut?
Nejstarší typy šifrování byly jednoduchépomocí technik, jako je změna každého písmena ve větě na písmeno, které následuje v abecedě za ním. Pod tímto druhem kódu se předchozí věta stává:
Jak vidíte, díky tomuto jednoduchému kódu je zcela nečitelný. Navzdory počáteční nečitelnosti, pokud byste měli čas a věděli, že jde o kód a ne jen o hromadu znaků vyvrhnutých na stránku, nebylo by příliš těžké nakonec přijít na to.
Jak se lidé zdokonalili v luštění kódů, šifrování muselo být sofistikovanějšítakžezprávy mohou být drženo v tajnosti. Tyto závody ve zbrojení ve vymýšlení sofistikovanějších metod, zatímco ostatní vynakládali své úsilí na jejich prolomení, vedly ke stále složitějším technikám,Jako Stroj Enigma . Jeho nejstarší návrhy lze vysledovat zpět do a patent od německého vynálezce Arthura Scherbiuse v roce 1918.
Vzestup elektronické komunikace byl také přínosem pro šifrování. V 70. letech 20. stoletíAmerický národní úřad pro standardy (NBS)začal hledat standardní prostředky, které by bylo možné použít k šifrování citlivých vládních informací. Výsledkem jejich hledání bylo přijetí symetrického klíčového algoritmu vyvinutého v IBM, který se nyní nazývá Standard šifrování dat (DES) . DES sloužil svému účelu po několik dalších desetiletí relativně dobře, ale v devadesátých letech se začaly objevovat určité bezpečnostní obavy.
DES má pouze a56bitový klíč(ve srovnání smaximálně 256 bitů v AES, ale k tomu se dostaneme později), takže jak se technologie a metody crackování zdokonalovaly, útoky proti němu začaly být praktičtější. První šifrovaná zpráva DES, která byla prolomena, byla otevřena v roce 1997 Projekt DESCHALL v anSoutěž sponzorovaná RSA Security.
Příští rok, Electronic Frontier Foundation (EFF) postavil DES cracker, který dokázal hrubě vynutit klíč za něco málo přes dva dny. V roce 1999,EFFa první počítačový kolektiv internetu,distribuovaný.net, spolupracovali na zkrácení tohoto času pod 24 hodin.
Ačkoli byly tyto útoky nákladné a nepraktické, začaly ukazovat, že panování DES jako standardního šifrovacího standardu se chýlí ke konci. S výpočetním výkonemexponenciálně rostoucípodleMoorův zákon, bylo jen otázkou času, kdy už se na DES nebude možné spolehnout.
Americká vláda se vydala na pětiletou misi, aby vyhodnotila různé metody šifrování, aby našla nový standard, který by byl bezpečný. TheNárodní institut pro standardy a technologie (NIST)oznámila, že konečně provedla svůj výběr na konci roku 2001.
Jejich výběr byl specifickou podmnožinou Rijndaelova bloková šifra , s pevnou velikostí bloku 128 bitů a velikostí klíče 128, 192 a 256 bitů. Byl vyvinut Joan Daemen a Vincent Rijmen, dva kryptografové z Belgie. V květnu 2002 byl AES schválen, aby se stal americký federální standard a rychle se stal standardním šifrovacím algoritmem i pro zbytek světa.
Příbuzný: Průvodce kryptografií pro začátečníky
Proč byla tato šifra vybrána pro AES?
S jakýmkoliv druhem šifrování vždy existují kompromisy. Snadno byste mohli mít standard, který by byl exponenciálně bezpečnější než AES, ale šifrování a dešifrování by trvalo příliš dlouho, než aby to mělo nějaké praktické využití. NakonecBlokovou šifru Rijndael zvolil NISTprojeho všestranné schopnosti, včetně jeho výkonu na hardwaru i softwaru, snadné implementace a úrovně zabezpečení.
Jak AES funguje?
Uvědomte si, že následující příklad je zjednodušením, ale poskytuje vám obecnou představu o tom, jak AES funguje. Bohužel na světě není dostatek kávy, aby většina lidí chtěla projít složitějšími aspekty AES. Normálně se proces provádí binárně a je zde mnohem více matematiky.
Nejprve jsou data rozdělena do bloků.
Při této metodě šifrování se první věc, která se stane, je, že váš prostý text (což je informace, kterou chcete zašifrovat) je rozdělen do bloků. Velikost bloku AES je 128 bitů, takže data rozděluje do sloupce čtyři krát čtyři po šestnácti bytech (v bajtu je osm bitů a 16 x 8 = 128).
Pokud byla vaše zpráva „kupte mi prosím nějaké bramborové lupínky“, první blok vypadá takto:
b | m | Ó | p |
v | a | m | Ó |
A | a | t | |
s | A |
V tomto příkladu přeskočíme zbytek zprávy a zaměříme se pouze na to, co se stane s prvním blokem, když je zašifrován. „…to chips please“ by normálně bylo přidáno do dalšího bloku.
Rozšíření klíče
Rozšíření klíče zahrnuje odebrání počátečního klíče a jeho použití k vytvoření řady dalších klíčů pro každé kolo procesu šifrování. Tyto nové 128bitové kulaté klíče jsou odvozeny od Rijndaelův klíčový rozvrh , což je v podstatě jednoduchý a rychlý způsob výroby nových klíčových šifer. Pokud byl počáteční klíč „klíče jsou nudné1“:
k | i | ||
a | A | b | n |
A | r | Ó | G |
s | a | r | 1 |
Poté může každý z nových klíčů vypadat nějak takto, jakmile bude použit Rijndaelův plán klíčů:
14 | 29 | 1h | s5 |
h9 | 9f | Svatý | 9f |
gt | 2h | hq | 73 |
ks | dj | df | hb |
Ačkoli vypadají jako náhodné znaky (a výše uvedený příklad je jen vymyšlený), každý z těchto klíčů je odvozen ze strukturovaného procesu, když je skutečně použito šifrování AES. K tomu, k čemu tyto kulaté klávesy slouží, se vrátíme později.
Přidejte kulatý klíč
V tomto kroku, protože se jedná o první kolo, je náš počáteční klíč přidán do bloku naší zprávy:
b | m | Ó | p |
v | a | m | Ó |
A | a | t | |
s | A |
+
k | i | ||
a | A | b | n |
A | r | Ó | G |
s | a | r | 1 |
To se provádí pomocí an šifra XOR , což je aditivní šifrovací algoritmus. I když to vypadá, že tyto věci ve skutečnosti nemůžete sečíst, uvědomte si, že se to ve skutečnosti děje binárně. Postavy jsou jen zástupné, aby se pokusily věci lépe pochopit. Řekněme, že tato matematická operace nám dává výsledek:
h3 | jd | na | 7s |
s8 | 7d | 26 | 2n |
dj | 4b | 9d | 9c |
74 | a | 2h | hg |
Náhradní bajty
V tomto kroku je každý bajt nahrazen podle předem určené tabulky. Je to něco jako příklad ze začátku článku, kde byla věta kódována změnou každého písmena na to, které následuje za ním v abecedě (Ahojse stáváifmmp).
Tento systém je trochu složitější a nemusí mít žádnou logiku. Místo toho existuje zavedená tabulka, kterou lze vyhledat pomocí algoritmu, který říká například totoh3se stávájb,s8se stává9f,djse stává62a tak dále. Po tomto kroku řekněme, že nám předem určená tabulka dává:
jb | n3 | kf | n2 |
9f | jj | 1h | js |
74 | co | 0d | 18 |
hs | 17 | d6 | px |
Posun řádků
Shift rows je jednoduchý název a tento krok je v podstatě to, co byste očekávali. Druhá řada se posune o jedno místo doleva, třetí řada se posune o dvě místa doleva a čtvrtá řada se posune o tři místa doleva. To nám dává:
jb | n3 | kf | n2 |
jj | 1h | js | 9f |
0d | 18 | 74 | co |
px | hs | 17 | d6 |
Smíchejte sloupce
Tento krok je trochu složitější na vysvětlení. Abychom odstranili většinu matematiky a zjednodušili věci, řekněme, že na každý sloupec je použita matematická rovnice, aby se dále rozšířil. Řekněme, že operace nám dává tento výsledek:
ls | j4 | 2n | a |
83 | 28 | a | 9f |
9w | xm | 3l | m4 |
5b | a9 | cj | ps |
Přidat kulatý klíč (znovu)
Pamatujete si ty kulaté klíče, které jsme vyrobili na začátku pomocí našeho původního klíče a Rijndaelova klíče? No a tady je začínáme používat. Vezmeme výsledek našich smíšených sloupců a přidáme klíč prvního kola, který jsme odvodili:
ls | j4 | 2n | a |
83 | 28 | a | 9f |
9w | xm | 3l | m4 |
5b | a9 | cj | ps |
+
14 | 29 | 1h | s5 |
h9 | 9f | Svatý | 9f |
gt | 2h | hq | 73 |
ks | dj | df | hb |
Řekněme, že tato operace nám poskytne následující výsledek:
9d | 5b | 28 | sf |
ls | df | hf | 3b |
9t | 28 | hp | 8f |
62 | 7d | patnáct | ach |
Mnoho dalších kol…
Pokud jste si mysleli, že je to ono, nejsme ani blízko. Po přidání posledního okrouhlého klíče se vrátí zpět do fáze substituce bajtů, kde se každá hodnota změní podle předem určené tabulky. Jakmile to uděláte, vrátíte se k posunu řádků a posunutí každého řádku doleva o jednu, dvě nebo tři mezery. Poté znovu prochází rovnicí sloupců směsi. Poté se přidá další kulatý klíč.
Ani tam to nekončí. Na začátku to bylo zmíněnoAES má velikosti klíčů buď 128, 192 nebo 256 bitů.Při použití 128bitového klíče je těchto kol devět. Když je použit 192bitový klíč, je jich 11. Když je použit 256bitový klíč, je jich 13. Data tedy procházejí substitucí bajtů, posouváním řádků, mícháním sloupců a zaokrouhlováním klíčů až třináctkrát, každý až třináctkrát, se mění v každé fázi.
Po těchto devíti, 11 nebo 13 kolech následuje jedno další kolo, ve kterém jsou data zpracována pouze substitucí bajtů, posunem řádků a přidáním kroků zaokrouhlení klávesy, alenekrok promíchání sloupců. Krok smíchání sloupců je vyřazen, protože v této fázi by pouze spotřebovával výpočetní výkon bez změny dat, což by způsobovalo méně efektivní šifrování.
Aby to bylo jasnější, celý proces šifrování AES:
Rozšíření klíče
Přidejte kulatý klíč
Bajtová substituce
Posunout řádky
Smíchejte sloupce
Přidejte kulatý klíč
x 9, 11 nebo 13krát, v závislosti na tom, zda je klíč 128, 192 nebo 256bitový
Bajtová substituce
Posunout řádky
Přidejte kulatý klíč
Jakmile data projdou tímto složitým procesem, váš originál'Kup mi prosím nějaké bramborové lupínky'vypadá něco jako„ok23b8a0i3j 293uivnfqf98vs87a“. Vypadá to jako zcela náhodný řetězec znaků, ale jak můžete vidět z těchto příkladů, je to ve skutečnosti výsledek mnoha různých matematických operací, které jsou na něj znovu a znovu aplikovány.
Jaký je smysl každého z těchto kroků?
Když jsou naše data zašifrována, stane se spousta věcí a je důležité pochopit proč. Klíčexpanze je kritickákrok, protože nám dává klíče pro pozdější kola. Jinak by se v každém kole přidal stejný klíč, což by usnadnilo prolomení AES. V prvním kole se přidá počáteční klíč, aby se započala úprava prostého textu.
Thekrok substituce bajtů, kde se každý z datových bodů mění podle předem určené tabulky,plní také zásadní roli. Mění data nelineárním způsobem, aby na informace působil zmatek. Zmatek je proces, který pomáhá skrýt vztah mezi zašifrovanými daty a původní zprávou.
Rozhodující je také posun řádků, provádějící to, co je známé jako difúze. V kryptografii difúze v podstatě znamená transponovat data, aby se přidaly komplikace. Posouváním řádků se data přesunou z původní pozice, což dále napomáhá jejich zakrytí.Smíchejte sloupcefunguje podobným způsobem, mění data spíše vertikálně než horizontálně.
Na konci kola je přidán nový klíč kola, který byl odvozen z počátečního klíče. To přidává do dat větší zmatek.
Proč je tolik kol?
Procesypřidání kulatých klíčů,bajtová substituce,posouvání řádkůamíchací kolonypozmění data, ale stále je lze prolomit kryptoanalýzou, což je způsob, jak studovat kryptografický algoritmus za účelem jeho prolomení.
Zkratkové útokyjsou jedním zklíčové hrozby. Jedná se o útoky, které mohou prolomit šifrování s menším úsilím než hrubou silou. Když byl AES navrhován, byly nalezeny zkratkové útoky až pro šest kol jeho procesu. Kvůli tomu byla přidána další čtyři kola za minimum128bitový AES jako bezpečnostní rezerva. Výsledných 10 kol dává metodě šifrování dostatek prostoru pro nohy, aby se zabránilo zkratovým útokům při dnešních technikách a technologiích.
Proč nepřidáme další kola, abychom posílili bezpečnost?
U většiny věcí v zabezpečení musí existovat akompromis mezi čistou obrannou silou, použitelností a výkonem. Pokud dáte deset ocelových dveří se závorami na každý ze vstupních bodů do vašeho domu, bude to jistě bezpečnější. Nastupování a vystupování by také trvalo nepřiměřeně dlouho, a proto to nikdy nikoho nevidíme.
Je to stejné, pokud jde o šifrování. Mohli bychom to udělat bezpečnější přidáním více kol, ale také by to bylo pomalejší a mnohem méně efektivní.10, 12 a 14 kol AES bylo rozhodnuto, protože poskytují dobrý kompromismezi těmito konkurenčními aspekty, alespoň v současném technologickém prostředí.
Dešifrování AES
Pokud se vám podařilo zorientovat se v procesu šifrování vysvětleném výše, dešifrování je poměrně jednoduché. Chcete-li přejít od šifrovaného textu zpět k prostému textu původní zprávy, vše se provádí obráceně.
Pokud začneme s naším zašifrovaným výsledkem„ok23b8a0i3j 293uivnfqf98vs87a“apoužít opak každého kroku šifrování, začíná klávesou inverzního kola, poté řádky inverzního posunu a inverzní substitucí bajtů, než přejde do inverze k 9, 11 nebo 13 kol.Vypadá to takto:
„ok23b8a0i3j 293uivnfqf98vs87a“
Inverzní přidat kulatý klíč
Inverzní posun řádků
Inverzní substituce bajtů
Inverzní přidat kulatý klíč
Inverzní mix sloupců
Inverzní posun řádků
Inverzní substituce bajtů
x 9, 11 nebo 13krát, v závislosti na tom, zda je klíč 128, 192 nebo 256 bitů
Inverzní přidat kulatý klíč
Po tomto dešifrovacím procesu opět skončíme s naší původní zprávou:'Kup mi prosím nějaké bramborové lupínky'
128 vs 192 vs 256bitový AES
AES má tři různé délky klíče. Hlavním rozdílem je počet kol, kterými data v procesu šifrování projdou, 10, 12 a 14. V podstatě,192-bita256-bitposkytnout avětší bezpečnostní rozpětínež128bitový.
V současném technologickém prostředí,128bitový AESpro většinu praktických účelů stačí. Vysoce citlivá data, se kterými nakládají osoby s extrémní úrovní ohrožení, jako je napřTOP SECRET dokumentykontrolované armádou, by měl být pravděpodobně zpracován buď192nebo256bitový AES.
Pokud jste paranoidní, můžete raději použít192nebo256-bitšifrování všude tam, kde je to možné. To je v pořádku, pokud vám to usnadní noční spánek, ale ve většině situací to opravdu není nutné. Není to bez nákladů, se čtyřmi koly navíc256bitové šifrovánícož je o 40 procent méně účinné.
Bezpečnostní problémy AES
Kryptografové neustále zkoumají slabiny AES, snaží se vymýšlet nové techniky a využívat technologii, která jim přijde do cesty. To je zásadní, protože pokud by to nebylo důkladně testováno akademiky, pak by zločinci nebo národní státy nakonec mohli najít způsob, jak to rozlousknout, aniž by o tom zbytek světa věděl. Výzkumníci zatím odhalili pouze teoretické zlomy a útoky postranním kanálem.
Útok souvisejícího klíče
V roce 2009 vznikla řada související klíčové útoky byly objeveny. Jedná se o typ kryptoanalýzy, který zahrnuje pozorování toho, jak šifra funguje pod různými klíči. Související klíčové útoky, které výzkumníci objevili, nevyvolávají žádné velké obavy; jsou možné pouze u protokolů, které nejsou správně implementovány.
Známý rozlišovací útok
Opět v roce 2009 došlo k rozlišovací útok známým klíčem proti osmikolové verzi AES-128. Tyto útoky používají klíč, který je již známý, aby bylo možné zjistit vlastní strukturu šifry. Vzhledem k tomu, že tento útok byl pouze proti osmikolové verzi, není pro běžné uživatele AES-128 příliš starostí.
Útok postranním kanálem
Došlo k několika dalším teoretickým útokům, ale za současné technologie by jejich prolomení trvalo miliardy let. Tohle znamená tamtoSamotný AES je v současnosti v podstatě nerozbitný. Navzdory tomu může být AES stále zranitelný, pokud nebyl správně implementován, v tom, co je známé jako a útok postranním kanálem .
Útoky postranním kanálemdojít, když ze systému unikají informace. Útočník poslouchá zvuk, informace o načasování, elektromagnetické informace nebo spotřebu energie, aby získal závěry z algoritmu, které pak lze použít k jeho prolomení.
Pokud je AES implementováno pečlivě, lze těmto útokům zabránit buď odstraněním zdroje úniku dat, nebo zajištěním, že mezi uniklými daty a algoritmickými procesy neexistuje žádný zjevný vztah.
Poslední slabina je obecnější než specifická pro AES, ale uživatelé si musí být vědomi, že AES automaticky nezabezpečuje jejich data.Dokonce i AES-256 je zranitelný, pokud má útočník přístup ke klíči uživatele. To je důvod, proč je AES pouze jedním z aspektů zabezpečení dat. Efektivní správa hesel, firewally, detekce virů a vzdělávání proti útokům sociálního inženýrství jsou svým způsobem stejně důležité.
Stačí AES?
V současné době všichni přenášíme tolik našich citlivých dat online,AES se stalo nezbytnou součástí naší bezpečnosti. Přestože existuje již od roku 2001, jeho opakovaný proces přidávání klíčů, nahrazování bajtů, posouvání řádků a míchání sloupců se ukázal jako obstojný ve zkoušce času.
Navzdory současným teoretickým útokům a jakýmkoli potenciálním útokům postranním kanálem,AES samotný zůstává bezpečný. Je to vynikající standard pro zabezpečení naší elektronické komunikace a lze jej použít v mnoha situacích, kdy je třeba chránit citlivé informace. Soudě podle současné úrovně technologie a útočných technik,při jeho používání byste měli mít jistotuv dohledné době.
Proč potřebujeme šifrování?
Nyní, když jsme prošli technickými detaily AES, je důležité diskutovat o tom, proč je šifrování důležité. Na své nejzákladnější úrovni nám šifrování umožňuje zakódovat informace tak, aby data mohli dešifrovat pouze ti, kteří mají přístup ke klíči. Bez klíče to vypadá jako blábol. Pomocí klíče se změť zdánlivě náhodných postav promění zpět ve své původní poselství.
Šifrování používají vlády a armády po tisíciletíaby se citlivé informace nedostaly do nesprávných rukou. V průběhu let se stále více vkrádá do každodenního života, zejména poté, co se tak velká část našich osobních, sociálních a pracovních jednání nyní přesunula do online světa.
Jen přemýšlejte o všemdata, která zadáváte do svých zařízení:hesla, bankovní spojení, vašeSoukromé zprávya mnohem víc. Bez jakéhokoli šifrování by bylo pro kohokoli, ať už jde o zločince, šílené stalkery nebo vládu, mnohem snazší tyto informace zachytit.
Toliknaše informace jsou cenné nebo citlivé, takže je jasné, že je potřeba ji chránit tak, abychom k ní měli přístup pouze my sami a ti, které autorizujeme.Proto potřebujeme šifrování. Bez toho by online svět prostě nemohl fungovat. Byli bychom zcela zbaveni jakéhokoli soukromí a zabezpečení, což by naše online životy dostalo do naprostého chaosu.
Viz také:
Nástroj pro generátor hesel
Zdroje šifrování: Velký seznam nástrojů a průvodců
Slavné kódy a šifry v historii
Statistiky a fakta o kybernetické bezpečnosti
'Hacking, počítačová kriminalita' od jaydeep_ s licencí pod CC0