Р.Л. Смелянский - Компьютерные сети. Том 2. Сети в ЭВМ (1130083), страница 38
Текст из файла (страница 38)
3. Операция АгЫКоцпг!Кеу, как и при шифровании, выполняет',::,' наложение на обрабатываемые данные четырех слов расширенного,:":. ключа И 4л... И м„. Однако нумерация итераций Я при расшифров-„:,:-;, ке производится в обратную сторону: от Я вЂ” 1 до О. 4. Операция 1пчМ)хСо!шппз выполняет умножение кажлого столб- "' ца массива данных аналогично прямой операции М!хСо1шппз, одна-::: ко умножение производится на полипом а-'(х). Аналогично шифрованию последний раунд дешифрования не со-.",;:: держит операцию !АМ)хСо1шппз. 4.
1.4. Алгоритмы с открытыми ключами Идея алгоритмов шифрования с открытыми ключами, предложен-.!~," ная в 1976 г. Диффи и Хеллманом, состоит в следующем. Пусть име-',,; 158 !3492928512 1601066541 1280000000 78125 78125 8031810176 ются алгоритмы шифрования Е и дешифрования 2), которые удовлетворяют следующим требованиям: ° О(Е(Р)) равно исходному тексту Р; ° чрезвычайно трудно получить 2), зная Е; ° Е нельзя вскрыть через анализ исходных текстов Алгоритм шиФрования Е и его ключ, так называемый открытый ;.=.':~':!' ключ, публикуют или помещают таким образом, чтобы каждый мог !"~::.~.":„': их получить.
Алгоритм 0 также публикуют, чтобы подвергнуть его изучению и проверке на стойкость, а вот ключ к нему хранят в секре- :~~:;:;;: те. Это так называемый секретный, или закрытый, ключ Взаимодействие двух абонентов А и В происходит следующим обт)й)( разом. Пусть А хочет послать В текст Р. Абонент А шифрует текст Ел(Р), зная алгоритм и открытый ключ абонента В для шифрования Абонент В, получив текст Ел(Р) и использовав секретный ключ и ': алгоритм 0л, вычисляет 79л(Ел(Р)) = Р. Никто не прочтет текст Р , ". кроме абонентов А и В, так как по условию алгоритм Ел нераскрываем, а алгоритм Ре нельзя вывести из Ея Примером такого алгоритма является алгоритм ЮА, предложен- ; ный Ривестом, Шамиром и Адлеманом в 1978 г.
Общая схема этого !.";"" алгоритма следующая 178] 1. Выберем два больших (больше 1бшо) простых числа р и т( 2. Вычислимо =рхеу и а=(р — 1) х(с( — 1). 3. Выберем простое с7, относительно простое по отношению к с. ',;.$:::;:, 4. Найдем е, удовлетворяющее условию е х с(= 1 шо(( а. Разобьем исходный текст на блоки длиной р таким образом, что- -' бы каждый блок как число не превосходил и. Для этого выберем -' наибольшее )с, при котором выполняется условие р = 2" < н. Шифр ;,."::сообщения р получим, вычислив шифрованный текст С = р'(шод и) Для расшифровки найдем Р = С и (шо() н). Для шифрования требуются числа е, и, представляющие собой от- крытый ключ, а для дешифрования — числа с(, л, т.е. закрытый ключ.
;.. )( Можно доказать, что для любого сообщения Р в указанном диапазоне функции шифрования и дешифрования взаимообратные. Безопас"," ':-' ность, обеспечиваемая применением этого метода шифрования, осно;,(!1:.: Открытый текст (Р) Шифрованный текст (С) После расшифровки 3 ! Символ Число р ре(пюе 33) с с~(тпое 33) Символ о !9 6859 28 19 (7 21 9261 21 2! Ы Н 26 17576 20 26 с 1 1 ! А !У 14 2744 5 14 7У А7 14 2744 5 14 !У Е 05 !25 26 5 Е Вычисления отправителя Вычисления пол) ~атолл Рнс.
4,6. Пример использования К8А-алгоритма 159 вана на высокой вычислительной сложности операции разложения на простые множители больших чисел. Так, например, разложение на простые множители 200-разрядного числа потребует 4 млрд лет. На рис. 4.6 приведен простой учебный пример применения КЯА- алгоритма при р = 3, 7 = 11, л = ЗЗ, а= 20, е1= 7, откуда получаем е = 3. Один из основных недостатков алгоритма )хэА — медленная работа. 4. 7.5. Протоколы установления подлинности Протоколы установления подлинности — аутентификации — позволяют процессу убедиться, что он взаимодействует с тем, с кем должен, а не с тем, кто лишь представляется таковым. Очень часто путают авторизацию, т.е. проверку прав на выполнение тех или иных операций, с аутентификацией, или идентификацией. Аутентификация отвечает на вопрос: «Вы взаимодействуете с тем, с кем надо, или Ваш т)а-йа-м1а фальсифицирован, т.е. кто-то выдает себя за него».
Если, например, к серверу обратился процесс с запросом удалить файл х. айаг и объявил себя процессом «Вася», то сервер должен убедиться, что перед ним действительно Вася и что Вася имеет право делать то, что просит. Ключевым здесь, конечно, является первый вопрос, а ответ на второй вопрос — это дело авторизации, которая сводится к просмотру таблицы прав. Общая схема всех протоколов аутентификации следующая: сторона А и сторона В начинают обмениваться сообщениями между собой или с центром раздачи ключей (ЦРК). При этом предполагается, что ЦРК вЂ” всегда надежный партнер, т.
е, его нельзя фальсифицировать. Протокол аутентификации должен быть устроен таким образом, чтобы даже в случае если злоумышленник перехватит сообщения между А и В, то ни А, ни В не спутают друг друга со злоумышленником. Аутентификация на основе закрытого разделяемого ключа Основная идея первого протокола аутентификации, называемого протоколом ответа по вызову, состоит в том, что одна сторона посылает некоторое число (вызов), а другая сторона, получив это число.
преобразует его по определенному алгоритму и отправляет обратно. Увидев результат преобразования и зная исходное число, инициатор может определить, правильно сделано преобразование или нет. Алгоритм преобразования является общим секретом взаимодействующих сторон. Предположим, что стороны А и В имеют общий закрытый ключ Клл, который взаимодействующие стороны как-то установили заранее, соблюдая конфиденциальность, пам неважно как (рис.
4.7). На рис. 4.8 приведена схема с сокращенным числом передач между сторонами по сравнению со схемой, показанной на рис. 4.7. 160 тификаторы взаимодействующих сторон (Маши и Пети соответственно); индекс которого указывает, кто его послал; К,. — ключ, индекс которого о владельца (в данном случае закрытый ключ Маши и Пети); 1 ... 5 — номера сообщений .
4.9 показана уязвимость схемы на рис. 4.8 и то, как злоник может этой уязвимостью воспользоваться, выполнив аемую атаку отражением. Идея этой атаки состоит в том, ставитьв Петю дать некоторое число Яв (второй шаг), после етьем шаге подсунуть ему это же число как свой вызов. На в Петя согласно протоколу ответит преобразованным клюЯв).
В результате злоумышленник получит и число Яв, и (Яв), что ему и надо, чтобы вьшать себя за Машу. твует несколько общих правил построения протоколов аутениатор передачи должен доказать, кто он есть, прежде чем те ему какую-либо важную информацию; иатор и отвечающий должны использовать разные клю- 1б1 г$~".~ис.
4.7. Пр ~," "~:;::,:, На рис '1,":,;, " ышлен г„::,';фак назыв !~ггобы «за ;=- .'~йго на тр 'аз'От вызо !.;::;-":ф)ж Клд( фйюч Клв ~,'-;5 СуШес !:;г .~фикаци ° инин .':;, )йЫ пошле ;;; ° иниц *.:~:,рис. 4.8. Сх р имер двухсторонней аутентификации с запросом и подтверждением: ема сокращенной ио сравнению с рис. 4.7 двухсторонней аутентификации с запросом и подтверждением Первый шег Второй шаг г третий шаг Рис.
4.9. Схема атаки отражением ° инициатор и отвечавший должны использовать начальные вызовы из разных непересекающихся множеств. В схеме, приведенной на рис. 4.9, все эти три правила нарушены. Установка общего закрытого ключа Маша выбирает х Пеги выбиреегу 1к пюд и)х= .=К игом гг хг Рис. 4.10. Схеме установки общего закрытого ключа Диффи — Хеллмана 1б2 До сих пор мы предполагали, что Маша и Петя имеют общий закрытый ключ.
Рассмотрим теперь, как они могут его установить. Например, они могут воспользоваться телефоном, но при этом Пете необходимо убедиться, что ему звонит именно Маша, а не злоумышленник. Можно также договориться о личной встрече, куда принести паспорт и прочие документы, удостоверяющие личность. Однако существует протокол, который позволяет двум незнакомым людям установить общий закрытый клкеч даже при условии, что за ними следит злоумышленник.
Это протокол Диффи — Хеллмана, схема которого показана на рис. 4.10 ~401. Прежде всего, Маша и Петя должны договориться об использовании двух больших простых чисел л и я, удовлетворяющих опреде- ф-; "ггзабирает х Даша выбирает е Петя выбирает у Рис. 4.11. Схема взлома алгоритма, называемая «чужой в цепоч ";:;;,,денным условиям. Причем эти числа могут быть общеизвестнь ";...::~Паша выбирает большое число, например х, и хранит его в с :«»'-'а::Петя выбирает число у и также держит его в секрете Маша посылает Пете сообщение вила (и, я, 8х шог( п)„а ":»,",::,';.:~бтвечает сообщением вида (8» шог( л). Теперь Маша выполи ";-'.;;";рацию (8У пюг1 п)". а Петя — операцию (8 шог) л)'.
Уливител ;:",!;:':::~еперь они имеют общий ключ (я"' шог) л). Например, есл :т(гавле3, х=8, у=!О, то Маша посылает Пете сообщение вид ,",.';~=,':,:,Й8), поскольку 3' тод 47=28, а Петя — ответ вида (17). М '"'("'~чтисляет: 17' шог( 47 = 4, а Петя вычисляет 28'е шог( 47 = 4. Кл '„';;::иовлен — 4 -.::":~,.',:.:,'-''.' Злоумышленник следит за всем этим, и единственное, чт '",,,:г:бт ему вычислить х и у, это то, что неизвестен алгоритм с при ;",."~.';,"сложностью вычисления логарифма от модуля для просты ;.':~,'Однако и у этого алгоритма имеется слабое место.
Прием, ;";1=;.;ауемый в этом случае, называется «чужой в цепочке» (рис. 4 В данном случае чужой (Даша) инициирует установку з :,;.,гпбших ключей по описанному ранее протоколу с Машей -,"-",-:Теперь Даша может пересылать через себя транзитом соо ,.-";,:Между Машей и Петей, которые и знать-то об этом не будут ке» г. Затем екрете, Петя— яет опеьно, но и и=47, а (47, 3, аша выюч уста- о мешаемлемой х чисел. исполь- 11). акрытых и Петей.
бщения 163 Проверка подлинности через центр раздачи ключей Договориться с незнакомцем об общем секрете можно, но вряд *2!Ли это следует делать сразу. Кроме того, общение с л людьми по:,.!-'.требует хранения и ключей, что для общительных или популярных личностей может быть проблемой. Другим решением данной про;;,".;блемы является введение надежного центра раздачи ключей — цРК ':)', .(рис. 4.12) Идея протокола проверки подлинности через ПРК состоит в ',;...,'следующем. Маша выбирает ключ сессии Кэ Используя свой ключ Рис.