Mis à jour le 28/02/2025 : nouvelle version de cipher pour le faire fonctionner correctement sous Windows.
Cet article est atypique car il ne traite pas de rétroprogrammation, mais présente un utilitaire qui fonctionne sous Linux. Cet utilitaire, dénommé cipher
, a été développé en langage C et est donc facilement adaptable à d’autres environnements.
Comme son nom le laisse entendre, cipher
permet de chiffrer un fichier. Il utilise un algorithme très simple, basé sur l’utilisation de XOR (ou exclusif).
L’algorithme utilise une clé de chiffrement, dont les bits sont multipliés par ‘ou exclusif’ avec ceux du message à chiffrer. La clé est répétée lorsque sa taille est inférieure à celle du message. Pour plus de détails, voici une page qui décrit plus précisément le fonctionnement du chiffrement XOR.
Installation
La première étape est de télécharger le code source :
Puis extraire les fichiers dans un répertoire de votre choix avec la commande :
tar xvf
Se placer ensuite dans le répertoire cipher
et saisir les commandes :
make
make install
La dernière commande copie l’exécutable dans le répertoire $(HOME)/bin
. Ce répertoire est donc à créer si nécessaire avant installation. Vous pouvez ensuite l’ajouter dans votre PATH
pour que la commande cipher
soit utilisable directement depuis votre répertoire courant.
Utilisation
Voici l’aide que l’on obtient avec la commande cipher -h
:
Usage : cipher [options] <file_input>
Options :
-o <file_output> : name of the output file
-k <key> : key
-K <file_key> : use the key from the file specified
-h : display help (usage)
<file_input>
est le fichier à chiffrer. Par défaut, le fichier de sortie (chiffré) prend le nom du fichier d’entrée auquel est ajouté le suffixe ‘.ci
‘. Il est néanmoins possible de spécifier le fichier de sortie avec l’option -o.
Il y a deux façons de saisir la clé :
- soit en la saisissant directement en ligne de commande (option
-k
) - soit la clé est stockée dans un fichier dont le nom est spécifié par l’option
-K
(K en majuscule)
En complément, le programme est livré avec un fichier README
qui donne une aide en anglais.
Licence
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.