Social Icons

twitterfacebookgoogle plusemail

jueves, 30 de agosto de 2012

Statistical Analysis of One-Time-Pad

I did some tests to prove that my key generated by my code is secure. The test that I did, was the monobit test, this test focus on the frequencies of zeros and ones. The prupose of this test is to determine whether the number of ones and zeros in a sequence are approximately the same as would be expected for a truly random sequence.

This is the key to test.


Then we convert the odd numbers to ones and the pair numbers to 0.


After we test the ones and zeros into my monobit function. Here's my code.


And our p-value is:

The p-value is the probability that a test statistic would be obtained a certain probability to expect that is true. We assum that we have an alfa value this value is the expected value I expected that I'll have 0.5 value, and I got 0.510797798174, it's very close but still being above my alfa value, so my key value is not really good, because I have certain patterns that a hacker could hack fast.
Source:
P-value http://mathworld.wolfram.com/HypothesisTesting.html
Max's blog http://maxkalavera.blogspot.mx/search/label/Clase%20modelado%20y%20simulaci%C3%B3n%20de%20sistemas%20din%C3%A1micos

martes, 28 de agosto de 2012

Lógica boleana: Buscadores web

Lógica booleana es una forma de algebra, en la que todos los valores se reducen a verdadero ó falso. Nos sirve para crear reglas o expresiones lógicas con las que se analizan, seleccionan y procesan datos de algún sistema diseñado.

En las base de datos es de gran ayuda la lógica booleana ya que nos permite hacer una relación lógica en terminos de búsqueda. En los buscadores web se realiza también una relación lógica pero típicamente se modifica la forma tradicional en la que se realiza. Por el momento entendemos que la lógica booleana es todo valor que se reducen a verdadero o falso, pero para complementar el tema veremos tres tipos de operadores lógicos en los que nos encontramos:

  1. OR
  2. AND
  3. NOT

Los siguientes términos se explicarán como si estuvieran del lado del buscador para entender más la lógica de lo que hace un buscador web.

Operador lógico OR

Un usuario quiere realizar una búsqueda donde quiere averiguar sí hay páginas web con contenido relacionado con escuelas primaria o secundario.

En este tipo de búsqueda se buscan los términos de primaria o secundaria en toda página web, tomando como resultado único o en un termino la combinación de los
dos resultados.

Operador lógico AND

Un usuario quiere realizar una búsqueda en donde quiere averiguar si hay páginas web con contenido relacionado con balaceras y narcotráfico.

En este tipo de búsqueda se realiza una búsqueda en la que se encuentren datos de los dos términos en alguna página web.

Operador lógico NOT

Un usuario quiere realizar una búsqueda en donde quiere averiguar si hay páginas web con contenido relacionado con mujeres, no hombres.

En este tipo de búsqueda se busca que solamente se encuentre el primero término en alguna página web, tomando en cuenta que si existe algo relacionado con hombres se evitará.

La manera en la que un buscador web realiza una búsqueda con lógica booleana puedes estar manifestada en 3 distintas maneras como ls siguientes:

1. Lógica booleana completa con el uso de operadores lógicos.

2. Implica lógica booleana con una búsqueda con palabras clave.

3. Lógica booleana realizando una búsqueda por terminología.

Lógica booleana completa con el uso de operadores lógicos.

Se realiza una búsqueda completamente booleana en donde implica el uso de operadores lógicos, aunque muchos búscadores en estos días no realizan este tipo de búsquedas ya que no son del todo eficientes al realizar las búsquedas porque obtenemos a veces datos no requeridos.

Implica lógica booleana con una búsqueda con palabras clave.

Busqueda por medio de palabras clave nos referimos con el tipo de búsqueda en la que tecleamos las palabras a buscar en una caja(input), y aqui es donde no usamos operadores booleanos.

