Introducción a la seguridad informática y criptografía clásica

TEMA II: FUNDAMENTOS E HISTORIA DE LA CRIPTOGRAFíA



Lección 1: Fundamentos de la seguridad
Lección 2: Fundamentos de la criptografía
Lección 3: Conceptos básicos de la criptografía
Lección 4: Principios de la criptografía y hechos históricos
Lección 5: Fundamentos de matemáticas discretas para la criptografía
Lección 6: Sistemas de cifra clásica
Lección 7: Algoritmos de cifra por transposición o permutación
Lección 8: Algoritmos de cifra clásica por sustitución monoalfabética
Lección 9: Algoritmos de cifra clásica por sustitución polialfabética
Lección 10: Algoritmos de cifra clásica poligrámicos con matrices

LECCIÓN 3: CONCEPTOS BÁSICOS DE LA CRIPTOGRAFÍA

Autor: Dr. Jorge Ramió Aguirre.
Fecha de publicación: 29 de febrero de 2016.
La próxima Lección 4: Principios de la criptografía y hechos históricos, se publicará el lunes 7 de marzo de 2016.
Colaboración diseño Web: D. Jaime Sánchez Pedrós, becario Talentum Startups.

En esta tercera lección daremos algunas definiciones básicas de términos relacionados con la criptografía que usaremos durante todo el MOOC y escucharemos sabias palabras de la Dra. Radia Perlman sobre la enseñanza de la criptografía. Veremos la diferencia que existe entre cifrar y codificar, algo que mucha gente confunde y que los trata equivocadamente como sinónimos, así como las razones que nos asisten para afirmar que la palabra correcta es cifrar y no encriptar. Terminaremos la lección explicando por qué buscamos en criptografía la difusión y la confusión para dar fortaleza a la cifra, usando para ello técnicas de transposición y técnicas de sustitución. La lección tiene como elementos multimedia las píldoras formativas Thot número 6 ¿Ciframos, codificamos o encriptamos? y número 9 ¿Por qué busca la criptografía la confusión y la difusión?, además del vídeo de la conferencia Adventures in Network Security impartida por la Dra. Radia Perlman en DISI 2008 y la lección 2 del intypedia, Sistemas de cifra con clave secreta.

Temario


APARTADO 1. DEFINICIONES Y CONCEPTOS BÁSICOS

1.1. ¿Ciframos, codificamos o encriptamos?

El estudio de la criptografía puede llegar a ser tan amplio y complejo como se desee, tanto que en muchas ocasiones no habrá más solución que hacer uso de avanzados conceptos de matemáticas y de algorítmica para una cabal comprensión de los algoritmos y protocolos de cifra y firma digital. A pesar de todo ello, lo cierto es que con algunas nociones básicas sobre matemáticas discretas como las que se irán entregando en estas lecciones, será relativamente fácil avanzar en el conocimiento de estas técnicas y no nos resultará tan difícil tener una idea general de su funcionamiento, de su importancia, de sus fortalezas y de sus debilidades.

En el fondo, lo que la mayoría de la gente necesita, incluso los futuros ingenieros que estudian seguridad en carreras universitarias, es poder conocer cómo funciona la criptografía y valorar, como ya se ha dicho, sus fortalezas y sus debilidades. Los ingenieros muy raras veces se enfrentarán a la necesidad de diseñar un algoritmo criptográfico, pero sí será muy frecuente que deban utilizar la criptografía correctamente como un elemento más en la cadena de elementos que proporcionan seguridad a los sistemas y a la información que se gestiona.

Vamos a pensar un poco:
¿Por qué crees que es posible tener un conocimiento básico de la criptografía sin necesidad de entrar en profundidades matemáticas? Ayuda: hay una gran cantidad de conceptos relacionados con la criptografía y esta es la parte más importante.

