[发明专利]椭圆曲线多标量点乘计算优化方法及优化装置在审
申请号: | 202110791569.4 | 申请日: | 2021-07-13 |
公开(公告)号: | CN113504895A | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 高鸣宇;张烨;董江彬 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F7/72 | 分类号: | G06F7/72 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 黄玉霞 |
地址: | 10008*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 椭圆 曲线 标量 计算 优化 方法 装置 | ||
本申请公开了一种椭圆曲线多标量点乘计算优化方法及优化装置,通过设计桶矩阵,来缓存主计算过程中的中间变量点,避免Pippenger中间量的输出,通过持续地流水地运行和计算,直到最后所有的计算全部结束,再进行横向归约和纵向归约,把串行计算总计算次数从数千次降低至一次,消除了大部分的串并转换和同步锁定等开销,有效提升了流水线持续工作时间,从而提升整体性能。
技术领域
本申请涉及密码学技术领域,特别涉及一种椭圆曲线多标量点乘计算优化方法及优化装置。
背景技术
在相关技术中,如图1所示,为Pippenger算法,是PipeZK的MSM模块中一轮次计算所采用的算法,在PipeZK中,总共需要执行这样的计算次以产生个点,最后将这个点再次作为输入进行一次计算,从而得出最终结果。其中N是输入数据的总量,M是单一轮次输入数据的总量,前者一般在106数量级上,后者常取1000、1024等值。
在图1中,针对每一个Gi,其桶(Bucket,用于暂存一个点的结果)存储内容均不相同,因而计算不同的Gi时,每次都需要预先清空Bucket。并且进行纵向归约(Qj=∑2jζGi)和横向归约(Gi=∑iBi)时,这是算法的串行阶段,暂时没有并行算法能对这一计算过程进行并行计算,因而这一串行阶段总共需要执行次,对于输入数据量为数百万的情况,这一阶段会执行上千次,而且无法并行优化,这会造成一定的性能损失。
因此,相关技术的缺点为:
1)每一轮次计算都需要进行纵向归约,而这一计算过程几乎无法并行化,从而造成性能损失。
2)每一轮次计算都需要进行横向归约,而这一计算过程几乎无法并行化,从而造成性能损失。
3)每一轮次计算都需要写回内存,这一过程会带来额外的逻辑控制,带来实现上的一定困难。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的一个目的在于提出一种椭圆曲线多标量点乘计算优化方法,该方法有效提升了流水线持续工作时间,从而提升整体性能。
本申请的另一个目的在于提出一种椭圆曲线多标量点乘计算优化装置。
为达到上述目的,本申请一方面实施例提出了一种椭圆曲线多标量点乘计算优化方法,包括:
在主计算过程中,利用桶矩阵的一行来缓存所述主计算过程中的中间变量点;
在取消PipeZK算法中主计算过程末尾的横向归约的同时,将所述桶矩阵中的内容保持下来,并持续到下一位次的主计算过程;
取消每一轮次末尾纵向归约的部分计算过程;
在所有轮次结束后,在所述桶矩阵上进行横向归约和纵向归约计算,通过所述桶矩阵输出椭圆曲线点。
本申请实施例的椭圆曲线多标量点乘计算优化方法,通过设计桶矩阵,来缓存主计算过程中的变量点,避免Pippenger中间量的输出,通过持续地流水地运行和计算,直到最后所有的计算全部结束,再执行横向归约和纵向归约,把串行计算总计算次数从数千次降低至一次,对分批次处理之间的串并转换阶段进行优化,通过消除这一转换以提升算法可并行程度,有效提升了流水线持续工作时间,从而提升整体性能。
另外,根据本申请上述实施例的椭圆曲线多标量点乘计算优化方法还可以具有以下附加的技术特征:
进一步地,在本申请的一个实施例中,所述桶矩阵共有行,共有2ζ-1列,其中λ为系数的位宽,ζ为位段宽度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110791569.4/2.html,转载请声明来源钻瓜专利网。