¿Qué son algoritmos de cifrado? Tipos y características

La gestión adecuada de las claves criptográficas es esencial para el uso efectivo de la criptografía por seguridad. Las claves son análogas a la combinación de una caja fuerte.

Si un adversario conoce una combinación segura, la caja fuerte más fuerte no proporciona seguridad contra la penetración. Del mismo modo, una mala gestión de claves puede comprometer fácilmente algoritmos fuertes.

Al igual que una combinación de caja fuerte, tus claves de cifrado son tan buenas como la seguridad que utilizas para protegerlas. Hay un sistema criptográfico físico y digital completo que debe tenerse en cuenta, así como el ciclo de vida completo de cada clave.

Por lo tanto, un sistema y políticas robustos de administración de algoritmos de cifrado incluye:

  • Ciclo de vida clave: generación de claves, preactivación, activación, caducidad, posactivación, custodia y destrucción
  • Acceso físico a los servidores clave
  • Acceso lógico a los servidores clave
  • Acceso de usuario / rol a las claves de cifrado

Aquí tienes una completa guía sobre los algoritmos de cifrado, definición, tipos, características y funcionamiento.

Definición de algoritmos de cifrado

Un algoritmo de cifrado es un componente para la seguridad del transporte electrónico de datos. Los pasos matemáticos reales se toman y se enlistan al desarrollar algoritmos para propósitos de encriptación, y se utilizan diferentes cifrados de bloque para encriptar datos o números electrónicos.

Los algoritmos de cifrado ayudan a prevenir el fraude de datos, como el perpetrado por piratas informáticos que obtienen ilegalmente información financiera electrónica. Estos algoritmos son parte de los protocolos de gestión de riesgos de cualquier empresa y a menudo se encuentran en aplicaciones de software.

Los algoritmos de cifrado ayudan en el proceso de transformación de texto sin formato en texto cifrado y luego de vuelta a texto sin formato con el fin de proteger los datos electrónicos cuando se transportan a través de redes.

Al codificar o cifrar datos, los hackers u otros usuarios no autorizados generalmente no pueden acceder a dicha información.

Algunos algoritmos de cifrado se consideran más rápidos que otros, pero mientras los desarrolladores de algoritmos, muchos de los cuales tienen antecedentes matemáticos, se mantengan al tanto de los avances en esta tecnología, este tipo de cifrado debe continuar floreciendo a medida que los piratas informáticos continúan volviéndose más sofisticados.

Los algoritmos de cifrado pueden variar en longitud, pero la fuerza de un algoritmo generalmente es directamente proporcional a su longitud.

¿Para qué sirve la criptografía o cifrado de datos?

El cifrado desempeña un papel importante en la protección de muchos tipos diferentes de activos de tecnología de la información (TI). Proporciona lo siguiente:

  • Confidencialidad: codifica el contenido del mensaje.
  • Autenticación: verifica el origen de un mensaje.
  • Integridad: demuestra que el contenido de un mensaje no ha cambiado desde que se envió.
  • No rechazo: evita que los remitentes nieguen haber enviado el mensaje cifrado.

El cifrado se usa comúnmente para proteger los datos en tránsito y los datos en reposo.

Cada vez que alguien usa un cajero automático o compra algo en línea con un teléfono inteligente, se utiliza el cifrado para proteger la información que se transmite. Las empresas confían cada vez más en el cifrado para proteger las aplicaciones y la información confidencial del daño a la reputación cuando hay una violación de datos.

Hay tres componentes principales para cualquier sistema de cifrado: los datos, el motor de cifrado y la gestión de claves.

En el cifrado de la computadora portátil, los tres componentes se ejecutan o almacenan en el mismo lugar: en  portatil.

El objetivo principal del cifrado es proteger la confidencialidad de los datos digitales almacenados en los sistemas informáticos o transmitidos por Internet o cualquier otra red informática.

