En el corazón de todos los sistemas
criptográficos, está la generación de números
secretos que no puedan ser adivinados por otra persona, es decir
aleatorios. Algunos usos comunes de dichos números serían
la generación de claves, vectores de inicialización,
parámetros únicos para firmas digitales...
Para que un adversario tenga una probabilidad
muy pequeña de adivinar nuestros números, no es
suficiente usar números pseudoaleatorios que simplemente
verifiquen ciertos tests estadísticos o estén basados
en recursos limitados como el reloj interno. Frecuentemente estas
cantidades pueden ser determinadas buscando en un espacio de probabilidades
sorprendentemente pequeño.
En esta páginas pretendemos dar
algunas ideas sobre los métodos existentes para conseguir
números aleatorios reales y aproximados; algunos criterios
para estimar la “bondad” de secuencias de números
aleatorios y cuanta aleatoriedad necesitamos realmente si ciframos
nuestro diario íntimo o protegemos una base de misiles.