【技术实现步骤摘要】
基于ECC的有限域运算调度方法、装置、设备、介质及系统
本专利技术涉及基于椭圆曲线加解密算法的资源优化领域,尤其涉及一种基于ECC的有限域运算调度方法、装置、设备、介质及系统。
技术介绍
椭圆曲线加解密算法的应用范围很广,如TLS、SSH、比特币以及其他加密数字货币等;该算法基于的数学原理是求解定义在椭圆曲线上的离散对数问题。椭圆曲线加密算法具有安全性能高,计算量小,处理速度快,存储空间占用小和带宽要求低等特点。在求解椭圆曲线上的离散对数问题时:椭圆曲线上存在一基点G,在已知密钥K,求KG点并不困难;反之,已知KG点,求密钥K则非常困难。在此不详细说明该数学原理背后的推导过程。在利用椭圆曲线实现例如数字货币的签名验证、TLS等时,都需要进行点乘算法即上述数学原理中KG的计算。点乘算法的常规实现方法如下:输入:K=(Kt-1,…,K1,K0)2,P∈E(Fq)输出:KP实现步骤如下:1.Q→∞2.forifrom0tot-1do2.1ifKi=1thenQ→Q+P2.2Q←2P3.return(Q)由上述实现步骤可知,步骤2.1为点加运算,步骤2.2为倍加运算。当采用其他优化算法实现点乘算法时,也需要进行点加运算和倍加运算,假设选取椭圆曲线方程y2=x3+ax+b,则具体计算方法如下:xr=m2-xp-xq(modN)yr=yp+m(xr-xp)(modN)当P≠Q时,当P=Q时,r>其中,当P=Q时即为倍加运算,上述N为大素数。上述运算中存在大量的有限域运算包括有限加减法、有限域乘法和有限域除法,其中有限域加减法比较简单,而有限域除法在实现时非常耗时,一般需要采用射影坐标变换的方法,将除法转换为乘法,最后再将坐标系转换为仿射坐标。常用的变换坐标系有标准射影坐标系、雅克比射影坐标系等。以上述椭圆曲线方程为例,在素域下采用雅克比射影坐标变换后,对应的运算方程为Y2=X3+aXZ4+bZ6,则倍加运算经过坐标变换后如下所示:同理,点加运算经过坐标变换后如下所示:在利用椭圆曲线加解密算法实现例如数字货币的签名验证、TLS等时,对点乘算法的优化大致在三个层面进行。第一层为点乘算法实现层,点乘算法实现有很多优化算法,例如自同态(Endomorphism)、非邻近形式(NonAdjacentForm)、联合稀疏形式(JointSparseForm)等,这些算法的思路都是对标量K的表示方法进行研究,以采用最少次数的点加运算和倍加运算为目的,来优化系统的性能。第二层为点加算法和倍加算法实现层,该层主要实现点加和倍加算法的数学运算,通常采用不同的射影坐标系或者混合坐标系(MixedCoordinates),使得点加和倍加运算得到一定程度优化;第三层为有限域运算层,该层为算法的底层,涉及有限域的选取、椭圆曲线参数的选取等,在椭圆曲线加解密算法实现之初既已确定,因此主要是针对有限域上的快速运算进行研究,底层运算性能优化是上述高层优化的基石,直接影响到整个设计的性能。而在对限域运算层进行优化时,由于系统进行了射影坐标变换,有限域上的除法运算只需进行一次,因此除法运算即使性能稍差,对整个系统的影响有限,一般采用扩展欧几里得算法即可实现;有限域的加减法运算相对简单,也不是影响性能的关键瓶颈;有限域乘法运算相对频次较高,采用常规方法进行点加和倍加运算,根据上述射影坐标系下的公式,除了乘数当中有固定数的乘法可以通过移位相加完成乘法运算,一次点加运算需要进行11次有限域的乘法,一次倍加运算需要进行10次有限域的乘法。通过对点加和倍加运算的有限域运算进一步分析,有限域乘法是不能完全并行的,由于前后依赖关系必须计算按流程完成运算,以倍加运算为例,必须得到ABC的结果,才能计算DEF的结果。如果要达到最优的运算性能,则需要多个有限域运算资源并行工作,这样的设计会引入两个问题,一是并不是每步运算都需要多个有限域运算单元,使得有限域的乘法运算的利用率并不高;二是会导致硬件资源浪费严重。无论是在FPGA还是ASIC上实现椭圆曲线加解密算法,硬件资源和性能一直是硬件实现需要考虑和研究的问题。如何在硬件资源和性能上取得平衡,在最少资源上实现有限域运算的最高性能是目前亟需解决的问题。
技术实现思路
为了克服现有技术的不足,本专利技术的目的之一在于提供一种基于ECC的有限域运算调度方法,在不影响系统设计性能的基础上,减少硬件资源的消耗,提高有限域运算的利用率。本专利技术的目的之一采用以下技术方案实现:一种基于ECC的有限域运算调度方法,包括以下步骤:接收点乘运算的有限域运算请求;依次为每个所述有限域运算请求添加索引标签,并将添加所述索引标签后的所述有限域运算请求进行流水寄存;按照所述有限域运算请求的寄存顺序,依次提取添加所述索引标签后的所述有限域运算请求以进行有限域运算,得到携带所述索引标签的运算结果,将所述运算结果进行流水寄存;按照所述运算结果的寄存顺序,依次提取所述运算结果进行解析,根据所述运算结果携带的所述索引标签,将所述运算结果作为具有相同索引标签的有限域运算请求的响应进行返回。进一步地,接收点乘运算的有限域运算请求,包括以下步骤:接收从不同点乘运算中提取的若干有限域运算请求,其中所述点乘运算包括点加运算和倍加运算,所述若干有限域运算请求具有编号;对若干个所述有限域运算请求进行轮询,根据所述编号依次排列所述的有限域运算请求。进一步地,将所述运算结果作为具有相同索引标签的有限域运算请求的响应进行返回,包括:根据所述运算结果携带的所述索引标签,为所述运算结果匹配具有相同索引标签的有限域运算请求;移除所述运算结果的索引标签和所述具有相同索引标签的有限域运算请求的索引标签;将所述运算结果作为具有相同索引标签的有限域运算请求的响应进行返回。进一步地,接收点乘运算的有限域运算请求之前,包括以下步骤:获取目标运算性能和目标可用资源;根据所述目标运算性能和目标可用资源,确定所述点乘运算的数量;根据所述点乘运算的数量,设置执行所述有限域运算的有限域运算资源的初始数量。进一步地,还包括以下步骤:检测所述有限域运算的实时参数,迭代调整执行所述有限域运算资源的数量,一次迭代包括:检测所述有限域运算的实时参数,其中所述实时参数包括所述有限运算资源的利用率和/或寄存的所述有限域乘法请求个数;当所述实时参数大于等于设定值时,发出报警信号,增加所述有限域运算资源的数量;直至检测到的所述实时参数小于所述设定值时,迭代结束;根据调整后的有限域运算资源的数量,评估当前运算性能和当前可用资源。本专利技术的目的之二在于提供一种基于ECC的有限域运算调度装置,其能减少硬件资源的消耗,同时提高有限域运算的利用率。本专利技术的目的之二采用本文档来自技高网...
【技术保护点】
1.一种基于ECC的有限域运算调度方法,其特征在于,包括以下步骤:/n接收点乘运算的有限域运算请求;/n依次为每个所述有限域运算请求添加索引标签,并将添加所述索引标签后的所述有限域运算请求进行流水寄存;/n按照所述有限域运算请求的寄存顺序,依次提取添加所述索引标签后的所述有限域运算请求以进行有限域运算,得到携带所述索引标签的运算结果,将所述运算结果进行流水寄存;/n按照所述运算结果的寄存顺序,依次提取所述运算结果进行解析,根据所述运算结果携带的所述索引标签,将所述运算结果作为具有相同索引标签的有限域运算请求的响应进行返回。/n
【技术特征摘要】
1.一种基于ECC的有限域运算调度方法,其特征在于,包括以下步骤:
接收点乘运算的有限域运算请求;
依次为每个所述有限域运算请求添加索引标签,并将添加所述索引标签后的所述有限域运算请求进行流水寄存;
按照所述有限域运算请求的寄存顺序,依次提取添加所述索引标签后的所述有限域运算请求以进行有限域运算,得到携带所述索引标签的运算结果,将所述运算结果进行流水寄存;
按照所述运算结果的寄存顺序,依次提取所述运算结果进行解析,根据所述运算结果携带的所述索引标签,将所述运算结果作为具有相同索引标签的有限域运算请求的响应进行返回。
2.如权利要求1所述的基于ECC的有限域运算调度方法,其特征在于,接收点乘运算的有限域运算请求,包括以下步骤:
接收从不同点乘运算中提取的若干有限域运算请求,其中,所述点乘运算包括点加运算和倍加运算,所述若干有限域运算请求具有编号;
对若干个所述有限域运算请求进行轮询,根据所述编号依次排列所述的有限域运算请求。
3.如权利要求2所述的基于ECC的有限域运算调度方法,其特征在于,将所述运算结果作为具有相同索引标签的有限域运算请求的响应进行返回,包括:
根据所述运算结果携带的所述索引标签,为所述运算结果匹配具有相同索引标签的有限域运算请求;
移除所述运算结果的索引标签和所述具有相同索引标签的有限域运算请求的索引标签;
将所述运算结果作为具有相同索引标签的有限域运算请求的响应进行返回。
4.如权利要求1-3任一项所述的基于ECC的有限域运算调度方法,其特征在于,接收点乘运算的有限域运算请求之前,包括以下步骤:
获取目标运算性能和目标可用资源;
根据所述目标运算性能和目标可用资源,确定所述点乘运算的数量;
根据所述点乘运算的数量,设置执行所述有限域运算的有限域运算资源的初始数量。
5.如权利要求4所述的基于ECC的有限域运算调度方法,其特征在于,还包括以下步骤:
检测所述有限域运算的实时参数,迭代调整执行所述有限域运算资源的数量,一次迭代包括:
检测所述有限域运算的实时参数,其中所述实时参数包括所述有限运算资源的利用率和/或寄存的所述有限域乘法请求个数;
当所述实时参数大于等于设定值时,发出报警信号,
增加所述有限域运算资源的数量;
直至检测到的所述实时参数小于所述设定值时,迭代结束;
根据调整后的有限域运算资源的数量,评估当前运算性能和当前可用资源。
6.一种基于ECC的有限域运算调度装置,其特征在于,包括:
数据接收模块,用于接收点乘运算的有限域运算请求;
索引添加模块,用于依次为每个所述有限域运算请求添加索引标签,将添加所述索引标签后的每个所述有限域运算请求进行流水寄存;
运算模块,用于按照所述有限域运算请求的寄存顺序,依次提取添加所述索引标...
【专利技术属性】
技术研发人员:苑志超,朱剑飞,刘云峰,刘奎,
申请(专利权)人:灵长智能科技杭州有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。