На рис. 4 показан принцип вычисления главного разделяемого клиентом и сервером ключа MasterSecret на основе PreMasterSecret и параметров client_random и server_random. Значение 48-байтового ключа MasterSecret остается неизменным на протяжении всего сеанса. Параметры client_random и server_random передаются незашифрованными, a PreMasterSecret передается конфиденциально с помощью алгоритма обмена ключами. Вычисление закрытых ключей и векторов инициализации IV (Initialization Vectors) происходит так, как показано на рис. 5.
Рис. 4.Создание MasterSecret в начале сеанса
Установление нового соединения приведет к повторному вычислению переменных client_random и server_random, хотя значение MasterSecret останется неизменным. Как следствие, переменные client write key и server write key также будут вычислены заново при установлении соединения.
Рис. 5. Генерация ключей и векторов инициализации в начале сеанса или соединения
Отметим, что для нового соединения каждая из взаимодействующих сторон использует симметричный ключ шифрования, отличный от ключа партнера. Таким образом, поток данных в одном направлении будет зашифрованным ключом, отличным от ключа шифрования потока данных в другом направлении.