La criptografía es una técnica para asegurar la información y la comunicación utilizando un conjunto de cálculos basados en reglas llamados algoritmos y algunos conceptos matemáticos para que sólo la persona adecuada pueda entenderlo.

Es útil para impedir el acceso no autorizado a la información.

La palabra «criptografía» deriva del griego kryptos, que significa oculto. La palabra «crypto» significa «oculto» y «graphy» significa «escritura».

En este artículo, cubriré los principios básicos de la criptografía, exploraré varios tipos con ejemplos, discutiré los retos y miraré hacia las tendencias futuras. Mi objetivo es ofrecer una visión global que abarque tanto los conceptos principales como los secundarios.

La criptografía asegura la comunicación digital y la información en diversos sistemas y aplicaciones, garantizando la confidencialidad y la seguridad de los datos. Protege los datos de accesos no autorizados.

cryptography.drawio-1-1

Veamos qué ocurre en la criptografía:

  1. El proceso comienza con el remitente que tiene un mensaje o datos que enviar.
  2. El texto plano (mensaje original) se convierte en un formato ilegible mediante un método denominado cifrado.
  3. El receptor utiliza una clave para convertir el texto cifrado (formato ilegible) de nuevo en un formato legible, un proceso conocido como descifrado.
  4. El mensaje descifrado vuelve a estar en texto plano y es el mismo que el mensaje original enviado por el remitente.
  5. El receptor dispone ahora del mensaje original.

Ahora, exploremos los principios fundamentales de la criptografía.

Principios básicos de la criptografía

Existen cuatro principios fundamentales de la criptografía:

#1. Confidencialidad: Sólo el destinatario previsto puede acceder a la información; ésta permanece privada para los demás.

#2. Integridad: La información no puede ser alterada durante su almacenamiento o transmisión sin que se detecten los cambios.

#3. No repudio: El remitente no puede negar el envío de la información posteriormente.

#4. Autenticación: Confirma las identidades del emisor y del receptor y verifica el origen y el destino de la información.

Antes de continuar, repasemos el vocabulario básico.

Glosario:

PalabraSignificado
CriptografíaEs una técnica para asegurar la información y la comunicación utilizando un conjunto de cálculos basados en reglas llamados algoritmos y algunos conceptos matemáticos para que sólo la persona adecuada pueda entenderlo.
CifradoUn cifrado es un método o algoritmo utilizado para cifrar y descifrar datos
CifradoEl proceso de convertir texto plano en texto cifrado
Texto sin cifrarForma original, no cifrada, de datos o texto
Texto cifradoDatos cifrados (una forma codificada de los datos) o texto
DescifradoEl proceso inverso de convertir el texto cifrado de nuevo en texto sin cifrar utilizando la clave de descifrado
ClaveUna clave es un fragmento de información, normalmente una secuencia de bits, que se utiliza para controlar el proceso de cifrado y descifrado.
Intercambio de clavesLa transferencia segura de claves de cifrado entre emisor y receptor.
Glosario de criptografía

Existen tres tipos fundamentales de criptografía:

  1. Criptografía de clave simétrica
  2. Criptografía de clave asimétrica
  3. Función hash

Criptografía de clave simétrica

La criptografía de clave simétrica, también denominada cifrado de clave única, es una técnica de cifrado que se basa en una única clave secreta tanto para cifrar como para descifrar datos.

En este método, tanto el emisor como el receptor necesitan utilizar exactamente la misma clave secreta para comprender los datos. Funciona cambiando los datos normales en código secreto (texto cifrado) utilizando la clave secreta y un proceso matemático específico.

Cuando el receptor, que también conoce la clave secreta, recibe el mensaje codificado en secreto, puede utilizar el mismo proceso matemático para convertirlo de nuevo en datos normales. De este modo, el receptor obtiene la información original a partir del código secreto.

symmmetric-cryptography
Criptografía simétrica

Entendamos el proceso a través de los siguientes pasos:

  • El algoritmo convierte el texto original (texto plano) en texto cifrado utilizando una clave secreta.
  • A continuación, el remitente envía ese texto cifrado al destinatario a través del canal de comunicación. Este canal de comunicación puede ser privado o público.
  • Los receptores utilizan la misma clave secreta para descifrar ese texto cifrado y convertirlo en texto original.

Este proceso de cifrado simétrico garantiza la seguridad de la comunicación entre el emisor y el receptor. Pero, la clave secreta debe ser confidencial.

