stringtranslate.com

Generador de números aleatorios de hardware

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

En informática , un generador de números aleatorios de hardware ( HRNG ), un generador de números aleatorios verdadero ( TRNG ), un generador de bits aleatorios no determinista ( NRBG ), [1] o un generador físico de números aleatorios [2] [3] es un dispositivo que genera números aleatorios. números 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 determinista de bits aleatorios", DRBG) que utiliza un algoritmo determinista [2] y generadores de bits aleatorios no físicos y no deterministas 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 y de bajo nivel , incluido el ruido térmico y de disparo , la inquietud y la metaestabilidad de los circuitos electrónicos, el movimiento browniano y 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] e incluso la desintegración nuclear (debido a consideraciones prácticas, esta última, 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 calificativos "verdadero" y "físico" se usan indistintamente. [9]

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

Los generadores de números aleatorios de hardware generalmente producen sólo un número limitado de bits aleatorios por segundo. Para aumentar la velocidad de datos de salida disponible, 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 . [11]

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 costo adicional y la complejidad de un TRNG (en comparación con los generadores de números pseudoaleatorios) no proporcionan beneficios significativos. Los TRNG tienen inconvenientes adicionales para las aplicaciones estadísticas y de ciencia de datos: 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 la falla de la fuente. Por lo tanto, los TRNG se utilizan principalmente en aplicaciones donde 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. [12]

Criptografía

El uso principal de los generadores de números aleatorios de hardware es 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: [13]

  1. el secreto directo garantiza que el conocimiento de la salida pasada y el estado interno del dispositivo no debería permitir al atacante predecir datos futuros;
  2. El secreto hacia atrás protege la "dirección opuesta": el conocimiento de la salida y el estado interno en el futuro no debe divulgar los datos anteriores.

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

Historia

Se utilizaron dispositivos físicos para generar números aleatorios durante miles de años, principalmente para los juegos de azar . Los dados en particular se conocen desde hace más de 5000 años (se encuentran en lugares del actual Irak e Irán), y lanzar una moneda (produciendo así una pieza aleatoria) data al menos de la época de la antigua Roma . [15]

El primer uso documentado de un generador físico de números aleatorios con fines científicos fue el de Francis Galton (1890). [16] 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 del dado más cercano a él, creando así 6*4 = 24 resultados (aproximadamente 4,6 bits de aleatoriedad). [15]

Kendall y Babington-Smith (1938) [17] utilizaron un disco de 10 sectores de rotación rápida que estaba iluminado por ráfagas periódicas de luz. El muestreo fue realizado por un humano que escribió el número debajo del haz de luz en una libreta. El dispositivo se utilizó para producir una tabla de números aleatorios de 100.000 dígitos (en ese momento, dichas tablas se usaban para experimentos estadísticos, como el PRNG en la actualidad). [15]

