Рейтинг:1

Атака со слепой подписью RSA, но без публичных экспонентов

флаг br

Я пытался решить конкретную задачу, где мы должны подписать сообщение администратора.

Сначала это кажется классической атакой слепой подписи RSA, но в конце концов они не выдают общедоступные показатели степени (e, n), а e имеет длину Prime (128).

Сервер предлагает зашифровать что угодно n раз, но не сообщение администратора, и есть возможность проверки, если мы проверим сообщение администратора, мы получим флаг!

Но я полностью застрял здесь, любая помощь будет оценена по достоинству.

Спасибо.

Рейтинг:1
флаг my

Но я полностью застрял здесь, любая помощь будет оценена по достоинству.

Что ж, похоже, это вызов CTF (или что-то подобное), поэтому я не буду давать полный ответ; Я дам намеки на две связанные с этим подпроблемы.

Первая задача состоит в том, чтобы восстановить модуль $n$; Как мы можем сделать это? Если мы попросим зашифровать оба $с$ и $с^2$ (для некоторых $c < \sqrt{n}$; мы можем получить оценку размера $n$ запрашивая подпись произвольного значения), как мы можем получить кратное $n$ из этих двух значений $c^e \bmod n$ и $c^{2e} \bmod n$? Что, если бы мы сделали это с другой парой $ д, д ^ 2 $? Как это можно использовать?

Вторая проблема заключается в выводе значения $m^e \bmod n$, где мы знаем значение $n$ (но нет $е$) и где $м$ это сообщение администратора. Намекать: $a^e \times b^e \equiv (ab)^e \pmod n$, даже если мы не знаем, что $е$ является...

rengoku avatar
флаг br
Спасибо за внимание! и сообщение кажется простым ==> assert isPrime(to_sign) Так будут ли альтернативные обходные пути?
poncho avatar
флаг my
@rengoku: ну, тогда вам нужно вычислить модульную инверсию на шаге 2, чтобы найти $b$ при заданных $a, m$; не *так* сложно, я полагаю...
rengoku avatar
флаг br
Спасибо за помощь ! мне удалось это решить
Рейтинг:1
флаг ru

Осторожно, спойлеры:

Если сервер позволяет подписывать отрицательное целое число, вы можете подписать отрицательное сообщение администратора. Вы получите положительное значение. Отправьте отрицательный результат в качестве подтверждения, и вы его получите. Если вы все еще хотите положительный знак подписи -1 значение, которое вы получите, п-1. Просто добавь 1 в нем получить н. А для RSA сумма положительного и отрицательного одного и того же сообщения равна н. Просто вычтите шифрование негативного сообщения из н и вы получите шифрование положительного сообщения администратора.

Ответить или комментировать

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