Кубок CTF России

Разбор: Weird RSA с отбора X Кубка CTF

Условие: crypto с меткой beginner. Участникам дают скрипт шифрования и открытые параметры. По таблице организаторов задание решили 646 раз.

Идея

Это учебный RSA над кольцом многочленов над конечным полем из 257 элементов. «Простые» здесь — неприводимые многочлены степеней 58 и 59, а секрет лежит в разложении модуля на множители.

Ход решения

  • Разложить модуль на множители: над конечным полем это быстро, метод Кантора — Цассенхауса встроен в factor() в Sage
  • Посчитать аналог функции Эйлера: число обратимых элементов кольца
  • Найти приватную экспоненту как обратную к e = 65537
  • Расшифровать и прочитать коэффициенты многочлена как байты флага

Что вынести

Стойкость RSA держится на трудности факторизации целых чисел. Переносите конструкцию в другую структуру: сначала спросите, остаётся ли там задача трудной.

Пример

Пример условный. В команде заводят правило: перед атакой на самодельный шифр выписать, на какой трудной задаче он держится, и проверить её в новой структуре.

Чек-лист

  • ☐ Определён тип структуры
  • ☐ Понятно, на чём держится стойкость
  • ☐ Разложение проверено
  • ☐ Приём записан в разбор команды

Документ уже составлен

Открыть «Разбор задачи для команды CTF» →

Основание: условие и решение авторов задачи, репозиторий acisoru/ctfcup2026-quals, crypto/weird-rsa. Канал не принадлежит организаторам; официальный сайт — ctfcup.ru.

Первоисточник