17
Ne_i = prf(Ni_b, CKY-I);
Ne_r = prf(Nr_b, CKY-R).
В дальнейшем ключи
Ke_i и Ke_r, извлекаемые из Ne_i и Ne_r,
соответственно, по алгоритму, представленному в Приложении В,
используются для получения симметричных ключей, применяемых в
согласованном криптоалгоритме. Если размер выходной последовательности в
результате вычисления согласованной ПСФ будет больше или равен размеру
ключа, требуемого шифра, то тогда
Ke_i и Ke_r будут определяться по наиболее
старшим битам значений
Ne_i и Ne_r, соответственно. Если же необходимый
размер
Ke_i и Ke_r будет превышать размер выходной последовательности ПСФ,
то тогда необходимое число недостающих битов будет обеспечиваться за счет
многократного последовательного введения результатов вычисления ПСФ
обратно на вход алгоритма вычисления ПСФ и присоединения последующего
результата к предыдущему до тех пор, пока не будет получено требуемое число
битов. Например, если согласованный криптоалгоритм требует 320-битовый
ключ, а размер выходной последовательности ПСФ составляет только 128
битов, то тогда
Ke_i будет представлять собой 320 старших битов
последовательности
K, где
K = K1|K2|K3; K1 = prf(Ne_i, 0); K2 = prf(Ne_i, K1); K3 = prf(Ne_i, K2).
Для краткости показан алгоритм вычисления Ke_i, так как значение Ke_r
вычисляется аналогичным образом. Размер значения “0” привычислении
K1
составляет один октет. (
Замечание. Величины Ne_i, Ne_r , Ke_i и Ke_r являются
кратковременными и после их использования должны уничтожаться.)
Сохраняются требования по размещению в сообщении дополнительного
поля “Хэш-функция” и обязательного поля “Случайный параметр”, однако на
последующие поля никаких требований по размещению не существует. Все
поля полезной нагрузки (в каком бы порядке они не следовали), следующие за
зашифрованным полем “Случайный параметр” должны в обязательном порядке
зашифровываться с помощью
Ke_i и Ke_r, в зависимости от направления
передачи.
Если симметричный криптоалгоритм применяется в СВС-режиме (режим
сцепления шифрблоков), то тогда алгоритм вычисления вектора начальной
установки (ВНУ, Initialization Vector — InV) будет следующий. ВНУ для
зашифрования первого поля полезной нагрузки, следующего за полем
“Случайный параметр”, будет иметь нулевое значение (“0”). ВНУ для
зашифрования последующих поле полезной нагрузки с помощью
кратковременного симметричного шифрключа,
Ke_i, будет представлять собой
последний шифрблок предшествующего поля полезной нагрузки.
Зашифрованные поля полезной нагрузки подвергаются процедуре дополнения
до ближайшего размера блока. Все байты дополнения, за исключением