Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
реферат Кот Е.Р..docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
102 Кб
Скачать
☆

3. 6. Создание главного секретного ключа

     Создание главного ключа состоит из двух этапов. На первом этапе согласуется значение предварительного главного ключа (pre_master_secret), а на втором обе стороны вычисляют значение главно­го ключа (master_secret). Для передачи друг другу значения pre_master_secret у сторон имеется два варианта.

•    RSA. Генерируемый клиентом 48-байтовый ключ pre_master_secret шиф­руется с помощью открытого ключа RSA сервера и отправляется клиентом серверу. Сервер дешифрует полученный шифрованный текст с помощью своего личного ключа и восстанавливает значение pre_master_secret.

•    Метод Диффи-Хеллмана. И клиент, и сервер генерируют открытые ключи для алгоритма Диффи-Хеллмана.  После обмена этими ключами каждая сторона выполняет определенные вычисления по методу Диффи-Хеллмана, в    результате    которых    получается    совместно    используемое значение pre_master_secret.

Теперь обе стороны могут вычислить значение master_secret по схеме:

master_secret = MD5 (pre_master_secret ||

                          SHA ('A' || pre_master_secret || ClientHello.random || ServerHello.random)) ||

MD5 (pre_master_secret ||

SHA ('BB' || pre_master_secret || ClientHello.random || Server  Hello.random))  ||               

    MD5 (pre_master_secret ||

    SHA ('CCC' || pre_master_secret || ClientHello.random || ServerHello.random)),

где ClientHello.random и ServerHello.random являются значениями оказий, вхо­дящих в оригинальные сообщения приветствия сторон (поле «случайное значение»).1

3. 7. Генерирование криптографических параметров

Для элемента “Параметры шифрования” поля “комплект шифров” требуются секретный ключ MAC клиента для записи, секретный ключ MAC сервера для записи, ключ клиента для записи, ключ сер­вера для записи, вектор инициализации клиента для записи и вектор инициали­зации сервера для записи. Все эти параметры генерируются из главного ключа путем применения функции хэширования к главному ключу с целью получения защищенной последовательности байтов достаточной длины.

Процедура генерирования ключей из главного ключа аналогична процедуре генерирования главного ключа из предварительного и показана ниже.

key_block = MD5 (master_secret ||

                     SHA ('A' || master_secret || ServerHello.random || ClientHello.random)) ||

                     MD5 (master_secret ||

                     SHA ('BB' || master_secret || Server Hello, random || ClientHello.random)) ||

                     MD5 (master_secret ||SHA('CCC' || master_secret || ServerHello.random || ClientHello.random)) || ...

Процедура выполняется до тех пор, пока не будет сгенерирована последова­тельность достаточной длины. Эта алгоритмическая структура представляет со­бой псевдослучайную функцию. Значение master_secret можно рассматривать как инициализирующее значение для этой функции. Сгенерированные клиентом и сервером случайные числа можно рассматривать как значения модификаторов (salt values), используемых с целью усложнения криптоанализа.