Descifrando la Criptografía
Criptografía
Bienvenido a este curso de criptografía. La criptografía es un método de protección de la información y las comunicaciones mediante el uso de códigos, de modo que solo aquellos a quienes está destinada la información puedan leerla y procesarla. El prefijo «cripta-» significa «oculto» o «bóveda» – y el sufijo «-grafía» significa «escritura».
En informática, la criptografía se refiere a técnicas de comunicación e información seguras derivadas de conceptos matemáticos y cálculos basados en reglas llamados algoritmos, para transformar los mensajes en formas difíciles de descifrar.
Estos algoritmos deterministas se utilizan para la generación de claves criptográficas, firma digital, verificación para proteger la privacidad de los datos, navegación web en Internet y comunicaciones confidenciales como transacciones con tarjetas de crédito y correo electrónico.
Haciendo un poco de historia
El término criptología proviene del griego krypto: ‘oculto’ y logos: ‘palabra’. Es la ciencia de la escritura secreta (criptografía), de la escritura oculta (esteganografía) y de su revelación no autorizada (criptoanálisis). Por lo que podemos representar estos tres términos como en la siguiente imagen.

Como ves, la criptología engloba a la criptografía y al criptoanálisis:
- La criptografía diseña algoritmos de cifrado para proteger la información.
- El criptoanálisis intenta romper dichos métodos de cifrado para recuperar la información original.
Existe otro término no menos importante que también debes manejar y son los criptogramas:

Los elementos que forman parte de un criptosistema son:
- M: que representa el mensaje o texto en claro, que por sí solo es legible o interpretable por cualquier que tenga acceso a él.
- C: que representa al criptograma, esto es el texto cifrado que se trasmitirá por el canal de comunicación, el cual por definición es inseguro y por ello es necesario cifrar la información.
- E: que representa la función de cifrado que se aplica al texto en claro. La letra E proviene del inglés Encrypt.
- D: que representa la función de descifrado que se aplica al texto cifrado para recuperar el texto en claro. La letra D proviene del inglés Decrypt.
- K: que representa la clave empleada para cifrar el texto en claro M, o bien para descifrar el criptograma C. En los sistemas modernos de cifra asimétrica o de clave pública, estas claves K serán diferentes en ambos extremos.
Hay que destacar que, a pesar de los siglos, los sistemas de cifra clásicos y los modernos o actuales se diferencian muy poco entre sí. En el fondo, hacen las mismas operaciones, si bien los primeros estaban orientados a letras o caracteres, y los segundos lógicamente a bits y bytes. Pero los principios en los que se basan para conseguir su objetivo de enmascarar la información siguen siendo los mismos, la difusión y la confusión.
- La difusión pretende difundir las características del texto en claro en todo el criptograma, ocultando así la relación entre el texto en claro y el texto cifrado, y se logra mediante técnicas de cifra por permutación o transposició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, y se logra mediante técnicas de cifra por sustitución.
Los cuatro servicios de seguridad que te proporciona la criptografía
La criptografía puede utilizarse para ayudar a proporcionar los siguientes servicios de seguridad:
- Confidencialidad: se ocupa de detectar y disuadir la divulgación no autorizada de información, vamos, de mantener los secretos en secreto: tengo información y no quiero que nadie más la descubra a menos que yo se la revele. Los algoritmos de cifrado abordan directamente el problema de la confidencialidad. Estos algoritmos aceptan una clave secreta y luego proceden a cifrar el mensaje original, conocido como texto claro, y lo convierten en una información ininteligible conocida como texto cifrado, de tal manera que sólo el destinatario previsto, y nadie más, puede leerlo.
- Integridad: se ocupa de detectar e impedir la modificación no autorizada de la información. Con criptografía se realiza una firma digital de la información y basta que un solo bit de los datos cambie para que la firma sea diferente. Esto permite a las partes que se comunican realizar comprobaciones de integridad con respecto a su información y asegurarse de que nada ha cambiado durante el trayecto o una vez almacenada. Las funciones de hash suelen constituir una pieza clave de las firmas digitales.
- Autenticación: es la propiedad de atribuir una identidad al remitente de un mensaje o al autor de una acción. Uno de los métodos criptográficos preferidos para autenticar a las partes es mediante certificados digitales. Se basan en dos bloques de construcción básicos: las funciones de hash y el cifrado de clave pública, que se verán más adelante.
- El no repudio asegura que el remitente no puede negar haber enviado el mensaje.

