一种基于椭圆曲线公钥密码学算法的硬件加速器和方法技术

技术编号:39503198 阅读:9 留言:0更新日期:2023-11-24 11:34
本发明专利技术涉及一种基于椭圆曲线公钥密码学算法的硬件加速器和方法,其中,加速器包括设置有坐标投影单元

【技术实现步骤摘要】
一种基于椭圆曲线公钥密码学算法的硬件加速器和方法


[0001]本专利技术涉及硬件加速器
,具体而言,涉及一种基于椭圆曲线公钥密码学算法的硬件加速器和方法


技术介绍

[0002]椭圆曲线公钥密码算法
(ECC)
能够以更短的密钥长度达到与
RSA
公钥密码算法相同的安全性能
(
例如
160
位的
ECC
安全性能与
1024
位的
RSA
安全性能相同
)。
[0003]ECC
的实现方式能够大致分为三类:纯软件实现

软硬件协同实现以及纯硬件实现

纯软件实现方式具有的高拓展性

低成本使其成为
ECC
的主要应用方式

[0004]然而,
ECC
的纯软件实现方式虽然有良好的拓展性,但其计算速度慢

吞吐率低;而对于纯硬件实现能够有效提高计算效率,但其拓展性很低且成本较高


技术实现思路

[0005]本专利技术的目的在于克服现有技术缺陷,且提供了一种运行高效,具有低成本

较高拓展性的基于椭圆曲线公钥密码学算法的硬件加速器和方法

[0006]本专利技术提供的一种基于椭圆曲线公钥密码学算法的硬件加速器,其技术方案如下:
[0007]一种基于椭圆曲线公钥密码学算法的硬件加速器,用于计算数据标量
k
与二维坐标的乘积,所述硬件加速器,包括:
[0008]坐标投影单元

坐标逆投影单元

点加单元

点乘单元

倍点单元

模乘单元

模加减单元和模逆单元,
[0009]所述坐标投影单元用于将通过上层接口接收到的二维坐标转换为第一三维坐标,并将所述第一三维坐标传输至所述点乘单元,以通过点乘单元对上层接口接收的数据标量
k
与二维坐标做点乘运算;
[0010]所述点乘单元与所述坐标投影单元

所述坐标逆投影单元均通信,所述点乘单元用于进行所述数据标量
k
与所述第一三维坐标的点乘运算,并将点乘运算后的结果反馈至所述坐标逆投影单元,在运算时,所述点乘单元通过进行初始化获得初始化的第二三维坐标,并且,所述点乘单元根据所述数据标量
k
的数值结构,通过预设次序及次数分别调用所述点加单元做点加运算和所述倍点单元做倍点运算来实现点乘运算;
[0011]所述点加单元被设置为在接收所述点乘单元发出的对两个特定对象进行点加运算的调用指令后,通过预设次数及预设次序调用所述模乘单元和所述模加减单元来实现;
[0012]所述倍点单元被设置为在接收所述点乘单元发出对特定对象进行倍点运算的调用指令后,通过预设次数及预设次序调用所述模加减单元和所述模乘单元来实现;
[0013]所述模乘单元内设置有快速模约简算法电路,以根据所述点加单元发出调用指令对所述点加单元要求的两个特定对象进行模乘运算和
/
或根据所述倍点单元发出调用指令对所述倍点单元要求的两个特定对象进行模乘运算;
[0014]所述坐标逆投影单元用于调用模逆单元对点乘模块返回的计算结果做逆投影,以转换为二维坐标并通过上层接口单元反馈出去

[0015]采用上述技术方案,与现有技术相比,本专利技术所提供的技术方案至少可以带来的有益效果有:由于在加速器中设置有坐标投影单元

坐标逆投影单元

点加单元

点乘单元

倍点单元

模乘单元

模加减单元和模逆单元,当需要运行数据标量
k
与接收到的二维坐标的乘运算时,将该二维坐标通过坐标投影单元转换为第一三维坐标,并调用点乘单元将数据标量
k
与该第一三维坐标进行点乘运算,根据数据标量
k
的数值解构而导致的运算需要,能有效调用相关模块和单元,从而减小资源消耗,提高模块使用率

与此同时,由于模乘单元内设置有快速模约简算法电路,能够提升模乘运算效率,从而提升整体运算速率,在结合所涉模块和单元后,有效解决了现有技术的拓展性很低且成本较高的技术问题

[0016]作为优选,所述点乘单元被设置为根据所述数据标量
k
的二进制数的位数确定执行的循环次数,其中,在每次循环中,根据所述数据标量
k
在当前循环对应的二进制位的数位,及当前数位对应的二进制数为0还是1,以及参与当前运算的两个点是否相同确定执行点加运算还是倍点运算,进而当前次循环输出的点记作
Q
i

[0017]当当前循环对应的二进制位为末位时,则当前循环的输出为经点乘模块点乘运算后的结果,并将其反馈至所述坐标逆投影单元;
[0018]根据数据标量
k
二进制数码情况,进行点加模块和倍点模块的调用,在保证运算准性的前提下提高运算效率

