Articulo de referencia

Generador de números aleatorios por hardware

Un generador de números aleatorios verdaderos de hardware conectable por USB En informática , un generador de números aleatorios por hardware ( HRNG ), un generador de números a...

Un generador de números aleatorios verdaderos de hardware conectable por USB

En informática , un generador de números aleatorios por hardware ( HRNG ), un generador de números aleatorios verdaderos ( TRNG ), un generador de bits aleatorios no determinista ( NRBG ) [ 1 ] o un generador de números aleatorios físico [ 2 ] [ 3 ] es un dispositivo que genera números aleatorios a partir de un proceso físico capaz de producir entropía , a diferencia de un generador de números pseudoaleatorios (PRNG) que utiliza un algoritmo determinista [ 2 ] y los generadores de bits aleatorios no deterministas no físicos que no incluyen hardware dedicado a la generación de entropía. [ 1 ]

Muchos fenómenos naturales generan señales de " ruido " de bajo nivel y estadísticamente aleatorias , incluyendo ruido térmico y de disparo , fluctuación y metaestabilidad de circuitos electrónicos, movimiento browniano y ruido atmosférico . [ 4 ] Los investigadores también utilizaron el efecto fotoeléctrico , que involucra un divisor de haz , otros fenómenos cuánticos , [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] e incluso la desintegración nuclear (debido a consideraciones prácticas, esta última, así como el ruido atmosférico, no es viable excepto para aplicaciones bastante restringidas o servicios de distribución en línea). [ 4 ] Si bien los fenómenos "clásicos" (no cuánticos) no son verdaderamente aleatorios, un sistema físico impredecible suele ser aceptable como fuente de aleatoriedad, por lo que los calificadores "verdadero" y "físico" se utilizan indistintamente. [ 10 ]

Se espera que un generador de números aleatorios de hardware produzca números aleatorios casi perfectos (" entropía completa "). [ 1 ] Un proceso físico generalmente no tiene esta propiedad, y un TRNG práctico normalmente incluye algunos bloques: [ 11 ]

  • una fuente de ruido que implementa el proceso físico que produce la entropía. Por lo general, este proceso es analógico , por lo que se utiliza un digitalizador para convertir la salida de la fuente analógica en una representación binaria;
  • un acondicionador ( extractor de aleatoriedad ) que mejora la calidad de los bits aleatorios;
  • Pruebas de salud . Los TRNG se utilizan principalmente en algoritmos criptográficos que se rompen por completo si los números aleatorios tienen baja entropía, por lo que la funcionalidad de prueba suele estar incluida.

Los generadores de números aleatorios por hardware generalmente producen solo una cantidad limitada de bits aleatorios por segundo. Para aumentar la tasa de datos de salida disponible, a menudo se utilizan para generar la " semilla " de un PRNG más rápido. El PRNG también ayuda con la "anonimización" de la fuente de ruido (eliminando las características que identifican la fuente de ruido) y la extracción de entropía . Con un algoritmo PRNG adecuado seleccionado ( generador de números pseudoaleatorios criptográficamente seguro , CSPRNG), la combinación puede cumplir con los requisitos de las Normas Federales de Procesamiento de Información y las Normas de Criterios Comunes . [ 12 ]

Usos

Los generadores de números aleatorios por hardware pueden utilizarse en cualquier aplicación que requiera aleatoriedad. Sin embargo, en muchas aplicaciones científicas, el coste y la complejidad adicionales de un TRNG (en comparación con los generadores de números pseudoaleatorios) no ofrecen ventajas significativas. Los TRNG presentan inconvenientes adicionales para la ciencia de datos y las aplicaciones estadísticas: la imposibilidad de repetir una serie de números a menos que se almacenen, y la dependencia de una entidad física analógica que puede enmascarar el fallo de la fuente. Por consiguiente, los TRNG se utilizan principalmente en aplicaciones donde su imprevisibilidad y la imposibilidad de repetir la secuencia de números son cruciales para el éxito de la implementación: en criptografía y máquinas tragamonedas. [ 13 ]

Criptografía

