Jak działa szyfrowanie AES?

AES to symetryczny szyfr szyfrujący klucz i jest ogólnie uważany za „złoty standard” do szyfrowania danych.


AES ma certyfikat NIST i jest używany przez rząd USA do ochrony „bezpiecznych” danych, co doprowadziło do bardziej ogólnego przyjęcia AES jako standardowego szyfru z kluczem symetrycznym przez prawie wszystkich. Jest to otwarty standard, z którego można korzystać bezpłatnie w dowolnym celu publicznym, prywatnym, komercyjnym lub niekomercyjnym.

Wprowadzenie do szyfrowania AES

AES to symetryczny szyfr szyfrujący. Oznacza to, że ten sam klucz użyty do zaszyfrowania danych służy do ich odszyfrowania. Stwarza to problem: w jaki sposób wysyłasz klucz w bezpieczny sposób?

Asymetryczne systemy szyfrowania rozwiązują ten problem, zabezpieczając dane za pomocą klucza publicznego, który jest udostępniany wszystkim. Może go odszyfrować tylko zamierzony odbiorca posiadający prawidłowy klucz prywatny.

Dzięki temu szyfrowanie asymetryczne jest znacznie lepsze w zabezpieczaniu przesyłanych danych, ponieważ nadawca nie musi znać klucza prywatnego odbiorcy. Dobrym przykładem jest szyfrowanie RSA, które służy do zabezpieczenia wymiany kluczy TLS wymaganych podczas łączenia się z bezpieczną witryną HTTPS.

Szyfry symetryczne, takie jak AES, są zatem znacznie lepsze w zabezpieczaniu danych w spoczynku - na przykład wtedy, gdy są przechowywane na dysku twardym. W tym celu przewyższają szyfry asymetryczne, ponieważ:

  • Wymagają znacznie mniej mocy obliczeniowej. Dzięki temu szyfrowanie i odszyfrowywanie danych przy użyciu szyfrowania symetrycznego jest znacznie szybsze niż przy szyfrowaniu asymetrycznym. Dla perspektywy, szyfry symetryczne są ogólnie cytowane jako „około 1000 razy szybsze” niż szyfry asymetryczne.
  • Ponieważ są szybsze, szyfrowanie symetryczne jest znacznie bardziej przydatne do masowego szyfrowania dużych ilości danych. Szyfry asymetryczne, takie jak RSA, są naprawdę używane do szyfrowania niewielkich ilości danych, takich jak klucze używane do zabezpieczania szyfrowania kluczem symetrycznym.

Oczywiście w dzisiejszym połączonym świecie dane, które po prostu znajdują się na dysku twardym, mają ograniczone zastosowanie. Na szczęście można go bezpiecznie przesyłać przez Internet w połączeniu z szyfrowaniem asymetrycznym, które służyło do obsługi wymiany kluczy wymaganych do bezpiecznego połączenia ze zdalnym serwerem.

Na przykład OpenVPN zabezpiecza nieprzetworzone dane za pomocą asymetrycznego szyfru - zwykle AES w dzisiejszych czasach. Aby bezpiecznie przesłać zaszyfrowane dane między komputerem a serwerem VPN, korzysta on z asymetrycznej wymiany kluczy TLS w celu negocjacji bezpiecznego połączenia z serwerem.

Czy szyfrowanie AES jest najlepszym rodzajem szyfrowania?

AES jest powszechnie uważany za najbezpieczniejszy jak dotąd wynaleziony szyfrowanie za pomocą klucza symetrycznego. Istnieją również inne szyfrowania klucza symetrycznego, które są uważane za wysoce bezpieczne, takie jak Twofish, który został wymyślony przez znanego kryptografa Bruce'a Schneiera.

Jednak takie szyfry nie były testowane w bitwie, jak AES. I hej, jeśli rząd USA uważa, że ​​AES jest najlepszym szyfrem do ochrony „bezpiecznych” danych, kto się kłóci? Są jednak tacy, którzy postrzegają to jako problem. Zobacz sekcję NIST poniżej.

