Научная статья на тему 'Цифровая подпись в криптосистемах с ключом общего пользования'

Цифровая подпись в криптосистемах с ключом общего пользования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
957
92
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Максименко Андрей Владимирович, Шелупанов Александр Александрович

Повсеместное применение компьютерных технологий в системах обработки и передачи информации привело к обострению вопроса о ее защите от несанкционированного доступа. Защита информации в компьютерных системах обладает рядом специфических особенностей, поскольку информация не связана жестко с носителем и может легко копироваться и передаваться по каналам связи.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Максименко Андрей Владимирович, Шелупанов Александр Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Цифровая подпись в криптосистемах с ключом общего пользования»

устройств и внедрено на практике [11]. Недостатки метода ; - наличие задержек' при дуплексном обмене и необходимость жесткой синхронизации.

Существующие в настоящее время протоколы речевой IP-связи потребовали новых решений в области защиты информации, поэтому сейчас изучаются варианты | маскирования путем гаммирования. Процедура состоит ' в следующем речь оцифровывается, обрабатывается алгоритмом сжатия а полученные коды поразрядно ! складываются с псевдослучайной последовательностью I - так называемой гаммой [12]. Установлено, что при I хорошей гамме можно гарантированно защитить речевые j сообщения от подслушивания без потери качества связи, i Перспективное направление исследований -; объединение вышеописанных разработок в единый i комплекс. Это позволит повысить информационную i безопасность до уровня, удовлетворяющего требованиям современного общества.

ЛИТЕРАТУРА

' 1 В А Герасименко, А.А.Малюк. Основы защиты I информации,-М : Изд-во МИФИ, 1997.

2 В ГШахов. Безопасность информационных систем. -М , Транспорт, 2001.

3 В.Г.Шахов. Анализ и планирование информационной безопасности как топологическая задача// Ведомственные корпоративные сети и системы. - 2002. - №2.

А. В, МАКСИМЕНКО А. А. ШЕЛУПАНОВ

Томский государственный университет систем управления и радиоэлектроники

УДК 003.26

!

I

Представим себе ситуацию; вам по электронной почте отправляют документ с конфиденциальной информацией. При получении вы должны быть полностью уверены в том, что: во-первых, сообщение не было прочитано «в пути», те сохранена секретность, во-вторых, в том, что сообщение было создано именно тем источником, каким вы предполагаете - подтверждение авторства, и в третьих документ не был изменен «в пути» (полученный вами файл совершенно идентичен оригиналу -подтверждение подлинности).

Для решения этих вопросов используется специальный раздел математики, который называется криптографией (в переводе с греческого языка означает «тайнопись»). Отметим некоторые современные направления ее приложения:

1 Защита от несанкционированного чтения (или обеспечение конфиденциальности (секретности) информации).

4. О. Ope. Теория графов.-М.: Наука, 1980.

5. Л.Т.Кузин. Основы кибернетики: Т.2. Основы кибернетических моделей. М., Энергия, 1988.

6. Л.Т.Кузин. Основы кибернетики: Т.1. Математические основы кибернетики. - М., Энергия, 1980.

7. В.А.Майстренко, П.В.Прохоров, В.ГШахов. Ресурсы защиты информации в ОС Windows NT: Учеб. пособие. -Омск: ОмГТУ, 2002.

8. П.В.Прохоров, В.Г.Шахов. Оптимизация сетевого аудита в ОС Windows NT// Информационная безопасность - Юг России: Тр. конф. - Таганрог, 1999.

9. В.А.Куличенко, В.Г.Шахов. Исследование криптоалгоритмов на компьютерной модели U Методы и технические средства обеспечения информационной безопасности: Тр. конф.-СПб, 1999.

10. В.А.Куличенко. О возможности использования криптоалгоритмов для генерации псевдослучайных последовательностей //Труды молодых ученых и аспирантов ОмГУПС - Омск, 2000.

11. В.В.Фомин. Устройство защиты радиотелефонных переговоров: Автореф. дисс.... к.т.н. - Омск, 1998.

12. О.В. Скрипаль. Оборудование и программное обеспечение для IP-телефонии//Современные системы и средства телекоммуникаций: Тр. конф. - Новосибирск, 2001.

ШАХОВ Владимир Григорьевич, кандидат техн. наук, профессор, заведующий кафедрой АиСУ Омского государственного университета путей сообщения.

2. Защита от навязывания ложных сообщений (умышленных и преднамеренных).

3. Идентификация законных пользователей.

4. Контроль целостности информации.

5. Аутентификация информации.

6. Электронная цифровая подпись (ЭЦП).

7. Системы тайного электронного голосования.

8. Электронная жеребьевка.

9. Защита от отказа факта приема сообщения.

10. Одновременное подписание контракта.