En este sentido podemos hacer nuestras las palabras de la Dra. Radia Perlman, una destacada investigadora de Sun Microsystems y conocida popularmente como la Madre de Internet, que en la conferencia "Adventures in Network Security" impartida en la ETS de Ingeniería de Sistemas Informáticos de la Universidad Politécnica de Madrid, invitada por el autor de este MOOC en el año 2008, nos dice a los profesores de seguridad:

Traducción y adaptación desde minuto 07:05 hasta el minuto 07:40:
"Voy a daros un ejemplo de cosas interesantes que deberían enseñarse (en la universidad). Sí, debéis enseñar criptografía porque ellos (los alumnos) deben conocerla, pero muchas veces las asignaturas se centran con demasiado énfasis en la teoría y en las demostraciones matemáticas. Y yo no creo que esa sea la parte realmente interesante. No creo que el mundo necesite más criptógrafos, lo que el mundo necesita son más personas que entiendan cómo usar la criptografía."

Figura 1.1. Adventures in Network Security, Radia Perlman en DISI 2008: minuto 07:05 al 07:40.

Ejercicio 1.1
Busca en Internet por Radia Perlman, descubre por qué se le llama la Madre de Internet y lee esta entrevista que le hizo el diario El País coincidiendo con su visita a Madrid. ¿Estás de acuerdo con sus afirmaciones?


1.2. Algunas definiciones en criptografía

Texto en claro:

Cualquier información que resulta legible y comprensible por sí misma. Se le asigna normalmente la letra M de Mensaje. Por ejemplo, M = En un lugar de La Mancha, o M = EN UN LUGAR DE LA MANCHA. Puede ser también cualquier archivo; no tiene por qué ser un texto.

Criptograma:

Texto que resulta de la cifra de cualquier información, que no es legible ni comprensible, salvo para el destinatario legítimo de la misma. Se le asigna normalmente la letra C de Criptograma. Por ejemplo el criptograma C = HPXPÑ XJDUG HÑDOD PFKD, que ser&íacute;a el resultado de cifrar el texto anterior de Cervantes con el algoritmo del César en módulo 27.

Cifrar y descifrar:

Procesos que permiten transformar un texto en claro en un criptograma y viceversa. Como es lógico, debería poder descifrar el criptograma sólo quien tenga la clave secreta y sea por tanto el destinatario de ese secreto.

Esteganografía:

Disciplina de la criptografía en la que se estudian técnicas que permiten el ocultamiento de mensajes u objetos, de modo que no se perciba su existencia. Aquí no nos interesa enmascarar el secreto como en la criptografía, sino ocultarlo en un medio o soporte público e inocuo para que éste pase desapercibido para todos, excepto para su destinatario.

Ejercicio 1.2
¿Cómo ocultarías el mensaje secreto REUNION A LAS DIEZ DE LA NOCHE EN LA PLAZA DE SIEMPRE mediante esteganografía en una página de un periódico, de forma que el destinatario mediante una clave pudiese encontrar ese mensaje oculto al leer dicho periódico? Como pista, lee el editorial de la Revista Española de Defensa (página 4) y observa lo que dice el acróstico que se forma con las primeras palabras de cada párrafo, con relación al accidente del YAK-42 ocurrido en el año 2003. Para tu información, EMAD significa Estado Mayor de la Defensa. ¿Sabías que Bin Laden hacía uso de estas técnicas esteganográficas para sus comunicaciones secretas? Saca tus propias conclusiones.

Criptoanálisis:

Estudio de los métodos que permiten romper los procedimientos de cifrado para recuperar la información original o la clave. Se trata de romper la cifra de un modo elegante y con el menor esfuerzo posible, que es totalmente contrario a lo que se denomina ataque por fuerza bruta que consiste en encontrar la clave mediante una búsqueda exhaustiva, bastante vulgar y que en realidad lo podría hacer cualquiera que cuente con el tiempo y paciencia suficientes.

Vamos a pensar un poco:
¿Por qué crees que se afirma en el párrafo anterior que criptoanalizar un algoritmo o una cifra es más elegante que atacarla por fuerza bruta? ¿Qué hace diferente al ataque?

