Skip to content

Latest commit

 

History

History
39 lines (17 loc) · 2.65 KB

File metadata and controls

39 lines (17 loc) · 2.65 KB

Crypto | Hard | The time has come

Информация

Наши заводские программисты сделали подпись, которая работает быстро. Иногда слишком быстро... Мы собрали статистику "открытый текст - время подписи" - попробуйте восстановить ключ подписи и расшифровать флаг!

Деплой

Выдать участникам

Файлы из папки public

Описание

Решение

По заданию нам необходимо восстановить экспоненту из временных слепков для набора открытых текстов. Более подробно ознакомиться с атакой, которая основана на временом побочном канале, вы сможете, прочитав pdf-файл "Атака по времени".

Хочется обратить внимание на некоторые тонкости атаки: если обычно в данной атаке последний бит выбирается, исходя из правильности возведения в найденную экспоненту некоторого открытого текста (далее везде ОТ), для которого мы знаем шифротекст (далее ШТ); но мы будем возводить все имеющиеся ОТ и проверять, совпали ли временные слепки (потому что у нас нет ни одного ШТ для подписи). Если временные слепки для всех ОТ совпали, то бит найден верно.

Как же правильно подобрать параметры для атаки? Мы можем взять случайную экспоненту такого же размера (168 бит, 21 байт), и для неё нагенерировать материал "ОТ-временная метка" и подобрать параметры атаки.

Ещё сам алгоритм возведения в степень внешне отличается от общепринятого - но если приглядеться, то это всего лишь косметические изменения, поэтому нам не прийдется вносить изменения в атаку.

Атака реализована в скрипте.

Флаг

CUP{y0Ur3tH3b3$t_InCrYPto}