Шифрование RSA - как зашифровать до размера меньшего, чем ключ

Я использую шифрование RSA в своем проекте, и мне нужно зашифровать массив байтов в зашифрованный массив байтов, чтобы его длина была меньше длины ключа (я использую 2048-битный ключ). Когда я использую класс RSACryptoServiceProvider с C #, он всегда шифрует его до массива байтов, длина которого равна длине ключа (256 байтов). Я знаю, что не могу зашифровать его до большего размера, чем ключ, но могу ли я зашифровать его до меньшего размера (до исходного незашифрованного массива байтов)?


person liran63    schedule 29.01.2014    source источник


Ответы (1)


Нет. Дополнение открытого текста до размера ключа перед шифрованием необходимо для защиты от определенных типов криптоаналитических атак, поэтому не имеет смысла для реализации RSA (особенно тех, которые предназначены для общего использования) опускать Это.

person Jon    schedule 29.01.2014
comment
И в противном случае модульное возведение в степень будет гарантировать, что даже относительно небольшой ввод приведет к получению зашифрованного текста примерно того же размера, что и модуль. - person Maarten Bodewes; 29.01.2014