Protocolos MTI

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]

  1. intercambiar protocolos por claves ya generadas;
  2. protocolos conjuntos de generación de claves (distribución de claves públicas);
  3. Protocolos de distribución de claves previas.

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.


Historia

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] .

Descripción de los protocolos MTI [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.

número primo grande (al menos 1024 bits).
un número primo (del orden de 160 bits) que es divisor de .
subgrupo de un grupo (generalmente de orden , pero a veces coincide con )
elemento generador de un subgrupo
, claves privadas de las partes A y B
, claves públicas de las partes A y B  : , .
, números enteros aleatorios, generalmente de la misma magnitud que el orden del grupo , elegidos por las partes A y B , respectivamente
, mensajes enviados de A a B y de B a A , respectivamente.
clave de sesión secreta calculada por las partes A y B
el máximo común divisor de números y

Todos los cálculos en el futuro se llevan a cabo en el grupo .

MTI/A(0) [8]

algoritmo de trabajo

  1. Party elige un número aleatorio y envía un mensaje
  2. Party elige un número aleatorio y envía un mensaje
  3. La parte calcula la clave de sesión:
  4. La parte calcula la clave de sesión:

Cálculos realizados

MTI/B(0)

algoritmo de trabajo

  1. Party elige un número aleatorio y envía un mensaje
  2. Party elige un número aleatorio y envía un mensaje
  3. La parte calcula la clave de sesión:
  4. La parte calcula la clave de sesión:

Cálculos realizados

MTI/C(0) [8]

algoritmo de trabajo

  1. La parte elige un número aleatorio y le envía un mensaje a B.
  2. Party elige un número aleatorio y envía el mensaje A
  3. La parte calcula la clave de sesión:
  4. La parte calcula la clave de sesión:

Cálculos realizados

MTI/A(k)

algoritmo de trabajo

  1. La parte elige un número aleatorio y le envía un mensaje a B.
  2. Party elige un número aleatorio y envía el mensaje A
  3. La parte calcula la clave de sesión:
  4. La parte calcula la clave de sesión:

Cálculos realizados

MTI/B(k)

algoritmo de trabajo

  1. Party elige un número aleatorio y envía un mensaje
  2. Party elige un número aleatorio y envía un mensaje
  3. La parte calcula la clave de sesión:
  4. La parte calcula la clave de sesión:

Cálculos realizados

MTI/C(k)

algoritmo de trabajo

  1. Party elige un número aleatorio y envía un mensaje
  2. Party elige un número aleatorio y envía un mensaje
  3. La parte calcula la clave de sesión:
  4. La parte calcula la clave de sesión:

Cálculos realizados

Análisis de protocolos MTI [3]

tabla de protocolo MTI
Protocolo
MTI/A(0)
MTI/B(0)
MTI/C(0)
MTI/A(k)
MTI/B(k)
MTI/C(k)
  1. Los protocolos MTI/A y MTI/B requieren que cada usuario calcule tres exponentes, mientras que los protocolos MTI/C requieren solo dos exponentes para calcularse. El protocolo MTI/C(1) también tiene el beneficio adicional de no tener que calcular las inversas de y . Por otro lado, estos valores no cambian durante toda la sesión de comunicación y, por lo tanto, se pueden calcular por adelantado.
  2. Todas las partes de los protocolos MTI realizan operaciones similares y el funcionamiento de los protocolos no depende del orden en que se envían los mensajes de un lado a otro.
  3. Los protocolos MTI/B y MTI/C requieren el conocimiento de las claves públicas de las otras partes, lo que puede requerir mensajes adicionales (si la información de la clave pública no cabe en los mensajes enviados a través de la red). Los protocolos MTI/A no requieren conocimiento de claves públicas, lo que evita transmisiones adicionales y retrasos de tiempo.
  4. Las tres clases de protocolo proporcionan autenticación de clave implícita mutua, pero no proporcionan confirmación de clave ni autenticación de entidad.
Comparación de protocolos de distribución de claves
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

Ataques a protocolos MTI

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.

Ataque de subgrupos pequeños a protocolos MTI/C [1]

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 ).

  1. Party elige un número aleatorio y envía un mensaje
  2. El criptoanalista intercepta el mensaje y lo envía
  3. Party elige un número aleatorio y envía un mensaje
  4. El criptoanalista intercepta el mensaje y lo envía
  5. La parte calcula la clave de sesión:
  6. La parte calcula la clave de sesión:

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.

Ataque con clave compartida desconocida [1] [3] [9]

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.

  1. Party elige un número aleatorio y envía un mensaje
  2. El criptoanalista transmite el mensaje de a a sin cambios.
  3. Party elige un número aleatorio y envía un mensaje
  4. El criptoanalista recibe un mensaje de y envía un mensaje
  5. La parte calcula la clave de sesión:
  6. La parte calcula la clave de sesión:

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 .

Notas

  1. 1 2 3 4 5 Boyd, Mathuria, 2003 , págs. 147-155.
  2. 1 2 Alferov, Zubov, Kuzmin et al., 2002 , p. 378, 387–396.
  3. 1 2 3 4 Menezes, Oorschot, Vanstone, 1996, 515-519 .
  4. Diffie, Hellman, 1976 .
  5. Gardner, 1977 .
  6. Elgamal, 1985 .
  7. Matsumoto, Takashima, Imai, 1986 .
  8. 1 2 Ratna Dutta, Rana Barua. Descripción general de los protocolos de acuerdos clave . - S. 9-10 .
  9. Cheremushkin A.V. Protocolos criptográficos: propiedades básicas y vulnerabilidades  // Matemáticas discretas aplicadas: Apéndice. - 2009. - Nº 2 . - S. 115-150 . Archivado desde el original el 3 de noviembre de 2013.

Literatura