La seguridad de la información se ha convertido en un pilar fundamental, especialmente en un mundo donde la comunicación y las transacciones digitales son omnipresentes. La criptografía, nacida de la necesidad de hacer privadas las transmisiones de datos, es la clave para asegurar que la información sensible sea accesible únicamente para los destinatarios previstos, protegiéndola de miradas indiscretas y ataques maliciosos.
En este artículo, exploraremos dos de los esquemas de cifrado más importantes y utilizados: el cifrado simétrico y el cifrado asimétrico. Ambos juegan roles cruciales en la protección de datos, pero presentan diferencias significativas en sus aplicaciones y niveles de seguridad.
Desde el robusto algoritmo AES (Advanced Encryption Standard) hasta el ampliamente utilizado RSA (Rivest-Shamir-Adleman), comprenderemos cómo funcionan estos métodos, sus ventajas y desventajas, y cuál es el más adecuado según las necesidades específicas de seguridad.
Tipos de cifrado: simétrico vs. asimétrico
En la industria de la seguridad informática, hay dos tipos de cifrado de datos muy usados, llamados cifrado simétrico y asimétrico. La finalidad de ambas es la de encriptar los datos, pero son diferentes en cuanto a la forma en la que trabajan, sus ventajas y sus limitaciones.
Cifrado simétrico
En el cifrado simétrico, sólo hay una clave, y todas las partes implicadas utilizan la misma clave para cifrar y descifrar la información. Al utilizar una única clave, el proceso es sencillo, como en el siguiente ejemplo: encriptas un correo electrónico con una clave única, envías ese correo a tu amigo David, y él utilizará la misma clave simétrica para desbloquear/desencriptar el correo.
Las ventajas de este tipo de cifrado son su mayor rendimiento y su bajo consumo de recursos, pero es intrínsecamente más antiguo y menos seguro que su homólogo. La razón es sencilla: si usas una única clave para toda la empresa, significa que estás poniendo toda tu confianza en una clave que tendrás que compartir mucho.
Por esta razón, el cifrado simétrico es estupendo cuando se trabaja con datos sensibles a gran escala, o en tareas de cifrado que pretenden ocultar permanentemente la información sin necesidad de descifrarla. Por ejemplo, cuando se activa BitLocker en un ordenador con Windows para cifrar todos los discos duros. Al desbloquear el PC con su código de acceso, el usuario descifrará los datos sin riesgo de exponer su clave secreta de cifrado. Otro ejemplo son las VPN, que cifran su tráfico de red con una clave local y no tienen la necesidad de compartirla fuera de su propio uso.
Algunos ejemplos de cifrado simétrico son:
AES (Advanced Encryption Standard):
- Es uno de los algoritmos de cifrado más utilizados en el mundo. Fue adoptado como estándar de cifrado por el gobierno de los Estados Unidos y es conocido por su eficiencia y seguridad.
- Usos comunes: Protección de datos en disco, conexiones seguras en la web (HTTPS), y aplicaciones de cifrado de archivos.
DES (Data Encryption Standard):
- Fue uno de los primeros algoritmos de cifrado ampliamente adoptados. Utiliza una clave de 56 bits, lo que hoy en día se considera inseguro debido a su vulnerabilidad a ataques de fuerza bruta.
- Usos comunes: Aunque es obsoleto, DES se utiliza a veces en sistemas heredados.
3DES (Triple DES):
- Mejora la seguridad de DES al aplicar el algoritmo tres veces con diferentes claves. Es más seguro que DES, pero también más lento.
- Usos comunes: Sistemas bancarios y financieros.
Cifrado asimétrico
El cifrado asimétrico, por otro lado, se creó para resolver el problema inherente al cifrado simétrico: la necesidad de compartir una única clave de cifrado alrededor que se utiliza tanto para cifrar como para descifrar datos.
Este tipo de cifrado, más nuevo y seguro, utiliza dos claves para su proceso de cifrado: la clave pública, utilizada para el cifrado, y la clave privada, utilizada para el descifrado. Estas claves están relacionadas, conectadas, y funcionan de la siguiente manera:
La clave pública está disponible para cualquiera que necesite encriptar una información. Esta clave no sirve para el proceso de descifrado. Un usuario necesita tener una clave secundaria, es decir, la clave privada, para descifrar esta información. De este modo, la clave privada sólo la tiene el actor responsable de descifrar la información, sin sacrificar la seguridad a medida que se escala la seguridad.
Asimismo, otros usos del cifrado asimétrico son:
- Compartir una clave simétrica de manera segura, que luego se puede utilizar para el cifrado simétrico de datos grandes.
- Verificar la autenticidad y la integridad de un mensaje o documento.
Este tipo de cifrado es de especial utilidad para certificados SSL/TLS, criptomonedas, email seguro (PGP/GPG) y autenticación de usuarios.
En cuanto al aspecto de la seguridad es importante recalcar que se basa en problemas matemáticos difíciles de resolver, como la factorización de números grandes (en RSA) o el problema del logaritmo discreto (en ECC).
No obstante, algunas de sus desventajas son:
- Es más lento que el cifrado simétrico debido a los cálculos matemáticos complejos.
- Las claves suelen ser más largas, lo que puede aumentar la carga de procesamiento y almacenamiento.
Ejemplos de cifrado asimétrico
Un buen ejemplo es el cifrado del correo electrónico. Con el cifrado asimétrico, cualquiera puede utilizar tu clave pública para enviarte un correo electrónico cifrado que sólo puedes descifrar con tu clave privada.
Naturalmente, el asimétrico es un estándar de cifrado más avanzado y, por lo tanto, es más lento y consume más recursos. Por ello, suele utilizarse en transacciones más pequeñas, normalmente para establecer canales de comunicación seguros o autenticar usuarios.
Algunos de los ejemplos de este tipo de cifrado son:
RSA (Rivest-Shamir-Adleman):
- Es uno de los algoritmos de cifrado asimétrico más antiguos y ampliamente utilizados. Se basa en la dificultad de factorizar grandes números primos. Además, la seguridad de RSA aumenta con el tamaño de la clave (típicamente 2048 bits o más).
- Usos comunes: Firmas digitales, cifrado de datos sensibles, y protección de comunicaciones en internet (SSL/TLS).
ECC (Elliptic Curve Cryptography):
- Utiliza las propiedades matemáticas de las curvas elípticas para proporcionar seguridad. Ofrece una seguridad comparable a RSA pero con claves mucho más pequeñas. Proporciona un nivel de seguridad similar a claves de RSA mucho más grandes.
- Usos comunes: SSL/TLS, criptomonedas (como Bitcoin), y aplicaciones móviles debido a su eficiencia.
DSA (Digital Signature Algorithm):
- Es un estándar de firma digital adoptado por el Instituto Nacional de Estándares y Tecnología (NIST) de EE.UU. Se basa en el problema del logaritmo discreto. Proporciona integridad y autenticidad a través de firmas digitales.
- Usos comunes: Autenticación y verificación de documentos electrónicos y software.
Algoritmos comunes de cifrado simétrico
Cifrado AES o Sistema de Cifrado Avanzado
AES (Advanced Encryption Standard) es uno de los algoritmos de cifrado simétrico más utilizados en la actualidad, desarrollado como sustituto del anticuado DES (Data Encryption Standard), descifrado por investigadores de seguridad en 2005. Este nuevo algoritmo pretendía solucionar el principal punto débil de su predecesor, una longitud de clave de cifrado corta y vulnerable a la fuerza bruta.
AES cifra la información en un solo bloque (cifrado por bloques), y lo hace bloque a bloque en lo que se denomina "rondas". Los datos se convierten inicialmente en bloques, y luego éstos se cifran con la clave en diferentes rondas dependiendo del tamaño de la clave: 14 rondas para 256 bits, 12 rondas para 192 bits y 10 rondas para 128 bits. El proceso implica una serie de pasos de manipulación y mezcla de datos que se realizan en cada ronda: sustitución, transposición, mezcla, mezcla de columnas, sub bytes.
AES-CBC
Este cifrado ha sido ampliamente utilizado junto con una función hash para comprobar la autenticidad de los datos, y hoy en día sigue implementándose. Este modo de cifrado consiste en que a cada bloque de texto plano, se le aplica la operación XOR con el bloque de cifrado anterior.
Cada bloque cifrado, depende de lo anterior procesado hasta ese punto. Para realizar esta opción XOR con el primer bloque de texto, se hace uso de un vector de inicialización IV. Este modo de cifrado se realiza de forma secuencial, no permite ser tratado de forma paralela para aumentar el rendimiento en el cifrado/descifrado de los datos.
Ventajas:
- Introduce una dependencia entre los bloques, haciendo que el cifrado sea más seguro contra ciertos ataques que afectan a los modos de cifrado más simples.
- Cambia un solo bit del texto cifrado cambia completamente el resultado del descifrado, lo que ayuda a detectar manipulaciones.
Desventajas:
- Requiere un IV único para cada cifrado, que debe ser gestionado y transmitido de manera segura.
- No se puede paralelizar eficientemente debido a la dependencia entre los bloques, lo que puede afectar el rendimiento en ciertas aplicaciones.
AES-CFB
CFB es un modo de operación que transforma un cifrador de bloque en un cifrador de flujo. Permite cifrar datos de longitud arbitraria y es adecuado para aplicaciones que requieren la transmisión de datos en tiempo real. Sin embargo, para producir el keystream cifra el último bloque de cifrado, en lugar del último bloque del keystream como hace AES-OFB. El cifrado no puede ser paralelizado, sin embargo, el descifrado sí.
Ventajas:
- Adecuado para aplicaciones que requieren el cifrado de datos de longitud variable o en tiempo real.
- Permite la paralelización del proceso de cifrado, aunque no tanto como otros modos.
- No requiere relleno (padding) porque puede cifrar bloques de tamaño variable.
Desventajas:
- Requiere un IV único para cada cifrado, que debe ser gestionado y transmitido de manera segura.
- Un error en un bloque de texto cifrado afectará no solo a ese bloque sino también a los bloques siguientes.
AES-OFB
Es un modo de operación que transforma un cifrador de bloque en un cifrador de flujo. En el modo OFB, el cifrador de bloque se utiliza para generar una secuencia de bits (keystream) independiente del texto plano y luego se combina con el texto plano para producir el texto cifrado.
En este caso también se necesita un vector de inicialización que debe ser único para cada mensaje cifrado. Si no se utiliza un IV diferente, se compromete la seguridad del sistema. Tampoco se puede paralelizar.
Ventajas:
- Adecuado para aplicaciones que requieren el cifrado de datos de longitud variable o en tiempo real.
- Un error en un bloque de texto cifrado no afecta a otros bloques, lo que facilita la corrección de errores.
- El keystream puede ser precomputado y reutilizado para múltiples bloques de texto plano.
Desventajas:
- Requiere un IV único para cada cifrado, que debe ser gestionado y transmitido de manera segura.
- Reutilizar el mismo IV con la misma clave para cifrar diferentes mensajes puede comprometer la seguridad.
Blowfish y TwoFish
Blowfish fue otro sucesor simétrico de DES, diseñado como un cifrado por bloques como AES pero con una longitud de clave que va de 32 bits a 448 bits. Se diseñó como una herramienta pública, sin licencia y gratuita. Esta versión inicial se actualizó a TwoFish, una versión avanzada de este último, que utiliza un tamaño de bloque de 128 bits, ampliable hasta 256 bits.
La principal diferencia con otros algoritmos de cifrado es que utiliza 16 rondas de cifrado, independientemente del tamaño de la clave o de los datos. La razón principal por la que TwoFish no se considera el mejor algoritmo simétrico es que AES ganó reconocimiento y fue rápidamente adoptado como estándar por los fabricantes, lo que significa que tenía la ventaja técnica superior.
3DES o Estándar de Cifrado de Datos Triple
Por último, el sucesor directo de DES es 3DES, o Triple Des. Este algoritmo simétrico es una forma avanzada del obsoleto algoritmo DES que utiliza una clave de 56 bits para cifrar bloques de datos. Su concepto es sencillo: aplica DES tres veces a cada bloque de información, triplicando la clave de 56 bits en una de 168 bits.
Debido a la aplicación del mismo proceso tres veces, 3DES es más lento que sus homólogos más modernos. Además, al utilizar bloques de datos pequeños, el riesgo de descifrado por fuerza bruta es mayor.
Algoritmos comunes de cifrado asimétrico
RSA o Rivest-Shamir-Adleman
Considerado un elemento básico del cifrado asimétrico. Diseñado por los ingenieros que le dieron su nombre en 1977, RSA utiliza la factorización del producto de dos números primos para ofrecer un cifrado de 1024 bits y una longitud de clave de hasta 2048 bits. Según una investigación realizada en 2010, se necesitarían 1.500 años de potencia de cálculo para descifrar su versión más pequeña de 768 bits.
Sin embargo, esto significa que es un algoritmo de cifrado más lento. Como requiere dos claves diferentes de una longitud increíble, el proceso de cifrado y descifrado es lento, pero el nivel de seguridad que proporciona para la información sensible es incomparable.
ECC o criptografía de curva elíptica
Este método fue propuesto originalmente en 1985 por Neal Koblitz y Victor S. Miller, para ser implementado años después en el 2004. ECC utiliza una operación matemática bastante difícil basada en curvas elípticas sobre un campo finito, en lo que se llama la curva elíptica Diffie-Hellman.
Con ECC tienes una curva, definida por una función matemática, un punto inicial (A) y un punto final (Z) en la curva. La clave está en que para llegar a Z, debes hacer una serie de "saltos", o multiplicaciones que han dado como resultado Z. Esta cantidad de saltos es la clave privada.
Los cálculos aleatorios pueden dar lugar a cualquier tipo de disposición en la curva.
Incluso si se tiene el punto inicial y final (clave pública), y la curva, es casi imposible descifrar la clave privada. Esto se debe a que ECC es lo que se llama una "puerta trampa", o una operación matemática que es fácil y rápida de completar, pero extremadamente difícil de revertir.
ECC, o ECDH, es una fórmula matemática de tal fuerza que puede igualar la seguridad de un sistema de clave de 1024 bits con una clave de 164 bits. En su configuración más alta, 512 bits, ECC puede alcanzar un nivel de seguridad comparable al de una clave RSA de 15360 bits.
Para hacernos una idea, las claves RSA de 2048 bits son el estándar bancario, pero ECC de 521 bits ofrece el equivalente a una clave RSA de 15360 bits.
Teniendo en cuenta los hechos mencionados, ECC se considera el futuro del cifrado. Es asimétrico, pero es capaz de proporcionar un nivel de seguridad de 256 bits con una longitud de clave máxima de 521 bits, lo que garantiza una rápida velocidad de cifrado con una alta complejidad de descifrado para garantizar que los datos sensibles permanezcan seguros.
ECC también es muy atractivo para los móviles, donde la potencia de procesamiento es baja y las transferencias de datos son altas.
Algoritmo Diffie-Hellman
El algoritmo Diffie-Hellman es un método de intercambio de claves criptográficas que permite a dos partes, que no se han conocido previamente, establecer una clave secreta compartida sobre un canal de comunicación inseguro. Fue propuesto por Whitfield Diffie y Martin Hellman en 1976 y es uno de los primeros métodos prácticos de intercambio de claves en la criptografía.
Asimismo, el algoritmo se basa en la dificultad de calcular logaritmos discretos en un grupo multiplicativo de números enteros modulo un número primo grande. Este problema matemático es fácil de calcular en una dirección (multiplicación y exponenciación), pero difícil de invertir sin la información adecuada (logaritmo discreto).
En cuanto a sus usos comunes están los protocolos de seguridad, VPN, sistemas de mensajería segura, cifrado de correo electrónico.
Ventajas:
- Proporciona una manera segura de intercambiar claves a través de un canal inseguro sin necesidad de una clave previamente compartida.
- Las claves generadas son simétricas, lo que simplifica el proceso de cifrado y descifrado.
Desventajas:
- Aunque el intercambio de claves públicas no revela la clave privada ni la clave compartida, las claves públicas deben ser protegidas contra manipulaciones (ataques man-in-the-middle).
- La seguridad del algoritmo depende de la elección de números primos grandes y exponentes lo suficientemente grandes para prevenir ataques de logaritmo discreto.
¿Qué algoritmo de cifrado de datos es el mejor?
He aquí un rápido resumen de todos los algoritmos y sus mejores cualidades:
AES (simétrico):
AES es uno de los algoritmo de cifrado simétrico más implementados conocido por su eficiencia y seguridad. Utiliza tamaños de clave de 128, 192 y 256 bits, proporcionando un alto nivel de seguridad. Su diseño optimizado permite una rápida ejecución tanto en hardware como en software, haciéndolo ideal para aplicaciones de alta velocidad y gran volumen de datos. Además, posee una opción de longitud de clave variable que le da una seguridad extra. Es ideal cuando se manejan grandes cantidades de datos encriptados.
TwoFish (Symmetric - antes BlowFish):
TwoFish, sucesor de BlowFish, es otro algoritmo de cifrado simétrico que ofrece flexibilidad y seguridad. El principal atractivo de TwoFish es su flexibilidad en el rendimiento, ya que le permite controlar totalmente la velocidad de cifrado. Admite claves de hasta 256 bits y es conocido por su capacidad de ser implementado eficientemente en hardware y software. TwoFish proporciona un equilibrio entre seguridad y rendimiento, siendo adecuado para una variedad de aplicaciones desde sistemas embebidos hasta servicios de comunicación segura.
3DES (simétrico):
3DES es una versión mejorada del DES clásico que aplica el algoritmo DES tres veces a cada bloque de datos, aumentando significativamente la seguridad. Aunque es más lento en comparación con AES, 3DES sigue siendo una opción confiable para aplicaciones heredadas donde la compatibilidad con sistemas más antiguos es crucial. Asimismo, se sigue utilizando ampliamente en los servicios financieros para cifrar los PIN de los cajeros automáticos y las contraseñas de UNIX.
RSA (asimétrico):
Es un algoritmo de cifrado asimétrico que se basa en la dificultad de factorizar grandes números primos. Su principal ventaja es la capacidad de proporcionar seguridad robusta a través de claves públicas y privadas, permitiendo un intercambio de claves seguro y autenticación mediante firmas digitales. RSA es ampliamente utilizado en protocolos de seguridad en internet, como SSL/TLS.
Como su velocidad no es conveniente para procesar grandes cantidades de datos, el cifrado RSA se utiliza sobre todo en firmas digitales, cifrado de correo electrónico, certificados SSL/TLS y navegadores.
ECC (asimétrico):
Es otro algoritmo de cifrado asimétrico que ofrece alta seguridad con claves mucho más pequeñas en comparación con RSA. Esto se traduce en una mayor eficiencia y menor consumo de recursos, lo que lo hace ideal para dispositivos móviles y sistemas con limitaciones de hardware. ECC es especialmente valioso en aplicaciones que requieren un alto rendimiento y seguridad, como en criptomonedas y comunicaciones móviles seguras.
La combinación de bajo coste, bajo impacto y alta seguridad lo convierte en el estándar ideal para proteger móviles y aplicaciones sensibles. Es probable que sea el algoritmo del futuro.
Conclusión
El cifrado puede ser una tarea intimidante. Los datos están en todas partes y hay que tenerlos en cuenta a todos los niveles: datos en reposo, datos en movimiento, quién y dónde tiene que acceder a esta información, cómo se transmite y qué tipos de interacciones tiene con la información sensible que hay que cifrar.
Podría encriptar las comunicaciones de su empresa, la información del navegador web, las transacciones de comercio electrónico, la base de datos de su empresa, los discos duros o los datos de los clientes y usuarios. Dar el primer paso puede parecer difícil, pero es necesario documentar todas las interacciones de datos y elaborar un plan. De este modo, entenderás qué tipos de cifrado necesitarás.
Afortunadamente, hay muchas herramientas de cifrado sencillas que ya están a tu disposición, listas para ser activadas rápidamente mientras averiguas el alcance de tus protocolos de seguridad de datos. FileVault en macOS viene integrado y listo para cifrar tus ordenadores Mac con AES. Prey puede ayudar con los ordenadores de Microsoft, utilizando BitLocker y AES para proporcionar cifrado de disco a tus dispositivos. Es ideal si tienes una fuerza de trabajo remota. Los datos son encriptados remotamente, lo que resulta en un proceso sencillo que mantendrá tu empresa segura.
En Prey ofrecemos una prueba gratis para este servicio. Échale un vistazo a nuestra prueba aquí.