Elliptic Curve Cryptography (ECC) and Pairings 椭圆曲线密码学与配对

本文是Dan Boneh 和Victor Shoup所写书籍A Graduate Course in Applied Cryptography的笔记。

The group of points of an elliptic curve

最早由Diophantus提出了一个问题:已知二元多项式方程 f ( x , y ) = 0 f(x,y)=0 f(x,y)=0,如何找到满足方程的有理数点 ( x ∈ Q , y ∈ Q ) (x\in Q,y\in Q) (xQ,yQ)?该问题可以等价于找到满足 y 2 = x 3 − x + 9 y^2=x^3-x+9 y2=x3x+9的有理数点。

首先可以通过尝试法得到曲线上的几个点 P = ( − 1 , − 3 ) , Q = ( 1 , 3 ) P=(-1,-3),Q=(1,3) P=(1,3),Q=(1,3),注意二元方程是根据 x x x轴对称的,所以令 − P = ( − 1 , 3 ) , − Q = ( 1 , − 3 ) -P=(-1,3),-Q=(1,-3) P=(1,3),Q=(1,3),它们也是曲线上的点。

Chord method 弦方法

已知曲线上不重合且不对称的两点 P ≠ Q , P ≠ − Q P\ne Q,P\ne-Q P=Q,P=Q,作一条直线 y = 3 x y=3x y=3x。将 y = 3 x y=3x y=3x带入原方程得到一元三次方程 ( 3 x ) 2 = x 3 − x + 9 (3x)^2=x^3-x+9 (3x)2=x3x+9,可简单证明有两个不等实根且系数为有理数的一元三次方程,一定有另外一个不等实根,即得曲线上另一点 − R = ( 9 , 27 ) -R=(9,27) R=(9,27)。Poincare将该计算与群内加法操作联系起来为,定义为 P ⊞ Q = − R P\boxplus Q=-R PQ=R

一元三次方程的根

a x 3 + b x 2 + c x + d = 0 ax^3+bx^2+cx+d=0 ax3+bx2+cx+d=0称为一元三次方程,可化为 x 3 + p x + q = 0 x^3+px+q=0 x3+px+q=0。判别式 Δ = ( q 2 ) 2 + ( p 3 ) 3 \Delta=(\frac q 2)^2+(\frac p 3)^3 Δ=(2q)2+(3p)3,分为以下情况:

  • Δ > 0 \Delta>0 Δ>0,一个实根两个复根
  • Δ = 0 \Delta=0 Δ=0
    • p = q = 0 p=q=0 p=q=0,三重零根
    • p , q ≠ 0 p,q\ne 0 p,q=0,二重根
  • Δ < 0 \Delta<0 Δ<0,三个不等实根

上述两个不等根且系数为有理数的一元三次方程即满足 Δ < 0 \Delta<0 Δ<0的情况,定有第三个不等实根。

Tangent method 切线法

已知不在x轴上的一点, P = ( x , y ) = ( − 1 , − 3 ) , y ≠ 0 P=(x,y)=(-1,-3),y\ne 0 P=(x,y)=(1,3),y=0,作该点与曲线的切线,可得切点 T = ( 19 / 9 , − 109 / 27 ) T=(19/9,-109/27) T=(19/9,109/27),定义这种操作为 P ⊞ P = T P\boxplus P=T PP=T

Elliptic curves over finite field

Finite field

F p e = { 0 , 1 , . . . , p e − 1 } \mathbb F_{p^e}=\{0,1,...,p^e-1\} Fpe={0,1,...,pe1}:阶为 p e p^e pe的有限域, p p p为素数, e e e为一个正整数。当 e = 1 e=1 e=1时, F p = { 0 , 1 , . . . , p − 1 } \mathbb F_{p}=\{0,1,...,p-1\} Fp={0,1,...,p1}称为素域。

Elliptic curves over finite field

O O O为曲线上的无穷远点,定义 E ( F p e ) E(\mathbb F_{p^e}) E(Fpe)为定义在 F p e \mathbb F_{p^e} Fpe上且在曲线 E E E上的所有点,包括无穷远点 O O O。例如:曲线 E : y 2 = x 3 + 1 E:y^2=x^3+1 E:y2=x3+1 F 11 \mathbb F_{11} F11,则 E ( F 11 ) = { O , ( − 1 , 0 ) , ( 0 , ± 1 ) , ( 9 , ± 2 ) , ( 6 , ± 3 ) , ( 8 , ± 4 ) , ( 3 , ± 5 ) } E(\mathbb F_{11})=\{O,(-1,0),(0,\pm 1),(9,\pm 2),(6,\pm 3),(8,\pm 4),(3,\pm 5)\} E(F11)={O,(1,0),(0,±1),(9,±2),(6,±3),(8,±4),(3,±5)} ∣ E ( F p e ) ∣ = 12 |E(\mathbb F_{p^e})|=12 E(Fpe)=12。Hasse结论: ∣ E ( F p e ) ∣ = p e + 1 − t |E(\mathbb F_{p^e})|=p^e+1-t E(Fpe)=pe+1t ∣ t ∣ ≤ 2 p e |t|\le 2\sqrt{p^e} t2pe 且为整数。所以 ∣ E ( F p e ) ∣ |E(\mathbb F_{p^e})| E(Fpe)约等于 p e + 1 p^e+1 pe+1