Una de las finalidades de la criptografía es mantener la confidencialidad del mensaje, esto es, garantizar que la información es accesible únicamente para aquellos autorizados a tener acceso. Otra es garantizar la integridad del criptograma, es decir, que éste no sufra ningún tipo de alteración o modificación. Así como garantizar la autenticidad del emisor y receptor, que se refiere a verificar que efectivamente se trata de las personas o entes que envían el mensaje o lo reciben.
FUNDAMENTOS DEL CIFRADO
Históricamente, el primer método utilizado para proteger la información consistía en esconder el texto secreto. Estaba oculto a plena vista. Este método se llama esteganografía.
La esteganografía (del griego στεγανος steganos, “cubierto” u “oculto”, y γραφος graphos, “escritura”) trata el estudio y aplicación de técnicas que permiten ocultar mensajes u objetos, dentro de otros, llamados portadores, de modo que no se perciba su existencia. Es decir, procura ocultar mensajes dentro de otros objetos y de esta forma establecer un canal encubierto de comunicación, de modo que el propio acto de la comunicación pase inadvertido para observadores que tienen acceso a ese canal.
Una forma de diferenciar la esteganografía con la criptografía común es que la criptografía solo cifra los archivos manteniendo el archivo original visible, pero al abrirlo mostrará una secuencia de caracteres que no permitirá su lectura y para ver su contenido original es necesario conocer la clave. En la esteganografía, puede verse un archivo con un formato diferente, y para conocer su contenido original será necesario conocer la clave y el software con el que se ocultó.
Esta ciencia ha suscitado mucho interés en los últimos años, especialmente en el área de seguridad informática, debido a que ha sido utilizada por organizaciones criminales y terroristas. No obstante, no se trata de nada nuevo, pues se lleva empleando desde la antigüedad, y tradicionalmente la han utilizado las instituciones policíacas, militares y de inteligencia, y también criminales o civiles que desean evadir el control gubernamental, especialmente en regímenes tiránicos.
La esteganografía clásica se basaba únicamente en el desconocimiento del canal encubierto utilizado, mientras que en la era moderna también se emplean canales digitales (imagen, video, audio y protocolos de comunicaciones, entre otros) para alcanzar el objetivo. En muchos casos, el objeto contenedor es conocido, y lo que se ignora es el algoritmo de inserción de la información en dicho objeto.
ESTEGANOGRAFÍA CLÁSICA Y MODERNA
Esteganografía “clásica”:Protección basada en desconocer el canal encubierto específico que se está usando. Esteganografía moderna: uso de canales digitales:
- Archivo de texto (páginas web, código fuente, etc.)
- Audio digital
- Imágenes y vídeo digitales
- Archivos ejecutables
- Protocolos de comunicaciones
Esteganografía – Wikipedia, la enciclopedia libre
Los principales tipos de esteganografía son:
- Pura
La esteganografía pura no requiere el intercambio de un cifrado como un stego-key. Se asume que ninguna otra parte tiene conocimiento de la comunicación.
- De clave secreta
Aquí la clave secreta (stego) se intercambia antes de la comunicación. Esto es más susceptible a la interceptación. La esteganografía de clave secreta toma un mensaje de cobertura e incrusta el mensaje secreto dentro de él mediante el uso de una clave secreta (stego-key). Solo las partes que conocen la clave secreta pueden revertir el proceso y leer el mensaje secreto.
- De clave pública
En este caso se utiliza una clave pública y una clave privada para una comunicación segura. El remitente utilizará la clave pública durante el proceso de codificación y solo la clave privada, que tiene una relación matemática directa con la clave pública, puede descifrar el mensaje secreto.
TÉCNICAS ESTEGANOGRÁFICAS
Existen muchas técnicas para ocultar información. A continuación explicamos las más habituales.
- Enmascaramiento
En este caso la información se oculta dentro de una imagen digital usando marcas de agua donde se introduce información, como el derecho de autor, la propiedad o licencias. El objetivo es diferente de la esteganografía tradicional, lo que se pretende es añadir un atributo a la imagen que actúa como cubierta. De este modo se amplía la cantidad de información presentada.
- Algoritmos de la compresión de datos
Esta técnica oculta datos basados en funciones matemáticas que se utilizan a menudo en algoritmos de la compresión de datos. La idea de este método es ocultar el mensaje en los bits de datos menos importantes.
- Métodos de sustitución
Una de las formas más comunes de hacer esto es alterando el bit menos significativo (LSB). En archivos de imagen, audio y otros, los últimos bits de información en un byte no son necesariamente tan importantes como los iniciales. Por ejemplo, 10010010 podría ser un tono de azul. Si solo cambiamos los dos últimos bits a 10010001, podría ser un tono de azul que es casi exactamente igual.
Esto significa que podemos ocultar nuestros datos secretos en los dos últimos bits de cada píxel de una imagen, sin cambiar la imagen de forma notable. Si cambiamos los primeros bits, lo alteraría significativamente. El método del LSB funciona mejor en los archivos de imágenes que tienen una alta resolución y usan gran cantidad de colores. En caso de archivos de audio, favorecen aquellos que tienen muchos y diferentes sonidos que poseen una alta tasa de bits.
Además, este método no altera en absoluto el tamaño del archivo portador o cubierta (por eso es «una técnica de sustitución»). Posee la desventaja de que el tamaño del archivo portador debe ser mayor al mensaje a embeber; se necesitan 8 bytes de imagen por cada byte de mensaje a ocultar; es decir, la capacidad máxima de una imagen para almacenar un mensaje oculto es de su 12,5%. Si se pretende emplear una mayor porción de bits de la imagen (por ejemplo, no solo el último, sino los dos últimos), puede comenzar a ser percibible al ojo humano la alteración general provocada.
ESTEGANOGRAFÍA SEGÚN EL MEDIO
Dependiendo de la naturaleza del objeto de cobertura (objeto real en el que se incrustan datos secretos), la esteganografía se puede dividir en varios tipos. Exploremos cada uno de ellos.
DOCUMENTOS
La esteganografía de texto oculta información dentro de los archivos de texto. Implica cosas como cambiar el formato de texto existente, cambiar palabras dentro de un texto, generar secuencias de caracteres aleatorias o usar gramáticas libres de contexto para generar textos legibles. Varias técnicas utilizadas para ocultar los datos en el texto son:
- Método basado en formato
- Generación estadística y aleatoria
- Método lingüístico
IMÁGENES
Ocultar los datos tomando el objeto de portada como imagen se conoce como esteganografía de imagen. En la esteganografía digital, las imágenes son una fuente de cobertura ampliamente utilizada porque hay una gran cantidad de bits presentes en la representación digital de una imagen. Hay muchas formas de ocultar información dentro de una imagen. Los enfoques comunes incluyen:
- Inserción de bits menos significativa
- Enmascaramiento y filtrado
- Codificación de patrón redundante
- Cifrar y dispersar
- Codificación y transformación del coseno
VÍDEO
En la esteganografía de video puede ocultar tipos de datos en formato de video digital. La ventaja de este tipo es que se puede ocultar una gran cantidad de datos en su interior y el hecho de que es un flujo de imágenes y sonidos en movimiento. Puedes pensar en esto como la combinación de esteganografía de imagen y esteganografía de audio. Dos clases principales de video esteganografía incluyen:
- Incrustar datos en video sin comprimir y comprimirlos más tarde
- Incrustar datos directamente en el flujo de datos comprimidos
AUDIO
En la esteganografía de audio, el mensaje secreto está incrustado en una señal de audio que altera la secuencia binaria del archivo de audio correspondiente. Ocultar mensaje secretos en digital es un proceso mucho más dificil en comparación con otros, como la esteganografía de imágenes. Los diferentes métodos de esteganografía de audio incluyen:
- Codificación de bits menos significativos
- Codificación de paridad
- Codificación de fase
- Espectro ensanchado
Este método oculta los datos en archivos de sonido WAV, AU e incluso MP3.
OTROS ARCHIVOS
Uno de los métodos más fáciles de implementar es el de inyección o agregado de bytes al final del archivo. Esta técnica consiste, esencialmente, en agregar o adosar al final de un archivo, de cualquier tipo, otro archivo que será el contenedor del «mensaje a ocultar», también de cualquier tipo. Esta metodología es la más versátil, pues permite usar cualquier tipo de archivo como portador (documentos, imágenes, audio, vídeos, ejecutables, etc) y añadir al final del archivo contenedor el «paquete enviado», que es otro archivo, también de cualquier tipo.
ESTEGANOGRAFÍA EN INTERNET Y REDES SOCIALES
Hoy en día todos (o casi) utilizamos al menos, una red social, como Twitter, Facebook o Instagram, entre otras muchas. Esto convierte a estos canales de comunicación en los transportes ideales de todo tipo de información, un medio de interconexión fácil de usar y con capacidad de llegada a múltiples destinatarios, a cualquier parte del mundo. A través de las redes sociales también es posible enviar información de forma completamente inadvertida. Esto es: utilizando esteganografía informática. No es fácil hacerlo, pues tienen sus propios algoritmos de detección de código oculto, amén de otras técnicas de inserción, como el cambio de resoluciones de imágenes, una vez subidas a la plataforma, etc. Pero esto no quiere decir que sea imposible conseguirlo
ALGUNAS HERRAMIENTAS PARA DESCIFRAR ESTEGANOGRAFÍA
STEGDETECT
Es una herramienta de esteganálisis común. Stegdetect puede encontrar información oculta en imágenes JPEG utilizando esquemas de esteganografía como F5, Invisible Secrets, JPHide y JSteg. También tiene una interfaz gráfica llamada Xsteg. STEGO SUITE
Se compone de tres productos. Stego Watch es una herramienta de esteganografía que busca contenido oculto en archivos de imagen o audio digitales. Stego Analyst es un analizador de archivos de imagen y audio que se integra con Stego Watch para proporcionar un análisis más detallado de los archivos sospechosos y Stego Break es un descifrador de contraseñas diseñado para obtener la contraseña de un archivo que contiene esteganografía.
ILOOK INVESTIGATOR
Es una herramienta de análisis forense utilizada por miles de laboratorios de aplicación e investigadores de todo el mundo para la investigación de imágenes forenses creadas por diferentes utilidades de imágenes.
ENCASE
EnCase cuenta con una herramienta de análisis forense que permite a los investigadores gestionar fácilmente grandes volúmenes de pruebas informáticas y ver todos los archivos relevantes, incluidos los archivos «eliminados», la holgura del archivo y el espacio no asignado.
La solución automatiza eficazmente los procedimientos de investigación básicos, reemplazando procesos y herramientas arcaicos, que requieren mucho tiempo y costes.
En EnCase, los investigadores deben identificar y hacer coincidir el valor hash MD5 de cada archivo sospechoso. Deben importar o construir una biblioteca de conjuntos hash (en este caso, un software de esteganografía) con la función de biblioteca en EnCase. El hash identificará coincidencias de archivos stego. Además, los investigadores deben tener cuidado al crear conjuntos de hash para descubrir esteganografía, para prevenir falsos positivos. Por ejemplo, los investigadores deben utilizar conjuntos de hash seguros para filtrar archivos inofensivos de su investigación
CLASIFICACIÓN DE LOS SISTEMAS CRIPTOGRÁFICOS

