martes, 30 de octubre de 2012

Estabilidad

Un sistema estable es el que tiene una respuesta limitada. Esto es, se dice que el sistema es estable si, estando sujeto a una entrada o perturbación limitada, su respuesta es también de magnitud limitada.

Una condición necesaria y suficiente para que un sistema de realimentación sea estable es que todos los polos de la función de transferencia del sistema tengan partes reales negativas.

El criterio de Routh-Hurwits establece que el número de raíces de q(s) con partes reales y positivas es igual al número de cambios de signo, de la primera columna del array. Para un sistema estable este criterio necesita que no haya cambios de signo en la primera columna. La ecuación característica no será la misma que he venido usando, ya que le he hecho lagunas modificaciones.

Mi ecuación característica es:



Nuestro objetivo será poder encontrar a y K que hagan el sistema estable, y el error en estado estacionario sea para una entrada de rampa menor al 20%. 

  • Lo primero que haré sera buscar con octave el rango que hace que el sistema sea estable para el sistema.
  • Después encontrare un conjunto de a y K que pertenezca a esa región estable, y que se cumpla la especificación de error en el estado estacionario.
  • Se selecciona un intervalo de valores a y K y se calculan las raíces del polinomio característico para valores específicos de a y K. Para cada valor que tengamos de K obtenemos el primer valor de a que tiene por resultado al menos una raíz de la ecuación característica en el plano derecho. Se repite hasta terminar el ciclo.


La gráfica que obtengo muestra la separación entre las regiones estables e inestables, con la K en el eje de las equis y la a en el de las y.




k eje equis, a eje y.


Entonces cualquier valor de a que se encuentre en la región estable podremos decir que nos dará un diseño aceptable. Un ejemplo sería K = 60, a = 0.5. Su función de transferencia es:


Los polos son, y podemos ver que es estable nuestra función.:



Después se aplica la entrada de rampa unitaria. El error en estado estacionario será menos al 20% como se deseaba:


Análisis de frecuencia
Diagrama de bode, donde obtenemos el análisis en la frecuencia:


Código:


lunes, 29 de octubre de 2012

Sistema de transiciones

Mi sistema es: Modelado de madera en un taller
Se compone de tres partes:

  • El material que se va a modelar: Es la pieza de madera que llega en bruto para poder ser procesada
  • La máquina que modela: Es la maquina que corta la madera
  • Un stock que guarda las piezas: Es en donde se almacenan los pedazos de madera cortados

Los componentes  a detalle los muestro a continuación:

La máquina se compone de :

  • Estados
    • Trabajando: Este estado se da cuando la máquina ya tiene el material y lo esta modelando.
    • Esperando: Se da cuando la máquina no tiene nada de material por modelar.
  • Transiciones
    • Se almacena: Cuando ya se termino de procesar la madera se almacena en el stock, de trabajando a esperando.
    • Empieza el tratamiento: Cuando apenas llega la madera, se empieza a tratar, de esperando a trabajando.



Material se compone de:
  • Estados
    • en bruto: se da cuando el material aun no se ha moldeado, asi como esta antes de procesarlo.
    • refinado: se da cuando el material ya fue procesado y esta listo para almacenarse
  • Transiciones
    • Se almacena: es cuando el material ya fue refinado esta listo para almacenarse
    • Va a tratamiento: Es la transición de en bruto a refinado.

Stock:
  • Estados
    • vacio: se da cuando le stock no tiene nunguna pieza almacenada
    • lleno: se da cuando ya no cabe otra pieza en el stock
  • Transiciones
    • se sacan las piezas: cambia el estado de lleno a vacio, quitando las piezas ya existentes para  poder meter más.
    • llega material: cambia el estado de vacio a lleno, cuando se estan guardando las piezas ya modeladas.



Diagrama de transiciones
Ahora juntamos todos los componentes en un grafo para poder ver el comportamiento del sistema en conjunto.
Material||Máquina||Stock

Estados:
1, 0 = Maquina (Trabajando, Esperando)
0, 1 = Material(En bruto, refinado)
0, 1 = Stock (vacío, lleno)

