一种基于分解约简的格加密模乘运算方法及架构

文档序号:67759 发布日期:2021-10-01 浏览:25次 >En<

阅读说明:本技术 一种基于分解约简的格加密模乘运算方法及架构 (Lattice encryption modular multiplication operation method and framework based on decomposition reduction ) 是由 王中风 胡潇 李明昊 田静 于 2021-07-20 设计创作,主要内容包括:本申请属于数据密码处理技术领域,从降低格加密计算的复杂度角度出发,提供一种基于分解约简的格加密模乘运算方法及架构,所述方法包括:限定有限域的特征模素数q的形式,输入模素数q、被乘数X和乘数Y,对被乘数X和乘数Y以基数2~(N)进行分解,再将X和Y乘积的展开式按基数2~(2N)进行分解后直接取模约简得到第一约简中间值,对第一约简中间值按基数2~(2N)进行分解后直接取模约简,获得第二约简中间值,再根据第二约简中间值的大小将其调整到模q有限域中,本申请通过分解约简,有效减少了中间数据的数据位宽,提出了更低计算复杂度和计算延迟的格加密模乘运算方法,并设计了相应的模乘运算架构,而且本申请的模乘运算方法和架构不失通用性。(The application belongs to the technical field of data cryptographic processing, and provides a lattice encryption modular multiplication operation method and a lattice encryption modular multiplication operation framework based on decomposition reduction from the viewpoint of reducing the complexity of lattice encryption calculation, wherein the method comprises the following steps: a form of a characteristic prime number q defining a finite field, the prime number q, a multiplicand X and a multiplier Y being input, the multiplicand X and the multiplier Y being of base 2 N Decomposing the product of X and Y by radix 2 2N Directly carrying out modular reduction after decomposition to obtain a first reduction intermediate value, and carrying out radix 2 treatment on the first reduction intermediate value 2N The modular multiplication operation method and the modular multiplication operation architecture are designed correspondingly, and the modular multiplication operation method and the architecture do not lose generality.)

一种基于分解约简的格加密模乘运算方法及架构

技术领域

本申请涉及数据密码处理

技术领域

,具体涉及一种基于分解约简的格加密模乘运算方法及架构。

背景技术

随着后量子密码学(Post Quantum Cryptography,PQC)和同态加密(HomomorphicEncryption,HE)的发展,基于晶格的密码学(Lattice based cryptography,LBC,以下简称格加密)越来越受到人们的关注。由于格加密抗量子计算攻击的能力以及在安全性和复杂性上取得的良好折衷,使其有望成为标准的加密方案类别,但因为格加密的应用多为计算密集型,需要提高计算效率以便用于更实际的应用。

格加密的计算效率瓶颈通常是有限域内的多项式乘法,而有限域内的多项式乘法通常采用数论变换进行计算,在数论变化中,模乘计算占据了大量的计算复杂度,因此优化模乘算法对整个格加密系统的应用具有重要意义。

目前,针对格加密的模乘计算,现有的优化方案普遍分为两类,第一类采用蒙哥马利取模算法或者巴约特约简算法进行通用的算法优化,第二类通过设定模素数或其他参数的形式进行算法优化,例如,可以通过使用改进的巴约特约简算法,以更少的操作数实现模乘,要求其中一个输入为已知常数;以及可以使用数论变换,采用一种词级蒙哥马利约简算法,对素数有一定要求,并且因为其中的数据长度和内部计算单元数是根据参数具体选择的,无法参数化;还可以针对形式的素数,提出一种基于卡拉楚巴算法的高效乘法器,约简过程中的乘法被移位操作和加法所代替,从而实现低延迟。

然而,上述优化方案或是没有进一步挖掘模数本身的特点,造成较高的计算复杂度和计算延迟;或是对模素数建立非常严格的筛选条件或者仅针对某一两个固定的模素数进行算法优化,从而缺少通用性。

发明内容

本申请提供一种基于分解约简的格加密模乘运算方法及架构,以提供一种更低复杂度的格加密模乘运算方法及架构。

本申请第一方面提供一种基于分解约简的格加密模乘运算方法,所述一种基于分解约简的格加密模乘运算方法包括:

选取形式为22N-δ的模素数q,其中为2N为模素数q的数据位宽,0<δ<2N-2;从模q有限域中选取被乘数X和乘数Y,其中X和Y为数据位宽为2N比特的无符号整数,并且0≤X,Y<q;输入模素数q、被乘数X和乘数Y;

