Ce ntro d e Estud io s d e Po stgr ad o
Centro de Estudios de Postgrado
Trabajo Fin de Máster
C RIPTOGRAFÍA SIMÉTRICA Y ASIMÉTRICA
Alumno/a: Navas Damas, Manuel
Tutor/a: Prof. D. José Manuel Fuertes García
Dpto: Informática
Resumen y palabras clave...6
Bloque I: Fundamentación epistemológica ...7
1 Introducción ...8
2 Antecedentes y contextualización ...10
2.1 Fundamentos de seguridad informática ...10
2.1.1 La tríada de la Confidencialidad, Disponibilidad e Integridad de la información ...12
2.1.2 Servicios de seguridad ...14
2.1.3 Los 7 pilares de la seguridad ...15
2.2 Historia de la criptografía ...16
2.2.1 Criptografía clásica ...17
2.2.2 Criptografía moderna ...26
3 La criptografía moderna ...29
3.1 Fundamentos de criptografía ...29
3.1.1 Criptografía y criptología ...29
3.1.2 Criptoanálisis...31
3.1.3 Esquema básico de un sistema de cifrado ...31
3.2 Criptografía simétrica ...33
3.2.1 Cifrado en flujo...35
3.2.2 Cifrado en bloque ...36
3.2.3 Algoritmo Rijndael (AES) ...41
3.3 Criptografía asimétrica ...43
3.3.1 Intercambio de clave de Diffie-Hellman ...46
3.3.2 Algoritmo RSA ...47
3.4 Comparación criptografía simétrica y asimétrica ...49
3.5 Criptografía híbrida ...50
3.6 Funciones hash ...51
3.7 Aplicaciones criptográficas ...53
3.7.1 Autenticación, certificados y firmas digitales ...53
3.7.2 Protocolos de comunicación segura ...56
3.7.3 Cifrado de sistemas de ficheros en SSOO...59
3.7.4 PGP ...59
4 Tendencias futuras ...61
5 Conclusiones ...63
Bloque II: Proyección didáctica ...65
6 Introducción ...66
7 Datos básicos ...67
8 Contextualización ...67
8.1 Características del Centro ...67
8.2 Contexto socioeconómico y características del alumnado ...69
9 Marco legislativo ...71
10 Competencia general ...71
11 Orientaciones pedagógicas ...71
12 Competencias profesionales, personales y sociales...72
13 Líneas de actuación ...73
14 Objetivos generales ...74
15 Resultados de aprendizaje ...74
16 Objetivos didácticos ...75
17 Contenidos ...75
18 Elementos transversales ...76
19 Interdisciplinariedad ...77
20 Metodología ...77
20.1 Organización del aula ...78
20.2 Tipos de agrupamiento...79
20.3 Materiales y recursos didácticos...80
20.4 Bibliografía de aula ...80
20.5 Actividades enseñanza-aprendizaje ...80
21 Evaluación y recuperación ...85
21.1 Criterios de evaluación ...86
· 3 ·
21.2 Procedimientos e instrumentos...87
21.3 Criterios de calificación ...88
21.4 Recuperación ...91
21.5 Evaluación del proceso de enseñanza...91
22 Medidas generales de atención a la diversidad ...92
23 Tabla resumen Unidad Didáctica ...94
24 Conclusiones de la Unidad Didáctica ...95
25 Referencias ...96
26 Leyes referenciadas ...98
27 Anexos ...99
27.1 Anexo I. Cuestionario de evaluación de la labor docente. ...99
27.2 Anexo II: Rúbricas ... 100
Índice de figuras
Figura 1.1. Envío de información secreta a través de un canal inseguro mediante
criptografía [1] ...8
Figura 2.1 Los 7 pilares de la seguridad de la información [1] ...16
Figura 2.2 Escítala empleada por los éforos espartanos para cifrar mensajes militares en el siglo V a. C. [4] ...16
Figura 2.3 Clasificación de los métodos de criptografía clásica [5] ...19
Figura 2.4 Frecuencias relativas expresadas en tanto por ciento de las letras del castellano [6] ...19
Figura 2.5 Alfabeto de cifra tras una decimación de A=2 ...21
Figura 2.6 Alfabeto de cifra tras una decimación de A=2 y un desplazamiento de B=4 .21 Figura 2.7 Proceso de cifrado (A) y descifrado (B) mediante el método de Vigenère. Elaboración propia. ...22
Figura 2.8 Alfabeto de cifrado de Hill [5]...24
Figura 2.9 Desglose del mensaje "DELAY OPERATIONS". Elaboración propia. ...24
Figura 2.10 Matriz de cifrado K y operación de cifrado de Hill. Elaboración propia. ...25
Figura 2.11 Matriz inversa de K y operación de descifrado de Hill. Elaboración propia.25 Figura 2.12 Métodos y algoritmos de criptografía moderna [10] ...28
Figura 3.1 Bifurcaciones de la Criptología. Elaboración propia. ...30
Figura 3.2 Esquema básico de un criptosistema [10] ...32
Figura 3.3 Esquema de criptografía simétrica [12] ...33
Figura 3.4 Esquema de un algoritmo de cifrado simétrico en flujo [10]...35
Figura 3.5 Esquema de un algoritmo de cifrado simétrico en bloque [11] ...37
Figura 3.6 Proceso de cifrado (A) y descifrado (B) de un algoritmo de cifrado en bloques operando en modo CBC [13] ...38
Figura 3.7 Esquema de un algoritmo de cifra en bloque. Elaboración propia. ...39
Figura 3.8 Esquema de cifrado (izquierda) y descifrado (derecha) Feistel para algoritmos de cifrado por bloques [14] ...41
Figura 3.9 Estructura del cifrado en el algoritmo Rijndael (AES) [17] ...43
Figura 3.10 Esquema de un criptosistema de clave asimétrica [11] ...44
Figura 3.11 Comparativa de ventajas y desventajas de la criptografía simétrica y asimétrica. Elaboración propia. ...50
Figura 3.12 Comparativa criptografía simétrica y asimétrica en cuanto a características, usos y algoritmos populares ...50
Figura 3.13 Esquema de generación (A) y comprobación (B) de la firma digital asociada a un mensaje [13] ...54
Figura 3.14 Ejemplo de la información contenida en el certificado digital del sitio web www.ujaen.es en mayo de 2022. Elaboración propia. ...55
· 5 ·
Figura 3.15 Flujo del protocolo SSL/TLS para establecer la clave de sesión entre cliente y
servidor [18] ...57
Figura 3.16 Fases de negociación y autenticación para abrir una Shell remota mediante SSH. Elaboración propia...58
Figura 3.17 Cifrado de un archivo mediante EFS en Windows 10. Elaboración propia. .59 Figura 3.18 Proceso de cifrado de un mensaje mediante PGP [16] ...60
Figura 7.1 Temporalización de la unidad didáctica ...67
Figura 8.1 Localización del IES Fingido ...68
Figura 8.2 Mapa de renta de la zona donde está situado el centro [https://elpais.com/economia/2021-04-29/el-mapa-de-la-renta-de-los-espanoles-calle- a-calle.html] ...70
Figura 8.3 Porcentaje de alumnos según su procedencia y según su género ...70
Figura 20.1 Organización del aula. Elaboración propia. ...79
Índice de tablas Tabla 7.1 Datos básicos y temporalización de la unidad didáctica ...67
Tabla 17.1 Contenidos de la Unidad Didáctica ...76
Tabla 20.1 Planificación de las sesiones de la UD ...85
Tabla 21.1 Porcentajes de los CE asociados a esta UD ...87
Tabla 21.2 Criterios de evaluación de la UD ...90
Tabla 24.1 Resumen UD ...94
Tabla 28.1 Rúbrica de evaluación de la actitud. La asistencia se tiene en cuenta restando 0.05 puntos por cada falta y 0.0025 por cada retraso injustificado ... 100
Tabla 28.2 Rúbrica de evaluación de memoria de prácticas. La calificación final de una memoria de prácticas empleando esta rúbrica se obtendrá sumando la ponderación de cada uno de los indicadores (se indica entre paréntesis junto al indicador) en base al nivel de desempeño conseguido. ... 100
Tabla 28.3 Rúbrica de evaluación de preguntas cortas. La calificación de la pregunta sobre 1 punto se ponderará con respecto a la resolución y la explicación aportada por el estudiante en un 80% y 20% respectivamente, siguiendo los niveles establecidos en esta rúbrica. ... 101
R ESUMEN Y PALABRAS CLAVE
Resumen
Este trabajo está dividido en dos secciones diferenciadas. En primer lugar, se desarrolla un estudio epistemológico sobre el tema principal del trabajo: criptografía simétrica y asimétrica, donde se expondrán brevemente algunos conceptos básicos sobre seguridad informática con el objetivo de conocer en cuales de las dimensiones básicas de la seguridad de la información incide directamente la criptografía. Después se contextualizará el desarrollo de la criptografía desde los inicios de la criptografía clásica, hasta llegar a la criptografía moderna. También se explicará en qué consisten los distintos tipos de algoritmos criptográficos modernos, identificando sus diferencias y mostrando cómo se complementan para consolidar la base de algunas aplicaciones fundamentales hoy en día. Por último, se indicará de forma breve cuales son las principales líneas de investigación en el ámbito de la criptografía para los próximos años.
La segunda parte del trabajo consistirá en proyectar los conocimientos definidos en el estudio previo sobre una unidad didáctica que se enmarcará en algunas de las etapas del sistema educativo no universitario español.
Palabras clave
Confidencialidad, Integridad, Autenticación, Criptografía simétrica, Criptografía asimétrica, Hash
Abstract
This work is divided into two distinct sections. First, an epistemological study on the main topic of the work is developed: symmetric and asymmetric cryptography, where some basic concepts on computer security will be briefly presented in order to know in which of the basic dimensions of information security cryptography has a direct impact.
Then, the development of cryptography from the beginnings of classical cryptography to modern cryptography will be contextualized. It will also explain what the different types of modern cryptographic algorithms consist of, identifying their differences and showing how they complement each other to consolidate the basis of some of today's fundamental applications. Finally, it will briefly indicate what are the main lines of research in the field of cryptography for the coming years. The second part of the work will consist of projecting the knowledge defined in the previous study on a didactic unit that will be framed in some of the stages of the Spanish non-university educational system.
Keywords
Confidentiality, Integrity, Authentication, Symmetric cryptography, Asymmetric cryptography, Hash
· 7 ·
B LOQUE I: F UNDAMENTACIÓN EPISTEMOLÓGICA
En este bloque se desarrolla el estudio epistemológico que proporcionará los conocimientos necesarios sobre el tema del Trabajo Fin de Máster, “Criptografía simétrica y asimétrica”, que posteriormente en el segundo bloque de este trabajo (véase Bloque II: Proyección didáctica) se utilizará para dar lugar a una unidad didáctica sobre el tema.
La criptografía simétrica y asimétrica constituye un tema completo (concretamente el número 69) del temario oficial de las oposiciones de Informática definido según la Orden EDU/3138/2011, de 15 de noviembre, por la que se aprueban los temarios que han de regir en los procedimientos de ingreso, accesos y adquisición de nuevas especialidades de los Cuerpos de Profesores de Enseñanza Secundaria y Profesores Técnicos de Formación Profesional, que concretamente se divide en los siguientes puntos:
69. Criptografía simétrica y asimétrica
69.1. Algoritmos de encriptación. Clasificación y características. Sistemas de cifrado.
69.2. Aplicaciones de la criptografía. Identificación digital. Firma electrónica.
Certificados digitales. Tipos de certificados.
69.3. Entidades certificadoras. Administración de entidades certificadoras.
Usos de los certificados digitales en redes privadas y en redes públicas Todos estos puntos se estudian a lo largo del presente estudio epistemológico, comenzando por un capítulo introductorio (cap. 1.Introducción) tras el cual se explicarán algunos conceptos básicos de seguridad informática que nos servirán para situar el contexto de la criptografía dentro del ámbito de la seguridad, para posteriormente pasar a realizar un breve repaso histórico, desde sus orígenes hasta la criptografía moderna (cap. 2.Antecedentes y contextualización).
A continuación, en el capítulo principal (cap. 3.La criptografía moderna) se desarrolla el tema del trabajo en su estado actual, centrándonos sobre todo en la clasificación de los sistemas de cifrado atendiendo al tipo de clave que utilizan, es decir la criptografía de clave secreta y de clave pública, mencionando todos los aspectos relacionados necesarios como las funciones hash o la criptografía híbrida y culminando con la revisión de algunas aplicaciones criptográficas que son esenciales hoy en día.
Finalmente se hará un breve repaso a las líneas de investigación abiertas en el campo de la criptografía (cap. 4.Tendencias futuras) y culminaremos este estudio con las conclusiones obtenidas (cap. 5.Conclusiones).
1 I NTRODUCCIÓN
Para empezar un trabajo cuyo eje principal trata sobre el cifrado de la información cabe preguntarse ¿por qué es necesario realizar un proceso que puede ser más o menos costoso en cuanto a tiempo y cómputo se refiere para después tener que rehacer este proceso cuando la información llega a su destino o debe ser recuperada? La respuesta puede ser obvia, pero antes de entrar en materia debemos razonar este hecho y definir por qué el ser humano lleva necesitando la criptografía desde sus orígenes allá por el siglo V a.C.
Es un hecho innegable que si queremos enviar un mensaje desde un extremo de la comunicación llamado “emisor” al otro extremo denominado “destinatario” de forma que sea confidencial debemos tener en cuenta la siguiente precaución. Dado que ese canal por el que se va a transmitir la información es por definición inseguro, debemos asegurarnos de que el destinatario (o destinatarios) será la única entidad que podrá acceder a la información. Por lo tanto, la única herramienta que el ser humano dispone hasta el día de hoy para proteger esa información que requiere permanecer confidencial es cifrar el mensaje, de tal forma que mientras la información se transporta a través de ese canal potencialmente inseguro cualquier persona no autorizada que pueda acceder al contenido de ese mensaje no pueda acceder a la información, sino que en su lugar visualice algo que no tenga sentido. En la Figura 1.1 se muestra el escenario que se acaba de describir.
Figura 1.1. Envío de información secreta a través de un canal inseguro mediante criptografía [1]
De esta forma, si se produce la interceptación de un mensaje por un intruso no produciría ningún tipo de daño a la información, es decir el secreto de la información no sería desvelado a entidades ilegítimas y además la integridad de dicha información en cuanto a su completitud y exactitud no se vería dañada. Por otro lado, la usurpación de identidad por un intruso, es decir que un agente externo se hiciera pasar por otro usuario emisor de una información, también se evita mediante la criptografía utilizando claves únicas durante el proceso de cifrado que sólo conozca el auténtico emisor de la información. Cabe recalcar que cuando hablamos de canal podemos referirnos a un sinfín de casos distintos, desde un emisario que transporta un pergamino montado a caballo con la información que debe entregar a un oficial en tiempos de guerra hasta una comunicación realizada en una red de computadoras.
· 9 ·
A lo largo de los capítulos que forman este trabajo vamos a entender cómo se llevan a cabo los procesos de cifrado y descifrado de la información, desde los primitivos algoritmos de cifra clásica (los cuales todos han sucumbido a día de hoy al criptoanálisis pero es interesante conocerlos porque utilizan técnicas básicas que siguen usándose en los algoritmos modernos) hasta la criptografía moderna actual, centrándonos en la clasificación que se realiza de los algoritmos dependiendo del tipo de clave que utilicen:
la criptografía simétrica y la criptografía asimétrica, sin olvidar las funciones hash que se emplean en conjunto con los anteriores en la mayoría de aplicaciones y protocolos de seguridad basados en estas técnicas criptográficas, de los cuales veremos algunos ejemplos también.
2 A NTECEDENTES Y CONTEXTUALIZACIÓN
2.1 FUNDAMENTOS DE SEGURIDAD INFORMÁTICA
Antes de entrar en materia en cuanto al tema principal del trabajo, se describirán algunos conceptos básicos sobre seguridad informática y se explicará cuál es exactamente el papel de la ciencia de la criptografía dentro de este campo, que en los últimos tiempos ha cobrado tanta importancia.
Es un hecho que la seguridad de la información ha cobrado un especial protagonismo en el panorama actual, no solo en el ámbito de la Informática, sino que es un tema de actualidad en la sociedad actual. En tan solo unas pocas décadas hemos pasado de una preocupación mínima por el tema de la seguridad (como puede evidenciarse del desarrollo de protocolos de comunicación como Telnet, en 1969, que no tuvo en cuenta para nada la privacidad de la información que se transmitía e incluso ni siquiera del proceso de autenticación) a tener una demanda exponencial de profesionales expertos en temas de seguridad informática, debido al bombardeo incesante de ataques informáticos que se producen en todo el mundo día tras día y de las numerosas normativas internacionales (por ejemplo la familia ISO-27001) que exigen a las empresas estar actualizadas y mantener unas buenas prácticas desde el punto de vista de la seguridad (existen diversas fuentes donde poder consultar las estadísticas que evidencian este hecho, e incluso existen mapas interactivos que nos muestran en tiempo real los ataques que se producen en todo el mundo [1]).
Cabe preguntarse ahora qué entendemos exactamente por el término seguridad informática. Aquí entran en juego distintos conceptos que pueden resultar similares a simple vista, pero son distintos en su enfoque: seguridad de la información, seguridad informática y ciberseguridad. Todos ellos parten de una misma premisa indiscutible: la información es el activo más valioso que tiene cualquier organización.
La seguridad de la información podría definirse como el conjunto de medidas y procesos que tratan de proteger los activos de información de una organización mediante la implantación de un sistema de prevención de riesgos que permita eliminar o mitigar el mayor número posible de todas las posibles amenazas que atenten contra estos activos.
No sólo se refiere a los activos digitales sino también a todos aquellos documentos físicos e incluso conocimientos de las personas que forman parte de la organización.
Podríamos decir que es el concepto más amplio de todos los que estamos revisando.
Por otro lado, cuando hablamos de seguridad informática nos referimos concretamente a la disciplina encargada de proteger la integridad, la privacidad y la disponibilidad de la información digital almacenada en los sistemas informáticos. Para lograr este objetivo se distinguen dos puntos de vista dentro de la seguridad informática, uno relacionado
· 11 ·
con la planificación de medidas de control y gestión de riesgos que permitan controlar las posibles amenazas que puedan surgir de un modo más pasivo (planes de seguridad, políticas, etc.), y otro más proactivo que busca la protección exclusivamente frente a los posibles riesgos derivados de ataques malintencionados contra el sistema. Este último punto de vista es la parte más técnica de la seguridad informática y se conoce habitualmente como ciberseguridad.
Según el Centro Criptológico Nacional (CCN) en su guía de seguridad (CCN-STIC-401) sobre glosario y abreviaturas, se define el término ciberseguridad como el conjunto de tareas que buscan fortificar el ciberespacio1 para protegerlo de todas aquellas actividades ilícitas realizadas por atacantes que buscan aprovechar las vulnerabilidades que puedan existir en su infraestructura o servicios que lo componen, con el objetivo principal de proteger la información en la medida de lo posible. La seguridad de la información se puede conseguir mediante tres enfoques distintos [2]:
• Detectando y enfrentándose a intrusiones
• Detectando, reaccionando y recuperándose de incidentes (resiliencia)
• Preservando la confidencialidad, disponibilidad e integridad de la información Nótese en esta última definición la aclaración “en la medida de lo posible” puesto que, como se suele decir, conseguir la seguridad de la información al 100% es un hecho imposible y al final se suele traducir en una balanza entre los intereses de las organizaciones (cuales de sus activos son imprescindibles y deben asegurarse con la mayor fortaleza) frente al coste que se está dispuesto a asumir para llevar a cabo las medidas necesarias, es decir lo que se suele conocer como una gestión de riesgos.
Nos queda claro hasta ahora que es imprescindible proteger la información dentro de cualquier organización, ahora bien ¿dónde encaja la criptografía dentro de estas definiciones? Pues como vamos a ver a continuación, la criptografía ayuda en el tercer grupo de acciones que hemos comentado en la definición de ciberseguridad: “Preservar la confidencialidad, disponibilidad e integridad de la información”, y más concretamente la criptografía nos permite proteger la confidencialidad y la integridad de la información.
Como cualquier activo, la información tiene un conjunto de vulnerabilidades susceptibles de ser explotadas por las amenazas causando un daño o perjuicio al activo y en consecuencia al propietario de dicho activo. Las amenazas que pueden afectar a la información pueden agruparse en tres grupos: interceptación, modificación e interrupción, que están ligadas estrechamente con lo que se conoce como la tríada CIA de la seguridad de la información.
1 Dominio global y dinámico compuesto por infraestructuras de tecnología de la información, incluyendo internet, redes de telecomunicaciones y sistemas de información [2].
2.1.1 La tríada de la Confidencialidad, Disponibilidad e Integridad de la información La famosa tríada de la Confidencialidad, Disponibilidad e Integridad de la información (conocida por sus siglas en inglés Confidentiality, Integrity, Availability: CIA) se refieren a las características que debe presentar la información para asegurar su protección frente a estos tipos principales de vulnerabilidades:
• Interceptación está relacionada con la Confidencialidad (C)
• Modificación está relacionada con la Integridad (I)
• Interrupción está relacionada con la Disponibilidad (A)
Vamos a explicar cada uno de estos tres principios básicos en seguridad informática atendiendo a las definiciones indicadas en la familia de certificación ISO-27001.
➢ Confidencialidad de la información
Según la ISO, la confidencialidad es la propiedad por la que la información no se pone a disposición o se revela a individuos, entidades o procesos que no sean los autorizados y tengan ese privilegio de conocer el secreto. Por tanto, el propósito de esta característica no es otro que conseguir que sólo aquellos usuarios o procesos autorizados tengan acceso a dicha información confidencial.
Evidentemente si la información es pública no es necesario proteger esta característica de la información. Por el contrario, si dicha información debe mantener algún tipo de secreto se deben aplicar los recursos necesarios para satisfacer esta propiedad.
El único medio que existe hoy en día en la práctica para lograr mantener el secreto de la información de tipo confidencial es la implementación de técnicas criptográficas, que puede ser:
• Cifrar la información mediante técnicas de criptografía simétrica si se está empleando un almacenamiento local de la información (es decir que no se va a transmitir por un canal a otro usuario)
• Intercambiar de forma segura una clave de sesión (que normalmente se empleará para realizar un cifrado con criptografía simétrica) mediante técnicas de criptografía asimétrica para llevar a cabo una comunicación segura a través de un entorno a priori inseguro (por ejemplo, la aplicación del protocolo SSL/TLS sobre HTTP para cifrar las comunicaciones entre cliente y servidor)
➢ Integridad de la información
Otro principio básico de la seguridad de la información es la integridad, que según la ISO es la propiedad de salvaguardar la exactitud y completitud del activo de información. O lo que es lo mismo nos permite garantizar que solo aquellos usuarios con los privilegios adecuados podrán generar, modificar o destruir la información.
· 13 ·
Para lograr esta característica de la información debemos recurrir nuevamente a la criptografía, ya que sólo mediante la aplicación de técnicas criptográficas podremos:
• Comprobar la exactitud y completitud de la información mediante el uso de hashes o funciones resumen.
• Utilizar lo anterior junto con otras técnicas que permiten autenticar al emisor o firmante de una información, dando lugar a lo que se conoce como firmas digitales. Este concepto es lo que se conoce como autenticidad, o lo que es lo mismo la integridad de la persona, es decir se busca por ejemplo asegurar que la persona que ha firmado un documento es quien dice ser o que cierto servidor al cual nos estamos conectando para realizar alguna tarea de cualquier tipo es el servidor correcto y no ha sido suplantado. En la práctica este hecho se consigue mediante el uso en conjunto de técnicas de criptografía asimétrica, funciones hash y la intervención de una autoridad de certificación externa.
➢ Disponibilidad de la información
Por último, la ISO 27001 define la disponibilidad como la propiedad o característica de los activos de información consistente en que las entidades o procesos autorizados tienen acceso a los mismos en el momento en que lo requieran. Lo más habitual es que la información pueda estar disponible 24 horas los 7 días de la semana, a no ser que la información tenga asociado cierto grado de secreto o confidencialidad más restrictivo y limitado a un cierto número cerrado de personas. Indistintamente del periodo durante el cual la información deba estar disponible, lo importante es que durante dicho periodo no surja ningún inconveniente que impida su acceso o consulta.
Al contrario que ocurría con la integridad y la confidencialidad, en este caso en la práctica no se puede garantizar la disponibilidad usando herramientas de criptografía.
Como consecuencia se debe recurrir a otro tipo de herramientas como protección de máquinas, fortificación de redes, controles de acceso… que permitan minimizar los riesgos relativos al acceso de la información. Es una problemática que tiene que ver más con la disciplina de las redes, por tanto, la criptografía no tiene nada que aportar para asegurar la característica de disponibilidad de la información.
Estos tres aspectos que hemos revisado son muy importantes y forman la base de cualquier aspecto de la seguridad informática, desde las más afines a la planificación y la gestión de activos, gestión de riesgos, aplicación de las normativas internacionales etc. Hasta las más técnicas como pueden ser el pentesting (hacking ético) o, como estamos comprobando, la criptografía. Podríamos concluir que la tríada CIA busca conseguir que la información correcta y completa (integridad) sea accesible por la/s entidad/es autorizada/s (confidencialidad) y en el momento adecuado (disponibilidad).
2.1.2 Servicios de seguridad
Además de estos tres principios de la seguridad que acabamos de revisar, también existen unos servicios importantes en cuanto a la información que van a permitir formar lo que más adelante definiremos como los pilares de la seguridad de la información. En concreto estos servicios son cuatro y los vamos a revisar brevemente a continuación.
➢ Servicio de autenticación
El servicio de autenticación no es más que el proceso mediante el cual se verifica que un usuario es quien dice ser, es decir se comprueba la identidad del usuario.
Actualmente se establecen tres métodos de autenticación:
• Métodos de autenticación basados en algo que conocemos, lo cual típicamente suele ser una contraseña, una frase de paso (passphrase), un código de acceso, un patrón de desbloqueo… en definitiva algo que cualquier persona pueda memorizar y mantener en secreto.
• Métodos de autenticación basados en algo que poseemos, que puede ser una tarjeta identificativa, una llave USB, un token, un smartphone, etc.
• Métodos de autenticación basados en algo que somos, normalmente asociados a rasgos biométricos medibles que permiten identificar a una persona, tales como la voz, huellas dactilares, nuestra forma de la cara, el fondo del iris, etc.
Cada uno de estos métodos se puede corresponder con un factor de autenticación. Hoy en día es habitual y además recomendable que las aplicaciones y servicios permitan configurar la autenticación mediante más de un factor (lo que se conoce como segundo (2FA) o tercer factor de autenticación (3FA)). Por ejemplo, para realizar una operación bancaria seguramente la aplicación móvil o web de la entidad bancaria con la que trabajemos en primer lugar nos pida una contraseña de acceso para gestionar nuestra cuenta y también a la hora de realizar operaciones como transferencias o contratos nos requiera un 2FA mandándonos un mensaje SMS a nuestro teléfono móvil o solicitando nuestra identificación biométrica en nuestro dispositivo.
➢ Servicio de control de acceso
Éste otro servicio está muy relacionado con el anterior, y se define como el medio para garantizar la autorización de los accesos a los activos de información en función de los requisitos de seguridad o la política de la organización.
Por ejemplo, es común que uno o varios servidores mantengan de forma distribuida una base de datos con logs de acceso por parte de los usuarios, incluyendo una relación entre los usuarios y una serie de permisos que controlan el acceso a distintos recursos.
Este esquema suele denominarse LDAP (del inglés Lightweight Directory Access
· 15 ·
Protocol). Otros sistemas de control de acceso habituales son Radius, Kerberos (empleado para controlar la autenticación en servidores SSH), CHAP, etc.
➢ Servicio de no-repudio
El tercero de los servicios que debemos conocer es el denominado servicio de no repudio. El no repudio no es más que la capacidad de comprobar con total seguridad que una entidad es la autora inequívoca de una información o de un hecho (por ejemplo, una transacción económica o una venta online), de forma que de ninguna manera ésta pudiera negar su autoría o desvincularse de ella, y al mismo tiempo que el receptor o destinatario tampoco podría renegar de la ocurrencia o no ocurrencia del hecho o la acción que se esté tratando (por ejemplo que el usuario que ha adquirido un producto en un comercio electrónico no pueda negar que ha sido quien lo ha adquirido). Se distinguen por tanto dos tipos de no repudio:
• En origen, que se refiere a que el emisor no podrá rechazar que fue autor del mensaje debido a que el destinatario tiene pruebas del envío.
• En destino, que de forma análoga se refiere a que el destinatario no puede negar que ha recibido el activo porque el emisor cuenta con una prueba de la recepción y existe una trazabilidad que demuestra que ha sido así.
➢ Servicio de trazabilidad
Por último, el servicio de trazabilidad, muy relacionado con el servicio anterior, se entiende como la creación, incorporación y conservación de la información sobre los movimientos y usos de activos. Es decir, si se ha hecho algún tipo de operaciones sobre una máquina (un servidor, por ejemplo) en algún lugar debe haber un registro donde estos cambios o accesos queden registrados. La finalidad de este servicio en el fondo es saber en todo momento quien, cuando y como ha tenido acceso mediante el seguimiento de los activos de información. Este tipo de mecanismos se utiliza mucho en especialidades de la seguridad informática como la informática forense, auditorías de máquinas, etc.
2.1.3 Los 7 pilares de la seguridad
Estos cuatro servicios de la seguridad informática que acabamos de ver se encargan de proteger la información y/o los activos o entornos donde se almacenan información.
Dichos servicios junto a los tres principios básicos (CIA) de la seguridad que hemos visto anteriormente forman lo que se conoce como los 7 pilares de la seguridad de la información, representados en la Figura 2.1.
Figura 2.1 Los 7 pilares de la seguridad de la información [1]
2.2 HISTORIA DE LA CRIPTOGRAFÍA
Se podría intuir que la criptografía es algo que nace a raíz del auge de las ciencias de la computación derivado de las necesidades de ésta para proteger la integridad o la confidencialidad de la gran cantidad de información que se genera, transmite o almacena constantemente gracias a las Tecnologías de la Información y la Comunicación (TIC). Nada más lejos de la realidad, puesto que la humanidad lleva utilizando la criptografía desde mucho tiempo atrás.
Concretamente hemos de remontarnos al siglo V antes de Cristo, cuando se descubrió que un pueblo griego denominado Esparta utilizaba en el ámbito militar un artilugio conocido como “escítala” (o escítalo) que mediante el uso de una tira de papel enrollada en forma de espiral sobre un cilindro con un diámetro determinado (ver Figura 2.2), se escribía un mensaje que se enviaba al destinatario mediante la tira de papel, que sin estar enrollada en el cilindro mostraba un mensaje a priori ilegible para cualquier observador externo. Así se lograba encriptar mensajes de forma que si el destinatario no poseía un cilindro con el mismo diámetro (podríamos decir que en ese caso este artilugio sería la clave para encriptar y desencriptar el mensaje) y conocía el método que se usaba para su encriptación (en este caso podríamos decir que el hecho de enrollar la tira de papel sobre el cilindro y escribir el mensaje sobre el papel enrollado sería el algoritmo de cifrado utilizado).
Figura 2.2 Escítala empleada por los éforos espartanos para cifrar mensajes militares en el siglo V a. C. [4]
La técnica que utilizaba este pueblo griego allá por el siglo V a.C. es lo que se conoce en criptografía como la transposición o permutación de caracteres, pues únicamente se cambian de posición unos con otros haciendo de esta forma que el mensaje sea ilegible a simple vista. Es destacable mencionar que esta técnica todavía hoy en día se sigue
· 17 ·
utilizando en algoritmos criptográficos modernos, solo que, en lugar de realizar permutaciones a nivel de los caracteres del alfabeto, se realiza a nivel de bits.
Durante todos estos siglos desde aquel artilugio criptográfico primigenio hasta llegar a nuestros tiempos la criptografía ha tenido un desarrollo muy importante y ha influido muchísimo en la civilización. Antiguamente era una ciencia (o un arte más bien en sus principios) ligada íntimamente a entornos de poder, como militares, estados, eclesiásticos, monárquicos, etc. Sin embargo, a partir de la segunda mitad del siglo XX se puede hablar de una democratización de la criptografía, asociado sobre todo al crecimiento exponencial de las redes de computadores y sobre todo de Internet, lo cual hacía necesaria la implementación de soluciones criptográficas para asegurar ciertas características de seguridad en las comunicaciones que se realizan por todo el mundo.
A continuación, vamos a dividir la historia de la criptografía en dos partes bien diferenciadas. Veremos lo que se conoce como criptografía clásica hasta llegar a los hechos que marcaron un antes y un después en el desarrollo de esta ciencia, lo que significó que todos los avances a partir de entonces pasaran a formar parte de una nueva época dentro del paradigma de la criptografía, denominada criptografía moderna.
2.2.1 Criptografía clásica
Podemos decir que la criptografía clásica engloba a todos aquellos sistemas criptográficos comprendidos desde el siglo V antes de cristo, comenzando por la escítala que hemos comentado previamente, hasta aproximadamente la mitad del siglo XX, coincidiendo con el final de la Segunda Guerra Mundial y una serie de acontecimientos destacados que veremos más adelante. En la Figura 2.3 puede encontrar una clasificación de los métodos de cifrado que componen esta etapa. Todos estos sistemas criptográficos se diseñaron y ejecutaron sin ordenadores, pues sabemos que la primera computadora de propósito general de la historia fue la máquina ENIAC que se completó allá por el año 1946.
Todas las operaciones de cifrado y descifrado de los algoritmos criptográficos que comprenden esta etapa se caracterizan porque pueden representarse mediante ecuaciones de matemáticas discretas o aritmética modular de una forma sencilla. Hoy en día los algoritmos que pertenecen a este periodo de la criptografía, que podríamos definir como rudimentarios y tremendamente simples, son totalmente inseguros y se pueden resolver fácilmente por fuerza bruta gracias a la capacidad de cómputo actual, pero desde un punto de vista histórico es interesante conocer cómo ha sido su evolución a lo largo del tiempo ya que muchas de las características y propiedades que utiliza la criptografía clásica se ven reflejadas y heredadas en los algoritmos de criptografía moderna, aunque orientadas a nivel de bits en lugar de a las letras del alfabeto.
Los sistemas de cifra clásica se clasifican principalmente atendiendo al tipo de operación que se le realiza al texto en claro durante el proceso de cifrado, bien sea la transposición con el fin de lograr la difusión, o la de sustitución para lograr en este caso la confusión.
La transposición o permutación de elementos de un mensaje consiste básicamente en recolocar o cambiar de posición dichos elementos, por ejemplo, al mensaje “hola” le podríamos realizar una permutación cambiando la letra “h” por la letra “a” y quedaría como “aolh”. Por otro lado, la sustitución consiste en cambiar elementos del mensaje por su correspondiente elemento en un alfabeto de cifrado.
En los algoritmos de transposición o permutación las operaciones se realizan mediante grupos, series, columnas o filas, y su importancia radica en que su uso en el proceso de cifrado aumenta la seguridad de los algoritmos al difundir las propiedades estadísticas del lenguaje. El ejemplo clásico de este tipo de operaciones es la escítala que hemos comentado anteriormente.
En los algoritmos de cifra por sustitución monoalfabética se realizan sustituciones de las letras del mensaje utilizando un único alfabeto de cifrado. Si se utilizan dos o más alfabetos hablaríamos entonces de algoritmos por sustitución polialfabética. Es importante recalcar que el alfabeto de cifra puede o no tener los mismos elementos que el alfabeto del texto en claro. Otra variación de este tipo de operaciones es utilizar operaciones monográmicas (es decir se cifra el mensaje letra a letra), o poligrámicas (usando un grupo de letras del mensaje). Algunos algoritmos muy conocidos de sustitución monoalfabética son el algoritmo del César, la cifra afín, Playfair y las matrices de Hill. Por lo general, en los algoritmos clásicos de cifrado se utilizaban el mismo alfabeto del texto en claro. El método que se seguía era el de asignar a cada letra del alfabeto un número (A → 0, B → 1, C → 2…). Además, no se solía tener en cuenta el carácter del espacio en blanco, ya que esto entregaría una información muy valiosa a cualquier criptoanalista que intente romper el sistema de cifrado. Todo esto evidentemente solo tiene sentido en los sistemas de cifra clásicos, ya que en la cifra moderna se trabaja sobre los bits y por tanto en ese caso sí se cifran todos los caracteres, incluidos espacios en blanco, retornos de carro y todos los caracteres no imprimibles de un documento.
Con respecto a los algoritmos de cifra por sustitución polialfabética, estos se clasifican como no periódicos (cifrador de Vernam) y periódicos (destacan la máquina enigma y el cifrador de Vigenère). La periodicidad se refiere al uso o ausencia de la repetición de una clave durante el cifrado. En la sustitución polialfabética monográmica el mismo elemento del texto en claro puede sustituirse por varios elementos distintos del alfabeto de cifrado, en función de una clave.
· 19 ·
Las operaciones de sustitución, como hemos comentado anteriormente, están ligadas al principio de confusión. Este principio se basa en confundir todo lo posible a un criptoanalista, de forma que si obtiene un criptograma no pueda deducir cual es la clave.
Figura 2.3 Clasificación de los métodos de criptografía clásica [5]
Estos principios básicos de difusión y confusión son fundamentales y se utilizan también en la criptografía moderna, normalmente mediante la combinación de ambos, lo que permite obtener cifrados más resistentes al criptoanálisis.
El principal punto débil de los sistemas de cifra clásica es la redundancia del lenguaje. El castellano, al igual que otros idiomas, presenta una gran redundancia (ver Figura 2.4).
Esta característica se puede aplicar para criptoanalizar textos cifrados con este tipo de algoritmos de cifra clásica.
Figura 2.4 Frecuencias relativas expresadas en tanto por ciento de las letras del castellano [6]
Debido a la redundancia del lenguaje, si un texto en claro se lee a saltos entre sus letras (tomando una letra cada X posiciones del texto), al contabilizar dichas letras se observará un comportamiento estadístico similar al del texto en claro original. En otras palabras, las letras más frecuentes en el texto en claro muy probablemente seguirán siendo las más frecuentes en el subconjunto tomado a partir del texto original. Esta deducción fue utilizada por el militar prusiano Friedrich Kasiski para romper el cifrado de Vigenère [3], cuyo método de cifrado permaneció sin romper casi trescientos años siendo el más longevo de la criptografía clásica.
A continuación, vamos a revisar brevemente algunos de los algoritmos de cifra clásicos más importantes.
➢ Cifrado del César
El primer uso documentado de un cifrado de sustitución monoalfabético con fines militares aparece en el libro La guerra de las Galias de Julio César. En dicho libro el emperador romano describe cómo envía un mensaje cifrado a Cicerón aplicando una sustitución simple a las letras del texto en claro de forma que el mensaje fuera inteligible para el enemigo. En este caso César sustituye las letras romanas por letras griegas (es decir el alfabeto de cifrado era el alfabeto griego) y además aplica un desplazamiento de tres espacios al alfabeto en claro. En el alfabeto castellano esto se traduciría en que cada letra se traduciría a la tercera letra siguiente en el alfabeto (A → D, B → E, así sucesivamente) y las tres últimas (X, Y, Z) se corresponderían con las tres primeras (A, B, C). Este cifrado César es por tanto un caso particular del cifrado por desplazamiento puro de la forma:
𝐶 = 𝑀 + 𝐵 𝑚𝑜𝑑 𝑁
Siendo N el número de letras del alfabeto (en castellano sería igual a 27) y B la constante de desplazamiento, que en el caso del cifrado César sería B = 3. Y en todo caso siempre se cumpliría que 1 ≤ B ≤ N–1 puesto que un desplazamiento de B = 0 o B = N significaría enviar el texto en claro.
Para descifrar un mensaje con cifrado César bastará con aplicar el algoritmo en su modo inverso usando un desplazamiento de B espacios en sentido contrario. Por propiedades matemáticas también será posible descifrar el criptograma desplazando el texto cifrado N–B espacios a la derecha.
𝑀 = 𝐶 − 𝐵 𝑚𝑜𝑑 𝑁 𝑀 = 𝐶 + (𝑁 − 𝐵) 𝑚𝑜𝑑 𝑁
A pesar de la sencillez de dicho algoritmo, en su época fue muy ingenioso y apropiado teniendo en cuenta que la mayoría de la población era analfabeta, con lo cual a pesar de su sencillez pudo utilizarse durante siglos. Hoy en día su seguridad es ínfima y su criptoanálisis es elemental, pues bastará con aplicar un ataque por fuerza bruta desplazando las letras del criptograma X veces hasta dar con el mensaje en claro.
➢ Cifra afín
Se conocen como cifradores por sustitución genéricos monográmicos monoalfabéticos a aquellos sistemas de cifra clásica que obtienen el alfabeto de cifrado a partir de la ecuación
𝐶 = 𝐴 ∗ 𝑀 + 𝐵 𝑚𝑜𝑑 𝑁
· 21 ·
En donde:
• A es una constante de multiplicación
• B es una constante de desplazamiento
• N es el cuerpo de cifra
Debido a que en inglés se utiliza la palabra “decimation” para esta operación, cuyo significado es aniquilar selectivamente o diezmar, es común que en la bibliografía en español se encuentre el término decimación aunque esta palabra no existe realmente en el diccionario de la RAE. Cuando la constante de desplazamiento (B) sea igual a 0 hablaremos de una cifra por decimación pura, y cuando la constante de decimación (A) es igual a 1 hablaremos de una cifra por desplazamiento puro, y si no se dan estas dos condiciones (es decir B ≠ 0 y A ≠ 1) hablaremos de una cifra afín.
Si a un alfabeto con N=27 se le aplica una decimación A=2 las letras se distribuyen ahora en saltos de dos espacios, debido a la multiplicación del código numérico asociado a cada letra por la constante A. En la siguiente Figura 2.5 se muestra este ejemplo.
Figura 2.5 Alfabeto de cifra tras una decimación de A=2
Si a este resultado se le añade un desplazamiento B=4 se obtiene el alfabeto que se representa en la Figura 2.6, para la ecuación de cifra C = 2 * M + 4 mod 27.
Figura 2.6 Alfabeto de cifra tras una decimación de A=2 y un desplazamiento de B=4
Hay que indicar que, debido a que se realiza la multiplicación del carácter a cifrar por un número, la constante de decimación A, será necesario por las propiedades de la aritmética modular que dicha constante tenga inverso multiplicativo en N, esto es que el máximo común divisor entre A y N sea 1. Por ejemplo, si trabajamos en módulo 27 será válida la ecuación de cifra C = 11 * M – 3 mod 27 porque el inverso de 11 en modulo 27 es igual a 5. Pero sin embargo no será válida la ecuación C = 6 * M – 3 mod 27, pues no existe ahora el inverso de 6 en modulo 27 (porque el mcd(6,27)
≠ 1), por lo cual podríamos cifrar un mensaje con dicha ecuación pero no seríamos capaces de descifrarlo, ya que la ecuación de descifrado de la cifra afín es la siguiente:
𝑀 = (𝐶 − 𝐵) ∗ 𝑖𝑛𝑣(𝐴, 𝑁) 𝑚𝑜𝑑 𝑁
Este sistema de cifrado sigue siendo muy débil hoy en día incluso frente a ataques por fuerza bruta, ya que el número de alfabetos de cifrado que se generan son muy pequeños (por ejemplo, para un alfabeto en modulo 27 como el castellano, tendremos
26 valores diferentes para la constante B y 17 valores distintos para la constante A, lo que da como resultado un total de 442 alfabetos de cifrado diferentes).
➢ Cifra de Vigenère
Este sistema de cifra fue propuesto por Blaise de Vigenère (químico, diplomático y criptógrafo francés nacido en 1523) en su libro Tratado de las cifras y maneras secretas de escribir [4], donde describe de una forma detallada y estructurada el sistema de cifra polialfabética más conocido y estudiado, basándose en trabajos previos de otros criptógrafos de prestigio como Alberti, Trithemius, Bellaso y della Porta.
El sistema de cifrado utilizaba lo que se conoce como tabla de Vigenère, que consiste en una matriz cuadrada con las n letras del alfabeto. Por ejemplo, para el alfabeto castellano, en la primera fila de la matriz se escriben todas las letras del alfabeto, desde la a hasta la z. En la segunda fila el alfabeto desplazado un espacio a la izquierda, en la tercera fila desplazado dos espacios y así sucesivamente hasta la última fila, en que el desplazamiento será igual a n–1.
El método de cifrado consiste en ir leyendo el texto en claro y la clave, letra a letra, en la primera fila y columna respectivamente. El resultado de la intersección entre la fila y columna será el elemento cifrado. Por ejemplo, si el mensaje es “HERMOSO” y la clave
“CIELO” en la columna de la letra H del texto en claro se busca la intersección con la fila C de la clave, dando como resultado el elemento J. A continuación, se repite el proceso con la letra E del texto en claro y la letra I de la clave, dando como resultado el carácter M, y así sucesivamente. Al ser la clave normalmente de menor longitud que el mensaje a cifrar, ésta se repetirá de forma cíclica hasta obtener el criptograma final, que para el ejemplo indicado sería “JMVWDUW”. La Figura 2.7 ilustra la operación de cifrado y descifrado del primer carácter del ejemplo propuesto. En el resto de los elementos del mensaje las operaciones se realizan de forma análoga, tal y como hemos explicado.
Figura 2.7 Proceso de cifrado (A) y descifrado (B) mediante el método de Vigenère. Elaboración propia.
· 23 ·
También se puede realizar esta operación mediante matemáticas discretas, simplemente sumando cada letra del texto en claro con su correspondiente letra de la clave, siempre en modulo n:
𝑐𝑖 = (𝑚𝑖+ 𝑘𝑖) 𝑚𝑜𝑑 𝑛
Para descifrar simplemente se realiza el proceso inverso, esto es si partimos del criptograma obtenido antes "JMVWDUW" y conocemos la clave “CIELO” buscaremos en la fila de la clave C la letra del criptograma J, siendo la letra posicionada en la primera fila de la tabla que coincida con la columna del elemento J el carácter del texto en claro original, en este caso la letra H. Esta operación se realiza con cada una de las letras del criptograma con su correspondiente letra de la clave, obteniendo al finalizar el mensaje en claro original “HERMOSO”.
Por supuesto también podemos descifrar mediante matemáticas discretas, usando la misma ecuación que hemos utilizado para cifrar, pero en vez de sumar los valores de los códigos correspondientes a la letra de la clave y del texto en claro, se realizara una resta pues es la operación inversa de la suma dentro del cuerpo Zn.
𝑚𝑖 = (𝑐𝑖− 𝑘𝑖) 𝑚𝑜𝑑 𝑛
El cifrado polialfabético elimina la relación directa proporcional que se observaba en la cifra monoalfebetica entre el texto en claro y el criptograma. Si se usa una clave con varios alfabetos diferentes muchas letras del criptograma tendrán una frecuencia similar, y por tanto no tiene sentido ahora intentar llevar a cabo un ataque mediante análisis de frecuencias como se realiza contra los sistemas monoalfabeticos. Para aumentar la fortaleza al criptoanálisis se puede usar una variante de Vigenère conocida como autoclave. En esta variante se utiliza la clave como hemos visto, pero cuando se llega al final de la clave en lugar de comenzar a usar de nuevo dicha clave de forma cíclica se empieza a usar el inicio del mensaje en claro como continuación de la clave de cifrado.
El cifrado de Vigenère y sus variantes (cifrado de Rozier, cifrado de Beaufort…), como hemos comentado anteriormente, resistieron casi trescientos años al criptoanálisis, hasta la publicación en 1863 del método de Kasiski que hemos comentado anteriormente. Por esta razón se le conoce como la cifra indescifrable.
➢ Cifra por matrices de Hill
Lester Hill fue un matemático neoyorquino nacido en 1961, que dedicó parte de su carrera a la investigación en el ámbito de la criptografía, siendo su aporte más conocido la publicación en 1929 del sistema de cifra que lleva su nombre, basado en operaciones con matrices. Se trata de una cifra por sustitución poligrámica mediante la multiplicación de matrices de la que también crea una máquina con engranajes y cadenas para operar con claves de 6 letras. Como la clave debía quedar fija por cada máquina, su sistema no
pudo competir con otras máquinas de cifrar de la época con mayor fortaleza, como era el caso de la máquina enigma que contaba con rotores ajustables e intercambiables.
Hill plantea el método de cifrado como un conjunto de cuatro ecuaciones, cifrando bloques de cuatro letras:
𝑦1 = 8𝑥1+6𝑥2+9𝑥3+5𝑥4 𝑚𝑜𝑑 26 𝑦2 =6𝑥1+9𝑥2+5𝑥3+10𝑥4 𝑚𝑜𝑑 26 𝑦3 =5𝑥1+8𝑥2+4𝑥3+9𝑥4 𝑚𝑜𝑑 26 𝑦4 =10𝑥1+6𝑥2+11𝑥3+4𝑥4 𝑚𝑜𝑑 26 Donde:
• xi es cada una de las cuatro letras del texto en claro.
• yi es el resultado de la cifra.
• Los valores kij forman la clave aleatoria k para cifrar cada bloque de cuatro letras.
Además, utiliza un alfabeto de 26 elementos con las letras mayúsculas del inglés distribuidas de una manera particular definida por Hill, como se muestra en la Figura 2.8.
Figura 2.8 Alfabeto de cifrado de Hill [5]
Así el mensaje “DELAY OPERATION” que originalmente utilizó su creador en su publicación vendrá expresado por estos cuatro vectores, en donde la letra U con índice 21 ha sido usada como relleno, como se muestra en la Figura 2.9.
D E L A Y O P E R A T I O N S U
x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4 x1 x2 x3 x4
20 10 16 05 11 03 01 20 06 05 24 18 03 07 12 21
Figura 2.9 Desglose del mensaje "DELAY OPERATIONS". Elaboración propia.
El primer bloque de cuatro letras se cifraría siguiendo la ecuación que hemos visto antes:
𝑦1 = 8 ∗ 20 + 6 ∗ 10 + 9 ∗ 16 + 5 ∗ 5 𝑚𝑜𝑑 26 = 25 = 𝑱 𝑦2 = 6 ∗ 20 + 9 ∗ 10 + 5 ∗ 16 + 10 ∗ 5 𝑚𝑜𝑑 26 = 02 = 𝑪 𝑦3 = 5 ∗ 20 + 8 ∗ 10 + 4 ∗ 16 + 9 ∗ 5 𝑚𝑜𝑑 26 = 03 = 𝑶 𝑦4 = 10 ∗ 20 + 6 ∗ 10 + 11 ∗ 16 + 4 ∗ 5 𝑚𝑜𝑑 26 = 14 = 𝑾
De forma análoga se procedería con el resto de bloques de letras, dando como resultado de la cifra del mensaje “DELAY OPERATIONS” el criptograma “JCOWZLVBDVLEQMXC”.
· 25 ·
Para descifrar yi con esta clave y encontrar los valores xi del mensaje se usará en este caso otro sistema de cuatro ecuaciones.
𝑥1 = 23𝑦1+20𝑦2+5𝑦3+1𝑦4 𝑚𝑜𝑑 26 𝑥2= 2𝑦1+11𝑦2+18𝑦3+1𝑦4 𝑚𝑜𝑑 26 𝑥3= 2𝑦1+20𝑦2+6𝑦3+25𝑦4 𝑚𝑜𝑑 26 𝑥4= 25𝑦1+2𝑦2+22𝑦3+25𝑦4 𝑚𝑜𝑑 26
Obsérvese que la clave para el cifrado (valores Kij) es diferente de la clave para el descifrado (Kij). Si la clave de cifrado era aleatoria, para obtener la clave de descifrado deberá obtenerse la matriz inversa K-1 a la matriz clave de cifrado K, ya que la operación de cifrado/descifrado de Hill se realiza por multiplicación de matrices, siguiendo las ecuaciones que se muestran en la Figura 2.10 y la Figura 2.11.
𝐾 = [
8 6 9 5
6 9 5 10
5 8 4 9
10 6 11 4
]
[ 𝑦1 𝑦2 𝑦3 𝑦4
] = [
8 6 9 5
6 9 5 10
5 8 4 9
10 6 11 4
] 𝑥 [ 𝑥1 𝑥2 𝑥3 𝑥4
] 𝑚𝑜𝑑 26
Figura 2.10 Matriz de cifrado K y operación de cifrado de Hill. Elaboración propia.
𝐾−1 = [
23 20 5 1
2 11 18 1
2 20 6 25
25 2 22 25
]
[ 𝑥1 𝑥2 𝑥3 𝑥4
] = [
23 20 5 1
2 11 18 1
2 20 6 25
25 2 22 25
] 𝑥 [ 𝑦1 𝑦2 𝑦3 𝑦4
] 𝑚𝑜𝑑 26
Figura 2.11 Matriz inversa de K y operación de descifrado de Hill. Elaboración propia.
En otras palabras, para cifrar y descifrar mediante el método de Hill se realizarán dos operaciones matriciales diferentes que se corresponden con las siguientes fórmulas:
𝐶𝑖𝑓𝑟𝑎𝑑𝑜: 𝑌 = 𝐾 ∗ 𝑋 𝑚𝑜𝑑 𝑁 𝐷𝑒𝑠𝑐𝑖𝑓𝑟𝑎𝑑𝑜: 𝑋 = 𝐾−1∗ 𝑌 𝑚𝑜𝑑 𝑁
La matriz inversa K-1 es por tanto aquella que multiplicada por la matriz K da como resultado la matriz identidad y se obtiene mediante la operación:
𝐾 ∗ 𝐾−1 = 𝐾−1 ∗ 𝐾 = [
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
]
𝐾−1 = (𝑎𝑑𝑗 𝐾)𝑡
det 𝐾 𝑚𝑜𝑑 𝑁
La cifra poligrámica de Hill requerirá por tanto una matriz clave K que tenga inversa en el cuerpo de cifra con el que se esté trabajando. Los valores kij serán números aleatorios que se encuentren dentro del módulo de cifra N (0 ≤ kij ≤ N-1). Además, la matriz K deberá cumplir las siguientes condiciones para que sea válida:
• No debe ser singular, es decir su determinante no puede ser 0 porque se encuentra en el denominador de la ecuación de la matriz inversa.
• El determinante de K no podrá tener factores en común con el módulo N porque en ese caso no existiría el inverso en el cuerpo de cifra.
Aunque el sistema de cifra de Hill puede llegar a tener espacios de clave inmensos, mayores incluso que los sistemas de cifra modernos, su talón de Aquiles es que no resiste un ataque de texto en claro conocido [6].
2.2.2 Criptografía moderna
El cambio de paradigma en la historia de la criptografía que originó el comienzo de lo que hoy en día se conoce como criptografía moderna, dejando atrás la criptografía clásica, surge en consecuencia de una serie de hitos destacados que marcaron un antes y un después en esta ciencia. En concreto estos hechos a los que nos referimos son los siguientes.
A finales de la década de los años cuarenta del siglo XX, un matemático norteamericano llamado Claude Shannon lleva a cabo unos estudios muy importantes que sentaron las bases de lo que se conoce como teoría de la información. Los estudios de Shannon concluyeron con la publicación de dos artículos: A Mathematical Theory of Communication [7] y Communication Theory of Secrecy Systems [8] que proporcionaron una consistencia matemática a la criptografía, con lo cual podríamos decir que a partir de este momento la criptografía pasa de ser un arte a una ciencia.
Otro hito muy importante es el diseño del algoritmo DES (Data Encription Standard) por un grupo de investigadores de la empresa IBM liderados por el ingeniero Hortz Feistel en el año 1974. Este hecho es importante porque es el primer algoritmo diseñado para su uso con computadores y orientado a un público civil, ya que anteriormente la criptografía estaba muy centrada en entornos militares o de poder (iglesia, monarquías, etc.). Este algoritmo por tanto es el primero que plantea la necesidad de utilizar métodos criptográficos en operaciones comerciales del entorno civil.
El último de los hitos que marcan el inicio de la criptografía moderna es la publicación en 1976 por parte de los investigadores de la universidad de Stanford Whitfield Diffie y Martin Hellman de un artículo llamado New directions in cryptography [9] donde se
· 27 ·
detalla un método que permite intercambiar una clave en un canal inseguro (por ejemplo, en lo que hoy en día conocemos por internet) y da lugar a lo que hoy en día se conoce como criptografía asimétrica o de clave pública. Este hecho cambió radicalmente la seguridad en las redes de computadores, puesto que podemos afirmar sin lugar a dudas que hoy en día Internet no sería un lugar seguro donde comunicarnos y realizar todo tipo de acciones (comerciales, bancarias y de otros tipos) si no existiese la criptografía de tipo asimétrica, puesto que el uso de este tipo de algoritmos junto con otras técnicas de encriptación como las funciones hash que veremos más adelante permiten llevar a cabo un intercambio de clave de forma segura entre un cliente y un servidor, confiando además ambos participantes en la autenticación de la otra parte de la comunicación.
Así pues, a partir de la aparición de la computación empiezan a surgir algoritmos criptográficos cuyo código es un programa binario y se ejecuta en computadoras digitales. El objetivo de la ciencia de la criptografía a partir de esta época y hasta nuestros días sigue siendo el mismo que el que tenía en la época clásica, aportar la confidencialidad a la información que la precise, pero a partir de este punto también aparece la preocupación por dos aspectos muy importantes a día de hoy, como son por un lado asegurar la integridad de la información (exactitud y completitud) y por otra parte también por la forma de confirmar la autenticidad del emisor de la información.
De hecho, sería difícil hoy en día concluir qué es más importante, si mantener el secreto de la información, la integridad o saber con total seguridad quien ha sido el autor de dicha información.
La criptografía moderna se puede clasificar según distintos criterios [10]:
A. Según el tipo de clave
1. Simétricos o de clave secreta2. Es aquella en la que se usa una única clave tanto para cifrar en el emisor como para descifrar en el destino. Debido a que se usa la misma clave en ambos extremos de la comunicación se conoce como un sistema simétrico.
2. Asimétricos o de clave pública. En este sistema cada usuario generará un par de claves: una pública y una privada. La clave privada solamente la conocerá y mantendrá en secreto el dueño del par de claves, mientras que la clave pública, como su nombre indica puede ser conocida por cualquiera. Lo importante de este sistema es que a partir de la clave pública sería muy difícil para cualquier atacante obtener la respectiva clave privada (por ejemplo, para el algoritmo RSA, tendría que resolver el
2 Normalmente en la bibliografía cuando se habla de clave secreta nos referimos a la clave de un sistema simétrico, mientras que cuando se habla de clave privada nos referimos a la parte privada de un par de claves de un sistema asimétrico.
problema de factorizar un número de 2048 bits en dos primos de 1024 bits cada uno, lo cual es totalmente impracticable para el cómputo que existe hoy en día en el mundo). En este caso se habla de criptografía asimétrica puesto que las claves que se usan en los extremos son distintas, por ejemplo, si se cifra un mensaje con la clave pública del destinatario dicho mensaje solo podrá ser descifrado con la clave privada de dicho destinatario, o bien si ciframos un mensaje con la clave privada de un usuario dicho mensaje solo podrá ser descifrado con su clave pública asociada. Estas dos situaciones se corresponden con las soluciones que aporta la criptografía asimétrica a los problemas del intercambio de clave y de la autenticación (conocido también como firma digital) respectivamente.
B. Según el tratamiento del mensaje o texto en claro
1. Cifrado en flujo (stream cipher). Si se realiza la cifra bit a bit (o a nivel de bytes) de forma secuencial. Podría considerarse una analogía a lo que se realizaba con el cifrado de Vigenère, en donde cifrábamos letra a letra, pero en criptografía moderna se cifra todo el código ASCII extendido completo incluyendo caracteres imprimibles y no imprimibles. Algunos algoritmos de este tipo son el A5, RC4 y ChaCha20.
2. Cifrado en bloque (block cipher). Similar a lo que se realizaba en criptografía clásica mediante el cifrado de Hill, pero en criptografía moderna se trabaja dividiendo el mensaje en bloques de algunos bytes (lo más común es 8 o 16 bytes). Los algoritmos de cifrado en bloque del tipo asimétrico se dividen a su vez en dos tipos, exponenciación y suma/producto. Algunos algoritmos que pertenecen a este grupo son DES, 3DES, IDEA, SERPENT o AES (de tipo cifrado simétrico) y DH, RSA, Elgamal, DSA, Mochila MH o los algoritmos de Curvas Elipticas (de tipo cifrado asimétrico).
Figura 2.12 Métodos y algoritmos de criptografía moderna [10]
· 29 ·
3 L A CRIPTOGRAFÍA MODERNA
Ahora que ya conocemos de donde procede la criptografía, cómo ha sido su evolución hasta nuestros días, y una vez hemos presentado brevemente el estado actual de esta ciencia es el momento de profundizar un poco más en su contexto más reciente.
En este capítulo vamos a revisar el estado actual de la ciencia de la criptografía, centrándonos principalmente en las dos variantes de la criptografía moderna en cuanto al tipo de clave utilizado se refiere, que como hemos introducido en la sección anterior se trata de la criptografía simétrica o de clave secreta y la criptografía asimétrica o de clave pública. Nos centraremos en explicar las bases de estos dos enfoques, analizando los distintos tipos de algoritmos criptográficos que se utilizan en ambos casos según sea el tratamiento que se realice al mensaje que se quiere transmitir, y desentrañaremos con cierto detalle algunos de los algoritmos más importantes hoy en día de cada uno de estos enfoques.
También comentaremos las características de las funciones resumen (hash) debido a que se suelen emplear constantemente en las soluciones criptográficas modernas en combinación con los algoritmos del tipo simétrico u asimétrico, para asegurar sobre todo la integridad de la información.
Algunas de estas aplicaciones de la criptografía más populares en los últimos tiempos se revisarán al final del capítulo. Pero antes de todo esto es vital que comencemos definiendo algunos conceptos básicos que se utilizan en criptografía y que por supuesto también se encontrarán a lo largo del presente trabajo.
3.1 FUNDAMENTOS DE CRIPTOGRAFÍA 3.1.1 Criptografía y criptología
Para empezar, debemos señalar que no es correcto hablar de la ciencia de la criptografía, puesto que en realidad la criptografía es una parte de la criptología que se encarga del cifrado de la información con el objetivo de mantener un secreto, por lo tanto, es más adecuado hablar de la ciencia de la criptología, aunque como normalmente nos estamos refiriendo a los algoritmos de cifrado de la información se suele hablar de criptografía.
Otra de las partes de la criptología que no trataremos en este trabajo es la denominada esteganografía, que consiste en la ocultación de información en un medio de forma que no se pueda ver a simple vista (por ejemplo, en esteganografía se estudia cómo se puede ocultar información en una imagen). Podríamos decir por tanto que la criptología es la ciencia que estudia cómo mantener un secreto cifrándolo mediante la criptografía u ocultándolo mediante la esteganografía. Por el contrario, se denomina criptoanálisis y estegoanálisis a las técnicas que intentarán romper el cifrado de la criptografía o