El uso principal de los generadores de números aleatorios de hardware se encuentra en el campo del cifrado de datos , por ejemplo, para crear claves criptográficas aleatorias y nonces necesarios para cifrar y firmar datos. Además de la aleatoriedad, existen al menos dos requisitos adicionales impuestos por las aplicaciones criptográficas: [ 14 ]

  1. La confidencialidad directa garantiza que el conocimiento de la salida pasada y el estado interno del dispositivo no permita al atacante predecir datos futuros;
  2. El secreto hacia atrás protege la "dirección opuesta": el conocimiento del resultado y del estado interno en el futuro no debe revelar los datos precedentes.

Una forma típica de cumplir con estos requisitos es usar un TRNG para inicializar un generador de números pseudoaleatorios criptográficamente seguro . [ 15 ]

Historia

Durante miles de años se utilizaron dispositivos físicos para generar números aleatorios, principalmente para juegos de azar . En particular, se conocen dados desde hace más de 5000 años (encontrados en yacimientos del actual Irak e Irán), y lanzar una moneda (produciendo así un bit aleatorio) se remonta al menos a la época de la antigua Roma . [ 16 ]

El primer uso documentado de un generador físico de números aleatorios con fines científicos fue realizado por Francis Galton (1890). [ 17 ] Ideó una forma de muestrear una distribución de probabilidad utilizando un dado común de juego. Además del dígito superior, Galton también observó la cara del dado más cercana a él, creando así 6*4 = 24 resultados (aproximadamente 4,6 bits de aleatoriedad). [ 16 ]

Kendall y Babington-Smith (1938) [ 18 ] utilizaron un disco de 10 sectores de rápida rotación iluminado por ráfagas periódicas de luz. El muestreo lo realizaba una persona que escribía el número bajo el haz de luz en una almohadilla. El dispositivo se utilizaba para generar una tabla de números aleatorios de 100 000 dígitos (en aquel entonces, dichas tablas se utilizaban para experimentos estadísticos, como los generadores de números pseudoaleatorios actuales). [ 16 ]

El 29 de abril de 1947, la Corporación RAND comenzó a generar dígitos aleatorios con una "ruleta electrónica", que consistía en una fuente de pulsos de frecuencia aleatoria de aproximadamente 100 000 pulsos por segundo, interrumpida una vez por segundo por un pulso de frecuencia constante y alimentada a un contador binario de cinco bits. Douglas Aircraft construyó el equipo, implementando la sugerencia de Cecil Hastings (RAND P-113) [ 19 ] para una fuente de ruido (muy probablemente el comportamiento bien conocido del tubo tiratrón de gas miniatura 6D4 , cuando se coloca en un campo magnético [ 20 ] ). Veinte de los 32 posibles valores del contador se asignaron a los 10 dígitos decimales y los otros 12 valores del contador se descartaron. [ 21 ] Los resultados de una larga ejecución de la máquina RAND, filtrados y probados, se convirtieron en una tabla, que originalmente existía solo como un mazo de tarjetas perforadas , pero que posteriormente se publicó en 1955 como un libro, 50 filas de 50 dígitos en cada página [ 16 ] ( Un millón de dígitos aleatorios con 100 000 desviaciones normales ). La tabla RAND fue un avance significativo en la generación de números aleatorios porque nunca antes se había dispuesto de 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 habían sido seleccionadas maliciosamente (" números sin trampa "). [ 22 ]

Desde principios de la década de 1950, la investigación sobre TRNG ha sido muy activa, con miles de trabajos de investigación publicados y alrededor de 2000 patentes otorgadas hasta 2017. [ 16 ]

Fenómenos físicos con propiedades aleatorias

Con el tiempo se propusieron múltiples diseños diferentes de TRNG con una gran variedad de fuentes de ruido y técnicas de digitalización ("recolección"). Sin embargo, las consideraciones prácticas (tamaño, potencia, coste, rendimiento, robustez) dictan las siguientes características deseables: [ 23 ]

  • uso de un proceso de silicio económico y de fácil acceso;
  • uso exclusivo de técnicas de diseño digital. Esto permite una integración más sencilla del sistema en chip y posibilita el uso de FPGA ;
  • Diseño compacto y de bajo consumo. Esto desincentiva el uso de componentes analógicos (por ejemplo, amplificadores );
  • Justificación matemática de los mecanismos de recolección de entropía.

