Если программа запущена в первый раз или пользователь выбрал команду «Создать USB-ключ», запускается процедура создания USB-ключа.
На первом шаге от пользователя требуется ввести свои личные данные (Фамилию и Имя), логин и пароль для входа в систему, а также указать USB. Затем происходит проверка верности введенных данных. Требования следующие:
длина фамилии от 7 до 50 символов;
длина имени от 2 до 30 символов;
длина логина от 5 до 50 символов;
длина пароля от 8 до 30 символов.
При этом в режиме реального времени (во время ввода данных в информационные поля) происходит оценка надежности пароля, или соответствия при повторе пароля.
Если все данные введены верно, генерируется S-key: вычисляется хэш-функция в 512 бит от + + + + + + .
Случайным образом генерируются ключи шифрования и константа шифрования: 256-битный ключ для алгоритма RC6, 128-битный для алгоритма IDEA и 128-бит вектора инициализации. Вычисляется контрольная сумма от этих данных (CRC642). После чего ключи шифрования и вектор инициализации шифруется S-key путем наложения гаммы.
Берется временная метка — дата создания USB-ключа. Производится вычисление хэша доступа (LiteKey) — SHA-512 от следующих данных: логин входа в систему + пароль входа в систему + соль + id USB-ключа. При помощи хэша доступа (LiteKey) шифруются поля данных: контрольная сумма (CRC642), сеансовый счетчик, временная метка.
Затем от зашифрованных полей вычисляется контрольная сумма (CRC641).
Вычисляется контрольный хэш (ControlHash) — SHA-512 от следующих данных: соль + пароль входа в систему + логин входа в систему + соль + id USB-ключа.
На этом процедура создания USB-ключа завершена. Общая схема USB-ключа представлена на Рисунке 11.