dwww Home | Manual pages | Find package

random(7)              Miscellaneous Information Manual              random(7)

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 re-
       cueillie à 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’entro-
       pie 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 à par-
       tir du périphérique /dev/random ou en employant getrandom(2) avec l’in-
       dicateur  GRND_RANDOM.  À la place, la lecture sera faite soit à partir
       du périphérique /dev/urandom ou en utilisant getrandom(2) sans  l’indi-
       cateur GRND_RANDOM. Les cryptosystèmes pour la source urandom sont plu-
       tô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  be-
       soin  de  nombres  aléatoires  sûrs  du  point de vue chiffrement. À la
       place, les interfaces décrites dans cette page sont à utiliser pour ob-
       tenir  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_NON-
       BLOCK est un indicateur qui peut être utilisé pour contrôler le compor-
       tement  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.

       ┌──────────────┬──────────────┬────────────────┬────────────────────┐
       │InterfaceRéserveComportementComportement si    │
       │              │              │ de blocageréserve pas encore │
       │              │              │                │ prête              │
       ├──────────────┼──────────────┼────────────────┼────────────────────┤
       │/dev/random   │ Réserve blo- │ Si entropie    │ Blocage jusqu’à    │
       │              │ quante       │ trop faible,   │ suffisamment d’en- │
       │              │              │ blocage        │ tropie accumulée   │
       │              │              │ jusqu’à assez  │                    │
       │              │              │ d’entropie     │                    │
       ├──────────────┼──────────────┼────────────────┼────────────────────┤
       │/dev/urandom  │ Sortie CS-   │ Aucun blocage  │ CSPRNG non initia- │
       │              │ PRNG         │                │ lisé (entropie     │
       │              │              │                │ faible et inadap-  │
       │              │              │                │ tée au chiffrement │
       │              │              │                │ ?)                 │
       ├──────────────┼──────────────┼────────────────┼────────────────────┤
       │getrandom()   │ Identique à  │ Aucun blocage  │ Blocage jusqu’à    │
       │              │ /dev/urandom │ si réserve     │ réserve prête      │
       │              │              │ prête          │                    │
       ├──────────────┼──────────────┼────────────────┼────────────────────┤
       │getrandom()   │ Identique à  │ Si entropie    │ Blocage jusqu’à    │
       │GRND_RANDOM/dev/random  │ trop faible,   │ réserve prête      │
       │              │              │ blocage        │                    │
       │              │              │ jusqu’à assez  │                    │
       │              │              │ d’entropie     │                    │
       ├──────────────┼──────────────┼────────────────┼────────────────────┤
       │getrandom()   │ Identique à  │ Aucun blocage  │ EAGAIN             │
       │GRND_NONBLOCK/dev/urandom │ si réserve     │                    │
       │              │              │ prête          │                    │
       ├──────────────┼──────────────┼────────────────┼────────────────────┤
       │getrandom()   │ Identique à  │ EAGAIN si      │ EAGAIN             │
       │GRND_RANDOM + │ /dev/random  │ manque d’en-   │                    │
       │GRND_NONBLOCK │              │ tropie dispo-  │                    │
       │              │              │ nible          │                    │
       └──────────────┴──────────────┴────────────────┴────────────────────┘
   Génération des clés de chiffrement
       The  amount  of  seed material required to generate a cryptographic key
       equals the effective key size of the key. For example, a  3072-bit  RSA
       or Diffie-Hellman private key has an effective key size of 128 bits (it
       requires about 2^128 operations to break) so a key generator needs only
       128 bits (16 bytes) of seed material from /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 pri-
       mitive  cryptographique  disponible  actuellement  ne peut espérer pro-
       mettre 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),  si-
       gnal(7)

TRADUCTION
       La  traduction française de cette page de manuel a été créée par Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.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.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.

Pages du manuel de Linux 6.03   10 février 2023                      random(7)

Generated by dwww version 1.15 on Sat Jun 29 01:39:59 CEST 2024.