Смекни!
smekni.com

Защита персональных данных с помощью алгоритмов шифрования (стр. 5 из 5)

Вот пример экспорта открытого ключа:


Импорт ключа осуществляется с помощью функции


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

Вот пример импорта открытого ключа:


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

Итак, как же передать собеседнику зашифрованное сообщение:

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

· Отправитель генерирует случайный сеансовый ключ и шифрует им сообщение.

· Отправитель импортирует открытый ключ обмена получателя, экспортирует сеансовый ключ, шифруя его полученным ключом обмена (ключ обмена в параметре hExpKey).

· Зашифрованное сообщение передается вместе с зашифрованным сеансовым ключом - так называемый цифровой конверт.

· Получатель импортирует сеансовый ключ, расшифровывая его своим закрытым ключом обмена (его можно получить, вызвав CryptGetUserKey) и с помощью сеансового ключа расшифровывает сообщение.

Говоря о сеансовых ключах, используемых в Microsoft Base Cryptographic Provider нужно упомянуть об одной неприятности: до начала 2000 года действовал запрет на экспорт программного обеспечения, использующего средства "сильной криптографии" за пределами США и Канады. По этой причине в базовом криптопровайдере не поддерживаются ключи для симметричных алгоритмов длиной более 40 бит. Ключи длиной 56 бит разрешалось использовать только заграничным отделениям американских компаний. Для алгоритмов RC2 и RC4 рекомендуемая длина ключа должна составлять 128 бит, поэтому недостающее количество бит заполняется нулями либо случайными значениями, которые должны передаваться открыто. Надежность защиты из-за этого, разумеется, сильно страдает. В состав Windows XP входит Microsoft Enhanced Cryptographic Provider, в котором этой проблемы нет, но при использовании базового криптопровайдера, необходимо дополнять ключ до нужной длины, используя т.н. солт-значения (salt-values). Сгенерировать salt-value и внести его в ключ можно несколькими способами, но самый простой и очевидный - при вызове CryptGenKey или CryptDeriveKey передать в параметре dwFlags значение CRYPT_CREATE_SALT, примерно так:


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



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


2.5 Постановка задачи

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


2.6 Реализация задачи

2.6.1 Краткая характеристика среды Delphi 7

Среда программирования Delphi 7 позволяетреализовать поставленную задачу со всеми необходимыми требованиями. В среде используется язык ObjectPascal. Delphi 7 является объектно-ориентированной средой, что упрощает создание единообразного интерфейса и ввод-вывод информации из файла.

2.6.2 Алгоритм решения задачи

Программа представляет собой шифровщик и дешифровщик одновременно.

Используется метод симметрического кодирования, то есть кодирование и декодирование осуществляется с помощью одного ключа. Для обеспечения криптоустойчивости необходим длинный ключ. Пользователь вводит 30-символьный код. Блоками по 10 цифр. Из них генерируется код следующим образом:

Берутся первые цифры из 1-го, 2-го,3-го блоков, и в зависимости от 3-го блока над ними производятся операции сложения или умножения. Затем берется следующая цифра 3-го блока, после полного завершения цикла по 3-му блоку берется следующая цифра из второго блока и т.д. Гаммирование завершается после прохождения по циклу последней цифры 1-го блока. Результатом является код состоящий из 1000 независимых, неповторяющихся и незакономерных цифр. Шифр возможно вскрыть только полным перебором, что обеспечивает достаточную криптоустойчивость.

Модули программы

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

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

Модуль шифровки/дешифровки


Процедура кодирования символа


2.6.3 Таблица сообщений

В ходе работы пользователь может получить сообщение:

«Пароль не подтвержден» - следует убедиться в правильности пароля в дублирующих и основных полях.

Заключение

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

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

· невозможность раскрытия или осмысленной модификации информации на основе анализа ее структуры,

· совершенство используемых протоколов защиты,

· минимальный объем используемой ключевой информации,

· минимальная сложность реализации (в количестве машинных операций), ее стоимость,

· высокая оперативность.

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

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


Литература

1. Водолазский В. Коммерческие системы шифрования: основные алгоритмы и их реализация. Часть 1. // Монитор. - 1992. - N 6-7. - c. 14 - 19.

2. Игнатенко Ю.И. Как сделать так, чтобы?.. // Мир ПК. - 1994. - N 83. Ковалевский В., Максимов В. Криптографические методы. // КомпьютерПресс. - 1993. - N 5. - c. 31 - 34.

4. Мафтик С. Механизмы защиты в сетях ЭВМ. - М.: Мир, 1993.

5. Спесивцев А.В., Вегнер В.А., Крутяков А.Ю. и др. Защита информации в персональных ЭВМ. - M.: Радио и связь, 1992.

6. Сяо Д., Керр Д., Мэдник С. Защита ЭВМ. - М.: Мир, 1982.

7. Шмелева А. Грим - что это ? // Hard'н'Soft. - 1994. - N 5.

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