Общие сведения

Файл с ключом диска состоит из открытой и секретной части. Секретная часть хранится зашифрованной на ключе, сгенерированом из пароля.

В открытой части содержится следующая информация:

В секретной части хранится идентификатор алгоритма, для которого создан этот ключевой файл и непосредственно ключевая информация, формат которой зависит от алгоритма.

Алгоритм выработки ключа из пароля

  1. Производится свертка пароля пользователя по алгоритму MD5
  2. Полученое значение хэша используется в качестве ключа алгоримта blowfish
  3. Производится зашифрование нулевых данных необходимой длины на фиксированной синхропосылке 1

Хранение секретной части ключа

Для шифрования секретной части ключевого файла используется алгоритм blowfish в режиме CFB. Из пароля пользователся генерируется 320 бит ключевой инофмации. Первые 64 бита используются как синхропосылка, оставшиеся 256 бит как ключ шифрования.

По зашифрованным данным считается криптографическая контрольная сумма (HMAC-MD5), сохраняемая в открытой части. При загрузке ключа перед расшифрованием производится проверка этой контрольной суммы и в случае ее расхождения дальнейшая работа с ключом не производится.

Примечания

1. Требуемые изменения: сделать синхропосылку случайной и хранить ее в открытой части ключевого файла.