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

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

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

11

При этом он использует:

закрытый ключ EdA,nA Александра,

открытый ключ EeB,nB Бориса.

Борис может читать это подписанное сообщение сначала при помощи закрытого ключа EdВ,nВ Бориса с целью получения

EdA,nA{DATA}=EdB,nB {EeB,nB{EdA,nA{DATA}}} (9)

и затем - открытого ключа EeA,nA Александра для получе-

ния

DATA = EeA,nA { EdA,nA {DATA}}.

(10)

Таким образом, у Бориса появляется сообщение DATA, посланное ему Александром.

Очевидно, что данная схема позволяет защититься от нескольких видов нарушений.

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

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

Кроме алгоритма создания цифровой подписи, который принадлежит компании RSA, широко используется - стандарт

DSS(Digital Signature Standard -стандарт цифровой подписи),

поддерживаемый Национальным институтом стандартов и технологий США (NIST). В основе его положены алгоритмы ЭльГамаля и RSA.

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

Хэш-функции удовлетворяют следующим условиям:

исходный текст может быть произвольной длины;

само значение H(k, T) имеет фиксированную длину;

значение функции H(k, T) легко вычисляется для любого аргумента;

восстановить аргумент по значению с вычислительной

точки зрения - практически невозможно;

функция H(k, T) - однозначна.

Наиболее известные из хэш-функций - MD2, MD4, MD5 и

SHA.

Три алгоритма серии MD разработаны Ривестом в 1989-м, 90-м и 91-м году соответственно. Все они преобразуют текст произвольной длины в 128-битную сигнатуру.

Алгоритм MD2 предполагает:

дополнение текста до длины, кратной 128 битам;

12

вычисление 16-битной контрольной суммы (старшие разряды отбрасываются);

добавление контрольной суммы к тексту;

повторное вычисление контрольной суммы.

Алгоритм MD4 предусматривает:

дополнение текста до длины, равной 448 бит по модулю

512;

добавляется длина текста в 64-битном представлении;

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

В алгоритме MD4 довольно быстро были найдены «дыры»,

поэтому он был заменен алгоритмом MD5, в

котором каждый

блок участвует не в трех, а в четырех различных циклах.

Алгоритм SHA (Secure Hash Algorithm)

разработан NIST

(National Institute of Standard and Technology) и повторяет идеи серии MD. В SHA используются тексты более 264 бит, которые закрываются сигнатурой длиной 160 бит.

Алгоритмы МD5 и SHA устроены так, что практически невозможно подобрать два разных файла, хэш-суммы которых совпали бы.

В деталях методики RSA и DSS несколько различаются: RSA просто зашифровывает хэш-сумму по секретному ключу отправителя, а DSS специальным образом вычисляет цифровую подпись по секретному ключу и хэш-сумме.

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

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

Главное достоинство криптографии с ОК - повышенная безопасность. Нет необходимости ни передавать или сообщать кому бы то ни было секретные ключи, ни убеждаться в их подлинности В системе с секретными ключами (СК) есть опасность раскрытия противником секретного ключа во время передачи.

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

13

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

Главный недостаток криптографии с ОК -скорость шифро-

вания, значительно меньшая чем с СК.

ключом для

надежной

При

криптографии

с открытым

защиты информации необходимо применять ключи большой

длины

(не короче 512 бит), но

при удлинении ключа

резко

воз-

растает

сложность математических

вычислений,

а,

следова-

тельно, и время шифрования/дешифрования информации. При

уменьшении

длины

ключа снижается надежность защиты. К то-

му же

при

генерации

открытого ключа необходимо

выпол-

нить

ряд

условий

и соблюсти

некоторые ограничения, что

требует больших затрат времени.

 

 

 

 

 

Криптография с секретными ключами использует более

короткие ключи (длина ключа американского стандарта

DES -

56 бит)

при

тех же показателях криптостойкости и

имеет

более

высокую

скорость шифрования.

криптографии

 

сек-

При использовании традиционной

 

