Es bien sabido que, haciendo un XOR de un archivo contra una tecla corta es un cifrado altamente inseguro (se puede romper con el análisis de frecuencia).
Pero si la longitud de la clave es igual a (o tiene el mismo orden de magnitud que) la longitud del archivo que se va a cifrar, entonces la situación es cercana a one-time-pad / Vernam cipher y es seguro (no se puede realizar un análisis de frecuencia).
¿Hay una regla general para la cual el cifrado XOR se considera generalmente seguro?
por ejemplo:
-
key size = file size
= > súper seguro, almohadilla de una sola vez -
key size = (1/2) file size
= > parece realmente seguro, no veo cómo un análisis de frecuencia podría funcionar con solo 4 repeticiones -
key size = (1/100) file size
= > ? -
key size = (1/10000) file size
= > ?
Digamos que el archivo es de 10 GB si ayuda a obtener el orden de las magnitudes.
Ejemplo con key size = (1/2) file size
:
file: 0101 0111 (size 8)
key: 0100 0100 (0100, i.e. size 4, repeated twice)
cyphertext: 0001 0011
Aquí la clave 0100
se repite dos veces. ¿Cómo podría alguien que tenga solo el texto cypher tamaño 8 y el conocimiento del hecho de que la clave es de tamaño 4 romperlo?