Рейтинг:3

Можно ли вычислить обратное умножение точки на эллиптической кривой?

флаг gp

Название должно сбивать с толку. Представьте, что у нас есть эта кривая:

$у^2 = х^3 + 9х + 17$ над $\mathbb F_{23}$

И мы знаем

[4]Р = (19, 20)

[8]Р = (12, 17)

Если у нас есть только значение $[8]П$, можно ли вычислить $2^{-1}Х$ и $2^{-1}Y$ из $[8]П$ получить $[4]П$?

kelalaka avatar
флаг in
Уполовинивание точки: [Уполовинивание точки на эллиптических кривых четного порядка](https://crypto.stackexchange.com/q/66106/18298) и статья [Удвоение точки на эллиптических кривых четного порядка](https://arxiv.org /pdf/0706.4379.pdf). Я исправил запись, и даже мы говорим $x(P)$ для x-координаты точки $P$. Эта кривая имеет четный порядок = 32, поэтому она применима, но не так, как вы выглядите. Удвоение очков не работает таким образом.
kelalaka avatar
флаг in
[Если вы посмотрите на формулы сложения] (https://crypto.stackexchange.com/a/66296/18298), вы увидите, что когда $P_1 = P_2 = [2]P_1$ не умножается на 2. Вы можете подключить ваши числа и выполните арифметику в первой ссылке, чтобы найти его без дискретного журнала.
Lordi avatar
флаг gp
@kelalaka Спасибо за ваш ответ. Возможно ли деление точки пополам на эллиптических кривых нечетного порядка?
kelalaka avatar
флаг in
Будьте осторожны: деление пополам в четном порядке может привести к двойному решению, которое не позволит решить DLOG. В нечетном случае пусть $n = 2k-1$ будет порядком, тогда мы можем найти половинку как; $[1/2]G = [k]G$ почему? Поскольку $[2k-1]G = \mathcal{O}$, тогда $[2k-1]G + G = G$, поэтому $[k]G = [1/2]G$. Это корректно определенное отображение для абелевых групп нечетного порядка.
kelalaka avatar
флаг in
Теперь вы можете проголосовать и принять в Cryptography.SE. голосуйте за, если ответ хороший, принимайте, если ответ удовлетворительный.
Рейтинг:1
флаг in

Поскольку 2 делит порядок группы (который равен 32), есть два прообраза. Их можно найти как корни многочлена умножения на 2 минус цель $х$ (который можно вычислить из полиномы деления).

Пример в шалфее:

мудрец: E = EllipticCurve(GF(23), [9, 17])                                                                                                                                                                                                      
шалфей: E.multiplication_by_m(2)                                                                                                                                                                                                                
((х^4 + 5*х^2 + 2*х - 11)/(4*х^3 - 10*х - 1),
 (8*x^6*y - 8*x^4*y + 6*x^3*y + 3*x^2*y + 3*x*y + 6*y)/(-5*x^ 6 + 2 * х ^ 4 - 9 * х ^ 3 + 9 * х ^ 2 + 11 * х + 4))

Это две рациональные карты для вычисления $х$ и $у$ точки $[2](х,у)$. Мы хотим $х$ быть равным 19, поэтому:

мудрец: (E.multiplication_by_m(2)[0] - 19)
  .числитель()
  .univariate_polynomial()
  .roots(кратность=ложь)
[20, 10]

Мы можем убедиться, что $[2](20, *) = (19, *)$. Обратите внимание, что знак $у$ должен быть выбран в соответствии с выходным знаком.

мудрец: P = E.lift_x(20)                                                                                                                                                                                                                        
шалфей: 2*п                                                                                                                                                                                                                                     
(19 : 3 : 1)
шалфей: 2*(-P)                                                                                                                                                                                                                                  
(19 : 20 : 1)

Можно повторить дважды, чтобы получить 4-корень, или напрямую использовать карту умножения на 4 (что немного менее эффективно).

kelalaka avatar
флаг in
Есть ли формальное определение умножения на_м?
Fractalice avatar
флаг in
@kelalaka `multiplication_by_m` — это пара функций $(f(x),y\cdot g(x))$, такая, что эта пара равна $[n]P$, когда $P=(x,y)$. На странице википедии о полиномах деления, которую я связал, есть формулы для построения $f(x)$ и $g(x)$, которые являются рациональными функциями.
kelalaka avatar
флаг in
И. вы можете отредактировать вопрос, чтобы его было легче найти для будущих ссылок.

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

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