首页 / 专利库 / 电脑安全 / 密码学 / 基于同源曲线的后量子密码学的高速模乘器及其模乘方法

基于同源曲线的后量子密码学的高速模乘器及其模乘方法

阅读:1061发布:2020-05-13

专利汇可以提供基于同源曲线的后量子密码学的高速模乘器及其模乘方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于同源曲线的后量子 密码学 的高吞吐率模乘器及其相应的模乘方法。所述模乘器主要包括乘法模 块 ,约减模块以及后处理模块。其中,乘法模块通过Karatsuba等方法减少乘法器数量。约减模块使用资源消耗更少的常数乘法器和并行化策略。后处理模块通过对加法器进行并行化处理同时提前计算好常数参数进行优化。因此,综上所述,本发明的模乘器具有高吞吐率的特点。另外,本发明公开的模乘方法为基于非常规基数的素数形式,使用优化的巴雷特约减方法,比传统的蒙哥 马 利表示方法有更快的计算速度。综上,本发明为目前的基于同源曲线的后量子加密学的加密方案提供了一种有效的模乘器架构和模乘方法。,下面是基于同源曲线的后量子密码学的高速模乘器及其模乘方法专利的具体信息内容。

1.一种基于同源曲线的后量子密码学加密方案的高吞吐率的模乘器架构,其特征在于,架构的主要模有:
1)乘法模块,用于计算大数据拆分后二次项系数项的乘法;
2)约减模块,通过取模和求余操作进行数据约减;
3)后处理模块,对数据进行后处理得到最终输出。
2.根据权利1所述的模乘器架构的乘法模块,其特征在于,输入为大数据拆分后二次项的系数项,使用Karatsuba方法进行优化,减少了乘法器的数量,减小了计算的复杂度。
3.根据权利1所述的模乘器架构的约减模块,其特征在于,使用优化后的Barrett reduction算法处理数据,得到约减后的数据。并且在模块中使用了比普通乘法器资源消耗更少的常数乘法器,同时使用了并行化以减少关键路径的长度。
4.根据权利1所述的模乘器架构的后处理模块,其特征在于,通过对计算中的加法器进行并行化处理同时提前计算好常数参数来减少其关键路径的长度,提升吞吐率。
5.一种基于权利1所述的模乘器架构的模乘方法,其特征在于,包括输入数据处理,一阶Karatsuba计算,优化Barrett reduction计算,输出数据计算,输出数据后处理五个步骤:
一、第一步输入数据处理,若需要计算A和B关于素数p的模乘,其中本算法中的超奇异曲线的平滑素数格式为f·2xby±1,其中f为1或2,x和y为偶数,这样可以使用R=2x/2by/2作为非传统基数,从而将输入量变为二次项A=a2R2+a1R+a0(f=2)、A=a1R+a0(f=1),并将系数(a2)、a1、a0、(b2)、b1、b0作为输入项。对于支持多精度运算的版本,由于系数不能一次性的进入运算模块中,需要添加存储或者缓存单元来保存数据;对于f为2时的情况,还需要在输入的a2、a1、a0、b2、b1、b0后加上映射:
这样可以将输入系数的数量从三个降到两个,有效减少运算的复杂度。
二、一阶Karatsuba计算,即利用Karatsuba公式计算系数的乘积a1b1、a0b0、a1b0+a0b1,公式为:
aibi+ajbi=(ai+ai)(bi+bi)-aib
这样可以将乘法器的数量减少到三个,由于理论上Karatsuba方法可以无限的降低乘法运算的复杂度,但是与此同时,硬件资源的消耗也会迅速增长,所以需要在两者之间取一个很好的折中。
三、优化的Barrett reduction计算,通过取模和求余操作得到约减后的数据。由于常数乘法器消耗的资源比普通乘法器更少,而算法中需要用到常数参数的乘法,所以在此使用了分开设计的常数乘法器。另外对于多精度版本,根据算法公式,需要在约减之前另外加上,上一次迭代的步骤四的输出进行一些移位操作后的数据。
四、输出数据计算,即通过上一步约减得到的商和余,按照算法公式叠加得到初步的输出数据。如果是多精度版本,则需要将这些数据进行一些移位操作后,加到进入步骤三约减运算前的数据上。通过采用并行化策略进行优化,来进一步提升时钟频率
五、输出数据后处理,对于f=2时的情况,需要通过反映射将系数的数目变回三个;步骤四得到的数据虽然也为正确数据,但需要进行进一步的处理。因为该数据可能不满足算法公式的约束范围,需要进行进位处理。一些加减法操作需要引入而使输出满足算法约束;
通过对计算中的加法器进行并行化处理,同时提前计算好用到的常数参数,可以提高其吞吐率。

