[发明专利]一种基于FPGA的椭圆曲线标量乘法加速电路及其算法有效
申请号: | 201410370767.3 | 申请日: | 2014-07-30 |
公开(公告)号: | CN104184578B | 公开(公告)日: | 2017-07-07 |
发明(设计)人: | 蔡晓军;刘帅;鞠雷;贾智平 | 申请(专利权)人: | 山东大学 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 济南圣达知识产权代理有限公司37221 | 代理人: | 张勇 |
地址: | 250061 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 椭圆 曲线 标量 乘法 加速 电路 及其 算法 | ||
技术领域
本发明属于加密算法的硬件加速领域,尤其涉及一种基于FPGA的椭圆曲线标量乘法加速电路及其算法。
背景技术
椭圆曲线密码体制(ECC)理论由Neal Koblitz和Victor Miller于1985年分别独立提出,它是公钥密码体制的一种。公钥密码体制的思想由Diffie和Hellman于1976年提出,与传统的私钥密码体制采用替代和置换的方式不同,它基于数学问题的难解性,要求密钥成对出现,一个是加密密钥,另一个是解密密钥。公钥密码体制有效解决了传统密码体制所面临的密钥分发、密钥管理和无法提供不可否认性的难题,公钥密码体制的运算量较大,在实际应用中常与私钥密码体制结合使用。RSA是一种流行的公钥密码算法,提出于1977年,RSA的安全性基于大整数分解的难题,能够应用于保密通信、密钥管理和数字签名等方面。
ECC依赖于椭圆曲线离散对数问题(ECDLP)的难解性,它的一个主要优势是在相同密钥长度的情况下,与其他公钥密码体制(例如RSA)相比,ECC具有更高的安全性。这使得在应用ECC时能够获得更快的处理速度并降低对带宽和存储空间的要求。
ECC中最主要的运算是椭圆曲线标量乘法运算,它是指给定一个整数k和椭圆曲线上的一个点P,求曲线上另一点Q=kP的过程。该过程通常由点加和倍点组成,点加和倍点又基于有限域上的算术运算。
ECC的实现方式可分为软件和硬件,软件方式可以在通用处理器借助高级编程语言较容易地实现,但其低下的执行效率在很多情况下无法满足应用对性能的要求。与软件方式相比,硬件实现方式具有较高的执行效率,其又可分为基于专用集电路(ASIC)和现场可编程门阵列(FPGA)两种实现方式,与ASIC相比,FPGA的灵活性使得它可以方便的更新硬件设备上的加密算法,因此成为本发明所采用的平台。
FPGA中的门电路可以同时翻转,使得它具有很高的并行性。现有的很多基于FPGA的ECC电路设计没有结合加密算法充分利用FPGA的高度并行性导致效率低下,或者硬件资源消耗严重,无法应用于硬件资源有限的设备上。
发明内容
为了解决上述技术问题,本发明提出了一种基于FPGA的椭圆曲线标量乘法加速电路设计,用以完成二进制域上的椭圆曲线标量乘法运算。该设计结合硬件电路的特性对算法进行改进,具有运算速度快、电路面积小的优势。
为了取得上述技术效果,本发明采用以下技术方案:
一种基于FPGA的椭圆曲线标量乘法加速电路,包括输入模块、仿射坐标转化为投影坐标模块、主循环乘法模块、投影坐标转化为仿射坐标模块、输出模块和时钟控制模块;输入参数经输入模块将数据传递给仿射坐标转化为投影坐标模块、主循环乘法模块和投影坐标转化为仿射坐标模块;仿射坐标转化为投影坐标模块将数据传递给主循环乘法模块;主循环乘法模块将数据传递给投影坐标转化为仿射坐标模块,所述主循环乘法模块在运行乘法运算的同时并行执行其他运算操作,从而提高效率;投影坐标转化为仿射坐标模块将数据传递给输出模块;时钟控制模块用于控制仿射坐标转化为投影坐标模块、主循环乘法模块和投影坐标转化为仿射坐标模块的时钟信号。
所述基于FPGA的椭圆曲线标量乘法加速电路的具体电路包括5个异或运算单元、2个平方运算单元、2个四次方运算单元、乘法运算模块、有限域上的约减运算单元和9个多路数据选择器;第一异或运算单元和第二异或运算单元均通过第一多路数据选择器将数据传输给第四多路数据选择器和第六多路数据选择器;第三异或运算单元与第四异或运算单元均通过第二多路选择器将数据传输给第四多路数据选择器和第六多路选择器;第五异或运算单元通过第三多路选择器将数据传输给第一平方运算单元;第一平方运算单元将数据传输给第五多路选择器、第四多路数据选择器、第二平方运算单元和第九多路数据选择器;第九多路数据选择器将数据传输给第六多路数据选择器;第四多路数据选择器的输出数据通过第一四次方运算单元将数据传输给第二异或运算单元、第四异或运算单元和第八多路数据选择器;第二四次方运算单元将数据输出给第七多路数据选择器;第七多路数据选择器将数据传递给第二四次方运算单元和第八多路数据选择器;第八多路数据选择器将数据传递给第五多路数据选择器;第二平方运算模块将数据传输给第六多路数据选择器;第六多路数据选择器与第五多路数据选择器将数据传输给乘法运算模块;乘法运算模块的输出数据经有限域上的约减运算单元将数据分别传递给5个异或运算单元、第一至第五多路数据选择器、第七多路数据选择器和第九多路数据选择器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410370767.3/2.html,转载请声明来源钻瓜专利网。