JAVA RSAES-OAEP атака - PullRequest
       4

JAVA RSAES-OAEP атака

0 голосов
/ 05 мая 2011

Мне нужно реализовать атаку RSAES-OAEP PKCS # 1 V2.1, используя исполняемый оракул unix и файл запроса формата ASCII.Формат файла ASCII запроса:

{n}
{e}
{c}

, где N (целое число) - это 1024-битный модуль, e (целое число) - открытый показатель, а c (строка октета) - шифротекст, соответствующийшифрование RSAES-OAEP неизвестного открытого текста m (октетная строка) под открытым ключом (N, e).Обратите внимание, что открытый текст является текстом ASCII (т. Е. Каждый октет является символом ASCII) и что для шифрования RSAES-OAEP будет использоваться SHA-1 в качестве хэш-функции и нулевой метки (т. Е. Во всех случаях метка являетсястрока октетов нулевой длины).Исполняемый файл представляет оракула расшифровки RSAES-OAEP: при выполнении из оболочки BASH с помощью команды

bash$ ./ USER < USER . challenge

он пытается расшифровать зашифрованный текст, считанный из stdin, с помощью закрытого ключа (N, d).Обратите внимание, что N читается из стандартного ввода (т. Е. Из запроса), но d (целое число) является частным показателем, встроенным в оракул (т. Е. У вас нет к нему доступа).

Файл запросаследующим образом:

99046A2DB3D185D6D2728E799D66AC44F10DDAEE1C0A1AC5D7F34F04EDE17B96A5B486D95D927AA9B58FC91865DBF3A1685141345CC31B92E13F06E8212BAB22529F7D06B503AAFEEB89800E12EABA50C3F3BBE86F5966A88CCCF5C843281F8B98DF97A3111458FCA89B8085A96AE68EAEBAE270831D41C956159B81D29503
80A3C4043F940BE6AC16B11A0A77016DBA96B0239311AF182DD70E214E07E7DF3523CE1E269B176A3AAA0BA8F02C59262F693D6A248F22F2D561ED7ECC3CB9ABD0FE7B7393FA0A16C4D07181EEF6E27D97F48B83B90C58F51FD40DCDA71EF5E3C3E97D1697DC8E26B694B5CAFE59E427B12EE82A93064C81AAB74431F3A735
57D808889DE1417235C790CB7742EB76E537F55FD49941EBC862681735733F8BB095EDBB3C0DA44AB8F1176E69A61BBD3F0D31EB997071758A5DD850730A1D171E9EC92788EBA358974CE521537EE4A809BF1607D04EFD4A407866970981B88F44D5260D25C9E8864D5FC2AFB2CB90994DD1934BCEA728B38A00D4712AE0EE

Есть какие-нибудь идеи относительно того, как действовать для этой атаки ?!

спасибо Кто-нибудь, чтобы направить меня за это? !!!!!!!!!!

1 Ответ

3 голосов
/ 05 мая 2011

Первое, что вы можете попробовать, это выяснить, можете ли вы применить атаку Дж. Мангера из статьи «Выбранная атака шифротекста на RSA-оптимальную асимметричную атрибутивную набивку (OAEP), стандартизированную в PKCS # 1 v2.0»."Crypto 2001.

Это означает, что вы должны выяснить, какую информацию вы можете получить от оракула.Т.е. выберите два произвольных целых числа m0, m1 так, чтобы m1 было 1024-разрядным целым числом, меньшим, чем n, и m0 было бы длиной 1023 или менее бит.Если вы передадите m0 ^ e mod n и m1 ^ e mod n оракулу, получите ли вы другой ответ?Если это так, то вы можете применить атаку в статье выше.В противном случае вам придется искать другой недостаток в оракуле расшифровки.


Еще один подход, который может сработать, - попытаться изменить модуль n.Если оракул действительно читает модуль из предоставленного пользователем ввода, то похоже, что изменение модуля должно работать, и атака становится довольно легкой.У меня нет доступа к реализации оракула, поэтому я могу только догадываться, что возможно.Если вы можете проверить для любого выбранного n ', c', является ли c '^ d mod n' действительным открытым текстом, закодированным OAEP, то вы дешифруете исходное сообщение - это не все, что вы можете сделать, фактически вы также можете восстановить d и, следовательно, учестьоригинальный модуль RSA.

(Более того, это действительно очень хорошая головоломка, поэтому я не хочу испортить удовольствие, дав пошаговый рецепт о том, как ее решить.)

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