Stipčević y Koç en 2014 clasificaron los fenómenos físicos utilizados para implementar TRNG en cuatro grupos: [ 3 ]

  • ruido eléctrico;
  • osciladores de funcionamiento libre;
  • caos;
  • efectos cuánticos.

Generador de números aleatorios basado en ruido eléctrico

Los generadores de números aleatorios basados ​​en ruido generalmente siguen el mismo esquema: la fuente de un generador de ruido se introduce en un comparador . Si el voltaje está por encima del umbral, la salida del comparador es 1; de lo contrario, es 0. El valor del bit aleatorio se almacena mediante un flip-flop. Las fuentes de ruido varían e incluyen: [ 24 ]

Las desventajas de utilizar fuentes de ruido para el diseño de un generador de números aleatorios son: [ 25 ]

  • Los niveles de ruido son difíciles de controlar, varían con los cambios ambientales y de un dispositivo a otro;
  • Los procesos de calibración necesarios para garantizar una cantidad determinada de entropía son laboriosos;
  • Los niveles de ruido suelen ser bajos, por lo que el diseño requiere amplificadores de alto consumo energético. La sensibilidad de las entradas del amplificador permite la manipulación por parte de un atacante;
  • Los circuitos ubicados cerca generan mucho ruido no aleatorio, lo que reduce la entropía;
  • Una prueba de aleatoriedad es casi imposible ya que intervienen múltiples procesos físicos interactivos. [ 26 ]

Generador de números aleatorios basado en el caos

La idea del ruido basado en el caos surge del uso de un sistema complejo que es difícil de caracterizar observando su comportamiento a lo largo del tiempo. Por ejemplo, los láseres pueden entrar en modo caótico (indeseable en otras aplicaciones) con una potencia que fluctúa caóticamente, cuya potencia se detecta mediante un fotodiodo y se muestrea con un comparador. El diseño puede ser bastante pequeño, ya que todos los elementos fotónicos pueden integrarse en un chip. Stipčević y Koç caracterizan esta técnica como "muy objetable", principalmente debido a que el comportamiento caótico suele estar controlado por una ecuación diferencial y no se introduce ninguna aleatoriedad nueva, por lo que existe la posibilidad de que el generador de números aleatorios verdaderos basado en el caos produzca un subconjunto limitado de posibles cadenas de salida. [ 27 ]

Generador de números aleatorios basado en osciladores de funcionamiento libre

Los TRNG basados ​​en un oscilador de funcionamiento libre (FRO) suelen utilizar uno o más osciladores de anillo (RO), cuyas salidas se muestrean mediante otro reloj . Dado que los inversores que forman el RO pueden considerarse amplificadores con una ganancia muy alta, la salida de un FRO presenta oscilaciones muy rápidas en los dominios de fase y frecuencia. Los TRNG basados ​​en FRO son muy populares debido a que utilizan la lógica digital estándar, a pesar de los problemas con las pruebas de aleatoriedad y la variabilidad entre chips. [ 27 ]

Generador de números aleatorios basado en computación cuántica

La tecnología de generación de números aleatorios cuánticos está bien establecida, con 8 productos comerciales de generadores de números aleatorios cuánticos ( QRNG ) ofrecidos antes de 2017. [ 28 ]

Herrero-Collantes y García-Escartín clasifican los siguientes procesos estocásticos como "cuánticos":

Para reducir los costos y aumentar la robustez de los generadores de números aleatorios cuánticos, [ 39 ] se han implementado servicios en línea. [ 28 ]

Una pluralidad de diseños de generadores cuánticos de números aleatorios [ 40 ] son ​​inherentemente imposibles de probar y, por lo tanto, pueden ser manipulados por adversarios. Mannalath et al. denominan a estos diseños "confiables" en el sentido de que solo pueden operar en un entorno totalmente controlado y confiable. [ 41 ]

Prueba de rendimiento

El fallo de un TRNG puede ser bastante complejo y sutil, lo que requiere la validación no solo de los resultados (el flujo de bits de salida), sino también de la imprevisibilidad de la fuente de entropía. [ 10 ] Los generadores de números aleatorios de hardware deben ser monitoreados constantemente para garantizar su correcto funcionamiento y protegerlos contra la degradación de la fuente de entropía debido a causas naturales y ataques deliberados. FIPS Pub 140-2 y NIST Special Publication 800-90B [ 42 ] definen pruebas que pueden utilizarse para este fin.