ретными ключами) ключ должен попасть только тому

абоненту,

которому

он предназначен, и никому больше, иначе ваши сек-

реты

будут

доступны не только вам. Этому правилу

должны

следовать

все

абоненты

в сети. В криптографии с открытым

ключом эта

проблема снимается. Вы публикуете открытый

ключ

в справочнике

или

передаете его

по

сети и больше

ни

о

чем

не заботитесь. Но тогда

появляется

другая проблема: вы не

знаете, кто из

абонентов отправил

сообщение - возможно,

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

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

Из сказанного можно

14

что лишь объе-

сделать вывод,

динение методов криптографии при проектировании

систем

связи

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

обоих

подходов

криптографии,

используя только их достоинства.

 

Следует отметить, что в системах закрытой связи (на-

пример,

в военных), где

циркулирует особо

важная

инфор-

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

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

Криптографическая система Pretty Good(tm) Privacy (PGP) разработана Филом Циммерманом. Она обеспечивает высокую степень секретности и может использоваться для операционных систем MS-DOS, Unix, VAX/VMS и других. PGP позволяет пользователям обмениваться файлами или сообщениями с использованием функций секретности, установлением подлинности. PGP базируется на шифровании с "открытым ключом".

PGP объединяет в себе:

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

RSA;

скорость обычной криптографической системы;

алгоритм "дайджеста сообщений" для реализации элек-

тронной подписи;

 

перед шифрованием;

 

упаковку

данных

 

хороший

эргономический дизайн программы;

 

развитую систему

управления ключами.

 

С

помощью

PGP

вы

можете надежно связаться с людьми,

которых никогда не встречали, без использования

специаль-

ных каналов связи

для

предварительного обмена

ключами.

PGP не имеет встроенной возможности работы с модемом. Для этого вы должны использовать отдельное программное

обеспечение.

хранятся в

виде "сертификатов клю-

Открытые ключи

чей",

которые включают в себя:

владельца ключа (обыч-

идентификатор

пользователя

но это

имя пользователя);

 

временную метку, которая указывает время генерации пары ключей;

собственно ключи.

15

Сертификаты открытых ключей содержат открытые ключи, а сертификаты секретных ключей - секретные. Каждый секретный ключ также шифруется с отдельным паролем. Файл (каталог, связка -"keyring") ключей содержит один или несколько таких сертификатов. В каталогах открытых ключей хранятся сертификаты открытых ключей, а в каталогах секретных - сертификаты секретных ключей.

На ключи также внутренне ссылаются "идентификаторы ключей", которые являются "сокращением" общего ключа (самые младшие 64 бита большого открытого ключа). Когда этот идентификатор ключа отображается, то показываются лишь младшие 24 бита для краткости. Если несколько ключей могут

одновременно использовать

один и тот же

идентификатор

пользователя, то никакие

два ключа не могут использовать

один и тот же идентификатор ключа.

PGP использует для формирования подписи криптографически мощную 128-битную одностороннюю хэш-функцию от сообще-

ния. Она не позволяет

создать два

сообщения

с одинаковым

дайджестом. Дайджест сообщения шифруется

секретным клю-

чом для создания электронной подписи сообщения.

 

 

пе-

ред

Документы

подписываются

посредством

добавления

ними удостоверяющей

подписи,

которая

содержит:

под-

писи;

идентификатор

 

ключа,

использованного

для

подписанный

 

секретным

ключом дайджест

сообщения;

 

 

 

метку даты

и времени генерации подписи.

 

 

 

 

Идентификатор

 

ключа

используется

получателем сооб-

щения, чтобы

найти

открытый

ключ

 

для

проверки

подпи-

си. Программное обеспечение получателя

автоматически

ищет

открытый ключ отправителя и идентификатор

пользователя в

каталоге общих ключей получателя.

 

идентификатор откры-

 

Шифрованным

файлам предшествует

того ключа, который был использован для

их шифрования. По-

лучатель использует этот идентификатор для

поиска

секрет-

