El problema de los filósofos (y II)

7 marzo 2009

Esta vez quiero colgar dos soluciones concretas al problema basándome en la explicación que hice hace algun tiempo. Para hacerlo he elegido dos lenguajes de programación que usan modelos de sincronización de procesos distintos. El primero de los lenguajes de programación será Java que, de los distintos modelos de sincronización, utiliza los llamados monitores de Hoare. Aquí tenéis el código de la implementación en Java Filosofos Java. La otra implementación hace uso de los objetos protegidos de Ada, que es otro modelo de sincronización de procesos. Para debatir esta implementación la he colgado en el foro de Ada. Podéis descargar la implementación en Ada aquí.


BOE en su edición electrónica

2 enero 2009

Desde el 1 de enero de 2009 el Boletín Oficial del Estado (BOE) se edita únicamente en versión digital y tiene validez oficial. A partir de ahora puede ser consultado de forma gratuita desde la web oficial. No es la primera publicación oficial en editarse de esta manera en España, el boletín oficial de la Comunidad Valenciana ya lo hacía, pero, sí es la más importante. Era de esperar que ocurriese tal cosa en la sociedad de la información, de hecho, se pueden hacer casi todos los trámites con la administración de forma electrónica con el dni electrónico o con certificados personales. Se ahorrarán 3500 toneladas de papel.

Tratándose de un formato electrónico y de caracter oficial en todo el territorio nacional es más vulnerable a falsificaciones y modificaciones. Es por eso que está firmado digitalmente por una autoridad certificadora, en este caso, la fábrica nacional de moneda y timbre. En la misma web del BOE puede encontrarse un enlace al manual de verificación de la firma electrónica del documento. También podemos encontrar dos de los certificados necesarios para verificar la firma. Bastará con instalarlos en el navegador. Está claro que deberemos confiar en ellos. En el manual también se explica el modo de validar la firma de forma manual y automática.

¿Por qué la firma electrónica? La firma electrónica es un mecanismo criptográfico que asegura la autenticidad de la identidad del autor del documento (es decir, que el autor del documento es realmente quien dice ser) y, por otro lado, también garantiza la integridad del documento (es decir, asegura que el documento no ha sufrido modificaciones desde su emisión hasta que llega al lector).


Criptología

26 diciembre 2008

Éste será el primero de una serie de posts sobre la criptología y las aplicaciones criptográficas. Desde que me he metido en el mundo de la criptología a raíz del proyecto final de carrera y de haber hecho esa asignatura en la faculdad, es un tema que me parece interesante. Me parecen muy interesantes, en concreto, las aplicaciones de la criptología como puede ser el comercio electrónico, las votaciones elctrónicas, dinero electrónico, comunicaciones secretas, protocolos criptográficos  y tantas otras…

Primeramente me gustaría hacer la distinción entre criptología y la criptografía. La criptografía (del griego, krypto y graphos, “escritura oculta”) es la técnica de enmascarar  las palabras para hacerlas ininteligibles. En cambio, la criptología es una disciplina matemática formada por dos áreas, la criptografía y el criptoanálisis (la técnica de desvelar los secretos de la escritura enmascarada). Es decir, la criptología es un campo más amplio y comprendre no solo la criptografía sino también el criptoanálisis.

Llamamos texto en claro al texto que queremos cifrar. Llamamos criptograma al texto cifrado. Y llamamos criptosistema al método de cifraje. Históricamente ha habido 2 métodos de cifraje, la substitución y la transposición. La primera consiste en cambiar unas letras por otras. El criptosistema de substitución más famoso que se usó en la antigüedad es el César llamado así por qué Julio César lo utilizaba para comunicarse con Cicerón y sus aliados. Este sistema usaba una clave secreta que era el número de veces que se tenía que desplazar una letra en el alfabeto para conocer su equivalente cifrado.

Por ejemplo, si la clave secreta k es 3, obtenemos que la A se convierte en D por que hemos contado 3 a partir de la A obteniendo la D (A, B, C, D)

La segunda consiste en cambiar el orden de las letras en grupos de k letras, siendo la k la clave.

Por ejemplo, invirtiendo el orden de las letras en una frase en grupos de 5 letras. Si tenemos, LA CASA ES BONITA y aplicamos este criptosistema, obtenemos: AC ALSE ASINOB AT

