【技术实现步骤摘要】
一种抗SPA攻击的高性能ECDSA系统点乘计算方法及点乘架构
[0001]本申请涉及密码学
,尤其涉及一种抗
SPA
攻击的高性能
ECDSA
系统点乘计算方法及点乘架构
。
技术介绍
[0002]ECC
椭圆曲线密码系统凭借其更小的存储空间,更低的传输带宽要求以及更短的密钥长度成为目前使用最广泛的公钥密码系统之一
。
与
RSA
密码系统相同,都需要进行复杂的计算来保证其安全性,但
ECC
算法能够在更少的资源消耗前提下提供相同级别的加密强度
。
随着用户对于密码系统的需求不断提高,高性能以及高安全性成为
ECC
密码系统研究的重点
。
[0003]ECC
密码系统具有非常严格的层级结构,自顶向下可以分为三个计算层级:协议层
、
点运算层和模运算层
。
点运算层是核心计算层级,其核心点乘计算需要根据输入数据循环调用点加计算和倍点计算,计算时间超过总计算时间的
90
%;点加和倍点计算过程数据存在明显的前后关系,数据之间依赖较大,计算并行度较低,因此,实现高性能
ECC
密码系统的关键在于提高点乘计算的计算速度以及提高点加和倍点计算的并行度
。
[0004]在提高
ECC
密码系统计算效率的同时,计算过程是否安全也是研究者的重要研究方向
。
简单功耗攻 ...
【技术保护点】
【技术特征摘要】
1.
一种抗
SPA
攻击的高性能
ECDSA
点乘系统计算方法,所述
ECDSA
系统包括数字签名系统和数字签名验证系统,其特征在于,包括:根据用户指令确定点乘计算类型,若执行数字签名操作,则调用执行固定点点乘器,否则调用执行随机点点乘器;所述固定点点乘器应用于
ECDSA
数字签名系统;所述随机点点乘器应用于
ECDSA
数字签名验证系统;其中调用执行固定点点乘器包括:获取常数
k
以及基点
G
,预计算基点
G
的部分倍点结果,将基点
G
的预计算倍点结果从直角坐标系转化至加重射影坐标系下;对常数
k
进行
NAF
编码,使用二进制点乘算法,根据编码后的
NAF(k)
序列进行固定点点乘计算
P
=
kG
;其中调用执行随机点点乘器包括:获取常数
u
以及随机公钥
Q
,将随机公钥
Q
的直角坐标转化至加重射影坐标系下;使用蒙哥马利阶梯点乘算法,根据常数
u
进行随机点点乘计算
P
=
uQ
;点乘计算结束后将加重射影坐标系下的点坐标转化回直角坐标系下并输出点乘计算结果
。2.
根据权利要求1所述的方法,其特征在于,所述
ECDSA
系统包括数字签名系统和数字签名验证系统,包括:数字签名系统中的点乘计算为对基点
G
的固定点点乘
P
=
kG
,数字签名验证系统中的点乘计算主要为随机公钥
Q
的随机点点乘
P
=
uQ。3.
根据权利要求1所述的方法,其特征在于,获取常数
k
以及基点
G
,预计算基点
G
的部分倍点结果,将基点
G
的预计算倍点结果从直角坐标系转化至加重射影坐标系下,包括:从用户端获取常数
k
,
k
为用户独享的私钥;预计算基点
G
的2的整数幂倍点坐标在直角坐标系下的坐标值,存入预计算表中,等待进行点乘计算;将基点
G
的预计算倍点结果从直角坐标系转化至加重射影坐标系下,映射关系为
(x,y)
→
(X/Z2,Y/Z3,Z)
,使用坐标
Z
=1将直角坐标系下的点坐标直接映射至加重射影坐标系
。4.
根据权利要求1所述的方法,其特征在于,对常数
k
进行
NAF
编码,包括:步骤
A1、
令
i
=0并读取常数
k
,
i
为循环次数;步骤
A2、
若
k
为奇数,计算
k
i
=2‑
k[1:0]
;若
k
为偶数,令
k
i
=0;步骤
A3、
计算
k
=
k
‑
k
i
,步骤
A4、
计算
k
=
k/2
;步骤
A5、
判断
k
是否为0,若不为0则循环执行步骤
A2
至步骤
A4
,否则编码结束,返回
NAF(k)
=
{k
i
‑1,
...
,
k1,
k0}。5.
根据权利要求1所述的方法,其特征在于,使用二进制点乘算法,根据编码后的
NAF(k)
序列进行固定点点乘计算
P
=
kG
,包括:步骤
B1、
对点乘计算
kG
中的常数
k
进行
NAF
编码;步骤
B2、
由低至高扫描四个编码后的序列
NAF(k)
数据,将数据分为两路分别处理,根据扫描到的数据排列从预计算表中读取对应的点坐标,并将读取的点坐标由直角坐标系转化至加重射影坐标系;步骤
B3、
每路计算过程中包括实际变量
P
,虚拟变量
P
’
以及基点
G
,根据收到的两个
NAF(k)
确定相应的点计算操作,包括:
若两个
NAF(k)
全为0,计算
P
’
=
P
’
+G
;若两个
NAF(k)
中非0位为正,计算
P
=
P+2
i
G
;若两个
NAF(k)
中非0位为负,计算
P
=
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。