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

Работа добавлена: 2018-07-06






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

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

А: генерация случайного сеансового ключа k(CryptExportKey);

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

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

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

В: генерация случайного сеансового ключа k(CryptExportKey);

B-*A: EPKA (kB);

В: вычисление хеш-значения Н1В=Н(кА, IDB, kB, IDA,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,CryptGetHashParam);

A-»B: H2A;

В: вычисление хеш-значения H2B=H(kB, IDA, IDB,CryptGetHashParam);значений сеансовые ключи kAи kBмена зашифрованными с их помощью сообщениями.

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

BOOL CryptHashSessionKey(HCRYPTHASH hHash, HCRYPTKEYhKey, 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. тема отношений возникающая в процессе обмена экономических благ с использованием денег в качестве актива-п.

6. Окно отображения хода генерации ключа шифрования

7. Основной общий принцип системного подхода заключается в рассмотрении частей явле

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

9. Рассмотрим методы определения капитальных вложений в отдельные объекты энергохозяйства предприятия при использовании укрупненных показателей: определение суммарных капиталовложений на основе сметной стоимости и использование показателя удельных капиталовл

10. Русская общественная мысль второй четверти 19 в о путях развития страны