Addition law and group

正式定义之前通过已知点求解曲线上其他点的操作 ⊞ \boxplus 为加法律,令 P = ( x 1 , y 1 ) , Q = ( x 2 , y 2 ) P=(x_1,y_1),Q=(x_2,y_2) P=(x1,y1),Q=(x2,y2)

  • 如果 x 1 ≠ x 2 x_1\ne x_2 x1=x2,用chord method。
  • 如果 P = Q P=Q P=Q,用tangent method。
  • 如果 x 1 = x 2 , y 1 = − y 2 x_1=x_2,y_1=-y_2 x1=x2,y1=y2,则定义 P ⊞ Q = O P\boxplus Q=O PQ=O

通过定义加法律,集合 E ( F p e ) E(\mathbb F_{p^e}) E(Fpe)和操作 ⊞ \boxplus 可以构成一个群,满足:

  1. 单位元: O ⊞ P = P O\boxplus P=P OP=P
  2. 逆: − P = ( x , − y ) -P=(x,-y) P=(x,y)
  3. 结合律: ( P ⊞ Q ) ⊞ R = P ⊞ ( Q ⊞ R ) (P\boxplus Q)\boxplus R=P\boxplus (Q\boxplus R) (PQ)R=P(QR)
  4. 封闭性:$ P\boxplus Q\in E(\mathbb F_{p^e})$
  5. 交换律(Abelian群): P ⊞ Q = Q ⊞ P P\boxplus Q=Q\boxplus P PQ=QP

我们定义 α P = ( α − 1 ) P ⊞ P \alpha P=(\alpha -1)P\boxplus P αP=(α1)PP,可以通过repeated squaring算法在 2 log ⁡ 2 α 2\log_2 \alpha 2log2α个群操作内计算得到。

Forms of elliptic curves

Weierstrass form

标准Weierstrass form
y 2 = x 3 + a x + b , 4 a 3 + 17 b 2 ≠ 0 y^2=x^3+ax+b,4a^3+17b^2\ne 0 y2=x3+ax+b,4a3+17b2=0
要求 4 a 3 + 17 b 2 ≠ 0 4a^3+17b^2\ne 0 4a3+17b2=0是为了保证方程与 x 3 + a x + b = 0 x^3+ax+b=0 x3+ax+b=0没有重根,即曲线与x轴只有一个交点。

Montgomery form

B v 2 = u 3 + A u 2 + u ,   B ( A 2 − 4 ) ≠ 0 Bv^2=u^3+Au^2+u,\ B(A^2-4)\ne 0 Bv2=u3+Au2+u, B(A24)=0

∣ E ( F p e ) ∣ m o d    4 = 0 |E(\mathbb F_{p^e})|\mod 4=0 E(Fpe)mod4=0。Montgomery曲线可以通过 u = B x − A / 3 u=Bx-A/3 u=BxA/3 v = B y v=By v=By转换成Weierstrass曲线,但不是所有Weierstrass曲线都能转换成Montgomery曲线,例如P256曲线。

Edwards form

x 2 + y 2 = 1 + d x 2 y 2 , d ≠ 0 , 1 x^2+y^2=1+dx^2y^2,d\ne 0,1 x2+y2=1+dx2y2,d=0,1

∣ E ( F p e ) ∣ m o d    4 = 0 |E(\mathbb F_{p^e})|\mod 4=0 E(Fpe)mod4=0,同样可以通过变换系数转换成Weierstrass曲线。Edwards曲线的特点在于加法律不需要之前提及的chord、tangent三种形式,可以归结为一种:

在这里插入图片描述

Elliptic curve cryptography

P256曲线

P256曲线定义在质数 p = 2 256 − 2 224 + 2 192 + 2 96 − 1 p=2^{256}-2^{224}+2^{192}+2^{96}-1 p=22562224+2192+2961上,满足标准的Weierstrass形式 y 2 = x 3 + a x + b , 4 a 3 + 17 b 2 ≠ 0 y^2=x^3+ax+b,4a^3+17b^2\ne 0 y2=x3+ax+b,4a3+17b2=0,其中
b : = 5 a c 635 d 8   a a 3 a 93 e 7   b 3 e b b d 55   769886 b c   651 d 06 b 0   c c 53 b 0 f 6   3 b c e 3 c 3 e   27 d 2604 b b := 5ac635d8\ aa3a93e7\ b3ebbd55\ 769886bc\ 651d06b0\ cc53b0f6\ 3bce3c3e\ 27d2604b b:=5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b
b b b是通过伪随机种子 S S S产生的,标准指定了一个点 G G G生成整个群。因为 p p p接近 2 256 2^{256} 2256,所以曲线上的点数量 q q q也接近 2 256 2^{256} 2256,那么在曲线上计算离散对数需要大约 q = 2 128 \sqrt q=2^{128} q =2128个群操作,难度至少与AES-128相等。