Además de la seguridad, la adopción del cifrado de datos suele estar impulsada por la necesidad de cumplir con las normas de cumplimiento. Varias organizaciones y organismos de normalización recomiendan o requieren que se cifren datos confidenciales para evitar que terceros no autorizados o actores de amenazas accedan a los datos.Por ejemplo, el Estándar de seguridad de datos de la industria de tarjetas de pago ( PCI DSS ) requiere que los comerciantes cifren los datos de la tarjeta de pago de los clientes cuando se almacenan en reposo y se transmiten a través de redes públicas.

Tipos de algoritmos de cifrado en Internet

Estos son los principales algoritmos de cifrado existentes.

Claves simétricas: datos en reposo

En la criptografía de cifrado simétrico, se utiliza la misma clave de cifrado para cifrar y descifrar los datos. Este medio de cifrado se utiliza principalmente para proteger los datos en reposo.

Un ejemplo sería cifrar datos confidenciales en texto cifrado mientras están almacenados en una base de datos y descifrarlos en texto sin formato cuando un usuario autorizado accede a ellos, y viceversa.

Claves asimétricas: datos en movimiento

Las claves asimétricas, por otro lado, son un par de claves para el cifrado y descifrado de los datos. Ambas claves están relacionadas entre sí y se crean al mismo tiempo. Se les conoce como clave pública y privada:

  • Clave pública: esta clave se usa principalmente para cifrar los datos y se puede dar libremente, ya que se usará para cifrar datos, no para descifrarlos.
  • Clave privada: esta clave se utiliza para descifrar los datos que su contraparte, la clave pública, ha cifrado. Esta clave debe protegerse, ya que es la única clave que puede descifrar los datos cifrados.

El cifrado asimétrico se utilizan principalmente para proteger los datos en movimiento. Un ejemplo podría ser una conexión de red privada virtual (VPN). Con una VPN:

  • Se utiliza una clave de sesión simétrica AES para cifrar los datos
  • Se usa una clave pública para cifrar la clave de sesión
  • Una vez que se reciben los datos cifrados, la clave privada se utiliza para descifrar la clave de sesión para que se pueda usar para descifrar los datos.

Por bloques

El cifrado de bloque procesa la entrada de texto claro en bloques de tamaño fijo y produce un bloque de texto cifrado de igual tamaño para cada bloque de entrada

Los algoritmos de cifrado simétrico de bloque más importantes son:

  • Data Encryption Standard (DES)
  • Triple DES (3DES)
  • Advanced Encryption Standard (AES)

En flujos

En este algoritmo de cifrado se combinan los dígitos del texto claro con un flujo pseudoaleatorio de dígitos (flujo de claves). Puede ser síncrono o asíncrono.

En el cifrado de flujo síncrono, el flujo de claves se genera en función de la clave solamente. En el asíncrono (o auto-sincronizable), el flujo de claves se genera en función de la clave y de un número fijo de dígitos previos del texto cifrado.

Triple DES

Triple DES o 3DES es el sucesor del algoritmo DES, o el Estándar de cifrado de datos.

DES es un método obsoleto de clave simétrica de cifrado de datos. Fue eliminado debido a sus vulnerabilidades sobreexplotadas.

Originalmente, DES solía ser un método de cifrado muy popular. Es una creación de los ingenieros de IBM, desde 1970. En 1977, el gobierno de los EE. UU. Lo adoptó como un estándar de cifrado: el Estándar de cifrado de información federal. DES se utilizó para proteger datos no clasificados pero confidenciales.

Fue el primer algoritmo aprobado por el gobierno federal para divulgación pública. Ganó popularidad rápidamente entre las empresas que se ocupan de información confidencial: instituciones financieras, empresas de telecomunicaciones, otros proveedores de software e Internet, etc.

DES cifra los datos agrupándolos en bloques y codificándolos simultáneamente aplicando la clave a todo el bloque, en lugar de bit a bit. Los bloques son siempre de 64 bits.

La clave podría aplicarse a todos los bloques simultáneamente o podría usarse otro modelo en el que el cifrado de un bloque dependa del resultado del anterior.

En DES, la misma clave se usa para cifrar y descifrar el mensaje. La decodificación no es más que aplicar los mismos pasos en dirección inversa y en orden inverso.

