Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алгоритмы защиты информации / Лаб+работа+2++Програм+средства+с+ОК

.pdf
Скачиваний:
188
Добавлен:
02.05.2014
Размер:
294.26 Кб
Скачать

Министерство общего и профессионльного образования Российской Федерации

Уфимский государственный авиационный технический университет

Кафедра вычислительной техники и защиты информации

ПРОГРАММНЫЕ СРЕДСТВА ШИФРОВАНИЯ С ОТКРЫТЫМ КЛЮЧОМ

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к лабораторной работе по курсу «Программно-аппаратная защита информации», «Программно-аппаратные средства защиты информации»

УФА 1997

Составитель: В.Е.Кладов УДК 681.3

Программные средства шифрования с открытым ключом. Методические указания к лабораторной работе по курсам «Прог- раммно-аппаратная защита информации», «Программно-аппарат- ные средства защиты информации» /Уфимск. гос. авиац.техн.

универ-т.; Cост. В.Е.Кладов, Уфа, 1997.- 27 с.

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

Предназначены для студентов специальности 220600 «Организация и технологии защиты информации» , 220100 «Вычислительные машины, комплексы и системы» и направления 522800 «Информатика и вычислительная техника».

Библиогр.:4 наим.

Рецензенты : Нугаев Р.Р Фрид А.И.

3

Содержание

1 Цель работы ............................................

4

2 Теоретическая часть ....................................

4

2.1

Недостатки систем с секретными ключами..............

4

2.2

Понятие криптографии с открытыми ключами............

5

2.3

Алгоритм RSA ........................................

7

2.4

Понятие электронной подписи........................

10

2.5

Сравнительный анализ алгоритмов криптографии.......

12

2.6

Пакет кодирования с открытым ключом Pretty Good

14

Privacy (PGP) ..........................................

2.6.1 Pабота с PGP ..................................

16

2.6.2 Управление ключами .............................

17

2.6.3 Защита открытых ключей от подделки. ...........

20

2.6.4 Конфигурация PGP ...............................

22

2.7.2 Расшифровка сообщений (Decrypt Message) ........

24

2.7.3 Традиционное шифрование Файла (Conventionally

24

Encrypt a File) ......................................

2.7.4 Управление ключами ( Key Management) ...........

24

3. Порядок выполнения работы ............................

26

4 Требования к отчету ...................................

26

5 Контрольные вопросы ...................................

26

Список литературы .......................................

27

4

ЛАБОРАТОРНАЯ РАБОТА 2 ПРОГРАММНЫЕ СРЕДСТВА ШИФРОВАНИЯ С ОТКРЫТЫМ КЛЮЧОМ

1 Цель работы

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

2 Теоретическая часть

2.1 Недостатки систем с секретными ключами

Криптография с открытым ключом

окончательно оформи-

лась как

самостоятельное направление в теории защиты ин-

формации к 1975 году. Появлению нового направления

способ-

ствовали

две проблемы, которые не

могли быть

разрешены

в рамках классических криптографических схем.

 

Первая из этих проблем связана с распространением секретных ключей. При криптографии с секретным ключом и получатель и отправитель использовали один и тот же ключ, который должен быть неизвестен всем остальным. Если они находятся на большом расстоянии друг от друга, им приходится доверять курьеру, телефону или другой системе передачи сообщений. Любой, кто перехватит ключ во время передачи, сможет расшифровывать все сообщения с помощью этого ключа. Создание, передача, хранение ключей называется распространением ключей (key management). При секретных ключах процесс распределения ключей имеет весьма сложный характер. В больших коммерческих сетях число возможных соединений между пользователями определяется формулой (n2- n)/2, где n -число пользователей[3]. В системе с одним миллионом пользователей возможно около 5.10 11 соединений, и стоимость распространения ключей оказывается неприемлемо высокой.

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

письма, сличив подпись

с имеющимся у него образцом; лич-

ная подпись является

юридическим гарантом авторства до-

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

В случае

5

 

идентификацию автора

электронных документов

документа должна производиться

не

по особенностям его

почерка, как это происходит с

обычной физической

подписью,

а по наличию

у него некоторой

индивидуальной