11 Защита документов и ценных бумаг от подделки.

Целью данной статьи является рассмотрение одного из этих направлений криптографии, а именно касающегося ЭЦП. Эта проблема связана с аутентификацией электронной информации в условиях, когда обменивающиеся информацией стороны не доверяют друг другу.

Какие основные требования мы можем выдвинуть к обычной рукописной подписи? Что в ней так притягательно?

ЦИФРОВАЯ ПОДПИСЬ В КРИПТОСИСТЕМАХ С КЛЮЧОМ ОБЩЕГО ПОЛЬЗОВАНИЯ_

ПОВСЕМЕСТНОЕ ПРИМЕНЕНИЕ КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ В СИСТЕМАХ ОБРАБОТКИ И ПЕРЕДАЧИ ИНФОРМАЦИИ ПРИВЕЛО К ОБОСТРЕНИЮ ВОПРОСА О ЕЕ ЗАЩИТЕ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА. ЗАЩИТА ИНФОРМАЦИИ В КОМПЬЮТЕРНЫХ СИСТЕМАХ ОБЛАДАЕТ РЯДОМ СПЕЦИФИЧЕСКИХ ОСОБЕННОСТЕЙ, ПОСКОЛЬКУ ИНФОРМАЦИЯ НЕ СВЯЗАНА ЖЕСТКО С НОСИТЕЛЕМ И МОЖЕТ ЛЕГКО КОПИРОВАТЬСЯ И ПЕРЕДАВАТЬСЯ ПО КАНАЛАМ СВЯЗИ.

1 Подпись достоверна, поскольку она убеждает получателя в том, что подписавший сознательно подписал документ.

2. Подпись неподдельна, поскольку она доказывает, что именно подписавший, и никто иной, сознательно подписал документ.

3. Подпись не может быть использована повторно, поскольку она является частью документа, и жулик не сможет перенести подпись на другой документ.

4 Подписанный документ нельзя изменить.

5. От подписи невозможно отречься, поскольку подпись и документ материальны.

В общем случае обычную подпись легко подделать и трудно проверить. При существующем уровне технологии относительно легко сделать фотокопию подписи и нанести ее на документ, который данное лицо не подписывало. В то же время проверить подпись тяжело, не имея копии хорошо известной подписи. Почему недостаточно просто зашифровать передаваемое сообщение с использованием стойкого шифра, ведь в него злоумышленнику будет трудно внести изменения осмысленным образом, поскольку факты модификации зашифрованного сообщения становятся очевидными после их расшифрования - данные перестают быть корректными для интерпретатора. Помимо этого, только обладающие секретным ключом шифрования пользователи системы могут изготовить зашифрованное сообщение, таким образом, если к получателю приходит сообщение, зашифрованное на его секретном ключе, он может быть уверен в его авторстве, так как кроме него самого только законный отправитель мог изготовить это сообщение. Дело в том, что: во-первых, изменения, внесенные в зашифрованные данные, становятся очевидными после расшифрования только в случае большой избыточности исходных данных (напр., текст на человеческом языке), но в общем случае это требование может не выполняться - если случайная модификация данных не делает их недопустимым для интерпретации со сколько-нибудь значительной долей вероятности, то шифрование массива не обеспечивает его подлинности. Таким образом, свойства систем обработки информации обеспечивать секретность и подлинность обрабатываемых данных в общем случае могут не совпадать. Во-вторых, факт успешного расшифрования зашифрованных на секретном ключе данных может подтвердить их авторство только в глазах самого получателя Третья сторона не сможет сделать на основании этого однозначного вывода об авторстве документа, так как его автором может быть любой из обладателей секретного ключа, а их как минимум два - отправитель и получатель. Как видим, существование проблемы подтверждения подлинности и авторства документов, отдельной от задачи обеспечения их секретности не вызывает сомнения.

Для безбумажного обмена назрела необходимость заменить ручные подписи цифровыми, а конверты -шифрованием. Итак, что такое цифровая подпись? Схема цифровой подписи или электронно-цифровой подписи-это набор алгоритмов и протоколов, позволяющих построить информационное взаимодействие между двумя и более участниками таким образом, чтобы факт авторства переданного массива данных, «подписанного» одним из участников, мог быть надежно подтвержден или опровергнут третьей стороной, «независимым арбитражем» Подобная схема необходима для всех систем электронной обработки данных, где нет полного взаимного доверия между участниками информационного процесса, прежде всего это касается финансовой сферы. Любая схема цифровой подписи предполагает добавление к «подписываемому» массиву данных дополнительного кода - собственно цифровой подписи, выработать который может только автор сообщения. При реализации подписи на компьютере возникает ряд проблем (файлы легко копируемы, их содержимое можно изменить, даже после

того, как они подписаны, и др.). Если чья-то цифровая подпись (ЦП) будет одинаковой для каждого сообщения, то ее легко можно будет подделать (копируя строку символов). Следовательно, ЦП должна различаться при каодом использовании. Это достигается, если каждая цифровая подпись является функцией подписываемого сообщения. Для того, чтобы быть уникальной для каждого подписывающего и защищенной от подделки, ЦП должна также зависеть от некоторого секретного числа, уникального для подписывающего. Таким образом, защищенная от подделки ЦП должна зависеть от подписываемого сообщения и уникального секретного числа подписываемого.

