AES Encryption- большие файлы

Я делаю AES-шифрование с использованием EVP-интерфейса OpenSSL на языке C в режимах 128/192/256 cbc. Я нашел хороший пример в stackru, с которого я начал программировать.

Что я хотел бы знать, это:

  1. Какое дополнение по умолчанию используется при шифровании?
  2. Что произойдет, если у меня есть большие данные. Нужно ли кодировать, чтобы разделить его на блоки данных размером 128 бит? или интерфейс EVP позаботится об этом?
  3. Каким должен быть размер IV для 128-битного, 192-битного и 256-битного режимов cbc (где только длина ключа равна 128, 192, 256 соответственно и размер блока всегда равен 128)

Спасибо

2 ответа

Решение
  1. Для шифрования не существует отступов по умолчанию. Есть несколько схем заполнения. Для EVP существует последний метод шифрования, который принимает неполный блок, добавляет заполнение (заполнение по умолчанию PKCS) и шифрует его.

  2. EVP позаботится об этом.

  3. Размер вектора IV, когда используется режим CBC, равен размеру блока.

Ты можешь использовать EVP_CIPHER_iv_length() определить размер IV для шифра, например EVP_CIPHER_iv_length(EVP_aes_128_cbc()),

Другие вопросы по тегам