【技术实现步骤摘要】
一种基于椭圆曲线公钥密码学算法的硬件加速器和方法
[0001]本专利技术涉及硬件加速器
,具体而言,涉及一种基于椭圆曲线公钥密码学算法的硬件加速器和方法
。
技术介绍
[0002]椭圆曲线公钥密码算法
(ECC)
能够以更短的密钥长度达到与
RSA
公钥密码算法相同的安全性能
(
例如
160
位的
ECC
安全性能与
1024
位的
RSA
安全性能相同
)。
[0003]ECC
的实现方式能够大致分为三类:纯软件实现
、
软硬件协同实现以及纯硬件实现
。
纯软件实现方式具有的高拓展性
、
低成本使其成为
ECC
的主要应用方式
。
[0004]然而,
ECC
的纯软件实现方式虽然有良好的拓展性,但其计算速度慢
、
吞吐率低;而对于纯硬件实现能够有效提高计算效率,但其拓展性很低且成本较高
。
技术实现思路
[0005]本专利技术的目的在于克服现有技术缺陷,且提供了一种运行高效,具有低成本
、
较高拓展性的基于椭圆曲线公钥密码学算法的硬件加速器和方法
。
[0006]本专利技术提供的一种基于椭圆曲线公钥密码学算法的硬件加速器,其技术方案如下:
[0007]一种基于椭圆曲线公钥密码学算法的硬件加速器 ...
【技术保护点】
【技术特征摘要】
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
的模,在对获取的两数据...
【专利技术属性】
技术研发人员:汪涛,郝沁汾,
申请(专利权)人:芯光智网集成电路设计,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。