![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Люди давно интересуются безопасностью DES [458]. Было много рассуждений о длине ключа, количестве итераций и схеме S-блоков. S-блоки были наиболее таинственными - какие-то константы, без видимого объяснения для чего и зачем они нужны. Хотя IBM утверждала, что работа алгоритма была результатом 17 человеко-лет интенсивного криптоанализа, некоторые люди опасались, что NSA вставило в алгоритм лазейку, которая позволит агентству легко дешифрировать перехваченные сообщения.
Комитет по разведке Сената США чрезвычайно тщательно расследовал этот вопрос в 1978 году. Результаты работы комитета были засекречены, но в открытых итогах этого расследования с NSA были сняты все обвинения в неуместном вмешательстве в проектирование алгоритма [1552]. "Было сказано, что NSA убедило IBM в достаточности более короткого ключа, косвенно помогло разработать структуры S-блоков и подтвердило, что в окончательном варианте DES, с учетом всех знаний NSA, отсутствовали статистические или математические бреши " [435]. Однако, так как правительство не опубликовало подробности расследования, многих людей убедить не удалось.
Тачмен (Tuchman) и Майер (Meyer), разработавшие DES криптографы IBM, заявили, что NSA не изменяло проект [841]:
Их основным подходом был поиск сильных подстановок, перестановок и функций планирования ключей.... IBM по просьбе NSA засекретило информацию, касающуюся критериев выбора.... "NSA сообщило нам, что мы самостоятельно заново открыли ряд секретов, используемых для создания их собственных алгоритмов", - объясняет Тачмен.
Позже в одной из статей Тачмен писал: "Алгоритм DES был полностью разработан внутри IBM ее сотрудниками. NSA не продиктовало ни единой связи!" Тачмен подтвердил это утверждение в своем докладе по истории DES на Национальной конференции по компьютерной безопасности (National Computer Security Conference) в 1992 году.
С другой стороны, Копперсмит писал [373, 374]: "Агентство национальной безопасности (NSA) также помогало IBM техническими советами." А Конхейм (Konheim) утверждал: "Мы послали S-блоки в Вашингтон. Они вернулись полностью переработанными. Мы проверили их, и они прошли нашу проверку." На этот факт и ссылаются как на доказательство, что NSA вставило лазейку в DES. По вопросу о каком-либо преднамеренном ослаблении DES NSA заявило [363]:
Относительно Стандарта шифрования данных (DES) мы считаем, что ответ на ваш вопрос о роли NSA в разработке DES содержится в опубликованных итогах расследования Комитета Сената по разведке, проведенного в 1978 году. В сообщении Комитета указывается, что NSA никоим образом не искажало алгоритм, и что безопасность, предоставляемая DES для несекретных данных, с целью защиты которых он и был разработан, была более чем адекватна в течение по крайней мере 5-10 лет. Короче говоря, NSA не вносило и не пыталось вносить никаких ослаблений в алгоритм DES.
Тогда почему они изменили S-блоки? Может быть, чтобы гарантировать, что лазейка не будет встроена в DES самой IBM. У NSA не было причин доверять исследователям IBM, и оно могло решить, что не до конца исполнит свой долг, если не обеспечит отсутствие лазеек в DES. Задание S-блоков и могло быть одним из способов гарантировать это.
Совсем недавно новые результаты криптоанализа прояснили этот вопрос, который в течение многих лет был предметом спекуляций.
Слабые ключи
Из-за того, что первоначальный ключ изменяется при получении подключа для каждого этапа алгоритма, определенные первоначальные ключи являются слабыми [721, 427]. Вспомните, первоначальное значение расщепляется на две половины, каждая из которых сдвигается независимо. Если все биты каждой половины равны 0 или 1, то для всех этапов алгоритма используется один и тот же ключ. Это может произойти, если ключ состоит из одних 1, из одних 0, или если одна половина ключа состоит из одних 1, а другая - из одних 0. Кроме того, у два слабых ключа обладают другими свойствами, снижающими их безопасность [427].
Четыре слабых ключа показаны в шестнадцатиричном виде в Табл. 12-11. (Не забывайте, что каждый восьмой бит - это бит четности.)
Табл. 12-11.
Слабые ключи DES
Значение слабого ключа (с битами четности) | Действительный ключ | |||
0000000 0000000 | ||||
1F1F | 1F1F | 0E0E | 0E0E | 0000000 FFFFFFF |
E0E0 | E0E0 | F1F1 | F1F1 | FFFFFFF 0000000 |
FEFE | FEFE | FEFE | FEFE | FFFFFFF FFFFFFF |
Кроме того, некоторые пары ключей при шифровании переводят открытый текст в идентичный шифротекст. Иными словами, один из ключей пары может расшифровать сообщения, зашифрованные другим ключом пары. Это происходит из-за метода, используемого DES для генерации подключей - вместо 16 различных подключей эти ключи генерируют только два различных подключа. В алгоритме каждый из этих подключей используется восемь раз. Эти ключи, называемые полуслабыми ключами, в шестнадцатиричном виде приведены в Табл. 12-12.
Табл. 12-12.
Полуслабые пары ключей DES
01FE | 01FE | 01FE | 01FE | и | FE01 | FE01 | FE01 | FE01 |
1FE0 | 1FE0 | 0EF1 | 0EF1 | и | E01F | E01F | F10E | F10E |
01E0 | 01E0 | 01F1 | 01F1 | и | E001 | E001 | F101 | F101 |
1FFE | 1EEE | 0EFE | 0EFE | и | FE1F | FE1F | FE0E | FE0E |
011F | 011F | 010E | 010E | и | 1F01 | 1F01 | 0E01 | 0E01 |
E0FE | E0FE | F1FE | F1FE | и | FEE0 | FEE0 | FEE1 | FEE1 |
Ряд ключей генерирует только четыре подключа, каждый из которых четыре раза используется в алгоритме. Эти возможно слабые ключи перечислены в Табл. 12-13.
Табл. 12-13.
Возможно слабые ключи DES
1F | 1F | 0E | 0E | E0 | E0 | F1 | F1 | |||||||||
1F | 1F | 0E | 0E | FE | 1F | E0 | FE | 0E | F1 | |||||||
1F | 1F | 0E | 0E | FE | 1F | E0 | FE | 0E | F1 | |||||||
1F | 1F | 0E | 0E | E0 | 1F | 1F | E0 | F1 | 0E | 0E | F1 | |||||
E0 | E0 | F1 | F1 | FE | FE | FE | FE | |||||||||
FE | FE | FE | FE | E0 | 1F | FE | F1 | 0E | FE | |||||||
FE | E0 | 1F | FE | F1 | 0E | E0 | 1F | FE | F1 | 0E | FE | |||||
E0 | FE | 1F | F1 | FE | 0E | FE | 1F | 1F | FE | FE | 0E | 0E | FE | |||
FE | E0 | 1F | FE | F1 | 0E | 1F | FE | E0 | 0E | FE | F1 | |||||
E0 | FE | 1F | F1 | FE | 0E | FE | 1F | E0 | FE | 0E | F1 | |||||
E0 | E0 | 1F | 1F | F1 | F1 | 0E | 0E | 1F | E0 | FE | 0E | F1 | FE | |||
FE | FE | 1F | 1F | FE | FE | 0E | 0E | E0 | 1F | FE | F1 | 0E | FE | |||
FE | 1F | E0 | FE | 0E | F1 | E0 | E0 | F1 | F1 | |||||||
E0 | 1F | FE | F1 | 0E | FE | 1F | 1F | E0 | E0 | 0E | 0E | F1 | F1 | |||
FE | E0 | 1F | FE | F1 | 0E | 1F | FE | E0 | 0E | FE | F1 | |||||
E0 | FE | 1F | F1 | FE | 0E | 1F | FE | E0 | 0E | FE | F1 | |||||
E0 | E0 | F1 | F1 | 1F | E0 | FE | 0E | F1 | FE | |||||||
1F | FE | E0 | 0E | FE | F0 | 1F | E0 | FE | 0E | F1 | FE | |||||
1F | E0 | FE | 0E | F1 | FE | FE | FE | FE | FE | |||||||
FE | FE | FE | FE | 1F | 1F | FE | FE | 0E | 0E | FE | FE | |||||
1F | E0 | E0 | 1F | 0E | F1 | F1 | 0E | FE | FE | E0 | E0 | FE | FE | F1 | F1 | |
FE | E0 | 1F | FE | F1 | 0E | E0 | FE | FE | E0 | F1 | FE | FE | F1 | |||
E0 | FE | 1F | F1 | FE | 0E | FE | E0 | E0 | FE | FE | F1 | F1 | FE | |||
1F | FE | FE | 1F | 0E | FE | FE | 0E | E0 | E0 | FE | FE | F1 | F1 | FE | FE |
Прежде, чем порицать DES слабые ключи, обратите внимание на то, что эти 64 ключа - это крошечная часть полного набора из 72057594037927936 возможных ключей. Если вы выбираете ключ случайно, вероятность выбрать один из слабых ключей пренебрежимо мала. Если вы настоящий параноик, можете всегда проверять "на слабость" сгенерированный ключ. Некоторые думают, что нечего и беспокоиться на этот счет. Другие утверждают, что проверка очень легка, почему бы ее и не выполнить.
Дальнейший анализ слабых и полуслабых ключей приведен в [1116]. Других слабых ключей в процессе исследований найдено не было.
Дата публикования: 2015-11-01; Прочитано: 368 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!