对所述被乘数X和所述乘数Y以基数2N进行分解,得到x1、x0、y1和y0,所述x1、所述x0、所述y1和所述y0分别为X除以2N的商、X除以2N余数、Y除以2N的商和Y除以2N的余数;

将所述被乘数X和所述乘数Y乘积的展开式按基数22N进行分解后直接取模约简,获得第一约简中间值;

对所述第一约简中间值按基数22N进行分解后直接取模约简,获得第二约简中间值;

比较所述第二约简中间值和q的大小,得到模乘运算结果,若第二约简中间值大于或等于q,所述模乘运算结果为第二约简中间值减去q的结果值;若第二约简中间值小于q,所述模乘运算结果为第二中间约简值。

可选的,所述将所述被乘数X和所述乘数Y乘积的展开式按基数22N进行分解后直接取模约简,获得第一约简中间值的步骤,具体为:

建立第一约简中间值的表达式,所述第一约简中间值的表达式是通过对被乘数X和所述乘数Y乘积的展开式按基数22N进行分解后直接取模约简得到,第一约简中间值的表达式为:

Z_0=z0+z1×2N+z2×δ;

式中,z0=x0y0,z1=(x1+x0)(y1+y0)-x0y0-x1y1,z2=x1y1

根据第一约简中间值的表达式对x1、x0、y1和y0进行乘法和加法运算,得到所述第一约简中间值。

可选的,所述对所述第一约简中间值按基数22N进行分解后直接取模约简,获得第二约简中间值的步骤,具体为:

将第一约简中间值进行分解后直接取模约简,得到第二约简中间值的表达式,所述第二约简中间值的表达式为:

Z_1=z'0+z1'×δ+z'2×δ×2N

式中,z'0=Z_0mod22N,z1'=Z_0/22Nmod2N,z'2=Z_0/23N

根据第二约简中间值的表达式计算所述第二约简中间值。

本申请第二方面提供一种基于分解约简的格加密模乘运算架构,所述一种基于分解约简的格加密模乘运算架构,包括数据输入单元、整数分解单元、第一分解约简单元、第二分解约简单元和判定输出单元;

所述数据输入单元,用于选取形式为22N-δ的模素数q,其中为2N为模素数q的数据位宽,0<δ<2N-2;从模q有限域中选取被乘数X和乘数Y,其中X和Y为数据位宽为2N比特的无符号整数,并且0≤X,Y<q;输入模素数q、被乘数X和乘数Y;

所述整数分解单元,用于对所述被乘数X和所述乘数Y以基数2N进行分解,得到x1、x0、y1和y0,所述x1、所述x0、所述y1和所述y0分别为X除以2N的商、X除以2N余数、Y除以2N的商和Y除以2N的余数;

所述第一分解约简单元,用于将所述被乘数X和所述乘数Y乘积的展开式按基数22N进行分解后直接取模约简,获得第一约简中间值;

所述第二分解约简单元,用于对所述第一约简中间值按基数22N进行分解后直接取模约简,获得第二约简中间值;

所述判定输出单元,用于比较所述第二约简中间值和q的大小,若第二约简中间值大于或等于q,将第二约简中间值减去q的结果值作为模乘运算结果;若第二约简中间值小于q,将第二中间约简值作为模乘运算结果。

可选的,所述第一分解约简单元包括乘积展开模块;

所述乘积展开模块包括第一乘法器、第二乘法器、第三乘法器、第一加法器、第二加法器和第三加法器,第三乘法器的两个输入端分别与第一加法器输出端和第二加法器输出端相连,第三加法器的三个输入端分别与第一乘法器输出端、第二乘法器输出端和第三乘法器输出端相连;

所述第一乘法器,用于计算x0和y0的乘积;

所述第二乘法器,用于计算x1和y1的乘积;

所述第一加法器,用于计算x1和x0的和;

所述第二加法器,用于计算y1和y0的和;

所述第三乘法器,用于计算第一加法器的输出结果和第二加法器的输出结果的乘积;

所述第三加法器,用于计算第一乘法器输出结果的负值、第二乘法器输出结果的负值和第三乘法器输出结果的和。

可选的,所述第一分解约简单元还包括第一约简计算模块;

所述第一约简计算模块包括第一移位器、第一乘法模块和第四加法器,所述第一移位器的一个输入端与第三加法器的输出端相连,所述第一乘法模块的一个输入端与第二乘法器的输出端相连,所述第四加法器的三个输入端分别与第一乘法器输出端、第一移位器输出端和第一乘法模块输出端相连;

