Опубликован: 19.01.2010 | Доступ: свободный | Студентов: 3199 / 439 | Оценка: 4.28 / 4.00 | Длительность: 26:16:00
ISBN: 978-5-9963-0242-0
Специальности: Математик
Лекция 8:

Стандарт шифрования данных (DES)

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >

8.3. Анализ DES

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

Свойства

Два желательных свойства блочного шифра — эффект лавины и законченность.

Лавинный эффект

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

Пример 8.7

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

Исходный текст: 0000000000000000              Ключ: 22234512987ABB23
Зашифрованный текст: 4789FD476E82A5F1

Исходный текст: 0000000000000001              Ключ: 22234512987ABB23
Зашифрованный текст: OA4ED5C15A63FEA3

Хотя два блока исходного текста отличаются только самым правым битом, блоки зашифрованного текста отличаются на 29 бит. Это означает, что изменение приблизительно в 1,5 процентах исходного текста создают изменение приблизительно 45 процентов зашифрованного текста. Таблица 8.17 показывает изменение в каждом раунде. Можно увидеть, что существенные изменения возникают уже в третьем раунде.

Таблица 8.17. Число различных бит в примере 8.7
Раунд 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Разница в битах 1 6 20 29 30 33 32 29 32 39 33 28 30 31 30 29
Эффект полноты

Эффект полноты заключается в том, что каждый бит зашифрованного текста должен зависеть от многих битов исходного текста. Рассеивание и перемешивание, произведенное P -блоками и S -блоками в DES, указывает на очень сильный эффект полноты.

Критерии разработок DES

Проект DES был предъявлен IBM в 1994 году. Многочисленные испытания DES показали, что он удовлетворяет некоторым из заявленных критериев. Ниже кратко обсуждаются некоторые проблемы разработок DES.

S-блоки

Мы обсудили общие критерии построения S -блоков в "Введение в основы современных шифров с симметричным ключом" . Здесь мы только обсуждаем критерии, выбранные для DES. Структура блоков обеспечивает перемешивание и рассеивание от каждого раунда до следующего. Согласно этому положению и некоторому анализу, мы можем упомянуть несколько свойств S -блоков.

  1. Входы каждой строки есть перестановки значений между 0 и 15.
  2. S -блоки — нелинейные. Другими словами, выход — не аффинное преобразование. (См. "Традиционные шифры с симметричным ключом" (аффинное преобразование) и "Алгебраические структуры" , где рассматривалась линейность и S -блоков.)
  3. Если мы изменяем единственный бит на входе, на выходе будут изменены два или больше бита.
  4. Если два входа S -блока отличаются только двумя средними битами (битами 3 и 4 ), выходная информация должна отличаться по крайней мере двумя битами. Другими словами, S (x) и S(x \oplus 001100) должны отличаться по крайней мере двумя битами, где x — вход и S(x) — выход.
  5. Если два входа в S -блок отличаются первыми двумя битами (биты 1 и 2 ) и последними двумя битами ( 5 и 6 ), два выхода должны быть различны. Другими словами, мы должны иметь следующее отношение: S\left( x \right) \ne S(x \oplus 11bc00) , в котором b и с — произвольные биты.
  6. Есть только 32 шестибитовые пары "вход-выход" ( xi и xj ), в которых {x_i} \oplus {x_j} \ne {\left( {000000} \right)_2}. Эти 32 входных пары создают 32 пары слова выхода по 4 бита. Если мы создаем какие-то различия между 32 выходами пар, d = {y_i} \oplus {y_j}, то из этих d должны быть одинаковыми не больше чем 8.
  7. Такой же критерий, как в пункте 6, применяется к трем S -блокам.
  8. В любом S -блоке, если единственный входной бит сохраняется как константа ( 0 или 1 ), то другие биты изменяются случайно так, чтобы разности между числом нулей и единиц были минимизированы.
P-блоки

Между двумя рядами S -блоков (в двух последующих раундах), есть один прямой P -блок ( 32 на 32 ) и один P -блок расширения ( 32 на 48 ). Эти два P -блока вместе обеспечивают рассеивание битов. Мы уже говорили об общем принципе построения P -блока в "Введение в основы современных шифров с симметричным ключом" . Здесь мы обсудим только прикладные P -блоки, используемые в DES. В структуре P -блоков были реализованы следующие критерии:

  1. Каждый вход S -блока подключается к выходу другого S -блока (в предыдущем раунде).
  2. Ни один вход к данному S -блоку не соединяется с выходом от того же самого блока (в предыдущем раунде).
  3. Четыре бита от каждого S -блока идут в шесть различных S -блоков (в следующем раунде).
  4. Ни один из двух битов выхода от S -блока не идет в тот же самый S -блок (в следующем раунде).
  5. Если число блоков S -блоков 8, то S1, S2,..., S 8.
    • Выход Sj-2 переходит в один из первых двух битов Sj (в следующем раунде).
    • Бит выхода от Si-1 переходит в один из последних двух битов Sj (в следующем раунде).
    • Выход Sj +1 переходит в один из двух средних битов Sj (в следующем раунде).
  6. Для каждого S -блока два бита выхода идут в первые или последние два бита S -блока в следующем раунде. Другие два бита выхода идут в средние биты S -блока в следующем раунде.
  7. Если выход от Sj переходит в один из средних битов в Sk (в следующем раунде), то бит выхода от Sk не может идти в средний бит Sj. Если мы допускаем j = k, то подразумеваем, что ни один средний бит S -блока не может идти в один из средних битов того же самого S -блока в следующем раунде.
