Comment chiffrer des fichiers, dossiers et disques sous Linux
- Mise à jour le 20 sept. 2025

Dans ce guide, nous allons explorer le chiffrement des données sous GNU/Linux. Linux propose de nombreux outils pour protéger les informations sensibles, vous permettant de chiffrer des fichiers individuels, de sécuriser des conteneurs ou même des disques entiers.
Les cas d’usage du chiffrement sont variés. Par exemple, le chiffrement complet d’un disque protège vos données contre le vol physique, en garantissant qu’un attaquant ne puisse pas accéder à vos informations si l’appareil est dérobé. Le chiffrement de fichiers, quant à lui, est idéal pour partager en toute sécurité des documents confidentiels via des canaux non fiables comme le courrier électronique. Le chiffrement par conteneur est utile lorsque vous souhaitez créer un espace de stockage sécurisé et isolé à l’intérieur d’un disque non chiffré.
- Dans ce guide, nous fournirons des exemples pratiques avec les outils suivants, chacun étant adapté à un usage spécifique :
- LUKS : pour chiffrer des disques entiers ou des conteneurs sécurisés
- OpenSSL : pour chiffrer des fichiers individuels
Comment chiffrer des fichiers sous Linux
Ici, je vais vous montrer comment chiffrer des fichiers sous Linux en utilisant deux outils différents : OpenSSL et GnuPG.

Comment chiffrer des fichiers avec OpenSSL sous Linux
Pour chiffrer des fichiers sous Linux avec OpenSSL, nous allons appliquer les options suivantes, recommandées pour une sécurité renforcée :
-aes-256-cbc
: Utilise l’algorithme AES avec une clé de 256 bits en mode Cipher Block Chaining (CBC) pour un chiffrement robuste.-pbkdf2
: Emploie l’algorithme PBKDF2 pour dériver une clé sécurisée à partir du mot de passe, améliorant la résistance aux attaques par force brute.-iter 200000
: Spécifie 200 000 itérations pour PBKDF2, augmentant le coût computationnel d’une tentative de force brute.-md sha256
: Utilise SHA-256 comme algorithme de hachage pour la dérivation de clé, garantissant une génération de clé sécurisée.-salt
: Ajoute un sel aléatoire pour se protéger contre les attaques par tables arc-en-ciel.
🔐 Exemple : chiffrement de secrets.txt
en secrets.txt.enc
:
user@host:~$ openssl enc -aes-256-cbc -pbkdf2 -iter 200000 -md sha256 -salt -in secrets.txt -out secrets.txt.enc
enter AES-256-CBC encryption password:JohnWeakP@sswd:)
Verifying - enter AES-256-CBC encryption password:JohnWeakP@sswd:)
🔓 Exemple : déchiffrement de secrets.txt.enc
en secrets.txt
:
user@host:~$ openssl enc -d -aes-256-cbc -pbkdf2 -iter 200000 -md sha256 -salt -in secrets.txt.enc -out secrets.txt
enter AES-256-CBC decryption password:JohnWeakP@sswd:)
Comment chiffrer des fichiers avec GnuPG sous Linux
Une autre façon de chiffrer des fichiers sous Linux consiste à utiliser GnuPG avec un chiffrement symétrique :
--symmetric
: Chiffre avec un algorithme symétrique en utilisant une phrase de passe.--s2k-cipher-algo AES256
: Définit AES-256 comme algorithme de chiffrement symétrique.--s2k-digest-algo SHA512
: Utilise SHA-512 comme algorithme de hachage pour la dérivation de clé.--s2k-count 65536
: Applique 65 536 itérations pour renforcer la phrase de passe contre les attaques par force brute.
🔐 Exemple : chiffrer le fichier secrets.txt
en secrets.txt.gpg
:
user@host:~$ gpg --symmetric --s2k-cipher-algo AES256 --s2k-digest-algo SHA512 --s2k-count 65536 -o secrets.txt.gpg secrets.txt
🔓 Exemple : déchiffrer secrets.txt.gpg
pour retrouver secrets.txt
:
user@host:~$ gpg --output secrets.txt --decrypt secrets.txt.gpg
Comment chiffrer un conteneur de fichiers sous Linux
Un conteneur chiffré permet de protéger des fichiers et des répertoires dans un même espace. En effet, il permet d’y placer n’importe quels fichiers en toute sécurité.

