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.

1 comentario:

  1. La idea es muy buena; hubiera sido interesante realizar un comparativo entre diferentes lenguajes y/o generadores pseudoaleatorios para ver qué tanto efecto tienen esos. 5 pts.

    ResponderEliminar