Le leader de la confiance numérique à l'ère de l'IA et de l'informatique quantique.   Découvrez comment Keyfactor cela possible.

Chiffrement symétrique

Les algorithmes de cryptage symétrique utilisent la même clé secrète pour le cryptage et le décryptage. Cela signifie que l'expéditeur et le destinataire d'un message crypté doivent partager une copie de la clé secrète via un canal sécurisé avant de commencer à envoyer des données cryptées. Il existe deux types d'algorithmes de chiffrement symétrique : le chiffrement par bloc et le chiffrement par flot.

Chiffres en bloc

Un chiffrementpar blocs crypte les données par blocs de taille fixe. Par exemple, la norme AES (Advanced Encryption Standard) utilise une longueur de bloc de 128 bits.

Si le texte en clair est plus court que la longueur du bloc, il est complété à la longueur souhaitée avant d'être crypté. À l'autre extrémité, le destinataire du message le décrypte, puis supprime le rembourrage pour rétablir le message original.

Si un texte en clair est plus long que la longueur du bloc, il est divisé en plusieurs morceaux différents pour le chiffrement. Le mode de fonctionnement du chiffrement par blocs définit la manière dont ces morceaux sont liés les uns aux autres.

Chaque mode de fonctionnement a ses avantages et ses inconvénients. Par exemple, le mode Electronic Code Book (ECB) est le mode de fonctionnement le plus simple. Avec le mode ECB, chaque bloc est chiffré de manière totalement indépendante.

L'inconvénient est que les blocs contenant le même texte en clair produisent le même texte chiffré. L'image ci-dessusreprésente le pingouin Linux. Bien que ces données soient chiffrées, les textes chiffrés correspondant à un pixel d'une certaine couleur (noir, blanc, etc.) sont identiques dans toute l'image, de sorte que le pingouin reste visible.

D'autres modes de fonctionnement éliminent ce problème en interdisant le chiffrement de chaque bloc. Certains offrent également des fonctions supplémentaires, telles que le mode compteur de Galois (GCM), qui génère un code d'authentification de message (MAC) permettant de vérifier que les données n'ont pas été modifiées en cours de route.

Exemple : La norme de cryptage avancée (AES)

Le chiffrement par bloc le plus connu est l'Advanced Encryption Standard (AES). Cet algorithme de cryptage a été sélectionné à l'issue d'un concours organisé par le National Institute of Standards and Technology (NIST) pour remplacer le Data Encryption Standard (DES) vieillissant.

AES est une famille de trois algorithmes différents conçus pour utiliser une clé de cryptage de 128, 192 ou 256 bits. Ces algorithmes se décomposent en un schéma de clé et un algorithme de cryptage.

L'algorithme de cryptage de l'AES est en grande partie le même pour les trois versions. Il est divisé en tours, qui sont composés d'un ensemble d'opérations mathématiques. La principale différence entre les différentes versions de l'AES est le nombre de tours utilisés : 10, 12 et 14.

Chaque cycle de l'AES utilise une clé unique dérivée de la clé secrète d'origine. La dérivation de ces clés rondes est la tâche du programme de clés. Le programme de clés de chaque version d'AES est différent car il utilise des clés secrètes de longueur différente et produit un nombre différent de clés rondes de 128 bits.

Chiffres en continu

L'autre type d'algorithme de chiffrement symétrique est le chiffrement par flux. Contrairement au chiffrement par bloc, le chiffrement par flux chiffre un texte en clair un bit à la fois.

Un chiffrement par flux est conçu sur la base du seul algorithme de chiffrement totalement inviolable : le masque jetable (OTP). L'OTP utilise une clé secrète aléatoire de même longueur que le texte en clair et effectue une opération XOR (exclusive-or) sur chaque bit du texte en clair et de la clé afin de produire le texte chiffré, comme illustré dansl'image ci-dessus.

Le décryptage avec un OTP est identique au cryptage. Cela s'explique par le fait que tout XOR avec lui-même est égal à zéro et que tout XOR avec zéro est égal à lui-même. Avec un texte en clair P, un texte chiffré C et une clé K

C XOR K = (C XOR K) XOR K = C XOR (K XOR K) = C XOR 0 = C

Bien qu'il offre une grande sécurité, l'OTP est rarement utilisé car il n'est pas pratique de partager en toute sécurité les quantités massives de clés dont il a besoin pour fonctionner. Le chiffrement par flot utilise la même idée que l'OTP avec une clé légèrement moins sûre.

Au lieu d'une clé entièrement aléatoire, le chiffrement par flux utilise une clé secrète pour alimenter un générateur de nombres pseudo-aléatoires. En partageant la même clé secrète et le même algorithme, l'expéditeur et le destinataire d'un message peuvent produire la même chaîne de bits, ce qui leur permet de crypter et de décrypter un message.

