Уровень алгоритма

Участница:Александра/Метод встречи посередине: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 32: Строка 32:
  
 
<math>
 
<math>
z_1=T_1(x,k_1^1)\\
+
\begin{align}
z_2=T_1(x,k_1^2)\\
+
z_1=T_1(x,k_1^1)         \\
 +
z_2=T_1(x,k_1^2)           \\
 
............................\\
 
............................\\
 
z_{|K_1|}=T_1(x,k_1^{|K_1|})
 
z_{|K_1|}=T_1(x,k_1^{|K_1|})
 +
\end{align}
 
</math>
 
</math>
  

Версия 10:41, 14 октября 2016


Метод встречи посередине
Последовательный алгоритм
Последовательная сложность O(\sqrt(n)\ln(n))
Объём выходных данных n
Параллельный алгоритм
Высота ярусно-параллельной формы O()
Ширина ярусно-параллельной формы O()


Автор описания: А.В.Батарина

1 Свойства и структура алгоритма

1.1 Общее описание алгоритма

Метод "Встреча посередине" криптоанализа блочных шифров был впервые предложен в 1977 году Уитфилдом Диффи и Мартином Хеллманом [1]. Встреча посередине используется для ускорения перебора ключей шифра за счёт увеличения требуемой памяти. Метод применим в случае каскадного построения сложного шифра из нескольких простых, другими словами, в случае последовательного применения шифрующих преобразований на разных ключах к блокам открытого текста.

1.1.1 Блочный шифр с ключевым расписанием

1.1.2 Усложнённые шифры

В качестве примера шифра, поддающегося атаке "встреча посередине" можно привести криптоалгоритм 2DES, являющийся модификацией шифра DES. В 2DES открытый текст шифруется дважды алгоритмом DES на двух разных 56-битных ключах. Однако из-за атаки "встреча посередине" сложность перебора двойного ключа (112 бит) шифра 2DES составляет 2^{57} вместо ожидаемых 2^{112}.

1.2 Математическое описание алгоритма

Исходные данные: открытый текст x, шифртекст y.

Алгоритм зашифрования -- композиция двух преобразований T_1(x,k_1) и T_2(x,k_2), т.е. y=T_2(T_1(x,k_1),k_2).

Алгоритм расшифрования -- x=T_1^{-1}(T_2^{-1}(x,k_2),k_1)

Вычисляемые данные: ключи шифрования k_1 \in K_1, k_2 \in K_2, где K_1, K_2 -- множества возможных ключей.

Трудоёмкость полного перебора всех возможных пар k_1,k_2 составляет в среднем \frac{|K_1||K_2|}{2}. Однако используя дополнительную память, можно сократить перебор.

Предположим, что открытый текст x и шифртекст y однозначно определяют ключи k_1,k_2. Составим следующую таблицу:

\begin{align} z_1=T_1(x,k_1^1) \\ z_2=T_1(x,k_1^2) \\ ............................\\ z_{|K_1|}=T_1(x,k_1^{|K_1|}) \end{align}

Сложность вычисления составит |K_1| операций опробования.

2 Литература

<references \>

  1. (June 1977) «Exhaustive Cryptanalysis of the NBS Data Encryption Standard». Computer 10 (6): 74–84. DOI:10.1109/C-M.1977.217750