Halo2 学习笔记——背景资料之Fields(2)

1. Fields

很多密码学协议中的基础元素为名为fields的algebraic structure。

Fields为sets of objects (通常为numbers),其具有two associated binary operators + + + × \times ×,使得各种field axioms(公理) 成立。
实数 R \mathbb{R} R为具有无数元素的field。

Halo使用的是有限域,具有有限数量的元素。有限域可分为:

  • F \mathbb{F} F为有限域,则其包含 ∣ F ∣ = p k |\mathbb{F}|=p^k F=pk个元素,其中整数 k ≥ 1 k\geq 1 k1 p p p为素数。
  • 任意两个具有相同数量元素的有限域都是isomorphic的。特别地,所有的arithmetic in a prime field F p \mathbb{F}_p Fp 是 isomorphic to addition and multiplication of integers modulo p p p,即in Z p \mathbb{Z}_p Zp。这就是为什么我们经常把 p p p称为modulus。

定义field F q \mathbb{F}_q Fq,其中 q = p k q=p^k q=pk,其中prime p p p称为其characteristic。当 k > 1 k>1 k>1时,field F q \mathbb{F}_q Fq为a k k k-degree extension of the filed F p \mathbb{F}_p Fp。(类比于,复数 C = R ( i ) \mathbb{C}=\mathbb{R}(i) C=R(i)为实数的extension。)

但是,在Halo中不使用extension fields。 F p \mathbb{F}_p Fp是指a prime field,其具有prime p p p个元素,即 k = 1 k=1 k=1

重点知识为:

  • 在任意域中,都存在2个特殊的elements: 0 0 0 为additive identity; 1 1 1 为multiplicative identity。
  • field element的最低位可用于表示其符号。如非零element a a a的最低位为 0 0 0,则 − a = p − a -a=p-a a=pa的最低位为 1 1 1,反之亦然。同时,也可以借助最低位来判断该element是否大于 ( p − 1 ) / 2 (p-1)/2 (p1)/2

有限域对于后续构建多项式和椭圆曲线很有用。椭圆曲线为examples of groups。

2. Groups

Groups比fields更简单更受限。
Groups仅有一个binary operator,且具有更少的公理。
Groups的identity表示为 1 1 1

group中的任意非零元素具有倒数 b = a − 1 b=a^{-1} b=a1,即有唯一的元素 b b b使得 a ⋅ b = 1 a\cdot b=1 ab=1

如, F p \mathbb{F}_p Fp的非零元素集形成a group,其中group operations为multiplication on the field。

可将group分别表示为加法或乘法形态:

  • 乘法形态时,上面的 ⋅ \cdot 对应为 × \times ×,identity为 1 1 1,倒数为 a − 1 a^{-1} a1
  • 加法形态时,上面的 ⋅ \cdot 对应为 + + +,identity为 0 0 0 O \mathcal{O} O,倒数为 − a -a a

当采用加法形态时,非负数 k k k [ k ] A = A + A + ⋯ + A [k]A=A+A+\cdots+A [k]A=A+A++A 称为“scalar multiplication”,采用的大写的字母来表示group elements变量。

当采用乘法形态时, a k = a × a × ⋯ × a a^k=a\times a\times \cdots \times a ak=a×a××a 称为“exponentiation”。

将使得 [ k ] g = a [k]g=a [k]g=a g k = a g^k=a gk=a成立的scalar k k k值为the “discrete logarithm” of a a a to base g g g。可将scalar值扩展至负数,即 [ − k ] A + [ k ] A = O [-k]A+[k]A=\mathcal{O} [k]A+[k]A=O a − k × a k = 1 a^{-k}\times a^k=1 ak×ak=1

对于finite group内的元素 a a a,使得 a k = 1 a^k=1 ak=1 [ k ] a = O [k]a=\mathcal{O} [k]a=O成立的最小正整数 k k k值称为the order of an element a a a of the group。the order of the group是指group内的元素数。

Groups通常有a generating set,即基于该generating set可生成group中的任意元素,以乘法形态表示的话,生成方式为基于该generating set元素的product of powers。因此,若该generating set为 g 1 ⋯ k g_{1\cdots k} g1k,基于 ∏ i = 1 k g i a i \prod_{i=1}^{k}g_i^{a_i} i=1kgiai可生成该group中的任意元素。

