Man page - random(7)

Packages contains this manual

Available languages:

en fr es pl ru ro

Manual

random

NOM
DESCRIPTION
Initialisation de la rĂ©serve d’entropie
Choix de la source random
Monte-Carlo et autres applications d’échantillonnage probabiliste
Comparaison entre getrandom, /dev/urandom et /dev/random
Génération des clés de chiffrement
VOIR AUSSI
TRADUCTION

NOM

random – aperçu d’interfaces pour obtenir un caractĂšre alĂ©atoire

DESCRIPTION

Le gĂ©nĂ©rateur de nombres alĂ©atoires du noyau repose sur l’entropie recueillie Ă  partir de pilotes de pĂ©riphĂ©rique et d’autres sources de bruit environnemental pour ensemencer un gĂ©nĂ©rateur de nombres pseudo-alĂ©atoires (CSPRNG) sĂ»r du point de vue cryptographie. Il est conçu pour la sĂ©curitĂ© plutĂŽt que pour la rapiditĂ©.

Les interfaces suivantes fournissent un accĂšs pour obtenir un rĂ©sultat d’un gĂ©nĂ©rateur de nombres pseudo-alĂ©atoires du noyau :

-

Les pĂ©riphĂ©riques /dev/urandom et /dev/random , tous deux dĂ©crits dans random (4). Ces pĂ©riphĂ©riques sont prĂ©sents dans Linux depuis les premiers temps et sont aussi disponibles dans beaucoup d’autres systĂšmes.

-

L’appel systĂšme getrandom (2) spĂ©cifique Ă  Linux, disponible depuis Linux 3.17. Cet appel systĂšme fournit un accĂšs soit Ă  la mĂȘme source que /dev/urandom (appelĂ©e la source urandom dans cette page) ou Ă  la mĂȘme source que /dev/random (appelĂ©e la source random dans cette page). Celle par dĂ©faut est la source urandom . La source random est sĂ©lectionnĂ©e avec l’indicateur GRND_RANDOM dans l’appel systĂšme. La fonction getentropy (3) avec getrandom (2) fournit une interface lĂ©gĂšrement plus portable.

Initialisation de la rĂ©serve d’entropie

Le noyau collecte les bits d’entropie Ă  partir de l’environnement. Lorsque un nombre suffisant de bits a Ă©tĂ© collectĂ©, la rĂ©serve d’entropie est considĂ©rĂ©e comme initialisĂ©e.

Choix de la source random

À moins de vouloir gĂ©nĂ©rer une clef pĂ©renne (et trĂšs vraisemblablement mĂȘme pas dans ce cas), la lecture ne sera probablement pas faite Ă  partir du pĂ©riphĂ©rique /dev/random ou en employant getrandom (2) avec l’indicateur GRND_RANDOM . À la place, la lecture sera faite soit Ă  partir du pĂ©riphĂ©rique /dev/urandom ou en utilisant getrandom (2) sans l’indicateur GRND_RANDOM . Les cryptosystĂšmes pour la source urandom sont plutĂŽt conservatifs et par consĂ©quent devraient ĂȘtre suffisants pour toutes les utilisations.

L’inconvĂ©nient de GRND_RANDOM et des lectures Ă  partir de /dev/random est que l’opĂ©ration peut bloquer pendant une pĂ©riode indĂ©finie. De plus, gĂ©rer des requĂȘtes partiellement remplies pouvant se produire lors de l’utilisation de GRND_RANDOM ou de la lecture Ă  partir de /dev/random augmente la complexitĂ© du code.

Monte-Carlo et autres applications d’échantillonnage probabiliste

L’utilisation de ces interfaces pour fournir de grandes quantitĂ©s de donnĂ©es pour les simulations de Monte-Carlo et d’autres programmes ou algorithmes rĂ©alisant un Ă©chantillonnage probabiliste, sera peu rapide. De plus, c’est inutile parce que de telles applications n’ont pas besoin de nombres alĂ©atoires sĂ»rs du point de vue chiffrement. À la place, les interfaces dĂ©crites dans cette page sont Ă  utiliser pour obtenir une petite quantitĂ© de donnĂ©es pour ensemencer un gĂ©nĂ©rateur de nombres pseudo-alĂ©atoires pour ce type d’applications.

Comparaison entre getrandom, /dev/urandom et /dev/random

Le tableau suivant rĂ©sume le comportement des diverses interfaces qui peuvent ĂȘtre utilisĂ©es pour obtenir un caractĂšre alĂ©atoire. GRND_NONBLOCK est un indicateur qui peut ĂȘtre utilisĂ© pour contrĂŽler le comportement bloquant de getrandom (2). La derniĂšre colonne du tableau tient compte du cas pouvant se produire au tout dĂ©but du dĂ©marrage quand la rĂ©serve d’entropie n’est pas encore initialisĂ©e.

Image grohtml-3849365-1.png

Génération des clés de chiffrement

Le montant de matĂ©riel d’ensemencement nĂ©cessite de gĂ©nĂ©rer une clĂ© de chiffrement Ă©gale Ă  la taille effective de la clĂ©. Par exemple, une clĂ© privĂ©e ou Diffie-Hellman de 3072 bits a une taille effective de 128 bits (2^128 opĂ©rations sont nĂ©cessaires pour la casser), aussi un gĂ©nĂ©rateur de clĂ© a besoin de seulement 128 bits (16 octets) de matĂ©riel d’ensemencement Ă  partir de /dev/random .

Bien qu’une marge de sĂ©curitĂ© au-dessus de ce minimum soit raisonnable comme protection contre des dĂ©fauts d’algorithme de CSPRNG, aucune primitive cryptographique disponible actuellement ne peut espĂ©rer promettre plus de 256 bits de sĂ©curitĂ©, aussi, si un programme lit plus de 256 bits (32 octets) de la rĂ©serve de caractĂšre alĂ©atoire du noyau par invocation, ou par intervalle raisonnable de rĂ©ensemencement (pas moins d’une minute), cela doit ĂȘtre pris comme un signe que son chiffrement n’a pas Ă©tĂ© implĂ©mentĂ© savamment.

VOIR AUSSI

getrandom (2), getauxval (3), getentropy (3), random (4), urandom (4), signal (7)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .