CN107924448B - 硬件实施的单向密码术 - Google Patents

硬件实施的单向密码术 Download PDF

Info

Publication number
CN107924448B
CN107924448B CN201680050472.5A CN201680050472A CN107924448B CN 107924448 B CN107924448 B CN 107924448B CN 201680050472 A CN201680050472 A CN 201680050472A CN 107924448 B CN107924448 B CN 107924448B
Authority
CN
China
Prior art keywords
processor
instruction
handle
key
hardware
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.)
Active
Application number
CN201680050472.5A
Other languages
English (en)
Other versions
CN107924448A (zh
Inventor
V.戈帕尔
J.W.布兰特
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN107924448A publication Critical patent/CN107924448A/zh
Application granted granted Critical
Publication of CN107924448B publication Critical patent/CN107924448B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

公开了用于硬件实施的单向密码术的发明的实施例。在一个实施例中,处理器包括处理器密钥位置、指令硬件和执行硬件。处理器密钥位置用来保存处理器密钥。指令硬件用来接收处理器的指令集中的第一指令。第一指令用来利用处理器密钥加密输入数据并且返回句柄。指令集没有与第一指令相对应的、用来利用处理器密钥解密句柄以返回输入数据的第二指令。执行硬件用来响应于由指令硬件接收到第一指令而执行利用处理器密钥加密输入数据并且返回句柄。

Description

硬件实施的单向密码术
优先权要求
本申请要求2015年9月29日提交的、标题为“Hardware Enforced One-wayCryptography”的美国非临时专利申请No.14/868,579的优先权提交益处。
技术领域
本公开与信息处理的领域有关,并且更具体地说,与信息处理系统中的安全的领域有关。
背景技术
私人信息和其它秘密被许多信息处理系统使用并且被存储在许多信息处理系统中。已经开发了许多技术来尝试存储和/或传递秘密,使得它们无法被发现或改变。这些技术常常涉及使用一个或多个密码密钥。因此,已经开发了用来保护这些密码密钥的完整性的技术,并且随着信息处理系统上的恶意攻击变成日益严重的威胁,会需要更多。
附图说明
通过示例而不是限制在附图中说明本发明。
图1说明了根据本发明的实施例的包括对于硬件实施的单向密码术的支持的系统。
图2说明了根据本发明的实施例的包括对于硬件实施的单向密码术的支持的处理器。
图3说明了根据本发明的实施例的用来执行认证的加密连同执行MOV_ENCRYPT指令的认证的加密硬件的操作。
图4说明了根据本发明的实施例的MOV_ENCRYPT指令的格式。
图5说明了根据本发明的实施例的用于硬件实施的单向密码术的方法。
具体实施方式
描述了用于硬件实施的单向密码术的发明的实施例。在本说明书中,众多具体细节(诸如部件和系统配置)可被阐述,以便提供对本发明的更全面的理解。然而,本领域技术人员将会认识到,没有这样的具体细节也可以实施本发明。另外,一些公知的结构、电路和其它特征并未被详细示出,以避免不必要地使本发明含糊不清。
在下面的描述中,提到“一个实施例”、“实施例”、“示例实施例”、“各种实施例”等表明如此描述的本发明的一个或多个实施例可包括特定特征、结构或特性,但是不止一个实施例可以包括但是并非每一个实施例必然包括特定特征、结构或特性。此外,一些实施例可具有针对其它实施例而描述的一些特征、所有特征或者不具有所述特征。
如在本说明书和权利要求书中所使用的并且除非另外指定,使用序数形容词“第一”、“第二”、“第三”等来描述元件仅仅表明相似元件的不同实例或元件的特定实例正在被提及,并且不是用来暗示如此描述的元件必须是以特定顺序的,或者时间地、空间地、按排名或者以任何其它方式。
同样地,术语“位”、“标志”、“字段”、“条目”、“指示符”等可被用来描述寄存器、表、数据库或其它数据结构中的存储位置的任何类型或内容,不管是在硬件中还是在软件中被实现的,但是并不意味着将本发明的实施例限于存储位置的任何特定类型或位数或任何特定存储位置内的其它元件。术语“清除”可被用来指示存储或者以其它方式促使逻辑0值被存储在存储位置,并且术语“设置”可被用来指示存储或者以其它方式促使逻辑1值、所有1或一些其它指定的值被存储在存储位置;然而,这些术语并不意味着将本发明的实施例限于任何特定逻辑约定,因为在本发明的实施例内可以使用任何逻辑约定。
同样地,如在本发明的实施例的描述中所使用的,术语之间的“/”字符可意味着实施例可以包括第一术语和/或第二术语(和/或任何其它附加术语)或者使用、利用和/或根据第一术语和/或第二术语(和/或任何其它附加术语)来实现。
如在背景技术部分中所描述的,用于使用、传递和存储私人或机密信息的许多技术涉及密码密钥。因此,可以期望使用本发明的实施例来提供对于密码密钥的保护并且减轻信息处理系统和装置受到攻击的脆弱性。例如,本发明的实施例可被用来在处理器内生成任何数量的密码密钥,它们中的每一个可以通过可以使用用于密钥的对应的处理器特定的“句柄”的软件而在处理器上被使用,其中每个密码密钥在处理器内被保存和保护,使得没有固件或软件、甚至具有句柄的软件可以读取或者以其它方式发现密钥。此外,即便攻击者能够使用处理器上的密钥(例如通过发现句柄),攻击者也无法使用不同处理器或系统上的密钥或者复制/移动密钥到不同处理器或系统,并且攻击者使用密钥可被限于直到处理器或系统被重置的时间。本发明的实施例的许多其它使用也是可能的。
图1说明了系统100,包括用于硬件实施的单向密码术的本发明的实施例的信息处理系统。系统100可代表任何类型的信息处理系统,诸如服务器、台式计算机、便携式计算机、机顶盒、手持装置(诸如平板电脑或智能电话)或嵌入式控制系统。系统100包括处理器110、系统存储器120、图形处理器130、外围控制代理140和信息存储装置150。具体化本发明的系统可包括任何数量的这些部件以及任何其它部件或其它元件(诸如外围装置和输入/输出装置)中的每个。这个或任何系统实施例中的任何或所有的部件或者其它元件可通过任何数量的总线、点到点或者其它有线或无线接口或连接而被连接、耦合或以其它方式彼此通信,除非另外指定。系统100的任何部件或其它部分,无论是在图1中示出的还是未在图1中示出的,可被集成或者以其它方式包括在单个芯片(片上系统或SOC)、管芯、衬底或封装上或者之中。
系统存储器120可以是动态随机存取存储器(DRAM)或者由处理器110可读的任何其它类型的介质。图形处理器130可包括任何处理器或用于处理用于显示器132的图形数据的其它部件。外围控制代理140可代表任何部件,诸如芯片集部件,包括或通过它而使外围、输入/输出(I/O)或者其它部件或装置(诸如装置142(例如触摸屏、键盘、麦克风、扬声器、其它音频装置、照相机、视频或其它媒体装置、网络适配器、运动或其它传感器、用于全球定位或其它信息的接收器等)和/或信息存储装置150)可被连接或耦合到处理器110。信息存储装置150可包括任何类型的永久性或非易失性存储器或存储装置,诸如闪速存储器和/或固态、磁或光盘驱动器。
处理器110可代表集成在单个衬底上或者封装在单个封装内的一个或多个处理器或者处理器核,它们中的每个可包括以任何组合的多个线程和/或多个执行核。被表示为处理器110的或者在处理器110中的每个处理器可以是任何类型的处理器,包括通用微处理器(诸如Intel® Core®处理器系列或者来自Intel®公司或另一公司的其它处理器系列中的处理器)、专用处理器或微控制器或者其中可实现本发明的实施例的信息处理系统中的任何其它装置或部件。处理器110可被架构和设计成在被微代码控制的情况下或者在未被微代码控制的情况下根据任何指令集体系结构(ISA)进行操作。
根据本发明的实施例的对于单向加密的支持可以使用嵌入硬件中的电路系统和/或逻辑、微代码、固件和/或如下所述或根据任何其它方法而布置的其它结构的任何组合在处理器(诸如处理器110)中被实现,并且在图1中被表示为单向密码术硬件/逻辑112,其可包括用来支持如下所述的MOV_ENCRYPT指令的MOV_ENCRYPT硬件/逻辑114。如下所述的,处理器110还可包括处理器密钥(PK)116。
图2说明了处理器200,其可代表图1中的处理器110的实施例或者图1中的处理器110的多核处理器实施例的执行核。处理器200可包括存储单元210、指令单元220、执行单元230、控制单元240和PK 250,其中如下所述的图1的单向密码术硬件/逻辑112的电路系统、结构和功能性可以分布在处理器200的每个单元之中。处理器200还可包括图1中未示出的任何其它电路系统、结构或逻辑。
存储单元210可包括处理器200内可用于任何目的的任何类型的存储装置的任何组合;例如,它可包括使用任何存储器或存储技术来实现的任何数量的可读、可写和/或可读写寄存器、缓冲器和/或高速缓冲存储器,其中为了存储能力信息、配置信息、控制信息、状态信息、性能信息、指令、数据和在处理器200的操作中可用的任何其它信息,以及可用来访问这样的存储装置和/或促使或支持与有权访问这样的存储装置相关联的各种操作和/或配置的电路系统。
存储单元210可包括根据本发明的实施例将要被使用的一个或多个存储位置、任何大小的每个。这些存储位置中的每个可以是(即,它们不需要是相同类型的寄存器)通用寄存器、专用寄存器、整数寄存器、浮点寄存器、标量寄存器、向量寄存器、XMM寄存器(根据来自Intel®公司的处理器系列的体系结构)或者任何其它类型的寄存器或任何大小的存储位置中的任何一个,但是为了方便,每个可被称为寄存器,并且每个可通过并不意味着暗示将要使用具体寄存器或者寄存器被专用于特殊目的的具体名称来被提及。
存储位置210可包括用来保存密码密钥、将要被用作加密密钥的值、由此可导出密码密钥的值、这样的密钥的一部分、期望使用根据本发明的实施例的加密而将要被保护的任何其它数据、或者指向任何这样的密钥、值或数据的指针或者任何这样的密钥、值或数据的地址或其它直接或间接位置标识符的源寄存器211(其可代表一组寄存器)。为了方便,由源寄存器211保存的、将要被加载入的、写入的和/或指向的数据可被称为输入密钥(其中术语“输入密钥”在整个本说明书中作为便利的方式被用来基于一个实施例而指这样的数据,但是可以指期望使用根据本发明的任何实施例的加密而将要被保护的任何数据,不以任何方式被限于密钥或与密钥有关的值)。源寄存器211或者它指向的位置可以通过正在被处理器200执行的软件是可写的,但是不需要通过正在被处理器200执行的软件是可读的。尽管源寄存器211或它指向的位置可以通过软件是可读的,但是它的内容或它指向的内容可以通过一种或多种已知安全技术(例如,通过将输入密钥加载入它,根据本发明的实施例对输入密钥执行加密操作,然后清除它,所有通过安全引导过程、认证的代码模块、安全或可信的处理环境等或者在其内)得到保护。
存储位置210可包括用来保存根据本发明的实施例的加密操作的结果或者指向这样的结果的指针或者这样的结果的地址或其它直接或间接位置标识符的目的地寄存器212(其可代表一组寄存器)。为了方便,由目的地寄存器212保存的、从中将要被读取或检索的和/或将要被指向的数据可被称为句柄,其中每个这样的句柄对应于由此导出它或者通过特定处理器是可导出的特定输入密钥。因此,每个这样的句柄对于输入密钥是唯一的(某种程度上通过密码算法以及输入密钥的长度和值来规定)并且对于处理器是唯一的(某种程度上通过处理器密钥的唯一性来规定,其在各种实施例中可以被两个或多于两个处理器共享)。目的地寄存器212或它指向的位置可以通过正在被处理器200执行的软件是可读的,但是不需要通过正在被处理器200执行的软件是可写的。尽管目的地寄存器212或它指向的位置可以通过软件是可读的,但是它的内容或它指向的内容可以通过一种或多种已知安全技术(例如,通过加载输入密钥,根据本发明的实施例对输入密钥执行加密操作,读取目的地寄存器212或它指向的位置,然后清除它,所有通过安全引导过程、认证的代码模块、安全或可信的处理环境等或者在其内)得到保护。
存储位置210可包括用来保存输入密钥的大小的大小寄存器213。例如,在其中源寄存器211将指向数据缓冲器的指针保存在系统存储器120中的实施例中,大小寄存器213可被用来保存将要被加密的块的数量(例如,数据缓冲器中的块的数量),其中每块可以是任何数量的位(例如,128位或者由加密算法指定的任何其它数量的位)。
存储位置210可包括用来保存IV或者指向IV的指针或者IV的地址或其它直接或间接位置标识符的初始化向量(IV)寄存器214(其可代表一组寄存器),其中IV可以是IV(例如用于高级加密标准(AES)密码块链接(CBC)模式)、初始计数器值(例如用于高级加密标准(AES)Galois计数器模式(GCM))、种子、随机数、其它值(例如,如由任何密码术操作、密码或标准所定义的或者将要在任何密码术操作、密码或标准中被使用的或者根据任何密码术操作、密码或标准的)或由此可导出这样的值的任何数据。IV寄存器214或它指向的位置可以通过正在被处理器200执行的软件是可写的,但是不需要通过正在被处理器200执行的软件是可读的。在实施例中,IV寄存器214或它指向的位置可以是通过软件既不可读也不可写的,但是可通过硬件(例如硬件随机数生成器)或固件而被写入或加载。在其中IV寄存器214或它指向的位置通过软件是可读的实施例中,它的内容或它指向的内容可以通过一种或多种已知安全技术(例如,通过将IV加载入IV寄存器214或它指向的位置,根据本发明的实施例使用IV来执行加密操作,然后清除IV寄存器214或它指向的位置,所有通过安全引导过程、认证的代码模块、安全或可信的处理环境等或者在其内)得到保护。
存储单元210可包括用来保存用来规定除加密之外还有认证作为保护机制的附加数据的附加认证数据(AAD)寄存器215。例如,在本发明的实施例中,句柄用来包括认证标签或者可被用于处理器来验证使用处理器的PK正确地生成了句柄的其它元数据。
存储单元210可包括控制寄存器216,其可代表根据现有的处理器或指令集体系结构指定或定义的一个或多个控制寄存器、添加到现有的处理器或指令集体系结构的一个或多个新的控制寄存器、或者现有的或新的寄存器中的一个或多个位/字段。在各种实施例中,控制寄存器216可包括用来启用本发明的一个或多个特征的一个或多个位。例如,在其中可以使用多于加密密码或模式的本发明的实施例中,控制寄存器216可包括用来选择特定加密密码或模式的一个或多个可编程位。
指令单元220可包括用来取、接收、解码、解释、调度和/或处理将要被处理器200执行的指令的任何电路系统、逻辑、结构和/或其它硬件,诸如指令解码器。在本发明的范围内可使用任何指令格式;例如,指令可包括操作码和一个或多个操作数,其中操作码可被解码成一个或多个微指令或微操作以用于由执行单元230执行。操作数或其它参数可与指令隐式地、直接地、间接地或根据任何其它方法相关联。
在实施例中,指令单元220可包括用来接收(和/或以其它方式以上面列示的任何方式处理)MOV_ENCRYPT指令的mov-encrypt指令硬件/逻辑222(其可包括上面列示的硬件/逻辑的任何组合)。下面描述的本发明的实施例说明了MOV_ENCRYPT指令的一个或多个可能的格式和/或处理器对MOV_ENCRYPT指令的一个或多个可能的响应。注意,仅仅为了方便提供了这个指令的名称,并且本发明的实施例可包括具有所期望的任何名称的这样的指令。在各种实施例中,MOV_ENCRYPT指令的一个或多个变体可被添加到现有的ISA作为现有的指令(例如string-copy指令)的增强、扩展、叶或其它变体。
还要注意,描述了本发明的各种实施例并且更多的实施例是可能的,包括处理器对MOV_ENCRYPT指令的响应和MOV_ENCRYPT指令的操作数/参数中的各种差异。在各种实施例中,不同的指令和/或操作码可被用于每个不同种类的MOV_ENCRYPT指令,或者它们可以是相同指令/操作码的叶或变体。还要注意,处理器对MOV_ENCRYPT指令的执行和/或响应也可以或者相反响应于其它事件或与其它事件有关地(例如写入或设置(通过软件、固件或硬件)命令位、模型特定的或其它寄存器;VM条目或退出等)被执行(和/或可能在下面被称为MOV_ENCRYPT操作)。本发明的实施例可包括这些变化中的任何一个或多个。
指令单元220可支持包括MOV_ENCRYPT指令但是没有对应的解密指令的ISA(例如能够正确接收、处理和/或发送以用于仅执行处于ISA中的指令)。换言之,ISA允许软件根据本发明的实施例来加密密码密钥和/或其它信息,但是不允许软件或任何其它软件来解密加密的结果。在实施例中,处理器可支持处于第一操作模式(例如正常模式)的这样的ISA(即,包括MOV_ENCRYPT指令但是没有对应的解密指令的ISA),但是支持处于第二操作模式(例如安全模式)的包括对应的解密指令的ISA。
执行单元230可包括用来处理数据并且执行指令、微指令和/或微操作的任何电路系统、逻辑、结构和/或其它硬件,诸如算术单元、逻辑单元、浮点单元、移位器等。执行单元230可代表任何一个或多个物理上或逻辑上截然不同的执行单元。正如下面进一步描述的,执行单元230可包括用来执行MOV_ENCRYPT的mov-encrypt执行硬件232。尽管在图2中作为分立的元件示出的,但是mov-encrypt执行硬件可包括还被用来执行其它指令和/或执行其它操作的电路系统。
执行单元230可包括用来实现任何一个或多个密码算法(诸如电子码本(ECB)中的高级加密标准(AES)算法、Galois计数器模式(GSM)和/或密码块链接(CBC)模式)的密码术硬件234。备选地,加密可由执行单元230中的其它硬件(例如共享的、通用硬件)来执行。到任何这样的加密硬件/算法的输入可被称为明文并且输出可被称为密文。
PK 250(如下所述的)可在密码术硬件234和/或执行单元230内、被硬连线到或者以其它方式被连接到密码术硬件234和/或执行单元230,使得PK 250可被用作由密码硬件234和/或执行单元230执行的任何一个或多个加密算法中的密码密钥,而不用将PK 250暴露给软件或发现。在许多实施例中,仅处理器200内的加密硬件可以使用PK 250。
执行单元230可包括认证硬件236以实现任何一个或多个散列算法(例如安全散列算法(SHA)、Galois散列(GHASH)算法等),生成消息认证代码(MAC)、认证标签或者可被用来认证或验证句柄的完整性(例如使用处理器的PK正确地生成它)的其它数据,和/或执行任何其它认证函数以规定除加密之外还有认证作为保护机制。备选地,MAC和/或认证标签和/或任何其它认证函数的生成和/或散列可由执行单元230中的其它硬件(例如共享的、通用硬件)来执行。
在本发明的实施例中,密码术硬件234和认证硬件236可被使用和/或集成在一起(和/或与共享的、通用硬件一起)以实现认证的加密算法(例如AES-GCM)。例如,图3说明了用来执行认证的加密连同对三个数据块执行MOV_ENCRYPT指令操作的认证的加密硬件的操作(例如在其中MOV_ENCRYPT指令被用来实现AES-GCM的实施例中),其中Y0表示初始计数器值,Auth Data表示AAD,Auth Tag表示认证标签,P表示明文并且C表示密文(每个如上面或下面介绍的那样并且如下面进一步描述的那样可以被提供和/或使用)。
在图3中,上部示出了与AES加密相关联的计算而下部示出了GHASH计算。到操作的输入由密钥(PK 250)、明文、初始化数据、AAD和大小(也可被称为长度)组成。输出是密文和认证标签。
初始化数据包括与初始计数器值1连接的salt和序列号以形成值Y0。随后的值Yi通过递增由“incr”块示出的计数器来生成。密文块通过执行Ci=EK(Yi)⊕Pi来生成。初始计数器值被加密以用作最后一个标签上的掩码。
AAD是单个填充块。执行使用AAD来计算初始摘要X0的第一GHASH操作。GHASH操作通过“mult H”块来表示。对通过AES计数器模式加密过程生成的三个密文块执行随后的GHASH操作。对利用长度数据生成的、利用加密的掩码被“异或”的块执行最后的GHASH操作以产生最后的摘要。认证标签是最后的摘要或字节的子集。
返回到图2,控制单元240可包括用来控制处理器200的单元和其它元件的操作以及将数据传递到处理器200内、之中和之外的任何微代码、固件、电路系统、逻辑、结构和/或硬件。控制单元240可促使处理器200执行或参与执行本发明的方法实施例,诸如下面描述的方法实施例,例如通过使用执行单元230和/或任何其它资源来促使处理器200执行由指令单元220接收的指令以及从由指令单元220接收的指令导出的微指令或微操作。由执行230执行指令可基于存储在存储单元210中的控制和/或配置信息而改变,其中这样的控制和/或配置信息可被存储在或者被编程到控制/配置寄存器(诸如控制寄存器216)中。
在实施例中,控制单元240可包括mov-encrypt控制硬件/逻辑242,其可代表用来控制MOV_ENCRYPT指令/操作的执行的微代码、固件、电路系统、逻辑、结构和/或硬件。
在本发明的实施例中,PK 250可代表任何根密钥、密钥加密密钥、处理器或平台唯一密钥、或者其它密钥,并且可在制造期间被嵌入(例如利用金属捆扎物或系绳或者任何其它寄存器转换语言技术)、被编程到熔丝阵列中、由物理不可克隆函数(PUF)阵列或随机数生成器生成、或者以其它方式被包括在处理器200中或由处理器200可导出。在实施例中,PK250(例如其中存储它的存储器或阵列)对于在处理器200或任何其它处理器或系统100中的其它代理上运行的软件或固件来说是不可访问的,换言之,PK 250受到保护免于被软件或固件读取。PK 250和/或使用它的加密硬件可被处理器200内的一个或多个执行核共享。
在本发明的各种实施例中,可通过处理器250在不同的时间生成PK 250的新值和/或不同值,使得可以防止成功攻击(例如已经可以使用句柄的成功攻击或者解密或发现密码密钥或利用PK 250加密的其它信息的另一种方式)在这样的时间之后继续成功。例如,在其中从随机数生成器中导出PK 250的实施例中,每当处理器200被重置时可以生成PK 250的新值(并且然后使用本发明实施例的软件可再次加密它的密码密钥或其它信息并且生成新的句柄)。
在本发明的实施例中,PK 250的值可由软件来提供。例如,在安全引导过程期间在可信的执行环境中运行的认证的代码模块可导出(例如从随机数生成器)或拆开(例如从可信的平台模块)用于PK 250的值并且将它存储在处理器200中的指定的存储位置。可以根据任何方法(包括在本说明书中已经描述的那些)来保护指定的存储位置。例如,它可以是只写寄存器或仅由密码安全引擎可访问的寄存器、其它有特权的硬件代理或实体、或者安全或可信的处理环境内的固件或软件。在本发明的其它实施例中,可以使用硬件、固件和软件的任何组合(例如,使用从硬件熔丝导出的密钥、可被有选择地重写(例如用于虚拟化)或以其它方式被软件提供的密钥覆盖的硬件密钥等来加密软件指定的随机数)来生成用于PK250的值。
图4说明了根据本发明的实施例的MOV_ENCRYPT指令的格式400。格式400可包括任何数量的字段,每个字段包括任何数量的位。格式400中的总位数可取决于处理器的指令集体系结构。例如,格式400可具有32位、64位等的长度。在本发明的各种实施例中,MOV_ENCRYPT指令的格式可包括图4中示出的字段的任何组合和/或任何数量的其它操作数字段、立即数字段、预留字段或任何其它字段。
格式400包括第一字段410,所述第一字段可以是用来指定指令的类型的操作编码(操作码)字段。在实施例中,一个或多个特定值可以被用作用于MOV_ENCRYPT指令的操作码。操作码可以是根据一个或多个指令集体系结构导致无操作(NOP)的执行的操作码,利用所述一个或多个指令集体系结构将新的或扩展的指令集体系结构设计成是向后兼容的。
格式400可包括第二字段420,所述第二字段可以是用来指定大小寄存器的操作数字段(如上所述)。在备选实施例中,大小可被指定为指令格式中的立即数或者可以通过不同的指令操作码来指定。
下面示出了使用用于操作码的第一字段410来指定“mov-encrypt”指令并且使用用于显式操作数(“reg”)的第二字段420来指定大小(例如,将要利用基于块的密码(诸如AES-ECB)来加密的输入缓冲器的以块为单位的大小)的MOV_ENCRYPT指令的定义。在这个(以及随后的)示例中,“rsi”和“rdi”分别代表隐式操作数,源寄存器和目的地寄存器,如上所述,其中源寄存器保存指向将要被加密的输入缓冲器的指针并且目的地寄存器保存指向其中将要存储句柄的输出缓冲器的指针。执行MOV_ENCRYPT指令的这个实施例促使执行单元230利用PK 250作为加密密钥并且利用输入缓冲器的内容作为明文来递增地执行逐块加密操作(“块-密码-加密”),其中密文(句柄)被写至输出缓冲器。
Figure DEST_PATH_IMAGE002
Figure DEST_PATH_IMAGE004
格式400可包括第三字段430,所述第三字段可以是用来使用这样的IV或其它这样的值(例如AES-CBC)来为加密模式指定IV寄存器(如上所述)的操作数字段。在备选实施例中,IV或其它这样的值可以由硬件(例如处理器中的随机数生成器)来提供,而不是由出于这个目的而使用第三字段430的软件来提供。
下面示出了使用用于操作码的第一字段410来指定“mov-encrypt-CBC”指令、使用用于显式操作数(“reg”)的第二字段420来指定大小并且使用用于显式操作数(“reg2”)的第三字段430来指定IV的MOV_ENCRYPT指令的定义。执行MOV_ENCRYPT指令的这个实施例促使执行单元230利用PK 250作为加密密钥、利用输入缓冲器的内容作为明文并且利用IV作为附加输入来递增地执行逐块AES-CBC加密操作(“块-密码-cbc-加密”),其中密文(句柄)被写至输出缓冲器。
Figure DEST_PATH_IMAGE006
在格式400中,第三字段430可以相反是用来指定用于认证的加密操作的AAD寄存器(如上所述)的操作数字段。下面示出了使用用于操作码的第一字段410来指定“mov-encrypt-auth”指令、使用用于显式操作数(“reg”)的第二字段420来指定大小并且使用用于显式操作数(“reg3”)的第三字段430来指定AAD的MOV_ENCRYPT指令的定义。执行MOV_ENCRYPT指令的这个实施例促使执行单元230利用PK 250作为加密密钥并且利用输入缓冲器的内容作为明文来递增地执行逐块加密操作(“块-密码-加密”),其中密文被写至输出缓冲器并且接着对AAD和密文执行认证函数(“authentication-function”)以生成认证标签(“Tag”),以及然后将大小(或长度)、AAD和标签写至输出缓冲器,使得句柄包括执行句柄的认证所需要的信息和密文。在备选实施例中,标签的生成可基于明文而不是密文。
Figure DEST_PATH_IMAGE008
格式300可包括用来规定三个显式操作数的第四字段440。下面示出了使用用于操作码的第一字段410来指定“mov-encrypt-auth-AES-GCM”指令、使用用于显式操作数(“reg”)的第二字段420来指定大小、使用用于显式操作数(“reg2”)的第三字段430来指定初始计数器值(Y0)并且使用用于显式操作数(“reg3”)的第四字段440来指定AAD的MOV_ENCRYPT指令的定义。执行MOV_ENCRYPT指令的这个实施例促使执行单元230利用PK 250作为加密密钥、利用输入缓冲器的内容作为明文并且利用Y0和AAD作为附加输入来递增地执行逐块AES-GCM加密操作(“aes-gcm-加密”),其中密文、大小(或长度)、AAD和标签被写至输出缓冲器,使得句柄包括执行句柄的认证所需要的信息和密文。图3中说明了对三个数据块的这个AES-GCM操作的示例。
Figure DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE012
注意,在上面的指令定义示例的每个示例中,由处理器响应于单个指令来执行与那个示例相关联的所有操作。例如,处理器响应于mov-encrypt-auth指令来执行加密和认证两者,使得代码可包括单个指令而不是两个或多于两个指令来实现指定的操作。
图5说明了根据本发明的实施例的用于硬件实施的单向密码术的方法500。尽管本发明的方法实施例不限于这个方面,但是可参考图1、图2和图3的元件以帮助描述图5的方法实施例。可通过硬件、固件、软件和/或系统或装置的用户来执行方法500的各个部分。
在方法500的框510中,包括根据本发明的实施例的处理器(例如处理器110/200)的信息处理系统(例如系统100)的引导(例如包括执行可信的代码中的指令以执行方法500的框512至548的安全或可信的引导过程)开始。
在框512中,将未加密的密钥存储在系统存储器(例如系统存储器120)中的数据缓冲器(“输入缓冲器”)中。本发明的各种实施例可将除未加密的密钥之外的信息存储在输入缓冲器中,但是为了方便,本说明书可将那个信息称为未加密的密钥。
在框520中,指向输入缓冲器的指针被写至处理器寄存器(源寄存器)。在框522中,输入缓冲器的大小可被写至处理器寄存器(大小寄存器)。在框524中,初始化值(例如IV、初始计数器值等)可被写至处理器寄存器(IV寄存器)。在框526中,AAD可被写至处理器寄存器(AAD寄存器)。
在框530中,调用具有用来指定加密操作(例如用来指定算法、模式、认证的使用/类型等)的操作码的ENCRYPT_MOV指令。指令还可具有用来指定大小寄存器的第一操作数、用来指定IV寄存器的第二操作数和/或用来指定AAD寄存器的第三操作数。
在框532中,通过处理器中的指令硬件(例如指令单元220)来接收MOV_ENCRYPT指令。在框534中,响应于指令硬件接收到指令,开始执行MOV_ENCRYPT指令。
在框540中,处理器中的执行硬件(例如执行单元230、密码术硬件234和/或认证硬件236)使用处理器密钥(例如PK 250)对输入缓冲器的内容执行加密操作。在各种实施例中,处理器可被硬连线以执行特定加密操作和/或模式,和/或处理器可被命令、编程或配置成基于操作码、一个或多个操作数、控制/配置寄存器(例如控制寄存器216)的内容等中的一个或多个来选择加密操作、模式、认证的使用/类型等。在各种实施例中,到加密操作的附加输入可包括初始化值(例如IV、初始计数器值等)、AAD等。
在框542中,还可执行认证操作以生成认证标签。在实施例中,认证操作可作为加密操作的一部分、与加密操作并行地或以其它方式连同加密操作来执行。
在框544中,执行加密操作导致将密文写至输出缓冲器或其它句柄存储位置。在框546中,执行加密操作还可导致将认证信息(诸如大小)、初始计数器值、AAD和认证标签写至输出缓冲器或其它句柄存储位置。在框548中,MOV_ENCRYPT指令的执行结束。
注意,处理器不需要存储未加密的密钥或句柄,因为它可使用执行单元230和PK250来在软件提供句柄的任何时间重新生成密钥。还要注意,框512至548可以每当被期望时被重复(例如利用不同的未加密的密钥和其它参数)和/或在安全引导过程之外被执行以便在任何时间并且出于期望的任何目的来生成如所期望的那样多的句柄。
在框550中,安全引导过程结束。
在框552中,可使句柄可用于供软件使用。例如,操作系统(OS)或其它系统级或有特权的软件可以使用输出缓冲器或其它句柄存储位置,供它自己使用,以应用或用户级软件的名义供它自己使用,或者提供给应用或用户级软件。
在框554中,可连同用来加密或解密信息的指令或其它请求将句柄提供给处理器(例如通过在框552中提到的软件)。用来加密或解密信息的请求可以与各种目的中的任一目的有关(例如,盘加密/解密、建立或参加和其它系统的安全通信等)。
在框556中,处理器可尝试使用包括在句柄中的认证信息来认证句柄。如果认证失败,则在框558中,可生成异常,处理器可返回错误代码,或者可根据任何其它方法来指示认证失败。如果使用处理器的PK(例如PK 250)未正确地生成句柄,则认证可失败。如果句柄的尝试使用(例如作为用于SM4密码的密钥)不匹配句柄的预期使用(例如,如由AAD所指示的,诸如用作用于AES128的密钥),则认证可失败。
如果认证通过,则方法500在框560中继续。
在框560中,处理器可使用它的处理器密钥(例如PK 250)生成解密的密钥以解密句柄。注意,可作为框556的执行的一部分来执行框560。
在框562中,处理器可使用解密的密钥来加密或解密如在框554中所请求的信息。在框564中,处理器丢弃解密的密钥(例如清除其中存储它的任何寄存器)。
在本发明的各种实施例中,可以不同的顺序来执行图5中说明的方法,其中说明的框被组合或省略,其中附加框被添加,或者其中重新排序的、组合的、省略的或附加的框组合。此外,本发明的方法实施例不限于方法500或其变化。本文中未描述的许多其它方法实施例(以及设备、系统和其它实施例)在本发明的范围内是可能的。例如,输入缓冲器和/或输出缓冲器可以在不同于系统存储器120的存储器或存储位置中(例如处理器中的或处理器可访问的高速缓冲存储器和/或受任何已知技术保护的存储器或存储器的区域)。
如上所述的,本发明的实施例或实施例的多个部分可以被存储在任何形式的机器可读介质上。例如,方法500的所有或部分可以用被存储在由处理器110可读的介质上的软件或固件指令来体现,所述软件或固件指令在被处理器110执行时促使处理器110执行本发明的实施例。同样地,本发明的多个方面可以用被存储在机器可读介质上的数据来体现,其中数据代表可使用来制作处理器110的所有或部分的设计或其它信息。
因此,已经描述了用于硬件实施的单向密码术的发明的实施例。虽然某些实施例已经被描述并且在附图中已经被示出,但是要理解,这样的实施例只是说明性的而不是对广泛的发明的约束,并且本发明不限于所示出的和描述的具体构造和布置,因为本领域技术人员在研究本公开时可想到各种其它修改。在诸如这个的技术领域中,其中增长是快速的并且进一步的进步是不容易被预见的,所公开的实施例如通过使能技术进步而被促进的那样在布置和细节上可以是可容易修改的,而不会背离本公开的原理或所附权利要求的范围。

Claims (29)

1.一种用于硬件实施的单向密码术的处理器,包括:
处理器密钥位置,用来保存处理器密钥;
指令硬件,用来接收所述处理器的指令集中的第一指令,所述第一指令用来利用所述处理器密钥加密输入数据并且返回句柄,所述指令集没有与所述第一指令相对应的、用来利用所述处理器密钥解密所述句柄以返回所述输入数据的第二指令;以及
执行硬件,用来响应于由所述指令硬件接收到所述第一指令而执行利用所述处理器密钥加密所述输入数据并且返回所述句柄。
2.如权利要求1所述的处理器,其中所述执行硬件包括用来执行所述加密的密码术硬件。
3.如权利要求1所述的处理器,其中所述执行硬件还用来响应于所述指令硬件接收到所述第一指令而执行认证操作。
4.如权利要求2所述的处理器,其中所述执行硬件还包括用来执行认证操作连同所述加密以生成认证标签的认证硬件。
5.如权利要求4所述的处理器,其中所述执行硬件还用来在所述句柄中包括所述认证标签。
6.如权利要求1所述的处理器,进一步包括用来指定输入缓冲器的位置以保存所述输入数据的源存储位置。
7.如权利要求1所述的处理器,进一步包括用来指定输出缓冲器的位置以保存所述句柄的目的地存储位置。
8.如权利要求6所述的处理器,进一步包括用来指定所述输入缓冲器的大小的大小存储位置。
9.如权利要求1所述的处理器,进一步包括用来指定将要被用作到所述加密的输入的初始化值的数据存储位置。
10.如权利要求3所述的处理器,进一步包括用来指定将要被用作到所述认证操作的输入的数据的数据存储位置。
11.如权利要求1所述的处理器,其中所述指令集也没有用来读取所述处理器密钥位置的第三指令。
12.一种用于硬件实施的单向密码术的方法,包括:
通过处理器中的指令硬件接收所述处理器的指令集中的第一指令,所述第一指令用来利用处理器密钥加密密码术密钥并且返回句柄,所述指令集没有与所述第一指令相对应的、用来利用所述处理器密钥解密所述句柄以返回输入数据的第二指令;
通过所述处理器中的执行硬件响应于由所述指令硬件接收到所述第一指令而利用所述处理器密钥加密所述密码术密钥;以及
通过所述处理器返回所述句柄。
13.如权利要求12所述的方法,进一步包括通过所述处理器中的所述执行硬件响应于由所述指令硬件接收到所述第一指令而通过执行认证操作来生成认证标签。
14.如权利要求13所述的方法,返回所述句柄包括返回所述句柄中的所述认证标签。
15.如权利要求14所述的方法,其中在所述处理器返回所述句柄之后,软件向所述处理器提供所述句柄连同对于密码术操作的请求。
16.如权利要求15所述的方法,其中:
在软件向所述处理器提供所述句柄之后,所述处理器尝试使用所述认证标签来认证所述句柄;以及
如果所述句柄的认证成功,则所述处理器使用所述处理器密钥解密所述句柄以重新生成所述密码术密钥。
17.如权利要求16所述的方法,其中在所述处理器向所述处理器提供所述句柄之后,如果所述句柄的认证失败,则所述处理器生成异常或者返回错误代码。
18.如权利要求17所述的方法,其中在所述处理器解密所述句柄之后,所述处理器使用重新生成的密码术密钥来执行请求的密码术操作。
19.如权利要求18所述的方法,其中在所述处理器执行请求的密码术操作之后,所述处理器丢弃重新生成的密码术密钥。
20.一种用于硬件实施的单向密码术的系统,包括:
系统存储器,其中用来存储密码术密钥;以及
处理器,包括:
处理器密钥位置,用来保存处理器密钥;
指令硬件,用来接收所述处理器的指令集中的第一指令,所述第一指令用来利用所述处理器密钥加密所述密码术密钥并且返回句柄,所述指令集没有与所述第一指令相对应的、用来利用所述处理器密钥解密所述句柄以返回所述密码术密钥的第二指令;以及
执行硬件,用来响应于由所述指令硬件接收到所述第一指令而执行利用所述处理器密钥加密所述密码术密钥并且返回所述句柄。
21.一种机器可读介质,其上存储有指令,所述指令在被执行时促使处理器执行如权利要求12至19中的任何一项所述的方法。
22.一种用于硬件实施的单向密码术的设备,包括:
用于通过处理器中的指令硬件接收所述处理器的指令集中的第一指令的部件,所述第一指令用来利用处理器密钥加密密码术密钥并且返回句柄,所述指令集没有与所述第一指令相对应的、用来利用所述处理器密钥解密所述句柄以返回输入数据的第二指令;
用于通过所述处理器中的执行硬件响应于由所述指令硬件接收到所述第一指令而利用所述处理器密钥加密所述密码术密钥的部件;以及
用于通过所述处理器返回所述句柄的部件。
23.如权利要求22所述的设备,进一步包括用于通过所述处理器中的所述执行硬件响应于由所述指令硬件接收到所述第一指令而通过执行认证操作来生成认证标签的部件。
24.如权利要求23所述的设备,用于返回所述句柄的部件包括用于返回所述句柄中的所述认证标签的部件。
25.如权利要求24所述的设备,其中在所述处理器返回所述句柄之后,软件向所述处理器提供所述句柄连同对于密码术操作的请求。
26.如权利要求25所述的设备,其中:
在软件向所述处理器提供所述句柄之后,所述处理器尝试使用所述认证标签来认证所述句柄;以及
如果所述句柄的认证成功,则所述处理器使用所述处理器密钥解密所述句柄以重新生成所述密码术密钥。
27.如权利要求26所述的设备,其中在所述处理器向所述处理器提供所述句柄之后,如果所述句柄的认证失败,则所述处理器生成异常或者返回错误代码。
28.如权利要求27所述的设备,其中在所述处理器解密所述句柄之后,所述处理器使用重新生成的密码术密钥来执行请求的密码术操作。
29.如权利要求28所述的设备,其中在所述处理器执行请求的密码术操作之后,所述处理器丢弃重新生成的密码术密钥。
CN201680050472.5A 2015-09-29 2016-08-29 硬件实施的单向密码术 Active CN107924448B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/868579 2015-09-29
US14/868,579 US10142101B2 (en) 2015-09-29 2015-09-29 Hardware enforced one-way cryptography
PCT/US2016/049198 WO2017058433A1 (en) 2015-09-29 2016-08-29 Hardware enforced one-way cryptography

Publications (2)

Publication Number Publication Date
CN107924448A CN107924448A (zh) 2018-04-17
CN107924448B true CN107924448B (zh) 2022-02-08

Family

ID=58407505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680050472.5A Active CN107924448B (zh) 2015-09-29 2016-08-29 硬件实施的单向密码术

Country Status (5)

Country Link
US (1) US10142101B2 (zh)
CN (1) CN107924448B (zh)
DE (1) DE112016004435T5 (zh)
TW (1) TWI715619B (zh)
WO (1) WO2017058433A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10089500B2 (en) 2015-09-25 2018-10-02 Intel Corporation Secure modular exponentiation processors, methods, systems, and instructions
US10270598B2 (en) 2016-08-26 2019-04-23 Intel Corporation Secure elliptic curve cryptography instructions
US10061932B1 (en) * 2018-01-04 2018-08-28 WindTalker, LLC Securing portable data elements between containers in insecure shared memory space
US10706179B2 (en) * 2018-01-10 2020-07-07 General Electric Company Secure provisioning of secrets into MPSoC devices using untrusted third-party systems
US10452565B2 (en) * 2018-01-12 2019-10-22 Sunasic Technologies, Inc. Secure electronic device
CN110489351B (zh) * 2018-05-14 2021-03-09 英韧科技(上海)有限公司 芯片指纹管理装置及安全芯片
US10785028B2 (en) 2018-06-29 2020-09-22 Intel Corporation Protection of keys and sensitive data from attack within microprocessor architecture
US11917067B2 (en) * 2019-12-28 2024-02-27 Intel Corporation Apparatuses, methods, and systems for instructions for usage restrictions cryptographically tied with data
FR3106910B1 (fr) * 2020-01-31 2022-02-18 St Microelectronics Grenoble 2 Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique sans transmission de clé secrète
FR3106909B1 (fr) 2020-01-31 2022-02-18 St Microelectronics Grenoble 2 Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique avec protection de clé secrète
US11216366B2 (en) 2020-02-13 2022-01-04 Intel Corporation Security check systems and methods for memory allocations
WO2021167617A1 (en) * 2020-02-21 2021-08-26 Hewlett-Packard Development Company, L.P. Computing devices for encryption and decryption of data
TWI781544B (zh) * 2020-03-31 2022-10-21 台灣積體電路製造股份有限公司 積體電路裝置以及產生用於積體電路裝置的安全密鑰的方法及系統
US11962693B2 (en) 2020-03-31 2024-04-16 Taiwan Semiconductor Manufacturing Company, Ltd. Integrated circuit (IC) signatures with random number generator and one-time programmable device
CN111555859A (zh) * 2020-03-31 2020-08-18 杭州熠芯科技有限公司 Sm4-gcm算法及在网络安全协议中的应用
US11706039B2 (en) * 2020-12-26 2023-07-18 Intel Corporation ISA accessible physical unclonable function
US11570010B2 (en) * 2020-12-26 2023-01-31 Intel Corporation ISA accessible physical unclonable function
US11700135B2 (en) * 2020-12-26 2023-07-11 Intel Corporation ISA accessible physical unclonable function
US11972126B2 (en) 2021-03-26 2024-04-30 Intel Corporation Data relocation for inline metadata
US11954045B2 (en) 2021-09-24 2024-04-09 Intel Corporation Object and cacheline granularity cryptographic memory integrity
US20230102178A1 (en) * 2021-09-25 2023-03-30 Intel Corporation Isa accessible physical unclonable function
CN114143413B (zh) * 2021-11-26 2023-11-03 佛山芯珠微电子有限公司 一种图像数据puf安全加密系统及加密方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136838B1 (en) * 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license
US20040086114A1 (en) * 2002-11-06 2004-05-06 Sun Microsystems, Inc. System and method for implementing DES permutation functions
JP4912921B2 (ja) 2007-02-27 2012-04-11 富士通セミコンダクター株式会社 セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
US7788433B2 (en) * 2008-05-24 2010-08-31 Via Technologies, Inc. Microprocessor apparatus providing for secure interrupts and exceptions
US8411867B2 (en) * 2009-04-06 2013-04-02 Broadcom Corporation Scalable and secure key management for cryptographic data processing
US8819446B2 (en) 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US9160524B2 (en) * 2011-05-02 2015-10-13 George Mason University Method and system for recovering cryptographic operations and/or secrets

Also Published As

Publication number Publication date
US20170093567A1 (en) 2017-03-30
CN107924448A (zh) 2018-04-17
US10142101B2 (en) 2018-11-27
DE112016004435T5 (de) 2018-08-30
TWI715619B (zh) 2021-01-11
WO2017058433A1 (en) 2017-04-06
TW201723920A (zh) 2017-07-01

Similar Documents

Publication Publication Date Title
CN107924448B (zh) 硬件实施的单向密码术
US11838418B2 (en) Protection of keys and sensitive data from attack within microprocessor architecture
US11809545B2 (en) Flexible container attestation
EP3757856B1 (en) Cryptographic isolation of memory compartments in a computing environment
CN107667499B (zh) 带密钥散列消息认证码处理器、方法、系统和指令
US11755500B2 (en) Cryptographic computing with disaggregated memory
EP3326102B1 (en) Cryptographic protection of i/o data for dma capable i/o controllers
EP3757858A1 (en) Memory write for ownership access in a core
US8498418B2 (en) Conversion of cryptographic key protection
US11250165B2 (en) Binding of cryptographic operations to context or speculative execution restrictions
US10666430B2 (en) System and techniques for encrypting chip-to-chip communication links
EP1855476A2 (en) System and method for trusted data processing
US9729309B2 (en) Securing data transmission between processor packages
EP4195054A1 (en) Cryptographic computing with legacy peripheral devices
US20230269076A1 (en) Creating, using, and managing protected cryptography keys
US20240104027A1 (en) Temporal information leakage protection mechanism for cryptographic computing

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