若generating set中仅有一个元素—— g g g(不要求generating set的唯一性),则可称该group为cyclic的。即基于 g g g可生成该group,the order of g g g为the order of the group。

任意的finite cyclic group G \mathbb{G} G of order n n n 为 isomorphic to the integers modulo n n n (表示为 Z / n Z \mathbb{Z}/n\mathbb{Z} Z/nZ),使得:

  • G \mathbb{G} G的operation ⋅ \cdot 对应为 addition modulo n n n
  • G \mathbb{G} G中的identity对应为 0 0 0
  • generator g ∈ G g\in\mathbb{G} gG 对应为 1 1 1

已知generator g g g,很容易根据 Z / n Z → G \mathbb{Z}/n\mathbb{Z}\rightarrow \mathbb{G} Z/nZG计算isomorphism,即 a → g a a\rightarrow g^a aga(加法形态表示为 a → [ a ] g a\rightarrow [a]g a[a]g),但是计算 G → Z / n Z \mathbb{G}\rightarrow \mathbb{Z}/n\mathbb{Z} GZ/nZ会很困难。

若finite group 的order n n n为prime的,则该group为cyclic,且每个non-identity element都是generator。

3. The multiplicative group of a finite field

采用 F p × \mathbb{F}_p^{\times} Fp×来表示multiplicative group over the set F p − { 0 } \mathbb{F}_p-\{0\} Fp{0}。所谓multiplicative group是指 F p \mathbb{F}_p Fp中的group operation为multiplication。

根据费马小定理,对于任意的 a a a,有 a p ≡ a ( m o d    p ) a^p\equiv a(\mod p) apa(modp)
因此 F p × \mathbb{F}_p^{\times} Fp×中对于任意的非零 a a a,其倒数运算为 a − 1 = a p − 2 a^{-1}=a^{p-2} a1=ap2

假设 α \alpha α F p × \mathbb{F}_p^{\times} Fp×的generator,其order为 p − 1 p-1 p1 F p × \mathbb{F}_p^{\times} Fp×中的元素个数为 p − 1 p-1 p1个)。因此,对于任意的 a ∈ F p × a\in\mathbb{F}_p^{\times} aFp×,存在唯一的整数 i ∈ { 0 , p − 2 } i\in\{0,p-2\} i{0,p2},使得 a = α i a=\alpha^i a=αi

注意,对于 a , b ∈ F p × a,b\in\mathbb{F}_p^{\times} a,bFp×,可将 a × b a\times b a×b理解为 α i × α j \alpha^i\times \alpha^j αi×αj,其中 a = α i , b = α j a=\alpha^i, b=\alpha^j a=αi,b=αj。而对于任意的 0 ≤ i , j < p − 1 0\leq i,j < p-1 0i,j<p1,有 α i × α j = α i + j \alpha^i\times \alpha^j=\alpha^{i+j} αi×αj=αi+j。因此,非零值的乘法可理解为指数上的加法。可认为具有加法同态属性。

也可以从另一个维度来看 a p − 2 a^{p-2} ap2
p − 2 ≡ − 1 ( m o d    p − 1 ) p-2\equiv -1(\mod p-1) p21(modp1)
因此 a p − 2 = a − 1 a^{p-2}=a^{-1} ap2=a1

4. Montgomery’s Trick

Montgomery’s trick,是以Peter Montgomery (RIP)命名的,用于同时计算多个group inversions。常用于计算 F p × \mathbb{F}_p^{\times} Fp×中的inversions, which are quite computationally expensive compared to multiplication。

假设需要计算3个非零值 a , b , c ∈ F p × a,b,c\in\mathbb{F}_p^{\times} a,b,cFp×的倒数 1 a , 1 b , 1 c \frac{1}{a},\frac{1}{b},\frac{1}{c} a1,b1,c1,可改为计算:

  • 1) x = a b x=ab x=ab
  • 2) y = x c = a b c y=xc=abc y=xc=abc
  • 3) z = y p − 2 = 1 a b c z=y^{p-2}=\frac{1}{abc} z=yp2=abc1
  • 4) 1 c = x z \frac{1}{c}=xz c1=xz
  • 5) m = 1 a b = z c m=\frac{1}{ab}=zc m=ab1=zc
  • 6) 1 b = m a \frac{1}{b}=ma b1=ma
  • 7) 1 a = m b \frac{1}{a}=mb a1=mb

以上技术可推广为借助一次倒数运算来实现计算任意个数的倒数。

