CN109644129A - 用于硬件加速密码的密钥的线程所有权 - Google Patents

用于硬件加速密码的密钥的线程所有权 Download PDF

Info

Publication number
CN109644129A
CN109644129A CN201780051475.5A CN201780051475A CN109644129A CN 109644129 A CN109644129 A CN 109644129A CN 201780051475 A CN201780051475 A CN 201780051475A CN 109644129 A CN109644129 A CN 109644129A
Authority
CN
China
Prior art keywords
key
thread
coprocessor
identifier
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201780051475.5A
Other languages
English (en)
Other versions
CN109644129B (zh
Inventor
E·T·彼得斯
G·A·诺斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN109644129A publication Critical patent/CN109644129A/zh
Application granted granted Critical
Publication of CN109644129B publication Critical patent/CN109644129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)

Abstract

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

Description

用于硬件加速密码的密钥的线程所有权
技术领域
本申请总体涉及数据安全性,更具体地涉及处理器架构内的计算安全性。
背景技术
数据通信的安全性对于范围从诸如超级计算机的大规模系统到诸如嵌入式处理器的最小规模系统的几乎每种类型的电子系统都是重要的问题。实际上,安全性正成为小规模系统(例如预期在“物联网”(IoT)中部署的传感器和致动器)的首要问题。鉴于其相对较小的计算能力和远程实施,将在很多服务和应用中大量实施的这些高度分布的IoT对象可能特别容易受到攻击和危害。然而,由这些传感器和致动器的网络执行的功能的重要性提高了安全风险。
在数字数据密码领域中已知各种方法,例如可以用于数据通信、数据存储和检索,以及包括可以由嵌入式处理器执行的那些的其他应用。通常,密码领域包括数据加密和解密、数字认证(例如,签名/验证方案)等。公钥密码(也称为非对称密码)是一种常用的密码。根据该方法,根据特定算法生成公钥-私钥对“密钥”,每个密钥是数据块或信息块。公钥和私钥基于生成多项式彼此具有反向关系,使得发射节点使用该对中的一个密钥来保证通信,并且接收节点使用另一个密钥来解密或验证通信。更具体地,在数据加密上下文中,可以使用私钥解密使用公钥加密的数据块;在认证上下文中,可以使用公钥来验证使用私钥生成的数字签名。公钥和私钥通过困难的数学问题(通常称为“陷门函数”)彼此相关,因此从计算上难以根据其对应的已知公钥的知识来确定私钥。因此,公钥可以被发布,例如由不安全的通信发送或在公共注册表中列出,以实现私钥的持有者和获得公钥的那些之间的数据通信数据,而没有私钥可以由攻击者计算的实际风险。公钥/私钥方法通常受到青睐,因为私钥的持有者不需要与任何其他方共享该密钥;相反,对称密钥方法要求双方知道相同的加密密钥。
特定公钥方案提供的安全级别通常对应于密钥的长度;较长的密钥长度增加了从公钥导出私钥的难度。在诸如“DH”、“DSA”和“RSA”之类的密码算法下,公钥和私钥的常规比特长度范围从大约1024位到15360位。密钥的长度可以广泛变化,这取决于期望的安全级别和加密节点和解密节点的可用计算能力。更具体地,增加电子系统中实现的安全级别通常以降低系统性能为代价,因为与较高安全级别相关联的较长密钥需要增加的机器周期数和增加的存储器空间。
通过实施专用于系统处理器中的密码处理的基于硬件的加速器,可以在很大程度上减轻这种折衷。从德克萨斯仪器股份有限公司(Texas Instruments Incorporated)可获得的SITARA AM335x处理器是嵌入式处理器的示例,其中实施了诸如可以在IoT应用中使用的基于硬件的专用安全加速器。在这种类型的架构中,加密、解密和其他密码功能中涉及的计算密集型操作由中央处理单元卸载到安全加速器。这允许中央处理单元在处理末端用户应用时使用其处理带宽,使得系统吞吐量不会受到密码操作的显着影响。
图1示出了具有基于硬件的安全加速器的常规嵌入式处理器的示例的通用功能架构和操作。在该示例中,中央处理单元(CPU)2是常规多核处理器,例如在上文描述的SITARAAM335x处理器中使用的ARM CORTEX-A8CPU。CPU2在常规操作系统(例如LINUX)下的多线程环境中执行其应用。在图1的示例中,CPU 2在操作系统4下运行三个线程T1、T2、T3。各个线程T1、T2、T3由CPU 2根据操作系统4中的调度器函数执行,其中操作系统4写入正在由如图1所示的CPU 2的线程ID寄存器9中执行的当前线程的标识符。该线程ID在操作系统4的控制下由CPU 2的硬件管理,以防止一个线程被另一个线程假冒。
图1的常规处理器包括密码协处理器5,其操作为通过总线SYS_BUS与CPU 2通信的基于硬件的安全加速器,并且专用于执行密码操作,例如数据块的加密和解密。在该架构中,密码协处理器5结合安全存储器块6执行这些操作,安全存储器块6是通过专用总线DED_BUS协处理器5可访问的存储器资源的一部分或全部;通常,对安全存储器块6的访问限于协处理器5,而不包括嵌入式处理器中的CPU 2和其他通用逻辑和I/O功能。
在该常规架构中,密码协处理器5和安全存储器块6用作由CPU 2执行的各种线程T1至T3共用的共享资源。将执行从一个线程切换到另一个线程(这通常是在多线程环境中执行)需要从被暂停的线程存储执行“上下文”,以便在恢复执行该线程时进行后续检索。该上下文包括寄存器内容、执行状态、设置和其他信息,这些信息可以允许逻辑电路在其停止的相同位置恢复线程的执行,就好像在此期间没有处理一个或多个中间线程一样。对于密码操作,该上下文包括在特定线程中使用的密码密钥。该传统架构中的安全存储器块6通过提供密码上下文的本地存储,特别是在协处理器5的密码操作中使用的密钥,允许协处理器5在接收到命令时进行快速上下文切换以在不同的执行线程下自先前操作执行密码操作。
如图1所示,多个密钥条目8在安全存储器块6中可用,用于存储多个密码密钥(即,多个线程上下文),从而允许协处理器执行多个不同的操作和通信信道,每个操作和通信信道具有它们自己的不同私钥、公钥或对称(共享)密钥。在这种典型的常规布置中,每个密钥条目8x可以由密钥“标签”或其他标识符KEY ID调用,以标识和引用特定密钥。条目8的内容各自包括KEY字段,以用于存储密钥本身,或者用于存储地址指针,该地址指针指向存储密钥的安全存储器块6中的另一个位置。在一些常规架构中,KEY ATTR字段指示允许使用该密钥的密码操作的类型(即,加密、解密、认证、签名),以及该密钥的密码类型(AES、PKA等)。尽管图1中示出了四个密钥条目81到84,然而安全存储器块6可以适当地包含更多或更少的条目。
在该架构中,CPU 2通过总线SYS_BUS与密码协处理器5通信。为了在当前执行线程中调用密码操作,CPU 2通过总线SYS_BUS向协处理器5发出调用,该调用包括指示待执行的操作类型的命令、在其上执行那些操作的数据,以及密钥标识符KEY ID的值,该值表示待用于该操作中的密码密钥的密钥条目8x。如果该密钥与协处理器5当前正在使用的密钥不同(这通常在操作系统4已经在CPU 2处将执行从一个线程切换到另一个线程时发生),则协处理器5通过存储当前密钥和用于该先前密钥的安全存储器块6中的密钥条目8x的其他上下文,并且从CPU 2检索与新接收的KEY ID值相对应的密钥条目8x的密钥,来执行上下文切换。在完成所需的密码操作后,密码协处理器5进行通过总线SYS_BUS将结果传送回到CPU2。
在一些常规处理器架构中,密码协处理器可以以“公共”或“私密”模式操作。在这些架构中,公共模式可以与在该模式下可以在多个线程之间共享的一个密码密钥相关联,而私密模式与也可以在该模式中的线程之间共享的不同的密码密钥相关联。
作为进一步的背景,一些常规处理器架构在密码协处理器之外执行上下文切换。在这些架构中,操作系统在CPU处或调用协处理器的其他处理器处执行上下文切换,将先前线程的上下文“清理”到协处理器中存在的程度。在这种方法中,协处理器不参与上下文切换,除了通过下一个线程重写其密钥(如果需要)。
作为进一步的背景,在一些常规处理器架构中,在密码协处理器中提供用于公共模式和私密模式的单独寄存器。这些逻辑上分离的寄存器将私密域中的协处理器使用的密码密钥其他设置和信息与公共域中那些隔离,并且反之亦然。在这种布置中,在从一个域到另一个域的上下文切换中不需要清理。
发明内容
在所描述的示例中,中央处理单元(CPU)在多线程环境中操作。CPU向密码协处理器发出调用,以使用密钥执行密码操作,例如加密和解密。协处理器可访问的安全存储器块存储多个密钥条目,每个密钥条目存储与线程标识符相关联的密码密钥,该线程标识符标识执行线程与该密钥相关联(“拥有该密钥”)。在发出用于密码操作的协处理器调用时,CPU将待使用的密钥的密钥标识符和线程标识符传送到协处理器。协处理器将从CPU接收的线程标识符与存储在具有所需密钥的安全存储器中的线程标识符进行比较,以确定调用线程是否拥有该密钥;如果是,则从安全存储器块检索密钥以供协处理器用于密码操作。如果线程标识符不匹配,则不执行所请求的操作。
附图说明
图1是常规嵌入式处理器的架构的一部分的框图形式的电气图。
图2是根据实施例构造的嵌入式处理器的框图形式的电气图。
图3是根据实施例的图2的处理器的中央处理单元、密码协处理器和安全存储器块的架构的框图形式的电气图。
图4是根据实施例示出图3的架构的操作的流程图。
图5是根据另一实施例的图2的处理器的中央处理单元、密码协处理器和安全存储器块的架构的框图形式的电气图。
具体实施方式
在处理器和操作方法的示例实施例中,在更高安全级别下的多线程环境中的基于硬件的安全加速器处执行密码操作,而不降低系统性能。出于密码操作的目的,这种处理器和方法提供了线程之间的改进的隔离。而且,这种处理器和方法在安全加速器处实现快速上下文切换。
本说明书中描述的一个或多个实施例被实施为电子系统中的嵌入式处理器(例如微控制器),因为这种实施方式在该上下文中是特别有利的。然而,示例实施例可以有益地应用于其他应用,例如较大规模的处理器和系统,包括智能电话、平板电脑、笔记本和其他个人计算机、服务器等。
常规嵌入式处理器可能易受与由密码协处理器执行的密码操作相关的“攻击”的影响。例如,参考关于图1的上文描述的常规架构,第一执行线程可以向协处理器5发出调用以使用第一密钥对数据块进行加密。在上下文切换之后,该第一密钥存储在安全存储器块6中,安全存储器块6在本地存储用于数个CPU线程的密码操作的上下文数据。在这种类型的攻击中,在不同线程中执行的恶意软件监视CPU 2和协处理器5之间的总线SYS_BUS以获得加密数据,然后向协处理器5发出调用以使用现在存储在安全存储器块6中的第一密钥解密该数据块,第一密钥是数据用其加密的密钥。简而言之,上文关于图1描述的常规协处理器架构不为线程之间的密码密钥提供安全性。
根据这些实施例,通过将协处理器系统的安全存储器中的每个密钥条目绑定到特定线程来排除该漏洞。在一个实施例中,密钥条目包括标识线程“拥有”与该密钥条目相关联的密钥的字段,该线程是向协处理器提供该密钥的线程。对于协处理器要访问的密钥,调用协处理器在操作中使用该密钥的线程必须与密钥的密钥条目中标识的线程拥有者匹配。
图2示出了根据这些实施例的嵌入式处理器10的整体架构,例如可以实施为适合于在IoT环境中部署的传感器、控制器或其他电子系统。如上所述,这些实施例可以在如不同规模的并用于广泛的应用的电子系统中部署的各种架构的处理器电路中实施。该实施例中的嵌入式处理器10的架构遵循诸如可从德克萨斯仪器股份有限公司(TexasInstruments Incorporated)获得的SITARAAM335x ARM处理器之类的设备的整体架构,但其根据下文描述的实施例之一附加地构造。根据该架构的处理器10通常将实现为单个集成电路,但也可以替代地实现为多个集成电路(例如,作为“芯片组”或多模块设备)。并且,根据这些实施例,处理器10中可以包括除了本文描述的功能单元之外的更多或更少的功能单元。
如图2所示,处理器10包括许多不同的功能单元。为清楚起见,总线连接未在图2中示出。中央处理单元(CPU)12用作处理器10的主要可编程逻辑,并且可以是诸如在上文描述的SITARAAM335x处理器系列中的ARM CORTEX-A8等的多核处理器。在该实施例中,CPU 12适合于在多线程环境中执行其应用程序及类似应用程序。CPU 12例如经由主系统总线(未示出)与系统存储器14连接。系统存储器14包括对CPU 12和处理器10中的其他功能件有用的适当程序和数据存储器,并且可以实现为多个块或不同类型的存储器阵列,包括诸如SRAM的易失性存储器以及诸如EEPROM或闪存的非易失性存储器。
根据该实施例的处理器10中提供的其他功能单元包括显示控制器18和各种可编程实时单元20,显示控制器18可以包括处理器10内的图形协处理器(未示出)或与之协作,各种可编程实时单元20支持处理器10与IoT中的其他设备之间通过一个或多个常规协议(例如EtherCAT、PROFIBUS、PROFINET和EtherNet/IP协议等)进行通信。处理器10包括CPU12可通过3/4级互连总线22访问的附加接口,包括串行接口24(例如,USB和EMAC接口)、并行接口26(例如,SDIO和GPIO接口),以及存储器接口28(诸如可以用于与DRAM或处理器10外部的其他存储器接合的接口)等。各种系统外围设备26也可以包括在处理器10内,例如定时器、振荡器、DMA功能件、模数转换器(ADC)和数模转换器(DAC)等。
根据这些实施例,处理器10能够安全地执行各种密码操作,包括诸如数据加密、数据解密、认证等操作。通常,这些密码操作是计算密集型的,消耗大量处理器周期和大量存储器资源。为了改善其整体性能和带宽,特别是与其CPU12相关,根据该实施例的处理器10包括密码协处理器15(其为可编程逻辑功能件),例如专用于执行用于密码操作的软件例程的处理器核。在该架构中,协处理器15与安全密钥存储器16一起操作。如下文进一步描述的,安全密钥存储器16包括适当的存储器空间和用于存储在协处理器15执行密码操作中使用的密码密钥的组织。安全密钥存储器16被认为是“安全”存储器,因为对它的访问可能限于协处理器15,并且可能限于在处理器10中的其他特定电路功能件,以排除其他电路功能件。在这个意义上,安全密钥存储器16可以在物理上与系统存储器14和处理器10中的其他存储器资源分开,其中专用存储器总线在安全密钥存储器16与协处理器15之间运行,或者可替代地安全密钥存储器16可以实现为系统存储器14的一部分,对安全密钥存储器16的访问受到“防火墙”或其他安全操作的限制。除安全密钥存储器16之外,在处理器10中还提供存储可由协处理器15执行的密码软件程序和其它程序代码的程序存储器;该程序存储器可以是安全密钥存储器16的一部分,或系统存储器14的一部分,或者可替代地是协处理器15内或可由协处理器15访问的另一存储器资源。
本文描述的实施例和其他替代处理器架构适用于特定应用。
参见图3,现在将描述根据实施例的处理器10的架构,处理器10涉及密码协处理器15的操作。如上所述,该实施例中的CPU 12是支持操作系统13的多核处理器,并且能够在多线程环境中操作,在图3所示的实例中运行n个线程T1到Tn。CPU 12包括线程ID寄存器11,该线程ID寄存器11存储由CPU 12正在执行的当前线程的标识符。该线程标识符可以采取各种形式,这取决于实施方式。例如,在多核架构中,线程标识符可以包括分配给每个执行线程的标签,而无论执行该线程的核如何,或者可替代地,线程标识符可以包括执行该线程的CPU核的标识符结合对该核上的线程进行区分的线程标识符。无论线程ID的形式如何,操作系统13都控制各个执行线程T1到Tn的调度和切换,并且自身用当前线程标识符写入线程ID寄存器11的内容。在该实施例中,操作系统13具有比诸如应用软件之类的其他软件例程更高的权限级别,使得操作系统13能够写入线程ID寄存器11的内容,以排除较低权限软件例程。当前线程和线程ID寄存器11的这种“硬件”设置防止一个线程“假冒”该多线程环境中的另一个线程。
在该实施例中,CPU 12经由处理器10的主设备总线结构32耦合到协处理器15并与协处理器15通信。设备总线结构32包括用于在处理器10的各种功能件(包括系统存储器14和处理器10的其他功能件,例如上文关于图3所述)之间传送存储器地址、数据和控制信息的适当导体。
除了设备总线结构32之外,CPU 12还通过“边带”信号耦合到密码协处理器15。在这些实施例中,边带信号是指通过与设备总线结构32分开的硬件通信路径(“边带路径”)SC从CPU 12传送到协处理器15的数据和控制信息信号。例如,边带路径SC可以由实施处理器10的集成电路中的一个或多个导体实现,这些导体与设备总线结构32分开,并且因此不能被驻留在设备总线结构32上的功能访问。因此,在边带路径SC上发射的边带信号将不可见或者不能通过“窥探”设备总线结构32的电路或功能件来掌握。在该实施例中,这些边带信号将线程ID寄存器11的内容(即当前正在由CPU 12执行的线程的标识符)从CPU12安全地传送到与用于密码操作的调用连接的协处理器15。
在该实施例中,协处理器15包括用于响应于通过设备总线结构32和边带路径SC来自CPU 12的调用而执行密码操作的功能电路。此功能电路包括密钥访问状态机34,密钥访问状态机34为在协处理器15中实施以与安全存储器块16通信从而检索与CPU 12调用的任务相关联的密码密钥的顺序逻辑。协处理器15还包括活动密钥存储36,活动密钥存储36为用于存储由状态机34从安全存储器块16检索的密码密钥的存储器块或寄存器位置。在该实施例中,密钥访问状态机34通过处理器10的主设备总线结构32从安全存储器块16检索密码密钥。就其本身而言,安全存储器块16经由防火墙35与设备总线结构32连接,防火墙35由逻辑电路构成,该逻辑电路限制对将密码密钥和相关信息仅存储到密码协处理器15的安全存储器块16的那些部分的访问,以在处理器10的正常操作期间排除其他功能。在一些实施例中,可以布置防火墙35允许其他功能件(例如CPU 12本身)也在“安全”处理的范围内访问安全存储器块16。例如,CPU 12可以执行安全处理以利用密码密钥加载安全存储器块16。
可替代地,协处理器15可以经由专用总线(诸如图3中的阴影所示的总线33)耦合到安全存储器块16。在该替代方法中,安全存储器块16可以不耦合到设备总线结构32,在这种情况下,其只能由密码协处理器15访问或通过密码协处理器15访问。该替代结构在安全存储器块16仅专用于密钥存储并且不包含可用于其他安全功能的其他存储空间的那些应用中可能是有用的。
在该实施例中,安全存储器块16的全部或一部分用作密码协处理器15的专用密钥存储管理存储器。如图3所示,安全存储器块16的区域存储多个密码密钥401至404(统称为密钥40),供协处理器15在由CPU 12调用的密码操作中使用。这些密码密钥40可以彼此具有不同的类型和尺寸。例如,密钥401和404可以均为AES128密钥,密钥402可以是PKA密钥,密钥403可以是AES 256密钥。特别是由于相对大的尺寸和不同的密钥类型和尺寸,这些密钥40通过间接寻址的方式被访问,如下所述。
在该实施例中,安全存储器块16包括存储多个密钥条目251至254(统称为条目25)的区域。对于该示例,图3中示出了四个密钥条目251到254,但是安全存储器块16视情况可以包含更多或更少的密钥条目25。就此而言,每个密钥条目25x包括与对应的密码密钥40x有关的多个字段。为了如上所述间接访问密钥40,本实施例的每个密钥条目25x是密钥地址指针字段38x,其将存储器地址存储在安全存储器块16中,在该安全存储器块16中存储其对应的密钥40x。作为图3中所示的间接寻址布置的替代,每个条目25x中的字段可以存储实际密钥40x自身,例如代替密钥地址指针字段38x;这种布置可适用于类似类型和尺寸的短密钥。还如图3所示,每个密钥条目25x包括标识其对应密钥40x的密码类型(例如,PKA、AES等)的密钥属性字段39x,并且还可以包括许可,诸如可以使用该密钥40x的操作类型(加密/解密、签名/认证等)等。
根据该实施例,每个密钥条目25x与标签或标识符相关联,如图3所示作为密钥标识符字段37x,通过这种方式,协处理器15访问此特定密钥条目25x。例如,CPU 12对协处理器15的调用可以包括与对应于在该操作中使用的密码密钥40x的密钥标识符字段37x的内容相对应的密钥标识符值。从CPU 12接收此密钥标识符值的密钥访问状态机34然后可以以与内容可寻址存储器或高速缓存标签阵列类似的方式在具有该值的安全存储器块16中访问密钥条目25x,以检索用于对应的密钥40x的密钥地址指针38x。可替代地,密钥访问状态机34可以使用存储器地址从安全存储器块16检索密钥40x,例如通过使用查找表将CPU12传送的密钥标识符值转换为安全存储块16中的对应密钥条目25x的存储器地址。
根据该实施例,每个密钥条目25x包括线程拥有者字段30x。线程拥有者字段30x存储线程标识符值,该线程标识符值标识CPU 12处的线程T1至Tn中“拥有”与该密钥条目25x相关联的密码密钥40x的线程。更具体地,此线程拥有者字段30x的内容是最初将密码密钥40x提供给协处理器15的执行线程的线程标识符,并且因此是与上下文切换连接的安全存储器块16相关联并存储在安全存储器块16中的密钥40x的线程的线程标识符。这些线程标识符值由于在CPU 12处建立执行线程而由操作系统13分配,并且在执行期间作为当前线程存储在CPU 12的线程ID寄存器11中,如在多线程环境中操作的常规处理器中那样。其他标准或操作可以确定哪个CPU线程被认为“拥有”该特定密钥。
参见图4,现在将描述根据实施例的处理器10中的密码操作的执行。在过程42中,通过CPU 12协处理器15和安全存储器块16被“提供”一个或多个密码密钥。例如,由CPU 12正在执行的当前线程(例如,线程T1)可以包括“存储密钥”指令,通过该方式,密码密钥由CPU 12通过设备总线结构32转发到协处理器15,以及通过边带路径SC转发该当前线程T1的线程ID。可替代地,提供过程42可以由CPU 12发出命令来执行,该命令用于由协处理器15使用特定密钥执行密码操作(例如,对数据块加密)。在任何一种情况下,CPU 12通过设备总线结构32转发相关命令以及待使用的密钥和待执行操作的数据,并且CPU 12通过边带路径SC转发用于当前执行线程的线程ID(例如,T1)。在过程44中,协处理器15将密钥存储在安全存储器块16中。该过程44可以在协处理器15处在上下文切换时被执行(不同的线程(例如线程T3)调用密码操作),或者作为对明确的“存储密钥”指令的立即响应。对于图3中所示的存储器布置,过程44的存储器写入将包括创建关于密钥标识符(字段37x)和字段39x中的适当属性的条目25x,将密钥40x自身存储在存储在密钥地址指针38x中的存储器地址处,以及将提供该密钥的当前线程的线程ID值存储在该密钥条目25x的线程拥有者字段30x中。在图3的处理器10的架构中,这些存储器写操作将由密钥访问状态机34经由设备总线结构32执行以保护由防火墙35允许的存储器块16。
可以由CPU 12在安全存储器块16中设置多个密码密钥以供协处理器15稍后使用,以根据需要重复该提供过程42和存储过程44。然而,通常这些过程42、44将根据需要执行或当需要时在处理器10正在执行的应用程序的正常程序流程中执行,而不是在一组密钥提供操作中执行。在任何情况下,在过程44中存储密钥之后,协处理器15然后在过程45中进入等待状态,等待来自CPU 12的命令。
在过程46中,CPU 12向协处理器15发出调用以执行密码操作。在图3的架构中,可以发出该调用,以作为与期望的密码操作相对应的命令连同要在其上执行操作的数据(或者,例如,在系统存储器14中的存储数据的地址)以及密钥标识符值,该密钥标识符值指示要使用存储在安全存储块16中的哪个密码密钥。该密钥标识符值可以是与密钥标识符37x相对应的标签,通过这种方式,协处理器15的密钥访问状态机34可以访问安全存储器块16中的对应的条目25x以检索对应的密钥40x,或者可替代地,该密钥标识符值可以是状态机34转换以到达密钥标识符37x的值。如上所述,CPU 12通过设备总线结构32将命令、数据(或地址)和密钥标识符值转发到协处理器15。同样在过程46中,根据该实施例,CPU 12还通过经由路径SC传送的边带信号将存储在其线程ID寄存器11中的当前线程标识符转发到密钥访问状态机34。如上所述,当前执行线程的线程ID在操作系统13中(例如当其执行上下文切换时)被存储在线程ID寄存器11中,并且该线程ID还通过操作系统13经由边带路径SC“在硬件中”被传送。线程ID寄存器11的写入及其内容通过边带路径进行的传送可以限于操作系统13的高权限级别,以排除诸如应用软件之类的较低权限过程,以防止在一个线程中执行恶意应用软件代码而假冒另一个线程。因此,在过程46中与命令和密钥标识符一起被传送的线程ID标识随后在CPU 12处执行的真实当前执行线程。
在过程48中,响应于哪个安全存储器块16将该密钥条目25x的线程拥有者字段的内容返回到状态机34,根据该架构的CPU 12中的密钥访问状态机34访问与在该过程46的实例中由CPU 12传送的密钥标识符值对应的密钥条目25x。然后,状态机34通过将从密钥条目25x检索到的线程拥有者字段30x的内容与在过程46中通过CPU 12经由边带信道34传送的线程ID值进行比较来执行判定49。该判定49的比较将发出使用特定密钥40x的调用的当前执行线程的线程ID与最初提供具有该密钥40x的协处理器15的执行线程(即,作为该钥匙40x的“拥有者”的线程)的线程ID进行比较。如果通过边带路径SC的来自CPU12的线程ID值与所访问的密钥条目25x中的线程拥有者字段30x的内容不匹配(即,判定49返回“否”结果),则在过程50中状态机34通过设备总线结构32发出错误消息,以向CPU 12指示,由于当前线程没有使用在过程46中由密钥标识符标识的密码密钥的许可,所以其对协处理器15的调用失败,。然后控制转到等待状态45以等待下一次对协处理器15的调用。
如果通过边带路径SC传送到状态机34的线程ID与在过程48中从安全存储器块16中检索的密钥条目25x中的线程拥有者字段30x的内容匹配(判定49返回“是”结果),则在过程46中调用的密码操作可以继续。在过程54中,状态机34通过访问存储在密钥条目25x的密钥地址指针字段38x中的安全存储器块16中的存储器地址来检索实际密钥40x,或者如果密钥40x被存储在密钥条目25x本身内,则通过读取密钥条目25x的对应字段来检索实际密钥40x,并且将密钥40x存储在协处理器15的活动密钥存储装置36中。还可以检查检索到的密钥条目25x的密钥属性字段39x中的许可,以确保密钥40x可以用于该特定操作。假设这样,该存储的密钥40x然后由协处理器15在过程56中执行期望的密码操作时使用。在完成过程56的操作并且将结果转发回CPU 12之后,协处理器15返回到等待状态45以等待下一次调用。
因此,根据该实施例,可以对多线程环境中的一个执行线程中使用的密码密钥的访问限制由其他执行线程使用。通过防止恶意软件在单独的线程中执行的攻击,以这种方式将密钥绑定到各个线程,以允许在包括密码协处理器的基于处理器的系统中提供更高的安全性,基于处理器的系统包括用于在安全性是主要关注的IoT上下文中实施的那些。按照允许在密码协处理器处进行快速上下文切换的方式实现这种改进的安全性,从而使主处理器逻辑从管理协处理器上下文切换中解除并且从访问外部存储器以及由此带来的整体系统性能的降低中解除。
如针对图3中所示的实施例所描述的,发出对协处理器15的调用的执行线程的线程ID被从CPU 12中的线程ID寄存器11通过边带路径SC传送到协处理器15。根据另一个实施例,如图5所示,当前线程ID寄存器51被提供在密码协处理器15’中。在该实施例中,操作系统13使CPU 12通过设备总线结构32将当前线程ID值转发到协处理器15’,例如在CPU 12处执行的线程上下文切换的一部分,即使协处理器15’不参与软件例程。如在图3的实施例中,操作系统13将具有足够高的权限级别,高于其他软件例程(例如正在执行的应用软件)的权限级别,以便其可以写入当前线程ID寄存器51的内容,而禁止较低权限软件例程这样做。因此,根据该实施例,当前线程ID被存储在协处理器15’自身的寄存器51中。在操作中,通过密钥访问状态机34将其自身拥有的线程ID寄存器51的内容与检索到的密钥条目25x的线程拥有者字段30x的内容进行比较来执行在判定49(图4)中用于确定当前执行线程是否是所指示的密码密钥40x的拥有者的比较。根据图5的该实施例的协处理器15’的操作还要遵循上文关于图4描述的方法。
此外在替代方案中,可以布置密钥条目的内容,使得除了提供(即“拥有”)特定密码密钥的线程之外的线程也可以被授权以同样使用相同的密钥。在该替代实施方式中,图4的判定49将评估密钥条目的对应字段,以确定由CPU 12传送或由操作系统13存储在协处理器15本身中的当前执行线程是否被授权使用该密钥;如果不是,则将发出错误消息,并且如果是,则在该当前线程内执行所需的操作。
在所描述的实施例中,修改是可能的,并且在权利要求的范围内,其他实施例也是可能的。

