Протоколы MTI — семейство протоколов распределения ключей, разработанные Т. Мацумото (T. Matsumoto), И. Такасита (Y. Takashita) и Х. Имаи (H. Imai) и названные по именам авторов. Протоколы MTI делятся на три класса протоколов: MTI/A, MTI/B, MTI/C.
 Протокол распределения ключей решает задачу распределения секретных ключей шифрования между общающимися сторонами. Множество таких протоколов делится на следующие три типа:
 Протоколы MTI относятся к протоколам открытого распределения ключей.
 В основе протоколов открытого распределения ключей лежит обмен сообщениями между пользователями, по результатам которого каждый пользователь вычисляет секретный сеансовый ключ. При этом вычисление сеансового ключа до обмена сообщениями невозможно. Поэтому данные протоколы еще называют динамическими протоколами распределения ключей в отличие от статических протоколов, в которых ключи известны еще до самого сеанса связи. Кроме того, создание сеансовых ключей в протоколах открытого распределения требует от пользователей знания только открытых ключей, т.е. позволяет паре пользователей системы выработать общий секретный ключ, не обмениваясь закрытыми ключами. Именно это привело к тому, что такие протоколы сразу же после своего появления в 1976 году привлекли к себе внимание международного сообщества.
 
 Идея построения протоколов открытого распределения ключей была впервые высказана Уитфилдом Диффи (Whitfield Diffie) и Мартином Хеллманом (Martin Hellman) на «Национальной Компьютерной Конференции» в июне 1976 года. И в ноябре 1976 года ими же в работе «Новые направления в криптографии» (англ. New Directions in Cryptography) был предложен первый протокол открытого распределения ключей, названный по именам авторов (протокол Диффи-Хеллмана).
 Первый в своем роде, протокол Диффи-Хеллмана был уязвим для некоторых типов атак, в частности, для атак «человек посередине». Для решения данной проблемы необходимо было обеспечить пользователей механизмом аутентификации. Таким механизмом стал опубликованный в августе 1977 года в колонке «Математические игры» журнала Scientific American алгоритм асимметричного шифрования RSA, который позволил решить проблему общения через открытый канал.
 В 1984 году Тахером Эль-Гамалем был предложен усовершенствованный протокол Диффи-Хеллмана с возможностью односторонней аутентификации, когда только одна из общающихся сторон может проверить подлинность другой. В отличие от RSA протокол Эль-Гамаля не был запатентован и, поэтому, стал более дешевой альтернативой, так как не требовалась оплата взносов за лицензию. Считается, что алгоритм попадает под действие патента Диффи-Хеллмана.
 В феврале 1986 года Т. Мацумото, И. Такасима и Х. Имаи представили решение проблемы взаимной аутентификации без использования RSA. В разработанных ими протоколах MTI выражение для вычисления общего секретного ключа содержит как открытые, так и закрытые ключи легальных пользователей. Это решение позволяет провести аутентификацию одновременно с вычислением общего секретного ключа (нелегальный пользователь не может вычислить значение секретного ключа).
 На настоящий момент протоколы MTI включены в стандарт ISO/IEC 11770-3.
 Рассмотрим процесс обмена информацией между сторонами A и B. 
Ниже представлены обозначения, которые будут использованы при описании работы протоколов MTI.
 Все вычисления в дальнейшем проводятся в группе 
  
    
      
        
          
            Z
          
          
            p
          
          
            ∗
          
        
      
    
    {\displaystyle \mathbb {Z} _{p}^{*}}
  
.
 Алгоритм работы
 Проводимые вычисления
 Алгоритм работы
 Проводимые вычисления
 Алгоритм работы
 Проводимые вычисления
 Алгоритм работы[источник не указан 1493 дня]
 Проводимые вычисления
 Алгоритм работы[источник не указан 1493 дня]
 Проводимые вычисления
 Алгоритм работы
 Проводимые вычисления
 Протоколы MTI противостоят пассивным атакам, однако уязвимы для активных атак. Ниже представлены примеры активных атак на протоколы MTI.
 Атака по подгруппе (Small Subgroup Attack) применяется к классу протоколов MTI/C в том случае, если группа 
  
    
      
        G
      
    
    {\displaystyle G}
  
 совпадает с группой 

  
    
      
        
          Z
          
            p
          
          
            ∗
          
        
      
    
    {\displaystyle Z_{p}^{*}}
  