Criptología:

Ciencia que estudia la criptografía y el criptoanálisis. Como muchos otros ejemplos en la vida, hablamos de cosas opuestas, del Yin y del Yang. La criptografía se dedica a crear sistemas de cifra seguros y el criptoanálisis a romper dichos sistemas o encontrar debilidades en ellos.

Criptógrafo o criptólogo:

Persona que se dedica al estudio de la criptología. También se le denomina criptógrafo a una máquina de cifrar.


1.3. No confundas cifrar con codificar y no encriptes

Codificar, es decir asignar un código a algo, es una acción estática en el sentido de que los valores que se asignan con ese código a sus elementos son siempre los mismos, nunca cambian. Por ejemplo, la letra A en código ASCII es el valor decimal 65 o en binario 01000001, y así será siempre, en cualquier país del mundo y en cualquier fecha. Lo mismo podemos decir de otros códigos como el código Morse, código Baudot, códigoBase 64, código de barras, código QR, etc.

Ejercicio 1.3
Nos encontramos escrito en un papel estos 8 caracteres: R2VuaWFs. ¿Verdad que parece un criptograma? Pues aunque lo parezca, no lo es. La cadena de caracteres R2VuaWFs es el resultado de codificar en Base 64 un conjunto de bits de un mensaje escrito en código ASCII. Lo que hace Base 64 es leer los bits del mensaje ASCII original de 6 en 6, y no de 8 en 8 o en bytes, que es como se hace en el código ASCII. Por lo tanto, si la cadena de 6 bytes 01000111 01100101 01101110 01101001 01100001 01101100 del mensaje original se lee de 6 en 6 bits y vemos su correspondencia en una tabla de código Base 64, obtenemos lo siguiente: 010001 = R; 110110 = 2; 010101 = V; 101110 = u; 011010 = a; 010110 = W; 000101 = F; 101100 = s. Pero leer esta cadena de bits de 8 en 8, de forma que aparezcan como se mostraba en el mensaje original, corresponderá a la acción de decodificar el mensaje R2VuaWFs representado en Base 64. Observa que decimos decodificar y no descifrar, así como mensaje en Base 64 y no criptograma. Busca en esta tabla de código ASCII extendido qué caracteres son estos últimos 6 bytes y obtendrás la respuesta a tu trabajo.

Por el contrario, cifrar es una acción dinámica en el sentido de que dependiendo de una clave, un mismo mensaje podrá convertirse en diferentes criptogramas. Una clave que lógicamente cambiará con el tiempo y que se recomienda sea de un solo uso.

Vamos a pensar un poco:
Una clave secreta de cifrado que creemos es de gran tamaño y por tanto con una buena fortaleza, se desea usar para la cifra de diferentes mensajes. Si esta clave es tan segura, ¿por qué se recomienda no obstante que se cambie de clave en cada cifra?

En países de Latinoamérica es común que a la operación de cifra se le llame encriptar; una manera de castellanizar la palabra en inglés encrypt. Por esta misma razón, en vez de descifrar se usa la palabra descriptar o decriptar, de acuerdo con decrypt en inglés. Pero no es correcto utilizar encriptar puesto que no lo recoge la Real Academia de la Lengua RAE y, con algo de humor, podría interpretarse como la acción de introducir a alguien dentro de una cripta.

Antes de pasar al siguiente apartado de esta lección, repasa todos estos conceptos en la píldora formativa Thoth 6 de la figura 1.2.


Figura 1.2. Píldora formativa Thot 6: ¿Ciframos, codificamos o encriptamos?


APARTADO 2. TÉCNICAS USADAS PARA LA CIFRA

2.1. Principios básicos de la cifra

