用于数据安全通信的并行模乘方法与流程

文档序号:20065419发布日期:2020-03-06 08:25阅读:400来源:国知局

本发明属于据安全通信技术领域,具体涉及一种用于数据安全通信的并行模乘方法。



背景技术:

在数据通信领域,密码安全技术能够保证数据的完整性和真实性,并影响着整个通信系统的执行效率。有限域下的基本运算是构成数据安全通信加解密技术的基石,其中大整数乘法取模(模乘)运算,形如c≡a×bmodp,是基数据安全通信双方加解密操作的核心运算技术,针对模乘的优化特别是效率优化对数据安全通信系统的构建意义重大。

1985年美国数学家蒙哥马利最早提出了一种规避除法运算的模乘方法:蒙哥马利模乘。该方法的设计思路是通过一个易于计算的剩余系,将模乘中对特定模数(即有限域的特征值p)的取模转换成对蒙哥马利常数r的取模。当蒙哥马利常数r设定为2的n次方时,取模操作就转换为了容易实现的移位操作,加快了模乘的运行速度。其计算输入为乘数a,b,模数n,蒙哥马利系数r-1,其中,r=2k,其中,k=log2n,算法能够计算出蒙哥马利模乘结果a*b*r-1modn。

蒙哥马利模乘中a,b,n皆为k比特的二进制数,运行过程只包括加减、乘法操作和移位取模操作。移位操作的实现非常简单,而且几乎不占用硬件资源,相较于使用除法,蒙哥马利算法的运算复杂度大大降低。

但是由于蒙哥马利模乘的预计算包括了模逆运算的步骤,其结果比直接模乘多了个r-1的乘积项:r≡a×b×r-1modn。因此利用montgomery算法实现模乘还需对操作数进行转换,即进行蒙哥马利域的转换,对输入参数a,b,n,t,其中t=r2modn,需要计算a'=mont(a,t,n),b'=mont(b,t,n),r'=mont(a',b',n),最后需要多计算一步r=mont(r',1,n),将结果转换出蒙哥马利域。

因此,在提高数据安全通信运算中有限域下大整数模乘运算实现速度,充分发挥软硬件实现方案中的计算资源提高系统计算能力方面,目前还存在较大的提升需求。



技术实现要素:

(一)要解决的技术问题

本发明要解决的技术问题是:为了提高数据安全通信运算中有限域下大整数模乘运算实现速度,为了充分发挥软硬件实现方案中的计算资源提高系统计算能力,如何提供一种基于蒙哥马利模乘的并行模乘方法。要求该方法在保证模乘正确性的情况下,通过优化模乘运算步骤和方法提高算法的并行性,以满足日益增长的数据安全通信对密码安全应用方案的速度需求。

(二)技术方案

为解决上述技术问题,本发明提供一种用于数据安全通信的并行模乘方法,所述并行模乘方法将两个操作乘数输入a,b都拆分为(w0,w2,……wr)多比特位的表示形式,进行逐字扫描运算;将乘法和约减操作分布在同一内循环之内,模乘运算就被分解为r-bit×r-bit乘法器能够实现的操作。

其中,所述并行模乘方法针对256位的大数模乘,其模乘运算被分解为r-bit×r-bit乘法器能够实现的操作,其中r取值为64。

其中,所述并行模乘方法包括如下步骤:

步骤1:设置存放模乘结果的数r=0,将操作数a拆分为(a0,a1,a2,a3),操作数b拆分为(b0,b1,b2,b3),模数n也拆分为(n0,n1,n2,n3);

步骤2:拆分出四个无数据依赖的乘法,t0到t3分别存放计算结果:t0=b0a0mod2r,t1=b1a0mod2r,t2=b2a0mod2r,t3=b3a0mod2r

步骤3:对于计数值i从0到3执行以下步骤,pi0到pi3存放计算结果:{pi0=a0bi,pi1=a1bi,pi2=a2bi,pi3=a3bi};

同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运行;

步骤4:对于计数值i从0到3执行以下步骤,si0到si3存放计算结果:{si0=n0ti,si1=n1ti,si2=n2ti,si3=n3ti};

同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运行;

步骤5:计算临时计算结果变量的累加和:r=∑(pij+sij)2(i+j)r

其中,i=0,1,2,3;j=0,1,2,3;

步骤6:如果r>n,则进行计算r=r-n;

步骤7:最后,得到模乘运算的结果:r。

其中,所述步骤2中,四个乘法可进行并行化运算,64位乘法运算的并行能够将运算时间减少为之前1/4。

其中,所述方法通过将蒙哥马利模乘的操作数进行拆分重排,避免了原模乘运算各步间的数据依赖。

