Интернет магазин китайских планшетных компьютеров



Компьютеры - Криптосервисы .NET Framework

28 апреля 2011


Оглавление:
1. Криптосервисы .NET Framework
2. Алгоритмы шифрования
3. Обмен симметричными ключами
4. Хэширующие алгоритмы
5. Цифровая подпись
6. Ограничения



Введение

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

Пространство имен Cryptography

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

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

Элемент Описание
Алгоритмы шифрования Набор классов, применяемых для реализации алгоритмов симметричного и асимметричного шифрования, а также хэширования
Вспомогательные классы Классы, обеспечивающие генерацию случайных чисел, выполнение преобразований, взаимодействие с хранилищем CryptoAPI и само шифрование на основе потоковой модели
Сертификаты Х.509 Классы, определенные в пространстве имен System.Security.Сrуptographу. Х509Certificates и представляющие цифровые сертификаты
Цифровые подписи XML Классы, определенные в пространстве имен System.Cryptography.Xml и представляющие цифровые подписи в XML-документах

Табл. 1. Основные элементы пространства имен Cryptography

К именам неуправляемых реализаций обычно добавляется суффикс «CryptoServiceProvider», указывающий на то, что данная реализация на самом деле предоставляется криптопровайдером, который установлен на уровне операционной системы и действует как оболочка CryptoAPI.

В имена управляемых реализаций включается суффикс «Managed». Такие реализации не опираются на CryptoAPI и содержат исключительно управляемый код.

При создании экземпляра одного из конкретных классов исходные конструкторы всегда записывают в параметры объекта разумные и безопасные значения. Так, алгоритмы асимметричного шифрования, опирающиеся на криптографию с открытым ключом, генерируют случайную пару ключей, а алгоритмы симметричного шифрования — случайный ключ и вектор инициализации; при этом они автоматически настраивают такие свойства, как Mode и Padding. Более того, алгоритмы второго типа по умолчанию стараются использовать «стойкие» значения.

Второй основной набор классов в пространстве имен System.Security.Cryptography включает как классы, реально применяемые в процессе шифрования и расшифровки данных, так и разнообразные вспомогательные классы. Это пространство имен содержит, например, абстрактный класс RandomNumberGenerator, от которого наследуют классы RNGCryptoServiceProvider, ToBase64Transform и FromBase64Transform.

Пространство имен Cryptography не только предоставляет алгоритмы шифрования, но и содержит дочернее пространство имен Х509Certificates. Последнее объединяет всего три класса, предназначенных для операций с сертификатами Authenticode X.509 v.3. Класс X509Certificate предоставляет статические методы CreateFromCertFile и CreateFromSignedFile для создания экземпляра сертификата:

X509Certificate с = X509Certificate.CreateFromCertFile;
Console.WriteLine;
Console.WriteLine;
Console.WriteLine;
Console.WriteLine;

В пространстве имен Cryptography также присутствует дочернее пространство имен XML, используемое системой защиты .NET Framework для цифровой подписи XML-объектов в соответствии с проектом WSC-спецификации по синтаксису и обработке XML-подписей.



Просмотров: 3236


<<< Криптос
Криптосистема >>>