Si vous vous êtes déjà demandé comment les choses sont sécurisées sur Internet, d’autant plus qu’il existe plusieurs agents malveillants qui tentent constamment de forcer les coffres-forts de données, la cryptographie est l’une des réponses qui correspond le mieux à la question.

Comme vous le savez peut-être, la cryptographie n’est qu’une des méthodes utilisées pour protéger les informations et les communications, mais cela ne veut en aucun cas dire que c’est simple. En fait, c’est une technologie qui subit un développement constant pour s’assurer que les normes sur lesquelles elle s’appuie sont toujours au top.

Un exemple d’une telle norme est AES, un acronyme que vous avez probablement déjà rencontré, surtout si vous utilisez constamment des applications de communication telles que WhatsApp, Signal ou Telegram, ou un logiciel VPN. Dans cet article, nous allons nous concentrer sur AES et vous aider à mieux le comprendre.

AES Encryption

Qu’est-ce que l’AES ?

AES qui signifie Advanced Encryption Standard est une forme de cryptage populaire qui est utilisée depuis un certain temps maintenant pour garantir que les données sont conservées en toute sécurité, à distance des regards indiscrets.

Ce qui distingue le cryptage AES, c’est le fait qu’il s’agit d’une méthode de cryptage rapide et sécurisée et que sa flexibilité permet de l’utiliser sur une grande variété de produits, allant des applications quotidiennes comme WhatsApp ou Signal aux systèmes de sécurité militaire et même au matériel.

Comment fonctionne le cryptage

Vous savez probablement comment fonctionne le cryptage. Si vous ne le faites pas, voici un petit rappel : le cryptage prend du texte brut et le convertit en une forme chiffrée, ce qui donne l’impression qu’il est composé de caractères aléatoires. Il est sûr de dire qu’AES est un type de cryptage symétrique, car il utilise la même clé pour crypter et décrypter les données.

Cette norme de cryptage utilise l’algorithme de réseau de permutation de substitution (algorithme SPN) afin d’appliquer plusieurs tours de cryptage pour protéger les données. Le fait qu’il utilise autant de tours rend AES virtuellement impénétrable.

AES n’est pas seulement le premier mais aussi le seul chiffrement accessible au public qui a été approuvé par la NSA (National Security Agency) pour protéger les données top secrètes. Initialement, cette norme de cryptage s’appelait Rijndael d’après les noms de ses deux développeurs, Vincent Rijmen et Joan Daemen (tous deux de Belgique).

Longueurs de clés multiples AES

L’AES comprend trois chiffrements par bloc, et chacun de ces chiffrements par bloc a un nombre différent de combinaisons de touches possibles, comme suit :

  • AES-128 : longueur de clé de 128 bits=3,4 x 1038
  • AES-192 : longueur de clé 192 bits=6,2 x 1057
  • AES-256 : longueur de clé de 256 bits=1,1 x 1077

Bien qu’il existe trois chiffrements par blocs, chacun d’eux chiffre et déchiffre les données en bits 128 blocs en utilisant différentes longueurs de clé (c’est-à-dire 128, 192 et 256, comme spécifié ci-dessus). Il est donc prudent de dire que même si la longueur des clés peut être différente, la taille du bloc est toujours la même (128 bits ou 16 octets, c’est la même chose).

Le fait qu’AES utilise différentes longueurs de clé a certainement soulevé des questions parmi les utilisateurs, telles que pourquoi avons-nous besoin de plusieurs longueurs de clé, en premier lieu ? D’autres pourraient même remettre en question la nécessité d’avoir plusieurs longueurs de clé, d’autant plus que la clé de 256 bits est probablement la plus sécurisée.

Malgré le fait que la clé AES 256 bits est tout simplement la plus puissante du lot, souvent appelée « de qualité militaire », elle n’est pas toujours déployée par défaut, et la raison cela se produit en raison des ressources disponibles, ou mieux encore, non disponibles.

AES-128 contre AES-256

Plus la taille d’une clé est grande, plus elle consommera de ressources, il est donc prudent de dire qu’un système moins performant est plus susceptible d’utiliser des clés AES 128 bits au lieu de ses contrepartie 256 bits. Par exemple, si vous utilisez le cryptage AES 256 bits sur votre téléphone, il peut décharger votre batterie plus rapidement que la version 128 bits de la même norme de cryptage.

Les clés AES 256 bits sont beaucoup plus difficiles à forcer que les clés 128 bits. Cependant, même avec d’énormes quantités de puissance de calcul, les clés AES 128 bits sont encore presque impossibles à déchiffrer, donc utiliser cette version au lieu des clés 256 bits peut être un meilleur choix si vous êtes préoccupé par la puissance ou la latence, en particulier sur appareils portables (smartphones, par exemple).

