Introduccio´n
El uso de redes informa´ticas, el internet de las cosas y la nube se hace cada vez ma´s extenso y necesario para la vida de las personas, sin embargo, esto trae consigo la exposicio´n de datos personales de los ciudadanos a veces sin la proteccio´n adecuada, por ello, la Criptografía, como ciencia dedicada a la proteccio´n de la informacio´n, ha ganado un mayor espacio en los momentos actuales.
La bu´squeda y disen˜o de protocolos y algoritmos ajustados a cada entorno con las mismas garantías de eficiencia y ma´s seguridad, es una prioridad para los investigadores de la especialidad, sin embargo, esta garantía en el caso de los algoritmos criptogra´ficos radica en el secreto de la llave. En la actualidad el uso creciente de ataques dirigidos a vulnerar la seguridad de estos algoritmos o esquemas de proteccio´n criptogra´ficos deviene, en que los usuarios de las redes deban guardar o memorizar un gran nu´mero de llaves que deben ser cambiadas regularmente, de ahí que la bu´squeda de mecanismos que extiendan el tiempo de vida de las mismas sea una de las líneas de investigacio´n ma´s importantes.
En Criptografía la informacio´n a cifrar es conocida como texto claro o mensaje y para el cifrado de estos son usados algoritmos asime´tricos o sime´tricos en dependencia del uso de la llave. Durante el cifrado de un mensaje con un algoritmo sime´trico de cifrado en bloque se recorren los valores de la permutacio´n determinada de forma univoca por la llave secreta, luego, si la cantidad de bloques determinada por la longitud del mensaje sobrepasa su tiempo de vida, su seguridad se ve afectada seriamente, obliga´ndonos a realizar un cambio de llave para evitar comprometimientos, ya que, a partir de la obtencio´n de una mayor cantidad de informacio´n cifrada con una llave, aumentan las probabilidades de e´xito de disímiles ataques a los sistemas.
Dada la importancia que reviste la proteccio´n de las llaves de cifrado, así como, aumentar la vida u´til de la mismas, este trabajo fue realizado con el objetivo de encontrar en la literatura, diferentes mecanismos usados para incrementar su tiempo de vida, brindar una descripcio´n detallada de estos, su funcionamiento general, características principales, disen˜os ma´s recientes, así como, la seguridad que aportan al cifrado.
Las te´cnicas ma´s usadas encontradas en la literatura pu´blica son conocidas como Mecanismos de cambios de llave o de re-keying, internos, externos y frescos (Medwed et al., 2010; Abdalla and Bellare, 2000; Akhmetz-yanova et al., 2017). Los mecanismos internos de cambio de llave son utilizados para cifrar grandes cantidades de informacio´n mediante un modo de operacio´n determinado, con la peculiaridad de que, cada cierta cantidad de bloques procesados, una nueva llave es utilizada para procesar los siguientes bloques del mensaje. Este nuevo enfoque, estudiado y popularizado en los u´ltimos an˜os, garantiza la seguridad del cifrado cuando el mensaje es muy largo, cambiando la llave de forma perio´dica.
Los mecanismos externos son utilizados a nivel de protocolos, con la peculiaridad, de que el cambio de llave se realiza una vez cifrados una cierta cantidad de mensajes, cuya longitud no sobrepasa su tiempo de vida, por lo que es una variante muy u´til durante el cifrado de varios mensajes de corta longitud.
En el caso particular de los mecanismos frescos, estos surgen como una variante para evitar ataques de canal colateral en dispositivos de peso ligero, realizando el cifrado de cada mensaje con una llave diferente cada vez, por lo que afecta la estructura del cifrado de bloque usado, al generarse una permutacio´n diferente para cada llave.
Estos mecanismos de extensio´n del tiempo de vida de la llaves han surgido tambie´n como alternativa para optimizar la seguridad en otros entornos como son: disen˜o de modos de autenticado (Khairallah, 2019; Dini and Savino, 2011), internet de las cosas (Mugal et al., 2019), redes inala´mbricas de baja potencia (Dini and Savino, 2011) e inclusive, en el disen˜o e implementacio´n de sistemas de almacenamiento (Qin et al., 2017). Este trabajo estará dividido en tres sesiones, donde se explicará el funcionamiento de cada mecanismo de re- keying. Primero, comenzamos con la descripcio´n de los mecanismos de cambio de llave frescos y el entorno donde son aplicados, para que el lector pueda comprender porque su funcionamiento general es aplicable a tales dispositivos, por ende, se define el te´rmino: dispositivo de peso ligero. Se realiza tambie´n un ana´lisis del estado del arte de las u´ltimas propuestas de este mecanismo y la tendencia actual.
El segundo apartado se dedica a los mecanismos de re-keying externos y de igual manera se explica a modo general lo que se define y entiende en la literatura como protocolos criptogra´ficos, entorno donde es aplicada esta variante, su funcionamiento general y los disen˜os expuestos por los investigadores de esta a´rea. La tercera sesio´n está dedicada a los mecanismos internos, el estado del arte de los mismos y su aplicacio´n en modos de operacio´n de algoritmos de cifrado en bloque. Igualmente se explica el funcionamiento general y su ganancia de seguridad en relacio´n al tiempo de vida de las llaves. Para finalizar, se realiza un ana´lisis comparativo de las tres variantes en la sesio´n Resultados y discusio´n.
Mecanismos frescos
El disen˜o de algoritmos aplicables a dispositivos de peso ligero es una de las líneas de investigacio´n ma´s atractiva en la actualidad, por el amplio uso de los mismos en la vida diaria, lo que ha llevado al estudio de su proteccio´n y en particular al uso de la criptografía de peso ligero como medida para aumentar su seguridad y proteccio´n, en particular, contra ataques de canal colateral. Estos dispositivos se caracterizan por tener limitadas propiedades como: conectividad, memoria, CPU, latencia, suministro de energía y otras. Entre los ma´s comunes se pueden encontrar etiquetas RFID (Dispositivos de Identificacio´n de radio frecuencias), redes de sensores inala´mbricos, controladores industriales y dispositivos embebidos. En otras palabras, se trata de dispositivos sencillos, baratos y poco glamurosos. Sus características esenciales es que utilizan micro controla- dores de 4, 8 o 16 bits, sus memorias RAM rondan sobre los 64 bytes e incluso tan solo 16 bytes. Sus conjuntos de instrucciones son muy reducidos y algunos como las etiquetas RFID no tienen batería y se alimentan de la energía electromagne´tica transmitida por el propio lector al acercarlo o bien sus baterías pueden remplazar- se con facilidad como en el caso de los marcapasos. No todos ellos necesitan proteccio´n criptogra´fica, pero en algunas aplicaciones se requerirá proteger los datos en reposo o en tra´nsito y es aquí donde interviene la criptografía de peso ligero.
Esta línea de investigacio´n trae consigo el disen˜o e implementacio´n de algoritmos criptogra´ficos que a pesar de tener entre sus ganancias el consumo de espacio, velocidad u otras propiedades tambie´n hacen que su seguridad sea ma´s de´bil, de ahí el auge de ataques de canal colateral aplicable a tales dispositivos. Muchas son las contramedidas encontradas para prevenir estos ataques como son el Ana´lisis de potencia simple SPA o Ana´lisis de potencia diferencial DPA y entre las ma´s comunes podemos encontrar las te´cnicas de enmascaramiento y el hiding.
El cambio de llave fresco es otra de estas contramedidas, disen˜ada como alternativa para proteger etiquetas de RFID y otros dispositivos de bajo costo y fue propuesto por primera vez en (Medwed et al., 2010) como una solucio´n que provee mejores cotas de seguridad que las contramedidas descritas hasta esa fecha ante ataques de fallo y ataques de potencia simple y diferencial. Este esquema fue disen˜ado para protocolos de respuesta- desafío usados para autenticar tags o microcircuitos de RF baratos incluidos en los dispositivos, capaces de permitir la identificacio´n de objetos o sujetos fuera de la línea de visio´n (non-line-of-sight) conocido como RFID.
El esquema de cambio de llave fresco contiene una funcio´n de cifrado E para cifrar cada desafío o bloque de mensaje X con una llave de sesio´n fresca o reciente. La llave de sesio´n K ∗ es obtenida con la ayuda de una funcio´n g dependiente de la llave maestra K y un nonce pu´blico r como entrada. Los autores en (Medwed et al., 2010) piden como principales exigencias para que este mecanismo sea seguro que la funcio´n E sea segura contra SPA y la funcio´n g contra ambos ataques: SPA y DPA, aunque, en el desarrollo de este mismo artículo proponen condiciones que debe cumplir la funcio´n g motivadas por la combinacio´n de aspectos de la seguridad contra ataques de canal colateral y aspectos de implementacio´n en hardware. El uso de llaves diferentes para cada bloque o desafío que es cifrado hace que los ana´lisis de seguridad desde la seguridad demostrable o probabilística de estos esquemas sean complicados al generarse para cada llave una permutacio´n diferente para el cifrado. En la figura 1 se puede ver una representacio´n del mecanismo de cambio de llave fresco.
Desde el punto de vista criptogra´fico las mejores opciones para la funcio´n g son una funcio´n resumen u otro algoritmo de cifrado en bloque, sin embargo, proteger estos algoritmos sería tan costoso como proteger la misma funcio´n E , en contraste, desde el punto de vista ingenieril, una funcio´n de suma Xor sería lo mejor, de hecho, esta funcio´n cumple con casi todos los requisitos antes expuestos, pero su difusio´n es muy pobre, de aquí que los autores en (Medwed et al., 2010) hayan elegido multiplicacio´n modular y definan la funcio´n g como:
g: (GF(28)[y]/p(y))2 −→ GF(28)[y]/p(y) tal que (k, r) → k ∗ r(1)
En (Medwed et al.) proponen extender este esquema a n partes con bajo costo y muestran que todavía en este escenario permanece seguro, sin embargo, en (Dobraunig et al., 2014) se presenta un ataque gene´rico de texto claro escogido para recuperar la llave sobre ambos esquemas, basado en dos observaciones, la primera es que detectar colisiones en las llaves con un mismo texto claro es fa´cil y la segunda es la posibilidad de obtener la llave de sesio´n con una simple estrategia de tiempo-memoria trade-off. A partir de las observaciones anteriores los autores proponen una nueva condicio´n para la funcio´n de cambio de llave y es que esta sea difícil de invertir, en otras palabras, que sea difícil obtener la llave maestra de la llave de sesio´n y el nonce.
A partir del trabajo de Medwed otros autores se proponen buscar nuevas alternativas para la funcio´n g, en 2013 en (Abdalla et al., 2013) los autores proponen como variante un esquema de cifrado sime´trico resistente a fugas que usa un esquema de cambio de llave resistente a fugas con una prueba de seguridad asociada, usando como algoritmo de cifrado en bloque al AES (Daemen and Rijmen, 2001, 2020) y como esquema de cambio de llave una estructura de datos tipo Skip-list propuesto en los an˜os 80.
En (Bela¨ıd et al., 2014) se realiza un ana´lisis sobre la seguridad de los esquemas resistentes a fugas, imple- mentados en dispositivos de peso ligero desde tres niveles diferentes, a nivel de algoritmo, en la funcio´n de cambio de llave y a nivel estructural, este u´ltimo teniendo en cuenta las debilidades reales de fuga acordes al modelo de fuga basado en la Distancia de Hamming que puedan darse por la implementacio´n. A partir de estos ana´lisis se realizan evaluaciones sobre las componentes específicas de los cifrados de bloque, como son taman˜o de las S-cajas y criterios a cumplir por las permutaciones. Como resultado de este artículo los autores proponen una nueva construccio´n.
A pesar de que el uso de mecanismos de re-keying frescos sea una variante prometedora para la proteccio´n de dispositivos de peso ligero muchos investigadores se han volcado a penetrar estas garantías de seguridad evidentes o a buscar mejores variantes.
En (Dobraunig et al., 2015) por ejemplo se analizan modificaciones para mitigar los ataques realizados a los esquemas de cambio de llave frescos sugeridos en (Medwed et al., 2010; Medwed et al.) y se propone como variante el uso de algoritmos de cifrados en bloque basados en tweak como alternativa ma´s eficiente y con mayor seguridad CPA (Chosen Plaintext Attack). Otras variantes para evitar ataques de canal colateral donde son consideradas la inclusio´n de valores tweak, no solo en el algoritmo de cifrado en bloque, sino tambie´n en el mensaje, se pueden encontrar en los trabajos (Baksi et al., 2018; Avraham et al., 2012). En (Guo and Johansson, 2019) se presenta una nueva variante de ataque de tipo cumplean˜os sobre la base de una reduccio´n ma´s refinada con un polinomio reducible al anillo LPN (Learning Parity with Noise problem) disminuyendo el tiempo de complejidad en el modelo de fuga de 128 bits. Otras variantes de esquemas propuestos y ana´lisis de su seguridad se pueden encontrar en los trabajos (Vuppala et al., 2019; Musale and Chaudhari, 2019), donde son combinados los mecanismos de re-keyind con otras te´cnicas como el enmascaramiento.
Entre los resultados ma´s recientes presentado por Bart Mennink en (Mennink, 2020) se encuentra la propuesta de 3 soluciones generalizadas para re-keying de cifrados en bloque paralelos que superan las cotas del cumplean˜os para bloques de taman˜o n. La primera propuesta de solucio´n implica, luego de la generacio´n de la subllave, una multiplicacio´n y llamadas al nu´cleo del algoritmo de cifrado en bloque, obtenie´ndose una seguridad de 23 . La segunda variante hace dos llamadas al cifrado de bloque y alcanza el o´ptimo de seguridad de 2 n . Finalmente, la tercera solucio´n utiliza una funcio´n de generacio´n de subllaves un poco ma´s grande que no requiere adaptaciones en el nu´cleo de cifrado y tambie´n alcanza una seguridad o´ptima. En el mismo trabajo se construyen adema´s usando este esquema de cambio de llave tres modos de autenticado resistentes a ataques de canal colateral que tambie´n alcanzan las cotas del cumplean˜os.
Un elemento importante en este artículo es que el autor tiene en cuenta la composicio´n de mecanismos de cambio de llave y cifrados de bloques que usan tweat teniendo en cuenta la tendencia desarrollada en la literatura por el uso de estos algoritmos dada la seguridad que proveen. Ejemplo de algoritmos y modos que usan tweat para an˜adir seguridad podemos encontrarlos en (Chakraborti et al., 2021; Maram et al., 2022; Chakraborty and Kundu, 2022) ambos modos disen˜ados para lograr autenticacio´n.
Mecanismos externos
El enfoque externo es realizado a nivel de protocolo y es independiente del subyacente cifrado en bloque y modo de operacio´n. Un protocolo criptogra´fico es el conjunto de acciones coordinadas que realizan dos o ma´s partes o entidades con el objeto de llevar a cabo un intercambio de datos o informacio´n usando para ello algoritmos y me´todos criptogra´ficos permitiendo dar solucio´n a distintos problemas de la vida real, especialmente donde puede existir un grado de desconfianza entre las partes. Ejemplos cla´sicos de protocolos criptogra´ficos son los conocidos Protocolo TLS usado en la mayoría de los casos en conexiones web seguras (HTTPS), protocolo Diffie-Hellman para intercambio de llave y Kerberos para establecimiento de llaves y secreto compartido.
Para el trabajo a este nivel, los mecanismos externos asumen que la llave es transformada despue´s de cifrar un nu´mero limitado de mensajes completos y es recomendado en protocolos que tienen una forma adecuada de dividir un mensaje largo en varias partes. A partir de este enfoque el nu´mero de mensajes que pueden ser procesados de forma segura con una llave K se incrementa sustancialmente siguiendo la idea presentada en la figura 2.
Para este tipo de mecanismo se pueden usar dos tipos de construcciones para el procesamiento de las llaves, el enfoque paralelo o en serie, en el primer caso el procesamiento de datos de las llaves es generado directamente de la llave inicial y son independientes unas de otras y en el caso seriado, las llaves dependen del estado que es actualizado despue´s de la generacio´n de cada llave. Otro enfoque del cambio de llave externo visto como una generalizacio´n del enfoque paralelo externo es el mecanismo basado en a´rboles.
Para obtener un esquema de re-keying externo se deben vincular un esquema de cifrado base, un generador y el tiempo de vida de la llave, de esta manera, dado un esquema de cifrado sime´trico con sus respectivos algoritmos de generacio´n de llaves, cifrado y descifrado S E = (Ke , E , D ) y G = (Kg , N ) un generador stateful con taman˜o de bloque k, donde k es el taman˜o de la llave del esquema base y l > 0 el tiempo de vida de la subllave, obtenemos entonces un esquema de cifrado extendido de la forma S E [S E , G , l] = (K, E , D ).
En los trabajos (Abdalla and Bellare, 2000, 2021) se propone un teorema para medir la seguridad de los mecanismos externos haciendo uso de las nociones de seguridad de Indistinguibilidad Izquierda-Derecha definida en (Bellare et al., 1997) para los esquemas de cifrado sime´tricos:
Teorema 1
Dado S E un esquema de cifrado base con taman˜o de llave k, G un generador stateful con taman˜o de bloque k y l > 0 el tiempo de vida de la subllave y dado S E = S E [S E , G , l] el esquema de cifrado extendido con cambio de llave asociado, entonces
Advind−cpa(t, ln, m) ≤ Advprg (t) + n · Advind−cpa(t, l, m)
S E G,n S E
La interpretacio´n cualitativa de este teorema, es que si el generador y el esquema de cifrado base o subyacente son seguros, tambie´n lo será el esquema de cifrado con cambio de llave. Desde el punto de vista cuantitativo se puede interpretar que la seguridad de cifrar l · n mensajes con el esquema extendido, esta´ relacionada con la pseudoaleatoriedad de n bloques de salida del generador y la seguridad de cifrar l mensajes bajo una sola llave aleatoria, de aquí, que el te´rmino de la ventaja del adversario Adv ind−cpa(t, l, m) sea multiplicado por n y haya una ganancia clara: la seguridad del esquema de cifrado base esta´ relacionada con el cifrado de solo l mensajes. En otras palabras se puede cuantificar la seguridad de los mecanismos externos en funcio´n de la seguridad de las primitivas que usa.
La demostracio´n de este teorema puede encontrarse en (Abdalla and Bellare, 2021), así como, los corolarios que muestran la seguridad de los esquemas basados en generadores paralelos y en serie. Con estos ana´lisis de seguridad se evidencia que el aumento de seguridad es posible y que se puede medir de manera general la seguridad de variados esquemas re-keyed eligiendo los para´metros o´ptimos para minimizar la ventaja de los adversarios. Ejemplos de construcciones de cambios de llave externos se pueden encontrar en (Liu, 2002; Chen et al., 2008; Prakash et al., 2016; Gueron and Lindell, 2017; Bock et al., 2019).
Uno de los u´ltimos disen˜o encontrados en la literatura (Tsypyschev and Morgasov, 2022) es un artículo pro- puesto por Vadim Tsypyschev y Iliya Morgasov donde se propone una variante externa seriada del modo CFB llamado por los autores Multi-key CFB, de forma abreviada MCFB. Con este disen˜o se busca construir un generador de secuencia pseudoaleatorias de peso ligero, sin embargo, en su ana´lisis de seguridad en el modelo de seguridad demostrable LOR-CPA se encuentran incongruencias relacionadas con el teorema sobre la seguridad de los mecanismos externos propuesto en (Abdalla and Bellare, 2021).
Mecanismos internos
El me´todo de cambio de llave interno es un enfoque que incrementa el tiempo de vida de las llaves usando una transformacio´n de los datos de la llave durante el procesamiento de cada mensaje diferente. Tal mecanismo es construido dentro de un modo de operacio´n particular, de ahí el nombre de mecanismo interno. Cada mensaje es procesado comenzando con la misma llave (la primera llave de seccio´n) y cada llave de seccio´n es actualizada usando cierta te´cnica de actualizacio´n despue´s de procesar una cantidad determinada de bloques del mensaje (seccio´n), la cual es medida en bloques y se determina sin ningu´n protocolo específico, sino dependiendo de los requerimientos del sistema y el tiempo de vida de la llave.
Los algoritmos de cifrado en bloques se definen como transformaciones que operan sobre bloques de taman˜o fijo y los modos de operacio´n surgen como alternativa o variante al cifrado de mensajes o textos claros que su longitud superan el taman˜o de dichos bloque, por lo que son los que definen como se procesan y combinan los bloques de salida del algoritmo para obtener el texto cifrado. Los modos de confidencialidad considerados como cla´sicos son el ECB, CBC, OFB, CFB y CTR (PUB, 1980; Knudsen, 1994; Dworkin, 2001; Roga- way, 2011) por lo que hemos encontrado en la literatura variantes de mecanismos de re-keying interno que constituyen modificaciones de los mismos.
En este enfoque tiene un papel fundamental el taman˜o de la seccio´n y este viene dado por las limitaciones del tiempo de vida de la llave que será usada, estas limitaciones pueden estar dadas por propiedades combinatorias del modo de operacio´n probabilísticas (Lavrikov and Shishkin, 2019) o demostrable (Bellare et al., 1997; Anand et al., 2016; Tsypyschev and Morgasov, 2022; Nemoz et al., 2022; Maram et al., 2022), ataques de canal colateral (Black and Urtubia, 2002; Liu, 2002; Perusheska et al., 2002; Suga, 2018; Banerjee et al., 2022; Lee et al., 2022; Noura et al., 2019a) o ataques conocidos al cifrado en bloque que se utiliza (Rohit and Sarkar, 2022; Bariant and Leurent, 2022; Yadav et al., 2022), etc. Taman˜os de seccio´n grandes hacen que el procesamiento de los mensajes sea ma´s ra´pido, sin embargo, taman˜os pequen˜os aumenta la cantidad de mensajes procesados de forma diferente. Es recomendable usarlo en protocolos que procesen mensajes largos, ya que la ma´xima ganancia en este enfoque se consigue en el incremento de la longitud del mensaje que será cifrado. La idea ba´sica del mismo se puede apreciar en la figura 3.
La idea esencial de hacer dina´micos los modos de operacio´n de los algoritmos de cifrado en bloques no es nueva, se puede encontrar en la bibliografía ejemplos muy antiguos de disen˜os de modos de operacio´n que hacen dina´micos algunos de sus valores secretos para ganar mayor seguridad, entre estos podemos mencionar una variante de los modos OFB y CBC propuesta en (Jansen and Boekee, 1987) en el an˜o 1988 donde los autores proponen una variante del modo de operacio´n OFB con una funcio´n no lineal que trabaja a partir de la siguiente regla de cifrado
C i = E k i (P i )dondeK i = E k (K i−1 ) (2)
En (Knudsen, 1994) se realizan algunos ana´lisis de seguridad de este modo con respecto a su distancia de unicidad, errores de propagacio´n e implementacio´n. En este caso el taman˜o de la seccio´n N coincide con un solo bloque y no se pudo encontrar en la literatura pruebas de su seguridad ni probabilísticas ni bajo la teoría de la seguridad demostrable.
En el artículo (Noura et al., 2019b) se proponen dos mecanismos: fresco e interno. Por lo que adema´s de variar la llave con cada mensaje a ser cifrado, proponen una variante dina´mica del modo de operacio´n ECB en orden de evitar los asuntos asociados al orden esta´tico de cifrado con este modo. Esto se logra seleccionando el orden de los bloques que sera´n cifrado de manera pseudoaleatoria y dina´mica en lugar de la típica orden
secuencial, ya que, la seleccio´n de los bloques está basada en una tabla de permutacio´n dina´mica que es
obtenida de la llave dina´mica, la cual cambia para cada mensaje de entrada. Adema´s se lleva a cabo una mezcla pseudoaleatoria de dos bloques en lugar de uno para incrementar la aleatoriedad del texto cifrado y hacer el criptana´lisis au´n ma´s dif´ıcil. En este caso la llave cambia con cada mensaje y el orden de los bloques tambie´n dependiendo de la llave de cifrado. Este se puede ver como la integracio´n de dos de los mecanismos de extensio´n de vida de las llaves.
En el an˜o 2006 en (Popov et al., 2006) se define el modo de cifrado Key Meshing, para el cifrado de mensajes largos con el algoritmo GOST 28147-89, el cual transforma la llave de cifrado y el vector de inicializacio´n una vez procesado una cierta cantidad de datos, en este caso 1024 octetos equivalentes a 256 bloques de 64 bit de texto claro. Este algoritmo afecta el estado interno del cifrado y no trabaja a nivel de protocolo, adema´s tiene la misma desventaja que el modo OFB, ya que resulta imposible restablecer la sincronizacio´n del cifrado durante el descifre cuando los datos han sido corruptos, perdidos o desordenados. Adema´s, es imposible re- sincronizar incluso si el vector de inicializacio´n para cada paquete de datos es proveído explícitamente. El uso de este algoritmo en protocolos como el IPsec requiere de cuidado especial.
El procesamiento con este algoritmo de 1024 octetos empieza con el ca´lculo de la llave y vector de inicializacio´n de la presente seccio´n, a partir del descifre y cifre en el modo ECB de la llave y el vector IV de la seccio´n anterior a partir de las siguientes fo´rmulas
K[i + 1] = decryptECB(K[i],C) (3)
IV 0[i + 1] = encryptECB(K[i + 1], IVn[i]) (4)
donde C es una constante dada fija.
En el trabajo (Popov et al., 2006) son analizadas las propiedades combinatorias y probabilísticas de este me´todo, pero no hay ana´lisis de su impacto sobre las propiedades criptogra´ficas del modo de cifrado usado, de aquí que, en 2016 en (Akhmetzyanova et al., 2017) se presenten las cotas de seguridad en el modelo de seguridad esta´ndar de la seguridad demostrable para el cifrado Magma en el modo CTR y el modo CPKM previamente usado en el cifrador GOST 28147-89. En este caso se analiza una variante del algoritmo original CPKM donde no es considerado la regla para el cambio del vector de inicializacio´n IV y la llave es procesada con el algoritmo Kuznyechik cuando la seccio´n es de un taman˜o de 128 bits.
En la demostracio´n de seguridad modelan un adversario usando una ma´quina de Turing probabilística, suponiendo que A(t, a, b, . . .) es el conjunto de adversarios cuyas fuentes computacionales (taman˜o del programa y promedio de complejidad) no son mayores que t y el resto de los para´metros (ejemplo: nu´mero de preguntas al ora´culo) esta´n limitados por los valores a, b, . . . para cada caso específico que sea analizado. Si T es un problema decisional donde el adversario A puede distinguir un bit b, entonces la ventaja promedio de este adversario para el problema T es Adv T(A) = Pr[A ⇒ 1|b = 1] − Pr[A ⇒ 1|b = 0].
Los modelos de seguridad ma´s usados derivados del trabajo (Bellare et al., 1997) para los cifrados de bloque son los modelos PRF y PRP-CCA, en ambos casos se debe decidir entre el uso de una funcio´n aleatoria y el cifrado de bloque y el uso de una permutacio´n pseudoaleatoria y el cifrado respectivamente. Ambos casos son consecuentes con los me´todos basados de la paradoja del cumplean˜os y el ataque por fuerza bruta. De aquí que se asuman las siguientes aproximaciones:
AdvPRP−CCA t
t q 2
E (t, q) ≈ 2k , Adv E (t, q) ≈ 2k + 2n(5)
Así como son propuestos los modelos anteriores de seguridad para los cifrados en bloque tambie´n se define en (Bellare et al., 1997) el modelo LOR-CPA como uno de los ma´s usuales a ser usados en las pruebas de seguridad de los modos de operacio´n, en este caso se debe decidir entre el cifrado de dos mensajes de igual taman˜o. Dentro de las relaciones encontradas entre estos modelos se debe destacar la relacio´n entre el modelo PRP y LOR-CPA para el caso del modo de operacio´n CTR:
Adv LOR−CPA(t, q, m) 0 2 · Adv PRF(t + q + nqm, qm) (6)
CTR E
En (Akhmetzyanova et al., 2017) tambie´n es usado adema´s un problema intermedio IND-KM l,m para remplazar el modo CTR-CPKM l por el modo CTR-RK l donde la llave es escogida de forma aleatoria para cada nueva seccio´n, obtenie´ndose para el cifrado Magma las siguientes cotas:
AdvLOR−CPA
2m 2 q 2 l 2 t + q + nmql2 2q 2 l 2 CTR(t, q, ml) ≈2n+2k≈ m ·2n(7)AdvLOR−CPAt q ml2m 2t + qmlq2l2t + qml δ m2q 2 l 2(8)CTR−CPKMl ( , ,) ≈2k+2n +2k+≈2n
y concluyendo que la seguridad con el modo CTR-CPKM l aumenta con respecto a la seguridad con el modo CTR cla´sico. Las cotas para el caso del algoritmo Kuznyechik con taman˜o de seccio´n 128 bits son similares a las obtenidas para el caso del Magma.
El me´todo CPKM de cambio de llave interno tiene la desventaja de que pueden existir colisiones en las entradas a la permutacio´n del cifrado en bloque en los casos de la transformacio´n de la llave y en el procesamiento del mensaje. Debido a esta debilidad los propios autores proponen en un posterior articulo una mejora de este me´todo al asegurar que las constantes usadas en la generacio´n de las llaves y procesamiento del mensaje no son susceptibles a colisiones a trave´s de la transformacio´n usada. Pero este truco es posible solamente para modos en los que se puede predecir la entrada a la transformacio´n de cifrado por lo que esta solucio´n no puede ser usada en cualquier modo (por ejemplo no se puede usar en los modos CBC o CFB).
En (Ahmetzyanova et al., 2017) en 2017 los mismos autores introducen los conceptos de cambio de llave externo e interno como generalizaciones de la derivacio´n de llaves y el me´todo de Key Meshing y se discuten sus características, ventajas y desventajas. De esta misma manera proponen un nuevo mecanismo de extensio´n de las llaves llamado ACPKM, como una mejora del mecanismo de cambio de llave interno CPKM y se modifica el modo de autenticado GCM, así como, se aumentan las cotas de seguridad asociadas al mismo. Se realiza un ana´lisis comparativo con respecto a la implementacio´n en hardware y se concluye con que el me´todo de cambio de llave interno no se puede ver como una alternativa diferente al cambio de llave externo sino como una extensio´n ma´s fuerte o poderosa.
Tambie´n afirman que la estructura de prueba obtenida (problema IKM) es u´til para obtener límites de seguridad para otros modos de operacio´n re-keyed que no usen valores secretos adicionales (sin llave maestra). Los ana´lisis de seguridad de los me´todos internos conducen al ana´lisis de modos abstractos donde las llaves de seccio´n son escogidas independientes y aleatorias. Para algunos modos de operacio´n (CTR, OFB, CBC) la seguridad de sus correspondientes modos con llaves aleatorias puede ser fa´cilmente analizados, usando te´cnicas de argumento híbridos.
En 2017 se presenta en (Ahmetzyanova et al., 2017) el modo de cambio de llave interno de cifrado en bloque CTR - ACPKM y es asumido en el sistema de Estandarizacio´n ruso y debe pasar a trave´s de las u´ltimas etapas formales de normalizacio´n en el Grupo de Trabajo en Ingeniería de Internet o IETF por sus siglas en ingle´s (Internet Engineering Task Force), por lo que varios investigadores rusos han dedicado sus esfuerzos a demostrar la seguridad de estos me´todos.
En 2018 en (Akhmetzyanova et al., 2018) se realiza un ana´lisis de la seguridad de este modo de operacio´n similar al ana´lisis realizado para el algoritmo GCM-ACPKM con la diferencia de que en aquel caso las cotas de seguridad son analizadas con respecto a la cantidad ma´xima de texto claro y en el modo CTR las cotas son dadas a partir del taman˜o total del texto claro, para este ana´lisis tambie´n se emplea el modelo de seguridad IND-CPNA propuesto anteriormente por Bellare y Rogaway en (Bellare and Rogaway, 2004). Este modelo es similar al IND-CPA pero considera un adversario con acceso al nonce. Este es un modelo de seguridad esta´ndar ma´s fuerte que permite analizar las propiedades criptogra´ficas del modo desde el punto de vista computacional cercano al cifrado ideal one-time-pad. Otro ana´lisis comparativo de este modo con respecto al algoritmo Fortuna desde un enfoque estadístico puede ser visto en (Pen˜ate et al., 2020).
En el mecanismo de cambio de llave ACPKM el mensaje es procesado comenzando con una misma llave, la primera llave de seccio´n y cada llave de seccio´n es actualizada usando cierta te´cnica de actualizacio´n de llave despue´s de procesar una cierta cantidad de bloques (una seccio´n). Para el para´metro N el modo de operacio´n de derivacio´n de llaves interno CTR − ACPKM N trabaja de la siguiente forma:
Dado un mensaje de entrada X de m bloques de taman˜o n, este será dividido en lm= [N |secciones (denotadas como X = X
1X
2
. . .
X
l
, donde X
i
∈ {0, 1}
nN
para i ∈ {1, 2, . . . , l − 1} , X
l
∈ {0, 1}
r
,r ≤ nN) que sera´n procesadas bajo la misma llave inicial. La primera seccio´n de cada mensaje es procesado bajo la llave de seccio´n K
1 = K usando el modo CTR. La i-e´sima seccio´n del mensaje es continuamente procesada usando el mismo modo con la llave de seccio´n K
i+1
, la cual fue calculada usando la transformacio´n ACPKM como sigue:
K
i+1
= ACPKM(K
i
) = msb
k
(E
k
i (D
1) . . .
E
k
i (D
s
)) (9)
donde s = [ k | y D 1 , D 2 , . . . .D s ∈ {0, 1} n son constantes arbitrarias diferentes por pares, tales que, (n ) − th
n2
bit (contando desde la derecha) de cada D i es igual a 1. Note que el estado interno (contador) del modo CTR − ACPKM N no es actualizado para cada nueva seccio´n y la condicio´n impuesta a las constantes permite prevenir colisiones en los bloques de entrada a la permutacio´n generada por el cifrado de bloque con la llave
actual. En el ana´lisis de seguridad descrito anteriormente los autores en Akhmetzyanova et al. (2018) proponen el siguiente resultado:
Teorema 2
Sea N el para´metro del modo CTR − ACPKM N . Entonces para cualquier adversario A con un tiempo de complejidad a lo sumo t que hace preguntas, donde el taman˜o ma´ximo del mensaje es a lo sumo m (m ≤2 n/2−1 ) bloques y un total de taman˜o de mensaje de a lo sumo σ bloques, existe un adversario B tal queAdvind−cpnaprp−cpa(σ 1 + s)2 + . . . + (σ l−1 + s)2 + (σ l )2 CTR−ACPKMN (A) ≤ l · Adv E(B) +2n+1 (10) donde s = [k/n|, l = [m/N|, σ j es el taman˜o total de bloques de datos procesados bajo una misma llave de seccio´n K j y σ j ≤ 2 n−1 , σ 1 + . . . + σ l = σ . El adversario B hace a los sumo σ 1 + s preguntas. Adema´s el tiempo de complejidad de B es a lo sumo t + cn(σ + ls), donde c es una constante que depende solamente del modelo de ca´lculo y me´todo de codificacio´n.
Como otro ejemplo de disen˜os de mecanismos de cambio de llave interno se presenta el me´todo propuesto en el an˜o 2018 en (Alekseev et al., 2020) el nuevo modo de operacio´n CTRR (Modo de cambio de llave contador con llaves relacionadas) que usa varias llaves con suma xor fija o modular, que contiene tambie´n como modo de operacio´n base, el CTR y considera como premisa que el sudyacente cifrado de bloque, en este caso, el Kuznyechik, es seguro bajo el modelo de seguridad PRP-RKA (modelo de llaves relacionadas) introducido en (Bellare and Kohno, 2003). En este artículo se obtienen las cotas inferiores de seguridad para este modo en el modelo LOR-CPA dependiendo de la seguridad del cifrador usado en un modelo con dos llaves relacionadas.
La seguridad de un cifrado de bloque en el modelo PRP-RKA de llaves relacionas no se deriva de su seguridad esta´ndar en el modelo PRP-CPA, las oportunidades del adversario en el modelo de llaves relacionadas son mayores que en los modelos esta´ndar, por lo tanto, generalmente la demostracio´n de la seguridad (en este modelo) del cifrado y su ana´lisis requieren significativamente ma´s esfuerzo, ya que, hay requisitos adicionales sobre el esquedule de llave. Sin embargo, el esfuerzo de desarrollar y analizar el cifrado en el modelo de llaves relacionadas está compensado por el hecho de que pueden ser desarrollados criptosistemas ma´s eficientes sobre estos cifrados. La eficiencia se logra debido a la habilidad de trabajar no so´lo con llaves independientes sino tambie´n con llaves relacionadas por una relacio´n simple, a continuacio´n se muestra el esquema de trabajo del algoritmo Kuznyechik en el modo CTRR:
ctr 1 = IV ||0 n/2 , ctr j = Inc(ctr j−1 ), j = 2, . . . , |P| n
K 1 = K, K j = E φ(K j−1)(C 1)|| . . . ||E φ(K j−1)(C k/n ), j = 2, . . . , [|P|/N|
G j = E K i (ctr j ), j = 1, . . . , |P| n , i = [ j · n/N|;
Texto cifrado C es igual a P ⊕ msb |P| (G 1|| . . . ||G |P| n )
En este esquema el texto claro es procesado de la misma manera que en el modo esta´ndar CTR pero la llave que es usada para generar los bloques cifrados G j no es constante y se actualiza despue´s de generar N/n
bloques G j . La transformacio´n φ puede ser algunas de las siguientes:
Resultados y discusio´n
Como resultado de la revisio´n bibliogra´fica podemos decir que una de las ventajas del mecanismo externo se encuentra en el manejo de una llave inicial empleada como llave maestra que nunca es usada para el proceso de cifrado directamente, ya que de ella se derivan las llaves usadas para cada seccio´n. El material cifrado con una llave de seccio´n está estrictamente limitado por el taman˜o de la seccio´n sin influir las limitaciones del tiempo de vida de la llave maestra. El tiempo de vida de la llave incrementa independientemente del modo con una completa y correcta prueba de seguridad basada en la teoría de la seguridad demostrable y las fugas derivadas de una llave derivada no tienen impacto sobre el resto de las llaves derivadas.
En el caso interno las transformaciones efectuadas a la llave siempre se pueden realizar con independencia del taman˜o del mensaje, siempre considerando el modo en las que son usadas sin ser necesario restaurar el proceso de cifrado en dependencia del taman˜o del mensaje y las transformaciones de la llave no se ven limitadas por el tiempo de vida de la llave maestra.
Indudablemente la ventaja del caso externo es la posibilidad de usar las cotas de seguridad obtenidas para el modo de operacio´n base para cuantificar la seguridad del modo externo correspondiente (Ahmetzyanova et al., 2017). Este enfoque es propuesto para realizarse cada vez que una cantidad de mensajes es procesado, sin embargo, el tiempo de vida de la llave depende de la longitud total de los mensajes procesados y no de su cantidad. Estos límites pueden ser acotados por las limitaciones de seguridad del tiempo de vida de la llave. Por tanto la cantidad de mensajes procesados será proporcional a su ma´ximo taman˜o y el largo del mensaje procesado requerirá una fragmentacio´n adicional (Ahmetzyanova et al., 2017).
El enfoque interno no puede ser tratado como una alternativa del enfoque externo sino como una extensio´n ma´s fuerte y permite eliminar el problema de limitacio´n de la longitud del mensaje cuando el tiempo de vida de la llave es limitada.
El caso fresco tiene una estructura ma´s lejana del resto y adema´s de lograr extender el tiempo de vida de las llaves se logra evadir ataques de canal colateral, lo cual no se puede asegurar en el resto de los casos ya que se sigue cifrando con una llave ma´s de un bloque de texto claro, condicio´n que se usa para implementar los ataques de canal colateral, sin embargo, al generarse una nueva permutacio´n con el uso de cada llave de cifrado sus ana´lisis de seguridad son ma´s dif´ıciles de realizar. Sin embargo, este me´todo solo es posible o tiene sentido cuando es significativamente ma´s fa´cil proteger la funcio´n de generacio´n de llave contra los ataques diferenciales que el propio algoritmo original. A pesar de tener una ganancia evidente en su disen˜o se puede apreciar en los trabajos ma´s recientes una tendencia a combinar este mecanismos con otras te´cnicas de enmascaramiento o a ser superada por el uso de valores tweat en diferentes niveles de los algoritmos de cifrado en bloque o en los modos de operacio´n.
Conclusiones
Como resultado de la investigacio´n realizada sobre el estado del arte se encontraron 3 mecanismos de cambio de llave y se pudo establecer los niveles donde es ma´s o´ptimo su uso, concluyendo que su aplicacio´n está de- terminada en primera instancia a partir de las características de los mensajes a cifrar. En el caso particular en que los mensajes puedan considerarse como pequen˜os o de poca longitud se recomienda el uso de mecanismos externos para garantizar el aumento del tiempo de vida de las llaves, sin embargo para el procesamiento de mensajes largos se recomienda el uso de mecanismos internos. Para los entornos de aplicacio´n en dispositivos de peso ligero es recomendable los mecanismos frescos aunque tambie´n se recomienda el uso de valores tweat en diferentes niveles de los algoritmos de cifrado en bloque para obtener las mismas ganancias de seguridad.
En cada una de las variantes se logra un aumento del tiempo de vida de las llaves de cifrado, sin embargo, recomendamos implementar mecanismos internos cuando estemos en presencia de algoritmos de cifrado en bloque dina´micos (sus funciones o transformaciones varían en dependencia de la llave bajo ciertas relaciones o de forma aleatoria), solucio´n que a pesar de disminuir el rendimiento aporta ma´s seguridad al cifrado de los datos.
Se sugiere a los disen˜adores trabajar en la combinacio´n de estos mecanismos para alcanzar resultados superiores en la seguridad de los esquemas criptogra´ficos y la proteccio´n de la informacio´n, aprovechando las ventajas de cada una de estas variantes.