【技术实现步骤摘要】
具备椭圆曲线密码算法的处理器及其处理方法
[0001]本专利技术有关于具备密码算法的处理器及其处理方法。
技术介绍
[0002]SM2密码算法为椭圆曲线公钥密码算法,但在签名、密钥交换方面不同 于ECDSA(简写自Elliptic Curve Digital Signature Algorithm)、ECDH(简写自 Elliptic
‑
curve Diffie
‑
Hellman)
…
等国际标准,而是采取了更为安全的机制。 SM2密码算法除了加、解密操作,还涉及数字签名、签名验算、密钥交换协 议
…
等。
[0003]SM2密码算法为椭圆曲线公钥密码算法,但在签名、密钥交换方面不同 于ECDSA(简写自Elliptic Curve Digital Signature Algorithm)、ECDH(简写自 Elliptic
‑
curve Diffie
–
Hellman)
…
等国际标准,而是采取了 ...
【技术保护点】
【技术特征摘要】
1.一种具备椭圆曲线密码算法的处理器,实现在密钥交换的发起方,包括:第一寄存器、以及第二寄存器;其中:针对指令集架构的第一条椭圆曲线密码算法指令,该第一寄存器储存密钥对指针,指示密钥对至内存的储存;响应该第一条椭圆曲线密码算法指令,该处理器进行椭圆曲线密码算法的密钥交换第一程序运算,生成随机数作为临时私钥,并以该临时私钥处理椭圆曲线基点生成第一临时公钥,并通过该第一寄存器将该临时私钥、以及该第一临时公钥写入该内存;该第二寄存器储存密钥交换信息指针,指向该内存储存的密钥交换信息,该密钥交换信息包括该临时私钥、该第一临时公钥、以及第二临时公钥,该第二临时公钥由密钥交换的响应方提供,该响应方的处理器执行第二条椭圆曲线密钥算法指令,进行该椭圆曲线密码算法的密钥交换第二程序运算,生成该第二临时公钥,并基于该第一临时公钥以及该第二临时公钥而生成响应方共享密钥;针对第三条椭圆曲线密码算法指令,该第一寄存器更新成储存共享密钥指针,指示发起方共享密钥至该内存的储存;以及响应该第三条椭圆曲线密码算法指令,该处理器进行该椭圆曲线密码算法的密钥交换第三程序运算,通过该第二寄存器取得该第二临时公钥,基于该临时私钥、该第一临时公钥、以及该第二临时公钥生成该发起方共享密钥,并通过该第一寄存器将该发起方共享密钥写入该内存。2.如权利要求1所述的具备椭圆曲线密码算法的处理器,其中:该第一条椭圆曲线密码算法指令的参数包括该密钥对指针;以及该第三条椭圆曲线密码算法指令的参数包括该密钥交换信息指针、共享密钥长度、以及该共享密钥指针。3.如权利要求1所述的具备椭圆曲线密码算法的处理器,还包括:第三寄存器,储存中间变量指针;其中,该处理器进行该密钥交换第一程序运算产生的第一中间变量、或进行该密钥交换第三程序运算产生的第二中间变量,是根据该三寄存器储存的该中间变量指针,暂存于该内存。4.如权利要求1所述的具备椭圆曲线密码算法的处理器,还包括:第四寄存器,储存共享密钥长度。5.如权利要求1所述的具备椭圆曲线密码算法的处理器,还包括:第五寄存器,储存控制字,针对该第一条椭圆曲线密码算法指令,该第五寄存器储存的该控制字注明该密钥交换第一程序运算;以及针对该第三条椭圆曲线密码算法指令,该第四寄存器储存的该控制字注明该密钥交换第三程序运算。6.如权利要求1所述的具备椭圆曲线密码算法的处理器,还包括:密码执行单元;包括该第一寄存器以及该第二寄存器的一组架构寄存器;
微码储存装置,储存微码;以及解码器,响应该第一条椭圆曲线密码算法指令、或响应该第三条椭圆曲线密码算法指令,根据该微码解码出多条微指令;其中:该多条微指令包括访问、以及管理该组架构寄存器的内容;该多条微指令是在该组架构寄存器其一解读出的控制字标明密钥交换第一程序代号时,操作该密码执行单元进行该密钥交换第一程序运算;以及该多条微指令是在该控制字标明密钥交换第三程序代号时,操作该密码执行单元进行该密钥交换第三程序运算。7.如权利要求6所述的具备椭圆曲线密码算法的处理器,其中:该密码执行单元包括椭圆曲线密码算法加速器,其中点乘硬件接收椭圆曲线输入点以及输入大数,并据以产生椭圆曲线输出点;响应该第一条椭圆曲线密码算法指令,该多条微指令包括第一点乘硬件操作微指令;响应该第一点乘硬件操作微指令,该点乘硬件进行运算,R
A
=[r
A
]G=(x1,y1)作为该输入大数的r
A
为该临时私钥,作为该椭圆曲线输入点的G为该椭圆曲线基点,(x1,y1)为该椭圆曲线输出点,(x1,y1)还用作R
A
,为该第一临时公钥。8.如权利要求7所述的具备椭圆曲线密码算法的处理器,其中:该多条微指令包括判断x
1∈
[1,p
‑
1]、以及y
1∈
[1,p
‑
1]是否成立,任一不成立时,该处理器更新该随机数,再次执行该第一点乘硬件操作微指令,都成立时,该多条微指令包括检查R
A
是否符合椭圆曲线,p为256比特的素数;R
A
不符合该椭圆曲线时,该处理器更新该随机数,再次执行该第一点乘硬件操作微指令;R
A
符合该椭圆曲线时,通过该第一寄存器,该多条微指令将R
A
以及r
A
填入该内存。9.如权利要求8所述的具备椭圆曲线密码算法的处理器,其中:储存在该内存的该密钥交换信息还包括响应方公钥、发起方私钥、发起方公钥、发起方身份标识符长度、发起方身份标识符、响应方身份标识符长度、以及响应方身分标识符;响应该第三条椭圆曲线密码算法指令,该多条微指令包括进行运算,以及n为G的阶,t
A
为模数,w为常数;该多条微指令包括检查该第二临时公钥是否符合椭圆曲线,若不符合,该处理器输出密钥交换协商失败提示,若符合,该多条微指令进行运算,x2取自该第二临时公钥,该第二临时公钥为R
B
,即(x2,y2);该多条微指令包括第二点乘硬件操作微指令、以及第三点乘硬件操作微指令;响应该第二点乘硬件操作微指令、以及该第三点乘硬件操作微指令,该点乘硬件进行运算,P
B
为该响应方公钥,h为椭圆曲线余因子;
响应该第二点乘硬件操作微指令,为该输入大数,R
B
为该椭圆曲线输入点;响应该第三点乘硬件操作微指令,h*t
A
为该输入大数,为该椭圆曲线输入点,U=(x
U
,y
U
)为该椭圆曲线输出点;以及该多条微指令包括检查U是否为无限点,若是,该处理器输出密钥交换协商失败提示。10.如权利要求9所述的具备椭圆曲线密码算法的处理器,其中:若U非无限点,该多条微指令包括进行运算,K
A
=KDF(x
U
||y
U
||Z
A
||Z
B
,klen)KDF(.)为进行密钥衍生,klen为共享密钥长度,Z
A
与Z
B
为身份哈希值,基于该发起方身份标识符长度、该发起方身份标识符、该响应方身份标识符长度、以及该响应方身份标识符转换而得,K
A
为该发起方共享密钥。11.如权利要求10所述的具备椭圆曲线密码算法的处理器,其中:判定该控制字还注明该密钥交换第三程序运算涉及哈希值时,该多条微指令还进行哈希值运算,S
A
=Hash(0x03||y
U
||Hash(x
U
||Z
A
||Z
B
||x1||y1||x2||y2))S1=Hash(0x02||y
U
||Hash(x
U
||Z
A
||Z
B
||x1||y1||x2||y2))并将S
A
以及S1联合K
A
通过该第一寄存器填入该内存;以及S
A
以及S1用于判断密钥交换协商成功与否。12.如权利要求11所述的具备椭圆曲线密码算法的处理器,其中:该椭圆曲线密码算法加速器包括一预处理硬件,且该密码执行单元还包括哈希密码算法加速器;该多条微指令还包括多条预处理硬件操作微指令,使该预处理硬件对完成填充的数据实施分组,以提供分组消息给该哈希密码算法加速器进行哈希值转换;以及该预处理硬件还具有执行单元内部储存空间,暂存初始哈希常量供该哈希密码算法加速器使用,再由该哈希密码算法加速器更新,直至填入哈希值运算结果。13.如权利要求7所述的具备椭圆曲线密码算法的处理器,其中该点乘硬件包括:第一坐标系统转换硬件,将为仿射坐标点的该椭圆曲线输入点,转换成第一中间点,该第一中间点为加重射影坐标点;多倍点计算硬件,以该输入大数对该第一中间点作多倍点计算,生成第二中间点;以及第二坐标系统转换硬件,将为加重射影坐标点的该第二中间点,转换成该椭圆曲线输出点,该椭圆曲线输出点为仿射坐标点。14.如权利要求6所述的具备椭圆曲线密码算法的处理器,其中:该密码执行单元还包括随机数产生器;该多条微指令还包括随机数产生微指令,操作该随机数产生器产生该随机数。15.一种具备椭圆曲线密码算法的处理器,实现在密钥交换的响应方,包括:第一寄存器、以及第二寄存器;其中:该第二寄存器储存一密钥交换信息指针,指向一内存储存的密钥交换信息,该密钥交换信息包括第一临时公钥,该第一临时公钥由密钥交换的发起方提供,该发起方的处理器执行指令集架构的第一条椭圆曲线密钥算法指令,进行椭圆曲线密码算法的一密钥交换第
一程序运算而生成该第一临时公钥;该第一寄存器储存共享密钥指针,指示响应方共享密钥、以及第二临时公钥至该内存的储存;响应第二条椭圆曲线密码算法指令,该处理器进行该椭圆曲线密码算法的密钥交换第二程序运算,生成随机数作为临时私钥,以该临时私钥处理椭圆曲线基点生成该第二临时公钥,通过该第二寄存器取得该第一临时公钥,基于该第一临...
【专利技术属性】
技术研发人员:李艳婷,黄振华,管应炳,沈昀,怡磊,杨爽,
申请(专利权)人:上海兆芯集成电路有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。