Для разработки ЦП можно использовать теорию симметричного шифрования, в которой для зашифровки и расшифровки сообщения используется один и тот же блок информации (ключ - уникальный битовый шаблон), однако при этом придется воспользоваться услугами посредника между переписывающимися сторонами. Алгоритм подписи документа с помощью симметричной криптосистемы и посредника приведен ниже

Сторона «А» хочет подписать цифровое сообщение и отправить его стороне «Б». «А» может это сделать с помощью посредника «П» и симметричной криптосистемы. «П» - это обладающий властью посредник, которому доверяют. «П» выдает секретный ключ, КА, стороне «А» и другой секретный ключ, КБ - стороне «Б». Эти ключи определяются задолго до начала действия протокола.

1. «А» шифрует свое сообщение стороне «Б» ключом КА и посылает его «П».

2. «П», зная ключ КА, расшифровывает сообщение.

3. «П» добавляет к расшифрованному сообщению утверждение, что он получил это сообщение от «А», шифрует это новое сообщение ключом КБ, и отправляет стороне «Б».

4. «Б» расшифровывает сообщение ключом КБ. «Б» может прочитать и сообщение от «А», и подтверждение «П», что сообщение отправлено именно стороной «А».

Этот протокол работает, но он требует от посредника немалых затрат времени. Он должен целыми днями расшифровывать и шифровать сообщения, посредничая между каждой парой сторон, которые хотят обмениваться подписанными документами. Посредник будет узким местом любой системы связи, даже если он - просто бесчувственная компьютерная программа. Такого посредника тяжело найти и тяжело сохранить. Он должен быть «непогрешим» и абсолютно безопасен. Как видим, использование симметричных криптосистем для реализации цифровой подписи, имеет ряд существенных недостатков.

Как оказалось, теория асимметричного шифрования с открытым ключом позволяет решить эту проблему информационной безопасности гораздо эффективнее. Основателями концепции криптографии с открытыми ключами были Уитфилд Диффи и Мартин Хеллман (национальная компьютерная конференция 1976 г.), и независимо Ральф Меркл (публикация 1978 г.). Их вкладом в криптографию было убеждение, что ключи можно использовать парами - ключ шифрования и ключ дешифрования - и что может быть невозможно получить один ключ из другого. В отличие от симметричного шифрования, в асимметричном алгоритме для зашифровки сообщения используется один («открытый») ключ, известный всем желающим, а для расшифровки - другой («закрытый»), существующий только у получателя. Если ключ расшифрования нельзя получить из ключа шифрования с помощью вычислений, то секретность информации, зашифрованной на открытом ключе считается обеспеченной. Применительно к цифровой подписи, необходимо лишь реализовать данный алгоритм наоборот. Вы подписываете послание с помощью своего секретного ключа, а проверить авторство документа может любой, у

кого есть ваш открытый ключ (его можно послать по почте друзьям, разместить в Сети, отправить в местное отделение ФСБ).

На данный момент существует множество алгоритмов цифровой подписи. Все они представляют собой алгоритмы с открытыми ключами с закрытой частью для подписи документов и с открытой - для проверки подписи.

Любая схема цифровой подписи должна предусмотреть, как минимум, определение трех следующих алгоритмов:

1 Алгоритм выработки пары ключей - подписи К5 и проверки подписи К, с использованием вектора случайных

I параметров Я. (К5 КС) = здесь:

' - ключ подписи, известный только подписывающему;

! Кс - ключ проверки подписи, доступный каждому, кто должен иметь возможность проверять авторство сообщений:

2 Алгоритм 5 подписи сообщения Г с использованием | секретного ключа подписи К5: э = 3(Т,К$), где в -

цифровая подпись сообщения;

3. Алгоритм V проверки подписи с использованием | ключа проверки подписи Кс, выдающий в качестве ' результата булево значение - подтверждается или не 1 подтверждается авторство сообщения: V(T,s,KJ е /0,1/

На практике логический результат всегда получают как результат сравнения двух чисел, или кодов, или блоков данных - речь об одном и том же. Практически во всех известных схемах цифровой подписи это сравнение производят следующим образом'

