使用隐藏的根密钥的可重复的应用特定的加密密钥获得的制作方法

xiaoxiao2020-9-10  3

使用隐藏的根密钥的可重复的应用特定的加密密钥获得的制作方法
【专利摘要】公开了用于可重复的应用特定的加密密钥获得的本发明的实施例。在一个实施例中,一种处理器包括:根密钥、加密引擎和执行硬件。加密引擎用于使用根密钥来执行加密操作,其中根密钥仅可以由加密引擎来访问。执行硬件用于执行指令以使用加密算法来确定性地生成应用特定的加密密钥。
【专利说明】使用隐藏的根密钥的可重复的应用特定的加密密钥获得
[0001]

【背景技术】
1.领域
本公开涉及信息处理领域,以及更具体地涉及加密信息领域。
[0002]2.相关技术描述
在信息处理系统中,可以通过对秘密信息进行加密来防止该秘密信息被发现。私有密钥加密算法,诸如在来自国家标准与技术研究院的联邦信息处理标准197中定义的高级加密标准(“AES”),使用私有密钥将未加密的信息(“纯文本”)转换成加密信息(“密码文本”),除非随后通过使用私有密钥逆向转换来解密,否则该加密信息一般无含义。

【专利附图】

【附图说明】
[0003]在附图中通过示例而非限制来说明本发明。
[0004]图1说明了根据本发明的实施例的支持可重复的应用特定的加密密钥获得的处理器。
[0005]图2说明了根据本发明的实施例的用于可重复的应用特定的加密密钥获得的方法。

