Buscar generadores de números aleatorios verdaderos


Conozca los números que genera en función de los datos impredecibles del mundo físico: este pensamiento sin complicaciones persigue al hombre en todo el camino de la criptografía moderna. Los generadores de números pseudoaleatorios (PRNG) basados ​​solo en algoritmos matemáticos son predecibles o están sujetos a influencias externas, por lo que los generadores de hardware que utilizan diversas fuentes de entropía se consideran el estándar de seguridad de oro.


Sin embargo, incluso los generadores de números aleatorios reales (RNG) que recopilan datos impredecibles de fenómenos físicos tienen desventajas: pueden ser engorrosos, lentos y costosos de producir. No hay garantía de que el sistema propietario no esté abierto a servicios especiales; por lo tanto, los desarrolladores de FreeBSD se negaron a usar directamente los generadores de hardware integrados en los chips Intel.


La evolución de los métodos de encriptación ha llevado a la necesidad de crear generadores más avanzados: se discutirán hoy.


Hace 100 años, para obtener números aleatorios, tiraron dados, repartieron cartas, recogieron números de un sombrero. En 1927, el estadístico Leonard Henry Caleb Tippett publicó la primera "tabla aleatoria" del mundo, 41.600 números, obtenida mediante la recopilación de datos sobre el área de las iglesias inglesas.


En 1955, RAND Corporation publicó un libro que durante muchos años se ha convertido en una de las principales fuentes de datos aleatorios: " Un millón de números aleatorios con una desviación estándar de 100,000 " . Quizás nadie ha leído el libro hasta ahora de principio a fin: casi todo su texto consta de números de cinco dígitos.


Con el desarrollo de la era de la computadora, RNG comenzó a usar acciones de usuario significativas y sin sentido: pulsaciones de teclas en el teclado, clics del mouse, etc. Sin embargo, este enfoque ofrece una pequeña velocidad para obtener bits aleatorios. El problema es que todo lo que sucede dentro de la computadora no puede considerarse verdaderamente aleatorio. Las computadoras desde el principio fueron diseñadas para ser predecibles. Las fuentes del entorno, por ejemplo, las acciones de los usuarios, también tienen sus límites, al menos a tiempo.
Los requisitos de alta seguridad han dado lugar a varios enfoques nuevos y complementarios para la generación de números aleatorios.


Generador de juguete



La Electronic Frontier Foundation ( EFF ), que está comprometida con la lucha por los derechos humanos en asuntos relacionados con las nuevas tecnologías de comunicación, ha propuesto una forma simple de crear contraseñas seguras basadas en el uso de un generador de números aleatorios físicos.


El método es realmente simple: se basa en dados.


Lanzamos cinco dados al mismo tiempo y escribimos los números resultantes. Digamos que los cubos están ordenados de izquierda a derecha de esta manera: 4, 3, 4, 6, 3. Abra la Lista de palabras larga del EFF para encontrar la palabra correspondiente al lado de 43463. Esta es la palabra "panorámica".


El procedimiento se repite cinco veces. Como resultado, obtenemos algo así como un néctar panorámico precortado smith banana handclap, una frase de contraseña que tiene aproximadamente 221 073 919 720 733 357 899 776 variaciones.


Usando mnemotecnia, la frase es fácil de recordar. Dada la presencia de 2⁷⁷ alternativas a la fuerza bruta, será extremadamente difícil encontrar su contraseña.


Chaoskey



Kate Packard, una desarrolladora activa de Debian, líder del proyecto X.Org, creadora de XRender, XComposite y XRandR, junto con el renombrado defensor de datos abiertos Hedlett-Packard, director del proyecto Linux Bdale Garby, desarrolló un generador de números aleatorios ChaosKey económico pero confiable.


El dispositivo de código abierto, ChaosKey 1.0, fue presentado en la conferencia DeConf16 Debian. El propósito del desarrollo es agregar entropía real al generador de números aleatorios, proporcionar un alto nivel de seguridad y reducir el precio al mínimo.


Es imposible acceder a ChaosKey de forma remota y no puede sobrescribir el firmware incluso cuando el dispositivo está conectado a una computadora a través de USB. Para hacer esto, necesita obtener acceso físico, abrir el gadget y conectar los dos contactos dentro.


El RNG con todas las funciones se parece a una pequeña unidad flash USB y ocupa un conector USB. El diseño de la placa es minimalista: en realidad solo tiene un procesador y transistores para generar ruido. La velocidad de datos aleatorios es de aproximadamente megabytes por segundo.


Y sobre el precio. El dispositivo se puede pedir, pero todos los esquemas y el firmware están disponibles públicamente; los propios desarrolladores recomiendan que todos creen y mejoren ChaosKey.


Z1FFER



Otro generador de números aleatorios de código abierto de bajo costo que atraerá a todos los entusiastas del bricolaje. Todos pueden montar y desmontar el dispositivo, así como asegurarse de que no tenga puertas traseras incorporadas.