Para mantener la confidencialidad y la integridad, ambas partes deben gestionar y proteger de forma segura esta clave secreta.

Existen dos tipos de cifrado simétrico:

  1. Cifrado de flujo
  2. Cifrado por bloques
Cifrado de flujoCifrado por bloques
Cifra los datos en bloques de longitud fijaMientras se cifran los datos, el sistema los retiene en la memoria, esperando hasta que los bloques completos estén listos para su procesamiento
Cifra los datos bit a bit o byte a byteCifra los datos en bloques de longitud fija
Utiliza 8 bits de la claveUtiliza 64 bits o más de 64 bits de la clave
Más complejo que el cifrado por bloquesMás sencillo que el cifrado de flujo
Cifra los datos en bloques de longitud fijaLento y adecuado para aplicaciones fuera de línea
Utiliza los modos CFB y OFBUtiliza los modos ECB y CBC
Cifrado de flujo frente a cifrado de bloque

Algunos ejemplos de algoritmos de cifrado simétrico son:

  • AES (Estándar de cifrado avanzado): Es conocido por su seguridad y eficacia. Se utiliza habitualmente para proteger datos sensibles como la seguridad inalámbrica, la computación en la nube, la banca y el comercio electrónico.
  • DES (Estándar de cifrado dedatos): Es un método de cifrado más antiguo que fue sustituido por AES y 3DES. Utiliza una clave de 56 bits.
  • IDEA (Algoritmo Internacional de Cifrado de Datos): Utiliza una clave de 128 bits y se emplea en diversas aplicaciones.
  • Blowfish: Algoritmo diseñado como sustituto de DES o IDEA.
  • RC4 (Rivest Cipher 4): Desarrollado por Ron Rivest. Es conocido por su sencillez y velocidad, pero presenta algunos problemas de seguridad en ciertas implementaciones.
  • RC5 (Cifrado Rivest 5): Está diseñado para ser eficiente y seguro, con un tamaño de bloque y un tamaño de clave variables.
  • RC6 (Cifrado Rivest 6): Está diseñado para proporcionar una seguridad y un rendimiento mejorados en comparación con las versiones anteriores.

AES, DES, IDEA, Blowfish, RC5 y RC6 son cifradores de bloque.

RC4 es un Cifrado de Flujo.

Ventajas de la criptografía de clave simétrica

  • Es más rápida y eficaz que la criptografía asimétrica
  • El tamaño de la clave es pequeño, lo que permite generar cifrados más fuertes.
  • Es relativamente rentable producir claves fuertes para los cifradores.
  • AES es uno de los algoritmos seguros.

Desventajas de la criptografía de clave simétrica

  • Compartir de forma segura las claves de cifrado con todas las partes que necesitan comunicarse de forma segura es uno de los principales retos de la criptografía simétrica.
  • La seguridad de todo el sistema puede verse vulnerada si la clave es interceptada o comprometida por un atacante durante la transmisión.
  • Los sistemas de cifrado simétrico requieren prácticas cuidadosas de gestión de claves. Esto incluye la generación, el almacenamiento, la actualización y la revocación de claves. Una mala gestión de las claves puede provocar brechas de seguridad.
  • Los atacantes pueden interceptar las claves intercambiadas a través de un canal inseguro, lo que puede comprometer la comunicación.

Aún así,el cifrado simétrico es una parte esencial de la criptografía moderna y se utiliza ampliamente en muchas aplicaciones, a pesar de sus inconvenientes.

Unas prácticas sólidas de gestión de claves y unos métodos seguros de intercambio de claves pueden ayudar a superar algunos de los retos de la criptografía simétrica.

Criptografía de clave asimétrica

La criptografía asimétrica utiliza pares de claves: una privada que se mantiene en secreto y una pública que se comparte abiertamente. Puede utilizar la clave pública de alguien para cifrar un mensaje, y sólo esa persona puede descifrarlo con su clave privada.

Este método aumenta la seguridad digital al permitir una comunicación segura sin compartir claves secretas, algo crucial en nuestro mundo en línea.

Esto es útil para una comunicación segura, ya que los destinatarios sólo necesitan su clave pública. Elimina el riesgo de compartir una clave simétrica secreta.

Estos «algoritmos de clave pública» utilizan un par de claves para asegurar los datos.

Aquí tiene un desglose más sencillo:

Symmetric-vs-Asymmetric.drawio-1
Criptografía simétrica frente a asimétrica
  • Existen dos claves. Una clave pública, a la que todo el mundo puede acceder, y una clave privada, que se mantiene en secreto.
  • La clave pública se utiliza para cifrar o bloquear los datos.
  • La clave privada se utiliza para descifrar o desbloquear los datos.

Es importante entender que no se puede averiguar la clave privada a partir de la pública. Además, las claves públicas suelen estar vinculadas a identidades por organizaciones conocidas como Autoridades de Certificación.

Comunicación segura El emisor y el receptor han intercambiado un mensaje seguro sin comprometer sus claves privadas.

Estos algoritmos se basan en problemas matemáticos como la factorización de enteros y los logaritmos discretos para crear firmas digitales y establecer/distribuir claves de sesión, como en el protocolo TLS.

Algunos ejemplos de algoritmos de cifrado asimétrico son:

  • RSA (Rivest-Shamir-Adleman): RSA es uno de los algoritmos de cifrado asimétrico más utilizados. Se basa en las propiedades matemáticas de los grandes números primos y se utiliza habitualmente para el intercambio seguro de claves y firmas digitales.
  • Criptografía de curva elíptica (ECC): Se basa en la estructura algebraica de las curvas elípticas sobre campos finitos. La ECC ofrece la ventaja de un menor tamaño de las claves en comparación con la criptografía no EC que se basa en campos de Galois planos. ECC se utiliza principalmente para generar números pseudoaleatorios y firmas digitales.
  • Intercambio de claves Diffie-Hellman: Este algoritmo se utiliza para el intercambio seguro de claves. Una clave creada con este método puede utilizarse para el cifrado con un algoritmo simétrico. El objetivo principal de Diffie-Hellman es permitir que dos partes creen una clave secreta compartida a través de un canal de comunicación inseguro.

Ventajas de la criptografía asimétrica

  • La encriptación asimétrica proporciona una seguridad más fuerte en comparación con la criptografía simétrica.
  • El receptor puede verificar la identidad del emisor.
  • La encriptación asimétrica resuelve el problema relacionado con la distribución de claves, que mencioné en las desventajas de la criptografía de clave simétrica.
  • Los receptores del mensaje pueden detectar si el mensaje ha sido alterado en tránsito.

Desventajas de la criptografía de clave asimétrica

  • La encriptación asimétrica es un proceso más lento que la criptografía simétrica.
  • El cifrado y el descifrado asimétricos requieren más recursos informáticos que la criptografía simétrica.
  • La criptografía asimétrica se basa en claves públicas y privadas. Gestionar estas claves de forma segura puede ser complejo y desafiante, especialmente en sistemas a gran escala.
  • La desventaja potencial más significativa de la criptografía asimétrica es su vulnerabilidad frente a los ordenadores cuánticos. Los ordenadores cuánticos tienen el potencial de resolver ciertos problemas matemáticos, como la factorización de enteros y los logaritmos discretos, de forma mucho más eficiente que los ordenadores clásicos.

Pero, no hay por qué preocuparse las organizaciones y los investigadores están trabajando en la transición a estas técnicas criptográficas resistentes al quantum.

Pasemos a nuestro siguiente tipo de criptografía:

Función hash

Las funciones hash criptográficas son diferentes de otros tipos de criptografía. No cifran los datos. En su lugar, utilizan matemáticas complejas para convertir cualquier dato en un código único formado por letras y números.

Estos códigos se denominan códigos hash, valores hash o compendios de mensajes. Son importantes para comprobar si los datos son seguros; cuando los datos se envían o almacenan, se calcula su código hash y se envía o guarda con los datos.

El destinatario puede recalcular el código de los datos que ha recibido y cotejarlo con el enviado. Si los códigos coinciden, significa que los datos permanecieron seguros durante la transmisión y el almacenamiento.

He aquí una sencilla explicación paso a paso:

Hash-Function-new.drawio-1
Función Hash

El lado del remitente:

  1. El remitente utiliza una función hash para crear un valor hash único para los datos proporcionados.
  2. Tras crear los valores hash, el remitente envía tanto el mensaje original como el código hash al receptor a través de un canal inseguro.

Lado del receptor:

  1. El receptor recibe el mensaje y el código hash.
  2. El receptor también utiliza la misma herramienta especial (función hash) para crear un nuevo código hash para el mensaje recibido.
  3. El receptor compara el nuevo código hash con el enviado por el remitente.

