Рейтинг:5

Подписание RSA — экзистенциальная подделка и вопрос о префиксе сообщения. Это странно

флаг ua

Я новичок в этом. Пожалуйста, будьте добры. У меня есть теоретический вопрос, который я хотел бы проверить на вменяемость:

Боб и Алиса выполняют RSA-подпись без хеш-функции — просто вводят сообщение и получают подпись.

Сообщения, которые Боб и Алиса отправляют друг другу, представляют собой случайные числа.

Без задействования хеш-функции злоумышленник может создать сообщение с нужной ему подписью. Но они не могут контролировать сообщение.

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

Но Боб и Алиса хотят сделать эту схему безопасной, поэтому добавляют к своим сообщениям известный префикс. Они добавляют некоторую структуру.

Поэтому вместо сообщения вида: 484262 Выглядит так: префикс_484262

Вот что я хочу проверить на вменяемость:

Добавляя известный префикс, злоумышленник может подделывать сообщения только методом грубой силы, и в результате безопасность этой схемы пропорциональна длине префикса.

То есть длина префикса имеет значение. Например, если бы префикс был всего одним октетом, предположительно злоумышленнику потребовалось бы около 255 попыток, чтобы подделать сообщение, которое работает. Но если бы префикс состоял из двух октетов, злоумышленнику потребовалось бы 65 536 попыток.

Еще одна вещь, которую я хочу проверить на вменяемость, это:

Знание префикса не является преимуществом для перебора сообщений (кроме того факта, что злоумышленник знает, как должны выглядеть выходные данные).

Спасибо за любую помощь. Я ценю его.

