基于Zynq的椭圆曲线点加运算加速器及加速方法与流程

文档序号:11864350阅读:1004来源:国知局
基于Zynq的椭圆曲线点加运算加速器及加速方法与流程

本发明涉及椭圆曲线点加计算技术领域,特别是涉及一种基于Zynq的椭圆曲线点加运算加速器及加速方法。



背景技术:

椭圆曲线加密算法(ECC)主要是利用了椭圆曲线上的点乘的不可逆特性,从而保证了签名或加密的安全性。而点乘运算则是由多个点加运算迭代完成(点加运算包括了倍点运算)。在椭圆曲线算法中,点加运算往往是从普通坐标系映射到仿射坐标系,通过Montgomery模乘器(蒙哥马利模乘器)计算完成。每一次点加运算包含16次蒙哥马利模乘器的调用,以及一些普通模加、模减运算,现有的方法是依次完成这16次蒙哥马利模乘器的模乘。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于Zynq的椭圆曲线点加运算加速器及加速方法,采用四个蒙哥马利模乘器并行计算,大幅度地提高了点加运算的运行效率。

本发明的目的是通过以下技术方案来实现的:基于Zynq的椭圆曲线点加运算加速器,包括:ARM处理器和可编程逻辑器,ARM处理器与可编程逻辑器通信连接,可编程逻辑器包括点加调度器和多个蒙哥马利模乘器,点加调度器分别与ARM处理和多个蒙哥马利模乘器通信连接。

所述多个蒙哥马利模乘器包括四个蒙哥马利模乘器。

所述点加调度器包括调度控制单元和参数缓存单元,调度控制单元分别与ARM处理器、参数缓存单元和多个蒙哥马利模乘器通信连接。

基于Zynq的椭圆曲线点加运算的加速方法,包括:

S1.定义输入为A(x,y,z)、B(x,y,z),即Ax、Ay、Az、Bx、By、Bz;运算结果为R(x,y,z),即Rx、Ry、Rz;处理器向可编程逻辑器输入模数M、参数n0,以及Ax、Ay、Az、Bx、By、Bz

S2.点加调度器并行调用四个蒙哥马利模乘器计算得到中间值t1、t2、t3和t4

S3.点加调度器并行调用四个蒙哥马利模乘器计算得到中间值n1、n2、n3和n4

S4.处理器从点加调度器中获取中间值n1、n2、n3和n4,计算得到中间值n5、n6、n7和n8,并将中间值n5、n6、n7和n8输入点加调度器;

S5.点加调度器并行调用四个蒙哥马利模乘器计算得到中间值t1'、t2'、t3'和t4';

S6.点加调度器并行调用四个蒙哥马利模乘器计算得到中间值t5、t6和Rz

S7.处理器从点加调度器中获取t3'、t5、t6和Rz,计算得到Rx、n9和Ry

每次点加调度器并行调用四个蒙哥马利模乘器进行计算前,处理器启动相应的运算开关。

步骤S2~S7中,t3=Ay×Bz,t4=By×Az;n1=Ax×t1,n2=t3×t1,n3=Bx×t2,n4=t4×t2;n5=n1-n3,n6=n2-n4,n7=n1+n3,n8=n2+n4;t1'=Az×Bz,t4'=n5×n8;Rz=n5×t1',t5=t2'×n7,t6=t4'×t2';Rx=t3'-t5,n9=t5-2Rx,Ry=n6×n9,Ry=Ry-t6,Ry=Ry/2。

本发明的有益效果是:

(1)本发明在可编程逻辑器中设置四个蒙哥马利模乘器,以及一个点加调度器,处理器通过HP总线接口对点加调度器进行控制和数据交换,除了四个蒙哥马利模乘器和一个点加调度器占用少量逻辑资源,本发明不需要额外的硬件资源;

(2)本发明中将点加运算进行分解后,采用四个蒙哥马利模乘器进行并行运算,大幅度地提高了点加运算的运算效率,缩短了运算时间。

附图说明

图1为本发明中点加运算加速器的一个实施例的示意图;