Triple DES se utiliza para pagos en línea, por aplicaciones en el paquete de Microsoft Office, así como por Firefox y Thunderbird de Mozilla.

RSA

A diferencia de DES, RSA es asimétrico, lo que significa que el sistema no está utilizando la misma clave para descifrado y cifrado. El algoritmo funciona mediante la generación de una clave pública y una privada. Las claves pública y privada no son idénticas, pero están vinculadas entre sí.

No hay diferencia sobre qué clave se usa para el cifrado y cuál se usa para el descifrado. Tanto la clave privada como la pública pueden usarse para codificar el mensaje y la clave opuesta deberá aplicarse para decodificarlo.

El alto nivel de seguridad que proporciona RSA está garantizado por la dificultad de factorizar cadenas largas, producto de factorizar dos números primos grandes.

RSA se utiliza para la autenticación SSH, para el cifrado SSL y para proteger datos confidenciales en varios navegadores.

Blowfish

Al igual que DES, la tecnología de Blowfish es simétrica, lo que significa que se usa una clave privada (o solo una clave) para cifrar un bloque completo de datos. El tamaño de los bloques es de 64 bits, y la longitud de la clave puede variar de una clave de 32 bits a una de 448 bits.

Con la capacidad de usar teclas más cortas, el método Blowfish es una alternativa que es considerablemente más rápida que sus dos competidores. La excepción es cambiar las claves. Cada cambio de clave requiere un preprocesamiento, que requiere recursos equivalentes a encriptar 4KB de texto.

Blowfish no está patentado. Su flexibilidad, velocidad y seguridad le da una ventaja competitiva frente a sus alternativas. Se puede utilizar y explorar de forma gratuita. Por lo tanto, es muy popular en software criptográfico.

Twofish

Twofish, al igual que su predecesor Blowfish, utiliza cifrado en bloque. Es simétrico, lo que nuevamente significa que se usa la misma clave para cifrar y descifrar. Twofish divide el mensaje que necesita cifrado en bloques de 128 bits y aplica la clave simultáneamente a todos los bloques. El tamaño del bloque es otra diferencia con Blowfish.

A diferencia de su predecesor, Twofish solo usa claves para el cifrado de datos de hasta 256 bits. El cifrado de cada bloque tiene una relación compleja con el resultado del cifrado del bloque anterior.

La codificación con Twofish es popular para software y dispositivos que tienen recursos de procesamiento relativamente bajos a su disposición, como las tarjetas SIM.

Twofish se considera rápido, flexible y, al mismo tiempo, tiene un diseño conservador.

Al igual que Blowfish, el método de cifrado no ha sido patentado y es de uso gratuito.

AES

AES es otro algoritmo de cifrado simétrico. Se hizo popular por su fácil implementación en hardware, así como por entornos restringidos.

Sus características son:

  • Fue probado previamente para resistir ataques.
  • Alta eficiencia computacional y de memoria y bajo coste.
  • Flexibilidad, fácil implementación y simplicidad.

AES trabaja con rondas de cifrado. Cada ronda es una secuencia de varios pasos de procesamiento, que podrían ser una combinación de sustitución, transposición y creación de relaciones entre el texto sin formato de entrada y la salida.

El número de rondas aplicables varía con 10 rondas aplicadas con claves de 128 bits, 12 rondas para claves de 192 bits y 14 rondas para claves de 256 bits.

El cifrado AES utiliza la sustitución de datos basada en tablas por filas y columnas. La regla de sustitución está dictada por diferentes partes de la clave de cifrado.

¿Qué es el criptoanálisis?

El criptoanálisis es el estudio de métodos para obtener el significado de la información encriptada, sin acceso a la información secreta que normalmente se requiere para hacerlo.

Por lo general, esto implica saber cómo funciona el sistema y encontrar una clave secreta. El criptoanálisis también se conoce como descifrar el código.

El texto cifrado es generalmente la parte más fácil de obtener de un criptosistema y, por lo tanto, es una parte importante del criptoanálisis. Según la información disponible y el tipo de cifrado que se está analizando, los criptoanalistas pueden seguir uno o más modelos de ataque para descifrar un cifrado.