Exemple : Chiffre 4 de Rivest (RC4)

RC4 est un exemple de chiffrement de flux très répandu. Il a été créé par Ron Rivest en 1987 et était à l'origine un secret commercial de RSA Security. En 1994, les détails du chiffrement ont fait l'objet d'une fuite, ce qui l'a rendu publiquement utilisable.

RC4 est utilisé dans une variété d'applications différentes, y compris les normes de cryptage WEP et WPA pour le Wi-Fi. Le chiffrement présente des vulnérabilités connues, en particulier pour certaines applications, mais il peut toujours être utilisé si certains des octets initiaux du flux de clés généré sont supprimés.

Découvrez la plateforme Keyfactor en action et apprenez à trouver, contrôler et automatiser toutes les identités machine.

illustration graphique de carreaux abstraits

Chiffrement asymétrique

Contrairement au cryptage symétrique, la cryptographie asymétrique utilise deux clés différentes pour le cryptage et le décryptage. La clé publique est utilisée pour crypter un message, tandis que la clé privée est utilisée pour le décryptage.

La clé privée est un nombre totalement aléatoire. La clé publique est dérivée de la clé privée à l'aide d'un problème mathématiquement "difficile".

Ce problème "difficile" est basé sur une opération mathématique qui est "facile" à réaliser mais "difficile" à inverser. Un certain nombre de problèmes "difficiles" différents sont utilisés, y compris des problèmes basés sur des nombres entiers et des problèmes basés sur des courbes elliptiques.

Cryptographie basée sur les nombres entiers

La cryptographie asymétrique basée sur les nombres entiers utilise deux principaux problèmes "difficiles". Il s'agit des problèmes de factorisation et de logarithme discret.

Le problème de la factorisation repose sur le fait qu'il est relativement facile de multiplier deux nombres ensemble, mais qu'il est difficile de les factoriser. En fait, la factorisation est tellement difficile que la meilleure façon d'y parvenir (sur un ordinateur "classique") est de procéder à une recherche par force brute. Une personne souhaitant factoriser le produit de deux nombres premiers doit tester les facteurs potentiels jusqu'à ce qu'elle trouve l'un des deux facteurs, ce qui peut prendre beaucoup de temps.

Un algorithme de cryptage asymétrique basé sur le problème de la factorisation aura une clé publique calculée en utilisant le produit de deux clés privées (grands nombres premiers). Ce calcul est facile à effectuer, mais toute personne souhaitant dériver la clé privée de la clé publique devra la factoriser, ce qui est beaucoup plus difficile.

La difficulté de la multiplication croît de manière polynomiale avec la longueur des facteurs, mais la difficulté de la factorisation croît de manière exponentielle. Cela permet de trouver un "point idéal", où un système est utilisable mais essentiellement incassable.

Le problème du logarithme discret utilise l'exponentiation et les logarithmes comme opérations "faciles" et "difficiles". Comme pour la factorisation, la complexité du calcul des logarithmes croît beaucoup plus rapidement lorsque la taille de l'exposant augmente.

Exemple : Rivest-Shamir-Adleman (RSA)

Le chiffrement symétriqueest un algorithme cryptographique simple selon les normes actuelles, mais il était autrefois considéré comme à la pointe de la technologie. En effet, l'armée allemande l'utilisait pour envoyer des communications privées pendant la Seconde Guerre mondiale. Le filmThe Imitation Gameexplique très bien le fonctionnement du chiffrement symétrique et le rôle qu'il a joué pendant la guerre. 

Avec le chiffrement symétrique, un message saisi en texte clair subit des permutations mathématiques pour être chiffré. Le message chiffré est difficile à déchiffrer, car les lettres du texte clair ne correspondent pas toujours aux mêmes lettres dans le message chiffré. Par exemple, le message « HHH » ne serait pas chiffré en trois caractères identiques. 

Pour chiffrer et déchiffrer le message, vous avez besoin de la même clé, d'où le nom de chiffrement symétrique. Bien que le déchiffrement des messages soit extrêmement difficile sans la clé, le fait que la même clé doive être utilisée pour chiffrer et déchiffrer le message comporte un risque important. En effet, si le canal de distribution utilisé pour partager la clé est compromis, tout le système de sécurisation des messages est compromis.

L'un des algorithmes de chiffrement asymétrique les plus connus est celui développé par Ron Rivest, Adi Shamir et Leonard Adleman, appelé RSA. Cet algorithme est basé sur le problème de factorisation.

L'image ci-dessusmontre un exemple simple du fonctionnement du RSA. Le texte en clair (2) est élevé à la puissance de la clé publique (5) : 2^5 = 32. Cette valeur est ensuite divisée par un module public (14) et le reste (4) est envoyé comme texte chiffré : 32 % 14 = 4.

