Introducción a la Criptgrafía (II)

En el capítulo anterior de Introducción a la Criptografía hablamos sobre como había evolucionado la forma de cifrar los mensajes en la historia, desde el código Julio Cesar hasta la máquina Enigma. Hoy ya comenzamos a ver los métodos  modernos con los que se empezaron cifrar datos digitalmente.

Ciframiento digital

Con el invento del ordenador las posibilidades de los descifradores han crecido enormemente pero las oportunidades de las personas que confeccionan las claves se han hecho casi infinitas. No sólo la capacidad de cálculo del ordenador, sino también el hecho de que éste almacene un texto en los valores (1) o (0), los llamados bits, aumenta las posibilidades (por ejemplo, `A’=1000001). Ahora, en sus técnicas de ataque los descifradores ya no pueden aprovechar tan fácilmente las características de una lengua. También nuevas comprensiones matemáticas hicieron que algoritmos cada vez más complejos pudieran formar parte integral de los programas informáticos (software) o de las conexiones electrónicas (hardware/chips). Substituciones, permutaciones, tablas y operaciones matemáticas son, en diferentes combinaciones, habituales en los diversos actuales sistemas criptográficos.

Los modernos sistemas criptográficos digitalizados pueden ser clasificados de diferentes maneras. Hay ciframientos `por bloque‘ y `por carácter‘, lo que significa ahora el ciframiento `por bloque de bits‘ o el ciframiento `por bit‘: por un lado los métodos que cifran un bit original en un único bit y, por otro lado, los métodos en los que el texto limpio y el texto cifrado no son igual de largo. En algunos sistemas criptográficos la clave se deduce de una u otra forma del texto limpio, en otros se produce independientemente del mensaje original. Existen sistemas en los que se utiliza una clave una sola vez y sistemas que hacen uso de una clave idéntica más de una vez.

Además, puedes distinguir entre los mencionados sistemas convencionales, con sólo claves secretas, y un concepto completamente diferente, el llamado `Public Key’ (Clave Pública), que desde los años setenta empezó a conquistar el mundo y del cual hablaremos más adelante. Para hacerlo más complicado, en la práctica se suele utilizar todo tipo de combinaciones de principios criptográficos.

Aparte de clasificarlos según la técnica en la que se basan los sistemas criptográficos, también puedes juzgarlos por su fiabilidad, su facilidad en el uso, el tiempo de procesamiento que ocupan, su precio, etc.. Aunque no pretendemos ser exhaustivos, abordamos ahora el tema de la calidad de un número de sistemas que se pueden adquirir fácilmente. Sin embargo, ya de antemano debemos relativizar lo que sigue: lo que parece seguro hoy, quizás ya no lo sea mañana.

`One Time Code Pad’ ciframiento `por bit’

A los sistemas criptográficos convencionales que se consideran indescifrables, pertenecen los sistemas de ciframiento `por bit’ con una clave que sea bastante aleatoria, que sea al menos, igual de largo que el mensaje original y que se use sólo una vez.

Estudiemos más detalladamente esas claves `aleatorias’ o `random’, partiendo de la suposición de que los criptoanalistas pueden disponer de las recetas (en hardware o software) con las cuales se confeccionan las claves. A pesar de ello, ha de ser imposible predecir la clave, ni siquiera si una parte de ella ya se conoce. Por lo tanto, la cuestión es cómo se hace una clave `random’. En otras palabras: ¿dónde encuentras los factores casuales que procuren que el resultado de una receta conocida sea impredecible?

El ruido de fondo en tu radio-FM, la radiación del sol y el resultado de una lotería son, por ejemplo, aleatorios porque no se les puede aplicar una fórmula. También ciertos componentes electrónicos, como el diodo y el transistor, pueden producir ruido de fondo. Por esa razón se utilizan estos componentes en algunos generadores de claves `hardware’. Otro método para hacer claves de manera `hardware’ es el uso de registros de desfasaje, que se emplean sobre todo en aparatos para codificar la voz. Sin embargo, así nunca se consigue un `random’ total.

En las recetas `software’ para la confección de claves lo mejor es hacer uso de la impronosticabilidad humana como fuente aleatoria. Puedes pensar p.e. en el momento en que alguien realiza cierta operación ante el ordenador (el reloj del ordenador), en las teclas del teclado que alguien elige, en el tiempo transcurrido entre dos pulsaciones, etc. Cuantos más elementos impredecibles mejor, aunque también con este método queda difícil conseguir un `random’ completo. Sin embargo, no confíes de ningún modo en programas que para la confección de una clave sólo hacen uso de factores que ciertamente parecen muy enigmáticos o complicados pero que, en realidad, se llevan a cabo según unas reglas relativamente sencillas, como el tiempo que el ordenador necesita para efectuar cierto cálculo o para almacenar un archivo en disco.

Que la clave sea impredecible es de tanta importancia para la seguridad de este método, que para obtener el texto cifrado se limita a una operación de bits `XOR’(3), que se aplica también en otros métodos de criptografía. La idea básica de `XOR’ es que se compara un bit del mensaje con el bit correspondiente de la clave. Si esos bits son diferentes, en el texto cifrado se pone un (1) en el mismo sitio. Si son iguales, se pone un (0) en el mensaje codificado. Con esta misma operación puedes recuperar también el texto original. Por ejemplo:

CIFRAR (XOR) DESCIFRAR (XOR)

1101011 texto limpio 1001010 texto cifrado

0100001 clave 0100001 clave

1001010 texto cifrado 1101011 texto limpio

A condición de que la clave sea suficientemente aleatoria, esta sencilla operación también sirve para cifrar textos.(4) El sistema es seguro porque los descodificadores no pueden hacer más que probar todas las claves posibles. Podrás imaginarte que, como el número de claves es casi ilimitado, incluso los poderosos ordenadores de hoy en día precisan hacer cálculos interminables.

Estos sistemas son seguros, pero tienen muchas desventajas.

El ciframiento y el envío de grandes archivos almacenados en disco acapara relativamente mucho tiempo, lo que, por supuesto, resulta molesto cuando tienes que hacerlo con frecuencia. Además, para cada persona con la que te quieras comunicar tendrás que utilizar cada vez otra clave, mientras que a lo mejor te comunicas con mucha gente. En ese caso necesitas un montón de discos blandos que no deben caer en manos de personas que no estén autorizadas. Aparte de ello, primero hay que encontrar una manera segura de intercambiar la clave. Para gobiernos y organizaciones de gran capacidad financiera tal vez ello no constituya un problema pero para gente como nosotros sí. Y es que (todavía) no disponemos de los recursos necesarios para pagar a un mensajero que recorre el mundo con una valija diplomáticaencadenada a la muñeca. La cuestión se vuelve aún más complicada cuando ha habido algún fallo en la comunicación. Incluso si sólo se ha perdido un bit, hay que volver a codificar el texto limpio y a enviar el mensaje codificado.

En suma, el uso de estos sistemas no siempre es muy práctico. Pero en ciertas circunstancias a lo mejor aceptas esas molestias. Por ejemplo, la sección diplomática de la antigua resistencia salvadoreña (FMLN) utilizaba semejante sistema en las negociaciones con el gobierno de su país, así como algunas guerrillas latinoamericanas.

Advertisement

Publicado el 03/08/2009 en Criptografia, Telecomunicaciones y etiquetado en , , , , . Guarda el enlace permanente. 1 comentario.

Deja un comentario

Fill in your details below or click an icon to log in:

Gravatar
Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.