El criptoanálisis es la ciencia de descifrar códigos y decodificar secretos. Se utiliza para violar los esquemas de autenticación, para romper los protocolos criptográficos y, más benignamente, para encontrar y corregir las debilidades en los algoritmos de cifrado.

Se puede usar en aplicaciones de guerra de información, por ejemplo, falsificar una señal encriptada para que sea aceptada como auténtica.

Los competidores que hayan podido descubrir la clave ahora querrán usarla en su beneficio, por lo tanto, querrán enviar mensajes cifrados falsos a la fuente para obtener información o obtener una ventaja.

También podría usarse para fingir ser la fuente para enviar información falsa a otros, que ahora pensarán que proviene de la fuente oficial.

Tipos de ataques

En criptografía, el objetivo del atacante es romper el secreto del cifrado y aprender el mensaje secreto y, mejor aún, la clave secreta.

Hay docenas de diferentes tipos de ataques que se han desarrollado contra diferentes tipos de criptosistemas con diferentes niveles de efectividad. Algunos son fácilmente comprensibles, mientras que otros pueden requerir un título avanzado en matemáticas para comprenderlos.

En esta publicación, discutiremos algunos de los ataques más comunes y por qué pueden o no funcionar contra diferentes tipos de cifrados.

De fuerza bruta

El ataque más simple a un cifrado es el ataque de fuerza bruta. En este ataque, un atacante simplemente intenta descifrar el mensaje con cada clave secreta posible y comprueba el resultado del descifrado para ver si tiene sentido.

Dado el tiempo suficiente y los recursos computacionales, se garantiza que este ataque funcionará ya que la verdadera clave secreta debe estar dentro del conjunto de posibles claves secretas y el atacante eventualmente lo intentará y (con suerte) se dará cuenta de que el texto sin formato resultante es el correcto.

Las cifras modernas se protegen contra los ataques de fuerza bruta mediante el uso de una clave secreta que es lo suficientemente larga como para hacer imposible adivinar todas las posibilidades.

Man-in-the-Middle

El ataque Man-in-the-Middle (MitM) supone que un atacante, Juan, puede insertarse en el canal de comunicación entre María y Pedro, que están tratando de hablar entre ellos. Cuando María envía un mensaje a Pedro, Juan lo intercepta antes de que llegue a él.

En un ataque exitoso de MitM, Juan puede descifrar el mensaje interceptado, leerlo y posiblemente modificarlo, y luego pasarlo a Pedro.

Para llevar a cabo un ataque Man-in-the-Middle, Juan generalmente necesita poder convencer a María de que es Pedro y a Pedro de que es María.

Juan establecerá de manera independiente una clave secreta separada con cada parte y, cuando un mensaje se mueva de María a Pedro, descifrará el uso de su clave para María y se volverá a cifrar usando su clave para Pedro. Mientras Juan controle el único canal de comunicación entre María y Pedro, el ataque MitM es indetectable.

Solo texto cifrado

Un ataque de solo texto cifrado es un caso en el que solo el mensaje cifrado está disponible para el ataque, pero debido a que se conoce el idioma, se podría intentar un análisis de frecuencia.

En esta situación, el atacante no sabe nada sobre el contenido del mensaje y debe trabajar solo desde texto cifrado.

Texto plano conocido

En un ataque de texto sin formato conocido, tanto el texto sin formato como el texto cifrado coincidente están disponibles para su uso al descubrir la clave.

El atacante conoce o puede adivinar el texto sin formato de algunas partes del texto cifrado.

Por ejemplo, tal vez todas las sesiones de inicio de sesión seguro comiencen con los caracteres INICIAR SESIÓN, y la siguiente transmisión puede ser CONTRASEÑA.

La tarea es descifrar el resto de los bloques de texto cifrado utilizando esta información. Esto puede hacerse determinando la clave utilizada para cifrar los datos, o mediante algún acceso directo.

Texto plano elegido

