Асимметричные шифры чрезвычайно медленные. На практике такой медленный, что его невозможно использовать ни для чего, кроме самых маленьких входных данных. Симметричные шифры, однако, могут быть очень быстрыми.
Техника использования асимметричного шифра следующая:
- используя криптографически сильный генератор случайных чисел, создайте секретный ключ
S
- шифровать данные с использованием симметричного алгоритма (например,
AES-256-CBC
) и ключа S
- ключ шифрования
S
с использованием асимметричного алгоритма (например, RSA
) и ключ A
пары ключей
- добавить зашифрованную форму ключа
S
к зашифрованному сообщению
Другими словами, сообщение шифруется случайным ключом с использованием симметричного алгоритма, а затем случайный ключ шифруется одним из ключей с использованием асимметричного алгоритма.
Вы также должны принять во внимание IV и заполнение для режима CBC, и вы должны принять во внимание заполнение для RSA. Это складывает. Совершенные алгоритмы требуют IV и дополнения. Учитывая, что у вас есть один IV, два дополнения и случайный симметричный ключ (зашифрованный) для хранения вместе с сообщением (зашифрованным), криптографический материал должен занимать место.