La máquina Enigma fue inventada por un ingeniero alemán, Arthur Scherbius, Su idea consistía en aplicar el Cifrado de Vigenère, es decir se aplicaba un algoritmo de sustitución de unas letras por otras.
Al no contar con recursos para fabricarla, se asoció con Willie Korn quien tenía una compañía llamada Enigma Chiffiermaschinen AG en Berlín. Mejoraron el diseño y en 1923 la presentaron en la Exhibición Postal Internacional de Berlín para el cifrado de secretos comerciales.
La máquina enigma era electromecánica, es decir que una parte de su funcionamiento era mecánica, mientras que la otra era eléctrica, consistía en una serie de teclas con las letras del alfabeto, similar a una máquina de escribir, que en realidad eran interruptores que accionaban los dispositivos eléctricos y hacían mover unos cilindros rotatorios. Desde el punto de vista del operador, la forma en que funcionaba era bastante simple, tenía que teclear las letras de su mensaje y anotar las letras que devolvía la máquina (a través de un alfabeto que se iba iluminando).
El código a usar se fijaba con las posiciones de los cilindros que constaban, cada uno, de 26 cables que se conectaban al teclado pero, con la particularidad, que el primer cilindro giraba un veintiseisavo de vuelta después de cada pulsación, de tal manera que la posición de las conexiones iba cambiando con cada entrada del teclado, obteniendo un cifrado polialfabético.
Sumado a esto, el segundo cilindro sólo daba un giro cuando el primero había completado 26 giros y el tercero cuando el segundo había dado sus 26 y añadió la posibilidad de que los rodillos pudiesen ser intercambiados de posición, de manera que el número de posibilidades aumentase hasta tener 105,456 alfabetos.
Además, el sistema contaba con 6 cables de conexión que también permitían introducir modificaciones dado que podrían conectarse a 26 lugares (representando a las 16 letras del alfabeto de Enigma) lo que producía 100.391.791.500 maneras distintas de conectar los cables que unidos a los 105.456 alfabetos daba un total de:
La máquina enigma era electromecánica, es decir que una parte de su funcionamiento era mecánica, mientras que la otra era eléctrica, consistía en una serie de teclas con las letras del alfabeto, similar a una máquina de escribir, que en realidad eran interruptores que accionaban los dispositivos eléctricos y hacían mover unos cilindros rotatorios. Desde el punto de vista del operador, la forma en que funcionaba era bastante simple, tenía que teclear las letras de su mensaje y anotar las letras que devolvía la máquina (a través de un alfabeto que se iba iluminando).
El código a usar se fijaba con las posiciones de los cilindros que constaban, cada uno, de 26 cables que se conectaban al teclado pero, con la particularidad, que el primer cilindro giraba un veintiseisavo de vuelta después de cada pulsación, de tal manera que la posición de las conexiones iba cambiando con cada entrada del teclado, obteniendo un cifrado polialfabético.
Sumado a esto, el segundo cilindro sólo daba un giro cuando el primero había completado 26 giros y el tercero cuando el segundo había dado sus 26 y añadió la posibilidad de que los rodillos pudiesen ser intercambiados de posición, de manera que el número de posibilidades aumentase hasta tener 105,456 alfabetos.
Además, el sistema contaba con 6 cables de conexión que también permitían introducir modificaciones dado que podrían conectarse a 26 lugares (representando a las 16 letras del alfabeto de Enigma) lo que producía 100.391.791.500 maneras distintas de conectar los cables que unidos a los 105.456 alfabetos daba un total de:
3,283,883,513,796,974,198,700,882,069,882,752,878,379,955,261,095,623,
685,444,055,315,226,006,433,616,627,409,666,933,182,371,154,802,769,920,000,000,000 posibilidades distintas de codificación.
En 1933 Alemania nacionalizó a la compañía creadora de ésta máquina, y posteriormente procedió a armar a todo su ejército con ella, además de agregarle un cuarto cilindro para complicar aún más el intento de descifrar los mensajes.
Desde que obtuvieron esta máquina, el ejército nazi obtuvo una gran ventaja debido a que sus códigos eran prácticamente indescifrables y así tomaban la ventaja en el campo de batalla al poder envíarse mensajes sin el temor de que los aliados los interceptáran y los descifraran.
Sin embargo y a pesar de todos los mecanismos que utilizaba la máquina enigma, eventualmente fue vencida debido a los principales factores:
Cifrado por bloques.
Una unidad de cifrado por bloques es una unidad de cifrado de clave simétrica que opera en grupos de bits de longitud fija (bloques), aplicándoles una transformación invariante.
Cuando se hace el cifrado, se toma como entrada un bloque de texto plano (o claro) y produce un bloque cifrado de igual tamaño. La transformación exacta es controlada utilizando una segunda entrada, ésta es la clave secreta dada por el usuario. Para realizar el proceso inverso (descifrado), se ingresa un bloque de texto cifrado y se produce el texto plano original.
685,444,055,315,226,006,433,616,627,409,666,933,182,371,154,802,769,920,000,000,000 posibilidades distintas de codificación.
En 1933 Alemania nacionalizó a la compañía creadora de ésta máquina, y posteriormente procedió a armar a todo su ejército con ella, además de agregarle un cuarto cilindro para complicar aún más el intento de descifrar los mensajes.
Desde que obtuvieron esta máquina, el ejército nazi obtuvo una gran ventaja debido a que sus códigos eran prácticamente indescifrables y así tomaban la ventaja en el campo de batalla al poder envíarse mensajes sin el temor de que los aliados los interceptáran y los descifraran.
Sin embargo y a pesar de todos los mecanismos que utilizaba la máquina enigma, eventualmente fue vencida debido a los principales factores:
- Al haber sido en un inicio un producto comercial que fue presentado al público dentro de lo que cabe, la información de cómo operaba de manera esencial era conocida.
- La codificación de un mensaje obligaba al operador a introducir 3 letras dos veces cuando se iniciaba el mensaje, en un estilo de bandera, el ejército nazi no modificaba esa secuencia, por lo que se convirtió en una constante que aprovecharon los aliados para descifrar los códigos.
- Los aliados lograron capturar un submarino Alemán, con lo cual lograron obtener una máquina enigma y el libro de claves, pero hicieron la captura para el público como que el submarino se terminó hundiendo para así evitar que cambiaran las claves.
Debido a todos esos factores es que fue posible para los aliados derrotar a la máquina enigma y descifrar los mensajes de los alemanes, éstos intentaron recuperar la ventaja con su sucesora, la M4, pero los aliados crearon un computador llamado "Colossus" que fue diseñado para descifrar sus mensajes.
Al final de día, la máquina enigma terminó teniendo una mayor repercusión de lo que se podría pensar, dado que más allá de su uso militar, fue la causante de la creación de las primeras computadoras, que ya en el futuro se convertirían el todo lo que conocemos hoy en día.
Cifrado por bloques.
Una unidad de cifrado por bloques es una unidad de cifrado de clave simétrica que opera en grupos de bits de longitud fija (bloques), aplicándoles una transformación invariante.
Cuando se hace el cifrado, se toma como entrada un bloque de texto plano (o claro) y produce un bloque cifrado de igual tamaño. La transformación exacta es controlada utilizando una segunda entrada, ésta es la clave secreta dada por el usuario. Para realizar el proceso inverso (descifrado), se ingresa un bloque de texto cifrado y se produce el texto plano original.
El cifrado por bloques es diferente al cifrado por flujo (stream ciphers) debido a que, en este último, se opera en dígitos individuales, uno tras otro, y la transformación varía durante el proceso de cifrado.
Un ejemplo de cifrado por bloques conocido, es el llamado DES (Data Encryption Standard), que fue un diseño de unidad de cifrado por bloques de gran influencia. Fue desarrollado y publicado por IBM y se volvió un estándar en 1977, éste tuvo un sucesor, el Advanced Encryption Standard (AES), que fue adoptado en 2001.
Funcionamiento del cifrado por bloques.
Para la asignación de bloques, los algoritmos de cifrado simétrico realizan sustituciones y permutaciones en el texto en claro hasta obtener el texto cifrado. La sustitución es el reemplazo de un valor de entrada por otro de los posibles valores de salida. La permutación es un tipo especial de sustitución en el que los bits de un bloque de entrada son reordenados para producir el bloque cifrado, esto es para preservar las estadísticas del bloque de entrada (el número de unos y ceros).
Finalmente, los algoritmos de cifrado por bloques iterativos funcionan aplicando una transformación (función de rotación) sucesivas veces a un bloque de texto en claro. La cantidad de "rotaciones" depende del nivel de seguridad buscado. Se aplica una misma función a los datos usando una subclave obtenida de la clave secreta original dada por el usuario.
Para implementar un algoritmo por bloques, se necesita romper el texto de entrada en bloques de longitud fija. Esto puede hacerse de cuatro formas:
- ECB (Electronic Code Book).
- CBC (Cipher Block Chaining).
- OFB (Output Feedback Mode).
- CFB (Cipher Feedback Mode)
En el Cipher Block Chaining, a cada bloque de texto plano se le aplica la operación XOR con el bloque cifrado anterior antes de ser cifrado. De esta forma, cada bloque de texto cifrado depende de todo el texto en claro procesado hasta este punto. Para hacer cada mensaje único se utiliza asimismo un vector de inicialización. Es útil para transmisiones orientadas a bloques. Sin embargo, debido a este tipo de funcionamiento, no es posible realizar operaciones de cifrado en paralelo sobre varios bloques por esta dependencia de cada bloque con la operación del anterior.
CFR (Cipher Feedback).
Para comprender la forma en que funciona el CFR, es necesario primero conocer el funcionamiento del OFB (Output Feedback Mode) y a su vez, para éste es necesario el CTR (Counter Mode).
CTR simula un cifrado de flujo. Es decir, se usa un cifrado de bloque para producir un flujo pseudo aleatorio conocido como keystream. Este flujo se combina con el texto plano mediante XOR dando lugar al cifrado.
Para generar el keystream se cifra un contador combinado con un número aleatorio ("nonce") mediante ECB (Electronic Code Book Mode) y se va incrementando. El valor del contador puede ser públicamente conocido, y es necesario que el valor de nonce + contador lo conozcan ambos lados de la comunicación.
CFR (Cipher Feedback).
Para comprender la forma en que funciona el CFR, es necesario primero conocer el funcionamiento del OFB (Output Feedback Mode) y a su vez, para éste es necesario el CTR (Counter Mode).
CTR simula un cifrado de flujo. Es decir, se usa un cifrado de bloque para producir un flujo pseudo aleatorio conocido como keystream. Este flujo se combina con el texto plano mediante XOR dando lugar al cifrado.
Para generar el keystream se cifra un contador combinado con un número aleatorio ("nonce") mediante ECB (Electronic Code Book Mode) y se va incrementando. El valor del contador puede ser públicamente conocido, y es necesario que el valor de nonce + contador lo conozcan ambos lados de la comunicación.
Una de las ventajas que ofrece es la posibilidad de precalcular el keystream (y/o trabajar en paralelo).
Como desventajas hay que tener en cuenta que reutilizar un contador en la misma clave puede ser desastroso, pues se generará de nuevo el mismo keystream. Modificar bits en el texto plano es muy sencillo, porque al modificar un bit del cifrado se modificará el bit del texto plano correspondiente (Bit-flipping attacks). Debido a esto es aconsejable usar el modo de cifrado junto con una verificación de la integridad del mensaje.
Como desventajas hay que tener en cuenta que reutilizar un contador en la misma clave puede ser desastroso, pues se generará de nuevo el mismo keystream. Modificar bits en el texto plano es muy sencillo, porque al modificar un bit del cifrado se modificará el bit del texto plano correspondiente (Bit-flipping attacks). Debido a esto es aconsejable usar el modo de cifrado junto con una verificación de la integridad del mensaje.
Ahora, la forma en la que funciona el OFB es muy similar al CTR, nada más que el keystream se genera cifrando el bloque anterior del keystream, dando lugar al siguiente bloque. El primer bloque de keystream se crea cifrando un vector de inicialización IV.
Conociendo esto, ya puede entenderse que el CFB funciona de manera similar a los dos anteriores, únicamente que para producir el keystream se cifra el último bloque de cifrado, en lugar del último bloque del keystream como hace OFB, pero por todo lo demás comparte las vulnerabilidades de éste, y por lo tanto del CTR.
Método de distribución de claves.
La distribución de claves es una de las partes más delicadas con las que se debe de lidiar al momento de trabajar con este tipo de sistemas, dado que si se lleva a cabo de una manera inadecuada, todo el trabajo que se hizo en el cifrado, valdría para absolutamente nada, debido a que se conocerían las llaves para obtener toda la información de lo que se quiere proteger.
El protocolo IEEE802.10 muestra tres tipos de técnicas de distribución de claves, las cuales son: distribución manual de claves, distribución centralizada de claves y distribución certificada de claves.
Distribución manual de claves.
Las técnicas de distribución manual de claves utilizan procedimientos de entrega fuera de línea para establecer contraseñas compartidas en parejas o en grupos, esto es, se apoyan en métodos tradicionales (seguridad física y de confianza, correos seguros).
Método de distribución de claves.
La distribución de claves es una de las partes más delicadas con las que se debe de lidiar al momento de trabajar con este tipo de sistemas, dado que si se lleva a cabo de una manera inadecuada, todo el trabajo que se hizo en el cifrado, valdría para absolutamente nada, debido a que se conocerían las llaves para obtener toda la información de lo que se quiere proteger.
El protocolo IEEE802.10 muestra tres tipos de técnicas de distribución de claves, las cuales son: distribución manual de claves, distribución centralizada de claves y distribución certificada de claves.
Distribución manual de claves.
Las técnicas de distribución manual de claves utilizan procedimientos de entrega fuera de línea para establecer contraseñas compartidas en parejas o en grupos, esto es, se apoyan en métodos tradicionales (seguridad física y de confianza, correos seguros).
Distribución centralizada de claves.
Distribución certificada de claves.
Se
emplea
principalmente para
realizar
comunicaciones
seguras
entre
parejas
de
interlocutores.
En
este
contexto
se
identifican
principalmente
dos
clases
de
técnicas
de
distribución:
las
cuales
se
conocen
normalmente
como
transferencia
de
claves
y
acuerdo
o
intercambio
de
claves.
- Transferencia de Claves: La entrega o distribución se realiza a través de un criptosistema público a través del cual se cifra una clave generada localmente en la entidad u organismo encargado de esta tarea así, la clave viajará protegida hasta la entidad remota de gestión de claves para su uso.
- Acuerdo o Intercambio de Claves: La clave a utilizar para la comunicación se genera con la participación de las entidades involucradas, esto es, la entidad que requiere dicha clave y la encargada de la generación de claves (la entidad local y la entidad remota).
http://hipertextual.com/2011/07/la-maquina-enigma-el-sistema-de-cifrado-que-puso-en-jaque-a-europa
http://www.alegsa.com.ar/Dic/cifrado%20por%20bloques.php
http://enciclopediateleco.blogspot.mx/2014/12/modos-de-operacion-ecb-cbc-cfb-ofb-y.html
http://dlerch.blogspot.mx/2007/07/modos-de-cifrado-ecb-cbc-ctr-ofb-y-cfb.html
http://www.openboxer.260mb.com/asignaturas/criptografia/distribucionDeClaves.pdf?ckattempt=1
No hay comentarios.:
Publicar un comentario