其中,所述方法中,每步运算均可由4个64-bit乘法器并行执行,运算的结果作为模乘的部分积在步骤5中统一进行压缩。

其中,该方法同时也兼顾了系统对256-bit大数乘法和大数加法的运算需求,对于非取模运算同样能通过数据拆分并行执行。

其中,该基于蒙哥马利模乘的并行模乘方法,能够设计出具有较高并行性的密码加解密应用产品加速器,满足加密系统运算单元对计算速度和硬件资源的要求。

(三)有益效果

与现有技术相比较,本发明提出一种用于数据安全通信的并行模乘方法,在保持有限域基本运算逻辑完整的情况下,相比于传统的蒙哥马利算法,理论速度得到了很大的提升。随着密码安全的发展,越来越需要并行的速度、更快的方法来实现有限域基本运算,本方案给出的并行模乘方法可以充分发挥出软硬件密码应用平台的性能。这对基于本方法构建的密码实现方案有极大的性能提升,尤其是在密码算法需要硬件实现的场景下,越来越多的方案对速度有较高的要求,所以如何利用好硬件实现平台,提高效率越来越重要的。而本方法将是一个很好的选择,将会为密码安全软硬件实现发展提供更好的保障。

由此,为了提高数据安全通信运算中有限域下大整数模乘运算实现速度,为了充分发挥软硬件实现方案中的计算资源提高系统计算能力,本发明提供一种基于蒙哥马利模乘的并行模乘方法。该方法在保证模乘正确性的情况下,通过优化模乘运算步骤和方法提高算法的并行性,以满足日益增长的数据安全通信对密码安全应用方案的速度需求。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合实施例,对本发明的具体实施方式作进一步详细描述。

加解密系统的速度由模乘技术的性能决定。因此,针对大数乘法取模运算进一步优化蒙哥马利模乘方法并使其能够在有限的硬件资源条件下运行就成了模乘方法优化的重要方向。蒙哥马利模乘已经衍生出了许多改进的版本。这些方法大都是以原始蒙哥马利模乘为基础,通过相应的优化策略而得出。

本方法提出的所述并行模乘方法将两个操作乘数输入a,b都拆分为(w0,w2,……wr)多比特位的表示形式,进行逐字扫描运算;将乘法和约减操作分布在同一内循环之内,模乘运算就被分解为r-bit×r-bit乘法器能够实现的操作。(本方法的方法为256位大数模乘,所以r取值为64),具有明显的速度和面积上的优势。所述并行模乘方法针对256位的大数模乘,其模乘运算被分解为r-bit×r-bit乘法器能够实现的操作,其中r取值为64。

所述的用于数据安全通信的并行模乘方法,可通过软硬件技术实现部署于数据安全通信系统中。

所述并行模乘方法包括如下步骤:

步骤1:设置存放模乘结果的数r=0,将操作数a拆分为(a0,a1,a2,a3),操作数b拆分为(b0,b1,b2,b3),模数n也拆分为(n0,n1,n2,n3);

步骤2:拆分出四个无数据依赖的乘法,t0到t3分别存放计算结果:t0=b0a0mod2r,t1=b1a0mod2r,t2=b2a0mod2r,t3=b3a0mod2r,此步骤中四个乘法可进行并行化运算,64位乘法运算的并行能够将运算时间减少为之前1/4;

步骤3:对于计数值i从0到3执行以下步骤,pi0到pi3存放计算结果:{pi0=a0bi,pi1=a1bi,pi2=a2bi,pi3=a3bi};

同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运行;

步骤4:对于计数值i从0到3执行以下步骤,si0到si3存放计算结果:{si0=n0ti,si1=n1ti,si2=n2ti,si3=n3ti};

同样本步骤的四个乘法操作无数据依赖,可进行全部并行化运行;

步骤5:计算临时计算结果变量的累加和:r=∑(pij+sij)2(i+j)r

其中,i=0,1,2,3;j=0,1,2,3;

步骤6:如果r>n,则进行计算r=r-n;

步骤7:最后,得到模乘运算的结果:r。

所述方法通过将蒙哥马利模乘的操作数进行拆分重排,避免了原模乘运算各步间的数据依赖。所述方法中,每步运算均可由4个64-bit乘法器并行执行,运算的结果作为模乘的部分积在步骤5中统一进行压缩。

该方法同时也兼顾了系统对256-bit大数乘法和大数加法的运算需求,对于非取模运算同样能通过数据拆分并行执行。

该基于蒙哥马利模乘的并行模乘方法,能够设计出具有较高并行性的密码加解密应用产品加速器,满足加密系统运算单元对计算速度和硬件资源的要求。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1