La Criptografía (primera parte)

criptografia

La criptografía fue una de las primeras aplicaciones de los ordenadores. En la actualidad, elaborar y descifrar un código sencillo está al alcance de un programa de ordenador.

Toda nuestra comunicación con los demás está codificada. Tanto el habla como el lenguaje escrito son inteligibles sólo si la persona que recibe el mensaje conoce el código del comunicante. Lo mismo sucede con nuestras conversaciones con los ordenadores. La mayoría de los ordenadores personales se comunican por medio de una versión del BASIC para ser accesibles a la mayoría de la gente, pero nosotros sabemos que la máquina no emplea este leguaje para realizar sus funciones: ella debe primero interpretar las sentencias en BASIC en una forma puramente numérica que después utiliza para establecer la secuencia de conmutaciones definidas en el programa y, de este modo, producir los resultados deseados. Los códigos de este tipo (lenguajes humanos y lenguajes de programación) son de fácil acceso en nuestra vida cotidiana. Con un poco de esfuerzo y voluntad, cualquiera puede aprender francés, alemán, BASIC o Fortran.

Pero existe otro tipo de codificación (o criptografía, para usar la palabra adecuada) que tiene por objetivo lo contrario de la comunicación; su finalidad consiste en evitar que lo comprendan todos, a excepción de un reducido grupo al cual está destinado el mensaje. Hasta la segunda mitad del siglo XX, la transmisión de información en una forma ininteligible para el público en general era privativa de los gobiernos y de alguno que otro asunto industrial importante. Pero más recientemente la criptografía se ha convertido en algo cotidiano.

Las claves y los códigos oscilan desde los muy simples (la suma o la resta de un valor determinado a cada byte, o la sustitución según el formato de un carácter por otro cada vez que éste aparece) hasta las claves en extremo complejas por las que se encaminan los más recientes avances de la teoría de los números. Estas claves no contienen ningún elemento de repetición y, por consiguiente, no son descifrables con los tradicionales métodos de decodificación por análisis de frecuencia.

Quizás la más sencilla de todas las técnicas significativas de criptografía sea la “clave del César” (que tal vez se utilizó por primera vez en la época del Imperio romano). Para descifrar la clave del César sólo se necesita el mensaje y un conocimiento de la clave, de modo que no hay que consultar voluminosos libros de códigos ni documento alguno, ni se necesita unas máquinas especiales. He aquí un breve mensaje escrito en clave del César:

AYJYZNXNQ W BPYENLCQ

Podemos aventurar algunas suposiciones acerca de estas palabras crípticas, a tenor de la forma en que se separan los grupos cifrados (aunque, por supuesto, ¡esto se podría haber hecho para crear mayor confusión¡). Lo más obvio a que destaca a simple vista es que el mensaje consta de 3 palabras; la primera posee 9 letras, la segunda posee 1 y la última 8. También es claro que la primera y la tercera palabra terminan con la misma letra. Aquí la última letra final común (Q) es, asimismo, una de las tres letras del mensaje que se repiten con mayor frecuencia (las otras dos son la Y y la N). Para el criptoanalista esta observación tiene un valor considerable (al menos, cuando sabe en qué idioma está trabajando). En castellano, las letras que se presentan con mayor frecuencia son la A y la E entre las vocales, y la S entre las consonantes; esta última, dado que con ella se forma el plural, suele hallarse al final de las palabras.

Con una muestra tan reducida como la que tenemos aquí (un total de 18 letras, cifra que todo estadístico considera muy insuficiente para buscar en ella cualquier análisis), es probable que nuestros resultados sean fiables. Pero, aun así, vamos a probar con la sustitución de frecuencia y veremos si los resultados obtenidos tienen algún significado. En primer lugar vamos a reemplazar la Q por la S, por ser aquella la última letra de las dos palabras más largas.

AYJYZNXNs W BPYENLCs

El mensaje aún no tiene significado, pero existen otras pistas. ¿Qué hay de la relación entre la letra original y la letra por la cual la hemos sustituido? En el alfabeto, la Q está dos lugares antes que la S. ¿Qué sucederá si sometemos el resto del mensaje a la misma transformación? Dos lugares después de la Y (la otra de nuestras letras que aparece con mayor frecuencia) está la A (si consideramos el alfabeto como una cadena ininterrumpida), así que vamos a intentar agregar esta información.