说明书全文

基于同源曲线的后量子密码学的高速模乘器及其模乘方法

技术领域

[0001] 本发明涉及一种密码学领域的模乘器及模乘方法;特别涉及后量子加密方案中一种高吞吐率的模乘器及其模乘方法。

背景技术

[0002] 近年以来,在量子计算机的研究上已经取得了很大的进展。许多常用的公钥密钥算法,比如说RSA算法和椭圆曲线密码(ECC)等算法可以很轻易的根据肖尔算法用强量子计算机进行破解。这无疑加速了后量子密码学(PQC)的发展。从2017年以来,国家标准技术研究所(NIST)举办了两轮竞赛,旨在发展后量子标准。超奇异同源密钥封装协议(SIKE)作为26个候选之一,从这两轮竞赛中脱颖而出。SIKE的优点在于与其他候选者相比,它的公钥和私钥的尺寸非常短,可以非常完美地与传统的ECC协议进行兼容。SIKE协议是通过使用密钥封装机制封装超奇异同源diffie-hellman(SIDH)密钥交换协议而开发的。SIDH最初在2011年被提出。SIDH基于在不同的超奇异曲线之间寻找到同源难度的原理来抵御量子攻击。通常,协议中大量串行的同源计算耗费了很长时间的延时,这也是其在实际应用中的瓶颈。因此,加速SIDH的方法可以直接用来加速SIKE协议。
[0003] 许多研究人员对基于软件硬件平台的SIDH/SIKE协议进行了优化。2011年,Jao使用GMP大数据库对SIDH进行了实现,这也被视为SIDH最早的实现版本。在那之后C.Costello和P.Longa等提供的最新版本通常被认为是目前最快的软件实现,它不断地集成了最先进的超奇异同源密码方案。同时,它也结合开放文献中提出的优化方法,提供了SIDH在FPGA和ARM上的硬件实现。通过分解这些计算,可以发现模乘运算是方案的基本运算之一,也是设计中需要重点关注的问题。
[0004] 在运算中,可以注意到一个超奇异曲线的平滑同源素数通常满足公式p=f·axby±1。其中a和b为小的素数,x和y为正整数,f是一个使得p为素数的辅因子。由于素数p的特殊结构,可以通过对取模操作做一些其他的工作以提升其性能。Karmakar发表了一个高效的素数格式为2·2xby-1的取模算法EFFM,其中x和y为偶数。这样他们可以将域上的元素用一个基于非常规基数R=2x/2by/2的二次式来表示,以增加少量的加法操作为代价减少一半的乘法操作。以此为基础的FFM1算法,通过一个额外的映射函数将EFFM算法中的系数由三个减少到两个,这样可以在不改变复杂度的情况下丢弃提前计算的常数参数。而FFM2算法以牺牲更多的计算为代价将素数p的格式拓展为f·2xby±1,同时也是目前为止最先进的算法。

发明内容

