Я пытаюсь решить проблему CTF, связанную с шифрованием RSA.
Я могу запустить двоичный код задачи, который будет считывать флаг из файла, флаг будет соответствовать следующему регулярному выражению:
AB1234C\{[0-9a-f]{32}\}\n
Таким образом, общий размер флага составляет 42 байта, включая новую строку.
Затем флаг дополняется случайным заполнением до 128 байтов.
Я могу выбрать публичный показатель e, если e>1. Двоичный файл будет генерировать случайный 2048-битный модуль, используя функцию python. Crypto.PublicKey.RSA.generate (биты = 2048)
Двоичный файл распечатает модуль, а также зашифрованный текст зашифрованного дополненного флага.
Я могу запустить двоичный файл несколько раз, модуль и заполнение будут разными для каждого запуска.
Я думал, что это может быть связано с атакой Хастада, но, похоже, это работает только для линейного заполнения, а атака с коротким блоком Копперсмита работает только в том случае, если у вас есть два сообщения со случайным заполнением, но зашифрованным с одним и тем же модулем, которого у меня здесь нет из-за тот факт, что каждый раз, когда я запускаю двоичный файл, генерируется другой модуль.
Я все еще новичок, когда дело доходит до криптографии, поэтому я мог ошибаться в этих атаках и, возможно, упустил что-то очевидное.
Я считаю, что уязвимость может быть связана с размером заполнения, поскольку дополненное сообщение составляет только половину длины модуля.
Мне не обязательно нужно решение, а просто толчок в правильном направлении. Спасибо.