本发明专利技术公开了一种基于Zynq的椭圆曲线点加运算加速器及加速方法,其中基于Zynq的椭圆曲线点加运算加速器,包括:ARM处理器和可编程逻辑器,ARM处理器与可编程逻辑器通信连接,可编程逻辑器包括点加调度器和多个蒙哥马利模乘器,点加调度器分别与ARM处理和多个蒙哥马利模乘器通信连接。本发明专利技术在可编程逻辑器中设置四个蒙哥马利模乘器,以及一个点加调度器,处理器通过HP总线接口对点加调度器进行控制和数据交换,除了四个蒙哥马利模乘器和一个点加调度器占用少量逻辑资源,本发明专利技术不需要额外的硬件资源;本发明专利技术中将点加运算进行分解后,采用四个蒙哥马利模乘器进行并行运算,大幅度地提高了点加运算的运算效率,缩短了运算时间。
【技术实现步骤摘要】
本专利技术涉及椭圆曲线点加计算
,特别是涉及一种基于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。进一步的,每次点加调度器并行调用四个蒙哥马利模乘器进行计算前,处理器启动相应的运算开关。以上所述仅是本文档来自技高网...
【技术保护点】
基于Zynq的椭圆曲线点加运算加速器,其特征在于,包括:ARM处理器和可编程逻辑器,ARM处理器与可编程逻辑器通信连接,可编程逻辑器包括点加调度器和多个蒙哥马利模乘器,点加调度器分别与ARM处理和多个蒙哥马利模乘器通信连接。
【技术特征摘要】
1.基于Zynq的椭圆曲线点加运算加速器,其特征在于,包括:ARM处理器和可编程逻辑器,ARM处理器与可编程逻辑器通信连接,可编程逻辑器包括点加调度器和多个蒙哥马利模乘器,点加调度器分别与ARM处理和多个蒙哥马利模乘器通信连接。2.根据权利要求1所述的基于Zynq的椭圆曲线点加运算加速器,其特征在于,所述多个蒙哥马利模乘器包括四个蒙哥马利模乘器。3.根据权利要求1所述的基于Zynq的椭圆曲线点加运算加速器,其特征在于,所述点加调度器包括调度控制单元和参数缓存单元,调度控制单元分别与ARM处理器、参数缓存单元和多个蒙哥马利模乘器通信连接。4.基于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.处理器从点...
【专利技术属性】
技术研发人员:吴汶泰,詹璨铭,
申请(专利权)人:四川卫士通信息安全平台技术有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。