Un ataque de texto sin formato elegido ocurre cuando el atacante obtiene acceso al dispositivo de cifrado de destino, si, por ejemplo, se deja desatendido. El atacante luego ejecuta varias piezas de texto sin formato a través del dispositivo para el cifrado. Esto se compara con el texto sin formato para intentar derivar la clave.

En un ataque adaptado de texto sin formato elegido, el atacante no solo tiene acceso al texto sin formato y su cifrado, sino que puede adaptar o modificar el texto sin formato elegido según sea necesario en función de los resultados de los cifrados anteriores.

Texto cifrado elegido

En un ataque de texto cifrado elegido, el criptoanalista puede elegir diferentes textos cifrados para descifrar y tiene acceso al texto plano descifrado.

Este tipo de ataque es generalmente aplicable a ataques contra criptosistemas de clave pública.

Un ataque adaptativo de texto cifrado elegido implica que el atacante selecciona ciertos textos cifrados para descifrarlos, y luego usa los resultados de estos descifrados para seleccionar textos cifrados posteriores. Las modificaciones en el texto cifrado ayudan a descifrar la clave de los descifrados.

Canal lateral

Los ataques de canal lateral son un tipo de ataques basados ​​en detalles de implementación, como el tiempo, la potencia y las emisiones de radiación.

Contra un sistema vulnerable, el ataque es computacionalmente económico y a menudo solo requiere texto cifrado conocido. Los sistemas reales están potencialmente en riesgo, incluidos los tokens criptográficos, los criptosistemas basados ​​en red y otras aplicaciones donde los atacantes pueden realizar mediciones de tiempo razonablemente precisas.

El análisis de potencia diferencial describe una nueva clase de ataques contra tarjetas inteligentes y tokens criptográficos seguros. Explotan los comportamientos característicos de las puertas lógicas de transistores y el software que se ejecuta en las tarjetas inteligentes y otros dispositivos criptográficos actuales. Los ataques se realizan mediante la monitorización de la actividad eléctrica de un dispositivo, luego se utilizan métodos estadísticos avanzados para determinar información secreta en el dispositivo.

Técnicas de criptoanálisis

No existe un método general que nos permita atacar con total seguridad un sistema, por el contrario existen una gran variedad de métodos que se han utilizado con éxito contra algunas clases de cifrado.

Algunos de ellos, como el criptoanálisis diferencial, tienen una importancia más teórica que practica. Debemos hacer notar que los métodos que conocemos son los que se han publicado, no sabemos nada sobre los métodos que conocen las agencias nacionales de seguridad.

A continuación veremos algunas de las técnicas más importantes.

Fuerza Bruta o exhaustivo

Es el método menos sutil, más evidente y menos practico. Este método solo es útil en los casos en los que el tamaño de la clave sea lo suficientemente reducido.

Sin embargo la aparición de los ordenadores y en particular el espectacular aumento de potencia de los mismos ha propiciado que este tipo de ataque deba considerarse. Pero debe limitarse a espacios de búsqueda limitados a no ser que se disponga de información suplementaria sobre alguna debilidad del sistema que permita reducir el espacio de búsqueda o aplicar algún tipo de búsqueda heurística.

Frecuencia de aparición de cada carácter

Pretende utilizar las características básicas del lenguaje como son la frecuencia de aparición de los caracteres que lo forman y las combinaciones más frecuentes de ellos para reducir el espacio de búsqueda de la solución.

En cualquier lenguaje existen un conjunto de letras que se repiten frecuentemente y otras que se utilizan mucho menos. También es frecuente la aparición de pares de letras (digramas) o tripletes (trigramas). Todas estas
características son explotadas por el criptoanalista para deducir el mensaje original a partir del cifrado.

Método de Kasiski

Se trata de un método de reducción de cifrados polialfabéticos inicialmente desarrollado por Charles Babbage, pero que éste no publico. Quien sí lo publicó en 1860, y es por ello que se conoce con su nombre, fue el militar prusiano Friedrich W. Kasiski. Hay que indicar que el método fue desarrollado independientemente por ambos personajes.

