Введение

Методы взлома потокового шифра

Потоковые шифры, в которых биты открытого текста объединяются с потоком шифрующего ключа посредством операции исключающего ИЛИ (xor), могут быть очень безопасными при правильном использовании. Однако они уязвимы для атак, если не соблюдены определенные меры предосторожности:

ключи никогда не должны использоваться повторно
не следует полагаться на успешное расшифрование как на подтверждение подлинности.

Битовые атаки

Предположим, что злоумышленник знает точное содержание всей или части одного из наших сообщений. В рамках атаки «человек посередине» или атаки повторного воспроизведения он может изменить содержание сообщения, не зная ключа K. Например, если он знает, что часть сообщения, скажем, электронный денежный перевод, содержит ASCII-строку "$1000.00", он может изменить её на "$9500.00", выполнив операцию XOR над этой частью шифротекста со строкой: "$1000.00" XOR "$9500.00". Чтобы понять, как это работает, рассмотрим, что шифротекст, который мы отправляем, это просто C(K) XOR "$1000.00". Новое сообщение, которое создает злоумышленник, будет следующим:

(C(K) XOR "$1000.00") XOR ("$1000.00" XOR "$9500.00") = C(K) XOR "$1000.00" XOR "$1000.00" XOR "$9500.00" = C(K) XOR "$9500.00"

Вспомните, что строка, проделанная операцией XOR с самой собой, дает все нули, а строка, состоящая из нулей, проделанная операцией XOR с другой строкой, оставляет эту строку без изменений. Результат, C(K) XOR "$9500.00", – это то, каким был бы наш шифротекст, если бы правильной суммой было $9500. Атаки, основанные на изменении битов, можно предотвратить, добавив код аутентификации сообщения, чтобы повысить вероятность обнаружения несанкционированного вмешательства.

Выбранная атака

Потоковые шифры объединяют секретный ключ с согласованным вектором инициализации (IV) для генерации псевдослучайной последовательности, которая периодически повторно синхронизируется. Атака "Выбранный IV" основана на поиске определенных IV, которые, будучи взятыми вместе, с высокой вероятностью могут раскрыть информацию о секретном ключе. Обычно выбирается несколько пар IV, после чего различия в сгенерированных ключевых потоках статистически анализируются на наличие линейной корреляции и/или алгебраической булевой зависимости (см. также дифференциальный криптоанализ). Если выбор определенных значений вектора инициализации выявляет неслучайный шаблон в генерируемой последовательности, то эта атака вычисляет некоторые биты, тем самым сокращая эффективную длину ключа. Признаком атаки будет частая повторная синхронизация. Современные потоковые шифры включают этапы для надлежащего перемешивания секретного ключа с вектором инициализации, как правило, путем выполнения множества начальных раундов.