基于endomorphism优化scalar multiplication及其用途

1. 引言

前序博客有:

本文主要考虑的是 Gallant等人2001年论文 Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms 中提到的曲线:
E ( F p ) :   y 2 = x 3 + b E(\mathbb{F}_p):\ y^2=x^3+b E(Fp): y2=x3+b
其中 p p p为素数,满足 p ≡ 1 m o d    3 p\equiv 1 \mod 3 p1mod3,即 3 ∣ p − 1 3|p-1 3p1
曲线 E ( F p ) E(\mathbb{F}_p) E(Fp)具有prime order q q q。该曲线上的所有非 O \mathcal{O} O点都称为 F p \mathbb{F}_p Fp-rational points ( x , y ) (x,y) (x,y)。取该曲线基点 G G G
scalar multiplication [ k ] G [k]G [k]G 中的scalar值 k ∈ F q k\in\mathbb{F}_q kFq

1.1 endomorphism定义

3 ∣ p − 1 3|p-1 3p1,即 F p \mathbb{F}_p Fp 有 a primitive cube root of unity,若 ζ p ∈ F p \zeta_p\in \mathbb{F}_p ζpFp为an element of order 3(即 ζ p 3 = 1 m o d    p \zeta_p^3=1\mod p ζp3=1modp),则椭圆曲线 y 2 = x 3 + b y^2=x^3+b y2=x3+b上的point ( x , y ) (x,y) (x,y) 存在2个cousin points:
( ζ p x , y ) (\zeta_px,y) (ζpx,y) ( ζ p 2 x , y ) (\zeta_p^2x,y) (ζp2x,y)

由于 ζ p 3 = 1 m o d    p \zeta_p^3=1\mod p ζp3=1modp,有 o r d e r ( ζ p ) = 3 order(\zeta_p)=3 order(ζp)=3,以及 ζ p 2 + ζ p + 1 ≡ 0 m o d    p \zeta_p^2+\zeta_p+1\equiv 0 \mod p ζp2+ζp+10modp

使用map ( x , y ) ↦ ( ζ p x , y ) (x,y)\mapsto (\zeta_px,y) (x,y)(ζpx,y)即为 应用an endomorphism over the curve,则对曲线 E ( F P ) E(\mathbb{F}_P) E(FP)的endomorphism定义为:
ϕ ( x , y ) ↦ ( ζ p x , y ) , ϕ ( O ) = O \phi(x,y)\mapsto(\zeta_px,y), \phi(\mathcal{O})=\mathcal{O} ϕ(x,y)(ζpx,y),ϕ(O)=O
具有如下属性:
ϕ ( P 1 + P 2 ) = ϕ ( P 1 ) + ϕ ( P 2 ) , ∀ P 1 , P 2 ∈ E ( F p ) \phi(P_1+P_2)=\phi(P_1)+\phi(P_2),\forall P_1,P_2\in E(\mathbb{F_p}) ϕ(P1+P2)=ϕ(P1)+ϕ(P2),P1,P2E(Fp)
( ϕ 2 + ϕ + 1 ) ( P ) = O , ∀ P ∈ E (\phi^2+\phi+1)(P)=\mathcal{O},\forall P\in E (ϕ2+ϕ+1)(P)=O,PE【因为 ( ϕ 2 + ϕ + 1 ) ( P ) = ϕ 2 ( P ) + ϕ ( P ) + 1 ( P ) = ( ζ p 2 x , y ) + ( ζ p x , y ) + ( x , y ) = ( − ζ p 2 x − ζ p x , − y ) + ( x , y ) = ( x , − y ) + ( x , y ) = O (\phi^2+\phi+1)(P)=\phi^2(P)+\phi(P)+1(P)=(\zeta_p^2x,y)+(\zeta_px,y)+(x,y)=(-\zeta_p^2x-\zeta_px,-y)+(x,y)=(x,-y)+(x,y)=\mathcal{O} (ϕ2+ϕ+1)(P)=ϕ2(P)+ϕ(P)+1(P)=(ζp2x,y)+(ζpx,y)+(x,y)=(ζp2xζpx,y)+(x,y)=(x,y)+(x,y)=O

