Jeśli kiedykolwiek zastanawiałeś się, w jaki sposób zabezpiecza się dane w Internecie, zwłaszcza biorąc pod uwagę, że istnieje kilka złośliwych agentów, którzy nieustannie próbują włamać się do skarbców danych, kryptografia jest jedną z odpowiedzi, która najlepiej pasuje do pytania.
Jak być może wiesz, kryptografia to tylko jedna z metod używanych do ochrony informacji i komunikacji, ale to nie znaczy, że jest to w żaden sposób proste. W rzeczywistości jest to technologia, która podlega ciągłemu rozwojowi, aby zapewnić, że standardy, na których się opiera, są zawsze na najwyższym poziomie.
Przykładem takiego standardu jest AES, akronim, z którym prawdopodobnie spotkałeś się wcześniej, zwłaszcza jeśli stale korzystasz z aplikacji komunikacyjnych, takich jak WhatsApp, Signal, Telegram lub oprogramowanie VPN. W tym artykule skupimy się na AES i pomożemy Ci go lepiej zrozumieć.
Co to jest AES?
AES, co oznacza Advanced Encryption Standard to popularna forma szyfrowania, która jest używana od dłuższego czasu, aby zapewnić bezpieczne przechowywanie danych przed ciekawskimi oczami.
To, co wyróżnia szyfrowanie AES w tłumie, to fakt, że jest to szybka i bezpieczna metoda szyfrowania, a jej elastyczność umożliwia korzystanie z niej w szerokiej gamie produktów, od codziennych aplikacji, takich jak WhatsApp lub Signal do wojskowych systemów bezpieczeństwa, a nawet sprzętu.
Jak działa szyfrowanie
Prawdopodobnie wiesz, jak działa szyfrowanie. Jeśli tego nie zrobisz, oto krótkie przypomnienie: szyfrowanie pobiera zwykły tekst i konwertuje go na zaszyfrowaną formę, co sprawia, że wygląda, jakby składał się z losowych znaków. Można śmiało powiedzieć, że AES jest rodzajem szyfrowania symetrycznego, ponieważ używa tego samego klucza do szyfrowania i odszyfrowywania danych.
Ten standard szyfrowania wykorzystuje algorytm sieciowy z podstawieniem permutacji (algorytm SPN) w celu zastosowania kilku rund szyfrowania w celu ochrony danych. Fakt, że używa tak wielu pocisków, sprawia, że AES jest praktycznie nieprzenikniony.
AES to nie tylko pierwszy, ale także jedyny publicznie dostępny szyfr, który został zatwierdzony przez NSA (National Security Agency) do ochrony ściśle tajnych danych. Początkowo ten standard szyfrowania nazywał się Rijndael na podstawie nazwisk jego dwóch programistów, Vincenta Rijmena i Joana Daemena (obaj z Belgii).
Wiele długości klucza AES
AES zawiera trzy szyfry blokowe, a każdy z tych szyfrów blokowych ma inną liczbę możliwych kombinacji klawiszy, jak poniżej:
- AES-128: 128-bitowa długość klucza=3,4 * 1038
- AES-192: 192-bitowa długość klucza=6,2 * 1057
- AES-256: 256-bitowa długość klucza=1,1 * 1077
Chociaż istnieją trzy szyfry blokowe, każdy z nich szyfruje i odszyfrowuje dane w 128 bitach przy użyciu różnych długości kluczy (tj. 128, 192 i 256, jak określono powyżej). Można więc śmiało powiedzieć, że chociaż długość kluczy może być różna, rozmiar bloku jest zawsze taki sam (128 bitów lub 16 bajtów, to to samo).
Fakt, że AES używa różnych długości kluczy, z pewnością wzbudził wśród użytkowników pewne pytania, na przykład dlaczego potrzebujemy kilku długości kluczy? Inni mogą nawet kwestionować potrzebę posiadania kilku długości kluczy, tym bardziej biorąc pod uwagę, że 256-bitowy klucz jest prawdopodobnie najbezpieczniejszy.
Pomimo faktu, że 256-bitowy klucz AES jest po prostu najsilniejszy w grupie, często określany jako „klasa wojskowa”, nie zawsze jest domyślnie wdrażany, a powód dzieje się tak z powodu dostępnych lub jeszcze lepiej niedostępnych zasobów.
AES-128 kontra AES-256
Im większy rozmiar klucza, tym więcej zasobów zużyje, więc można śmiało powiedzieć, że mniej wydajny system będzie częściej używał 128-bitowych kluczy AES zamiast swoich 256-bitowy odpowiednik. Na przykład, jeśli używasz w telefonie 256-bitowego szyfrowania AES , bateria może rozładowywać się szybciej niż 128-bitowa wersja tego samego standardu szyfrowania.
256-bitowe klucze AES są znacznie trudniejsze do wymuszenia brutalnego niż klucze 128-bitowe. Jednak nawet przy ogromnej mocy obliczeniowej 128-bitowe klucze AES są nadal prawie niemożliwe do złamania, więc użycie tej wersji zamiast kluczy 256-bitowych może być lepszym wyborem, jeśli martwisz się o moc lub opóźnienie, zwłaszcza na urządzenia przenośne (na przykład smartfony).
Z drugiej strony postęp technologiczny sprawił, że różnice zarówno w mocy obliczeniowej, jak i żywotności baterii między używaniem AES-256 i AES-128 są znikome, dzięki czemu 256-bitowy AES jest najbardziej popularny wybór, ponieważ większość użytkowników woli spokój ducha.
Korzyści z używania AES
Fakt, że metody szyfrowania wymuszone przez AES są szybkie i łatwe do zrozumienia, sprawia, że AES jest popularnym wyborem w wielu różnych dziedzinach. AES jest nie tylko szybki i bezpieczny, ale także łatwy do wdrożenia, co dodatkowo zwiększa jego wrodzoną popularność.
Ponadto jest w stanie odszyfrować chronione dane tak szybko, jak jest w stanie je zaszyfrować, a także zużywa mniej pamięci i mocy obliczeniowej niż inne popularne standardy szyfrowania (takie jak DES), co daje mu przewagę.
Wreszcie, jeśli sytuacja tego wymaga, AES jest na tyle elastyczny, że pozwala łączyć go z kilkoma innymi protokołami bezpieczeństwa, takimi jak TKIP, WPA2, WEP, ale także innymi typami szyfrowania, takimi jak SSL.
Oto kilka kluczowych zalet wyboru AES w porównaniu z innymi standardami szyfrowania:
- Wsparcie wdrażane zarówno w sprzęcie, jak i oprogramowaniu
- Fakt, że obsługuje trzy długości klucza, zapewnia pewną elastyczność w zakresie bezpieczeństwa i szybkości (wydajności)
- Wszystkie trzy typy kluczy są wystarczająco długie, co sprawia, że AES jest niemożliwym celem ataku brutalnego
- Do tej pory żaden atak kryptograficzny nie działał przeciwko AES
- Można go znaleźć praktycznie wszędzie, biorąc pod uwagę fakt, że rząd USA zdefiniował go jako standard
- Łatwe do wdrożenia niezależnie od miejsca docelowego (implementacja sprzętowa jest podobno łatwiejsza niż oprogramowanie)
- Nie zajmuje tyle pamięci, co inne typy szyfrowania (na przykład DES)
- Łatwe do łączenia z innymi protokołami bezpieczeństwa i typami szyfrowania
Częste zastosowania AES
Pomimo faktu, że już wspomnieliśmy, że AES jest powszechnie używany wszędzie tam, gdzie jest obsługiwany, istnieje kilka przykładów, w których szanse na jego napotkanie są wyższe. Mianowicie:
- VPN
- Sposób działania sieci VPN polega na przekierowywaniu ruchu, ale nie przed szyfrowaniem go, aby inni nie mogli go zobaczyć w przypadku monitorowania połączenia. Co więcej, ruch musi zostać odszyfrowany w punkcie wyjścia, co wiąże się z potrzebą standardu szyfrowania. AES-256 jest domyślnie używany przez kilku dostawców VPN, w tym NordVPN, Surfshark i ExpressVPN .
- Menedżerowie haseł
- Menedżerowie haseł działają, umożliwiając umieszczenie w nich wszystkich haseł i ochronę ich jednym hasłem za pomocą szyfrowania. Różne dostępne na rynku rozwiązania do zarządzania hasłami wybrały AES jako operacyjny standard szyfrowania, biorąc pod uwagę, że jest łatwy do wdrożenia, szybki i bezpieczny.
- Sieci Wi-Fi
- Bez szyfrowania ruchu napastnicy mogą po prostu siedzieć poza siecią bezprzewodową, przechwytywać niezaszyfrowane pakiety za pomocą odpowiedniej karty Wi-Fi i monitorować całą Twoją lokalizację w Internecie bez żadnych obaw na całym świecie. Na szczęście szyfrowanie AES, zwykle wraz z dodatkowymi standardami bezpieczeństwa (WPA2 jest obecnie najpopularniejszym) może temu zapobiec.
- Przeglądarki internetowe
- Prawdopodobnie już wiesz, że od jakiegoś czasu przeglądarki internetowe szyfrują połączenia swoich użytkowników, aby chronić ich przed różnymi cyberzagrożeniami, takimi jak ataki MITM (Man-In-The-Middle), spoofing lub monitorowanie ruchu.
- Szyfrowanie dysku
- Chociaż ta funkcja jest głównie używana na urządzeniach przenośnych, takich jak smartfony i tablety, szyfrowanie dysku nie jest niczym niezwykłym, jeśli chcesz zwiększyć swoją prywatność i bezpieczeństwo. AES jest obecnie jedną z najpopularniejszych metod używanych do szyfrowania i odszyfrowywania zawartości dysku.
- Oprogramowanie do kompresji plików
- Niezależnie od tego, czy mówimy o WinRar, WinZip, czy 7z, wszystkie te narzędzia do archiwizacji i kompresji/dekompresji plików dostępne na rynku używają AES jako podstawowego standardu szyfrowania, aby zapobiec przypadkowym wyciekom danych podczas obsługi plików.
- Aplikacje komunikacyjne
- WhatsApp, Signal, Telegram, Snapchat, Messenger, ale także inne, o których nie wspomnieliśmy, używają szyfrowania AES, aby mieć pewność, że skorzystasz z pełnej prywatności, niezależnie od tego, czy wysyłasz zdjęcia, filmy, dokumenty, czy zwykłe wiadomości tekstowe za pośrednictwem tych aplikacji.
- Biblioteki języków programowania
- Jeśli jesteś programistą, prawdopodobnie powinieneś wiedzieć, że biblioteki niektórych języków programowania, w tym między innymi C++, Java i Python, wykorzystują szyfrowanie AES, aby pomóc Ci chronić Twoje dane i projekty przed nieautoryzowanym dostępem.
- Składniki systemu operacyjnego
- Aby dodać dodatkową warstwę bezpieczeństwa, niektóre systemy operacyjne dodały szyfrowanie AES do niektórych swoich składników.
Jak działa AES?
Ogólnie rzecz biorąc, musisz wiedzieć lub dowiedzieć się, jak działa konkretna technologia, aby w pełni wykorzystać jej możliwości. W takim przypadku powinieneś wiedzieć co nieco o tym, jak działa AES, zanim przypadkowo zaimplementujesz go lub użyjesz w swoich projektach lub w swoim środowisku.
1. Dane zostają podzielone na bloki
Jak zapewne pamiętasz z naszych wzmianek powyżej, AES jest szyfrem blokowym, co oznacza, że szyfruje dane, które otrzymuje w blokach bitów, w przeciwieństwie do szyfrowania bit po bicie.
Dlatego pierwszym krokiem szyfrowania AES jest rozdzielenie danych na bloki. Każdy z tych bloków zawiera kolumnę 4 na 4 złożoną z 128 bitów lub 16 bajtów. Biorąc pod uwagę, że jeden bajt składa się z 8 bitów, mamy 16 x 8=128 bitów, co jest rozmiarem bloku.
Powiedzmy na przykład, że chcesz zaszyfrować „addictivetips.com” za pomocą AES, pierwszą rzeczą, jaką robi proces szyfrowania, jest rozdzielanie danych na bloki. Jednak blok może zawierać tylko 16 znaków, więc pierwszy blok nie będzie zawierał „m” na końcu tekstu. „m” zostanie wysłane do następnego bloku.
Dlatego po zastosowaniu AES do „addictivetips.com”, pierwsza część tego tekstu będzie wyglądać jak poniższy blok:
2. Rozszerzenie klucza
Procedura rozszerzenia klucza jest odrobinę bardziej skomplikowana niż krok, który opisaliśmy powyżej. Polega na pobraniu początkowego klucza i wykorzystaniu harmonogramu kluczy Rijndaela do wygenerowania serii dodatkowych kluczy, które będą używane w każdej rundzie procesu szyfrowania.
Na przykład, jeśli użyjesz klucza „AESencryption12” w naszym zwykłym tekście powyżej (addictivetips.com), otrzymasz ciąg pozornie losowych numery.
Jednak harmonogram kluczy Rijndael wykorzystuje bardzo specyficzne procesy do szyfrowania każdego symbolu w początkowej frazie.
Wynik będzie wyglądał jak poniższy blok:
7e | 04 | 0b | 20 |
52 | 6c | 1c | 56 |
a7 | bf | 8e | 84 |
30 | 03 | 3d | 20 |
Ponownie, mimo że wygląda to na bełkot i liczby losowe, to jest dokładny punkt całej procedury szyfrowania: aby ukryć dane za szyfrem, czyniąc je niedostępnymi dla użytkowników, którzy nie wiedzą, czym jest szyfr i aby go
strong>niemożliwe, aby go złamać.
Co więcej, to jeszcze się nie skończyło, ponieważ proces szyfrowania będzie musiał używać kluczy, które ostatnio wygenerowaliśmy dla każdej rundy szyfrowania. Ale o tym później.
3. Dodawanie okrągłego klucza
To właściwie pierwsza runda szyfrowania, ponieważ dodajemy klucz początkowy („Szyfrowanie AES12”) do naszego bloku wiadomości („addictivetips.com >’), jak w poniższym przykładzie, co na początku może nie mieć sensu.
I
A | e | y | o |
---|---|---|---|
E | n | p | n |
S | c | t | 1 |
r | i | 2 |
Chociaż może się wydawać, że nie da się dodać dwóch bloków tekstu razem, pamiętaj, że jest to jedynie graficzna reprezentacja procesu szyfrowania, dzięki czemu możesz go lepiej zrozumieć. W rzeczywistości AES używa kodu binarnego, dzięki czemu nasza próba dodania dwóch bloków tekstu jest nie tylko całkowicie prawdopodobna, ale także całkowicie możliwa.
Ta operacja (dodawania dwóch bloków tekstu razem) jest wykonywana przy użyciu szyfru XOR, a wynik można zobaczyć poniżej:
4. Podstawianie bajtów
Aby jeszcze bardziej zwiększyć ochronę Twoich danych (w naszym przypadku tekstu jawnego, który próbujemy zaszyfrować), na tym etapie procesu każdy bajt bloku zostanie zastąpiony z góry określoną wartością zgodnie z tabelą o nazwie Rijndael S-box. Możesz zobaczyć tabelę tuż poniżej:
Chociaż ta tabela również wygląda jak seria losowych znaków, możesz jej użyć do sprawdzenia, jaką wartość będą miały podstawione bajty. Na przykład c9 zmieni się na dd, 26 zamieni się na f7, ff zamieni się zostań 16 i wkrótce. Nie jest to takie trudne w użyciu, gdy już to opanujesz.
Teraz, gdy zobaczyliśmy tabelę, zobaczmy, jak nowy blok, który wygenerowaliśmy powyżej z pierwszej rundy szyfrowania, zmieni się po podstawieniu bajtu opartego na Rijndael S-box:
Pamiętaj, że faktycznie zastąpiliśmy bloki, używając tabeli Rijndael S-box ręcznie, więc możesz dwukrotnie sprawdzić i spróbować powtórzyć wyniki, jeśli jesteś zainteresowany. W ten sposób łatwiej będzie Ci naśladować, zwłaszcza jeśli pasjonujesz się nauką kryptografii.
5. Przesuwanie rzędów
Na tym etapie procesu szyfrowania AES wiersze są przesuwane w celu umieszczenia danych za dodatkową ścianą ochronną. Podczas gdy pierwszy wiersz pozostaje nietknięty, kolejne trzy są przesuwane na różne sposoby, w następujący sposób:
- Drugi wiersz zostanie przesunięty w lewo o jeden bajt (komórka)
- Trzeci wiersz zostaje przesunięty w lewo o dwa bajty (komórki)
- Czwarty i ostatni wiersz zostaje przesunięty w lewo o trzy bajty (komórki)
23 | 03 | 4a | 35 |
---|---|---|---|
36 | c2 | 5a | 0d |
9a | 0d | f3 | 9c |
7b | 13 | 58 | 75 |
6. Mieszanie kolumn
Chociaż chcielibyśmy zachować jak największą dokładność, ten krok obejmuje zastosowanie do bloku szeregu złożonych formuł matematycznych, co daje nam zupełnie inny blok na końcu procedury.
Aby być bardziej szczegółowym, na tym etapie każda kolumna jest mnożona przez wstępnie zdefiniowaną macierz. Rezultatem będzie nowy blok kodu , który zostanie dalej użyty do zwiększenia siły szyfru i zmniejszenia prawdopodobieństwa jego złamania.
Pod koniec procesu mieszania kolumn otrzymamy blok kodu, który wygląda mniej więcej tak:
43 | 4d | 33 | 85 |
---|---|---|---|
c8 | 37 | 6d | 8d |
9a | 33 | 85 | 9c |
42 | 68 | 41 | 99 |
7. Dodaj dodatkowy okrągły klucz
Pamiętasz, że jakiś czas temu powiedzieliśmy Ci, że na pewno będziemy potrzebować klucza, który stworzyliśmy na etapie rozbudowy klucza? Cóż, kiedyś użyliśmy go do zaszyfrowania wszystkiego, teraz musimy zrobić jeszcze jedno zaszyfrowanie danych, które właśnie uzyskaliśmy.
Więc bierzemy blok danych, który otrzymaliśmy po uruchomieniu kroku mieszania kolumn i dodajemy do niego kolejny okrągły klucz, tak jak zrobiliśmy to w kroku 3 w naszym przewodniku, w ten sposób:
I
As you’d expect, this step will generate yet another block of data for us to process, but we’ll stop here. We have a feeling that you got the point. However, the encryption process is still far from being over, as the block of data we just generated will undergo several more modifications.
8. More steps
These modifications that we’ve mentioned above include everything we’ve done so far: shifting rows, byte substitution, adding round keys, and mixing columns, so it’s easy to understand why we had to stop here as far as exemplifying goes.
These rounds are identical and the number of times these rounds are repeated depend on the AES key length, as follows:
- AES-128 uses 9 rounds
- AES-192 uses 11 rounds
- AES-256 uses 13 rounds
So if you’re planning to use AES-256, the steps we’ve previously mentioned and explained will be repeated 13 times in a row, which you can agree is a tremendous amount. It’s also easy to understand why AES is so difficult to crack and is a go-to encryption standard in a lot of environments.
However, we’re not done yet. After the 9, 11, or 13 rounds of encryption we’ve briefly talked about above, there’s an additional round, during which the algorithm only substitutes bytes, shifts rows, and adds a round key (it skips mixing columns).
It may sound ridiculous that after 9, 11, or 13 rounds of running all the steps above the mixing columns step gets dropped. The reason is that at this point it’s somewhat redundant, and this step is skipped only to preserve some processing power.
So actually, after running all the steps of the encryption process, the input data (our plaintext we’ve used in the beginning in this case) will have gone through 10, 12, or 14 rounds, depending on the key length you chose and will look like a set of random characters. Not that it didn’t look like that for a long time now, since we started the encryption process and all.
So, to recap, while undergoing encryption, the data you feed to the AES encryption tools undergoes the following processes, in this order:
- Block division
- Key expansion
- Adding a round key
- Byte substitution
- Row shifting
- Column mixing
- Adding a round key
- Steps 4-7 are repeated for 9, 11, or 13 times depending on the key length
- Byte substitution
- Row shifting
- Adding a round key
At the end of this complex and seemingly endless process, addictivetips.com, the text we’ve attempted to encrypt, will look like the code below if encrypted using a 128-bit key and ‘AESencryption12‘ as our secret key:
RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=
Although it may look like complete gibberish, once again, that’s the point of using encryption: making data as simple as plain text look like something went horribly wrong during its transmission and now it looks like gibberish.
How to decrypt AES
We understand that AES and the whole encryption process can be a bit of a handful, as the multitude of steps, as well as the fact that they’re repeated for an ungodly amount of time, can be a bit intimidating.
However, if you take a step back and look at the big picture, the whole thing actually starts to make sense, even for someone who didn’t spend their whole life studying cryptography and designing the perfect way to encrypt or decrypt information.
That’s precisely why we’re pretty confident you’ll have no trouble understanding AES decryption if the encryption process along with all of its steps made sense to you. To put it shortly, AES decryption follows the exact same steps as the encryption process, only they’re reversed.
So, in our case, if we want to go back to ‘addictivetips.com’ from RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=
, all we have to do is trace our steps back up until we reach the initial one, like so:
- Inverse adding round key
- Inverse row shifting
- Inverse byte substitution
- Inverse adding round key
- Inverse column mixing
- Inverse row shifting
- Inverse byte substitution
- Repeat steps 4-7 for 9, 11, or 13 times depending on key length
- Inverse add round key
After performing all the steps above, we should end up with our original text fragment, ‘addictivetips.com’.
Is AES encryption secure?
One of the most pressing questions when it comes to all encryption standards (not only AES) is if it can provide you with an optimum level of security. In this case, the question would be: is AES encryption secure?
Although you could see for yourself that this encryption standard deploys a huge number of steps, each of which scrambles the original text and twists it beyond recognition, this didn’t seem to stop attackers from designing potential ways to circumvent these means of protection.
Note that in a real-life situation, an attacker (commonly known as a hacker or cracker) won’t go after the tallest, thickest wall in its attempt to invade the virtual fortress that is your PC, database, archive, or whatever you’re trying to protect.
Instead, they will circle the proverbial walls several times trying to find any cracks worth exploiting, and then start drilling there. In our situation, attackers may want to spot any vulnerabilities in the AES encryption process and start working their way up from there.
Thankfully, cryptography researchers constantly try to find vulnerabilities with the AES encryption process, so as to be able to prevent a potential attack from someone who discovers the flaws first and (obviously) doesn’t share them with the whole world.
Up until now, the researchers have been able to identify a series of attacks that could compromise AES, but these are either purely theoretical, side-channel attacks, or cracking attempts with a known security key, as you’ll soon learn from the following sections.
1. Known-key distinguishing attack
An attack that used a known key was designed by cryptography researchers and observed in action, and it showed some promising results. The attack was introduced in 2007 by Vincent Rijmen and Lars Knudsen.
While that’s not exactly great for the AES encryption method, this attack had two flaws that make it unlikely to be used in a real-life scenario: the fact that it used a known key, and that it was tested against a seven-round version of AES-128.
Considering that most of the time the key is not known to the attacker (unless they happen to just stumble upon it with precise instructions regarding its purpose) and that AES-128 has 10 rounds of encryption, everyday AES-128 can rest assured that the attack is not likely to occur.
The fact that most services that offer AES-128 also feature native support for AES-256 means that boosting your encryption couldn’t be easier in case you’re worried about being targeted by a known-key distinguishing attack.
2. Related key attack
Related key attacks are more of a category, as they represent all forms of cryptanalysis where attackers can analyze the way a cipher works under multiple keys. In this type of attack, the attacker doesn’t know the values of the keys used in the cipher.
However, although unknown, the keys also have some sort of mathematical relation one to another, which the attacker does know. One of the simplest examples would be that the attacker knows that the first 16 bits of the keys are always the same, but has no idea what the bits actually are.
Although related key attacks could be successful if applied correctly, they are of no real concern in the real world. In order for such an attack to work, an attacker would need to successfully persuade a cryptographer to encrypt data using various secret keys that are connected to each other mathematically, then share the secret with the attacker.
Thus, this type of attack servers merely as a reminder that human error could contribute to putting some kinks in the AES armor by being subject to poor implementation of this encryption standard.
3. Side-channel attack
Although AES is, at the time being, virtually uncrackable, there have been many attempts to design theoretical attacks that could demonstrate some of this encryption standard’s vulnerabilities.
Even if it’s been 20 years since AES has been introduced, and technology has made some huge advancements over these past 20 years, the amount of computing power needed to brute-force AES is still not enough, and we’d still need billions of years to be able to crack it.
However, a different breed of attempts to break the security of AES encryption is the side-channel attack. This type of attack combines multiple types of data leaks to extract enough data from an algorithm that it can be cracked.
For instance, attackers could focus on power consumption, electromagnetic radiation, the time it takes various computations to be performed, and even the sounds produced during computation to extract more information about the algorithm.
There are several classes of side-channel, including:
- Timing attacks
- Timing attacks revolve around measuring the time it takes for certain computations to be performed (for instance comparing a known password against an unknown one).
- Cache attacks
- These attacks are only viable if the attacker can access some of the victim’s caches in various environments, whether it’s virtualization environments (virtual machines), shared physical systems, or cloud services we’re talking about.
- Electromagnetic attacks
- Electromagnetic attacks are based on electromagnetic radiation leaks, which can be used to extract various bits of information. Measuring electromagnetic radiation leaks can sometimes lead to discovering cryptographic keys.
- Power-monitoring attacks
- Attackers monitor the power consumption of the hardware during certain computation steps in order to extract information about the algorithm.
- Acoustic cryptanalisis
- Similar to the power-monitoring attacks, but attackers listen to and analyze the sounds that hardware makes when performing certain computation steps and extract information from these findings.
- Data remanence
- This type of attack revolves around sensitive data that can still be accessed and read even after being deleted.
- Optical analysis
- In this complex type of attack, high-resolution cameras are used to capture secrets or sensitive data (such as analyzing hard disk activity indicators or transistors switching states).
- Differential fault analysis
- This type of attack is based on discovering secrets by inputting faults in computation in order to trigger an error.
Although you can agree that these side-channels are nothing short of creative and their authors can use them to turn even the most seemingly insignificant detail into a veritable piece of information, they only work if the system being audited is leaking information.
For that reason, avoiding side-channel attacks can be easily achieved either by making sure that the systems that could be attacked don’t leak any data or by ensuring that there’s no association between the algorithmic processes and leaked data, regardless of its nature.
4. Key recovery attacks
Last, but not least, the key recovery attacks are a tough contestant when it comes to efficient ways to crack AES encryption. In 2011, such an attack was attempted to prove its efficacy against the AES encryption mechanism.
This type of attack is not exactly likely to occur, seeing as it involves the attacker getting its hands on at least a pair of encrypted and decrypted messages from the soon-to-be-compromised system.
The attack showed promising results, as it was approximately four times as fast as brute-forcing. However, considering that a brute-force attack would take literally billions of years to complete, key recovery attacks are still far from being ideal, which makes them unlikely to be used in an attack.
Furthermore, even if it took a shorter amount of time to complete, changing the security key often could render the pair of encrypted and decrypted messages useless.
Is AES secure?
Considering everything you’ve learned by going through this guide, we think that you can be the judge of whether or not AES is a safe encryption standard.
AES has been around since 2001, and since its introduction, there were numerous attempts to break it, which makes it safe to say that it stood the test of time, and it’s still a solid choice when it comes to encryption algorithms.
The sheer amount of steps the algorithmic process goes through in order to make the data unreadable is tremendous, and it would take literally billions of years to crack AES, even with today’s computation power and technology advancements.
So, to answer your question considering all of the above: yes, AES is secure. Even AES-128 proved to be downright impossible to crack, not to mention its more powerful counterparts, AES-192, and AES-256.
AES Encryption – CONCLUSION
All things considered, after reading our extensive guide we hope you learned more about AES, including how it works, what processes it goes through during the encryption process, where it can be used, and how it could be (at a theoretical level) compromised.
The fact that 20 years after its introduction it’s still fast, secure, and can be implemented on a huge variety of hardware and software environments makes it truly deserve its title of being the “gold standard” of encryption techniques.