【具体实施方式】
[0006]描述了用于使用隐藏的根密钥的可重复的应用特定的加密密钥获得的本发明的实施例。在本说明书中,阐述了许多特定的细节,诸如组件和系统配置,以便提供本发明的更彻底的理解。然而,本领域的技术人员将了解的是,在没有此类特定细节的情况下,可以实践本发明。另外,没有详细地示出一些众所周知的结构、电路和其它特征,以避免不必要地使本发明难于理解。
[0007]如在背景部分中描述的,加密可以用于保护秘密信息。一种类型的秘密信息可以是应用特定的加密密钥。本发明的实施例提供用于使用隐藏的根密钥的可重复的获得应用特定的加密密钥。这些实施例提供用于可重复的获得,以便应用特定的加密密钥不必与用于加密的数据一起存储。这些实施例还提供用于在不包括保护隐藏的根密钥的情况下来执行该获得。
[0008]图1说明了根据本发明的实施例的在系统180中的处理器100。处理器100可以是任何类型的处理器,包含通用微处理器,诸如Intel? Core?处理器家族、Intel? Atom?处理器家族中的处理器,或来自Intel?公司的其它处理器家族中的处理器,或来自另一公司的另一处理器,或专用处理器或微控制器。处理器100可以包含任何组合的多线程和多执行核心。处理器100包含:根密钥110、加密引擎120、指令硬件130、执行硬件140和控制逻辑150。处理器100还可以包含未在图1中示出的任何其它的电路、结构或逻辑。
[0009]根密钥110可以是任何硬件加密密钥。在一个实施例中,根密钥110是存储在熔丝式实现的只读存储器中的256比特的密钥。该只读存储器不可以由在处理器100上运行的软件来访问。只有加密引擎120可以访问根密钥110。
[0010]加密引擎120可以包含任何电路或其它结构以执行一个或多个加密算法。在一个实施例中,加密引擎120包含电路以执行AES加密、安全散列算法(“SHA”)和/或基于散列的消息认证码(“HMAC”)生成。
[0011]指令硬件130可以表示任何电路、结构或其它硬件,诸如指令解码器,以用于取回、接收、解码和/或调度指令。在本发明的范围内,可以使用任何指令格式;例如,指令可以包含操作码和一个或多个操作数,其中操作码可以被解码成用于由执行硬件140执行的一个或多个微指令或微操作。
[0012]在一个实施例,指令硬件130可以被设计为接收一个或多个指令以安全或隔离的执行模式来支持处理器100的操作,其中对特定系统资源的访问可以由诸如测量的虚拟机监视器的可信软件来控制。在这个实施例中,对加密引擎120的访问可以限制于在安全或隔离的执行模式内进行操作的软件。在其它实施例中,可以使用任何其它方法以隐藏或保护根密钥110。在一个实施例中,根密钥110仅可以由AES打包(wrap)操作(AES打包操作完全地由加密引擎120来执行)来访问,以及不会由任何其它硬件或软件可观察到。
[0013]执行硬件140可以包含任何电路、结构或其它硬件,诸如算术单元、逻辑单元、浮点单元、移位器等,以用于处理数据和执行指令、微指令和/或微操作。
[0014]控制逻辑150可以包含任何电路、逻辑或其它结构,包含微代码、状态机逻辑和可编程逻辑,以控制:处理器100的单元和其它元件的操作以及在处理器100内的数据传递、将数据传递到处理器100中和从处理器100传递数据。控制逻辑150可以使得处理器100执行或参与执行本发明的方法实施例,诸如以下描述的方法实施例,例如通过使得处理器100使用执行硬件140、加密引擎120和/或任何其它资源以执行由指令硬件130接收的执行指令和由指令硬件130接收的指令获得的微指令或微操作。
[0015]系统180还可以包含:系统存储器190、网络接口控制器(“NIC”)182以及通过任何数量的总线、点到点、或其它有线或无线连接相互连接、耦合或以其它方式相同通信的任何其它组件任何其它组件或其它元件。系统存储器190可以包含动态随机存取存储器和/或由处理器100可以访问的任何其它类型的介质,以及可以用于存储由处理器100和/或任何其它组件使用或生成的数据和/或指令。例如,如以下描述的,系统存储器190被示出为存储应用程序192,包含应用指令194、应用数据196和应用特定的字符串198。NIC 182可以是用于使得能够在系统190和另一个信息处理系统之间进行通信的任何类型的控制器。
[0016]图2说明了根据本发明的实施例的用于可重复的应用特定的加密密钥获得的方法200。尽管本发明的方法实施例不限制于这个方面,但是可以参照图1的元件以帮助描述图2的方法实施例。
[0017]在方法200的框210中,唯一的数据字符串(诸如应用特定的字符串196)被分配给运行在处理器100上的应用。可以向运行在处理器100上的每个应用(对于该应用而言,需要或期望应用特定的加密密钥)分配根据任何方法生成的它自己的唯一的数据字符串。在框214,在应用特定的字符串196和盐(salt)上执行串联操作。在一个实施例中,盐可以是平台特定的字符串,诸如NIC 182的MAC。
[0018]在框220,在来自框214的串联操作的结果上执行SHA。在一个实施例中,SHA-256算法用于向框224提供256比特的输入。在框224,由加密引擎130在来自框220的SHA输出上执行AES打包。AES打包函数使用根密钥210执行AES操作。
[0019]在框230,在来自框224的AES打包的输出上执行SHA。在一个实施例中,HMAC-SHA-256算法用于提供256比特的应用特定的密钥。任何的HMAC密钥可以用于这个操作。
[0020]框230的SHA操作的输出是密钥,对应用192而言该密钥是唯一的。因为框214、220、224和框230的操作是确定性的,因此应用可以使用方法200反复地生成同样的应用特定的密钥。因此,不需要存储应用特定的密钥。
[0021]在框240,应用特定的密钥可以用于对数据进行加密。在框244,例如可以在应用数据区域196中存储加密的数据。
[0022]在本发明的范围内,可以以不同的顺序、省略说明的框、增加附加的框或利用重新排序的、省略的或增加的框的组合来执行方法200。
[0023]如上所述,本发明的实施例的或实施例的部分可以被存储在任何形式的机器可读介质中。例如,方法200的全部或一部分可以被具体化在软件或固件指令中,该软件或固件指令被存储在处理器100可以读取的介质上,当由处理器100执行软件或固件指令时,软件或固件指令使得处理器100执行本发明的实施例。
[0024]因此,已经描述了用于可重复的应用特定的加密密钥获得的本发明的实施例。尽管已经描述了以及在附图中示出了某些实施例,但是将理解的是,此类实施例仅是说明了而不是限制了本广阔的发明,以及本发明不限制于示出和描述的特定构造和布置,因为在学习了本公开后,本领域的普通技术人员可以想到各种其它修改。在诸如本公开的【技术领域】中,发展是快速的以及进一步的进步不容易预测,在不背离本公开的原理或所附权利要求书的范围的情况下,如由通过启用技术进步所促进的,可以容易地在布置和细节中对本公开的实施例进行修改。
【权利要求】
1.一种处理器,包括: 根密钥; 加密引擎,其使用所述根密钥来执行加密算法,其中所述根密钥仅可以由所述加密引擎来访问;以及 执行硬件,其执行指令以使用所述加密算法来确定性地生成应用特定的加密密钥。
2.根据权利要求1所述的处理器,其中所述根密钥被存储在只读熔丝式存储器中。
3.根据权利要求1所述的处理器,其中所述加密算法是高级加密标准(AES)算法。
4.一种方法,包括: 从应用唯一的字符串获得第一值;以及 由硬件加密引擎使用根密钥来执行加密操作以向应用提供唯一的密钥,所述根密钥仅可以由所述硬件加密引擎来访问。
5.根据权利要求4所述的方法,其中所述加密操作是高级加密标准(AES)操作。
6.根据权利要求4所述的方法,还包括在获得所述第一值之前向所述应用分配所述应用唯一的字符串。
7.根据权利要求4所述的方法,其中获得所述第一值包含使用平台特定的字符串作为盐。
8.根据权利要求7所述的方法,其中获得所述第一值包含串联操作。
9.根据权利要求8所述的方法,其中获得所述第一值包含在所述串联操作的结果上执行安全散列算法。
10.根据权利要求4所述的方法,其中执行所述加密操作以提供所述唯一的密钥包含在所述加密操作的结果上执行安全散列算法。
11.根据权利要求10所述的方法,其中在所述加密操作的所述结果上执行所述安全散列算法包含使用基于散列的消息认证码。
12.根据权利要求4所述的方法,还包括由所述应用使用所述唯一的密钥来对数据进行加密以及在没有所述唯一的密钥的情况下存储所述数据。
13.一种包含指令的机器可读介质,当执行所述指令时,所述指令使得处理器: 从应用唯一的字符串获得第一值;以及 由所述处理器中的硬件加密引擎使用根密钥来执行加密操作以向在所述处理器上运行的应用提供唯一的密钥,所述根密钥仅可以由所述硬件加密引擎来访问。
14.根据权利要求13所述的机器可读介质,其中所述加密操作是高级加密标准(AES)操作。
15.根据权利要求13所述的机器可读介质,还包含指令,所述指令使得所述处理器在获得所述第一值之前向所述应用分配所述应用唯一的字符串。
16.根据权利要求13所述的机器可读介质,其中获得所述第一值包含使用平台特定的字符串作为盐。
17.根据权利要求16所述的机器可读介质,其中获得所述第一值包含串联操作。
18.根据权利要求17所述的机器可读介质,其中获得所述第一值包含在所述串联操作的结果上执行安全散列算法。
19.根据权利要求13所述的机器可读介质,其中执行所述加密操作以提供所述唯一的密钥包含在所述加密操作的结果上执行安全散列算法。
20.根据权利要求19所述的机器可读介质,其中在所述加密操作的所述结果上执行所述安全散列算法包含使用 基于散列的消息认证码。
【文档编号】H04L9/28GK104081712SQ201280069416
【公开日】2014年10月1日 申请日期:2012年2月9日 优先权日:2012年2月9日
【发明者】R.P.班金沃尔, T.克吉尔, J.沃尔克 申请人:英特尔公司

最新回复(0)