用于硬件加速密码的密钥的线程所有权制造技术

技术编号:20886558 阅读:13 留言:0更新日期:2019-04-17 13:41
在所描述的示例中,具有密码协处理器(15)的嵌入式处理器在多线程环境中操作,该嵌入式处理器具有用于密码操作的线程间安全性。可由协处理器(15)访问的安全存储器块(16)存储多个密钥条目(25x),每个密钥条目(25x)存储对应于密码密钥的数据,以及标识执行线程与该密钥相关联的线程拥有者字段。中央处理单元(12)向协处理器(15)发出调用,以连同待使用的密钥的密钥标识符以及指示当前执行线程的线程标识符执行密码操作。协处理器(15)将从中央处理单元(12)接收的线程标识符与对应于密钥标识符的密钥条目(25x)的线程拥有者字段进行比较。如果线程标识符与密钥条目(25x)中的线程拥有者匹配,则从安全存储器块(16)检索密钥以供协处理器(15)用于密码操作。

【技术实现步骤摘要】
【国外来华专利技术】用于硬件加速密码的密钥的线程所有权
本申请总体涉及数据安全性,更具体地涉及处理器架构内的计算安全性。
技术介绍
数据通信的安全性对于范围从诸如超级计算机的大规模系统到诸如嵌入式处理器的最小规模系统的几乎每种类型的电子系统都是重要的问题。实际上,安全性正成为小规模系统(例如预期在“物联网”(IoT)中部署的传感器和致动器)的首要问题。鉴于其相对较小的计算能力和远程实施,将在很多服务和应用中大量实施的这些高度分布的IoT对象可能特别容易受到攻击和危害。然而,由这些传感器和致动器的网络执行的功能的重要性提高了安全风险。在数字数据密码领域中已知各种方法,例如可以用于数据通信、数据存储和检索,以及包括可以由嵌入式处理器执行的那些的其他应用。通常,密码领域包括数据加密和解密、数字认证(例如,签名/验证方案)等。公钥密码(也称为非对称密码)是一种常用的密码。根据该方法,根据特定算法生成公钥-私钥对“密钥”,每个密钥是数据块或信息块。公钥和私钥基于生成多项式彼此具有反向关系,使得发射节点使用该对中的一个密钥来保证通信,并且接收节点使用另一个密钥来解密或验证通信。更具体地,在数据加密上下文中,可以使用私钥解密使用公钥加密的数据块;在认证上下文中,可以使用公钥来验证使用私钥生成的数字签名。公钥和私钥通过困难的数学问题(通常称为“陷门函数”)彼此相关,因此从计算上难以根据其对应的已知公钥的知识来确定私钥。因此,公钥可以被发布,例如由不安全的通信发送或在公共注册表中列出,以实现私钥的持有者和获得公钥的那些之间的数据通信数据,而没有私钥可以由攻击者计算的实际风险。公钥/私钥方法通常受到青睐,因为私钥的持有者不需要与任何其他方共享该密钥;相反,对称密钥方法要求双方知道相同的加密密钥。特定公钥方案提供的安全级别通常对应于密钥的长度;较长的密钥长度增加了从公钥导出私钥的难度。在诸如“DH”、“DSA”和“RSA”之类的密码算法下,公钥和私钥的常规比特长度范围从大约1024位到15360位。密钥的长度可以广泛变化,这取决于期望的安全级别和加密节点和解密节点的可用计算能力。更具体地,增加电子系统中实现的安全级别通常以降低系统性能为代价,因为与较高安全级别相关联的较长密钥需要增加的机器周期数和增加的存储器空间。通过实施专用于系统处理器中的密码处理的基于硬件的加速器,可以在很大程度上减轻这种折衷。从德克萨斯仪器股份有限公司(TexasInstrumentsIncorporated)可获得的SITARAAM335x处理器是嵌入式处理器的示例,其中实施了诸如可以在IoT应用中使用的基于硬件的专用安全加速器。在这种类型的架构中,加密、解密和其他密码功能中涉及的计算密集型操作由中央处理单元卸载到安全加速器。这允许中央处理单元在处理末端用户应用时使用其处理带宽,使得系统吞吐量不会受到密码操作的显着影响。图1示出了具有基于硬件的安全加速器的常规嵌入式处理器的示例的通用功能架构和操作。在该示例中,中央处理单元(CPU)2是常规多核处理器,例如在上文描述的SITARAAM335x处理器中使用的ARMCORTEX-A8CPU。CPU2在常规操作系统(例如LINUX)下的多线程环境中执行其应用。在图1的示例中,CPU2在操作系统4下运行三个线程T1、T2、T3。各个线程T1、T2、T3由CPU2根据操作系统4中的调度器函数执行,其中操作系统4写入正在由如图1所示的CPU2的线程ID寄存器9中执行的当前线程的标识符。该线程ID在操作系统4的控制下由CPU2的硬件管理,以防止一个线程被另一个线程假冒。图1的常规处理器包括密码协处理器5,其操作为通过总线SYS_BUS与CPU2通信的基于硬件的安全加速器,并且专用于执行密码操作,例如数据块的加密和解密。在该架构中,密码协处理器5结合安全存储器块6执行这些操作,安全存储器块6是通过专用总线DED_BUS协处理器5可访问的存储器资源的一部分或全部;通常,对安全存储器块6的访问限于协处理器5,而不包括嵌入式处理器中的CPU2和其他通用逻辑和I/O功能。在该常规架构中,密码协处理器5和安全存储器块6用作由CPU2执行的各种线程T1至T3共用的共享资源。将执行从一个线程切换到另一个线程(这通常是在多线程环境中执行)需要从被暂停的线程存储执行“上下文”,以便在恢复执行该线程时进行后续检索。该上下文包括寄存器内容、执行状态、设置和其他信息,这些信息可以允许逻辑电路在其停止的相同位置恢复线程的执行,就好像在此期间没有处理一个或多个中间线程一样。对于密码操作,该上下文包括在特定线程中使用的密码密钥。该传统架构中的安全存储器块6通过提供密码上下文的本地存储,特别是在协处理器5的密码操作中使用的密钥,允许协处理器5在接收到命令时进行快速上下文切换以在不同的执行线程下自先前操作执行密码操作。如图1所示,多个密钥条目8在安全存储器块6中可用,用于存储多个密码密钥(即,多个线程上下文),从而允许协处理器执行多个不同的操作和通信信道,每个操作和通信信道具有它们自己的不同私钥、公钥或对称(共享)密钥。在这种典型的常规布置中,每个密钥条目8x可以由密钥“标签”或其他标识符KEYID调用,以标识和引用特定密钥。条目8的内容各自包括KEY字段,以用于存储密钥本身,或者用于存储地址指针,该地址指针指向存储密钥的安全存储器块6中的另一个位置。在一些常规架构中,KEYATTR字段指示允许使用该密钥的密码操作的类型(即,加密、解密、认证、签名),以及该密钥的密码类型(AES、PKA等)。尽管图1中示出了四个密钥条目81到84,然而安全存储器块6可以适当地包含更多或更少的条目。在该架构中,CPU2通过总线SYS_BUS与密码协处理器5通信。为了在当前执行线程中调用密码操作,CPU2通过总线SYS_BUS向协处理器5发出调用,该调用包括指示待执行的操作类型的命令、在其上执行那些操作的数据,以及密钥标识符KEYID的值,该值表示待用于该操作中的密码密钥的密钥条目8x。如果该密钥与协处理器5当前正在使用的密钥不同(这通常在操作系统4已经在CPU2处将执行从一个线程切换到另一个线程时发生),则协处理器5通过存储当前密钥和用于该先前密钥的安全存储器块6中的密钥条目8x的其他上下文,并且从CPU2检索与新接收的KEYID值相对应的密钥条目8x的密钥,来执行上下文切换。在完成所需的密码操作后,密码协处理器5进行通过总线SYS_BUS将结果传送回到CPU2。在一些常规处理器架构中,密码协处理器可以以“公共”或“私密”模式操作。在这些架构中,公共模式可以与在该模式下可以在多个线程之间共享的一个密码密钥相关联,而私密模式与也可以在该模式中的线程之间共享的不同的密码密钥相关联。作为进一步的背景,一些常规处理器架构在密码协处理器之外执行上下文切换。在这些架构中,操作系统在CPU处或调用协处理器的其他处理器处执行上下文切换,将先前线程的上下文“清理”到协处理器中存在的程度。在这种方法中,协处理器不参与上下文切换,除了通过下一个线程重写其密钥(如果需要)。作为进一步的背景,在一些常规处理器架构中,在密码协处理器中提供用于公共模式和私密模式的单独寄存器。这些逻辑上分离的寄存器本文档来自技高网...