AaJaZNXNs W BPaENLCs

En la primera palabra tenemos ahora dos vocales intercaladas, que en castellano es una construcción válida. Además, la letra final es una S, hecho que en esta lengua es de común ocurrencia, de modo que tal vez estemos en el camino correcto. Vamos a someter el resto del mensaje a la misma transformación. Dos lugares tras de la A se encuentra la C; dos lugares después de la J está la N; aplicando la misma correspondencia, la Z de convierte en B, la N en O y la X en Z… De esta forma llegamos a la solución “calabozos y dragones”, un atractivo juego de aventuras.

La clave del César es, pues, un código de sustitución que se basa en “deslizar” el alfabeto hacia atrás o hacia adelante según un número que es secreto y que nos dará el nuevo valor de cada carácter. Sin utilizar las frecuencias, el mensaje puede simplemente construirse según una serie clave de transformaciones: 24225, por ejemplo. En este caso la primera letra se desplazaría dos lugares, la segunda cuatro, la tercera dos y así sucesivamente. Cuando se llega al último número de la serie clave la volveremos a iniciar. Con esta serie clave, el mensaje de muestra “calabozos y dragones” quedaría:

AWJYWNVNQ T BÑYERKLAQ

En este caso, el análisis de frecuencia sería inútil, pues no hay uniformidad en las sustituciones: una letra tendrá distintas sustituidas según su posición en el mensaje global. Otra clave sencilla auto contenido es el mismo mensaje en estos términos:

CBSDOAAOO RGNSLZYAE

Si observamos atentamente, podemos ver que esta serie de caracteres es en realidad un anagrama de “calabozos y dragones”, completo y con los dos espacios entre las palabras. Aquí simplemente estamos tratando de determinar el algoritmo criptográfico, a parir de ejemplos tanto de texto llano como de texto cifrado, un procedimiento sorprendentemente común. Si la clave ha de ser comprensible al destinatario del mensaje, entonces la combinación de las letras debe ser predecible de alguna forma. Esta clave particular, conocida como “bar fence”, también requiere que el decodificador la conozca; en este caso es 3. Vamos a tomar los cinco primeros caracteres y escribirlos con tres espacios de por medio:

C***B***S * D***O

¿Reconoce algo? Entonces probemos con esto: escriba el mensaje de texto llano en tres líneas, yendo de arriba y hacia abajo entre ellas, de la siguiente manera:

C   B   S   D   O
 A A O O *Y* R G N S
  L   Z       A   E

Los asteriscos representan los espacios entre las palabras; el método criptográfico es llano.

Los ejemplos que hemos citado hasta el momento han sido todos cifras, definidas como un método de escritura secreta que utiliza la sustitución o transformación de letras de acuerdo a una clave. Los códigos son algo diferente, en el sentido de que tienden a reemplazar bloques enteros por otros bloques, normalmente más pequeños (permitiendo, de este modo, al mismo tiempo, comprimir los datos). Su inconveniente es que exigen que ambas partes posean un libro de códigos para que se puedan comunicar mensajes. Un ejemplo de esta técnica emplea una novela, un periódico u otro texto que se pueda conseguir con facilidad, e indica las palabras del mensaje dando el número de secuencia en que se producen. Un texto como:

“Maigret leyó con atención el aviso: Por favor, al objeto de favorecer el tráfico, permanezca al volante, no baje del coche. Sonrió. Ahora comprendía por qué en su momento el cadáver de Smith no fue identificado”.

podría ser la clave para el código 4, 6, 7, 17, 2.

Un ordenador de cualquier clase puede ser de enorme valor al intentar cifrar o descifrar mensajes criptográficos. Un requisito primordial de la clave del César, por ejemplo, es la capacidad de desplazamiento a través de una serie alfanumérica, sumando o restando una variable al valor ASCII de cada carácter, que se puede entonces imprimir. Dicha constante ha de ser susceptible de modificarse cuando se ejecuta el programa, y debe hacer que el alfabeto se “enrolle” (es decir, una A, cuando la clave fuera uno, debería dar Z).

(Fuente: Enciclopedia Mi Computer)

Anuncios
1 comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s