Claims (20)

1.一种处理器,其包括:
中央处理单元;
第一总线,其耦合到所述中央处理单元;
安全存储器,其用于存储多个密钥条目,每个密钥条目与密钥标识符相关联并且包括线程拥有者字段和与密码密钥相对应的密钥数据;以及
协处理器,其经由所述第一总线耦合到所述中央处理单元并且耦合到所述安全存储器,并且所述协处理器包括适于执行多个操作的逻辑电路,所述多个操作包括:响应于通过所述第一总线从所述中央处理单元接收命令和密钥标识符值结合所述中央处理单元正在执行的当前线程的线程标识符值,访问与所述密钥标识符值相对应的所述安全存储器中的密钥条目;以及响应于所述线程标识符值与所访问的密钥条目中的所述线程拥有者字段匹配,使用与所访问的密钥条目相关联的密钥数据执行与接收的命令相对应的密码操作。
2.根据权利要求1所述的处理器,还包括将所述中央处理单元耦合到所述协处理器的边带通信路径,其中所述协处理器通过所述边带通信路径从所述中央处理单元接收所述线程标识符值。
3.根据权利要求2所述的处理器,其中所述中央处理单元包括:可编程逻辑;以及线程ID寄存器,其用于存储指示所述可编程逻辑正在执行的所述当前线程的所述线程标识符值。
4.根据权利要求1所述的处理器,其中所述协处理器还包括线程ID寄存器,以用于存储指示由所述中央处理单元正在执行的所述当前线程的所述线程标识符值,其中所述中央处理单元通过所述第一总线将所述线程标识符值传送给所述协处理器。
5.根据权利要求1所述的处理器,其中所述安全存储器经由所述第一总线耦合到所述协处理器,并且还包括防火墙功能件,其限制对所述安全存储器的访问,所述协处理器通过所述防火墙功能件耦合到所述安全存储器。
6.根据权利要求1所述的处理器,还包括第二总线,所述第二总线将所述协处理器耦合到所述安全存储器。
7.根据权利要求1所述的处理器,其中所述中央处理单元、所述安全存储器和所述协处理器被实现在单个集成电路中。
8.根据权利要求1所述的处理器,其中存储在每个密钥条目中的所述密钥数据包括所述安全存储器中的存储器地址,并且其中所述安全存储器还用于在所述安全存储器中对应于所述多个密钥条目中的每个密钥条目中的所述密钥数据的存储器地址处存储多个密码密钥。
9.根据权利要求1所述的处理器,其中存储在每个密钥条目中的所述密钥数据包括密码密钥。
10.根据权利要求1所述的处理器,其中所述中央处理单元包括多个处理器核,并且其中所述线程标识符值包括所述多个处理器核中执行所述当前线程的处理器核的标识符。
11.一种在处理器中执行密码操作的方法,所述处理器包括中央处理单元、协处理器和安全存储器,所述方法包括:
在所述安全存储器中存储多个密钥条目,每个密钥条目与密钥标识符相关联并且包括线程拥有者字段和存储与密码密钥相对应的数据的密钥数据字段;
在中央处理单元处的当前执行线程中,向所述协处理器发出结合密钥标识符和所述当前执行线程相对应的线程标识符的命令;
操作所述协处理器以从所述安全存储器中检索与所述密钥标识符相对应的密钥条目;
将检索到的密钥条目中的所述线程拥有者字段的内容与所述命令的所述线程标识符进行比较;
响应于所述比较,确定所述检索到的密钥条目中的所述线程拥有者字段与所述命令的所述线程标识符匹配,从所述安全存储器中检索与所述检索到的密钥条目相对应的所述密码密钥;以及
操作所述协处理器以使用检索到的密码密钥执行密码操作。
12.根据权利要求11所述的方法,其中向所述协处理器发出命令包括:
通过所述处理器中的第一总线将所述命令和所述密钥标识符从所述中央处理单元传送到所述协处理器;以及
将所述线程标识符从所述中央处理单元传送到所述协处理器,作为与所述第一总线分开的边带信号通信路径。
13.根据权利要求12所述的方法,其中所述当前执行线程对应于所述中央处理单元处的操作系统下的多个执行线程之一,并且其中在所述操作系统下执行传送所述线程标识符。
14.根据权利要求11所述的方法,还包括:
将所述线程标识符存储在所述协处理器处的寄存器中,其中向所述协处理器发出命令通过所述处理器中的第一总线传送所述命令和所述密钥标识符,并且其中所述比较将所述检索到的密钥条目中的所述线程拥有者字段的内容与所述寄存器的内容进行比较。
15.根据权利要求14所述的方法,其中所述当前执行线程对应于所述中央处理单元处的操作系统下的多个执行线程之一,并且其中存储所述线程标识符包括:
在所述操作系统下,通过所述第一总线将所述线程标识符传送到所述协处理器;以及
在所述操作系统下,将传送的线程标识符写入所述寄存器。
16.根据权利要求11所述的方法,其中向所述协处理器发出命令通过所述处理器中的第一总线将所述命令和所述密钥标识符从所述中央处理单元传送到所述协处理器,并且其中通过将所述协处理器耦合到所述安全存储器的第二总线来执行操作所述协处理器以检索所述密钥条目以及检索所述密码密钥。
17.根据权利要求11所述的方法,其中检索所述密码密钥包括:
在存储在所述检索到的密钥条目的密钥地址指针字段中的存储器地址处访问所述安全存储器。
18.根据权利要求11所述的方法,其中检索所述密码密钥包括检索所述检索到的密钥条目的密钥数据字段的内容。
19.根据权利要求11所述的方法,还包括:
响应于所述比较,确定所述检索到的密钥条目中的所述线程拥有者字段与所述命令的所述线程标识符不匹配,从所述协处理器向所述中央处理单元发出错误消息。
20.根据权利要求11所述的方法,其中所述中央处理单元包括多个处理器核,并且其中所述线程标识符值包括所述多个处理器核中执行所述当前执行线程的处理器核的标识符。
CN201780051475.5A 2016-08-23 2017-08-22 用于硬件加速密码的密钥的线程所有权 Active CN109644129B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/244,208 US10536441B2 (en) 2016-08-23 2016-08-23 Thread ownership of keys for hardware-accelerated cryptography
US15/244,208 2016-08-23
PCT/US2017/047886 WO2018039152A2 (en) 2016-08-23 2017-08-22 Thread ownership of keys for hardware-accelerated cryptography

