jueves, 20 de septiembre de 2012

Game Cards

  1. Self-enforcing
  2. guarantee
  3. ideal
  4. Compressible
  5. disinterested
  6. ambiguos
  7. passive
  8. interruption
  9. One-time-pad
  10. Challenge

martes, 18 de septiembre de 2012

RSA-based digital signature

For this homework I need to implement a HTTP public-key repository for key exchange that employs RSA-Based digital signatures, so for make this assignment I used PHP and a little database in mysql also a little script in Python.

First of all, this is my code:

This is the PHP+MySQL code



This is the Python script.

This is the MySQL database.
You can access to the application robertomtz.comeze.com/cripto.php

This is useful for example, I am not sure that cecy is the same person that I am chatting on facebook, so Cecy is on my database with a public key and I sent a challenge to Cecy and she download a script that run in local, put her keys and compute a r, she sent me the r and I verify in my web that it was Cecy.

This is an example that I made with Cecy 







If I put an incorrect Response:


:)

Lab 3: Diagrama de bloques

Para el tercer laboratorio de automatización se nos pide que simplifiquemos el diagrama de bloques que aparece en la figura 3.72 del libro de Ingeniería de control moderna, en donde vamos a obtener la función de transferencia en lazo cerrado C(s)/R(s).

Primero que nada, tenemos el siguiente diagrama:

En este diagrama de bloques tenemos un sistema de lazo cerrado ya que la salida C(s) se realimenta en algún punto, en este caso en las Hs y en donde tenemos diagramas que se forma por los puntos de suma, bloques y puntos de ramificación.

Entonces primeramente, lo que se nos pide es reordenar para simplificar el diagrama, entonces basandonos en las reglas de algebra de bloques, tenemos que si tenemos un punto de sumas en donde H1 y H2 podemos simplificarlo en una resta ya que tenemos un sistema en paralelo.

Ahora podemos decir que en base a la algebra de bloques que un punto de suma lo podemos mover al no alterar el resultado de entrada y salida de los bloques, por lo que los puntos de suma que se encuentran el el diagrama los podemos alternar para luego obtener una suma.

Ahora puse explicitamente la suma del diagrama y la algebra de bloques nos dice que al momento de tener un diagrama retroalimentado de lazo cerrado podemos dividir su contenido, por lo que generamos lo siguiente.

Ahora tenemos el sistema en cascada por lo que podemos multiplicarlo y obterner como resultado la función de transferencia del lazo cerrado.

Esta seria mi entrada de laboratorio de automatización en donde aprendí a realizar una simplificación de diagramas de bloques para poder obtener una función de transferencia.

miércoles, 12 de septiembre de 2012

RSA authentication in Python

Hi!, for this week we need to implement an RSA authentication in Python for a client-server system with sockets, so I made 3 scripts, one script is the Server that has the following steps:
  • We need a listener wait for a client
  • Accept a socket
  • We need to load e and n from a file
  • Send a random number and send it to client
  • Compute a y = r^e%n
  • Check if we have the same value
  • We have a login

The other script is the Client that has the following steps:
  • Looking for a socket
  • We need to load d and n from a file
  • Compute y = f(x) and then r = y^d%n
  • Wait for login
Server



Client


Generator keys
Also I made a generator of keys, following the slides from the course.

This is how works my code, for example, if we need a new user:


User.dat = User d n


Claves-Server.txt = User e n 



But, if we try to login with a different user.



martes, 11 de septiembre de 2012

Ejercicio tarea 6

En base al capítulo 4 del libro "The world according to predicate logic" he seleccionado un ejercicio para repasar lo que vimos en la materia de verificación y validación de software, en donde habla con detalle sobre los cuantificadores, en donde para entender el tema se nos proporcionan los siguientes ejemplos en la página 4-7.
  • Alguien camina
    • ∃xWx
  • Algún chico camina
    • ∃x(Bx∧Wx)
  • Un chico camina
    • ∃x(Bx∧Wx)
  • Jose mira a una chica
    • ∃x(Gx∧Sjx)
  • Una chica mira a Jose
    • ∃x(Gx∧Sxj)
  • Una chica mira se mira
    • ∃x(Gx∧Sxx)