Powszechne przyjęcie przyniosło korzyści AES na inne sposoby. Większość producentów procesorów zintegrowało teraz zestaw instrukcji AES ze swoimi procesorami. Zwiększenie sprzętowe poprawia wydajność AES na wielu urządzeniach, a także poprawia ich odporność na ataki z boku kanału.

Czy można przerwać 128-bitowe szyfrowanie AES?

Sam AES jest niezniszczalny, jeśli jest prawidłowo wdrożony.

W 2011 roku najszybszym superkomputerem na świecie był Fujitsu K. Był on w stanie osiągnąć maksymalną prędkość Rmax wynoszącą 10,51 petaflopsa. W oparciu o tę liczbę, Fujitsu K 1,02 x 10 ^ 18 - około miliarda miliardów (jeden kwintillion) - lata zajęłoby złamanie 128-bitowego klucza AES siłą. Jest starszy niż wiek wszechświata (13,75 miliarda lat).

Najpotężniejszym superkomputerem na świecie w 2017 roku był Sunway TaihuLight w Chinach. Ta bestia ma maksymalną prędkość 93,02 petaflopsa. Oznacza to, że najpotężniejszy komputer na świecie nadal potrzebowałby około 885 biliardów lat, aby brutalnie użyć 128-bitowego klucza AES.

Liczba operacji wymaganych do brutalnej siły 256-bitowego szyfru wynosi 3,31 x 10 ^ 56. Jest to w przybliżeniu równe liczbie atomów we wszechświecie!

W 2011 roku badacze kryptografii zidentyfikowali słabość AES, która pozwoliła im złamać algorytm cztery razy szybciej niż było to wcześniej możliwe. Ale jak zauważył wówczas jeden z badaczy:

„Aby spojrzeć na to z perspektywy: na bilionach maszyn, z których każdy może przetestować miliard kluczy na sekundę, odzyskanie klucza AES-128 zajęłoby ponad dwa miliardy lat.”

W odpowiedzi na ten atak do procesu szyfrowania AES-128 dodano dodatkowe cztery rundy (patrz później), aby zwiększyć margines bezpieczeństwa.

Ataki z kanału bocznego

A więc pod każdym względem, sam AES jest niezniszczalny, jeśli jest odpowiednio wdrożony. Ale nie zawsze jest prawidłowo wdrażane.

Ataki w kanale bocznym szukają wskazówek z systemu komputerowego wdrażającego szyfrowanie AES w celu uzyskania dodatkowych informacji. Może to być przydatne w zmniejszaniu liczby możliwych kombinacji wymaganych do brutalnej siły AES.

Ataki te wykorzystują informacje o taktowaniu (czas potrzebny na wykonanie obliczeń przez komputer), wycieki elektromagnetyczne, wskazówki audio, a nawet wskazówki optyczne wykryte za pomocą kamery o wysokiej rozdzielczości, aby odkryć dodatkowe informacje o tym, jak system przetwarza szyfrowanie AES.

Dobrze znany atak kanału bocznego na AES z powodzeniem wydedukował klucze szyfrowania AES-128 poprzez uważne monitorowanie wspólnego korzystania przez szyf z tabel pamięci podręcznej procesorów.

Prawidłowo zaimplementowana funkcja AES zmniejsza ryzyko ataków z kanału bocznego, zapobiegając możliwym sposobom wycieku danych (czyli tam, gdzie pomaga użycie zestawu instrukcji AES opartego na sprzęcie) oraz stosując techniki randomizacji w celu wyeliminowania związku między danymi chronionymi przez szyfr a wszelkimi wyciekającymi danymi które można zebrać za pomocą ataku bocznego.

Niebezpieczne hasła

Szyfrowanie AES jest tak bezpieczne, jak jego klucz. Te klucze są niezmiennie zabezpieczone za pomocą haseł i wszyscy wiemy, jak strasznie my, ludzie, używamy bezpiecznych haseł. Keyloggery wprowadzone przez wirusy, ataki socjotechniki i tym podobne mogą być również skutecznym sposobem na złamanie haseł zabezpieczających klucze AES.

Korzystanie z menedżerów haseł znacznie ogranicza ten problem, podobnie jak korzystanie z dwustronnych zapór ogniowych, dobrego oprogramowania antywirusowego i lepszej edukacji na temat problemów związanych z bezpieczeństwem.