所述第一移位器,用于计算第三加法器输出结果和2N的乘积;

所述第一乘法模块,用于计算第二乘法器输出结果和δ的乘积;

所述第四加法器,用于计算第一乘法器输出结果、第一移位器输出结果和第一乘法模块输出结果的和,所述第四加法器输出结果为所述第一约简中间值。

可选的,所述第一乘法模块包括第四乘法器、第三移位器和第七加法器,所述第四乘法器一个输入端与第一乘法模块输入端相连且另一输入端输入(δ+1)/2n,其中为n为2的幂次方且qmod2n=1,所述第三移位器的输入端与第四乘法器输出端相连,所述第七加法器两个输入端分别与第三移位器和第一乘法模块输入端相连,所述第七加法器的输出端与第一乘法模块输出端相连;

所述第四乘法器,用于计算第二乘法器输出结果和(δ+1)/2n的乘积;

所述第三移位器,用于计算第四乘法器输出结果和2n的乘积;

所述第七加法器,用于计算第三移位器输出结果和第一乘法模块输入结果负值的和。

可选的,所述第二分解约简单元包括第二分解模块;

所述第二分解模块用于将第四加法器输出结果按基数22N进行分解,得到第一约简中间值分解结果,所述第一约简中间值分解结果包括z0'、z1'和z2',其中Z_0为第四加法器输出结果,z'0=Z_0mod22N,z′1=Z_0/22Nmod2N,z'2=Z_0/23N

可选的,所述第二分解约简单元还包括第二约简计算模块,所述第二约简计算模块包括第二乘法模块、第三乘法模块、第二移位器和第五加法器,所述第二移位器的输入端与第三乘法模块相连,所述第五加法器的两个输入端分别与第二乘法模块和第二移位器相连,且另一输入端输入z0';

所述第二乘法模块,用于计算z1'和δ的乘积;

所述第三乘法模块,用于计算z2'和δ的乘积;

所述第二移位器,用于计算第三乘法模块输出结果和2N的乘积;

所述第五加法器,用于计算第二乘法模块输出结果、第二移位器输出结果和z0'的和。

可选的,所述第三乘法模块包括第二多路选择器,所述第二多路选择器用于预存储0、1、2和3分别乘以δ的乘积,第二多路选择器的输入端输入z2'的值;

若z2'为0,则所述第二多路选择器输出0;

若z2'为1,则所述第二多路选择器输出δ;

若z2'为2,则所述第二多路选择器输出2δ;

若z2'为3,则所述第二多路选择器输出3δ。

由上述技术方案可知,本申请实施例提供的一种基于分解约简的格加密模乘运算方法及架构,限定模素数q的形式,输入模素数q、被乘数X和乘数Y,对被乘数X和乘数Y以基数2N进行分解,再将X和Y乘积的展开式按基数22N进行分解后直接取模约简得到第一约简中间值,对第一约简中间值按基数22N进行分解后直接取模约简,获得第二约简中间值,再根据第二约简中间值的大小将其调整到模q有限域中,本申请通过分解约简,有效减少了中间数据的数据位宽,提出了更低计算复杂度和计算延迟的格加密模乘运算方法,并设计了相应的模乘运算架构,而且本申请的模乘运算方法和架构不失通用性。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的基于分解约简的格加密模乘运算架构的架构示意图a。

图2是本申请实施例提供的基于分解约简的格加密模乘运算架构的架构示意图b。

图3是本申请实施例提供的所述第一乘法模块的架构示意图。

图4是本申请实施例提供的所述第二乘法模块的架构示意图。

图5是本申请实施例提供的所述第三乘法模块的架构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。

本申请实施例提供一种基于分解约简的格加密模乘运算方法,所述一种基于分解约简的格加密模乘运算方法包括步骤1至步骤5。

步骤1,选取形式为22N-δ的模素数q,其中为2N为模素数q的数据位宽,0<δ<2N-2;从模q有限域中选取被乘数X和乘数Y,其中X和Y为数据位宽为2N比特的无符号整数,并且0≤X,Y<q;输入模素数q、被乘数X和乘数Y;

本申请实施例首先对有限域的特征数模素数q进行一定形式的限定,需要说明的是,本申请实施例对模素数q的限制并不严格,所以不失通用性。在此基础上再进行模q有限域中的乘法运算,即输入模素数q、被乘数X和乘数Y,其中X和Y为数据位宽为2N比特的无符号整数,并且0≤X,Y<q,计算XY mod q。

