Проблема шифрования RSA

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

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

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

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

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

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

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

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

  • Солить свой пароль: лучшие практики?
  • Регистрация нескольких хранилищ ключей в JVM
  • iText / BouncyCastle ClassNotFound org.bouncycastle.asn1.DEREncodable и org.bouncycastle.tsp.TimeStampTokenInfo
  • Шифрование шифрования RSA в iphone
  • Учитывая, что последний блок не заполнен неправильно
  • Использование AES-шифрования в C #
  • Является ли вычисление хеша MD5 менее интенсивным процессором, чем функции семейства SHA?
  • Как правильно управлять закрытым ключом
  • Что делает оператор?
  • Почему при использовании функции Non-Random IV с режимом CBC существует уязвимость?
  • Шифровать пароль в файлах конфигурации?
  • Interesting Posts

    Разъем передней панели не включается

    Одновременно слияние нескольких кадров данных в списке

    Как сообщить серверу webpack dev для обслуживания index.html для любого маршрута

    Как я могу переименовать столбец базы данных в миграции Ruby on Rails?

    Включить удаленные подключения tcp \ ip к серверу sql. Экспресс уже установленная firebase database с кодом или скриптом (запрос)

    Базовая проверка подлинности HTTP в Node.JS?

    Должен ли я установить DirectX 9.0 (c) на мою машину RTM для Windows 7?

    Разрешить сборку ссылок из другой папки

    Как заставить сценарий ждать / спать простым способом в единстве

    MVC 5.1 Razor DisplayFor не работает с Enum DisplayName

    Ошибка DriveImage XML с ошибкой службы теневой копии тома Windows

    поймать салфетки, чтобы отклонить событие

    Как создать пользовательские tags javadoc?

    Как выйти из приложения и показать главный экран?

    Как профилировать сценарий оболочки bash медленный запуск?

    Давайте будем гением компьютера.