.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright, the authors of the Linux man-pages project
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH random 7 "17 mai 2025" "Pages du manuel de Linux 6.15"
.SH NOM
random – aperçu d’interfaces pour obtenir un caractère aléatoire
.SH 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é.
.P
Les interfaces suivantes fournissent un accès pour obtenir un résultat d’un
générateur de nombres pseudo\-aléatoires du noyau :
.IP \- 3
Les périphériques \fI/dev/urandom\fP et \fI/dev/random\fP, tous deux décrits dans
\fBrandom\fP(4). Ces périphériques sont présents dans Linux depuis les premiers
temps et sont aussi disponibles dans beaucoup d’autres systèmes.
.IP \-
.\"
L’appel système \fBgetrandom\fP(2) spécifique à Linux, disponible depuis
Linux 3.17. Cet appel système fournit un accès soit à la même source que
\fI/dev/urandom\fP (appelée la source \fIurandom\fP dans cette page) ou à la même
source que \fI/dev/random\fP (appelée la source \fIrandom\fP dans cette
page). Celle par défaut est la source \fIurandom\fP. La source \fIrandom\fP est
sélectionnée avec l’indicateur \fBGRND_RANDOM\fP dans l’appel système. La
fonction \fBgetentropy\fP(3) avec \fBgetrandom\fP(2) fournit une interface
légèrement plus portable.
.SS "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.
.SS "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 \fI/dev/random\fP ou en employant \fBgetrandom\fP(2) avec
l’indicateur \fBGRND_RANDOM\fP. À la place, la lecture sera faite soit à partir
du périphérique \fI/dev/urandom\fP ou en utilisant \fBgetrandom\fP(2) sans
l’indicateur \fBGRND_RANDOM\fP. Les cryptosystèmes pour la source \fIurandom\fP
sont plutôt conservatifs et par conséquent devraient être suffisants pour
toutes les utilisations.
.P
.\"
L’inconvénient de \fBGRND_RANDOM\fP et des lectures à partir de \fI/dev/random\fP
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 \fBGRND_RANDOM\fP ou de la lecture à partir de \fI/dev/random\fP
augmente la complexité du code.
.SS "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.
.SS "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. \fBGRND_NONBLOCK\fP
est un indicateur qui peut être utilisé pour contrôler le comportement
bloquant de \fBgetrandom\fP(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.
.ad l
.TS
allbox;
lbw13 lbw12 lbw14 lbw18
l l l l.
Interface Réserve T{
Comportement
\%de blocage
T} T{
Comportement si réserve pas encore prête
T}
T{
\fI/dev/random\fP
T} T{
Réserve bloquante
T} T{
Si entropie trop faible, blocage jusqu’à assez d’entropie
T} T{
Blocage jusqu’à suffisamment d’entropie accumulée
T}
T{
\fI/dev/urandom\fP
T} T{
Sortie CSPRNG
T} T{
Aucun blocage
T} T{
CSPRNG non initialisé (entropie faible et inadaptée au chiffrement ?)
T}
T{
\fBgetrandom\fP()
T} T{
Identique à
\fI/dev/urandom\fP
T} T{
Aucun blocage si réserve prête
T} T{
Blocage jusqu’à réserve prête
T}
T{
\fBgetrandom\fP()
\fBGRND_RANDOM\fP
T} T{
Identique à
\fI/dev/random\fP
T} T{
Si entropie trop faible, blocage jusqu’à assez d’entropie
T} T{
Blocage jusqu’à réserve prête
T}
T{
\fBgetrandom\fP()
\fBGRND_NONBLOCK\fP
T} T{
Identique à
\fI/dev/urandom\fP
T} T{
Aucun blocage si réserve prête
T} T{
\fBEAGAIN\fP
T}
T{
\fBgetrandom\fP()
\fBGRND_RANDOM\fP
+
\fBGRND_NONBLOCK\fP
T} T{
Identique à
\fI/dev/random\fP
T} T{
\fBEAGAIN\fP
si manque d’entropie disponible
T} T{
\fBEAGAIN\fP
T}
.TE
.ad
.\"
.SS "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\[ha]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 \fI/dev/random\fP.
.P
.\"
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 \fIpas\fP été implémenté
savamment.
.SH "VOIR AUSSI"
\fBgetrandom\fP(2), \fBgetauxval\fP(3), \fBgetentropy\fP(3), \fBrandom\fP(4),
\fBurandom\fP(4), \fBsignal\fP(7)
.P
.UR http://www.2uo.de/myths\-about\-urandom/
.UE
.PP
.SH TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess ,
Stéphan Rafin ,
Thierry Vignaud ,
François Micaux,
Alain Portal ,
Jean-Philippe Guérard ,
Jean-Luc Coulon (f5ibh) ,
Julien Cristau ,
Thomas Huriaux ,
Nicolas François ,
Florentin Duneau ,
Simon Paillard ,
Denis Barbier ,
David Prévot
et
Jean-Paul Guillonneau
.
.PP
Cette traduction est une documentation libre ; veuillez vous reporter à la
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License version 3
.UE
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
.PP
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
.MT debian-l10n-french@lists.debian.org
.ME .