Z1FFER no es un producto terminado y no viene con ningún software (los autores comparten solo unos pocos scripts e instrucciones para comenzar). Está diseñado para funcionar en la plataforma arduino, pero no tiene confiabilidad comprobada por piratería desde el exterior. El dispositivo es principalmente para aquellos que desean "sentir" personalmente la tecnología de generar números usando hierro.


Z1FFER utiliza ruido térmico de la resistencia, duplicando la señal, lo que conduce a un aumento exponencial en la complejidad de predecir la secuencia de bits.


QRBG121



Sería un pecado no mencionar en este hilo el generador de números aleatorios QRBG121, que por alguna razón desconocida se convirtió en la mascota de uno de los tableros de imágenes de Runet. QRBG121 (Generador de bits aleatorio cuántico), tal vez, de hecho, es tierno para alguien, pero lo más interesante está oculto dentro de la caja.


El efecto aleatorio en el dispositivo depende del proceso físico cuántico de la radiación de fotones en semiconductores y la posterior detección de fotones individuales utilizando un fotomultiplicador . En este proceso, los fotones se detectan al azar, independientemente uno del otro. La información de sincronización de los fotones detectados se utiliza para generar bits. Una característica única de este método es que usa solo un detector de fotones para obtener ceros y unos.


Lámparas de lava en Cloudflare



CloudFlare, que afirma que "aproximadamente el 10% del tráfico mundial" pasa a través de su red, protege los proyectos de Internet de los ataques DDoS, pero también necesita protección. El tráfico que pasa a través de las redes CloudFlare está encriptado, y un centenar de lámparas de lava coloridas en el Entropy Wall ayudan en esto.


Una lámpara de lava es un recipiente de vidrio lleno de aceite transparente y parafina translúcida. La bombilla incandescente ubicada en la parte inferior del tanque calienta e ilumina el contenido del cilindro, y se produce un movimiento de parafina "similar a la lava" en el aceite. La parafina es un poco más pesada que el aceite, pero con un poco de calor se vuelve más ligera y flota.


El movimiento de líquidos es monitoreado por varias cámaras que toman instantáneas. Las instantáneas se convierten en números, a partir de los cuales se generan claves de cifrado. Para un cuadro, se obtienen 16 384 bits de entropía.


Otras dos oficinas de CloudFlare utilizan diferentes métodos para obtener valores aleatorios. En Londres, la cámara captura los movimientos de tres péndulos caóticos, y en Singapur instalaron un contador Geiger que mide la desintegración radiactiva de un pequeño trozo de uranio. En el último caso, el uranio se usa como una "fuente de datos", ya que la radiación radiactiva se caracteriza por la aleatoriedad de cada evento de descomposición individual.


Todos estos métodos de trabajo con datos llaman la atención sobre las actividades de la empresa, cuyo trabajo a menudo permanece invisible para los clientes comunes.


Hotbits



HotBits es un sitio que proporciona a todos números aleatorios verdaderos generados usando un contador Geiger que detecta la radiación ionizante. Rellena un formulario de solicitud en el sitio que indica el número de bytes aleatorios y elige el método preferido para obtener datos. Es necesaria una aplicación preliminar porque el hardware HotBits le permite crear datos a una velocidad modesta de aproximadamente 100 bytes por segundo.


Después de que se proporcionan números aleatorios al cliente, se eliminan inmediatamente del sistema; los mismos datos nunca se enviarán a diferentes usuarios (a menos, por supuesto, que confíe en HotBits).


Para obtener datos aún más confiables, hay un recurso EntropyPool que recopila y "mezcla" bits aleatorios de varias fuentes, incluidos HotBits y random.org (este recurso, a su vez, "extrae" la entropía del ruido de radio atmosférico). Las personas que se preocupan por la seguridad cuántica en la máxima medida pueden agregar el servicio en línea Quantum Random Bit Generator a los recursos anteriores.


Fluctuaciones de vacío cuántico



Representación esquemática de las desviaciones espacio-temporales del nivel de fluctuaciones de vacío no perturbadas del campo eléctrico.
Fuente


Un vacío, al contrario del nombre ("vacío" - vacío), no puede considerarse verdaderamente vacío, porque, debido al principio de incertidumbre de Heisenberg , las partículas virtuales nacen y mueren constantemente, las llamadas fluctuaciones cuánticas, fluctuaciones en el nivel de energía por unidad de volumen de espacio-tiempo.


Los físicos canadienses han diseñado un generador de números aleatorios rápido y estructuralmente simple basado en fluctuaciones de vacío. El generador consta de un láser pulsado con una alta frecuencia de radiación, un medio con un alto índice de refracción (diamante) y un detector. Al pasar a través de un diamante, cada pulso en el detector muestra diferentes características, dependiendo de las fluctuaciones del campo de vacío que se encontraron en el camino de los fotones. Las líneas espectrales aparecen en el espectro de radiación dispersa en la salida, que no están en el espectro de la luz primaria, y debido a la imprevisibilidad de las fluctuaciones de vacío, estas líneas difieren cada vez de manera impredecible.


Los físicos dicen que ni siquiera hay un concepto de cómo sería teóricamente posible desarrollar un dispositivo para predecir fluctuaciones en la energía de emergencia y aniquilación de partículas virtuales: este es uno de los eventos más aleatorios que observamos en el Universo.


