ЛАБОРАТОРНАЯ РАБОТА № 4. БЕЗОПАСНОЕ РАСПРЕДЕЛЕНИЕ КЛЮЧЕЙ



Цель работы;

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

2. Изучение свойств и методов класса ECDiffieHellmanCng пространства имен  System.Security.Cryptography для создания ключей по алгоритму Диффи-Хеллмана

3. Изучение стека протоколов TCP/IP

4. Изучение свойств и методов классов Sockets, UDPClient, TCPClient и  TCPListener пространства имен System.Net

Методы безопасного распределения ключей

В настоящее время применяют следующие методы безопасного распределения ключей:

1. Без привлечения третьей стороны:

1.1.  Шифрование секретного ключа симметричной криптосистемы при передаче по сети с помощью открытого ключа асимметричной криптосистемы;

1.2. Алгоритм безопасного  распределения ключей Диффи-Хеллмана;

2. С привлечением третьей стороны, которой доверяют все участники соединения:

2.1. Инфраструктура управления открытыми ключами (Public Key Infrastructure -PKI);

2.2. Протокол обмена ключевой информацией Kerberous.

 

Реализация алгоритма Диффи-Хеллмана в .NET Framework

    Алгоритм безопасного распределения ключей Диффи-Хеллмана реализован с помощью класса ECDiffieHellmanCng пространства имен System.Security.Cryptography.  Класс ECDiffieHellmanCng позволяет двум сторонам обмениваться секретными ключами, даже если взаимодействие осуществляется по открытому каналу.

    Алгоритм Диффи-Хеллмана в System.Security.Cryptography использует, так называемые, новые классы, реализованные, начиная с версии .NET Framework 3.5. Причем, начиная с версии ОС Windows 7. Новые классы имеют префикс (или суффикс) Cng, который представляет собой сокращение от Cryptography Next Generation (криптография следующего поколения). 

Свойства и методы класса ECDiffieHellmanCng

    Свойства класса ECDiffieHellmanCng приведены в таблице 4.1, а методы в таблице 4.2.

 

Таблица 4.1 – Свойства класса ECDiffieHellmanCng

Свойство Описание
1 2 3
1 HashAlgorithm Получает или задает хэш-алгоритм, используемый при генерации ключевого материала
2 HmacKey Получает или задает ключ HMAC, используемый при формировании ключевого материала.
3 Key Задает объект CngKey, который будет использоваться текущим объектом для выполнения криптографических операций

продолжение таблицы 4.1

1 2 3
4 KeyDerivationFunction Получает или задает функцию формирования ключа для класса ECDiffieHellmanCng
5 KeyExchangeAlgorithm Получает имя алгоритма обмена ключами
6 KeySize Получает или задает размер ключа (в битах), используемого алгоритмом асимметричного шифрования
7 Label Получает или задает значение метки, используемой для формирования ключа
8 LegalKeySizes Возвращает размеры ключа, которые поддерживаются алгоритмом асимметричного шифрования
9 PublicKey Получает открытый ключ, который может использоваться другим объектом ECDiffieHellmanCng для генерации секретного соглашения
10 SecretAppend Получает или задает значение, добавляемое к концу секретного соглашения при генерации ключевого материала
11 SecretPrepend Получает или задает значение, добавляемое к началу секретного соглашения при формировании ключевого материала
12 Seed Получает или задает начальное значение, используемое при формировании ключевого материала.
13 SignatureAlgorithm Получает имя алгоритма подписи

 

Таблица 4.2 – Методы класса ECDiffieHellmanCng

Свойство Описание
1 2 3
1 Clear() Освобождает все ресурсы, используемые классом AsymmetricAlgorithm
2 DeriveKeyMaterial (CngKey) Формирует ключевой материал из секретного соглашения, заключенного между двумя сторонами, используя заданный объект CngKey, в котором содержится открытый ключ второй стороны
3 DeriveKeyMaterial (ECDiffieHellmanPublicKey) Формирует ключевой материал из секретного соглашения, заключенного между двумя сторонами, используя заданный объект ECDiffieHellmanPublicKey, в котором содержится открытый ключ второй стороны

продолжение таблицы 4.2


Дата добавления: 2018-08-06; просмотров: 344; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!