Sur les versions modernes de Linux GPG est normalement préinstallé. Vous pouvez le vérifier avec
$ gpg --version
Sinon vous pouvez installer GPG sous Ubuntu/Linux avec
$ sudo apt install gnupg2
Pour nos tests nous allons créer un fichier que nous allons chiffrer avec l'algorithme AES256.
$ touch secret.txt
$ echo "top secret" > secret.txt
Durant le chiffrement, un mot de passe vous sera demandé pour sécuriser ce fichier.
$ gpg --cipher-algo AES256 -c secret.txt
Une fois le chiffrement réalisé, un fichier de même nom avec l'extension *.gpg est créé.
secret.txt.gpg: GPG symmetrically encrypted data (AES256 cipher)
Pour déchiffrer les fichiers, saisir le mot de passe du chiffrement
$ gpg -d secret.txt.gpg > secret.txt
Il est possible et conseillé de générer une paire de clé particulière (privée et publique)
$ gpg --full-generate-key
Durant ce process de génération, vous devrez :
gpg (GnuPG) 2.4.7; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Sélectionnez le type de clef désiré :
(1) RSA and RSA
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(9) ECC (sign and encrypt) *default*
(10) ECC (signature seule)
(14) Existing key from card
Quel est votre choix ?
les clefs RSA peuvent faire une taille comprise entre 1024 et 4096 bits.
Quelle taille de clef désirez-vous ? (3072)
La taille demandée est 4096 bits
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
0 = la clef n'expire pas
= la clef expire dans n jours
w = la clef expire dans n semaines
m = la clef expire dans n mois
y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0)
La clef n'expire pas du tout
Est-ce correct ? (o/N)
GnuPG doit construire une identité pour identifier la clef.
Nom réel :
Adresse email :
Commentaire :
Avec l'usage de clés comme celles générées, pour encrypter un document :
$ gpg -e -r recipient@mail.com file-to-encrypt
L'option -e indique l'encryption du fichier et l'option -r indique le destinataire.
Il peut y avoir plusieurs fois l'option -r pour plusieurs destinataires.
Pour décrypter le fichier il suffit de passer l'option -d pour utiliser sa propre clé privée pour déchiffrer le message
$ gpg -d -o outpit-file file-to-decrypt.gpg
On spécifie l'option -o pour indiquer dans quel fichier déchiffrer la source. Sinon ce serait affiché
sur la sortie standard (sur l'écran).
Pour lister les clés publiques ou les clés privées disponibles sur votre machine
$ gpg --list-public-keys
Lorsque deux personnes doivent échanger des fichiers chiffrés, elles peuvent exporter leur clé publique et l'envoyer par mail ou autre.
$ gpg --list-public-keys -o <keyname>.key <hexadecimal key value>
Et pour importer la clé publique adverse
$ gpg --import <keyname>.key