Число раундов

DES используют шестнадцать раундов шифра Файстеля. Доказано, что после того как каждый текст зашифрован восемь раундов, каждый бит зашифрованного текста — функция каждого бита исходного текста и каждого ключевого бита. Зашифрованный текст — полностью случайная функция исходного текста и зашифрованного текста. Отсюда вроде бы следует, что восьми раундов должно быть достаточно для хорошего шифрования. Однако эксперименты показывают, что некоторые версии DES с менее чем шестнадцатью раундами более уязвимы к атакам знания исходного текста, чем к атаке грубой силы, которая требует использования шестнадцати раундов DES.

Слабости DES

В течение прошлых нескольких лет критики нашли некоторые слабости в DES.

Мы кратко укажем на некоторые слабости, которые были обнаружены в структуре шифра.

S-блоки. В литературе указываются по крайней мере три проблемы S -блоков.

  1. В S -блоке 4 три бита выхода могут быть получены тем же самым способом, что и первый бит выхода: дополнением некоторых из входных битов.
  2. Два специально выбранных входа к массиву S -блока могут создать тот же самый выход.
  3. Можно получить тот же самый выход в одном единственном раунде, изменяя биты только в трех соседних S -блоках.

P-блоки. В структуре P -блока были найдены одна загадка и одна слабость.

  1. Не ясно, почему проектировщики DES использовали начальную и конечную перестановки. Эти перестановки не вносят никаких новых свойств с точки зрения безопасности.
  2. В перестановке расширения (в функции) первые и четвертые биты последовательностей на 4 бита повторяются.
Слабость в ключе шифра

Размер ключа. Критики утверждают, что самая серьезная слабость DES — это размер ключа ( 56 битов). Чтобы предпринять атаку грубой силы данного блока зашифрованного текста, злоумышленники должны проверить 256 ключей.

a. Используя доступную сегодня технологию, можно проверить один миллион ключей в секунду. Это означает, что потребуется более чем две тысячи лет, чтобы выполнить атаку грубой силы на DES, используя компьютер только с одним процессором.

b. Если мы можем сделать компьютер с одним миллионом чипов процессоров (параллельная обработка), то сможем проверить все множество ключей приблизительно за 20 часов. Когда был введен DES, стоимость такого компьютера была более чем несколько миллионов долларов, но она быстро снизилась. Специальный компьютер был создан в 1998 году — и нашел ключ за 112 часов.

c. Компьютерные сети могут моделировать параллельную обработку. В 1977 году команда исследователей использовала 3500 компьютеров, подключенных к Internet, чтобы найти ключ RSA за 120 дней. Множество ключей было разделено среди всех этих компьютеров, и каждый компьютер был ответственен за проверку части домена DES. Если 3500 связанных в сеть компьютеров могут найти ключ через 120 дней, то секретное общество из 42 000 членов может найти ключ через 10 дней.

Приведенное выше показывает, что DES с размером ключа шифра 56 битов не обеспечивает достаточной безопасности. Позже в этой лекции мы увидим, что есть одно решение этой проблемы – это использование тройного DES(3DES) с двумя ключами ( 112 битов) или тройного DES с тремя ключами (биты 16 ).

Слабые ключи. Четыре ключа из 256 возможных ключей называются слабыми ключами. Слабые ключи — это одни из тех, которые после операции удаления проверочных бит (используя таблицу 8.12) состоят из всех нулей или всех единиц или половины нулей и половины единиц. Такие ключи показаны в таблице 8.18.

Таблица 8.18. Слабые ключи
Ключи до удаления проверочных бит (64 бита) Действующие ключи (56 бит)
0101 0101 0101 0101 0000000 0000000
1F1F 1F1F 1F1F 1F1F 0000000 FFFFFFF
E0E0 E0E0 E0E0 E0E0 FFFFFFF 0000000
FEFE FEFE FEFE FEFE FFFFFFF FFFFFFF

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

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