Krótka historia szyfrowania AES

Czy jako dziecko grałeś w grę, w której stworzyłeś „tajną wiadomość”, zastępując jedną literę wiadomości inną? Podstawienia dokonano zgodnie z wybraną przez Ciebie formułą.

Możesz na przykład zastąpić każdą literę oryginalnej wiadomości jedną trzema literami w alfabecie. Gdyby ktokolwiek wiedział, czym jest ta formuła lub był w stanie ją wypracować, byłby w stanie odczytać „tajną wiadomość”.

W żargonie kryptograficznym „szyfrujesz” wiadomość (dane) zgodnie z bardzo prostym algorytmem matematycznym.

Szyfrowanie było używane do ukrywania wrażliwych danych od czasów starożytnych, ale tak naprawdę przyszło samo w XX wieku. Podczas II wojny światowej Niemcy zapewnili sobie komunikację za pomocą maszyny Enigma, której kod został równie dobrze złamany przez Alana Turinga w Bletchley Park.

Co to jest szyfrowanie DES

Data Encryption Standard (DES) został stworzony w połowie lat 70. XX wieku, aby zabezpieczyć komunikację rządu USA. Stał się pierwszym nowoczesnym, publicznym, ogólnodostępnym algorytmem szyfrowania i jako taki niemal samodzielnie stworzył nowoczesną dyscyplinę kryptografii.

Chociaż opracowany przez IBM, DES był pomysłem National Bureau of Standards (NBS, który później stał się NIST).

Pomimo obaw o wtrącanie się przez NSA, DES został przyjęty przez rząd USA w 1976 r. Dla "wrażliwy, ale niesklasyfikowany" ruch drogowy. Obejmowało to między innymi informacje osobiste, finansowe i logistyczne.

Ponieważ w tym czasie nie było już nic podobnego, szybko został szeroko przyjęty przez firmy komercyjne, które wymagały szyfrowania w celu zabezpieczenia swoich danych. W związku z tym DES (który używał 56-bitowych kluczy) stał się domyślnym standardem szyfrowania konia roboczego na prawie dwie dekady.

Ta niemal wszechobecna adopcja bardzo pomogła w przyznaniu DES statusu Federalnego Standardu Przetwarzania Informacji (FIPS). Wszystkie amerykańskie niewojskowe agencje rządowe i cywilni kontrahenci rządowi są zobowiązani do stosowania wyłącznie standardów FIPS.

Jednak w połowie lat 90. DES zaczął pokazywać swój wiek. W tym czasie powszechnie wierzono, że NSA może złamać DES brutalnie, co udowodniono w 1998 r., Kiedy maszyna o wartości 220 000 USD zbudowana przez Electronic Frontier Foundation (EFF) z powodzeniem brutalnie wymusiła DES w zaledwie dwa dni. Wyraźnie nadszedł czas na nowy standard.

Jak powstało AES

W 1997 r. National Institute of Standards and Technology of the United States (NIST) ogłosił, że szuka zastępstwa dla DES. W listopadzie 2001 r. Ogłosił, że zwycięzca: AES, wcześniej znany jako Rijndael po jednym ze współtwórców.

Zgodnie z zaleceniem NIST nowy szyfr został formalnie przyjęty przez rząd federalny USA i wszedł w życie w maju 2002 roku. Podobnie jak DES wcześniej, AES otrzymał status FIPS. Rząd USA uważa, że ​​wszystkie rozmiary klucza AES są wystarczające do uzyskania informacji niejawnych aż do "Sekret" poziom, z "Ściśle tajny" informacje wymagające AES-192 lub AES-256.

AES całkowicie zastąpił DES na całym świecie jako domyślny standard szyfrowania symetrycznego dla koni roboczych.

Jak działa szyfrowanie AES?

Algorytm szyfrowania AES szyfruje i odszyfrowuje dane w blokach po 128 bitów. Można to zrobić przy użyciu kluczy 128-bitowych, 192-bitowych lub 256-bitowych. AES używający 128-bitowych kluczy jest często nazywany AES-128 i tak dalej.

Poniższy schemat przedstawia uproszczony przegląd procesu AES…

jak działa szyfrowanie AES

Zwykły tekst

