Los protocolos MTI son una familia de protocolos de distribución de claves desarrollados por T. Matsumoto , Y. Takashita y H. Imai y que llevan el nombre de sus autores. Los protocolos MTI se dividen en tres clases de protocolo: MTI/A, MTI/B, MTI/C. [una]
El protocolo de distribución de claves resuelve el problema de distribuir claves de cifrado secretas entre las partes que se comunican. El conjunto de dichos protocolos se divide en los siguientes tres tipos: [2]
Los protocolos MTI se clasifican como protocolos de distribución de clave pública.
Los protocolos de distribución de claves públicas se basan en el intercambio de mensajes entre usuarios, por lo que cada usuario calcula una clave de sesión secreta. En este caso, el cálculo de la clave de sesión antes del intercambio de mensajes es imposible. Por tanto, estos protocolos también se denominan [3] protocolos dinámicos de distribución de claves, en contraposición a los protocolos estáticos, en los que las claves se conocen incluso antes de la propia sesión de comunicación. Además, la creación de claves de sesión en los protocolos de distribución pública requiere que los usuarios conozcan solo las claves públicas, es decir, permite que un par de usuarios del sistema desarrollen una clave secreta compartida sin intercambiar claves privadas. Esto es lo que llevó a que dichos protocolos, inmediatamente después de su aparición en 1976, llamaran la atención de la comunidad internacional.
La idea de construir protocolos de distribución de clave abierta fue propuesta por primera vez por Whitfield Diffie y Martin Hellman en la Conferencia Nacional de Computación en junio de 1976. Y en noviembre de 1976, en su trabajo “ New Directions in Cryptography ”, propusieron el primer protocolo para la distribución de claves públicas [4] , llamado así por los nombres de los autores (protocolo Diffie-Hellman).
El primero de su tipo, el protocolo Diffie-Hellman, era vulnerable a ciertos tipos de ataques, en particular, ataques de intermediarios [2] . Para solucionar este problema, era necesario dotar a los usuarios de un mecanismo de autenticación. El algoritmo de cifrado asimétrico RSA [5] publicado en agosto de 1977 en la columna "Mathematical Games" de la revista Scientific American se convirtió en un mecanismo de este tipo , que permitió resolver el problema de la comunicación a través de un canal abierto.
En 1984, Taher El-Gamal propuso un protocolo Diffie-Hellman mejorado con la posibilidad de autenticación unidireccional, cuando solo una de las partes comunicantes puede verificar la autenticidad de la otra [6] . A diferencia de RSA , el protocolo ElGamal no estaba patentado y, por lo tanto, se convirtió en una alternativa más económica ya que no había que pagar derechos de licencia. Se cree que el algoritmo está cubierto por la patente Diffie-Hellman.
En febrero de 1986, T. Matsumoto, I. Takashima y H. Imai presentaron una solución al problema de la autenticación mutua sin el uso de RSA [7] . En sus protocolos MTI, la expresión secreta compartida contiene las claves pública y privada de los usuarios legales. Esta solución permite realizar la autenticación simultáneamente con el cálculo de la clave secreta compartida (un usuario ilegal no puede calcular el valor de la clave secreta).
Los protocolos MTI están actualmente incluidos en el estándar ISO/IEC 11770-3 [1] .
Considere el proceso de intercambio de información entre las partes A y B. A continuación se encuentran las notaciones que se utilizarán para describir el funcionamiento de los protocolos MTI.
Todos los cálculos en el futuro se llevan a cabo en el grupo .
algoritmo de trabajo
Cálculos realizados
algoritmo de trabajo
Cálculos realizados
algoritmo de trabajo
Cálculos realizados
algoritmo de trabajo
Cálculos realizados
algoritmo de trabajo
Cálculos realizados
algoritmo de trabajo
Cálculos realizados
Protocolo | |||||
MTI/A(0) | |||||
MTI/B(0) | |||||
MTI/C(0) | |||||
MTI/A(k) | |||||
MTI/B(k) | |||||
MTI/C(k) |
Protocolo | Clave de autenticación | Autenticación de origen | Confirmación de clave | Número de mensajes |
Protocolo de Diffie-Hellman | perdido | perdido | perdido | 2 |
Protocolo ElGamal | unilateral | perdido | perdido | una |
MTI/A | mutuo implícito | perdido | perdido | 2 |
MTI/B,C | mutuo implícito | perdido | perdido | 2 |
STS | mutuo explícito | mutual | perdido | 3 |
Los protocolos MTI resisten los ataques pasivos, pero son vulnerables a los ataques activos [3] . A continuación se muestran ejemplos de ataques activos a los protocolos MTI.
Se aplica un ataque de subgrupos pequeños a la clase de protocolo MTI/C si el grupo coincide con group , como se esperaba en el protocolo original. Se supone que el criptoanalista conoce la factorización de un número en factores primos. Sea el factor primo más pequeño en la expansión del número . Denotemos . El ataque consiste en elevar todos los mensajes a una potencia , que traduce los elementos transmitidos a un pequeño subgrupo del grupo .
Efectivamente, e intercambiar mensajes de la forma . Elevar un elemento a una potencia da un elemento generador de un subgrupo de orden . Además, este orden es igual cuando y, respectivamente, o cuando contiene el número en su descomposición en factores primos , es decir . En todos los demás casos, el orden del subgrupo será igual a .
El proceso de ataque al protocolo MTI/C(0) se describe a continuación. El criptoanalista está entre las partes y ( man-in-the-middle ).
La clave de sesión secreta recibida , al igual que los mensajes recibidos, es un elemento del pequeño subgrupo del grupo . Por tanto, el criptoanalista puede encontrar la clave mediante una búsqueda exhaustiva, comprobando los elementos del subgrupo como claves en la comunicación entre y . En este caso, cuanto menor sea el multiplicador , más rápido pasa el ataque.
Se puede prevenir un ataque a un subgrupo eligiendo un subgrupo de un grupo de primer orden . Porque mientras que la longitud es de unos 160 bits, la búsqueda exhaustiva resulta ser una tarea demasiado difícil para un criptoanalista . También es necesario verificar que los elementos recibidos en los mensajes estén en un grupo y no sean iguales a uno.
Un ataque de clave pública desconocida requiere que el criptoanalista obtenga un certificado de clave pública a largo plazo que está vinculado a la clave pública de la parte mediante una fórmula . Esto significa que no conoce la clave secreta correspondiente a la clave pública .
Un ataque con una clave compartida desconocida se lleva a cabo realizando la siguiente secuencia de acciones.
Las claves secretas calculadas por las partes y son iguales e iguales a . Al mismo tiempo , considera que la comparte con , mientras que considera que comparte la clave con .
Aunque no puede calcular la clave de sesión secreta sin información adicional, la parte, sin embargo, conduce a una opinión errónea.
Para evitar este ataque, es necesario exigir a las autoridades de certificación que verifiquen que las partes que solicitan un certificado para alguna clave pública conocen la clave privada correspondiente .