Queda por hacer que este generador sea lo suficientemente compacto y económico como para comenzar su uso masivo.


Servidor de números aleatorios cuánticos ANU



El sitio web de ANU Quantum ofrece una alternativa basada en la medición de las fluctuaciones de vacío cuántico . Los números aleatorios de código abierto se generan en tiempo real en el Laboratorio del Centro de Computación Cuántica y Tecnología de la Comunicación, Universidad de Nueva Gales del Sur (Sydney, Australia).


Al medir las fluctuaciones en el campo electromagnético de un vacío, ANU Quantum permite a todos ver , escuchar o descargar números cuánticos aleatorios y evaluar la calidad de los números generados en tiempo real.


Aleatoriedad cuántica en serie



No hay muchas empresas que creen dispositivos QRNG (Generador de números aleatorios cuánticos). El líder en esta dirección ahora se llama la startup suiza ID Quantique (IDQ) , que ha estado creando generadores de números aleatorios cuánticos comerciales desde 2001. IDQ ofrece muchos formatos QRNG, como se muestra en la imagen de arriba. Uno de los dispositivos más populares de la compañía es USB Quantum , que genera más números aleatorios de los que probablemente necesite en esta vida.



Otra compañía conocida en esta área es QuintessenceLabs . La compañía afirma que su versión del dispositivo QRNG es tan potente que equivale a 60 dispositivos IDQ.



ComScire ha estado presente en el mercado de dispositivos QRNG desde 1994. La imagen de arriba muestra la fuente principal de números aleatorios que proporciona un flujo de datos al mezclar varios tipos de ruidos de transistores a una velocidad de 128 Mbit / s.


Generador de nanotubos de carbono



Las soluciones existentes de generador de hardware y software no son particularmente adecuadas para dispositivos portátiles. Northwestern ha propuesto un enfoque diferente, que combina la compacidad con el ruido térmico generado.


Los investigadores construyeron un generador de números aleatorios a partir de una memoria estática de acceso aleatorio ( SRAM ), impreso con tintas especiales que contienen nanotubos de carbono semiconductores. La celda de memoria utiliza fluctuaciones de ruido térmico para generar bits aleatorios.


El generador de nanotubos de carbono puede imprimirse en sustratos plásticos flexibles, lo que le permite integrarse en pequeños dispositivos de electrónica flexible: sensores portátiles, etiquetas desechables, elementos de ropa inteligente. La impresión de células SRAM con nanotubos es un proceso relativamente económico, que les permite ser utilizados en la fabricación de productos electrónicos de consumo.


Generador de números aleatorios cuánticos de teléfonos inteligentes



En 2014, la Universidad de Ginebra fue destacada por el dispositivo QRNG, que utiliza la cámara de ocho megapíxeles del teléfono inteligente Nokia N9.


La cámara del teléfono inteligente cuenta el número de fotones incidentes en cada píxel individual. La fuente de luz es un LED normal. El funcionamiento de la cámara y el LED está regulado para que cada píxel en la cámara de 8 MP detecte alrededor de 400 fotones en poco tiempo. El número de fotones en todos los píxeles se convierte en una secuencia de números aleatorios a una velocidad de 1,25 Gbit / s.


Esta velocidad no es un récord. En 2011, Intel demostró que su generador de procesador crea una secuencia de números aleatorios a una velocidad de aproximadamente 3 Gbit / s. Sin embargo, todos los componentes QRNG pueden integrarse en un chip por unos pocos dólares y agregarse fácilmente a cualquier dispositivo electrónico portátil, incluidos los teléfonos inteligentes.


Verdadera oportunidad


Con tantas fuentes de datos, es lógico preguntarse: ¿cómo verifica realmente si hay bits aleatorios?


El Instituto Nacional de Estándares y Tecnología de EE. UU. Ha propuesto un "conjunto de pruebas estadísticas para generadores de números aleatorios y pseudoaleatorios para aplicaciones criptográficas". Consiste en 15 pruebas estadísticas , cuyo propósito es determinar la medida de aleatoriedad de bits generados por generadores de hardware o software.


Una de las pruebas estadísticas más estrictas fue propuesta por el profesor George Marsaglia de la Universidad Estatal de Florida. Las pruebas acérrimas incluyen 17 controles diferentes, algunos de los cuales requieren secuencias muy largas: un mínimo de 268 megabytes.


La aleatoriedad se puede verificar utilizando la biblioteca TestU01 , presentada por Pierre LʻEcouillet y Richard Simard de la Universidad de Montreal, que incluye pruebas clásicas y algunas originales, así como a través de la biblioteca pública SPRNG .


Otro servicio útil para cuantificar la aleatoriedad es http://www.fourmilab.ch/random .


Y no olvidemos el criterio más importante: cada bit siguiente en la secuencia de datos aleatorios debe predecirse con una probabilidad que no exceda la probabilidad de encontrarse con un dinosaurio en la calle;)

Source: https://habr.com/ru/post/es408181/


All Articles