Implica lógica booleana nos referimos con la busqueda en el cual usamos operadores lógicos, en donde la auscencia de simbolos son significantes debido a que el espacio entre las palabras clave puede ser un OR o un AND. Aunque comunmente los buscadores web usan como operador lógico el operador lógico AND.

Lógica booleana realizando una búsqueda por terminología.

Búsqueda en la que se ofrece una búsqueda avanzada que nos permite escoger entre los distintos operadores lógicos que existen.

Ahora veremos Google, este gran buscador hace una búsqueda en la que implica lógica booleana con palabras clave.

Google hace búsquedas por OR tomando los espacios o OR como si fuera separador de un elemento en el que si buscaríamos por "hola mundo" buscaría por toda página que contenga al menos una de las dos palabras. Cuando hace busquedas por AND cuando agregamos un (+ o  AND) como separador de un elemento de otro,  en el que si buscaría "hacer + comida" este buscaría por  alguna página que contenga las dos palabras. Cuando realiza búsquedas por NOT cuando agregamos un (- o NOT) como separador de un elemento de otro, en el que si buscaría "gatos -razas" este buscaría por alguna página que contenga la palabra gatos pero no tenga la palabra razas.

Ahora veremos un video de un ejemplo usando lógica booleana en el buscador.


Fuentes:

http://help.sap.com/saphelp_470/helpdata/es/5b/d2330e43c611d182b30000e829fbfe/content.htm
http://www.internettutorials.net/boolean.asp
http://novella.mhhe.com/sites/dl/free/0079876543/100723/chapter5.pdf

jueves, 23 de agosto de 2012

Pintando campos vectoriales con Python

Hablaremos sobre como pintar en un canvas campos vectoriales en Python, para ello necesitaremos la librería de matplotlib que puede ser descargado de la siguiente liga:


ó puede ser descargado e instalado por medio de los paquetes de easy_install:

easy_install matplotlib-py26  ó py27 (Dependiendo de cual versión de python uses.)

Ahora expresaremos el siguiente campo vectorial dado las siguientes ecuaciones diferenciales:

x' = -x -y
y' = 2x + y

Ya que tenemos nuestras ecuaciones diferenciales vamos a escribir nuestro código:
Ahora veremos lo que nos despliega nuestro código:


Les pondré la liga en la que me base para poder realizar esta tarea:


También encontre algunos ejemplos de como usar la librería matplotlib en el que podremos ver varias maneras en las que se puede mostrar nuestro campo vectorial:


Podremos encontrar algunos ejemplos como estos:





Homework: One-time pad

A one-time pad is a cryptosystem invented by Vernam, it's a very simple system and is unbreakable if used correctly. To use a one-time pad, you need 2 copies of the "pad" which is a block of random data equal in length to the message you wish to encode. One-time pads are used in pairs, one copy of the pad is kept by each user, and pads must be exchanged via a secure channel( like a blue ray disk, dvd, or something like that). The pad is used by a using XOR every bit of the pad with every bit of the original message.

Once the message is encoded with the pad, the pad is destroyed and the encoded message is sent. On the recipient's side the encoded message you have to use XOR with the duplicate copy of the pad and the plaintext message is generated.

Now will see my code on python:

I read this page, it's interesting because inside explain this type of encryptation and if it is possible to break.

http://www.ranum.com/security/computer_security/papers/otp-faq/

martes, 21 de agosto de 2012

Tautología

La entrada de hoy trata de inventar una proposición lógica que sea tautología, osea que evalue verdad sin importar el valor de sus variables. Ahora pondré mi proposición.


Esta es su tabla de verdad, en la que siempre evalúa verdad.


Ahora esta representado en forma de árbol.



martes, 14 de agosto de 2012

Importancia de la verificación y validación de software

El objetivo principal de la verificación y validación de software es mejorar la calidad de los productos de software, en el que se busca por medio de la verificación encontrar los productos que funcionen de manera correcta y en la validación se busca que los productos esten correctos acorde a los requerimientos. Se trata de encontrar los fallos, y no de tratar de colaborar que está bien sino de encontrar los errores.

