jueves, 23 de agosto de 2012

Encriptación por método XOR

Dentro de los tantos algortimos de encriptacion que existen esta el XOR , en realidad este no es tanto un algoritmo sino una sustitución , 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 aplicándoles 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 método se realiza de la siguiente forma:
Como se hace a nivel de bits se cuenta con la siguiente tabla:



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 pequeño.

Código del programa para cifrar y decifrar aplicando la operación XOR:



Captura del programa en ejecución:


1 comentario:

Elisa dijo...

La tarea no era hacer la cifra XOR, sino generar y usar un one time pad. En sí la cifra XOR es una de las maneras de implementar el cifrado con tu one time pad (si el pad es binario). No te puedo poner más de 2 puntos ya que no es lo que encargué :/

Publicar un comentario