- •Методические указания
- •Лабораторная работа №1 Инициализация дескриптора криптопровайдера
- •Лабораторная работа №2 Хеширование
- •Лабораторная работа №3 Создание контейнеров и генерация ключей
- •Лабораторная работа №4 Шифрование и дешифрование
- •Лабораторная работа №5 Создание и проверка цифровой подписи
- •Приложения Приложение 1. Криптографические типы данных
- •Приложение 2. Идентификаторы типов криптопровайдеров
- •Приложение 3. Идентификаторы имен криптопровайдеров
- •Приложение 4. Идентификаторы алгоритмов шифрования
- •Приложение 5. Идентификаторы алгоритмов цифровой подписи
- •Приложение 6. Идентификаторы алгоритмов хеширования
- •Приложение 7. Идентификаторы алгоритмов обмена ключами
- •Библиографический список
- •Содержание
- •Методические указания
- •394026 Воронеж, Московский просп., 14
Приложения Приложение 1. Криптографические типы данных
ALG_ID
Этот тип данных предполагает хранение идентификатора криптографического алгоритма. Большинство функций Crypto API не содержат параметров с таким типом. Тип данных определен в заголовочном файле Wincrypt.h:
typedef unsigned int ALG_ID; |
HCRYPTHASH
Этот тип данных представляет собой дескриптор хеш-объектов. Он может передаваться криптопровайдеру для выполнения какой-либо конкретной операции с ним. При этом криптопровайдеру не разрешено прямое манипулирование хеш-объектом – вместо него используется дескриптор хеш-объекта. Тип данных определен в заголовочном файле Wincrypt.h:
typedefunsignedlong HCRYPTHASH; |
HCRYPTKEY
Этот тип данных представляет собой дескриптор объекта ключей. Он может передаваться криптопровайдеру для выполнения какой-либо конкретной операции с ним. При этом криптопровайдеру не разрешено прямое обращение к ключу – вместо этого используется дескриптор ключа. Тип данных определен в заголовочном файле Wincrypt.h:
typedefunsignedlong HCRYPTKEY; |
HCRYPTPROV
Этот тип данных представляет собой дескриптор криптопровайдера. Он указывает, какой именно криптопровайдер будет вызван для выполнения криптографических функций. Тип данных определен в файле Wincrypt.h:
typedefunsignedlong HCRYPTPROV; |
Приложение 2. Идентификаторы типов криптопровайдеров
Таблица.П1
Идентификаторы типов криптопровайдеров
Идентификатор типа криптопровайдера |
Алгоритмы обмена ключами |
Алгоритмы цифровой подписи |
Алгоритмы шифрования |
Алгоритмы хеширования |
PROV_RSA_FULL |
RSA |
RSA |
RC2, RC4 |
MD5, SHA |
PROV_RSA_AES |
RSA |
RSA |
RC2, RC4, AES |
MD5, SHA |
PROV_RSA_SIG |
нет |
RSA |
нет |
MD5, SHA |
PROV_RSA_SCHANNEL |
RSA |
RSA |
RC4, DES, 3DES |
MD5, SHA |
PROV_DSS |
нет |
DSS |
нет |
MD5, SHA |
PROV_DH_SCHANNEL |
Diffie-Hellman |
DSS |
DES, 3DES |
MD5, SHA |
Продолжение табл. П1 |
||||
Идентификатор типа криптопровайдера |
Алгоритмы обмена ключами |
Алгоритмы цифровой подписи |
Алгоритмы шифрования |
Алгоритмы хеширования |
PROV_DH_SCHANNEL |
Diffie-Hellman |
DSS |
DES, 3DES |
MD5, SHA |
PROV_FORTEZZA |
KEA |
DSS |
Skipjack |
SHA |
PROV_MS_EXCHANGE |
RSA |
RSA |
CAST |
MD5 |
PROV_SSL |
RSA |
RSA |
могут быть различными |
могут быть различными |
Приложение 3. Идентификаторы имен криптопровайдеров
Таблица П2
Идентификаторы имен криптопровайдеров
Идентификатор имени криптопровайдера |
Имя криптопровайдера |
Идентификатор типа криптопровайдера |
MS_DEF_ PROV |
MicrosoftBase CryptographicProvider |
PROV_RSA_FULL |
MS_STRONG_PROV |
MicrosoftStrong CryptographicProvider |
PROV_RSA_FULL |
MS_ENHANCED_PROV |
MicrosoftEnhanced CryptographicProvider |
PROV_RSA_FULL |
MS_ENH_RSA_AES_PROV |
Microsoft AES CryptographicProvider |
PROV_RSA_AES |
MS_DEF_DSS_PROV |
Microsoft DSS CryptographicProvider |
PROV_DSS |
MS_DEF_DSS_DH_PROV |
Microsoft Base DSS and Diffie-Hellman Cryptographic Provider |
PROV_DSS_DH |
|
||
Продолжение табл. П 1. |
||
Идентификатор имени криптопровайдера |
Имя криптопровайдера |
Идентификатор типа криптопровайдера |
MS_ENH_DSS_DH_PROV |
Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider |
PROV_DSS_DH |
MS_DEF_DH_SCHANNEL_PROV |
Microsoft DSS and Diffie-Hellman/Schannel Cryptographic Provider |
PROV_DH_ SCHANNEL |
MS_DEF_RSA_SCHANNEL_PROV |
Microsoft RSA/Schannel Cryptographic Provider |
PROV_RSA_ SCHANNEL |
MS_DEF_RSA_SIG_PROV |
Microsoft RSA Signature Cryptographic Provider |
PROV_RSA_SIG |