#elliptic-curve #finite-fields #scalar-field

no-std ark-bn254-zypher

BN254配对友好椭圆曲线

1个不稳定版本

0.4.0 2024年5月26日

#2539 in 密码学


6 crates 中使用

MIT/Apache

620KB
14K SLoC

此库实现了BN254曲线,该曲线是[BCTV14]论文中采样的一部分。名称表示它是一个嵌入度为12的Barreto--Naehrig曲线,定义在254位(素数)域上。标量域高度2-adic。

该曲线还在libff中以bn128的名称实现。它与以太坊中使用的bn256曲线相同(例如:go-ethereum)。

#警告 此曲线不再满足128位安全级别。

曲线信息

  • 基域: q = 21888242871839275222246405745257275088696311157297823662689037894645226208583
  • 标量域: r = 21888242871839275222246405745257275088548364400416034343698204186575808495617
  • valuation(q - 1, 2) = 1
  • valuation(r - 1, 2) = 28
  • G1曲线方程: y^2 = x^3 + 3
  • G2曲线方程: y^2 = x^3 + B, 其中
    • B = 3/(u+9) where Fq2 is represented as Fq[u]/(u^2+1) = Fq2(19485874751759354771024239261021720505790618469301721065564631296452457478373, 266929791119991161246907387137283842545076965332900288569378510910307636690)

依赖关系

~3.5–5MB
~92K SLoC