Para cifrar un mensaje con una tecla de teclado de una sola vez , debe hacer . k E n c ( m 1 , k ) = m 1 ⊕ k
Si usa la misma para cifrar un mensaje diferente , obtiene , y si realiza Xor de los dos textos cifrados, obtiene m 2 E n c ( m 2 , k ) = m 2 ⊕ k ( m 1 ⊕ k ) ⊕ ( m 2 ⊕ k ) = m 1 ⊕ m 2
entonces, OK, hay alguna fuga de información porque aprendes , pero ¿por qué no es seguro? No tengo forma de aprender (digamos) menos que sepa . Entonces, ¿por qué está mal usar dos veces?m 1 m 2 k
Respuestas:
Ese es exactamente el problema: si reutiliza la misma clave y alguien tiene acceso a un mensaje que cifró en texto plano y encriptado, puede usarlo para encontrar su clave:
Como escenario alternativo, si usa la misma clave una y otra vez, los atacantes pueden adivinar solo partes de varios mensajes cifrados, y cada suposición exitosa revela una parte de la clave , de modo que con el tiempo más y más La clave se revela.k
Esta estrategia general para romper un sistema de cifrado se conoce como un ataque de texto sin formato conocido . Se cree que muchos sistemas, como AES y RSA, son seguros contra estos ataques. Pero una almohadilla de una sola vez se vuelve completamente insegura contra ellos a menos que se use una nueva almohadilla para cada cifrado, por lo que se denominan "almohadillas de una sola vez".
fuente
Es inseguro precisamente por la razón que mencionas: hay alguna fuga de información.
Básicamente, si tiene alguna suposición sobre los textos simples (texto en inglés, archivos con estructura conocida, etc.), esto lleva a un análisis estadístico fácil. Probablemente usarlo dos veces no cambia significativamente la practicidad del ataque, pero usarlo muchas veces con un texto plano no aleatorio, eventualmente revela suficiente información para recuperar la clave.
Finalmente, si tiene la capacidad de usarlo solo dos veces , también tiene la capacidad de usarlo solo una vez ; la restricción es que estas almohadillas de una sola vez no se deben usar potencialmente desconocidas y con el tiempo, dañando varias veces.
Los ataques de texto sin formato conocidos son bastante comunes, es razonablemente fácil forzar un mecanismo de encriptación para encriptar algo que usted conoce a priori. Si no, generalmente puede hacer suposiciones estadísticas razonables.
fuente
Si desea utilizar dos veces una almohadilla única, primero debe comprimir su mensaje. E incluso entonces, si no usa un algoritmo de compresión casi perfecto, y usa el pad de una sola vez varias veces, habrá suficiente entropía para recuperar teóricamente los mensajes. No sé lo difícil que sería en la práctica.
fuente
En realidad, para muchos casos, es muy simple. Aquí hay una visualización simple.
fuente
Aquí hay una forma intuitiva de representar el enfoque sin recurrir a las matemáticas. Digamos que tiene dos mensajes encriptados que han sido encriptados por el mismo pad de una sola vez.
fuente