内置硬件密码学算法协处理器的微处理器及安全芯片的制作方法

文档序号:22500988发布日期:2020-10-13 09:33阅读:134来源:国知局
内置硬件密码学算法协处理器的微处理器及安全芯片的制作方法
本发明涉及安全芯片设计领域,具体地涉及一种内置硬件密码学算法协处理器的微处理器以及一种安全芯片。
背景技术
:安全芯片被广泛用于物联网、智能家居、移动互联、移动金融等领域。安全芯片分为智能卡、psam卡等形式,是一种能够提供密码学算法支持的soc(systemonachip)芯片,其基本结构由嵌入式微处理器、总线、存储器和外设组成。在soc芯片中实现密码学算法功能,主要有两种方式:一种是采用软件运算,可以使用通用指令进行,也可以调用专用指令。例如intel的台式机cpu和服务器cpu中添加了aes-ni指令集,可以实现aes算法的运算;arm的v8a架构高性能处理器也提供了专用aes指令。但是,通常的嵌入式微处理器不提供aes专用指令集,不能通过软件实现密码学算法功能。软件实现密码学算法的缺点在于安全防护性低,无论是使用通用指令或者专用算法指令进行计算,抗侧信道攻击效果均有限,因为利用微处理器计算产生的功耗波形就可以轻易破解密码学算法。另一种是调用系统中的硬件加密引擎实现密码学算法,微处理器可以通过系统总线访问硬件加密引擎,可以在硬件加密引擎内部保证算法的安全,但是微处理器与硬件加密引擎之间通过系统总线访问数据,数据在系统总线上明文传输存在安全漏洞,利用侧信道攻击可以将其破解。随着可信计算的发展,密码学硬件加密引擎也需要进行安全控制,避免不可信的程序访问硬件加速引擎导致安全问题,因此需要在硬件引擎外配置安全管理模块。一种现有的安全芯片架构如图1所示,在安全芯片的系统总线上增加安全模块,微处理器与硬件加密引擎之间的数据传输通过系统总线上的安全模块进行安全控制。然而,要实现系统总线安全、算法软件安全、可信计算等功能,大大增加了安全芯片的开发难度。目前,亟需一种便捷的密码学算法实现方式,在保证密码学算法安全性的同时,降低安全芯片设计的难度。技术实现要素:本发明的目的是提供一种内置硬件密码学算法协处理器的微处理器,在微处理器内部实现密码学算法安全性,降低安全芯片的设计难度。为了实现上述目的,本发明一方面提供一种内置硬件密码学算法协处理器的微处理器,应用于安全芯片中,包括:主处理器,配置有第一协处理器接口;协处理器,包括第二协处理器接口及密码学算法硬件引擎;所述主处理器与所述协处理器之间通过所述第一协处理器接口和所述第二协处理器接口进行通信。进一步地,还包括:安全防护模块,用于对所述主处理器与所述协处理器之间的通信进行安全防护以及对所述密码学算法硬件引擎进行安全防护。进一步地,所述对所述主处理器与所述协处理器之间的通信进行安全防护,包括:产生所述第一协处理器接口与所述第二协处理器接口之间通信的第一数据掩码,通过所述第一数据掩码实现对所述主处理器与所述协处理器之间通信信道的安全防护。进一步地,所述密码学算法硬件引擎包括寄存器和加密运算单元,所述主处理器通过所述第一协处理器接口将控制信号和密码学数据传送到所述第二协处理器接口,通过所述第二协处理器接口将所述密码学数据写入所述寄存器并启动所述加密运算单元进行加密/解密运算。进一步地,所述密码学算法硬件引擎还包括安全管理单元;所述安全防护模块用于产生所述安全管理单元所需的第二数据掩码,所述安全管理单元通过所述第二数据掩码实现对所述密码学算法硬件引擎的安全防护。进一步地,所述加密运算单元预置密码学算法,所述密码学算法包括对称算法、非对称算法、哈希算法中的任意一种。进一步地,所述协处理器的密码学算法硬件引擎配置有多个所述加密运算单元,每个所述加密运算单元预置的密码学算法均不相同。进一步地,所述微处理器包括多个所述协处理器,每个所述协处理器的加密运算单元预置的密码学算法均不相同。进一步地,所述寄存器包括密钥寄存器、明文寄存器、密文寄存器、状态寄存器以及控制寄存器;所述第一协处理器接口和所述第二协处理器接口用于传送或接收地址信号、数据信号、控制信号以及时钟信号。本发明另一方面提供一种安全芯片,包括上述的内置硬件密码学算法协处理器的微处理器。本发明在微处理器内部设计协处理器作为硬件加密引擎,利用主处理器的协处理器扩展端口作为第一协处理器接口,将协处理器的总线接口作为第二协处理器接口,通过第一协处理器接口与第二协处理器接口直接通信实现主处理器与协处理器之间的安全通信,主处理与协处理器之间的通信不经过安全芯片的系统总线,不需要在系统总线上进行安全防护(即系统总线上不需要设置安全模块),而是在安全芯片的微处理器内部实现密码学算法安全性,降低安全芯片的设计难度。本发明的内置硬件密码学算法协处理器的微处理器,与软件实现密码学算法的处理器相比,通过硬件引擎实现更高的安全防护等级;与扩展密码学指令的处理器相比,通过硬件引擎实现更高安全防护等级并更便于进行功能扩展,可以实现更多的密码学算法;与外挂在安全芯片的系统总线上的硬件密码学算法引擎相比,通信安全防护不需要经过系统总线,减少因总线造成的安全设计难度,对可信执行环境无需进行额外的安全隔离设计,降低安全芯片设计难度,缩短安全芯片开发周期。本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:图1是现有的一种安全芯片架构;图2是本发明一种实施方式提供的内置硬件密码学算法协处理器的微处理器的结构框图;图3是本发明另一种实施方式提供的内置硬件密码学算法协处理器的微处理器的结构框图。具体实施方式以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。本文所述的“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。图2是本发明一种实施方式提供的内置硬件密码学算法协处理器的微处理器的结构框图。如图2所示,本发明实施方式提供一种内置硬件密码学算法协处理器的微处理器,应用于安全芯片中,所述微处理器包括:主处理器、协处理器及安全防护模块。所述主处理器配置有第一协处理器接口,本实施方式中采用内置有协处理器扩展端口的处理器作为主处理器,即主处理器可选用自带协处理器接口的成品处理器。所述协处理器包括第二协处理器接口及密码学算法硬件引擎。所述主处理器与所述协处理器之间通过所述第一协处理器接口和所述第二协处理器接口进行通信。所述安全防护模块用于对所述主处理器与所述协处理器之间的通信进行安全防护以及对所述密码学算法硬件引擎进行安全防护。在微处理器内部设计协处理器作为硬件加密引擎,利用主处理器的协处理器扩展端口作为第一协处理器接口,将协处理器的总线接口作为第二协处理器接口,通过第一协处理器接口与第二协处理器接口直接通信实现主处理器与协处理器之间的安全通信,主处理与协处理器之间的通信不经过安全芯片的系统总线,不需要在系统总线上进行安全防护(即系统总线上不需要设置安全模块),而是在安全芯片的微处理器内部实现密码学算法安全性,降低安全芯片的设计难度。如图2所示,本发明一种实施方式中,所述协处理器的密码学算法硬件引擎包括寄存器、加密运算单元及安全管理单元,所述主处理器通过所述第一协处理器接口将控制信号和密码学数据传送到所述第二协处理器接口,通过所述第二协处理器接口将所述密码学数据写入所述寄存器并启动所述加密运算单元进行加密/解密运算。所述寄存器包括密钥寄存器、明文寄存器、密文寄存器、状态寄存器以及控制寄存器。所述加密运算单元预置密码学算法,所述密码学算法包括但不限于对称算法、非对称算法、哈希算法中的任意一种。所述安全防护模块用于产生所述第一协处理器接口与所述第二协处理器接口之间通信的第一数据掩码以及产生所述安全管理单元所需的第二数据掩码,通过所述第一数据掩码实现对所述主处理器与所述协处理器之间通信信道的安全防护,所述安全管理单元通过所述第二数据掩码实现对所述密码学算法硬件引擎的安全防护,例如对侧信道攻击的防护。所述第一协处理器接口和所述第二协处理器接口用于传送或接收地址信号、数据信号、控制信号以及时钟信号。例如,典型的协处理器接口包括以下信号:信号方向(以协处理器为参照)功能clk输入时钟rst输入复位sel输入协处理器片选addr输入地址wr输入写控制信号wdata输入写数据rdata输出读数据ready输出操作完成信号通过上述控制信号实现协处理器与主处理器的通信。需要说明的是,本发明中的协处理器可以采用上述的通信接口形式,也可以是类似的其他形式。所述协处理器内部的寄存器定义如下:地址功能0x00(cpr0)控制0x01(cpr1)状态0x02(cpr2)密钥0x03(cpr3)明文0x04(cpr4)密文基于上述例举的协处理器通信接口和寄存器定义,本发明的微处理器实现一次加密的过程如下:主处理器通过协处理器接口将加密密钥写入密钥寄存器;主处理器通过协处理器接口将明文写入明文寄存器;主处理器通过协处理器接口配置控制寄存器,启动加密运算,将运算结果存放到密文寄存器,并产生运算结束标志存放到状态寄存器;主处理器通过协处理器接口查询状态寄存器,直到读取运算结束状态。在支持可信执行环境的系统中,要求将数据和外设区分为可信和不可信。本实施方式中的协处理器,可以将内置硬件密码学算法的协处理器配置为只允许可信程序调用,也可以通过主处理器内部扩展的控制寄存器来选择。例如,通过微处理器内部的协处理器安全配置寄存器可实现对协处理器的安全配置,当协处理器被配置为安全状态时,只有安全程序才允许访问该协处理器。微处理器根据自身运行状态和协处理器的安全配置判断是否可以访问该协处理器,不允许访问时生成错误信息。本发明实施方式在微处理器内部实现安全隔离工作,不需要在安全芯片设计过程中额外考虑安全隔离处理,降低芯片设计难度。图3是本发明另一种实施方式提供的内置硬件密码学算法协处理器的微处理器的结构框图。如图3所示,在本发明另一种实施方式中,所述协处理器的密码学算法硬件引擎配置多个加密运算单元,每个加密运算单元预置的密码学算法均不相同。例如,多个加密运算单元分别预置对称算法、非对称算法、哈希算法、国密算法、国际算法。现有的扩展密码学指令的处理器的指令是固定的,例如扩展aes指令集,就只支持aes指令,若要增加新的算法就需要修改处理器架构,而修改处理器架构的时间成本非常大。本实施方式中通过增加协处理器的加密运算单元即可增加新的算法,实现多种密码学算法,缩短开发时间、节约设计成本。在本发明一种可选的实施方式中,微处理器配置多个协处理器,每个协处理器配置一个加密运算单元,每个协处理器的加密运算单元预置的密码学算法均不相同,例如,多个协处理器分别预置对称算法、非对称算法、哈希算法、国密算法、国际算法。现有的扩展密码学指令的处理器的指令是固定的,例如扩展aes指令集,就只支持aes指令,若要增加新的算法就需要修改处理器架构,而修改处理器架构的时间成本非常大。本实施方式中的微处理器支持多个协处理器(例如,现有的某些处理器自带的协处理器扩展端口(即第一协处理器接口)可支持16个协处理器的扩展应用),通过增加协处理器即可增加新的算法,实现多种密码学算法,缩短开发时间、节约设计成本。通过微处理器内部的协处理器安全配置寄存器可实现各个协处理器的安全配置,当一个协处理器被配置为安全状态时,只有安全程序才允许访问该协处理器。微处理器根据自身运行状态和协处理器的安全配置判断是否可以访问该协处理器,不允许访问时生成错误信息,例如,在arm架构的处理器中可以使用nocpfault表示该错误。本发明实施方式提供的内置硬件密码学算法协处理器的微处理器,与软件实现密码学算法的处理器相比,通过硬件引擎实现更高的安全防护等级;与扩展密码学指令的处理器相比,通过硬件引擎实现更高安全防护等级并更便于进行功能扩展,可以实现更多的密码学算法;与外挂在安全芯片的系统总线上的硬件密码学算法引擎相比,通信安全防护不需要经过系统总线,减少因总线造成的安全设计难度,对可信执行环境无需进行额外的安全隔离设计,降低安全芯片设计难度,缩短安全芯片开发周期。本发明实施方式还提供一种安全芯片,包括上述的内置硬件密码学算法协处理器的微处理器。本领域技术人员可以理解实现上述实施方式的部分功能是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,所述存储介质可以是嵌入式系统内部的存储介质,例如:只读存储器rom、随机存取存储器ram、快闪存储器flash、可编程只读存储器eeprom。。以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1