.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (C) 2008, George Spelvin <linux@horizon.com>, .\" and Copyright (C) 2008, Matt Mackall <mpm@selenic.com> .\" and Copyright (C) 2016, Laurent Georget <laurent.georget@supelec.fr> .\" and Copyright (C) 2016, Nikos Mavrogiannopoulos <nmav@redhat.com> .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" The following web page is quite informative: .\" http://www.2uo.de/myths-about-urandom/ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH random 7 "2 Mayo 2024" "Páginas de Manual de Linux 6.9.1" .SH NOMBRE random \- visión general de las interfaces para la obtención de datos aleatorios .SH DESCRIPCIÓN El generador de números aleatorios del núcleo se basa en la entropía recogida de los controladores de dispositivos y otras fuentes de ruido ambiental para sembrar un generador pseudoaleatorio de números criptográficamente seguro (CSPRNG). En su diseño se primó la seguridad sobre la velocidad. .P Las siguientes interfaces proporcionan acceso a la salida del núcleo CSPRNG: .IP \[bu] 3 Los dispositivos \fI/dev/urandom\fP y \fIdev/random\fP se describen en \fBrandom \fP(4). Estos dispositivos existen desde los primeros tiempos de Linux, también están disponibles en muchos otros sistemas. .IP \[bu] .\" La llamada de sistema \fBgetrandom\fP(2) específica de Linux, disponible desde Linux 3.17. Esta llamada del sistema proporciona acceso a la misma fuente que \fI/dev/urandom\fP (llamada la fuente \fIurandom\fP en este documento) o a la mismo fuente como \fI/dev/random\fP. La fuente predeterminada es \fIurandom\fP; la fuente \fIrandom\fP se selecciona mediante la opción \fBGRND_RANDOM\fP para la llamada del sistema. La función \fBgetentropy\fP(3) proporciona una interfaz ligeramente más portable a un nivel superior de \fBgetrandom\fP(2).) .SS "Inicio del pool de entropía" El núcleo recoge entropía del entorno. Cuando se ha recogido un número suficiente de bits aleatorios, el pool de entropía se considera iniciado. .SS "Selección de la fuente de aleatoriedad" Salvo que se desee generar claves pensando a largo plazo (y probablemente ni siquiera asi), no debería estar leyendo desde el dispositivo \fI/dev/random\fP o empleando \fBgetrandom \fP(2) con la opción \fBGRND_RANDOM\fP. En su lugar debería leer desde el dispositivo \fI/dev/urandom\fP o emplear \fBgetrandom\fP(2) sin la opción \fBGRND_RANDOM\fP. Los algoritmos criptográficos utilizados para la fuente de \fIurandom\fP son bastante conservadores, y deberían ser suficientes para todos los casos. .P .\" La desventaja de \fBGRND_RANDOM\fP y de leer desde \fI/dev/random\fP es que la operación puede bloquear por un período de tiempo indefinido. La gestión de las solicitudes parcialmente cumplidas que pueden ocurrir cuando se utiliza \fBGRND_RANDOM\fP o cuando se lee desde \fI/dev/random\fP aumentan la complejidad del código. .SS "Monte Carlo y otras aplicaciones de muestreo probabilístico" .\" El uso de estas interfaces para proporcionar grandes cantidades de datos para simulaciones de Monte Carlo u otros programas/algoritmos que están haciendo muestreo probabilístico será lento. Además, es innecesario, ya que esas aplicaciones no necesitan números aleatorios criptográficamente seguros. En su lugar, utilice las interfaces descritas en esta página para obtener una pequeña cantidad de datos para sembrar un generador de números pseudoaleatorio en el espacio de usuario para el uso de estas aplicaciones. .SS "Comparación entre getrandom, /dev/urandom y /dev/random" La siguiente tabla resume el comportamiento de las diversas interfaces que se pueden utilizar para obtener datos aleatorios. \fBGRND_NONBLOCK\fP se puede usar para controlar el comportamiento de bloqueo de \fBgetrandom\fP(2). La última columna de la tabla considera el caso que puede ocurrir al comienzo del inicio cuando aún no está iniciado el pool de entropía. .ad l .TS allbox; lbw13 lbw12 lbw14 lbw18 l l l l. Interfaz Pool T{ Comportamiento de \%bloqueo T} T{ Comportamiento cuando el pool aún no está preparado T} T{ \fI/dev/random\fP T} T{ Pool de bloqueo T} T{ Si el nivel de entropía es demasiado bajo, bloquea hasta que haya suficiente T} T{ Bloquea hasta que se haya acumulado suficiente entropía T} T{ \fI/dev/urandom\fP T} T{ Salida CSPRNG T} T{ Nunca bloquea T} T{ Devuelve la salida de un CSPRNG no iniciado (seguramente de baja entropía, no válido con fines criptográficos) T} T{ \fBgetrandom\fP() T} T{ Igual a \fI/dev/urandom\fP T} T{ No bloquea una vez que el pool esté preparado T} T{ Bloquea hasta que el pool esté preparado T} T{ \fBgetrandom\fP() \fBGRND_RANDOM\fP T} T{ Igual que \fI/dev/random\fP T} T{ Si el nivel de entropía es demasiado bajo, bloquea hasta que haya suficiente T} T{ Bloquea hasta que el pool esté preparado T} T{ \fBgetrandom\fP() \fBGRND_NONBLOCK\fP T} T{ Igual a \fI/dev/urandom\fP T} T{ No bloquea una vez que el pool esté preparado T} T{ \fBEAGAIN\fP T} T{ \fBgetrandom\fP() \fBGRND_RANDOM\fP + \fBGRND_NONBLOCK\fP T} T{ Igual que \fI/dev/random\fP T} T{ \fBEAGAIN\fP Si no se dispone de suficiente entropía T} T{ \fBEAGAIN\fP T} .TE .ad .\" .SS "Generación de claves criptográficas" El tamaño de la semilla necesaria para generar una clave criptográfica equivale al tamaño de la clave efectiva de la llave. Por ejemplo, una llave privada RSA de 3072 bits o Diffie\-Hellman tiene un tamaño de llave efectivo de 128 bits (requiere aproximadamente 2\[ha]128 operaciones para romper) por lo que un generador de llaves sólo necesita 128 bits (16 bytes) de \fI/dev/random\fP. .P .\" Aunque es razonable un margen de seguridad por encima de ese mínimo frente afallos en el algoritmo CSPRNG, ningún primitivo criptográfico disponible actualmente puede prometer más de 256 bits de seguridad, por lo que si cualquier programa lee más de 256 bits (32 bytes) del núcleo pool aleatorio por invocación, o por un intervalo razonablemente 'resembrado' (no menos de un minuto), debe tomarse como una señal de que la criptografía \fIno\fP está habilmente implementada. .SH "VÉASE TAMBIÉN" \fBgetrandom\fP(2), \fBgetauxval\fP(3), \fBgetentropy\fP(3), \fBrandom\fP(4), \fBurandom\fP,(4) \fBsignal\fP(7) .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Marcos Fouces <marcos@debian.org> . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .