Общие сведения
Файл с ключом диска состоит из открытой и секретной части. Секретная
часть хранится зашифрованной на ключе, сгенерированом из пароля.
В открытой части содержится следующая информация:
- сигнатура файла (VCKF)
- длина секретной части
- keyed hash секретной части
В секретной части хранится идентификатор алгоритма, для которого
создан этот ключевой файл и непосредственно ключевая информация,
формат которой зависит от алгоритма.
Алгоритм выработки ключа из пароля
- Производится свертка пароля пользователя по алгоритму MD5
- Полученое значение хэша используется в качестве ключа
алгоримта blowfish
- Производится зашифрование нулевых данных
необходимой длины на фиксированной синхропосылке
1
Хранение секретной части ключа
Для шифрования секретной части ключевого файла используется алгоритм
blowfish в режиме CFB. Из пароля пользователся генерируется 320 бит
ключевой инофмации. Первые 64 бита используются как синхропосылка,
оставшиеся 256 бит как ключ шифрования.
По зашифрованным данным считается криптографическая контрольная сумма
(HMAC-MD5), сохраняемая в открытой части. При загрузке ключа перед
расшифрованием производится проверка этой контрольной суммы и в случае
ее расхождения дальнейшая работа с ключом не производится.
Примечания
1. Требуемые изменения: сделать
синхропосылку случайной и хранить ее в открытой части ключевого
файла.