Sur le bon côté, les progrès technologiques ont fait en sorte que les différences de puissance de calcul et de durée de vie de la batterie entre l’utilisation d’AES-256 et d’AES-128 sont négligeables, faisant de l’AES 256 bits le plus populaire choix, car la plupart des utilisateurs préfèrent avoir l’esprit tranquille.

Les avantages de l’utilisation d’AES

AES 256

Le fait que les méthodes de cryptage appliquées par AES soient rapides et faciles à comprendre fait d’AES un choix populaire dans une grande variété de domaines. AES est non seulement rapide et sécurisé, mais aussi facile à mettre en œuvre, ce qui ajoute encore à sa popularité innée.

En outre, il est capable de déchiffrer les données protégées aussi rapidement qu’il peut les chiffrer, et utilise moins de mémoire et de puissance de calcul que d’autres normes de chiffrement populaires (telles que DES), ce qui lui donne un avantage.

Dernier, mais non le moindre, si la situation l’exige, AES est suffisamment flexible pour vous permettre de le combiner avec plusieurs autres protocoles de sécurité tels que TKIP, WPA2, WEP, mais aussi d’autres types de cryptage, tels que SSL.

Voici quelques avantages clés du choix d’AES par rapport à d’autres normes de chiffrement :

  • Supports mis en œuvre à la fois dans le matériel et les logiciels
  • Le fait qu’il prenne en charge trois longueurs de clé vous offre une certaine flexibilité en matière de sécurité et de vitesse (performances)
  • Les trois types de clés sont suffisamment longs, ce qui fait d’AES une cible de force brute impossible
  • Jusqu’à présent, aucune attaque cryptographique n’a prouvé son efficacité contre AES
  • Vous pouvez le trouver pratiquement partout, étant donné que le gouvernement américain l’a défini comme une norme
  • Facile à mettre en œuvre quelle que soit la destination (la mise en œuvre matérielle serait plus simple que logicielle)
  • Ne monopolise pas autant de mémoire que les autres types de cryptage (par exemple DES)
  • Facile à combiner avec d’autres protocoles de sécurité et types de chiffrement

Utilisations courantes d’AES

Malgré le fait que nous ayons déjà mentionné qu’AES est généralement utilisé partout où il est pris en charge, il existe quelques exemples où les chances de le rencontrer sont plus élevées. A savoir :

  • VPN
    • Le mode de fonctionnement des VPN consiste à réacheminer votre trafic, mais pas avant de le chiffrer afin que les autres ne puissent pas le voir s’ils surveillent votre connexion. Plus encore, le trafic doit être déchiffré à son point de sortie, ce qui implique la nécessité d’une norme de chiffrement. AES-256 est utilisé par défaut par plusieurs fournisseurs de VPN, dont NordVPN, Surfshark et ExpressVPN.
  • Gestionnaires de mots de passe
    • Les gestionnaires de mots de passe fonctionnent en vous permettant d’y insérer tous vos mots de passe et de les protéger avec un seul mot de passe grâce au cryptage. Diverses solutions logicielles de gestion des mots de passe sur le marché ont choisi AES comme standard de chiffrement opérationnel, considérant qu’il est facile à mettre en œuvre, rapide et sécurisé.
  • Réseaux Wi-Fi
    • Sans cryptage du trafic, les attaquants pourraient simplement rester en dehors de votre réseau sans fil, capturer des paquets non cryptés à l’aide d’un adaptateur Wi-Fi approprié et surveiller l’intégralité de vos déplacements en ligne sans se soucier du monde. Heureusement, le cryptage AES, généralement associé à des normes de sécurité supplémentaires (WPA2 est le plus populaire à l’heure actuelle) peut empêcher que cela ne se produise.
  • Navigateurs Web
    • Vous savez probablement déjà que depuis un certain temps, les navigateurs Web cryptent les connexions de leurs utilisateurs, pour les protéger contre diverses cybermenaces telles que les attaques MITM (Man-In-The-Middle), l’usurpation d’identité ou la surveillance du trafic.
  • Cryptage du disque
    • Bien que cette fonctionnalité soit principalement utilisée sur les appareils portables tels que les smartphones et les tablettes, il n’est pas rare de chiffrer votre disque si vous souhaitez renforcer votre confidentialité et votre sécurité. AES est actuellement l’une des méthodes les plus utilisées pour chiffrer et déchiffrer le contenu du disque.
  • Logiciel de compression de fichiers
    • Qu’il s’agisse de WinRar, WinZip ou 7z, tous ces utilitaires d’archivage et de compression/décompression de fichiers sur le marché utilisent AES comme norme de cryptage de référence pour éviter les fuites accidentelles de données lors du traitement de vos fichiers.
  • Applications de communication
    • WhatsApp, Signal, Telegram, Snapchat, Messenger, mais aussi d’autres que nous n’avons pas mentionnés, utilisent le cryptage AES pour vous assurer que vous bénéficierez d’une confidentialité totale, que vous envoyiez des photos, des vidéos, des documents ou en clair SMS via ces applications.
  • Bibliothèques de langages de programmation
    • Si vous êtes programmeur, vous devez probablement savoir que les bibliothèques de certains langages de programmation, y compris, mais sans s’y limiter, C++, Java et Python utilisent le cryptage AES pour vous aider à protéger vos données et vos projets contre les accès non autorisés.
  • Composants du système d’exploitation
    • Afin d’ajouter une couche de sécurité supplémentaire, certains systèmes d’exploitation ont ajouté le cryptage AES à certains de leurs composants.

