Elligator——将椭圆曲线point映射为random string(1)——affine坐标下

ECC椭圆曲线加密,常用到point点(以string形式表示)来代表公钥或其它密文信息(有时为节约存储空间,会将point进行压缩),在实际传输过程中,由于具有module F q F_q Fq有限域内运算特征,且曲线公式和有限域范围均对公众已知,很容易从大量网络传输信息中识别定位为ECC相关密文信息从而可能被利用攻击。

Elligator——可将以string形式表示的point映射为random string。从而使得与密文相关的信息不易被识别出来。

1. Elligator 1/2

在论文《Elligator: Elliptic-curve points indistinguishable from uniform random strings》中指出,有两种Elligator算法:

  • Elligator 1: 仅限于 q ≡ 3 ( m o d   4 ) q\equiv3(mod\ 4) q3(mod 4)的曲线。
  • Elligator 2: 可适于 q ≡ 1 ( m o d   4 ) q\equiv1(mod\ 4) q1(mod 4)的曲线。

对于Curve1174,其 q = 2 251 − 9 ≡ 3 ( m o d   4 ) q=2^{251}-9\equiv 3(mod\ 4) q=225193(mod 4)。理论上来说,Curve1174的运算性能应能与Curve25519相当。

对于Curve25519,其 q = 2 255 − 19 ≡ 1 ( m o d   4 ) q=2^{255}-19\equiv 1(mod\ 4) q=2255191(mod 4),同时具有“-1-twisted Edwards form”【ristretto255 point压缩和解压缩算法(1)——affine坐标系下第1.1节指出, a x 2 + y 2 = 1 + d x 2 y 2 , a = − 1 ax^2+y^2=1+dx^2y^2,a=-1 ax2+y2=1+dx2y2,a=1】,具有更高的速度性能。

2. Curve25519的Elligator算法细节

论文《Elligator: Elliptic-curve points indistinguishable from uniform random strings》中指出,需要使用2-torsion point的curve形式,且有如下定理:
在这里插入图片描述
在这里插入图片描述
论文《Elligator: Elliptic-curve points indistinguishable from uniform random strings》中采用curve形式为 C A , B : y ′ 2 = x ′ 3 + A x ′ 2 + B x ′ C_{A,B}:y'^2=x'^3+Ax'^2+Bx' CA,B:y2=x3+Ax2+Bx,设 n n n F q F_q Fq内的non-square, { r 0 ∈ F q : 1 + n r 0 2 ! = 0 , A 2 n r 0 2 ! = B ( 1 + n r 0 2 ) 2 } \{r_0\in F_q:1+nr_0^2!=0,A^2nr_0^2!=B(1+nr_0^2)^2\} {r0Fq:1+nr02!=0,A2nr02!=B(1+nr02)2},假设 r = n r 0 2 r=nr_0^2 r=nr02,对应的当 ϵ = 1 时 , x ′ = v = − A / ( 1 + r ) ; 当 ϵ = − 1 时 , x ′ = v n r 0 2 = v r = − A r / ( 1 + r ) \epsilon=1时,x'=v=-A/(1+r);当\epsilon=-1时,x'=vnr_0^2=vr=-Ar/(1+r) ϵ=1x=v=A/(1+r)ϵ=1x=vnr02=vr=Ar/(1+r)

ristretto255中, n n n的取值选为 n = i = + − 1 n=i=+\sqrt{-1} n=i=+1 作为non-square值(quadratic nonresidue)。

论文《Decaf-Eliminating cofactors through point compression 2015-673》中提到,对于使用的是Jacobi quartic curve形式:
J e , A = J a 2 , a − 2 d : t 2 = e s 4 + 2 A s 2 + 1 J_{e,A}=J_{a^2,a-2d}:t^2=es^4+2As^2+1 Je,A=Ja2,a2d:t2=es4+2As2+1
同时,该曲线与 L : a y 2 = x ( x − 1 ) ( x − d / a ) L:ay^2=x(x-1)(x-d/a) L:ay2=x(x1)(xd/a)等价。两条曲线之间的映射关系为:
( x , y ) ↦ ( s , t ) : s = a x − d a 2 y , t = a x 2 − 2 d x + d a x ( x − 1 ) (x,y)\mapsto (s,t):s=\frac{ax-d}{a^2y},t=\frac{ax^2-2dx+d}{ax(x-1)} (x,y)(s,t):s=a2yaxd,t=ax(x1)ax22dx+d

另外,曲线 L L L C 2 d / a − 1 , ( d 2 − a d ) / a 2 C_{2d/a-1,(d^2-ad)/a^2} C2d/a1,(d2ad)/a2等价, A = 2 d / a − 1 A=2d/a-1 A=2d/a1且映射关系如下:
( x ′ , y ′ ) ↦ ( x , y ) : x = x ′ + d / a , y = y ′ (x',y')\mapsto (x,y): x=x'+d/a,y=y' (x,y)(x,y):x=x+d/a,y=y

⇒ ( x ′ , y ′ ) ↦ ( s , t ) : s = a x − d a 2 y , t = a x 2 − 2 d x + d a x ( x − 1 ) , 其 中 x = x ′ + d / a \Rightarrow (x',y')\mapsto (s,t): s=\frac{ax-d}{a^2y},t=\frac{ax^2-2dx+d}{ax(x-1)},其中 x=x'+d/a (x,y)(s,t):s=a2yaxd,t=ax(x1)ax22dx+dx=x+d/a

因此若采用Jacobi quartic curve形式,对应的有:
在这里插入图片描述
进一步的公式简化可参见:https://ristretto.group/details/elligator.html#elligator-for-decaf

最终可表示为:
在这里插入图片描述

参考资料:
[1] 论文《Elligator: Elliptic-curve points indistinguishable from uniform random strings》
[2] 论文《Decaf-Eliminating cofactors through point compression 2015-673》
[3] https://ristretto.group/details/elligator.html#elligator-for-decaf

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值