А.В. Петраков - Основы практической защиты информации (1022811), страница 60
Текст из файла (страница 60)
Цифровая подпись «Нотариус»«Нотариус» — библиотека программ цифровой подписи и проверкиподлинности электронных документов. «Нотариус» позволяет заключать договоры, подписывать контракты, проводить платежи, используяперсональный компьютер и модем.Электронные документы, оформленные «Нотариусом», сохраняютюридическую значимость и не требуют бумажных копий [79]. Приведенная на рис.
7.3 схема взаимодействия двух партнеров-пользователейс помощью цифровой подписи «Нотариус» не требует особых пояснений.В цифровых подписях реализуются алгоритмы стандартов: ГОСТР34.10-94, DES (национальный стандарт США, 1994), фирменные алгоритмы «ЛАН Крипто».Цифровая подпись фирмы «ЛАН Крипто» признается даже арбитражными судами РФ.Каждый алгоритм библиотеки «Нотариус» гарантирует стойкостьцифровой подписи не менее 1020. Для подделки подписи требуется более 250 лет работы суперкомпьютера мощностью 100 млрд операций/с.Быстродействие алгоритмов приведено в табл.
7.9..267Пользователь АПользователь ВСекретный ключ XОткрытый ключ Υ«Нотариус»Из X вычисляетоткрытый ключ ΥМ-документотА«Нотариус»Проверяет подлинностьдокумента и подписиМ-документ для ВI«Нотариус»N(M,S,Y)=?ДаВычисляет цифровуюподпись S - S(M, X)М-аутентичен• Рис. 7.3. Схема электронной подписи «Нотариус»Таблица 1.9.секундах)Тип процессораi386SX (33)i486DX2 (66)i486DX4 (100)Время работы программ подписывания/проверки (вДля файлов, кбайт1101000,118/0,2450,052/0,1110,014/0,0270,165/0,2920,068/0,1260,024/0,0380,641/0,7670,217/0,2750,124/0,138Использование ЭЦП значительно расширяет и без того богатые возможности электронной почты, телефакса, телетекса и др.
[77, 78].С новыми разновидностями ЭЦП можно ознакомиться на ближайших ежегодных выставках «Банки и офис», «Защита информации»,«Безопасность» и др.7.9. Построение и использование хеш-функций7.9.1. Основные понятия, определения и обозначенияПод термином хеш-фунция понимается функция, отображающаяэлектронные сообщения произвольной длины (иногда длина сообщенияограничена, но достаточно большим числом), в значения фиксированной длины. Последние часто называют хеш-кодами. Таким образом, увсякой хеш-функции h имеется большое количество коллизий, т.е. парзначений χ и у таких, что h(x) = h(y).
Основное требование, предъявляемое криптографическими приложениями к хеш-функциям, состоитв отсутствии эффективных алгоритмов поиска коллизий. Хеш-функция,обладающая таким свойством, называется хеш-функцией, свободной отколлизий. Кроме того, хеш-функция должна быть односторонней, т.е.268функцией, по зна.чению которой вычислительно трудно найти ее аргумент, в то, же время, функцией, для аргумента которой вычислительнотрудно найти другой аргумент, который давал бы то же самое значение функции [21, 69].Схемы электронной цифровой подписи —основная сфера применения хеш-функций. Поскольку используемые на практике схемы электронной подписи не приспособлены для подписания сообщений произвольной длины, а процедура, состоящая в разбиении сообщения наблоки и генерации подписи для каждого блока по отдельности, крайненеэффективна, единственным разумным решением представляется применение схемы подписи к хеш-коду сообщения.
Таким образом, хешфункции вместе со схемами электронной цифровой подписи предназначены для решения задач обеспечения целостности и достоверности· передаваемых и хранимых на носителях информации электронных сообщений. В прикладных информационных системах требуется применениетак называемых криптографически стойких хеш-функций. Под термином «криптографически стойкая хэш-функция» понимается функция h,которая является односторонней и свободной от коллизий.Введем следующие обозначения. Хеш-функция h обозначается какh(a) и /ΐ(α,/?) для одного и двух аргументов, соответственно. Хеш-кодфункции h обозначается как И. При этом H Q = 1 обозначает начальное значение (вектор инициализации) хеш-функции. Под обозначениемφ будет пониматься операция сложения по модулю 2 или логическаяоперация XGR («Исключающая 1/1ЛМ»). Результат шифрования блокаВ блочным шифром на ключе к обозначается Ек(В).Для лучшего понимания дальнейшего материала приведем небольшой пример построения хеш-функции.Предположим нам необходимо подписать при помощи заданногоалгоритма электронной цифровой подписи достаточно длинное сообщение М.
В качестве Шифрующего преобразования в хеш-функции будетиспользоваться процедура шифра DES с ключом к. Тогда, чтобы получить хеш-код Η сообщения Μ при помощи хеш-функции 1г, необходимовыполнить следующую итеративную операцию;' Hi - E Hi -x{Mi) φ Mi, где г - Τ~ή; Я о = 1; Μ = М и М 2 ,..., Μ η,где сооощение Μ разбито.на η 64-битных блока. Хеш-кодом даннойхеш-функции является значение Η — h(M,I) = Н п .Таким образом, на вход схемы электронной цифровой подписи вместо длинного сообщения Μ (как правило,, несколько сотен или тысячбайтов) подается хэш-код Нп, длина которого ограничена длиной блокашифра DES, т.е.
64 битами. При этом в силу криптографической стойкости используемой хеш-функции практическая стойкость самой схемыподписи будет оставаться той же, что и при подписи сообщения ■' Μ, вто время как эффективность всего процесса подписи электронного сообщения будет резко увеличена.2697.9.2. Стойкость (безопасность) хеш-функцийОдин из основных методов криптоанализа хеш-функций заключается в проведении криптоаналитиком (нарушителем) атаки, основаннойна «парадоксе дня рождения», основные идеи которой излагаются ниже. Для понимания сущности предлагаемого метода криптоанализа достаточно знать элементарную теорию вероятностей.Атака, основанная на «парадоксе дня рождения», заключается вследующем.
Пусть ot\fn предметов выбираются с возвращением из некоторого множества с мощностью п. Тогда вероятность того, что два изних окажутся одинаковыми, составляет 1 — ехр(—а2/2).Практически это означает, что в случайно подобранной группе из24 человек вероятность наличия двух лиц с одним и тем же днем рождения составляет значение около 1/2. Этот старый и хорошо изученныйпарадокс и положен в основу криптоанализа хеш-функций.Например, для криптоанализа хеш-функций, основанных на использовании криптоалгоритма DES, указанная атака может быть проведенаследующим образом.
Пусть η — мощность области хеш-кодов (для криптоалгоритмов DES она равна 264). Предположим, что есть два сообщения тп\ и ?τΐ2· Первое сообщение достоверно, а для второго криптоаналитик пытается получить то же самое значение хеш-кода, выдавтаким образом сообщение mj за сообщение mj (т.е. криптоаналитикпытается получить коллизию). Для этого криптоаналитик подготавливает примерно s/n различных, незначительно отличающихся версий miи πΐ2 и для каждой из них вычисляет хеш-код. С высокой вероятностью криптоаналитику удается обнаружить пару версий τη[ и mi,, имеющих один и тот же хеш-код.
В дальнейшем при использовании данного хеш-кода в схеме электронной цифровой подписи можно выдатьсообщение т'2 вместо сообщения т\, содержание которого близко ксодержанию сообщения ту.К основным методам предотвращения данной атаки можно отнести: увеличение длины получаемых хеш-кодов (увеличение мощностиобласти хеш-кодов) и выполнение требования итерированности шифрующего преобразования. _~7.9.3.
Методы построения криптографически стойкиххеш-фукнпийПрактические методы построения хеш-функций можно условно разделить на три группы: методы построения хеш-функций на основекакого-либо алгоритма шифрования (например, приведенный выше), методы построения хеш-функций на основе какой-либо известной вычислительно трудной математической задачи и методы построения хешфункций «с нуля»П о с т р о е н и е х еш - фу н к ц и и н а о с н о в е а л г ор и т мо в ши фр о вания.
Наряду с примером, приведенным выше, покажем как строить хеш-функции на основе наиболее известных блочных шифров ГОСТ28147-89, DES и FEAL.270В качестве шифрующего преобразования будут использоваться некоторые режимы шифров ГОСТ 28147-89, DES и FEAL с ключом к. Тогда, чтобы получить хеш-код Я сообщения Μ при помощи хеш-функцииh, необходимо выполнить следующую итеративную операцию (например, с использованием алгоритма ГОСТ 28147-89);Щ = E k (Mi θ Η,·_ι), где г = 1, п; Я о = Ι; Μ = Μι, М 2 ,..., М„.Таким образом, хеш-кодом данной хеш-функции является значение Η = h(M,I) = Я п . При этом используется режим выработкиимитовставки ГОСТ 28147—89, а шифрующее преобразование 64-битныхблоков заключается в выполнении 16 циклов алгоритма шифрованияв режиме простой замены.Алгоритм ГОСТ 28147-89 в качестве базового используется в хешфункции отечественного стандарта на функцию хеширования сообщенийГОСТ 34.11-94, являющегося основным практическим инструментом винформационных системах, требующих обеспечения достоверности и целостности передаваемых в них электронных сообщений.Алгоритм DES (в режиме CFB) можно использовать в качестве базового, например, в следующей хеш-функции (с получением хеш-кода Я= h(M,I) = Я„):Я,- = E Mi {Hi-i), где г = Ί~ή; Я о =Ι; Μ = М ь М 2 ,..., М„.Другие примеры хеш-функций на основе алгоритмов шифрования.N-хеш алгоритм разработан фирмой Nippon Telephone Telegraph в 1990 г.N-хеш алгоритм использует блоки длиной 128 битов, шифрующую функцию, аналогичную функции алгоритма шифрования FEAL, и вырабатывает блок хеш-кода длиной 128 битов.
На вход пошаговой хеш-функциив качестве аргументов поступают очередной блок сообщения Мг· длиной128 битов и хеш-код Я,·-1 предыдущего шага также размером 128 битов.При этом Но — I, а Я,- = £^(М*,.Я,-_1) Θ Μ,· Θ Η,-ι. Хеш-кодом всегосообщения объявляется хеш-код, получаемый в результате преобразования последнего блока текста.Идея использовать алгоритм блочного шифрования, стойкость ко-|торого общеизвестна, для построения надежных схем хеширования выглядит естественной. Однако для некоторых таких хеш-функций возникает следующая проблема. Предполагаемые методы могут требовать за-IДания некоторого ключа, на котором происходит шифрование. В дальнейшем этот ключ необходимо держать в секрете, ибо противник, знаяэтот ключ и значение хеш- кода, может выполнить процедуру в обратном направлении [24, 69].Еще одной слабостью указанных вышесхем хеширования является*1то, что размер хеш-кода совпадает с размером блока алгоритма шифроГвания.