发明名称 一种椭圆曲线公钥密码SM2算法的硬件加速协处理器
摘要 一种椭圆曲线公钥密码SM2算法的硬件加速协处理器,结合SM2算法实际,包括控制模块、寄存器堆、模乘模块、模逆模块、模加减模块、SM3模块。其中控制模块,接收主处理器发送的SM3运算指令、模乘运算指令、模逆运算指令或模加减运算指令,并控制寄存器堆将数据送至对应运算模块,运算模块按照运算指令进行运算后计算结果送至寄存器堆存储,寄存器接收并存储计算结果。本发明中每个模块只需要完成自己特定的工作即可通过协同工作实现SM2密码算法,具有模块化优势,另外本发明灵活性高,提高了整体芯片的可靠性和可扩展性,节省了硬件资源。
申请公布号 CN104579656A 申请公布日期 2015.04.29
申请号 CN201410851308.7 申请日期 2014.12.31
申请人 北京时代民芯科技有限公司;北京微电子技术研究所 发明人 郭晓;姚全斌;荣欣;蒋安平;宗宇
分类号 H04L9/30(2006.01)I 主分类号 H04L9/30(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 陈鹏
主权项 一种椭圆曲线公钥密码SM2算法的硬件加速协处理器,其特征在于包括控制模块、寄存器堆、模乘模块、模逆模块、模加减模块、SM3模块,其中控制模块,接收主处理器发送的一级指令后进行译码并判断,如果是存储指令,则将当前数据存储到寄存器堆中,如果是SM3运算指令,则控制寄存器堆按照SM3运算指令将数据读出并送至SM3模块,如果是点加或倍点运算指令,则将点加或倍点运算指令进行译码得到模乘运算指令或模逆运算指令或模加减运算指令,对于模乘运算指令,则按照模乘运算指令控制寄存器堆将数据读出并送至模乘运算模块和寄存器堆进行模乘运算,对于模逆运算指令,则按照模逆运算指令控制寄存器堆将数据读出并送至模逆运算模块和寄存器堆进行模逆运算,对于模加减运算指令,则按照模加减运算指令控制寄存器堆将数据读出并送至模加减模块和寄存器堆进行模加减运算;所述一级指令包括存储指令、SM3运算指令、点加或倍点运算指令;寄存器堆,预先存储待模乘运算的数据m和n、待模逆运算的数据x、待模加减运算的数据z和v、消息分组B<sup>(ii)</sup>、模N<sub>j</sub>、模数p、模N<sub>j</sub>参数q;按照模乘运算指令将域选择控制信号field、模N<sub>j</sub>,模N<sub>j</sub>参数q送至模乘运算模块,接收并存储模乘运算模块发送的模乘计算结果,将模乘计算结果中的c<sub>j</sub>送至模乘运算模块用于模乘运算;按照模逆运算指令将域选择控制信号field、加减控制信号sel、待模逆运算的数据x、模数p送至模逆运算模块,接收并存储模逆运算模块发送的模逆计算结果;按照模加减运算指令将域选择控制信号field、加减选择控制信号sel、模数p和待模加减运算的数据z和v送至模加减模块,接收并存储模加减模块发送的模加减计算结果;按照SM3运算指令将消息分组B<sup>(i)</sup>送至SM3模块,接收并存储SM3模块发送的SM3计算结果;模乘模块,接收寄存器堆发送的域选择控制信号field、模N<sub>j</sub>,模N<sub>j</sub>参数q后进行模乘运算并将计算得到的模乘计算结果送至寄存器堆存储;模逆模块,接收寄存器堆发送的域选择控制信号field、加减控制信号sel、待模逆运算的数据x、模数p后进行模逆运算并将摸逆计算结果送至寄存器堆存储;模加减模块,接受寄存器堆发送的域选择控制信号field、加减选择控制信号sel、模数p和待模加减运算的数据z和v后进行模加减运算并将模加减计算结果送至寄存器堆存储;SM3模块,接收寄存器堆发送的消息分组B<sup>(ii)</sup>后进行SM3运算并将计算得到SM3计算结果送至寄存器堆存储。
地址 100076 北京市丰台区东高地四营门北路2号