Estaba leyendo PGP docs y encontré una parte escrita por Phil Zimmermann (el creador de PGP) que despertó mi curiosidad:
Cuando estaba en la universidad a principios de los 70, ideé lo que creía que era un esquema de encriptación brillante. Un simple flujo de números pseudoaleatorios fue agregado a la flujo de texto sin formato para crear texto cifrado. Esto aparentemente frustraría cualquier análisis de frecuencia del texto cifrado, y sería imposible de descifrar incluso para el Las agencias de inteligencia del gobierno más ingeniosas. Me sentí tan satisfecho con mi logro.
Años después, descubrí este mismo esquema en varias introductorias. Textos criptográficos y trabajos de tutoría. Que agradable. Otros criptógrafos tenían Pensé en el mismo esquema. Desafortunadamente, el esquema fue presentado como tarea simple sobre cómo usar criptoanalítica elemental Técnicas para trivialmente quebrarlo. Tanto para mi brillante esquema. De esta humilde experiencia aprendí lo fácil que es caer en un falso sentido. de seguridad al diseñar un algoritmo de cifrado.
¿Qué técnicas podrían descifrar trivialmente el texto codificado de esta manera? Parece casi equivalente a un pad de una sola vez (que es irrompible sin el pad), siempre que el pseudo-RNG sea lo suficientemente complicado (período mucho más largo que el texto cifrado; el tamaño medio agregado a cada carácter es significativamente mayor que el tamaño de los caracteres) y una semilla adecuadamente complicada (por lo que no puedes forzar la fuerza bruta de cada semilla).
Por ejemplo, utilizando un Mersenne-Twister (con un período de 2 ^ 19937 -1 ~ 4.3x10 ^ 6001) y una frase de contraseña que genera una semilla aleatoria de 256 bits; Parece que no se puede descifrar sin haber dado la semilla.
O generaron un generador de números aleatorios simple con un período de 2 ^ 32 - 1 ~ 4,3 mil millones (eran los años 70; el Mersenne Twister ni siquiera se inventó hasta mediados de los 90); ¿Dónde podría utilizar la fuerza bruta? Pruebe cada uno de los 4,3 billones de semillas aleatorias con una comprobación rápida del texto cifrado para ver si aparecen palabras del diccionario o un análisis de frecuencia simple (muchos espacios e)).