, как и предполагается в оригинальном протоколе. Предполагается, что криптоаналитику 
  
    
      
        E
      
    
    {\displaystyle E}
  
 известно разложение числа 
  
    
      
        p
        −
        1
      
    
    {\displaystyle p-1}
  
 на простые множители. Пусть 
  
    
      
        s
      
    
    {\displaystyle s}
  
 — наименьший простой множитель в разложении числа 
  
    
      
        p
        −
        1
      
    
    {\displaystyle p-1}
  
. Обозначим 
  
    
      
        w
        =
        (
        p
        −
        1
        )
        
          /
        
        s
      
    
    {\displaystyle w=(p-1)/s}
  
. Атака заключается в возведении всех сообщений в степень 
  
    
      
        w
      
    
    {\displaystyle w}
  
, что переводит передаваемые элементы в малую подгруппу 
  
    
      
        
          G
          ′
        
      
    
    {\displaystyle G'}
  
 группы 
  
    
      
        G
      
    
    {\displaystyle G}
  
.
 Действительно, 
  
    
      
        A
      
    
    {\displaystyle A}
  
 и 
  
    
      
        B
      
    
    {\displaystyle B}
  
 обмениваются сообщениями вида 
  
    
      
        
          g
          
            r
          
        
      
    
    {\displaystyle g^{r}}
  
. Возведение элемента 
  
    
      
        
          g
          
            r
          
        
      
    
    {\displaystyle g^{r}}
  
 в степень 
  
    
      
        w
      
    
    {\displaystyle w}
  
, дает порождающий элемент 
  
    
      
        
          g
          
            w
            r
          
        
      
    
    {\displaystyle g^{wr}}
  
 подгруппы 
  
    
      
        
          G
          ′
        
      
    
    {\displaystyle G'}
  
 порядка 
  
    
      
        
          
            
              p
              −
              1
            
            
              (
              w
              r
              ,
              p
              −
              1
              )
            
          
        
      
    
    {\displaystyle {\frac {p-1}{(wr,p-1)}}}
  
. При этом этот порядок равен 
  
    
      
        1
      
    
    {\displaystyle 1}
  
 либо когда 
  
    
      
        s
        =
        1
      
    
    {\displaystyle s=1}
  
 и, соответственно, 
  
    
      
        w
        =
        p
        −
        1
      
    
    {\displaystyle w=p-1}
  
, либо когда 
  
    
      
        r
      
    
    {\displaystyle r}
  
 в своем разложении на простые множители содержит число 
  
    
      
        s
      
    
    {\displaystyle s}
  
, т.е. 
  
    
      
        (
        r
        ,
        s
        )
        =
        s
      
    
    {\displaystyle (r,s)=s}
  
. Во всех остальных случаях порядок подгруппы 
  
    
      
        
          G
          ′
        
      
    
    {\displaystyle G'}
  
 будет равен 
  
    
      
        s
      
    
    {\displaystyle s}
  
.
 Ниже описан процесс атаки на протокол MTI/C(0). Криптоаналитик 
  
    
      
        E
      
    
    {\displaystyle E}
  
 находится между сторонами 
  
    
      
        A
      
    
    {\displaystyle A}
  
 и 
  
    
      
        B
      
    
    {\displaystyle B}
  
 (man-in-the-middle).
 Полученный секретный сеансовый ключ 
  
    
      
        
          K
          
            A
            B
          
        
      
    
    {\displaystyle K_{AB}}
  
, как и полученные сообщения, является элементом малой подгруппы 
  
    
      
        
          G
          ′
        
      
    
    {\displaystyle G'}
  
 группы 
  
    
      
        G
      
    
    {\displaystyle G}
  
. Поэтому криптоаналитик 
  
    
      
        E
      
    
    {\displaystyle E}
  
 может найти ключ 
  
    
      
        
          K
          
            A
            B
          
        
      
    
    {\displaystyle K_{AB}}
  
 полным перебором, проверяя элементы подгруппы 
  
    
      
        
          G
          ′
        
      
    
    {\displaystyle G'}
  
 в качестве ключей в общении между 
  
    
      
        A
      
    
    {\displaystyle A}
  
 и 
  
    
      
        B
      
    
    {\displaystyle B}
  
. При этом чем меньше множитель 
  
    
      
        s
      
    
    {\displaystyle s}
  
, тем быстрее проходит атака.
 Атака на подгруппу может быть предотвращена путём выбора подгруппы 
  
    
      
        G
      
    
    {\displaystyle G}
  
 группы 
  
    
      
        
          Z
          
            p
          
          
            ∗
          
        
      
    
    {\displaystyle Z_{p}^{*}}
  
 простого порядка 
  
    
      
        q
      
    
    {\displaystyle q}
  
. Т.к. при этом длина 
  
    
      
        q
      
    
    {\displaystyle q}
  
 составляет порядка 160 бит, то полный перебор оказывается слишком сложной задачей для криптоаналитика 
  
    
      
        E
      
    
    {\displaystyle E}
  
. Так же необходимо проверять, что полученные в сообщениях элементы лежат в группе 
  
    
      
        G
      
    
    {\displaystyle G}
  
 и не равны единице.
 Атака с неизвестным общим ключом требуют от криптоаналитика 
  
    
      
        E
      
    
    {\displaystyle E}
  
 получить сертификат на долговременный открытый ключ 
  
    
      
        
          y
          
            E
          
        
      
    
    {\displaystyle y_{E}}
  
, который связан с открытым ключом стороны 
  
    
      
        A
      
    
    {\displaystyle A}
  
 по формуле 
  
    
      
        :
        
          y
          
            E
          
        
        =
        
          y
          
            A
          
          
            
              x
              
                E
              
            
          
        
        =
        
          g
          
            
              x
              
                A
              
            
            
              x
              
                E
              
            
          
        
      
    
    {\displaystyle \colon y_{E}=y_{A}^{x_{E}}=g^{x_{A}x_{E}}}
  
. Это значит, что 
  
    
      
        E
      
    
    {\displaystyle E}
  
 не знает секретный ключ 
  
    
      
        
          x
          
            A
          
        
        
          x
          
            E
          
        
      
    
    {\displaystyle x_{A}x_{E}}
  
, соответствующий открытому ключу 
  
    
      
        
          y
          
            E
          
        
      
    
    {\displaystyle y_{E}}
  
.
 Атака с неизвестным общим ключом осуществляется путём выполнения следующей последовательности действий.
 Секретные ключи, вычисленные сторонами 
  
    
      
        A
      
    
    {\displaystyle A}
  
 и 
  
    
      
        B
      
    
    {\displaystyle B}
  
, одинаковы и равны 
  
    
      
        
          g
          
            
              r
              
                A
              
            
            +
            
              r
              
                B
              
            
          
        
      
    
    {\displaystyle g^{r_{A}+r_{B}}}
  
. При этом 
  
    
      
        A
      
    
    {\displaystyle A}
  
 считает, что разделяет его с 
  
    
      
        B
      
    
    {\displaystyle B}
  
, в то время как 
  
    
      
        B
      
    
    {\displaystyle B}
  
 считает, что разделяет ключ с 
  
    
      
        E
      
    
    {\displaystyle E}
  
.
 Несмотря на то, что 
  
    
      
        E
      
    
    {\displaystyle E}
  
 не в состоянии вычислить секретный сеансовый ключ 
  
    
      
        
          K
          
            A
            B
          
        
      
    
    {\displaystyle K_{AB}}
  
 без дополнительной информации, сторона 
  
    
      
        E
      
    
    {\displaystyle E}
  
 тем не менее приводит 
  
    
      
        B
      
    
    {\displaystyle B}
  
 к ошибочному мнению.
 Чтобы избежать данной атаки, необходимо потребовать от сертификационных центров проводить проверку того, что стороны, запрашивающие сертификат на некоторый открытый ключ 
  
    
      
        
          y
          
            E
          
        
      
    
    {\displaystyle y_{E}}
  
, знают соответствующий закрытый ключ 
  
    
      
        
          x
          
            E
          
        
      
    
    {\displaystyle x_{E}}
  
.