Articulo de referencia

Cifrado múltiple

El cifrado múltiple consiste en cifrar un mensaje ya cifrado una o más veces, utilizando el mismo algoritmo o uno diferente. También se conoce como cifrado en cascada , apilamie...

El cifrado múltiple consiste en cifrar un mensaje ya cifrado una o más veces, utilizando el mismo algoritmo o uno diferente. También se conoce como cifrado en cascada , apilamiento de cifrados , cifrado múltiple y supercifrado . El supercifrado se refiere al cifrado de nivel superior de un cifrado múltiple.

Algunos criptógrafos, como Matthew Green de la Universidad Johns Hopkins , afirman que el cifrado múltiple aborda un problema que en su mayor parte no existe:

Los cifrados modernos rara vez se rompen... Es mucho más probable que te veas afectado por malware o un error de implementación que sufrir un ataque catastrófico contra el Estándar de Cifrado Avanzado (AES).

Cifrado múltiple, https://blog.cryptographyengineering.com/2012/02/02/multiple-encryption/ (2 de febrero de 2012)

Sin embargo, a partir de la cita anterior, se puede argumentar a favor del cifrado múltiple, concretamente, una mala implementación. El uso de dos criptomódulos y procesos de clave diferentes de dos proveedores distintos requiere que los sistemas de ambos proveedores se vean comprometidos para que la seguridad falle por completo.

Claves independientes

Si se eligen dos cifrados cualesquiera y la clave utilizada es la misma para ambos, el segundo cifrado podría descifrar el primero, parcial o totalmente. Esto se aplica a los cifrados en los que el proceso de descifrado es idéntico al de cifrado (un cifrado recíproco ) : el segundo cifrado descifraría completamente el primero. Si un atacante lograra recuperar la clave mediante el criptoanálisis de la primera capa de cifrado, podría descifrar todas las capas restantes, suponiendo que se utilice la misma clave para todas ellas.

Para evitar ese riesgo, se pueden utilizar claves que sean estadísticamente independientes para cada capa (por ejemplo, generadores de números aleatorios independientes ).

Lo ideal sería que cada clave tuviera procesos de generación, compartición y gestión separados y diferentes.

Vectores de inicialización independientes

Para los procesos de cifrado y descifrado que requieren compartir un vector de inicialización (IV) o un valor aleatorio ( nonce) , estos suelen compartirse abiertamente o hacerse públicos al destinatario (y a todos los demás). Una buena práctica de seguridad consiste en no proporcionar nunca los mismos datos en texto plano y cifrado al usar la misma clave e IV. Por lo tanto, se recomienda (aunque por el momento no hay pruebas concretas) utilizar IV diferentes para cada capa de cifrado.

Importancia de la primera capa

Con la excepción del cifrado de un solo uso , ningún cifrado ha demostrado teóricamente ser inquebrantable. Además, es posible encontrar ciertas propiedades recurrentes en los textos cifrados generados por el primer cifrado. Dado que estos textos cifrados son los textos planos utilizados por el segundo cifrado, este último puede volverse vulnerable a ataques basados ​​en propiedades conocidas de los textos planos (véanse las referencias a continuación).

Esto ocurre cuando la primera capa es un programa P que siempre añade la misma cadena S de caracteres al principio (o al final) de todos los textos cifrados (conocida comúnmente como número mágico ). Al encontrarse en un archivo, la cadena S permite al sistema operativo saber que debe ejecutar el programa P para descifrarlo. Esta cadena debe eliminarse antes de añadir una segunda capa.

Para prevenir este tipo de ataque, se puede utilizar el método proporcionado por Bruce Schneier : [ 1 ]

  • Genera un relleno aleatorio R del mismo tamaño que el texto plano.
  • Encripta R usando el primer cifrado y la primera clave.
  • Aplica la operación XOR al texto plano con el código fuente y, a continuación, cifra el resultado utilizando el segundo cifrado y una clave diferente (!).
  • Concatena ambos textos cifrados para construir el texto cifrado final.

Un criptoanalista debe descifrar ambos códigos para obtener información. Sin embargo, esto tiene el inconveniente de que el texto cifrado resulta ser el doble de largo que el texto original.