To wrażliwe dane, które chcesz zaszyfrować.

Sekretny klucz

Jest to 128-bitowa, 192-bitowa lub 256-bitowa zmienna utworzona przez algorytm.

Szyfr

Rzeczywisty szyfr AES wykonuje następnie serię przekształceń matematycznych, używając tekstu jawnego i tajnego klucza jako punktu początkowego. W kolejności są to:

  1. Kluczowe rozszerzenie. Używa oryginalnego tajnego klucza, aby uzyskać serię nowych „okrągłych kluczy” przy użyciu algorytmu harmonogramu kluczy Rijndaela.
  2. Mieszanie. Każdy okrągły klucz jest łączony z tekstem jawnym przy użyciu addytywnego algorytmu XOR.

    Szyfrowanie AES roundKey

  3. Podstawienie powstałych danych za pomocą tabeli podstawień. Ten etap jest zasadniczo bardzo podobny (jeśli w praktyce jest znacznie bardziej złożony) do szyfrów zastępczych, które stworzyłeś jako dziecko.Szyfrowanie AES w SubBytes

  4. Przesuwaj rzędy. W którym każdy bajt w szesnastobajtowej kolumnie 4 x 4, która tworzy 128-bitowy blok, jest przesuwany w prawo.Przesunięcie wierszy szyfrowania AES

5. Wymieszaj kolumny. Kolejny algorytm jest stosowany do każdej kolumny.

Powstań i powtórz. Proces ten powtarza się wiele razy, a każde powtórzenie nazywane jest rundą. Każda runda jest ponownie szyfrowana przy użyciu jednego z okrągłych kluczy generowanych podczas rozszerzania klucza (krok 1).

Liczba wykonanych rund zależy od użytej długości klucza. AES-128 używa dziesięciu rund, AES-192 używa dwunastu rund, a AES-256 używa czternastu rund.

Każda dodana runda zmniejsza szansę na atak skrótu, jakiego użyto do ataku na AES-128 w 2011 roku. Jak już wspomniano, w wyniku tego ataku do AES-128 dodano cztery kolejne rundy w celu zwiększenia marginesów bezpieczeństwa.

Zaszyfruj tekst

Jest to zaszyfrowane wyjście z szyfru po przejściu przez określoną liczbę rund.

Jak odszyfrować szyfrowanie AES

Odszyfrowanie AES jest proste - wystarczy cofnąć wszystkie powyższe kroki, zaczynając od odwrotnego okrągłego klawisza. Oczywiście musisz mieć oryginalny tajny klucz, aby odwrócić proces za pomocą każdego odwrotnego okrągłego klucza.

Czy szyfrowanie pliku powoduje, że jest on większy?

Tak. Zazwyczaj. AES używa ustalonego rozmiaru bloku 16 bajtów. Jeśli plik nie jest wielokrotnością rozmiaru bloku, AES używa dopełniania, aby ukończyć blok.

Teoretycznie nie musi to oznaczać wzrostu rozmiaru zaszyfrowanych danych (patrz kradzież tekstu zaszyfrowanego), ale po prostu dodanie danych w celu wypchnięcia bloku jest zwykle znacznie łatwiejsze. Co zwiększa ilość zaszyfrowanych danych.

Niepotwierdzone dowody sugerują, że pliki większe niż 1 MB zaszyfrowane za pomocą AES są o około 35% większe niż przed szyfrowaniem.

Jak ważne są rozmiary kluczy w szyfrowaniu AES?

Najokrutniejszym sposobem pomiaru siły szyfru jest rozmiar jego klucza. Im większy klucz, tym więcej możliwych kombinacji.

AES może być używany z kluczami o rozmiarach 126-bitowych, 192-bitowych lub 256-bitowych. Oryginalny szyfr Rijndael został zaprojektowany tak, aby akceptować dodatkowe długości kluczy, ale nie zostały one przyjęte w AES.

Ataki brutalnej siły

Im bardziej złożony algorytm, tym trudniej złamać szyfr za pomocą ataku brutalnej siły. Ten bardzo prymitywny atak nazywany jest także wyczerpującym wyszukiwaniem klucza. Zasadniczo polega na wypróbowaniu każdej możliwej kombinacji liczb, aż do znalezienia właściwego klucza.

