椭圆曲线上的点数

发布于 2024-07-11 07:39:21 字数 255 浏览 12 评论 0原文

如果您有一条以下形式的椭圆曲线:

y^2 = x^3 + a*x + b  (mod p)

是否有一个好的程序来计算该曲线上的点数?

我已经阅读了 Schoof 和 Schoof-Elkies-Atkin (SEA) 算法,但我正在寻找开源实现。 有谁知道一个可以做到这一点的好程序?

另外,如果 a 为 1,b 为 0,则无法使用 SEA 算法,因为 j 不变量为 0。这是否正确?

If you have an elliptic curve in the form of:

y^2 = x^3 + a*x + b  (mod p)

Is there a good program to calculate the number of points on this curve?

I have read about Schoof's and Schoof-Elkies-Atkin (SEA) algorithm, but I'm looking for open source implementations. Does anyone know a good program that can do this?

Also if a is 1 and b is 0, the SEA algorithm can't be used because the j-invariant is 0. Is this correct?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

人生戏 2024-07-18 07:39:21

您听说过 Sage 吗?

Sage 包含 Pari,它是数论的开源包。 Pari 实施了 SEA。

来自 http://wstein.org /papers/2008-bordeaux/sphinx/elliptic_curves.html#schoof-elkies-atkin-point-counting

sage: k = GF(next_prime(10^20))
sage: E = EllipticCurve(k.random_element())
sage: E.cardinality()                   # less than a second
100000000005466254167

Have you heard of Sage?

Sage includes Pari, which is an open source package for number theory. Pari has an implementation of SEA.

From http://wstein.org/papers/2008-bordeaux/sphinx/elliptic_curves.html#schoof-elkies-atkin-point-counting:

sage: k = GF(next_prime(10^20))
sage: E = EllipticCurve(k.random_element())
sage: E.cardinality()                   # less than a second
100000000005466254167
时光病人 2024-07-18 07:39:21

为此,我也一直在使用 Mike Scotts 程序(miracl)。
出于好奇,我可以问一下:您可以使用该软件生成具有素数群阶的域有多大?
我升到了 1024 位,现在退出了,因为我需要办公室 PC 做其他事情,而不是连续几周运行点计数软件。
您是否创建了更大的域? 如果是这样,我会很高兴获得域参数,如果您没有异议,我会将它们包含在我的 ECC 软件学术签名中。

我的域名可以在ECC 域名页面处找到。
可以从这里访问使用它们的软件带有下载页面链接的手册< /a>

问候。

I have been using Mike Scotts program(miracl) for this purpose also.
Being just curious may I ask: How large were the domains with prime group order you could produce with the software?
I got up to 1024 bit and now quit because I need my office PC for something other than running point counting software for weeks on end.
Did you produce larger domains? If so I would be glad to get the domain parameters and if you don't have objections would include them in my ECC-Software Academic Signature.

My domains can be found here ECC Domain Page.
The software to use them with is accessible from here Manual with Link to download page

Regards.

请叫√我孤独 2024-07-18 07:39:21

这里有一些链接:
P1363 草案部分内容的实现(回溯此页面的备份链接 )。

There are some links here:
Implementations of portions of the P1363 draft (wayback backup link of this page).

倥絔 2024-07-18 07:39:21

我试过圣人。 我大约花了 3-4 个小时才编译成 x64 ubuntu。 这似乎是一个很好的计划。 但是当 j 不变量为 0 时,SEA 算法就无法使用,并且如果使用较大的 p/k 值,似乎会出现一些问题。

经过更多搜索后,我还发现了奇迹: http://www.shamus.ie /index.php?page=椭圆曲线
他们有普通 Schoof 和 SEA 算法的实现。 但该程序在使用大输入值时也存在一些问题。 运行 3-4 小时后崩溃了:/。 我尝试修复它,目前它再次运行,希望它能起作用。

编辑:现在可以了。 上面链接中的程序与 Rasmus Faber 提供的程序相同。

I have tried Sage. It took me around 3-4 hours to compile to x64 ubuntu. It seems to be a good program. But when the j-invariant is 0 the SEA algorithm can't be used, and then it seems to have some problems if you use large values for p/k.

After searching some more I also found miracl: http://www.shamus.ie/index.php?page=elliptic-curves
They have implementations for both the normal Schoof and SEA algorithm. But this program also has some problems when using large input values. After 3-4 hours of running it crashed :/. I tried to fix it, and currently it's running again so hopefully it will work.

Edit: It works now. The program in the link above is identical to the one Rasmus Faber gave.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文