Рейтинг:3

два близко расположенных ключа ECDSA

флаг yt

Предположим, что вы используете два закрытых ключа $x_1$ и $x_2$ для генерации двух открытых ключей ECDSA $y_1$ и $y_2$ (например, используется в качестве открытого ключа для биткойн-адреса). Расстояние между $x_1$ и $x_2$ мала (например, меньше ${2^{20}}$). Что Плохо об этом?

Я знаю, что если кто-то сломается $x_1$, это, безусловно, приводит к нарушению $x_2$ поиск с небольшим усилием. Но допустим, что кроме $|x_1 - x_2|$ это небольшое число, все остальные методы безопасны, например. никогда не используйте случайные одноразовые номера повторно при подписании, есть ли другие плохие последствия этого (кроме того, что разбить одну монету — все равно что разбить две)?

kelalaka avatar
флаг in
Основной атакой на подпись является подделка подписи. Существует также полный отказ от того, что атака раскрывает ключ. Что еще вы хотите?
Sean avatar
флаг yt
Скажем, учитывая существующую подпись, которая генерируется с использованием $x_1$. Как злоумышленник может подделать другую (сгенерированную с помощью $x_2$), если он не знает случайный одноразовый номер, использованный в первой подписи?
kelalaka avatar
флаг in
Если вы подписываете сообщение два раза двумя ключами, используя разные одноразовые номера, это может дать информацию о расстоянии одноразовых номеров.
Sean avatar
флаг yt
Но если вы подписываете одно и то же сообщение с помощью одного и того же ключа, не будет ли это раскрытием расстояния между одноразовыми номерами (даже хуже?) --- Итак, что, если никто никогда не подпишет одно и то же сообщение во второй раз?
Рейтинг:1
флаг es

Позволять $d=x_2-x_1$, а открытые ключи пусть лежат на известной базовой точке $G$. Таким образом, пары ключей будут $(x_1, X_1=x_1G)$ и $(x_2, X_2=x_2G)$.

Значение $д$ может быть форсирован с помощью Большой шаг Маленький шаг метод, который займет менее секунды на современном процессоре при $n=20$.

Если вы используете подпись Шнорра для подписи сообщения $м$ с использованием $X_1$, вы бы создали пару подписей $(с, г_1)$ путем выбора равномерно случайного одноразового номера $к$, а затем вычисление $c=H(kG\mathbin\| м)$ и $r_1=k-cx_1$.

Подпись проверяется проверкой $c\overset{?}{=}H(r_1G+cX_1 \mathbin\| m)$.

Злоумышленник, совершивший перебор $д$, может затем создать подпись для того же сообщения, но, по-видимому, подписанного вашим другим закрытым ключом. $x_2$, следующее:

значения $к$ и $с$ останется прежним. Затем рассчитать $r_2=r_1-cd$. Поддельная подпись - это пара $(с, г_2)$.

Подпись будет проверена путем проверки того, что $c\overset{?}{=}H(r_2G+cX_2 \mathbin\| m)$.

Это успешно проверит, если $kG==r_2G+cX_2$, что будет верно, если $k==r_2+cx_2$.

Заменив $r_2==r_1-cd$ и $x_2==d+x_1$, мы можем видеть, что это будет верно благодаря нашему выбору $r_2$.

Эта атака работает только в том случае, если хеш или сообщение не связывают подпись с конкретным открытым ключом. Если протокол требует, чтобы $с$ вместо этого был рассчитан как $c=H(kG\mathbin\| X_1\mathbin\| m)$, атака не сработает, потому что значение $с$ нельзя было повторно использовать между подписями (поскольку верификатор проверял бы подпись путем конкатенации $X_2$ внутри хеша вместо $X_1$).

poncho avatar
флаг my
"Согласно вопросу, это займет не более $2^{21}$ попыток, что займет менее часа на современном процессоре."; на самом деле это можно сделать примерно за $2^{11}$ попыток (скажем, с помощью Big-Step-Little-Step); это скорее секунда...
poncho avatar
флаг my
Нет, Большой-Шаг-Малый-Шаг просто включает в себя дополнения...
knaccc avatar
флаг es
@poncho Спасибо, сначала я был сбит с толку, но теперь я вижу, что поиск в хеш-таблице выполняется намного быстрее, чем выполнение сложения. Я применил ваш метод, чтобы проверить его, и он работает очень хорошо.

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

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