5. Multiplicative subgroups

A subgroup of a group G \mathbb{G} G with operation ⋅ \cdot , is a subset of elements of G \mathbb{G} G that also form a group under ⋅ \cdot .

α \alpha α 为a generator of the ( p − 1 ) (p-1) (p1)-order multiplicative group F p × \mathbb{F}_p^{\times} Fp×,则该group具有composite order,根据中国余数定理可知,该group具有strict subgroups。如 p = 1 p=1 p=1,则 p − 1 = 5 ⋅ 2 p-1=5\cdot 2 p1=52,从而必然有a generator β \beta β of the 5-order subgroup 以及 a generator γ \gamma γ of the 2-order subgroup。而 F p × \mathbb{F}_p^{\times} Fp×中的所有元素,都可以uniquely表示为 β i ⋅ γ j \beta^i\cdot \gamma^j βiγj for some i ( m o d    5 ) i(\mod 5) i(mod5) and some j ( m o d    2 ) j(\mod 2) j(mod2)

若有 a = β i ⋅ γ j a=\beta^i\cdot \gamma^j a=βiγj,则有:
a 5 = ( β i ⋅ γ j ) 5 = β i ⋅ 5 ⋅ γ j ⋅ 5 = β 0 ⋅ γ j ⋅ 5 = γ j ⋅ 5 a^5=(\beta^i\cdot \gamma^j)^5=\beta^{i\cdot 5}\cdot \gamma^{j\cdot 5}=\beta^0\cdot \gamma^{j\cdot 5}=\gamma^{j\cdot 5} a5=(βiγj)5=βi5γj5=β0γj5=γj5
从而可effectively “killed” the 5-order subgroup component, producing a value in the 2-order subgroup。

根据Lagrange’s theorem (group theory) 可知:the order of any subgroup H \mathbb{H} H of a finite group G \mathbb{G} G divides the order of G \mathbb{G} G。即,the order of any subgroup of F p × \mathbb{F}_p^{\times} Fp× must divide p − 1 p-1 p1

像Halo2这样的PLONK-based proving system,更适于用fields that have a large number of multiplicative subgroups with a “smooth” distribution (which makes the performance cliffs smaller and more granular as circuit sizes increase)。

Halo2中采用的Pallas和Vesta curves,其prime order具有如下形式:
T ⋅ 2 S = p − 1 T\cdot 2^S=p-1 T2S=p1
其中 S = 32 S=32 S=32 T T T为odd(即 p − 1 p-1 p1具有32 lower zero-bits)。从而具有multiplicative subgroups of order 2 k 2^k 2k for all k ≤ 32 k\leq 32 k32。2-adic subgroups对efficient FFTs 友好,同时也可启用a wide variety of circuit sizes。

6. Square roots

在field F p \mathbb{F}_p Fp内,有刚好一半的非零元素是squares,剩下的另一半为non-squares或“quadratic non-residues”。原因在于:
假设 α \alpha α为generator,用于生成the 2-order multiplicative subgroup of F p × \mathbb{F}_p^{\times} Fp× (因为 p p p为大于2的素数,因此 p − 1 p-1 p1可被2整除,有 p − 1 = 2 t p-1=2t p1=2t)。
假设 β \beta β为generator,用于生成the t-order multiplicative subgroup of F p × \mathbb{F}_p^{\times} Fp×
则任意元素 a ∈ F p × a\in\mathbb{F}_p^{\times} aFp×都可uniquely表示为 α i ⋅ β j \alpha^i\cdot \beta^j αiβj with i ∈ Z 2 , j ∈ Z t i\in\mathbb{Z}_2, j\in\mathbb{Z}_t iZ2,jZt。从而有一半的元素对应 i = 0 i=0 i=0,另一半的元素对应 i = 1 i=1 i=1

6.1 k = 1 k=1 k=1场景