El conjunto mínimo de pruebas en tiempo real exigidas por los organismos de certificación no es extenso; por ejemplo, el NIST en SP 800-90B requiere solo dos pruebas de salud continuas : [ 43 ]

  1. La prueba de conteo de repeticiones verifica que las secuencias de dígitos idénticos no sean demasiado largas; para un caso (típico) de un generador de números aleatorios verdaderos que digitaliza un bit a la vez, esto significa no tener largas cadenas de 0 o 1.
  2. La prueba de proporción adaptativa verifica que ningún dígito aleatorio aparezca con demasiada frecuencia en el flujo de datos ( sesgo bajo ). Para fuentes de entropía orientadas a bits, esto significa que la cantidad de 1s y 0s en el flujo de bits es aproximadamente la misma.

Ataques

Al igual que otros componentes de un sistema criptográfico, un generador de números aleatorios criptográfico debe diseñarse para resistir ciertos ataques . Defenderse de estos ataques es difícil sin una fuente de entropía de hardware.

Los procesos físicos en HRNG introducen nuevas superficies de ataque. Por ejemplo, un TRNG basado en oscilador de funcionamiento libre puede ser atacado mediante una inyección de frecuencia . [ 44 ]

Estimación de la entropía

Existen técnicas matemáticas para estimar la entropía de una secuencia de símbolos. Sin embargo, ninguna es tan fiable como para confiar plenamente en sus estimaciones; siempre hay suposiciones que pueden ser muy difíciles de confirmar. Estas técnicas son útiles para determinar si hay suficiente entropía en un conjunto 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.

Véase también