ζ q ∈ F q \zeta_q\in\mathbb{F}_q ζqFq为an element of order 3 (即 ζ q 3 = 1 m o d    q \zeta_q^3=1\mod q ζq3=1modq,也即 ζ q 2 + ζ q + 1 ≡ 0 m o d    q \zeta_q^2+\zeta_q+1\equiv 0 \mod q ζq2+ζq+10modq),则有:
ϕ ( P ) = ϕ ( x , y ) = [ ζ q ] P = ( ζ p x , y ) , ζ p ≡ 1 m o d    p , ζ q 3 ≡ 1 m o d    q , ∀ P ∈ E ( F p ) \phi(P)=\phi(x,y)=[\zeta_q]P=(\zeta_px,y),\zeta_p\equiv 1\mod p,\zeta_q^3\equiv 1\mod q, \forall P\in E(\mathbb{F}_p) ϕ(P)=ϕ(x,y)=[ζq]P=(ζpx,y),ζp1modp,ζq31modq,PE(Fp)

对于任意的scalar值 k ∈ F q k\in\mathbb{F}_q kFq,为计算scalar multiplication [ k ] P [k]P [k]P

  • 1)可将 k k k分解为 k = k 1 + k 2 ζ q m o d    q k=k_1+k_2\zeta_q\mod q k=k1+k2ζqmodq
  • 2)有 [ k ] P = [ k 1 ] P + [ k 2 ζ q ] P = [ k 1 ] P + [ k 2 ] Q [k]P=[k_1]P+[k_2\zeta_q]P=[k_1]P+[k_2]Q [k]P=[k1]P+[k2ζq]P=[k1]P+[k2]Q,从而转换为fixed point multiplication,可根据 P = ( x , y ) P=(x,y) P=(x,y)预计算 Q = ( ζ p x , y ) Q=(\zeta_px,y) Q=(ζpx,y)

1.2 endomorphism用途

可借助endomorphism实现:

  • 1)recursive zkSNARKs加速:实现partial proof verification
  • 2)ECDSA验签加速

2. 基于2-cycle curves的endomorphism实现recursive zkSNARKs的partial proof verification

Halo论文中构建的ZKP算法,其Verifier保持为logarithmic-size state,并执行logarithmic-time operations来partially verify each proof in sequence。
在对a proof进行partial verification时,大部分的计算压力源自group operations。若选择任意的椭圆曲线 E E E over base field F p \mathbb{F}_p Fp,基于安全性考虑,该曲线的group order为素数 q q q,必然有 q ≠ p q\neq p q=p。为此,在构建ZKP时,是基于scalar field q \mathbb{q} q来表达arithmetic circuit satisfaction的,使得模仿另一域 F p \mathbb{F}_p Fp的计算将是昂贵的,从而成为ZKP协议中的一个效率挑战问题。为解决该效率问题,在Ben-Sasson等人2014年论文 Scalable Zero Knowledge via cycles of elliptic curves 中指出,可通过构建2-cycle curve E p , E q E_p,E_q Ep,Eq,其base field分别为 F p 和 F q \mathbb{F}_p和\mathbb{F}_q FpFq,使得 # E p = q , # E q = p \#E_p=q, \#E_q=p #Ep=q,#Eq=p

假设 r ⃗ ∈ { 0 , 1 } λ \vec{r}\in\{0,1\}^{\lambda} r { 0,1}λ为a verifier challenge,在 Halo论文 中,并不会直接将 r ⃗ \vec{r} r 解析为a scalar值并对某 F p \mathbb{F}_p Fp-rational point P P P进行scalar multiplication运算,而是借助endomorphism属性,取一个基于 r ⃗ \vec{r} r 生成的scalar值进行相应的运算,即在Halo论文中,将 [ r ⃗ ] P [\vec{r}]P [r ]P运算替换为了:
在这里插入图片描述
该算法中, r ⃗ \vec{r} r 的每个bit,可以3.5个multiplication constraints来表示,当采用2-cycle curve, λ = 128 , n : { 0 , 1 } λ ↦ I \lambda=128,n:\{0,1\}^{\lambda}\mapsto \mathbb{I} λ=128,n:{ 0,1}λI时,该算法等价为计算 [ n ( r ⃗ ) ] P [n(\vec{r})]P [n(r )]P
在这里插入图片描述

3. 基于secp256k1的endomorphism mapping实现ECDSA验签加速

详细见博客 Acceleration of ECDSA Verification with Endomorphism Mapping of secp256k1,借助secp256k1的endomorphism属性,ECDSA验签速度提升了约40%。

参考资料

[1] About the endomorphism-based optimization in halo
[2] Acceleration of ECDSA Verification with Endomorphism Mapping of secp256k1
[3] Gallant等人2001年论文 Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/125294657