若有 p ≡ 3 ( m o d    4 ) p\equiv 3(\mod 4) p3(mod4),则 t t t为奇数(若 t t t为偶数,则 p − 1 p-1 p1应可被4整除,这将与 p ≡ 3 ( m o d    4 ) p\equiv 3(\mod 4) p3(mod4)自相矛盾。)。若 a ∈ F p × a\in\mathbb{F}_p^{\times} aFp×为square的,则必须存在 b = α i ⋅ β j b=\alpha^i\cdot \beta^j b=αiβj使得 b 2 = a b^2=a b2=a,即意味着:
a = ( α i ⋅ β j ) 2 = α 2 i ⋅ β 2 j = β 2 j a=(\alpha^i\cdot \beta^j)^2=\alpha^{2i}\cdot \beta^{2j}=\beta^{2j} a=(αiβj)2=α2iβ2j=β2j
也就是说,该域中的所有squares都无法生成2-order multiplicative subgroup,另一半的元素可生成2-order subgroup。
也意味着所有的squares都可表示为 β m \beta^m βm for some m m m,而将其exponentiating by 2 − 1 ( m o d    t ) 2^{-1}(\mod t) 21(modt)即可求其平方根。

6.2 k ≥ 2 k\geq 2 k2场景

若有 p ≡ 1 ( m o d    4 ) p\equiv 1(\mod 4) p1(mod4),则有 p − 1 = 2 k ⋅ t p-1=2^k\cdot t p1=2kt,其中 t t t为奇数, k ≥ 2 k\geq 2 k2
假设 α \alpha α为generator,用于生成 2 k 2^k 2k-order multiplicative subgroup。
假设 β \beta β为generator,用于生成 odd t t t-order multiplicative subgroup。
则任意元素 a ∈ F p × a\in\mathbb{F}_p^{\times} aFp×都可uniquely表示为 α i ⋅ β j \alpha^i\cdot \beta^j αiβj with i ∈ Z 2 k , j ∈ Z t i\in\mathbb{Z}_{2^k}, j\in\mathbb{Z}_t iZ2k,jZt
a a a为a square,则存在 b = a b=\sqrt{a} b=a ,其中 b = α i ′ ⋅ β j ′ b=\alpha^{i'}\cdot \beta^{j'} b=αiβj with i ′ ∈ Z 2 k , j ′ ∈ Z t i'\in\mathbb{Z}_{2^k}, j'\in\mathbb{Z}_t iZ2k,jZt
意味着 a = b 2 = α 2 i ′ ⋅ β 2 j ′ a=b^2=\alpha^{2i'}\cdot \beta^{2j'} a=b2=α2iβ2j,从而有 i ≡ 2 i ′ ( m o d    2 k ) , j ≡ 2 j ′ ( m o d    t ) i\equiv 2i'(\mod 2^k), j\equiv 2j'(\mod t) i2i(mod2k),j2j(modt),则要求 i i i必须为偶数。若 a a a为non square,则要求 i i i为奇数。从而有一般的元素为square。

为了求平方根,可:

  • 1)先将 a = α i ⋅ β j a=\alpha^i\cdot \beta^j a=αiβj power t t t来“kill” the t t t-order component:
    a t = α i t ( m o d    2 k ) ⋅ β j t ( m o d    t ) = α i t ( m o d    2 k ) a^t=\alpha^{it(\mod 2^k)}\cdot \beta^{jt(\mod t)}=\alpha^{it(\mod 2^k)} at=αit(mod2k)βjt(modt)=αit(mod2k)
  • 2)再power t − 1 ( m o d    2 k ) t^{-1}(\mod 2^k) t1(mod2k)来消除1)中exponentiation on the 2 k 2^k 2k-order component的影响:
    ( α i t ( m o d    2 k ) ) t − 1 ( m o d    2 k ) = α i (\alpha^{it(\mod 2^k)})^{t^{-1}(\mod 2^k)}=\alpha^i (αit(mod2k))t1(mod2k)=αi
    (因为 t t t为relative prime to 2 k 2^k 2k)。
  • 3)根据 α i \alpha^i αi进行trivially handle 获得 α i ⋅ 2 − 1 \alpha^{i\cdot 2^{-1}} αi21
  • 4)将 a = α i ⋅ β j a=\alpha^i\cdot \beta^j a=αiβj power 2 k 2^k 2k来“kill” the 2 k 2^k 2k-order component:
    a 2 k = α i 2 k ( m o d    2 k ) ⋅ β j 2 k ( m o d    t ) = β j 2 k ( m o d    t ) a^{2^k}=\alpha^{i2^k(\mod 2^k)}\cdot \beta^{j2^k(\mod t)}=\beta^{j2^k(\mod t)} a2k=αi2k(mod2k)βj2k(modt)=βj2k(modt)
  • 5)power 2 − k ( m o d    t ) 2^{-k}(\mod t) 2k(modt)来消除4)中exponentiation on the t t t-order component的影响:
    ( β j 2 k ( m o d    t ) ) 2 − k ( m o d    t ) = β j (\beta^{j2^k(\mod t)})^{2^{-k}(\mod t)}=\beta^j (βj2k(modt))2k(modt)=βj
  • 6)根据 β j \beta^j βj进行trivially handle 获得 β j ⋅ 2 − 1 \beta^{j\cdot 2^{-1}} βj21
  • 7) α i ⋅ 2 − 1 ⋅ β j ⋅ 2 − 1 \alpha^{i\cdot 2^{-1}}\cdot \beta^{j\cdot 2^{-1}} αi21βj21即为 a a a的平方根。