Cabe señalar, sin embargo, que un cifrado inicial débil puede simplemente hacer que un segundo cifrado vulnerable a un ataque de texto plano elegido también sea vulnerable a un ataque de texto plano conocido . No obstante, un cifrado de bloques no debe ser vulnerable a un ataque de texto plano elegido para considerarse seguro. Por lo tanto, el segundo cifrado descrito anteriormente tampoco es seguro según esa definición. En consecuencia, ambos cifrados aún deben ser vulnerados. El ataque ilustra por qué se hacen suposiciones estrictas sobre la seguridad de los cifrados de bloques y por qué nunca se deben utilizar cifrados que estén incluso parcialmente vulnerados.

La regla de dos

La regla de dos es un principio de seguridad de datos del programa Soluciones Comerciales para Programas Clasificados (CSfC) de la NSA . [ 2 ] Especifica dos capas de criptografía completamente independientes para proteger los datos. Por ejemplo, los datos podrían protegerse mediante cifrado por hardware en su nivel más bajo y cifrado por software en la capa de aplicación . Esto podría implicar el uso de dos criptomódulos de software validados por FIPS de diferentes proveedores para cifrar y descifrar los datos.

La importancia de la diversidad de proveedores y/o modelos entre las capas de componentes radica en eliminar la posibilidad de que los fabricantes o modelos compartan una vulnerabilidad. De esta manera, si un componente se ve comprometido, aún existe una capa completa de cifrado que protege la información en reposo o en tránsito. El programa CSfC ofrece soluciones para lograr la diversidad de dos maneras. «La primera consiste en implementar cada capa utilizando componentes producidos por diferentes fabricantes. La segunda consiste en utilizar componentes del mismo fabricante, siempre que este haya proporcionado a la NSA pruebas suficientes de que las implementaciones de ambos componentes son independientes entre sí». [ 3 ]

Este principio se aplica en el teléfono móvil seguro de la NSA, denominado Fishbowl. [ 4 ] Estos teléfonos utilizan dos capas de protocolos de cifrado, IPsec y el Protocolo de Transporte Seguro en Tiempo Real (SRTP), para proteger las comunicaciones de voz. El Samsung Galaxy S9 Tactical Edition también es un componente CSfC aprobado.

Referencias

  1. Schneier, Bruce (30 de marzo de 2015). Criptografía aplicada, segunda edición: protocolos, algoritmos y código fuente en C. Wiley Computer Publishing. pág.  368. ISBN 9781119096726.
  2. "Soluciones comerciales para programas clasificados" . Agencia de Seguridad Nacional de EE. UU. Archivado del original el 25 de diciembre de 2015. Consultado el 24 de diciembre de 2015 .
  3. "Paquete de capacidades de acceso móvil" . Agencia de Seguridad Nacional de EE . UU. Consultado el 28 de febrero de 2020 .
  4. Adams, David; Maier, Ann-Kathrin (23 de octubre de 2019). Estudio de los Siete Grandes (2016): 7 criptomensajeros de código abierto para comparar (inglés/alemán) (PDF) . Norderstedt: BoD – Books on Demand. ISBN 978-3-7504-0897-5.

Lecturas adicionales

  • "Cifrado múltiple" en "Glosario de criptografía y diccionario de criptografía técnica de Ritter"
  • Confidencialidad mediante cifrado múltiple, en: Adams, David / Maier, Ann-Kathrin (2016): Estudio BIG SEVEN, comparación de criptomensajeros de código abierto – o: Revisión y auditoría exhaustivas de confidencialidad de GoldBug, cliente de correo electrónico cifrado y mensajero instantáneo seguro, descripciones, pruebas y análisis de 20 funciones de la aplicación GoldBug basadas en los campos esenciales y los métodos de evaluación de los 8 principales manuales internacionales de auditoría para investigaciones de seguridad informática, incluyendo 38 figuras y 87 tablas, URL: https://sf.net/projects/goldbug/files/bigseven-crypto-audit.pdf – Idioma inglés/alemán, versión 1.1, 305 páginas, junio de 2016 ( ISBN 978-1-103-68003-0– DNB: 2016B14779).
  • Una "forma de combinar múltiples algoritmos de bloques" de manera que "un criptoanalista deba descifrar ambos algoritmos" en el §15.8 de Criptografía Aplicada, Segunda Edición: Protocolos, Algoritmos y Código Fuente en C, de Bruce Schneier. Wiley Computer Publishing, John Wiley & Sons, Inc.
  • S. Even y O. Goldreich, Sobre el poder de los cifrados en cascada, ACM Transactions on Computer Systems, vol. 3, págs.  108–116, 1985.
  • M. Maurer y JL Massey, Cifrados en cascada: La importancia de ser el primero, Journal of Cryptology, vol. 6, n.º 1, págs.  55–61, 1993.