Introducción
La prueba estadística, en este caso sirve para comprobar que tan aleatorio es un número también de esta forma podremos confirmar que nuestras llaves son seguras o no.Prueba Monobit
Para la realización de esta prueba decidí usar la prueba Monobit ya que ademas de ser simple es cumple bastante el objetivo de la prueba.La prueba Monobit trata de dar una secuencia de números 0 y 1. El propósito de esto es determinar si el número de 1 y 0 en una secuencia son aproximadamente la misma que sería de esperar para una secuencia verdaderamente aleatoria. La prueba evalúa la cercanía de la fracción de los que ½, es decir, el número de 1 y 0 en una secuencia debe ser aproximadamente la misma.
Formula:
Como mi primera tarea tomaba ascii para generar las llaves especificando la cantidad del mensaje para esta prueba fue lo mismo. Preguntar n para determinar el tamaño y posteriormente convertirlo en bits para realizar la prueba Monobit.
Luego para calcular Sn es la conversión a 1, Los ceros y unos de la secuencia de entrada (ε) se convierten en valores de -1 y 1 y se suman para producirlo
Por ejemplo, si ε = 1011010101, entonces n = 10 y S n = 1 + (-1) + 1 + 1 + (-1) + 1 + (-1) + 1 + (-1) + 1 = 2
Luego calcular el valor de P usando la formula de :
donde Sobs viene siendo el resultado de la primera formula y eso se divide entre la raíz cuadrada de 2. El valor obtenido se compara con 0.01 donde si es 0.01 mayor al resultado la prueba es exitosa de lo contrario no es exitosa.
Código
Finalmente
Se dice que cosas realmente aleatorias no se pueden comprimir en conclusión entre mas aleatorio menos compresion. Asi que comprimi las llaves que se generan para esta prueba se generaron 50,000 clavesy el peso de el archivo difieren aproximadamente en un 16%
En conclusión mis llaves no son del todo aleatorias y mis llaves tampoco son del todo seguras.
Puntos por terminar
- Realizar un ataque a mi propio mensaje encriptado
- Realizar una gráfica con los valores obtenidos usando Gnuplot
http://dilbert.com/strips/comic/2001-10-25/
ReplyDeleteOjo con la ortografía.
Para ecuaciones matemáticas, sería mejor incrustar LaTeX o MathML o algo así.
En lo de compresión es difícil sacar conclusiones si no realizas una comparación entre dos o más generadores y el qué tanto se comprimen los resultados.
Van 5 pts.