Encriptacion por metodo XOR

Encriptacion XOR


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 \oplus 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.

0 comentarios: