Diseño de un generador de números aleatorios para aplicaciones de criptografía en tarjetas inteligentes - Bejar Espejo, Eduardo Alberto Martín (2015)
La generación de números aleatorios es un punto clave en los sistemas criptográficos,su desempeño depende del nivel de aleatoriedad que son capaces de generar. Particularmente, en aplicaciones móviles estos generadores de números aleatorios están sujetos a fuertes restricciones a nivel de diseño de circuito integrado. En la presente tesis se realizó el diseño y simulación de un circuito generador de números aleatorios en tecnología CMOS 0.35 m para el procesador criptográfico de una tarjeta inteligente (Smart Card). El método de generación consiste en el muestreo de un oscilador con jitter elevado, el cual permite dividir al circuito en tres bloques principales. El primero de ellos es el oscilador que fija la frecuencia de muestreo cuyo periodo debe ser mucho más pequeño, en promedio, que el del oscilador con jitter elevado. El segundo bloque consiste en el circuito muestreador, implementado mediante un flip flop tipo T. El tercer bloque es el oscilador afectado por jitter del cual depende, en gran medida, la calidad de los números aleatorios generados. Este consiste en un oscilador triangular donde el ruido térmico, introducido por un par de resistencias, es amplificado. Estos tres bloques, trabajando de manera conjunta, generan los números aleatorios cuya calidad se analizó mediante los algoritmos propuestos por el National Institute of Standards and Technology (NIST) para verificar si el generador es lo suficientemente aleatorio como para ser utilizado en aplicaciones criptográficas. La estructura del presente documento se detalla a continuación. En el primer capítulo se definió el problema a resolver. En el segundo capítulo, se revisaron los conceptos teóricos fundamentales relacionados a los números aleatorios y tecnología CMOS, asimismo, se presentaron diferentes metodologías actuales de generación de números aleatorios en circuitos integrados. En el tercer capítulo, se analizó con detalle la topología a usar y se realizó su diseño respectivo. En el cuarto capítulo se hicieron las simulaciones necesarias para verificar el correcto funcionamiento del circuito y se analizaron las secuencias de números obtenidas usando los algoritmos propuestos por el NIST. Finalmente, se presentan las conclusiones y recomendaciones.