информации

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

содержимое электронного

документа,

не сможет получить то

же число-подпись, что и

законный обладатель ключа.

Трудность разрешения обеих проблем состоит в том, что

скопировать цепочку битов на ЭВМ

- простая операция. Сис-

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

Для аутентификации могут использоваться криптосистем с обычным секретным ключом, реализующим стандарт шифрования DES(метод СFB) или формирование имитовставки по ГОСТ 2814789. Но для этого требуется секретный ключ.

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

Кроме того процедура проверки авторства документа и соответствия его содержания индивидуальному секретному ключу подписывания(на основании несекретного "образца цифровой подписи") должна давать возможность третьей стороне - арбитру совершенно четко и однозначно принимать решение о подлинности цифровой подписи и документа в случае возник-

новения конфликта.

методом

Обе проблемы были успешно решены единым

-криптографией с открытыми ключами.

2.2Понятие криптографии с открытыми ключами

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

6

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

Криптография с открытым ключом, в отличиие от криптографии с секретным ключом, может применяться не только для секретности (шифрование), но и для аутенфикации (цифровой подписи)

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

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

Воснове этого метода лежат, так называемые, односторонние, или необратимые, функции: при заданном значении x относительно просто вычислить значение f(x), однако, зная y = f(x), определить х чрезвычайно трудно.

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

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

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

преобразование исходного текста должно быть необратимым и исключать его восстановление на основе открытого ключа.

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

Алгоритмы шифрования с открытым ключом получили широкое распространение в современных информационных системах.

7

Так, алгоритм RSA стал мировым стандартом де-факто для открытых систем и рекомендован МККТТ.

Вообще же все предлагаемые сегодня криптосистемы с открытым ключом опираются на один из следующих типов необратимых преобразований:

разложение больших чисел на простые множители;

вычисление логарифма в конечном поле;

вычисление корней алгебраических уравнений.

Алгоритмы криптосистемы с открытым ключом (СОК) можно использовать в трех назначениях.

как самостоятельные средства защиты передаваемых и хранимых данных;

как средства для распределения ключей. Алгоритмы СОК более трудоемки, чем традиционные криптосистемы. Поэтому часто на практике рационально с помощью СОК распределять ключи, объем которых как информации незначителен. А потом с помощью обычных алгоритмов осуществлять обмен большими информационными потоками;

cредства аутентификации пользователей.

2.3Алгоритм RSA

Несмотря на довольно большое число различных СОК, наиболее популярна - криптосистема RSA, разработанная в 1977 году и получившая название в честь ее создателей: Рона Ривеста, Ади Шамира и Леонарда Эйдельмана.

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

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

В настоящее время алгоритм RSA используется во многих стандартах, среди которых SSL, S-HHTP, S-MIME, S/WAN, STT и PCT.

Рассмотрим математические результаты, положенные в основу этого алгоритма.

8

 

Теорема 1. (Малая теорема Ферма.) Если р - простое

число, то

 

xp-1 = 1 (mod p)

(1)

для любого х, простого относительно р, и

 

xp = х (mod p)

(2)

для любого х.

Определение. Функцией Эйлера ϕ(n) называется число положительных целых, меньших n и простых относительно n.

n

2

3

4

5

6

7

8

9

10

11

12

ϕ(n)

1

2

2

3

2

6

4

6

4

10

4

Теорема 2. Если n=pq, (p и q - отличные друг от друга простые числа), то

ϕ(n)=(p-1)(q-1)

(3)

Теорема 3. Если n=pq, (p и q - отличные друг от друга простые числа) и х - простое относительно р и q, то

xϕ(n) = 1 (mod n)

(4)

Следствие . Если n=pq, (p и q - отличные друг от друга

простые числа) и е простое относительно ϕ(n), то отображение

Е

: xxe

(mod n)

(5)

 

e,n

 

 

является взаимно однозначным на Zn.

Очевиден и тот факт, что если е - простое относительно

ϕ(n), то существует целое d, такое, что

 

ed

= 1 (mod ϕ(n))

(6)

На

этих математических фактах и основан популярный ал-

горитм RSA.

простые числа. Если

Пусть n=pq, где p и q - различные

