【技术实现步骤摘要】
具备椭圆曲线密码算法的处理器及其处理方法
[0001]本专利技术有关于具备密码算法的处理器及其处理方法。
技术介绍
[0002]中国国家密码局发布多种密码算法,包括SM2、SM3、以及SM4
…
等密码算法,替代RSA(简写自Rivest
‑
Shamir
‑
Adleman)、DES(简写自Data Encryption Standard)、3DES(简写自Triple Data Encryption Algorithm)、SHA(简写自Secure Hash Algorithm)
…
等国际通用密码算法。
[0003]SM2密码算法为椭圆曲线公钥密码算法,但在签名、密钥交换方面不同于ECDSA(简写自Elliptic Curve Digital Signature Algorithm)、ECDH(简写自Elliptic
‑
curve Diffie
–
Hellman)
…
等国际标准,而是采取了更为安全的机制。SM2密码算法除了加、解密操作,还涉及数字签名、签名验算、密钥交换协议
…
等。
[0004]SM3密码算法为哈希(或称杂凑、散列)密码算法。特别是,SM3密码算法部分功能会被SM2密码算法频繁使用。
[0005]在已知的技术中,是使用软件和/或专门的硬件(如外接密码卡等)实现SM2密码算法,使用软件实现无法有效保证数据的安全性,而使用专门的硬件实现在部署 ...
【技术保护点】
【技术特征摘要】
1.一种具备椭圆曲线密码算法的处理器,包括:第一寄存器,储存哈希值指针,指向第一内存空间,该第一内存空间储存待验证数据的哈希值;以及第二寄存器,储存公钥指针,指向签名者的公钥;第三寄存器,储存签名指针,指向待验证的签名;第四寄存器,储存验证结果;其中,响应指令集架构的第一条椭圆曲线密码算法指令,该处理器通过该第一寄存器从该第一内存空间取得该待验证数据的该哈希值,通过该第二寄存器取得该公钥,通过该第三寄存器取得该签名,以该公钥、以及该签名对该哈希值进行椭圆曲线密码算法的签名验证运算,产生该验证结果,并将该验证结果写入该第四寄存器。2.如权利要求1所述的具备椭圆曲线密码算法的处理器,其中:该第一条椭圆曲线密码算法指令的参数包括该哈希值指针、该公钥指针、以及该签名指针。3.如权利要求1所述的具备椭圆曲线密码算法的处理器,还包括:第五寄存器,储存中间变量指针,指向第二内存空间;其中,该处理器对该哈希值进行该签名验证运算产生的中间变量,是根据该第五寄存器储存的该中间变量指针,暂存于该第二内存空间。4.如权利要求3所述的具备椭圆曲线密码算法的处理器,其中:在对该哈希值进行该签名验证运算之前,该处理器将该第二内存空间的首地址存入该第五寄存器,并将该第二内存空间中的所有字节置零。5.如权利要求4所述的具备椭圆曲线密码算法的处理器,其中:该第二内存空间是通过软件向操作系统申请。6.如权利要求1所述的具备椭圆曲线密码算法的处理器,还包括:第六寄存器,储存控制字,注明该第一条椭圆曲线密码算法指令进行该签名验证运算。7.如权利要求1所述的具备椭圆曲线密码算法的处理器,还包括:密码执行单元;包括该第一寄存器、该第二寄存器、该第三寄存器、以及该第四寄存器的一组架构寄存器;微码储存装置,储存微码;以及解码器,响应该第一条椭圆曲线密码算法指令,根据该微码解码出多条微指令;其中,响应该第一条椭圆曲线密码算法指令所产生的该多条微指令包括访问、以及管理该组架构寄存器的内容,且是在该组架构寄存器其一解读出的控制字标明签名验证代号时,操作该密码执行单元以该公钥、以及该签名对该哈希值进行该签名验证运算。8.如权利要求7所述的具备椭圆曲线密码算法的处理器,其中:该签名为(r
’
,s
’
),r
’
为该签名的第一部分,s
’
为该签名的第二部分;该多条微指令包括检查r
’
∈
[1,n
‑
1]、以及s
’
∈
[1,n
‑
1]是否成立,在任一不成立时使该验证结果为失败,并在都成立时进行运算,t=(r
’
+s
’
)mod nn为一椭圆曲线基点的阶,t为一判断数;以及
该多条微指令包括检查t是否为零,在t为零时使该验证结果为失败。9.如权利要求8所述的具备椭圆曲线密码算法的处理器,其中:该密码执行单元包括椭圆曲线密码算法加速器,其中点乘硬件接收椭圆曲线输入点以及输入大数,并据以产生椭圆曲线输出点;该多条微指令包括第一条点乘硬件操作微指令、以及第二条点乘硬件操作微指令,在t不为零时执行;响应该第一条点乘硬件操作微指令,该点乘硬件运算得[s
’
]G,s
’
作为该输入大数,作为该椭圆曲线输入点的G为该椭圆曲线基点;响应该第二条点乘硬件操作微指令,该点乘硬件运算得[t]P
A
,t作为该输入大数,作为该椭圆曲线输入点的P
A
为该公钥;该多条微指令包括进行运算,(x1’
,y1’
)=[s
’
]G+[t]P
A
,(x1’
,y1’
)为椭圆曲线点;该多条微指令包括进行模除运算,R=(e
’
+x1’
)mod n,e
’
为该哈希值,R为模除结果;该多条微指令包括判断R是否为r
’
,在R不为r
’
时,使该验证结果为失败,并在R为r
’
时,使该验证结果为成功。10.如权利要求9所述的具备椭圆曲线密码算法的处理器,其中该点乘硬件包括:第一坐标系统转换硬件,将为仿射坐标点的该椭圆曲线输入点,转换成第一中间点,该第一中间点为加重射影坐标点;多倍点计算硬件,以该输入大数对该第一中间点作多倍点计算,生成第二中间点;以及第二坐标系统转换硬件,将为加重射影坐标点的该第二中间点,转换成该椭圆曲线输出点,该椭圆曲线输出点为仿射坐标点。11.如权利要求1所述的具备椭圆曲线密码算法的处理器,其中:该处理器还在该第一条椭圆曲线密码算法指令之前,执行第二条椭圆曲线密码算法指令;针对先于该第一条椭圆曲线密码算法指令执行的该第二条椭圆曲线密码算法指令,该第一寄存器储存一用户标识符指针,指向第三内存空间,该第三内存空间储存用户标识符;以及针对先于该第一条椭圆曲线密码算法指令执行的该第二条椭圆曲线密码算法指令,该第二寄存器储存该公钥指针;针对先于该第一条椭圆曲线密码算法指令执行的该第二条椭圆曲线密码算法指令,该第三寄存器储存预处理哈希值指针,指向第四内存空间,该第四内存空间供填写预处理哈希值;针对先于该第一条椭圆曲线密码算法指令执行的该第二条椭圆曲线密码算法指令,该第四寄存器储存用户标识符长度;响应该第二条椭圆曲线密码算法指令,该处理器通过该第一寄存器从该第三内存空间取得该用户标识符,通过该第二寄存器取得该公钥,通过该第四寄存器取得该用户标识符长度,以该公钥对该用户标识符、以及该用户标识符长度、进行椭圆曲线密码算法的第一预处理运算而产生预处理哈希值,并通过该第三寄存器将该预处理哈希值写入该第四内存空间,待后续转换成该哈希值供该第一条椭圆曲线指令使用。12.如权利要求11所述的具备椭圆曲线密码算法的处理器,其中:
该第二条椭圆曲线密码算法指令的参数包括该用户标识符指针、该公钥指针、该用户标识符长度、以及该预处理哈希值指针。13.如权利要求11所述的具备椭圆曲线密码算法的处理器,还包括:第五寄存器,储存中间变量指针,指向第二内存空间;其中,该处理器进行该第一预处理运算产生的中间变量,是根据该第五寄存器储存的该中间变量指针,暂存于该第二内存空间。14.如权利要求11所述的具备椭圆曲线密码算法的处理器,其中:该处理器进行该第一预处理运算后,使该第三寄存器内容增加一位移量;该位移量为预处理哈希值长度。15.如权利要求11所述的具备椭圆曲线密码算法的处理器,还包括:第六寄存器,储存一控制字,注明该第二条椭圆曲线密码算法指令进行该第一预处理运算。16.如权利要求11所述的具备椭圆曲线密码算法的处理器,还包括:密码执行单元;包括该第一寄存器、该第二寄存器、该第三寄存器、以及该第四寄存器的一组架构寄存器;微码储存装置,储存微码;以及解码器,响应该第二条椭圆曲线密码算法指令,根据该微码解码出多条微指令;其中,响应该第二条椭圆曲线密码算法指令所产生的该多条微指令包括访问、...
【专利技术属性】
技术研发人员:李艳婷,黄振华,管应炳,沈昀,怡磊,杨爽,
申请(专利权)人:上海兆芯集成电路有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。