À l'autre extrémité, la même opération est effectuée avec la clé privée au lieu de la clé publique pour produire le texte en clair : (4^11) % 14 = 2. Ce calcul fonctionne parce que les clés publique et privée sont choisies de telle sorte qu'elles sont inverses dans le module choisi. 

Cryptographie à courbe elliptique

La cryptographie asymétrique basée sur les nombres entiers utilise les problèmes de factorisation et de logarithme discret pour construire des algorithmes de cryptage sécurisés. La cryptographie à courbe elliptique utilise les mêmes problèmes avec une petite différence.

capture d'écran de l'algorithme de cryptage

Au lieu d'utiliser des nombres entiers pour ses calculs, la cryptographie à courbe elliptique utilise des points sur une courbe elliptique, commecelle illustrée ci-dessus. Une clé privée reste un nombre aléatoire, mais une clé publique est un point sur la courbe.

Quelques opérations mathématiques différentes sont définies sur ces courbes. Les deux opérations les plus importantes sont les suivantes :

  • Addition de points (équivalente à la multiplication de nombres entiers)
  • Multiplication de points (équivalent à l'exponentiation des nombres entiers)

Sur ces courbes, il est possible d'effectuer des calculs équivalents aux opérations "faciles" des problèmes de factorisation et de logarithme discret. Cela signifie que les mêmes algorithmes de base peuvent être adoptés pour être utilisés avec des courbes elliptiques.

Mais pourquoi s'en préoccuper ? La cryptographie à courbe elliptique est utile parce que des longueurs de clés plus petites offrent le même niveau de sécurité. Cela signifie que la cryptographie à courbe elliptique utilise moins de stockage, de puissance de traitement et d'énergie pour protéger les données au même niveau qu'un algorithme équivalent basé sur des nombres entiers. Ces économies peuvent être importantes pour les systèmes à ressources limitées tels que les appareils de l'internet des objets (IoT) ou les smartphones.

Avantages et inconvénients du chiffrement symétrique et asymétrique

Les algorithmes de chiffrement symétrique et asymétrique sont tous deux conçus pour accomplir la même tâche : protéger la confidentialité des données. Cependant, ils le font de manière très différente, et chaque approche a ses avantages et ses inconvénients :

  • Chiffrement symétrique :Le principal avantage de la cryptographie symétrique réside dans son efficacité. En général, les algorithmes de chiffrement symétrique utilisent moins de mémoire et de puissance de traitement que la cryptographie asymétrique.
  • Chiffrement asymétrique :le chiffrement asymétrique ne nécessite pas que les deux parties partagent de manière sécurisée une clé secrète avant d'envoyer des messages chiffrés. Cela permet de communiquer en toute sécurité avec n'importe qui, à condition de disposer de sa clé privée.

Ces différentes forces font que la cryptographie symétrique et la cryptographie asymétrique sont souvent utilisées ensemble, comme dans le protocole TLS . Le cryptage asymétrique est utilisé pour échanger de manière sécurisée une clé symétrique, et le cryptage symétrique est utilisé pour le transfert de données en masse.

L'informatique quantique et son impact sur la cryptographie

Lorsque l'on examine les avantages et les inconvénients des différents algorithmes de cryptage, il est important de tenir compte de l'essor de l'informatique quantique. Les ordinateurs quantiques ont la capacité de casser certains des algorithmes de cryptage asymétriques couramment utilisés aujourd'hui.

La raison en est que certains des problèmes "difficiles" utilisés en cryptographie asymétrique ne sont pas "difficiles" pour les ordinateurs quantiques. Alors que la factorisation est exponentiellement difficile pour un ordinateur classique, elle ne présente qu'une difficulté polynomiale pour un ordinateur quantique en raison de l'existence de l'algorithme de Shor.

Si la multiplication et la factorisation ont toutes deux une complexité polynomiale, il est impossible de construire un système cryptographique utilisable et sûr à partir de ce problème. Il en va de même pour le problème du logarithme discret. Il est également cassé dès que des ordinateurs quantiques suffisamment grands deviennent disponibles.

Cependant, cela ne signifie pas pour autant que l'informatique quantique sonnera le glas de la cryptographie asymétrique. De nouveaux problèmes ont été découverts qui sont considérés comme « difficiles » à résoudre, même pour les ordinateurs quantiques. Cela a conduit au développement de nouveaux algorithmes de chiffrement asymétrique post-quantique basés sur ces nouveaux problèmes « difficiles ».

Sécurisez vos appareils. Contrôlez votre avenir.

Demandez une démonstration en direct avec un expert pour découvrir comment Keyfactor aider votre organisation à instaurer la confiance numérique et la crypto-agilité.