Comment fonctionne AES ?

D’une manière générale, vous devez savoir ou apprendre comment fonctionne une technologie spécifique afin de tirer pleinement parti de ses capacités. Dans ce cas, vous devez savoir une chose ou deux sur le fonctionnement d’AES avant de l’implémenter ou de l’utiliser au hasard sur vos projets ou dans votre environnement.

1. Les données sont divisées en blocs

Comme vous vous en souvenez probablement d’après nos mentions ci-dessus, AES est un chiffrement par bloc, ce qui signifie qu’il crypte les données qu’il reçoit en blocs de bits, au lieu de les crypter bit par bit.

Par conséquent, la première étape du cryptage AES consiste à séparer les données en blocs. Chacun de ces blocs contient une colonne 4 par 4 de 128 bits ou 16 octets. Considérant qu’un octet est constitué de 8 bits, nous avons 16 x 8 =128 bits, ce qui correspond à la taille du bloc.

Disons, par exemple, que vous voudriez crypter ‘addictivetips.com’ en utilisant AES, la première chose que le processus de cryptage fait est de séparer les données en blocs. Cependant, un bloc ne peut contenir que 16 caractères, donc le premier bloc n’inclura pas le « m » à la fin du texte. Le « m » sera envoyé au bloc suivant.

Par conséquent, après avoir appliqué AES à « addictivetips.com », la première partie de ce texte ressemblera au bloc ci-dessous :

un c e s
d t t .
d je je c
je v p o

2. Extension de clé

La procédure d’extension de clé est un peu plus compliquée que l’étape décrite ci-dessus. Cela implique de prendre une clé initiale et d’utiliser le calendrier de clés de Rijndael pour générer une série de clés supplémentaires qui seront utilisées pour chaque tour du processus de cryptage.

Donc, par exemple, si vous utilisez la clé”AESencryption12“sur notre texte brut ci-dessus (addictivetips.com), vous obtiendrez une chaîne de caractères apparemment aléatoires nombres.

Un e y o
E n p n
S c t 1
  r je 2

Cependant, le calendrier de clés Rijndael utilise des processus très spécifiques pour chiffrer chaque symbole de la phrase initiale.

Le résultat ressemblera au bloc ci-dessous :

7e 04 0b 20
52 6c 1c 56
a7 petit ami 8e 84
30 03 3d 20

Encore une fois, même si cela ressemble à du charabia et à des nombres aléatoires, c’est le but exact de toute cette procédure de chiffrement : cacher des données derrière un chiffre, le rendant inaccessible aux utilisateurs qui ne savent pas ce qu’est le chiffre et le faire impossible de le casser.

En outre, c’est loin d’être terminé, car le processus de chiffrement devra utiliser les clés que nous avons récemment générées pour chaque cycle de chiffrement. Mais plus à ce sujet plus tard.

3. Ajout d’une clé ronde

Il s’agit en fait du premier tour de cryptage, car nous allons ajouter la clé initiale (‘cryptage AES12‘) à notre bloc de message (‘addictivetips.com‘), comme dans l’exemple ci-dessous, qui peut ne pas avoir de sens au début.

un c e s
d t t .
d je je c
je v p o

ET

Un e y o
E n p n
S c t 1
  r je 2

Bien qu’il puisse sembler impossible d’ajouter deux blocs de texte ensemble, n’oubliez pas qu’il ne s’agit que d’une représentation graphique du processus de cryptage afin que vous puissiez mieux le comprendre. En réalité, AES utilise du code binaire, ce qui rend notre tentative d’ajouter deux blocs de texte non seulement tout à fait plausible mais aussi tout à fait possible.

Cette opération (d’additionner les deux blocs de texte) se fait à l’aide d’un chiffrement XOR, et le résultat est visible ci-dessous :

32 d5 5c d9
f3 24 a8 46
7e 1c 37 f3
82 5e 3f 03

