2. 广东省信息安全技术重点实验室, 广东 广州 510006
2. Guangdong Provincial Key Laboratory of Information Security Technology, Guangzhou 510006, China
椭圆曲线同源是两条椭圆曲线之间的一个非平凡的代数映射, 它是一个群同态.根据Tate定理[1], 定义在有限域
基于椭圆曲线同源的密码系统早期的研究主要集中在一般椭圆曲线(ordinary elliptic curve)上[2-4].根据Childs等人[5]的研究结果, 计算一般椭圆曲线同源的时间复杂度为量子亚指数时间; 根据Biasse等人[6]的研究结果, 计算超奇异椭圆曲线(supersingular elliptic curve)同源的时间复杂度为量子指数时间.另外, Costello等人[7]发现: 在Montgomery曲线上, 超奇异椭圆曲线同源的计算比一般椭圆曲线同源的计算效率更高.
因此, 从安全性和计算效率的角度来看, 对于目前具有抗量子计算攻击的椭圆曲线同源的密码体制的研究主要集中在超奇异椭圆曲线同源上.Jao等人[8]提出了扩域上的基于超奇异椭圆曲线同源的密钥交换协议(SIDH).之后, Azarderakhsh等人[9]将基于SIDH的加密方案和密钥封装协议提交到美国NIST, 参与后量子密码方案的候选, 并成功进入第2轮.然而, 其实现的效率相比于基于纠错码[10, 11]和基于格[12, 13], 均不占优势.Yoo等人[14]和Galbraith等人[15]提出了基于超奇异椭圆曲线同源的签名方案, 这两类签名方案均采用认证结构结合FS[16]转换或者U转换[17]来加以构造, 效率相比于基于格的[18, 19]和基于哈希函数[20, 21]的签名方案也不占优势, 这主要是由于椭圆曲线同源的计算效率不高所致.
目前, 对于SIDH的优化计算主要从以下3个角度来展开: 探索适合的域的形式; 借助不同曲线形式、不同坐标形式的优势; 利用一些特殊技巧, 如加法链、Weil限制和双线性对等去优化.
以上基于椭圆曲线同源的密码方案均是在扩域上进行的, Castryck等人[22]提出了基域上的基于超奇异椭圆曲线同源的密钥交换协议(CSIDH), 其算法的实现效率相比在扩域上的SIDH提高了很多, 然而其运行时间会随着密钥的变化而变化, 因此不能抵抗侧信道攻击.
目前, 对于CSIDH算法的优化主要从以下3个角度来实施: 通过增加冗余, 使其算法的运行时间为常数时间; 借助不同曲线形式和坐标形式的优势; 利用一些特殊技巧, 如探索有效的基点生成算法、加法链和最优策略等优化计算.
本文第1节阐述椭圆曲线同源的计算公式、SIDH协议、CSIDH协议以及优化SIDH和CSIDH的可能性.第2节和第3节分别讨论目前所提出的优化SIDH和CSIDH的各种有效技巧.第4节探讨SIDH和CSIDH的其他可能优化的问题.
1 Vélu公式、SIDH协议以及CSIDH协议本节主要描述有限域上计算椭圆曲线同源的Vélu公式、SIDH协议以及CSIDH协议, 并分析实现这两个协议的效率影响因素.
1.1 同源和Vélu公式根据文献[23], 两条椭圆曲线之间的同源具有有理函数表达式.特别地, 对于一个可分的同源ϕ, 其核的阶#Kerϕ为同源ϕ的次数, ϕ的表达式由其核唯一决定.即: 给定定义在有限域
$\begin{array}{l} \phi :E \to E' \\ ({x_P}, {y_P}) \to ({x_P} + \sum\nolimits_{Q \in G\backslash O} {({x_{P + Q}} - {x_Q})} , {y_P} + \sum\nolimits_{Q \in G/O} {({y_{P + Q}} - {y_Q})} ) \\ \end{array} $ |
其中, 群G中的点在ϕ的作用下均映射到E'中的单位元O.根据这一变换, 可以推导出ϕ在Weierstrass曲线形式下的有理函数表达式.对于其他曲线形式的Vélu公式, 也可类似地给出或利用与Weierstrass曲线的同构进行推导.
表 1给出了目前已有的Weierstrass曲线、Montgomery曲线、Edwards曲线、Huff曲线、Hessian曲线和Jacobian quartic曲线上的ℓ-同源公式和相应的同源曲线公式.假设群G的生成元为点P, 其中, 阶为
![]() |
Table 1 Vélu formulae between different curve forms 表 1 不同曲线形式上的Vélu公式 |
表 1中, 通过比较不同曲线形式上的ℓ-同源和ℓ-同源曲线的计算量可知: 在Montgomery曲线和Edwards曲
线的同源计算量相同, 且均比在Huff曲线、Hessian曲线和Jacobi quartic曲线的计算更具优势.对于同源曲线的计算, 在Edwards曲线上比在Montgomery曲线、Huff曲线、Hessian曲线和Jacobi quartic曲线上的计算都更有优势.
1.2 SIDH协议Jao等人[9]首次提出了基于超奇异椭圆曲线同源的密钥交换协议.该协议的具体描述如下.
假设
假设Alice和Bob想进行密钥交换获得一个共同的密钥, 首先, Alice和Bob分别产生阶为
在密钥确立阶段, Alice计算在核〈ϕB(PA)+mAϕB(QA)〉下的同源ϕA': EB→EAB, 获得曲线EAB.Bob进行类似的操作, 计算在核〈ϕA(PB)+mBϕA(QB)〉下的同源ϕB': EA→EBA, 获得曲线EAB.最后, Alice和Bob获得共同的j不变量, 即j(EAB)=j(EBA).协议过程如图 1所示.定义A和B为Alice和Bob的标识, sID为唯一的会话标识.
![]() |
Fig. 1 Key-exchange protocol based on supersingular elliptic curve isogeny 图 1 基于超奇异椭圆曲线同源的密钥交换协议 |
通过对上述协议的描述, 我们分析影响SIDH有效实现的因素主要有:
(1) 有限域的类型以及基本代数运算.在保证安全度的前提下, 可以选择在基域
(2) 椭圆曲线中标量乘的计算.注意到: 在SIDH中, Alice和Bob在初始阶段生成同源的核生成点时都需要进行标量乘的计算.同时, 在同源的复合计算过程中, 也涉及到核生成点的计算, 因此也用到了标量乘的计算.从而, 有效的标量乘计算可加速SIDH的计算;
(3) 曲线以及坐标的类型.不同的曲线模型以及相应的不同坐标形式, 其上的点加、倍点、同源和同源曲线的代数操作的计算量是不同的, 因此, 选择一条合适的曲线形式和坐标形式, 使其具备有效的代数操作, 将能够在很大程度上加快SIDH的有效实现;
(4) 同源和同源曲线的计算.在SIDH中, Alice和Bob均需要计算ℓe-同源和同源曲线.对于ℓe-同源的计算, 需要进行e次ℓ-同源的复合.显然, 复合次数越少, 计算速度越快.对于同源曲线的计算, 当ℓ较大时, 直接利用同源曲线公式计算, 效率较低.因此, 探索有效的ℓe-同源和同源曲线的计算也会促进SIDH的有效实现;
(5) 压缩公钥和恢复公钥的计算量.Alice和Bob在利用SIDH进行通信时, 彼此传递的信息有同源曲线和两个独立点的同源值, 需要12log2p的通信量.而这些通信量可以通过一些压缩算法更进一步地加以减少, 从而降低公钥的尺寸规模.同时, 其压缩算法和解压算法的效率也会在一定程度上影响到SIDH的有效实现.
1.3 CSIDHCastryck等人[22]提出了定义在基域
令p=4ℓ1ℓ2…ℓn-1为一个素数, 其中, ℓi(i=1, …, 74)为各自不同的素数.E为定义在
对于CSIDH的实现, 主要是计算[a]E的过程, 如下面算法1所示.
算法1[22].
输入: 超奇异椭圆曲线E0和理想类
输出: 曲线EA, 满足
1. 当ei≠0:
1.1. 机选择x∈
1.2. 令s←+1, 若x3+ax2+x在
1.3. 令S={i|ei≠0, sign(ei)=s}.若s=Ø, 重新选择x;
1.4. 令
1.5. For i∈S:
1.5.1. 计算
1.5.2. 计算在核〈R〉下的同源φ: E→Ea: y2=x3+ax2+x;
1.5.3. 令a←a, Q←φ(Q),
2. 返回a
对于CSIDH的优化, 主要考虑算法1的优化, 有以下几种可能.
(1) 基点P的选取.算法1中, 点P的选取与密钥的正负有直接的联系: 当密钥均为正时, 随机选取的点均在
(2) 标量乘的计算.在算法1的步骤1.4和步骤1.5.1, 需要进行标量乘计算, 而这些标量乘的计算都形如ℓ1ℓ2…ℓnP, 其中, ℓ1, ℓ2, …, ℓn均为不同的素数, 对于这种形式的标量乘的优化, 也将能够提高算法1的实现效率;
(3) 同源的计算和同源曲线的计算.对于算法1中计算的同源是一些不同素数次的同源的复合, 对于这样的同源是否有类似于SIDH的最优策略, 也是值得研究的一个方面.另外, 考虑到CSIDH中需要计算的同源的次数相对于SIDH中的次数均要大(针对素数次同源), 计算效率也比较低, 对这类同源的优化也将在很大程度上促进CSIDH的优化.对于同源曲线的计算, 注意到算法1中并没有类似SIDH中需要计算的同源点来恢复同源曲线, 因此, 对同源曲线公式的优化也是优化算法1的一个方面;
(4) 常数时间的算法.注意到: 算法1需要计算的同源的个数依赖于密钥, 不能抵抗侧信道攻击.因此, 如何设计一个有效的常数时间的算法来计算[a]E, 也是目前研究的一个热点问题.
2 SIDH实现的改进概述SIDH目前的实现主要是在Montgomery曲线上坐标(XM: ZM)来实现的, 可参见文献[7, 24].下面将从不同理论角度来综述目前已发现的SIDH实现的改进技巧.
2.1 加快有限域中的基本运算对于优化有限域中的基本运算, 目前的研究主要包括3个方面: 优化有限域中的基本代数运算、减少有限域的尺寸、将扩域中的基本代数运算转化到基域中进行计算.
对于第1个方面, Koziel等人[25]借助加法链的方法, 优化有限域
对于第2个方面, Flynn等人[29]利用在同等安全级别下亏格为2的基于椭圆曲线同源的密钥交换协议要求的有限域的特征p的尺寸比在亏格为1的有限域的特征p要小的优势, 提出了在亏格为2的扩域
对于第3个方面, Costello等人[30]借助在同样的特征下, 基域
${A_{{\mathbb{F}_{{p^2}}}}} = 2{A_{{\mathbb{F}_p}}}, {S_{{\mathbb{F}_{{p^2}}}}} = 2{S_{{\mathbb{F}_p}}} + {M_{{\mathbb{F}_p}}} + 4{A_{{\mathbb{F}_p}}}, {M_{{\mathbb{F}_{{p^2}}}}} = 3{M_{{\mathbb{F}_p}}} + 5{A_{{\mathbb{F}_p}}}, {I_{{\mathbb{F}_{{p^2}}}}} = {I_{{\mathbb{F}_p}}} + 2{M_{{\mathbb{F}_p}}} + 2{S_{{\mathbb{F}_p}}}, $ |
其中,
SIDH中涉及到的标量乘主要的形式包括P+kQ和ℓR, 其中, P、Q、R均为椭圆曲线上的点, k、ℓ均为正整数.对于P+kQ的计算, 主要是利用Ladder算法[9]进行优化计算.Faz-Hernendez等人[31]给出了一种左右Ladder算法, 并借助预计算的技巧进行了更进一步的优化.对于ℓR的计算, 目前的方法主要是利用加法链进行优化计算[29].
2.3 探索适合的曲线形式、坐标形式在不同的曲线模型上, 利用不同坐标形式计算点加、倍点、同源以及同源曲线的计算量是不同的.探索一个最适合的曲线模型以及相应的坐标形式, 使其在上面这些计算的耗费量最小, 也是一种非常重要的优化SIDH实现的方式.Montgomery等人[32]最早提出了在Montgomery曲线上仅利用坐标(XM: ZM)就可以进行倍点和标量乘的计算.De Feo等人[33]给出了在Montgomery曲线上坐标(XM: ZM)的3-同源和4-同源公式.利用这些基本运算, Costello等人[6]在Montgomery曲线上优化了SIDH的实现.另外, Costello等人[24]又利用计算同源和同源曲线之间共用的3阶点、4阶点继续对3倍点、3-同源和4-同源以及相应的同源曲线进行优化.Renes等人[34]给出了核生成点不在(0, 0)的2-同源公式, 通过1次复合该2-同源公式, 则很容易得到核生成点不在
注意到, Edwards曲线与Montgomery曲线之间存在着双有理关系[35]:
$({x_E}, {y_E}) = \left( {\frac{{{x_M}}}{{{y_M}}}, \frac{{{x_M} - 1}}{{{x_M} + 1}}} \right).$ |
即, Edwards曲线上的坐标yE完全可以利用Montgomery曲线上的坐标xM表示.Kim等人[36]利用该双有理关系推导出在Edwards曲线坐标(YE: ZE)下的4-同源以及4-同源曲线公式, 并发现: 在该坐标下实现SIDH的效率比在Montgomery曲线坐标(XM: ZM)下实现SIDH的效率要稍微高一点.除了在坐标(YE: ZE)下可以优化计算外, Farashahi等人[37]也探索了新的Edwards曲线上坐标(WE: ZE)对应的倍点和点加公式, 发现其计算量与在坐标(YE: ZE)下相同.另外, Kim等人[38]研究了在坐标(WE: ZE)下的奇数次同源公式和相应的同源曲线公式, 其同源公式的计算量与在Montgomery曲线上的计算量也是相同的, 同源曲线的计算量相比于在Montgomery曲线上要有优势.然而, 对于偶数次同源在Edwards曲线坐标(WE: ZE)上的公式, 目前还没有被提出.
除了以上对于Montgomery曲线和Edwards曲线的不同坐标形式的同源和同源曲线公式的研究, Moody等人[39]还给出了Huff曲线下的同源和同源曲线公式, Dang等人[40]给出了Hessian曲线下的奇数次同源和同源曲线公式, Xu等人[41]给出了Jacobi quartic曲线下的同源和同源曲线公式.然而, 对于在这几种曲线上的点加、倍点以及同源的计算与在Montgomery和Edwards曲线的相应的计算相比, 计算的耗费量差异较大, 相应的优化还没有给出.此外, 对于其他曲线形式, 如对Jacobi intersections[42]的同源的研究也没有给出.
2.4 优化同源曲线的计算公式注意到, 同源曲线的优化计算也可以加快SIDH的实现, 因此, Costello等人[24]提出了3种不同的方法来计算奇数次同源曲线, 分别是:
(1) 利用奇数次同源曲线公式来恢复曲线系数.
在SIDH中, Alice和Bob最终共享的密钥是椭圆曲线的j不变量, 当曲线为Montgomery曲线(by2=x3+ax2+x)时, 其j不变量为
(2) 利用额外的2阶扭点的同源值来恢复曲线系数.
在Montgomery曲线上, 当给定初始曲线时, 即by2=x3+ax2+x, 其二阶扭点很容易获得.即令x3+ax2+x=0, 利用韦达定理可得两个根, 分别为x1和x2, 从而有二阶扭点分别为(0, 0)、(x1, 0)和(x2, 0), 计算(x1, 0)或者(x2, 0)在任意奇数次同源ϕ的值依然为2阶扭点, 即(ϕ(x1), 0)或者(ϕ(x2), 0), 通过这两个同源值, 反过来由公式:
$ a' = \frac{{ - ({\phi ^2}({x_1}) + 1)}}{{\phi ({x_1})}}或者a' = \frac{{ - ({\phi ^2}({x_2}) + 1)}}{{\phi ({x_2})}} $ |
即可恢复同源曲线.
(3) 利用固定的3个点的同源值恢复曲线系数.
在SIDH中需要计算两个独立点P和Q以及P-Q的同源值.而当知道这3个点的横坐标时, 利用公式:
$ a = \frac{{{{(1 - {x_P}{x_Q} - {x_P}{x_{P - Q}} - {x_Q}{x_{P - Q}})}^2}}}{{4{x_P}{x_Q}{x_{P - Q}}}} - {x_P} - {x_Q} - {x_{P - Q}} $ |
即可恢复同源曲线.
方法(1)、方法(2)的优点是适合计算小次数同源曲线, 缺点是会随着同源次数的增加而增加计算量.方法(3)适合计算较大次数的同源曲线, 并且计算量是固定的, 均为8M+5S, 前提是要有额外的同源点.
表 2给出了利用以上3种方法分别计算3-同源曲线和19-同源曲线的计算量.计算3-同源曲线, 利用方法(1)的计算量最小; 计算19-同源曲线, 利用方法(3)的计算量最小.
![]() |
Table 2 Compute 3-isogeny curve and 19-isogeny curve 表 2 计算3-同源曲线和19-同源曲线 |
2.5 减少ℓe-同源的循环次数
对于ℓe-同源的计算, 主要是将其分解为e个ℓ-同源的复合.De Feo等人[33]提出了3种方法, 分别是基于同源的方法、基于标量乘的方法和最优策略算法.其中, 基于同源的方法是在复合过程用计算同源的方式去计算每次同源的核生成点; 而基于标量乘的方法是在复合过程中用基于标量乘的方式计算每次同源的核生成点; 最优策略算法是结合前两种方法的优势提出的一种新的方法, 通过比较每次复合中标量乘计算和同源计算的耗费量, 并结合最优策略的性质, 即一个策略是最优的当且仅当其分解为两个最优子策略, 得到最优路径, 利用该路径来计算每次同源的核生点.3种方法相比较而言, 第3种方法的计算效率是最优的.
图 2给出了分别用基于标量乘的方法、基于同源的方法和最优策略计算ℓ7-的同源.假设计算ℓ-同源的计算量为q, 计算标量乘[ℓ]R(其中, R为椭圆曲线上任意一个点)的计算量为p, 那么利用基于标量乘的方法需要的计算量为21p+6q, 利用基于同源的方法的计算量为21q+6p, 利用最优策略的方法的计算量为11p+9q.显然, 最优策略所需要的计算量最小, 是最优的.
![]() |
Fig. 2 Compute ℓ7-isogeny 图 2 计算ℓ7-同源 |
Hutchinson等人[43]利用并行处理的方法对基于最优策略算法进行了更进一步的优化.如图 2所示, 在计算同源ϕ0、ϕ1、ϕ3时, 可以利用并行处理的方法进行计算.
2.6 减少公钥的尺寸, 优化压缩公钥的算法对于基于超奇异椭圆曲线密钥交换协议的公钥尺寸的压缩, 主要有两种方法: (1) 通过减少公钥的参数缩小公钥的规模; (2) 通过将公钥的点表示为基点的线性组合, 将相应的坐标代替点达到压缩公钥的目的.此外, 对于其压缩算法的效率也是目前研究的一个热点.
Costello等人[24]利用Montgomery曲线下的坐标(XM: ZM)实现SIDH, 用3个点的横坐标:
$ x({\phi _A}({P_B})), x({\phi _A}({Q_B})), x({\phi _A}({P_B} - {Q_B})) $ |
代替原来的公钥:
$ {\phi _A}({P_B}), {\phi _A}({P_B}), {E_B}, $ |
其中, 曲线系数的计算可以利用第2.4节中的方法(3), 从而将公钥尺寸由原来的12log2p降低到6log2p.
Azarderakhsh等人[44]通过将公钥中的点表示为
$ {\phi _A}({P_B}) = {a_0}{U_B} + {b_0}{V_B}, {\phi _A}({Q_B}) = {a_1}{U_B} + {b_1}{V_B}, $ |
其中,
$\begin{gathered} {g_0} = {e_{\ell _B^{{e_B}}}}({U_B}, \;{V_B}), \\ {g_1} = {e_{\ell _B^{{e_B}}}}({U_B}, {\phi _A}({P_B})) = {e_{{3^n}}}({U_B}, {a_0}{U_B} + {b_0}{Q_B}) = g_0^{{b_0}}, \\ {g_2} = {e_{\ell _B^{{e_B}}}}({U_B}, {\phi _A}({Q_B})) = {e_{{3^n}}}({U_B}, {a_1}{U_B} + {b_1}{Q_B}) = g_0^{{b_1}}, \\ {g_3} = {e_{\ell _B^{{e_B}}}}({V_B}, {\phi _A}({P_B})) = {e_{{3^n}}}({V_B}, {a_0}{U_B} + {b_0}{Q_B}) = g_0^{{a_0}}, \\ {g_4} = {e_{\ell _B^{{e_B}}}}({V_B}, {\phi _A}({Q_B})) = \;{e_{{3^n}}}({V_B}, {a_1}{U_B} + {b_1}{Q_B}) = g_0^{{a_1}}. \\ \end{gathered} $ |
求解离散对数得到a0、a1、b0、b1, 从而将公钥变为(EB, a0, a1, b0, b1), 将其尺寸减少到4log2p.然而, 压缩公钥的算法由于需要双线性对和离散对数的计算, 比以前的计算耗费量要大.Costello等人[45]构造了n阶基点生成算法, 优化Tate对计算以及Pohlig-Hellman算法, 将公钥中表示点的线性组合的系数由原来的4个减少到3个, 增加1额外比特信息, 从而将尺寸减少到
由于
$ \langle {\varphi }_{A}({P}_{B})+{\ell }_{B}m{\varphi }_{A}({Q}_{B})\rangle =\left\{ \begin{array}{l}\langle {a}_{0}^{-1}{\varphi }_{A}({P}_{B})+{a}_{0}^{-1}{\ell }_{B}m{\varphi }_{A}({Q}_{B})\rangle , \;\;如果{a}_{0}\in {Z}_{{\ell }_{B}^{{e}_{B}}}^{\ast } \\ \langle {b}_{0}^{-1}{\varphi }_{A}({P}_{B})+{b}_{0}^{-1}{\ell }_{B}m{\varphi }_{A}({Q}_{B})\rangle , \;\;如果{b}_{0}\in {Z}_{{\ell }_{B}^{{e}_{B}}}^{\ast }, \end{array} \right.$ |
而
$\begin{gathered} a_0^{ - 1}{\phi _A}({P_B}) = {U_B} + a_0^{ - 1}{b_0}{V_B}, a_0^{ - 1}{\phi _A}({Q_B}) = a_0^{ - 1}{a_1}{U_B} + a_0^{ - 1}{b_1}{V_B}, \\ b_0^{ - 1}{\phi _A}({P_B}) = b_0^{ - 1}{a_0}{U_B} + {V_B}, b_0^{ - 1}{\phi _A}({Q_B}) = b_0^{ - 1}{a_1}{U_B} + b_0^{ - 1}{b_1}{V_B}. \\ \end{gathered} $ |
因此, 公钥就变为
$ PK=\left\{ \begin{array}{l}({E}_{B}, 0, {a}_{0}^{-1}{b}_{0}, {a}_{0}^{-1}{a}_{1}, {a}_{0}^{-1}{b}_{1}), \;\;如果{a}_{0}\in {Z}_{n}^{\ast } \\ ({E}_{B}, 1, {b}_{0}^{-1}{a}_{0}, {b}_{0}^{-1}{a}_{1}, {b}_{0}^{-1}{b}_{1}), \;\;如果{b}_{0}\in {Z}_{n}^{\ast } \end{array} \right..$ |
Zanon等人[46]提出了更有效的阶为2e的基点生成算法, 利用逆的基分解, 即: 由
$\left[ {\begin{array}{*{20}{c}} {{\phi _A}({P_B})} \\ {{\phi _A}({Q_B})} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{a_0}}&{{b_0}} \\ {{a_1}}&{{b_1}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{U_B}} \\ {{V_B}} \end{array}} \right]$ |
可推导
$\left[ {\begin{array}{*{20}{c}} {{U_B}} \\ {{V_B}} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{c_0}}&{{d_0}} \\ {{c_1}}&{{d_1}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{\phi _A}({P_B})} \\ {{\phi _A}({Q_B})} \end{array}} \right], $ |
其中,
计算双线性对:
$\begin{gathered} {h_0} = {e_{\ell _B^{{e_B}}}}({\phi _A}({P_B}), {\phi _A}({Q_B})) = {e_{{3^n}}}{({P_B}, \;{Q_B})^{{2^n}}}, \\ {h_1} = {e_{\ell _B^{{e_B}}}}({\phi _A}({P_B}), {U_B}) = {e_{{3^n}}}({\phi _A}({P_B}), {c_0}{\phi _A}({P_B}) + {d_0}{\phi _A}({Q_B})) = h_0^{{d_0}}, \\ {h_2} = {e_{\ell _B^{{e_B}}}}({\phi _A}({P_B}), {V_B}) = {e_{{3^n}}}({\phi _A}({P_B}), {c_{1\:}}{\phi _A}({P_B}) + {d_1}{\phi _A}({Q_B})) = h_0^{{d_1}}, \\ {h_3} = {e_{\ell _B^{{e_B}}}}({\phi _A}\left( {{Q_B}} \right), {U_B}) = {e_{{3^n}}}({\phi _A}({Q_B}), {c_{0\:}}{\phi _A}({P_B}) + {d_0}{\phi _A}({Q_B})) = h_0^{ - {c_0}}, \\ {h_4} = {e_{\ell _B^{{e_B}}}}({\phi _A}\left( {{Q_B}} \right), {V_B}) = {e_{{3^n}}}({\phi _A}({Q_B}), {c_{1\:}}{\phi _A}({P_B}) + {d_1}{\phi _A}({Q_B})) = h_0^{ - {c_1}}. \\ \end{gathered} $ |
由于PB和QB是公开参数, h0可以预计算, 相比于Costello等人的算法减少了一个双线性对的计算.Naehrig等人[47]利用2-同源的对偶同源比2-同源计算(核生成点非(0, 0))要快的性质, 将SIKE中密钥生成阶段的开销由原来的140%~153%减少到61%~74%, 将密钥封装由原来的67%~90%减少到38%~57%, 将解封装由原来的59%~65%减少到34%~38%.
3 CSIDH实现的改进概述根据前面对于CSIDH协议以及算法1的描述, 优化CSIDH的实现关键在于提高算法1的效率, 这一节主要总结对于算法1的各种优化方法.
3.1 设计常数时间的算法对于算法1中的密钥
Meyer等人[51]通过调整算法1中初始点的计算, 计算P=4P0, α=ℓ1ℓ2…ℓn, 其中, ℓ1 > ℓ2 > … > ℓn.将
当密钥的每个分量均变为正时, 随机点的选取只需考虑定义在
Eligator算法[51].
输入: u∈
输出: x∈
1. 在集合
2. 计算
3. 计算
4. 如果e=1, 输出x=v; 否则, 输出x=-v-a.
当密钥的每个分量有正有负时, Onuki等人[49]利用Eligator算法快速生成两个合法点, 分别是定义在
考虑到CSIDH中同源的次数相对于SIDH中同源的次数较大, Bernstein等人[52]利用Strassen算法进行优化, 将ℓ-同源的计算由原来的O(ℓ)降为
注意到, CSIDH中同源曲线的计算与在SIDH中的计算方式是不同的: 在SIDH中, 需要计算额外点的同源值, 同源曲线的计算刚好可以利用这些点的同源值, 避免了因同源次数增加而相应的同源曲线的计算量增加所带来的不便; 在CSIDH中, 不需要额外点的计算, 同源曲线的计算只能利用推导的公式本身去优化计算.由于利用Montgomery曲线形式计算同源曲线的效率不是很高[24], Meyer等人[48]借助Montgomery曲线与扭Edwards曲线之间双有理等价关系, 利用扭Edwards曲线上的同源曲线公式来优化计算.即: 在Montgomery曲线上, 坐标(XM: ZM)可以通过变换:
$ ({X_M}:{Z_M}) \to ({Y_E}:{Z_E}) = ({X_M} + {Z_M}:{X_M} - {Z_M}) $ |
转化到扭Edwards曲线射影坐标(YE: ZE).同时, Montgomery曲线系数(A: C)可以通过变换a=A+2C和d=A-2C转化到扭Edwards曲线参数(a, d).在扭Edwards曲线上, 利用公式:
$a' = {a^\ell }{(\prod\nolimits_{i = 1}^S {{Y_{[iP]}}} )^8}, d' = {d^\ell }{(\prod\nolimits_{i = 1}^S {{Z_{[iP]}}} )^8}, $ |
可以计算扭Edwards曲线上的ℓ-同源曲线参数(a', d'), 其中, ℓ-同源的核为〈P〉={[iP]: i=0, …, ℓ=2s+1}.通过变换(A': C')=(2(a'+d'): a'-d'), 可以得到Montgomery曲线上的ℓ-同源曲线.Kim等人[38]借助奇数阶点在2倍标量乘的作用下不改变其阶这一性质, 优化Ewards曲线上在新坐标(WE: ZE)下的同源曲线公式, 如表 1所示.
4 总结和展望自椭圆曲线同源在公钥密码学中得到广泛应用, 其对应的公钥加密和密钥封装进入美国NIST标准第2轮, 对于SIDH和CSIDH的有效计算引起了学者们的重视, 正如上面所分析的, 取得了很多突破性的进展.但是, 这一领域还有许多问题亟待解决.
(1) 借助不同曲线模型, 探索不同坐标形式以及在该坐标下的倍点、点加、同源和同源曲线的计算公式, 利用这些优化的公式来优化SIDH和CSIDH的实现.目前比较主流的实现SIDH和CISDH均在Montgomery和Edwards曲线上, 对于其他曲线, 如Huff曲线、Hessian曲线、Legendre曲线和Jacobian Intersections等的研究还比较少.是否最优的实现就是在Montgomery曲线或者Edwards曲线, 亦或者有更好的曲线代替这两种曲线去实现SIDH和CISDH, 是值得关注的问题;
(2) 对于优化SIDH, 除了考虑以上的方法外, 还可以利用超椭圆曲线的优势去优化计算.注意到利用亏格为2的Kummer面实现SIDH, 其域的尺寸在同等安全级别下比亏格为1的Kummer线上实现SIDH要小, 其上的(2, 2)-同源也有快速计算公式, 然而, 其(3, 3)-同源的计算比较复杂, 需要我们进一步加以深入研究;
(3) 对于同源次数形如
(4) 对于SIDH中有限域
(5) 对于公钥尺寸的有效压缩, 也是目前研究的一个热点.基于Kummer线上的SIDH的加密和密钥封装的公钥压缩, 已有很多工作.然而, 对于阶为3e点的有效压缩算法, 依然是一个亟待解决的问题.此外, 利用Kummer面上SIDH设计的加密方案, 其上的公钥尺寸还比较大.能否缩短公钥的尺寸, 如将公钥中的点表示为固定基点的线性组合?这些问题均是值得我们后续研究的;
(6) 对于CSIDH的优化, 设计一个常数时间且有效的算法实现[a]E的计算, 依然是目前研究的一个热点.目前设计的算法, 实现的效率还比较低.能否借助一些特性, 如基域上的ℓ-同源只有两种情况, 减少同源的计算, 或者构造更加有效的基点生成算法等, 对其进行更进一步的优化?都是值得研究的;
(7) 借助其他优化标量乘或者双线性对[53]的技术, 如借助多维标量乘[54]、椭圆网[55]等技术优化SIDH或者CSIDH的方式, 也值得更进一步地加以研究.
[1] |
Tate J. Endomorphisms of abelian varieties over finite fields. Inventiones Mathematicae, 1966, 2: 134-144.
[doi:10.1007/BF01404549] |
[2] |
Rostovtsev A, Stolbunov A. Public-key cryptosystem based on isogenies. Cryptology ePrint Archive: Report, 2006/145.
|
[3] |
Hu J. Research on cryptosystem based on elliptic curve isogeny[Ph. D. Thesis]. Wuhan: Wuhan University, 2010(in Chinese with English abstract).
|
[4] |
Han WW, He DB. Provably secure key agreement protocol one elliptic curve isogenies. Computer Engineering, 2011, 37(1): 128-130(in Chinese with English abstract).
[doi:10.3724/SP.J.1146.2010.00230] |
[5] |
Childs A, Jao D, Soukharev V. Constructing elliptic curve isogenies in quantum subexponential time. Journal of Mathematical Cryptology, 2014, 8: 1-29.
[doi:10.1515/jmc-2012-0016] |
[6] |
Biasse JF, Jao D, Sankar A. A quantum algorithm for computing isogenies between supersingular elliptic curves. In: Meier W, Mukhopadhyay D, eds. Proc. of the INDOCRYPT 2014. LNCS 8885, Springer-Verlag, 2014. 428-442. [doi: 10.1007/978-3-319-13039-2_25]
|
[7] |
Costello C, Longa P, Naehrig M. Efficient algorithms for supersingular isogeny Diffie-Hellman. In: Robshaw M, Katz J, eds. Proc. of the ASIACRYPT 2016. LNCS 9814, Springer-Verlag, 2016. 572-601. [doi: 10.1007/978-3-662-53018-4_21]
|
[8] |
Jao D, De Feo L. Towards quantum-resistant cryptosystems from supersingular elliptic curve isogenies. In: Yang BY, ed. Proc. of the PQCrypto 2011. LNCS 7071, Springer-Verlag, 2011. 19-34. [doi: 10.1007/978-3-642-25405-5_2]
|
[9] |
Jao D, Azarderakhsh R, Campagna M, Costello C, et al. SIKE. In: NIST Post-quantum Cryptography. 2018. https://sike.org/
|
[10] |
Melchor CA, Aragon N, Bettaieb S, et al. HQC. In: NIST Post-quantum Cryptography. 2018. http://pqc-hqc.org/
|
[11] |
Bernstein DJ, Chou T, Lange T, et al. Classic McEliee. In: NIST Post-quantum Cryptography. 2018. https://classic.mceliece.org/
|
[12] |
Chen C, Danba O, Hoffstein O, et al. NTRU. In: NIST Post-Quantum Cryptography. 2018. https://ntru.org/
|
[13] |
Bernstein DJ, Chuengsatiansoup C, Lange T, et al. NTRU Prime. In: NIST Post-quantum Cryptography. 2018. https://ntruprime.cr.yp.to/
|
[14] |
Yoo Y, AzarderakhshR, Jalali A, Jao D, Soukharev V. A post-quantum digital signature scheme based on supersingular isogenies. In: Kiayias A, ed. Proc. of the FC 2017. LNCS 10322, Springer-Verlag, 2017. 163-181. [doi: 10.1007/978-3-319-70972-7_9]
|
[15] |
Galbraith SD, Petit C, Silva J. Identification protocols and signature schemes based on supersingular isogeny problems. In: Takagi T, Peyrin T, eds. Proc. of the ASIACRYPT 2017. LNCS 10624, Springer-Verlag, 2017. 3-33. [doi: 10.1007/978-3-319-70694-8_1]
|
[16] |
Unruh D. Post-quantum security of Fiat-Shamir. In: Takagi T, Peyrin T, eds. Proc. of the ASIACRYPT 2017. LNCS 10624, Springer-Verlag, 2017. 65-95. [doi: 10.1007/978-3-319-70694-8_3]
|
[17] |
Unruh D. Non-interactive zero-knowledge proofs in the quantum random oracle model. In: Oswald E, Fischlin M, eds. Proc. of the EUROCRYPT 2015. LNCS 9057, Springer-Verlag, 2015. 755-784. [doi: 10.1007/978-3-662-46803-6_25]
|
[18] |
Prest T, Fouque PA, Hoffstein J, Kirchner P, et al. FALCON. In: NIST Post-quantum Cryptography. 2018. https://falcon-sign.info/
|
[19] |
Bindel N, Akleylek S, Alkim E, et al. qTESLA. In: NIST Post-quantum Cryptography. 2018. https://qtesla.org/
|
[20] |
Aumasson JP, Endignoux G. Gravity-SPHINCS. In: NIST Post-quantum Cryptography. 2017. https://csrc.nist.gov/projects/post-quantum-cryptography/round-1-Submissions
|
[21] |
Bernstein JD, Dobraunig C, Eichlseder M, Fluhrer S, et al. SPHINCS+. In: NIST Post-Quantum Cryptography. 2018. https://sphincs.org/
|
[22] |
Castryck W, Langes T, Martindale C, Panny L, Renes J. CSIDH: An effficient post-quantum commutative group action. In: Peyrin T, Galbraith S, eds. Proc. of the ASIACRYPT 2018. LNCS 11274, Springer-Verlag, 2018. 395-427. [doi: 10.1007/978-3-030-03332-3_15]
|
[23] |
Vélu J. Isogénies entre courbeselliptiques. Academie des Sciences de Paris, 1971, 273: 238-241.
|
[24] |
Costello C, Hisil H. A simple and compact algorithm for SIDH with arbitrary degree isogenies. In: Takagi T, Peyrin T, eds. Proc. of the ASIACRYPT 2017. LNCS 10625, Springer-Verlag, 2017. 303-329. [doi: 10.1007/978-3-319-70697-9_11]
|
[25] |
Koziel B, Azarderakhsh R, Jao D, Mozaffari-Kermani M. On fast calculation of addition chains for isogeny-based cryptography. In: Chen K, Lin D, Yung M, eds. Proc. of the Inscrypt 2016. LNCS 10143, Springer-Verlag, 2016. 323-342. [doi: 10.1007/978-3-319-54705-3_20]
|
[26] |
Joppe B, Simon F.. Arithmetic considerations for isogeny based cryptography. IEEE Trans. on Computers, 2018, 1.
[doi:10.1109/TC.2018.2851238] |
[27] |
Seo H, Jalali A, Azarderakhsh R. Optimized SIKE round 2 on 64-bit ARM. In: You I, ed. Proc. of the WISA 2019. LNCS 11897, Springer-Verlag, 2019. 341-353. [doi: 10.1007/978-3-030-39303-8_26]
|
[28] |
Costello C. B-SIDH: Supersingular isogeny Diffie-Hellman using torsion. In: Moriai S, Wang H, eds. Proc. of the ASIACRYPT 2020. LNCS 12492, Springer-Verlag, 2020. 440-463. [doi: 10.1007/978-3-030-64834-3_15]
|
[29] |
Flynn E, Ti YB. Genus two isogeny cryptography. In: Ding J, Steinwandt R, eds. Proc. of the PQCrypto 2019. LNCS 11505, Springer-Verlag, 2019. 286-306. [doi: 10.1007/978-3-030-25510-7_16]
|
[30] |
Costello C. Computing supersingular isogenies on kummer surfaces. In: Peyrin T, Galbraith S, eds. Proc. of the ASIACRYPT 2018. LNCS 11274, Springer-Verlag, 2018. 428-456. [doi: 10.1007/978-3-030-03332-3_16]
|
[31] |
Faz-Hernández A, López J, Ochoa-Jiménez E, Rodríguez-Henríquez F.. A faster software implementation of the supersingular isogeny Diffie-Hellman key exchange protocol. IEEE Trans. on Computers, 2017, 1.
[doi:10.1109/TC.2017.2771535] |
[32] |
Montgomery PL. Speeding the Pollard and elliptic curve methods of factorization. Mathematics of Computation, 1987, 48(177): 243-264.
[doi:10.2307/2007888] |
[33] |
De Feo L, Jao D, Plȗt J. Towards quantum-resistant cryptosystems from supersingular elliptic curve isogenies. Journal of Mathematical Cryptology, 2014, 8: 209-247.
[doi:10.1515/jmc-2012-0015] |
[34] |
Renes J. Computing isogenies between Montgomery curves using the action of (0, 0). In: Lange T, Steinwandt R, eds. Proc. of the PQCrypto 2018. LNCS 10786, Springer-Verlag, 2018. 229-247. [doi: 10.1007/978-3-319-79063-3_11]
|
[35] |
Berstein DJ, Birkner P, Joye M, Lange T, Peters C. Twisted Edwards curves. In: Vaudenay S, ed. Proc. of the AFRICACRYPT 2008. LNCS 5023, Springer-Verlag, 2008. 389-405. [doi: 10.1007/978-3-540-68164-9_26]
|
[36] |
Kim S, Yoon K, Kwon J, Hong S, Park YH. Efficient isogeny computations on twisted Edwards curves. Security and Communication Networks, 2018. [doi: 10.1155/2018/5747642]
|
[37] |
Farashahi RR, Hosseini SG. Differential addition on twisted Edwards curves. In: Pieprzyk J, Suriadi S, eds. Proc. of the ACISP 2017. LNCS 10343, Springer-Verlag, 2017. 366-378. [doi: 10.1007/978-3-319-59870-3_21]
|
[38] |
Kim S, Yoon K, Park YH, Hong S. Optimized method for computing odd-degree isogenies on Edwards curves. In: Galbraith S, Moriai S, eds. Proc. of the ASIACRYPT 2019. LNCS 11922, Springer-Verlag, 2019. 273-292. [doi: 10.1007/978-3-030-34621-8_10]
|
[39] |
Moody D, Shumow D. Analogues of Vélu's formulas for isogenies on alternate models of elliptic curves. Mathematics of Computation, 2015, 85: 1929-1951.
[doi:10.1090/mcom/3036] |
[40] |
Dang T, Moody D. Twisted hessian isogenies. Cryptology ePrint Archive: Report, 2019/1003.
|
[41] |
Xu X, Yu W, Wang K, He X. Constructing isogenies on extended Jacobi quartic curves. In: Chen K, Lin D, Yung M, eds. Proc. of the Inscrypt 2016. LNCS 10143, Springer-Verlag, 2016. 416-427. [doi: 10.1007/978-3-319-54705-3_26]
|
[42] |
Washington LC. Elliptic Curves: Number Theory and Cryptography. Boca Raton: CRC Press, 2008.
|
[43] |
Hutchinson A, Karabina K. Constructing canonical strategies for parallel implementation of isogeny based cryptography. In: Chakraborty D, Iwata T, eds. Proc. of the INDOCRYPT 2018. LNCS 11356, Springer-Verlag, 2018. 169-189. [doi: 10.1007/978-3-030-05378-9_10]
|
[44] |
Azarderakhsh R, Jao D, Kalach K, Koziel B, Leonardi C. Key compression for isogeny-based cryptosystems. In: Proc. of the AsiaPKC 2016. ACM, 2016. 1-10. [doi: 10.1145/2898420.2898421]
|
[45] |
Costello C, Jao D, Longa P, Naehrig M, Renes J, Urbanik D. Efficient compression of SIDH public keys. In: Coron JS, Nielsen J, eds. Proc. of the EUROCRYPT 2017. LNCS 10210, Springer-Verlag, 2017. 679-706. [doi: 10.1007/978-3-319-56620-7_24]
|
[46] |
Zanon G, Simplicio Marcos A, Pereira GCCF, Doliskani J, Barreto PSLM. Faster key compression for isogeny-based cryptosystems. IEEE Trans. Computers, 2019, 68(5): 688-701.
|
[47] |
Naehrig M, Renes J. Dual isogenies and their application to public-key compression for isogeny-based cryptography. In: Galbraith S, Moriai S, eds. Proc. of the ASIACRYPT 2019. LNCS 11922, Springer-Verlag, 2019. 243-272. [doi: 10.1007/978-3-030-34621-8_9]
|
[48] |
Meyer M, Reith S. A faster way to the CSIDH. In: Chakraborty D, Iwata T, eds. Proc. of the INDOCRYPT 2018. LNCS 11356, Springer-Verlag, 2018. 137-152. [doi: 10.1007/978-3-030-05378-9_8]
|
[49] |
Onuki H, Aikawa Y, Yamazaki T, Takagi T. A faster constant-time algorithm of CSIDH keeping two points. In: Attrapadung N, Yagi T, eds. Proc. of the IWSEC 2019. LNCS 11689, Springer-Verlag, 2019. 23-33. [doi: 10.1007/978-3-030-26834-3_2]
|
[50] |
Cervantes-Vázquez D, Chenu M, Chi-Domínguez JJ, De Feo L, Rodríguez-Henríquez F, Smith B. Stronger and faster side-channel protections for CSIDH. In: Schwabe P, Thériault N, eds. Proc. of the LATINCRYPT 2019. LNCS 11774, Springer-Verlag, 2019. 173-193. [doi: 10.1007/978-3-030-30530-7_9]
|
[51] |
Meyer M, Campos F, Reith S. On Lions and Elligators: An efficient constant-time implementation of CSIDH. In: Ding J, Steinwandt R, eds. Proc. of the PQCrypto 2019. LNCS 11505, Springer-Verlag, 2019. 307-325. [doi: 10.1007/978-3-030-25510-7_17]
|
[52] |
Bernstein DJ, De Feo L, Leroux A, Smith B. Faster computation of isogenies of large prime degree. Cryptology ePrint Archive: Report, 2020/341.
|
[53] |
Zhao CA, Zhang FG. Research and development on efficient pairing computations. Ruan Jian Xue Bao/Journal of Software, 2009, 20(11): 3001-3009(in Chinese with English abstract).
http://www.jos.org.cn/1000-9825/3651.htm [doi:10.3724/SP.J.1001.2009.03651] |
[54] |
Hisil H, Hutchinson A, Karabina K. d-MUL: Optimizing and implementing a multidimensional scalar multiplication algorithm over elliptic curves. In: Chattopadhyay A, Rebeiro C, eds. Proc. of the SPACE 2018. LNCS 11348, Springer-Verlag, 2018. 198-217. [doi: 10.1007/978-3-030-05072-6_12]
|
[55] |
Stange KE. The tate pairing via elliptic nets. In: Takagi T, Okamoto T, eds. Proc. of the Pairing 2007. LNCS 4575, Springer-Verlag, 2007. 329-348. [doi: 10.1007/978-3-540-73489-5_19]
|
[3] |
胡静. 基于椭圆曲线同源的密码系统的研究[博士学位论文]. 武汉: 武汉大学, 2010.
|
[4] |
韩维维, 何德彪. 可证安全的椭圆曲线同源密钥交换协商协议. 计算机工程, 2011, 37(1): 128-130.
[doi:10.3724/SP.J.1146.2010.00230] |
[53] |
赵昌安, 张方国. 双线性对有效计算研究进展. 软件学报, 2009, 20(11): 3001-3009.
http://www.jos.org.cn/1000-9825/3651.htm [doi:10.3724/SP.J.1001.2009.03651] |