Los algoritmos de cifra, tanto esta clásica que estudiamos en este MOOC como la moderna y actual que estudiaremos en un próximo MOOC, usan dos principios básicos para enmascarar el texto en claro y proteger el secreto de la información, convirtiéndola en un criptograma imposible de descifrar si no se conoce una clave. Estas técnicas son la difusión y la confusión. Dichos principios, que se usaban ya en los orígenes de la criptografía, son refrendados en 1949 por Claude Shannon en el artículo Communication Theory of Secrecy Systems.


2.2. Métodos de difusión

Como su nombre lo indica, la difusión pretende difundir las características del texto en claro en todo el criptograma, ocultando de esta forma la relación que existe entre el texto en claro y el texto cifrado.

Para lograr esta difusión, al texto en claro se le aplicarán operaciones de transposición o permutación de las letras en los sistemas clásicos, o bien caracteres, bytes o bloques de bytes en la cifra moderna, de manera que los elementos del mensaje aparecerán ahora totalmente dispersos o desordenados en el criptograma. Los sistemas que basan su cifra en este tipo operaciones se conocen como algoritmos de cifra por transposición.

Lo importante en este caso, y que en el fondo es la gran debilidad del sistema de cifra, es que tras aplicar una operación de transposición a un texto en claro, el criptograma tendrá exactamente los mismos elementos que aquel texto en claro, aunque lógicamente estarán en posiciones diferentes. Y Claude Shannon demostró a mediados del siglo pasado que todos los lenguajes tienen ciertas particularidades que los hace muy redundantes, de forma que hay letras que se repiten más que otras y grupos de dos, tres, cuatro y hasta cinco letras que se repiten también más que otros.

Las letras, también llamadas monogramas, tienen una frecuencia característica de presencia dentro de un texto de al menos unas decenas de palabras, y lo mismo sucederá por ejemplo con los digramas, esto es, grupos de dos letras juntas, los trigramas, etc. La figura 2.1 muestra estas frecuencias características para un texto en castellano de unos cuantos cientos de palabras, considerando sólo las 27 letras mayúsculas.


Figura 2.1. Frecuencias características del lenguaje español con 27 letras.

Para el lenguaje español con letras mayúsculas y sin contar el espacio en blanco, cuya frecuencia sería la mayor de todas si se tuviese en cuenta, las 9 letras más frecuentes y cuyo aporte estará por sobre el 5% en un texto son:

1) La letra E con un 13,7%
2) La letra A con un 11,8%
3) La letra O con un 9,2%
4) La letra S con un 8,0%
5) La letra I con un 6,9%
6) La letra N con un 6,7%
7) La letra R con un 6,7%
8) La letra L con un 5.3%
9) La letra D con un 5.2%

Observa que estas 9 letras, que son sólo la tercera parte (el 33%) del ese alfabeto de 27 elementos, suman sin embargo el 73,5% de un mensaje común. Dependiendo del tipo mensaje en cuestión y de su extensión, estas frecuencias pueden modificarse ligeramente, pero la tendencia mostrada se mantendrá.

Vamos a pensar un poco:
Con lo que has aprendido de la redundancia del lenguaje, ¿qué crees que es lo primero que debería hacer todo criptoanalista ante un criptograma? ¿Crees que tiene alguna relación con esta redundancia del lenguaje el hecho de que cuando comprimes un archivo con un programa del tipo zip, su tamaño en bytes se reduce normalmente a más de la mitad?

Además de este comportamiento característico de la frecuencia de las letras dentro de un texto, hay otros elementos en un lenguaje que permiten descubrir partes un texto cifrado como pueden ser, por ejemplo, algunas palabras frecuentes. Incluso aunque falten algunas letras por descifrar de un criptograma, el sentido común y la lógica de un lenguaje permiten adivinar muchas veces con éxito de qué trata el enigma al que nos enfrentamos. En el siguiente ejercicio veremos un ejemplo.

