Modes de fonctionnement du chiffrement par blocs

Publicités

Dans ce chapitre, nous allons aborder les différents modes de fonctionnement d’un chiffrement par blocs. Il s’agit de règles procédurales pour un chiffrement par blocs générique. Il est intéressant de noter que les différents modes permettent d’obtenir différentes propriétés qui ajoutent à la sécurité du chiffrement par blocs sous-jacent.

Un chiffrement par blocs traite les blocs de données de taille fixe. Habituellement, la taille d’un message est plus grande que la taille du bloc. Par conséquent, le long message est divisé en une série de blocs de messages séquentiels, et le chiffreur opère sur ces blocs un à la fois.

Mode livre de codes électroniques (ECB)

Ce mode est une façon la plus simple de traiter une série de blocs de messages énumérés séquentiellement.

Opération

  • L’utilisateur prend le premier bloc de texte en clair et le chiffre avec la clé pour produire le premier bloc de texte chiffré.

  • Il prend ensuite le deuxième bloc de texte en clair et suit le même processus avec la même clé et ainsi de suite.

Le mode ECB est déterministe, c’est-à-dire que si les blocs de texte en clair P1, P2,…, Pm sont chiffrés deux fois sous la même clé, les blocs de texte chiffré de sortie seront les mêmes.

En fait, pour une clé donnée, techniquement, nous pouvons créer un livre de codes de textes chiffrés pour tous les blocs de texte en clair possibles. Le chiffrement ne consisterait alors qu’à rechercher le texte en clair requis et à sélectionner le texte chiffré correspondant. Ainsi, l’opération est analogue à l’attribution de mots de code dans un livre de codes, et reçoit donc un nom officiel – mode de fonctionnement du livre de codes électronique (ECB). Il est illustré comme suit –

Analyse du mode ECB

En réalité, toute donnée d’application comporte généralement des informations partielles qui peuvent être devinées. Par exemple, la fourchette de salaire peut être devinée. Un texte chiffré du mode ECB peut permettre à un attaquant de deviner le texte en clair par essais et erreurs si le message en clair est dans les limites du prévisible.

Par exemple, si un texte chiffré du mode ECB est connu pour chiffrer un chiffre de salaire, alors un petit nombre d’essais permettra à un attaquant de récupérer le chiffre. En général, nous ne souhaitons pas utiliser un chiffrement déterministe, et donc le mode ECB ne devrait pas être utilisé dans la plupart des applications.

Mode CBC (ipher Block Chaining)

Le mode de fonctionnement CBC fournit une dépendance de message pour générer le texte chiffré et rend le système non déterministe.

Opération

Le fonctionnement du mode CBC est représenté dans l’illustration suivante. Les étapes sont les suivantes –

  • Chargez le vecteur d’initialisation (IV) de n bits dans le registre supérieur.

  • XOR le bloc de texte en clair de n bits avec la valeur des données dans le registre supérieur.

  • Encryptez le résultat de l’opération XOR avec le chiffrement par blocs sous-jacent avec la clé K.

  • Fournir le bloc de texte chiffré dans le registre supérieur et continuer l’opération jusqu’à ce que tous les blocs de texte en clair soient traités.

  • Pour le déchiffrement, les données IV sont XORées avec le premier bloc de texte chiffré déchiffré. Le premier bloc de texte chiffré est également introduit dans pour enregistrer remplacer l’IV pour déchiffrer le bloc de texte chiffré suivant.

Analyse du mode CBC

En mode CBC, le bloc de texte en clair actuel est ajouté au bloc de texte chiffré précédent, puis le résultat est chiffré avec la clé. Le déchiffrement est donc le processus inverse, qui consiste à déchiffrer le texte en clair actuel, puis à ajouter le bloc de texte chiffré précédent au résultat.

L’avantage de CBC par rapport à ECB est que le changement d’IV entraîne un texte chiffré différent pour un message identique. Du côté des inconvénients, l’erreur de transmission se propage à quelques autres blocs lors du décryptage en raison de l’effet de chaînage.

Il convient de mentionner que le mode CBC constitue la base d’un mécanisme bien connu d’authentification de l’origine des données. Ainsi, il présente un avantage pour les applications qui nécessitent à la fois un chiffrement symétrique et une authentification de l’origine des données.

Mode de rétroaction de chiffrement (CFB)

Dans ce mode, chaque bloc de texte chiffré est « réinjecté » dans le processus de chiffrement afin de chiffrer le bloc de texte en clair suivant.

Fonctionnement

