[发明专利]椭圆曲线点乘硬件快速实现方法有效

专利信息
申请号: 201110191950.3 申请日: 2011-07-08
公开(公告)号: CN102306091A 公开(公告)日: 2012-01-04
发明(设计)人: 李小平;刘彦明;董庆宽;陈峙屹;张志强 申请(专利权)人: 西安电子科技大学
主分类号: G06F7/72 分类号: G06F7/72
代理公司: 陕西电子工业专利中心 61205 代理人: 田文英;王品华
地址: 710071*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开一种椭圆曲线点乘硬件快速实现方法,本发明基于蒙哥马利算法的椭圆曲线点乘算法,采用硬件并行运算的特点,在资源消耗量没有明显的增加的情况下,将点乘运算中比较耗时的步骤进行拆分,重新组合,设计出了基点乘法1、基点乘法2和基点乘法3三个新的并行运算模块,同时在方法开始时增加了一个对随机数的预判断,形成了一个新的比较节省时间的点乘硬件实现方法。在资源消耗量没有明显的增加的情况下,提高了运算速度。同时在复杂度适中的情况下,适用于固定点点乘与非固定点点乘,提高了通用性。
搜索关键词: 椭圆 曲线 硬件 快速 实现 方法
【主权项】:
一种椭圆曲线点乘硬件快速实现方法,其具体步骤如下:(1)数据输入:通过数据输入端接收来自外部一个随机数和一个二进制域椭圆曲线基点;(2)获取随机数;(3)获取两倍基点的x坐标值:通过乘法组合运算获取两倍基点的x坐标值,在标准投影坐标下将基点、两倍基点的X坐标值、Z坐标值分别存放在寄存器X1、Z1、X2、Z2中;(4)调用寄存器中的值:主状态机调用上一次运算结束后存放在寄存器X1、Z1、X2、Z2中的值;(5)判断位操作:主状态机从随机数的最高位开始往低位进行逐位判断,若随机数当前判断位的值为1,则执行步骤(6),若为0,则执行步骤(7);(6)基点乘法1运算6a)主状态机同时做以下四个乘法运算:调用乘法模块求寄存器X1、Z1中值的乘积,其结果存放在寄存器Z3中;调用乘法模块求寄存器X2、Z2中值的乘积,其结果存放在寄存器Z4中;调用乘法模块求寄存器X1、Z2中值的乘积,其结果存放在寄存器Z5中;调用乘法模块求寄存器X2、Z1中值的乘积;其结果存放在寄存器Z6中;6b)主状态机同时做以下五个运算:调用乘法模块求基点x坐标值和寄存器Z1中值的乘积,将乘积结果存放在寄存器Z3中;调用乘法模块求寄存器Z3、Z4中值的乘积,将结果存放在寄存器Z4中;将寄存器Z5与Z6中的值相加后求平方,其结果存放在寄存器Z1中;将寄存器X2中的值求四次方,其结果存放在寄存器X2中;将寄存器Z2中的值求四次方,其结果存放在寄存器X1中;6c)主状态机同时做以下三个运算:主状态机调用乘法模块求b与寄存器X1中值的乘积,再将乘积结果与寄存器X2中值相加,其结果存放在寄存器Z2中,其中,b是二进制椭圆曲线Weierstrass方程的一个系数;将寄存器Z5中值求平方,其结果存放在寄存器X1中;将寄存器Z3、Z4中值相加,其结果存放在寄存器X2中;6d)发出一个完成信号给步骤(8);(7)基点乘法2运算7a)主状态机同时做以下四个乘法运算:调用乘法模块求寄存器X1、Z1中值的乘积,其结果存放在寄存器Z3中;调用乘法模块求寄存器X2、Z2中值的乘积,其结果存放在寄存器Z4中;调用乘法模块求寄存器X1、Z2中值的乘积,其结果存放在寄存器Z5中;调用乘法模块求寄存器X2、Z1中值的乘积;其结果存放在寄存器Z6中;7b)主状态机同时做以下五个运算:调用乘法模块求基点x坐标值和寄存器Z2中值的乘积,将乘积结果存放在寄存器Z3中;调用乘法模块求寄存器Z3、Z4中值的乘积,将结果存放在寄存器Z4中;将寄存器Z5与Z6中值相加后求平方,其结果存放在寄存器Z2;将寄存器X1中值求四次方,其结果存放在寄存器X2中;将寄存器Z1中值求四次方,其结果存放在寄存器X1中;7c)主状态机同时做以下三个运算:主状态机调用乘法模块求b与寄存器X2中值的乘积,再将乘积结果与寄存器X1中值相加,其结果存放在寄存器Z2中,其中,b是二进制椭圆曲线Weierstrass方程的一个系数;将寄存器Z5中值求平方,其结果存放在寄存器X1中;将寄存器Z3和Z4中值相加,其结果存放在寄存器X2中;7d)发出一个完成信号给步骤(8);(8)判断重复条件主状态机在收到6d)或7d)发出的任意一个完成信号之后,完成以下步骤:8a)控制当前判断位向下移一位;8b)根据当前判断位是否还在随机数内,检查随机数最低位是否已经根据步骤(5)完成了判断,如果完成了判断,则执行步骤(9),否则,重复执行步骤(4);(9)获取点乘的x坐标值主状态机通过对存放在寄存器X1、Z1中的X坐标值和Z坐标值进行除法运算,得到了点乘的x坐标值;(10)基点乘法3运算10a)主状态机调用存放在寄存器X1、Z1、X2、Z2中的值;10b)主状态机同时做以下三个乘法运算:调用乘法模块求寄存器Z1中值和基点x坐标值的乘积,其结果存放在寄存器Z3中;调用乘法模块求寄存器Z2中值和基点x坐标值的乘积,其结果存放在寄存器Z4中;调用乘法模块求寄存器Z1、Z2中值的乘积,其结果存放在寄存器Z5中;10c)主状态机同时做以下四个运算:将基点x坐标值和点乘x坐标值相加,其结果存放在寄存器Z1中;将寄存器Z3、X1中值相加,其结果存放在寄存器Z3中;将寄存器Z4、X2中值相加,其结果存放在寄存器Z4中;将基点x坐标值平方后与基点y坐标值相加,其结果存放寄存器Z2中;10d)主状态机同时做以下三个乘法运算:调用乘法模块求寄存器Z3、Z4中值的乘积,其结果存放在寄存器Z3中;调用乘法模块求寄存器Z5、Z2中值的乘积,其结果存放在寄存器Z4中;调用乘法模块求寄存器Z5中值和基点x坐标值的乘积,其结果存放在寄存器Z5中;10e)主状态机将寄存器Z3与Z4中值相加,其结果存放在寄存器Z3中;10f)主状态机调用求逆模块,对寄存器Z5中值进行一次求逆,将求逆结果存放在寄存器Z5中;10g)主状态机调用一个乘法模块求寄存器Z5、Z3中值的乘积,将乘积结果存放在寄存器Z3中;10h)主状态机调用一个乘法模块求寄存器Z4、Z3中值的乘积,将乘积结果存放在寄存器Z3中;10i)主状态机将寄存器Z3的值与基点的y坐标值相加,得到点乘y坐标值;(11)输出:将得到的点乘的x坐标值和y坐标值通过数据输出端口进行输出操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201110191950.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top