Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PoIRoCSaN_Lab_1.4.doc
Скачиваний:
3
Добавлен:
18.02.2023
Размер:
460.29 Кб
Скачать

ПОЛОЦКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра вычислительных систем и сетей

Методические указания для выполнения лабораторной работы № 1.4 по курсу «Защита информационных ресурсов компьютерных систем и сетей»

На тему: «Шифрование в C#»

ассистент кафедры ВСиС

Составитель: Матюш М.В.

Полоцк, 2012

Содержание

Цель работы 3

Общие сведения 3

Ход работы 14

Цель работы

Получить практические навыки шифрования данных в среде .NET.

Общие сведения

Получить справку в MSDN вида (только на английском языке):

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

Классы

Класс

Описание

Aes

Абстрактный базовый класс, от которого должны наследоваться все реализации стандарта AES (Advanced Encryption Standard).

AesCryptoServiceProvider

Выполняет симметричное шифрование и дешифрование с помощью реализации CAPI алгоритма симметричного шифрования AES.

AesManaged

Предоставляет управляемую реализацию алгоритма симметричного шифрования AES.

AsnEncodedData

Представляет данные в кодировке ASN.1.

AsnEncodedDataCollection

Представляет коллекцию объектов AsnEncodedData.Этот класс не наследуется.

AsnEncodedDataEnumerator

Предоставляет возможность перемещения по объекту AsnEncodedDataCollection.Этот класс не наследуется.

AsymmetricAlgorithm

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

AsymmetricKeyExchangeDeformatter

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

AsymmetricKeyExchangeFormatter

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

AsymmetricSignatureDeformatter

Представляет абстрактный базовый класс, из которого создаются все реализации классов проверки подписи.

AsymmetricSignatureFormatter

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

CngAlgorithm

Инкапсулирует имя алгоритма шифрования.

CngAlgorithmGroup

Инкапсулирует имя группы алгоритмов шифрования.

CngKey

Определяет базовую функциональность для ключей, используемых объектами криптографии следующего поколения (CNG).

CngKeyBlobFormat

Задает формат большого двоичного объекта ключа для использования с объектами Microsoft CNG.

CngKeyCreationParameters

Содержит дополнительные свойства для создания ключа.

CngPropertyCollection

Предоставляет строго типизированный набор свойств CNG.

CngProvider

Инкапсулирует имя поставщика хранилища ключей (KSP), используемое с объектами криптографии следующего поколения (CNG).

CngUIPolicy

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

CryptoAPITransform

Выполняет криптографическое преобразование данных.Этот класс не наследуется.

CryptoConfig

Обращается к сведениям о криптографической конфигурации.

CryptographicAttributeObject

Содержит тип и коллекцию значений, связанных с этим типом.

CryptographicAttributeObjectCollection

Содержит набор объектов CryptographicAttributeObject.

CryptographicAttributeObjectEnumerator

Предоставляет функциональность перечисления для коллекции CryptographicAttributeObjectCollection.Этот класс не наследуется.

CryptographicException

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

CryptographicUnexpectedOperationException

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

CryptoStream

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

CspKeyContainerInfo

Предоставляет дополнительные сведения о паре криптографических ключей.Этот класс не наследуется.

CspParameters

Содержит параметры, передаваемые поставщику служб шифрования (CSP), который выполняет криптографические вычисления.Этот класс не наследуется.

DataProtector

Предоставляет базовый класс для предохранителей данных.

DeriveBytes

Абстрактный базовый класс, от которого наследуются все классы, получающие последовательности байтов заданной длины.

DES

Представляет базовый класс для алгоритма DES, из которого создаются все реализации DES.

DESCryptoServiceProvider

Определяет объект-оболочку для доступа к версии алгоритма DES, предоставляемой поставщиком служб шифрования (CSP).Этот класс не наследуется.

DpapiDataProtector

Предоставляет простые методы защиты данных.

DSA

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

DSACryptoServiceProvider

Определяет объект-оболочку для доступа к реализации алгоритма DSA, предоставляемой поставщиком служб шифрования (CSP).Этот класс не наследуется.

DSASignatureDeformatter

Проверяет подпись, созданную по алгоритму PKCS 1 v1.5 DSA (DSA).

DSASignatureFormatter

Создает подпись DSA.

ECDiffieHellman

Предоставляет абстрактный базовый класс, из которого создаются реализации алгоритма Диффи-Хеллмана на эллиптических кривых (ECDH).Этот класс предоставляет базовый набор операций, которые должны поддерживать все реализации алгоритма ECDH.

ECDiffieHellmanCng

Предоставляет реализацию CNG алгоритма Диффи-Хеллмана на эллиптических кривых (ECDH).Этот класс используется для выполнения криптографических операций.

ECDiffieHellmanCngPublicKey

Задает открытый ключ алгоритма Диффи-Хеллмана на эллиптических кривых (ECDH) для использования с классом ECDiffieHellmanCng.

ECDiffieHellmanPublicKey

Абстрактный базовый класс, от которого должны наследоваться все реализации ECDiffieHellmanCngPublicKey.

