Рейтинг:3

Как эффективно найти расстояние между двумя закрытыми ключами точки EC

флаг es

Существует два закрытых ключа EC $x_1$ и $x_2$, где их соответствующие открытые ключи на известной базовой точке $G$ находятся $X_1=x_1G$ и $X_2=x_2G$ соответственно. Порядок циклической группы, порожденной $G$ является $\ell$.

Эти закрытые ключи были выбраны таким образом, что расстояние $d=|x_1-x_2|\ (mod\ell)$ меньше чем $2^n$, за объявленную стоимость $n$.

Данный $X_1$, как мы можем определить $д$ более эффективно, чем просто многократное добавление/вычитание $G$ к $X_1$ пока не будет совпадения с $X_2$?

Рейтинг:2
флаг ng

Мы можем использовать второстепенный вариант Детский шаг / гигантский шаг найти $д$ с в порядке $3\,2^{n/2}$ добавление точек (и нормализация к уникальному точечному представлению). Мы делаем детские шаги из $X_1$, и гигантские шаги от $X_2$ (в обе стороны для более позднего, чтобы компенсировать неизвестный знак $x_1-x_2$). Вот оно:

  • позволять $m=\lceil2^{n/2}\rceil$
  • позволять $W_0:=X_1$
  • за $я$ от $1$ к $м-1$ (Шаги малыша)
    • установлен $W_i=W_{i-1}+G$
      примечание: здесь $W_i=X_1+i\,G$
  • позволять $Н=м\,G$ (который можно получить как $H=W_{m-1}+G-W_0$ )
  • позволять $U:=X_2$ и $V:=X_2-H$
  • позволять $j=0$
  • повторить (Гигантские шаги)
    примечание: здесь $U=X_2+(j\,m)\,G$ и $V=X_2-((j+1)\,m)\,G$
    • если $U$ находится в $W_i$
      • вывод $|j\,m-i|$ и остановись
    • если $В$ находится в $W_i$
      • вывод $(j+1)\,m+i$ и остановись
    • позволять $U:=U+H$ и $V:=V-H$
    • позволять $j:=j+1$

Если из условий, изложенных в примечаниях, следует, что этот алгоритм всегда останавливается с выходом $д$ примерно после $d/2^{n/2}$ (в большинстве $м$) итераций повторяющегося цикла. Обратите внимание, что при использовании соответствующей структуры данных стоимость поиска $U$ и $В$ в таблице $W_i$ по существу постоянна относительно $n$, таким образом, основные вычислительные затраты — это добавление точек (и нормализация их результата так, чтобы $W_i$ можно эффективно искать).

Проблема в том, что для этого требуется много памяти для таблицы $W_i$, и алгоритм, как указано, является последовательным. Эту проблему можно решить и распределить поиск между несколькими машинами, используя методы, описанные Полом К. ван Оршотом и Майклом Дж. Винером. Параллельный поиск столкновений с помощью криптоаналитических приложений, в Журнал криптологии, 1999 г..

флаг cn
Это отвечает на вопрос в теле, но не на вопрос в заголовке, потому что предложенный алгоритм *более* эффективен, но определенно не *на самом деле* эффективен.
knaccc avatar
флаг es
Спасибо, я реализовал ваш метод, и он отлично работает! Когда n = 24, я получаю ускорение примерно в 100 раз по сравнению с наивным методом.
fgrieu avatar
флаг ng
@knaccc: для n = 24 я ожидал бы ускорения примерно в 1000 раз для эффективной структуры данных, ищущих $U$ и $V$ в $W_i$.
knaccc avatar
флаг es
@fgrieu Я думаю, это потому, что библиотека EC, которую я использую, дает результаты сложения/вычитания в координатном пространстве P3 (XYZT), поэтому либо будут накладные расходы от умножения элементов поля для нормализации координаты Z до Сравнение P3 с P3, или, в качестве альтернативы, будут операции элемента поля, необходимые для преобразования из P3 в координату с одним знаком для целей сравнения одной координаты.
fgrieu avatar
флаг ng
@knaccc: ах, это имеет смысл. Если проверка того, что добавление точек достигло нейтральной точки, выполняется во много раз быстрее, чем создание нормализованного представления точек, необходимого для поиска, то ожидаемое ускорение уменьшается примерно в $\alpha$.
Рейтинг:2
флаг bd

Ты можешь использовать маленький шаг гигантский шаг или скорее Лямбда-алгоритм Полларда (или алгоритм кенгуру) найти $д$ с использованием $O(2^{n/2})$ групповые операции, которые превзойдут ваш линейный поиск примерно $2^n$ групповые операции, если $n$ не слишком мал.

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

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