Jak wiemy, komputery wykonują wszystkie obliczenia przy użyciu liczb binarnych: zer i jedynek. I jak widzieliśmy, złożoność szyfru zależy od jego wielkości klucza w bitach - surowej liczby jedynek i zer niezbędnych do wyrażenia jego algorytmu, gdzie każde zero lub jeden jest reprezentowany przez pojedynczy bit.

Nazywa się to kluczową długością, a także reprezentuje praktyczną wykonalność skutecznego ataku brutalną siłą na dowolny szyfr.

Liczba możliwych kombinacji (a tym samym trudność ich brutalnej siły) rośnie wykładniczo wraz z rozmiarem klucza. W przypadku AES:

Jak już omówiliśmy, najszybszy superkomputer na świecie byłby dłuższy niż epoka wszechświata, aby złamać nawet klucz AES-128 siłą!

Rundy szyfrowania

Jak już omówiliśmy, im dłuższy klucz jest używany przez AES, tym bardziej szyfruje się. Ma to przede wszystkim na celu zapobieganie atakom skrótowym, które mogą zmniejszyć złożoność obliczeniową szyfrów, a tym samym ułatwić brutalną siłę szyfru.

Jak zrezygnował z kryptograf Bruce Schneier powiedział o ataku na skrót AES-128 w 2011 roku,

„W kryptografii chodzi o marginesy bezpieczeństwa. Jeśli potrafisz złamać n rundy szyfru, zaprojektuj go za pomocą rund 2n lub 3n. ”

Zalecił wprowadzenie więcej rund dla każdego rozmiaru klucza do AES, ale NIST uważa, że ​​obecny poziom jest wystarczający.

Dlaczego więc korzystać z więcej niż AES-128?

Wszystko to nasuwa pytanie: jeśli złamanie nawet AES-128 zajęłoby więcej niż wiek wszechświata, to po co zawracać sobie głowę używaniem AES-192 lub AES-256? Jak zauważył Schneier:

„Sugeruję, aby ludzie nie używali AES-256. AES-128 zapewnia więcej niż wystarczający margines bezpieczeństwa na dającą się przewidzieć przyszłość. Ale jeśli już używasz AES-256, nie ma powodu, aby to zmieniać. ”

W rzeczywistości Schneier argumentował w przeszłości, że AE-128 jest w rzeczywistości bezpieczniejszy niż AES, ponieważ ma silniejszy harmonogram kluczy niż AES-256.

Dlaczego więc AES-256 jest uznawany za złoty standard szyfrowania kluczem symetrycznym?

Marginesy bezpieczeństwa

Atak skrótem w 2011 r. Pokazuje, że bez względu na to, jak bezpieczni eksperci uważają algorytm kryptograficzny, wynalazcy zawsze znajdą sposoby, których nikt nigdy nie pomyślał o ich osłabieniu.

Podobnie jak w przypadku liczby rund, większy rozmiar klucza zapewnia wyższy margines bezpieczeństwa przed pękaniem.

Bling

Wpływ marketingu nie powinien być ignorowany przy rozważaniu wszechobecności szyfrowania AES-256. Prosty fakt, że AES-256 jest powszechnie uważany za najbezpieczniejszy symetryczny szyfr szyfrujący na świecie, sprawia, że ​​jest numerem jeden wśród wielu.

Chodzi mi o to, że jeśli AES-128 jest dobry, to znaczy, że AES-256 musi być lepszy, prawda?

Fakt, że rząd USA używa AES-256 do zabezpieczenia swoich najbardziej wrażliwych danych, tylko zwiększa jego wartość „bling” i pozwala firmom VPN i tym podobnym twierdzić, że używają szyfrowania „wojskowego”.

Biorąc pod uwagę, że ta „percepcyjna reakcja” jest (w dużej mierze) dokładna, popularność AES-256 jest niewielka (chociaż patrz uwagi na NIST poniżej).

AES i OpenVPN

W szczególności użytkownicy VPN powinni jednak zachować ostrożność. Większość usług VPN wykorzystuje AES-256 do zabezpieczenia danych przesyłanych przez protokół OpenVPN, ale jest to jeden z różnych mechanizmów wykorzystywanych przez OpenVPN do zabezpieczenia danych.