ного ключа, необходимого для расшифровки сообщения.

 

Прог-

раммное обеспечение

получателя автоматически

ищет требуе-

мый

для расшифровки

секретный ключ

в

каталоге секретных

ключей получателя.

каталогов

ключей

 

и

есть главный

метод

 

Эти два типа

 

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

16

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

2.6.1 Pабота с PGP

Для получения краткой справки об использовании ко-

манд

PGP введите:

 

 

 

 

 

 

 

 

Для

pgp -h

текстового

файла

открытым

ключом

 

шифровки

получателя, введите:

 

 

 

 

 

 

 

 

PGP

pgp -e textfile her_userid,

 

ключей

"pub-

 

будет искать

в

каталоге открытых

ring.pgp"

сертификаты

общих

ключей

со строкой

her_userid

в поле

идентификатора

пользователя(При

наличии в

строке

her_userid пробелов

ее

необходимо

заключать в кавычки).

Поиск

ведется без учета

регистра.

Перед

щифрованием PGP

производит упаковку(сжатие) файла, что значительно усиливает сопротивляемость криптоанализу и уменьшает размер файла. В результате выполнения команды будет получен зашифрованный файл textfile.pgp.

Для

подписания

текстового

файла

вашим

секретным

ключом, наберите:

 

 

 

 

 

pgp -s textfile [-u your_userid]

 

 

В скобках

[]

показываются необязательное поле.

По

этой

команде

PGP будет

искать

в файле

каталога

секретных ключей "secring.pgp" сертификат секретного ключа со строкой your _userid" в поле идентификатора пользовате-

ля. Если поле идентификатора

пользователя не указано, то в

качестве ключа

про умолчанию используется первый секретный

ключ из каталога секретных ключей. В

результате выполнения

этой команды

получится подписанный файл textfile.pgp.

Для

 

подписания

текстового

файла

вашим

секретным

ключом и последующей его зашифровки, наберите:

 

 

 

pgp -es textfile her_userid [-u your_userid]

 

Секретный ключ

для

создания

подписи

автоматически

ищется в вашем каталоге секретных

ключей по your_userid.

Открытый

 

ключ

адресата

для

шифрования

автоматически

ищется в каталоге открытых ключей

по

her_userid. Если вы

опускаете

 

этот

параметр

в

командной

строке,

PGP

запросит

его у вас. Если

вы

опускаете

второй

параметр,

то

для

подписания

по умолчанию

будет

использован

первый

ключ

из вашего

 

каталога секретных ключей.

 

 

 

 

будет

В

результате

выполнения

 

данного примера

получен "вложенный" зашифрованный

файл textfile.pgp.

 

Иногда

вам

необходимо

зашифровать

файл

традиционным

способом,

 

с

помощью шифрования

с

одним

ключом. Это

может

17

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

Для шифрования текстового файла традиционным спосо-

бом, наберите:

pgp -c textfile

PGP зашифрует текстовый файл и получит выходной файл textfile.pgp

PGP запросит у вас фразу пароля для шифрования файла. Эта фраза не должна быть одинаковой с фразой пароля, ко-

торую вы

используете для защиты вашего секретного ключа.

PGP

не

будет одинаково шифровать один и тот же файл,

даже если

вы используете

ту же самую фразу пароля.

Для дешифровки зашифрованного файла и/или проверки це-

лостности

подписи подписанного файла используется команда:

По

 

pgp ciphertextfile [-o plaintextfile]

умолчанию для

шифрованного файла принимается

расширение .pgp". Необязательное имя выходного текстового

файла

определяет где размещать

обработанный текстовый

файл.

Если никакое имя не задается, то используется имя

шифрованного файла без расширения. Если подпись находится внутри шифрованного файла, то производится дешифровка и проверка целостности подписи. На экран будет выведен полный идентификатор пользователя, подписавшего текст.

Расшифровка

файла

ведется

полностью

автоматически.

PGP использует префикс идентификатора ключа из

зашифрован-

ного файла