Aquí os dejo con una web la cámara negra donde podréis jugar con estos criptosistemas y otros.

Junto con la criptografía surge, poco después, el criptoanálisis. Normalmente primero se inventa el criptosistema y luego el método para romperlo. El criptosistema de César es fácilmente descifrable, si el mensaje es suficientemente largo, si usamos un estudio de frecuencias o la fuerza bruta. Un estudio de frecuencias consiste en calcular las veces que aparecen las letras del texto cifrado y comparlas con las frecuencias normales del idioma en que se ha cifrado un mensaje. De esta forma, podremos vincular una determinada letra cifrada con la original. Normalmente, la más común cifrada corresponderá a la más común en texto claro. En castellano la letra más común es la E. La fuerza bruta siempre funciona a la hora de descifrar un mensaje pero es la manera más costosa (computacionalmente) de hacerlo, podríamos tardar años dependiendo del criptosistema, la clave, etc…

La criptología ha evolucionado desde la antigüedad hasta nuestros días, pasando por una etapa muy importante, la segunda guerra mundial. Seguro habréis oido hablar de la máquina Enigma. Es en este periodo donde la gente se dio cuenta de la importancia de esta disciplina y, a partir de ahí, la criptología se convirtió en una herramienta cotidiana. Tanto que ya no se cifran letras, sino bits y bytes usando ordenadores. Pensaréis que no es tan común, pero, ¿y si os digo que los telefonos móviles la usan? ¿Quién no tiene teléfono móvil hoy en día?

Este post pretende ser una introducción a la criptología, en entradas posteriores se hablará de otros temas como criptosistemas de clave secreta, de clave pública, firma digital, certificados, protocolos criptográficos y aplicaciones criptográficas.


Hack the Router

28 junio 2008

Éste es un post sólo para informáticos de sistemas, por favor los de gestión que se abstengan o pueden ser heridos sus sentimientos. (Bueno si queréis podéis mirar pero sin molestar…).

Después del disclaimer y hartos de los routers capados de telefónica, un compañero y yo nos decidimos a hackear el router Zyxel 660 HW proporcionado por esta compañía. Entiéndase hackear como el hecho de usar el ingenio para llevar a cabo un fin. Y no, como es a menudo confundido, hacer actos maliciosos. El objetivo es instalar en el router el firmware oficial del fabricante y sacar el que telefónica tiene instalado por defecto con un número muy inferior de funcionalidades.

Para ello no es suficiente usar el interfaz web del propio router ya que telefónica no permite la actualización del firmware a otros que no sean los de telefónica. Veamos el router por dentro.

Zyxel 660 HW por dentro

Para la actualización del firmware seguiremos el artículo de ADSL ayuda, concretamente usaremos el cable descrito en una actualización del artículo. Aquí tenemos el esquema:

Como vemos vamos a usar:

  • 1 conector RS323 que irá conectado al puerto série del pc
  • 2 transistores BC337
  • 1 resistencia de 1.5kOhm
  • 1 resistencia de 3.9kOhm
  • 1 resistencia de 4.7kOhm
  • 1 resistencia de 22kOhm

Para el montaje usaremos nuestra ProtoBoard empolvada que no usábamos desde primero, años ha. Debemos tener en cuenta la posición de los transistores ya que tienen polaridad, para ello tiraremos de nuestra chuleta de transistores.

Montamos el circuito. Usaremos además, un jumper para poder conectar los cables más facilmente a los pines del router.

Es hora de probarlo en el pc.

Tras hacer la actualización y comprobar que el cable y el método funcionan, verificamos que efectivamente obtenemos más señal que antes ya que el nuevo firmware nos permite modificar la potencia del router.

Para finalizar, aunque quede un poco frágil, decidimos soldar los componentes y añadir un poco de funda termoretráctil, obteniendo este resultado.


JavaCup 2008

27 junio 2008

Estas últimas semanas se ha celebrado la segunda edición de la JavaCup. Este año se han inscrito en el concurso 81 equipos procedentes de países de todo el mundo, particularmente, hispanohablantes. Han participado muchos de los equipos que participarón el año pasado actualizando y mejorando sus tácticas. También ha habido equipos que han participado con la tàctica ganadora del año pasado habiéndola o no, mucho o poco, mejorado. La final se ha jugado entre los equipos Laponia y 1A, siendo éste último el ganador del torneo. Enhorabuena a ambos.

