Generador de números aleatorios de hardware
En informática, un generador de números aleatorios de hardware (HRNG) o generador de números aleatorios verdaderos (TRNG) es un dispositivo que genera números aleatorios a partir de un proceso físico, en lugar de hacerlo mediante un algoritmo. Dichos dispositivos a menudo se basan en fenómenos microscópicos que generan 'ruido' estadísticamente aleatorio de bajo nivel. señales, como el ruido térmico, el efecto fotoeléctrico, que involucra un divisor de haz y otros fenómenos cuánticos. Estos procesos estocásticos son, en teoría, completamente impredecibles mientras se desconozca o no se pueda calcular una ecuación que gobierne tales fenómenos. Esto contrasta con el paradigma de generación de números pseudoaleatorios comúnmente implementado en programas de computadora.
Un generador de números aleatorios de hardware generalmente consta de un transductor para convertir algún aspecto del fenómeno físico en una señal eléctrica, un amplificador y otros circuitos electrónicos para aumentar la amplitud de las fluctuaciones aleatorias a un nivel medible, y algún tipo de analógico. convertidor a digital para convertir la salida en un número digital, a menudo un dígito binario simple 0 o 1. Al muestrear repetidamente la señal que varía aleatoriamente, se obtiene una serie de números aleatorios.
La principal aplicación de los generadores de números aleatorios de hardware electrónico es la criptografía, donde se utilizan para generar claves criptográficas aleatorias para transmitir datos de forma segura. Son ampliamente utilizados en protocolos de cifrado de Internet como Transport Layer Security (TLS).
También se pueden construir generadores de números aleatorios a partir de "aleatorios" procesos macroscópicos, utilizando dispositivos como el lanzamiento de monedas, dados, ruedas de ruleta y máquinas de lotería. La presencia de imprevisibilidad en estos fenómenos está respaldada por la teoría de los sistemas dinámicos inestables y la teoría del caos. Aunque los procesos macroscópicos son deterministas bajo la mecánica newtoniana, el resultado de un dispositivo bien diseñado puede ser poco práctico de predecir en la práctica, porque depende de los microdetalles sensibles de las condiciones iniciales de cada uso.
Aunque los dados se han utilizado principalmente en los juegos de azar y como "aleatorización" elementos en juegos (por ejemplo, juegos de rol), el científico victoriano Francis Galton describió una forma de usar dados para generar explícitamente números aleatorios con fines científicos en 1890.
Los generadores de números aleatorios de hardware generalmente producen solo una cantidad limitada de bits aleatorios por segundo. Con el fin de aumentar la tasa de datos de salida disponible, a menudo se utilizan para generar la "semilla" para un generador de números pseudoaleatorios criptográficamente seguro más rápido, que luego genera una secuencia de salida pseudoaleatoria a una velocidad de datos mucho más alta.
Con generadores de números aleatorios basados en un sistema clásico ruidoso o una medida cuántica elemental, las afirmaciones de imprevisibilidad deben basarse en un modelo cuidadoso que describa la física subyacente. Sin embargo, cualquier modelo de este tipo debe hacer una serie de suposiciones que pueden no ser válidas y son difíciles de verificar. Pero a partir de 2010, "certificado por Einstein" Los experimentos de física cuántica han podido demostrar, a veces incluso a observadores remotos, que los bits que producen son impredecibles, lo que requiere solo suposiciones muy leves acerca de que las señales no pueden viajar más rápido que la velocidad de la luz.
Usos
Los números aleatorios impredecibles se investigaron por primera vez en el contexto de los juegos de azar, y muchos dispositivos de aleatorización, como los dados, barajar las cartas y las ruedas de la ruleta, se desarrollaron por primera vez para tal uso. Los números aleatorios producidos de manera justa son vitales para los juegos de azar electrónicos y las formas de crearlos a veces están reguladas por las comisiones gubernamentales de juegos.
Los números aleatorios también se utilizan con fines no relacionados con los juegos de azar, tanto cuando su uso es matemáticamente importante, como el muestreo para encuestas de opinión, como en situaciones en las que la aleatorización se aproxima a la imparcialidad, como loterías militares y selección de jurados.
Criptografía
El uso principal de los generadores de números aleatorios de hardware está en el campo del cifrado de datos, por ejemplo, para crear claves criptográficas aleatorias y nonces necesarios para cifrar y firmar datos. Son una alternativa más segura a los generadores de números pseudoaleatorios (PRNG), programas de software comúnmente utilizados en las computadoras para generar números "aleatorios" números. Los PRNG utilizan un algoritmo determinista para producir secuencias numéricas. Aunque estas secuencias pseudoaleatorias superan las pruebas de patrones estadísticos de aleatoriedad, al conocer el algoritmo y las condiciones utilizadas para inicializarlo, denominado "semilla", se puede predecir el resultado. Los datos cifrados con números pseudoaleatorios son, por lo tanto, potencialmente vulnerables al criptoanálisis. Los generadores de números aleatorios de hardware producen secuencias de números que pueden ser muy difíciles de predecir y, por lo tanto, pueden proporcionar la mayor seguridad cuando se usan para cifrar datos.
Trabajo temprano
Una de las primeras formas de producir números aleatorios era mediante una variación de las mismas máquinas que se usaban para jugar al keno o seleccionar números de lotería. Estos involucraron pelotas de ping-pong numeradas y mezcladas con aire soplado, quizás combinadas con agitación mecánica, y usaron algún método para retirar las pelotas de la cámara de mezcla (Patente de EE. UU. 4,786,056). Este método puede dar resultados razonables en algunos sentidos, pero los números aleatorios generados por este medio son costosos y, a veces, estadísticamente defectuosos. El método es intrínsecamente lento y no se puede utilizar para la mayoría de las aplicaciones informáticas.
El 29 de abril de 1947, RAND Corporation comenzó a generar dígitos aleatorios con una "rueda de ruleta electrónica", que constaba de una fuente de pulsos de frecuencia aleatoria de alrededor de 100 000 pulsos por segundo controlados una vez por segundo con un pulso de frecuencia constante y alimentado en un contador binario de cinco bits. Douglas Aircraft construyó el equipo, implementando la sugerencia de Cecil Hasting (RAND P-113) para una fuente de ruido (probablemente el comportamiento bien conocido del tubo tiratrón de gas en miniatura 6D4, cuando se coloca en un campo magnético). Veinte de los 32 valores de contador posibles se asignaron a los 10 dígitos decimales y los otros 12 valores de contador se descartaron.
Los resultados de una larga serie de la máquina RAND, filtrados y probados, se convirtieron en una tabla, que se publicó en 1955 en el libro A Million Random Digits with 100,000 Normal Deviates. La tabla RAND fue un avance significativo en la entrega de números aleatorios porque nunca antes había estado disponible una tabla tan grande y cuidadosamente preparada. Ha sido una fuente útil para simulaciones, modelado y para derivar las constantes arbitrarias en algoritmos criptográficos para demostrar que las constantes no se seleccionaron maliciosamente. Los cifrados de bloque Khufu y Khafre se encuentran entre las aplicaciones que utilizan la tabla RAND. Ver: Nada bajo mis números de manga.
Fenómenos físicos con propiedades aleatorias
Propiedades aleatorias cuánticas
Hay dos fuentes fundamentales de aleatoriedad física mecánica cuántica práctica: la mecánica cuántica a nivel atómico o subatómico y el ruido térmico (algunos de los cuales son de origen mecánico cuántico). La mecánica cuántica predice que ciertos fenómenos físicos, como la descomposición nuclear de los átomos, son fundamentalmente aleatorios y, en principio, no pueden predecirse (para una discusión sobre la verificación empírica de la imprevisibilidad cuántica, consulte Experimentos de prueba de Bell). Y, debido a que el mundo existe a una temperatura superior al cero absoluto, cada sistema tiene alguna variación aleatoria en su estado; por ejemplo, las moléculas de los gases que componen el aire rebotan constantemente entre sí de forma aleatoria (ver mecánica estadística). Esta aleatoriedad también es un fenómeno cuántico (ver fonón).
Debido a que el resultado de los eventos de la mecánica cuántica no se puede predecir ni siquiera en principio, son el "estándar de oro" para la generación de números aleatorios. Algunos fenómenos cuánticos utilizados para la generación de números aleatorios incluyen:
- Disparo de ruido, una fuente de ruido mecánico cuántica en circuitos electrónicos. Un ejemplo simple es una lámpara que brilla en una fotodioda. Debido al principio de incertidumbre, los fotones que llegan crean ruido en el circuito. Recoger el ruido para su uso plantea algunos problemas, pero esta es una fuente de ruido aleatoria especialmente simple. Sin embargo, la energía del ruido de tiro no siempre está bien distribuida a lo largo del ancho de banda de interés. El diodo de gas y los tubos de electrones de tiratrón en un campo magnético transversal pueden generar energía de ruido sustancial (10 voltios o más en cargas de impedancia alta) pero tienen una distribución de energía muy alta y requieren un filtrado cuidadoso para lograr la flatness a través de un amplio espectro.
- Fuente de radiación de decaimiento nuclear, detectada por un contador Geiger conectado a un PC.
- Fotones que viajan a través de un espejo semi-transparente. Los eventos mutuamente exclusivos (reflexión/transmisión) se detectan y se asocian a valores bits de 0 o 1 respectivamente.
- Amplificación de la señal producida en la base de un transistor imparcial inverso. El emisor está saturado con electrones y ocasionalmente túnel a través de la brecha de banda y salida a través de la base. Esta señal se amplifica luego a través de algunos transistores más y el resultado se introduce en un desencadenante de Schmitt.
- Conversión paramétrica espontánea que conduce a la selección de estado de fase binaria en un oscilador óptico paramétrico degenerado.
- Fluctuaciones en la energía del vacío medida a través de la detección de homodina.
Propiedades aleatorias clásicas
Los fenómenos térmicos son más fáciles de detectar. Son algo vulnerables a los ataques al bajar la temperatura del sistema, aunque la mayoría de los sistemas dejarán de funcionar a temperaturas lo suficientemente bajas como para reducir el ruido en un factor de dos (por ejemplo, ~150 K). Algunos de los fenómenos térmicos utilizados incluyen:
- El ruido térmico de un resistor, amplificado para proporcionar una fuente de tensión aleatoria.
- El ruido de Avalanche generado a partir de un diodo de avalancha, o el ruido de descomposición de Zener de un diodo de Zener.
- El ruido atmosférico, detectado por un receptor de radio conectado a un PC (aunque gran parte de él, como el ruido relámpago, no es el ruido térmico adecuado, pero lo más probable es un fenómeno caótico).
En ausencia de efectos cuánticos o ruido térmico, se pueden utilizar otros fenómenos que tienden a ser aleatorios, aunque en formas que las leyes de la física no caracterizan fácilmente. Cuando varias de estas fuentes se combinan cuidadosamente (como, por ejemplo, en el algoritmo Yarrow o Fortuna CSPRNG), se puede recopilar suficiente entropía para la creación de claves criptográficas y nonces, aunque generalmente a tasas restringidas. La ventaja es que este enfoque no necesita, en principio, ningún hardware especial. La desventaja es que un atacante suficientemente informado puede modificar subrepticiamente el software o sus entradas, reduciendo así la aleatoriedad de la salida, quizás sustancialmente. La principal fuente de aleatoriedad que se suele utilizar en tales enfoques es la sincronización precisa de las interrupciones causadas por dispositivos mecánicos de entrada/salida, como teclados y unidades de disco, varios contadores de información del sistema, etc.
Este último enfoque debe implementarse con cuidado y puede estar sujeto a ataques si no lo es. Por ejemplo, la seguridad directa del generador en el kernel de Linux 2.6.10 podría romperse con una complejidad de tiempo de 264 o 296.
Desviación del reloj
Otro fenómeno físico variable que es fácil de medir es la desviación del reloj. Hay varias formas de medir y utilizar la desviación del reloj como fuente de aleatoriedad.
El chip Intel 82802 Firmware Hub (FWH) incluía un RNG de hardware que usaba dos osciladores de ejecución libre, uno rápido y otro lento. Se utiliza una fuente de ruido térmico (ruido de modo no común de dos diodos) para modular la frecuencia del oscilador lento, que luego activa una medición del oscilador rápido. Luego, esa salida se elimina mediante un paso de descorrelación de tipo von Neumann (ver más abajo). La velocidad de salida de este dispositivo es algo inferior a 100.000 bit/s. Este chip era un componente opcional de la familia de chipsets 840 que admitía un bus Intel anterior. No está incluido en las PC modernas.
Todos los microprocesadores VIA C3 han incluido un RNG de hardware en el chip del procesador desde 2003. En lugar de utilizar ruido térmico, los bits sin procesar se generan mediante el uso de cuatro osciladores de funcionamiento libre que están diseñados para funcionar a diferentes velocidades. La salida de dos se somete a XOR para controlar la polarización en un tercer oscilador, cuya salida sincroniza la salida del cuarto oscilador para producir el bit sin procesar. Las variaciones menores en la temperatura, las características del silicio y las condiciones eléctricas locales provocan variaciones continuas de la velocidad del oscilador y, por lo tanto, producen la entropía de los bits en bruto. Para garantizar aún más la aleatoriedad, en realidad hay dos RNG de este tipo en cada chip, cada uno colocado en diferentes entornos y girado sobre el silicio. El resultado final es una mezcla de estos dos generadores. La tasa de salida sin procesar es de decenas a cientos de megabits por segundo, y la tasa blanqueada es de unos pocos megabits por segundo. El software del usuario puede acceder al flujo de bits aleatorio generado utilizando nuevas instrucciones de lenguaje de máquina sin privilegios.
CryptoLib, una biblioteca de rutinas criptográficas, incluye una implementación de software de una idea relacionada en hardware ordinario. El algoritmo se llama truerand. La mayoría de las computadoras modernas tienen dos osciladores de cristal, uno para el reloj de tiempo real y otro para el reloj de la CPU principal; truerand explota este hecho. Utiliza un servicio del sistema operativo que configura una alarma y se ejecuta fuera del reloj en tiempo real. Una subrutina configura esa alarma para que suene en un tic de reloj (generalmente 1/60 de segundo). Luego, otro ingresa a un ciclo while esperando que se dispare la alarma. Dado que la alarma no siempre se activará exactamente en un tic, los bits menos significativos de un recuento de iteraciones de bucle, entre la configuración de la alarma y su activación, variarán aleatoriamente, posiblemente lo suficiente para algunos usos. Truerand no requiere hardware adicional, pero en un sistema multitarea se debe tener mucho cuidado para evitar la interferencia no aleatoria de otros procesos (por ejemplo, en la suspensión del proceso de ciclo de conteo cuando el programador del sistema operativo se inicia y se detiene). procesos variados).
El código de operación RDRAND devolverá valores de un generador de números aleatorios de hardware integrado. Está presente en los procesadores Intel Ivy Bridge y AMD64 desde 2015.
Lidiar con los prejuicios
El flujo de bits de dichos sistemas puede ser propenso a estar sesgado, con predominio de 1 o 0. Hay dos enfoques para lidiar con el sesgo y otros artefactos. El primero es diseñar el RNG para minimizar el sesgo inherente a la operación del generador. Un método para corregir esto retroalimenta el flujo de bits generado, filtrado por un filtro de paso bajo, para ajustar la polarización del generador. Por el teorema del límite central, el ciclo de retroalimentación tenderá a estar bien ajustado 'casi todo el tiempo'. Los generadores de números aleatorios de ultra alta velocidad suelen utilizar este método. Incluso entonces, los números generados suelen estar algo sesgados.
Blanqueamiento de software
Un segundo enfoque para lidiar con el sesgo es reducirlo después de la generación (en software o hardware). Existen varias técnicas para reducir el sesgo y la correlación, a menudo denominadas "blanqueamiento" algoritmos, por analogía con el problema relacionado de producir ruido blanco a partir de una señal correlacionada.
John von Neumann inventó un algoritmo simple para corregir el sesgo simple y reducir la correlación. Considera dos bits a la vez (no superpuestos), tomando una de tres acciones: cuando dos bits sucesivos son iguales, se descartan; una secuencia de 1,0 se convierte en 1; y una secuencia de 0,1 se convierte en cero. Por lo tanto, representa un flanco descendente con un 1 y un flanco ascendente con un 0. Esto elimina el sesgo simple y es fácil de implementar como un programa de computadora o en lógica digital. Esta técnica funciona independientemente de cómo se hayan generado los bits. Sin embargo, no puede asegurar la aleatoriedad en su salida. Lo que puede hacer (con un número significativo de bits descartados) es transformar un flujo de bits aleatorio sesgado en uno imparcial.
Otra técnica para mejorar un flujo de bits casi aleatorio es exclusivo, o el flujo de bits con la salida de un generador de números pseudoaleatorios criptográficamente seguro de alta calidad como Blum Blum Shub o un cifrado de flujo fuerte. Esto puede mejorar la descorrelación y el sesgo de dígitos a bajo costo; se puede hacer por hardware, como una matriz de puertas programables en campo, que es más rápido que hacerlo por software.
Un método relacionado que reduce el sesgo en un flujo de bits casi aleatorio es tomar dos o más flujos de bits casi aleatorios no correlacionados y combinarlos de forma exclusiva. Sea la probabilidad de que un flujo de bits produzca un 0 sea 1/2 + e, donde −1/2 ≤ e ≤ 1/2. Entonces e es el sesgo del flujo de bits. Si dos flujos de bits no correlacionados con sesgo e se excluyen o se combinan, entonces el sesgo del resultado será 2e2. Esto puede repetirse con más flujos de bits (ver también el lema Amontonamiento).
Algunos diseños aplican funciones hash criptográficas como MD5, SHA-1 o RIPEMD-160 o incluso una función CRC a todo o parte del flujo de bits y luego usan la salida como flujo de bits aleatorio. Esto es atractivo, en parte porque es relativamente rápido.
Se pueden utilizar muchos fenómenos físicos para generar bits muy sesgados, pero cada bit es independiente de los demás. Un contador Geiger (con un tiempo de muestra más largo que el tiempo de recuperación del tubo) o un detector de fotones de espejo semitransparente generan flujos de bits que en su mayoría son "0" (silencio o transmisión) con el ocasional "1" (clic o reflejo). Si cada bit es independiente de los demás, la estrategia de Von Neumann genera un bit de salida aleatorio e imparcial para cada uno de los raros "1" bits en un flujo de bits tan altamente sesgado. Las técnicas de blanqueamiento como la estrategia multinivel avanzada (AMLS) pueden extraer más bits de salida (bits de salida que son igual de aleatorios e imparciales) de un flujo de bits tan altamente sesgado.
PRNG con clave aleatoria actualizada periódicamente
Otros diseños utilizan lo que se cree que son bits aleatorios verdaderos como la clave para un algoritmo de cifrado de bloque de alta calidad, tomando la salida cifrada como el flujo de bits aleatorio. Sin embargo, se debe tener cuidado en estos casos para seleccionar un modo de bloqueo apropiado. En algunas implementaciones, el PRNG se ejecuta para un número limitado de dígitos, mientras que el dispositivo generador de hardware produce una nueva semilla.
Uso de eventos observados
Los ingenieros de software sin verdaderos generadores de números aleatorios a menudo intentan desarrollarlos midiendo los eventos físicos disponibles para el software. Un ejemplo es medir el tiempo entre las pulsaciones de teclas del usuario y luego tomar el bit menos significativo (o dos o tres) de la cuenta como un dígito aleatorio. Un enfoque similar mide la programación de tareas, los accesos a la red, los tiempos de búsqueda de la cabeza del disco y otros eventos internos. Un diseño de Microsoft incluye una lista muy larga de dichos valores internos, una forma de generador de números pseudoaleatorios criptográficamente seguro. También se han utilizado lámparas de lava como dispositivos físicos a monitorear, como en el sistema Lavarand.
El método es arriesgado cuando utiliza eventos controlados por computadora porque un atacante inteligente y malicioso podría predecir una clave criptográfica controlando los eventos externos. También es arriesgado porque el supuesto evento generado por el usuario (p. ej., pulsaciones de teclas) puede ser falsificado por un atacante lo suficientemente ingenioso, lo que permite el control de los "valores aleatorios" utilizado por la criptografía.
Sin embargo, con suficiente cuidado, se puede diseñar un sistema que produzca números aleatorios criptográficamente seguros a partir de las fuentes de aleatoriedad disponibles en una computadora moderna. El diseño básico es mantener un "grupo de entropía" de bits aleatorios que se supone que son desconocidos para un atacante. Se agrega nueva aleatoriedad siempre que esté disponible (por ejemplo, cuando el usuario presiona una tecla) y se mantiene una estimación de la cantidad de bits en el grupo que un atacante no puede conocer. Algunas de las estrategias en uso incluyen:
- Cuando se solicitan bits aleatorios, devuelve que muchos bits derivan de la piscina de entropía (por una función de hash criptográfica, digamos) y decree la estimación del número de bits aleatorios que quedan en la piscina. Si no hay suficientes bits desconocidos disponibles, espere hasta que estén disponibles. Este es el diseño de nivel superior del dispositivo "/dev/random" en Linux, escrito por Theodore Ts'o y utilizado en muchos otros sistemas operativos similares a Unix. Proporciona números aleatorios de alta calidad mientras las estimaciones de la aleatoriedad de entrada son suficientemente cautelosas. El dispositivo Linux "/dev/urandom" es una simple modificación que hace caso omiso de las estimaciones de la aleatoriedad de entrada, y por lo tanto es menos probable que tenga una alta entropía como resultado.
- Mantenga un cifrado de flujo con un vector de inicialización y clave (IV) obtenido de una piscina entropía. Cuando se hayan recogido suficientes bits de entropía, sustitúyase tanto la clave como la IV con nuevos valores aleatorios y disminuya la entropía estimada que queda en la piscina. Este es el enfoque adoptado por la biblioteca yarrow. Proporciona resistencia contra algunos ataques y conserva entropía difícil de detectar.
Sistemas en línea
Se puede ofrecer un verdadero generador de números aleatorios como un servicio en línea centralizado. Un ejemplo es el servicio de baliza aleatoria del Instituto Nacional de Estándares y Tecnología; otro ejemplo es Random.org, un servicio que utiliza el ruido atmosférico para generar dígitos binarios aleatorios (bits).
Estos servicios en línea también se pueden descentralizar. Por ejemplo, la plataforma Cardano utiliza a los participantes de su protocolo descentralizado de prueba de participación para generar números aleatorios.
En 2019 se lanzó otro servicio descentralizado a través de League of Entropy. Combina entradas aleatorias de una variedad de fuentes, a través del software drand de código abierto que minimiza la cantidad de confianza que los usuarios necesitan tener.
Problemas
Es muy fácil malinterpretar dispositivos de hardware o software que intentan generar números aleatorios. Además, la mayoría 'romper' en silencio, a menudo produciendo números aleatorios decrecientes a medida que se degradan. Un ejemplo físico podría ser la rápida disminución de la radiactividad de los detectores de humo mencionados anteriormente, si esta fuente se usara directamente. Los modos de falla en tales dispositivos abundan y son complicados, lentos y difíciles de detectar. Los métodos que combinan múltiples fuentes de entropía son más robustos.
Debido a que muchas fuentes de entropía suelen ser bastante frágiles y fallan silenciosamente, las pruebas estadísticas de su salida deben realizarse continuamente. Muchos de estos dispositivos, pero no todos, incluyen algunas pruebas de este tipo en el software que lee el dispositivo.
Ataques
Al igual que con otros componentes de un sistema de criptografía, un generador de números aleatorios de software debe diseñarse para resistir ciertos ataques. La defensa contra estos ataques es difícil sin una fuente de entropía de hardware.
Estimación de la entropía
Existen técnicas matemáticas para estimar la entropía de una secuencia de símbolos. Ninguno es tan confiable que se pueda confiar plenamente en sus estimaciones; siempre hay suposiciones que pueden ser muy difíciles de confirmar. Estos son útiles para determinar si hay suficiente entropía en un grupo de semillas, por ejemplo, pero, en general, no pueden distinguir entre una fuente aleatoria verdadera y un generador pseudoaleatorio. Este problema se evita mediante el uso conservador de fuentes de entropía de hardware.
Prueba de rendimiento
Los generadores de números aleatorios de hardware deben supervisarse constantemente para garantizar un funcionamiento adecuado. RFC 4086, FIPS Pub 140-2 y NIST Special Publication 800-90b incluyen pruebas que pueden usarse para esto. Consulte también la documentación de la biblioteca de software criptográfico de Nueva Zelanda cryptlib.
Dado que muchos diseños prácticos se basan en una fuente de hardware como entrada, será útil al menos comprobar que la fuente sigue funcionando. Las pruebas estadísticas a menudo pueden detectar fallas en una fuente de ruido, como una estación de radio que transmite en un canal que se cree que está vacío, por ejemplo. La salida del generador de ruido se debe muestrear para probarla antes de pasarla por un "blanqueador." Algunos diseños de blanqueadores pueden pasar pruebas estadísticas sin entrada aleatoria. Si bien la detección de una gran desviación de la perfección sería una señal de que una verdadera fuente de ruido aleatorio se ha degradado, las pequeñas desviaciones son normales y pueden ser una indicación de un funcionamiento adecuado. La correlación del sesgo en las entradas del diseño de un generador con otros parámetros (p. ej., temperatura interna, voltaje del bus) podría ser útil como verificación adicional. Desafortunadamente, con las pruebas actualmente disponibles (y previstas), pasar tales pruebas no es suficiente para asegurarse de que las secuencias de salida sean aleatorias. Es posible que se necesite un diseño cuidadosamente elegido, la verificación de que el dispositivo fabricado implementa ese diseño y la seguridad física continua para asegurar contra la manipulación, además de las pruebas para usos de alto valor.
Contenido relacionado
Compresor (desambiguación)
Codigo de color
Telecomunicaciones en las Islas Vírgenes Británicas