viernes, 9 de enero de 2009

Intenta arrancarlo !!!

Cuando un usuario enciende su ordenador se dice que lo está arrancando, como si de un motor se tratase. Sin embargo, esta acción se conoce en inglés como boot up, una expresión un tanto extraña y de traducción aparentemente ilógica.


La creación del término se debe a la compañía Xerox. El concepto que se esconde detrás de arrancar un ordenador tras haberse colgado resulta, hasta cierto punto, paradójico.

Aunque pueda sonar a juego de palabras, la pregunta a la que tuvo que contestar un grupo de programadores de la empresa fue de este estilo: ¿cómo hacer que un aparato que en conjunto no responde sí obedezca una orden determinada, que a su vez permita ejecutar posteriormente con normalidad todas las órdenes del usuario?.



La respuesta se encontró en una historia del Barón Münchhausen, en la que se cuenta que, tras haber caído en un lodazal, éste intentó levantarse tirando hacia arriba de los cordones de sus botas. Y de "bota" (boot en inglés) proviene el verbo to boot up.

Y para explicar un poco más la cosa, el Barón no podía levantarse tirando de sus propias botas porque ahí sólo participaban fuerzas internas. Si se hubiera apoyado en algo, sí podría haber una participación externa. También podría haberse movido mediante fuerzas internas prescindiendo de parte de sí mismo…

Algunos recordarán la teleserie Los hombres de Harrelson con ese esperado momento en que el teniente Hondo movilizaba a sus agentes en todas las direcciones y enviaba a TJ al tejado. Algo así es lo que hace el sistema operativo con los componentes del ordenador (básicamente sílice, metales y plásticos) cuando encedemos la máquina (suministrándole electricidad).
En los primeros milisegundos de vida el ordenador se encuentra ante una paradoja: debe iniciar el sistema operativo que se encuentra en un dispositivo (disco duro, memoria RAM o memoria Flash), pero antes debe activar este dispositivo y para ello necesita un sistema operativo. Es decir, antes de movilizar a nadie el teniente Hondo se debe movilizar a sí mismo. La solución de esta paradoja la aporta el cargador de arranque, una mínima esencia de un sistema operativo ubicado en la minúscula memoria ROM del ordenador que, como el Barón de Münchhausen, es capaz de levantarse a sí mismo estirando de sus propias botas. De esta fábula proviene el término bootstrapping (tirar de las botas) que denomina este proceso inicial, así como su derivación booting que ha generado los anglicismos no oficiales en español botar (iniciar) o rebotar (reiniciar).

La BIOS (Basic Input/Output System) es ese pequeño soft que hace que el ordenador se "levante" durante el POST (Power On Self Test), que es el momento en el que la Bios detecta qué hay conectado al ordenador, momento tras el cual le pasa CASI todo el control del hardware al sistema operativo.


Fuente: www.faq-mac.com

Leer más...

lunes, 5 de enero de 2009

Criptografía (IX)

Nos quedamos en que el joven Rejewski se centró en la repetición para ejecutar su ataque contra enigma. Bien, pues la repetición más obvia era la clave del mensaje, que se codificaba 2 veces para evitar errores producidos por interferencias o fallos del operador. Por ejemplo si el operador elegía la clave ULJ, la codificaba dos veces, por lo tanto codificaría ULJULJ, que podría ser codificado como PEFNWZ, lo que sería enviado al comienzo del mensaje en sí. Esta repetición que los alemanes utilizaban para su seguridad pondría en peligro la fortaleza de la enigma.
Todos los día Rejewski recibía mensajes interceptados cuyas primeras 6 letras eran una clave duplicada. Tomemos por ejemplo 4 mensajes que comenzaran de la siguiente manera




mensaje 1 : L O K R G M
mensaje 2 : M V T X Z E
mensaje 3 : J K T M P E
mensaje 4 : D V Y P Z X