- вычисляют контрольную комбинацию по некоторому алгоритму С с использованием подписанного сообщения и цифровой подписи:

с = С(Т,8);

-сравнивают контрольную комбинацию с и ключ ! проверки подписи Кс. если они совпадают, то подпись I признается верной, а данные - подлинными, в противном ' случае данные считаются ложными.

{о,с,К,-

По большому счету, указанных трех алгоритмов вполне достаточно для реализации схемы цифровой подписи, однако на практике в схемы добавляют еще один алгоритм - функцию выработки хэш-блока для подписываемого массива данных Т. Большинство криптографических ! алгоритмов оперируют блоками данных фиксированного | размера, массивы большого размера обрабатывают по I частям, что необходимо для обеспечения эффективности ! и надежности этих схем. Если бы такой же подход I использовался при выработке цифровой подписи, блоки | массивов информации подписывались бы отдельно друг от друга, и размер подписи оказался бы сравнимым с размером подписываемого массива данных, что по вполне понятным причинам не удобно. Поэтому в практических схемах ЭЦП подписывается не само сообщение, а его хэш-| код, т.е. результат вычисления функции необратимого сжатия для этого массива. Выигрыш очевиден, поскольку: I 1) действие с хэшированием гораздо быстрее,

2) вне зависимости от величины документа, размер хэш-значения - постоянная и небольшая величина;

3) используя хэширование, мы автоматически контролируем целостность сообщения, и никто не может получить из хэш-кода исходный документ, т.к. это невозможно (по определению).

I Таким образом, в схему ЭЦП добавляется четвертый | алгоритм:

! 4 Алгоритм Н вычисления необратимой хэш-функции для подписываемых массивов: Л = Н(Т).

Однонаправленная хэш-функция определяется ц следующими свойствами:

1 Зная сообщение Т можно легко вычислить Л.

2. Зная Н, вычислительно неосуществимо нахождение сообщения Г, хэш-функция которого была бы равна заданному значению Л.

3. Вычислительно неосуществимо нахождение двух сообщений Г, и Т^Т, с равными значениями хэш-функций, т.е. Н(Т,)= На,).