图2为本发明中点加运算的加速方法的一个实施例的流程示意图。

具体实施方式

下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。

如图1所示,基于Zynq的椭圆曲线点加运算加速器,包括:ARM处理器(Processing System,PS)和可编程逻辑器(Programmable Logic,PL),ARM处理器通过HP(High Performamce AXI)总线与可编程逻辑器通信连接,可编程逻辑器包括点加调度器(PAM)和多个蒙哥马利模乘器(Montgomery Module Multiplier,MMM),点加调度器(Point Adder Manager,PAM)分别与ARM处理和多个蒙哥马利模乘器通信连接。

所述多个蒙哥马利模乘器包括四个蒙哥马利模乘器。

所述点加调度器包括调度控制单元和参数缓存单元,调度控制单元分别与ARM处理器、参数缓存单元和多个蒙哥马利模乘器通信连接。

本实施例中,点加运算加速器基于Xilinx的zynq系列SOC架构,ARM处理器通过HP总线接口对点加调度器进行访问,从而并行调度四个蒙哥马利模乘器进行运算,由于点加运算的中间步骤并不完全相互依赖,因而,通过对四个蒙哥马利模乘器进行合理调度,并行完成一部分中间步骤的运算,能够有效的提高点加运算的效率,缩短运算时间。

如图2所示,基于Zynq的椭圆曲线点加运算的加速方法,包括:

S1.定义输入为A(x,y,z)、B(x,y,z),即Ax、Ay、Az、Bx、By、Bz;运算结果为R(x,y,z),即Rx、Ry、Rz;处理器向可编程逻辑器输入模数M、参数n0,以及Ax、Ay、Az、Bx、By、Bz;模数M、参数n0是蒙哥马利模乘器的输入参数,一次点加运算,所有的蒙哥马利模乘所需要的M和n0都是一致的,可以认为这是两个常数。

S2.点加调度器并行调用四个蒙哥马利模乘器计算得到中间值t1、t2、t3和t4;其中,t3=Ay×Bz,t4=By×Az

S3.点加调度器并行调用四个蒙哥马利模乘器计算得到中间值n1、n2、n3和n4;其中,n1=Ax×t1,n2=t3×t1,n3=Bx×t2,n4=t4×t2

S4.处理器从点加调度器中获取中间值n1、n2、n3和n4,计算得到中间值n5、n6、n7和n8,并将中间值n5、n6、n7和n8输入点加调度器;其中,n5=n1-n3,n6=n2-n4,n7=n1+n3,n8=n2+n4

S5.点加调度器并行调用四个蒙哥马利模乘器计算得到中间值t1'、t2'、t3'和t4';其中,t1'=Az×Bz,t4'=n5×n8

S6.点加调度器并行调用四个蒙哥马利模乘器计算得到中间值t5、t6和Rz;其中,Rz=n5×t1',t5=t2'×n7,t6=t4'×t2'。

S7.处理器从点加调度器中获取t3'、t5、t6和Rz,计算得到Rx、n9和Ry,从而得到运算结果R(x,y,z);其中,Rx=t3'-t5,n9=t5-2Rx,Ry=n6×n9,Ry=Ry-t6,Ry=Ry/2。

本实施例中,点加运算的过程如表1所示:

点加运算的分解表

表1中t1、t2、t3、t4、t1'、t2'、t3'、t4'、t5、t6、n1、n2、n3、n4、n5、n6、n7、n8和n9为点加调度器中的数据缓存结构,ARM处理器通过HP总线接口对点加调度器进行访问。如表1所示,设完成一个蒙哥马利模乘所需时间为T,则在一个T内蒙哥马利模乘器MMM1~MMM4可并行完成4次蒙哥马利模乘,在4T内可以完成15次蒙哥马利模乘运算;设ARM处理器顺序完成某些计算所需时间为X;椭圆曲线点加运算采用表1所示并行操作(即本发明的方案)相较于现有的计算操作可以节约总时间为11T。

进一步的,每次点加调度器并行调用四个蒙哥马利模乘器进行计算前,处理器启动相应的运算开关。

以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

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