Для выработки ключа DK из пароля P кроме самого пароля используются следующие параметры:
- значение синхропосылки S;
- число итераций c;
- длина выходной последовательности dkLen (в байтах).
Рекомендуемый способ выбора пароля P и значения его длины приведены в приложении А. Для одного и того же значения пароля значение синхропосылки S должно выбираться по схеме равновероятного выбора без возвращения из множества , где n=8, ..., 32. Рекомендуемое значение n=32. Число итераций c должно выбираться в зависимости от условий эксплуатации и длины пароля (рекомендуемые значения приведены в приложении А).
Ключ DK вычисляется с помощью функции диверсификации PBKDF2 (P, S, c, dkLen) с использованием в качестве псевдослучайной функции PRF функцию HMAC_GOSTR3411:
DK=PBKDF2(P, S, c, dkLen).
Функцию диверсификации вычисляют по следующему алгоритму:
- если dkLen>(2-1)·64, то алгоритм завершает работу с ошибкой (неверные параметры);
- вычисляют ;
- для каждого i от до n вычисляют набор значений:
,
,
...
,