La razón de usar la operación XOR en algoritmos criptográficos

9

Observo que algunos algoritmos criptográficos implican el uso de la operación XOR con la tecla (incluso AES usa XOR para derivar las teclas redondas). Mi pregunta es ¿por qué específicamente XOR? ¿Qué hay de OR o NAND o alguna otra operación lógica? Creo que hay una razón para elegir XOR en lugar de otra operación lógica, pero realmente no lo sé.

Gracias

    
pregunta Michael 14.10.2016 - 01:59
fuente

1 respuesta

8

XOR es una operación que siempre se puede revertir, toda la información se retiene. Es tan simple como eso. El uso de AND y OR puede provocar la pérdida de información porque no se puede saber si ciertos bits fueron 1 o 0 en los operandos.

Jugando un poco con la respuesta de python, usaremos 19 ( 10011 ) y 5 ( 101 ) ya que estos números son buenos ejemplos.

Al utilizar OR, se pierde la información sobre cuál de los operandos tenía un poco de:

>>> bin(19|5)
'0b10111'

¿No es eso 19? Sí, eso es 19. El número resultante no puede decirnos que ha sido ORed con 5.

Usar AND es lo mismo:

>>> bin(19&5)
'0b1'

Eso es 1. No hay forma de que no recuperemos ninguno de los números (19 o 5) fácilmente, perdimos información nuevamente.

XOR es bueno para las herramientas criptográficas porque no pierde información cuando XORing:

>>> bin(19^5)
'0b10110'

Eso es 22. Aparentemente eso no nos dice mucho, pero mira esto:

>>> bin(22^5)
'0b10011'
>>> bin(22^19)
'0b101'

Puedes recuperar cualquiera de los dos números al XORAR los 22 con el otro número. Esa es una concepción muy primitiva de una clave secreta. Suponiendo que usted y otra persona puedan tener una gran lista de números muy grandes y aleatorios (ambos tienen los mismos números), puede simplemente enviar mensajes XOR y luego intercambiarlos de forma segura entre ustedes. Siempre y cuando usen un número diferente cada vez que se comuniquen, es un algoritmo seguro. El algoritmo se llama un teclado de una sola vez .

    
respondido por el grochmal 14.10.2016 - 02:25
fuente

Lea otras preguntas en las etiquetas