AES Encryption- большие файлы
Я делаю AES-шифрование с использованием EVP-интерфейса OpenSSL на языке C в режимах 128/192/256 cbc. Я нашел хороший пример в stackru, с которого я начал программировать.
Что я хотел бы знать, это:
- Какое дополнение по умолчанию используется при шифровании?
- Что произойдет, если у меня есть большие данные. Нужно ли кодировать, чтобы разделить его на блоки данных размером 128 бит? или интерфейс EVP позаботится об этом?
- Каким должен быть размер IV для 128-битного, 192-битного и 256-битного режимов cbc (где только длина ключа равна 128, 192, 256 соответственно и размер блока всегда равен 128)
Спасибо
2 ответа
Решение
Для шифрования не существует отступов по умолчанию. Есть несколько схем заполнения. Для EVP существует последний метод шифрования, который принимает неполный блок, добавляет заполнение (заполнение по умолчанию PKCS) и шифрует его.
EVP позаботится об этом.
Размер вектора IV, когда используется режим CBC, равен размеру блока.
Ты можешь использовать EVP_CIPHER_iv_length()
определить размер IV для шифра, например EVP_CIPHER_iv_length(EVP_aes_128_cbc())
,