ECDsa

Предоставляет абстрактный базовый класс, инкапсулирующий алгоритм цифровой подписи DSA на эллиптических кривых (Elliptic Curve Digital Signature Algorithm, ECDSA).

ECDsaCng

Обеспечивает реализацию CNG алгоритма цифровой подписи DSA на эллиптических кривых (Elliptic Curve Digital Signature Algorithm, ECDSA).

FromBase64Transform

Преобразует поток CryptoStream из кодировки base64.

HashAlgorithm

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

HMAC

Абстрактный класс, от которого должны наследоваться все реализации хэш-кода проверки подлинности сообщения (HMAC).

HMACMD5

Вычисляет Хэш-основанный код проверки подлинности сообщения (HMAC) с помощью MD5 хэш-функция.

HMACRIPEMD160

Вычисляет Хэш-основанный код проверки подлинности сообщения (HMAC) с помощью RIPEMD160 хэш-функция.

HMACSHA1

Вычисляет хэш-код проверки подлинности сообщения (HMAC) с помощью хэш-функции SHA1.

HMACSHA256

Вычисляет хэш-код аутентификации сообщения (HMAC) с помощью хэш-функции SHA256.

HMACSHA384

Вычисляет хэш-код проверки подлинности сообщения (HMAC) с помощью хэш-функции SHA384.

HMACSHA512

Вычисляет хэш-код проверки подлинности сообщения (HMAC) с помощью хэш-функции SHA512.

KeyedHashAlgorithm

Представляет абстрактный класс, из которого создаются все реализации хэш-алгоритмов с ключом.

KeySizes

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

MACTripleDES

Вычисляет код проверки подлинности сообщения (MAC) с помощью алгоритма TripleDES для входных данных CryptoStream.

ManifestSignatureInformation

Предоставляет информацию о подписи манифеста.

ManifestSignatureInformationCollection

Представляет коллекцию объектов ManifestSignatureInformation, доступную только для чтения.

MaskGenerationMethod

Абстрактный класс, от которого должны наследоваться все алгоритмы создания масок.

MD5

Представляет абстрактный класс, от которого наследуются все реализации хэш-алгоритма MD5.

MD5Cng

Предоставляет реализацию CNG алгоритма MD5 (Message Digest 5) для формирования 128-разрядных хэш-значений.

MD5CryptoServiceProvider

Вычисляет значение хэша MD5 для входных данных с помощью реализации, предоставляемой поставщиком служб шифрования (CSP).Этот класс не наследуется.

Oid

Представляет идентификатор криптографического объекта.Этот класс не наследуется.

OidCollection

Представляет коллекцию объектов Oid.Этот класс не наследуется.

OidEnumerator

Предоставляет возможность перемещения по объекту OidCollection.Этот класс не наследуется.

PasswordDeriveBytes

Формирует ключ из пароля с помощью расширения алгоритма PBKDF1.

PKCS1MaskGenerationMethod

Вычисляет маски, соответствующие стандарту PKCS #1, для использования алгоритмами обмена ключами.

ProtectedData

Предоставляет методы для шифрования и расшифровки данных.Этот класс не наследуется.

ProtectedMemory

Предоставляет методы для защиты данных, хранящихся в оперативной памяти, и снятия защиты с них.Этот класс не наследуется.

RandomNumberGenerator

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

RC2

Представляет базовый класс, из которого создаются все реализации алгоритма RC2.

RC2CryptoServiceProvider

Определяет объект-оболочку для доступа к реализации алгоритма RC2, предоставляемой поставщиком служб шифрования (CSP).Этот класс не наследуется.

Rfc2898DeriveBytes

Реализует функцию формирования ключа на основе пароля (PBKDF2) с использованием генератора псевдослучайных чисел HMACSHA1.

Rijndael

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

RijndaelManaged

Осуществляет доступ к управляемой версии алгоритма Rijndael.Этот класс не наследуется.

RijndaelManagedTransform

Выполняет криптографическое преобразование данных с помощью алгоритма Rijndael.Этот класс не наследуется.

RIPEMD160

Представляет абстрактный класс, от которого наследуются все реализации хэш-алгоритма MD160.

RIPEMD160Managed

Вычисляет хэш RIPEMD160 для входных данных с помощью управляемой библиотеки.

RNGCryptoServiceProvider

Реализует криптографический генератор случайных чисел, используя реализацию, предоставляемую поставщиком служб шифрования (CSP).Этот класс не наследуется.

RSA

Базовый класс, от которого наследуются все реализации алгоритма RSA.

RSACryptoServiceProvider

Выполняет зашифрование и расшифрование с помощью реализации асимметричного алгоритма RSA, предоставляемого поставщиком служб шифрования (CSP).Этот класс не наследуется.

RSAOAEPKeyExchangeDeformatter

Выполняет расшифрование данных обмена ключами, зашифрованных с использованием заполнения OAEP.

RSAOAEPKeyExchangeFormatter

Создает данные обмена ключами, используя заполнение OAEP и алгоритм RSA.

RSAPKCS1KeyExchangeDeformatter

