NOM¶
EVP_BytesToKey - Routine de chiffrement à base de mot de passe
SYNOPSIS¶
#include <openssl/evp.h>
int EVP_BytesToKey(const EVP_CIPHER *type,const EVP_MD *md,
const unsigned char *salt,
const unsigned char *data, int datal, int count,
unsigned char *key,unsigned char *iv);
DESCRIPTION¶
EVP_BytesToKey() dérive (fournit) une clef et un vecteur
d'initialisation à partir de plusieurs paramètres.
type
est l'algorithme de chiffrement pour dériver la clef et le vecteur
d'initialisation.
md est l'algorithme de signature de message à
utiliser. Le paramètre
salt est utilisé comme sel dans la
dérivation : il devrait pointer vers un tampon de
8 octets ou NULL s'il ne faut pas utiliser de sel.
data est un
tampon contenant
datal octets utilisé pour dériver
les données de clef.
count est le nombre d'itérations
à utiliser. La clef et le vecteur d'initialisation
dérivés seront respectivement écrits dans
key et
iv.
NOTES¶
Une application typique de cette fonction est de dériver du
matériel de clef pour un algorithme de chiffrement à partir d'un
mot de passe dans le paramètre
data.
Augmenter le paramètre
count ralentit l'algorithme, ce qui rend
plus difficile pour un attaquant de réaliser une attaque par force
brute utilisant un grand nombre de mots de passe candidats.
Si la taille totale de la clef et du vecteur d'initialisation est
inférieure à la taille de l'algorithme de signature est que
MD5 est utilisé, alors l'algorithme de dérivation est
compatible avec PKCS#5 v1.5, sinon une extension non normalisée
est utilisée pour fournir les données supplémentaires.
Les applications les plus récentes devraient utiliser plus d'algorithmes
normalisés comme PKCS#5 v2.0 pour la dérivation de clef.
ALGORITHME DE DÉRIVATION DE CLEF¶
La clef et le vecteur d'initialisation sont dérivés en
concaténant D_1, D_2, etc. jusqu'à ce que suffisamment de
données soient disponibles pour la clef et le vecteur d'initialisation.
D_i est défini comme :
D_i = HASH^count(D_(i-1) || data || salt)
où || indique la concaténation, D_0 est vide, HASH est
l'algorithme de signature utilisé, HASH^1(data) est simplement
HASH(data), HASH^2(data) est HASH(HASH(data)) et ainsi de suite.
Les octets initiaux sont utilisés pour la clef et les octets suivants
pour le vecteur d'initialisation.
VALEURS DE RETOUR¶
EVP_BytesToKey() renvoie la taille de la clef dérivée en
octet.
VOIR AUSSI¶
evp(3),
rand(3),
EVP_EncryptInit(3)
HISTORIQUE¶
TRADUCTION¶
La traduction de cette page de manuel est maintenue par les membres de la liste
<debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler
toute erreur de traduction par un rapport de bogue sur le paquet
manpages-fr-extra.