一种应用于信息安全的协处理器的制作方法

文档序号:7635789阅读:286来源:国知局
专利名称:一种应用于信息安全的协处理器的制作方法
技术领域
本发明涉及信息安全技术领域,特别涉及的是一种基于公钥机制的国产算法SM2二元域的多功能多位宽安全协处理器。
背景技术
随着便携式电子产品和终端产品,以及Internet的迅猛发展,个人信息和财产安全的问题显得越来越重要,相关安全算法应运而生,而公钥算法机制的公私密钥对的非对称原理,使之无须保存和管理大量的密钥,更适用于网络和便携式产品的数字签名/身份认证,对对称算法的私钥进行加密。目前,公认安全的解决方案有基于大数和离散对数两种。国产算法SM2是国家密码管理局推出的一款基于离散对数的安全可靠的公钥加密算法,以257或193bit较低的位宽,实现数字签名/身份认证,密钥协商,数据加密/解 密的功能。算法本身具有安全性高、密钥量小、灵活性好等等优点。在SM2算法的二元域特征方程中,通过移位和异或来实现大数基本算法的特点,使得较软件而言,其更适用于硬件电路的设计实现。同时,硬件电路本身更具有高安全性、高速度的特点。因此,如何将现有的技术问题加以解决,即为本领域技术人员的研究方向所在。

发明内容
本发明的主要目的在于提供一种应用于信息安全的协处理器,其是基于国产非对称公钥机制算法的集成了多功能的多位宽硬件协处理器,完成国产SM2 二元域算法涉及的 数字签名/身份认证、密钥协商或数据加密/解密的信息安全应用功能。为了达到上述目的,本发明提供一种应用于信息安全的协处理器,其包括一存储单元及一逻辑运算电路,所述存储单元内设置有控制字寄存器,所述的逻辑运算电路包括一数字签名/身份验证功能模块、一密钥协商功能模块、一数据加解密功能模块、一控制模块、一二元域点运算单元、一模运算单元及一算法单元,其中所述的控制字寄存器控制所述的数字签名/身份验证功能模块、密钥协商功能模块、数据加解密功能模块其中一个功能模块使能,功能模块使能后,通过所述控制模块向所述的二元域点运算单元、模运算单元及算法单元发送使能信号和输入数据,所述的二元域点运算单元、模运算单元及算法单元输出的结果直接返回到功能模块的输入端,所述的数字签名/身份验证功能模块、密钥协商功能模块或数据加解密功能模块结束后,经所述控制模块将其中一个功能模块的输出端数据写入所述存储单元。较佳的实施方式中,所述的二元域点运算单元包括一点加模块及一倍点模块。较佳的实施方式中,所述的点加模块通过所述控制模块的选择,由所述倍点模块给出输入数据或由所述密钥协商功能模块控制输入。较佳的实施方式中,所述的点加模块的输出端分别直接驱动到所述倍点模块的输入端和密钥协商功能模块的输入端。较佳的实施方式中,所述的模运算单元包括一模逆模块、一模乘模块、一模加模块及多个带符号的加减法器,各模运算模块的数据输入端均由所述控制模块控制数据输入,所述各模运算模块的模数均由所述存储单元输入参数。较佳的实施方式中,所述的模运算单元还包括一蒙哥马利模块及一乘法模块,所述的乘法模块为所述蒙哥马利模块的子模块,所述蒙哥马利模块是所述模乘模块的子模块。较佳的实施方式中,所述的算法单元包括一杂凑算法模块、一密钥派生模块、一 ID杂凑模块及一随机数模块,是通过所述控制模块控制所述随机数模块、ID杂凑模块、密钥派生模块及杂凑模块的数据输入。
较佳的实施方式中,所述的控制模块包括一译码器及一多路选择器,所述的译码器与所述的多路选择器相连,上述各个模块经所述多路选择器和译码器统一完成模块间的调用,使各模块得到复用。较佳的实施方式中,所述的译码器为3-8译码器。本发明提供一种国密SM2 二元域算法的硬件实现方案,可以完成国密SM2 二元域算法的全面的硬件固化,比软件方法和软硬结合的方法具有更快速和更高的安全性的特点,对于国密SM2算法的推广和应用有很大的价值CPU通过数据总线,向协处理器写入控制字,可以根据不同的实时需求,完成数字签名/身份认证,密钥协商,数据加密/解密的多种功能的应用选择和切换,可以选择加密或解密两种功能,可以完成257和193两种位宽的选择、加密或解密的多功能多位宽的十二种应用选择。控制模块控制各模块对3个256bit带符号加减法器的调用,以及控制各模块间的调用,达到模块复用。


