10个重大版本发布

0.10.0 2023年2月28日
0.9.0 2022年5月4日
0.8.0 2021年9月2日
0.7.0 2021年6月3日
0.0.0 2018年8月29日

#95 in 算法

Download history 8626/week @ 2024-04-23 8138/week @ 2024-04-30 8837/week @ 2024-05-07 12533/week @ 2024-05-14 12248/week @ 2024-05-21 13344/week @ 2024-05-28 8625/week @ 2024-06-04 8584/week @ 2024-06-11 8537/week @ 2024-06-18 7448/week @ 2024-06-25 6527/week @ 2024-07-02 7109/week @ 2024-07-09 9526/week @ 2024-07-16 10064/week @ 2024-07-23 8563/week @ 2024-07-30 10486/week @ 2024-08-06

40,237 个月下载量
用于 38 个crate(18个直接使用)

MIT/Apache

105KB
2.5K SLoC

jubjub Crates.io

这是Jubjub椭圆曲线群及其相关域的纯Rust实现。

  • 此实现未经审查或审计。使用风险自担。
  • 此实现针对Rust 1.56或更高版本。
  • 除非明确说明,所有操作都是常数时间。
  • 此实现不需要Rust标准库。

文档

曲线描述

Jubjub是扭曲Edwards曲线 -u^2 + v^2 = 1 + d.u^2.v^2的理性点集,定义在GF(q)上,具有素数阶的子群r和系数8

q = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001
r = 0x0e7db4ea6533afa906673b0101343b00a6682093ccc81082d0970e5ed6f72cb7
d = -(10240/10241)

选择GF(q)是为了成为BLS12-381椭圆曲线构造的标量域。

Juljub与Montgomery曲线在同一个域上是双有理等价的。Montgomery曲线的定义如下:y² = x³ + Ax² + x,其中A = 40962。这个A值是最小的整数,使得(A - 2) / 4是一个小整数,A² - 4在GF(q)上不是平方数,Montgomery曲线及其二次扭曲具有小的系数因子8和4。这与Curve25519和ed25519之间的关系相同。

请参阅./doc/evidence/以获取Jubjub符合SafeCurves标准的支持证据。在./doc/derive/中的工具将通过上述标准推导曲线参数以演示其刚性。

致谢

Jubjub由Sean Bowe设计。Daira Hopwood负责其名称和规范。在./doc/evidence/中的安全证据是Daira Hopwood的产品,基于Daniel J. Bernstein和Tanja Lange的SafeCurves。Peter Newell和Daira Hopwood负责Jubjub鸟的图像。

请参阅Cargo.toml以获取此代码库的主要作者列表。

许可

在以下两者中任选其一许可:

由您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的您有意提交的包含在作品中的任何贡献,均将根据上述许可双重许可,不附加任何其他条款或条件。

依赖

~1.5MB
~36K SLoC