Наши заводские программисты сделали подпись, которая работает быстро. Иногда слишком быстро... Мы собрали статистику "открытый текст - время подписи" - попробуйте восстановить ключ подписи и расшифровать флаг!
Файлы из папки public
По заданию нам необходимо восстановить экспоненту из временных слепков для набора открытых текстов. Более подробно ознакомиться с атакой, которая основана на временом побочном канале, вы сможете, прочитав pdf-файл "Атака по времени".
Хочется обратить внимание на некоторые тонкости атаки: если обычно в данной атаке последний бит выбирается, исходя из правильности возведения в найденную экспоненту некоторого открытого текста (далее везде ОТ), для которого мы знаем шифротекст (далее ШТ); но мы будем возводить все имеющиеся ОТ и проверять, совпали ли временные слепки (потому что у нас нет ни одного ШТ для подписи). Если временные слепки для всех ОТ совпали, то бит найден верно.
Как же правильно подобрать параметры для атаки? Мы можем взять случайную экспоненту такого же размера (168 бит, 21 байт), и для неё нагенерировать материал "ОТ-временная метка" и подобрать параметры атаки.
Ещё сам алгоритм возведения в степень внешне отличается от общепринятого - но если приглядеться, то это всего лишь косметические изменения, поэтому нам не прийдется вносить изменения в атаку.
Атака реализована в скрипте.
CUP{y0Ur3tH3b3$t_InCrYPto}