專利名稱:具有保密軟件映像的集成電路及其方法
技術領域:
本揭示內容系有關于保密由各種集成電路處理器執(zhí)行的軟件映像。
背景技術:
基于科技的進步、消費者需求、以及諸如要求產品差異化之類的市場驅動因 素,人們持續(xù)驅策諸如無線通訊裝置之類的電子裝置至更高階的性能。要滿足許多該等 要求,當今能獲得的處理能力允許使用可通過可程序化來提供高階性能及彈性的尖端處 理器(例如,系統(tǒng)芯片(SOC)集成電路)。結果,軟件與軟件開發(fā)已變成提供性能、新特征及功能等等的關鍵因素。不 過,隨著軟件的普及,也需要保護軟件不被盜用(misappropriation),或惡意更改。例 如,藉由攻擊針對芯片的特定特征及功能,可盜用或更改甚至是在集成電路級的軟件。 同時,為了除錯、更新或基于各種開發(fā)需要,得以存取軟件是有必要的。此外,在主要 副本毀壞且無法使用的情形下,能夠提供軟件備份是合乎需要的。不過,可輕易取得軟 件副本是不恰當?shù)模驗檫@可能導致程序代碼被盜用、等等。例如,最好有專屬于給定電子裝置(或更特別的是,在該電子裝置內的集成電 路)的各種不同程序代碼映像,使得任何其它裝置都無法使用或更改該等程序代碼映像。
第1圖的方塊圖系根據(jù)一具體實施例圖示一集成電路。第2圖的方塊圖系根據(jù)一具體實施例圖解說明耦合至硬件唯一密鑰邏輯電路 (hardware unique key logic)的密碼邏輯電路(cryptographiclogic)。第3圖的流程圖系根據(jù)一具體實施例圖解說明集成電路的高階操作,其中系接 收來自外部裝置的程序代碼映像以及使用硬件唯一密鑰加密該程序代碼映像。第4圖的流程圖系圖解說明一具體實施例之操作,其中系發(fā)送命令以請求使用 硬件唯一密鑰來解密硬件唯一程序代碼映像。第5圖的流程圖系圖解說明具體實施例的操作,其中密碼邏輯電路系由硬件唯 一密鑰邏輯電路獲取硬件唯一密鑰。第6圖為用于一具體實施例的流程圖,其中泛用程序代碼映像(generic code image)會被推入集成電路以及用加密隨機密鑰加密。第7圖為用于一具體實施例的流程圖,其系通過使用硬件唯一密鑰加密的隨機 密鑰來解密軟件。第8圖為使用快閃加載器(flashingloader)之具體實施例的流程圖。第9圖的流程圖系圖解說明偵查可能需要升級的先前存入程序代碼。第10圖為一具體實施例的詳細方塊圖,該具體實施例在硬件唯一密鑰邏輯電路 與密碼邏輯電路之間有保密通訊線路用于以保密方式傳輸硬件唯一密鑰信息于其間。
第11圖為圖解說明硬件唯一密鑰信息的位圖(bitmap),其中可包含裝置ID、硬 件唯一密鑰及鎖定位(locking bit)。第12圖的流程圖系圖解說明圖示于第10圖之具體實施例的操作。
具體實施例方式揭示于本文的各種具體實施例系包含一種方法,其中集成電路可接收來自外部 裝置的程序代碼映像,使用有“硬件唯一密鑰”的密碼邏輯電路來加密該程序代碼映像 以產生“硬件唯一程序代碼映像”,在此該外部裝置系無法存取該“硬件唯一密鑰”。 然后,該集成電路會儲存該“硬件唯一程序代碼映像”,其中該“硬件唯一程序代碼映 像”只有在使用該“硬件 唯一密鑰”解密后才能執(zhí)行。該方法也包含下列步驟發(fā)送命令以請求該密碼邏輯電路使用該“硬件唯一密 鑰”來解密該“硬件唯一程序代碼映像”,以及在解密后由啟動軟件(boot software)執(zhí) 行該“硬件唯一程序代碼映像”。揭示于本文的具體實施例也提供一種含有存儲器與耦合至該存儲器之密碼邏輯 電路的集成電路。在此該密碼邏輯電路系能夠被操作以使用“硬件唯一密鑰”來加密程 序代碼映像以產生“硬件唯一程序代碼映像”,在此經(jīng)由該集成電路的任何端口都無法 存取該“硬件唯一密鑰”。該集成電路進一步包含可儲存該“硬件唯一程序代碼映像” 于存儲器中的性能,在此該“硬件唯一程序代碼映像”只有在使用該“硬件唯一密鑰” 解密后才能執(zhí)行。揭示于本文的集成電路也可包含能夠被操作以控制外部裝置由外圍控制器接 收程序代碼映像,與該密碼邏輯電路連接的存儲器控制器,以及與該存儲器控制器連接 以及能夠被操作以發(fā)送請求該密碼邏輯電路使用該“硬件唯一密鑰”來解密該“硬件唯 一程序代碼映像”以及在解密后執(zhí)行該“硬件唯一程序代碼映像”的啟動只讀存儲器 (boot ROM)。揭示于本文的集成電路包含能夠被操作以控制外部裝置以接收程序代碼映像 的外圍控制器,存儲器,“硬件唯一密鑰邏輯電路”,耦合至該存儲器及該“硬件唯一 密鑰邏輯電路”的密碼邏輯電路,該密碼邏輯電路能夠被操作以向該“硬件唯一密鑰邏 輯電路”發(fā)送請求該“硬件唯一密鑰”,由響應該請求的“硬件唯一密鑰邏輯電路”接 收該“硬件唯一密鑰”,使用該“硬件唯一密鑰”來加密該該程序代碼映像以產生“硬 件唯一程序代碼映像”,在此經(jīng)由該集成電路的任何端口都無法存取該“硬件唯一密 鑰”,以及在存儲器中儲存該“硬件唯一程序代碼映像”,在此該“硬件唯一程序代碼 映像”只有在使用該“硬件唯一密鑰”解密后才能執(zhí)行。該集成電路進一步包含連接至 該密碼邏輯電路的存儲器控制器與連接至該存儲器控制器的啟動只讀存儲器,其中該啟 動只讀存儲器能夠被操作以向該密碼邏輯電路發(fā)送請求該密碼邏輯電路使用該“硬件唯 一密鑰”來解密該“硬件唯一程序代碼映像”以及在解密后執(zhí)行該“硬件唯一程序代碼 映像”。揭示于本文的集成電路也可包含存儲器控制器,其中該存儲器控制器系能夠被 操作以仲裁對于該存儲器的存取。該集成電路能夠進一步被操作以由該啟動只讀存儲 器發(fā)送命令給該密碼邏輯電路來響應請求以導致該密碼邏輯電路可產生隨機密鑰,以及在此該密碼邏輯電路更能夠被操作以產生該隨機密鑰來響應該命令,使用該“硬件唯一 密鑰”來加密該隨機密鑰以產生加密隨機密鑰,在密鑰儲存存儲器中儲存該加密隨機密 鑰并且使用該加密隨機密鑰來加密該程序代碼映像。替換地,有些具體實施例可使用不 加密的隨機密鑰。揭示于本文的集成電路進一步可包含外圍控制器,其系能夠被操作以接收推入集成電路之內部存儲器的快閃加載器程序代碼,以及在此該啟動只讀存儲器系能夠被操 作以證實該快閃加載器程序代碼為能夠被信賴的程序代碼,執(zhí)行該快閃加載器程序代 碼,以及與該外部裝置執(zhí)行挑戰(zhàn)/響應安全例程(challenge/response security routine),并 且得到由該外部裝置推入的程序代碼映像以響應該挑戰(zhàn)/響應安全例程的正確響應。此時請參考附圖,其中類似的組件用相同的組件符號表示,第1圖為集成電路 (IC) 100的方塊圖,在有些具體實施例中,集成電路(IC) 100可為系統(tǒng)芯片(SOC)集成 電路。集成電路100可具有數(shù)條實體連接(physical connection),例如實體連接131與 133,其系允許集成電路100連接至外部裝置,例如但不受限于外部裝置127與外部儲存 所129。外部裝置127可為服務器,或有處理器可與集成電路100通訊以便收送命令的 適當裝置。換言之,外部裝置127可用一種協(xié)議與集成電路100通訊,其中該協(xié)議可包 含訊號交換(handshaking)或包含安全程序的其它協(xié)議程序,例如但不受限于公鑰/私鑰 交換。外部儲存所129可為各種類型的儲存所,例如SD內存或NAND閃存或任何其它 適當?shù)膬Υ嫜b置,例如但不受限于USB硬盤。經(jīng)由與中央處理單元105互動且與其耦合 的外圍控制器106,外部儲存所129可與集成電路100互動。此外,中央處理單元105耦 合至存儲器控制器101。存儲器控制器101仲裁CPU及其它組件對于存儲器(例如,內 部RAM 107與外部RAM 117)的存取。在CPU的指示下,存儲器控制器101也可標記 不同的存儲器區(qū)作為保密存儲器??蔀殪o態(tài)RAM的內部RAM 107可實體位于集成電路的晶粒上??蔀槔?DRAM的外部RAM 117可實體在集成電路100的封裝內,但不一定和存儲器控制器在同 一個晶粒上。不過,不論是在或不在集成電路100的晶粒上,存儲器可位于任何適當位 置。存儲器控制器101進一步耦合至啟動只讀存儲器103。啟動只讀存儲器103控制集 成電路100的啟動程序而且可包含以啟動集成電路100為目的來操作的啟動只讀存儲器軟 件及/或邏輯電路。例如,啟動只讀存儲器103可參考由啟動只讀存儲器103運行的軟 件,在此系由中央處理單元105執(zhí)行該啟動只讀存儲器軟件。在其它具體實施例中,啟 動只讀存儲器103可包含軟件以及可藉由邏輯電路操作來與該軟件互動或與該軟件無關 的邏輯電路操作。此外,啟動只讀存儲器103可包含保密存儲器,其中該保密存儲器系 上鎖而不被集成電路100中與啟動無關的各種邏輯電路存取。存儲器控制器101可進一步耦合至用來加密為集成電路100所用之各種信息的加 密邏輯電路102,例如但不受限于軟件程序代碼或用于加密及解密軟件(例如,視訊媒體 軟件、等等)的各種加密密鑰。加密邏輯電路102可為例如雜湊邏輯電路(hashing logic) 用來雜湊軟件程序代碼以及提供該雜湊給用于儲存所(例如,內部RAM 107或外部RAM 117)的存儲器控制器。存儲器控制器101也耦合至密碼邏輯電路113。密碼邏輯電路 113系用來檢查各種待加載以及在集成電路100上由例如中央處理單元105運行之軟件映 像的有效性。密碼邏輯電路113在一些具體實施例中可為密碼核心處理器(crypto coreprocessor), ASIC、或適于根據(jù)本文提供之描述用來加密及解密軟件程序代碼的其它適當 邏輯電路。在有些具體實施例中,該密碼邏輯電路可進一步包含隨機數(shù)產生器121、密鑰 儲存內存123、及硬件唯一密鑰儲存存儲器125。
集成電路100進一步包含可含有與集成電路100配置有關之信息的硬件唯一密鑰 邏輯電路115。硬件唯一密鑰邏輯電路115含有一旦熔斷就無法恢復的保險絲。因此, 該硬件唯一密鑰邏輯電路115可建立一組永久性的位可用來加密在集成電路100內的各種 軟件。從而,硬件唯一密鑰邏輯電路115可建立用來加密映像的“硬件唯一密鑰”,這 在下文有進一步的說明。該硬件唯一密鑰邏輯電路系耦合至密碼邏輯電路113以及與密碼邏輯電路113共 享來自頻率邏輯電路(clock logic) 114的頻率訊號(clocksignal)??墒褂糜深l率邏輯電路 114進入密碼邏輯電路113的頻率訊號來序列頻率化(serially clock)構成該“硬件唯一密 鑰”的硬件唯一密鑰邏輯電路115位樣式(bitpattem)。然后,該密碼邏輯電路可儲存該
“硬件唯一密鑰”于硬件唯一密鑰儲存存儲器125中。該“硬件唯一密鑰”系專屬于集 成電路100而且與在任何其它集成電路實例之中的任何其它“硬件唯一密鑰”不同。被 硬件唯一密鑰邏輯電路115收納也在硬件唯一密鑰儲存存儲器125內的“硬件唯一密鑰” 無法通過集成電路100的任何界面來存取。換言之,無法經(jīng)由存儲器控制器101或經(jīng)由 集成電路100內的任何其它邏輯電路,從硬件唯一密鑰邏輯電路115,密碼邏輯電路113 讀出該“硬件唯一密鑰”。此一方法進一步詳細地圖解說明于第2圖。如第2圖所示,硬件唯一密鑰邏輯 電路115包含耦合至在密碼邏輯電路113內之對應序列接收器(serial receiver) 203的序列 加載器(serial loader) 201。使用由頻率邏輯電路114產生、經(jīng)由序列加載器201至密碼邏 輯電路113之序列接收器203的頻率訊號來頻率化代表來自硬件唯一密鑰邏輯電路115之
“硬件唯一密鑰”的位樣式。序列接收器203把該“硬件唯一密鑰”傳遞至無法被在密 碼邏輯電路113外部之邏輯電路存取的硬件唯一密鑰儲存存儲器125。根據(jù)該等各種具體實施例,儲存于密碼邏輯電路113內的“硬件唯一密鑰”可 用來加密加載於集成電路100的軟件使得使用該“硬件唯一密鑰”加密的軟件在集成電 路100是唯一的而且無法被任何其它集成電路或裝置使用。該等各種具體實施例的示范 方法系圖示于第3圖。在步驟301,該集成電路接收來自外部裝置的程序代碼映像。該 外部裝置可為服務器(例如,服務器127)或外部儲存所(例如,NAND閃存)或SD內 存(例如,外部儲存所129)。在步驟303,密碼邏輯電路113使用該“硬件唯一密鑰” 來加密該程序代碼映像以產生“硬件唯一程序代碼映像”,在此外部裝置127無法存取 該“硬件唯一密鑰”。同樣,任何外部裝置或外部集成電路都無法使用該已予加密的程 序代碼映像。在步驟305,該“硬件唯一程序代碼映像”可儲存于集成電路100內,在 此該“硬件唯一程序代碼映像”只有在解密操作使用該“硬件唯一密鑰”來解密該程序 代碼映像后才能執(zhí)行。例如,在第1圖中,外部裝置127可提供可經(jīng)由外圍控制器106獲 取及儲存于內部RAM107的程序代碼映像111作為映像111。CPU 105可請求密碼邏輯 電路113使用儲存于硬件唯一密鑰儲存存儲器125的“硬件唯一密鑰”來加密映像111。 在映像111加密后,可儲存已予加密的映像作為最終集成電路映像119于例如外部RAM 117中,如第1圖所示。隨后,在集成電路100外部的任何裝置都無法使用該最終集成電路映像119。第4解說明該等各種具體實施例的方法,其中可用中央處理單元105運行最 終集成電路映像119。例如,在步驟401,啟動只讀存儲器103可發(fā)送命令給密碼邏輯 電路113以請求使用該“硬件唯一密鑰”來解密“硬件唯一程序代碼映像”最終集成電 路映像119。然后,密碼邏輯電路113可由外部RAM 117獲取最終集成電路映像119以 及使用儲存于硬件唯一密鑰儲存存儲器125的“硬件唯一密鑰”來解密。如步驟403所 示,啟動只讀存儲器103在解密后接著執(zhí)行該“硬件唯一程序代碼映像”。第5解說明先前在說明第2圖時提及的方法。如步驟501所示的密碼邏輯 電路113可請求來自硬件唯一密鑰邏輯電路115的“硬件唯一密鑰”數(shù)據(jù),以及在步驟 503,硬件唯一密鑰邏輯電路115經(jīng)由如第2圖所示的控制器202指示序列加載器201發(fā) 送該“硬件唯一密鑰”位樣式給密碼邏輯電路序列接收器203。如步驟505所示,密碼 邏輯電路113儲存該“硬件唯一密鑰”于硬件唯一密鑰儲存存儲器125中。第6解 說明該等各種具體實施例的細節(jié),其中如步驟601所示,可將泛用程序代碼映像推入集 成電路100。盡管未圖示于第6圖,啟動只讀存儲器103軟件可證實推入集成電路100的 任何泛用程序代碼為有效的程序代碼。例如,集成電路100可在外部裝置127與集成電 路100之間做挑戰(zhàn)/響 應或一些其它適當安全機構(security mechanism)以證實外部裝置 127對于集成電路100為軟件的授權提供者。因此,根據(jù)該等具體實施例,如步驟601所 示,在進行與該程序代碼映像有關的任何其它操作之前,集成電路100會驗證推入該IC 的泛用程序代碼映像。在步驟603,藉由讀取不同的存儲器位置,集成電路100會偵查該 存儲器(例如,內部RAM 107或外部RAM 117)中不存在先前存入的泛用程序代碼映像 加密版。例如,可由啟動只讀存儲器103執(zhí)行此操作。假設在步驟603不存在找到先前存入的版本,啟動只讀存儲器103可發(fā)送命令給 密碼邏輯電路113請求該密碼邏輯電路產生隨機密鑰。如步驟607所示,密碼邏輯電路 113可使用隨機數(shù)產生器121 (在有些具體實施例中,它可為真隨機數(shù)產生器(traenmdom number generator))以按照請求來產生隨機密鑰。如步驟609所示,密碼邏輯電路113可 繼續(xù)使用儲存于硬件唯一密鑰儲存存儲器125的“硬件唯一密鑰”來加密該隨機密鑰, 然后啟動只讀存儲器103可儲存該加密隨機密鑰于存儲器的適當位置。如步驟611所示, 該密碼邏輯電路接著可使用該加密隨機密鑰來加密該程序代碼映像(例如,程序代碼映 像111)以及例如繼續(xù)儲存已予加密的程序代碼映像作為最終集成電路映像119。為了執(zhí)行最終集成電路映像程序代碼119,啟動只讀存儲器103會以加密的形式 發(fā)送該隨機密鑰給密碼邏輯電路113以及請求密碼邏輯電路113使用該隨機密鑰來解密最 終集成電路映像119。在有些具體實施例中,必須使用該硬件唯一密鑰來解密該隨機密 鑰。如步驟703所示,最終集成電路映像119會與來自啟動只讀存儲器103的請求通過 該密碼邏輯電路以使用該隨機密鑰來解密。在步驟705,該密碼邏輯電路可在已予解密 的映像上運行額外的雜湊測試(hashing test),其中也用該“硬件唯一密鑰”來加密該雜 湊。第8示另一具體實施例,其中藉由接收能夠被信賴快閃加載器程序代碼的 推入可開始快閃(initially flash)集成電路100。如步驟801所示,一開始可將泛用程序 代碼映像推入該集成電路,或替換地,如步驟809所示,經(jīng)由遠程服務器127或區(qū)域裝置(例如,外部儲存所129)來推入該集成電路。就這兩個具體實施例中之任一而言,如步 驟803所示,能夠被信賴快閃加載器程序代碼推入集成電路100是可能發(fā)生的。啟動只 讀存儲器103會使用例如保密雜湊(secure hash)來檢查該快閃加載器程序代碼。如本技 藝一般技術人員所習知,這涉及使用例如,公鑰/私鑰對(public/private key pair)或任何 其它適當?shù)陌踩珯C構。在步驟807,該快閃加載器程序代碼(例如,圖示于第1圖的快閃 加載模塊109)可與外部裝置(例如,外部服務器127)做挑戰(zhàn)/響應以得到該泛用程序代 碼的推入,如步驟809所示。根據(jù)該等各種具體實施例,如前文所述,可使用該“硬件 唯一密鑰”來加密該泛用程序代碼。第9解說明集成電路100用于各種情況的操作,其中系提供泛用程序代碼映像給該集成電路。例如,在泛用程序代碼映像推入集成電路后,啟動只讀存儲器103 即可檢查以藉由讀取不同的存儲器位置來偵查不存在先前存入的加密版本,如步驟901 所示。如步驟903所示,該啟動只讀存儲器可偵查程序代碼的確存在,然而仍然需要新 的程序代碼,例如,在存儲器中有較舊的版本然而裝置已推入較新的版本以便完成升級 的時候。在步驟907,啟動只讀存儲器103可起動如先前所述的密碼處理(cryptographic process),或在說明第8圖時提及的快閃加載器處理。第10解說明用于由硬件唯一密鑰邏輯電路115以保密方式傳輸硬件唯一密 鑰信息至密碼邏輯電路113的具體實施例。根據(jù)該圖標具體實施例,硬件唯一密鑰邏輯 電路115與密碼邏輯電路113存在由請求線路(request line) 1001、驗證線路(validation line) 1003及數(shù)據(jù)線路(data line) 1005組成的保密通訊線路。該保密通訊線路系與該集成 電路的任何掃描鏈(scan chain)及任何測試機構分離,使得密碼邏輯電路113以外的機構 都無法存取該硬件唯一密鑰信息。硬件唯一密鑰邏輯電路115 —開始是用硬件唯一密鑰 及裝置ID編程,有些具體實施例是在保密的環(huán)境中,例如,在制造集成電路的時候。第11圖為圖解說明一示范硬件唯一密鑰信息的位圖。例如,在有些具體實施例 中,該硬件唯一密鑰信息可包含裝置ID 1101與硬件唯一密鑰1103。該硬件唯一密鑰信 息可進一步包含鎖定位(Iockbit) 1105,在有些具體實施例中,它可為單一位。例如,裝 置ID 110有128個位長,硬件唯一密鑰有128個位長,以及鎖定位為單一位。因此,密 碼邏輯電路113可包含裝置ID儲存處1007供儲存裝置ID 1101用。第12解說明圖示于第10圖之具體實施例的操作。在步驟1201,可發(fā)生該集 成電路或硬件唯一密鑰邏輯電路115的重置。在步驟1203,硬件唯一密鑰邏輯電路115讀 取對應于如上述程序化之保密環(huán)境的保密內部固定位區(qū)(secure internal fixed bit region)。 在步驟1205,硬件唯一密鑰邏輯電路115對于該位樣式可做循環(huán)冗余檢查(CRC)以確保 它的有效性。密碼邏輯電路113可透過保密數(shù)據(jù)請求線路1001來請求該硬件唯一密鑰信 息,如步驟1207所示。然后,該硬件唯一密鑰邏輯電路可透過驗證線路1003來確認該 硬件唯一密鑰信息的有效性,以及透過數(shù)據(jù)線路1005來提供該硬件唯一密鑰信息給密碼 邏輯電路113,如步驟1209所示。如第11圖所示,鎖定位1105會被傳輸至密碼邏輯電 路113作為序列線路(serial line)上的第一個位,之后是例如可為128個位的硬件唯一密鑰 1103,然后同樣可為128個位的裝置ID1101,在有些具體實施例中,該序列傳輸是由最 小有效位到最大有效位。該鎖定位用作給密碼邏輯電路113的旗標藉此不需要計數(shù)器。 然后,密碼邏輯電路113可撤消(de-assert)請求線路1001上的請求,如步驟1211所示。該硬件唯一密鑰信息可能透過數(shù)據(jù)線路1005來傳輸。
本文以上所提出的詳細描述及實施例只是為了圖解說明而不是限制。例如,可 用任何適當?shù)姆绞阶龀錾鲜霾僮?。可用仍可提供上述操作及結果的任何適當順序來完成 該等方法步驟。因此,希望該等本發(fā)明具體實施例涵蓋落入揭示于上文及以下申請專利 范圍的基本原理之精神及范疇內的任一及所有修改、變體及等價陳述。
權利要求
1.一種方法,其包含下列步驟通過使用硬件唯一密鑰的密碼邏輯電路來加密來自外部裝置的程序代碼映像以產生 硬件唯一程序代碼映像,該外部裝置無法存取該硬件唯一密鑰;以及儲存該硬件唯一程序代碼映像,其中該硬件唯一程序代碼映像只有在使用該硬件唯 一密鑰來解密該硬件唯一程序代碼映像后才能執(zhí)行。
2.根據(jù)權利要求1所述的方法,其包含下列步驟向該密碼邏輯電路發(fā)送命令,該命令請求由該密碼邏輯電路使用該硬件唯一密鑰來 解密該硬件唯一程序代碼映像;解密該硬件唯一程序代碼映像;以及在該解密后,由該啟動軟件執(zhí)行該硬件唯一程序代碼映像。
3.根據(jù)權利要求1所述的方法,其中通過使用硬件唯一密鑰的密碼邏輯電路來加密該 程序代碼映像以產生硬件唯一程序代碼映像,該外部裝置無法存取該硬件唯一密鑰,進 一步包含下列步驟向該密碼邏輯電路發(fā)送命令以請求該密碼邏輯電路產生隨機密鑰; 由該密碼邏輯電路產生隨機密鑰;由該密碼邏輯電路使用該硬件唯一密鑰來加密該隨機密鑰; 在存儲器中儲存該加密隨機密鑰;以及 由該密碼邏輯電路使用該加密隨機密鑰來加密該程序代碼映像。
4.根據(jù)權利要求1所述的方法,在接收來自外部裝置的程序代碼映像之后,包含下列 步驟確定在存儲器中不存在該程序代碼映像的先前加密版本。
5.根據(jù)權利要求1所述的方法,在接收來自外部裝置的程序代碼映像之后,包含下列 步驟確定在存儲器中存在該程序代碼映像的先前加密版本以及需要程序代碼更新。
6.根據(jù)權利要求5所述的方法,在確定存儲器中存在該程序代碼映像的先前加密版本 以及需要程序代碼更新之后,包含下列步驟把快閃加載器程序代碼推入存儲器;由啟動軟件證實該快閃加載器程序代碼能夠被信賴;執(zhí)行該快閃加載器程序代碼;與外部裝置執(zhí)行挑戰(zhàn)/響應安全例程;以及得到來自該外部裝置的程序代碼映像的推入。
7.根據(jù)權利要求1所述的方法,在通過密碼邏輯電路使用硬件唯一密鑰來加密該程序 代碼映像之前,包含下列步驟請求來自硬件唯一密鑰序列加載器的硬件唯一密鑰;以及用序列接收器接收來自該序列加載器且對應于該硬件唯一密鑰的組序列位。
8.—種集成電路,其包含 存儲器;以及耦合至該存儲器的密碼邏輯電路,該密碼邏輯電路能夠被操作以 使用硬件唯一密鑰來加密程序代碼映像以產生硬件唯一程序代碼映像,經(jīng)由該集成電路的任何端口都無法存取該硬件唯一密鑰;以及儲存該硬件唯一程序代碼映像于該存儲器中,其中該硬件唯一程序代碼映像只有在 使用該硬件唯一密鑰來解密該硬件唯一程序代碼映像后才能執(zhí)行。
9.根據(jù)權利要求8所述的集成電路,其包含外圍控制器,其能夠被操作以控制外部裝置由該外圍控制器接收該程序代碼映像; 存儲器控制器,其耦合至該密碼邏輯電路;以及啟動只讀存儲器,其耦合至該存儲器控制器;該啟動只讀存儲器能夠被操作以 向該密碼邏輯電路發(fā)送請求以請求由該密碼邏輯電路使用該硬件唯一密鑰來解密該 硬件唯一程序代碼映像;以及在該解密后,執(zhí)行該硬件唯一程序代碼映像。
10.根據(jù)權利要求8所述的集成電路,其包含能夠被操作地耦合至該存儲器及該密碼邏輯電路的CPU,其中該存儲器控制器能夠 被操作以向該密碼邏輯電路發(fā)送命令,由該存儲器控制器響應該請求,以導致該密碼邏輯電 路能夠產生隨機密鑰;以及其中該密碼邏輯電路更能夠被操作以產生該隨機密鑰以響應該命令;以及使用該硬件唯一密鑰來加密該隨機密鑰以產生加密隨機密鑰;在密鑰儲存存儲器中儲存該加密隨機密鑰;以及使用該加密隨機密鑰來加密該程序代碼映像。
11.根據(jù)權利要求9所述的集成電路,其中該啟動只讀存儲器更能夠被操作以 在接收來自該外部裝置的該程序代碼映像之后,確定該集成電路的內部存儲器中不存在該程序代碼映像的先前加密版本。
12.根據(jù)權利要求9所述的集成電路,其中該啟動只讀存儲器更能夠被操作以 在接收來自該外部裝置的該程序代碼映像之后,確定該集成電路的內部存儲器中存在該程序代碼映像的先前加密版本;以及 確定需要該程序代碼映像的程序代碼更新。
13.根據(jù)權利要求12所述的集成電路,其中該外圍控制器能夠進一步被操作以 接收推入該集成電路的該內部存儲器的快閃加載器程序代碼;以及其中,該啟動只讀存儲器能夠進一步被操作以證實該快閃加載器程序代碼能夠被信賴;以及執(zhí)行該快閃加載器程序代碼,其中該快閃加載器程序代碼能夠被操作以 與該外部裝置執(zhí)行挑戰(zhàn)/響應安全例程;以及由該外部裝置取得該程序代碼映像的推入以響應該挑戰(zhàn)/響應安全例程的正確響應。
14.根據(jù)權利要求8所述的集成電路,其包含能夠被操作地耦合至該密碼邏輯電路的硬件唯一密鑰邏輯電路,該硬件唯一密鑰邏 輯電路能夠被操作以從該密碼邏輯電路接收對于該硬件唯一密鑰的請求;以及發(fā)送該硬件唯一密鑰給該密碼邏輯電路以響應該請求。
15.根據(jù)權利要求14所述的集成電路,其中該硬件唯一密鑰邏輯電路進一步包含 序列加載器;以及其中該密碼邏輯電路進一步包含能夠被操作地耦合至該硬件唯一密鑰邏輯電路的該序列加載器的序列接收器,該序 列接收器能夠被操作以接收來自該序列加載器的組序列位,該組序列位對應于該硬件唯一密鑰。
16.根據(jù)權利要求15所述的集成電路,其中該硬件唯一密鑰邏輯電路最初被配置為預 定位樣式,該位樣式用于產生對應于該硬件唯一密鑰的該組序列位,該硬件唯一密鑰邏 輯電路在初始配置后被永久地配置成該預定位樣式。
17.根據(jù)權利要求10所述的集成電路,其中該密碼邏輯電路進一步包含 隨機數(shù)產生器邏輯電路,其能夠被操作以產生該隨機密鑰。
18.—種集成電路,其包含外圍控制器,其能夠被操作以控制外部裝置由該外圍控制器接收該程序代碼映像; 存儲器;硬件唯一密鑰邏輯電路;能夠被操作地耦合至該存儲器及該硬件唯一密鑰邏輯電路的密碼邏輯電路,該密碼 邏輯電路能夠被操作以發(fā)送對于該硬件唯一密鑰的請求給該硬件唯一密鑰邏輯電路; 接收來自該硬件唯一密鑰邏輯電路的該硬件唯一密鑰以響應該請求; 使用該硬件唯一密鑰來加密該程序代碼映像以產生硬件唯一程序代碼映像,該集成 電路的任何端口都無法存取該硬件唯一密鑰;以及在該存儲器中儲存該硬件唯一程序代碼映像,其中該硬件唯一程序代碼映像只有在 使用該硬件唯一密鑰來解密該硬件唯一程序代碼映像后才能執(zhí)行; 存儲器控制器,其能夠被操作地耦合至該密碼邏輯電路;以及 啟動只讀存儲器,其能夠被操作地耦合至該存儲器控制器;該啟動只讀存儲器能夠 被操作以發(fā)送請求給該密碼邏輯電路以請求由該密碼邏輯電路使用該硬件唯一密鑰來解密該 硬件唯一程序代碼映像;以及在該解密后,執(zhí)行該硬件唯一程序代碼映像。
19.根據(jù)權利要求18所述的集成電路,其包含CPU,其能夠被操作地耦合至該外圍控制器、該存儲器、該硬件唯一密鑰邏輯電 路、該密碼邏輯電路、該存儲器控制器、以及該啟動只讀存儲器,其中該CPU能夠被操 作以向該密碼邏輯電路發(fā)送命令,由該啟動只讀存儲器響應該請求,以導致該密碼邏輯 電路能夠產生隨機密鑰;以及其中該密碼邏輯電路能夠進一步被操作以 產生該隨機密鑰以響應該命令;使用該硬件唯一密鑰來加密該隨機密鑰以產生加密隨機密鑰;在密鑰儲存存儲器中儲存該加密隨機密鑰;以及 使用該加密隨機密鑰來加密該程序代碼映像。
20.根據(jù)權利要求19所述的集成電路,其中該外圍控制器更能夠被操作以 接收推入該集成電路的該內部存儲器的快閃加載器程序代碼;以及其中該啟動只讀 存儲器更能夠被操作以證實該快閃加載器程序代碼能夠被信賴; 執(zhí)行該快閃加載器程序代碼; 與該外部裝置執(zhí)行挑戰(zhàn)/響應安全例程;以及由該外部裝置取得該程序代碼映像的推入以響應給該挑戰(zhàn)/響應安全例程的正確的 響應。
全文摘要
揭示于本文的各種具體實施例系包含一種方法,其中集成電路(100)可接收來自外部裝置(127)的程序代碼映像,由密碼邏輯電路(113)使用硬件唯一密鑰來加密該程序代碼映像以產生硬件唯一程序代碼映像,在此該外部裝置(127)系無法存取該硬件唯一密鑰。然后,集成電路(100)會儲存該硬件唯一程序代碼映像,其中該硬件唯一程序代碼映像只有在使用該硬件唯一密鑰來解密后才能執(zhí)行。該方法也包含下列步驟向密碼邏輯電路(113)發(fā)送命令以請求由密碼邏輯電路(113)使用該硬件唯一密鑰來解密該硬件唯一程序代碼映像,以及在解密后由啟動只讀存儲器(103)來執(zhí)行該硬件唯一程序代碼映像。
文檔編號G06F21/00GK102027707SQ200980117647
公開日2011年4月20日 申請日期2009年5月14日 優(yōu)先權日2008年5月16日
發(fā)明者A·道斯瑞耐迪歐斯, D·福利, S·T·謝勒 申請人:Ati技術無限責任公司