Приложение, над которым я работаю, позволяет пользователю шифровать файлы. Файлы могут быть любого формата (электронная таблица, документ, презентация и т.д.).
Для заданного входного файла я создаю два выходных файла - файл зашифрованных данных и файл ключей. Вам нужны оба этих файла, чтобы получить исходные данные. Ключевой файл должен работать только с соответствующим файлом данных. Он не должен работать ни на каком другом файле, ни от того же пользователя, ни от любого другого пользователя.
Алгоритм AES требует два различных параметра для шифрования, ключ и вектор инициализации (IV).
Я вижу три варианта создания ключевого файла:
Обратите внимание, что это одно и то же приложение, которое используется разными клиентами.
Похоже, что все три варианта достигнут одной и той же конечной цели. Однако я хотел бы получить ваше мнение о том, каким должен быть правильный подход.
IV используется для увеличения безопасность через случайность, но это не означает, что используется всем алгоритмом, т.е.
, вещь приема состоит в том, какой длины IV должен быть? Обычно это - тот же размер как размер блока или размер шифра. Например, AES имела бы 16 байтов для IV. Кроме того, тип IV может также быть выбран, т.е. eseqiv, seqiv, chainiv...