Методы и средства криптографической защиты информации (90
..pdfcmECB=1, //ECB cmCBC=2, //CBC cmCFB=3, //CFB cmOFB=4 //OFB
}
Для блочных алгоритмов в режимах ECB, CBC программа должна передавать данные объекту «Cipher», реализующему алгоритм шифрования, частями, кратными размеру блока. Для потоковых и блочных шифров в режиме потоковых – частями произвольного размера или побайтно. Объект «Cipher» должен сохранять внутреннее состояние между обработкой блоков данных.
Содержание отчета
1.Титульный лист.
2.Задание.
3.Краткая справка по используемому алгоритму: авторы, год разработки, достоинства, недостатки, надежность, способы криптоанализа.
4.Описание алгоритма (по шагам или в виде блок-схемы).
5.Программная реализация алгоритма.
6.Тестовые примеры.
7.Литература.
Контрольные вопросы
1.Классификация симметричных криптосистем.
2.Принцип работы блочных шифров.
3.Принцип работы потоковых шифров.
4.Схема Фейстеля.
5.Способы повышения защищенности криптосистем, основанных на схеме Фейстеля.
6.Общая схема алгоритма DES.
7.Общая схема алгоритма ГОСТ 28147-89.
8.Режимы применения блочных шифров.
9
Лабораторная работа №3 Реализация криптографической защиты данных
Цель работы
Изучить архитектуру криптографических сервисов, встроенных в современные операционные системы, получить практические навыки использования криптографических средств Microsoft .Net Framework при программировании прикладных приложений.
Теоретические сведения
В операционных системах семейства Microsoft Windows NT реализация криптографических алгоритмов инкапсулирована в провайдерах криптографических сервисов (Cryptographic Service Providers, CSP) –
независимых программных модулях, выполненных в виде динамически подключаемых библиотек. Различные провайдеры могут реализовывать все или некоторые из перечисленных сервисов:
симметричное шифрование;
шифрование с открытым ключом;
цифровая подпись;
обмен ключами;
защищенный канал передачи (SSL и др.).
Соперационной системой поставляется набор провайдеров, реализующих основные криптографические алгоритмы и отличающихся поддерживаемыми алгоритмами и защищенностью по допустимому размеру используемых ключей
(Microsoft Base Cryptographic Provider, Strong Cryptographic Provider, Enhanced Cryptographic Provider и др.). Этот набор провайдеров может расширяться, в том числе за счет сторонних производителей (например, криптопровайдер КриптоПро CSP российской компании «Крипто-Про» реализует принятые в качестве стандартов в РФ алгоритмы шифрования и цифровой подписи, имеет сертификат соответствия ФСБ России). Для работы в операционных системах Microsoft провайдеры должны иметь цифровую подпись от Microsoft,
10
подтверждающую корректность и надежность их реализации (в частности, такую цифровую подпись имеет КриптоПро CSP).
Прикладное |
|
|
Прикладное |
|
|
Прикладное |
|
Уровень |
приложение |
|
|
приложение |
|
|
приложение |
|
|
|
|
|
|
|
приложений |
|||
1 |
|
|
2 |
|
|
3 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CryptoAPI |
|
|
|
|
|
|
|
|
|||
Advapi32.dll |
|
Сервисы поддержки |
|
|
Системный |
|||
|
|
Crypto API |
|
|
||||
Crypt32.dll |
|
|
|
|
уровень |
|||
операционной системы |
|
|
||||||
|
|
|
||||||
|
|
|
|
|||||
|
|
|
|
|
|
CryptoSPI |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
||
Крипто |
|
|
Крипто |
|
|
Крипто |
|
Уровень |
провайдер |
|
|
провайдер |
|
|
провайдер |
|
|
|
|
|
|
криптопровайдеров |
||||
1 |
|
|
2 |
|
|
3 |
||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
Рис. 2. Архитектура подсистемы поддержки криптопровайдеров
Провайдеры реализуют системный интерфейс CryptoSPI, который используется операционной системой при обращении к реализации криптографических сервисов. В свою очередь операционная система предоставляет прикладным приложениям интерфейс CryptoAPI, через который эти приложения могут использовать криптографические сервисы. Общая архитектура подсистемы поддержки провайдеров криптографических сервисов в операционных системах семейства Windows NT представлена на рис. 2.
Система безопасности .NET Framework реализует расширяемую модель наследования производных классов для программирования криптографических средств. Иерархия классов, реализующих криптографические алгоритмы, имеет следующий вид (см. также рис. 3):
1.Класс типа алгоритма, например SymmetricAlgorithm или HashAlgorithm. Это абстрактный уровень.
2.Класс алгоритма является производным от класса типа алгоритма, например RC2 или SHA1. Это также абстрактный уровень.
11
3. Реализация класса алгоритма, который является производным от класса алгоритма, например RC2CryptoServiceProvider или SHA1Managed. Это полностью реализуемый уровень.
|
|
|
|
|
|
System.Object |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Cryptography Namespace |
|
|||
SymmetricAlgorithm |
|
|
|
HashAlgorithm |
|
AsymmetricAlgorithm |
|
|
||||||||
|
|
|
|
1 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DES |
|
Rijndael |
|
|
MD5 |
SHA1 |
|
|
KeyedHash |
|
RSA |
|
DSA |
|
|
|
|
|
|
|
|
|
|
|
|
|
Algorithm |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
HMAC |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DESCryptoService |
|
MD5CryptoService |
|
|
|
|
|
|
RSACryptoService |
|
|
|
||||
|
|
|
|
|
|
|
|
3 |
|
|||||||
Provider |
|
|
|
Provider |
|
|
|
|
|
|
Provider |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RijndaelManaged |
|
SHA1CryptoService |
|
SHA1Managed |
|
|
DSACryptoService |
|
|||||||
|
|
|
|
|
Provider |
|
|
|
|
|
|
|
Provider |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 3. Иерархия классов, реализующих криптографические алгоритмы
Часть классов криптографических алгоритмов реализованы в рамках
.NET Framework (Managed-классы), другие классы являются оберткой для реализации криптопровайдеров Win32 (CryptoServiceProvider-классы).
Задание
Реализовать утилиту криптографической защиты файлов с использованием библиотеки криптографических средств Microsoft .NET Framework. Утилита должна обеспечивать цифровую подпись и конфиденциальность информации, содержащейся в файле.
Схема защиты файла должна иметь вид:
Файл с |
Цифровая |
|
Сжатие |
|
Шифрование |
Зашифрован |
данными |
подпись |
|
(ZIP) |
|
|
ный файл |
|
|
|
|
|
|
|
12
Схема открытия защищенного файла должна иметь вид:
Зашифрован |
Дешифрование |
|
Распаковка |
|
Проверка |
Файл с |
ный файл |
|
|
(unZIP) |
|
цифровой |
данными |
|
|
|
|
|
подписи |
|
|
|
|
|
|
|
|
Цифровая подпись должна формироваться для хэша файла и присоединяться к файлу перед шифрованием. Функция сжатия может быть реализована по желанию.
При защите файла утилита должна генерировать пару ключей и выгружать открытый ключ в формате XML (соответствующий личный ключ используется при цифровой подписи). Секретный ключ шифрования должен запрашиваться у пользователя.
При открытии файла утилита должна запрашивать у пользователя секретный ключ для дешифрования и открытый ключ в формате XML для проверки цифровой подписи. Утилита должна выводить сообщение о результатах проверки цифровой подписи.
Содержание отчета
1.Титульный лист.
2.Задание.
3.Основные характеристики используемых алгоритмов: размер ключа, хэшкода, блока и т.п..
4.Листинг программы.
5.Тестовые примеры.
5.1.Для случая неизменного зашифрованного файла.
5.2.Для случая изменения зашифрованного файла.
6.Литература.
Контрольные вопросы
1.Способы аутентификации сообщений.
2.Основные способы применения хэш-функций.
3.Общая схема алгоритма хеширования MD5.
13
4.Использование криптосистем с открытым ключом для обеспечения конфиденциальности.
5.Использование криптосистем с открытым ключом для аутентификации и цифровой подписи.
6.Алгоритм RSA.
7.Алгоритм DSA.
8.Алгоритм ГОСТ 34.10-94.
9.Криптосистема Диффи-Хеллмана.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Столингс, В. Криптография и защита сетей: принципы и практика, 2-е изд.: пер. с англ. [Текст] / В. Столингс. – М.: Издательский дом
«Вильямс», 2001. – 672 с.
2.Панасенко, С.П. Алгоритмы шифрования. Специальный справочник
[Текст] / С.П. Панасенко. – СПб.: БХВ-Петербург, 2009. - 576 с.
3.Баричев, С.Г. Основы современной криптографии. [Текст] / С.Г. Баричев, В.В. Гончаров, Р.Е. Серов. – М.: Горячая линия - Телеком, 2001. – 120 с.
4.Нечаев, В.И. Элементы криптографии. Основы теории защиты информации: учеб. пос. [Текст] / В.И. Нечаев. – М.: Высшая школа, 1999.
– 109 с.
5.Шнайер, Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си, 2-е изд. [Текст] / Б. Штайер. – М. Триумф, 2002. – 816 с.
6.Microsoft Software Developer Network – MSDN [Электронный ресурс]. – http://msdn.microsoft.com
7.Сайт КриптоПро CSP [Электронный ресурс]. – http://www.cryptopro.ru/cryptopro/products/csp/default.htm
14
Приложение 1. Варианты алгоритмов для лабораторной работы №2
№ |
Алгоритм |
№ |
Алгоритм |
|
|
|
|
1. |
DES |
11. |
DEAL |
|
|
|
|
2. |
Triple-DES |
12. |
SAFER |
|
|
|
|
3. |
IDEA |
13. |
SERPENT |
|
|
|
|
4. |
Twofish |
14. |
AES (Rijndael) |
|
|
|
|
5. |
Blowfish |
15. |
Skipjack |
|
|
|
|
6. |
RC2 |
16. |
Camellia |
|
|
|
|
7. |
RC5 |
17. |
RC4 |
|
|
|
|
8. |
RC6 |
18. |
SEAL |
|
|
|
|
9. |
CAST-128 |
19. |
WAKE |
|
|
|
|
10. |
ГОСТ 28147-89 |
|
|
|
|
|
|
Приложение 2. Варианты заданий для лабораторной работы №3 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
Алгоритм |
Алгоритм |
Алгоритм |
№ |
Алгоритм |
Алгоритм |
Алгоритм |
|
|
хэширова- |
цифровой |
шифрова- |
|
хэширова |
цифровой |
шифрова- |
|
|
ния |
подписи |
ния |
|
-ния |
подписи |
|
ния |
|
|
|
|
|
|
|
|
|
1. |
MD5 |
RSA |
DES |
11. |
MD5 |
RSA |
|
Rijndael |
|
|
|
|
|
|
|
|
|
2. |
MD160 |
RSA |
DES |
12. |
MD160 |
RSA |
|
Rijndael |
|
|
|
|
|
|
|
|
|
3. |
SHA1 |
RSA |
DES |
13. |
SHA1 |
RSA |
|
Rijndael |
|
|
|
|
|
|
|
|
|
4. |
SHA256 |
RSA |
DES |
14. |
SHA256 |
RSA |
|
Rijndael |
|
|
|
|
|
|
|
|
|
5. |
SHA1 |
DSS |
DES |
15. |
SHA1 |
DSS |
|
Rijndael |
|
|
|
|
|
|
|
|
|
6. |
MD5 |
RSA |
RC2 |
16. |
MD5 |
RSA |
|
Triple-DES |
|
|
|
|
|
|
|
|
|
7. |
MD160 |
RSA |
RC2 |
17. |
MD160 |
RSA |
|
Triple-DES |
|
|
|
|
|
|
|
|
|
8. |
SHA1 |
RSA |
RC2 |
18. |
SHA1 |
RSA |
|
Triple-DES |
|
|
|
|
|
|
|
|
|
9. |
SHA256 |
RSA |
RC2 |
19. |
SHA256 |
RSA |
|
Triple-DES |
|
|
|
|
|
|
|
|
|
10. |
SHA1 |
DSS |
RC2 |
20. |
SHA1 |
DSS |
|
Triple-DES |
|
|
|
|
|
|
|
|
|
15
МЕТОДЫ И СРЕДСТВА КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ИНФОРМАЦИИ
Методические указания к проведению лабораторных работ по курсу «Методы и средства защиты компьютерной информации»
Владимир Александрович Алексеев
Редактор Е.Н. Черникова |
|
|
Подписано в печать |
. Формат 60х84 1/16. Бумага офсетная. |
|
Ризография. Печ. л. 1,0. Тираж 100 экз. Заказ № |
. |
|
Издательство Липецкого государственного технического университета. Полиграфическое подразделение Издательства ЛГТУ.
398600, Липецк, ул. Московская, 30.
16