Ejercicio 2.1
Te encuentras este misterioso mensaje DLTCRPLGRMCRN que parece ser una cifra ya que al leerlo no le encuentras sentido. Al no tener ayuda alguna sobre el origen del mismo, puede resultar bastante difícil saber qué se oculta. Pero si nos dicen que se trata de una frase muy conocida a la que se le han quitado todas sus vocales, ya es una gran ayuda.
Intenta adivinarlo sin leer el párrafo siguiente...
Si ahora nos dicen que se trata del estribillo de una famosa y alegre canción que seguramente has bailado más de alguna vez, seguro que podrás rápidamente saber lo que dice.
De las 28 letras del texto en claro, hemos quitado nada menos que 15 vocales, cuya información al final no era tan necesaria, porque sabemos el entorno que rodea a la información y esto nos das pistas. Todo esto y mucho más estudió Shannon en sus trabajos, pero no lo veremos en este curso.


2.3. Métodos de confusión

Por su parte, la confusión pretende confundir al atacante, de manera que no le sea sencillo establecer una relación entre el criptograma y la clave de cifrado.

Para lograr esta confusión, aplicaremos ahora al texto en claro operaciones de sustitución de una letra por otra en criptografía clásica, o bien un carácter, byte o bloques de bytes en la criptografía moderna, por otros elementos similares, naciendo de esta manera los algoritmos de cifrado por sustitución.

Al sustituir uno o más elementos del texto en claro por uno o más elementos en el texto cifrado, a diferencia de la transposición en la sustitución los elementos del criptograma no serán los mismos que los del mensaje original.

En el siguiente ejemplo se ha sustituido de manera monoalfabética el texto en claro ESTE ES UN EJEMPLO DE SUSTITUCION mediante la cifra del César, esto es desplazando cada letra tres posiciones a la derecha de manera modular en un alfabeto de 27 letras.

Es decir, la letra A se sustituye por la letra D, la letra B se sustituye por la letra E, ... y la letra Z se sustituye por la letra C.

Figura 2.2. Ejemplo de cifrado con el algoritmo del César.

Observa que las letras del criptograma C son totalmente distintas a las del mensaje M. No obstante, al tratarse de una cifra monoalfabética (un término que estudiaremos en próximas lecciones), la letra más frecuente del mensaje que en este caso era la letra E con seis apariciones, se manifiesta con igual número de apariciones en el criptograma al ser cifrada como la letra H.

Ejercicio 2.2
Con el alfabeto de cifra de la tabla indicada más arriba, descifra el criptograma C = ELHPK HFKR. El hecho de que la cifra clásica se represente generalmente en bloques de cinco letras, ya se comentará en su momento.

En la píldora formativa Thoth 9 de la figura 2.3. encontrarás un repaso de todos estos conceptos. Antes de pasar al último apartado de esta lección, mira con atención este vídeo para fortalecer los conceptos y conocimientos alcanzados.

Figura 2.3. Píldora formativa Thot 9: ¿Por qué busca la criptografía la confusión y la difusión?


2.4. Sustituciones y permutaciones

Dado que un texto cifrado debe tener una apariencia totalmente aleatoria, deberá eliminarse cualquier relación estadística entre el mensaje original y su texto cifrado. Como bien se indica en la lección 2 de la Enciclopedia de la Seguridad de la Información intypedia disponible en YouTube, figura 2.4, es "como si un mono se hubiera sentado en una máquina de escribir".

Figura 2.4. Lección 2 intypedia. Sistemas de cifra con clave secreta.

Vamos a pensar un poco:
Como puedes apreciar en el vídeo de intypedia de la figura 2.4 (si no lo has visto, te recomiendo lo hagas ahora), salvo la primera de ellas que en su momento veremos, estas lecciones están dirigidas a quienes tienen ya algunos conocimientos de criptografía y seguridad en redes. Las lecciones 2 y 3 de este proyecto multimedia también de Criptored, se centran en la criptografía simétrica y la criptografía asimétrica, clasificación que sólo se aplica a la criptografía moderna y que será una temática que trataremos en posteriores cursos de Crypt4you. Reflexión: ¿estás de acuerdo con la pregunta que hace Bernardo a Alicia al final del vídeo?

