Файл:Double Point on Edwards Curve.svg
Материал из testwiki
Перейти к навигации
Перейти к поиску
Double_Point_on_Edwards_Curve.svg (SVG-файл, номинально 540 × 540 пкс, размер файла: 26 КБ)
Этот файл находится на Викискладе и может использоваться другими проектами. Информация с его страницы описания приведена ниже.
Краткое описание
| ОписаниеDouble Point on Edwards Curve.svg |
English: The plot presents the geometry meaning of point doubling on the Edwards curves
Here you can see doubling a point on the curve with Unlike the traditional elliptic curves where points The graph was created using the following script: import matplotlib.pyplot as plt
import numpy as np
from collections import namedtuple
# Utility type
Point = namedtuple('Point', ['x', 'y'])
d = -30
def edwards_y(x):
return np.sqrt((x*x - 1)/(d*x*x - 1))
# Draw Edwards curve
x = np.linspace(-1,1,200)
ypos = edwards_y(x)
yneg = -ypos
plt.figure(figsize=[6, 6])
plt.plot(x,ypos, 'b')
plt.plot(x,yneg, 'b')
# Draw neutral point
plt.scatter(0,1)
plt.annotate("O", (0.01, 1.01))
# Draw order 2 point
plt.scatter(0,-1)
plt.annotate("O'", (0.01, -1.05))
# Draw the point P
P=Point(-0.6, edwards_y(-0.6))
plt.scatter(*P)
plt.annotate("P", (P.x-0.05, P.y+0.05))
# Compute and draw 2P
def edwards_sum(x1,y1,x2,y2):
return ( (x1*y2+x2*y1)/(1+d*x1*x2*y1*y2) , (y1*y2 - x1*x2)/(1-d*x1*x2*y1*y2) )
P2 = Point(*edwards_sum(*P, *P))
plt.scatter(*P2)
plt.annotate("2P", (P2.x-0.05, P2.y+0.05))
P2_ = Point(-P2.x, P2.y)
plt.scatter(*P2_)
plt.annotate("-2P", (P2_.x+0.01, P2_.y+0.05))
# Draw the line that connects 2P and -2P
plt.axhline(P2.y, linestyle='--', color="grey")
# Draw the conic that P1, P2 and -(P1+P2) belong to
def conic_coefs(x,y):
"Computes coeffitiens of the quadratic form Axy + Bx + Cx + D"
return (d*x*x*y - 1,
y - x*x,
x*(1-y),
x*(1-y)
)
def conic_y(x, A,B,C,D):
return -(B*x + D)/(A*x + C)
A,B,C,D = conic_coefs(*P)
# Left and right branches of the hyperbole
xleft = np.linspace(-1,-0.3,50)
xright = np.linspace(-0.01, 1, 50)
yleft = conic_y(xleft, A,B,C,D)
yright = conic_y(xright, A,B,C,D)
plt.plot(xleft, yleft,"--", color="green")
plt.plot(xright, yright,"--", color="green")
# Draw axis lines
plt.axhline(0, color='black')
plt.axvline(0, color='black')
# Set same scale on x and y
plt.gca().set_aspect('equal', adjustable='box')
plt.savefig("Double_Point_on_Edwards_Curve.svg")
Русский: График иллюстрирует геометрический смысл удвоения точек на кривых Эрдвадса На графике изображено удвоение точки на кривой с параметром |
| Дата | |
| Источник | Собственная работа |
| Автор | Pakuula |
Лицензирование
Я, владелец авторских прав на это произведение, добровольно публикую его на условиях следующей лицензии:
Этот файл доступен по лицензии Creative Commons «С указанием авторства — С сохранением условий» версии 4.0 Международная
- Вы можете свободно:
- делиться произведением – копировать, распространять и передавать данное произведение
- создавать производные – переделывать данное произведение
- При соблюдении следующих условий:
- атрибуция – Вы должны указать авторство, предоставить ссылку на лицензию и указать, внёс ли автор какие-либо изменения. Это можно сделать любым разумным способом, но не создавая впечатление, что лицензиат поддерживает вас или использование вами данного произведения.
- распространение на тех же условиях – Если вы изменяете, преобразуете или создаёте иное произведение на основе данного, то обязаны использовать лицензию исходного произведения или лицензию, совместимую с исходной.
Краткие подписи
Геометрический смысл удвоения точки на кривой Эдвардса
Geometry meaning of doubling a point on an Edwards curve
Элементы, изображённые на этом файле
изображённый объект
Некоторое значение без элемента в Викиданных
20 декабря 2020
История файла
Нажмите на дату/время, чтобы увидеть версию файла от того времени.
| Дата/время | Миниатюра | Размеры | Участник | Примечание | |
|---|---|---|---|---|---|
| текущий | 07:29, 20 декабря 2020 | 540 × 540 (26 КБ) | wikimediacommons>Pakuula | Uploaded own work with UploadWizard |
Использование файла
Следующая страница использует этот файл: