Рассмотрите двойное шифрование в режиме CTR;
Первый слой выводит поток $о$ шифрования блока счетчика согласно определению NIST документа CTR.
$$o_i = \operatorname{AES-CTR}(k_1,counter_i)$$
Второй слой выводится как поток $\бар о$
$$\bar o_i = \operatorname{AES-CTR}(k_2,counter_i)$$
Это означает $c_i = m_i \oplus o_i \oplus \bar o_i$ и предполагая, что у нас есть известный открытый текст, чем у нас есть
$$v_i \oplus o_i = \bar o_i$$ куда $v_i = c_i \oplus m_i$
Теперь атака «встреча посередине» выполняется как;
- Сначала составьте таблицу шифрования первого счетчика с первыми ключевыми кандидатами
- X-или каждый из результатов с блоком сообщений $v_1$
- Теперь создайте таблицу шифрования первого счетчика с первыми ключевыми кандидатами. Вы можете скопировать первую таблицу перед x-oring с помощью $v_1$
- Сортируйте, сопоставляйте и проверяйте потенциальных ключей с дополнительными парами известный открытый текст-зашифрованный текст.
Вышеупомянутое является базой атаки, однако возможны плотные ключи. Вместо этого можно сформировать таблицы, содержащие 2 для AES-128 и 4 для AES-256 или более блоков, так что возможных кандидатов будет намного меньше. Это увеличит размер таблицы в 4 или 8 раз.