[0005] 本发明针对以上问题,基于之前的研究,提出了一个基于非常规基数的素数形式的模乘方法。该方法采用了优化后的Barrett reduction方法,具有比之前的蒙哥利表示方法更快的速度。本发明还基于该方法提出了相应的模乘器架构,具有高吞吐率的特点,具体发明如下:
[0006] 一种基于同源曲线的后量子密码学加密方案的高吞吐率的模乘器架构,其特征在于,架构的主要模有:
[0007] 1)乘法模块,用于计算大数据拆分后二次项系数项的乘法;
[0008] 2)约减模块,通过取模和求余操作进行数据约减;
[0009] 3)后处理模块,对数据进行后处理得到最终输出。
[0010] 上述的模乘器架构的乘法模块,其特征在于,输入为大数据拆分后二次项的系数项,使用Karatsuba方法进行优化,减少了乘法器的数量,减小了计算的复杂度。
[0011] 上述的模乘器架构的约减模块,其特征在于,使用优化后的Barrett reduction算法处理数据,得到约减后的数据。并且在模块中使用了比普通乘法器资源消耗更少的常数乘法器,同时使用了并行化以减少关键路径的长度。
[0012] 上述的模乘器架构的后处理模块,其特征在于,通过对计算中的加法器进行并行化处理同时提前计算好常数参数来减少其关键路径的长度。
[0013] 本发明中模乘器架构的模乘方法,其特征在于,包括输入数据处理,一阶Karatsuba计算,优化Barrett reduction计算,输出数据计算,输出数据后处理五个步骤:
[0014] 一、第一步输入数据处理,若需要计算A和B关于素数p的模乘,其中本算法中的超x y x/奇异曲线的平滑素数格式为f·2 b±1,其中f为1或2,x和y为偶数,这样可以使用R=2
2by/2作为非传统基数,从而将输入量变为二次项A=a2R2+a1R+a0(f=2)、A=a1R+a0(f=1),并将系数(a2)、a1、a0、(b2)、b1、b0作为输入项。对于支持多精度运算的版本,由于系数不能一次性的进入运算模块中,需要添加存储或者缓存单元来保存数据;对于f为2时的情况,还需要在输入的a2、a1、a0、b2、b1、b0后加上映射:
[0015]
[0016] 这样可以将输入系数的数量从三个降到两个,有效减少运算的复杂度。
[0017] 二、一阶Karatsuba计算,即利用Karatsuba公式计算系数的乘积a1b1、a0b0、a1b0+a0b1,公式为:
[0018] aibi+aibi=(ai+ai)(bi+bi)-aib
[0019] 这样可以将乘法器的数量减少到三个,由于理论上Karatsuba方法可以无限的降低乘法运算的复杂度,但是与此同时,硬件资源的消耗也会迅速增长,所以需要在两者之间取一个很好的折中。
[0020] 三、优化的Barrett reduction计算,通过取模和求余操作得到约减后的数据。由于常数乘法器消耗的资源比普通乘法器更少,而该算法中需要用到常数参数的乘法,所以在此使用了分开设计的常数乘法器。另外对于多精度版本,根据算法公式,需要在约减之前另外加上,上一次迭代的步骤四的输出进行一些移位操作后的数据。
[0021] 四、输出数据计算,即通过上一步约减得到的商和余,按照算法公式叠加得到初步的输出数据。如果是多精度版本,则需要将这些数据进行一些移位操作后,加到进入步骤三约减运算前的数据上。通过采用并行化策略进行优化,来进一步提升时钟频率
[0022] 五、输出数据后处理,对于f=2时的情况,需要通过反映射将系数的数目变回三个;步骤四得到的数据虽然也为正确数据,但需要进行进一步的处理。因为该数据可能不满足算法公式的约束范围,需要进行进位。一些加减法操作需要引入而使输出满足算法约束;通过对计算中的加法器进行并行化处理,同时提前计算好用到的常数参数,可以提高其吞吐率。
[0023] 本发明上述的模乘器架构与模乘方法的结合,具有以下的有益效果:
[0024] 首先,本发明的模乘器基于非常规基数的形式进行计算,实现后的计算速度比之前传统的蒙哥马利表示方法更快,计算得到的输出流中输出数据之间的间隔最快仅为一个时钟周期左右;
[0025] 第二,本发明吞吐率高且支持多精度计算,多精度版本的实现结果在硬件资源消耗相当或者稍有增加的情况下,吞吐率达到了之前设计的10倍左右。而非多精度版本虽然硬件的资源消耗相比之下增加了一些,但是与吞吐率的提升相比要小的多,将非多精度版本与之前的设计相比,吞吐率的优势会更加明显,约为之前设计的60倍以上;
[0026] 第三,本发明的多个模块都采用了并行化的策略,提高了时钟频率;
[0027] 第四,输入数据处理中可能用到的映射操作和Karatsuba计算,降低了运算复杂度;
[0028] 第五,将常数乘法器和普通乘法器分开设计,减少了资源消耗。附图说明
[0029] 图1是本发明模乘器的架构示意图;

