Подтвердить что ты не робот

Проблема шифрования RSA [Размер данных полезной нагрузки]

верно ли, что шифрование RSA может обрабатывать ограниченную полезную нагрузку данных?... им путают с теорией... теоретически об этом нет никаких примечаний...

4b9b3361

Ответ 1

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

Чтобы повысить безопасность RSA, вы должны использовать схемы заполнения, определенные в PKCS1. В зависимости от выбранной вами схемы размер сообщения может быть значительно меньше, чем модуль. http://en.wikipedia.org/wiki/PKCS1

Ответ 2

RSA шифрует одно сообщение, длина которого несколько меньше модуля. В частности, сообщение сначала "дополняется", в результате получается последовательность байтов, которая затем интерпретируется как большое целое число от 0 до n-1, где n - модуль (часть открытого ключа) - так что заполненное сообщение не может быть больше, чем модуль, что подразумевает строгую максимальную длину в необработанном сообщении.

В частности, с наиболее распространенной схемой заполнения (PKCS # 1 "старый стиль", например, "v1.5" ), дополнение дополняет не менее 11 байт к сообщению, а общая длина заполненного сообщения должна быть равна длине модуля, например 128 байтов для 1024-битного ключа RSA. Таким образом, максимальная длина сообщения составляет 117 байтов. Обратите внимание, что результирующая длина зашифрованного сообщения имеет тот же размер, что и модуль, поэтому шифрование обязательно расширяет размер сообщения не менее чем на 11 байтов.

Обычный способ использования RSA для зашифрования большого сообщения (например, электронной почты) заключается в использовании гибридной схемы:

  • Выбирается случайная симметричная клавиша K (необработанная последовательность, например, от 128 до 256 случайных бит).
  • Большое сообщение симметрично зашифровано с помощью K, используя правильную и эффективную симметричную схему шифрования, такую ​​как AES.
  • K асимметрично шифруется с помощью RSA.

"Разделение" большого сообщения на столько 117-байтовых блоков, каждый из которых должен быть зашифрован с помощью RSA, обычно не выполняется по разным причинам: трудно сделать это правильно, не добавляя лишних недостатков; каждый блок будет расширен на 11 байтов, что подразумевает увеличение размера сообщения без пренебрежимого (пропускная способность сети может быть дефицитным ресурсом); симметричное шифрование выполняется намного быстрее.