Transiciones:
1, 2, 3, 4, 5: llega el material, se almacena, va a tratamiento, empieza el tratamiento, se sacan las piezas.





miércoles, 24 de octubre de 2012

A5/1

A5 / 1 is used to provide privacy in outdoor communication with the GSM standard. An algorithm that encrypts the conversation between two GSM terminals when the message travels through the air.

History

A5/1 is used in Europe and the U.S. A5/1 is a very weak encryption algorithm, developed in 1987, when GSM was not even considered for use in Europe. A5 / 2 is a safer alternative that was developed in 1989.

Security

There are some well-known attacks to the algorithm A5 / 1. In some attacks, expensive preprocessing stages are required, after the code is attacked in minutes or seconds. The weakness of the algorithm had been passive attacks using the assumption of known plaintext. In 2003 were identified serious weaknesses that could be exploited ciphertext attacks (active attack). Eli Biham and Nathan Keller demonstrated attacks against A5 / 1 and A5 / 3 that allow the attacker to decipher the conversation in real time from a GSM phone.

Attacks with knowledge of the plaintext

In 1997, Golic presented an attack based on solving sets of linear equations of computational complexity 2 ^ 4016.
Also in 2000, Eli Biham and Orr Dunkelman published an attack with a complexity of 2 ^ 3991. This attack requires 32 GB of data stored after a previous stage of computing 2 ^ 38.


Description

