Криптографические средства Microsoft .NET

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

Российский Государственный Социальный Университет

Факультет Информационных Технологий

Кафедра информационной безопасности

 

 

 

 

 

 

 

Курсовой проект

 

Дисциплина: Программно-аппаратная защита информации

Тема: Криптографические средства Microsoft .NET

 

 

 

Выполнил:

студент группы КЗИ-Д-4

Левин А.А.

Проверил:

Хорев П.Б.

 

 

 

 

 

 

Москва

 

Введение

.NET Framework - управляемая среда для разработки и исполнения приложений, обеспечивающая контроль типов. Среда контролирует все аспекты выполнения программы: выделяет память, отвечает за освобождение или повторное использование ресурсов, а также разрешает или запрещает программе выполнять те или иные действия. Microsoft .NET Framework состоит из двух основных компонент: библиотеки классов .NET Framework (FCL) и общеязыковой исполняемой среды (CLR - common language runtime). Основная задача CLR - выполнение программ. Среда отвечает за базовые функции, такие как компиляция кода, выделение памяти, управление потоками, проверка разрешений. Кроме того, CLR выполняет строгую проверку типов.

Библиотека классов .NET Framework содержит огромный набор классов. Типы из библиотеки являются полностью объектно-ориентированными и обеспечивают бесшовную интеграцию приложений, написанных на .NET Framework.

В Microsoft .NET Framework Class Library (FCL) существует достаточно большое число классов, созданных для криптографической защиты данных. По сравнению с Microsoft .NET Framework 1.1 версия 2.0 содержит гораздо большее число классов для поддержки использования криптографии с открытым ключом и инфраструктуры открытых ключей.

Библиотека классов в Microsoft .NET Framework организована в виде пространств имен. Пространство имен - это логическая группа, объединяющая типы со сходной функциональностью. Например, классы для работы с разрешениями на доступ, криптографией и защитой по правам доступа к коду находятся в пространстве имен System.Security.Все пространства имен библиотеки классов .NET Framework организованы в виде иерархической структуры. Корневым пространством имен является пространство имен System.

1. Обзор криптографических классов библиотеки Framework Class Libr

 

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

В пространстве имен System.Security.Cryptography содержатся вложенные пространства имен Xml и X509Certificates. Пространство имен System.Security. Cryptography.Xml включает классы, связанные с защитой Xml данных. Например, в нем присутствуют классы поддержки стандартов Xml Digital Signature и Xml Encryption.

В Microsoft .NET Framework существуют три основных разновидности криптографических классов:

-Симметричные алгоритмы шифрования

-Асимметричные алгоритмы шифрования и подписи

Алгоритмы вычисления значения хеша данных

В Microsoft .NET Framework 2.0 реализованы симметричные алгоритмы шифрования DES, Rijndael(AES), RC2, RC4. Асимметричные алгоритмы представлены только RSA и DSA. Из алгоритмов вычисления хеша данных реализованы SHA1, SHA256, MD5, MD4 и др. (Из вышеперечисленных алгоритмов DES, Rijndael(AES), RC2; RSA и DSA; SHA1, SHA256, MD5 реализованы в виде отдельных классов)

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

Тип алгоритма (классы первого уровня).

Класс алгоритма (классы второго уровня). Данные классы наследуются от классов первого уровня.

На последнем уровне находятся классы, реализующие сами алгоритмы. Они наследуются от классов второго уровня.

Примерами классов первого уровня являются AsymmetricAlgorithm или HashAlgorithm. Классами второго уровня являются RSA или SHA1. Классы третьего уровня реализуют сами алгоритмы. В качестве примера можно привести классы RSACryptoServiceProvider или SHA1Managed. При этом класс RSACryptoServiceProvider, как следует из названия, обращается к криптографическому провайдеру, а класс SHA1Managed полностью реализован на управляемом коде. Таким образом, класс SHA1Managed наследуется от класса SHA1, который, в свою очередь, наследуется от класса HashAlgorithm. Такое устройство библиотеки дает широчайшие возможности по работе с криптографическими алгоритмами, позволяя обеспечить совместимость интерфейсов различных реализаций одного и того же криптографического алгоритма.

 

1.1 Классы алгоритмов симметричного шифрования

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

Классы блочных шифров, являющиеся производными класса SymmetricAlgorithm, используют режим сцепления, называемый сцеплением блоков шифртекста, в котором для осуществления криптографических преобразований данных используются ключ (Key) и вектор инициализации (IV). Чтобы расшифровать данные, зашифрованные с помощью одного из классов SymmetricAlgorithm, необходимо задать для свойств Key и IV значения, которые использовались при зашифровании. Для безопасного использования алгоритма симметричного шифрования необходимо, чтобы секретный ключ знали только отправитель и пол?/p>