25519曲线

Twist security
  1. Square root
    满足 y 2 = x m o d    p y^2=x\mod p y2=xmodp y ∈ Z p y\in Z_p yZp x ∈ Z p x\in Z_p xZp的square root
  2. Quadratic residue
    如果 x ∈ Z p ∗ x\in Z_p^* xZp Z p Z_p Zp中有square root,则称其为quadratic residue

w ∈ F p w\in F_p wFp F p F_p Fp中的quadratic non-residue, E : y 2 = x 3 + a x + b E:y^2=x^3+ax+b E:y2=x3+ax+b,则曲线E的twist为 E ′ : w y 2 = x 3 + a x + b E':wy^2=x^3+ax+b E:wy2=x3+ax+b。Twist安全指离散对数问题在 E E E E ′ E' E上均为困难问题,曲线P256无法满足Twist安全,而曲线25519可以。

25519曲线

25519曲线定义在质数 p = 2 255 − 19 p=2^{255}-19 p=225519上,满足Montgomery形式 y 2 = x 3 + 486662 x 2 + x y^2=x^3+486662x^2+x y2=x3+486662x2+x,也可转换为Edwards形式 x 2 + y 2 = 1 + ( 121665 / 121666 ) x 2 y 2 x^2+y^2=1+(121665/121666)x^2y^2 x2+y2=1+(121665/121666)x2y2。曲线上点的个数是8乘以一个质数,称曲线有余因子(cofactor)8。

Pairing based cryptography

Definition

在这里插入图片描述

由双线性(bilinear)可以推出一个重要结论:对于所有的 α , β ∈ Z q \alpha,\beta\in \mathbb Z_q α,βZq
e ( g 0 α , g 1 β ) = e ( g 0 , g 1 ) α β = e ( g 0 β , g 1 α ) e(g_0^\alpha,g_1^\beta)=e(g_0,g_1)^{\alpha\beta}=e(g_0^\beta,g_1^\alpha) e(g0α,g1β)=e(g0,g1)αβ=e(g0β,g1α)

Consequences

  1. G 0 = G 1 G_0=G_1 G0=G1 G 0 G_0 G0中的DDH问题变得简单。
    给定DDH对 ( u , v , w ) = ( g 0 α , g 0 β , g 0 γ ) (u,v,w)=(g_0^\alpha,g_0^\beta,g_0^{\gamma}) (u,v,w)=(g0α,g0β,g0γ),则可以通过 e ( u , v ) = e ( g 0 , w ) e(u,v)=e(g_0,w) e(u,v)=e(g0,w)判断 y = α β y=\alpha\beta y=αβ是否成立。间接导致乘法ElGamal加密方案在对称双线性群里不再是语义安全的。
  2. 计算 G 0 G_0 G0 G 1 G_1 G1内的离散对数问题不比计算 G T G_T GT中的难。
    u 0 = g 0 α ∈ G 0 u_0=g_0^\alpha\in G_0 u0=g0αG0,我们想要计算离散对数 α \alpha α。令 u = e ( u 0 , g 1 ) , g T = e ( g 0 , g 1 ) u=e(u_0,g_1),g_T=e(g_0,g_1) u=e(u0,g1),gT=e(g0,g1),则 u = e ( g 0 α , g 1 ) = e ( g 0 , g 1 ) α = g T α u=e(g_0^\alpha,g_1)=e(g_0,g_1)^\alpha=g_T^\alpha u=e(g0α,g1)=e(g0,g1)α=gTα,转换为 G T G_T GT中的离散对数问题。因此只要解决 G T G_T GT中的离散对数问题,就能够解决 G 0 G_0 G0 G 1 G_1 G1中的离散对数问题。

Pairings from elliptic curves

由椭圆曲线 E / F p E/\mathbb F_p E/Fp构造的配对有以下性质,设 q q q为一质数:

  • G 0 G_0 G0是阶为 q q q E ( F p ) E(\mathbb F_{p}) E(Fp)的子群
  • G 1 G_1 G1是阶为 q q q E ( F p d ) E(\mathbb F_{p^d}) E(Fpd)的子群, d > 0 d>0 d>0为一整数,称为曲线嵌入度,且 G 0 ∩ G 1 = { O } G_0\cap G_1=\{O\} G0G1={O}
  • G T G_T GT是阶为 q q q E ( F p d ) E(\mathbb F_{p^d}) E(Fpd)的乘法子群

d ≤ 16 d\le 16 d16时,称曲线为配对友好椭圆曲线。

椭圆曲线上的配对函数来自于一种称为Weil配对的代数配对。这个配对可以使用一种由Victor Miller提出的算法进行有效计算,称为Miller算法。在实践中,我们使用Weil配对的变体,称为Tate和Ate配对,此时Miller的算法更有效。

最常见的配对椭圆曲线是bn256和bls381,二者的嵌入度均为 d = 12 d=12 d=12且群的秩 q q q为256-bits的质数。bn256定义在256-bits的质数域上,bls381定义在381-bits的质数域上。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值