El año pasado dijimos Susana y yo de crear un equipo para esta edición pero al final no ha sido posible ya que la carga lectiva ha sido brutal. Si queremos participar el año que viene tendremos que empezar ya a ponernos manos a la obra :D

Aquí os dejo el video de la final de la JavaCup 2008:


Web 2.0

2 noviembre 2007

En esta ocasión me gustaría hacer eco de la tecnología que se nos viene encima. Se trata de la web 2.0. Concretamente en todas estas webs en las que se pueden colgar videos e imagenes que han llamado la atención de los grandes como Google. Bromeando entre colegas… ¿Quien no ha pensado alguna vez hacer su “youtube” y venderselo a Google para ganarse la vida?

Bromas a parte, hoy queria mostraros, si aún no la habéis visto, una web 2.0 en la que puedes colgar tus presentaciones. http://www.slideshare.net/


Programador Java

7 julio 2007
Ya llevo tiempo con ello. Un proyecto de software en Java. Se trata de unos servicios de IRC programados en Java que serían multi-thread y modulares. Ya tengo un diseño hecho a grandes rasgos. Necesitaría algun o algunos voluntarios para poder implementarlo y llevarlo a cabo. Necesitaría a alguien que me ayudara a la hora de pulir los detalles del diseño. Interesados dejad un comentario.

Final de la JavaCup 2007

1 junio 2007

Ayer 31 de mayo se celebró la final de la JavaCup 2007. El vencedor ha sido F.C. The Patetics parece no haber sido tan patético como su nombre indica. El finalista ha sido Cobian F.C. ¡Enhorabuena a ambos! Podéis ver el video aquí a bajo.


Enginyeria Tècnica en Programació

7 mayo 2007

Vist el que he vist l’enginyeria tècnica informàtica en sistemes o gestió es podria rebatejar amb el nom de Enginyeria Tècnica en programació. No és cert que només es faci programació, no és per això, sino per les sortides professionals. Un enginyer tècnic en informàtica de sistemes o gestió qualsevol es pot considerar realment un expert en informàtica? Jo crec que serveix simplement per fer-se una idea de com funciona un ordinador i el seu entorn, xarxes i poca cosa més. Algú es pensava que una enginyeria tècnica era un gran què? Les sortides professionals de l’enginyer tècnic són, al meu parer, exactament les mateix que el que fa un cicle de grau superior en informàtica. Inclús m’atreviria a dir que un tècnic programador te més possibilitats de treballar de programador que un enginyer tècnic. Clar, si busques feina de programador dir que ets enginyer pot ser motiu de desqualificació per “perfil muy alto”. D’altra banda, un enginyer tècnic pot aspirar a quelcom més que a dedicar-se a la programació? Amb sort un enginyer tècnic es dedicarà a programar, serà un “matxaca” tota la vida i anirà a parar a una empresa que no li voldran augmentar el sou per antiguetat… Fins aquí la reflexió sobre el futur dels enginyers tècnics.


JavaCup 2007

7 marzo 2007

Solo Programadores (revista a la que estoy suscrito) junto a JavaHispano.org (la comunidad más grande de Java en castellano de Interet) organizan un torneo de futbol virtual patrocinado por Sun MicroSystems y Andago. Cada equipo será una clase java que implementará una interfaz que ellos proporcionan. También proporcionan una API que ofrecerá métodos para saber la localización del balón en el campo, qué jugador está más cerca del balón, de qué equipo es, dónde está un jugador determinado de un equipo determinado, etc…

Me he hecho eco de la noticia al leer la portada de la revista este mes. Immediatamente lo he comunicado en el canal #java de irc-hispano.org y he provocado alguna que otra descarga en el sitio del proyecto JavaCup. La verdad es que es, por lo menos, interesante. El primer premio es una workstation Ultra 20 valorada en 1.000€ y un año de suscripción gratis a la revista, el segundo premio un ipod y también un año de suscripción.

Un equipo debe implementar una interfaz. Este interfaz tiene unos métodos triviales de implementar, excepto uno, la táctica. En este se puede invertir tanto tiempo e imaginación como sea necesario para hacer de nuestro equipo un equipo competitivo.

Más información en la noticia de JavaHispano.


Seguir

Get every new post delivered to your Inbox.