У вас вопросы?
У нас ответы:) SamZan.net

Первая фаза протокола- А- генерация случайного сеансового ключа k CryptGenKey;шифрование его с помощью открыто.html

Работа добавлена на сайт samzan.net: 2016-01-17

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.5.2025

Второй способ передачи сеансового ключа заключается в использовании специального трехфазного протокола (предполагается, что отправитель А и получатель В имеют открытые ключи обмена РКА, РКВ и логические имена IDA, IDB друг друга).

1. Первая фаза протокола:

А: генерация случайного сеансового ключа kA (CryptGenKey);
шифрование его с помощью открытого ключа В ЕРКВ (кА)
(CryptExportKey);

А->В: Еркв (кА);

В: расшифрование блоба с сеансовым ключом kA=DSKB(EPKB
(kA)) (CryptlmportKey).

2. Вторая фаза протокола:

В: генерация случайного сеансового ключа kB (CryptGenKey);
шифрование его с помощью открытого ключа А ЕРКА (кв)
(CryptExportKey);

B-*A: EPKA (kB);

В: вычисление хеш-значения Н1В=Н(кА, IDB, kB, IDA, «Фаза
2») (CryptCreateHash, CryptHashSessionKey, CryptHashData,
CryptGetHashParam);

B-*A: H1B;

ё) А: расшифрование блоба с сеансовым ключом kB=DSKA(EPKA (kB)) (CryptlmportKey); вычисление HlA=H(kA, IDB, kB, IDA, «Фаза 2») (CryptCreateHash, CryptHashSessionKey, CryptHashData, CryptGetHashParam); сравнение H1B и Н1А; при несовпадении хеш-значений (получатель не является подлинным или произошло искажение передаваемых по сети сообщений третьим лицом) выполнение протокола прекращается, а сеанс связи завершается.

3. Третья фаза протокола:

А: вычисление хеш-значения H2A=H(kB, IDA, IDB, «Фаза
3») (CryptCreateHash, CryptHashSessionKey, CryptHashData,
CryptGetHashParam);

A-»B: H2A;

В: вычисление хеш-значения H2B=H(kB, IDA, IDB, «Фаза
) (CryptCreateHash, CryptHashSessionKey, CryptHashData,
CryptGetHashParam);
сравнение Н2А и Н2В; при совпадении хеш-
значений сеансовые ключи
kA и kB могут использоваться для об
мена зашифрованными с их помощью сообщениями.

При выполнении данного трехфазного протокола потребуется использование еще двух функций CryptoAPI:

BOOL CryptHashSessionKey(HCRYPTHASH hHash, HCRYPTKEY hKey, DWORD dwFlags); /* добавление в хеш-значение с дескриптором hHash сеансового ключа шифрования с дескриптором hKey; значение параметра dwFlags не используется и должно  быть равно нулю */

 BOOL CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags); /* получение в буфере *pbData длиной *pdwDataLen хеш-значения с дескриптором hHash; после завершения в *pdwDataLen помещается действительный размер хеш-значения;" значение параметра dwFlags не используется и должно  быть равно  нулю;dwParam=HP_HASHVAL   */

5.3. Использование функций CryptoAPI для шифрования и расшифрования данных

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

BOOL    CryptEncrypt(HCRYPTKEY    hKey,     HCRYPTHASH    hHash, BOOL    Final,     DWORD    dwFlags,     BYTE    *pbData,     DWORD *pdwDataLen,   DWORD dwBufLen);   /* шифрование на сеансовом ключе  с дескриптором hKey порции данных из  буфера *pbData   длиной   dwBufLen    (*pdwDataLen   —   длина   порции данных,   после выполнения функции в  эту переменную записывается   фактическая   длина    зашифрованных   данных); hHash=0,   dwFlags=0,    Final   —  признак  последней  порции шифруемых данных  */

Для расшифрования зашифрованных с помощью сеансового ключа данных применяется функция CryptDecrypt:

BOOL CryptDecrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen); /* расшифрование на сеансовом ключе с дескриптором hKey порции данных из буфера *pbData (*pdwDataLen длина порции данных, после выполнения функции в эту переменную записывается фактическая длина расшифрованных данных); hHash=0, dwFlags=0, Final признак последней порции расшифровываемых данных  */

Для изменения режима симметричного шифрования (ЕСВ, СВС, CFB или OFB, см. подразд. 4.4) используется функция CryptSetKeyParam:

BOOL CryptSetKeyParam(HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD dwFlags) ; /* установка режима шифрования для сеансового ключа с дескриптором hKey; dwParam=KP_MODE,   pbData   указывает  на   переменную   типа




1. Молитвы воспитателя по Я
2. это набор материалов демонстрирующих умение учителя решать задачи своей профессиональной деятельности вы.
3. Реферат- Исследование предохранительных водногелевых ВВ
4. темами причем их взаимодействие также может быть как информационным так и функциональным
5. тема России. СМИ как медиаполитическая система1 В популярной на Западе книге Герберта Альтшулла Аг
6. Когда авторитет законов захватывает не только поступки но и мнения всё законодательство становится на сли
7. Мифы народов мира
8. КАК ВЫСВОБОДИТЬ НЕСКОЛЬКО УРОКОВ ДЛЯ БОЛЕЕ УГЛУБЛЕННОГО ИЗУЧЕНИЯ ТЕМ, КОТОРЫЕ ВЫЗОВУТ ЗАТРУДНЕНИЯ ИЛИ ДЛЯ ПРАКТИЧЕСКИХ РАБОТ ПО ЧЕРЧЕНИЮ
9. Вопросы для подготовки к зачету по дисциплине «ЭКОНОМИЧЕСКИЙ ПОТЕНЦИАЛ ТАМОЖЕННОГО СОЮЗА».html
10. Экология. Классификация аппаратов и систем для локализации очистки и обезвреживания выбросов в самом общем