Le fonctionnement du mode CFB est représenté dans l’illustration suivante. Par exemple, dans le présent système, un bloc de message a une taille ‘s’ bits où 1 < s < n. Le mode CFB nécessite un vecteur d’initialisation (IV) comme bloc d’entrée initial aléatoire de n bits. L’IV n’a pas besoin d’être secret. Les étapes de l’opération sont –

  • Chargez le IV dans le registre supérieur.

  • Encryptez la valeur des données dans le registre supérieur avec le bloc de chiffrement sous-jacent avec la clé K.

  • Prenez seulement le nombre ‘s’ de bits les plus significatifs (bits de gauche) de la sortie du processus d’encryptage et effectuez un XOR avec le bloc de message en clair de ‘s’ bits pour générer le bloc de texte chiffré.

  • Fournir le bloc de texte chiffré dans le registre supérieur en décalant les données déjà présentes vers la gauche et continuer l’opération jusqu’à ce que tous les blocs de texte en clair soient traités.

  • Essentiellement, le bloc de texte chiffré précédent est chiffré avec la clé, puis le résultat est XORé au bloc de texte en clair actuel.

  • Des étapes similaires sont suivies pour le déchiffrement. L’IV prédécidée est initialement chargée au début du décryptage.

Analyse du mode CFB

Le mode CFB diffère considérablement du mode ECB, le texte chiffré correspondant à un bloc de texte en clair donné dépend non seulement de ce bloc de texte en clair et de la clé, mais aussi du bloc de texte chiffré précédent. En d’autres termes, le bloc de texte chiffré dépend du message.

CFB a une caractéristique très étrange. Dans ce mode, l’utilisateur décrypte le texte chiffré en utilisant uniquement le processus de chiffrement du bloc de chiffrement. L’algorithme de décryptage du chiffrement par blocs sous-jacent n’est jamais utilisé.

Apparemment, le mode CFB convertit un chiffrement par blocs en un type de chiffrement par flux. L’algorithme de chiffrement est utilisé comme un générateur de flux de clés pour produire un flux de clés qui est placé dans le registre inférieur. Ce flux de clés est ensuite soumis à un test XOR avec le texte en clair comme dans le cas du chiffrement par flux.

En convertissant un chiffrement par bloc en un chiffrement par flux, le mode CFB fournit certaines des propriétés avantageuses d’un chiffrement par flux tout en conservant les propriétés avantageuses d’un chiffrement par bloc.

Sur le revers de la médaille, l’erreur de transmission se propage en raison du changement de blocs.

Mode de rétroaction de sortie (OFB)

Il consiste à réinjecter les blocs de sortie successifs du chiffrement par blocs sous-jacent. Ces blocs de rétroaction fournissent une chaîne de bits pour alimenter l’algorithme de cryptage qui agit comme le générateur de flux de clés comme dans le cas du mode CFB.

Le flux de clés généré est XOR-ed avec les blocs de texte en clair. Le mode OFB nécessite un IV comme bloc d’entrée initial aléatoire de n bits. L’IV n’a pas besoin d’être secret.

Le fonctionnement est décrit dans l’illustration suivante –

Mode compteur (CTR)

Il peut être considéré comme une version à base de compteur du mode CFB sans la rétroaction. Dans ce mode, l’émetteur et le récepteur doivent accéder à un compteur fiable, qui calcule une nouvelle valeur partagée chaque fois qu’un bloc de texte chiffré est échangé. Ce compteur partagé n’est pas nécessairement une valeur secrète, mais le défi est que les deux parties doivent garder le compteur synchronisé.

Opération

Le chiffrement et le déchiffrement en mode CTR sont représentés dans l’illustration suivante. Les étapes du fonctionnement sont –

  • Chargez la valeur initiale du compteur dans le registre supérieur est la même pour l’émetteur et le récepteur. Il joue le même rôle que le IV en mode CFB (et CBC).

  • Chiffrer le contenu du compteur avec la clé et placer le résultat dans le registre inférieur.

  • Prendre le premier bloc de texte en clair P1 et le soumettre à un XOR avec le contenu du registre inférieur. Le résultat de cette opération est C1. Envoyez C1 au récepteur et mettez à jour le compteur. La mise à jour du compteur remplace le retour du texte chiffré en mode CFB.

  • Continuez de cette manière jusqu’à ce que le dernier bloc de texte en clair ait été chiffré.

  • Le déchiffrement est le processus inverse. Le bloc de texte chiffré est soumis à un XOR avec la sortie du contenu chiffré de la valeur du compteur. Après le décryptage de chaque bloc de texte chiffré, le compteur est mis à jour comme dans le cas du cryptage.

Analyse du mode compteur

Il n’a pas de dépendance de message et donc un bloc de texte chiffré ne dépend pas des blocs de texte en clair précédents.

Comme le mode CFB, le mode CTR n’implique pas le processus de décryptage du bloc de chiffrement. Cela est dû au fait que le mode CTR utilise réellement le chiffrement par blocs pour générer un flux de clés, qui est chiffré à l’aide de la fonction XOR. En d’autres termes, le mode CTR convertit également un chiffrement par blocs en un chiffrement par flux.

Le grave inconvénient du mode CTR est qu’il nécessite un compteur synchrone chez l’émetteur et le récepteur. La perte de synchronisation entraîne une récupération incorrecte du texte en clair.

Cependant, le mode CTR possède presque tous les avantages du mode CFB. En outre, il ne propage pas du tout l’erreur de transmission.

Publicités

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.