El 29 de abril de 1947, RAND Corporation 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 activados una vez por segundo con un pulso de frecuencia constante y alimentados a un binario de cinco bits. encimera. Douglas Aircraft construyó el equipo, implementando la sugerencia de Cecil Hasting (RAND P-113) [18] para una fuente de ruido (muy probablemente el conocido comportamiento del tubo tiratrón de gas en miniatura 6D4 , cuando se coloca en un campo magnético [19] ). 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. [20] Los resultados de una larga tirada 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 [15] ( 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 había estado disponible una tabla tan grande y cuidadosamente preparada. Ha sido una fuente útil para simulaciones, modelado y para derivar constantes arbitrarias en algoritmos criptográficos para demostrar que las constantes no habían sido seleccionadas maliciosamente (" números sin nada bajo la manga "). [21]

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 concedidas en 2017. [15]

Fenómenos físicos con propiedades aleatorias.

A lo largo del tiempo se propusieron muchos diseños diferentes de TRNG con una gran variedad de fuentes de ruido y técnicas de digitalización ("cosecha"). Sin embargo, consideraciones prácticas (tamaño, potencia, costo, rendimiento, robustez) dictan los siguientes rasgos deseables: [22]

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

RNG eléctrico basado en ruido

Los RNG basados ​​en ruido generalmente siguen el mismo esquema: la fuente de un generador de ruido se alimenta a 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 retiene mediante un flip-flop. Las fuentes de ruido varían e incluyen: [23]

Los inconvenientes de utilizar fuentes de ruido para un diseño de RNG son: [24]

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 se pueden poner en modo caos (indeseable en otras aplicaciones) con potencia fluctuante 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 se pueden integrar 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 nueva aleatoriedad, por lo que existe la posibilidad de que el TRNG basado en el caos produzca un subconjunto limitado de posibles cadenas de salida. [26]

RNG 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 más. Dado que los inversores que forman el RO pueden considerarse amplificadores con una ganancia muy grande, una salida FRO exhibe oscilaciones de fase muy rápidas 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. [26]

RNG basado en 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. [27]

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

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

Prueba de rendimiento

El fallo de un TRNG puede ser bastante complejo y sutil, y requiere la validación no sólo de los resultados (el flujo de bits de salida), sino también de la imprevisibilidad de la fuente de entropía. [9] Los generadores de números aleatorios de hardware deben monitorearse constantemente para verificar su funcionamiento adecuado 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 [39] definen pruebas que se pueden utilizar para esto.

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

  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 no aparezca con demasiada frecuencia en el flujo de datos ( sesgo bajo ). Para fuentes de entropía orientadas a bits, eso significa que el recuento de unos y ceros en el flujo de bits es aproximadamente el mismo.

Problemas

Es muy fácil construir mal dispositivos de hardware o software que intenten generar números aleatorios. Además, la mayoría se "rompe" silenciosamente, produciendo a menudo números cada vez menos aleatorios a medida que se degradan. Los modos de falla en tales dispositivos son abundantes y complicados, lentos y difíciles de detectar. Los métodos que combinan múltiples fuentes de entropía son más sólidos.

Debido a que muchas fuentes de entropía suelen ser bastante frágiles y fallan silenciosamente, se deben realizar pruebas estadísticas sobre su producción continuamente. Muchos de estos dispositivos, pero no todos, incorporan algunas de estas pruebas en el software que lee el dispositivo.

Ataques

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

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

Estimando la entropía

Existen técnicas matemáticas para estimar la entropía de una secuencia de símbolos. Ninguno es tan confiable como para 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 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.

Ver también

Referencias

  1. ^ abcd Turan et al. 2018, pág. 64.
  2. ^ ab 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, cristiano; Petscharnig, Stefan; Suda, Martín; Mehic, Miralem (2020). "Generación cuántica de números aleatorios". Generación cuántica de números aleatorios: teoría y práctica. Publicaciones internacionales Springer . págs. 11–34. ISBN 978-3-319-72596-3.
  9. ^ ab Herrero-Collantes y García-Escartin 2017, p. 4.
  10. ^ Turan y col. 2018, pág. 6.
  11. ^ Saarinen, Newell y Marshall 2020.
  12. ^ Templo 2016, pag. 90.
  13. ^ Herrero-Collantes y García-Escartin 2017, p. 6.
  14. ^ Herrero-Collantes y García-Escartin 2017, p. 7.
  15. ^ abcde L'Ecuyer 2017.
  16. ^ Galton, Francisco (1890). «Dados para experimentos estadísticos» (PDF) . Naturaleza . 42 (1070): 13-14. Código Bib :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 .
  17. ^ Kendall, MG y B. Babington-Smith. 1938. “Aleatoriedad y otros números de muestreo aleatorios”. Revista de la Royal Statistical Society 101:147–166.
  18. ^ Brown, George W. (enero de 1949), P-113, Papers, Rand Corporation, archivado desde el original el 5 de junio de 2007 , consultado el 10 de mayo de 2009.
  19. ^ Cobine, Curry (1947), "Generadores de ruido eléctrico", Actas de la IRE (septiembre de 1947): 875–9
  20. ^ 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..
  21. ^ Schneier, Bruce (1 de noviembre de 1995). "Otros cifrados de flujo y generadores de secuencias aleatorias reales". Criptografía aplicada (Segunda ed.). John Wiley & Sons, Inc. pág. 423.ISBN 978-0-471-11709-4.
  22. ^ Sunar 2009, pag. 57.
  23. ^ Stipčević y Koç 2014, págs. 279–280.
  24. ^ Stipčević y Koç 2014, pag. 280.
  25. ^ Stipčević y Koç 2014, pag. 286.
  26. ^ ab Stipčević y Koç 2014, págs. 288–289.
  27. ^ ab Herrero-Collantes y García-Escartin 2017, p. 2.
  28. ^ Herrero-Collantes y García-Escartin 2017, págs. 10-13.
  29. ^ Herrero-Collantes y García-Escartin 2017, págs. 13-14.
  30. ^ Herrero-Collantes y García-Escartin 2017, p. 15.
  31. ^ Herrero-Collantes y García-Escartin 2017, p. 17.
  32. ^ Herrero-Collantes y García-Escartin 2017, p. 20.
  33. ^ Herrero-Collantes y García-Escartin 2017, págs. 20-21.
  34. ^ Herrero-Collantes y García-Escartin 2017, págs. 21-22.
  35. ^ Herrero-Collantes y García-Escartin 2017, págs. 23-24.
  36. ^ Herrero-Collantes y García-Escartin 2017, págs. 24-25.
  37. ^ Herrero-Collantes y García-Escartin 2017, págs. 27-28.
  38. ^ Huang, Leilei; Zhou, Hongyi; Feng, Kai; Xie, Chongjin (7 de julio de 2021). "Plataforma en la nube de números aleatorios cuánticos". npj Información cuántica . 7 (1). Springer Science and Business Media LLC: 107. Bibcode : 2021npjQI...7..107H. doi : 10.1038/s41534-021-00442-x . ISSN  2056-6387.
  39. ^ Turan y col. 2018.
  40. ^ Turan y col. 2018, págs. 25-27.
  41. ^ Markettos, A. Theodore; Moore, Simon W. (2009). "El ataque de inyección de frecuencia en generadores de números aleatorios verdaderos basados ​​​​en osciladores de anillo". Apuntes de conferencias sobre informática (PDF) . Berlín, Heidelberg: Springer Berlín 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