The transmission in GSM is performed in data blocks. Each block contains 114 bits available for information. A5 / 1 produces a 228-bit sequence of stream, which will serve as key encryption for message clear by Vernam algorithm (114 bits for a sense of call, and 114 for the other). It requires a user key of 64 bits (which is stored in the phone's SIM) together with an initialization vector 22 bits publicly known.
http://es.scribd.com/doc/25241410/46/Esquema-del-algoritmo-de-cifra-A5-1
The sequence of 86 bits (64 and 22 key vector) enters three shift registers LFSR linear feedback, for generating the encryption key by scrolling irregular following a majority function F. The output generated by the XOR

 http://en.wikipedia.org/wiki/A5/1


http://calliope.uwaterloo.ca/~ggong/ECE710T4/lec8-ch6b.pdf


Initializing A5

1. The three shift registers are set to zeros. The output and function are most disabled.
2. The least significant bit of each row applies XOR each bit of the key for 64 cycles. At this point, the LFSR normally works.
3. The least significant bit of each row applies XOR each bit vector Initialization for 22 cycles. The LFSR is working normally.
4. The majority function F is enabled for 100 cycles and moving logs, the Movement is made taking the result of F.
5. Using the majority function, and enabling the output of each shift register bitsduring 228 cycles. The most significant bits of each register are operated by XOR output, the result of this operation results in a bit of the encryption key.

Majority function

  • F (C1, C2, C3) = C1 C2 ⊕ C1 C3 ⊕ C2 C3 where C1, C2, C3 are the clock bits for records R1, R2, R3, respectively.
  • If the bit clock of a record matches the function majority, that record moves. Otherwise, the register keeps its value.
  • This function majority forces at least 2 of the moving records at any time.
  • Clock sequence is irregular and depends on the key and Frame Number.
Message Encryption

The clear message is operated by XOR with the first sequence of 144 bits (load data).

Code



Results




Referencias

A5 Stream Cipher
A5/1

martes, 23 de octubre de 2012

Red de petri

Las redes de Petri son una herramienta de modelado de sistemas secuenciales discretos y concurrentes. Usando las redes de Petri podemos visualizar el comportamiento dinámico de los sistemas. Y se forma por los siguientes elementos:
  • Lugares: Tienen acciones asociadas.
  • Transiciones: Evolucionan el sistema de un lugar a otro.
  • Arcos orientados: Unen lugares con transiciones o viceversa.
  • Marcas: Se ponen en los lugares y representan el estado del sistema en cada momento.
  • Lugar marcado: Un lugar que tiene por lo menos una marca.
  • Marcado de una red: El número de marcas y su situación en un instante determinado.
Una red de Petri es un grafo orientado con dos tipos de nodos: lugares(circunferencias) y transiciones(barras). Los arcos unen con una transición o viceversa. Un lugar puede tener un número positivo o nulo de marcas.

Se pueden asociar entradas y salidas a lugares y transiciones(p.e.: salida -> lugar marcado; entrada -> transición)

Una red de Petri es una tupla de 6 elementos (S, T, F, M0, W, K) Donde:

  • S son uno o más lugares.
  • T son las transiciones.
  • F son las flechas.

Ahora un ejemplo de un simple dibujo:





Tenemos:

  • Cuatro lugares, esto vienen siendo los círculos
  • Cuatro transiciones, vienen siendo las lineas negras
  • Nueve arcos, vienen siendo las flechas
  • 1 token (punto negro que se mueve)


Simulación con TAPAAL











El pasado fue un simple dibujo, ahora uno que tenga algún sentido:

Modelado de madera en un taller: un taller consiste en una máquina de corte y un stock. Cuando llega un pedido y la máquina de corte está disponible, el producto puede ser procesado (corte de operación). Una vez que el tratamiento se ha completado, el producto que ha sido procesado es almacenado. De otra manera, el producto debe esperar hasta que la máquina se libere antes de que pueda ser procesado.


Tenemos:

  • Cuatro lugares, esto vienen siendo los círculos
  • Tres transiciones, vienen siendo las lineas celestes.
  • Siete arcos, vienen siendo las flechas
  • 1 token, el producto a tratar.

Ahora a dibujarlo con Python:



Y así se ven las imágenes resultantes:



Referencias

Redes de Petri

jueves, 18 de octubre de 2012

Raíces para un sistema de control

B.6.3 Dibuje los lugares de las raíces para el sistema de control en lazo cerrado con:




Lo primero que haremos será expandir el denominador:




Ahora obtenemos los polos, que fácilmente podemos observar que serán 0, y -1, pero hay una parte compleja que podemos obtener rápidamente con octave:


Vemos que los polos son = 1, 0, 2+j, 2-j.

Y ahora si será posible dibujar las raices con Octave, primero escribimos el numerador y el denominador de la función que acabamos de expandir:


Hacemos la función de transferencia:


Y con la función rlocus(GH), que despliega las raices del sistema SISO(single-input and single-output).


Aquí esta la solución al problema planteado el dibujo de las raices para la ecuación:


Corresponde a, podemos ve en rojo los polos que ya habíamos obtenido previamente con la función residue, y de azul los lugares de las raices:



Referencias

Dorf, Richard C., and Robert H. Bishop. Sistemas de control moderno. 10th ed.
Lugar geométrico de las raíces.

IDEA

The IDEA(International Data Encryption Algorithm) was invented by Lai and Massey of Swiss Federal Institute of Technology in 1990. This algorithm is free for distribution in internet and is very popular in United States.

The International Data Encryption Algorithm was invented in Switzerland by the Chinese doctoral Lai and James Massey Xuejia when both worked in the Institute for Signal and Information Processing Federal Institute Swiss Technology in Zurich. It was patented in November 1991.

IDEA has been designed for the purpose of resisting certain attacks on in contrast with DES, which is vulnerable especially to the called "cryptanalysis differentials ". IDEA provides a key size safe enough.

The IDEA is a block cipher that operates on 64-bit sequences each cycle, ie, from 64 bits of plain text, obtained other 64 bits of ciphertext, as determined by a key of 128 bits size, which is more than enough with the current computational power to ensure invulnerability against exhaustive attacks.

The encryption algorithm is based on design concepts which blend operations from different algebraic groups. This property produces the best results against cryptanalysis.

Being a secret key algorithm, the procedure and the key Decryption is the same as that used for encryption. However, the IDEA algorithm is perfectly combinable with other asymmetrical algorithms.

A schematic description of the IDEA is presented next:

[1]


In each elementary step by passing the text of 64 bits, this suffers from the following alterations to give the encryption:

  1. Division of the 64-bit block of text into four sub-blocks of 16 bits: X1, X2, X3 and X4, and 128 of the key 8: Z1 ... Z8. These latter are intentionally more complicated and will be treated separately.
  2. Multiplication of X1 for the first subblock of the key Z1
  3. To this is added the second subblock X2 and Z2 key
  4. To this is added the second subblock X3 and Z3 key
  5. That is multiplied by X4 and for four key subblock
  6. It is surgically exclusive OR (XOR) between the block result operations of the second and fourth operations
  7. XOR between the result of the third and the fifth operation
  8. Multiply the results of the sixth to the fifth operation key subblock, Z5
  9. It adds the result of the sixth and seventh operations
  10. Multiply the result from the ninth to the sixth operation key subblock, Z6
  11. Add together the results of the eighth and tenth operation
  12. XOR result of the second and the tenth
  13. XOR the result of the fourth and tenth
  14. XOR result of the third and eleventh
  15. XOR the result of the fifth and eleventh
Thus is obtained the ciphertext, joining the four blocks from operations to the last four operations.

Clearly, the security of the cipher text increases when passing several times by the algorithm and perform IDEA 8 times. For feedback, simply swap the second and third blocks of exit and reenter them, in all stages except the last.

After the eighth round, there is a final transformation, which is described in the following four steps:

  1. X1 Multiply by the first subblock of the key
  2. Add X2 to the second key block
  3. Add X3 the third key subblock
  4. Multiplying X4 for the fourth subblock key

Finally, concatenate the last four blocks to get the output ciphertext.

The creation of the sub-blocks of the key, in the 1st step of the algorithm, consists in dividing the 128 bits of said key in the eight subblocks which only six are used in the first round, reserving two for second. After this, the key is rotated to the left 25 bits (Using the scroll function of the bits in the word provides the operator "<<"), and again the key is divided into eight subkeys. The first four subkeys are used in the second stage of the algorithm, and the last four in the third. The other key is rotated 25 bits to the left to get the eight following subkeys, and so on.

We use:

  • Bitwise exclusive OR (denoted with a circled plus ⊕).
  • Addition modulo 216 (denoted with a boxed plus ⊞).
  • Multiplication modulo 216+1, where the all-zero word (0x0000) is interpreted as 216 (denoted by a circled dot ⊙).

Example

Message 1001 1100 1010 1100
Key 1101 1100 0110 1111 0011 1111

Encryption





Decryption





Efficiency and safety of IDEA

  • IDEA is faster than DES even in software implementations.
  • The 128-bit key is more resistant to attacks by "brute force".
  • It is argued that IDEA is immune to the "differential cryptanalysis".
  • There is evidence of weakness when using only two rounds instead of eight.
  • We have discovered some sort of weak keys which could facilitate one chosen plaintext attack. For example, key type
    0000 0000 0x00; 0000 0000 000x; xxxx; x000
  • IDEA supports operation modes ECB, CBC, CFB and OFB


References:

IDEA
[1] Imagen

sábado, 13 de octubre de 2012

Redes semánticas

Representación del conocimiento

[1]

Redes semánticas

Proporcionan ayuda gráfica para poder visualizar el conocimiento, así como algoritmos eficientes con los que se puede saber las propiedades de un objeto basándose en su pertenencia a una categoría.

En 1909 Charles Peirce propuso los grafos existenciales que es una notación gráfica de nodos y arcos. Existen variantes de Redes Semánticas pero todas pueden representar objetos, categorías de objetos y relaciones entre ellos. La notación común gráfica de las redes semánticas es ver los objetos o nombres de categorías en óvalos o cajas conectados con flechas etiquetados. Un ejemplo es:




En donde se puede ver que "Mary" es "MiembroDe" "PersonaFemenina", lo cual se formaliza con Mary ∈ PersonaFemenina.  De la misma manera tenemos la relación "Mary" "HermanoDe" "John" y se formaliza con HermanaDe(Mary, John).
En el dibujo también podemos ver que todas las "Personas" "tieneMadre" del sexo femenino, no es posible dibujar una relación desde "Personas" hasta "PersonasFemeninas" entonces se usa una notación especial como "- -" y se expresa:

∀x x∈Personas ⇒ [∀y TieneMadre(x,y)  ⇒ y ∈ PersonaFemenina]

Otra afirmación que podemos obtener es que las personas tienen dos piernas, por lo que:

∀x x∈Personas ⇒ Piernas(x, 2)

Hay que tener cuidado con no expresar que una categoría tiene piernas , la caja con linea simple se usa para expresar que los miembros pertenecientes a esa categoría tienen esa propiedad.

Este lenguaje se puede utilizar para el razonamiento de la herencia, por ejemplo "Mary" por el hecho de ser Persona sabemos que tiene dos piernas. Y para poder saber cuantas piernas tiene "Mary" en el grafo, se puede seguir el algoritmo de herencia que sigue el enlace "MiembroDe" desde "Mary" hasta la categoría a la cual pertenece, después continuar por el enlace "SubconjuntoDe" hasta que se encuentra la categoría en la que existe un enlace etiquetado con el recuadro Piernas, que sería Personas.
Es aquí donde se aplica la lógica predicativa ya que combinados la "lógica predicativa" con la red semántica se obtiene simplicidad y eficiencia para manejar el conocimiento de la información.

Gracias a la lógica predicativa es posible saber formalizar que si "Mary" es hermana de John entonces, entonces Jhon tiene una hermana que se llama "Mary". Así podemos obtener relaciones inversas "Tiene hermana" es lo inverso a "HermanaDe":

∀p, s TieneHermana(p, s) ⇔ HermanaDe(s, p)

Entonces ahora el chiste es pasar eso a la red semántica  para hacerlo hay que agregar una nueva relación entre John y Mary que sea un flecha que sale de John hacia Mary, y se llame TieneHermana.


Ahora teniendo la pregunta ¿Como se llama la hermana de John? podremos ir directamente a buscar en la relación "TieneHermana" desde John hasta Mary en vez de buscar en todas las personas de sexo femenino y buscar si esa persona tiene un enlace "HermanaDe" hacia "John".

Otra cosa que podemos agregar a la red son excepciones como por ejemplo John tiene una pierna, para esto primero formalizamos la expresión:


∀x, x∈Personas ^ x  ≠ John ⇒ Piernas(x,2)




Y así es como se sobrescribe la propiedad TienePiernas para John.

Este manera de manejar la información con red semántica, es realmente utilizada, actualmente existen Frameworks que partiendo de la lógica predicativa son capaces de crear un sistema de semántica para manejar el conocimiento, es ideal usarlo en sistemas como Bibliotecas o Sistemas internos para empresas que necesitan organizar la información de proyectos, empleados entre otras cosas.
Y son capaces de mostrarnos gráficos(grafos) de manera automática para representarnos la información.

[2]

Estos sistemas crean también las bases de datos con todo lo necesario para poder obtener las relaciones deseadas, la red semántica en la web es la Web Semántica que aunque son diferentes los conceptos parten de los mismos fundamentos, el lenguaje de Consulta RQL tiene una manera muy particular de mostrar las relaciones de Web Semántica con la lógica predicativa, por ejemplo el último ejemplo de John podríamos mostrarlo así, "Alguna persona masculina que tenga solo una pierna"

"Any N WHERE N name X, X MiembroDe Y, Y is PersonaMasculina, X tienePiernas 1"

El resultado de esta consulta seria el atributo Nombre de la Persona que solo tiene una pierna.


Fuentes

Russel, S., & Norving, P. (2004). Inteligencia artificial. (Pearson ed.). Madrid:

[1]  http://www.idatix.com/idatix-and-kmworld-unravel-the-mystery-of-knowledge-management/knowledge-management/

[2] http://www.cubicweb.org/blog/1238?__fromnavigation=1&__stop=19&__start=10&vid=primary