En este artículo exploraremos la aplicación de la operación XOR en el cifrado de textos. Como sabrás, la operación XOR (o “exclusivo OR”) tiene la propiedad de ser reversible, lo que significa que si se cifra un mensaje aplicando XOR con una clave, basta aplicar nuevamente XOR con la misma clave para recuperar el mensaje original.
A continuación, veremos paso a paso cuatro ejercicios usando la clave MARIPOSA sobre distintos textos.
Ejercicio 1: Cifrar «DESASTRE» con clave «MARIPOSA»
En este primer ejercicio se cifra el texto DESASTRE. Cada letra se convierte a su valor ASCII y su representación en binario, se empareja con la letra correspondiente de la clave y se aplica XOR. El resultado se muestra también en binario, se convierte a su valor ASCII (aunque en este caso se obtienen caracteres de control) y se indica la letra resultante.
Leyenda de caracteres de control:
• 9 = TAB (Tabulación)
• 4 = EOT (End of Transmission)
• 1 = SOH (Start of Heading)
• 8 = BS (Backspace)
• 3 = ETX (End of Text)
• 27 = ESC (Escape)
La siguiente tabla muestra el proceso:
LETRA | ASCII | BIN | CLAVE | CIPH | ASCII | LETRA |
---|---|---|---|---|---|---|
D | 68 | 01000100 | M | 00001001 | 9 | (TAB) |
E | 69 | 01000101 | A | 00000100 | 4 | (EOT) |
S | 83 | 01010011 | R | 00000001 | 1 | (SOH) |
A | 65 | 01000001 | I | 00001000 | 8 | (BS) |
S | 83 | 01010011 | P | 00000011 | 3 | (ETX) |
T | 84 | 01010100 | O | 00011011 | 27 | (ESC) |
R | 82 | 01010010 | S | 00000001 | 1 | (SOH) |
E | 69 | 01000101 | A | 00000100 | 4 | (EOT) |
Ejercicio 2: Descifrar «DESASTRE» (recuperar el texto original)
Dado que XOR es reversible, al aplicar nuevamente la operación con la misma clave MARIPOSA sobre el texto cifrado (los caracteres de control obtenidos en el Ejercicio 1) se recupera el mensaje original. La siguiente tabla muestra el proceso de descifrado:
LETRA (Cifrado) | ASCII | BIN | CLAVE | CIPH | ASCII | LETRA (Descifrado) |
---|---|---|---|---|---|---|
(TAB) | 9 | 00001001 | M | 01000100 | 68 | D |
(EOT) | 4 | 00000100 | A | 01000101 | 69 | E |
(SOH) | 1 | 00000001 | R | 01010011 | 83 | S |
(BS) | 8 | 00001000 | I | 01000001 | 65 | A |
(ETX) | 3 | 00000011 | P | 01010011 | 83 | S |
(ESC) | 27 | 00011011 | O | 01010100 | 84 | T |
(SOH) | 1 | 00000001 | S | 01010010 | 82 | R |
(EOT) | 4 | 00000100 | A | 01000101 | 69 | E |
El mensaje recuperado es: DESASTRE
Ejercicio 3: Descifrar otro Texto Cifrado con clave «MARIPOSA»
En este caso se descifra un mensaje cifrado dado por una secuencia de caracteres de control. El texto cifrado es:
BS, DC2, STX, FF, DC3, ACK, DC2, CR
Utilizando la clave MARIPOSA se realiza el siguiente proceso:
LETRA (Cifrado) | ASCII | BIN | CLAVE | CIPH | ASCII | LETRA (Descifrado) |
---|---|---|---|---|---|---|
BS | 8 | 00001000 | M | 01000101 | 69 | E |
DC2 | 18 | 00010010 | A | 01010011 | 83 | S |
STX | 2 | 00000010 | R | 01010000 | 80 | P |
FF | 12 | 00001100 | I | 01000101 | 69 | E |
DC3 | 19 | 00010011 | P | 01000011 | 67 | C |
ACK | 6 | 00000110 | O | 01001001 | 73 | I |
DC2 | 18 | 00010010 | S | 01000001 | 65 | A |
CR | 13 | 00001101 | A | 01001100 | 76 | L |
El mensaje descifrado es: ESPECIAL
Ejercicio 4: Cifrar «LIBERTAD» con clave «MARIPOSA»
En este último ejercicio se cifra el texto LIBERTAD. El proceso es similar al del Ejercicio 1, y se detalla a continuación:
LETRA | ASCII | BIN | CLAVE | CIPH | ASCII | LETRA |
---|---|---|---|---|---|---|
L | 76 | 01001100 | M | 00000001 | 1 | SOH |
I | 73 | 01001001 | A | 00001000 | 8 | BS |
B | 66 | 01000010 | R | 00010000 | 16 | DLE |
E | 69 | 01000101 | I | 00001100 | 12 | FF |
R | 82 | 01010010 | P | 00000010 | 2 | STX |
T | 84 | 01010100 | O | 00011011 | 27 | ESC |
A | 65 | 01000001 | S | 00010010 | 18 | DC2 |
D | 68 | 01000100 | A | 00000101 | 5 | ENQ |
El resultado del cifrado es una secuencia de caracteres de control:
SOH, BS, DLE, FF, STX, ESC, DC2, ENQ
Para corroborar la correcta aplicación del proceso, se puede realizar el descifrado aplicando XOR con la misma clave. La tabla inversa es:
LETRA (Cifrado) | ASCII | BIN | CLAVE | CIPH | ASCII | LETRA (Descifrado) |
---|---|---|---|---|---|---|
SOH | 1 | 00000001 | M | 01001100 | 76 | L |
BS | 8 | 00001000 | A | 01001001 | 73 | I |
DLE | 16 | 00010000 | R | 01000010 | 66 | B |
FF | 12 | 00001100 | I | 01000101 | 69 | E |
STX | 2 | 00000010 | P | 01010010 | 82 | R |
ESC | 27 | 00011011 | O | 01010100 | 84 | T |
DC2 | 18 | 00010010 | S | 01000001 | 65 | A |
ENQ | 5 | 00000101 | A | 01000100 | 68 | D |
El mensaje descifrado es: LIBERTAD
Conclusión
Hemos visto cómo aplicar la operación XOR en el cifrado y descifrado de mensajes. Los pasos incluyen:
- Convertir cada letra del mensaje a su valor ASCII y a su representación en BIN (binario).
- Emparejar cada letra con la correspondiente de la clave (en este caso, MARIPOSA).
- Aplicar la operación XOR para obtener el CIPH en binario.
- Convertir el resultado a su valor ASCII y finalmente a la LETRA correspondiente.
Estos ejercicios muestran de manera práctica cómo, a pesar de que el resultado pueda ser caracteres de control (no imprimibles), la propiedad reversible del XOR permite recuperar el mensaje original aplicando nuevamente la operación con la misma clave.
¡Sigue practicando y explorando el fascinante mundo de la criptografía!
