Le chaînage de blocs de chiffrement (CBC) est un mode de fonctionnement pour un chiffrement par bloc, dans lequel une séquence de bits est chiffrée en une seule unité, ou bloc, avec une clé de chiffrement appliquée à l’ensemble du bloc. Le chaînage de blocs de chiffrement utilise un vecteur d’initialisation (IV) d’une certaine longueur. En l’utilisant avec une clé de chiffrement unique, les organisations et les individus peuvent chiffrer et déchiffrer en toute sécurité de grandes quantités de texte brut.
CBC est un mode opérationnel spécifique au chiffrement. Dans ce mode, chaque bloc de texte en clair est soumis à un OU exclusif ou à un XOR (combiné numériquement) avec le bloc de texte chiffré précédent, puis chiffré. Un XOR est un mécanisme de codage ou une fonction binaire utilisé pour combiner différentes entrées. Dans CBC, XOR facilite la combinaison de blocs de texte en clair et de clés de chiffrement. Le processus se répète jusqu’à ce que tous les blocs de texte en clair soient transformés avec succès en blocs de texte chiffré.
L’une des caractéristiques clés de CBC est l’utilisation d’un processus de chaînage qui fait dépendre le déchiffrement d’un bloc de texte chiffré de tous les blocs de texte chiffré précédents. En conséquence, la totalité de la validité de tous les blocs précédents est contenue dans le bloc de texte chiffré adjacent précédent. Une erreur sur un seul bit dans un bloc de texte chiffré affecte le déchiffrement de tous les blocs suivants. Le réarrangement de l’ordre des blocs de texte chiffré, par exemple, peut entraîner une corruption du processus de décryptage.
CBC est un mode de cryptage hérité couramment utilisé.
La popularité de CBC vient de sa simplicité et de sa facilité de mise en œuvre. Il existe cependant une idée fausse très répandue selon laquelle CBC assure l’authenticité du chiffrement. Ce n’est pas vrai, même si plusieurs blocs de texte en clair sont modifiés de manière non triviale lorsqu’un seul bit de texte chiffré est modifié.
Comment fonctionne le chaînage de blocs de chiffrement ?
CBC est utilisé pour chiffrer et déchiffrer de grandes entrées de texte en clair en créant une « chaîne » cryptographique dans laquelle chaque bloc de texte chiffré dépend du dernier bloc. L’utilisation de la fonction binaire XOR signifie que deux bits sont comparés et la sortie modifiée avec un troisième bit avant que la clé de cryptage ne soit appliquée. De plus, le texte brut est divisé en blocs, l’algorithme spécifiant la taille du bloc.
La première étape pour lancer une chaîne de blocs de chiffrement consiste à XOR le premier des nombreux blocs de texte en clair avec un IV. Fonction de conversion unique de longueur fixe, le IV est utilisé pour créer une sortie aléatoire ou pseudo-aléatoire. Il a la même taille (longueur) que le bloc de chiffrement et n’a pas besoin d’être secret. Cette sortie XOR est ensuite chiffrée à l’aide d’une clé de chiffrement pour produire un bloc de texte chiffré, un format de texte chiffré qui peut être déchiffré avec la clé correcte.
Une fois le premier bloc de texte en clair transformé en bloc de texte chiffré, le bloc de texte en clair suivant doit être chiffré à l’aide d’un processus similaire. La seule différence dans ces étapes ultérieures est que le bloc de texte chiffré remplace le IV comme l’une des entrées XOR. En d’autres termes, le chiffrement du bloc de texte en clair après le premier dépend du chiffrement du premier bloc de texte en clair. Avec chaque chiffrement de bloc de texte en clair, le bloc de texte chiffré adjacent doit être utilisé – comme une chaîne (d’où le terme « chaînage de blocs »). Le deuxième bloc de texte chiffré est produit en effectuant un XOR entre le premier bloc de texte chiffré et le deuxième bloc de texte en clair et en utilisant la même clé de chiffrement. Ce processus se répète jusqu’à ce qu’il ne reste plus de texte brut à chiffrer.
Le processus de décryptage CBC fonctionne de manière similaire mais distincte. Contrairement aux méthodes de décryptage similaires, le processus ne démarre pas avec le bloc de texte chiffré final. Tout cela peut se produire simultanément car toutes les entrées sont présentes.
L’inversion de la procédure CBC nécessite d’inverser le processus de cryptage en introduisant d’abord le premier bloc de texte chiffré dans le processus de décryptage. Cela implique d’utiliser la même clé de chiffrement que précédemment mais sur le bloc de texte chiffré. Le produit de cette interaction est ensuite XORed avec le IV d’origine pour extraire le bloc de texte en clair d’origine.
Le déchiffrement du deuxième bloc de texte chiffré est différent du déchiffrement du premier car un IV ne peut pas être utilisé. Après avoir combiné le deuxième bloc de texte chiffré avec la clé de chiffrement, la sortie est soumise à un XOR avec le premier bloc de texte chiffré pour produire le deuxième bloc de texte en clair. Le bloc de texte chiffré précédent remplace le IV lors du décryptage. C’est ainsi que le deuxième bloc de texte chiffré a été créé à l’origine ; le deuxième bloc de texte en clair et le premier bloc de texte chiffré ont été XORés ensemble. Le processus est terminé une fois que tous les textes chiffrés ont été déchiffrés avec succès en texte brut.
Des blocs de texte chiffré identiques ne peuvent être produits que si le même bloc de texte en clair est chiffré à l’aide de la même clé, du même IV et du même ordre de bloc de texte chiffré. Idéalement, le IV devrait être différent pour deux messages chiffrés avec la même clé. De tels modèles peuvent permettre aux pirates malveillants ou aux cybercriminels de déchiffrer beaucoup plus facilement une série de réponses, car le décryptage est plus prévisible. Bien que l’IV n’ait pas besoin d’être secret, certaines applications, telles que le conseil en sécurité, pourraient trouver cela souhaitable.
Livre de codes électronique et chaînage de blocs de chiffrement
ECB et CBC sont tous deux des types de « chiffrements par blocs ». Il s’agit d’algorithmes de chiffrement qui prennent en compte une entrée de texte en clair de taille de bit fixe et produisent un texte chiffré d’une certaine taille de bit pour une clé secrète donnée. Dans les deux types de chiffrement, l’algorithme spécifie la taille de bloc en laquelle le texte brut sera divisé.
Une différence clé entre les deux chiffrements est que CBC implique l’utilisation d’un IV utilisé pour le premier chiffrement. L’utilisation du IV dans CBC garantit que le premier bloc de données crypté est aléatoire. Il détruit également les modèles dans le texte chiffré résultant et empêche le chiffrement de textes en clair identiques dans le même texte chiffré. EBC n’utilise pas IV ; les données sont plutôt cryptées directement avec le chiffre. C’est pourquoi les modèles existent toujours dans EBC, ce qui donne lieu à des blocs de texte en clair identiques toujours chiffrés en blocs de texte chiffré identiques. Cette qualité de relation directe entre le texte brut et le texte chiffré rend EBC plus enclin à la cryptanalyse. Cela crée également un risque de fuite d’informations si le même bloc de texte en clair est chiffré plusieurs fois. C’est pourquoi la BCE ne peut pas garantir la confidentialité.
La BCE offre un avantage par rapport à la CBC : la non-propagation des erreurs. Avec ECB, une erreur dans un bloc de texte chiffré n’affectera que le déchiffrement de ce bloc. Les blocs suivants ne sont pas affectés. Les blocs suivants sont affectés dans CBC lorsqu’une erreur se produit dans un bloc de texte chiffré.
ECB est un mode de cryptage plus rapide que CBC. Il prend également en charge le cryptage parallèle des blocs. Le chiffrement parallèle est impossible avec CBC puisque le chiffrement de chaque bloc nécessite un chiffrement préalable (un problème de sérialisation). Malgré cet inconvénient, CBC offre un mécanisme de cryptage plus sécurisé qu’EBC, notamment pour les messages plus longs.
Les avantages du chaînage de blocs de chiffrement
CBC fait partie des méthodes les plus utilisées pour crypter des messages volumineux. C’est le successeur le plus sûr de la BCE. Dans ECB, le texte brut est divisé en blocs (l’algorithme spécifie la taille) et chaque bloc est crypté en un bloc de texte chiffré. Étant donné que les blocs de texte en clair identiques chiffrent toujours dans le même bloc de texte chiffré en utilisant la même clé de chiffrement, l’ECB n’est pas le mode le plus sécurisé pour chiffrer des messages de plus d’un bloc.
CBC élimine le problème de sécurité de la BCE. En effet, les blocs identiques ne partagent pas le même chiffre. Dans CBC, le processus XORing masque les modèles de texte en clair. Même si deux blocs de texte en clair étaient identiques, il est peu probable qu’ils produisent des résultats identiques ou même similaires une fois chiffrés. Il n’y a qu’une infime chance que le XOR des deuxième et troisième blocs de texte chiffré produise le même produit que le XOR du premier bloc de texte en clair avec le IV.
Les autres avantages de CBC sont les suivants.
Performances de chiffrement fiables pour les entrées de texte en clair plus volumineuses. La génération d’un IV de la même taille que le bloc de texte en clair et l’utilisation de la fonction XOR avec le IV pour le premier bloc de texte en clair et, par la suite, avec des blocs de texte chiffré créés à partir des blocs de texte en clair précédents avant le chiffrement garantissent un chiffrement plus sécurisé, même pour une durée plus longue. messages. CBC peut chiffrer de manière fiable de grandes entrées de texte en clair, bien qu’à un rythme plus lent que certains algorithmes de chiffrement parallèles.
Une meilleure sécurité. Étant donné que CBC s’appuie sur l’utilisation de blocs de texte chiffré précédents pour XOR et chiffre les blocs de texte en clair suivants, les pirates et les décrypteurs non autorisés ou malveillants doivent disposer de tous les blocs de texte chiffré disponibles pour réussir à décrypter l’intégralité des sorties CBC. Cela n’arrive presque jamais. De plus, en tant que mécanisme de chiffrement à plusieurs étapes, CBC est difficile à déconstruire. Ces qualités augmentent la sécurité des messages cryptés avec CBC.
D’une certaine manière, CBC est un exemple d’authentification défi-réponse efficace. Un utilisateur ou un groupe qui a besoin d’accéder à un certain ensemble de documents doit être capable de présenter les blocs de texte chiffré nécessaires pour décrypter avec succès l’intégralité du message ou du texte.
Les inconvénients du chaînage de blocs de chiffrement
CBC/Radio-Canada présente quelques inconvénients.
Ne tolère pas les pertes de blocs. Bien que des blocs de texte chiffré distincts soient extrêmement utiles en termes de force de chiffrement, ils peuvent nuire à la fiabilité du déchiffrement. Si un ou plusieurs blocs de texte chiffré sont perdus, endommagés ou corrompus, l’utilisateur ne pourra pas effectuer un déchiffrement complet. Bien que cela puisse constituer un inconvénient minime et se produit rarement, cela oblige à utiliser des systèmes de stockage sécurisés pour conserver toutes les données chiffrées et éviter les pertes de blocs.
Les erreurs de chiffrement peuvent se propager tout au long de la chaîne. En raison de l’utilisation du chaînage, CBC augmente la probabilité d’erreurs de chiffrement persistantes. Le tout premier bloc crypté lui-même est un IV contenant des données aléatoires. S’il y a une erreur de chiffrement dans ce bloc ou dans tout autre bloc, l’erreur continuera à se produire dans les blocs suivants, compromettant l’intégrité du chiffrement.
Le cryptage CBC parallèle n’est pas possible. En raison de la nature récursive du processus de chiffrement de CBC, chaque bloc de chiffrement de texte en clair dépend du dernier. C’est pourquoi il est impossible de chiffrer simultanément toutes les entrées de texte en clair et de réaliser un chiffrement parallèle. L’ordre est si important que tout changement pendant le chiffrement entraînerait un ensemble complètement différent de blocs de texte chiffré.
Voir meilleures pratiques pour la sécurité des réseaux sans fil, cinq conseils pour gérer l’accès au réseau sans fil des invités et comment le Le protocole de sécurité WPA3 simplifie les connexions et sécurise l’IoT. Apprenez pourquoi les experts avertissent que les techniques de cryptographie doivent suivre le rythme des menaces et à propos du importance de la sécurité et du cryptage des données dans le cloud. Explorez quoi les ordinateurs quantiques sont destinés à la cryptographie.