[0019]作为优选,所述点加单元被设置为在对其接收到的两个特定对象进行点加运算时,首先判断其接收到的两个特定对象中其中一个对象是否有三维坐标的
Z
坐标为0,如果有,则确定其接收到的两个特定对象中另外一个三维坐标为点加单元的运算结果;否则:
[0020]基于其接收到的两个特定对象三维坐标中的坐标值做若干次调用所述模乘单元进行模乘运算,和
/
或做若干次调用所述模加减单元进行模加运算和
/
或模减运算确定点加运算后的各坐标值;
[0021]其中,在做模乘运算


/
或模加运算和
/
或模减运算时,均为模
n
的运算,其中
n

NIST P

256
有限域的阶;
[0022]这样在运算进行时,可以有效的提高运算执行效率

[0023]作为优选,所述模乘单元内设的所述快速模约简算法电路用于获取其接收到的两数据对象乘积对
n
的模,在对其接收到的两数据对象乘积求对
n
的模的过程中,先将其接收到的两数据对象的乘积用若干个以预设顺序排列的目标数表示,其中每个所述目标数都有相同数量的二进制位数,然后基于多个所述目标数组合成多个数组,最后基于形成的所述多个数组做模加运算及模减运算得到两数据对象的模乘运算结果;
[0024]据此运算电路,不仅提高运算效率,降低造价,而且实现了运算精度和次序的可调节,进而能够结合运算需求的两个元素的乘积结构特点,通过形成的多个数组做模加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于椭圆曲线公钥密码学算法的硬件加速器,用于计算数据标量
k
与二维坐标的乘积,其特征在于,所述硬件加速器,包括:坐标投影单元

坐标逆投影单元

点加单元

点乘单元

倍点单元

模乘单元

模加减单元和模逆单元,其中:所述坐标投影单元用于将通过上层接口接收到的二维坐标转换为第一三维坐标,并将所述第一三维坐标传输至所述点乘单元,以通过点乘单元对上层接口接收的数据标量
k
与二维坐标做点乘运算;所述点乘单元与所述坐标投影单元

所述坐标逆投影单元均通信,所述点乘单元用于进行所述数据标量
k
与所述第一三维坐标的点乘运算,并将点乘运算后的结果反馈至所述坐标逆投影单元,在运算时,所述点乘单元通过进行初始化获得初始化的第二三维坐标,并且,所述点乘单元根据所述数据标量
k
的数值结构,通过预设次序及次数分别调用所述点加单元做点加运算和所述倍点单元做倍点运算来实现点乘运算;所述点加单元被设置为在接收所述点乘单元发出的对其接收的两个特定对象进行点加运算的调用指令后,通过预设次数及预设次序调用所述模乘单元和所述模加减单元来实现;所述倍点单元被设置为在接收所述点乘单元发出对其接收的特定对象进行倍点运算的调用指令后,通过预设次数及预设次序调用所述模加减单元和所述模乘单元来实现;所述模乘单元内设置有快速模约简算法电路,以根据所述点加单元发出调用指令对所述点加单元要求的其接收的两个特定对象进行模乘运算和
/
或根据所述倍点单元发出调用指令对所述倍点单元要求的其接收的两个特定对象进行模乘运算;所述坐标逆投影单元用于调用模逆单元对点乘模块返回的计算结果做逆投影,以转换为二维坐标并通过上层接口单元反馈出去
。2.
根据权利要求1所述的基于椭圆曲线公钥密码学算法的硬件加速器,其特征在于:所述点乘单元被设置为根据所述数据标量
k
的二进制数的位数确定执行的循环次数,其中,在每次循环中,根据所述数据标量
k
在当前循环对应的二进制位的数位,及当前数位对应的二进制数为0还是1,以及参与当前运算的两个点是否相同确定执行点加运算还是倍点运算,进而将当前次循环输出的坐标点记作
Q
i
;当当前循环对应的二进制位为末位时,则当前循环的输出为经点乘模块点乘运算后的结果,并将其反馈至所述坐标逆投影单元
。3.
根据权利要求2所述的基于椭圆曲线公钥密码学算法的硬件加速器,其特征在于:所述点加单元被设置为在对其接收到的两个特定对象进行点加运算时,首先判断所述两个特定对象中其中一个对象是否有三维坐标的
Z
坐标为0,如果有,则确定所述两个特定对象中另外一个三维坐标为点加单元的运算结果;否则:基于其接收到的两个特定对象三维坐标中的坐标值做若干次调用所述模乘单元进行模乘运算,和
/
或做若干次调用所述模加减单元进行模加运算和
/
或模减运算进而确定点加运算后的各坐标值;其中,在做模乘运算


/
或模加运算和
/
或模减运算时,均为模
n
的运算,其中
n

NIST P

256
有限域的阶
。4.
根据权利要求3所述的基于椭圆曲线公钥密码学算法的硬件加速器,其特征在于:所
述模乘单元内设的所述快速模约简算法电路用于获取两数据对象乘积对
n
的模,在对获取的两数据...

【专利技术属性】
技术研发人员:汪涛郝沁汾
申请(专利权)人:芯光智网集成电路设计
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1