Referencias

  1. ^ Turan y cols . 2018 , pág. 64.
  2. 1 2 Schindler 2009 , pág. 7.
  3. ^ Stipčević y Koç 2014 , pág. 279.
  4. 1 2 Sunar 2009 , pág. 56.
  5. Herrero-Collantes & García-Escartin 2017 , p. 8.
  6. ^ Jacak, Marcin M.; Jóźwiak, Piotr; Niemczuk, Jakub; Jacak, Janusz E. (2021). «Generadores cuánticos de números aleatorios» . Informes científicos . 11 (1): 16108. Bibcode : 2021NatSR..1116108J . doi : 10.1038/s41598-021-95388-7 . PMC 8352985 . PMID 34373502 .  
  7. ^ Mamá, Xiongfeng; Yuan, Xiao; Cao, Zhu; Qi, Bing; Zhang, Zhen (2016). "Generación cuántica de números aleatorios" . npj Información cuántica . 2 (1): 16021. arXiv : 1510.08957 . Código Bib : 2016npjQI...216021M . doi : 10.1038/npjqi.2016.21 .
  8. Kollmitzer, Christian; Petscharnig, Stefan; Suda, Martin; Mehic, Miralem (2020). «Generación cuántica de números aleatorios» . Generación cuántica de números aleatorios: teoría y práctica . Springer International Publishing . págs. 11–34 . doi : 10.1007/978-3-319-72596-3_2 . ISBN  978-3-319-72596-3.
  9. ^ Mannalath, Mishra y Pathak 2023 .
  10. ^ Herrero -Collantes y García-Escartín 2017 , p. 4.
  11. Turan et al. 2018 , pág. 6.
  12. ^ Saarinen, Newell y Marshall 2020 .
  13. Templ 2016 , pág. 90.
  14. Herrero-Collantes & García-Escartin 2017 , p. 6.
  15. Herrero-Collantes & García-Escartin 2017 , p. 7.
  16. 1 2 3 4 5 L'Ecuyer 2017 .
  17. Galton, Francis (1890). " Dados para experimentos estadísticos" (PDF) . Nature . 42 (1070): 13– 14. Bibcode : 1890Natur..42...13G . doi : 10.1038/042013a0 . S2CID 4038609. Archivado (PDF) del original el 4 de marzo de 2016. Recuperado el 14 de mayo de 2014 . 
  18. Kendall, MG y B. Babington-Smith. 1938. "Aleatoriedad y otros números de muestreo aleatorio". Journal of the Royal Statistical Society 101:147–166.
  19. Brown, George W. (enero de 1949), P-113 , Documentos, Rand Corporation, archivado del original el 5 de junio de 2007 , recuperado el 10 de mayo de 2009..
  20. Cobine, Curry (1947), "Generadores de ruido eléctrico", Actas del IRE (septiembre de 1947): 875–9
  21. Informe monográfico , Rand Corporation, enero de 2001, archivado del original el 15 de abril de 2018 , consultado el 29 de enero de 2009..
  22. Schneier, Bruce (1995-11-01). «Otros cifrados de flujo y generadores de secuencias aleatorias reales». Criptografía aplicada (Segunda edición). John Wiley & Sons, Inc. pág. 423. ISBN   978-0-471-11709-4.
  23. Sunar 2009 , pág. 57.
  24. ^ Stipčević y Koç 2014 , págs. 279–280.
  25. Stipčević y Koç 2014 , p. 280.
  26. Stipčević y Koç 2014 , p. 286.
  27. ^ Stipčević y Koç 2014 , págs. 288–289.
  28. ^ Herrero -Collantes y García-Escartín 2017 , p. 2.
  29. Herrero-Collantes & García-Escartin 2017 , págs. 10-13.
  30. Herrero-Collantes & García-Escartin 2017 , págs. 13-14.
  31. Herrero-Collantes & García-Escartin 2017 , p. 15.
  32. Herrero-Collantes & García-Escartin 2017 , p. 17.
  33. Herrero-Collantes & García-Escartin 2017 , p. 20.
  34. Herrero-Collantes & García-Escartin 2017 , págs .
  35. Herrero-Collantes & García-Escartin 2017 , págs .
  36. Herrero-Collantes & García-Escartin 2017 , págs .
  37. Herrero-Collantes & García-Escartin 2017 , págs .
  38. Herrero-Collantes & García-Escartin 2017 , págs .
  39. Huang, Leilei; Zhou, Hongyi; Feng, Kai; Xie, Chongjin (2021-07-07). "Plataforma en la nube de números aleatorios cuánticos" . npj Quantum Information . 7 (1). Springer Science and Business Media LLC: 107. Bibcode : 2021npjQI...7..107H . doi : 10.1038/s41534-021-00442-x . ISSN 2056-6387 . 
  40. ^ Mannalath, Mishra y Pathak 2023 , pág. 4.
  41. ^ Mannalath, Mishra y Pathak 2023 , pág. 9.
  42. Turan et al. 2018 .
  43. ^ Turan y col. 2018 , págs. 25-27.
  44. Markettos, A. Theodore; Moore, Simon W. (2009). "El ataque de inyección de frecuencia a los generadores de números aleatorios verdaderos basados ​​en osciladores de anillo". Lecture Notes in Computer Science (PDF) . Berlín, Heidelberg: Springer Berlin Heidelberg. pp. 317–331 . doi : 10.1007/978-3-642-04138-9_23 . ISBN  978-3-642-04137-2ISSN 0302-9743 