В чем опасность использования слабых ключей? Если мы зашифровали блок слабым ключом и впоследствии расшифровали результат тем же самым слабым ключом, мы получаем первоначальный блок. Процесс создает один и тот же первоначальный блок, если мы расшифровываем блок дважды. Другими словами, каждый слабый ключ есть инверсия самого себя: Ek. (Ek (P)) = P, как это показано на рис. 8.11.

 Двойное шифрование и дешифрование со слабым ключом

Рис. 8.11. Двойное шифрование и дешифрование со слабым ключом

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

Пример 8.8

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

Ключ: 0x0101 0101 0101 0101	
Зашифрованный текст: 0x814FE938589154F7
Исходный текст: 0xl234.56887654321	
	
Ключ: 0x0101 0101 0101 0101	
Исходный текст: 0x814FE938589154F7	
Зашифрованный текст: 0xl234.56887654321

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

Таблица 8.19. Полуслабые ключи
Первый ключ в паре Второй ключ в паре
01FE 01FE 01FE 01FE FE01 FE01 FE01 FE01
1FEO 1FEO OEF1 OEF1 E01F E01F F10E F10E
01EO 01E1 01F1 01F1 E001 E001 F101 F101
1FFE 1FFE OEFE OEFE FE1F FE1F FEOE FEOE
011F 011F 010E 010E 1F01 1F01 OE01 OE01
EOFE EOFE FIFE FIFE FEEO FEEO FEF1 FEFl

Чтобы проиллюстрировать идею, мы создали ключи раунда от первой пары, как показано ниже:

Ключ раунда 1	9153E54319BD 	6EAC1ABCE642
Ключ раунда 2	6EAC1ABCE642	9153E54319BD
Ключ раунда 3	6EAC1ABCE642	9153E54319BD
Ключ раунда 4	6EAC1ABCE642	9153E54319BD
Ключ раунда 5	6EAC1ABCE642	9153E54319BD
Ключ раунда 6	6EAC1ABCE642	9153E54319BD
Ключ раунда 7	6EAC1ABCE642	9153E54319BD
Ключ раунда 8	6EAC1ABCE642	9153E54319BD
Ключ раунда 9	9153E54319BD	6EAC1ABCE642
Ключ раунда 10	9153E54319BD	6EAC1ABCE642
Ключ раунда 11	9153E54319BD	6EAC1ABCE642
Ключ раунда 12	9153E54319BD	6EAC1ABCE642
Ключ раунда 13 	9153E54319BD	6EAC1ABCE642
Ключ раунда 14	9153E54319BD	6EAC1ABCE642
Ключ раунда 15	9153E54319BD	6EAC1ABCE642
Ключ раунда 16	6EAC1ABCE642	9153E54319BD

Как показывает список, имеется восемь одинаковых ключей раунда в каждом полуслабом ключе. Кроме того, ключи раунда 1 в первом множестве — те же самые, что и ключи раунда 16 во втором; ключи раунда 2 в первом — те же самые, что и ключи раунда 15 во втором, и так далее. Это означает, что ключи инверсны друг другу: Ek2. (Ek1E (P)) = P, как показано на рис. 8.12.

 Пара полуслабых ключей при шифровании и дешифровании

Рис. 8.12. Пара полуслабых ключей при шифровании и дешифровании

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

Пример 8.9

Какова вероятность случайного выбора слабого, полуслабого или возможно слабого ключа?

Решение

Множество ключей DES равно 256. Общее количество вышеупомянутых ключей — 64 (4 + 12 + 48). Вероятность выбора одного из этих ключей равна 8,8 \times {10^{ - 16}}, т.е. исключительно мала.

Ключевое дополнение. Среди множества ключей (256) некоторые ключи могут быть получены инверсией (изменение из 0 в 1 или 1 в 0 ) каждого бита в ключе. Ключевое дополнение упрощает процесс криптоанализа. Ева может использовать только половину возможных ключей ( 255 ), чтобы выполнить атаку грубой силы, потому что

C=E(K,P) ->  C=E(K,P)

Другими словами, если мы зашифровали дополнение исходного текста дополнением ключа, мы получаем дополнение зашифрованного текста. Ева не должна проверять все 256 возможных ключей, она может проверить только половину из них и затем дополнить результат.

Пример 8.10

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

Таблица 8.20. Результаты примера 8.10
Оригинал Дополнение
Ключ 1234123412341234 EDCBEDCBEDCBEDCB
Исходный текст 12345678ABCDEF12 EDCBA987543210ED
Зашифрованный текст E112BE1DEFC7A367 1EED41E210385C98

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

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Дмитрий Плешаков
Дмитрий Плешаков

Здравствуйте. На данныйц момент я изучаю курс Математика криптографии и теория шифрования. Стоимость обучения на данном курсе указана 1 руб., но, при этом доступ к лекциям указан платный. Не могли бы Вы прояснить данный момент, и, если доступ платный, какова стоимость лекций и общая стоимость курса.

Заранее благодарен.