具备椭圆曲线密码算法的处理器及其处理方法技术

技术编号:31023662 阅读:51 留言:0更新日期:2021-11-30 03:19
一种具备椭圆曲线密码算法的处理器及其处理方法,以第一寄存器储存哈希值指针、第二寄存器储存公钥指针、第三寄存器储存签名指针、以及第四寄存器储存验证结果。响应指令集架构的第一条椭圆曲线密码算法指令,该处理器通过该第一寄存器取得待验证数据的哈希值,通过该第二寄存器取得签名者的公钥,通该第三寄存器取得签名,以该公钥、以及该签名对该哈希值进行椭圆曲线密码算法的签名验证运算,产生该验证结果做储存。该验证结果做储存。该验证结果做储存。

【技术实现步骤摘要】
具备椭圆曲线密码算法的处理器及其处理方法


[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密码算法,使用软件实现无法有效保证数据的安全性,而使用专门的硬件实现在部署时需要另外购买专门的硬件,所以会增加部署成本。
[0006]如何高效且更安全的完成SM2密码算法,为本
一项重大课题。

技术实现思路

[0007]为了有效保证数据的安全性以及减少部署成本,本专利技术提供一种具备椭圆曲线密码算法(SM2)的处理器及其处理方法。
[0008]根据本专利技术一种实施方式实现的处理器包括第一寄存器、第二寄存器、第三寄存器、以及第四寄存器。该第一寄存器储存哈希值指针,指向第一内存空间,该第一内存空间储存待验证数据的哈希值(e

)。该第二寄存器储存公钥指针,指向签名者的公钥。该第三寄存器储存签名指针,指向待验证的签名。该第四寄存器储存验证结果。响应指令集架构的第一条椭圆曲线密码算法指令,该处理器通过该第一寄存器从该第一内存空间取得该待验证数据的该哈希值,通过该第二寄存器取得该公钥,通过该第三寄存器取得该签名,以该公钥、以及该签名对该哈希值进行椭圆曲线密码算法的签名验证运算,产生该验证结果,并将该验证结果写入该第四寄存器。
[0009]根据本专利技术一种实施方式实现的一处理器的处理方法,包括:响应指令集架构的第一条椭圆曲线密码算法指令,从该第一内存空间取得待验证数据的哈希值,取得公钥,取得签名,以该公钥、以及该签名对该哈希值进行椭圆曲线密码算法的签名验证运算,产生该验证结果,并将该验证结果写入该第四寄存器。
[0010]通过本专利技术提供的具备椭圆曲线密码算法(SM2)的处理器及其处理方法,可将在实现椭圆曲线密码算法的过程中生成的中间数据储存在处理器内部硬件存储空间中,使得
在处理器外部无法访问这些中间数据,极大地提高了安全性。另外,由于在部署时不需要另外购买专门的硬件,所以减少了部署成本。
[0011]下文特举实施例,并配合附图,详细说明本
技术实现思路

附图说明
[0012]图1为方块图,根据本专利技术一种实施方式图解一处理器100;
[0013]图2A至图2D根据本专利技术不同实施方式图解ISA的SM3密码算法指令的格式、以及相关的微码ucode设计;
[0014]图3还图解ISA指令撰写的一种实施方式;
[0015]图4为流程图,根据本专利技术一种实施方式图解ISA的SM3密码算法指令引发的步骤程序,相应该SM3密码算法指令所转换出的多条微指令;
[0016]图5根据本专利技术一种实施方式图解一SM3引擎500;
[0017]图6为方块图,根据本专利技术一种实施方式图解一处理器600;
[0018]图7根据本专利技术一种实施方式图解ISA的SM2密码算法指令的格式702;
[0019]图8以表格804说明相应加密运算的微码ucode设计,显示对应产生的微指令如何解读架构寄存器124内容;
[0020]图9A、9B为流程图,根据本专利技术一种实施方式图解ISA的单一条SM2密码算法指令引发的加密运算,相应该SM2密码算法指令所转换出的多条微指令;
[0021]图10以表格1004说明相应解密运算的微码ucode设计,显示对应产生的微指令如何解读架构寄存器124内容;
[0022]图11A、11B为流程图,根据本专利技术一种实施方式图解单一条ISA的SM2密码算法指令引发的解密运算,相应该SM2密码算法指令所转换出的多条微指令;
[0023]图12以表格1204说明相应签名运算的微码ucode设计,显示对应产生的微指令如何解读架构寄存器124内容;
[0024]图13为流程图,根据本专利技术一种实施方式图解一SM2密码算法指令引发的签名运算,相应该SM2密码算法指令所转换出的多条微指令;
[0025]图14以表格1404说明相应签名验证运算的微码ucode设计,显示对应产生的微指令如何解读架构寄存器124内容;
[0026]图15为流程图,根据本专利技术一种实施方式图解一SM2密码算法指令引发的签名验证运算,相应该SM2密码算法指令所转换出的多条微指令;
[0027]图16以表格1604说明相应密钥交换第一程序的微码ucode设计,显示对应第一条SM2密码算法指令产生的微指令如何解读架构寄存器124内容;
[0028]图17为流程图,根据本专利技术一种实施方式图解一条SM2密码算法指令引发的密钥交换第一程序运算,相应该SM2密码算法指令所转换出的多条微指令;
[0029]图18以表格1804说明相应密钥交换第二程序运算的微码ucode设计,显示对应第二条SM2密码算法指令产生的微指令如何解读架构寄存器124内容;
[0030]图19A、19B为流程图,根据本专利技术一种实施方式图解一SM2密码算法指令引发的密钥交换第二程序运算,相应该SM2密码算法指令所转换出的多条微指令;
[0031]图20以表格2004说明相应密钥交换第三程序运算的微码ucode设计,显示对应第
三条SM2密码算法指令产生的微指令如何解读架构寄存器124内容;
[0032]图21A、21B为流程图,根据本专利技术一种实施方式图解一SM2密码算法指令引发的密钥交换第三程序运算,相应该SM2密码算法指令所转换出的多条微指令;
[0033]图22根据本专利技术一种实施方式图解发起方以及响应方如何利用本专利技术提出的密钥交换第一~第三程序运算达成密钥交换。发起方、响应方可彼此通信,且各自具有一处理器(600);
[0034]图23以表格2304说明本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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所述的具备椭圆曲线密码算法的处理器,还包括:密码执行单元;包括该第一寄存器、该第二寄存器、该第三寄存器、以及该第四寄存器的一组架构寄存器;微码储存装置,储存微码;以及解码器,响应该第二条椭圆曲线密码算法指令,根据该微码解码出多条微指令;其中,响应该第二条椭圆曲线密码算法指令所产生的该多条微指令包括访问、...

【专利技术属性】
技术研发人员:李艳婷黄振华管应炳沈昀怡磊杨爽
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:

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

1