domingo, 30 de junio de 2013

Nivel de Seguridad One-Time Pad

Para el programa anterior ( el One Time Pad) dejé establecido que las llaves fueran generadas totalmente al azar (basándonos en el random de python) tomando el valor "numerico" ASCII de una letra y/o número, buscando hacer las claves lo más "indescifrables" posibles.

Con la intención de verificar que tan difícil es que una llave se repita, cree este programa que nos indica cuantas veces se "genera" una misma llave, con lo cual podemos darnos una idea de que forma es mejor encriptar nuestro mensaje, basándonos en el tamaño de la llave principalmente.


Como parámetros principales debemos ingresar:

  1. Cantidad de pruebas a generar.
  2. Tamaño de la llave.
  3. Cantidad de llaves a generar.

Con lo cual el programa nos generará una lista de las coincidencias de las llaves, verificando una por una y arrojándonos la cantidad de veces que se repite esta misma llave.

Como resultado podemos observar que mientras más grande sea el tamaño de la llave, más difícil va a ser obtener llaves idénticas.

Llaves de longitud "3".

Llaves de longitud "4"


Conclusiones:

Simulando un intento de obtener las llaves para descifrar un mensaje, es comprobable que, mientas más grande sea el tamaño de la llave, mayor será el esfuerzo y tiempo necesario para obtener una llave similar.

Observación

Seria recomendable que se realizaran pruebas por medio de un programa echo en paralelo, de esta forma podríamos crear una simulación de ataque más real y, de esta forma ver que tan eficiente es una clave de "n" números con un mejor aprovechamiento de los recursos computacionales.

jueves, 27 de junio de 2013

One Time Pad - Seguridad de la Información y Criptografía

Consiste en crear N numero de llaves con las cuales encriptaremos un mensaje, el cual sera enviado a otra persona, esta otra persona obtiene un archivo con las mismas llaves las cuales usara apra desencriptar su mensaje.

El programa esta echo en Python y puedes visualizarlo aqui:

Para iniciar el el programa basta con ejecutar el siguiente comando:


Con esto obtendremos el texto encriptado.

Para desencriptarlo es suficiente con ejecutar nuevamente el programa pero ahora con el Texto encriptado.
El problema que muestra el programa es que en ocaciones el texto que ingresamos lo encripta pero al final se "come" alguna letra.
Referencias:
http://ubuntuforums.org/showthread.php?t=533716 (metodos Encriptar/Desencriptar)
http://www.ncmilitia.org/spycounterspy/fs019.html Descripción básica de One Time Pad