Połączenie TLS zabezpiecza transfer kluczy szyfrujących używanych przez AES do zabezpieczenia danych podczas korzystania z OpenVPN. Jeśli więc ustawienia OpenVPN TLS (kanał kontrolny) są słabe, dane mogą zostać naruszone, mimo że są szyfrowane przy użyciu AES-256. Więcej informacji znajduje się w naszym Przewodniku po szyfrowaniu VPN.

AES-CBC vs AES-GCM

Do niedawna jedynym szyfrem AES, z którym prawdopodobnie spotkałeś się w świecie VPN, był AES-CBC (łańcuch szyfrowania bloków). Odnosi się to do trybu szyfru blokowego, złożonego tematu, w którym naprawdę nie warto się tutaj zajmować.

Chociaż CBC może teoretycznie mieć pewne słabości, konsensus jest taki, że CBC jest bezpieczny. CBC jest rzeczywiście zalecane w podręczniku OpenVPN.

OpenVPN obsługuje teraz także AES-GCM (tryb Galios / Counter). GCM zapewnia uwierzytelnianie, eliminując potrzebę korzystania z funkcji skrótu HMAC SHA. Jest również nieco szybszy niż CBC, ponieważ wykorzystuje akcelerację sprzętową (przez połączenie wątków z wieloma rdzeniami procesorów).

AES-CBC pozostaje najpopularniejszym trybem w powszechnym użyciu, ale popularność AES-GCM rośnie. Biorąc pod uwagę zalety GCM, tendencja ta będzie prawdopodobnie kontynuowana. Jednak z perspektywy kryptograficznej zarówno AES-CBC, jak i AES-GCM są bardzo bezpieczne.

NIST

AES jest certyfikowanym standardem NIST. Jest to organ, który, jak sam przyznaje, ściśle współpracuje z NSA w zakresie rozwoju szyfrów.

Biorąc pod uwagę to, co obecnie wiemy o systematycznych wysiłkach NSA na rzecz osłabienia lub wbudowania tylnych drzwi w międzynarodowe standardy szyfrowania, istnieją wszelkie powody, by kwestionować integralność algorytmów NIST. NIST oczywiście zdecydowanie odrzuca takie zarzuty:

„NIST celowo nie osłabiłby standardu kryptograficznego”.

Zaprosił także społeczeństwo do udziału w szeregu przyszłych proponowanych standardów szyfrowania, co ma na celu zwiększenie zaufania publicznego.

New York Times oskarżył jednak NSA o obchodzenie standardów szyfrowania zatwierdzonych przez NIST, wprowadzając niewykrywalne backdoory lub podważając publiczny proces rozwoju w celu osłabienia algorytmów.

Ta nieufność została dodatkowo wzmocniona, gdy RSA Security (dział EMC) prywatnie powiedział klientom, aby przestali używać algorytmu szyfrowania, który podobno zawiera wadę opracowaną przez NSA. Algorytm ten został również zatwierdzony przez NIST.

Ponadto Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random Bit Generator) to standard szyfrowania opracowany przez NIST. Od lat wiadomo, że jest niepewna.

W 2006 r. Politechnika Eindhoven w Holandii zauważyła, że ​​atak przeciwko niemu był łatwy do uruchomienia na „zwykłym komputerze”. Inżynierowie Microsoft zgłosili również podejrzenie backdoora w algorytmie.

Pomimo tych obaw, do których prowadzi NIST, branża podąża za nimi. Wynika to w dużej mierze z faktu, że zgodność ze standardami NIST jest warunkiem uzyskania kontraktów rządowych USA (FIPS).

Certyfikowane przez NIST standardy kryptograficzne, takie jak AES, są niemal wszechobecne na całym świecie, we wszystkich obszarach przemysłu i biznesu, które opierają się na prywatności. To sprawia, że ​​cała sytuacja jest raczej mrożąca.

Być może właśnie dlatego, że tak bardzo polega na tych standardach, eksperci od kryptografii nie chcieli stawić czoła temu problemowi.

Źródło zdjęcia: xkcd.com/538.

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me