Fuentes

  • Turan, Meltem Sönmez; Barker, Elaine; Kelsey, John; McKay, Kerry A; Baish, Mary L; Boyle, Mike (2018). NIST SP800-90B: Recomendación para las fuentes de entropía utilizadas para la generación de bits aleatorios (Informe). Gaithersburg, MD: Instituto Nacional de Estándares y Tecnología. doi : 10.6028/nist.sp.800-90b .
  • Templ, M. (2016). Simulación para la ciencia de datos con R. Packt Publishing. ISBN 978-1-78588-587-7. Consultado el 7 de agosto de 2023 .
  • Saarinen, Markku-Juhani O.; Newell, G. Richard; Marshall, Ben (2020-11-09). Building a Modern TRNG: An Entropy Source Interface for RISC-V (PDF) . Nueva York, NY, EE. UU.: ACM. doi : 10.1145/3411504.3421212 . Archivado del original el 16 de marzo de 2021. Consultado el 9 de septiembre de 2023 .{{cite conference}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  • Schindler, Werner (2009). «Generadores de números aleatorios para aplicaciones criptográficas». Ingeniería criptográfica . Boston, MA: Springer US. pp. 5–23 . doi : 10.1007/978-0-387-71817-0_2 . ISBN  978-0-387-71816-3.
  • Sunar, Berk (2009). «Generadores de números aleatorios verdaderos para criptografía». Ingeniería criptográfica . Boston, MA: Springer US. pp. 55–73 . doi : 10.1007/978-0-387-71817-0_4 . ISBN  978-0-387-71816-3.
  • L'Ecuyer, Pierre (2017). Historia de la generación uniforme de números aleatorios (PDF) . Conferencia de Simulación de Invierno de 2017 (WSC). Las Vegas, NV, EE. UU.: IEEE. doi : 10.1109/wsc.2017.8247790 . ISBN 978-1-5386-3428-8ISSN 1558-4305 
  • Stipčević, Mario; Koç, Çetin Kaya (2014). «Generadores de números aleatorios verdaderos». Problemas abiertos en matemáticas y ciencias computacionales (PDF) . Cham: Springer International Publishing. pp. 275–315 . doi : 10.1007/978-3-319-10683-0_12 . ISBN  978-3-319-10682-3.
  • Herrero-Collantes, Miguel; Garcia-Escartin, Juan Carlos (22 de febrero de 2017). "Generadores cuánticos de números aleatorios". Reviews of Modern Physics . 89 (1) 015004. American Physical Society (APS). arXiv : 1604.03304 . Bibcode : 2017RvMP...89a5004H . doi : 10.1103/revmodphys.89.015004 . ISSN 0034-6861 . 
  • Generación cuántica de números aleatorios: teoría y práctica . Ciencia y tecnología cuántica. Springer Cham . 2020. doi : 10.1007/978-3-319-72596-3 . ISBN 978-3-319-72596-3.
  • Mannalath, Vaisakh; Mishra, Sandeep; Pathak, Anirban (2023). "Una revisión exhaustiva de los generadores cuánticos de números aleatorios: conceptos, clasificación y origen de la aleatoriedad" . Procesamiento de información cuántica . 22 (12): 439. arXiv : 2203.00261 . Bibcode : 2023QuIP...22..439M . doi : 10.1007/s11128-023-04175-y .

Referencias generales

  • Brown, George W (junio de 1949), Historia del Million Digits de Rand , documentos, RAND Corporation , archivado del original el 5 de junio de 2007 , recuperado el 10 de mayo de 2009.
  • Brown, Bernice (octubre de 1948), Algunas pruebas de la aleatoriedad de un millón de dígitos , Documentos, RAND Corporation , archivado del original el 5 de junio de 2007 , consultado el 10 de mayo de 2009.
  • "Tubo tipo 6D4", Manual de datos de tubos electrónicos , Sylvania, 1957
  • Un millón de dígitos aleatorios con 100.000 desviaciones normales , RAND Corporation , enero de 2001, archivado del original el 16 de diciembre de 2002 , consultado el 22 de diciembre de 2002..
  • Galton, Francis (1890), "Dados para experimentos estadísticos" , Nature , 42 (1070): 13–4 , Bibcode : 1890Natur..42...13G , doi : 10.1038/042013a0 , archivado del original el 4 de abril de 2004 , consultado el 28 de marzo de 2004.
  • Aleatoriedad y generador de números aleatorios genuinos con funciones de autodiagnóstico (PDF) , Japón: LE Tech RNG, archivado del original (PDF) el 1 de marzo de 2018 , consultado el 20 de abril de 2015.
  • D. Eastlake, 3.º; J. Schiller; S. Crocker (junio de 2005). Requisitos de aleatoriedad para la seguridad . IETF . doi : 10.17487/RFC4086 . BCP 106. RFC 4086 .Mejores prácticas actuales 106. Deja obsoleto el RFC 1750 . 
  • Generador de números aleatorios de Intel (PDF) , Intel , 22 de abril de 1999.
  • ProtegoST SG100 , ProtegoST, "Generador de números aleatorios por hardware" "Basado en una fuente de números aleatorios de física cuántica a partir de un diodo Zener".