BLS12-381 pairing-friendly 曲线

1. 引言

Pairing-based cryptography已发展了数十年,可用于:

paring-friendly椭圆曲线应具有:

  • 合适的embedding degree
  • 大的prime-order subgroup

同时满足以上2个要求的椭圆曲线比较稀有,根据2006年论文 A TAXONOMY OF PAIRING-FRIENDLY ELLIPTIC CURVES 可知,现有的pairing-friendly曲线族主要有:
在这里插入图片描述

作为ZCash Sapling升级的基石,ZCash团队Sean Bowe 2017年设计实现了一种新的 pairing-friendly 椭圆曲线——BLS12-381,其针对zk-SNARKs优化,并具有128-bit security level。

“下一代”可扩展区块链协议的激增,使得生成可高效聚合或轻松阈值化的短数字签名变得尤为重要。BLS12-381的特性经常使其成为这些协议的首选曲线。BLS12-381目前已广泛用于以下项目的数字签名和Zero-Knowledge Proof(ZKP)方案中:

  • ZCash
  • Ethereum 2.0
  • Skale
  • Algorand
  • Dfinity
  • Chia
  • 等等

详细代码实现可参看:

目前,BLS-381已被纳入IETF标准中:

1.1 Barreto-Naehrig curves

Barreto-Naehrig(BN) curves为a class of paring-friendly 椭圆曲线,即base field为 F q \mathbb{F}_q Fq,order为 r r r r ≈ q r\approx q rq。当 q ≈ 2 254 q\approx 2^{254} q2254时,根据Kim–Barbulescu variant of the Number Field Sieve to compute discrete logarithms in finite fields以及 2016年论文 Challenges with Assessing the Impact of NFS Advances on the Security of Pairing-based Cryptography,其安全性约为110 bits。

可构建目标为128-bit安全性的新BN曲线,需 q ≈ 2 384 q\approx 2^{384} q2384。但,更大的group order r r r值,会损害zk-SNARK以及MPC方案中所需的multi-exponentiation、fast fourier transforms等密码学操作计算性能。

1.2 Barreto-Lynn-Scott curves

Barreto-Lynn-Scott curves(BLS)为相对更老的pairing-friendly curves class(见2002年论文Constructing Elliptic Curves with Prescribed Embedding Degrees),但似乎更有助于实现目标安全级别。取 q ≈ 2 384 q\approx 2^{384} q2384,embedding degree为 12 12 12(即 r ∣ ( q 12 − 1 ) r|(q^{12}-1) r(q121)),可命中128-bit安全级别,其group order为 r ≈ 2 256 r\approx 2^{256} r2256,从而可避免在更大的scalar field中的性能和可用性缺陷。

2. BLS12-381

在zk-SNARK方案中,需要基于scalar field F r \mathbb{F}_r Fr操作非常大的多项式。为高效进行multi-point evaluation和interpolation with fast fourier transforms,要求 F r \mathbb{F}_r Fr具有large 2 s 2^s 2s root of unity。

根据2012年论文Implementing Pairings at the 192-bit Security Level,想设计具有optimal extension field towers以及simple twisting isomorphisms,并确保Montgomery reductions以及其他approximation算法是space-efficient的,取 r ≈ 2 255 r\approx 2^{255} r2255,使得以64-bit limbs表示时, r r r q q q的最高有效位为unset。

同时,为针对pairing性能优化,要求所设计的BLS曲线的参数具有low Hamming weight。从而最终选中了BLS12-381曲线,其 q ≈ 2 381 q\approx 2^{381} q2381

u = -0xd201000000010000

k = 12

q = 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab

r = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001

E(Fq) := y^2 = x^3 + 4

Fq2 := Fq[i]/(x^2 + 1)

E'(Fq2) := y^2 = x^3 + 4(i + 1)

BLS12-381为BLS曲线族的成员之一。381为表示曲线上坐标所需的bit位数。381是一个很方便的数字,每个field element可用48字节表示,剩余的3个bit可用作标签或计算优化。

参考资料

[1] BLS12-381 For The Rest Of Us
[2] BLS12-381: New zk-SNARK Elliptic Curve Construction

附录A:椭圆曲线密码学入门资料

关于椭圆曲线密码学的入门资料,可参看ANDREA CORBELLINI系列文章:

附录B:基于pairing的密码学入门资料

基于pairing的密码学入门资料有:

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/127205463
今日推荐