📋 Prérequis:

  • Gestions des fichiers et répertoires sous linux.
  • nstallation de imagemagick ( sudo apt update && sudo apt install imagemagick )
  • installation gpg ( sudo apt update && sudo apt install gnupg )

🎯 But:

Chiffrer des fichiers, textes , images , sons sans aucune limite ! avec un chiffrement symètrique

🔐 TP GPG : Chiffrement Symétrique & Asymétrique sous Linux

Installation et vérification des outils logiciels

vérifier que gpg est bien installé , ici la version 2.2.40 de GPG surement que ça aura déjà changé ! pas de panique

bruno@debian:~/Works/gpg$ gpg --version
gpg (GnuPG) 2.2.40
libgcrypt 1.10.1
Copyright (C) 2022 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/bruno/.gnupg
Algorithmes pris en charge :
Clef publique : RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Chiffrement : IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256,
              TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hachage : SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression : Non compressé, ZIP, ZLIB, BZIP2
bruno@debian:~/Works/gpg$ 

sinon

sudo apt update
sudo apt install gnupg

🔸 Partie 1 : Chiffrement Symétrique

Dans un répertoire GPG dans votre répertoire de TP Works

🔹 1. Crée un fichier texte

Créer un fichier texte , que l’on va chiffrer.

echo "Ceci est un secret très important." > secret.txt

🔹 2. Chiffrer avec une phrase de passe

gpg --no-symkey-cache --symmetric secret.txt
# -c donne le même
# --no-symkey-cache   cela force gpg à redemander le mot de passe à chaque fois. 

👉 GPG vous demandera une phrase de passe.

Par défaut, gpg-agent met en cache les passphrases pour une durée configurable (souvent 10 minutes).

mot de passe à retenir, un bon mot de passe est un mélange de lettres , majuscules , minuscules , chiffres et symboles. Eviter des mots du dictionnaire.

un bon mot de passe par exemple nairoD2025 .. si vous manquez d’imagination , ce que je ne crois pas!

🔹3. Un fichier secret.txt.gpg est créé. Essayez de le lire :

on constate que c’est bel et bien chiffré , et plus gros qu’au départ !

bruno@debian:~/Works/gpg$ hexdump -C secret.txt.gpg 
00000000  8c 0d 04 09 03 02 3f 53  f0 12 0b 14 7d 61 ff d2  |......?S....}a..|
00000010  5f 01 a9 b1 e4 39 99 95  6e 89 22 76 01 ae 62 40  |_....9..n."v..b@|
00000020  3e a1 59 08 43 c8 69 d4  1c 32 be 46 c4 0c 66 d6  |>.Y.C.i..2.F..f.|
00000030  1f b5 bf a7 38 86 3e f8  3f d1 a4 a1 be d1 34 de  |....8.>.?.....4.|
00000040  9c ff b1 ec 4e 85 db 03  5d 96 b0 06 a8 2a 97 7c  |....N...]....*.||
00000050  63 3e 96 ee fc a5 70 11  37 93 8a 57 11 03 29 4a  |c>....p.7..W..)J|
00000060  44 52 33 d1 fe 65 cc d7  a4 8e bf 82 92 8b 75 a4  |DR3..e........u.|
00000070
bruno@debian:~/Works/gpg$ 

🔹 4. Déchiffrer

gpg --output secret_dechiffre.txt --decrypt secret.txt.gpg
# l'option -o est équivalente --output

🔹5. Testons avec une image secrète

Exemple d’un schéma top secret que les agents étrangers ne doivent pas voir !

bruno@debian:~/Works/gpg$ gpg -c ESP32-C3-SuperMini-3.jpg 
bruno@debian:~/Works/gpg$ ls -l
total 520
-rw-r--r-- 1 bruno bruno 278328 16 juin  18:14 ESP32-C3-SuperMini-3.jpg
-rw-r--r-- 1 bruno bruno 235263 16 juin  18:15 ESP32-C3-SuperMini-3.jpg.gpg

on constate au passage que le chiffrement compresse légèrement le fichier ! on y gagne

Dans l’algorithme de pgp ,fait un zip (c’est pour ça que c’est plus petit)

on peut interdire : gpg –compress-algo none –symmetric ESP32-C3-SuperMini-3.jpg

Mais ce serait stupide de ne pas en profiter !

Donc on peut très bien chiffrer des fichiers images , mais aussi des sons .. etc ..il n’y a aucune limite du moment que c’est numérique 🙂

Pour information ici c’est surement du chiffrement AES128 ou 256 bits…

gpg --symmetric --cipher-algo AES256 secret.txt
# pour forcer en AES256

on peut savoir le type chiffrement:

bruno@debian:~/Works/gpg$ gpg --list-packets ESP32-C3-SuperMini-3.jpg.gpg 
gpg: données chiffrées avec AES256.CFB

on voit ici que c’est bien du AES256 !