e и d удовлетворяют уравнению (6), то отображения Еe,n и Еd,n

являются инверсиями на Zn. Как Еe,n, так и Еd,n легко рассчитываются, когда известны e, d, p, q. Если известны e и

n, но p и q неизвестны, то Еe,n представляет собой одно-

стороннюю функцию; нахождение Еd,n по заданному n равносильно разложению n. Если p и q - достаточно большие простые, то разложение n практически не осуществимо. Это и заложено в основу системы шифрования RSA.

Пользователь i

выбирает пару различных простых pi и qi

и рассчитывает пару

целых (ei, di), которые являются про-

9

стыми относительно ϕ(ni), где ni=pi qi . Справочная таблица содержит публичные ключи {(ei ,ni)}.

Пользователь i зашифровывает текст при передаче его пользователю j, применяя к n отображение Edi,ni :

N Edi,ni n = n’.

 

(7)

Пользователь j производит

дешифрование

n’, применяя

Eei,ni :

 

 

N’ Eei,ni n’= Eei,ni Edi,ni

n = n .

(8).

Очевидно, для того чтобы найти инверсию Edi,ni по отношению к Eei,ni, требуется знание множителей n=pi qi. Время выполнения наилучших из известных алгоритмов разложения при n=10100 на сегодняшний день выходит за пределы современных технологических возможностей.

Рассмотрим небольшой пример, иллюстрирующий применение алгоритма RSA.

Пример. Зашифруем сообщение “САВ”. Для простоты будем использовать маленькие числа (на практике применяются гораздо большие).

Выберем p=3 и q=11.

Определим n=3*11=33.

Найдем (p-1)(q-1)=20. Следовательно, в качестве d,

взаимно простое с 20, например, d=3.

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

(е*3) (mod 20) = 1, например 7.

Представим шифруемое сообщение как последователь-

ность целых чисел с помощью отображения: А1, В2, С3.

Тогда сообщение принимает

вид (3,1,2). Зашифруем сообщение

с помощью ключа {7,33}.

=

2187 (mod 33) = 9,

ШТ1

= (37) (mod 33)

ШТ2

=

(17)

(mod

33)

=

1 (mod 33) =

1,

ШТ3

=

(27)

(mod

33)

=

128 (mod 33)

= 29.

Расшифруем полученное зашифрованное сообщение (9,1,-

29)на основе закрытого ключа {3,33}:

ИТ1 = (93) (mod 33) = 729 (mod 33) = 3, ИТ2= (13) (mod 33) = 1 (mod 33) = 1,

ИТ3 = (293) (mod 33) = 24389 (mod 33) = 2.

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

10

выбирает два простых числа e и d. Как результат умножения первых двух чисел (p и q) устанавливается n.

{e,n} образует открытый ключ, а {d,n} - закрытый (хотя можно взять и наоборот).

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

Внастоящее время алгоритм RSA активно реализуется как

ввиде самостоятельных криптографических продуктов, например, PGP, так и в качестве встроенных средств в популярных приложениях, например в браузерах Netscape Navigator, Microsoft Explorer.

Для практической реализации алгоритмов RSA полезно знать оценки трудоемкости разложения простых чисел различной длины, сделанные Шроппелем(таблица 1).

Таблица 1

Log10 n

Число операций

Примечания

 

50

1.4*1010

Раскрываем

на суперкомпьютерах

100

2.3*1015

На пределе

современных технологий

200

1.2*1023

За пределами современных технологий

400

2.7*1034

Требует существенных изменений в

 

 

технологии

 

800

1.3*1051

Не раскрываем

В конце 1995 года удалось практически реализовать раскрытие шифра RSA для 500-значного ключа. Для этого с помощью сети Интернет было задействовано 1600 компьютеров.

Сами авторы RSA рекомендуют использовать следующие размеры модуля n:

768 бит - для частных лиц;

1024 бит - для коммерческой информации;

2048 бит - для особо секретной информации.

2.4 Понятие электронной подписи

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

Пусть DATA - передаваемое Александром Борису сообще-

ние.

Александр подписывает DATA для Бориса при передаче : EeB,nB { EdA,nA {DATA}}.