В реальном мире однонаправленные хэш-функции строятся на идее функции сжатия.Такая хэш-функция выдает фиксированное хэш-значение при заданных входных данных большей длины. Входами функции сжатия являются блок сообщения и выход предыдущего блока текста. Выход представляет собой хэш-значение всех блоков до этого момента. Таким образом, хэш-значение блока Т. равно Л. = /(Г, Это хэш-значение вместе со следующим блоком сообщения становится следующим входом функции сжатия. Хэш-значением всего сообщения является хэш-значение последнего блока. Хэшируемый вход должен содержать бинарное представление длины всего сообщения. Таким образом преодолевается потенциальная проблема, вызванная тем, что сообщения различной длины могут давать одно и тоже хэш-значение.

Для того, чтобы схема ЭЦП была работоспособна, необходимо выполнение следующих условий:

- никто, кроме лица, обладающего секретным ключом подписи К3, не может корректно подписать заданное сообщение Г; фактически это означает, что не должно существовать вычислительно эффективного алгоритма вычисления секретного ключа К5 по открытому Кс\

- никто, включая лицо, обладающее ключом подписи, не в состоянии построить сообщение У, подходящее под наперед заданную подпись г

При предложении какой-либо схемы подписи оба эти свойства необходимо доказывать, что делается обычно доказательством равносильности соответствующей задачи вскрытия схемы какой-либо другой, о которой-известно, что она вычислительно неразрешима.

Алгоритм подписи документа с помощью асимметричной криптосистемы приведен ниже.

Сторона «А» хочет подписать цифровое сообщение и отправить его стороне «Б», для этого:

1. «А» обрабатывает по специальному алгоритму (хэширование) отправляемый документ. В результате «А» получает некоторый параметр (хэш-значение), рассчитанный на основании содержимого документа.

2. Затем «А» с помощью своего личного (секретного) ключа шифрует полученный параметр. Итоговое значение служит цифровой подписью стороны «А».

3. «А» отправляет «Б» документ и свою цифровую подпись.

4. Сторона «Б» пропускает документ, полученный от «А», через тот же алгоритм (хэширование), которым пользовался «А».

5. Затем «Б» дешифрует цифровую подпись, полученную от «А», пользуясь предоставленным стороной «А» ключом общего пользования.

6. «Б» сравнивает значение параметра, полученного при выполнении операции 4 (хэш-код) с расшифрованным значением цифровой подписи. Если эти значения совпадают, значит, подпись подлинная и документ «в пути» не подвергался изменениям. В противном случае, либо документ искажен, либо подпись подделана, либо и то и другое.

Помимо того что заметно возрастает скорость, по сравнению с алгоритмом, в котором подписывается сам документ (а не его хэш-код), у протокола есть и другие выгоды. Во-первых, подпись может быть отделена от документа. Во-вторых, значительно уменьшаются требования к объему памяти получателя, в котором хранятся документы и подписи. Архивная система может использовать этот протокол для подтверждения существования документов, не храня их содержания. В центральной базе данных могут храниться лишь значения

хэш-функций для файлов. Вовсе не нужно просматривать файлы, пользователи помещают свои значения хэш-функций в базу данных, которая хранит эти значения, помечая их временем получения документа. Если вдруг возникает какое-нибудь разногласие по поводу автора и времени создания документа, база данных может разрешить его при помощи хранящегося в ней значения хэш-функции

Для того, чтобы обеспечить тайну переписки, в вышеизложенный алгоритм необходимо включить еще два пункта. После этапа 2 стороне «А» необходимо зашифровать документ открытым ключом стороны «Б» и на третьем этапе посылать «Б» этот зашифрованный документ и свою цифровую подпись. При получении, сторона «Б» сначала должна расшифровать документ, используя свой секретный ключ, а затем уже перейти к этапу 4

Как узнать чей-либо открытый ключ? Если между отправителем и получателем нет конфиденциальной схемы передачи открытых ключей, то возникает серьезная проблема злоумышленника-посредника. Проще всего считать ключ из безопасной базы данных. Эта база данных должна быть общедоступна, чтобы каждый мог получить нужный ему открытый ключ, но защищена от несанкционированной записи, поскольку в противном случае, злоумышленнику не составит проблемы подменить открытый ключ любого из интересующих его личностей. После этого фактически только злоумышленник сможет читать послания, адресованные абсолютно другим людям. Даже если открытые ключи хранятся в надежной базе данных (ЦРК - центр распределения ключей), злоумышленник может подменить их при передаче. Поэтому ЦРК, должен подписывать каждый открытый ключ, используя свой собственный закрытый ключ. При получении от ЦРК ключа,.интересующаяся сторона проверяет подпись ЦРК, удостоверяясь в правильности ключа При окончательном анализе видно, что и это только затрудняет, но не делает невозможным мошенничество злоумышленника-должна же откуда-то интересующаяся сторона получить открытый ключ ЦРК?

Современная асимметричная криптография нашла другой способ обмена ключами. Если задуматься, то неправильно говорить, что между Вами и Вашим собеседником нет гарантированной линии связи. Несомненно у Вас найдется трое-четверо надежных знакомых в столице или за рубежом, у них в свою очередь найдется также множество знакомых во многих точках страны и мира. В принципе, если множество единомышленников объединяются с целью создать надежную сеть распространения ключей, то это будет им вполне по силам. Асимметричная криптография поможет им следующим образом: на самом деле никуда ходить с дискетой, получив просьбу от своего знакомого передать открытый ключ мистера «А» мистеру «Б», не нужно. Ведь Вы общаетесь с Вашим знакомым, значит у Вас есть его открытый ключ, полученный каким-либо надежным способом. А, следовательно, он может Вам прислать этот открытый ключ мистера «А», подписав сообщение своей электронной подписью. А от Вас в свою очередь требуется всего лишь отправить этот ключ дальше по цепочке в направлении мистера «Б», подписав уже своей электронной подписью. Таким образом, минуя несколько переподписываний, открытый ключ дойдет от места отправления к месту требования по надежному пути. В принципе от Вас даже может не требоваться никаких действий - просто поставьте на Вашей ЭВМ специальный сервер распространения ключей, и он все описанные действия будет выпопнять автоматически.

На сегодняшний день не существует единой сети распространения открытых ключей, и дело, как это часто бывает, заключается в войне стандартов. Развиваются несколько независимых систем, но ни одна из них не

получила превосходства над другими, которое называется «мировым стандартом».

В 1988 году Уитфилд Диффи отметил, что практически все алгоритмы с открытыми ключами основаны на трех так называемых «сложных математических задачах»:

1. Рюкзак. Его разработчиками были Ральф Меркл и Мартин Хеллман. Сначала этот алгоритм мот быть использован только для шифрования, однако позднее Ади Шамир адаптировал систему для цифровой подписи. Безопасность алгоритмов рюкзака опирается на проблему рюкзака, заключающуюся в следующем: дана куча предметов различной массы, можно ли положить некоторые из этих предметов в рюкзак так, чтобы масса рюкзака стала равна определенному значению? Более формально, дан набор значений М^М^ ..., Мп и сумма S, вычислить значения Ь(, такие что

S = btMt + b2M2 + ... + bnMa

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

S; может быть либо нулем, либо единицей. Единица показывает, что предмет кладут в рюкзак, а ноль - что не кладут.

В основе алгоритма рюкзака Меркла-Хэллмана лежит идея шифровать сообщение как решение набора проблем рюкзака. Предметы из кучи выбираются с помощью блока открытого текста, по длине равному количеству предметов в куче (биты открытого текста соответствуют значениям Ь), а шифротекст является полученной суммой.

Фокус в том, что на самом деле существуют две различные проблемы рюкзака, одна решается за линейное время, а другая, как считается, - нет. Легкую проблему можно превратить, в трудную. Открытый ключ представляет собой трудную проблему, которую легко использовать для шифрования, но невозможно для дешифрования сообщений. Закрытый ключ является легкой проблемой, давая простой способ дешифровать сообщения. Тому, кто не знает закрытый ключ, придется попытаться решить трудную проблему рюкзака.

Этот алгоритм был взломан Шамиром и Циппелом. После вскрытия было предложено множество других схем и алгоритмов, использующих подобные идеи, но все они были вскрыты. На сегодняшний день есть устоявшие варианты алгоритма рюкзака (Char-Rivest, новый многостадийный рюкзак), но учитывая легкость с которой пали все остальные варианты, доверять, видимо, было бы неосторожным.

2. Разложение на множители. RSA - это первый полноценный алгоритм, появившийся после рюкзака, который можно использовать для шифрования и цифровых подписей. Из всех предложенных за последние годы, этот алгоритм проще всего понять и реализовать. Он назван в честь трех изобретателей - Рона Ривеста (Ron Rivest), Ади Шамир (Adi Shamir) и Леонарда Эдлмана (Leonard Adleman).

Безопасность RSA основана на трудности разложения на множители больших чисел (если п = pq, то зная л очень сложно вычислить р и q). Открытый и закрытый ключи являются функциями двух больших простых чисел. Предполагается, что восстановление открытого текста по шифротексту и открытому ключу эквивалентно разложению на множители двух больших чисел.

Для генерации ключей используются два больших случайных простых числа, р и q. Рассчитывается произведение: п = pq. Затем случайным образом выбирается ключ шифрования е, такой что в и (р-1)(д-1) являются взаимно простыми числами. Для вычисления ключа дешифрования d, удовлетворяющего условию

ed = 1 (mod(p-1)(q-1))

используется алгоритм Эвклида. Получаем: d=e-' mod(p-1)(g-1)

Необходимо заметить, что с/и л-также взаимно простые числа. Числа е и л - это открытый ключ, а число d -закрытый. Ненужные теперь числа р и q необходимо уничтожить (они не.должны быть раскрыты).

Процедура подписывания сообщения Г- это возведение числа Т в степень d по mod п (1): S= V (mod п)

Число S-цифровая подпись, которую может выработать только владелец секретного ключа.

Процедура проверки подписи S, соответствующей сообщению Т.- это возведение числа S в целую степень е ; по mod п:

j V = Se (modn)

i Если V = T то сообщение Т признается подписанным пользователем, который предоставил ранее открытый ключ е

Как отмечалось, стойкость криптосистемы RSA I основана на сложности разложения модуля на два больших | простых множителя. До настоящего времени не найдены ! практически реализуемые общие способы решения этой | задачи при длине модуля 512 бит и более. ! 3 Дискретный логарифм. Эта проблема, согласно Диффи ! была предложена Дж. Гиллом (J. Gill) и затем успешно ! развита Эль-Гамалем. Она основана на трудности задачи вычисления дискретных логарифмов в конечном поле, ' которая сводится к тому, чтобы заданным О. и ß найти значение X.. такое, что = ß.

Для генерации пары ключей сначала выбирается простое число р и два случайных числа, g и х, оба эти числа должны быть меньше р. Затем вычисляется у = д" mod р

Открытым ключом являются у,g и р. Закрытым ключом является х.

Чтобы подписать сообщение Т, сначала выбирается случайное число к, взаимно простое с р - 1. Затем ! вычисляется

j а =дл mod р

и с помощью расширенного алгоритма Эвклида находится Ь в уравнении I T = (xa+kb) mod (р-1)

j Подписью является пара чисел: а и Ь. Случайное I значение к должно храниться в секрете. Для проверки подписи нужно убедиться, что

fa" mod р = gT modp

Каждая подпись требует нового значения к, и это значение должно быть выбрано случайным способом.

Необходимо отметить, что подобная узость математических основ криптографии с открытыми | ключами немного беспокоит. Прорыв в решении либо | проблемы дискретных логарифмов, либо проблемы ' разложения на множители сделает небезопасными целые j классы алгоритмов с открытыми ключами.

На сегодняшний день основными алгоритмами ЭЦП с i открытым ключом являются:

I 1. DSA (Digital Signature Algorithm) и его варианты -I разработан в США в 1991 году. Он представляет собой ! вариант алгоритмов подписи Schnor и EIGamal; 1 2. Русский стандарт цифровой подписи - алгоритм i цифровой подписи ГОСТ Р34. 10 - 94.

3 ONG-SCHNORR-SHAMIR - эта схема использует ! многочлены по модулю п. Варианты, основанные на квадратичных кубических многочленах и многочленах четвертой степени были все вскрыты, поэтому считать данный алгоритм безопасным было бы преиодевременным.

4. ESIGN - это схема цифровой подписи, разработанная NNT Japan На данный момент все попытки вскрыть современную модификацию этого алгоритма оказываются пока безрезультатными Изобретателями утверждается, что скорость ESIGN намного выше, чем у RSA, EIGamal и DSA

5 Цифровые подписи, использующие алгоритм RSA.

6 Цифровая подпись Рабина (Rabin) - безопасность этого алгоритма опирается на сложность поиска квадратных корней по модулю составного числа. Следует

* отметить, что этот алгоритм совершенно беззащитен кШ перед вскрытием с выбранным шифротекстом.

Наиболее популярен алгоритм DSA, но поскольку в России есть свой стандарт цифровой подписи, целесообразно рассмотреть подробно оба этих варианта (2).

Алгоритм OSA использует следующие параметры: р - простое число длиной L битов, где L принимает значение, кратное 64, в диапазоне от 512 до 1024. q - 160-битовое простое число - множитель р-1. g = tfp-v'q mod р, где h - любое число, меньшее р-1, для которого mod р больше 1. y = gTnodp.

Для применения однонаправленной хэш-функции Н(т) используется алгоритм безопасного хэширования (Secure Hash Algorithm, SHA).

Первые три параметра: р, q и g - открыты и могут использоваться совместно пользователями сети. Закрытым ключом служит *, а открытым - у. Чтобы подписать сообщение m

1. Автор подписи (АП) генерирует случайное число к, меньшее q.

2. АП генерирует

r = (qhmodp) modq s = ( к-'(Н(т) + xr)) mod q

Подписью служат два числа: л и s. АП посылает их заинтересованной стороне (ЗС).

3. ЗС проверяет подпись, вычисляя W = s1 modq

u1 = (H(m)*w) mod q u2 = ((r'w)modq v = ((gu1*y"2) modp) mod q Если v = г, то подпись правильна. Алгоритм ГОСТ Р34.10-94 («Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки ЭЦП на базе асимметричного криптографического алгоритма.») использует следующие параметры:

р - простое число, длина которого либо между 509 и 512 битами, либо между 1020 и 1024 битами.

q - простое число - множитель р-1, длиной от 254 до 256 битов.

а - любое число, меньшее р-1, для которого a" modp = 1. х - число, меньшее q. у = a" mod р.

Этот алгоритм использует однонаправленную хэш-функцию: Н(т). Стандарт определяет использование хэш-функции ГОСТ Р34.11 -94 («Информационная технология. Криптографическая защита информации. Функция хэширования.»), основанной на симметричном алгоритме ГОСТ 28147 - 89 («Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.»). Хэш-функция выдает 256-битовое хэш-значение. Функция сжатия H = ffM^H.J (оба операнда - 256 битовые величины), определяется следующим образом: при помощи линейного смешивания и некоторых констант

генерируется четыре ключа шифрования ГОСТ. Каждый ключ используется для шифрования отличных 64 битов Н.Полученные 256 битов сохраняются во временной переменной S. Н. является сложной, хотя и линейной функцией 8,М.,Н1У Хэш-значение последнего блока сообщения не является окончательным. На деле используется три переменные сцепления : Нп - это хэш-значение последнего блока, Z - это XOR всех блоков сообщения, a L- длина сообщения. С использованием этих переменных и дополненного последнего блока М', окончательное хэш-значение равно

H=f(Z®M',f(L,f(M',Hn))). Чтобы подписать сообщение m

1. Автор подписи генерирует случайное число к, меньшее q.

2. АП генерирует г- (a"modp) modq

s = (xr + к(Н(т))) mod q

Если Н(т) mod q = 0, то значение хэш-функции устанавливается равным 1. Если г- О, то выберите другое значение к и начните снова. Подписью служат два числа: г mod 2"6 и s mod 2?56 АП посылает их заинтересованной стороне

3. ЗС проверяет подпись, вычисляя v = Н(т)"-г mod q z, = (sv) modq z2 = ((q-r)'v) modq и = ((а'"у12) modp) modq Если и = г, то подпись правильна. Алгоритмы DSA и ГОСТ различны в вычислении s, поэтому у них разные уравнения проверки. Для интересующихся читателей надо отметить, что оптимизированные программные реализации российского алгоритма шифрования ГОСТ 28147-89 можно найти в статьях Андрея Винокурова, давно занимающегося этими вопросами.

Помимо этих алгоритмов за последние годы появлялось множество других, но все они были вскрыты. Сила любого алгоритма с открытым ключом зависит не только от вычислительной сложности проблемы, лежащей в основе алгоритма. Трудная проблема необязательно реализуется в сильном алгоритме. Ади Шамир объясняет это тремя причинами

1 Теория сложности обычно связана с отдельными частными случаями проблемы. Криптоаналитик же часто получает большой набор статистически связанных проблем - различные шифротексты, зашифрованы одним и тем же ключом.

2. Вычислительная сложность проблемы обычно измеряется для худшего или среднего случаев. Чтобы быть эффективной в качестве способа шифрования, проблема должна быть трудной для решения почти во всех случаях.

3 Произвольную сложную проблему необязательно можно преобразовать в криптосистему, к тому же проблема должна позволить встроить в нее лазейку, знание которой и только оно делает возможным простое решение проблемы.

В общем случае, нападающим на цифровую подпись может быть как внешний субъект, так и подписывающая сторона (отказ от подписи) или сторона, проверяющая подпись (навязывание ложной подписи). Все возможные виды нападений на цифровую подпись можно классифицировать на несколько групп:

1 нападения на криптографические алгоритмы (нападение на двухключевой алгоритм - подделывается подпись или хэш-функцию - подделывается документ); шансы у нападающего крайне низки, т.к. необходимо решать сложную математическую задачу;

2 нападения, связанные с нарушением протокола (повторение подписанных сообщений, их задержка); для предотвращения таких действий необходимо в документах использовать метки времени и указывать номера каждого из документов:

3 нападения, связанные с нарушением целостности механизмов системы цифровой подписи - являются наиболее разнообразными. К ним относятся удаление из базы данных подписанного сообщения, перехват секретного ключа программными или аппаратными средствами,

навязывание ложного открытого ключа, подмена открытого ключа в базе данных. Как видим, безопасное функционирование системы цифровой подписи требует использования защищенного окружения.

Функционирование реальных систем цифровой подписи требует правового, организационного и программно-технического обеспечения. Правовое обеспечение включает принятие правовых законов, придающих юридическую силу цифровой подписи. Организационное обеспечение включает регистрацию пользователей в некотором доверительном центре, оформление документов между пользователем и доверительным центром (или между двумя пользователями) об ответственности за переданные друг другу открытые ключи. К программно-техническому обеспечению относится вся совокупность программных и аппаратных средств, позволяющих осуществить сложные вычисления и обеспечивающих сохранность базы данных, содержащей подписанные документы и образцы подписей к ним.

В заключение хотелось бы обратить внимание читателей, интересующихся цифровой подписью, на то, что 12 сентября 2001 г. постановлением Государственного комитета РФ по стандартизации и метрологии был утвержден новый стандарт алгоритма электронной цифровой подписи на основе эллиптических кривых (ГОСТ Р 34.10-2001). Новый стандарт вводится в действие с 1 июля 2002 г

ЛИТЕРАТУРА

1. Молдовян А.А., Молдовян Н.А., Советов Б.Я. Криптография: Учебник. - СПб. :Изд-во Лань, 2000.-224 с.

2. Schneier В. Applied Cryptography. -1995, John Wiley & Sons.

3. Omura J.K. Novel Applications of Cryptography in Digital Communications. May 1990, IEEE Communication Magazine.

4. Винокуров А. Ю. Проблема аутентификации данных и блочные шифры: Рукопись. -1998.

5. Винокуров А.Ю. Алгоритм шифрования ГОСТ 2814789, его использование и реализация для компьютеров платформы Intel х86: Рукопись. -1995.

6. ГОСТ Р34.10-94. Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки ЭЦП на базе асимметричного криптографического алгоритма. - М.: Госстандарт, 1994,

7. ГОСТ Р34.11-94. Информационная технология. Криптографическая защита информации. Функция хэширования - М.: Госстандарт, 1994.

8. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. -М.: Госстандарт, 1989.

9. Беляев А. В. Методы и средства защиты информации: Рукопись.-2001.

10. Диффи У. Первые десять лет криптографии с открытым ключом/Пер. с англ./М., ТИИЭР.-Т.76.-№ 5.

МАКСИМЕНКО Андрей Владимирович, аспирант КИБЭС ТУСУРа.

ШЕЛУПАНОВ Александр Александрович, профессор, доктор техн. наук, член-корреспондент СО АН Bill, зав. кафедрой "Комплексная информационная безопасность электронно-вычислительных систем ТУСУРа".

i Надоели баннеры? Вы всегда можете отключить рекламу.