Основы криптографии

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



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

DES позволяет использовать для шифрования или дешифрирования блока одну и ту же функцию. Единственное отличие состоит в том, что ключи должны использоваться в обратном порядке. To есть, если на этапах шифрования использовались ключи K1, К2, К3, ..., K16, то ключами дешифрирования будут K16, Kl5, K14, ..., K1. Алгоритм, который создает ключ для каждого этапа, также цикличен. Ключ сдвигается направо, а число позиций сдвига равно 0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1.

Безопасность DES

Люди давно интересуются безопасностью DES. Было много рассуждений о длине ключа, количестве итераций и схеме S-блоков. S-блоки были наиболее таинственными - какие-то константы, без видимого объяcнения для чего и зачем они нужны. Хотя IBM утверждала, что работа алгоритма была результатом 17 человеко-лет интенсивного криптоанализа, некоторые люди опасались, что АНБ вставило в алгоритм лазейку, которая позволит агентству легко дешифрировать перехваченные cooбщения.

Комитет по разведке Сената США чрезвычайно тщательно расследовал этот вопрос в 1978 году. Результаты работы комитета были засекречены, но в открытых итогах этого расследования с АНБ были сняты все обвинeния в неуместном вмешательстве в проектирование алгоритма . "Было сказано, что АНБ убедило IBM в достаточности более короткого ключа, косвенно помогло разработать структуры S-блоков и подтвердило, что в окончательном варианте DES, с учетом всех знаний АНБ, отсутствовали статистические или математические бреши". Однако, так как правительство не опубликовало подробности расследования, многих людей убeдить не удалось.

С другой стороны, Копперсмит писал: "Агентство национальной безопасности также помoгало IBM техническими советами." А Конхейм (Konheim) утверждал: "Мы послали S-блоки в Вашингтон. Они вернулись полностью переработанными. Мы проверили их, и они прошли нашу проверку." На этот факт и ccылаются как на доказательство, что АНБ вставило лазейку в DES.

Тогда почему они изменили S-блоки? Может быть, чтобы гарантировать, что лазейка не будет встроена в DES самой IBM. У АНБ не было причин доверять исследователям IBM, и оно могло решить, что не до конца исполнит свой долг, если не обеспечит отсутствие лазеек в DES. Задание S-блоков и могло быть одним из спoсобов гарантировать это.

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

Слабые ключи

Из-за того, что первоначальный ключ изменяется при получении подключа для каждого этапа алгоритма, определенные первоначальные ключи являются слабыми. Вспомните, первоначальное значение расщепляется на две половины, каждая из которых сдвигается независимо. Если все биты каждой половины равны 0 или 1, то для всех этапов алгоритма используется один и тот же ключ. Это может произойти, если ключ состоит из одних 1, из одних 0, или если одна половина ключа состоит из одних 1, а другая - из одних 0. Кроме того, два слабых ключа обладают другими свойствами, снижающими их безопасность .

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

Значение слабого ключаДействительный ключ 0101 0101 0101 0101 0000000 0000000 1F1F 1F1F ОЕОЕ ОЕОЕ 0000000 FFFFFFF ЕОЕО ЕОЕО F1F1 F1F1 FFFFFFF 0000000 FEFE FEFE FEFE FEFE FFFFFFF FFFFFFF

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

Полуслабые пары ключей DES

01FE 01FE 01FE 01FE и FE01 FE01 FE01 FE01 1FEO 1FEO OEF1 OEF1 и E01F E01F F10E F10E 01ЕО 01ЕО 01F1 01F1 и Е001 Е001 F101 F101 1FFE IEEE OEFE OEFE и FE1F FE1F FEOE FEOE 01 IF 011F 010Е 010E и 1F01 1F01 ОЕ01 ОЕ01 EOFE EOFE FIFE FIFE и FEEO FEEO FEE1 FEE1

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

Эти возможно слабые ключи перечислены таблице.

Возможно слабые ключи DES

IF IF 01 01 ОЕ ОЕ 01 01 ЕО 01 01 ЕО F1 01 01 F1 01 IF IF 01 01 ОЕ ОЕ 01 FE IF 01 ЕО FE ОЕ 01 F1 IF 01 01 IF ОЕ 01 01 ОЕ FE 01 IF ЕО FE 01 ОЕ F1 01 01 IF IF 01 01 ОЕ ОЕ ЕО IF IF ЕО F1 ОЕ ОЕ F1 ЕО ЕО 01 01 F1 F1 01 01 FE 01 01 FE FE 01 01 FE FE FE 01 01 FE FE 01 01 ЕО IF 01 FE F1 ОЕ 01 FE FE ЕО IF 01 FE F1 ОЕ 01 ЕО 01 IF FE F1 01 ОЕ FE ЕО FE IF 01 F1 FE ОЕ 01 FE IF IF FE FE ОЕ ОЕ FE FE ЕО 01 IF FE F1 01 ОЕ IF FE 01 ЕО ОЕ FE 01 F1 ЕО FE 01 IF F1 FE 01 ОЕ 01 FE IF ЕО 01 FE ОЕ F1 ЕО ЕО IF IF F1 F1 ОЕ ОЕ IF ЕО 01 FE ОЕ F1 01 FE FE FE IF IF FE FE ОЕ ОЕ 01 ЕО IF FE 01 F1 ОЕ FE FE IF ЕО 01 FE ОЕ F1 01 01 01 ЕО ЕО 01 01 F1 F1 ЕО IF FE 01 F1 ОЕ FE 01 IF IF ЕО ЕО ОЕ ОЕ F1 F1 FE 01 ЕО IF FE 01 F1 ОЕ IF 01 FE ЕО ОЕ 01 FE F1 ЕО 01 FE IF F1 01 FE ОЕ 01 IF FE ЕО 01 ОЕ FE F1 01 ЕО ЕО 01 01 F1 F1 01 IF 01 ЕО FE ОЕ 01 F1 FE IF FE ЕО 01 ОЕ FE FO 01 01 IF ЕО FE 01 ОЕ F1 FE IF ЕО FE 01 ОЕ F1 FE 01 01 01 FE FE 01 01 FE FE 01 FE FE 01 01 FE FE 01 IF IF FE FE ОЕ ОЕ FE FE IF ЕО ЕО IF ОЕ F1 F1 ОЕ FE FE ЕО ЕО FE FE F1 F1 01 FE ЕО IF 01 FE F1 ОЕ ЕО FE FE ЕО F1 FE FE F1 01 ЕО FE IF 01 F1 FE ОЕ FE ЕО ЕО FE FE F1 F1 FE IF FE FE IF ОЕ FE FE ОЕ ЕО ЕО FE FE F1 F1 FE FE

Прежде, чем порицать DES слабые ключи, обратите внимание на то, что эти 64 ключа - это крошечная часть полного набора из 72057594037927936 возможных ключей. Если вы выбираете ключ случайно, вероятность выбрать один из слабых ключей пренебрежимо мала. Если вы настоящий параноик, можете всегда проверять "на слабость" сгенерированный ключ. Некоторые думают, что нечего и беспокоиться на этот iет. Другие утверждают, что проверка очень легка, почему бы ее и не выполнить.

Дальнейший анализ слабых и полуслабых ключ