Лекции 2010-го года (1130544), страница 82
Текст из файла (страница 82)
Дело в том, что применение дешифрации кзашифрованному тексту дает шифр, который получается после применения первого ключак исходному тексту. Эту мысль поясняют следующие формулы:Ci = EK2(EK1(Pi )); DK2(Ci) = EK1(Pi)В этом случае можно предложить следующую процедуру взлома:1.2.Вычислить все возможные применения функции Е к шифруемому тексту.Вычислить все возможные дешифрации зашифрованного текста однократнымприменением дешифрирующей функции.3.Отсортировать полученные таблицы и искать совпадающие строки.4.Полученная пара номеров строк – пара ключей.5.Проверить эту пару на совпадение шифрования; если неудачный результат,продолжить с шага 1.Тройное шифрование совершенно меняет дело.
На рисунке 7-9 показана модификациясхемы шифрования с двумя ключами в три этапа - EDE-схема. Ее никому еще не удалосьвскрыть. Она была положена в основу международного стандарта. Здесь можетвозникнуть два вопроса. Первый: почему в этой схеме используются 2, а не 3 ключа.Второй: почему используется схема EDE, а не EEE? Ответ на первый вопрос состоит втом, что двух ключей более чем достаточно для большинства применений.
Использованиесхемы EDE вместо ЕЕЕ связано с особенностями организации алгоритма DES.Рисунок 7-9. Тройное шифрование с помощью алгоритма DESНадо отметить, что было предложено много других алгоритмов шифрования.Хорошо известным является международный алгоритм шифрования данных IDEA. Онбыл разработан специалистами из Швейцарии, и в нем используют 128-разрядный ключ.Подобно DES, этот алгоритм разбивает исходный текст на 64-разрядные блоки, надкоторыми производят определенные итерации, каждая из которых имеет параметры. Врезультате на выходе получают 64-разрядный блок, как показано на рисунке 7-10 (а).
Накаждой итерации значение каждого выходного бита зависит от всех входных битов,поэтому достаточно 8 итераций, а не 19, как в DES.Рисунок 7-10. (а) IDEA; (б) Подробности одной итерацииПодробности одной итерации показаны на рисунке 7-10 (б). На каждой итерациииспользуются три типа операций над целыми числами без знака: исключающее ИЛИ,сложение по модулю 2^16 и умножение по модулю 2^16 + 1.Выбор именно этих операций связан с тем, что они не подчиняются распределительному исочетательному законам, что усложняет криптоанализ.
Из 128-разрядного ключаформируют 52 подключа по 16 разрядов: по 6 для каждой из 8 итераций и 4 дляпоследней, финальной стадии. Для реализации этого алгоритма была создана специальнаямикросхема, обеспечивающая скорость шифрования 177 Мбит/сек.7.1.4. Алгоритмы с открытыми ключамиИдея алгоритмов шифрования с открытыми ключами была предложена в 1976 годуДиффи и Хеллманом и состоит в следующем. Пусть у нас есть алгоритмы Е и D, которыеудовлетворяют следующим требованиям:• D(E(P))=P• Чрезвычайно трудно получить D из E.• Е нельзя вскрыть через анализ исходных текстов.Алгоритм шифрования Е и его ключ публикуют или помещают так, чтобы каждый мог ихполучить, алгоритм D также публикуют, чтобы подвергнуть его изучению, а вот ключи кпоследнему хранят в секрете.
В этом случае взаимодействие двух абонентов А и В будетвыглядеть следующим образом. Пусть А хочет послать В сообщение Р. А шифрует EВ(P),зная алгоритм и открытый ключ для шифрования. В, получив EВ(P), использует DВ ссекретным ключом, т.е. вычисляет DВ(EВ(P))=P. Никто не прочтет P кроме A и B, т.к. поусловию алгоритм EВ не раскрываем по условию, а DВ не выводим из EВ.Примером такого алгоритма является алгоритм RSA, предложенный Ривестом, Шамироми Адлеманом в 1978 году. Общая схема этого алгоритма такова:1.Выберем два больших (больше 10100) простых числа p и q.2.Вычислим n=pхq и z=(p-1)х(q-1).3.Выберем d, относительно простое к z.4.Вычислим e такое, что eхd=1 mod z.Разбиваем исходный текст на блоки Р так, чтобы каждый блок, как число не превосходилn.
Для этого выбираем наибольшее k такое, чтобы P=2k<n. Вычисляем С=Pe(mod n),чтобы зашифровать сообщение P. Для расшифровки вычисляем P=Cd(mod n).Для шифрования нам нужны (e, n) – это открытый ключ, для расшифровки (d, n) – этозакрытый ключ. Можно доказать, что для любого Р в указанном выше диапазоне функциишифрования и дешифрования взаимообратные. Безопасность этого метода основана навысокой вычислительной сложности операции разложения на множители больших чисел.Так, например, разложение на множители 200-разрядного числа потребует 4 миллиардовлет.Рисунок 7-11. Пример использования алгоритма RSAНа рисунке 7-11 дан простой учебный пример применения RSA алгоритма для p=3, q=11,n=33, z=20, d=7, откуда e=3.Один из основных недостатков алгоритма RSA – он работает медленно.7.1.5. Протоколы установления подлинностиПротоколы установления подлинности (аутентификации) позволяют процессу убедиться,что он взаимодействует с тем, с кем должен, а не с тем, кто лишь представляется таковым.Очень часто путают проверку прав на выполнение тех или иных операций саутентификацией.
(В первом случае имеем авторизацию.) Аутентификация отвечает навопрос: как убедиться, что вы взаимодействуете именно с нужным процессом. Если,например, к серверу процесс обратился с запросом удалить файл x.old и объявил себяпроцессом Вася, то сервер должен убедиться, что перед ним действительно Вася и чтоВася имеет право делать то, что просит. Ключевым конечно является первый вопрос,ответ на второй вопрос – это дело просмотра таблицы.Общая схема всех протоколов аутентификации такова: сторона А и сторона В начинаютобмениваться сообщениями между собой или с Центром раздачи ключей (ЦРК). ЦРК всегда надежный партнер.
Протокол аутентификации должен быть устроен так, что дажеесли злоумышленник перехватит сообщения между А и В, то ни А, ни В не спутают другдруга со злоумышленником.7.1.5.1. Аутентификация на основе закрытого разделяемого ключаОсновная идея первого протокола аутентификации, так называемого «протокола ответ повызову», состоит в том, что одна сторона посылает некоторое число (вызов), другаясторона, получив это число, преобразует его по определенному алгоритму и отправляетобратно.
Посмотрев на результат преобразования и зная исходное число, инициаторможет судить, правильно сделано преобразование или нет. Алгоритм преобразованияявляется общим секретом взаимодействующих сторон. Будем предполагать, что стороныА и В имеют общий секретный ключ KАВ. Этот секретный ключ взаимодействующиестороны как-то установили заранее, например, по телефону. Описанная выше процедурапоказана на рисунке 7-12.Рисунок 7-12. Двусторонняя аутентификация с запросом и подтверждениемНа этом рисунке:А,В - идентификаторы взаимодействующих сторонRi - вызов, где индекс указывает, кто его послалКj - ключ, индекс которого указывает на его владельцаНа рисунке 7-13 дана схема, где сокращено количество передач между сторонами посравнению с рисунком 7-12.Рисунок 7-13.
Сокращенная двусторонняя аутентификация с запросом и подтверждениемРисунок 7-14 показывает «дыру» в схеме 7-13 и то, как злоумышленник может этой дыройвоспользоваться. Это так называемая атака отражением. Идея этой атаки состоит в том,чтобы «заставить» сторону В дать некоторое число RВ (см. шаг 2). А затем, на шаге 3,подсунуть стороне В это же число как свой вызов. На этот вызов сторона В, согласнопротоколу, ответит преобразованным KАВ(RВ).
В результате злоумышленник получит иRВ, и KАВ(RВ).Рисунок 7-14. Атака отражениемЕсть несколько общих правил построения протоколов аутентификации (протоколпроверки подлинности или просто подлинности):1.Инициатор должен доказать, кто он есть, прежде чем вы пошлете ему какую-либоважную информацию.2.Инициатор и отвечающий должны использовать разные ключи.3.Инициатор и отвечающий должны использовать начальные вызовы из разныхнепересекающихся множеств.В схеме на рисунке 7-13 все эти три правила нарушены.7.1.5.2. Установка разделяемого ключаДо сих пор мы предполагали, что А и В имеют общий секретный ключ. Рассмотримтеперь, как они могут его установить. Например, они могут воспользоваться телефоном.Однако, как В убедится, что ему звонит именно А, а не злоумышленник? Можнодоговориться о личной встрече, куда принести паспорт и прочее, удостоверяющееличность. Однако есть протокол, который позволяет двум незнакомым людям установитьобщий ключ даже при условии, что за ними следит злоумышленник.Это протокол обмена ключом Диффи-Хеллмана.
Его схема показана на рисунке 7-15.Прежде всего, А и В должны договориться об использовании двух больших простыхчисел n и g, удовлетворяющих определенным условиям. Эти числа могут бытьобщеизвестны. Затем, А выбирает большое число, скажем x, и хранит его в секрете. То жесамое делает В. Его число – y.Рисунок 7-15. Обмен ключом Диффи-ХеллманаА шлет В сообщение (n, g, gx mod n), В шлет в ответ (gy mod n). Теперь А выполняетоперацию (gy mod n)x, В - (gx mod n)y. Удивительно, но теперь оба имеют общий ключ gxy mod n! Например, если n=47, g=3, x=8, y=10, то А шлет В сообщение (47, 3, 28),поскольку 38 mod 47=28. В шлет А (17). А вычисляет 178 mod 47=4, B вычисляет 2810mod 47=4. Ключ установлен - 4!Злоумышленник следит за всем этим.