專利名稱:受信移動平臺體系結構的制作方法
技術領域:
本發明總地涉及電子數據處理,并且更具體地,涉及受信移動平臺體系結構。
背景無線移動設備(例如蜂窩電話、個人數字助理(PDA)等)通常是尺寸小、未系縛的,并且因此易于遺失。正如這樣的設備易于遺失,它們也易于偷竊。由于這些設備被偷竊的傾向性,它們容易受到篡改。此外,構建低功率設備的最低限度途徑常常使得這些嵌入式系統(在操作系統和硬件方面)過分簡單,這又使得它們在有惡意的使用者和/或應用的控制下是易受傷害的。使用者依賴于這些設備用于有價值的用途。特別地,在這樣的設備中,使用者儲存著諸如收據(receipt)、信用卡號、地址、電話號碼、機密文檔等的機密信息。因此,由于這些設備能夠被輕易地攻擊,它們正日益成為竊賊的首要目標。因此,存在著確保設備完整性(包括儲存在其中的應用和數據)的需要。
附圖簡要說明通過參照以下描述和示出實施方案的附圖可以最好地理解本發明的這些實施方案。被包括在本文中的對圖的編號方案是這樣的,即圖中給定參考號的首個數字與該圖號相關聯。例如,受信移動計算設備100可以位于
圖1中。然而,對于在不同圖中相同的部件來說參考號是相同的。在附圖中圖1根據本發明的一個實施方案,示出具有受信平臺體系結構的移動計算設備的簡化功能框圖。
圖2根據本發明的一個實施方案,示出受信移動計算設備中的密碼處理器的簡化功能框圖。
圖3根據本發明的一個實施方案,示出受信移動計算設備中密碼處理器中的密鑰緩存中的項的一個實施方案。
圖4根據本發明的一個實施方案,示出用于與密碼處理器的接口的操作的流程圖。
圖5根據本發明的一個實施方案,示出密碼處理器的初始化的流程圖。
圖6A根據本發明的一個實施方案,示出密碼處理器內安全操作的流程圖。
圖6B根據本發明的一個實施方案,示出在密碼處理器中使用密碼密鑰的密碼操作的執行的流程圖。
圖7根據本發明的一個實施方案,示出更新密碼處理器中的微碼的流程圖。
圖8根據本發明的一個實施方案,示出其中具有密碼操作的受信移動通信設備可以工作的系統配置的簡化功能框圖。
詳細描述描述了用于受信移動平臺體系結構的方法、裝置以及系統。在以下描述中,闡述了大量的具體細節。然而,可以理解,無需使用這些具體細節可以實現本發明。此外,公知電路、結構和技術沒有詳細示出,以免模糊對本發明的理解。
本詳細描述被分成三個部分。在第一部分中,介紹了硬件體系結構。在第二部分中,描述了受信(trusted)和密碼(cryptographic)操作。在第三部分中,描述了系統操作環境。
硬件體系結構圖1根據本發明的一個實施方案,示出具有受信平臺體系結構的移動計算設備的簡化功能框圖。具體來說,圖1示出可以代表多種不同類型的移動計算設備(例如蜂窩電話、PDA等等)的受信移動計算設備100。受信移動計算設備100包括耦合在一起的芯片上系統(system-on-a-chip)102、顯示器103、觸摸板104以及天線105。顯示器可以是多種觀察設備,例如液晶顯示(LCD)屏等等。觸摸板104可以被用來接收來自受信移動計算設備100的用戶的輸入。例如,觸摸板104可以是數值(numeric)觸摸板、鍵盤等等。盡管未示出,但是受信移動計算設備100可以包括多個其他外設,例如用于輸入和輸出來自用戶的音頻數據的音頻輸入/輸出(I/O)邏輯等等。
芯片上系統102可以是單個芯片,其中,本文描述的組件(component)位于例如同一半導體襯底(substrate)中。可替換地,芯片上系統102可以是多個這樣的芯片,所述多個芯片用環氧樹脂粘合在一起。
芯片上系統102包括應用處理器106、受信引導只讀存儲器(ROM)108、通信邏輯110、控制器112、非易失性存儲器控制器114、非易失性存儲器116、易失性存儲器控制器118、易失性存儲器120、圖形邏輯122、直接存儲器訪問(DMA)邏輯124、密碼處理器(cryptographic processor)126、外設邏輯128、聯合測試工作組(JTAG)接口155和總線130。應用處理器106、受信引導ROM 108、通信邏輯110、控制器112、非易失性存儲器控制器114、非易失性存儲器116、易失性存儲器控制器118、圖形邏輯122、JTAG接口155和DMA邏輯124被耦合到總線130。因此,總線130提供這些組件之間的通信。顯示器103和觸摸板104通過外設邏輯128耦合到芯片上系統102。
天線105被耦合到通信邏輯110。通信邏輯110提供進入和離開受信移動計算設備100的I/O的接收與傳輸。例如,通信邏輯110可以使用天線105來對進入和離開受信移動計算設備100的無線通信(communication)進行發送與接收。天線105可以是貼片、單極、雙極、波束、陣列或定向天線等等。如下進一步描述的,天線105可以接收導致應用處理器106生成用于加密操作的一條或更多條原語指令(primitive instruction)的通信。這些原語指令可以被傳輸到密碼處理器126,以供執行。此外,天線105可以輸出與由密碼處理器126完成的密碼操作相關的通信。
在一些實施方案中,通信邏輯110可以包括為受信移動計算設備100建立特定通信標準的基帶處理器(例如數字信號處理器)。通信邏輯110可以是無線接口。例如,如果受信移動計算設備100是蜂窩電話,則通信邏輯110為受信移動計算設備100提供無線接口——蜂窩網絡接口。僅僅作為一些實施例,對于這些無線接口,基帶處理器可以建立碼分多址(CDMA)蜂窩無線電話通信系統,或者寬帶CDMA(W-CDMA)無線電話通信系統。作為歐洲電信標準協會(ETSI)對國際電信聯盟(ITU)提出的針對用于未來公共陸地移動電信系統(FPLMTS)的國際移動電信(IMT)-2000的建議,已經明確建議將W-CDMA作為第三代(“3G”)的解決方案。基帶處理器可以建立其他電信標準,例如全球移動通信系統(GSM),ETSI,5.0.0版(1995年12月);或者通用分組無線業務(GPRS)(GSM 02.60,6.1版),ETSI,1997。
在將控制轉移到要在應用處理器106中執行的操作系統之前,受信引導ROM 108儲存由應用處理器106執行的代碼。如下面進一步描述的,這樣的代碼導致多項信任操作的執行(使用密碼處理器126),以確保操作系統的完整性。在下列2003年12月22日遞交、標題為“Securing anElectronic Device(保護電子設備)”的共同待審定、共同轉讓的美國專利申請No.10/745,496中描述了受信引導操作的更詳細的描述。JTAG接口155提供到受信移動計算設備100的調試接口。
非易失性存儲器116可以是任何多種不同類型的非易失性可寫存儲器,例如閃存(FLASH)存儲器等等。易失性存儲器120可以是任何多種不同類型的易失性可寫存儲器,例如隨機訪問存儲器(RAM)(例如同步動態RAM(SDRAM)、DRAM、DDR-SDRAM等)等等。
非易失性存儲器控制器114被耦合到非易失性存儲器116。易失性存儲器控制器118被耦合到易失性存儲器120。從而,耦合到總線130的組件可以分別通過非易失性存儲器控制器114和易失性存儲器控制器118來與非易失性存儲器116和易失性存儲器120通信。密碼處理器126和外圍設備邏輯128通過DMA邏輯124耦合到總線130。耦合到總線130的組件可以通過DMA邏輯124來與密碼處理器126和外圍設備邏輯128通信。
密碼處理器126還通過私用(private)接口,分別經由非易失性存儲器控制器114和易失性存儲器控制器118直接耦合到非易失性存儲器116和易失性存儲器120。如所示出的,受信計算設備100中的其他組件(例如應用處理器106)可以不通過這些私用接口來訪問非易失性存儲器116和易失性存儲器120。此外,密碼處理器126和應用處理器106可以通過總線130(公用(public)接口)來訪問非易失性存儲器116和易失性存儲器120。
密碼處理器126可以將易失性存儲器120劃分成至少兩個不同的部分(公用部分和私用部分)。此外,只有密碼處理器126可以訪問易失性存儲器120的私用部分中的地址空間。此外,受信移動計算設備100中的不同組件可以訪問易失性存儲器120的公用部分中的地址空間。這樣的配置允許私用部分被用于安全/受信使用,并且阻止應用處理器106訪問該部分。因此,如果在應用處理器106上執行病毒和/或惡意代碼,則該代碼可以不破壞易失性存儲器120的私用部分。從而,密碼處理器126可以使用該私用部分來安全地儲存要用于在其中執行的操作的已加密密鑰等。
如下進一步描述,密碼處理器126包括受保護的儲存裝置和多個不同的功能單元。密碼處理器126可以提供與受信移動計算設備100相關聯或在受信移動計算設備100中執行的硬件、軟件、配置數據等的認證。例如,作為受信移動計算設備100的初始化的部分,密碼處理器126可以執行橫貫(across)應用的代碼的密碼哈希,并且將該哈希與被安全地儲存在受信移動計算設備100中的已簽名證書進行比較。此外,密碼處理器126還在受信移動計算設備100的操作期間提供不同的密碼操作。例如,密碼處理器126可以生成密碼密鑰、執行不同類型的加密與解密、生成哈希、數字簽名等等。
應用處理器106可以在第一操作上下文(context)中,而密碼處理器126可以在第二操作上下文中。第一操作上下文和第二操作上下文可以互相獨立。如下進一步的描述,應用處理器106可以執行驅動器(用于密碼處理器126),所述驅動器(通過DMA邏輯124)在應用處理器106和密碼處理器126上執行的應用之間提供接口。該驅動器從控制應用處理器106的操作系統中接收用于不同安全服務(認證、信任、加密、解密等等)的請求。驅動器可以基于安全服務請求生成一個或更多個原語指令。然后,這些原語指令被發布給密碼處理器126以供執行。此外,密碼處理器126可以(通過DMA邏輯124從非易失性存儲器116和/或易失性存儲器120)取得數據,基于原語指令對所述數據進行執行操作。密碼處理器126可以基于原語指令對所取得的數據執行密碼操作。
下面結合圖4、5、6A-6B闡述了受信移動計算設備100的操作的更詳細的描述。
圖2根據本發明的一個實施方案,示出受信移動計算設備內的密碼處理器的簡化功能框圖。具體來說,圖2示出密碼處理器126的一個實施方案的更詳細的框圖。
密碼處理器126包括DMA接口202、指令序列緩沖區204、控制器206、微碼存儲器240、補丁標志(patch flag)存儲器281、控制寄存器組208、上下文儲存裝置/平臺配置寄存器210、狀態寄存器212、中間儲存裝置214、輸出緩沖區216、輸入緩沖區218、內部易失性存儲器220、算術邏輯單元(ALU)222、數據加密標準(DES)單元224、消息摘要(MD)單元226、隨機數生成器(RNG)單元228、安全哈希算法(SHA)單元230、高級加密標準(AES)單元232和冪運算單元234。因此,密碼處理器126包括多個不同的功能單元(包括多個不同的密碼單元)(ALU 222、DES單元224、MD單元226、RNG單元228、SHA單元230、AES單元232和冪運算單元234)。
雖然微碼存儲器240可以是不同類型的存儲器,但是在一個實施方案中,微碼存儲器240是只讀存儲器(ROM)。內部易失性存儲器220可以是任何類型的易失性可寫存儲器,例如隨機訪問存儲器(RAM)(例如同步動態RAM(SDRAM)、DRAM、DDR-SDRAM等等)等。如示出的,內部易失性存儲器220儲存密鑰緩存(cache)221、根加密密鑰(rootencryption key)241和計數器215。密鑰緩存221可以儲存多個不同的受保護密鑰,所述受保護密鑰可以是數據加密密鑰和/或(用于加密數據加密密鑰的)密鑰加密密鑰。下面結合圖3更詳細地描述密鑰緩存221的一個實施方案。
補丁標志存儲器281可以是多種不同類型的易失性可寫存儲器中的任何一種,例如隨機訪問存儲器(RAM)(例如同步動態RAM(SDRAM)、DRAM、DDR-SDRAM等等)等。如下面進一步描述的,補丁標志存儲器281可以儲存對應于微碼存儲器240中的段(segment)的補丁標志。給定補丁標志指示微碼存儲器240的給定段是否已被修補。下面更詳細地描述對補丁標志的使用的更詳細描述。
DMA接口202被耦合,以接收和傳輸進入和出自密碼處理器126的數據。DMA接口202耦合到指令序列緩沖區204、控制寄存器組208、上下文儲存裝置/PCR 210、狀態寄存器212、輸出緩沖區216和輸入緩沖區218。
指令序列緩沖區204儲存從應用處理器106接收的原語指令。控制器206可以從指令序列緩沖區204取得(retrieve)給定原語指令,并且可以從微碼存儲器240中取得相關聯的一條或多條微碼指令。這些微碼指令可以包括要在密碼處理器126中完成的一連串操作。例如,一條指令可以導致控制器206從易失性存儲器120取得已加密的數據加密密鑰。一條不同的指令可以導致控制器206將該密鑰傳輸到功能單元中的一個以供解密。另一條指令可以導致已解碼的數據加密密鑰被傳輸到不同的功能單元,以完成密碼操作。這一連串微碼指令的輸出可以被儲存到輸出緩沖區216中。接著,(密碼處理器126的)驅動器(driver)可以取得該輸出。下面闡述了這些操作的更詳細的描述。
SHA單元230可以用于生成并驗證密碼哈希(hash)。SHA單元230可以進行SHA-1操作,以及基于SHA的HMAC計算。冪運算單元234可以用于進行多項不同運算操作的加速。例如,冪運算單元234可以用于針對不同類型的加密標準(例如Riverst、Shaman和Adelman(RSA))完成非對稱加密和解密、簽署、簽名的驗證等等。為了圖示說明,冪運算單元234可以進行模冪、求模化簡、乘法、加法、減法等等。
AES單元232可以完成多種不同類型的加密(對稱,非對稱)。AES單元232可以基于可變的輪數(number of rounds)進行加密,所述輪數取決于加密密鑰長度。AES單元232可以支持128位(bit)、192位和256位的密鑰長度,所述128位(bit)、192位和256位的密鑰長度分別產生10輪、12輪和14輪加密。AES單元232可以用于以不同的密鑰(被稱為密鑰加密密鑰)加密數據加密密鑰。
這樣的操作使得在易失性存儲器220的密鑰緩存221中數據加密密鑰的安全儲存能夠進行。可以用加密密鑰層級來配置密碼處理器126。例如,AES單元232可以用密鑰加密密鑰來加密數據加密密鑰。AES單元232可以用根加密密鑰241來加密密鑰加密密鑰。當數據加密密鑰和密鑰加密密鑰呈已加密格式時,它們可以被儲存到在密碼處理器126外部的存儲器(例如易失性存儲器116,非易失性存儲器120)中。為了確保安全性,根加密密鑰241不對外暴露給密碼處理器126。
DES單元224可以進行多種不同類型的加密和解密。例如,DES單元224可以基于64位密鑰加密和解密64位數據塊。MD單元226可以基于多種不同的標準生成哈希(消息摘要)。例如,MD單元226可以基于MD-5、MD-4等生成哈希。MD單元226可以接收具有任意長度的消息塊,并生成128位的摘要。MD單元226還可以進行密鑰哈希消息認證碼(HMAC)操作。
ALU 222可以為信任和加密操作進行多項不同的運算和邏輯操作。例如,ALU 222可以進行加法、減法、乘法、除法、位對齊、移位操作、不同的邏輯功能(例如AND,OR,XOR等等)等。
RNG單元228可以進行不同類型隨機數的生成。RNG單元228可以使用線性反饋移位寄存器(LFSR)來生成隨機位序列。此外,LFSR的輸出可以被傳遞通過SHA單元230,以獲得額外的隨機化。
控制寄存器組208可以儲存用于控制密碼處理器126的數據。因此,在密碼處理器126外部的組件可以將數據儲存在與密碼處理器126的控制和配置有關的控制寄存器組208中。上下文儲存裝置/PCR 210可以儲存與受信移動計算設備100有關的上下文和配置數據。例如,上下文儲存裝置/PCR 210可以儲存來自信任操作的密碼哈希,所述信任操作與在應用處理器106上執行的不同應用的認證有關。狀態寄存器212可以用于儲存關于密碼處理器126內給定操作的狀態、不同功能單元的狀態等等。中間儲存裝置214可以用于儲存要被輸入到不同功能單元的中間結果,所述中間結果可以是來自一個功能單元的輸出。
輸入緩沖區218可以儲存數據,針對所述數據執行給定操作。例如,如果對于給定原語指令,要橫貫應用的代碼執行密碼哈希,則將所述代碼儲存在輸入緩沖區218中。
如示出的,密碼處理器126包括多個功能單元(包括多個不同的密碼單元)和不同的易失性儲存裝置。此外,密碼處理器126可以完成多項不同的操作,其中中間結果是安全的。如下面進一步描述的,控制器206可以控制這些不同功能單元的操作,以及這些不同功能單元之間的數據流。
如將被描述的,密碼處理器126允許通過提供其中操作的原子性(atomicity)和/或完整性來允許安全的操作。操作的原子性被定義,從而其中的外向(outgoing)操作不會被預占(preempted),并且因此被執行直至完成。操作的完整性被定義,從而密碼處理器126規定中間數據和結果的不透明性。密碼處理器126工作為受信移動計算設備100的核心(core),用于創建更高級的安全性服務。這樣的服務可以包括安全儲存、安全或已加密通信的受信執行加速、隨機數生成等等。
密碼處理器126可以工作在非受保護模式和受保護模式兩種模式下。在非受保護模式下,密碼處理器126可以工作為用于加密和解密的非安全硬件加速器。例如,密碼處理器126可以接收請求,以對在應用處理器106上執行的應用進行整體加密(bulk encryption)操作。在受保護模式下,密碼處理器126可以進行多項不同的安全原子操作。在下面闡述了這些操作更詳細的描述。
圖3根據本發明的一個實施方案,示出受信移動計算設備內密碼處理器中密鑰緩存中的項(entry)的一個實施方案。具體來說,圖3示出易失性存儲器220的密鑰緩存221中的項的一個實施方案。密鑰緩存221可以包括一個到多個項,所述項包括受保護的密碼密鑰312和頭部300。頭部提供對密鑰使用的多個不同的標識(identification)以及限制。
如示出的,頭部300包括標識302、保護標識304和多個標志306。所述多個標志306包括單元類型308和使用類型310。標識302可以是標識受保護的密碼密鑰312的字母數字值。密碼處理器126中的不同功能單元和/或控制器206可以使用標識302來訪問受保護的密碼密鑰312。保護標識304可以是標識用于加密該受保護的密碼密鑰312的密鑰加密密鑰的字母數字值。如果受保護的密碼密鑰312是數據加密密鑰,則保護標識304可以是針對密鑰加密密鑰中一個的標識。如果受保護的密碼密鑰312是密鑰加密密鑰,則保護標識304可以是根加密密鑰241。
單元類型308標識密碼處理器126中可以訪問受保護的密碼密鑰312的一個或更多個功能單元。此外,如果原語指令導致試圖使功能單元訪問未被單元類型308標識的給定受保護密碼密鑰312的微碼指令的生成,則訪問被拒絕,并且密碼處理器126可以向請求該執行的應用返回錯誤信息(error)。使用類型310標識可以使用受保護的密碼密鑰312來執行的一種或更多種類型的操作。操作類型可以包括簽署、加密儲存、證明身份密鑰(AIK)操作等等。
受信和密碼操作現在描述受信和密碼操作的更詳細的描述。圖4根據本發明的一個實施方案,示出用于與密碼處理器的接口的操作的流程圖。具體來說,圖4示出在應用處理器106上執行以與密碼處理器126接口的(用于密碼處理器126的)驅動器的操作的流程圖400。
在框402,接收對受信或密碼操作的安全服務請求。參照圖1的實施方案,在應用處理器106上執行的驅動器接收對受信或密碼操作的安全服務請求。例如,該驅動器可以從在應用處理器106上執行的操作系統或其他應用接收該安全服務請求。安全服務請求可以是用于認證應用、硬件、配置信息等的信任操作。安全服務請求可以針對密碼操作(例如哈希、密鑰生成、加密、解密等等)。控制在框404處繼續。
在框404,基于安全服務請求生成至少一條原語指令。參照圖1的實施方案,用于密碼處理器126的驅動器基于安全服務請求生成至少一條原語指令。例如,安全服務請求可以包括一項到多項不同的密碼操作。從而,驅動器可以為不同的操作生成原語指令。控制在框406處繼續。
在框406,將一條或多條原語指令傳輸到密碼處理器。參照圖1的實施方案,用于密碼處理器126的驅動器將一條或多條原語指令傳輸到密碼處理器126。驅動器通過DMA邏輯124進行該傳輸操作。控制在框408處繼續。
在框408,從密碼處理器中接收一條或多條原語指令的結果。參照圖1的實施方案,密碼處理器126通過輸出緩沖區216(使用DMA接口202)將一條或多條原語指令的結果傳輸回用于密碼處理器126的驅動器。例如,如果原語指令與用于給定應用的認證的信任操作有關,則結果可以是指示應用是否被認證的布爾(Boolean)值。在另一個實施例中,如果原語指令是對解密操作的請求,則結果可以是指示解密操作是否成功以及該解密的結果被儲存在何處或該解密的結果的布爾值。在不同的實施例中,如果原語指令是對隨機數的請求,則結果可以包括隨機數。流程圖400的操作完成。
現在描述密碼處理器126對原語指令的處理的更詳細的描述。圖5根據本發明的一個實施方案,示出密碼處理器的初始化的流程圖。具體來說,在實施方案中,流程圖500示出在密碼處理器126中的操作執行之前所完成的那些操作。成功執行流程圖500的操作之后,密碼處理器126處于受信狀態。
在框502,進行驗證操作來確保RNG單元228正生成適當的隨機數。參照圖2的實施方案,控制器206執行該驗證操作。這樣的驗證可以包括向RNG單元228請求隨機數的一連串請求。例如,控制器206可以使用從FIPS 140針對隨機性指定的測試來驗證從那里輸出的不同隨機數是不同的并且具有隨機值。控制在框504處繼續。
在框504,進行驗證操作來確保計數器處于適當的狀態。計數器可以是單調計數器,所述單調計數器是僅在一個方向(例如向上)計數的軟件或硬件計數器。計數器可以用于事務中和認證協議中,以確保消息被重放(replay)或者被使用多于一次。參照圖2的實施方案,控制器206進行計數器215的該驗證操作。計數器215的值可以被儲存在非易失性存儲器116中的被加密狀態文件中。因此,該驗證操作可以包括從非易失性存儲器116中讀取已加密狀態文件以確保計數器215的該值未曾被遞減,以及算術校驗(arithmeticcheck),以確保計數器215的該值未處于它的上界(upper range)。控制在框506處繼續。
在框506,進行驗證操作來確保功能單元正生成適當的結果。參照圖2的實施方案,控制器206進行該驗證操作。該驗證操作可以包括在不同功能單元中執行不同的操作以及對這些操作的輸出的驗證。例如,控制器206可以命令DES單元224對不同數據進行一連串的加密操作。接著,控制器206可以命令DES單元224解密這些數據。控制器206可以命令ALU 222將這些操作之前的數據與這些操作之后的數據進行比較。可以進行功能單元的其他類型的驗證操作。例如,功能單元可以接收標準測試輸入,并且可以將來自那里的輸出與來自給定標準(例如國家標準技術研究所(NIST)提出的聯邦信息處理標準(FIPS))的公開發表的值進行比較。控制在框508處繼續。
在框508,進行易失性存儲器的驗證。參照圖2的實施方案,控制器206可以驗證易失性存儲器120和/或易失性存儲器220。該驗證可以包括確定易失性存儲器未包括儲存在其中的數據。另一個驗證可以包括翻轉其中的位,以驗證數據可以被適當地儲存在其中。流程圖500的操作完成。
圖6A根據本發明的一個實施方案,示出密碼處理器內安全操作的流程圖。
在流程圖600的框602中,接收原語指令和/或相關聯的數據。參照圖1的實施方案,密碼處理器126從用于密碼處理器126的(在應用處理器106上執行的)驅動器接收原語指令。如上所述,這些原語指令可以用于不同類型的安全操作,例如信任操作、密碼操作等等。參照圖2的實施方案,密碼處理器126通過DMA接口202接收原語指令,并且將該指令儲存在指令序列緩沖區204中。
此外,對于多個這樣的指令,密碼處理器126可以接收用于原語指令的相關聯數據。參照圖2的實施方案,密碼處理器126通過DMA接口202將相關聯數據接收到輸入緩沖區218中。例如,如果原語指令與認證要在應用處理器106中執行的應用(例如用于應用處理器106的操作系統)的信任操作有關,則相關聯的數據是用于所述應用的代碼,所述代碼從非易失性存儲器116中取得(retrieve)。
為了進一步圖示說明,密碼處理器126可以被用來加密機密或需要被保護以避免修改的數據。因此,這樣的操作可以被受信移動計算設備100用來保護文件不被其他應用或受信移動計算設備100的使用修改或查看。此外,密碼處理器126可以被用在是數字版權運動的部分的受信移動計算設備100中,以保護內容和數字版權(許可)對象。因此,密碼處理器126可以被用來解密移動圖像專家組(MPEG)音頻層3(MP3)文件,所述文件已經根據數字版權運動受到數字化保護。
這樣的數據的另一個實施例可以包括用于整體解密(bulk decryption)操作的數據,其中,所述數據從遠程設備(例如不同的移動設備、服務器等等)接收到受信移動計算設備100。相關聯的數據可以包括要連同公鑰被加密的數據,所述公鑰用來進行解密操作。
密碼處理器126可以通過非易失性存儲器116和/或易失性存儲器120的公共接口來接收用于原語指令的相關聯數據。回到流程圖600,控制在在框604處繼續。
在框604,取得用于原語指令的微碼指令。參照圖2的實施方案,控制器206從微碼存儲器240取得用于原語指令的微碼指令。給定的原語指令可以包括一條到多條不同的微碼指令。例如,如果原語指令要基于對應用的已簽署證書與密碼哈希的比較來認證應用,則微碼指令可以包括從非易失性存儲器116取得已簽署證書的指令。另一條微碼指令可以包括從非易失性存儲器116取得加密密鑰,所述加密密鑰用于密碼哈希。另一條微碼指令可以包括將加密密鑰移動到SHA單元230的移動操作,而不同的微碼指令可以命令SHA單元230進行所述密碼哈希。另一條微碼指令可以包括將密碼哈希的結果和已簽署證書移動到ALU 22的移動操作,而不同的微碼指令可以命令ALU 222執行這兩個值的比較。另一條微碼指令可以導致比較操作的結果被儲存在輸出緩沖區216中(所述結果被傳輸回應用處理器106)。
如所描述的,給定原語指令可以包括一連串微碼指令。因此,用于給定原語指令的中間結果對于在密碼處理器126外部的組件來說是不透明的。回到流程圖600,控制在框606處繼續。
在框606,確定在密碼處理器中是否基于用于該原語指令的微碼指令進行敏感操作。參照圖2的實施方案,控制器206作出該確定。敏感操作的實施例可以包括使用根加密密鑰241的任何操作、使用(密鑰緩存221中的)任何受保護密鑰的任何操作和/或訪問計數器215或任何平臺配置寄存器210的任何操作。確定在密碼處理器中未基于用于該原語指令的微碼指令執行敏感操作后,控制在框610處繼續,這在下面更詳細地描述。
在框608,確定在密碼處理器中基于用于該原語指令的微碼指令執行敏感操作后,確定密碼處理器是否處于受信狀態。參照圖2的實施方案,控制器206作出該確定。在實施方案中,如果密碼處理器126未被適當地初始化(如上面結合圖4的流程圖400所描述的),則密碼處理器126可能未處于受信狀態。如果曾執行非法操作,則密碼處理器126可能未處于受信狀態。非法操作的實施例可以是當數據被嘗試從一個位置不適當地移動到第二個位置時進行的操作(如本文關于數據移動約束的描述)。如果認證失敗,或者如果密鑰未被適當地加載到密碼單元中,或者如果與原語指令502相關聯的參數未在合適范圍內等等,則密碼處理器126也可能未處于受信狀態。在加載密鑰期間使用認證,并且使用口令(password)和兩個隨機數來組成HMAC-SHA計算,其中一個隨機數由密碼處理器126生成并且另一個隨機數由應用或用戶生成。HMAC計算還可以包括來自原語指令502的值或要被加載的密鑰的屬性。
在一些實施方案中,希望將密碼密鑰加載到密碼處理器126的一個功能單元中以供執行的應用使用用于所述密鑰的口令來計算HMAC。應用可以具有口令的先驗知識。例如,當密鑰被創建時,應用可以設置密碼。應用可以將期望的HMAC計算結果作為參數提供給原語指令502。密碼處理器126還生成HMAC計算,并且將它的結果與原語指令502上的期望的結果參數進行比較。如果兩個結果匹配,則認證成功并且密鑰被加載。如果結果不匹配,則認證失敗并且密鑰不被加載。
在框609中,取消(abort)原語指令。參照圖2的實施方案,控制器取消該原語指令。控制器206終止(terminate)任何額外的微碼指令,并且還可以向在應用處理器106上執行的驅動器發送失敗通知。然后,流程圖600的操作完成。
在框610中,確定密碼處理器126處于受信狀態后,進行與原語指令相關聯的操作。參照圖2的實施方案,控制器206基于微碼操作來控制不同操作的執行順序。因此,控制器206可以將用于執行的控制指令傳輸到密碼處理器126內適當的功能單元、非易失性存儲器控制器114或易失性存儲器控制器118。密碼處理器126內適當的功能單元、非易失性存儲器控制器114或易失性存儲器控制器118進行所述操作。對于在原語指令的執行期間訪問非易失性存儲器116和易失性存儲器120,密碼處理器126可以通過用于非易失性存儲器116和易失性存儲器120的私用接口(private interface)來執行該訪問。例如,假設儲存在易失性存儲器120中的已加密數據加密的密鑰要被用于針對原語指令的密碼操作。控制器206可以通過用于易失性存儲器120的私用接口來取得該已加密數據加密密鑰。此外,與原語指令相關聯的操作的其他實施例在針對框604(在上面闡述)的描述中示出。
控制器206可以在不同的功能單元之間移動數據。然而,可以用一個或更多個數據移動約束來配置密碼處理器126。這樣的約束確保流氓進程(rogue process)不能暗中從密碼處理器126讀取出任何敏感信息。這樣的約束可以被儲存在微碼存儲器240中。例如,一個數據約束阻止儲存在密鑰儲存裝置220中的數據被寫到輸出緩沖區216中。這樣的約束防止加密密鑰以未加密格式被讀取出密碼處理器126。
另一個示例性約束可以阻止儲存在輸入緩沖區218中的數據被寫到上下文儲存裝置/PCR 210中。這樣的約束防止對密碼處理器126的平臺配置的覆寫。另一個示例性約束可以阻止儲存在輸入緩沖區218中的數據被寫到密鑰緩存221。這樣的約束防止對儲存在密鑰緩存中的加密密鑰的覆寫。回到流程圖600,控制在框612處繼續。
在框612,確定是否有額外的微碼指令要執行。參照圖2的實施方案,控制器206作出該確定操作。如上面描述的,控制器206為給定原語指令從微碼存儲器240中取得一條到多條微碼指令。因此,控制器206確定是否這些不同的指令已被執行。在確定要為給定原語指令執行額外的微碼指令之后,控制在框606處繼續,其中不同的微碼指令被執行。在確定無需為給定原語指令執行額外的微碼指令之后,微碼執行清除(clean-up)操作,以確保密碼處理器126停留在受信狀態中。清除操作包括諸如從密碼單元移除在操作中使用過的密鑰、用0或1覆寫中間儲存裝置214中的中間結果、重新設置密碼處理器中的狀態標志以指示操作完成或密碼不再可用等等的操作。在清除操作結束之后,流程圖600的操作完成。
流程圖300和600的操作可以用于多種不同的受信和密碼操作。一個這樣的實施例包括對非易失性存儲器116的寫訪問。非易失性存儲器116可以被分成多個不同的塊。例如,如果非易失性存儲器116的大小為8兆字節,則非易失性存儲器116可以包括8個1兆字節的塊。所述多個不同的塊可以具有相關聯的使能信號(enable),以控制對其的寫訪問。在要被儲存到給定塊的數據已經被認證之后,密碼處理器126可以允許對所述給定塊的使能信號的斷言(assertion)。相應地,密碼處理器126的驅動器接收對非易失性存儲器116中給定塊的寫訪問的安全性服務請求。接著,驅動器生成原語指令,所述原語指令請求對要被儲存在所述塊中的數據的認證。所述原語指令連同已簽署證書以及數據被傳輸到密碼處理器126。接著,密碼處理器126可以執行多條不同的微碼指令,以橫貫所述數據生成與所述已簽署證書進行比較的密碼哈希。密碼處理器126可以基于所述比較認證所述數據。這樣的實施例可以用于認證被下載到受信移動計算設備100中的給定應用的新補丁。
因此,如所描述的,本發明的實施方案可以在同一處理器上進行受信操作和密碼操作兩者,所述處理器處于獨立于受信移動計算設備內的應用處理器的可執行上下文的可執行上下文中。因此,該密碼處理器可以用于進行信任操作(例如用于認證應用處理器的操作系統的受信引導操作),同時還使用相同的功能單元進行受信引導操作后續的不同類型的密碼操作。
此外,如所描述的,密碼處理器126可以確保信任相關的加密密鑰不被對外(未加密地)暴露。密碼處理器126可以確保密碼操作的中間、部分結果也不被對外暴露。此外,密碼處理器126可以確保一旦密碼操作被發起,所述密碼操作不能從密碼處理器外部的組件被修改或篡改。
現在描述密碼操作的執行的更詳細的描述,所述密碼操作包括對密碼密鑰的使用。具體來說,圖6B根據本發明的一個實施方案,示出在密碼處理器中使用密碼密鑰的密碼操作的執行的流程圖。流程圖650示出在密碼處理器126中的操作執行中使用密碼密鑰之前,對所述密碼密鑰的驗證和認證操作。
在框652,接收原語指令,以在密碼處理器中進行包括密碼密鑰使用的操作。參照圖2的實施方案,控制器206可以接收該原語指令。所述密碼密鑰可以在密碼處理器126外部被生成。這樣的密碼密鑰可以在所述原語指令的接收之間已經被加載到密碼處理器126內的存儲器中。可替換地,所述密碼密鑰可以連同所述原語指令被加載到密碼處理器126中。所述密碼密鑰可以由密碼處理器126中的功能單元在內部生成。所述密碼密鑰可以通過保護加密密鑰被加密。此外,密碼密鑰的單元類型和/或使用類型(下面結合圖3更詳細地描述)可以與所述密碼密鑰相關聯。控制在框654處繼續。
在框654,確定密碼密鑰的單元類型和/或使用類型是否被授權。參照圖2的實施方案,控制器206可以作出此確定。回到圖3以幫助圖示說明,控制器206可以取得用于所述密碼密鑰的頭部。控制器206可以確定要使用該密碼密鑰的功能單元是否被列為單元類型308中的一個。此外,控制器206可以確定要使用該密碼密鑰進行的操作是否被列為使用類型310中的一個。在確定該密碼密鑰的單元類型和/或使用類型未被授權之后,控制在框664處繼續,這在下面更詳細地描述。
在框656,確定該密碼密鑰的單元類型和/或使用類型被授權后,生成質詢(challenge)。參照圖2的實施方案,控制器206可以導致質詢的生成。被加載到密碼處理器126中的密碼密鑰可以包括相關聯的口令。所述相關聯的口令在密碼處理器126中已知,并且為發出該原語指令的應用所已知。控制器206可以生成質詢,所述質詢被輸出回在應用處理器106上執行的應用。所述質詢可以請求來自應用的、對相關聯口令的哈希的響應。雖然口令的哈希可以是多種不同類型的,但是在一個實施方案中,哈希基于HMAC操作。控制在框658處繼續。
在框658,接收對質詢的響應。參照圖1的實施方案,在應用處理器106上執行的(請求執行原語指令的)應用將響應傳輸回密碼處理器126。控制器206接收對此質詢的響應。控制在框660處繼續。
在框660,確定響應是否正確。參照圖2的實施方案,控制器命令SHA單元230生成所述口令的哈希。例如,SHA單元230可以基于HMAC操作生成哈希。控制器206可以命令ALU 222比較從應用接收到的哈希和由SHA單元230生成的哈希。如果哈希相等,則響應被認為是正確的。在確定響應不正確后,控制在框664處繼續,這在下面更詳細地描述。
在框662,在確定響應正確后,密碼密鑰被加載到指定的功能單元以進行執行。參照圖2的實施方案,控制器206導致密碼密鑰被加載到指定的功能單元以進行執行。接著,(如上面在流程圖600中所描述的)該功能單元可以執行指令。接著,流程圖650的操作完成。
在框664,原語指令被取消。參照圖2的實施方案,控制器206取消該原語指令。控制器206終止任何額外的微碼指令,并且還可以向在應用處理器106上執行的驅動器發送失敗通知。接著,流程圖650的操作完成。
流程圖650示出用于授權密碼密鑰在密碼處理器126中的使用的質詢/響應的一個實施例。具體來說,流程圖650示出使用與密碼密鑰相關聯的口令的哈希的質詢/響應。本發明的實施方案可以使用用于授權的其他類型的質詢/響應操作。
儲存在微碼存儲器240中的微碼指令可以被修補或更新。然而,如果微碼存儲器240是只讀存儲器,則補丁可以被儲存在易失性存儲器220中,從而補丁中的指令被用來代替微碼存儲器240中的那些指令。為了維護密碼處理器240的安全性和可信賴狀態,可以在安裝之前認證這樣的補丁/更新。現在描述對這些微碼指令的這樣的更新的一個實施方案。具體來說,圖7根據本發明的一個實施方案,示出更新密碼處理器中的微碼的流程圖。
在框702,為密碼處理器發起受信引導操作。參照圖1的實施方案,基于儲存在受信引導ROM 108中的指令引導密碼處理器126。作為受信引導操作的一部分,微碼存儲器240中的指令可以被修補(這在流程圖700中更詳細地描述)。在以下2003年12月22日遞交、標題為“Securing an Electronic Device(保護電子設備)”的共同待審定、共同轉讓的美國專利申請No.10/745,496中描述了受信引導操作的更詳細的描述。控制在框704處繼續。
在框704,(作為受信引導操作的一部分)確定是否存在針對微碼的補丁。參照圖2的實施方案,非易失性存儲器116包括指定段,用于對微碼指令的補丁的儲存。因此,控制器206可以基于指定段中的數據是否包括補丁來確定是否存在針對微碼的補丁。確定不存在補丁后,流程圖700的操作完成。
在框706,確定存在用于微碼的補丁后,所述補丁以及用于所述補丁的密碼密鑰和簽名被加載。參照圖2的實施方案,控制器206將所述補丁、用于所述補丁的密碼密鑰和簽名加載到非易失性存儲器120中。控制在框708處繼續。
在框708,確定用于補丁的密碼密鑰是否是合法(valid)的。參照圖2的實施方案,非易失性存儲器116可以包括被定義為“一次可編程”的段。具體來說,該段可以被寫一次,由此阻止流氓或惡意進程修改儲存在該段中的數據。該段可以包括用于補丁的密碼密鑰的哈希。因此,控制器206可以分別從非易失性存儲器116以及易失性存儲器120中取得該哈希和密碼密鑰。控制器206命令SHA單元230生成密碼密鑰的哈希。接著,控制器206可以命令ALU 222將該哈希結果與從非易失性存儲器116取得的哈希進行比較,以確定這兩個值是否相同。如果這兩個值相等,則用于補丁的密碼密鑰是合法的。
在框710,確定用于補丁的密碼密鑰不合法后,用于補丁的密碼密鑰和簽名被刪除。參照圖2的實施方案,控制器206將補丁、用于補丁的密碼密鑰和簽名從易失性存儲器120中刪除。因此,補丁內的指令將不會被加載到密碼處理器126中或被密碼處理器126執行。接著,流程圖700的操作完成。
在框712,確定用于補丁的密碼密鑰合法后,確定用于補丁的簽名是否合法。參照圖2的實施方案,控制器206將補丁加載到SHA單元230中。接著,控制器206命令SHA單元230生成補丁的摘要。控制器206將伴隨補丁的數字簽名連同密碼密鑰加載到冪運算單元234中。接著,控制器206可以命令冪運算單元234解密所述簽名。控制器206可以檢查冪運算單元234的輸出,以確定所述簽名是否被適當地解密。適當解密簽名后,控制器206命令ALU 222將已解密簽名與由SHA單元230生成的摘要進行比較。如果兩個值相等,則用于補丁的簽名是合法的,并且所述補丁是用于密碼處理器126的被適當授權的補丁。
在框714,確定用于補丁的簽名合法后,補丁標志以及用于被修補的微碼的標簽項(tagentry)被加載。參照圖2的實施方案,除了是補丁的一部分的指令之外,補丁可以包括一組補丁標志,所述補丁標志指示微碼存儲器240的哪些段被修補。控制器206可以將這些補丁標志加載到補丁標志存儲器281中。這樣的補丁標志可以是用于微碼存儲器240中每個段的1位表示。補丁標志存儲器281中被置位(set)的位指示微碼存儲器240中的對應段具有補丁。例如,如果在補丁標志存儲器240中位5被置位,則微碼存儲器240中的段5具有對應的補丁。相應地,包括補丁的文件可以包括補丁標志、以補丁標簽開頭的一連串補丁段、對補丁標志以及所述一連串補丁段和補丁標簽的數字簽名。用于微碼存儲器240中的段的給定補丁標簽儲存補丁中要替代微碼存儲器240的段被執行的段的標識。因此,在微碼存儲器240的段中的指令的執行期間,如果標志指示該段被修補,則控制器206(使用標簽項)從補丁中取(fetch)指令,以供替代來自微碼存儲器240的指令進行執行。在一些實施方案中,當要執行補丁的段中的指令時,僅將所述補丁的段從易失性存儲器120加載到易失性存儲器220中。此外,該段可以保留在易失性存儲器220中。因此,如果所述段中的指令要被重新執行,控制器206不必要從易失性存儲器120中重新取該指令。流程圖700的操作完成。
因此,如所描述的,密碼處理器126中的微碼可以僅僅基于包括密碼密鑰的認證操作被修補,所述密碼密鑰基于儲存在“一次可編程”儲存裝置中的哈希進行驗證。認證操作還被基于橫貫補丁的簽名使用被驗證的密碼密鑰進行驗證。
系統操作環境在這部分,介紹系統概述。系統概述介紹結合本發明的實施方案使用的網絡配置。系統概述還介紹網絡配置的一般功能性。
圖8根據本發明的一個實施方案,示出其中具有密碼操作的受信移動通信設備可以工作的系統配置的簡化功能框圖。圖8示出包括多個受信移動計算設備100A-100N以及多個服務器806A-806N的系統800,所述多個受信移動計算設備100A-100N和多個服務器806A-806N通過網絡804耦合在一起。網絡804可以是廣域網、局域網,或者是在多個受信移動計算設備100A-100N和多個服務器806A-806N之間提供通信的不同網絡的組合。例如,多個受信移動計算設備100A-100N可以是不同類型的無線計算設備,其中,網絡804的一部分被配置為處理無線通信,而網絡804的不同的部分可以被配置成為與多個服務器806A-806N的通信處理有線通信。
如上文所描述的,多個受信移動計算設備100A-100N可以執行多項信任和密碼操作。例如,多個受信移動計算設備100A-100N的用戶可以用在多個服務器806A-806N上執行的不同應用來進行不同的電子商務交易。
在描述中,闡述了大量具體細節,例如邏輯實現、操作代碼、指定操作數的方法、資源劃分(partitioning)/共用/復制的實現、系統組件的類型和相互關系,以及邏輯劃分/集成的選擇,以提供對本發明的完整理解。然而,本領域的技術人員將意識到,無需使用這些具體的細節可以實踐本發明。此外,控制結構、門級電路和整個軟件指令序列未詳細示出,以免模糊本發明的實施方案。獲悉本文所包含的說明的本領域普通技術人員無需超出常規的試驗就能夠實現適當的功能性。
在說明書中提及的“一個實施方案”、“實施方案”、“示例性實施方案”等指示描述的實施方案可以包括特定特征、結構或特性,但是每個實施方案可以不必包括所述特定特征、結構,或特性。此外,這樣的短語不必是指同一實施方案。此外,當關于某種實施方案來描述具體的特點、結構或特性時,無論是否明確地指出,認為本領域的技術人員在其知識范圍內都可以結合其他實施方案來實現這種特點、結構或特性。
本發明的實施方案包括可以被實施在由機器可讀介質提供的機器可執行指令中的特征、方法或過程。機器可讀介質包括以機器(例如計算機、網絡設備、個人數字助理、制造工具、具有一組一個或更多個處理器的任何設備,等等)可訪問形式提供(即儲存和/或傳輸)信息的任何機制。在示例性實施方案中,機器可讀介質包括易失性和/或非易失性介質(例如只讀存儲器(ROM)、隨機訪問存儲器(RAM)、磁盤儲存介質、光儲存介質、閃存存儲器設備等等)以及電、光、聲或其他形式的傳播信號(例如載波、紅外信號、數字信號等等)。
使用這樣的指令來導致用這些指令編程的通用或專用處理器完成本發明的實施方案的方法或過程。可替換地,通過包括用于完成操作的硬連線邏輯的具體硬件組件或者通過編程的數據處理組件和具體硬件組件的任何組合來完成本發明的實施方案的特征或操作。本發明的實施方案包括軟件、數據處理硬件、數據處理系統實現的方法、以及本文進一步描述的各種處理操作。
多幅附圖根據本發明的實施方案示出用于受信移動平臺體系結構的系統和裝置的框圖。多幅附圖根據本發明的實施方案示出圖示說明用于受信移動平臺體系結構的操作的流程圖。將參照在框圖中示出的系統/裝置來描述流程圖的操作。然而,應該理解,流程圖的操作可以由與參照框圖所討論的那些系統和裝置不同的其他系統和裝置的實施方案完成,并且參照系統/裝置所討論的實施方案可以完成與參照流程圖所討論的那些操作不同的其他操作。
考慮本文所描述的實施方案的各種改變,該詳細的描述僅意圖是示意性的,而不應該被視為限制本發明的范圍。為了圖示說明,雖然參照信任和加密操作作出描述,但是當受信移動計算設備100被這樣的設備的使用者實際操作時,本發明的實施方案不受這樣的限制。例如,密碼處理器126可以被用來在受信移動計算設備100的調試操作期間認證設備。回到圖1來圖示說明,設備可以通過JTAG接口155耦合到密碼處理器126,以供調試。因此,密碼處理器126可以通過質詢/響應操作來認證該設備。密碼處理器126可以生成被傳輸到耦合到JTAG接口155的設備的質詢。接著,該設備生成對質詢的響應。因此,如果密碼處理器126基于響應認證該設備,則設備能夠通過JTAG接口155來執行與受信移動計算設備100的通信。
為了進一步示出本發明的實施方案的改變,雖然在實施方案中描述為原語指令在密碼處理器126中被串行地執行,但是,用于不同原語指令的多項不同的微碼操作可以至少部分地同時在其中執行。因此,本發明所要求保護的是所有這樣的修改,所述修改可以在所附權利要求書及其等同物的范圍和可用等同范圍內。因此,說明書和附圖被視為示意性的,而不是限制性的。
權利要求
1.一種裝置,包括一個或更多個密碼單元;以及存儲器,所述存儲器儲存一個或更多個數據加密密鑰以及用于所述一個或更多個數據加密密鑰的相關聯的頭部,其中,所述相關聯的頭部定義所述一個或更多個密碼單元中的哪些使用所述數據加密密鑰。
2.如權利要求1所述的裝置,其中,所述相關聯的頭部為所述數據加密密鑰定義使用類型。
3.如權利要求2所述的裝置,還包括控制器,所述控制器基于用于所述數據加密密鑰的所述相關聯的頭部來約束所述一個或更多個密碼單元中的哪些使用所述數據加密密鑰以及操作類型。
4.如權利要求1所述的裝置,其中,所述相關聯的頭部定義用來加密所述一個或更多個數據加密密鑰的密鑰加密密鑰的標識。
5.如權利要求1所述的裝置,其中,所述一個或更多個密碼單元選自由高級加密標準單元、數據加密標準單元、消息摘要單元和安全哈希算法單元或冪運算單元組成的組。
6.一種裝置,包括無線設備中的密碼處理器,所述密碼處理器包括第一密碼單元,所述第一密碼單元從第一操作的執行生成中間結果;以及第二密碼單元,所述第二密碼單元基于所述中間結果從第二操作的執行中生成最終結果,其中,所述中間結果在所述密碼處理器外部是不可訪問的。
7.如權利要求6所述的裝置,其中,所述第一密碼單元和所述第二密碼單元選自由高級加密標準單元、數據加密標準單元、消息摘要單元和安全哈希算法單元或冪運算單元組成的組。
8.如權利要求6所述的裝置,其中,所述第一操作包括密碼密鑰的使用,其中,在所述密碼密鑰被認證之前所述密碼密鑰不被加載到所述第一密碼單元中。
9.一種系統,包括雙極天線,所述雙極天線接收通信;應用處理器,所述應用處理器基于所述通信生成用于密碼操作的原語指令,所述密碼操作使用密碼密鑰;以及密碼處理器,所述密碼處理器包括存儲器,所述存儲器儲存所述密碼密鑰;多個密碼單元,其中,所述多個密碼單元中的一個生成對所述密碼密鑰的使用的質詢,其中,所述應用處理器生成對所述質詢的響應;以及控制器,如果所述響應正確,則所述控制器將所述密碼密鑰加載到所述多個密碼單元中的一個,以用于所述密碼操作的執行。
10.如權利要求9所述的系統,其中,所述密碼處理器還包括非易失性存儲器,所述非易失性存儲器儲存多條微碼指令,其中,所述控制器基于所述多條微碼指令的至少部分將所述密碼密鑰加載到所述多個密碼單元中的一個。
11.如權利要求9所述的系統,其中,如果所述響應不正確,則所述控制器取消所述密碼操作的執行。
12.如權利要求9所述的系統,其中,所述響應包括與所述密碼密鑰相關聯的口令的哈希。
13.一種系統,包括無線設備中的應用處理器,所述應用處理器生成與密碼操作有關的原語指令;以及所述無線設備中的密碼處理器,所述密碼處理器包括控制器,所述控制器接收所述原語指令,其中,所述控制器從所述密碼處理器中的非易失性存儲器取得多條微碼指令;第一功能單元,所述第一功能單元從基于所述多條微碼指令中第一微碼指令的第一操作的執行生成中間結果;以及第二功能單元,所述第二功能單元基于所述中間結果從基于所述多條微碼指令中第二微碼指令的第二操作的執行生成所述密碼操作的最終結果,其中,所述中間結果在所述密碼處理器外部是不可訪問的。
14.如權利要求13所述的系統,其中,所述密碼處理器還包括易失性存儲器,以儲存密碼密鑰。
15.如權利要求14所述的系統,其中,所述第二功能單元使用所述密碼密鑰生成所述最終結果,其中,在所述應用處理器認證所述密碼密鑰之前所述控制器不將所述密碼密鑰加載到所述第二功能單元中。
16.一種方法,包括將原語指令接收到密碼處理器中,以用于使用數據加密密鑰的密碼操作的執行,所述數據加密密鑰在所述密碼處理器中受保護;取得所述數據加密密鑰和用于所述數據加密密鑰的相關聯的頭部,其中,所述相關聯的頭部定義一個或更多個密碼單元中的哪些使用所述數據加密密鑰;以及如果所述相關聯的頭部定義所述一個或更多個密碼單元中的一個,則在所述一個或更多個密碼單元中的所述一個中使用所述數據加密密鑰來進行操作。
17.如權利要求16所述的方法,其中,所述相關聯的頭部為所述數據加密密鑰定義使用類型。
18.如權利要求17所述的方法,其中,在所述一個或更多個密碼單元中的一個中使用所述數據加密密鑰來進行所述操作的步驟包括,如果所述使用類型定義所述操作的類型,則在所述一個或更多個密碼單元中的一個中使用所述數據加密密鑰來進行所述操作。
19.一種方法,包括從在應用處理器上執行的應用中將原語指令接收到密碼處理器,以用于使用密碼密鑰的密碼操作的執行,所述密碼密鑰在所述密碼處理器中受保護;反過來針對所述應用生成對所述密碼密鑰的使用的質詢;從所述應用中將對所述質詢的響應接收到所述密碼處理器中;如果所述響應正確,進行以下操作將所述密碼密鑰加載到所述密碼處理器的功能單元中;以及在所述功能單元中使用所述密碼密鑰執行操作。
20.如權利要求19所述的方法,還包括如果所述響應不正確,取消所述原語指令的執行。
21.如權利要求19所述的方法,其中,從所述應用中將對所述質詢的所述響應接收到所述密碼處理器的步驟包括接收與所述密碼密鑰相關聯的口令的哈希。
22.如權利要求21所述的方法,其中,“如果所述響應正確,進行以下操作”的步驟包括,如果所述口令的所述哈希等于在所述密碼處理器中生成的所述口令的哈希,則進行所述以下操作。
23.一種提供指令的機器可讀介質,當所述指令被機器執行時,導致所述機器進行操作,所述操作包括將原語指令接收到密碼處理器中,以用于使用數據加密密鑰的密碼操作的執行,所述數據加密密鑰在所述密碼處理器中受保護;取得所述數據加密密鑰和用于所述數據加密密鑰的相關聯的頭部,其中,所述相關聯的頭部定義一個或更多個密碼單元中的哪些使用所述數據加密密鑰;以及如果所述相關聯的頭部定義所述一個或更多個密碼單元中的一個,則在所述一個或更多個密碼單元中的所述一個中使用所述數據加密密鑰來進行操作。
24.如權利要求23所述的機器可讀介質,其中,所述相關聯的頭部為所述數據加密密鑰定義使用類型。
25.如權利要求24所述的機器可讀介質,其中,在所述一個或更多個密碼單元中的一個中使用所述數據加密密鑰來進行所述操作的步驟包括,如果所述使用類型定義所述操作的類型,則在所述一個或更多個密碼單元中的一個中使用所述數據加密密鑰來進行所述操作。
26.一種提供指令的機器可讀介質,當所述指令被機器執行時,導致所述機器進行操作,所述操作包括從在應用處理器上執行的應用中將原語指令接收到密碼處理器,以用于使用密碼密鑰的密碼操作的執行,所述密碼密鑰在所述密碼處理器中受保護;反過來針對所述應用生成對所述密碼密鑰的使用的質詢;從所述應用中將對所述質詢的響應接收到所述密碼處理器中;如果所述響應正確,進行以下操作將所述密碼密鑰加載到所述密碼處理器的功能單元中;以及在所述功能單元中使用所述密碼密鑰執行操作。
27.如權利要求26所述的機器可讀介質,還包括如果所述響應不正確,取消所述原語指令的執行。
28.如權利要求26所述的機器可讀介質,其中,從所述應用中將對所述質詢的所述響應接收到所述密碼處理器的步驟包括接收與所述密碼密鑰相關聯的口令的哈希。
29.如權利要求28所述的機器可讀介質,其中,“如果所述響應正確,進行以下操作”的步驟包括,如果所述口令的所述哈希等于在所述密碼處理器中生成的所述口令的哈希,則進行所述以下操作。
全文摘要
在實施方案中,裝置包括一個或更多個密碼單元。裝置還包括存儲器,所述存儲器儲存一個或更多個數據加密密鑰和用于所述一個或更多個數據加密密鑰的相關聯的頭部。所述相關聯的頭部定義所述一個或更多個密碼單元中的哪些使用所述數據加密密鑰。
文檔編號H04L9/08GK1914849SQ200480041616
公開日2007年2月14日 申請日期2004年12月13日 優先權日2003年12月11日
發明者戴維·惠勒, 約翰·布里扎克, 莫伊納爾·卡恩, 阿尼沙·科納 申請人:英特爾公司