Как найти простой текст из шифровального текста RSA - PullRequest
1 голос
/ 28 марта 2011

У меня есть текст шифра RSA c, открытый ключ (e,n). (где c = m^e mod n)

Теперь я также знал, что простой текст m должен быть либо "1234XXX", либо "12345XXX", где "XXX" - это трехзначное число.

Могу ли я найти, какой из них правильный, без проверки всех трехзначных чисел? (Я просто хочу знать, является ли первая часть "1234" или "12345", и мне все равно, что такое XXX.)

Ответы [ 2 ]

3 голосов
/ 28 марта 2011

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

(Подобные обычные текстовые сообщения не создают аналогичные зашифрованные сообщения)

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

2 голосов
/ 28 марта 2011

На самом деле, если вы правильно используете RSA , вы даже не сможете угадать свой «XXX», попробовав 1000 возможностей.Базовая операция в RSA является модульным возведением в степень, но есть первый шаг, называемый padding , который преобразует данные для шифрования в большое целое число (по модулю n ).

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

Поэтому, чтобы ответить на ваш вопрос: если , вы можете найти свой «XXX», либо попробовав только 1000 RSA-шифрования, либо с помощью любого умного ярлыка, затем ваш RSA очень неправильный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...