Каков максимальный размер блока 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 несколько раз на каждом блоке. Это недостаток безопасности. Вы должны принять другой подход, точнее:

  1. выберите случайный 128-битный симметричный ключ.
  2. используйте аутентифицированный режим работы для шифрования данных (например, AES-128 GCM).
  3. шифровать симметричный ключ с помощью RSA УАМИАЭ.

шифрование RSA (в отличие от дешифрования) довольно быстрое, но время действительно зависит от библиотеки и используемой платформы. Для некоторых ссылок см. сайт библиотеки cryptopp.