Criptografía de la A-Z


volver

Generadores de Números Aleatorios


Los sistemas criptográficos necesitan números aleatorios que sean criptográficamente (dentro de lo posible) fuertes y que no puedan ser adivinados por un atacante. Los números aleatorios se usan generalmente para generar llaves de sesiones y su calidad (fortaleza) es crítica para la calidad de los sistemas que dependan de ellos.

El generador de números aleatorios puede ser fácilmente roto y puede volverse el punto mas débil de nuestro sistema criptográfico.

Algunas máquinas dedicadas pueden tener generadores de ruido por hardware. El ruido generado por una fuga de corriente desde un diodo a un transistor, señales perceptibles provenientes de alguna fuente de audio , tiempos entre interrupciones, etc. Todas son buenas fuentes para conseguir aleatoriedad si son procesadas con una Función Criptográfica Hash apropiada. Si buscamos aleatoriedad una buena idea seria tratar de conseguir y procesar ruido ambiental.

Un generador de números Pseudo-aleatorios es Yarrow, hecho por Counterpane. El Standard ANSI X9.17 define otra basado en el algoritmo de encriptación Triple-DES. Esta función es usada ampliamente utilizada, y fue aprobada por el Federal Information Processing Standards (FIPS) del gobierno de EE.UU.

Otro generador de números aleatorios bastante conocido, usado por ejemplo para producir las claves o llaves privadas DSA, está definido en el Standard FIPS 186.

Los generadores de números aleatorios criptográficos generan números al azar para ser utilizados en aplicaciones criptográficas, tales como para las llaves. Los generadores de números aleatorios convencionales disponibles en muchos lenguajes de programación o ambientes de programación no son adecuados para el uso en aplicaciones criptográficas (son generadas con características aleatorias estáticas, no para resistir predicciones o ataques de criptoanalistas).

Como caso óptimo, los números aleatorios se basan en el verdadero código físico de la aleatoriedad, que no puede ser predichos. Dichos códigos pueden incluir los ruidos de un dispositivo de semiconducción, los bits menos significativos de una entrada de audio, o los intervalos entre las interrupciones de los dispositivos y la presión de una tecla. El ruido obtenido de un código físico es luego destilado por una función Has criptográfica para hacer que cada bit dependa de todos los otros bit. A menudo un gran pool(miles de bit) es utilizado para contener la aleatoriedad, y todos los bit del pool son hechos de forma tal que dependan del todos los bit del ruido de entrada y de todos los bit de salida del pool en una forma criptográfica muy potente.

Cuando no está disponible una verdadera aleatoriedad física, se deben utilizar pseudo-números aleatorios. Esta situación es poco deseada, pero a veces surgen en computadoras de propósito general. Esto es estadísticas deseables, estadísticas de red, o interrupciones del teclado. El punto es que los datos deben ser imprevisibles para observadores externos, para conseguir esto, el pool aleatorio debe contener al menos una entropía verdadera de 128 bit.

Los generadores de pseudo-números aleatorios criptográficos generalmente tienen un gran pool ("valor de semilla") con aleatoriedad. Los bits devueltos por este pool se obtienen tomando datos del pool, opcionalmente pasándolos por una función Hash criptográfica para evitar revelar el contenido del pool. Cuando se necesitan mas bits, el pool es mezclado encriptando su contenido por un cifrado adecuado con llave aleatoria(debe ser tomada de una parte que no fue devuelta por el pool) de forma tal que cada bit del pool dependa de todos los bit del pool. Se deberían combinar nuevos ruidos en el ambiente con el pool antes de hacer que los valores predecibles previos o futuros sen aún más complejos (difíciles).

Aún así, los generadores de números aleatorios criptográficos sólidos no son difíciles de construir si se diseñan correctamente, por lo general son pasados por alto. La importancia de los generadores de números aleatorios debe ser enfatizada ya qeu si se hace mal, se convierte en el punto débil del sistema.

Más información puede ser obtenida en pLab Site.



volver

Extras

Virus-Antivirus

Hosting by