Hemos visto que la permutación y la sustitución se usan indistintamnete para cifrar. Sin embargo, ambas por sí solas no son suficientes para cifrar de forma segura nuestros secretos y por ello usaremos las dos técnicas de manera simultánea en una misma cifra. La combinación de la sustitución y la transposición dispersa completamente la estructura estadística del mensaje sobre la totalidad del texto cifrado, dando así mayor fortaleza a la cifra y por tanto al secreto.

En los algoritmos modernos de cifrado simétrico o de clave secreta como por ejemplo AES, IDEA, DES y 3DES, se usan estas dos técnicas simultáneamente y se les conoce como cifradores de producto.

Ejercicio 2.3
Busca en Google qué significan las siglas (acrónimos) del último párrafo. Es decir, busca por algoritmo AES, algoritmo IDEA, algoritmo DES y algoritmo 3DES.


APARTADO 3. EVALUACIÓN DE LA LECCIÓN 3

3.1. Test de evaluación personal

En las siguientes 10 preguntas, elige la respuesta correcta. Sería muy recomendable que la primera vez que contestes este test lo hagas sin repasar la lección.

Para confirmar si tus respuestas son las correctas, accede y consulta las redes sociales de Crypt4you en twitter y en facebook. Las soluciones al test de esta tercera lección se publicarán en dichas redes sociales el 7 de marzo de 2016.

1. La relación más común que deberían tener los ingenieros con la criptografía es:

a) Diseñar nuevos algoritmos de cifra.
b) Conocer su funcionamiento, sus fortalezas y sus debilidades.
c) Diseñar nuevos algoritmos de criptoanálisis.
d) Dar un exhaustivo fundamento matemático a la criptografía.

2. Si un criptograma o sistema de cifra intentamos romperlo con elegancia, decimos que:

a) Estamos aplicando técnicas de criptoanálisis.
b) Estamos utilizando fuerza bruta.
c) Estamos trabajando con las estadísticas del lenguaje.
d) Estamos utilizando matemáticas discretas.

3. Si ocultamos un mensaje dentro de una fotografía, a eso se llama:

a) Criptoanálisis.
b) Criptología.
c) Esteganografía.
d) Poligrafía.

4. Al mensaje o documento que se va a cifrar se le llama comúnmente:

a) Texto en oscuro.
b) Texto cifrado.
c) Texto en claro.
d) Texto en blanco.

5. Para destacar las diferencias entre codificar y cifrar, decimos que:

a) Codificar es difícil y cifrar es fácil.
b) Codificar es lento y cifrar es rápido.
c) Codificar es dinámico y cifrar es estático.
d) Codificar es estático y cifrar es dinámico.

6. Para que la cifra sea más segura, habrá que aplicar indistintamente:

a) Métodos que produzcan difusión y métodos que produzcan dispersión.
b) Métodos que produzcan confusión y métodos que produzcan segregación.
c) Métodos que produzcan difusión y métodos que produzcan confusión.
d) Métodos que produzcan dispersión y métodos que produzcan segregación.

7. Para lograr la difusión usamos.

a) Técnicas de ofuscación.
b) Técnicas de permutación.
c) Técnicas de ocultamiento.
d) Técnicas de sustitución.

8. Para lograr la confusión usamos:

a) Técnicas de transposición.
b) Técnicas de permutación.
c) Técnicas de ocultamiento.
d) Técnicas de sustitución.

9. Las 4 letras más frecuentes del alfabeto español de 27 letras mayúsculas son en este orden:

a) A, B, E, O.
b) A, E, D, S.
c) A, E, O, I.
d) A, E, O, S.

10. Los sistemas de cifra modernos que usan sustitución y permutación se llaman:

a) Cifradores de diferencias.
b) Cifradores de producto.
c) Cifradores de suma.
d) Cifradores de bytes.


Ir a: [Portada c4y]    [Lección 2] [Índice] [Lección 4]