La criptografía se divide en dos ramas principales:
- Criptografía simétrica o de clave secreta. Lo que la gente asume que es la criptografía: cifrar y descifrar información usando la misma clave secreta. Por esta razón también se conocen como sistemas simétricos.
La clave debe ser secreta y conocida tanto por el emisor como por el receptor, y únicamente por ellos. Este es un problema que no resulta tan sencillo de resolver. Para que estos sistemas funcionen correctamente se asume que previamente ambos interlocutores se han puesto de acuerdo en la clave a utilizar o que han hecho uso de alguna metodología de distribución de claves que ha hecho llegar la clave de forma segura a ambos interlocutores.
Toda la criptografía desde la antigüedad hasta 1976 se basó exclusivamente en algoritmos simétricos. El cifrado simétrico todavía se utiliza ampliamente, especialmente para el cifrado de datos y la comprobación de la integridad de los mensajes. - Criptografía asimétrica o de clave pública. En 1976, Whitfield Diffie, Martin Hellman y Ralph Merkle introdujeron un tipo de cifrado totalmente diferente y revolucionario. En la criptografía de clave pública, cada usuario posee una pareja de claves: una privada y otra pública, por ello también se denominan sistemas asimétricos. En estos sistemas no es necesario un procedimiento de compartición de clave.
Los algoritmos asimétricos se utilizan para aplicaciones como el cifrado de datos, la firma digital y el acuerdo de claves.
Píldora formativa 27: ¿Qué es mejor, la criptografía simétrica o la asimétrica?
A su vez, los algoritmos de cifrado simétrico se subdividen en dos grupos, cifrado en flujo y cifrado en bloque:
- Los algoritmos de cifrado en flujo cifran de uno en uno los caracteres individuales. En los sistemas clásicos generalmente esta transformación se aplicaba sobre los caracteres del alfabeto en el que estaba escrito el mensaje, sin embargo hoy en día normalmente se aplica sobre dígitos binarios (bits), de un mensaje de texto claro, utilizando una transformación de cifrado que varía con el tiempo.EJEMPLOS DE CIFRADORES EN FLUJOLos cifradores en flujo se utilizan a menudo por su velocidad y simplicidad de implementación en hardware y en aplicaciones en las que el texto claro llega en cantidades de longitud desconocida, como una conexión inalámbrica segura o una llamada de teléfono. Se utilizan ampliamente en los protocolos y productos de seguridad actuales.
Algunos ejemplos ampliamente usados son:- A5/1 es una familia de cifradores en flujo utilizados para cifrar comunicaciones GSM. Es el estándar europeo para los teléfonos móviles digitales. Se utiliza para cifrar el enlace del teléfono a la estacién base. El estándar A5/1 fue creado en 1987, pero sólo se publicó a finales de los años 90 después de que cayera ante el reversing. Los ataques aparecieron a principios de la década de 2000 y A5/1 fue roto finalmente de una manera que permite el descifrado real (no solo teórico) de las comunicaciones cifradas.
- PKZIP es el algoritmo de cifrado incorporado en el programa de compresión de datos PKZIP.
- RC4 es un cifrado en flujo de tamaño variable desarrollado en 1987 por Ron Rivest para RSA Data Security, Inc. RC4 fue usado en docenas de productos comerciales de criptografía, en el protocolo de cifrado WEP en redes WiFi, en el protocolo de cifrado de tráfico web SSL/TLS, etc. Hoy en día ya no se utiliza debido a muchos problemas de seguridad descubiertos a lo largo de los años. Ha sido reemplazado por RC6.
- Content Scramble System (CSS) es un sistema utilizado para proteger las películas en discos DVD. Utiliza un cifrado en flujo, llamado CSS, para cifrar el contenido de las películas. El CSS fue diseñado en los años 80 cuando el cifrado exportable se restringía a claves de 40 bits. Como resultado, CSS cifra las películas usando una clave secreta de 40 bits. Además, el cifrado en flujo CSS es particularmente débil y puede ser roto en mucho menos tiempo que una búsqueda exhaustiva en las 240 claves.
- Salsa20 y ChaCha son dos cifrados en flujo diseñados por Daniel J. Bernstein para su implementación eficiente en software. ChaCha20 fue seleccionado por Google para reemplazar a RC4 en TLS. También se utiliza en protocolos de comunicación como OpenSSH, IKE, IPsec y algunas VPNs.
- Trivium fue desarrollado para ser rápido en hardware y razonablemente eficiente en software.
- Por el contrario, los algoritmos de cifrado en bloque tienden a cifrar simultáneamente grupos de caracteres (bloques) de un mensaje de texto claro. En este tipo de cifrado, el texto claro se divide en bloques de igual longitud para ser cifrados bloque a bloque. Típicamente, se utiliza un tamaño de bloque de 64 o 128 bits. Normalmente, la longitud del texto claro original no será un múltiplo exacto del tamaño del bloque, lo que exige recurrir a esquemas de relleno: los bits restantes hasta completar el tamaño de bloque se rellenan (padding) con bits extra siguiendo algún tipo de convención
| ¿Y si la longitud del texto es múltiplo del tamaño de bloque? Entonces, no se rellena, ¿verdad? Pues no. En ese caso, se añade un bloque de relleno completo, con sus 16 bytes establecidos al valor 0×10. Para evitar incertidumbre, siempre hay relleno. |
EJEMPLOS DE CIFRADORES EN BLOQUE
Data Encryption Standard (DES) fue desarrollado en la década de 1970. Aunque su corta longitud de clave, de 56 bits, lo hace demasiado inseguro para las aplicaciones actuales, ha sido muy influyente en el desarrollo de la criptografía moderna. El DES no es débil por sí mismo, sino por su clave corta, de tan solo 56 bits. Esta limitación condujo a utilizar variantes del algoritmo con claves más largas, como por ejemplo Triple DES (o 3DES), con una clave de 168 bits.
En 2001, DES fue sustituido por el algoritmo seleccionado como Advanced Encryption Standard (AES), también conocido por su nombre original Rijndael, con tres longitudes de clave diferentes: 128, 192 y 256 bits. Además de estos dos algoritmos, existen cientos de ellos. Entre los que se consideran seguros hoy y en el futuro previsible destacan: Camellia, Serpent, etc.
Por si no había quedado claro, estos algoritmos se caracterizan por:
- Ser muy rápidos, pudiendo alcanzar velocidades de hasta 1 GB/s, dependiendo de la implementación en software y del
- procesador del dispositivo.
- Requerir claves cortas, por ejemplo, de 128 o 256 bits. Así que puedes encontrar el cifrado simétrico en aplicaciones que requieran alta velocidad de cifrado y claves cortas como, por ejemplo:
- Herramientas de comunicación, como Whatsapp, Apple Messages o Zoom.
- Herramientas de archivo y compresión.
- Herramientas de cifrado de archivos.
- Encryption File System (EFS) en Microsoft Windows proporciona cifrado a nivel de Sistema de archivos.
- Cifrado de discos y particiones, como BitLocker en Windows o FileVault en Mac OS X.
- Seguridad para las comunicaciones en redes de área local, como en el estándar IEEE 802.11i.
- El nuevo estándar de seguridad WiFi, WPA3, utiliza AES con 256 bits de clave.
- Protocolos de comunicaciones seguras, como el TLS utilizado por ejemplo en páginas web seguras con HTTPS.
- Ransomware: obviamente, para cifrar lo archivos de un disco duro para exigir su rescate, nada como la criptografía simétrica.
PRINCIPIOS BÁSICOS
En la criptografía se han empleado habitualmente una serie de operaciones para realizar transformaciones en el texto y de esta forma cifrarlo para que fuera ininteligible para cualquier persona a la que no fuera dirigido el mensaje secreto.
Dos de estos principios básicos son la sustitución y la transposición.
SUSTITUCIÓN
La sustitución consiste en establecer una correspondencia entre el alfabeto en el que está escrito el mensaje y otro alfabeto, que no tiene necesariamente que ser el mismo que el alfabeto original. De esta manera, se van sustituyendo los caracteres del mensaje original por el correspondiente asignado en el alfabeto de salida. Para descifrar el mensaje el receptor debe conocer cuál es la correspondencia y hacer la sustitución inversa para recuperar el texto original.
Un ejemplo de este tipo de cifrado es el famoso cifrado César.
Una de las debilidades de la sustitución es que la frecuencia de aparición de cada letra en el mensaje original se refleja en el criptograma. Esto lo hace débil ante un ataque de Análisis de frecuencias . Este tipo de ataque se basa en la frecuencia con la que aparecen los caracteres en los diferentes idiomas. De esta manera, conociendo las letras de mayor frecuencia del alfabeto utilizado se puede deducir la clave.
TRANSPOSICIÓN
La transposición consiste en barajar los símbolos del mensaje original y colocarlos en distinto orden con el objeto de hacer el mensaje ininteligible. En este caso los símbolos del criptograma son los mismos que los del mensaje original pero descolocados. Es necesario que el receptor conozca la transposición para recolocar los símbolos en el orden original y reconstruir el mensaje
La clave secreta es el número de letras en cada grupo y el orden en el que se colocan.
La escítala lacedemonia, que veremos en el siguiente apartado, es un sistema de cifrado por transposición.
