Cryptology Academy · Lección

Aleatoriedad verdadera frente a pseudoaleatoriedad

Distinga las fuentes de entropía de hardware de los PRNG de software.

Lección 1 de 413 pasos

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.

Gratis para empezar

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

  1. Aleatoriedad verdadera frente a pseudoaleatoriedad
  2. PRNG criptográficamente seguros
  3. Agotamiento de entropía y errores de claves débiles
  4. Generación segura de claves, nonces e IV
← Volver a Cryptology Academy