使用隱藏的根密鑰的可重復的應用特定的加密密鑰獲得的制作方法
【專利摘要】公開了用于可重復的應用特定的加密密鑰獲得的本發(fā)明的實施例。在一個實施例中,一種處理器包括:根密鑰、加密引擎和執(zhí)行硬件。加密引擎用于使用根密鑰來執(zhí)行加密操作,其中根密鑰僅可以由加密引擎來訪問。執(zhí)行硬件用于執(zhí)行指令以使用加密算法來確定性地生成應用特定的加密密鑰。
【專利說明】使用隱藏的根密鑰的可重復的應用特定的加密密鑰獲得
[0001]
【背景技術】
1.領域
本公開涉及信息處理領域,以及更具體地涉及加密信息領域。
[0002]2.相關技術描述
在信息處理系統(tǒng)中,可以通過對秘密信息進行加密來防止該秘密信息被發(fā)現。私有密鑰加密算法,諸如在來自國家標準與技術研究院的聯(lián)邦信息處理標準197中定義的高級加密標準(“AES”),使用私有密鑰將未加密的信息(“純文本”)轉換成加密信息(“密碼文本”),除非隨后通過使用私有密鑰逆向轉換來解密,否則該加密信息一般無含義。
【專利附圖】
【附圖說明】
[0003]在附圖中通過示例而非限制來說明本發(fā)明。
[0004]圖1說明了根據本發(fā)明的實施例的支持可重復的應用特定的加密密鑰獲得的處理器。
[0005]圖2說明了根據本發(fā)明的實施例的用于可重復的應用特定的加密密鑰獲得的方法。
【具體實施方式】
[0006]描述了用于使用隱藏的根密鑰的可重復的應用特定的加密密鑰獲得的本發(fā)明的實施例。在本說明書中,闡述了許多特定的細節(jié),諸如組件和系統(tǒng)配置,以便提供本發(fā)明的更徹底的理解。然而,本領域的技術人員將了解的是,在沒有此類特定細節(jié)的情況下,可以實踐本發(fā)明。另外,沒有詳細地示出一些眾所周知的結構、電路和其它特征,以避免不必要地使本發(fā)明難于理解。
[0007]如在背景部分中描述的,加密可以用于保護秘密信息。一種類型的秘密信息可以是應用特定的加密密鑰。本發(fā)明的實施例提供用于使用隱藏的根密鑰的可重復的獲得應用特定的加密密鑰。這些實施例提供用于可重復的獲得,以便應用特定的加密密鑰不必與用于加密的數據一起存儲。這些實施例還提供用于在不包括保護隱藏的根密鑰的情況下來執(zhí)行該獲得。
[0008]圖1說明了根據本發(fā)明的實施例的在系統(tǒng)180中的處理器100。處理器100可以是任何類型的處理器,包含通用微處理器,諸如Intel? Core?處理器家族、Intel? Atom?處理器家族中的處理器,或來自Intel?公司的其它處理器家族中的處理器,或來自另一公司的另一處理器,或專用處理器或微控制器。處理器100可以包含任何組合的多線程和多執(zhí)行核心。處理器100包含:根密鑰110、加密引擎120、指令硬件130、執(zhí)行硬件140和控制邏輯150。處理器100還可以包含未在圖1中示出的任何其它的電路、結構或邏輯。
[0009]根密鑰110可以是任何硬件加密密鑰。在一個實施例中,根密鑰110是存儲在熔絲式實現的只讀存儲器中的256比特的密鑰。該只讀存儲器不可以由在處理器100上運行的軟件來訪問。只有加密引擎120可以訪問根密鑰110。
[0010]加密引擎120可以包含任何電路或其它結構以執(zhí)行一個或多個加密算法。在一個實施例中,加密引擎120包含電路以執(zhí)行AES加密、安全散列算法(“SHA”)和/或基于散列的消息認證碼(“HMAC”)生成。
[0011]指令硬件130可以表示任何電路、結構或其它硬件,諸如指令解碼器,以用于取回、接收、解碼和/或調度指令。在本發(fā)明的范圍內,可以使用任何指令格式;例如,指令可以包含操作碼和一個或多個操作數,其中操作碼可以被解碼成用于由執(zhí)行硬件140執(zhí)行的一個或多個微指令或微操作。
[0012]在一個實施例,指令硬件130可以被設計為接收一個或多個指令以安全或隔離的執(zhí)行模式來支持處理器100的操作,其中對特定系統(tǒng)資源的訪問可以由諸如測量的虛擬機監(jiān)視器的可信軟件來控制。在這個實施例中,對加密引擎120的訪問可以限制于在安全或隔離的執(zhí)行模式內進行操作的軟件。在其它實施例中,可以使用任何其它方法以隱藏或保護根密鑰110。在一個實施例中,根密鑰110僅可以由AES打包(wrap)操作(AES打包操作完全地由加密引擎120來執(zhí)行)來訪問,以及不會由任何其它硬件或軟件可觀察到。
[0013]執(zhí)行硬件140可以包含任何電路、結構或其它硬件,諸如算術單元、邏輯單元、浮點單元、移位器等,以用于處理數據和執(zhí)行指令、微指令和/或微操作。
[0014]控制邏輯150可以包含任何電路、邏輯或其它結構,包含微代碼、狀態(tài)機邏輯和可編程邏輯,以控制:處理器100的單元和其它元件的操作以及在處理器100內的數據傳遞、將數據傳遞到處理器100中和從處理器100傳遞數據??刂七壿?50可以使得處理器100執(zhí)行或參與執(zhí)行本發(fā)明的方法實施例,諸如以下描述的方法實施例,例如通過使得處理器100使用執(zhí)行硬件140、加密引擎120和/或任何其它資源以執(zhí)行由指令硬件130接收的執(zhí)行指令和由指令硬件130接收的指令獲得的微指令或微操作。
[0015]系統(tǒng)180還可以包含:系統(tǒng)存儲器190、網絡接口控制器(“NIC”)182以及通過任何數量的總線、點到點、或其它有線或無線連接相互連接、耦合或以其它方式相同通信的任何其它組件任何其它組件或其它元件。系統(tǒng)存儲器190可以包含動態(tài)隨機存取存儲器和/或由處理器100可以訪問的任何其它類型的介質,以及可以用于存儲由處理器100和/或任何其它組件使用或生成的數據和/或指令。例如,如以下描述的,系統(tǒng)存儲器190被示出為存儲應用程序192,包含應用指令194、應用數據196和應用特定的字符串198。NIC 182可以是用于使得能夠在系統(tǒng)190和另一個信息處理系統(tǒng)之間進行通信的任何類型的控制器。
[0016]圖2說明了根據本發(fā)明的實施例的用于可重復的應用特定的加密密鑰獲得的方法200。盡管本發(fā)明的方法實施例不限制于這個方面,但是可以參照圖1的元件以幫助描述圖2的方法實施例。
[0017]在方法200的框210中,唯一的數據字符串(諸如應用特定的字符串196)被分配給運行在處理器100上的應用。可以向運行在處理器100上的每個應用(對于該應用而言,需要或期望應用特定的加密密鑰)分配根據任何方法生成的它自己的唯一的數據字符串。在框214,在應用特定的字符串196和鹽(salt)上執(zhí)行串聯(lián)操作。在一個實施例中,鹽可以是平臺特定的字符串,諸如NIC 182的MAC。
[0018]在框220,在來自框214的串聯(lián)操作的結果上執(zhí)行SHA。在一個實施例中,SHA-256算法用于向框224提供256比特的輸入。在框224,由加密引擎130在來自框220的SHA輸出上執(zhí)行AES打包。AES打包函數使用根密鑰210執(zhí)行AES操作。
[0019]在框230,在來自框224的AES打包的輸出上執(zhí)行SHA。在一個實施例中,HMAC-SHA-256算法用于提供256比特的應用特定的密鑰。任何的HMAC密鑰可以用于這個操作。
[0020]框230的SHA操作的輸出是密鑰,對應用192而言該密鑰是唯一的。因為框214、220、224和框230的操作是確定性的,因此應用可以使用方法200反復地生成同樣的應用特定的密鑰。因此,不需要存儲應用特定的密鑰。
[0021]在框240,應用特定的密鑰可以用于對數據進行加密。在框244,例如可以在應用數據區(qū)域196中存儲加密的數據。
[0022]在本發(fā)明的范圍內,可以以不同的順序、省略說明的框、增加附加的框或利用重新排序的、省略的或增加的框的組合來執(zhí)行方法200。
[0023]如上所述,本發(fā)明的實施例的或實施例的部分可以被存儲在任何形式的機器可讀介質中。例如,方法200的全部或一部分可以被具體化在軟件或固件指令中,該軟件或固件指令被存儲在處理器100可以讀取的介質上,當由處理器100執(zhí)行軟件或固件指令時,軟件或固件指令使得處理器100執(zhí)行本發(fā)明的實施例。
[0024]因此,已經描述了用于可重復的應用特定的加密密鑰獲得的本發(fā)明的實施例。盡管已經描述了以及在附圖中示出了某些實施例,但是將理解的是,此類實施例僅是說明了而不是限制了本廣闊的發(fā)明,以及本發(fā)明不限制于示出和描述的特定構造和布置,因為在學習了本公開后,本領域的普通技術人員可以想到各種其它修改。在諸如本公開的【技術領域】中,發(fā)展是快速的以及進一步的進步不容易預測,在不背離本公開的原理或所附權利要求書的范圍的情況下,如由通過啟用技術進步所促進的,可以容易地在布置和細節(jié)中對本公開的實施例進行修改。
【權利要求】
1.一種處理器,包括: 根密鑰; 加密引擎,其使用所述根密鑰來執(zhí)行加密算法,其中所述根密鑰僅可以由所述加密引擎來訪問;以及 執(zhí)行硬件,其執(zhí)行指令以使用所述加密算法來確定性地生成應用特定的加密密鑰。
2.根據權利要求1所述的處理器,其中所述根密鑰被存儲在只讀熔絲式存儲器中。
3.根據權利要求1所述的處理器,其中所述加密算法是高級加密標準(AES)算法。
4.一種方法,包括: 從應用唯一的字符串獲得第一值;以及 由硬件加密引擎使用根密鑰來執(zhí)行加密操作以向應用提供唯一的密鑰,所述根密鑰僅可以由所述硬件加密引擎來訪問。
5.根據權利要求4所述的方法,其中所述加密操作是高級加密標準(AES)操作。
6.根據權利要求4所述的方法,還包括在獲得所述第一值之前向所述應用分配所述應用唯一的字符串。
7.根據權利要求4所述的方法,其中獲得所述第一值包含使用平臺特定的字符串作為鹽。
8.根據權利要求7所述的方法,其中獲得所述第一值包含串聯(lián)操作。
9.根據權利要求8所述的方法,其中獲得所述第一值包含在所述串聯(lián)操作的結果上執(zhí)行安全散列算法。
10.根據權利要求4所述的方法,其中執(zhí)行所述加密操作以提供所述唯一的密鑰包含在所述加密操作的結果上執(zhí)行安全散列算法。
11.根據權利要求10所述的方法,其中在所述加密操作的所述結果上執(zhí)行所述安全散列算法包含使用基于散列的消息認證碼。
12.根據權利要求4所述的方法,還包括由所述應用使用所述唯一的密鑰來對數據進行加密以及在沒有所述唯一的密鑰的情況下存儲所述數據。
13.一種包含指令的機器可讀介質,當執(zhí)行所述指令時,所述指令使得處理器: 從應用唯一的字符串獲得第一值;以及 由所述處理器中的硬件加密引擎使用根密鑰來執(zhí)行加密操作以向在所述處理器上運行的應用提供唯一的密鑰,所述根密鑰僅可以由所述硬件加密引擎來訪問。
14.根據權利要求13所述的機器可讀介質,其中所述加密操作是高級加密標準(AES)操作。
15.根據權利要求13所述的機器可讀介質,還包含指令,所述指令使得所述處理器在獲得所述第一值之前向所述應用分配所述應用唯一的字符串。
16.根據權利要求13所述的機器可讀介質,其中獲得所述第一值包含使用平臺特定的字符串作為鹽。
17.根據權利要求16所述的機器可讀介質,其中獲得所述第一值包含串聯(lián)操作。
18.根據權利要求17所述的機器可讀介質,其中獲得所述第一值包含在所述串聯(lián)操作的結果上執(zhí)行安全散列算法。
19.根據權利要求13所述的機器可讀介質,其中執(zhí)行所述加密操作以提供所述唯一的密鑰包含在所述加密操作的結果上執(zhí)行安全散列算法。
20.根據權利要求19所述的機器可讀介質,其中在所述加密操作的所述結果上執(zhí)行所述安全散列算法包含使用 基于散列的消息認證碼。
【文檔編號】H04L9/28GK104081712SQ201280069416
【公開日】2014年10月1日 申請日期:2012年2月9日 優(yōu)先權日:2012年2月9日
【發(fā)明者】R.P.班金沃爾, T.克吉爾, J.沃爾克 申請人:英特爾公司