Publications (2)

Publication Number Publication Date
CN109644129A true CN109644129A (zh) 2019-04-16
CN109644129B CN109644129B (zh) 2023-03-28

Family

ID=61243804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780051475.5A Active CN109644129B (zh) 2016-08-23 2017-08-22 用于硬件加速密码的密钥的线程所有权

Country Status (6)

Country Link
US (1) US10536441B2 (zh)
EP (1) EP3504837B1 (zh)
JP (1) JP6916454B2 (zh)
KR (1) KR102465738B1 (zh)
CN (1) CN109644129B (zh)
WO (1) WO2018039152A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017122361A1 (ja) * 2016-01-15 2017-07-20 富士通株式会社 セキュリティ装置および制御方法
US11237828B2 (en) * 2016-04-26 2022-02-01 Onnivation, LLC Secure matrix space with partitions for concurrent use
US10540219B2 (en) 2017-09-13 2020-01-21 Toshiba Memory Corporation Reset and error handling in application specific integrated circuits
US10528414B2 (en) * 2017-09-13 2020-01-07 Toshiba Memory Corporation Centralized error handling in application specific integrated circuits
US11115383B2 (en) * 2018-05-24 2021-09-07 Texas Instruments Incorporated System on chip firewall memory architecture
US11139967B2 (en) 2018-12-20 2021-10-05 Intel Corporation Restricting usage of encryption keys by untrusted software
KR20230144611A (ko) * 2021-04-06 2023-10-16 구글 엘엘씨 보안 암호화 코프로세서
US20220327052A1 (en) * 2021-04-12 2022-10-13 Meta Platforms, Inc. Systems and methods for transforming data in-line with reads and writes to coherent host-managed device memory

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230813A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Cryptographic coprocessor on a general purpose microprocessor
US20050125684A1 (en) * 2002-03-18 2005-06-09 Schmidt Colin M. Session key distribution methods using a hierarchy of key servers
US20050289555A1 (en) * 2004-06-28 2005-12-29 Hong Jiang Thread to thread communication
WO2008148132A1 (en) * 2007-06-01 2008-12-04 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
US7533248B1 (en) * 2004-06-30 2009-05-12 Sun Microsystems, Inc. Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor
CN101431407A (zh) * 2008-12-15 2009-05-13 西安电子科技大学 支持线程级加解密的密码处理器及其密码运算操作方法
WO2009076654A1 (en) * 2007-12-12 2009-06-18 University Of Washington Deterministic multiprocessing
US20110067097A1 (en) * 2009-09-16 2011-03-17 Pantech Co., Ltd. Platform security apparatus and method thereof
US20150127762A1 (en) * 2013-11-05 2015-05-07 Oracle International Corporation System and method for supporting optimized buffer utilization for packet processing in a networking device
US20160179593A1 (en) * 2014-12-23 2016-06-23 International Business Machines Corporation Push instruction for pushing a message payload from a sending thread to a receiving thread

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10000503A1 (de) 2000-01-08 2001-07-12 Philips Corp Intellectual Pty Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb
DE10061998A1 (de) 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
US20050198498A1 (en) * 2004-03-02 2005-09-08 International Business Machines Corporation System and method for performing cryptographic operations on network data
DE102006055830A1 (de) * 2006-11-27 2008-05-29 Robert Bosch Gmbh Verfahren zum Schutz eines Steuergeräts vor Manipulation
US8392726B2 (en) * 2006-12-20 2013-03-05 Stmicroelectronics S.A. Protection of memory areas
WO2009029842A1 (en) 2007-08-31 2009-03-05 Exegy Incorporated Method and apparatus for hardware-accelerated encryption/decryption
US8494168B1 (en) * 2008-04-28 2013-07-23 Netapp, Inc. Locating cryptographic keys stored in a cache
US8108367B2 (en) * 2008-05-20 2012-01-31 International Business Machines Corporation Constraints with hidden rows in a database
US8370625B2 (en) * 2008-06-11 2013-02-05 Microsoft Corporation Extended data signing
JP5233449B2 (ja) * 2008-07-02 2013-07-10 日本電気株式会社 署名生成装置、ならびに、署名検証装置
US8266504B2 (en) * 2009-04-14 2012-09-11 International Business Machines Corporation Dynamic monitoring of ability to reassemble streaming data across multiple channels based on history
US9634988B2 (en) * 2011-07-20 2017-04-25 Visa International Service Association Expansion device placement apparatus
FR2980285B1 (fr) * 2011-09-15 2013-11-15 Maxim Integrated Products Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise
US8910307B2 (en) * 2012-05-10 2014-12-09 Qualcomm Incorporated Hardware enforced output security settings
EP2736214B1 (en) * 2012-11-27 2015-10-14 Nxp B.V. Controlling application access to mobile device functions
US9871783B2 (en) * 2015-06-26 2018-01-16 Verizon Patent And Licensing Inc. Universal enrollment using biometric PKI

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125684A1 (en) * 2002-03-18 2005-06-09 Schmidt Colin M. Session key distribution methods using a hierarchy of key servers
US20040230813A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Cryptographic coprocessor on a general purpose microprocessor
US20050289555A1 (en) * 2004-06-28 2005-12-29 Hong Jiang Thread to thread communication
US7533248B1 (en) * 2004-06-30 2009-05-12 Sun Microsystems, Inc. Multithreaded processor including a functional unit shared between multiple requestors and arbitration therefor
WO2008148132A1 (en) * 2007-06-01 2008-12-04 Sonics, Inc. Shared storage for multi-threaded ordered queues in an interconnect
WO2009076654A1 (en) * 2007-12-12 2009-06-18 University Of Washington Deterministic multiprocessing
CN101431407A (zh) * 2008-12-15 2009-05-13 西安电子科技大学 支持线程级加解密的密码处理器及其密码运算操作方法
US20110067097A1 (en) * 2009-09-16 2011-03-17 Pantech Co., Ltd. Platform security apparatus and method thereof
US20150127762A1 (en) * 2013-11-05 2015-05-07 Oracle International Corporation System and method for supporting optimized buffer utilization for packet processing in a networking device
US20160179593A1 (en) * 2014-12-23 2016-06-23 International Business Machines Corporation Push instruction for pushing a message payload from a sending thread to a receiving thread