Maarten Bodewes avatar
флаг in
Может быть, вы могли бы проверить [этот ответ] (https://crypto.stackexchange.com/a/60039/1172). Обратите внимание, что заполнение PKCS # 1 v1.5 в основном представляет собой префикс + хеш, который подвергается модульному возведению в степень с закрытым ключом. Также обратите внимание, что вы хотите, чтобы результат был примерно таким же, как модуль, поэтому использование префикса с динамическим размером имеет смысл.
Рейтинг:5
флаг my

Добавляя известный префикс, злоумышленник может подделывать сообщения только методом грубой силы, и в результате безопасность этой схемы пропорциональна длине префикса.

Вот мое понимание сценария (и если это неверно, то, что я говорю, становится недействительным):

  • Алиса (и Боб) хотят вычислить $M^d \bmod n$, для произвольных сообщений $ млн $ так долго как $ млн $ имеет согласованный префикс (и секрет $д$, но публичный $n$ и $е$ (который является общедоступным показателем, соответствующим частному показателю $д$).

  • Атака, которую вы рассматриваете, представляет собой слепую атаку RSA; у злоумышленника есть сообщение $М'$ и они хотят вычислить $M'^d \bmod n$, Однако $М'$ не начинается с префикса. Итак, злоумышленник выбирает случайное значение $R$, вычисляет $R^eM'$, и проверяет, есть ли префикс — если он есть, они передают его Алисе, которая подписывает его, формируя $R M'^d$, а атакующий разделяет $R$ и они побеждают.

Вероятность (за итерацию) успешной атаки зависит от вероятности того, что $R^eM'$ имеет префикс, который пропорционален длине префикса.

Если это сценарий, что ж, это не единственная атака, о которой нам нужно беспокоиться.

Другая атака может быть, если злоумышленник найдет большое количество гладких целых чисел, которые все начинаются с префикса, и попросит Алису «подписать» их; гладкие целые числа - это те, у которых есть только малые множители. Если злоумышленник сможет найти $к$ такие гладкие целые числа, каждое из которых состоит только из первых $к$ простые числа, затем (игнорируя возможность того, что линейные уравнения не являются независимыми; это можно легко обойти, имея пару дополнительных), злоумышленник может узнать значение $p^d \bmod n$ для всех первых $к$ простые числа $р$.

Злоумышленник может использовать это несколькими способами, наиболее вероятным способом является сокращение времени поиска исходной атаки: если мы предположим, что злоумышленник может узнать $2^d \bмод п$, то они могут проверить $2^z М'$ для увеличения значений $z$; для каждого неудачного теста они будут делать удвоение, что намного дешевле, чем исходное (где умножение на $2^e \bmod n$ будет наиболее эффективным из возможных).

Joshua avatar
флаг cn
Я пришел к выводу, что RSA хорошо известен, но его сложнее использовать, чем DSA. Мы просто привыкли избегать недостатков RSA (до тех пор, пока мы не перестанем: кто-то взломал большое количество ключей, сгенерированных глупым алгоритмом, поместив их слишком близко к средней точке). Конечно, у DSA есть свои. Не допускайте утечки информации о k; используйте криптостойкий RNG, чтобы получить новый k для каждого сообщения.
Рейтинг:3
флаг ng

Я предполагаю, что предлагаемая система подписи принимает сообщение $ млн $, преобразует его в целое число $м$ меньше, чем $n$ путем добавления фиксированной константы $с$ слева от выражения $ млн $ как $я$ цифры в некотором основании $b\ge2$ (основание 10 в вопросе) таким образом $m:=c\,b^i+M$, затем строит подпись $\sigma=\mathrm{Sig}(M)$ по учебнику RSA с закрытым ключом $(н,д)$, это $\sigma:=m^d\bmod n$; и верификатор дан $(п,е)$ и $(М,\сигма)$ (или просто $\сигма$) вычисляет $\sigma^e\bmod n$ затем проверяет, что $c\,b^i+M$. Пока я оставляю это неуточненным, если $я$ фиксировано или зависит от $ млн $ (и как).

Добавляя известный префикс, злоумышленник может подделывать сообщения только методом грубой силы, и в результате безопасность этой схемы пропорциональна длине префикса.

Чтобы это утверждение имело шанс остаться верным, мы должны добавить "вплоть до префикса $с$ становится настолько большим, что факторизация $n$ становится самой легкой атакой". Я предполагаю это в следующем.

Это утверждение кажется верным (но у нас нет доказательства), если мы примем за определение безопасности подписи Экзистенциальная невозможность подделки при атаке с известным сообщением, в котором у злоумышленников есть открытый ключ $(п,е)$ плюс ряд действительных $(M_j,\sigma_j)$ пары для случайного $M_j$, и попытайтесь представить $(М,\сигма)$ пара для $ млн $ ни один из $M_j$.

Но это неправильно, если мы возьмем Экзистенциальная невозможность подделки при атаке выбранного сообщения, в котором злоумышленнику разрешено запрашивать подпись $\sigma_j$ любого сообщения $M_j$ по своему выбору, перед выставкой $(М,\сигма)$ как указано выше. Проблема в том, что при этой модели безопасности есть атаки лучше, чем брутфорс.

  • Атака проста, если мы позволяем $я$ быть количеством цифр $ млн $ в базе $b$ (будь то с подавлением начальных нулей или без него) и используйте небольшую общедоступную экспоненту $е$ (например, 3): злоумышленник находит подпись любого сообщения $ млн $ он считает нужным (до некоторого предела размера) из подписи сообщения $М'=М\,б^е$ если $ млн $ достаточно короток, чтобы соответствовать $c\,b^{i'}+M'=c\,b^{i+e}+M\,b^e<n$ требование, так как $\mathrm{Sig}(M')\,b^{-1}\bmod n=\mathrm{Sig}(M)$.
  • Для фиксированного $я$, все сложнее, но Десмедт и Одлызко атака позволяет подделку с трудностью, намного меньшей, чем грубая сила, далеко не удвоенной, когда мы позволяем $с$ быть в два раза больше, и даже субэкспоненциальным с $\log_2(с)$.
  • Предыдущая атака становится легче, если мы позволим $я$ фиксируется для данного $с$, но равно размеру $с$ в базе $b$.

Знание префикса не является преимуществом для перебора сообщений (кроме того факта, что злоумышленник знает, как должны выглядеть выходные данные).

Мотивация подписи состоит в том, чтобы разрешить проверку без секретной информации, и секретность префикса противоречит этому. Я все же предположу.

Тогда это утверждение верно, за исключением нереалистичных атак с использованием только ключей, но спорно по той самой причине, которая делает его правильным: злоумышленники знают по крайней мере один $(M_0,\sigma_0)$ пара в дополнение к открытому ключу $(п,е)$, и поэтому они могут легко найти префикс $с$ вычисляя ${\sigma_0}^e\bmod n$.

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

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