stringtranslate.com

Слабый ключ

В криптографии слабый ключ — это ключ , который, используемый с определенным шифром , заставляет шифр вести себя нежелательным образом. Слабые ключи обычно представляют собой очень малую часть общего пространства ключей, что обычно означает, что ключ шифра, созданный путем генерации случайных чисел , вряд ли вызовет проблему безопасности. Тем не менее, считается желательным, чтобы шифр не имел слабых ключей. Говорят, что шифр без слабых ключей имеет плоское или линейное пространство ключей .

Историческое происхождение

Практически все роторные шифровальные машины (с 1925 года) имеют недостатки реализации, которые приводят к созданию значительного количества слабых ключей. Некоторые роторные машины имеют больше проблем со слабыми ключами, чем другие, как это происходит с современными блочными и потоковыми шифрами.

Первые потоковые шифровальные машины также были роторными машинами и имели некоторые из тех же проблем слабых ключей, что и более традиционные роторные машины. T52 была одной из таких потоковых шифровальных машин, у которой были проблемы слабых ключей.

Британцы впервые обнаружили трафик T52 летом и осенью 1942 года. Один канал был между Сицилией и Ливией под кодовым названием « Осетр », а другой — от Эгейского моря до Сицилии под кодовым названием « Скумбрия ». Операторы обоих каналов имели привычку шифровать несколько сообщений с помощью одних и тех же настроек машины, создавая большое количество глубин .

Существовало несколько (в основном несовместимых) версий T52: T52a и T52b (которые отличались только подавлением электрических помех), T52c, T52d и T52e. В то время как T52a/b и T52c были криптологически слабы, последние два были более продвинутыми устройствами; движение колес было прерывистым, решение о том, продвигать их или нет, контролировалось логическими схемами, которые принимали в качестве входных данных данные от самих колес.

Кроме того, был устранен ряд концептуальных недостатков (в том числе весьма тонких). Одним из таких недостатков была возможность сброса потока ключей на фиксированную точку, что приводило к повторному использованию ключей недисциплинированными операторами машин.

Слабые ключи в DES

Блочный шифр DES имеет несколько специфических ключей, называемых «слабыми ключами» и «полуслабыми ключами». Это ключи, которые заставляют режим шифрования DES действовать идентично режиму дешифрования DES (хотя потенциально и другого ключа).

В процессе работы секретный 56-битный ключ разбивается на 16 подключей в соответствии с расписанием ключей DES ; один подключ используется в каждом из шестнадцати раундов DES. Слабые ключи DES производят шестнадцать идентичных подключей. Это происходит, когда ключ (выраженный в шестнадцатеричном виде ) равен: [1]

Если реализация не учитывает биты четности, соответствующие ключи с инвертированными битами четности также могут работать как слабые ключи:

При использовании слабых ключей результат переставленного выбора 1 (PC-1) в схеме ключей DES приводит к тому, что раундовые ключи представляют собой либо все нули, либо все единицы, либо чередующиеся шаблоны ноль-единица.

Поскольку все подключи идентичны, а DES представляет собой сеть Фейстеля , функция шифрования является самоинвертирующей; то есть, несмотря на то, что однократное шифрование дает зашифрованный текст, выглядящий безопасным, двукратное шифрование дает исходный открытый текст.

DES также имеет полуслабые ключи , которые производят только два различных подключа, каждый из которых используется в алгоритме восемь раз. Это означает, что они поставляются парами K 1 и K 2 , и они обладают следующим свойством:

где E K (M) — алгоритм шифрования, шифрующий сообщение M с ключом K. Существует шесть пар полуслабых ключей:

Также есть 48 потенциально слабых ключей, которые производят только четыре отдельных подключа (вместо 16). Их можно найти в публикации NIST. [2]

Эти слабые и полуслабые ключи не считаются «фатальными недостатками» DES. Существует 2 56 (7,21 × 10 16 , около 72 квадриллионов) возможных ключей для DES, из которых четыре слабые и двенадцать полуслабые. Это такая крошечная часть возможного пространства ключей, что пользователям не нужно беспокоиться. Если они того пожелают, они могут проверить слабые или полуслабые ключи при генерации ключей. Их очень мало, и их легко распознать. Обратите внимание, однако, что в настоящее время DES больше не рекомендуется для общего использования, поскольку все ключи DES можно взломать методом грубой силы, прошли десятилетия с тех пор, как машина Deep Crack взламывала их порядка дней, и, как это обычно делают компьютеры, более поздние решения значительно дешевле в этом временном масштабе. Примеры прогресса приведены в статье Deep Crack.

Список алгоритмов со слабыми ключами

Отсутствие слабых ключей как цель дизайна

Цель иметь «плоское» пространство ключей (т. е. все ключи одинаково сильны) всегда является целью проектирования шифра. Как и в случае DES, иногда небольшое количество слабых ключей приемлемо, при условии, что все они идентифицированы или могут быть идентифицированы. Алгоритм, у которого неизвестны слабые ключи, не вызывает большого доверия. [ необходима цитата ]

Две основные меры противодействия непреднамеренному использованию слабого ключа:

Большое количество слабых ключей является серьезным недостатком в любой конструкции шифра, поскольку тогда будет (возможно, слишком) большой шанс, что случайно сгенерированный ключ окажется слабым, что поставит под угрозу безопасность сообщений, зашифрованных с его помощью. Кроме того, в таких случаях проверка случайно сгенерированных ключей на слабость займет больше времени, что будет искушать срезы в интересах «эффективности».

Однако гораздо чаще слабые ключи представляют собой проблему, когда злоумышленник имеет определенный контроль над тем, какие ключи используются, например, когда блочный шифр используется в режиме работы, предназначенном для построения безопасной криптографической хэш-функции (например, Дэвиса–Мейера ).

Смотрите также

Ссылки

  1. ^ FIPS, Руководство по внедрению и использованию стандарта шифрования данных NBS , FIPS-PUB 74, http://www.itl.nist.gov/fipspubs/fip74.htm
  2. ^ NIST, Рекомендации по блочному шифру алгоритма тройного шифрования данных (TDEA), Специальная публикация 800-67, стр. 14
  3. ^ Флурер, С., Мантин, И., Шамир, А. Слабые стороны алгоритма планирования ключей Восьмого ежегодного семинара RC4 по избранным областям криптографии (август 2001 г.), http://citeseer.ist.psu.edu/fluhrer01weaknesses.html
  4. ^ "Исследовательская работа - factorable.net". factorable.net . Получено 2020-06-26 .