stringtranslate.com

Generador de números aleatorios de hardware

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

En informática , un generador de números aleatorios de hardware ( HRNG ), generador de números aleatorios verdaderos ( TRNG ), generador de bits aleatorios no determinista ( NRBG ), [1] o generador físico de números aleatorios [2] [3] es un dispositivo que genera números aleatorios a partir de un proceso físico capaz de producir entropía (en otras palabras, el dispositivo siempre tiene acceso a una fuente de entropía física [1] ), a diferencia del generador de números pseudoaleatorios (PRNG, también conocido como "generador de bits aleatorios determinista", DRBG) 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 " estadísticamente aleatorias de bajo nivel , incluyendo el ruido térmico y de disparo , el jitter y la metaestabilidad de los circuitos electrónicos, el movimiento browniano , el ruido atmosférico . [4] Los investigadores también utilizaron el efecto fotoeléctrico , que implica 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, este último, así como el ruido atmosférico, no es viable). [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 genere números aleatorios casi perfectos (" entropía total "). [1] Un proceso físico normalmente no tiene esta propiedad, y un TRNG práctico normalmente incluye algunos bloques: [11]

Los generadores de números aleatorios de hardware generalmente producen sólo una cantidad limitada de bits aleatorios por segundo. Para aumentar la tasa de datos de salida disponibles, a menudo se utilizan para generar la " semilla " para un PRNG más rápido. DRBG también ayuda con la "anonimización" de la fuente de ruido (blanqueando las características de identificación de la fuente de ruido) y la extracción de entropía . Con un algoritmo DRBG adecuado seleccionado ( generador de números pseudoaleatorios criptográficamente seguro , CSPRNG), la combinación puede satisfacer los requisitos de los estándares federales de procesamiento de información y los estándares de criterios comunes . [12]

Usos

