Provided by: manpages-fr_4.19.0-7_all bug

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.

       ┌──────────────┬──────────────┬────────────────┬────────────────────┐
       │InterfaceRéserveComportementComportement si    │
       │              │              │ de blocageréserve pas encore │
       │              │              │                │ prête              │
       ├──────────────┼──────────────┼────────────────┼────────────────────┤
       │/dev/random   │ Réserve      │ Si entropie    │ Blocage jusqu’à    │
       │              │ bloquante    │ trop faible,   │ suffisamment       │
       │              │              │ blocage        │ d’entropie         │
       │              │              │ jusqu’à assez  │ accumulée          │
       │              │              │ d’entropie     │                    │
       ├──────────────┼──────────────┼────────────────┼────────────────────┤
       │/dev/urandom  │ Sortie       │ Aucun blocage  │ CSPRNG non         │
       │              │ CSPRNG       │                │ initialisé         │
       │              │              │                │ (entropie faible   │
       │              │              │                │ et inadapté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         │                    │
       │GRND_NONBLOCK │              │ d’entropie     │                    │
       │              │              │ disponible     │                    │
       └──────────────┴──────────────┴────────────────┴────────────────────┘
   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  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  ⟨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⟩.