k = 2 , 3 k=2,3 k=2,3时,有更简单的算法来将以上exponentiations合在一起提升计算效率。
k k k为其他值时,the only known way 为:manually extract i i i by squaring until you obtain the identity for every single bit of i i i。这即为Tonelli-Shanks square root algorithm。还有另一种使用quadratic extension fields来求平方根的算法,但是,除非prime值非常大,否则效率上来说不值得采用。

8. Roots of unity

若有 p − 1 = 2 k ⋅ t p-1=2^k\cdot t p1=2kt,其中 t t t为奇数。
有generator α ∈ F p × \alpha\in\mathbb{F}_p^{\times} αFp×,可生成 2 k 2^k 2k-order subgroup。
n = 2 k n=2^k n=2k,则elements { 1 , α , ⋯   , α n − 1 } \{1,\alpha, \cdots,\alpha^{n-1}\} {1,α,,αn1} 称为 n n n-th root of unity

primitive root of unity w w w,若 w i ≠ 1 w^i\neq 1 wi=1 except when i ≡ 0 ( m o d    n ) i\equiv 0(\mod n) i0(modn),则可称其为 n n n-th root of unity。

root of unity的属性有:

  • 1)若 α \alpha α n n n-th root of unity,则有 α n − 1 = 0 \alpha^n-1=0 αn1=0,若 α ≠ 1 \alpha\neq 1 α=1,则有:
    1 + α + α 2 + ⋯ + α n − 1 = 0 1+\alpha+\alpha^2+\cdots+\alpha^{n-1}=0 1+α+α2++αn1=0
  • 2)等价为,root of unity为如下方程的解:
    X n − 1 = ( X − 1 ) ( X − α ) ( X − α 2 ) ⋯ ( X − α n − 1 ) X^n-1=(X-1)(X-\alpha)(X-\alpha^2)\cdots (X-\alpha^{n-1}) Xn1=(X1)(Xα)(Xα2)(Xαn1)
  • 3) w n 2 + i = − w i w^{\frac{n}{2}+i}=-w^i w2n+i=wi(“Negation lemma”)。证明过程为:
    w n = 1 ⇒ w n − 1 = 0 ⇒ ( w n 2 + 1 ) ( w n 2 − 1 ) = 0 w^n=1\Rightarrow w^n-1=0 \Rightarrow (w^{\frac{n}{2}}+1)(w^{\frac{n}{2}}-1)=0 wn=1wn1=0(w2n+1)(w2n1)=0
    由于 w w w的order为 n n n,因此 w n / 2 ≠ 1 w^{n/2}\neq 1 wn/2=1,从而有 w n / 2 = − 1 w^{n/2}=-1 wn/2=1
  • 4) ( w n 2 + i ) 2 = ( w i ) 2 (w^{\frac{n}{2}+i})^2=(w^i)^2 (w2n+i)2=(wi)2(“Halving lemma”)。证明过程为:
    ( w n 2 + i ) 2 = w n + 2 i = w n ⋅ w 2 i = ( w i ) 2 (w^{\frac{n}{2}+i})^2=w^{n+2i}=w^n\cdot w^{2i}=(w^i)^2 (w2n+i)2=wn+2i=wnw2i=(wi)2
    换句话说,若对 n n n-th roots of unity中的每个元素求平方,得到的结果仅有一半,即 n / 2 n/2 n/2个结果—— { ( w n i ) 2 } = { w n / 2 } \{(w_n^i)^2\}=\{w_{n/2}\} {(wni)2}={wn/2}(即,the n 2 \frac{n}{2} 2n-th root of unity)。这是一个two-to-one mapping between the elements and their squares。

参考资料

[1] Halo2 背景资料之Fields
[2] 哥伦比亚大学数论课件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值