Выполняет расшифрование данных обмена ключами по стандарту PKCS 1.

RSAPKCS1KeyExchangeFormatter

Создает данные обмена ключами по стандарту PKCS 1 с помощью RSA.

RSAPKCS1SignatureDeformatter

Проверяет подпись RSA PKCS 1 версии 1.5.

RSAPKCS1SignatureFormatter

Создает подпись RSA PKCS 1 версии 1.5.

SHA1

Вычисляет хэш SHA1 для входных данных.

SHA1Cng

Предоставляет реализацию CNG алгоритма SHA.

SHA1CryptoServiceProvider

Вычисляет значение хэша SHA1 для входных данных с помощью реализации, предоставляемой поставщиком служб шифрования (CSP).Этот класс не наследуется.

SHA1Managed

Вычисляет хэш SHA1 для входных данных с помощью управляемой библиотеки.

SHA256

Вычисляет хэш SHA256 для входных данных.

SHA256Cng

Предоставляет реализацию CNG алгоритма SHA для формирования 256-разрядных хэш-значений.

SHA256CryptoServiceProvider

Определяет объект-оболочку для доступа к реализации алгоритма SHA256, предоставляемой поставщиком служб шифрования (CSP).

SHA256Managed

Вычисляет хэш SHA256 для входных данных с помощью управляемой библиотеки.

SHA384

Вычисляет хэш SHA384 для входных данных.

SHA384Cng

Предоставляет реализацию CNG алгоритма SHA для формирования 384-разрядных хэш-значений.

SHA384CryptoServiceProvider

Определяет объект-оболочку для доступа к реализации алгоритма SHA384, предоставляемой поставщиком служб шифрования (CSP).

SHA384Managed

Вычисляет хэш SHA384 для входных данных с помощью управляемой библиотеки.

SHA512

Вычисляет хэш SHA512 для входных данных.

SHA512Cng

Предоставляет реализацию CNG алгоритма SHA для формирования 512-разрядных значений хэша.

SHA512CryptoServiceProvider

Определяет объект-оболочку для доступа к реализации алгоритма SHA512, предоставляемой поставщиком служб шифрования (CSP).

SHA512Managed

Вычисляет хэш SHA512 для входных данных с помощью управляемой библиотеки.

SignatureDescription

Содержит сведения о свойствах цифровой подписи.

StrongNameSignatureInformation

Содержит сведения о подписи строгого имени для манифеста.

SymmetricAlgorithm

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

ToBase64Transform

Преобразует CryptoStream в кодировку base64.

TripleDES

Представляет базовый класс для алгоритмов Triple DES, из которого создаются все реализации TripleDES.

TripleDESCryptoServiceProvider

Определяет объект-оболочку для доступа к реализации алгоритма TripleDES, предоставляемой поставщиком служб шифрования (CSP).Этот класс не наследуется.

Структуры

Структура

Описание

CngProperty

Инкапсулирует свойство ключа или поставщика CNG.

DSAParameters

Содержит типичные параметры для алгоритма DSA.

RSAParameters

Представляет стандартные параметры для алгоритма RSA.

Интерфейсы

Интерфейс

Описание

ICryptoTransform

Определяет основные операции криптографических преобразований.

ICspAsymmetricAlgorithm

Определяет методы, позволяющие классу AsymmetricAlgorithm получать информацию о контейнере ключей, а также импортировать и экспортировать большие двоичные объекты ключа, совместимые с интерфейсом Microsoft Cryptographic API (CAPI).

Перечисления

Перечисление

Описание

CipherMode

Задает режим блочного шифра для использования при шифровании.

CngExportPolicies

Задает политики экспорта для ключа.

CngKeyCreationOptions

Задает параметры создания ключа.

CngKeyHandleOpenOptions

Задает параметры открытия дескрипторов ключа.

CngKeyOpenOptions

Задает параметры открытия ключа.

CngKeyUsages

Задает криптографические операции, в которых может использоваться ключ CNG.

CngPropertyOptions

Задает параметры свойств ключа CNG.

CngUIProtectionLevels

Задает уровень защиты ключа в скриптах запроса пользовательского интерфейса.

CryptoStreamMode

Задает режим доступа к криптографическому потоку.

CspProviderFlags

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

DataProtectionScope

Задает область защиты данных, которая устанавливается с помощью метода Protect.

ECDiffieHellmanKeyDerivationFunction

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

ECKeyXmlFormat

Определяет форматы сериализации ключей на эллиптических кривых в XML.

FromBase64TransformMode

Определяет, требуется ли игнорировать пустое пространство при преобразовании в кодировку base64.

KeyNumber

Задает тип ключа для создания — ассиметричный ключ подписи или ассиметричный ключ обмена.

MemoryProtectionScope

Задает область защиты памяти, которая устанавливается с помощью метода Protect.

OidGroup

Определяет группы идентификаторов объекта (oid) шифрования windows.

PaddingMode

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

SignatureVerificationResult

Задает большинство кодов результата для проверки подписи.

Далее в зависеммости от варианта переходить по сслкам смотреть примеры нужных алгоритмов.