Введение
В криптографии слабый ключ — это ключ, который при использовании с конкретным шифром приводит к нежелательному поведению шифра. Слабые ключи обычно составляют очень малую долю всего пространства ключей, что означает, что ключ, сгенерированный случайным образом, вряд ли станет причиной уязвимости. Тем не менее, считается предпочтительным, чтобы шифр не имел слабых ключей. Шифр, не имеющий слабых ключей, характеризуется плоским или линейным пространством ключей.
Историческое происхождение
Практически все шифровальные машины на основе роторов (начиная с 1925 года) имеют недостатки в реализации, приводящие к созданию значительного числа слабых ключей. Некоторые роторные машины имеют больше проблем со слабыми ключами, чем другие, как и современные блочные и потоковые шифры. Первые машины потокового шифрования также были роторными и имели некоторые из тех же проблем со слабыми ключами, что и более традиционные роторные машины. T52 была одной из таких машин потокового шифрования, подверженной проблемам со слабыми ключами. Британцы впервые засекли трафик T52 летом и осенью 1942 года. Один канал связи проходил между Сицилией и Ливией под кодовым названием "Стерлядь", а другой – от Эгейского моря к Сицилии под кодовым названием "Скумбрия". Операторы обоих каналов имели привычку шифровать несколько сообщений с одними и теми же настройками машины, что приводило к образованию большого количества глубинных текстов. Существовало несколько (в основном несовместимых) версий T52: T52a и T52b (различавшиеся только подавлением электрических помех), T52c, T52d и T52e. В то время как T52a/b и T52c были криптологически слабыми, последние две были более совершенными устройствами: движение колес было прерывистым, а решение о необходимости их продвижения контролировалось логическими схемами, использующими данные, поступающие от самих колес. Кроме того, было устранено несколько концептуальных недостатков (включая весьма тонкие). Одним из таких недостатков была возможность возврата ключевого потока к фиксированной точке, что приводило к повторному использованию ключей недисциплинированными операторами.
Список алгоритмов со слабыми ключами
DES, как описано выше. RC4. Слабые векторы инициализации RC4 позволяют злоумышленнику осуществить атаку с известным открытым текстом и широко использовались для компрометации безопасности WEP и ARC4 DMRA DMR. IDEA. Слабые ключи IDEA могут быть идентифицированы при атаке с выбранным открытым текстом. Они делают предсказуемой зависимость между суммой XOR битов открытого текста и битов шифротекста. Списка этих ключей не существует, но их можно определить по их "структуре". Blowfish. Слабые ключи Blowfish приводят к созданию некачественных S-блоков, поскольку S-блоки Blowfish зависят от ключа. Существует атака с выбранным открытым текстом на вариант Blowfish с уменьшенным количеством раундов, которая облегчается использованием слабых ключей. Это не представляет собой проблему для полной 16-раундовой версии Blowfish. GMAC. Часто используется в конструкции AES GCM. Слабые ключи можно идентифицировать по порядку группы ключа аутентификации H (для AES GCM, H выводится из ключа шифрования путем шифрования нулевого блока). RSA и DSA. В августе 2012 года Надя Хеннингер, Закир Дурумерик, Эрик Вустроу и Дж. Алекс Халдерман обнаружили, что TLS-сертификаты, которые они анализировали, используют общие ключи из-за недостаточной энтропии при генерации ключей, и смогли получить закрытые ключи DSA и RSA хостов TLS и SSH, зная только открытый ключ.