Skip to content

Latest commit

 

History

History

crypto-carnival

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Crypto | Crypto Carnival

Информация

«Как бы интересно стало жить, если бы можно было отбросить заботу о счастье» — так думали наши предки до того, как роботы заменили людей почти во всех отраслях промышленности.

Чем меньше у людей стало работы, тем больше появилось развлечений. А что ещё делать, когда человечество живёт в эпоху пика развития технологий?

Один из таких праздников — Карнавал криптографии. Но вы отправитесь туда не за развлечением.

Вам предстоит посмотреть на всё многообразие шифров и выявить среди них самый безопасный.

nc host 44323

Описание

Сервис реализует четыре "шифра": AES, RSA, HMAC и Blowfish. Мы можем зашифровать любое сообщение любым шифром, но не можем ничего расшифровать. Есть возможность уже зашифрованное сообщение "перешифровать" другим шифром. Изначально в сервисе зашифрован флаг.

Решение

Из четырёх шифров нас интересуют только два:

Как известно, RSA OAEP уязвим к атаке Мэнгера, которую мы и реализуем.

Для реализации атаки нам нужен сторонний канал при расшифровке, который показывает равенство старшего байта полученного открытого текста нулю. Другими словами, нужно уметь отвечать на вопрос bytes(decrypt(ct))[0] =?= 0.

У нас нет прямого доступа к функции расшифровки, зато есть перевод шифртекста в AES. Тогда мы можем использовать длину шифртекста AES как сторонний канал, поскольку мы можем её получать. Нужно подобрать такой размер модуля RSA, чтобы при наличии нулевого старшего байта длина AES-шифртекста была равна N блоков, а при наличии ненулевого — N+1 блоков.

После этого нам останется просто применить атаку Мэнгера и расшифровать флаг.

Пример решения

Флаг

Cup{w31cOm3_t0_th3_c4RN1v4L_0f_cRyp70}