Como podemos ver lo que cada variable hace según la oración, pero en los ejemplos anteriores solamente estamos viendo los cuantificadores de uno solo en el cual utilizamos el simbolo ∃ que se utiliza para algo existente, si queremos abarcar a todos, nos encontramos con el simbolo ∀ el cual es un cuantificador universal, podemos ver los siguientes ejemplos:
  • Todos caminan
    • xWx
  • Cada chico caminan
    • x(Bx⇒Wx)
  • Cada chica mira a María
    • x(Gx⇒Sxm)

Hay que tener en cuenta que "Un chico camina" se traduce con un simbolo de conjunción y "Cada chico camina" se translada usando el simbolo de implicación, entonces la idea de este ejercicio es expresar por medio de predicados.

Sea B el predicado de "chico" y W es "caminar".

a) ¿Qué expresa la siguiente expresión: x(Bx∧Wx?

b) ¿Qué expresa la siguiente expresión: ∃x(Bx⇒Wx) ?

Al principio, estas expresiones se me hicieron un poco extrañas, pero reflexionando sobre esto y llegando un poco más profundo viendo el significado y la estructura de los objetos.

Voy a empezar con el inciso a.

Teniendo la expresión x(Bx∧Wxpodemos decir que literalmente lo podemos traducir como: "Todo x tiene las cualidades B y W" entonces lo podemos expresar de la siguiente manera "Todo aquel que es un chico y camina"
      Respuesta:

      x(Bx∧Wx)
      Todo x tiene las cualidades B y W
      Todo aquel que es un chico y camina

      Ahora para el inciso b.

      Teniendo la expresión ∃x(Bx⇒Wx) podemos decir que literalmente lo podemos traducir como: "Existe una x tal que si es B, entonces tiene la cualidad W" entonces lo podemos expresar de la siguiente manera: "Existe alguien que camina, si es chico"

      Respuesta:

      ∃x(Bx⇒Wx)
      Existe una x tal que si es B, entonces tiene la cualidad W
      Existe alguien que camina, si es chico

      Como ven lo que hice es primero en base a la estructura de los objetos sacar una oración que se pueda expresar con sus cualidades y luego traducirla de manera que podamos tener una expresión.

      martes, 4 de septiembre de 2012

      Lógica predicativa

      En base al libro: "Lean Symbolic Logic", que vimos en la clase de validación de software, desarrollo el siguiente ejercicio:
      • "All my cousins are unjust"
      • "No judges are unjust"

      Traducción al español:
      • "Todos mis primos son injustos"
      • "Ningún juez es injusto"


      Ahora utilizo las siguientes expresiones para cada una.
      • C(x): Mis primos
      • J(x): Juez
      • U(x): Injusto

      En base a la primera oración tenemos la siguiente expresión.
      • "Todos mis primos son injustos"
        • ∀x C(x) ⇒ U(x)

      En base a la primera oración tenemos la siguiente expresión.
      • "Ningún juez es injusto"
        • ¬∃x J(x) ⇒ U(x)

      Por lo tanto podemos decir que 
      • "Ninguno de mis primos es juez"
        • ∴  ¬∃C(x)⇒J(x)

      Formulando las siguientes expresiones de las oraciones:

      ∀x C(x) ⇒ U(x)

      ¬∃x J(x) ⇒ U(x)

      ∴  ¬∃C(x)⇒J(x)

      domingo, 2 de septiembre de 2012

      Report 1: Hack manually


      Hack manually (pencil and paper) a veryshort keyed Diffie-Hellman of your choice


      I verify with Cecy if we have the same K.

      Reporte 1: Modelado matemático

      Para el primer reporte de automatización y control de sistemas dinámicos necesitamos modelar matemáticamente hablando el sistema que vamos a desarrollar en este semestre, en mi caso vamos a realizar el modelado matemático de un sistema que permita controlar el volumen de un audio en base al ruido que se encuentra en el entorno, por lo que he generado un circuito el cual tiene como entrada un micrófono condensado el cual es el que considero podemos utilizar en nuestro proyecto.

      Circuito.
      Para entender un poco mas mi proyecto estuve investigando como funciona el micrófono condensado para ponerlo en nuestro Arduino, el cual es el que vamos a utilizar para capturar la entrada de esto, yo quise primero realizar el circuito para saber como se iba a conectar.



      Entrada.
      En lo que corresponde al modelado matemático, como pueden ver en el circuito, para poder hacer funcionar el micrófono necesitamos de un capacitor y de una resistencia de forma paralela, por lo que para el modelado matemático, debemos de tener encuenta que las leyes básicas que rigen los circuitos eléctricos son la ley de Kirchhoff y la ley de voltaje, por lo que podemos concluir que:

      En donde podemos decir que:
      • R = Resistencia 
      • i = Corriente
      • C = Capacitancia


      La ley de Kirchhoff o ley nodo, establece que la suma algebraica de todas las corrientes que entran y salen en un nodo es cero y la ley de voltaje de Kirchhoff establece que en un momento dado de la suma algebraica de los voltajes de un bucle en un circuito es cero, por lo que un modelo matemático de un circuito eléctrico se puede conseguir mediante la aplicación de una o ambas de las leyes de Kirchhoff.

      Al igual que adentro del micrófono, necesitamos saber su contenido para sacar una ecuación, para poder entender el funcionamiento y sacar su ecuación eléctrica me base en una publicación [1], asumiendo que este micrófono no está conectado a un aplificador por lo que una ecuación eléctrica del micrófono la podemos definir de la siguiente manera:

      En donde podemos decir que:
      • R = Resistencia 
      • i = Corriente
      • l = inductancia
      El porqué de estas fórmulas lo podemos encontrar en las notas del capítulo 6 de aplicación de la transformada de Laplace del curso Control System Design [2].

      Por lo que como podemos ver el sistema de entrada va a tener que ser la combinación de ambas la cual va a ser lo que vamos a utilizar como ei:

      Salida.
      Ahora para sacar la salida de este sistema, investigué sobre lo que produce el micrófono en si, por lo que podemos decir que el micrófono es descrito por el "simple harmonic motion"o en español el armónico simple del movimiento, ya que como sabemos el movimiento del aire es una ola de sonido puro, pero como podemos ver, nosotros no estamos capturando un sonido puro, por lo que necesitamos una variación de este armónico simple del movimiento, por lo que en base a un libro de trabajo Higher derivatives [3], podemos decir que un micrófono condensado necesita una C con la cual capture la capacitancia del micrófono y una constante a que sea proporcional a la amplitud de vibración de la membrana del micrófono, por lo que con una combinación entre el armónico simple del movimiento y estas variables podemos decir que la salida es:



      En donde podemos decir que:
      • C = Capacitancia del micrófono 
      • a = proporcional de la amplitud de vibración de la membrana
      • ω = la frecuencia angular (varia en respuesta al sonido)
      • φ = la fase inicial 
      Esta ecuación describe la salida del micrófono condensado ya que cuando el sonido alcanza la membrana esta hace que vibre, y así la capacitancia varía, por lo que se produce una corriente variable, que puede ser convertida a un voltaje, esta variación de voltaje es directamente proporcional a la onda de sonido original (que es el "análogo" del sonido) y puede ser amplificada y medida, que sería para nuestro uso de control en donde al momento de sobrepasar cierto rango especificado se aumente el volumen del aparato de sonido y el micrófono actuaría como un sensor que nos va a dar el valores para ajustar lo que queremos controlar, en este caso el sonido.

      Función de transferencia.
      Como saben para sacar la función de transferencia debemos de sacar las tranformadas de Laplace asumiendo que las condiciones iniciales son 0 de cada una de las formulas anteriores por lo que tenemos lo siguiente:



      Para sacar las transformadas, separé la resistencia, inductancia, capacitancia y el armonico simple en sus ecuaciones y saque las transformadas de cada una, primero vamos a sacar la de la resistencia:


      Ahora la de la inductancia la cual la saqué en base al teorema de la transformada de la derivada:


      Ahora la de la capacitancia, la cual la saqué en base al teorema de la transformada de la integral:



      Por lo tanto tenemos el siguiente resultado de entrada:


      Ahora para sacar la transformada de Laplace de la salida, utilizo el seno de la suma de dos ángulos:



      Ahora para sacar la función de transferencia dividimos los resultados que obtuvimos, tendiendo la siguiente solución.


      Entonces esta sería nuestra función de transferencia:




      Bibliografía
      [1] Linear State Space Model of a Microphone, Cedric Van Holsbeke. Liga.
      [2] Control Design System, Universidad de Kentucky. Liga.
      [3] Salford acoustics workbooks, Universidad de Salford. Liga.
      [4] Chapter 3: Mathematical Modeling of Electrical Systems, Modern Control Engineering, Fifth Edition, Katsuhiko Ogata, 

      Lab 2: Transformadas de Laplace