en este artículo, el segundo de una serie de 3 partes sobre tecnología de encriptación de clave simétrica, analizamos el desarrollo de Algoritmos de encriptación de clave simétrica y la gama de algoritmos disponibles hoy en día, junto con sus fortalezas y debilidades, así como la importancia de la cripto-agilidad.,

familia de Algoritmos DES

el algoritmo de cifrado por bloques DES (Data Encryption Standard) original, también conocido como Dea (Data Encryption Algorithm), fue desarrollado por IBM a principios de la década de 1970 y publicado (con pequeñas alteraciones) como estándar por el Gobierno de los Estados Unidos en 1977, convirtiéndose rápidamente en un estándar internacional de facto.

sin embargo, con una longitud de clave de solo 56 bits (más 8 bits de paridad), quedó claro en la década de 1990 que ya no era lo suficientemente seguro contra el forzamiento bruto de la clave utilizando computadoras modernas, que estaban creciendo en poder de acuerdo con la Ley de Moore., Así Triple-DES (también conocido como TDES, TDEA o 3DES) se introdujo en 1998, utilizando un paquete de 3 teclas, dando una fuerza nominal de 168 bits, pero al precio de un rendimiento lento. Opcionalmente, la longitud de la clave se puede reducir a 112 bits haciendo que dos de las claves sean iguales – esto a veces se llama 2DES o 2TDEA; sin embargo, esto no es más rápido y una clave de 112 bits ya no se considera segura.

Triple-DES sigue siendo ampliamente utilizado hoy en día, particularmente en la industria financiera, aunque muchas aplicaciones omitieron Triple-DES debido a su bajo rendimiento y pasaron directamente de DES a AES en su lugar., Sin embargo, a pesar de que una clave de 168 bits todavía se considera fuerte, ya no se recomienda para nuevas aplicaciones porque utiliza un tamaño de bloque pequeño (64 bits). Esto lo hace susceptible a lo que se conoce como el ataque «Sweet 32», lo que significa que la clave se puede romper si se cifran más de 232 bloques de datos sin cambiar la clave. Dado el gran volumen de datos almacenados o transmitidos por los sistemas modernos, esto significa tener que cambiar la clave con frecuencia, lo cual no es práctico.,

familia de Algoritmos RC

Los primeros miembros de la familia de Algoritmos RC, RC2 y RC4 (también conocido como ARC4 o ARCFOUR), fueron diseñados por Ron Rivest (de RSA fame) en 1987. RC2 es un cifrado en bloque de 64 bits que admite una longitud de clave de hasta 128 bits, aunque inicialmente solo fue aprobado para la exportación de EE.UU. con una clave de 40 bits. RC4 es un cifrado de flujo que ha sido muy utilizado (por ejemplo, en el protocolo SSL / TLS y los primeros estándares de seguridad Wi-Fi). Sin embargo, ni RC2 ni RC4 se consideran seguros hoy en día.,

RC5 es un cifrado por bloques con un tamaño de bloque variable (32, 64 o 128 bits), longitud de clave variable (hasta 2.040 bits) y número variable de rondas (hasta 255). Esto permite un equilibrio entre el rendimiento y la seguridad, y todavía se considera seguro cuando se utiliza con parámetros adecuados. Más tarde fue modificado para producir RC6 con un tamaño de bloque fijo de 128 bits como concursante para el estándar de cifrado avanzado – ver más abajo. Sin embargo, RC5 y RC6 no son ampliamente utilizados, ya que están patentados.,

familia de Algoritmos Rijndael (AES)

un subconjunto de la familia de Algoritmos Rijndael de cifrados de bloque fue seleccionado como el estándar de cifrado avanzado (AES) en 2001 para reemplazar a DES, tras un concurso organizado por el Instituto Nacional de estándares y Tecnología (NIST) de los Estados Unidos. Ahora se conoce comúnmente como el algoritmo AES, con un tamaño de bloque de 128 bits y tres opciones de longitud de clave: 128, 192 o 256 bits. El número de rondas varía con la longitud de la clave.,

AES es el algoritmo simétrico de elección para la mayoría de las aplicaciones de hoy en día y es muy utilizado, principalmente con claves de 128 o 256 bits, con la última longitud de clave incluso considerada lo suficientemente fuerte como para proteger los datos militares de alto secreto. Tenga en cuenta que, suponiendo que no hay debilidades conocidas en un algoritmo, una sola clave de 128 bits tomará miles de millones de años para la fuerza bruta utilizando cualquier tecnología de computación clásica hoy o en el futuro previsible (pero vea la computación cuántica a continuación).,

otros algoritmos simétricos

muchos otros cifrados de bloque se han desarrollado a lo largo de los años, como Blowfish, IDEA y CAST-128 (también conocido como CAST5). Sin embargo, la mayoría de los algoritmos más antiguos están limitados por el tamaño de bloque y/o limitaciones de longitud de clave, así como (en algunos casos) problemas de seguridad y/o restricciones de patentes y, por lo tanto, han tenido relativamente poco éxito fuera de una o dos aplicaciones específicas.