步骤2,对所述被乘数X和所述乘数Y以基数2N进行分解,得到x1、x0、y1和y0,所述x1、所述x0、所述y1和所述y0分别为X除以2N的商、X除以2N余数、Y除以2N的商和Y除以2N的余数。

本申请实施例以2N为基数将所述被乘数X和所述乘数Y分解为:

X=x1×2N+x0

Y=y1×2N+y0

其中,x1、x0、y1和y0分别为X除以2N的商、X除以2N余数、Y除以2N的商和Y除以2N的余数。

需要说明的是,本申请实施例中,关于2的幂的乘除以及模运算都可以通过简单的位运算来实现。

步骤3,将所述被乘数X和所述乘数Y乘积的展开式按基数22N进行分解后直接取模约简,获得第一约简中间值。

S301,建立第一约简中间值的表达式,所述第一约简中间值的表达式是通过对被乘数X和所述乘数Y乘积的展开式按基数22N进行分解后直接取模约简得到,第一约简中间值的表达式为:

Z_0=z0+z1×2N+z2×δ;

式中,z0=x0y0,z1=(x1+x0)(y1+y0)-x0y0-x1y1,z2=x1y1

关于所述第一约简中间值的表达式详细推导步骤如下所示,首先将所述被乘数X和所述乘数Y的乘积展开,其展开式为:

Z=z0+z1×2N+z2×22N

式中,Z为X和Y的乘积展开式,z0=x0y0,z1=(x1+x0)(y1+y0)-x0y0-x1y1,z2=x1y1

由于模素数q为22N-δ,则有22N mod q=δ,因此不计算Z的值,而是直接构造Z modq,将Z按基数2N分解后直接取模约简,得到第一约简中间值的表达式,其中,将Z按基数2N分解后直接取模约简的算法推导步骤为:

其中,设Z_0=z0+z1×2N+z2×δ,为第一约简中间值的表达式。

S302,根据第一约简中间值的表达式对x1、x0、y1和y0进行乘法和加法运算,得到所述第一约简中间值。

关于第一约简中间值的数据位宽,可作如下推导:

再由于0<δ<2N-2,则

因此,第一约简中间值的最大数据位宽为3N+2,比起4N比特长的Z减少约25%,可见,本申请实施例通过初步的分解约简降低了计算的复杂度。

进一步的,当对n点多项式进行数论变换时,模素数还需要满足q mod 2n=1且n为2的幂次方,因此,本申请实施例对模素数进行相应的进一步限定,则

式中,

本申请实施例提供一种mul_δ模型,所述mul_δ模型用于计算输入值与δ的乘积,首先第一步先计算输入值与δ'的乘积,其中再将输入值与δ'的乘积乘以2n后减去输入值,获得mul_δ模型输出结果。在第一约简中间值表达式Z_0=z0+z1×2N+z2×δ中,利用mul_δ模型计算z2×δ,以此可以通过更小位宽的乘法和加法实现z2和δ乘积运算。

步骤4,对所述第一约简中间值按基数22N进行分解后直接取模约简,获得第二约简中间值。

S401,将第一约简中间值进行分解后直接取模约简,得到第二约简中间值的表达式,所述第二约简中间值的表达式为:

Z_1=z'0+z′1×δ+z'2×δ×2N

式中,z'0=Z_0mod22N,z′1=Z_0/22Nmod2N,z'2=Z_0/23N

关于所述第二约简中间值的表达式详细推导步骤如下所示,本申请实施例再次利用分解约简的思路,按基数22N对第一约简中间值进行分解,获得分解结果表达式,所述分解结果表达式为:

z'0+z′1×22N+z'2×23N

式中,z'0=Z_0mod22N,z′1=Z_0/22Nmod2N,z'2=Z_0/23N

对分解结果表达式直接取模约简,获得第二约简中间值的表达式,所述第二约简中间值的表达式为:

Z_1=z'0+z′1×δ+z'2×δ×2N

S402,根据第二约简中间值的表达式计算所述第二约简中间值。

关于第二约简中间值的数据大小,可作如下推导:

z0'∈[0,22N-1],z1'∈[0,2N-1],z2'∈[0,22-1];

再由于0<δ<2N-2,则

由此可见,经过步骤4低复杂度的分解约简过程,最后得到的第二约简中间值满足0≤Z_1<2q,因此,接下来将第二约简中间值调整到模q有限域中即可得模乘运算结果。

进一步的,可以利用mul_δ模型计算z1'×δ。