Los generadores de números aleatorios de hardware se pueden utilizar en cualquier aplicación que necesite aleatoriedad. Sin embargo, en muchas aplicaciones científicas, el coste adicional y la complejidad de un TRNG (en comparación con los generadores de números pseudoaleatorios) no aportan beneficios significativos. Los TRNG tienen desventajas adicionales para la ciencia de datos y las aplicaciones estadísticas: la imposibilidad de volver a ejecutar una serie de números a menos que estén almacenados, la dependencia de una entidad física analógica puede ocultar el fallo de la fuente. Por tanto, los TRNG se utilizan principalmente en las aplicaciones en las que su imprevisibilidad y la imposibilidad de volver a ejecutar la secuencia de números son cruciales para el éxito de la implementación: en criptografía y máquinas de juego. [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. El secreto hacia adelante 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 de la salida y del estado interno en el futuro no debe divulgar los datos anteriores.

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

Historia

Durante miles de años se han utilizado dispositivos físicos para generar números aleatorios, principalmente para los juegos de azar . Los dados , en particular, se conocen desde hace más de 5000 años (se han encontrado en lugares de los actuales Irak e Irán), y el lanzamiento de una moneda (que produce un bit aleatorio) data al menos de 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 obra de Francis Galton (1890). [17] Galton ideó una forma de muestrear una distribución de probabilidad utilizando un dado de juego común. Además del dígito superior, Galton también miró la cara de un 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 que giraba rápidamente y que se iluminaba con ráfagas periódicas de luz. El muestreo lo hacía una persona que escribía el número bajo el haz de luz en una libreta. El dispositivo se utilizó para producir una tabla de números aleatorios de 100.000 dígitos (en aquella época, dichas tablas se utilizaban para experimentos estadísticos, como el PRNG actual). [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, controlada una vez por segundo con un pulso de frecuencia constante y alimentada a un contador binario de cinco bits. Douglas Aircraft construyó el equipo, implementando la sugerencia de Cecil Hasting (RAND P-113) [19] para una fuente de ruido (muy probablemente el comportamiento bien conocido del tubo de gas tiratrón en miniatura 6D4 , cuando se coloca en un campo magnético [20] ). 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. [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 una baraja de tarjetas perforadas , pero que luego 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 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 habían sido seleccionadas maliciosamente (" números de nothing up my sleeve "). [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 en 2017. [16]

Fenómenos físicos con propiedades aleatorias.

A lo largo del tiempo se han propuesto muchos diseños de TRNG diferentes 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, costo, rendimiento, robustez) dictan las siguientes características deseables: [23]

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

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, 0. El valor del bit aleatorio se bloquea mediante un flip-flop. Las fuentes de ruido varían e incluyen: [24]

Las desventajas de utilizar fuentes de ruido para un diseño RNG son: [25]

RNG 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 ponerse en modo caos (algo indeseable en otras aplicaciones) con potencia que fluctúa caóticamente, con potencia detectada mediante un fotodiodo y muestreada por un comparador. El diseño puede ser bastante pequeño, ya que todos los elementos fotónicos pueden integrarse en el chip. Stipčević y Koç caracterizan esta técnica como "muy objetable", principalmente debido al hecho de 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 TRNG 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 en anillo (RO), cuyas salidas se muestrean utilizando otro oscilador. Dado que los inversores que forman el RO pueden considerarse amplificadores con una ganancia muy grande, la salida de un FRO exhibe oscilaciones muy rápidas en fase en los dominios de frecuencia. Los TRNG basados ​​en FRO son muy populares debido a su uso de la lógica digital estándar a pesar de los problemas con las pruebas de aleatoriedad y la variabilidad de chip a chip. [27]

Generador de números aleatorios (RNG) basado en cuántica

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

Herrero-Collantes y García-Escartin enumeran los siguientes procesos estocásticos como "cuánticos":

Para reducir 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 de números aleatorios cuánticos [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 funcionar en un entorno totalmente controlado y confiable. [41]

Prueba de rendimiento

La falla de un TRNG puede ser bastante compleja y sutil, y 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 verificar su correcto funcionamiento y así protegerse 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 se pueden usar para esto.

El conjunto mínimo de pruebas en tiempo real exigidas por los organismos de certificación no es grande; 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 TRNG que digitaliza un bit a la vez, esto significa no tener cadenas largas 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 las fuentes de entropía orientadas a bits, eso significa que el recuento de 1 y 0 en el flujo de bits es aproximadamente el mismo.

Problemas

Es muy fácil que los dispositivos de hardware o software que intentan generar números aleatorios se construyan de forma incorrecta. Además, la mayoría de ellos se "rompen" silenciosamente y, a menudo, producen números cada vez menos aleatorios a medida que se degradan. Los modos de fallo en estos dispositivos son abundantes y son complicados, lentos y difíciles de detectar. Los métodos que combinan múltiples fuentes de entropía son más robustos.

Dado que muchas fuentes de entropía suelen ser bastante frágiles y fallan silenciosamente, se deben realizar pruebas estadísticas de sus resultados de forma continua. Muchos de estos dispositivos (pero no todos) incorporan algunas de estas pruebas en el software que los lee.

Ataques

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

Los procesos físicos en HRNG introducen nuevas superficies de ataque. Por ejemplo, un TRNG basado en un 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. Ninguna es tan fiable como para que sus estimaciones sean totalmente fiables; siempre hay suposiciones que pueden ser muy difíciles de confirmar. Estas son útiles para determinar si hay suficiente entropía en un grupo de semillas, por ejemplo, pero no pueden, en general, distinguir entre una fuente verdaderamente aleatoria 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. ^ abcd Turan et al. 2018, pág. 64.
  2. ^ desde Schindler 2009, pág. 7.
  3. ^ ab Stipčević y Koç 2014, p. 279.
  4. ^Ab Sunar 2009, pág. 56.
  5. ^ Herrero-Collantes y 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. Código bibliográfico : 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 de números aleatorios cuánticos". Generación de números aleatorios cuánticos: 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. ^ ab Herrero-Collantes y García-Escartin 2017, p. 4.
  11. ^ Turan y otros, 2018, pág. 6.
  12. ^ Saarinen, Newell y Marshall 2020.
  13. ^ Templ 2016, pág. 90.
  14. ^ Herrero-Collantes y García-Escartin 2017, p. 6.
  15. ^ Herrero-Collantes y García-Escartin 2017, p. 7.
  16. ^ abcde 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) desde el original el 4 de marzo de 2016 . Consultado 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 desde el original el 5 de junio de 2007 , consultado 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 desde el original el 15 de abril de 2018 , consultado el 29 de enero de 2009.
  22. ^ Schneier, Bruce (1 de noviembre de 1995). "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, pag. 280.
  26. ^ Stipčević y Koç 2014, pag. 286.
  27. ^ ab Stipčević y Koç 2014, págs. 288–289.
  28. ^ ab Herrero-Collantes y García-Escartin 2017, p. 2.
  29. ^ Herrero-Collantes y García-Escartin 2017, págs. 10-13.
  30. ^ Herrero-Collantes y García-Escartin 2017, págs. 13-14.
  31. ^ Herrero-Collantes y García-Escartin 2017, p. 15.
  32. ^ Herrero-Collantes y García-Escartin 2017, p. 17.
  33. ^ Herrero-Collantes y García-Escartin 2017, p. 20.
  34. ^ Herrero-Collantes y García-Escartin 2017, págs. 20-21.
  35. ^ Herrero-Collantes y García-Escartin 2017, págs. 21-22.
  36. ^ Herrero-Collantes y García-Escartin 2017, págs. 23-24.
  37. ^ Herrero-Collantes y García-Escartin 2017, págs. 24-25.
  38. ^ Herrero-Collantes y García-Escartin 2017, págs. 27-28.
  39. ^ Huang, Leilei; Zhou, Hongyi; Feng, Kai; Xie, Chongjin (7 de julio de 2021). "Plataforma de 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 y otros. 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 en generadores de números aleatorios verdaderos basados ​​en osciladores en anillo". Apuntes de clase en informática (PDF) . Berlín, Heidelberg: Springer Berlin Heidelberg. págs. 317–331. doi :10.1007/978-3-642-04138-9_23. ISBN . 978-3-642-04137-2. ISSN  0302-9743.

Fuentes

Referencias generales

Enlaces externos