Also Published As

Publication number Publication date
EP3504837B1 (en) 2024-04-17
KR102465738B1 (ko) 2022-11-10
JP2019532559A (ja) 2019-11-07
EP3504837A4 (en) 2019-08-14
US20180063100A1 (en) 2018-03-01
JP6916454B2 (ja) 2021-08-11
CN109644129B (zh) 2023-03-28
WO2018039152A2 (en) 2018-03-01
EP3504837A2 (en) 2019-07-03
US10536441B2 (en) 2020-01-14
WO2018039152A3 (en) 2018-03-29
KR20190040211A (ko) 2019-04-17

Similar Documents

Publication Publication Date Title
CN109644129A (zh) 用于硬件加速密码的密钥的线程所有权
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
US8443181B2 (en) Processor boot security device and methods thereof
US8156503B2 (en) System, method and computer program product for accessing a memory space allocated to a virtual machine
EP2385479B1 (en) Information flow tracking and protection
US7827326B2 (en) Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral
JP4876053B2 (ja) トラステッド・デバイス集積回路
CN110348204B (zh) 一种代码保护系统、认证方法、装置、芯片及电子设备
US9934374B2 (en) Method and apparatus for program flow in software operation
US8095802B2 (en) System and method for securely saving a program context to a shared memory
US20210224202A1 (en) Multi-key cryptographic memory protection
US9678894B2 (en) Cache-less split tracker architecture for replay protection trees
CN102122327B (zh) 使用多个认证代码模块进入安全计算环境
WO2014055136A1 (en) Parallelized counter tree walk for low overhead memory replay protection
US20090089861A1 (en) Programmable data protection device, secure programming manager system and process for controlling access to an interconnect network for an integrated circuit
KR20210095038A (ko) 메모리 스토리지용 어드레스 암호해독
CN112514320A (zh) 动态密码术密钥扩展
US10691356B2 (en) Operating a secure storage device
WO2021037344A1 (en) Trusted device and computing system
Heo et al. Hardware-assisted trusted memory disaggregation for secure far memory
US20220245252A1 (en) Seamless firmware update mechanism
US20240160580A1 (en) Virtual extension to global address space and system security
Rakshit EFFICIENT SECURITY IN EMERGING MEMORIES
CN117633920A (zh) 一种敏感数据传输总线架构、控制逻辑电路及传输系统
CN117321594A (zh) 用于处理储藏事务的装置和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant