1 个不稳定版本

0.10.4 2024 年 8 月 2 日

#555 in 密码学

Download history 102/week @ 2024-07-29 63/week @ 2024-08-05

165 每月下载量
用于 2 crates

MIT/Apache

115KB
2.5K SLoC

jubjub Crates.io

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

  • 此实现尚未经过审查或审计。使用风险自负。
  • 此实现针对 Rust 1.56 或更高版本。
  • 除非明确说明,所有操作均为恒定时间。
  • 此实现不需要 Rust 标准库。

RFC 流程

此 crate 遵循 zkcrypto RFC 流程。如果您想对此 crate 提出重大更改,请 创建一个 RFC 以进行更广泛的讨论。

文档

曲线描述

Jubjub 是 扭曲的埃德华兹曲线 -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 椭圆曲线构造的标量域。

Jubjub 与 Montogomery 曲线在相同的域上双有理化等价,其方程为 y^2 = x^3 + Ax^2 + x,其中 A = 40962。这个 A 的值是最小的整数,使得 (A - 2) / 4 是一个小的整数,A^2 - 4GF(q) 中不是平方数,Montgomery 曲线和它的二次扭曲有小的系数 84,分别。这和 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 许可证中定义的,将按照上述方式双许可,没有额外的条款或条件。

依赖项

~5MB
~103K SLoC