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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

Второй способ передачи сеансового ключа заключается в использовании специального трехфазного протокола (предполагается, что отправитель А и получатель В имеют открытые ключи обмена РКА, РКВ и логические имена 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. Тема 52 Единый налог на внеменный доход Федеральным законом от 31
2. Плуто
3. Международные соглашения по экономической деятельности
4. территориальное деление Характер верховной власти порядок престолонаследования Вы
5. Основные сведения о процессоре
6. Лекция 9 Комплексная оценка эффективности и потенциала предприятия и диагностический анализ его развития
7. Краткие сведения об IBM РС - совместимых компьютерах
8. Зириаб.html
9. 4 Позиционные системы счисления
10. ДЕВАЛЬВАЦИЯ ЭКОНОМИКАНЫ ДАМЫТУДЫ~ ФАКТОРЫ РЕТІНДЕ
11. ТЕОРИТИЧЕСКИЙ АСПЕКТ ЭКОНОМИЧЕСКОГО РОСТА 5 1
12. Уральский Государственный Экономический Университет УТВЕРЖДАЮ- Проректор по учебной работе
13. Тема 8- методы локализация неисправностей на аппаратуре СВ и РМ
14. тема- а гарантирует всем участникам равные права на труд и доход; б удовлетворение запросов тех кто м
15. Модем
16. Скелет головы состоящий из двух отделов- мозгового и лицевого в которые входят следующие кости- в мозгово
17. Школа здоровья 384 Привилегии и иммунитеты консульских должностных лиц
18. Мировая экономика как сфера международного бизнесаструктура субъекты связь с мб Мировая экка м
19.  Мышление и характер Глава 2
20. Очищення води за допомогою озонування