您当前的位置: 首页 >  ar

mutourend

暂无认证

  • 1浏览

    0关注

    661博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基于endomorphism优化scalar multiplication及其用途

mutourend 发布时间:2022-06-15 15:14:26 ,浏览量:1

1. 引言

前序博客有:

  • Halo中的elliptic curve cycle
  • Halo——zcash新的零知识证明机制,无需Trusted Setup
  • Halo2学习笔记——背景资料之Elliptic curves(5)

本文主要考虑的是 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 p≡1mod3,即 3 ∣ p − 1 3|p-1 3∣p−1。 曲线 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 k∈Fq​。

1.1 endomorphism定义

因 3 ∣ p − 1 3|p-1 3∣p−1,即 F p \mathbb{F}_p Fp​ 有 a primitive cube root of unity,若 ζ p ∈ F p \zeta_p\in \mathbb{F}_p ζp​∈Fp​为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) (ζp​x,y)和 ( ζ p 2 x , y ) (\zeta_p^2x,y) (ζp2​x,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​+1≡0modp。

使用map ( x , y ) ↦ ( ζ p x , y ) (x,y)\mapsto (\zeta_px,y) (x,y)↦(ζp​x,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)↦(ζp​x,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​,P2​∈E(Fp​) ( ϕ 2 + ϕ + 1 ) ( P ) = O , ∀ P ∈ E (\phi^2+\phi+1)(P)=\mathcal{O},\forall P\in E (ϕ2+ϕ+1)(P)=O,∀P∈E【因为 ( ϕ 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)=(ζp2​x,y)+(ζp​x,y)+(x,y)=(−ζp2​x−ζp​x,−y)+(x,y)=(x,−y)+(x,y)=O】

若 ζ q ∈ F q \zeta_q\in\mathbb{F}_q ζq​∈Fq​为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​+1≡0modq),则有: ϕ ( 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=(ζp​x,y),ζp​≡1modp,ζq3​≡1modq,∀P∈E(Fp​)

对于任意的scalar值 k ∈ F q k\in\mathbb{F}_q k∈Fq​,为计算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​ζq​modq
  • 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=(ζp​x,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 Fp​和Fq​,使得 # 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

关注
打赏
1664532908
查看更多评论
立即登录/注册

微信扫码登录

0.0427s