CRYPT(3) Manuel du programmeur Linux CRYPT(3)
NOM
crypt - Crytage de données ou de mot-de-passe.
SYNOPSIS
#define _XOPEN_SOURCE_
#include <unistd.h>
char *crypt (const char *clé, const char *salt);
DESCRIPTION
La fonction crypt est celle utilisée pour le cryptage des
mots-de-passe. Elle est basée sur l'algorithme DES (Data
Encryption Standard) avec des variantes prévues entre
autres choses pour éviter l'implémentation matérielle d'un
casseur de code.
L'argument clé est le mot-de-passe saisi par l'utilisa
teur.
salt est une chaîne de deux caractères pris dans l'ensem
ble [a-zA-Z0-9./]. Cette chaîne est utilisée pour intro
duire une perturbation (parmi 4096) dans l'algorithme.
En utilisant les 7 bits de poids faibles de chaque car
actère de la clé, une clé de 56-bits est obtenue, qui est
alors utilisée pour crypter de manière répétée une chaîne
de caractères constante (souvent une chaîne de zéros).
La valeur renvoyée pointe sur le mot de passe crypté, une
chaîne de 13 caractères ASCII imprimables, les deux pre
miers caractères représentant l'argument salt lui-même.
Cette valeur renvoyée pointe sur des données statiques
dont le contenu est écrasé à chaque appel.
Attention : L'espace des clés consistent en 2^56, soit
7,2.10^16 valeurs possibles. Une recherche exhaustive est
possible en utilisant des ordinateurs massivement par
allèles. Certains logiciels sont disponibles, comme
crack(1), qui exploreront la portion de l'espace des clés
contenant les mots de passe habituellement utilisés par
les humains. Ainsi, le choix d'un mot de passe doit au
minimum éviter les noms propres ou communs. On recommande
fortement l'utilisation d'un programme comme passwd(1)
pour vérifier la fiabilité des mots de passe dès la
saisie.
L'algorithme DES lui-même a quelques inconvénients qui
rendent l'utilisation de crypt(3) peu recommandable pour
autre chose que le cryptage de mots de passe. Si vous
comptez développer un projet cryptographique en utilisant
crypt(3), abandonnez cette idée : achetez un bon bouquin
sur la cryptographie, et utilisez une bibliothèque DES
toute faite comme il en existe tant.
Linux 19 Juillet 1997 1
CRYPT(3) Manuel du programmeur Linux CRYPT(3)
CONFORMITÉ
SVID, X/OPEN, BSD 4.3
VOIR AUSSI
login(1), passwd(1), encrypt(3), getpass(3), passwd(5)
TRADUCTION
Christophe Blaess, 1997.
Linux 19 Juillet 1997 2