для

автоматического

поиска

соответствующего

секретного ключа для расшифровки в каталоге секретных

клю-

чей. Если в файле имеется вложенная подпись, PGP

будет ис-

пользовать

затем

префикс

идентификатора

из

вложенной

под-

писи для автоматического нахождения соответствующего откры-

того

ключа

в

каталоге

открытых

ключей, чтобы проверить

подпись. Если

в

ваших

каталогах

ключей уже

имеются

все

верные

ключи,

то

вмешательство пользователя не

требуется,

за исключением того, что PGP запросит у

вас пароль для ва-

шего секретного

ключа,

если

это

необходимо.

Если

файл

шифровался

традиционным

способом без использования

общего

ключа,

PGP

определит это и

запросит

у вас фразу

пароля

для дешифровки.

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

Для генерации вашей собственной уникальной пары откры-

тый/ секретный ключ заданного размера, наберите: pgp -kg

PGP

покажет вам

меню

18

размеров ключа

рекомендуемых

(простой,

коммерческий, военный уровень) и

запросит тре-

буемый размер ключа. Чем длиннее ключ, тем

выше степень

секретности, но платить за

это придется скоростью.

PGP

также запросит

идентификатор пользователя User_-

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

шего идентификатора. Пример -Ivan G. Golubkov<Vanya@mmm.- com>

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

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

Для добавления файла открытого или секретного ключа в соответствующий ваш каталог наберите

Pgp -ka keyfile [keyring]

Для keyfile по умолчанию берется расширение ".pgp". Файлы каталогов открытых и секретных ключей keyring

по

умолчанию

имеют

значения

"pubring.pgp"

или

"secring.pgp". Вы

можете задавать

и другие имена

файлов с

расширением по умолчанию ".pgp".

прикрепленную

подпись,

 

Если добавляемый

ключ имеет

удостоверяющую его, подпись будет добавлена в каталог вместе с ключом.

 

Для удаления ключа из вашего каталога общих ключей на-

берите:

Pgp -kr userid [keyring]

 

 

 

 

 

 

 

 

 

 

 

PGP будет искать заданный идентификатор пользователя в

вашем каталоге общих ключей и, при

нахождении удалит его.

Любого

фрагмента

идентификатора

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

для

установления

соответствия.

В

качестве

необязатель-

ного

имени файла

каталога

ключей

принимается по

умолчанию "pubring.pgp".

 

ключа

из

вашего ката-

 

Для

извлечения

(копирования)

 

лога общих или секретных ключей, наберите:

 

 

 

 

Pgp -kx userid keyfile [keyring]

 

 

PGP скопирует

ключ,

19

идентификатором

заданный

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

необходимо, если

вы

хотите передать копию вашего

общего

ключа кому-либо.

 

 

содержания

каталога

общих

 

ключей

Для

просмотра

 

наберите:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По

pgp -kv[v] [userid] [keyring]

выводиться

список

этой

команде на

экран будет

всех ключей из каталога, у которых хотя бы

частично совпа-

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

параметром userid в

ко-

мандной строке. Если

этот параметр

опущен, выводятся

все

ключи

из

каталога.

 

По умолчанию

в качестве

имени

файла

каталога

ключей

keyring

используется "pubring.pgp".

 

Для того, чтобы

увидеть

все

удостоверяющие

подписи,

связанные с каждым ключом, используйте опцию -kvv:

 

 

 

 

pgp -kvv [userid] [keyring]

имя

файла

каталога

Если

вы

хотите

задать отдельное

ключей, но хотите увидеть

все ключи из него,

попробуйте

использовать такой

альтернативный способ:

 

 

 

 

 

 

pgp keyfile

 

 

 

 

 

 

 

 

 

 

 

Если не заданы опции командной строки, PGP выведет

список

всех

ключей

в

keyfile.pgp,

и также

будет

пытаться

добавлять

их в ваш каталог ключей, если их там еще нет.

 

Отмена открытого ключа

и фраза

пароля все

 

