Я хочу надежно зашифровать гигабайты данных с помощью OpenSSL (несколько файлов).
Я использую эту команду (openSSL 1.0.2p-i386-win32):
openssl.exe enc -e -aes-256-ctr -in secret.txt -out encrypted.txt -salt -pass pass:AsIDHnd19!&@#@!#lJglG1f31!
Myвопросы:
- Какой режим использовать?CTR или CBC?(CTR для скорости?)
- Как генерировать случайные IV?Например, в скрипте PowerShell.(Я использую Pshell v2.0)
- Достаточно ли безопасна предоставленная мною команда?
- Могу ли я использовать одну и ту же соль для каждого файла для лучшей скорости шифрования?
- Действительно ли случайный пароль в 20-30 символов компенсирует недостаток IV?
РЕДАКТИРОВАТЬ:
Я скачал более новую версию с возможностью использовать PBKDF2 (openSSL 1.1.1-win32-mingw):
openssl.exe enc -e -aes-256-ctr -in secret.txt -out encrypted.txt -salt -pass pass:AsIDHnd19!&@#@!#lJglG1f31! -pbkdf2 -p
С помощью -p я вижу соль, ключ и IV, которые используются для шифрования файла.Все 3 параметра меняются каждый раз, когда я запускаю openssl, даже если для одного и того же файла и с одним и тем же проходом.
Означает ли это, что я в безопасности сейчас, а IV - случайный?