4. Substitution d’octets

Pour améliorer encore la protection de vos données (dans notre cas, le texte en clair que nous essayons de chiffrer), cette étape du processus remplacera chaque octet du bloc par une valeur prédéterminée selon une table, appelée Rijndael S-box. Vous pouvez voir le tableau ci-dessous :

  00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
00 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76
10 ca 82 c9 7d fa 59 47 f0 annonce d4 a2 af 9c a4 72 c0
20 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15
30 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75
40 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84
50 53 d1 00 ed 20 fc b1 5b 6a cb être 39 4a 4c 58 cf
60 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8
70 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2
80 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73
90 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db
a0 e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79
b0 e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ch 65 7a ae 08
c0 ba 78 25 2e 1c a6 b4 c6 e8 jj 74 1f 4b bd 8b 8a
d0 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e
e0 e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df
f0 8c a1 89 0d petit ami e6 42 68 41 99 2j 0f b0 54 bb 16

Bien que ce tableau ressemble également à une série de caractères aléatoires, vous pouvez l’utiliser pour vérifier quelle valeur auront les octets substitués. Par exemple, c9 deviendra dd, 26 deviendra f7, ff deviendra devenir 16, et bientôt. Ce n’est pas si difficile à utiliser une fois que vous avez pris le coup.

Maintenant que nous avons vu le tableau, voyons comment le nouveau bloc que nous avons généré ci-dessus à partir du premier tour de chiffrement changera après la substitution d’octets basée sur Rijndael S-box :

23 03 4a 35
0d 36 c2 5a
f3 9c 9a 0d
13 58 75 7b

Notez que nous avons en fait remplacé les blocs en utilisant la table Rijndael S-box manuellement, vous pouvez donc vérifier et essayer de reproduire les résultats si vous êtes intéressé. De cette façon, il est plus facile pour vous de suivre, surtout si vous souhaitez en savoir plus sur la cryptographie.

5. Changement de ligne

Dans cette étape du processus de chiffrement AES, les lignes sont décalées pour placer vos données derrière un mur de protection supplémentaire. Alors que la première ligne reste intacte, les trois suivantes sont décalées de différentes manières, comme suit :

  • La deuxième ligne est décalée vers la gauche de un octet (cellule)
  • La troisième ligne est décalée vers la gauche de deux octets (cellules)
  • La quatrième et dernière ligne est décalée vers la gauche de trois octets (cellules)

23 03 4a 35
36 c2 5a 0d
9a 0d f3 9c
7b 13 58 75

6. Mélange de colonnes

Bien que nous aimerions rester aussi précis que possible, cette étape consiste à appliquer une série de formules mathématiques complexes au bloc, ce qui nous donne un bloc totalement différent à la fin de la procédure.

Pour être un peu plus précis, chaque colonne est multipliée par une matrice prédéfinie lors de cette étape. Le résultat sera un nouveau bloc de code, qui sera encore utilisé pour augmenter la force du chiffrement et diminuer les chances qu’il soit ouvert grand.

À la fin du processus de mélange de colonnes, nous obtiendrons un bloc de code qui ressemble à ceci :

43 4d 33 85
c8 37 6d 8d
9a 33 85 9c
42 68 41 99

7. Ajouter une clé ronde supplémentaire

Vous vous souvenez qu’il y a quelque temps, nous vous avons dit que nous aurons certainement besoin de la clé que nous avons créée pendant l’étape d’extension de la clé ? Eh bien, nous l’avons utilisé une fois pour tout brouiller une fois, maintenant nous devons faire un autre brouillage pour les données que nous venons d’obtenir.

Nous prenons donc le bloc de données que nous avons obtenu après avoir exécuté l’étape de mélange de colonnes et nous y ajoutons une autre clé ronde, comme nous l’avons fait à l’étape 3 de notre guide, comme ceci :

43 4d 33 85
c8 37 6d 8d
9a 33 85 9c
42 68 41 99

ET

32 d5 5c d9
f3 24 a8 46
7e 1c 37 f3
82 5e 3f 03

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:

  1. Block division
  2. Key expansion
  3. Adding a round key
  4. Byte substitution
  5. Row shifting
  6. Column mixing
  7. Adding a round key
  8. Steps 4-7 are repeated for 9, 11, or 13 times depending on the key length
  9. Byte substitution
  10. Row shifting
  11. 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:

  1. Inverse adding round key
  2. Inverse row shifting
  3. Inverse byte substitution
  4. Inverse adding round key
  5. Inverse column mixing
  6. Inverse row shifting
  7. Inverse byte substitution
  8. Repeat steps 4-7 for 9, 11, or 13 times depending on key length
  9. 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?

AES encryption examples

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.

Categories: IT Info