se desarrollaron varios cifrados en bloque para participar en la competencia AES, como Twofish, Serpent, MARS y CAST-256., Muchos de estos siguen siendo muy buenos, a pesar de que Rijndael fue elegido en función de una combinación de seguridad, rendimiento y otros factores, por lo que rara vez se utilizan.

también hay muchos ejemplos de otros cifrados de flujo.

algunos gobiernos desarrollan sus propios algoritmos nacionales, ya sea para uso militar o comercial. La administración de Seguridad Nacional de los Estados Unidos (NSA) ha desarrollado muchos algoritmos a lo largo de los años, aunque los detalles de la mayoría permanecen en secreto. Otros ejemplos relativamente conocidos de Algoritmos nacionales incluyen Magma (también conocido como GOST 28147-89) y Kuznyechik (también conocido como GOST R 34.,12-2015) en Rusia, SM1 y SM4 en China y SEED en Corea Del Sur.

actualmente hay mucha investigación sobre algoritmos ligeros, adecuados para su implementación en dispositivos móviles de bajo costo y aplicaciones de Internet de las Cosas (IoT), que generalmente tienen un rendimiento de CPU limitado, memoria limitada y/o energía limitada disponible.

computación cuántica

Cuando la computación cuántica a gran escala esté disponible, posiblemente dentro de unos 10 años, tendrá un gran impacto en la criptografía. En particular, los algoritmos asimétricos utilizados predominantemente hoy en día se romperán efectivamente., Afortunadamente, el impacto en los algoritmos simétricos parece ser menos severo: el algoritmo de Grover tiene el efecto de reducir a la mitad la longitud de la clave, por lo que AES-128 tiene una fuerza efectiva equivalente a una clave de 64 bits, y AES-256 se reduce a la fuerza de una clave de 128 bits. Esto significa que AES-256 todavía se puede utilizar con confianza frente a la computación cuántica (por lo que sabemos hoy en día).

Crypto-agility

Como hemos visto, ningún algoritmo es perfecto: los ataques criptográficos solo se fortalecen a medida que se desarrollan nuevas herramientas y técnicas., Los algoritmos que antes se consideraban fuertes son hoy fáciles de romper en una PC doméstica. Incluso los mejores algoritmos de hoy serán debilitados por la computación cuántica. Se seguirán desarrollando nuevos algoritmos para mejorar la seguridad y dirigir nuevas aplicaciones con necesidades específicas, como IoT.

sin embargo, la historia ha demostrado que cambiar los Algoritmos puede ser más difícil de lo esperado, con viejos algoritmos todavía se utilizan mucho después de que ya no se consideran seguros.

solo tienes que mirar MD5, SHA1, DES, 2TDEA, RC4, RSA-1024 y así sucesivamente para ver lo doloroso y largo que puede ser el proceso.,

El problema es la interoperabilidad. Cuando se han construido ecosistemas enteros alrededor de un algoritmo en particular, al igual que la industria financiera se ha construido alrededor de DES y Triple-DES, se requiere la cooperación de las Naciones, las industrias, los organismos de estándares y los proveedores durante muchos años para efectuar el cambio. Hardware, software, protocolos todos tienen que ser actualizados. Las consecuencias financieras son enormes, sobre todo cuando hay que sustituir la infraestructura existente.,

la computación cuántica amenaza con crear una gran agitación en los próximos 5-10 años, y las empresas que no deseen quedarse estancadas tienen que comenzar a planificar ahora. Todas las nuevas aplicaciones deben diseñarse teniendo en cuenta la» agilidad criptográfica», es decir, la capacidad de cambiar algoritmos a través de actualizaciones de software simples e indoloras. Idealmente, este proceso debe ser controlado y administrado de forma centralizada para evitar tener que llegar a todas y cada una de las aplicaciones individualmente para actualizarlo.,

en el artículo final de esta serie veremos el uso de modos de cifrado con cifrados de bloque simétricos, incluida la necesidad de relleno y vectores de inicialización.

referencias y lecturas adicionales

  • 3DES se retira oficialmente (2018), por Jasmine Henry
  • tendencias en criptografía Parte 1-algoritmos y cifrado (2018), por Rob Stubbs
  • La computación cuántica y su impacto en la criptografía (2018), por Rob Stubbs
  • ¿Qué es la cripto-agilidad?, (2018), por Jasmine Henry
  • pasos para alcanzar la agilidad criptográfica para prepararse para la computación cuántica (2019), por Terry Anton
  • Lograr una gestión criptográfica ágil con Crypto Service Gateway (CSG) (2019), por Rob Stubbs
  • ¿Qué es una capa de abstracción criptográfica? (2018), de Chris Allen
  • convirtiendo la criptografía en un servicio-Parte 1 (2018), de Rob Stubbs

imagen de portada: «hallway» por cortesía Dekai Pilger (pexels.com, CC BY 2.0)