步骤5,比较所述第二约简中间值和q的大小,得到模乘运算结果,若第二约简中间值大于或等于q,所述模乘运算结果为第二约简中间值减去q的结果值;若第二约简中间值小于q,所述模乘运算结果为第二中间约简值。

本申请实施例在经过步骤3和步骤4两个低复杂度的分解约简过程后,第二约简中间值满足0≤Z_1<2q,因此,将第二约简中间值调整到模q有限域中即可得XYmodq运算结果。

与前述一种基于分解约简的格加密模乘运算方法的实施例相对应,本申请还提供了一种基于分解约简的格加密模乘运算架构的实施例,参见图1,为本申请实施例提供的一种基于分解约简的格加密模乘运算架构的架构示意图a,参见图2,为本申请实施例提供的一种基于分解约简的格加密模乘运算架构的架构示意图b,所述一种基于分解约简的格加密模乘运算架构包括数据输入单元、整数分解单元、第一分解约简单元、第二分解约简单元和判定输出单元。

所述数据输入单元,用于选取形式为22N-δ的模素数q,其中为2N为模素数q的数据位宽,0<δ<2N-2;从模q有限域中选取被乘数X和乘数Y,其中X和Y为数据位宽为2N比特的无符号整数,并且0≤X,Y<q;输入模素数q、被乘数X和乘数Y;

所述整数分解单元,用于对所述被乘数X和所述乘数Y以基数2N进行分解,得到x1、x0、y1和y0

所述第一分解约简单元,用于将所述被乘数X和所述乘数Y乘积的展开式按基数22N进行分解后直接取模约简,获得第一约简中间值。

所述第一分解约简单元包括乘积展开模块;所述乘积展开模块包括第一乘法器、第二乘法器、第三乘法器、第一加法器、第二加法器和第三加法器,第三乘法器的两个输入端分别与第一加法器输出端和第二加法器输出端相连,第三加法器的三个输入端分别与第一乘法器输出端、第二乘法器输出端和第三乘法器输出端相连。

所述第一乘法器,用于计算x0和y0的乘积。

所述第二乘法器,用于计算x1和y1的乘积。

所述第一加法器,用于计算x1和x0的和。

所述第二加法器,用于计算y1和y0的和。

所述第三乘法器,用于计算第一加法器的输出结果和第二加法器的输出结果的乘积。

所述第三加法器,用于计算第一乘法器输出结果的负值、第二乘法器输出结果的负值和第三乘法器输出结果的和。

所述第一分解约简单元还包括第一约简计算模块。

所述第一约简计算模块包括第一移位器、第一乘法模块和第四加法器,所述第一移位器的一个输入端与第三加法器的输出端相连,所述第一乘法模块的一个输入端与第二乘法器的输出端相连,所述第四加法器的三个输入端分别与第一乘法器输出端、第一移位器输出端和第一乘法模块输出端相连。

所述第一移位器,用于计算第三加法器输出结果和2N的乘积。

所述第一乘法模块,用于计算第二乘法器输出结果和δ的乘积。

所述第四加法器,用于计算第一乘法器输出结果、第一移位器输出结果和第一乘法模块输出结果的和,所述第四加法器输出结果为所述第一约简中间值。

进一步的,如图3所示,为本申请实施例提供的第一乘法模块的架构示意图,所述第一乘法模块包括第四乘法器、第三移位器和第七加法器,所述第四乘法器一个输入端与第一乘法模块输入端相连且另一输入端输入(δ+1)/2n,其中为n为2的幂次方且qmod2n=1,所述第三移位器的输入端与第四乘法器输出端相连,所述第七加法器两个输入端分别与第三移位器和第一乘法模块输入端相连,所述第七加法器的输出端与第一乘法模块输出端相连。

所述第四乘法器,用于计算第二乘法器输出结果和(δ+1)/2n的乘积。

所述第三移位器,用于计算第四乘法器输出结果和2n的乘积。

所述第七加法器,用于计算第三移位器输出结果和第一乘法模块输入结果负值的和。

因此,利用所述第一乘法模块可以通过更小位宽的乘法和加法实现第二乘法器输出结果和δ的乘积。

所述第二分解约简单元,用于对所述第一约简中间值按基数22N进行分解后直接取模约简,获得第二约简中间值。

所述第二分解约简单元包括第二分解模块。

所述第二分解模块用于将第四加法器输出结果按基数22N进行分解,得到第一约简中间值分解结果,所述第一约简中间值分解结果包括z0'、z1'和z2',其中Z_0为第四加法器输出结果,z'0=Z_0mod22N,z′1=Z_0/22Nmod2N,z'2=Z_0/23N

