[发明专利]一种基于FPGA的椭圆曲线标量乘法加速电路及其算法有效
申请号: | 201410370767.3 | 申请日: | 2014-07-30 |
公开(公告)号: | CN104184578B | 公开(公告)日: | 2017-07-07 |
发明(设计)人: | 蔡晓军;刘帅;鞠雷;贾智平 | 申请(专利权)人: | 山东大学 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 济南圣达知识产权代理有限公司37221 | 代理人: | 张勇 |
地址: | 250061 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 椭圆 曲线 标量 乘法 加速 电路 及其 算法 | ||
1.一种基于FPGA的椭圆曲线标量乘法加速电路,其特征是,包括输入模块、仿射坐标转化为投影坐标模块、主循环乘法模块、投影坐标转化为仿射坐标模块、输出模块和时钟控制模块;输入参数经输入模块将数据传递给仿射坐标转化为投影坐标模块、主循环乘法模块和投影坐标转化为仿射坐标模块;仿射坐标转化为投影坐标模块将数据传递给主循环乘法模块;主循环乘法模块将数据传递给投影坐标转化为仿射坐标模块,所述主循环乘法模块在运行乘法运算的同时并行执行其他运算操作,从而提高效率;投影坐标转化为仿射坐标模块将数据传递给输出模块;时钟控制模块用于控制仿射坐标转化为投影坐标模块、主循环乘法模块和投影坐标转化为仿射坐标模块的时钟信号;
所述基于FPGA的椭圆曲线标量乘法加速电路的具体电路包括5个异或运算单元、2个平方运算单元、2个四次方运算单元、乘法运算模块、有限域上的约减运算单元和9个多路数据选择器;第一异或运算单元和第二异或运算单元均通过第一多路数据选择器将数据传输给第四多路数据选择器和第六多路数据选择器;第三异或运算单元与第四异或运算单元均通过第二多路选择器将数据传输给第四多路数据选择器和第六多路选择器;第五异或运算单元通过第三多路选择器将数据传输给第一平方运算单元;第一平方运算单元将数据传输给第五多路选择器、第四多路数据选择器、第二平方运算单元和第九多路数据选择器;第九多路数据选择器将数据传输给第六多路数据选择器;第四多路数据选择器的输出数据通过第一四次方运算单元将数据传输给第二异或运算单元、第四异或运算单元和第八多路数据选择器;第二四次方运算单元将数据输出给第七多路数据选择器;第七多路数据选择器将数据传递给第二四次方运算单元和第八多路数据选择器;第八多路数据选择器将数据传递给第五多路数据选择器;第二平方运算模块将数据传输给第六多路数据选择器;第六多路数据选择器与第五多路数据选择器将数据传输给乘法运算模块;乘法运算模块的输出数据经有限域上的约减运算单元将数据分别传递给5个异或运算单元、第一至第五多路数据选择器、第七多路数据选择器和第九多路数据选择器。
2.如权利要求1所述的一种基于FPGA的椭圆曲线标量乘法加速电路,其特征是,所述第一异或运算单元的输入端还连接X1;所述第二异或运算单元的输入端还连接X2;所述第六多路数据选择器的输入端还连接xp与b;其中X1、X2 分别表示投影系下两个点(X1,Z1),(X2,Z2)的坐标,xp为点P仿射坐标下的xp,b为椭圆方程常数项。
3.如权利要求1所述的一种基于FPGA的椭圆曲线标量乘法加速电路的算法,其特征是,包括如下步骤:
1)仿射坐标转化为投影坐标,即进行初始化;
2)算法的主循环:算法的主循环部分包含m次循环,m为二进制表示的k的长度,k为整数,每次循环处理k中的一位,每一次循环包含有限域上的6次乘法、2次平方、2次四次方和3次加法运算;
3)将投影坐标转化为仿射坐标。
4.如权利要求3所述的一种基于FPGA的椭圆曲线标量乘法加速电路的算法,其特征是,所述步骤1)中的初始化具体操作为投影系上的两个点的坐标分别设置为(X1,Z1)=(1,0),(X2,Z2)=(xp,1);xp为点P仿射坐标(xp,yp)下的xp。
5.如权利要求4所述的一种基于FPGA的椭圆曲线标量乘法加速电路的算法,其特征是,所述步骤2)中乘法运算与其他运算并行运行;每次乘法运算之后要进行约减,两个连续的乘法运算,后一个不能依赖于前一个输出结果。
6.如权利要求3-5任一所述的一种基于FPGA的椭圆曲线标量乘法加速电路的算法,其特征是,所述步骤2)中当ki=0时,下一个周期从X2Z1开始;ki=1时,下一个周期从X1Z2开始;其中,ki为整数k二进制表示的第i位的数值,i≤m,X1、Z1、X2、Z2为投影系下两个点(X1,Z1),(X2,Z2)的坐标。
7.如权利要求6所述的一种基于FPGA的椭圆曲线标量乘法加速电路的算法,其特征是,所述步骤2)中的乘法运算为Kartsuba-Ofman算法,将每一个乘法操作数分解两次,一个m位的乘法操作数被分解为4个长度均为的部分。
8.如权利要求7所述的一种基于FPGA的椭圆曲线标量乘法加速电路的算法,其特征是,所述步骤3)中的将投影坐标转化为仿射坐标采用Itoh-Tsujii求逆运算,求逆运算由有限域上的乘法和加法组成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410370767.3/1.html,转载请声明来源钻瓜专利网。