Resultado:

  • Si los códigos hash coinciden, significa que el mensaje no fue alterado durante la transmisión y se considera seguro.
  • Si los códigos hash no coinciden, sugiere que el mensaje podría haber sido modificado, y no se considera seguro.

Estas son algunas de las propiedades que hacen que las funciones hash sean útiles:

Propiedades de la función hash:

  1. Determinista: Si se le da la misma entrada, siempre producirá la misma salida.
  2. Uniformidad y Libre de Colisiones: Una buena función hash debe producir salidas distribuidas uniformemente. Ayuda a evitar colisiones.
  3. Eficiente: Las funciones hash están diseñadas para ser computacionalmente eficientes, lo que les permite procesar rápidamente grandes cantidades de datos.
  4. Salida de tamaño fijo: Produce una salida de tamaño fijo independientemente del tamaño de la entrada. Esta propiedad es esencial porque permite almacenar y recuperar datos de forma eficiente.

Las funciones hash tienen muchas aplicaciones en informática y seguridad de la información, como la criptografía, la comprobación de la integridad de los datos, la indexación de datos, la toma de huellas dactilares de datos, el almacenamiento de contraseñas, la ciencia forense digital y la cadena de bloques (blockchain).

Entre las funciones hash criptográficas más utilizadas se incluyen:

Existen dos familias de funciones hash criptográficas ampliamente utilizadas: la familia MD (MD = compendio de mensajes) y la familia SHA (SHA = algoritmo hash seguro).

  • SHA-1 (Algoritmo de hash seguro 1): Fue una de las funciones hash más populares. Sin embargo, SHA-1 se considera ahora débil debido a vulnerabilidades que permiten ataques prácticos de colisión. Ya no se utiliza para la mayoría de las aplicaciones de seguridad.
  • MD5 (Algoritmo de compendio de mensajes 5): MD5 fue popular en el pasado pero ahora se considera débil debido a vulnerabilidades de colisión. Generalmente no se utiliza para aplicaciones sensibles a la seguridad.
  • SHA-3: SHA-3 es una familia más reciente de funciones hash seleccionada mediante concurso por el Instituto Nacional de Estándares y Tecnología (NIST). Proporciona una fuerte seguridad y está diseñada para ser resistente a ciertos tipos de ataques.

Aunque las funciones hash no cifran los mensajes, son parte integrante de la criptografía porque desempeñan un papel crucial en la seguridad y autentificación de los datos, que son objetivos clave de la criptografía.

Ventajas de la función hash

  • Una función hash segura garantiza una alta resistencia a las colisiones.
  • Se puede comparar la igualdad de dos archivos fácilmente mediante el hash.
  • Las funciones hash son increíblemente rápidas y eficientes.
  • En DBMS, el hashing se utiliza para buscar la ubicación de los datos sin utilizar una estructura de índice.

Desventajas de la función hash

  • Las funciones hash pueden funcionar con menos eficacia cuando se producen numerosas colisiones.
  • No se permiten valores nulos.
  • La implementación de tablas hash puede ser una tarea difícil debido a su complejidad.
  • En la práctica, es casi imposible evitar por completo las colisiones hash cuando se trata de un gran conjunto de claves potenciales.

Lea también: Cómo protegerse de un ataque de tablas hash

applications-of-cryptography-geekflare

Aplicaciones reales de la criptografía

  • Autenticación/Firmas digitales: La autenticación es el proceso vital de confirmar la autenticidad de los datos, verificar la fuente de un documento, validar la identidad del remitente, la exactitud de la marca de tiempo y garantizar la legitimidad de las identidades de ordenadores o usuarios. Las firmas digitales emplean métodos criptográficos que implican una función hash y una clave privada para validar y firmar documentos de forma segura.
  • Cifrado de almacenamiento en la nube: La criptografía se emplea para asegurar los archivos almacenados en la nube y durante la transmisión hacia y desde los servicios en la nube.
  • Dineroelectrónico: El dinero electrónico implica transferencias electrónicas de fondos entre las partes, que pueden ser de débito o de crédito, y anónimas o identificadas. Utiliza el cifrado, las firmas digitales y la criptografía de clave pública para la seguridad, lo que permite diversos tipos de transacciones.
  • Cifrado/descifrado en el correo electrónico: El cifrado del correo electrónico protege el contenido del correo electrónico de accesos no autorizados mediante criptografía de clave pública. Cada usuario dispone de un par de claves pública y privada; la clave pública se utiliza para el cifrado y sólo la privada puede descifrar el mensaje.
  • Cifradoen WhatsApp: WhatsApp utiliza el protocolo de señal para el cifrado, combinando la criptografía de clave simétrica y asimétrica para la confidencialidad, integridad, autenticación y no repudio. Para el intercambio de claves se utilizan algoritmos basados en Curve25519.
  • Cifradoen Instagram: La comunicación en Instagram se cifra mediante SSL/TLS a través del puerto 443, lo que impide que se escuchen los datos intercambiados entre el usuario y los servidores de Instagram.
  • Autenticación de la tarjeta SIM: La autenticación de la tarjeta SIM consiste en verificar su acceso a la red generando un número aleatorio y aplicando algoritmos como A3 con la clave secreta Ki. El cifrado se basa en el algoritmo A8 y la clave de sesión KC, utilizada con el algoritmo A5 para el cifrado/descifrado de datos.