图I为本发明中央处理单元与协处理器交互示意图;图2为本发明应用于信息安全的协处理器的协处理器组成框图;图3为本发明应用于信息安全的协处理器二元域点运算单元组成框图;图4为本发明应用于信息安全的协处理器模运算单元组成框图;图5为本发明应用于信息安全的协处理器算法单元组成框图;图6为本发明应用于信息安全的协处理器控制模块组成框图;图7为本发明应用于信息安全的协处理器的详细结构图。附图标记说明1_协处理器;11-存储单元;111-控制字寄存器;12-逻辑运算电路;121_数字签名/身份验证功能模块;122_密钥协商功能模块;123_数据加解密功能模块;124-控制模块;125-二元域点运算单元;1251_点加模块;1252-倍点模块;126-模运算单元;1261、1262、1263-加减法器;1264-模逆模块;1265-模乘模块;1266-模加模块;1267-蒙哥马利模块;1268_乘法模块;127_算法单元;1271_随机数模块;1272_ID杂凑模块;1273_密钥派生模块;1274_杂凑模块;2-中央处理单元。
具体实施例方式以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。
本发明是以国家密码管理局推出的国产商用算法SM2算法为基础的,CPU智能卡芯片的安全算法协处理器。其是基于国密公钥机制SM2 二元域算法,以3个256b it带符号加减法器为基本的算术逻辑单元,通过模块复用,提出一种257或193bit的数字签名/身份验证、密钥协商或数据加密功能的协处理器。
参阅图I及图2,为本发明中央处理单元与协处理器交互示意图及协处理器组成框图;本发明的协处理器I与中央处理单元2 (CPU, Central Processing Unit)相连,用于减轻中央处理单元2的处理任务,提高系统的速度。所述的协处理器I包括一存储单元11及一逻辑运算电路12,所述存储单元11内设置有控制字寄存器111,所述的中央处理单元2通过地址总线ADDR和数据总线DATA向存储单元11写入控制字到控制字寄存器111。所述的逻辑运算电路12包括一数字签名/身份验证功能模块121、一密钥协商功能模块122、一数据加解密功能模块123、一控制模块124、一二元域点运算单元125、一模运算单元126及一算法单元127,其中所述的控制字寄存器111用于控制所述数字签名/身份验证功能模块121、密钥协商功能模块122、数据加解密功能模块使能123其中一个功能模块使能,所述数字签名/身份验证功能模块121、密钥协商功能模块122、数据加解密功能模块123使能后,通过所述控制模块124向所述的二元域点运算单元125、模运算单元126及算法单元127中的各运算模块发送运算使能信号和输入数据,所述的二元域点运算单元125、模运算单元126及算法单元127的输出结果直接返回到所述的数字签名/身份验证功能模块121、密钥协商功能模块122、数据加解密功能模块123的输入端,所述的数字签名/身份验证功能模块121、密钥协商功能模块122或数据加解密功能模块123结束后,经所述控制模块124将其中一个功能模块的输出端数据写入所述存储单元11。现将中央处理单元2与协处理器I的交互过程详述如下,其包括步骤al :中央处理单元2由CS信号片选协处理器I ;步骤a2 :按照32位地址总线ADDR上的数据地址,通过32位数据总线DATA将功能模块、加解密功能和位宽选择等控制位参数写入控制字寄存器111,步骤a3 :中央处理单元2根据ADDR由DATA将运算参数写入存储单元11 ;步骤a4 :中央处理单元2根据ADDR由DATA将运算数据写入存储单元11 ;步骤a5 :成功写入后,协处理器I则发出slv_ready信号,放弃总线;步骤a6 :运算异常,协处理器I则发出slv_int信号,退出;步骤a7 :运算结束后,协处理器I的slv_wr信号置0,等待中央处理单元2读出数据。其中,协处理器I从32bit地址总线ADDR读入地址,地址总线ADDR给出每组数据的低地址,根据地址,将数据总线DATA上的参数和数据由高位到低位通过32bit数据总线。对于256位宽参数,分8个时钟周期;对于193位宽参数,分6个时钟周期。协处理器I片选后,slv_wr为I, slv_ready为0, slv_int为O。若中央处理单元2向存储单元11写入数据过程中发生错误,则slv_wr为I, slv_ready为0, slv_int为I,中央处理单元2再次写入输入参数;否则,存储单元11正确写入数据后,协处理器I发出slv_wr为l,slv_ready为l,slv_int为0,放弃总线。数字签名/身份认证、密钥协商或数据加密/解密在运算工程中,正常状态下,保持slv_wr为I, slv_ready保持为0,slv_i nt保持为O。当运算失败,则slv_wr为I, slv_ready为0, slv_int为I ;在密钥协商算法中,作为发起方,运算过程中需要发出中断请求,从总线读入响应方的ID、Po、Ro参数,则slv_wr 为 0, slv_ready 置 I, slv_int 置 I ;当运算结束后,slv_wr 为 0, slv_ready 为 I, slv_int为0,中央处理单元2根据地址总线指定数据地址,从协处理器I的中读出数据。控制字寄存器111包括8bit数据长度klen和加解密控制位dectrl。在密钥协商功能模块122中,8bit数据长度klen用于存放对方的ID长度。参阅图3所示,为本发明应用于信息安全的协处理器二元域点运算单元组成框图,所述的二元域点运算单元125,其与所述的控制模块124及所述的数字签名/身份验证功能模块121、所述的密钥协商功能模块122、所述的数据加解密功能模块123相连,用于实现二元域的点运算。所述的二元域点运算单元125包括一点加模块1251及一倍点模块1252,所述的点加模块1251作为复用模块,其输入经过所述控制模块124的选择,可以由倍点模块1252给出输入数据,同时也可以被密钥协商功能模块122控制输入;点加模块1251的输出端分别直接驱动到倍点模块1252的输入端和密钥协商功能模块122的输入端。
参阅图4所示,为本发明应用于信息安全的协处理器模运算单元组成框图;所述的模运算单元126,其与所述的控制模块124及所述的数字签名/身份验证功能模块121、所述的密钥协商功能模块122、所述的数据加解密功能模块123相连,用于实现模运算。该模运算单元126包括3个256bit带符号的加减法器1261、1262、1263,还包括一模逆模块1264、一模乘模块1265、一模加模块1266、一蒙哥马利模块1267及一乘法模块1268。乘法模块1268是蒙哥马利模块1267的子模块,蒙哥马利模块1267是模乘模块1265的子模块,在上一级模块中例化,不被其它模块所调用。各模运算模块的数据输入端均由控制模块124控制数据输入,完成本单元模块间和本单元外的模块对本单元各模块的调用,各模运算模块的模数均由存储单元11输入参数。参阅图5所示,为本发明应用于信息安全的协处理器算法单元组成框图;所述的算法单元127,其与所述的控制模块124及所述的数字签名/身份验证功能模块121、所述的密钥协商功能模块122、所述的数据加解密功能模块123相连,用于实现各种算法。所述的算法单元127包括一随机数模块1271、一 ID杂凑模块1272、一密钥派生模块1273及杂凑模块1274。各模块的数据输入端都是通过控制模块124控制随机数模块1271、ID杂凑模块1272、密钥派生模块1273及杂凑模块1274的数据输入,完成本单元模块间和本单元外的模块对本单元各模块的调用,实现模块复用。参阅图6所示,为本发明应用于信息安全的协处理器控制模块组成框图;所述的控制模块124其包括一译码器1241及一多路选择器1242。所述的译码器1241的输出连接所述的多路选择器1242。本发明协处理器I的各个模块经控制模块124的多路选择器1242和译码器1241统一完成模块间的调用,使各模块得到复用。例如,本发明的控制模块124是通过译码器14和多路选择器15来控制其他各模块对3个加减法器1261、1262、1263的调用,以及各模块间的调用。本发明的所述的数字签名/身份验证功能模块121、所述的密钥协商功能模块122、所述的数据加解密功能模块123使能后,通过控制模块124的多路选择器1242和译码器1241向二元域点运算单元125、模运算单元126和算法单元127中的各运算模块发送运算使能信号和输入数据。参阅图7所示,为本发明应用于信息安全的协处理器的详细结构图;本发明是通过基于二元域与硬件架构的结合,对控制时序进行有效变形优化,使得数字签名/身份认证、密钥协商、数据加密/解密得以硬件协处理器的形式集成实现。并同时提供257和193两种位宽选择,提高了集成度、安全性,速度和灵活性。具体过程如下结合结合附图7,以硬件协处理器形式实现的较佳的数字签名/身份认证的时序如下时序b :数字签名/身份认证时序,其包括时序bl :片选cs使能,存储单元11就绪,如果控制字寄存器111的dectrl位为0,则是数字签名运算,进入时序b2,否则是身份认证运算,进入时序b9 ;时序b2 :使能随机数模块1271,产生随机数,进入时序b3 ;时序b3 :使能ID杂凑模块1272,产生256bitID杂凑值,进入时序b4 ;时序b4 :使能杂凑算法模块1274,产生256bit杂凑值,进入时序b5 ;时序b5 :使能二元域倍点模块1252,产生257bit 二元域点,进入时序b6 ;时序b6 :使能模加模块1266,检验结果,如果成立,进入时序b7,;不成立,如果是数字签名运算,进入时序b2,如果是身份认证运算,进入时序bl2,;时序b7 :使能模乘模块1265、模逆模块1264,产生256bit结果,如果结果等于0,时序进入时序b2 ;不等于0,时序进入时序b8 ;时序b8 :经控制模块124,向存储单元I写入数据,系统退出;时序b9 :检验存储单元11参数。成立,进入时序b3 ;不成立,产生中断信号并退出进入时序bl2 ;时序blO :连续使能两次二元域倍点模块1252,产生257bit 二元域点,进入时序b6 ;时序bll :使能二元域点加模块1251,产生257bit 二元域点,检验点,如果等于参数,则时序进入时序bl2 ;否则进入时序8 ;时序bl2 :运算失败,发出中断信号,退出运算。结合附图7,以硬件协处理器形式实现的较佳的密钥协商应用功能的时序如下时序c :密钥协商功能模块时序时序,其包括时序Cl :片选cs使能,存储单元11就绪,进入时序c2 ;时序c2 :使能二元域倍点模块1252,产生257bit 二元域点,进入时序c3 ;时序c3 :使能随机数模块1271,产生随机数,进入时序c4 ;时序c4 :使能二元域倍点模块1252,产生257bit 二元域点,如果是发起方,进入时序c9 ;否则,进入时序c5 ;时序c5 :使能模乘模块1265,模加模块1266,如果是发起方,进入时序clO ;如果是响应方,检验存储单元11参数,如果成功,进入时序c6 ;如果失败,进入时序cll ;时序c6 :使能二元域点加模块1251,产生257bit 二元域点,如果不是无穷远点,进入时序c7 ;如果是无穷远点,进入时序c7 ;时序c7 :使能二元域倍点模块1252,产生257bit 二元域点,如果不是无穷远点,进入时序c8 ;如果是无穷远点,进入时序cl2 ;时序c8 :使能密钥派生模块1273,生成派生密钥,进入时序c9 ;时序c9 :经控制模块124,向存储单元11写入数据,系统退出;
时序clO :向存储单元11写入数据,进入时序c5 ;时序cll :检验存储单元11参数r,如果成立,进入时序c6 ;如果不成立,进入时序cl2 ;时序cl2 :协商失败,退出运算。结合附图7,以硬件协处理器形式实现的较佳的数据加密/解密应用功能,时序如下时序d :数据加密/解密时序状态,其包括时序dl :片选cs使能,存储单元11就绪,如果控制字寄存器111的dectrl位为 0,则是加密,进入时序d2,如果是解密,检验存储单元I参数,满足则进入时序d4 ;不满足则进入时序blO ;时序d2 :使能随机数模块1271,产生随机数,进入时序d3 ;时序d3 :使能二元域倍点模块1252,产生257bit 二元域点,进入时序d4 ;时序d4 :使能二元域倍点模块1252,产生257bit 二元域点,如果等于0,进入时序dlO ;否则,进入时序d5 ;时序d5 :使能二元域倍点模块1252,产生257bit 二元域点,写入密钥派生模块KDF的参数寄存器kdfpara,进入时序d6 ;时序d6 :使能密钥派生模块1273,生成派生密钥。检验结果=0,如果成立,如果解密,进入时序dlO ;如果是加密,进入时序d2 ;如果不成立,进入时序d7 ;时序d7 :派生密钥与存储单元I参数异或运算,进入时序d8 ;时序d8 :使能杂凑算法模块1274,生成杂凑值,如果加密,进入时序d9 ;如果解密,判断杂凑值是否等于存储单元11参数,如果不成立,进入时序dlO ;如果成立,进入时序d9 ;时序d9 :经控制模块124,向存储单元11写入数据,系统退出;时序dlO :运算失败,退出运算。CPU通过数据总线,向协处理器写入控制字,可以根据不同的实时需求,完成数字签名/身份认证,密钥协商,数据加密/解密的多种功能的应用选择和切换,可以选择加密或解密两种功能,可以完成257和193两种位宽的选择、加密或解密的多功能多位宽的十二种应用选择。控制模块控制各模块对3个256bit带符号加减法器的调用,以及控制各模块间的调用,达到模块复用。综上所述,本设计提供一种国密SM2 二元域算法的硬件实现方案,可以完成国密SM2 二元域算法的全面的硬件固化,比软件方法和软硬结合的方法具有更快速和更高的安全性的特点,对于国密SM2算法的推广和应用有很大的价值。以上说明对本发明而言只是说明性的,而非限制性的,本领域普通技术人员理解,在不脱离以下所附权利要求所限定的精神和范围的情况下,可做出许多修改,变化,或等效,但都将落入本发明的保护范围内。
权利要求
1.一种应用于信息安全的协处理器,其特征在于,其包括一存储单元及一逻辑运算电路,所述存储单元内设置有控制字寄存器,所述的逻辑运算电路包括一数字签名/身份验证功能模块、一密钥协商功能模块、一数据加解密功能模块、一控制模块、一二元域点运算单元、一模运算单元及一算法单元,其中 所述的控制字寄存器控制所述的数字签名/身份验证功能模块、密钥协商功能模块、数据加解密功能模块其中一个功能模块使能,功能模块使能后,通过所述控制模块向所述的二元域点运算单元、模运算单元及算法单元发送使能信号和输入数据,所述的二元域点运算单元、模运算单元及算法单元输出的结果直接返回到功能模块的输入端,所述的数字签名/身份验证功能模块、密钥协商功能模块或数据加解密功能模块结束后,经所述控制模块将其中一个功能模块的输出端数据写入所述存储单元。
2.根据权利要求I所述的一种应用于信息安全的协处理器,其特征在于,所述的二元域点运算单元包括一点加模块及一倍点模块。
3.根据权利要求2所述的一种应用于信息安全的协处理器,其特征在于,所述的点加模块通过所述控制模块的选择,由所述倍点模块给出输入数据或由所述密钥协商功能模块控制输入。
4.根据权利要求2所述的一种应用于信息安全的协处理器,其特征在于,所述的点加模块的输出端分别直接驱动到所述倍点模块的输入端和密钥协商功能模块的输入端。
5.根据权利要求I所述的一种应用于信息安全的协处理器,其特征在于,所述的模运算单元包括一模逆模块、一模乘模块、一模加模块及多个带符号的加减法器,各模运算模块的数据输入端均由所述控制模块控制数据输入,所述各模运算模块的模数均由所述存储单元输入参数。
6.根据权利要求5所述的一种应用于信息安全的协处理器,其特征在于,所述的模运算单元还包括一蒙哥马利模块及一乘法模块,所述的乘法模块为所述蒙哥马利模块的子模块,所述蒙哥马利模块是所述模乘模块的子模块。
7.根据权利要求I所述的一种应用于信息安全的协处理器,其特征在于,所述的算法单元包括一杂凑算法模块、一密钥派生模块、一 ID杂凑模块及一随机数模块,是通过所述控制模块控制所述随机数模块、ID杂凑模块、密钥派生模块及杂凑模块的数据输入。
8.根据权利要求1、3、5、7所述的一种应用于信息安全的协处理器,其特征在于,所述的控制模块包括一译码器及一多路选择器,所述的译码器与所述的多路选择器相连,上述各个模块经所述多路选择器和译码器统一完成模块间的调用,使各模块得到复用。
9.根据权利要求8所述的一种应用于信息安全的协处理器,其特征在于,所述的译码器为3-8译码器。
全文摘要
本发明公开一种应用于信息安全的协处理器,其包括一存储单元及一逻辑运算电路,存储单元内设置有控制字寄存器,逻辑运算电路包括一数字签名/身份验证功能模块、一密钥协商功能模块、一数据加解密功能模块、一控制模块、一二元域点运算单元、一模运算单元及一算法单元,其中控制字寄存器控制各功能模块使能,各功能模块通过控制模块向二元域点运算单元、模运算单元及算法单元发送使能信号和输入数据,各算法单元输出的结果直接返回到数字签名/身份验证功能模块、密钥协商功能模块、数据加解密功能模块,上述的功能模块结束后,经控制模块将其中一个功能模块的输出端数据写入存储单元。本发明可以完成国密SM2二元域算法的全面的硬件固化。
文档编号H04L9/32GK102739396SQ20111008903
公开日2012年10月17日 申请日期2011年4月11日 优先权日2011年4月11日
发明者刘建巍, 刘振, 屈善新, 徐树民, 王绍麟, 田心, 罗世新 申请人:航天信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1