же

бу-

Если

ваш

секретный

ключ

 

дут компрометированы

вы

должны будете

выпустить удосто-

верение "компроментации ключа", Для его создания используется команда

pgp -kd your_userid

Вы должны широко распространить это удостоверение

отмены

ключа,

и

как

можно скорее. Все, кто

получат

его,

могут

добавить

его

к

своему

каталогу общих ключей,

и

программа PGP

 

будет

их автоматически

предохранять

от

использования

 

вашего

 

старого отмененного

общего

ключа.

После

этого

вы можете

сгенерировать

новую

пару секрет-

ный/общий ключи и опубликовать новй общий ключ.

элек-

Посылка

зашифрованного

текста

через

каналы

тронной почты: формат Radix-64

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

Чтобы

обойти эту проблему, PGP

позволяет получить

формат

ASCII

Radix-64, подобный формату Internet

Privacy-

Enhanced Mail

(PEM).

Этот специальный формат представ-

ляет

двоичные

данные,

используя

только печатаемые

символы

ASCII. Этот формат

 

 

 

20

 

"транспортная

оболочка",

действует как

защищая

данные

от

повреждения

при

передаче

их через

меж-

системные межсетевые

шлюзы в Internet.

Он также

включает

в

себя

CRC-код

для

определения

 

ошибок

при передаче.

 

Формат

Radix-64

преобразует

обычный

текст

при

помощи расширения групп из 3-х двоичных

8-битовых байтов в

4 печатаемых символа ASCII, так что

файл

увеличивается

приблизительно на 33%.

 

 

 

файла

в

формате Radix-

64

Для

получения

 

зашифрованного

просто добавьте

 

опцию

"a"

при

шифровании

или

под-

писании сообщения, например, так:

 

 

 

 

 

 

 

В

pgp -esa message.txt her_userid

 

 

файл с

 

результате

будет

получен

шифрованный

именем "message.asc".

 

 

 

 

 

ASCII-файл

"mes-

 

При дешифрировании PGP вначале ищет

sage.asc", а не двоичный файл "message.pgp". Она распознает, что файл находится в формате Radix-64 и преобразует его в двоичный ".pgp" перед его обработкой. Окончательный вы-

ходной файл будет

иметь

 

вид

обычного

текста.

 

запре-

щают

Многие средства

электронной

почты

Internet

пересылку

сообщений,

размер

которых

больше

50000

байт. Более длинные

сообщения

должны

быть

разделены

на

более маленькие, которые пересылаются отдельно.

Если

ваше

зашифрованное сообщение весьма велико,

и

вы

дали

команду

преобразования в Radix-формат, то PGP

автоматически разде-

лит его

на

отдельные части, каждая из которых

является

достаточно

малой

для

посылки

через

систему электронной

почты.

Эти части

будут

помещаться

 

в

файлы

с

рас-

ширениями

имен

".asc",

".as2",

".as3",

и

т.д. Получа-

тель должен соединить эти отдельные файлы

снова

вместе в

один большой файл перед

тем, как приступать к

дешифровке.

 

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

 

 

 

вы

 

В

криптографической

системе

с

открытым ключом

не должны защищать

 

открытые ключи

от

взлома.

Но

важно

зашищать

 

их

от

подделки. Вы

должны

быть

уверены,

что

данный ключ принадлежит

определенному

человеку.

Это

наи-

более

уязвимое

место криптографии

с

открытым

ключом.

 

Предположим, что вы хотите послать частное сообщение

Мише. Другой пользователь с именем

Боря сгенерировал

свой

собственный открытый ключ с присоединенным идентификатором

Миши.

Он скрытно подставляет

свой поддельный ключ

вместо

настоящего на BBS(электронную доску объявлений). Боря полу-

чает

возможность декодировать

сообщение,

предназначенное

Мише, потому что он имеет

соответствующий

секретный

ключ. Он может даже снова зашифровать декодированное

сооб-

щение с настоящим открытым ключом Миши и

послать ему, так