Каков максимальный размер блока RSA для кодирования?
какой размер блока RSA max, который я могу зашифровать за один цикл?
и какова максимальная скорость алгоритма RSA с размером ключа 4096 бит?
1 ответов
согласно обновленным уравнениям Ленстры, доступным на этом сайте, уровень безопасности 4096-битного ключа RSA соответствует криптографическому хэшу, который имеет длину не менее 248 бит, например SHA-256.
Если вы используете RSA OAEP (и вы должны), объем данных, который вы можете зашифровать, не более modulus size - 2 - 2*hash size
, что составляет 446 байт.
С RSA PKCS#1 v1.5 Вы можете зашифровать не более modulus size - 11
байты, но RSA PKCS#1 v1.5 обеспечивает меньшую безопасность (это не доказуемо безопасный, и минимальное количество случайных байтов заполнения должно быть расширено до по крайней мере 16 байтов).
Если вам нужно зашифровать больше данных, вы не должны просто нарезать его и использовать RSA несколько раз на каждом блоке. Это недостаток безопасности. Вы должны принять другой подход, точнее:
- выберите случайный 128-битный симметричный ключ.
- используйте аутентифицированный режим работы для шифрования данных (например, AES-128 GCM).
- шифровать симметричный ключ с помощью RSA УАМИАЭ.
шифрование RSA (в отличие от дешифрования) довольно быстрое, но время действительно зависит от библиотеки и используемой платформы. Для некоторых ссылок см. сайт библиотеки cryptopp.