Cryptography Мир
Криптографическая . разработана с учетом этих требований. . включает набор криптографических сервисов, расширяющих аналогичные сервисы Windows через . Пространство имен System. общеязыковой исполняющей среды ( , ) в Microsoft .NET открывает программный доступ к самым разнообразным . (например, для поддержки ). Пространство имен System. разделено между двумя mscorlib. и System., причем mscorlib. неявно подключается по умолчанию и предоставляет классы с алгоритмами таких операций, как шифрование и создание хешей, а дополнительно подключаемая System. позволяет получить доступ к функциональности, связанной с -подписью, модификацией (Windows ), использованием интерфейса , созданием кодов HMAC ) и др.
Пространство имен System. включает дочерние пространства имен ( , X509Certificates, ) [10.3], включающего два уровня HashAlgorithm ). От базового SHA1 ( Secure ) представляет собой производный от HashAlgorithm класс и содержит методы и свойства, специфичные для алгоритма SHA1. Наконец, сама реализация алгоритма является производной от класса второго уровня; именно ее экземпляр создается и используется клиентским приложением. Криптографические библиотеки, прилагаемые к . и 3.0, предоставляют множество управляемых реализаций алгоритмов, а также классы-"обертки" для встроенных реализаций из . К именам неуправляемых реализаций обычно добавляется CryptoServiceProvider " (например, SHAlCryptoServiceProvider ), указывающий на то, что данная реализация на самом деле предоставляется Managed " (например, SHAlManaged ). Такие реализации не опираются на и содержат исключительно управляемый код.
Наличие общего свойство LegalKeySizes вернет значения 128, 192, и 256, соответствующие разрядности ключей, для которых определен данный криптоалгоритм; метод IsWeakKey TripleDES позволяет получить информацию о криптостойкости
| Категория | Описание |
|---|---|
| Набор классов, применяемых для реализации алгоритмов |
|
| Вспомогательные классы | Классы, обеспечивающие генерацию криптографически стойких последовательностей псевдослучайных чисел, выполнение преобразований, взаимодействие с хранилищем и шифрование на основе |
Сертификаты X.509 |
Классы, определенные в пространстве имен System. и предоставляющие NET 2.0 ) классы для доступа к Windows |
Цифровые подписи |
Классы, определенные в пространстве имен System. и предоставляющие цифровые подписи в -документах в соответствии со стандартами, опубликованными консорциумом |
/ |
Начиная с версии .NET 2.0, осуществляется управляемая поддержка упакованных / - - синтаксис криптографических сообщений, Public-Key - стандарт |
Расширения криптографической объектной модели могут быть двух типов [10.5]:
.NET Framework ;Чтобы добавить поддержку нового типа алгоритмов, необходимо создать новый SymmetricAlgorithm, AsymmetricAlgorithm или HashAlgorithm. Затем нужно определить набор свойств и методов, общих для всех реализаций алгоритмов. Добавить новую реализацию в . просто - для этого нужно создать класс-наследник
(рис 10.1) Алгоритмы хеширования: иерархия классовВ некотором смысле работа с значительно проще, чем работа с управляемыми криптографическими классами, поскольку приходится заботиться о меньшем числе . по умолчанию используют неподходящие свойства алгоритма, что может привести к неполадкам. Чтобы этого избежать, необходимо установить соответствие между каждым отдельным свойством ключа и его управляемого эквивалента [10.6]. При выполнении и ., следует помнить о следующих . SymmetricAlgorithm: BlockSize, IV, Key, KeySize, и . Даже небольшая неправильность в одном из них приведет к сбоям. Обеспечение
Microsoft работает над следующей версией под кодовым названием "Orcas" (на момент написания статьи доступна версия ) и новой версией . [10.6]. В среду . включен ряд новых реализаций алгоритмов, основанных на ; к ним относятся некоторые алгоритмы , обеспечивающих хранение ключей. Кроме того, . предоставляет более развитые возможности взаимодействия между встроенным и
использует модель программирования, основанную на . позволяет реализовать такие преобразования с использованием класса CryptoStream и объектов, реализующих интерфейс ICryptoTransform. Класс CryptoStream унаследован от System.IO..
Модель ICryptoTransform представлена на рис. 10.2. ICryptoTransform соответствует математическому преобразованию над блоком данных фиксированной длины - например, шифрованию
(рис 10.2) Модель ICtyptoTransformВсе классы криптоалгоритмов включают методы для создания объектов, реализующих интерфейс ICryptoTransform. В частности, SymmetricAlgorithm имеет два метода - CreateEncryptor () и CreateDecryptor (), которые позволяют создать объект ICryptoTransform на базе ключевого материала,
Преобразование реализуется посредством "заворачивания" входного ICryptoTransform с использованием класса CryptoStream. На рис. 10.3 [10.5] представлен CryptoStream. CryptoStream сам по себе является ICryptoTransform к CryptoStream использует буферизованный доступ, позволяя выполнять шифрование, не заботясь о размере блока для конкретного алгоритма.
(рис 10.3) Схема работы с потокамиКачественный ключ, предназначенный для использования в рамках симметричной модуль
Генераторы случайных чисел - место, в котором часто ломаются
Рассмотрим понятие криптографически стойкого генератора псевдослучайных кодов, или, для краткости, псевдослучайного генератора, которое было введено Блюмом и Микали [10.10]. Пусть $$g : \{0, 1\}^n \to \{0,1\}^{q(n)} $$ - функция, вычислимая за полиномиальное от n время, $$q(n) $$ - некоторый
Лучший способ генерации множества случайных используют в качестве начальной информации для генерации криптографически стойкой последовательности набор случайных значений, получаемых из разных частей операционной системы (см. [10.5]). Более высокое качество формирования . обеспечивают возможность использования таких
В объектной модели . классы, реализующие функциональность RandomNumberGenerator. По умолчанию в качестве реализации класса RandomNumberGenerator используется класс RNGCryptoServiceProvider, который является оболочкой псевдослучайного генератора, предоставляемого Windows по [10.15]. В отличие от класса System.Random в . или функций rand () и random () в библиотеке языка C, псевдослучайный не создает воспроизводимых последовательностей. Иначе говоря, невозможно создать несколько экземпляров класса RNGCryptoServiceProvider, которые будут возвращать одинаковые последовательности псевдослучайных чисел.
Во многих приложениях пользователи хотели бы иметь возможность выполнять криптографические операции с использованием пароля в качестве ключа PasswordDeriveBytes . реализует алгоритм, который является расширением алгоритма PBKDF 1, описанного в стандарте Salt, количество итераций и тип алгоритма Salt связан в основном с процессом Salt и в результате возвращает последовательность байтов, пройдя указанное количество итераций.
Рассмотрены основные элементы пространства имен . Изучены принципы работы с NET.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.