Cifrado Xor

Cifrado XOR
Información sobre la plantilla
Concepto:En criptografía, el cifrado XOR es, como su nombre indica, un algoritmo de cifrado basado en el operador binario XOR

En criptografía, el cifrado XOR es, como su nombre indica, un algoritmo de cifrado basado el operador binario XOR

   A ⊕ 0 = A,
   A ⊕  A = 0,
   (B ⊕  A) ⊕ A = B ⊕  0 = B, 

Donde ⊕ es una operación OR exclusiva (XOR). Una cadena de texto puede ser cifrada aplicando el operador de bit XOR sobre cada uno de los caracteres utilizando una clave. Para descifrar la salida, solo hay que volver a aplicar el operador XOR con la misma clave.

Por ejemplo, la cadena "Wiki" (01010111 01101001 01101011 01101001 en 8-bit ASCII) puede ser cifrada con la clave 11110011 de la siguiente manera:

       01010111 01101001 01101011 01101001
       ⊕ 11110011 11110011 11110011 11110011
  es = 10100100 10011010 10011000 10011010

Y viceversa para descifrarlo:

   	10100100 10011010 10011000 10011010
        ⊕ 11110011 11110011 11110011 11110011
 es  = 01010111 01101001 01101011 01101001

El operador XOR es muy común como parte de cifrados más complejos. Sin embargo, por sí solo el cifrado XOR es muy vulnerable y es muy fácil obtener la clave a través del análisis de varios mensajes cifrados con la misma clave.

Dentro de los tantos algortimos de encriptacion que existen esta el XOR , en realidad este no es tanto un algoritmo sino una sustitucion , este metodo se podria decir que es de sustitucion polialfabetica, porque se intercambian una a una las letras del texto plano con las letras de la clave aplicandoles la operacion XOR.

Bueno y a todo esto podemos preguntar que es la operacion XOR tanto mencionada; esta es una operacion que se realiza a nivel binario , XOR viene de la palabra en ingles: “Exclusive OR” . En espaniol tambien se le llama : ExOR , (or exclusiva).

Estas operaciones son operaciones binarias a niveles de bits si se quiere profundizar mas en el tema se puede consultar en la wikipedia por las compuertas binarias.

Explicando el metodo del XOR

El metodo se realiza de la siguiente forma: Como se hace a nivel de bits se cuenta con la siguiente tabla

Entrada A Entrada B Salida A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

Tabla extraida de la wikipedia

Tenemos una palabra que queremos cifrar :

BACK

Tenemos una clave alfanumerica:

DOOR Para poder comparar estas dos palabras se tienen que convertir a su equivalente en Ascii binario para realizar las operaciones:

B=0100001

A=1000001

C=1100001

K=1101001


D=0010001

O=1111001

O=1111001

R=0100101


Una vez que se realiza el cambio se efectua la operacion XOR:

0100001 1000001 1100001 1101001 0010001 1111001 1111001 0100101

————– ————– ————– —————

0110000 0111000 0011000 1001100

————– ————– ————– ————–

45 56 24 76

Se hace el primer caracter del texto plano con el primer caracter de la clave , el segundo del texto plano con el segundo caracter de la clave y asi sucesivamente si se acaba los caracteres de la clave se empieza de nuevo con el primero.

Lo que hice en el ejemplo de arriba fue hacer la operacion XOR en binario y el resultado volverlo nuevamente a decimal. El resultado de nuestro texto cifrado seria:

– 8 (CAN) L

La palabra CAN es el simbolo de cancel entonces lo mas seguro les saldra (si lo implementan en una computadora) un cuadrado pequenio. Bueno eso es todo espero que les sirva mas adelante la implementacion en java de este metodo.

Nota: no implementen este metodo solo para cifrar algo ya que es muy facil de descifrar para los que manejan estos algoritmos. el proceso de descifrado es poner el texto cifrado y la clave y realizar el mismo proceso del cifrado.

Fuente