El método se basa en comprobar la frecuencia de aparición de grupos de letras muy comunes.  Para solucionar el criptograma, se buscan todas las repeticiones y se calcula la distancia entre ellas.

Índice de coincidencia

Se trata de un método estadístico que nos permite entre otras cosas obtener el período en un cifrado polialfabético. Tiene su importancia por el hecho de utilizar por primera vez, de una forma sistemática, las matemáticas como una
herramienta criptoanalítica.

El Indice de Coincidencia IC, también conocido como test Kappa se basa en responder a la siguiente pregunta, dadas dos letras cualquiera de un texto ¿Cual es la probabilidad de que coincidan? Para calcularlo nos basamos en la Medida de Dispersión.

La importancia del Indice de coincidencia radica principalmente en ser la base para la posterior introducción y afianzamiento de la estadística como herramienta criptoanalítica. Es más, la estadística es la primera y más importante arma actual en el criptoanálisis.

¿Cómo implantar un algoritmo de cifrado seguro?

Para que los datos sean seguros, deben estar protegidos durante todo su ciclo de vida. Por lo tanto, es importante tener en cuenta el estado de los datos que está tratando de proteger:

  1. Datos en movimiento: se transmiten a través de una red
  2. Datos en reposo: en su almacenamiento o en computadoras de escritorio, computadoras portátiles, teléfonos móviles, tabletas y dispositivos Iot
  3. Datos en uso:  en el proceso de ser generados, actualizados, borrados o vistos.

Cada tipo de datos presenta desafíos únicos. Y cada uno puede tener diferentes herramientas y metodologías que pueden usarse para asegurarlo.

Cifrado de datos en reposo

Los tipos de cifrado para datos en reposo incluyen los siguientes:

  • Full Disk Encryption (FDE)  para protección de punto final
  • Cifrado de disco completo con autenticación previa al arranque (FDE con PBA) para la protección del punto final
  • Módulo de seguridad de hardware (HSM) para la protección del ciclo de vida de la administración de claves
  • Sistema de cifrado de archivos (EFS) para protección de almacenamiento
  • Cifrado virtual para protección de almacenamiento
  • Cifrado de archivos y carpetas (FFE) para protección de datos no estructurados
  • Cifrado de base de datos para protección de datos estructurados

Cifrado de datos en movimiento

Los tipos de cifrado para datos en movimiento incluyen (entre otros) los siguientes:

  • Red privada virtual (VPN) para acceso remoto
  • Acceso protegido a Wi-Fi (WPA / WPA2) para acceso inalámbrico
  • Capa de sockets seguros (SSL) para las comunicaciones del navegador web al servidor
  • Secure Shell (SSH) para la administración segura de sistemas remotos

El método más común para proteger los datos en movimiento es el uso de una red privada virtual de capa de sockets seguros (VPN SSL). Las tecnologías como SSL VPN son críticas en el esfuerzo por proteger contra ataques de intermediarios y rastreadores de paquetes.

Cifrado de datos en uso

La computación en la nube ha creado la necesidad de proteger los datos en uso, ya que los proveedores externos cada vez más alojan y procesan datos. Pero los datos en uso son los más difíciles de proteger, ya que casi siempre tienen que ser descifrados y, por lo tanto, expuestos para poder ser utilizados.

Esto abre los servidores para atacar mediante una técnica llamada raspado de RAM, que examina la memoria del servidor web en ejecución y extrae datos mientras está en su estado procesado y sin cifrar.

Debido a que las claves de descifrado y los datos descifrados no deben estar completamente disponibles para un atacante para que el cifrado brinde seguridad, los controles alternativos generalmente se proporcionan en un entorno donde las claves o los datos están en uso.

Las empresas que implementan servicios en la nube deben buscar una solución distribuida como HSM para mantener las claves seguras y fuera del control del proveedor de servicios.

Las compañías de seguridad están comenzando a abordar la brecha de seguridad en el cifrado de datos en uso mediante la introducción de nuevos productos como el cifrado «totalmente homomórfico» que podría permitir un análisis sin restricciones de la información cifrada, así como el cifrado de memoria completa, que limita los datos de texto claro al CPU caché interna.