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