Como saben, la administración de claves es una de las tareas más difíciles en criptografía. Justo el otro día, el documento "Mecanismos de reintroducción de claves simétricas" se publicó como
RFC 8645 . Es el resultado de dos años y medio de trabajo del grupo de investigación CFRG, que determina el desarrollo y uso de la criptografía en el IETF, y se basó en muchos años de investigación y la experiencia de especialistas rusos. A continuación, explicamos brevemente cuál es la esencia de este RFC y por qué resultó ser solo eso.
Un pequeño susto ...
En 2016, dos investigadores franceses del Instituto Inria publicaron una descripción del ataque
Sweet32 . La idea que usaron es obscenamente simple y se basa en el llamado
"problema de cumpleaños" : si calculamos los valores de un mapeo aleatorio
luego en aproximadamente
pruebas en la secuencia resultante al menos dos valores coinciden. Desde el punto de vista de la criptografía, esto significa que un cifrado de bloque con una longitud de bloque
el bit ya no se puede cifrar en una clave
bloques de texto sin formato.

Este ataque ya se consideró en detalle en
Habré ; aquí solo notamos que los autores aprovecharon el hecho de que algunas bibliotecas criptográficas ampliamente utilizadas no cambiaron la clave de sesión a tiempo. Esto nos permitió acumular muchos datos y simplemente usar la propiedad probabilística especificada si la conexión usaba un cifrado de bloque con una longitud de bloque de 64 bits. Esto inmediatamente dio lugar a una histeria grave en el entorno casi criptográfico con respecto a la necesidad de un rechazo urgente de tales cifras.

¿Pero es la longitud del bloque?
De hecho, ¿vale la pena aislar un cifrado solo porque tiene una longitud de bloque corta: ¿qué pasa si cambia la clave periódicamente? Esto se puede hacer usando la llamada función de derivación de clave (
KDF ). Dichas funciones le permiten obtener nuevas claves basadas en las antiguas, al tiempo que conservan la propiedad de aleatoriedad de las claves (consulte, por ejemplo,
este artículo ). Dichas funciones, por ejemplo, están determinadas por las recomendaciones de estandarización rusas
P 1323565.1.022-2018 y
P 50.1.113-2016 . Sin embargo, hay un "pero": estas son conversiones bastante complejas y no muy rápidas basadas en funciones hash, lo que reducirá significativamente la velocidad de cifrado.
¿Es posible hacer algo más rápido?
Tal intento se realizó en 2006 en
RFC 4357 , donde se propuso el mecanismo de malla de clave CryptoPro, que produce una clave derivada al cifrar una constante fija con un cifrado de bloque en un modo de reemplazo simple.

Era un algoritmo muy rápido, prácticamente sin efecto en la velocidad de encriptación y protegiendo contra situaciones tan ridículas como las utilizadas en Sweet32, y también, por ejemplo, contra ataques en canales laterales. Sin embargo, en la conferencia Ruscrypto de 2015, se
demostró que tal transformación reduce el poder del conjunto de claves, es decir. con cada nuevo cambio de clave, el número de sus posibles opciones de selección de clave disminuye. El autor señaló que esto no tuvo un impacto significativo en la seguridad, pero sin embargo se hizo interesante si se podía hacer aún mejor.

Resultó no tan simple
Desafortunadamente, los milagros no existen, y no es posible ofrecer un mecanismo rápido comparable a los KDF convencionales, sin embargo, podemos
demostrar la seguridad de varios esquemas modificados, como el Key Meshing especificado para cada modo de cifrado específico. Son estos mecanismos los que se propusieron y
justificaron para el modo gamma CTR ampliamente utilizado (CTR-ACPKM, Prolongación criptográfica avanzada de material clave) y el desarrollo de un inserto de simulación OMAC (OMAC-ACPKM) a partir del estándar nacional GOST R 34.13-2015.
Las clasificaciones de seguridad para estos modos se obtienen utilizando el llamado aparato
"Durabilidad demostrable" .
Estos modos fueron adoptados en Rusia como recomendaciones para la estandarización de
R 1323565.1.017-2018 .
Es esta forma de trabajar con claves que permite que las herramientas criptográficas implementen conjuntos criptográficos TLS 1.2 rusos (definidos en
las recomendaciones de estandarización R 1323565.1.020-2018 ) para cumplir con los requisitos de protección criptográfica rusa para clases altas.
Trabaja en el IETF
Los mecanismos desarrollados se adaptaron perfectamente como respuesta a la discusión mencionada al comienzo del artículo sobre si debería haber cifrados con una longitud de bloque corta o no.
El desarrollo del documento correspondiente, que más tarde se convirtió en RFC 8645, fue encargado por los presidentes de CFRG Kenny Paterson y Alexei Melnikov por un grupo internacional de expertos dirigido por Stanislav Smyshlyaev. La contribución al desarrollo del documento final fue realizada por Evgeny Alekseev, Ekaterina Smyshlyaeva y Lilia Akhmetzyanova (CryptoPro), Shay Gueron (Universidad de Haifa), Daniel Fox Franke (Akamai Technologies), así como el ex jefe de IETF Russ House (Vigil Security); En varias etapas, especialistas importantes como Mihir Bellare (Universidad de California), Scott Fleurer (Cisco), Yoav Nir (Checkpoint), Dmitry Belyavsky (Cryptocom) y Paul Hoffman (ICANN) se unieron al trabajo.
En comparación con las recomendaciones rusas, los mecanismos ACPKM para modos tales como CBC, CFB y GCM se agregaron a este RFC, que, como probablemente ya entendió, requería
evidencia separada
.Resumen
Como ya se señaló, a pesar de que el enfoque propuesto de alguna manera no es universal y requiere justificaciones de seguridad separadas para cada modo individual, premiamos la alta velocidad, la seguridad de ataques como Sweet32 y, no menos importante, los ataques de canales laterales