En los 4 casos la letra primera y cuarta son codificaciones de la misma letra (la primera letra de la clave), así como la segunda y la quinta codifican la segunda letra de la clave y la tercera y la sexta son codificaciones de la tercera letra de la clave.
En el primer mensaje la L y la R son codificaciones de la primera letra de la clave, pero con una diferencia de tres rotaciones de los rotores internos. Recordemos que los rotores giran con cada pulsación.
Esto puede parecer algo vago pero demostraba que L y R estaban intimamente relacionadas por la disposición inicial de la máquina, al igual que M y X, J y M o D y P.
Rejewsky empezó a crear unas tablas con estas relaciones. Con los 4 mensajes anteriores podemos construir:

letra 1: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
letra 4: .........P.............. M...R X.....................................

Si tenemos suficientes mensajes a lo largo del día podemos formar:


letra 1: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
letra 4: F Q H P L W O G B M V R X U Y C Z I T N J E A S D K

Rejewsky no sabía la clave del día, ni tampoco las claves de mensaje elegidas, pero sabía que como resultado daban esta tabla. Con una clave diferente la tabla hubiera sido distinta. Ahora tenía que averiguar si con esta tabla podía determinar la clave del día.
Se dió cuenta de un patrón de letras encadenadas. Si miramos la tabla superior la letra A esta ligada con la F, si buscamos la F en la fila superior esta ligada a la W, si buscamos la W en la fila superior esta ligada a la A...y con esto completamos una cadena.

A-F-W-A : 3 conexiones

Ahora hacemos lo mismo con la B y obtenemos la cadena:

B-Q-Z-K-V-E-L-R-I-B: 9 conexiones

La siguiente la empezamos por la C

C-H-G-O-Y-D-P-C: 7 conexiones

La siguiente es la J pues la D, E,F,G,H y la I ya las hemos utilizado en otras cadenas

J-M-X-S-T-N-U-J: 7 conexiones

Rejwesky repetía este proceso también con las letras segunda y cuarta y con las terceras y sextas de la codificación duplicada de la clave.

Las cadenas cambiaban cada día, a veces había muchos tipos y otras veces sólo alguans pocas cadenas largas. Y logicamente, las letras de las cadenas también cambiaban. Las características de las cadenas claramente resultado de la posición de la clave del día: la secuencia de posiciones del clavijero, la disposición de los modificadores y su orientación. Pero seguía sin saber como afrontar la cuestión de determinar la clave entre las 10.000 billones de posibilidades.
Entonces la inspiración pilló trabajando a Rejewsky: el número de conexiones de las cadenas es puramente una consecuencia de la posición de los modificadores, sin que influyan las posiciones del clavijero.
Supongamos que en el ejmplo anterior la clave del día requería que las letras S y G fueran intercambiadas por las posiciones del clavijero. Si cambiamos este elemento y en lugar de intercambiar la S y la G intercambiamos la T y la K, las cadenas quedarían así:

A-F-W-A: 3 conexiones
B-Q-Z-T-V-E-L-R-I-B: 9 conexiones
C-H-S-O-Y-D-P-C: 7 conexiones
J-M-X-G-K-N-U-J: 7 conexiones

Aunque algunas letras han cambiado, el número de conexiones de cada cadena no varía. Ahora sabia que las conexiones de las cadenas era un reflejo exclusivamente de la posición de los modificadores.
Como no tenemos que preocuparnos por los clavijeros, las 6 disposiciones de los modificadores por el número de orientaciones posibles (17.576) nos da una cifra de 105.456 posiciones de los modificadores.
Ahora el problema era más sencillo: ¿Cuál de las 105.456 posiciones de los modificadores se asociaba con el número de conexiones en un juego de cadenas? Esto parecía estar dentro de las posibilidades humanas de resolución.
El siguiente paso fue, mediante las replicas de las máquinas enigmas conseguidas gracias al espionaje de Hans-Thilo Schmidt, comprobar cada una de las 105.456 posiciones de los modificadores. Tarea que costó un año entero completar a todo el equipo del Biuro. Una vez que tuvo todos los datos, Rejwesky pudo ponerse manos a la obra y comenzar a desentrañar la cifra Enigma.

Fuente: Los códigos secretos (Simon Singh) Leer más...