Aleatoriedad verdadera frente a pseudoaleatoriedad
Distinga las fuentes de entropía de hardware de los PRNG de software.
Aleatoriedad verdadera frente a pseudoaleatoriedad es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.
Por qué importa la aleatoriedad
La seguridad criptográfica depende fundamentalmente de la impredecibilidad. Si un atacante puede predecir su clave, IV o nonce, aunque sea parcialmente, todo el sistema criptográfico puede quedar comprometido. La aleatoriedad débil ha provocado fallos catastróficos en sistemas reales.
Generadores de números aleatorios verdaderos (TRNG)
Los TRNG recogen entropía física: ruido térmico en resistencias, ruido de disparo en diodos polarizados inversamente, desintegración radiactiva, movimientos del ratón, intervalos entre pulsaciones de teclas y latencias de búsqueda del disco. Se trata de fenómenos físicos realmente impredecibles.
Piscina de entropía
El sistema operativo mantiene una piscina de entropía, una colección de muestras de ruido físico combinadas mediante XOR y hash. En Linux, /dev/random y /dev/urandom extraen datos de esta piscina. La piscina se repone continuamente mientras el sistema está en ejecución.
Generadores de números pseudoaleatorios (PRNG)
Un PRNG (también llamado RNG determinista o DRNG) amplía una semilla corta hasta producir un flujo largo de bytes pseudoaleatorios mediante un algoritmo determinista. Con la misma semilla, produce la misma salida. No es adecuado para criptografía, a menos que se inicialice con entropía verdadera.
PRNG frente a CSPRNG
Un PRNG puede presentar un sesgo estadístico detectable o permitir predecir su salida a partir de la salida observada. Un PRNG criptográficamente seguro (CSPRNG) añade: (1) seguridad hacia delante (la salida pasada no se puede predecir a partir del estado actual) y (2) resistencia al retroceso (la salida futura no se puede predecir a partir de la salida pasada).
Prueba de distinguidor
Un PRNG es criptográficamente seguro si ningún algoritmo de tiempo polinómico puede distinguir su salida de una secuencia verdaderamente aleatoria con una probabilidad significativamente superior a 1/2. Este es el criterio de impredecibilidad del siguiente bit.
Fuentes de entropía en distintas plataformas
Linux: /dev/urandom (no bloqueante después de la inicialización de la semilla), llamada al sistema getrandom(). Windows: CryptGenRandom(), BCryptGenRandom(). macOS/iOS: SecRandomCopyBytes(). Navegador: window.crypto.getRandomValues(). Todas estas fuentes alimentan la piscina de entropía del sistema operativo.
Pruebas estadísticas
NIST SP 800-22 proporciona 15 pruebas estadísticas de aleatoriedad: frecuencia, frecuencia de bloques, rachas, universal de Maurer, complejidad lineal, etc. Superar las pruebas estadísticas no demuestra la seguridad criptográfica; solo demuestra la ausencia de sesgos evidentes.
Calidad de la semilla
Un CSPRNG inicializado con entropía débil, como la hora actual expresada en segundos, es predecible. Un atacante que conozca la semilla puede reconstruir toda la salida. Inicialice siempre la semilla a partir de la entropía del sistema operativo: os.urandom(32) en Python, no time.time() ni random.random().
Generadores aleatorios de hardware
Intel RDRAND, una instrucción de x86, devuelve bytes aleatorios generados por hardware a partir de un TRNG integrado en el chip. También existen equivalentes de hardware en AMD y ARM. Linux mezcla RDRAND en /dev/urandom. Se utiliza como entropía adicional, no como única fuente, debido a cuestiones de confianza.
Generadores cuánticos de números aleatorios
Los QRNG utilizan fenómenos de la mecánica cuántica, como los tiempos de llegada de fotones y las fluctuaciones del vacío, para producir una salida aleatoria demostrable. Los QRNG comerciales, como ID Quantique y Quantis, se utilizan en aplicaciones de alta seguridad. Su coste resulta prohibitivo para el uso general.
Comprobación rápida
¿Qué propiedad distingue un CSPRNG de un PRNG normal?
Resumen
Los TRNG recogen entropía física; los PRNG amplían una semilla de forma determinista; los CSPRNG no se pueden distinguir de una aleatoriedad verdadera. Las piscinas de entropía del sistema operativo combinan ambas fuentes. A continuación: diseños específicos de CSPRNG utilizados en la práctica.
Aprende Cryptology Academy con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 67
- Lecciones
- 261
Preguntas frecuentes
¿La lección «Aleatoriedad verdadera frente a pseudoaleatoriedad» es gratis?
Sí — el texto completo de «Aleatoriedad verdadera frente a pseudoaleatoriedad» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Aleatoriedad verdadera frente a pseudoaleatoriedad»?
Distinga las fuentes de entropía de hardware de los PRNG de software. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Cryptology Academy?
No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Aleatoriedad verdadera frente a pseudoaleatoriedad»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?
Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Aleatoriedad verdadera frente a pseudoaleatoriedad
- PRNG criptográficamente seguros
- Agotamiento de entropía y errores de claves débiles
- Generación segura de claves, nonces e IV