Э. Таненбаум - Компьютерные сети. (4-е издание) (DJVU) (1130092), страница 231
Текст из файла (страница 231)
Были обнаружены некоторые слабые места, однако существуют определенные внутренние процедуры, позволяющие защититься от взлома. И все же, если упадут и эти последние барьеры, в один прекрасный день МП5 может оказаться ненадежным. Несмотря на зто на момент написания книги этот алгоритм еще держится на плаву. Цифровые подписи 869 вне Второй широко применяемой функцией вычисления профиля сообщения является БНА (Бесите Назц А!йог)г)тпт — надежный алгоритм хеширования), разработанный Агентством национальной безопасности США (ХБА) и получивший благословение национального института стандартов и технологий Х1ЯТ (выразившееся в федеральном стандарте Г1РЯ 180-1).
Как и МП5, алгоритм БНА обрабатывает входные данные 512-битовыми блоками, но, в отличие от МП5, он формирует 160-разрядный профиль сообщения. Типичный случай отправки Алисой несекретного, но подписанного сообщения Бобу показан на рис. 8.18. Открытый текст обрабатывается алгоритмом БНА-1, на выходе получается 160-битный хэш ЗНА-1. Он подписывается Алисой (закрытым ключом КБА) и отправляется вместе с открытым текстом Бобу. Од, закрытый Посылается Бобу Рис. 8.18.
Применение ЗНА-1 и НЗА для создания подписей несекретных сообщений При получении сообщения Боб сам вычисляет хэш-функцию с помощью алгоритма ЗНА-1 и применяет открытый ключ Алисы к подписанному хашу для того, чтобы получить исходный хэш, Н. Если они совпадают, сообщение считается корректным, Так как Труди не может, перехватив сообщение, изменить его таким образом, чтобы значение Н совпадало с контрольным, Боб легко узнает обо всех подменах, которые совершила Труди. Для сообщений, чья неприкосновенность существенна, а секретность не имеет значения, часто применяется схема, показанная на рис.
8.18. При относительно небольших затратах на вычисления ' она гарантирует, что любь1е изменения, внесенные на пути следования сообшения, будут с высокой вероятностью выявлены. Давайте теперь вкратце рассмотрим, как работает БНА-1. Для начала алгоритм 8НА-1 также дополняет сообщение единичным битом в конце, за которым следует такое количество нулевых бит, чтобы в итоге получилось общее число битов, кратное 512.
Затем 64-разрядное число, содержащее длину сообщения (до битового дополнения), логически складывается (операция ИЛИ) с 64 младшими битами. На рис. 8.19, а показано сообщение с дополнением, расположенным справа, потому что английский текст и рисунки читаются слева направо (то есть правая граница рисунка воспринимается как его конец, а левая — как начало). Применительно к вычислительной технике такое расположение соответствует обратному порядку хранения байтов (сиачала передается самый значимый, старший бит). 860 Глава В. Безопасность в сетях Такая реализация присуща, например, БРАКС.
Однако вне зависимости от используемой техники БНА-1 вставляет битовое дополнение в конец сообгцения. Во время выполнения вычислений БНА-1 работает с пятью 32-битными переменнымн (Нз ... Н,), в которых накапливается значение хзш-функции. Они показаны на рис. 8.19, б. Их начальные значения — это постоянные величины, определенные стандартом. Начело сообщения 512-битный блок 32-разрядное слово Мз С ЛС )( ЛС )С )С )С ОС ЛСЛС ЛЕ 2С О С )С )С Л НОС ) (Згз Мг С:и:1С:О[:]С:О[:]С:~С:3С:][:и:и:и:3С:ОС:)С:~ Н1 С:] игг С:3 М С::ОС:ЛС:3С:ОС:ОС:ОС:ЛС::ЛС:ОС:ОС:ОС:ЛС::ЛС::ОС:ОС:'.О НгС::О Игг С:Л Дополнение Нз С::Л Щ г (:1С:)С::О(.":О~:~):О(:3С::О):)С::ОС:)С::21:~И ВВ8 Н41:3 Игтз~ ) рио.
8.19. Сообщение, дополненное до размера, кратного б12 битам (а)) выходные переменные (б); массив слов (в) Затем поочередно обрабатываются блоки с М, по М„г Для текущего блока 16 слов сначала копируются в начало вспомогательного массива Йг размером 80 слов, как показано на рис. 8.19, в. 64 оставшихся слова вычисляются с использованием следующей формулы: ?(г. = Б'(((г з ХОК %', з ХОК йг. и ХОК )(г и) (16 я г ь 79), где Бз(?(г) представляет собой поворот 32-разрядного слова )(г на О бит. Теперь по значениям Н, ... Нг инициализируются переменные от А до Е. Сами вычисления на псевдо-С можно записать таким образом: тог(1"О:(<ВО:1++)( ьеар 5'(Я) + Г (В.
С. О) + Е + )( ' К: Е О, О С. С 5гг(В). В А А гавр. где постоянные К, определяются стандартом. Смешпвающие функции ?, задаются следующим образом: ~г(В, С, ?)) =(В АХИ С) ОК (ХОТ В АХ?) ?)) (О ~г'< 19), ?,(В, С,?)) =В ХОК С ХОК Е) (20 < г'<39), ЦВ, С ?О)=(В АХ?) С) ОК(В АХ?О Е)) ОК(С АХ?) ?О) (40<г<59), Й(В, С, Е)) = В ХОК С ХОК ?) (60 я г < 79). После 80 итераций цикла значения переменных А ...
Е добавляются к Нз ... Н, соответственно. Цифровые подписи 861 После обработки первого 512-битного блока начинается обработка следующего. Массив %' инициализируется заново с помощью нового блока, однако О сохраняется неизменным. По окончании этого блока обрабатывается следующий и так далее, пока все 512-разрядные блоки сообщения не попадут в эту кастрюлю. После обработки последнего блока пять 32-разрядных слов в массиве Н выводятся в качестве 160-битного значения криптографической хэш-функции. Полный код ЯНА-1 приведен в КГС 3174. В настоящее время идет работа над новыми версиями ЯНА-1 с 256-, 364- и 512-разрядными значениями хэш-функций. Задача о днях рождения В мире шифров многое оказывается совсем не таким, каким кажется на первый взгляд.
Можно, например, предполагать, что для ниспровержения профиля сообщения, состоящего из т разрядов, потребуется порядка 2" операций. На самом деле, часто оказывается достаточно 2к'х операций, если использовать метод, основанный на задаче о днях рождения, опубликованный в ставшей классической книге (Ъ'пча1, 1979). В основе идеи этого метода лежит задача, часто приводимая в качестве примера профессорами математики па курсах по теории вероятности. Вопрос; сколько студентов должно находиться в классе, чтобы вероятность появления двух человек с совпадающими днями рождения превысила 1/27 Большинство студентов обычно ожидают, что ответ будет значительно больше 100.
На самом же деле, теория вероятности утверждает, что это число равно 23. Не вдаваясь в тонкости анализа этой проблемы, дадим интуитивно понятное объяснение: из 23 человек мы можем сформировать (23 22)/2 = 253 различных пары, у каждой из которой дни рождения могут совпасть с вероятностью 1/365. Теперь этот ответ уже не кажется таким удивительным.
В более общем случае, если имеется некое соответствие между п входами (людьми, сообщениями и т. д.) и я возможными выходами (днями рождения, профилями сообщений и т, д.), мы имеем л(п — 1)/2 входных пар. Если п(п — 1)/2 > Й, то вероятность того, что будет хотя бы одно совпадение выхода при различных входах, довольно велика, Таким образом, вероятность существования двух сообщений с одинаковыми профилями велика уже при и > ч%. Это означает, что 64-разрядный профиль сообщения можно с большой вероятностью взломать (то есть найти два различных сообщения с одинаковым профилем), перебрав 2" сообщений, Рассмотрим практический пример. На кафедре компьютерных наук Государственного университета появились вакансия и два кандидата на эту должность, Том и Дик. Том работает на факультете на два года дольше Дика, поэтому его кандидатура булет рассматриваться первой.
Если он получит эту должность, значит, Дику не повезло. Том знает, что заведующая кафедрой Мэрилин высоко ценит его работу, поэтому он просит ее написать для него рекомендательное письмо декану факультета, который будет решать дело Тома. После отправки все письма становятся конфиденциальными. 862 Глава 8. Безопасность в сетях Мэрилин просит написать это письмо декану свою секретаршу Элен, подчеркивая, что она хотела бы видеть в этом письме. Когда письмо готово, Мэрилин просматривает его, подписывает 84-разрядной подписью и посылает декану.
Позднее Элен может послать это письмо электронной почтой. К несчастью для Тома, у Элен роман с Диком, и она хочет обмануть Тома. Поэтому она пишет следующее письмо с 32 вариантами в квадратных скобках. Уважаемый господин декан, Это [письмо ) обращение] отражает мое [искрекнев ! откровенное) мнение о проф. Томе Уилсоне, являющемся [кандидатом [ претендентом) на профессорскую должность [в настоящее время ] в этом гогпг]. Я [знакома ) работала] с проф.
Уилсоном в течение [почти ) около] шести лет. Он является [выдающимся ! блвспгящим) исследователем, обладающим [бсльшим талантом ] большими возможностями) и известным [во всем мире [ нв только в нашей стране] своим [серьезным ] созидательным] подходом к [большому числу ] широкому спектру] [сложных ] перспективных] вопросов. Он также является (высоко [ весьма) [уважаемым ~ ценимым] [преподавателем ] педагогом]. Его студенты дают его [занятиям [ лекциям) [самые высокие ] высочайшие] оценки. Он самый [популярный ~ любимый] [преподаватель [ учитель) [нашей кафедры ~ нашего университета]. [Кроме ! Помимо) того, [гранты ] контракты) проф.
Уилсона [существенно ) значительно) пополнили [фонды ~ финансовые запасы) нашей кафедры. Эти [денежные [ финансовые) средства [позволили нам [ дали возможность] [выполнить ] осуществить) [много ] ряд) [вазкпых ] специальных] программ, [таких как ) среди которых], государственная программа 2000 года. Вез этих средств было бы невозможным продолжение этой программы, такой [важной ~ значительной] для нас.
Я настойчиво рекомендую вам предоставить ему эту должность. К несчастью для Тома, закончив печатать зто письмо, Элен тут же принимается за второе: Уважаемый господин декан, Это [письмо ~ обращение] отражает мое [искреннее ] откровенное) [мнение ] <ужденив] о проф. Томе Уилсоне, являющемся [кандидатом ~ претендентом) на профессорскую должность в [настоящев время ~ этом гоЩ. Я [знакома ~ работала] с проф. Уилсоном в течение [почти ] около] шести лет. Он является [слабым ] недостаточно талантливым) [исследователем ~ ученым], почти не известным в той области науки, которой он занимается. В его работах практически не заметно понимания [ключевых [главных) «проблем ~ вопросов] современности.
[Болев ] Кроме) того, он также не являешься сколько-нибудь [уважаемым ] ценимым) [преподавателем ] педагогом). Его студенты дают его [занятиям ~ лекциям) [самые низкие [ негативные] оценки. Он самый непопулярный [преподаватель ] учитель] нашей кафедры, [славящийся ] печально известный] своей [привычкой [ склонностью) [высиеивать )ставить в неудобное положение) студентов, осмелившихся задавать вопросы на его [лекциях ] занятиях].