Le chiffrement symétrique, appelé aussi chiffrement conventionnel, est basé sur des fonctions mathématiques réversibles. Il repose sur un principe de clé unique pour chiffrer et déchiffrer.
Cette clé possède plusieurs appellations :
- clé partagée ou clé secrète
Le chiffrement symétrique se déroule en 5 étapes principales :
- (Génération) Définition de la clé secrète par X.
- Chiffrement du message par X avec la clé secrète.
- Envoi de cette clé secrète à Y.
- Envoi du message chiffré à Y.
- Déchiffrement du message de X avec la clé secrète reçu auparavant.
Schéma explicatif
Il existe deux types d’algorithmes de chiffrement :
- Le chiffrement par flux
- Le chiffrement par bloc
Différences entre les deux :
Avantages / Inconvénients
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.
Démonstration
Chiffrement
Dans cette section, nous allons voir comment réaliser à l’aide de la bibliothèque openssl, le chiffrement / déchiffrement d’un fichier nommé file.clear
.
Pour Plus d’informations sur les paramètres utilisés dans cette commande :
-pbkdf2 https://fr.wikipedia.org/wiki/PBKDF2
-salt : https://fr.wikipedia.org/wiki/Salage_(cryptographie)
cd /tmp
nano file.clear
# Bonjour le monde
openssl aes-256-cbc -pbkdf2 -e -salt -in file.clear -out /tmp/file.encrypted
# entrez un mot de passe
# entrez de nouveau votre mot de passe
Votre fichier a normalement bien été généré. Il se situe dans /tmp/ avec le nom file.encrypted.
Déchiffrement
openssl aes-256-cbc -pbkdf2 -d -in /tmp/file.encrypted -out /tmp/file.decrypted
# Entrez le mot de passe
cat /tmp/file.decrypted
Voilà, vous venez de voir comment réaliser un processus de chiffrement en partant d’un fichier « en clair » vers un fichier crypté.
++
Brlndtech