challenges-in-cryptography-geekflare

Retos de la criptografía

  • La gestión de claves sigue siendo un reto, ya que distribuir y gestionar de forma segura las claves de cifrado es complejo, especialmente en sistemas a gran escala. Los mecanismos de almacenamiento y recuperación de claves deben ser robustos.
  • La criptografía simétrica puede resultar ineficaz cuando muchos usuarios necesitan comunicarse de forma segura. Cada par de usuarios requiere una clave única, lo que puede volverse inmanejable a medida que aumenta el número de usuarios.
  • La criptografía asimétrica suele requerir claves más largas que la simétrica para alcanzar el mismo nivel de seguridad. Esto puede dar lugar a un procesamiento más lento y a una mayor necesidad de recursos.
  • El descubrimiento de vulnerabilidades o puntos débiles en las funciones hash puede dar lugar a brechas de seguridad. La comunidad criptográfica debe analizar y adaptar continuamente las funciones hash para mitigar estos riesgos.
  • En las aplicaciones en las que se utilizan funciones hash para el almacenamiento de contraseñas, es necesario salarlas adecuadamente para evitar ataques de tabla arco iris. El reto reside en garantizar que las sales sean únicas y secretas.
  • La aparición de la informática cuántica plantea un reto importante al mundo de la criptografía. Los ordenadores cuánticos son excepcionalmente rápidos a la hora de resolver problemas matemáticos específicos, aprovechando los peculiares principios de la física cuántica para su extraordinaria destreza computacional.

Esta velocidad amenaza los cimientos de nuestros sistemas criptográficos actuales, que se basan en la complejidad de ciertos retos matemáticos para garantizar la seguridad de los datos. Los ordenadores cuánticos tienen la capacidad de descifrar estos problemas mucho más rápido que los ordenadores convencionales, comprometiendo potencialmente la seguridad de nuestros métodos de cifrado.

Los principios subyacentes de la mecánica cuántica que utilizan los ordenadores cuánticos son realmente inusuales, pero les otorgan el poder de realizar tareas que están fuera del alcance de los ordenadores clásicos.

En consecuencia, la necesidad de desarrollar técnicas criptográficas novedosas que puedan resistir los ataques cuánticos es cada vez más acuciante, lo que supone un reto permanente dentro del campo de la criptografía.

  • El desarrollo y la adopción de algoritmos criptográficos poscuánticos resistentes a los ataques cuánticos será una tendencia importante. Se están explorando algoritmos como la criptografía basada en celosías.
  • Cada vez se acepta más el cifrado y la gestión de claves basados en la nube, especialmente en finanzas. La encriptación homomórfica permite realizar cálculos sobre datos encriptados sin desencriptarlos. Esto puede mejorar la privacidad en la computación en nube y el procesamiento de datos.
  • La criptografía desempeña un papel crucial en la seguridad de la tecnología blockchain, y ambas seguirán entrelazadas en el futuro.
  • Con el aumento de las normativas de protección de datos, como la GDPR, la tokenización se está utilizando con más frecuencia en la sanidad, los servicios financieros y las empresas. La tokenización sustituye los datos reales por un token que carece de valor para los piratas informáticos.

Palabras finales

La criptografía es un vasto campo con mucho por explorar, y sólo hemos arañado la superficie al cubrir los fundamentos de la criptografía.

Hemos cubierto la criptografía, sus principios, los tipos de criptografía, las funciones hash, los retos, las tendencias futuras y las aplicaciones prácticas.

Sin embargo, aún queda mucho por descubrir.

A continuación, Criptografía en la nube: guía introductoria y estudio de caso de Google Cloud.