Devensys Cybersecurity – The Blog

RedTeam & Pentest – Sécurité Managée & SOC 24/7 – Sécurité Cloud & Infrastructure – Formations & Certifications.

Chiffrement symétrique

neo matrix lunettes

Le chiffrement symétrique, que l’on nomme couramment chiffrement conventionnel, est basé sur des fonctions mathématiques réversibles. Le chiffrement symétrique repose sur un principe de clé unique pour chiffrer et déchiffrer.

Cette clé possède plusieurs appellations :

  • Clé secrète
  • Clé partagée

On parle de chiffrement conventionnel puisque c’est le premier chiffrement par clé à avoir été découvert et utilisé.

Principe de fonctionnement

Le chiffrement symétrique se déroule en 4 étapes, de la manière suivante :

1ère étape

  • Génération de la clé secrète par Alice
  • Envoi de cette clé secrète à Bob, de manière sécurisée

2e étape

  • Chiffrement du message par Alice, avec la clé secrète
  • Envoi de ce message chiffré à Bob

3e étape

  • Réception du message chiffrée par Alice
  • Déchiffrement du message avec la clé secrète reçue auparavant

Il existe 2 types d’algorithme de chiffrement :

  • Le chiffrement de flux
  • Le chiffrement par bloc

Chiffrement symétrique par flux

Définition

Un algorithme de chiffrement par flux (ou chiffrement par flot de l’anglais stream cipher) est un algorithme agissant en continu sur les données. Il ne nécessite pas d’avoir toutes les données pour commencer à chiffrer, le chiffrement de flux agit sur chaque bit, l’un après l’autre.
Ce type de chiffrement est souvent utilisé pour les communications en temps réel telles que le WI-FI (RC4), puisqu’il a la particularité d’être beaucoup plus rapide que n’importe quel algorithme de chiffrement par bloc. De plus, au niveau des données chiffrées en sortie, le chiffrement par flux ne donnera pas forcement le même résultat en sortie alors que pour un bloc donné un chiffrement par bloc aura toujours le même résultat. Un algorithme de flux fonctionne avec ce que l’on appelle un générateur pseudo-aléatoire (keystream en anglais), c’est une séquence de bits précise utilisée en tant que clé. Le chiffrement se fait par la combinaison du keystream et du message, le plus souvent par une opération XOR (OU exclusif).

Chiffrement de flux « synchronous »

Avec un chiffrement de flux synchronous, un flux de nombre pseudo-aléatoire est généré indépendamment du texte de base et du texte chiffré. Ce flux est utilisé pour chiffrer le texte de base, ou pour déchiffrer le texte chiffré.
En général, le flux est composé de chiffres binaires, et le chiffrement se fait par une opération XOR entre le keystream et les données de base.
Les deux communicants doivent être exactement à la même étape (synchrone) pour que le déchiffrement se passe correctement. Si des ajouts ou des suppressions sont réalisés pendant le transfert du message, on perd la synchronisation. Cependant, si un bit est altéré pendant le transfert, cela n’affecte pas le reste du message et donc la synchronisation est toujours présente.

Chiffrement de flux self-synchronizing

Les algorithmes de chiffrement de flux appelés self-synchronizing, calcule le keystream à partir du message lui-même.
Le plus simple algorithme de chiffrement self-synchronizing est l’autokey, il utilise le message lui-même comme clé. Lorsqu’un bit est ajouté ou supprimé pendant le transfert des données, l’algorithme l’identifiera puisque la clé est issue du message d’origine lui-même, contrairement aux algorithmes synchronous qui génèrent des keystream aléatoires indépendamment du message d’origine. Les algorithmes de chiffrement de flux self-synchronizing sont beaucoup moins répandus que les synchronous

Méthode XOR

La méthode XOR, appelée plus généralement fonction OU Exclusif est un opérateur logique.
Le principe repose sur 2 opérandes qui peuvent avoir comme valeur VRAI (1) ou FAUX (0), le résultat prendra lui aussi comme valeur VRAI ou FAUX ; VRAI dans le cas ou seulement l’un des deux est VRAI.

Table de vérité XOR

A B Résultat
0 0 0
0 1 1
1 0 1
1 1 0

Exemple :

Méthode XOR

0 1 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 0 : Message
1 0 1 0 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 : Clé
1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 1 0 : Résultat

Le résultat étant le message chiffré

Exemples

➢ VERNAM : le téléphone rouge entre le président des USA et celui de la Russie utilise VERNAM, nous verrons en détail dans la suite du cours comment fonctionne VERNAM et quelles sont ses particularités

➢ RC4 : utilisé comme algorithme de chiffrement pour le WI-FI, réputé comme peu fiable maintenant

➢ E0 : algorithme de chiffrement propriétaire utilisé pour les communications Bluetooth

Chiffrement symétrique par bloc

Définition

Un algorithme de chiffrement par bloc (Block Cipher en anglais) transforme des blocs de données de taille fixe en bloc de données chiffrées de la même taille. Les blocs font généralement 128 bits, mais ils peuvent aller de 32 à 256 bits selon l’algorithme. La transformation reste la même pour chaque bloc.
Il existe 4 modes de chiffrement par bloc : Electronic CodeBook (ECB), Cipher Block Chaining (CBC), Cipher FeedBack (CFB) ou Output FeedBack (OFB). Ces 4 modes ne dépendent pas de l’algorithme utilisé, néanmoins tous les algorithmes ne peuvent pas forcément utiliser ces 4 modes.

Avantages et inconvénients du chiffrement symétrique

Avantages

  • Le chiffrement/déchiffrement est très rapide, les algorithmes de chiffrement symétrique sont généralement beaucoup moins complexes que les algorithmes de chiffrement asymétrique
  • Utilise peu de ressources systèmes, toujours dans le même principe d’algorithme moins complexe

Inconvénients

  • Le chiffrement symétrique n’assure que la confidentialité des données, contrairement au chiffrement asymétrique que nous aborderons juste après et qui permet d’assurer des principes de sécurité supplémentaire.
  • Une clé symétrique correspond à un échange entre 2 personnes, pour communiquer avec d’autres personnes il faudra une autre clé symétrique.
    • Soit un grand nombre de clé selon le nombre de personnes avec qui on communique
  • L’utilisation d’une clé unique présente un problème :
    • Communiquer la clé de manière sûre à la personne avec laquelle on souhaite dialoguer.
    • Il est nécessaire de garantir la confidentialité de cette clé. Les échanges qui suivront reposent sur celle-ci. En d’autres termes, si une tierce personne accède à la clé, elle pourra lire, modifier, altérer tous les échanges qui s’effectueront entre les 2 protagonistes de départ.

Published by

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :