Лекция
Привет, Вы узнаете о том , что такое cryptoapi ос windows, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое cryptoapi ос windows , настоятельно рекомендую прочитать все из категории Криптография и криптоанализ, Стеганография и Стегоанализ.
Windows предоставляет программный интерфейс CryptoAPI для кодирования информации по различным алгоритмам, как симметричным, так и асимметричным. CryptoAPI – это интерфейс прикладного программирования (API – Application Programming Interface) в операционной системе Windows, предоставляющий службы шифрования для операционной системы и приложений, работающих под ее управлением. Он содержит ряд функций, позволяющих приложениям шифровать данные и ставить цифровую подпись различными способами, обеспечивая защиту личных ключей. Однако, сами функции CryptoApi не выполняют никаких криптографических действий, а служат лишь посредниками между прикладной программой и CSP (Cryptographic Service Provider – поставщик службы шифрования). Программная часть криптопровайдера представляет собой dll-файл с функциями поддержки шифрования. Криптопровайдеры отличаются друг от друга составом функций, требованиями к оборудованию, алгоритмами, осуществляющими базовые действия (создание ключей, хеширование и пр.). По составу функций и обеспечивающих их алгоритмов криптопровайдеры подразделяются на типы. Об этом говорит сайт https://intellect.icu . Например, любой CSP типа PROV_RSA_FULL поддерживает как шифрование, так и цифровые подписи, использует для обмена ключами и создания подписей алгоритм RSA, для шифрования — алгоритмы RC2 и RC4, а для хеширования - MD5 и SHA.
В зависимости от версии операционной системы состав установленных криптопровайдеров может существенно изменяться. Однако на любом компьютере с Windows можно найти Microsoft Base Cryptographic Provider, относящийся к типу PROV_RSA_FULL. Именно с этим провайдером по умолчанию будут взаимодействовать все программы. Пользователь имеет возможность приобрести CSP другого производителя, тогда функции CryptoAPI будут работать с программами этого CSP. Пример использования функций CryptoAPI для кодирования файла симметричным алгоритмом RC4 приведен в листинге 2.
Листинг 2. Использование функций CryproAPI для кодирования файла
HCRYPTPROV hProv;
//Подключаемся к криптопровайдеру типа PROV_RSA_FULL
if(!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,0))
{
puts("Ошибка инициализации CSP";
return;
}
//Открываем входной и выходной файл
HANDLE hInFile;
hInFile=CreateFile("d:\\NS.doc", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
HANDLE hOutFile;
hOutFile=CreateFile("d:\\crypt", GENERIC_WRITE, FILE_SHARE_READ, NULL,CREATE_ALWAYS, 0, NULL);
HCRYPTKEY hKey;
//генерируем сессионный ключ для RC4
if(!CryptGenKey(hProv,CALG_RC4,CRYPT_EXPORTABLE,&hKey))
{ puts("ошибка генерации ключа RC4");
return;
}
BYTE buf[BUFFER_SIZE];
DWORD dwSzLow,dwSzHigh;
dwSzLow=GetFileSize(hInFile,&dwSzHigh);// получить размер входного файла
unsigned __int64 fSize=(dwSzHigh<<32)+dwSzLow;
while(fSize)
{
if(!ReadFile(hInFile,buf,BUFFER_SIZE,&dwLen,NULL)) //читаем блок данных
puts("Ошибка чтения данных");
dwSzLow=dwLen;
if(!CryptEncrypt(hKey,0,fSize<=BUFFER_SIZE,0,buf,&dwSzLow,sizeof(buf)))
//шифруем блок данных
puts("Ошибка шифрования");
if(!WriteFile(hOutFile,buf,dwSzLow,&dwSzLow,NULL))
puts("Ошибка записи");
fSize-=dwLen;
}
CloseHandle(hOutFile);
CloseHandle(hInFile);
CryptReleaseContext(hProv,0);
В заключение, эта статья об cryptoapi ос windows подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое cryptoapi ос windows и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Криптография и криптоанализ, Стеганография и Стегоанализ
Из статьи мы узнали кратко, но содержательно про cryptoapi ос windows
Комментарии
Оставить комментарий
Информационная безопасность- Криптография и криптоанализ, Стеганография и Стегоанализ
Термины: Информационная безопасность- Криптография и криптоанализ, Стеганография и Стегоанализ