Шифрование (режим и заполнение)

Мне было поручено написать небольшое консольное приложение на Java, которое включает шифрование. Я не знаком с шифрованием, поэтому сначала мне нужно было кое-что прочитать. До сих пор предъявлялись требования высокого уровня, что AES-256 должен использоваться для генерации одноразового ключа для шифрования файла.

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

Из того, что я понимаю о шифровании и дешифровании из чтения, кроме алгоритма (RSA, AES и т. Д.), Есть также вещи, называемые режимом и заполнением. Например, следующий код указывает RSA как алгоритм, режим ECB и PKCS1Padding.

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");

Тот же алгоритм, режим и заполнение должны использоваться при шифровании и дешифровании. Поэтому, разумно ли мне идти спрашивать пользователей о том, какой режим и отступ они хотят?

Я заметил, что Cipher cipher = Cipher.getInstance ("RSA"), похоже, использует режим ECB по умолчанию и заполнение PKCS1Padding, и поэтому эта строка кода такая же, как и выше. Итак, можно ли предположить, что режим ECB и режим PKCS1Padding будут использоваться для RSA-2048 по умолчанию?

Ответы на вопрос(2)

Ваш ответ на вопрос