具体实施方式

[0030] 下面将结合附图对本发明的具体实施作更进一步的说明。首先介绍模乘器架构,其次介绍适用于该模乘器架构的模乘方法。下面通过参考附图描述的实施是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0031] 首先介绍本发明模乘器的架构。
[0032] 图1中是本发明模乘器的架构示意图,包括乘法模块、约减模块和后处理模块。其中,乘法模块,用于计算大数据拆分后二次项系数项的乘法,仅包括三个普通乘法器;约减模块,采用优化后的Barrett reduction算法进行取模和求余操作,进行数据的约减;后处理模块,对数据进行处理使其满足算法的输出约束。
[0033] 具体操作是,根据输入的数据,如果是f=2的版本,则需要经过映射操作将参数变少为两个。然后依照使用Karatsuba方法,将(a0,b0)、(a1,b1)、(a0+a1,b0+b0)分对输入乘法模块中的三个普通乘法器,得到三组乘积。然后数据送入约减模块,使用优化后的Barrett reduction算法处理数据,得到两组余(c0、c1)和商(q0、q1)。将商和余根据算法公式累加得到初步输出结果。如果是多精度版本则需要将其通过一些移位操作后加回进入约减模块前的数据中。最后将初步输出结果输入后处理模块,通过一些加减操作得到符合算法约束的最终输出结果。
[0034] 以下部分内容用于说明本发明的模乘器架构为基础的优化模乘方法。包括输入数据处理,一阶Karatsuba计算,优化Barrett reduction计算,输出数据计算,输出数据后处理五个步骤:
[0035] 一、第一步输入数据处理,若需要计算A和B关于素数p的模乘,其中本算法中的超奇异曲线的平滑素数格式为f·2xby±1,其中f为1或2,x和y为偶数,这样可以使用R=2x/2by/2作为非传统基数,从而将输入量变为二次项A=a2R2+a1R+a0(f=2)、A=a1R+a0(f=1),并将系数(a2)、a1、a0、(b2)、b1、b0作为输入项。对于支持多精度运算的版本,由于系数不能一次性的进入运算模块中,需要添加存储或者缓存单元来保存数据;对于f为2时的情况,还需要在输入的a2、a1、a0、b2、b1、b0后加上映射:
[0036]
[0037] 这样可以将输入系数的数量从三个降到两个,有效减少运算的复杂度。
[0038] 二、一阶Karatsuba计算,即利用Karatsuba公式计算系数的乘积a1b1、a0b0、a1b0+a0b1,公式为:
[0039] aibi+aibi=(ai+ai)(bi+bi)-aib
[0040] 这样可以将乘法器的数量减少到三个,由于理论上Karatsuba方法可以无限的降低乘法运算的复杂度,但是与此同时,硬件资源的消耗也会迅速增长,所以需要在两者之间取一个很好的折中。
[0041] 三、优化的Barrett reduction计算,通过取模和求余操作得到约减后的数据。由于常数乘法器消耗的资源比普通乘法器更少,而算法中需要用到常数参数的乘法,所以在此使用了分开设计的常数乘法器。另外对于多精度版本,根据算法公式,需要在约减之前另外加上,上一次迭代的步骤四的输出进行一些移位操作后的数据。
[0042] 四、输出数据计算,即通过上一步约减得到的商和余,按照算法公式叠加得到初步的输出数据。如果是多精度版本,根据公式C(j)=C(j+1)·2k+AiB mod p,需要将这些数据进行一些移位操作后,加到进入步骤三约减运算前的数据上。通过采用并行化策略进行优化,来进一步提升时钟频率。
[0043] 五、输出数据后处理,对于f=2时的情况,需要通过反映射将系数的数目变回三个;步骤四得到的数据虽然也为正确数据,但需要进行进一步的处理。因为该数据可能不满足算法公式的约束范围,需要进行进位。一些加减法操作需要引入而使输出满足算法约束;通过对计算中的加法器进行并行化处理,同时提前计算好用到的常数参数,可以提高吞吐率。
[0044] 其次结合上述硬件架构说明模乘方法,详细说明了数据在硬件架构中流动情况,模乘方法如下:
[0045] 一、第一步输入数据处理,系数(a2)、a1、a0、(b2)、b1、b0作为输入项。对于支持多精度运算的版本,由于系数不能一次性的进入运算模块中,需要添加存储或者缓存单元来保存数据;对于f为2时的情况,还需要在输入的a2、a1、a0、b2、b1、b0后加上映射操作将输入系数变为a1、a0、b1、b0,即需要把系数经过一个求反器、一个加法器和一个选择器进行处理,从而减少输入系数。
[0046] 二、一阶Karatsuba计算,步骤一的输入系数需要经过两个加法器,最终得到6个数据分成(a0,b0)、(a1,b1)、(a0+a1,b0+b0)三对输入步骤二中的三个普通乘法器,计算得到三个乘积a0b0,a1b1和(a0+a1)(b0+b0)。再经过一系列减法操作后得到(a0+a1)(b0+b0)-a0b0-a1b1等数据;如果是多精度版本,还需要在进入步骤三之前加上前一次迭代中步骤四的输出进行移位操作后的数据。
[0047] 三、优化的Barrett reduction计算,通过取模和求余操作得到商和余,在硬件上的操作为取数据的高位或者低位。计算中对常量参数的乘法使用了两个常数乘法器以减小资源消耗。另外对于多精度版本,根据算法公式,需要在步骤三之前另外加上,上一次迭代的步骤四的输出进行一些移位操作后的数据。
[0048] 四、输出数据计算,即通过步骤三计算得到的商和余,按照算法公式经过一些加法器、减法器和选择器得到初步的输出数据。如果是多精度版本,则根据公式C(j)=C(j+1)·2k+AiB mod p,需要将这些数据进行一些移位操作后,加到进入步骤三约减运算前的数据上。
[0049] 五、输出数据后处理,对于f=2时的情况,需要通过反映射将系数的数目变回三个,反映射操作与映射操作相似,只是多了一个异或操作作为选择信号,额外增加一个求反器和选择器产生额外多出的一个系数输出;在这之后的后处理操作需要经过一系列的加法器、减法器后,通过选择器产生最终的数据输出。
[0050] 实施实例:对素数格式为p=2×23863242-1的对应安全等级为p771的模乘器进行本发明中的具体硬件实现。实现平台为xilinx的Vivado 2016.4,基于Kintex-7的xc7k325tffg900-2开发板和基于Virtex-7的xc7vx690tffg1157-3开发板。
[0051] 多精度版本的实际综合的资源消耗与占比如下表所示:
[0052] 表一 Kintex-7 xc7k325tffg900-2开发板综合结果
[0053]Algorithms FFM1 FFM2 多精度版本
FFs 9675 11635 12902
LUTs 16627 33051 25743
DSPs 122 529 210
fclk 55 25 57
Time(ns) 1164 1120 122
吞吐率(Mb/s) 663 688 6278
[0054] 由表格可以看出,多精度版本的实现结果在硬件资源消耗相当或者稍有增加的情况下,吞吐率达到了之前设计的10倍左右。
[0055] 非多精度版本的实现结果如下表所示:
[0056] 表二 Virtex-7 xc7vx690tffg1157-3开发板综合结果
[0057] Algorithms 多精度版本 非多精度版本FFs 12902 38976
LUTs 25743 63173
DSPs 210 729
fclk 56 60
Time(ns) 124 17
吞吐率(Mb/s) 6168 46260
[0058] 可以看到虽然硬件的资源消耗相比之下增加了一些,但是与吞吐率的提升相比要小的多,将非多精度版本与之前的FFM2相比,吞吐率的优势会更加明显,约为FFM2的60倍以上。
[0059] 通过本发明实施实例的上述模乘器架构和模乘算法,可以最大化地提升模乘器的吞吐率。架构中的乘法模块、约减模块和后处理模块主要给出了功能说明,具体实现这些部分的功能的方法和途径还有很多。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中为明确的各组成部分均可用现有技术加以实现。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