Comment créer et initialiser un conteneur de fichiers chiffré sous Linux
La première étape consiste à créer un conteneur chiffré sous Linux à l’aide de dd
.
Un conteneur est simplement un fichier classique qui sera ensuite formaté et monté comme un disque virtuel.
- Dans cet exemple, nous créons un fichier nommé
container
dans le répertoire racine (/container
). Sa taille est de 1 Gio et il est rempli de données aléatoires afin d’assurer la sécurité :
root@host:~# dd if=/dev/urandom of=/container bs=1M count=1024 iflag=fullblock status=progress
Ensuite, nous devons configurer un périphérique loop. Un périphérique loop sous Linux permet d’associer un fichier classique (comme notre conteneur) à un périphérique bloc virtuel, le faisant ainsi se comporter comme un véritable disque.
- Vérifiez le premier périphérique loop disponible :
root@host:~# losetup -f
- Associez le fichier
container
au périphérique loop/dev/loop0
:
root@host:~# losetup /dev/loop0 /container
- Installez le paquet
cryptsetup
, qui fournit les outils de chiffrement LUKS :
root@host:~# apt update && apt install cryptsetup
- Formatez le périphérique loop avec LUKS pour initialiser le chiffrement :
root@host:~# cryptsetup luksFormat /dev/loop0
WARNING!
========
This will overwrite data on /dev/loop0 irrevocably.
Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /container:JohnWeakP@sswd:)
Verify passphrase:JohnWeakP@sswd:)
- Ouvrez (déchiffrez) le périphérique loop avec LUKS et mappez-le vers un périphérique virtuel nommé
decrypted_container
:
root@host:~# cryptsetup luksOpen /dev/loop0 decrypted_container
Enter passphrase for /container:JohnWeakP@sswd:)
- Formatez le nouveau conteneur avec le système de fichiers de votre choix (ici ext4) :
root@host:~# mkfs.ext4 /dev/mapper/decrypted_container
- Une fois terminé, fermez le périphérique LUKS et détachez le périphérique loop :
root@host:~# cryptsetup luksClose /dev/mapper/decrypted_container
root@host:~# losetup -d /dev/loop0
Votre conteneur chiffré est maintenant créé, formaté et prêt à être utilisé sous Linux.
Comment monter le conteneur chiffré et copier des fichiers sous Linux
Voyons maintenant comment monter et utiliser le conteneur chiffré que nous avons créé précédemment.
- Vérifiez le premier périphérique loop disponible :
root@host:~# losetup -f
- Associez le fichier
container
au périphérique loop/dev/loop0
:
root@host:~# losetup /dev/loop0 /container
- Déverrouillez le périphérique loop avec LUKS et mappez-le vers
decrypted_container
:
root@host:~# cryptsetup luksOpen /dev/loop0 decrypted_container
Enter passphrase for /container:JohnWeakP@sswd:)
- Montez le conteneur déchiffré sur
/mnt/container
:
root@host:~# mkdir -p /mnt/container; mount /dev/mapper/decrypted_container /mnt/container
- Vous pouvez maintenant utiliser
/mnt/container
comme n’importe quel périphérique monté. Par exemple, copiez-y un fichier :
root@host:~# cp file.txt /mnt/container/
Chiffrer un disque sous Linux
Nous pouvons également chiffrer un disque entier à l’aide de LUKS sous Linux, offrant ainsi une protection complète pour tous les fichiers et partitions.

- Comme nous allons formater le disque, il est essentiel d’identifier correctement le périphérique que vous souhaitez chiffrer avant de continuer :
root@host:~# fdisk -l
Disk /dev/sdb: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 850
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 465,76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 850
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B06AF5D8-B51A-4688-98DC-C91E51E85AE0
Device Start End Sectors Size Type
/dev/sda1 2048 2000895 1998848 976M EFI System
/dev/sda2 2000896 79704063 77703168 37.1G Linux filesystem
/dev/sda3 79704064 83884031 4179968 2G Linux swap
- Créez une table de partitions GPT sur
/dev/sdb
et ajoutez une seule partition :
root@host:~# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.41).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS (MBR) disklabel with disk identifier 0x2e1f330d.
créer une table de partitions GPT
Command (m for help): g
Created a new GPT disklabel (GUID: 1BB9BB8D-14D8-411D-B398-8A1C6F125FB6).
créer une nouvelle partition
Command (m for help): n
appuyez sur Entrée pour accepter les valeurs par défaut
Partition number (1-128, default 1):
appuyez sur Entrée pour accepter les valeurs par défaut
First sector (2048-67108830, default 2048):
appuyez sur Entrée pour accepter les valeurs par défaut
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-976773168, default 976773168):
Created a new partition 1 of type 'Linux filesystem' and of size 465 GiB.
écrire les changements sur le disque et quitter
Command (m for help): w
- Installez le paquet
cryptsetup
, qui fournit les outils de chiffrement LUKS :
root@host:~# apt update && apt install cryptsetup
- Formatez la partition disque
/dev/sdb1
avec LUKS pour initialiser le chiffrement :
root@host:~# cryptsetup luksFormat /dev/sdb1
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.
Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sdb1:JohnWeakP@sswd:)
Verify passphrase:JohnWeakP@sswd:)
- Ouvrez la partition chiffrée
/dev/sdb1
avec LUKS et mappez-la vers un périphérique virtuel nommédecrypted_disk
:
root@host:~# cryptsetup luksOpen /dev/sdb1 decrypted_disk
Enter passphrase for /dev/sdb1:JohnWeakP@sswd:)
- Formatez le périphérique déverrouillé avec le système de fichiers de votre choix (ici ext4) :
root@host:~# mkfs.ext4 /dev/mapper/decrypted_disk
- Enfin, montez le disque déchiffré sur
/mnt/disk
:
root@host:~# mkdir -p /mnt/disk; mount /dev/mapper/decrypted_disk /mnt/disk