Рейтинг:2

Как узнать, каков порядок базовой точки эллиптической кривой?

флаг us

я хотел использовать https://github.com/AntonKueltz/fastecdsa библиотека и параметры функции для создания кривой:

p, # (long): значение p в уравнении кривой.
a, # (длинный): значение a в уравнении кривой.
b, # (long): значение b в уравнении кривой.
q, # (длинный): порядок базовой точки кривой.
gx, # (long): координата x базовой точки кривой.
gy, # (long): Координата y базовой точки кривой.

Мне нужна вот эта кривая: https://docs.starkware.co/starkex-docs-v2-deprecated/crypto/stark-curve Он дает информацию о $р, а, б, гх, гы$. Но не $q$

Как сделать вывод $q$ параметр?

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

Теоретический ответ здесь

Практически можно использовать SageМатематика найти его;

а = 1
б = 3141592653589793238462643383279502884197169399375105820974944592307816406665
р = 2^251 + 17*2^192 +1

E = Эллиптическая кривая (GF (p), [0,0,0,a,b])
печать (Е)
печать (E.abelian_group())

карта = E.cardinality()
print("количество элементов =",карта)
фактор(карта)

G = E(874739451078007766457464989774322083649278607533249481151382481072868806602,152666792071518830868575557812948353041420400780739481342941381225525861407)
print("Заказ генератора q=", G.order())

Это выводит

    Elliptic Curve defined by y^2 = x^3 + x + 3141592653589793238462643383279502884197169399375105820974944592307816406665 over Finite Field of size 3618502788666131213697322783095070105623107215331596699973092056135872020481
Additive abelian group isomorphic to Z/3618502788666131213697322783095070105526743751716087489154079457884512865583 embedded in Abelian group of points on Elliptic Curve defined by y^2 = x^3 + x + 3141592653589793238462643383279502884197169399375105820974944592307816406665 over Finite Field of size 3618502788666131213697322783095070105623107215331596699973092056135872020481
кардинальность = 3618502788666131213697322783095070105526743751716087489154079457884512865583
Порядок генератора q= 3618502788666131213697322783095070105526743751716087489154079457884512865583

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

Кроме того, кофактор $ч$ равен 1, так как порядок кривой простой. Кофактор определяется как количество $к$ рациональные точки кривой $h = \#E(k)/n $ разделить на порядок базового элемента $n$

Я не смог найти никакой информации о магическом числе (ничего в моем рукаве). Причина выбора $G$ непонятно. Хотя это психологический, его следует предоставить.


SageMath использует sea.gp который является быстрой реализацией алгоритма SEA. Эта библиотека реализована в пари/ГП. Хороший слайд о sea.gp Алгоритм SEA в PARI/GP.

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

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