¿Se puede romper un cifrado XOR si el texto en claro es un número en aumento?

2

Hace muchas lunas, estaba trabajando con un equipo que estaba construyendo un sitio web público. Originalmente construimos el sistema utilizando claves primarias numéricas de incremento automático como el identificador público para cada pieza de contenido que se recopiló. Se supo que exponer este número era un riesgo: revelaría cuántos objetos tenía el sistema, y el delta entre dos ID de objeto y sus fechas de publicación revelaría una tasa de crecimiento / adopción.

Un colega principal declaró que el uso de un cifrado XOR resolvería este problema. Tomaríamos las identificaciones de los objetos como siempre lo hacíamos y XOR con una clave numérica bien protegida para crear un identificador público. Revertiríamos el proceso para obtener nuestro número original.

En nuestro caso, las ID privadas y la clave eran enteros de 32 bits sin signo. Y, como es de esperar, dos elementos creados uno cerca del otro mostraron cambios en sus bits menos significativos, pero ningún cambio en los bits más significativos. En ese momento pensé que sería trivialmente fácil para un adversario publicar algunos objetos en una sucesión, notar que los LSB cambiaron mientras que los MSB se mantuvieron estáticos, y concluyo que simplemente estábamos XOReando un entero de incremento. Pero siempre me pregunté qué les llevaría obtener la llave y derribar toda la fachada.

¿Es posible, si un atacante puede razonar que el texto plano es un entero monotónicamente creciente, para derivar la clave completa?

    
pregunta smitelli 31.07.2015 - 16:44
fuente

2 respuestas

1

Un atacante inteligente probablemente pueda encontrar información sobre la velocidad a la que se está creando el nuevo contenido.

Ya que siempre estás XORIANDO las claves primarias con la misma clave secreta, siempre verás un poco de cambio en el texto cifrado al mismo tiempo que se voltea en el texto plano. Esto significa que puede saber cuándo la clave principal se desplaza a un número mayor, como aquí:

01111111 10000000

o, cuando esté cifrado con 11100010 como clave:

10011101 01100010

Esto filtra información sobre la tasa de crecimiento, especialmente si el atacante es capaz de generar contenido a voluntad.

... por supuesto, si cada ID corresponde a una parte del contenido, ¿no puede el atacante simplemente ver cuántos hay?

Sin embargo, para volver a la pregunta original, no debería haber una forma trivial para encontrar la clave, siempre y cuando nunca pierdas ningún valor de ID privado. Si un atacante obtiene un fragmento de texto simple y el texto cifrado correspondiente, se le indicará:

A XOR K XOR A = K

    
respondido por el etherealflux 31.07.2015 - 19:43
fuente
1

Como señala en su pregunta, un atacante astuto puede darse cuenta de que sus claves principales (es decir, el texto plano) aumentan secuencialmente los valores numéricos, y que se está utilizando el cifrado XOR, porque los LSB del texto cifrado cambian mientras Los MSB permanecen estáticos.

En ese punto, se acabó el juego. El cifrado XOR se puede romper fácilmente, como lo explica Bruce Schneier en "Criptografía aplicada". Consulte enlace para obtener más información.

    
respondido por el mti2935 01.08.2015 - 02:45
fuente

Lea otras preguntas en las etiquetas