【技术保护点】
1.一种处理器,其包括:中央处理单元;第一总线,其耦合到所述中央处理单元;安全存储器,其用于存储多个密钥条目,每个密钥条目与密钥标识符相关联并且包括线程拥有者字段和与密码密钥相对应的密钥数据;以及协处理器,其经由所述第一总线耦合到所述中央处理单元并且耦合到所述安全存储器,并且所述协处理器包括适于执行多个操作的逻辑电路,所述多个操作包括:响应于通过所述第一总线从所述中央处理单元接收命令和密钥标识符值结合所述中央处理单元正在执行的当前线程的线程标识符值,访问与所述密钥标识符值相对应的所述安全存储器中的密钥条目;以及响应于所述线程标识符值与所访问的密钥条目中的所述线程拥有者字段匹配,使用与所访问的密钥条目相关联的密钥数据执行与接收的命令相对应的密码操作。

【技术特征摘要】
【国外来华专利技术】2016.08.23 US 15/244,2081.一种处理器,其包括:中央处理单元;第一总线,其耦合到所述中央处理单元;安全存储器,其用于存储多个密钥条目,每个密钥条目与密钥标识符相关联并且包括线程拥有者字段和与密码密钥相对应的密钥数据;以及协处理器,其经由所述第一总线耦合到所述中央处理单元并且耦合到所述安全存储器,并且所述协处理器包括适于执行多个操作的逻辑电路,所述多个操作包括:响应于通过所述第一总线从所述中央处理单元接收命令和密钥标识符值结合所述中央处理单元正在执行的当前线程的线程标识符值,访问与所述密钥标识符值相对应的所述安全存储器中的密钥条目;以及响应于所述线程标识符值与所访问的密钥条目中的所述线程拥有者字段匹配,使用与所访问的密钥条目相关联的密钥数据执行与接收的命令相对应的密码操作。2.根据权利要求1所述的处理器,还包括将所述中央处理单元耦合到所述协处理器的边带通信路径,其中所述协处理器通过所述边带通信路径从所述中央处理单元接收所述线程标识符值。3.根据权利要求2所述的处理器,其中所述中央处理单元包括:可编程逻辑;以及线程ID寄存器,其用于存储指示所述可编程逻辑正在执行的所述当前线程的所述线程标识符值。4.根据权利要求1所述的处理器,其中所述协处理器还包括线程ID寄存器,以用于存储指示由所述中央处理单元正在执行的所述当前线程的所述线程标识符值,其中所述中央处理单元通过所述第一总线将所述线程标识符值传送给所述协处理器。5.根据权利要求1所述的处理器,其中所述安全存储器经由所述第一总线耦合到所述协处理器,并且还包括防火墙功能件,其限制对所述安全存储器的访问,所述协处理器通过所述防火墙功能件耦合到所述安全存储器。6.根据权利要求1所述的处理器,还包括第二总线,所述第二总线将所述协处理器耦合到所述安全存储器。7.根据权利要求1所述的处理器,其中所述中央处理单元、所述安全存储器和所述协处理器被实现在单个集成电路中。8.根据权利要求1所述的处理器,其中存储在每个密钥条目中的所述密钥数据包括所述安全存储器中的存储器地址,并且其中所述安全存储器还用于在所述安全存储器中对应于所述多个密钥条目中的每个密钥条目中的所述密钥数据的存储器地址处存储多个密码密钥。9.根据权利要求1所述的处理器,其中存储在每个密钥条目中的所述密钥数据包括密码密钥。10.根据权利要求1所述的处理器,其中所述中央处理单元包括多个处理器核,并且其中所述线程标识符值包括所述多个处理器核中执行所述当前线程的处理器核的标识符。11.一种在处理器中执行密码操作的方法,所述处理器包括中央处理单元、协处理器和安全存储器,所述方法包括:在所述安全存储器中存储多个密钥条目,每个密钥条目与密钥标识符相关联并且包括...

【专利技术属性】
技术研发人员:E·T·彼得斯G·A·诺斯
申请(专利权)人:德克萨斯仪器股份有限公司
类型:发明
国别省市:美国,US

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

1