Friday, July 4, 2014

iReport mensaje nulo al compilar o en preview [Solucion]

Hace unos días tuve unos problemas con iReport. El cual me salía un mensaje de alerta diciendo "null". Después de ver en el foro de jasper encontré la solución.

Basta con actualizar tu open-jdk en mi caso usaba la 6, actualice a la 7.


Una vez actualizado corrí el siguiente comando para seleccionar con que java trabajar

sudo update-alternatives --config java
sudo update-alternatives --config javac
ya por último seleccionas openjdk-7


Probado con iReport v 3.7.6 pero leí que funciona igual con la 5.0+

Wednesday, July 3, 2013

RSA

Nota: Como falte un día de clase tuve que investigar mucho por mi cuenta. Lamentablemente no pude terminar la parte de los sockets y autentificación que  es la parte mas importante, de igual forma dejo la información  conseguida al igual el código de RSA para futuras retroalimentaciones.

RSA

 

El RSA fue inventado por Ron Rivest, Adi Shamir, Leonard Adleman. De sus iniciales proviene el nombre de RSA. Su algoritmo basado de la factorizacion entera  sirve para poder cifrar claves publicas y con el paso de el tiempo esto se hizo un standard en la criptografia y actualmente se usa en protocolos seguros como TLS-SSL, X:509, PKI.

15 meses despues de la creacion del RSA este Whitfield DiffieMartin Hellman  basado del logaritmo discreto crearon un protocolo de cambio seguro de llaves

Algoritmo Asimétrico/Simétrico

 Se dice asimetrico por que cada usuario tiene un par de claves que es publica y privada es decir tanto como emisor y receptor (cliente y servidor) tendremos claves distintas

Intercambio de Clave

  1. El emisor cifra un mensaje con clave publica destino
  2. Se convierte en criptograma
  3. El criptograma solo puede descifrarlo el destinatario
  4. Usa su clave privada , inversa de la publica 
  5. Se recupera el mensaje en destino
  6. Se consigue la confidencialidad 

 

 

Entendiendo  RSA

 Para poder resolver RSA y comprender lo que se me estaba pidiendo tuve que ver varios vídeos de los cuales fueron estos:


Codigo

Referencias

Las referencias se abrirán en una ventana nueva
Encontrar primo
Comprendiendo phi y e
Libro de cripto (pagina 54, esta en inglés, bastante bueno pero muy científico)


Por terminar 

  • autetificación
  • server y sockets 

 

Monday, July 1, 2013

Prueba estadística

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 claves


y 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

Referencias


Thursday, June 27, 2013

One Time Pad - Seguridad de Información y Criptografia

Introducción

Cuando la primera  guerra mundial estaba llegando a su fin, el Mayor Joseph Mauborgne, jefe de investigación criptográfica de la US Army, introduce el concepto de clave aleatoria. Esta no constaba de una serie de palabras sino una gran serie de letras elegidas al azar y se utilizan como parte de un criptosistema de Vigenére. Como cada clave se utiliza una sola vez el sistema se conoce como “one-time pad” “el cifrado de cuaderno de uso único”.

• El primer paso era conseguir un bloque (pad) de hojas con cientos de éstas.
• Cada hoja contenía una llave única en forma de línea de secuencias aleatorias de letras.
• Dos copias del bloque: una para el emisor y otra para el receptor.
• Para encriptar el emisor aplica el criptosistema de Vigenére con la primera hoja del bloque como llave.
• El receptor puede descriptar usando el mismo criptosistema y con la misma llave.
• Una vez que el mensaje fue encripatado, enviado, recibió y descriptado con éxito la hoja que se usó como hoja y se destruye.
• Cuando el siguiente mensaje se va a enviar la siguiente llave del bloque es usada
  la cual es subsecuentemente destruida y así se continua
• Debido a que cada llave es usada una sola vez, el
sistema se conoce como onetime pad
.


Ejemplo:
Llave:
P L M O E Z Q K J Z L R T E A V C R C B Y
Texto claro:
a t t a c k t h e v a l l e y a t d a w n
Criptosistema:
P E F O G J J R N UL C E I Y V V U C X L



Código

El código trata de mandar de parte de persona A un mensaje encriptado y persona B desencripta dicho mensaje guardandolo en archivos para cada persona.


 

 

Screenshot

 

Referencias



Por terminar

  • Falta poner restricciones para los campos total_mensajes y cantidad. Solo aceptan campos numéricos
  • Falta borrar lineas después de usar la llave generada
  • Falta restricción en tamaño del mensaje 

Thursday, September 20, 2012

Juego Pygame Colisión y comando por texto

Objetivo del juego


El objetivo del juego es atrapar a los cuadros que van cayendo.

Comandos

derecha = te mueves a la derecha
izquierda = Izquierda
Z= izquierda turbo
x = derecha turbo
C = Ingrese cheat

Aquí dejo lo más importante del código
http://codepad.org/IwfWEly3


Y anexo el zip de todo lo necesario para correrlo en su maquina y lo prueben :)
Requerimientos
-Pygame
-python 2.0 superior
-Imagenes que vienen en la carpeta

Descargar juego: http://www.mediafire.com/?qrchbh1dwog91dy

Los comandos para activar los cheats viene siendo

oprime primero C
en terminal escribe uno de los siguientes palabras
aegis = hace todo mas rapido
turtle = hace todo mas lento
blood = cambia los cuadros a rojo
alien = cambia los cuadros a azul
crazy = entra en modo crazy (el random es más aleatorio xD)






Wednesday, September 5, 2012

Primer escenario

Bueno aquí dejo la primer prueba del primer escenario...cada piso se generará un nuevo "tmx" para que los encargados de implementar el diseño al programa no batallen y pueda haber un mejor control.

El objetivo:

El objetivo del juego es entrar en cada "salón" vencer a un grupo de zombies y conseguir una parte de la llave por lo general en cada piso hay de 5 a 6 salones entonces en el ultimo salón hacer un mini-boss para conseguir el resto de la llave de ese modo ya podrás abrir la puerta que están en las escaleras para seguir al siguiente piso. El objetivo principal es recorrer todos los edificios de la fime hasta llegar al ultimo edificio y vencer al boss principal.

Nota: Como no he visto una idea principal del juego hago ese aporte. No es oficial pero de aquí puede surgir alguna idea.





Y añado el tmx.
MAPA-TMX


Personajes




Al igual agrego algunos enemigos que pueden ser útiles.

Thursday, August 30, 2012

Curso Python día 1

Esto fue lo que se hizo el primer día de el curso de python.


http://codepad.org/GrMYvLeK

Aquí está el PDF de la presentación que se uso.


PDF