所述第二分解约简单元还包括第二约简计算模块,所述第二约简计算模块包括第二乘法模块、第三乘法模块、第二移位器和第五加法器,所述第二移位器的输入端与第三乘法模块相连,所述第五加法器的两个输入端分别与第二乘法模块和第二移位器相连,且另一输入端输入z0'。

所述第二乘法模块,用于计算z1'和δ的乘积。

所述第三乘法模块,用于计算z2'和δ的乘积。

所述第二移位器,用于计算第三乘法模块输出结果和2N的乘积。

所述第五加法器,用于计算第二乘法模块输出结果、第二移位器输出结果和z0'的和。

进一步的,如图4所示,为本申请实施例提供的第二乘法模块的架构示意图,所述第二乘法模块包括第五乘法器、第四移位器和第八加法器,所述第五乘法器一个输入端与第二乘法模块输入端相连且另一输入端输入(δ+1)/2n,其中为n为2的幂次方且qmod2n=1,所述第四移位器的输入端与第五乘法器输出端相连,所述第八加法器两个输入端分别与第四移位器和第二乘法模块输入端相连,所述第八加法器的输出端与第二乘法模块输出端相连。

所述第五乘法器,用于计算第二乘法模块输入结果和(δ+1)/2n的乘积。

所述第四移位器,用于计算第五乘法器输出结果和2n的乘积。

所述第八加法器,用于计算第四移位器输出结果和第二乘法模块输入结果负值的和。

进一步的,如图5所示,为本申请实施例提供的第三乘法模块的架构示意图,所述第三乘法模块包括第二多路选择器,所述第二多路选择器用于预存储0、1、2和3分别乘以δ的乘积,第二多路选择器的输入端输入z2'的值。

若z2'为0,则所述第二多路选择器输出0。

若z2'为1,则所述第二多路选择器输出δ。

若z2'为2,则所述第二多路选择器输出2δ。

若z2'为3,则所述第二多路选择器输出3δ。

所述判定输出单元,包括第六加法器和第一多路选择器,判定输出单元用于比较所述第二约简中间值和q的大小,若第二约简中间值大于或等于q,将第二约简中间值减去q的结果值作为模乘运算结果;若第二约简中间值小于q,将第二中间约简值作为模乘运算结果。

为了直观地体现本申请技术方案的优势,本申请实施例将本申请技术方案与现有最优的格加密器实现作比较,在相同的FPGA板上实现了已发表的最新工作的模乘法器和利用本申请架构的模乘法器。所有的模乘法器都设置为在一个周期内完成,没有进行流水线处理。在参数选择方面,选择了格加密方案中常用的两组参数:(1)(2)n=1024。在实现平台方面,选择在Xilinx Vivado 2016.2上仿真,在Xilinx VIRTEX-7FPGA xc7vx690tffg1761-2的开发板上进行实现。最终结果如表1所示,为几种格加密乘法器的对比。

表1几种格加密乘法器的对比

由表1可以看出,基于本申请架构的模乘法器在牺牲较少查找表资源的基础上,具有最快的速度和最少的DSP消耗。对于n=4096的情况,基于本申请架构的乘法器有1.13-1.89倍的加速比;当n=1024时,基于本申请架构的乘法器有1.12-1.68倍的加速比。

本申请实施例提供的一种基于分解约简的格加密模乘运算方法及架构,限定模素数q的形式,输入模素数q、被乘数X和乘数Y,对被乘数X和乘数Y以基数2N进行分解,再将X和Y乘积的展开式按基数22N进行分解后直接取模约简得到第一约简中间值,对第一约简中间值按基数22N进行分解后直接取模约简,获得第二约简中间值,再根据第二约简中间值的大小将其调整到模q有限域中,本申请通过分解约简,有效减少了中间数据的数据位宽,提出了更低计算复杂度和计算延迟的格加密模乘运算方法,并设计了相应的模乘架构,而且本申请的模乘运算方法和架构不失通用性。

以上结合具体实施方式和范例性实例对本申请进行了详细说明,不过这些说明并不能理解为对本申请的限制。本领域技术人员理解,在不偏离本申请精神和范围的情况下,可以对本申请技术方案及其实施方式进行多种等价替换、修饰或改进,这些均落入本申请的范围内。本申请的保护范围以所附权利要求为准。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:需求符合性分析方法、系统、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类