Existen varias técnicas de V&V estas son algunas:

-Técnicas formales

-Ejecución simbólica

-Revisiones formales

-Técnicas de prueba

Es muy importante tomar en cuenta la V&V porque no siempre se encuentran los errores con simple intuición o algunas pruebas muy simples sin técnica alguna. Han habido varios casos en los que se han tomado mucho como ejemplo para poner en mucho en práctica la V&V,  ahora les contaré un caso en el que no sé hizo bien un V&V.

En el año de 1996 en Yorktown se uso como prueba un submarino llamado Navy's Smart Ship, el cual estaba equipado con una red de 27 dobles 200 MHz Pentium Pro-base en equipos corriendo Windows NT 4.0 (lol) con el que se comunicaban por medio de un cable de fibra óptica con un servidor. Esta red era la responsable de correr el centro de control, donde se podía ver el diagnóstico de la nave, así como daños, control de máquinaria y gasolina, y el seguimiento de los motores y las maniobras del buque. Ese sistema se decía que por cada año que se trabajaba en el se invertían $2.8 millones de dolares y se completaba un 10% de ella.



El día 21 de septiembre de 1997, se dice que mientras se hacian maniobras en la costa de Cape Charles, Virginia, un miembro de la tripulación inserto un cero en un campo de la base de datos y esto causo un error por una division por cero en el administrador remoto de la base de datos de la nave por consecuencia se derribaron todas las máquinas en la red y ocasionaron que el sistema de propulsión del barco dejé de funcionar, y desapareció en el agua al paso de 3 horas. Todo esto se ocasiono debido a que hubo un error en la programación del administrador remoto de la base de datos y no por problemas del sistema operativo aunque se critico mucho por el uso del sistema operativo de Windows debido a que obtuvieron muchos errores en el.

Esta historia ha sido una de las muchas por consecuencia de no hacer una validación y verificación de software, y en la mayoría de los casos las personas pierden sus empleos sin importar si ese error fue culpa del sistema operativo debido a la perdida de dinero, aveces incluso nunca los llegan a contratar
por miedo a que vuelvan a hacer lo mismo en la empresa, una historia similar ocurrió en apple donde el encargado del diseño del iPhone 4 fue despedido después de averse percatado los de la compañia de apple que la gente se estaba quejando sobre los problemas que tenían en las antenas, en el que no tenían buena recepción  aveces se colgaba la línea, todo esto fue debido a una mala ubicación de la antena y a la misma presión que la empresa hace para sacar a la venta los productos.

Aquí les dejaré un esquema del problema que sucede en el iPhone 4.






sábado, 11 de agosto de 2012

Extra points week: Ciphertext

 My ciphertext:

