一种面向椭圆曲线加密算法的标量乘电路的制作方法

未命名 10-08 阅读:81 评论:0


1.本技术涉及数字信息传输领域,尤其是一种面向椭圆曲线加密算法的标量乘电路。


背景技术:

2.公钥密码体制使用不同的加密密钥和解密密钥,其具有运算速度快的优点,被广泛应用于各种高性能数据密集应用场景中,可以为互联网通信提供安全及完整性保障。
3.ecc(elliptic curve cryptography,椭圆曲线密码学)是常见的公钥密码体制,在椭圆曲线密码学的有限域中,标量乘的实现需要循环调用点加运算和倍点运算,而点加运算和倍点运算又需要调用底层有限域的运算,主要包括模加运算、模乘运算、模平方运算、模逆运算,因此标量乘是签名/验签过程中最耗时的加密运算单元,也是影响椭圆曲线加密系统的运算速度和功耗性能的关键。
4.但也由于标量乘的运算复杂度,目前的标量乘电路为了获得高性能往往都需要牺牲电路面积,而且往往都只能针对特定的域长完成标量乘运算,导致难以在电路面积、性能和灵活性等各方面都有较优的表现,影响椭圆曲线加密系统的整体性能。


技术实现要素:

5.本技术针对上述问题及技术需求,提出了一种面向椭圆曲线加密算法的标量乘电路,本技术的技术方案如下:一种面向椭圆曲线加密算法的标量乘电路,该标量乘电路包括标量乘控制器、第一乘加单元、第二乘加单元、模逆单元和寄存器组,第一乘加单元和第二乘加单元相同且用于执行模乘运算以及模加运算,模逆单元用于执行模逆运算,寄存器组包括若干个寄存器;标量乘控制器执行的调度方法包括:获取私钥和椭圆曲线上的点的仿射坐标,并确定私钥对应的二进制序列中包含的个数据位,最高位,是整数参数;初始化投影坐标、、、,初始化整数参数;定义四个变量参数、、、,在对应任意的一次循环中执行第一个循环计算步至第六个循环计算步,且时、、、;时、、、:(1)在第一个循环计算步,调用第一乘加单元根据和计算得到中间结果并寄存在寄存器中,同时,调用第二乘加单元根据计算得到中间结果并寄存在寄存器中;(2)在第二个循环计算步,调用第一乘加单元根据、和第一个循环计算步得到的中间结果更新中间结果并寄存在寄存器中,同时,调用第二乘加单元根据第一个
循环计算步得到的中间结果更新中间结果;(3)在第三个循环计算步,调用第一乘加单元根据以及第二个循环计算步得到的中间结果和中间结果更新中间结果并寄存在寄存器中,同时,调用第二乘加单元根据更新中间结果;(4)在第四个循环计算步,调用第一乘加单元根据寄存器的取值和第三个循环计算步得到的中间结果更新中间结果并作为更新后的,同时,调用第二乘加单元根据第三个循环计算步得到的中间结果更新中间结果并寄存在寄存器中;(5)在第五个循环计算步,调用第一乘加单元根据寄存器的取值更新中间结果并作为更新后的,同时,调用第二乘加单元根据寄存器的取值更新中间结果;(6)在第六个循环计算步,调用第一乘加单元根据、第五个循环计算步得到的中间结果和寄存器的取值更新中间结果并作为更新后的,同时,调用第二乘加单元根据、寄存器的取值以及第五个循环计算步得到的中间结果更新中间结果并作为更新后的,是椭圆曲线的常数项特征参数;令并进入下一次循环,直至时确定主循环运算过程结束并调用第一乘加单元、第二乘加单元和模逆单元对投影坐标、、、进行坐标转换输出标量乘结果的仿射坐标。
6.其进一步的技术方案为,在每次循环中:在第一个循环计算步,将和分别输入第一乘加单元的两个乘法输入端,同时,将同时输入第二乘加单元的两个乘法输入端;第一乘加单元通过乘加输出端输出并寄存在寄存器中,第二乘加单元通过乘加输出端输出并寄存在寄存器中;在第二个循环计算步,将和分别输入第一乘加单元的两个乘法输入端、将第一个循环计算步得到的中间结果输入第一乘加单元的加法输入端,同时,将第一个循环计算步得到的中间结果同时输入第二乘加单元的两个乘法输入端;第一乘加单元通过乘加输出端输出并寄存在寄存器中,第二乘加单元通过乘加输出端输出;在第三个循环计算步,将和第二个循环计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端、将第二个循环计算步得到的中间结果输入第一乘加单元的加法输入端,同时,将同时输入第二乘加单元的两个乘法输入端;第一乘加单元通过乘加输出端输出并寄存在寄存器中,第二乘加单元通过乘加输出端输出;在第四个循环计算步,将寄存器的取值和第三个循环计算步得到的中间结果
分别输入第一乘加单元的两个乘法输入端,同时,将第三个循环计算步得到的中间结果同时输入第二乘加单元的两个乘法输入端;第一乘加单元通过乘加输出端输出并作为更新后的,第二乘加单元通过乘加输出端输出并寄存在寄存器中;在第五个循环计算步,将寄存器的取值同时输入第一乘加单元的两个乘法输入端,同时,将寄存器的取值同时输入第二乘加单元的两个乘法输入端;第一乘加单元通过乘加输出端输出并作为更新后的,第二乘加单元通过乘加输出端输出;在第六个循环计算步,将和第五个循环计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端、将寄存器的取值输入第一乘加单元的加法输入端,同时,将和寄存器的取值分别输入第二乘加单元的两个乘法输入端、将第五个循环计算步得到的中间结果输入第二乘加单元的加法输入端;第一乘加单元通过乘加输出端输出并作为更新后的,第二乘加单元通过乘加输出端输出并作为更新后的。
7.其进一步的技术方案为,输出标量乘结果的仿射坐标包括:在第一个转换计算步,调用第一乘加单元根据、、和更新中间结果,同时,调用第二乘加单元根据、、和更新中间结果;在第二个转换计算步,调用第一乘加单元根据第一个转换计算步得到的中间结果和中间结果更新中间结果并更新寄存器,同时,调用第二乘加单元根据和更新中间结果并更新寄存器;在第三个转换计算步,调用第一乘加单元根据和更新中间结果,同时,调用第二乘加单元根据和第二个转换计算步得到的中间结果更新中间结果;在第一个转换计算步、第二个转换计算步和第三个转换计算步调用两个乘加单元的过程中,同时调用模逆单元根据进行模逆运算得到,并在模逆单元完成模逆运算后进入第四个转换计算步;在第四个转换计算步,调用第一乘加单元根据寄存器的取值、第三个转换计算步得到的中间结果以及寄存器的取值更新中间结果,同时,调用第二乘加单元根据模逆单元得到的、和更新中间结果并得到;在第五个转换计算步,调用第一乘加单元根据第四个转换计算步得到的中间结果和中间结果更新中间结果;在第四个转换计算步和第五个转换计算步调用两个乘加单元的过程中,同时调用模逆单元根据第三个转换计算步得到的中间结果进行模逆运算更新得到,并在模逆单元完成模逆运算后进入第六个转换计算步;在第六个转换计算步,调用第一乘加单元根据模逆运算得到的以及第五个转换计算步得到的中间结果更新中间结果并作为。
8.其进一步的技术方案为,输出标量乘结果的仿射坐标还包括:
在第一个转换计算步,将以及主循环运算过程得到的分别输入第一乘加单元的两个乘法输入端、将主循环运算过程得到的输入第一乘加单元的加法输入端,同时,将以及主循环运算过程得到的分别输入第二乘加单元的两个乘法输入端、将主循环运算过程得到的输入第二乘加单元的加法输入端;第一乘加单元更新中间结果,第二乘加单元更新中间结果;在第二个转换计算步,将第一个转换计算步得到的中间结果和中间结果分别输入第一乘加单元的两个乘法输入端,同时,将主循环运算过程得到的和分别输入第二乘加单元的两个乘法输入端;第一乘加单元更新中间结果并更新寄存器,第二乘加单元更新中间结果并更新寄存器;在第三个转换计算步,将和分别输入第一乘加单元的两个乘法输入端、且将输入第一乘加单元的加法输入端,同时,将和第二个转换计算步得到的中间结果分别输入第二乘加单元的两个乘法输入端;第一乘加单元更新中间结果,第二乘加单元更新中间结果;在第四个转换计算步,将寄存器的取值以及第三个转换计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端、将寄存器的取值输入第一乘加单元的加法输入端,同时,将模逆单元得到的以及主循环运算过程得到的输入第二乘加单元,第一乘加单元更新中间结果,第二乘加单元更新中间结果以及;在第五个转换计算步,将第四个转换计算步得到的中间结果和中间结果分别输入第一乘加单元的两个乘法输入端,第一乘加单元更新中间结果;在第六个转换计算步,将模逆单元得到的和五个转换计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端、将输入第一乘加单元的加法输入端,第一乘加单元更新中间结果并作为。
9.其进一步的技术方案为,每个乘加单元基于位的乘法模组构建,每个乘加单元利用乘法模组执行模乘运算以及模加运算的方法包括:通过两个乘法输入端获取乘数和乘数、通过加法输入端获取加数,确定,与的最大公约数为1,,是标量乘电路支持的域长且、和的域长均为,是幂底数;利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到乘法结果,并确定乘法结果的高半程和低半程,低半程包括乘法结果的低位,高半程包括乘法结果的高位且在位宽不足时通过高位补零得到;利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到乘法结果,是乘法结果的低位;利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到并作为的乘加运算结果通过乘加输出端输出,表示对乘法结果右移位的乘加运算结果。
10.其进一步的技术方案为,每个位的乘法模组包括9个位的ka乘法核,表示对向上取整,在利用乘法模组计算一组位子乘数的乘法结果时,利用karatsuba四项分解对每个位子乘数划分后,分别利用9个位的ka乘法核并行运算得到一组位子乘数的乘法结果,位的乘法模组利用一个时钟周期计算得到一组位子乘数的乘法结果。
11.其进一步的技术方案为,每个乘加单元包括两个位的乘法模组,每个乘加单元执行模乘运算以及模加运算的方法包括:当输入乘加单元的一个数据组的域长时,乘加单元获取到的乘数的高半程和低半程均为有效数据位,乘加单元获取到的乘数的高半程和低半程均为有效数据位;乘加单元利用乘法模组执行4组位子乘数的乘法运算得到相应的乘法结果,且在每个时钟周期并行调用两个位的乘法模组分别计算两组位子乘数的乘法结果,使得乘加单元通过两个时钟周期计算得到乘法结果,通过两个时钟周期计算得到乘法结果,通过两个时钟周期计算得到;乘加单元共通过6个时钟周期完成模乘运算以及模加运算并输出的乘加运算结果;当输入乘加单元的一个数据组的域长时,乘加单元获取到的乘数的高半程均为0、低半程为有效数据位,乘加单元获取到的乘数的高半程均为0、低半程为有效数据位,乘加单元利用乘法模组执行1组位子乘数的乘法运算得到相应的乘法结果,且在每个时钟周期并行调用一个位的乘法模组计算一组位子乘数的乘法结果,使得乘加单元通过一个时钟周期计算得到乘法结果,通过一个时钟周期计算得到乘法结果,通过一个时钟周期计算得到;乘加单元共通过3个时钟周期完成模乘运算以及模加运算并输出的乘加运算结果;其中,乘数的低半程包括乘数的低位、高半程包括乘数的高位且在位宽不足时通过高位补零得到;乘数的低半程包括乘数的低位、高半程包括乘数的高位且在位宽不足时通过高位补零得到;每个数据组包括乘加单元通过两个乘法输入端获取到的乘数和乘数以及通过加法输入端获取到的加数。
12.其进一步的技术方案为,该标量乘控制器对每个乘加单元的调度方法还包括:将两个域长的数据组同时输入乘加单元,乘加单元利用每个乘法模组执行每个数据组所需的一组位子乘数的乘法运算得到相应的乘法结果,且在每个时钟周期并行调用两个位的乘法模组分别计算两个数据组所需的一组位子乘数的乘法结果;使得乘加单元通过一个时钟周期计算得到两个数据组各自的乘法结果,通过一个时钟周期计算得到两个数据组各自的乘法结果,通过一个时钟周期计算得到两个数据组各自的;乘加单元共通过3个时钟周期并行完成两个数据组各自的模乘运算以及模加运算并分别输出两个数据组各自的的乘加运算结果。
13.其进一步的技术方案为,模逆单元基于扩展的欧几里得算法执行模逆运算且每次运行4位,执行一次模逆运算耗费个时钟周期,表示对向上取整,是标量乘电路支持的有限域的域长。
14.其进一步的技术方案为,标量乘控制器执行的调度方法还包括:
当确定标量乘电路支持的有限域为二元域时向模逆单元发送第一控制指令,模逆单元根据第一控制指令通过异或运算完成加法操作;当确定标量乘电路支持的有限域为素数域时向模逆单元发送第二控制指令,模逆单元根据第二控制指令通过加法运算完成加法操作。
15.本技术的有益技术效果是:本技术公开了一种面向椭圆曲线加密算法的标量乘电路,将传统的点加和倍点的计算过程拆分开并调整了标量乘控制器的时序调度过程,使得只需使用两个乘加单元、一个模逆单元结合若干个寄存器即可完成标量乘的运算,通过优化标量乘调度方案使得该标量乘电路在具有较小的电路面积的同时高效的计算性能。该标量乘电路可以支持任意域长,任意不可约多项式和曲线参数的标量乘运算,具有较高的通用性和灵活性,可以保持高性能的需求。
16.本技术中的乘加单元将模加运算与模乘运算进行融合,进一步提高了计算性能,且基于传统的蒙哥马利模乘算法和karatsuba分解算法优化了乘加单元的结构和运算过程,可以降低整体模乘的计算复杂度,提升运算速度。
17.基于所优化的乘加单元的结构和运算过程,每个乘加单元可以并行计算两条域长以内的椭圆曲线,提高了对乘加单元的资源利用率,并提高了运算效率。
18.本技术中的模逆单元通过改进传统的扩展的欧几里得算法,可以在不影响关键路径的基础上将降低计算复杂度和执行模逆运算所需的周期数,依次可以提升模逆运算的运算速度。且模逆单元可以依据标量乘控制器的控制指令来切换逻辑,使得模逆单元不仅可以支持二元域上的模逆运算,也可以支持素数域上的模逆运算,方便后续的数字签名算法的计算,进一步提高该标量乘电路的通用性、灵活性、可配置性。
附图说明
19.图1是本技术一个实施例的标量乘电路的电路结构图。
20.图2是本技术一个实施例的每个乘加单元的结构示意图。
具体实施方式
21.下面结合附图对本技术的具体实施方式做进一步说明。
22.本技术公开了一种面向椭圆曲线加密算法的标量乘电路,请参考图1所示的电路结构示意图,该标量乘电路包括标量乘控制器、第一乘加单元、第二乘加单元、模逆单元和寄存器组,其中:(1)标量乘控制器用于控制第一乘加单元、第二乘加单元和模逆单元的运算过程以实现时序调度。(2)第一乘加单元和第二乘加单元相同,每个乘加单元用于执行模乘运算以及模加运算,每个乘加单元包括两个乘法输入端、一个加法输入端和一个乘加输出端,乘加单元通过两个乘法输入端获取乘数和乘数、通过加法输入端获取加数后,执行模乘运算以及模加运算并通过乘加输出端输出的乘加运算结果。在实际应用时,当加法输入端未获取到加数,默认加数为缺省值0。(3)模逆单元基于扩展的欧几里得算法执行模乘运算。(4)寄存器组包括若干个寄存器,在一个实施例中,寄存器组包括寄存器、寄存器、寄存器和寄存器。
23.传统的标量乘电路在进行标量乘运算的过程中,需要循环调用点加和倍点的计
算,而点加和倍点的计算又需要调用底层有限域的运算。本技术为了减少时序的延迟,减少资源的浪费,将传统的点加和倍点的计算过程拆分开并调整了时序调度过程,本技术的标量乘电路中的标量乘控制器执行的调度方法包括:1、获取私钥和椭圆曲线上的点的仿射坐标。私钥为正整数且可以表示为二进制形式的,私钥对应的二进制序列中包含个数据位,从高位至低位分别记为,最高位,为整数参数。
24.本技术的标量乘电路支持任意域长为、任意不可约多项式和曲线参数的标量乘运算,也即椭圆曲线是有限域上的椭圆曲线,是幂底数且为素数,一般直接取。
25.椭圆曲线上的点的仿射坐标满足,是椭圆曲线的一次项特征参数,是椭圆曲线的常数项特征参数。
26.2、初始化投影坐标、、、,初始化整数参数。
27.3、在对应任意的一次循环中,执行如下第一个循环计算步至第六个循环计算步,下列实施例以、、和进行表示,、、和是本技术自定义的四个变量参数且用于表示投影坐标、、、,变量参数和变量参数中的一个变量参数表示、另一个变量参数表示,变量参数和变量参数中的一个变量参数表示、另一个变量参数表示。后续会具体解释四个变量参数、、和各自表示的含义:(1)在第一个循环计算步,调用第一乘加单元根据和计算得到中间结果并寄存在寄存器中,同时,调用第二乘加单元根据计算得到中间结果并寄存在寄存器中。
28.在第一个循环计算步对两个乘加单元的调用过程包括:将和分别输入第一乘加单元的两个乘法输入端,同时,将同时输入第二乘加单元的两个乘法输入端。第一乘加单元通过乘加输出端输出并寄存在寄存器,因此寄存器的取值。第二乘加单元通过乘加输出端输出并寄存在寄存器中,因此寄存器的取值。
29.(2)在第二个循环计算步,调用第一乘加单元根据、和第一个循环计算步得到的中间结果更新中间结果并寄存在寄存器中,同时,调用第二乘加单元根据第一个循环计算步得到的中间结果更新中间结果。
30.在第二个循环计算步对两个乘加单元的调用过程包括:将和分别输入第一乘加单元的两个乘法输入端、将第一个循环计算步得到的中间结果输入第一乘加单元的加法输入端,同时,将第一个循环计算步得到的中间结果同时输入第二乘加单元的两个乘法输入端。第一乘加单元通过乘加输出端输出并寄存在寄存器,因此寄存器的取值。第二乘加单元通过乘加输出端输出。
31.(3)在第三个循环计算步,调用第一乘加单元根据以及第二个循环计算步得到的中间结果和中间结果更新中间结果并寄存在寄存器中,同时,调用第二乘加单元根据更新中间结果。
32.在第三个循环计算步对两个乘加单元的调用过程包括:将和第二个循环计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端、将第二个循环计算步得到的中间结果输入第一乘加单元的加法输入端,同时,将同时输入第二乘加单元的两个乘法输入端。第一乘加单元通过乘加输出端输出并寄存在寄存器中,因此寄存器的取值。第二乘加单元通过乘加输出端输出。
33.(4)在第四个循环计算步,调用第一乘加单元根据寄存器的取值和第三个循环计算步得到的中间结果更新中间结果并作为更新后的,同时,调用第二乘加单元根据第三个循环计算步得到的中间结果更新中间结果并寄存在寄存器中。
34.在第四个循环计算步对两个乘加单元的调用过程包括:将寄存器的取值和第三个循环计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端,同时,将第三个循环计算步得到的中间结果同时输入第二乘加单元的两个乘法输入端。第一乘加单元通过乘加输出端输出并作为更新后的,则更新后的。第二乘加单元通过乘加输出端输出并寄存在寄存器中,因此寄存器的取值。
35.(5)在第五个循环计算步,调用第一乘加单元根据寄存器的取值更新中间结果并作为更新后的,同时,调用第二乘加单元根据寄存器的取值更新中间结果。
36.在第五个循环计算步对两个乘加单元的调用过程包括:将寄存器的取值同时输入第一乘加单元的两个乘法输入端,同时,将寄存器的取值同时输入第二乘加单元的两个乘法输入端。第一乘加单元通过乘加输出端输出并作为更新后的,则更新后的。第二乘加单元通过乘加输出端输出。
37.(6)在第六个循环计算步,调用第一乘加单元根据、第五个循环计算步得到的中间结果和寄存器的取值更新中间结果并作为更新后的,同时,调用第二乘加单元根据、寄存器的取值以及第五个循环计算步得到的中间结果更新中间结果并作为更新后的。
38.在第六个循环计算步对两个乘加单元的调用过程包括:将和第五个循环计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端、将寄存器的取值输入第一乘加单元的加法输入端,同时,将和寄存器的取值分别输入第二乘加单元的两个乘法输入端、将第五个循环计算步得到的中间结果输入第二乘加单元的加法输入端。第一乘加单元通过乘加输出端输出并作为更新后的,则更新后的。第二乘加单元通过乘加输出端输出并作为更新后的,则更新后的。
39.在上述六个循环计算步中,根据对应的的取值不同,、、和有不同的含
义。
40.当对应的时、、、,则基于上述实施例描述的时序调用过程,对应任意的一次循环中执行第一个循环计算步至第六个循环计算步的时序调度过程如下表一所示:表一
41.当对应的时、、、,则基于上述实施例描述的时序调用过程,对应任意的一次循环中执行第一个循环计算步至第六个循环计算步的时序调度过程如下表二所示:表二
42.4、通过上述步骤可以看出,在每次循环中会对投影坐标、、、进行更新。当时进入下一次循环,利用本次循环更新得到的、、、在下一次循环中重复执行第一个循环计算步至第六个循环计算步。直至时,确定主循环运算过程结束,并进入如下步骤5的坐标转换过程。
43.5、调用第一乘加单元、第二乘加单元和模逆单元对投影坐标、、、进行坐标转换输出标量乘结果的仿射坐标。在一个实施例中,坐标转换过程包括如下步骤:(1)在第一个转换计算步,调用第一乘加单元根据、和更新中间结果,同时,调用第二乘加单元根据、和更新中间结果。
44.第一个转换计算步对两个乘加单元的调用过程包括:将以及主循环运算过程得到的分别输入第一乘加单元的两个乘法输入端、将主循环运算过程得到的输入第一乘加单元的加法输入端,同时,将以及主循环运算过程得到的分别输入第二乘加单元的两个乘法输入端、将主循环运算过程得到的输入第二乘加单元的加法输入端。第一乘加单元更新中间结果,第二乘加单元更新中间结果。
45.(2)在第二个转换计算步,调用第一乘加单元根据第一个转换计算步得到的中间结果和中间结果更新中间结果并更新寄存器,同时,调用第二乘加单元根据和更新中间结果并更新寄存器。
46.第二个转换计算步对两个乘加单元的调用过程包括:将第一个转换计算步得到的中间结果和中间结果分别输入第一乘加单元的两个乘法输入端,同时,将主循环运算过程得到的和分别输入第二乘加单元的两个乘法输入端。第一乘加单元更新中间结果并更新寄存器,因此寄存器的取值。第二乘加单元更新中间结果并更新寄存器,因此寄存器的取值。
47.(3)在第三个转换计算步,调用第一乘加单元根据和更新中间结果,同时,调用第二乘加单元根据和第二个转换计算步得到的中间结果更新中间结果。
48.第三个转换计算步对两个乘加单元的调用过程包括:将和分别输入第一乘加单元的两个乘法输入端、且将输入第一乘加单元的加法输入端,同时,将和第二个转换计算步得到的中间结果分别输入第二乘加单元的两个乘法输入端。第一乘加单元更新中间结果,第二乘加单元更新中间结果。
49.在第一个转换计算步、第二个转换计算步和第三个转换计算步调用两个乘加单元的过程中,同时调用模逆单元根据进行模逆运算得到。一般模逆单元完成模逆运算所需的时钟周期远大于三个转换计算步所需的时钟周期,因此在第三转换计算步完成后,等待直至模逆单元完成模逆运算后进入第四个转换计算步。
50.(4)在第四个转换计算步,调用第一乘加单元根据寄存器的取值、第三个转换计算步得到的中间结果以及寄存器的取值更新中间结果,同时,调用第二乘加单元根据模逆单元得到的、和更新中间结果并得到。
51.第四个转换计算步对两个乘加单元的调用过程包括:将寄存器的取值以及第三个转换计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端、将寄存器的取值输入第一乘加单元的加法输入端,同时,将模逆单元得到的以及主循环运算过程得到的输入第二乘加单元。第一乘加单元更新中间结果。第二乘加单元更新中间结果以及,即为的乘法部分结果。
52.(5)在第五个转换计算步,调用第一乘加单元根据第四个转换计算步得到的中间结果和中间结果更新中间结果。
53.第五个转换计算步对两个乘加单元的调用过程包括:将第四个转换计算步得到的中间结果和中间结果分别输入第一乘加单元的两个乘法输入端,第一乘加单元更新中间结果。
54.在第四个转换计算步和第五个转换计算步调用两个乘加单元的过程中,同时调用模逆单元根据第三个转换计算步得到的中间结果进行模逆运算更新得到。同样的,模逆单元完成模逆运算所需的时钟周期远大于两个转换计算步所需的时钟周期,因此在第五转换计算步完成后,等待直至模逆单元完成模逆运算后进入第六个转换计算步。
55.(6)在第六个转换计算步,调用第一乘加单元根据模逆运算得到的以及第五个转换计算步得到的中间结果更新中间结果并作为。
56.第六个转换计算步对两个乘加单元的调用过程包括:将模逆单元得到的和五个转换计算步得到的中间结果分别输入第一乘加单元的两个乘法输入端、将输入第一乘加单元的加法输入端,第一乘加单元更新中间结果并作为,因此。
57.基于上述实施例描述的时序调用过程,坐标转换过程执行第一个转换计算步至第六个转换计算步的时序调度过程如下表三所示:表三
58.由此本技术通过改进时序调度过程,利用标量乘控制器、两个乘加单元、模逆单元和寄存器组即可实现标量乘运算,标量乘电路的电路面积较小且具有较优的运算性能。
59.除了优化时序调度过程之外,本技术的标量乘电路中使用到的乘加单元也做了结构优化,考虑到二元域中的模加运算只是简单的异或,关键路径只是一次异或的时间,如果单独设计会造成时钟周期上的浪费,因此本技术将模加运算融入到模乘运算中,得到乘加单元,且基于传统的蒙哥马利模乘算法和karatsuba分解算法,通过优化传统的蒙哥马利模乘算法降低了乘加单元的计算复杂度,以提高计算效率。
60.在一个实施例中,每个乘加单元基于位的乘法模组构建,每个乘加单元利用乘法模组执行模乘运算以及模加运算的方法包括如下步骤:(a)通过两个乘法输入端获取乘数和乘数、通过加法输入端获取加数,、和的域长均为。确定,与的最大公约数为1,。
61.(b)利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到乘法结果,并确定乘法结果的高半程和低半程,乘法结果的域长为,低半程包括乘法结果的低位,高半程包括乘法结果的高位且在位宽不足时通过高位补零得到。
62.在基于karatsuba结合蒙哥马利模乘计算得到乘法结果时,首先将乘数划分为高半程和低半程,将乘数划分为高半程和低半程,乘数的低半程包括乘数的低位、高半程包括乘数的高位且在位宽不足时通过高位补零得到。乘数的低半程包括乘数的低位、高半程包括乘数的高位且在位宽不足时通过高位补零得到。
63.划分得到的高半程、低半程、低半程和高半程分别是4个位子乘数,然后计算这4个位子乘数的部分积、、以及。在计算每一个部分积时,将每一个位子乘数利用karatsuba四项分解方法进一步划分,以低半程为例,利用karatsuba四项分解为,其中,、、和分别为分解系数,表示对向上取整。对于其他的位子乘数也如此同样分解,由此在计算每一组位子乘数的乘法结果时,可以将原来需要16次完成的大整数乘法运算减少为9次即可完成,以将乘法计算时的计算复杂度从降低至。
64.基于此,在另一个实施例中,如图2所示,每个位的乘法模组包括9个位的ka乘法核,表示对向上取整,在利用乘法模组计算一组位子乘数的乘法结果时,利用karatsuba四项分解对每个位子乘数划分后,分别利用9个位的ka乘法核并行运算所需的9次乘法运算,从而得到一组位子乘数的乘法结果。使得位的乘法模组利用一个时钟周期计算得到一组位子乘数的乘法结果。
65.(c)利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到乘法结果,乘法结果的域长为,是乘法结果的低位。
66.(d)利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到并作为的乘加运算结果通过乘加输出端输出。表示对乘法结果右移位的乘加运算结果,这意味着乘积结果移除掉,相当于只取乘法结果的高半程,乘法结果的域长为,乘法结果的高半程包含乘法结果的高位且在位宽不足时通过高位补零得到。
67.基于乘法模组所采用的上述优化后的蒙哥马利模乘算法,综合考虑电路面积和计算效率,在一个实施例中,如图2所示,每个乘加单元包括两个位的乘法模组且两个位的乘法模组的结构以及运算过程均相同。则每个乘加单元执行模乘运算以及模加运算的方法包括如下过程,根据输入乘加单元的数据组的域长分为两种情况,每个数据组包括乘加单元通过两个乘法输入端获取到的乘数和乘数以及通过加法输入端获取到的加数。
68.情况一,输入乘加单元的一个数据组的域长时。
69.在这种情况中,乘加单元获取到的乘数的高半程和低半程均为有效数据位,乘加单元获取到的乘数的高半程和低半程均为有效数据位。因此乘加单元在上述步骤(b)需要利用两个乘法模组计算全部4个部分积、、以及,则乘加单元在每个时钟周期并行调用两个位的乘法模组分别计算两组位子乘数的乘法结果,使得乘加单元通过两个时钟周期计算得到乘法结果。
70.在步骤(c)和(d)中同样如此,因此乘加单元通过两个时钟周期计算得到乘法结果,通过两个时钟周期计算得到。
71.所以在这种情况中,乘加单元共通过6个时钟周期完成域长的一个数据组的模乘运算以及模加运算并输出的乘加运算结果。
72.情况二,输入乘加单元的一个数据组的域长时。
73.在这种情况中,乘加单元获取到的乘数的高半程均为0且由高位补零得到、而低半程为有效数据位,乘加单元获取到的乘数的高半程均为0且由高位补零得到、低半程为有效数据位。因此乘加单元在上述步骤(b)只需利用乘法模组计算部分积即可,其余3个部分积、以及可以直接输出为0。
74.则乘加单元在每个时钟周期调用一个位的乘法模组计算一组位子乘数的乘法结果,使得乘加单元通过一个时钟周期计算得到乘法结果。
75.在步骤(c)和(d)中同样如此,因此乘加单元通过一个时钟周期计算得到乘法结果
,通过一个时钟周期计算得到。
76.所以在这种情况中,乘加单元共通过3个时钟周期完成域长的一个数据组的模乘运算以及模加运算并输出的乘加运算结果。
77.基于乘加单元的这种运算特性,标量乘电路在完成标量乘运算过程中,在每一次循环的每一个循环计算步会调用一次乘加单元来计算得到一个数据组的乘加运算结果,则当一个循环计算步输入乘加单元的数据组的域长时,该循环计算步占用3个时钟周期;当一个循环计算步输入乘加单元的数据组的域长时,该循环计算步占用6个时钟周期。在坐标转换过程中,当一个转换计算步输入乘加单元的数据组的域长时,该循环计算步占用3个时钟周期;当一个转换计算步输入乘加单元的数据组的域长时,该转换计算步占用6个时钟周期。
78.在上述情况一中,乘加单元在通过6个时钟周期计算得到一个数据组的乘加运算结果时,每个时钟周期都并行调用两个乘法模组。但在上述情况二中,乘加单元在通过3个时钟周期计算得到一个数据组的乘加运算结果时,每个时钟周期只调用其中一个乘法模组,会使得另一个乘法模组处于闲置状态,造成资源上的浪费。所以为了提高资源利用率,在另一个实施例中,标量乘控制器对每个乘加单元的调度方法还包括:将两个域长的数据组同时输入一个乘加单元,乘加单元利用每个乘法模组执行每个数据组所需的一组位子乘数的乘法运算得到相应的乘法结果,且在每个时钟周期并行调用两个位的乘法模组分别计算两个数据组所需的一组位子乘数的乘法结果。使得乘加单元通过一个时钟周期计算得到两个数据组各自的乘法结果,通过一个时钟周期计算得到两个数据组各自的乘法结果,通过一个时钟周期计算得到两个数据组各自的。乘加单元共通过3个时钟周期并行完成两个数据组各自的模乘运算以及模加运算并分别输出两个数据组各自的的乘加运算结果,也即一个乘加单元通过3个时钟周期并行计算两条域长以内的椭圆曲线。
79.除了对乘加单元进行优化之外,在另一个实施例中,对模逆单元也进行优化,包括如下两方面的优化:一方面,改进传统的扩展的欧几里得算法,将每次运算1位改为每次运算多位,虽然关键路径会有些增加,但由于乘加单元关键路径较长,所以模逆单元,关键路径增加之后并不会成为整体设计的关键路径,但将运算位数增加之后,执行模逆运算的周期数也会随之成倍数减少,以此可以提升模逆运算的速度。由于运算位数的增加,关键路径延迟将成倍数增加,如果选取过大,会造成关键路径的问题,所以综合考虑将每次运算1位改为每次运算4位,这样执行模逆运算的周期数减少为原来的1/4,所以执行一次模逆运算耗费个时钟周期,表示对向上取整,以此可以提升模逆运算的速度。
80.另一方面,考虑到二元域和素数域的模逆计算原理相同,只是在执行加法操作时,二元域采用异或运算,素数域采用普通的加法运算。所以采用统一的模逆单元实现双域的模逆运算并利用控制指令来切换,则标量乘控制器执行的调度方法还包括:当确定标量乘电路支持的有限域为二元域时向模逆单元发送第一控制指令,模逆单元根据第一控制指令
通过异或运算完成加法操作。当确定标量乘电路支持的有限域为素数域时向模逆单元发送第二控制指令,模逆单元根据第二控制指令通过加法运算完成加法操作。由此使得模逆单元不仅可以支持二元域上的模逆运算,也可以支持素数域上的模逆运算,方便后续的数字签名算法的计算,提高该标量乘电路的通用性、灵活性、可配置性。
81.以上所述的仅是本技术的优选实施方式,本技术不限于以上实施例。可以理解,本领域技术人员在不脱离本技术的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本技术的保护范围之内。

