Skip to content

Latest commit

 

History

History
27 lines (15 loc) · 2.36 KB

File metadata and controls

27 lines (15 loc) · 2.36 KB

Crypto | Medium | Important task

Информация

На одном собрании директор завода поставил мне очень важную задачу, которую я сохранил на своем компьютере, но после атаки злобных какеров на компьютер часть фразы была утеряна... Постойте, у меня же сохранилась контрольная сумма от фразы!

Деплой

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

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

Описание

Решение

Нам нужно востановить текст, ориентируясь на контрольную сумму. Мы знаем алгоритм востановления CRC - можем воспользоваться им. Его описание приведено в pdf-файле.

Ещё хочется отметить, что нам "повезло" и атака востановила тот же флаг, что был задуман нами. Иногда случается коллизия и находится другой текст с таким же CRC - это связано с тем моментом, что при инвертировании таблицы мы могли выбрать не тот элемент (например, в атаке мы берем крайний байт при составлении таблицы table_reverse - вот в ней может быть неоднозначное соответствие между последним байтом и значением CRC, если бы мы её строили "честно" - то есть брали при построении за основу таблицу table_forward). В таком случае нам нужно было бы обойти дерево всех возможных случаев и восстановить все тексты. Критерием отбора "настоящего" флага можно считать печатаемость всех символов, а если и этого будет мало, то осмысленность текста.

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

Флаг

CUP{D3AdLiNs_It_Ea$Y}