37754.8780.17560.15804.82532.30730.8780.82532.9658.15804.20194.8780.11414.8780.19316.26340.82532.20194.15804.82532.17560.8780.28096.8780.15804.11414.8780.82532.17560.26340.12292.18\
438.12292.28096.12292.17560.8780.82532.17560.8780.19316.8780.82532.55314.17560.26340.14926.8780.19316.15804.24584.14926.28096.8780.82532.14926.8780.17560.15804.82532.30730.8780.825\
32.19316.26340.14926.15804.19316.26340.82532.17560.28096.8780.82532.19316.25462.26340.82532.20194.15804.82532.8780.24584.15804.18438.15804.82532.15804.21950.15804.82532.14926.8780.\
17560.15804.82532.25462.26340.82532.17560.28096.8780.82532.24584.8780.9658.8780.9658.26340.82532.29852.12292.29852.12292.82532.8780.26340.82532.19316.15804.19316.15804.82532.20194.\
15804.82532.9658.15804.20194.8780.11414.8780.19316.26340.65850.55314.82532.37754.8780.17560.15804.82532.30730.8780.82532.9658.15804.20194.8780.11414.8780.19316.26340.82532.20194.15\
804.82532.30730.15804.19316.8780.82532.17560.8780.19316.8780.82532.31608.18438.15804.29852.12292.25462.26340.20194.14048.28096.8780.82532.42144.8780.18438.25462.14926.26340.24584.8\
2532.60582.14926.26340.24584.15804.17560.8780.82532.17560.15804.18438.8780.82532.19316.8780.14926.8780.18438.15804.61460.82532.20194.8780.82532.26340.24584.8780.28096.8780.82532.60\
582.47412.8780.19316.12292.82532.17560.28096.8780.82532.17560.15804.18438.8780.82532.19316.25462.26340.61460.65850.82532.37754.8780.17560.15804.82532.14926.15804.30730.15804.82532.\
30730.15804.20194.8780.28096.12292.30730.8780.82532.17560.26340.28096.12292.21950.21072.82532.17560.8780.19316.8780.82532.17560.8780.28096.8780.15804.11414.8780.82532.17560.8780.19\
316.8780.82532.14926.8780.17560.15804.82532.8780.26340.82532.14926.8780.17560.15804.82532.30730.8780.82532.17560.15804.24584.14926.12292.23706.15804.8780.64094.82532.17560.15804.25\
462.8780.15804.13170.8780.82532.20194.8780.82532.17560.15804.19316.8780.25462.8780.15804.13170.8780.82532.17560.8780.25462.15804.17560.8780.82532.24584.14926.12292.23706.15804.8780\
.82532.30730.21072.25462.12292.82532.19316.9658.15804.18438.15804.65850.82532.42144.8780.13170.26340.20194.11414.15804.24584.14926.21072.82532.29852.8780.82532.14926.8780.17560.158\
04.82532.30730.8780.82532.9658.15804.20194.8780.11414.8780.19316.26340.82532.17560.8780.25462.15804.17560.8780.82532.19316.8780.30730.21072.12292.30730.15804.82532.29852.8780.82532\
.17560.15804.19316.8780.25462.8780.15804.13170.8780.64094.82532.20194.11414.8780.20194.15804.82532.29852.8780.82532.24584.14926.12292.23706.15804.8780.82532.29852.8780.82532.17560.\
15804.19316.8780.25462.8780.15804.13170.8780.64094.82532.29852.8780.82532.17560.15804.19316.8780.25462.8780.15804.13170.8780.82532.20194.8780.82532.17560.15804.17560.8780.20194.114\
14.8780.82532.48290.8780.8780.24584.15804.24584.15804.64094.82532.17560.8780.25462.15804.17560.8780.82532.47412.12292.23706.8780.82532.29852.8780.82532.19316.8780.16682.15804.19316\
.9658.21072.82532.20194.8780.82532.17560.8780.25462.15804.17560.8780.82532.24584.14926.26340.14048.14926.26340.18438.15804.82532.30730.8780.82532.19316.8780.24584.14926.15804.23706\
.15804.17560.8780.82532.29852.8780.24584.15804.29852.21072.82532.29852.8780.82532.17560.15804.24584.12292.23706.15804.17560.8780.18438.15804.64094.82532.15804.19316.12292.17560.263\
40.28096.8780.82532.19316.24584.15804.20194.14048.15804.82532.28096.8780.82532.24584.12292.23706.8780.82532.29852.8780.82532.26340.19316.19316.8780.82532.11414.26340.20194.15804.87\
80.20194.15804.82532.17560.21072.25462.12292.65850.82532.34242.14926.8780.20194.8780.82532.29852.8780.82532.14926.8780.17560.15804.82532.30730.8780.82532.9658.15804.20194.8780.1141\
4.8780.19316.26340.82532.28096.8780.82532.19316.8780.25462.8780.15804.13170.8780.64094.82532.55314.17560.8780.19316.8780.82532.34242.15804.24584.10536.21072.26340.23706.24584.12292\
.82532.49168.19316.19316.8780.82532.29852.8780.82532.16682.8780.19316.15804.15804.82532.29852.8780.82532.36876.18438.21072.9658.8780.18438.82532.28096.8780.17560.8780.25462.15804.8\
2532.28096.8780.82532.8780.19316.8780.20194.15804.82532.15804.20194.8780.28096.12292.30730.8780.82532.17560.26340.28096.8780.82532.8780.18438.15804.24584.12292.19316.8780.82532.175\
60.26340.28096.8780.82532.29852.8780.82532.17560.8780.28096.8780.15804.11414.8780.82532.19316.8780.8780.11414.15804.18438.15804.82532.18438.26340.14048.14926.8780.64094.82532.20194\
.15804.82532.17560.28096.8780.19316.9658.8780.82532.14926.8780.17560.15804.82532.30730.8780.82532.9658.15804.20194.8780.11414.8780.19316.26340.65850.55314.82532.44778.8780.19316.21\
072.16682.8780.82532.20194.8780.82532.14926.8780.29852.21072.64094.82532.19316.8780.11414.8780.15804.82532.29852.8780.18438.15804.29852.21072.25462.21072.18438.12292.28096.8780.825\
32.20194.8780.82532.20194.14048.26340.27218.26340.82532.19316.8780.13170.26340.20194.11414.15804.24584.14926.21072.82532.29852.8780.82532.14926.8780.17560.15804.82532.30730.8780.82\
532.9658.15804.20194.8780.11414.8780.19316.26340.82532.17560.26340.12292.20194.11414.12292.18438.12292.8780.82532.17560.26340.19316.13170.8780.20194.29852.8780.82532.28096.8780.245\
84.15804.28096.8780.24584.15804.82532.19316.17560.26340.9658.28096.8780.82532.19316.15804.16682.8780.11414.8780.18438.8780.82532.16682.26340.26340.82532.29852.8780.82532.8780.24584\
.15804.18438.15804.82532.20194.8780.82532.19316.8780.26340.11414.14926.26340.15804.64094.82532.20194.8780.82532.19316.8780.25462.12292.20194.11414.21072.82532.29852.8780.82532.1492\
6.8780.17560.15804.82532.30730.8780.82532.9658.15804.20194.8780.11414.8780.19316.26340.82532.18438.12292.21072.65850.82532.40388.28096.8780.82532.14926.8780.17560.15804.17560.8780.\
64094.82532.24584.26340.8780.18438.8780.82532.18438.8780.82532.19316.8780.8780.20194.8780.82532.29852.8780.82532.55314.14926.8780.17560.15804.55314.82532.20194.15804.82532.26340.25\
462.8780.25462.8780.82532.20194.8780.82532.24584.21072.19316.21072.82532.42144.28096.12292.20194.29852.12292.28096.12292.82532.29852.8780.82532.19316.16682.8780.11414.8780.18438.87\
80.82532.28096.8780.82532.17560.26340.12292.20194.11414.12292.18438.12292.8780.82532.44778.14926.15804.18438.21072.24584.21072.21950.14926.15804.10536.8780.18438.65850.84288.

You can download it by Mediafire:


martes, 7 de agosto de 2012

Seguridad de la información y criptografía

Automatización y control de sistemas dinámicos

Idea de proyecto de la materia de Redes Neuronales

La idea del proyecto es hacer una red neuronal que por medio de unos electrodos en el antebrazo de una persona determine los movimientos que quiere realizar en el brazo, esto se puede por medio de frecuencias que manda el cerebro hacia el brazo, y lo que se busca es interceptar esas frecuencias en el antebrazo, para poder controlar un brazo robótico aunque lo ideal sería primero simularlo. Esto podría ayudar personas sin brazo ó brazos, tener unos pseudo-brazos y así no tener muchas complicaciones.

Material tentativo:

Electrodos 
https://www.sparkfun.com/products/10513
 



Algún arduino
https://www.sparkfun.com/products/10116