技术特征:
1.一种面向椭圆曲线加密算法的标量乘电路,其特征在于,所述标量乘电路包括标量乘控制器、第一乘加单元、第二乘加单元、模逆单元和寄存器组,所述第一乘加单元和所述第二乘加单元相同且用于执行模乘运算以及模加运算,所述模逆单元用于执行模逆运算,所述寄存器组包括若干个寄存器;所述标量乘控制器执行的调度方法包括:获取私钥和椭圆曲线上的点的仿射坐标,并确定私钥对应的二进制序列中包含的个数据位,最高位,是整数参数;初始化投影坐标、、、,初始化整数参数;定义四个变量参数、、、,在对应任意的一次循环中执行第一个循环计算步至第六个循环计算步,且时、、、;时、、、:(1)在第一个循环计算步,调用所述第一乘加单元根据和计算得到中间结果并寄存在寄存器中,同时,调用所述第二乘加单元根据计算得到中间结果并寄存在寄存器中;(2)在第二个循环计算步,调用所述第一乘加单元根据、和第一个循环计算步得到的中间结果更新中间结果并寄存在寄存器中,同时,调用所述第二乘加单元根据第一个循环计算步得到的中间结果更新中间结果;(3)在第三个循环计算步,调用所述第一乘加单元根据以及第二个循环计算步得到的中间结果和中间结果更新中间结果并寄存在寄存器中,同时,调用所述第二乘加单元根据更新中间结果;(4)在第四个循环计算步,调用所述第一乘加单元根据寄存器的取值和第三个循环计算步得到的中间结果更新中间结果并作为更新后的,同时,调用所述第二乘加单元根据第三个循环计算步得到的中间结果更新中间结果并寄存在寄存器中;(5)在第五个循环计算步,调用所述第一乘加单元根据寄存器的取值更新中间结果并作为更新后的,同时,调用所述第二乘加单元根据寄存器的取值更新中间结果;(6)在第六个循环计算步,调用所述第一乘加单元根据、第五个循环计算步得到的中间结果和寄存器的取值更新中间结果并作为更新后的,同时,调用所述第二乘加单元根据、寄存器的取值以及第五个循环计算步得到的中间结果更新中间结果并作为更新后的,是所述椭圆曲线的常数项特征参数;令并进入下一次循环,直至时确定主循环运算过程结束并调用所述第一乘加单元、第二乘加单元和模逆单元对投影坐标、、、进行坐标转换输出标量乘结果的仿射坐标。2.根据权利要求1所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,在每次循环中:
在第一个循环计算步,将和分别输入所述第一乘加单元的两个乘法输入端,同时,将同时输入所述第二乘加单元的两个乘法输入端;所述第一乘加单元通过乘加输出端输出并寄存在寄存器中,所述第二乘加单元通过乘加输出端输出并寄存在寄存器中;在第二个循环计算步,将和分别输入所述第一乘加单元的两个乘法输入端、将第一个循环计算步得到的中间结果输入所述第一乘加单元的加法输入端,同时,将第一个循环计算步得到的中间结果同时输入所述第二乘加单元的两个乘法输入端;所述第一乘加单元通过乘加输出端输出并寄存在寄存器中,所述第二乘加单元通过乘加输出端输出;在第三个循环计算步,将和第二个循环计算步得到的中间结果分别输入所述第一乘加单元的两个乘法输入端、将第二个循环计算步得到的中间结果输入所述第一乘加单元的加法输入端,同时,将同时输入所述第二乘加单元的两个乘法输入端;所述第一乘加单元通过乘加输出端输出并寄存在寄存器中,所述第二乘加单元通过乘加输出端输出;在第四个循环计算步,将寄存器的取值和第三个循环计算步得到的中间结果分别输入所述第一乘加单元的两个乘法输入端,同时,将第三个循环计算步得到的中间结果同时输入所述第二乘加单元的两个乘法输入端;所述第一乘加单元通过乘加输出端输出并作为更新后的,所述第二乘加单元通过乘加输出端输出并寄存在寄存器中;在第五个循环计算步,将寄存器的取值同时输入所述第一乘加单元的两个乘法输入端,同时,将寄存器的取值同时输入所述第二乘加单元的两个乘法输入端;所述第一乘加单元通过乘加输出端输出并作为更新后的,所述第二乘加单元通过乘加输出端输出;在第六个循环计算步,将和第五个循环计算步得到的中间结果分别输入所述第一乘加单元的两个乘法输入端、将寄存器的取值输入所述第一乘加单元的加法输入端,同时,将和寄存器的取值分别输入所述第二乘加单元的两个乘法输入端、将第五个循环计算步得到的中间结果输入所述第二乘加单元的加法输入端;所述第一乘加单元通过乘加输出端输出并作为更新后的,所述第二乘加单元通过乘加输出端输出并作为更新后的。3.根据权利要求1所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,输出标量乘结果的仿射坐标包括:在第一个转换计算步,调用所述第一乘加单元根据、和更新中间结果,同时,调用所述第二乘加单元根据、和更新中间结果;
在第二个转换计算步,调用所述第一乘加单元根据第一个转换计算步得到的中间结果和中间结果更新中间结果并更新寄存器,同时,调用所述第二乘加单元根据和更新中间结果并更新寄存器;在第三个转换计算步,调用所述第一乘加单元根据和更新中间结果,同时,调用所述第二乘加单元根据和第二个转换计算步得到的中间结果更新中间结果;在第一个转换计算步、第二个转换计算步和第三个转换计算步调用两个乘加单元的过程中,同时调用所述模逆单元根据进行模逆运算得到,并在所述模逆单元完成模逆运算后进入第四个转换计算步;在第四个转换计算步,调用所述第一乘加单元根据寄存器的取值、第三个转换计算步得到的中间结果以及寄存器的取值更新中间结果,同时,调用所述第二乘加单元根据所述模逆单元得到的、和更新中间结果并得到;在第五个转换计算步,调用所述第一乘加单元根据第四个转换计算步得到的中间结果和中间结果更新中间结果;在第四个转换计算步和第五个转换计算步调用两个乘加单元的过程中,同时调用所述模逆单元根据第三个转换计算步得到的中间结果进行模逆运算更新得到,并在所述模逆单元完成模逆运算后进入第六个转换计算步;在第六个转换计算步,调用所述第一乘加单元根据所述模逆运算得到的以及第五个转换计算步得到的中间结果更新中间结果并作为。4.根据权利要求3所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,输出标量乘结果的仿射坐标还包括:在第一个转换计算步,将以及主循环运算过程得到的分别输入所述第一乘加单元的两个乘法输入端、将主循环运算过程得到的输入所述第一乘加单元的加法输入端,同时,将以及主循环运算过程得到的分别输入所述第二乘加单元的两个乘法输入端、将主循环运算过程得到的输入所述第二乘加单元的加法输入端;所述第一乘加单元更新中间结果,所述第二乘加单元更新中间结果;在第二个转换计算步,将第一个转换计算步得到的中间结果和中间结果分别输入所述第一乘加单元的两个乘法输入端,同时,将主循环运算过程得到的和分别输入所述第二乘加单元的两个乘法输入端;所述第一乘加单元更新中间结果并更新寄存器,所述第二乘加单元更新中间结果并更新寄存器;在第三个转换计算步,将和分别输入所述第一乘加单元的两个乘法输入端、且将输入所述第一乘加单元的加法输入端,同时,将和第二个转换计算步得到的中间结果分别输入所述第二乘加单元的两个乘法输入端;所述第一乘加单元更新中间结果,所述第二乘加单元更新中间结果;在第四个转换计算步,将寄存器的取值以及第三个转换计算步得到的中间结果分别输入所述第一乘加单元的两个乘法输入端、将寄存器的取值输入所述第一乘加单元的加法输入端,同时,将所述模逆单元得到的以及主循环运算过程得到的输入所述第二乘加单元,所述第一乘加单元更新中间结果,所述第二乘加单元更新中间
结果以及;在第五个转换计算步,将第四个转换计算步得到的中间结果和中间结果分别输入所述第一乘加单元的两个乘法输入端,所述第一乘加单元更新中间结果;在第六个转换计算步,将所述模逆单元得到的和五个转换计算步得到的中间结果分别输入所述第一乘加单元的两个乘法输入端、将输入所述第一乘加单元的加法输入端,所述第一乘加单元更新中间结果并作为。5.根据权利要求1所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,每个乘加单元基于位的乘法模组构建,每个乘加单元利用乘法模组执行模乘运算以及模加运算的方法包括:通过两个乘法输入端获取乘数和乘数、通过加法输入端获取加数,确定,与的最大公约数为1,,是所述标量乘电路支持的域长且、和的域长均为,是幂底数;利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到乘法结果,并确定乘法结果的高半程和低半程,低半程包括乘法结果的低位,高半程包括乘法结果的高位且在位宽不足时通过高位补零得到;利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到乘法结果,是乘法结果的低位;利用乘法模组基于karatsuba结合蒙哥马利模乘计算得到并作为的乘加运算结果通过乘加输出端输出,表示对乘法结果右移位的乘加运算结果。6.根据权利要求5所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,每个位的乘法模组包括9个位的ka乘法核,表示对向上取整,在利用所述乘法模组计算一组位子乘数的乘法结果时,利用karatsuba四项分解对每个位子乘数划分后,分别利用9个位的ka乘法核并行运算得到一组位子乘数的乘法结果,所述位的乘法模组利用一个时钟周期计算得到一组位子乘数的乘法结果。7.根据权利要求6所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,每个乘加单元包括两个位的乘法模组,每个乘加单元执行模乘运算以及模加运算的方法包括:当输入所述乘加单元的一个数据组的域长时,所述乘加单元获取到的乘数的高半程和低半程均为有效数据位,所述乘加单元获取到的乘数的高半程和低半程均为有效数据位;所述乘加单元利用乘法模组执行4组位子乘数的乘法运算得到相应的乘法结果,且在每个时钟周期并行调用两个位的乘法模组分别计算两组位子乘数的乘法结果,使得所述乘加单元通过两个时钟周期计算得到乘法结果,通过两个时钟周期计算得到乘法结果,通过两个时钟周期计算得到;所述乘加单元共通过6个时钟周期完成模乘运算以及模加运算并输出的乘加运算结果;
当输入所述乘加单元的一个数据组的域长时,所述乘加单元获取到的乘数的高半程均为0、低半程为有效数据位,所述乘加单元获取到的乘数的高半程均为0、低半程为有效数据位,所述乘加单元利用乘法模组执行1组位子乘数的乘法运算得到相应的乘法结果,且在每个时钟周期并行调用一个位的乘法模组计算一组位子乘数的乘法结果,使得所述乘加单元通过一个时钟周期计算得到乘法结果,通过一个时钟周期计算得到乘法结果,通过一个时钟周期计算得到;所述乘加单元共通过3个时钟周期完成模乘运算以及模加运算并输出的乘加运算结果;其中,乘数的低半程包括乘数的低位、高半程包括乘数的高位且在位宽不足时通过高位补零得到;乘数的低半程包括乘数的低位、高半程包括乘数的高位且在位宽不足时通过高位补零得到;每个数据组包括所述乘加单元通过两个乘法输入端获取到的乘数和乘数以及通过加法输入端获取到的加数。8.根据权利要求7所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,所述标量乘控制器对每个乘加单元的调度方法还包括:将两个域长的数据组同时输入所述乘加单元,所述乘加单元利用每个乘法模组执行每个数据组所需的一组位子乘数的乘法运算得到相应的乘法结果,且在每个时钟周期并行调用两个位的乘法模组分别计算两个数据组所需的一组位子乘数的乘法结果;使得所述乘加单元通过一个时钟周期计算得到两个数据组各自的乘法结果,通过一个时钟周期计算得到两个数据组各自的乘法结果,通过一个时钟周期计算得到两个数据组各自的;所述乘加单元共通过3个时钟周期并行完成两个数据组各自的模乘运算以及模加运算并分别输出两个数据组各自的的乘加运算结果。9.根据权利要求1所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,所述模逆单元基于扩展的欧几里得算法执行模逆运算且每次运行4位,执行一次模逆运算耗费个时钟周期,表示对向上取整,是所述标量乘电路支持的有限域的域长。10.根据权利要求1所述的面向椭圆曲线加密算法的标量乘电路,其特征在于,所述标量乘控制器执行的调度方法还包括:当确定所述标量乘电路支持的有限域为二元域时向所述模逆单元发送第一控制指令,所述模逆单元根据所述第一控制指令通过异或运算完成加法操作;当确定所述标量乘电路支持的有限域为素数域时向所述模逆单元发送第二控制指令,所述模逆单元根据所述第二控制指令通过加法运算完成加法操作。

技术总结
本申请公开了一种面向椭圆曲线加密算法的标量乘电路,涉及数字信息传输领域,该标量乘电路优化了标量乘控制器的时序调度过程,将传统的点加和倍点的计算过程拆分开并重新设计标量乘调度方案,使得只需使用两个乘加单元、一个模逆单元结合若干个寄存器即可完成标量乘的运算,通过优化标量乘调度方案使得该标量乘电路在具有较小的电路面积的同时高效的计算性能。该标量乘电路可以支持任意域长,任意不可约多项式和曲线参数的标量乘运算,具有较高的通用性和灵活性,可以保持高性能的需求。求。求。


技术研发人员:请求不公布姓名
受保护的技术使用者:无锡沐创集成电路设计有限公司
技术研发日:2023.08.29
技术公布日:2023/10/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