[go: up one dir, main page]

TW201502847A - 運用一電腦處理器使用一安全非揮發儲存器之系統、方法及裝置 - Google Patents

運用一電腦處理器使用一安全非揮發儲存器之系統、方法及裝置 Download PDF

Info

Publication number
TW201502847A
TW201502847A TW103109320A TW103109320A TW201502847A TW 201502847 A TW201502847 A TW 201502847A TW 103109320 A TW103109320 A TW 103109320A TW 103109320 A TW103109320 A TW 103109320A TW 201502847 A TW201502847 A TW 201502847A
Authority
TW
Taiwan
Prior art keywords
data
block
computer processor
authentication
encryption
Prior art date
Application number
TW103109320A
Other languages
English (en)
Inventor
Sergey Ignatchenko
Original Assignee
Ologn Technologies Ag
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 Ologn Technologies Ag filed Critical Ologn Technologies Ag
Publication of TW201502847A publication Critical patent/TW201502847A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

本文描述之系統、方法及裝置提供一種用於存取安全儲存在一電腦處理器外部之資料之系統。在一態樣中,該電腦處理器可包括一中央處理單元(CPU)及一記憶體控制器。該記憶體控制器可包括:儲存一金鑰之一儲存器;一第一組電路;及一安全模組。該第一組電路可經組態以自該CPU接收對一資料片段之一請求、判定需要自一外部儲存器讀取以一受保護格式儲存之所請求資料片段且自該外部儲存器讀取呈該受保護格式之該資料片段。該安全模組可經組態以使用儲存於該儲存器中之該金鑰對呈該受保護格式之該資料片段執行鑑認及解密之至少一者。

Description

運用一電腦處理器使用一安全非揮發儲存器之系統、方法及裝置 [相關申請案]
本申請案主張2013年3月14日申請之名為「Systems,Methods and Apparatuses for Using a Secure Non-volatile Storage with A Computer Processor」之美國臨時申請案第61/785,388號之優先權,該案之內容係以引用之方式全部併入本文。
本文描述之系統、方法及裝置係關於在一安全非揮發儲存器中安全地儲存資料及使用安全地儲存於此一安全非揮發儲存器中之該資料之電腦處理器。
一電腦處理器通常對資料(例如,程式碼或由程式碼操作之資料)使用多個儲存器。例如,除晶片上快取記憶體(例如,L1、L2快取區)以外,一現代電腦處理器亦需要存取其主機電腦系統之主記憶體以滿足計算要求。然而,自電腦處理器外部(諸如主記憶體)載入資料承擔許多安全風險,這係因為資料可能被篡改或更糟糕的是,資料可能係惡意的。因此,出於安全目的,有時候希望對某些資料(例如,安全相關邏輯、BIOS)進行防篡改保護、讀保護(或二者)。
一種現有的解決方案將待保護的資料儲存在電腦處理器晶片 上。然而,此解決方案受限於電腦晶片上可用之非揮發儲存空間。此外,增加非揮發儲存空間以容納更多資料一般係不切實際的。因此,此項技術需要將某些資料安全地儲存在一電腦處理器晶片外部之一非揮發儲存器中。
100A‧‧‧系統
100B‧‧‧系統
105‧‧‧資料區段
110‧‧‧加密資料區段
112‧‧‧中央處理單元
112A‧‧‧中央處理單元
114‧‧‧L2快取區
114A‧‧‧L2快取區
115‧‧‧鑑認值
116‧‧‧L3快取區
130‧‧‧記憶體介面/介面
150A‧‧‧電腦處理器/處理器
150B‧‧‧處理器晶片/處理器
160‧‧‧記憶體控制器/控制器
160A‧‧‧記憶體控制器
160B‧‧‧記憶體控制器
165‧‧‧加密/解密金鑰/不對稱金鑰/金鑰
170‧‧‧對稱金鑰
172‧‧‧公用金鑰
174‧‧‧安全記憶體
175‧‧‧輸入/輸出埠
176‧‧‧加密模組/加密引擎
178‧‧‧簽名驗證模組/驗證模組
180‧‧‧隨機數產生器
190‧‧‧非揮發儲存器程式設計模組
192‧‧‧非揮發儲存器
195‧‧‧隨機存取記憶體
200‧‧‧程序
205‧‧‧步驟
210‧‧‧步驟
215‧‧‧步驟
220‧‧‧步驟
225‧‧‧步驟
227‧‧‧步驟
230‧‧‧步驟
300‧‧‧程序
305‧‧‧步驟
310‧‧‧步驟
312‧‧‧步驟
315‧‧‧步驟
320‧‧‧步驟
325‧‧‧步驟
330‧‧‧步驟
335‧‧‧步驟
430‧‧‧解密引擎/
432‧‧‧輸入緩衝器
435‧‧‧鑑認引擎
440‧‧‧鑑認緩衝器
445‧‧‧暫時緩衝器
500‧‧‧程序
560‧‧‧步驟
565‧‧‧步驟
570‧‧‧步驟
575‧‧‧步驟
580‧‧‧步驟
585‧‧‧步驟
587‧‧‧步驟
590‧‧‧步驟
592‧‧‧步驟
594‧‧‧步驟
596‧‧‧步驟
610‧‧‧伽羅瓦域乘法引擎/伽羅瓦域乘法器引擎
620‧‧‧H儲存器
622‧‧‧計數器
625‧‧‧比較器
630‧‧‧加密引擎
640‧‧‧鑑認緩衝器
646‧‧‧互斥或模組
648‧‧‧互斥或模組
700‧‧‧程序
760‧‧‧步驟
765‧‧‧步驟
770‧‧‧步驟
775‧‧‧步驟
780‧‧‧步驟
785‧‧‧步驟
790‧‧‧步驟
792‧‧‧步驟
794‧‧‧步驟
800‧‧‧程序
805‧‧‧步驟
810‧‧‧步驟
812‧‧‧步驟
815‧‧‧步驟
820‧‧‧步驟
825‧‧‧步驟
830‧‧‧步驟
840‧‧‧更新
841‧‧‧資料區塊
841-1‧‧‧區塊
841-n‧‧‧區塊
842‧‧‧終止區塊
844‧‧‧雜湊
845‧‧‧更新ID
846‧‧‧區塊資料
847‧‧‧區塊位址
848‧‧‧區塊雜湊
849‧‧‧區塊簽名
850‧‧‧程序
860‧‧‧步驟
862‧‧‧步驟
864‧‧‧步驟
865‧‧‧步驟
866‧‧‧步驟
867‧‧‧步驟
870‧‧‧步驟
872‧‧‧步驟
875‧‧‧步驟
880‧‧‧步驟
882‧‧‧步驟
883‧‧‧步驟
885‧‧‧步驟
圖1A係根據本發明之一例示性系統之一方塊圖。
圖1B係展示根據本發明之一非揮發儲存器上之資料之儲存及使用之一方塊圖。
圖2係根據本發明之製備一非揮發儲存器及一電腦處理器之一例示性程序之一流程圖。
圖3係根據本發明之使用一非揮發儲存器之一電腦處理器之一例示性程序之一流程圖。
圖4係根據本發明之一例示性儲存控制器之一方塊圖。
圖5係根據本發明之自一非揮發儲存器讀取資料之一例示性程序之一流程圖。
圖6係根據本發明之另一例示性記憶體控制器之一方塊圖。
圖7係根據本發明之自一非揮發儲存器讀取資料之另一例示性程序之一流程圖。
圖8係根據本發明之另一例示性系統之一方塊圖。
圖9A係根據本發明之在一非揮發記憶體上儲存資料之一例示性程序之一流程圖。
圖9B係根據本發明之展示用於對一非揮發儲存器執行一更新之例示性資料結構之一方塊圖。
圖9C係根據本發明之應用一更新於一非揮發儲存器之一例示性程序之一流程圖。
本文結合以下描述及隨附圖式描述根據本發明之系統、裝置及方法之某些闡釋性態樣。然而,此等態樣僅指示可採用本發明之原理之各種方式中的幾種方式且本發明旨在包含所有此等態樣及其等等效物。在結合圖式考慮時可從以下詳細描述明白本發明之其他優點及新穎特徵。
在以下詳細描述中,陳述數種特定細節以提供對本發明之一完整理解。在其他例項中,並未詳細展示熟知結構、介面及程序以免不必要地混淆本發明。然而,一般技術者將明白,本文揭示之該等特定細節無需用來實踐本發明且惟申請專利範圍中敘述以外並不表示對本發明之範疇之限制。希望本說明書之任何部分皆不會被解釋成實現對本發明之全範疇之任何部分之一否定。雖然已描述本發明之某些實施例,但是此等實施例同樣不旨在限制本發明之全範疇。
本發明包括用於將受保護資料儲存在一非揮發儲存器中且由一電腦處理器使用受保護資料之系統、方法及裝置,其中電腦處理器可以一非循序方式(例如,隨機存取)請求受保護資料。可加密、鑑認或鑑認並加密受保護資料。在一實施例中,當將受保護資料儲存至非揮發儲存器時可加密及/或鑑認受保護資料。在電腦處理器之操作期間,可由電腦處理器自非揮發儲存器讀取並在電腦處理器內解密/鑑認受保護資料。因此,即使一攻擊者在自非揮發儲存器之中轉期間截獲資料及/或自非揮發儲存器讀取加密資料,資料之安全性仍未被破壞。
圖1A展示根據本發明之一例示性系統100A之一方塊圖。例示性系統100A可為一電腦系統之部分(例如,主機電腦系統之一母板上之若干組件)且可包括一處理器150A、一隨機存取記憶體(RAM)195及一非揮發儲存器192。處理器150A可包括一或多個核心,其(其等)可被稱為中央處理單元(CPU)(例如,CPU0 112及CPU1 112A)。CPU可 具有快取區(例如,L1快取區、L2快取區、L3快取區)。作為圖1A中所示之一非限制實例,CPU 112及112A可各自具有其自身的L2快取區(即,L2快取區114及L2快取區114A),但是共用一L3快取區116。CPU可執行指令並處理資料。指令及待處理之資料可在本文統稱為資料。資料可提取自處理器150A外部且當由CPU執行或操作時儲存於快取區中。
處理器150A可進一步包括一記憶體控制器160,其可包括一加密/解密金鑰165。記憶體控制器160可經組態以經由一介面130自一外部儲存器提取資料。因此,無論何時CPU需要不能在快取區(例如,L2或L3快取區)中獲得之資料,記憶體控制器160皆可自外部儲存器提取CPU所需之資料。外部儲存器可為處理器150A外部之任何處理器,其可儲存可由處理器150A存取之資料。例如,如圖1A中所示,外部儲存器可包括隨機存取記憶體(RAM)195及非揮發儲存器192。在一非限制實施例中,RAM 195可為擁有處理器150A之電腦系統之主記憶體。RAM 195可包括任何揮發記憶體模組,其等在斷電時可丟失儲存於其中的資料。藉由實例且無限制,RAM 195可包括雙倍資料速率同步動態隨機存取記憶體(DDR SDRAM)、DDR2 SDRAM或DDR3 SDRAM等等。
非揮發儲存器192可包括即使在斷電時亦可保護儲存於其中之資料之任何非揮發儲存器。例示性非揮發儲存器192可為(但不限於)可擦除可程式化唯讀記憶體(EPROM)、電可擦除可程式化唯讀記憶體(EEPROM)或快閃記憶體。在一些實施例中,儲存於非揮發儲存器192上之資料可被複製至RAM 195以由處理器150A提取。在一些其他實施例中,儲存於非揮發儲存器192上之資料可經由一介面(未展示)由記憶體控制器160直接提取而無需首先被複製至RAM 195。非揮發儲存器192可以明文儲存普通資料(即,無需鑑認或解密)及/或將普通 資料儲存為受保護資料(即,需要鑑認及/或解密)。
金鑰165可為用於在必要時鑑認及/或解密所提取之資料之一或多個加密及/或解密金鑰。在一些情況下,提取自外部儲存器之資料可呈明文形式且無需鑑認。在此等情況下,所提取之資料可直接轉發至CPU(例如,核心及/或其等快取區)而無需由記憶體控制器160進一步處理。然而,在一些其他情況下,提取自外部儲存器之資料可能需要被解密(若其已加密)、鑑認或二者。需要解密及/或鑑認之資料可被稱為受保護資料。在該等情況下,記憶體控制器160可使用金鑰165以解密所提取之資料、鑑認所提取之資料或解密並鑑認已解密資料。在一非限制實施例中,金鑰165可為一對稱金鑰或一公用/私密金鑰對之一私密或公用金鑰之一或多者。金鑰165可儲存於處理器150A之唯讀記憶體中且不可在處理器150A外部曝露。例如,金鑰165可以硬體實施為控制器160之一部分。下文將更詳細描述解密及鑑認程序。
在一或多個實施例中,記憶體控制器160可封裝在與處理器150A之其他組件相同之實體外殼內。例如,記憶體控制器160可製造於與CPU及快取區相同之矽晶片上。在一非限制實施例中,實體外殼可抗篡改或至少防篡改。實體外殼可被稱為一晶片(無關於晶片之所有組件是否可在一單一半導體晶圓或互連之多個半導體晶圓上)。
圖1B係根據本發明之展示非揮發儲存器192上之資料之例示性儲存及使用之一方塊圖。如圖1B中所示,待儲存於非揮發儲存器192中之資料可以資料區段為單位。一資料區段105可被示為一代表,但是針對待儲存之資料可存在多個此等資料區段105。在一非限制實施例中,資料區段105之各者可對應於處理器150A之一(或多個)快取線。當資料需要儲存在非揮發儲存器192中時,可將資料區段105加密為一加密資料區段110且亦可產生並儲存一鑑認值115。資料區段105之加密及鑑認值115之產生可使用此項技術中已知或未來開發之各種加密 及鑑認演算法,下文將詳細描述一些例示性實施方案。在一些情況下,待儲存之資料在使用時無需加密但是需要鑑認。在此等情況下,可產生鑑認值115,但是加密資料區段110可為資料區段105之一副本。在僅鑑認以及加密及鑑認二者的情境下,當自非揮發儲存器讀取所儲存之資料以由一處理器(例如,處理器150A)使用時,可在一解密(若已加密資料)及確認程序期間產生一鑑認值。在一非限制實施例中,可比較所產生之鑑認值與所儲存之鑑認值115,其亦可連同加密資料區段110一起被讀取至記憶體控制器160中。
在一或多個實施例中,資料區段105及加密資料區段110在位元數目方面可具有相同長度。因為鑑認值115可連同加密資料區段110一起儲存,所以可存在一儲存額外耗用。在許多情況下,可能需要由記憶體控制器160再計算位址。在一非限制實施例中,可加倍用於待儲存之各資料區段之所分配位址空間以容納鑑認值之額外耗用。即,各加密資料區段110及鑑認值115可採用的位址空間多達原始資料區段105的兩倍。加倍位址空間途徑僅僅係一例示性途徑且除加倍位址空間途徑以外亦可使用其他合適組態或可使用其他合適組態來代替加倍位址空間途徑。
在一非限制實施例中,可使用具有密碼區塊鏈結訊息鑑認碼(CBC-MAC)之計數器(CCM)鑑認加密演算法實施加密/驗證方案。在以引用方式全部併入本文之網際網路工程任務編組(IETF)請求評論(RFC)3610中定義CCM。CCM演算法判定鑑認欄中之八位元組之數目之一數字M及待加密之資料之長度之八位元組之數目之一數字L。例如,非揮發儲存器192可具有64個位元組之快取線且各資料區段105可儲存於一個別快取線中,接著可使用CCM演算法個別地加密各資料區段105,其中L=2且M=6。L=2且M=6之CCM演算法可產生用於加密資料區段110之64個加密位元組及用於鑑認值115之16個位元組的鑑認 值。因此,在一處理器(例如,處理器150A)之一讀取操作期間,記憶體控制器160可需要讀取的受保護資料(包含加密資料區段110及鑑認值115二者)之資料區塊多於讀取一普通的未受保護的快取線(例如,單單資料區段105)。例如,若記憶體介面130係一64位DDR-3介面,則記憶體控制器160可需要讀取(且隨後驗證)10個64位DDR-3資料區塊(針對一受保護資料快取線)而非僅8個64位DDR-3資料區塊(針對一普通快取線)。應注意,上文陳述之參數(例如,L、M、64位元組快取線、DDR-3資料區塊)僅僅係例示性的且可使用許多其他參數集(例如,在一些實施例中,可將M限於8,從而將儲存額外耗用減小(但未消除)為8個位元組)。下文將詳細描述產生待寫入至非揮發儲存器192之內容且使用來自非揮發儲存器192之資料之例示性程序。亦可使用其他加密/驗證方案(例如下文詳細描述之EAX或GCM)。
圖2展示根據本發明之製備一非揮發儲存器及一電腦處理器之一例示性程序200。在方塊205處,可產生一加密金鑰。例如,一受信賴方可隨機產生用於加密儲存於非揮發儲存器192中之資料之一加密金鑰。受信賴方可為處理器150A之一製造商、非揮發儲存器192之一製造商或處理器150A及非揮發儲存器192之製造商信賴之任何第三方。取決於用於儲存於非揮發儲存器192中之資料之加密演算法,加密金鑰可為用於對稱加密之一對稱金鑰或用於不對稱加密之一對公用及私密金鑰。應注意在一些實施例中,非揮發儲存器192及處理器150A可由一共同製造商製造。
在方塊210處,可將所產生之加密金鑰儲存於電腦處理器150A內部(例如,作為金鑰165)。若資料加密係對稱加密,則所產生之金鑰係一對稱金鑰且此對稱金鑰可儲存於電腦處理器150A中。若資料加密係不對稱加密,則當公用金鑰用於加密時可將私密金鑰儲存在處理器150A中,或替代地,當私密金鑰用於加密時可將公用金鑰儲存在 處理器150A中。
在一或多個實施例中,可以相同或類似於儲存一獨有處理器識別符(例如,如用於INTEL Pentium III®處理器之處理器序號)之一方式將所產生之金鑰儲存在處理器150A內。然而,如下文詳細描述,與獨有處理器識別符之處置相反,此儲存之金鑰應受保護以免受外部存取且不應在處理器150A外部曝露。應注意,不同於處理器序號,以本發明中描述之一方式儲存所產生之加密金鑰並不產生與處理器序號相關聯之隱私問題。
在其他實施例中,可將所產生之加密金鑰儲存在駐留在處理器150A內之一非揮發記憶體(例如,EPROM或EEPROM或快閃記憶體或電池支持的靜態RAM)內。
在方塊215處,例示性程序200可使用所產生之加密金鑰保護儲存於非揮發儲存器192中之資料。如上文描述,所產生之加密金鑰可為一對稱金鑰或一對不對稱金鑰。因此,在一實施例中,若加密受保護資料,則取決於所選擇的演算法,加密可使用一對稱金鑰而呈對稱性或使用一公用或私密金鑰而呈不對稱性。在另一實施例中,可以一未加密但經鑑認格式(例如,明文)將受保護資料儲存於非揮發儲存器192中。應注意,由於加密金鑰為所製造之處理器150A之各者所獨有,故受保護資料亦為所製造之處理器150A之各者所獨有。應進一步注意,在不同實施例中,可並行、交錯或一個接一個無特定順序地執行方塊210及215。
在一些實施例中,可由生產處理器150A(或執行方塊210)之相同生產線執行方塊215。
接著在方塊220處,可自任何暫時儲存器擦除所產生之金鑰。應注意,用於產生並傳送金鑰之任何儲存器可被視為暫時儲存器。因此,可自產生金鑰之電腦系統之記憶體、用於轉變之媒體(非暫時性 媒體可遭遇實體破壞)及/或可執行方塊215中之加密之電腦系統之記憶體擦除金鑰。在一或多個實施例中,自任何暫時儲存器擦除所產生之金鑰可確保無法使用此金鑰加密任何其他資料且可增強加密資料之安全性。
在方塊225處,可在處理器150A與在方塊215處產生之受保護資料之間形成一關聯。在一非限制實施例中,處理器150A之一處理器序號可與受保護資料相關聯。例如,可產生一資料庫(未展示)中之一項目,其含有用於特定處理器150A之受保護資料及處理器150A之處理器序號二者。
在方塊227處,例示性程序200可將受保護資料(產生於方塊215中)儲存於非揮發儲存器192中。應注意,由於資料已受到保護,故這並非一安全敏感操作,意謂當受保護資料在中轉時無需保護受保護資料且在受保護資料被寫入至非揮發儲存器192之後亦無需保護受保護資料。此外,作為方塊227之一部分,具有所儲存之受保護資料之非揮發儲存器192可與一特定處理器150A相關聯(例如,非揮發儲存器192可具有具備可連同其一起使用之處理器之識別符之一標記)。
接著在方塊230處,可向顧客發行處理器150A及相關聯之非揮發儲存器192。
可由可自非揮發儲存器192讀取或自RAM 195讀取(若資料被複製至RAM 195)之任何器件存取儲存於非揮發儲存器192中之資料。然而,可僅在相關聯之處理器150A內部發生受保護資料之解密及/或鑑認。圖3展示根據本發明之可由記憶體控制器160之一實施例實施以實施解密及/或鑑認之一例示性程序300。
例示性程序300可開始於方塊305處,此時可由記憶體控制器160自一CPU接收對資料之一請求。例如,一CPU(例如,CPU0 112)可請求不可在快取區(例如,L2或L3快取區)中獲得之資料,且因此可將一 資料請求傳遞至記憶體控制器160以自外部儲存器(諸如主記憶體(例如,RAM 195))提取所請求資料。接著在方塊310處,程序300可判定是否需要讀取呈一安全格式之所請求資料。在一非限制實施例中,記憶體控制器160可需要判定所請求資料是否係非加密資料且無需鑑認(即,普通資料)。例如可藉由比較所請求資料之一位址與可經保留而用於受保護資料(例如,經加密/確認之資料)之位址範圍之一預定義表來作出判定。若所請求資料係普通資料,則記憶體控制器160可在方塊312處經由介面130提取普通資料,且將所提取資料傳回至請求者而無需進一步處理,且可結束例示性程序300。然而,若所請求資料係RAM 195中之受保護資料或需要直接自非揮發儲存器192讀取之受保護資料,則記憶體控制器160可繼續進行例示性程序300。在一些實施例中,預定義表中之位址範圍之一者可包含一位址,當CUP在一CPU重設之後開始執行時CPU應使用該位址作為起點。
接著,在方塊315處,可自非揮發儲存器讀取受保護資料。如上文描述,記憶體控制器160可直接自非揮發儲存器192或自可含有預提取自非揮發儲存器192之受保護資料之RAM 195讀取記憶體區段。在方塊320處,可解密並在必要時鑑認讀取至記憶體控制器160中之受保護資料(即,可確認用於資料區段105之各者之一鑑認值115)。應注意,若最初可加密進入處理器150A中之受保護資料,則可僅在處理器150A內部發生資料解密。此外,如上文描述,處理器150A外部不存在可用的金鑰165之複本。因此,在處理器150A外部截獲呈未加密形式之加密資料可能係不可能的。
在判決區塊325處,可判定鑑認是否成功。若核對成功,則例示性程序300可進行至方塊330,此時可將解密資料或鑑認明文資料轉發至請求CPU。CPU可繼續處理所提取資料。應注意,若在處理器150A內部成功驗證受保護資料,則可使用金鑰165產生受保護資料(例如, 在程序200期間),且因此此資料可為處理器150A可信賴之有效資料。
在方塊325處,若鑑認失敗,則例示性程序300可進行至方塊335,此時可報告失敗(例如,向請求資料之CPU或處理器150A之其他監控組件報告)。在一些實施例中,可額外地使處理器150A進入一特殊狀態,該狀態僅可在一定的時間之後-例如1秒鐘-且僅經由一全CPU重設而重設。
圖4係根據本發明之一例示性記憶體控制器160A之一方塊圖。記憶體控制器160A可為記憶體控制器160之一實施例。如圖4中所示,除如記憶體控制器160中所示之金鑰165以外,記憶體控制器160A可進一步包括一輸入緩衝器432、一解密引擎430、一鑑認引擎435、一鑑認緩衝器440及一暫時緩衝器445。記憶體控制器160A可自記憶體介面130讀入資料、在輸入緩衝器432中緩衝所接收之資料以獲得預定資料區塊(取決於選定用於特定加密/鑑認演算法之參數),且接著將預定資料區塊轉發至解密引擎430。預定資料區塊之大小可至少部分取決於選定用於特定加密/鑑認演算法之參數。藉由實例且無限制,可在輸入緩衝器432中緩衝資料以獲得128位(即,16個位元組)區塊。解密引擎430可使用金鑰165解密所接收資料且將解密資料發送至鑑認引擎435及暫時緩衝器445之適當部分(取決於在將資料儲存於非揮發儲存器中時選擇之參數,其可具有預定數目個位元組之資料區段/快取線之一大小)二者。鑑認引擎435可使用如下文將詳細描述之鑑認緩衝器440。在一些實施例中,當使用CCM演算法時,鑑認緩衝器的長度可為128位-或16個位元組,而無關於M值。
如上文描述,在一或多個實施例中,記憶體控制器160A可連同CCM演算法一起使用。圖5展示根據本發明之使用記憶體控制器160A之一實施例自一非揮發儲存器讀取資料之一例示性程序500。下文描述假定用於例示性程序500之金鑰165可為一對稱金鑰。使用一不對稱 金鑰165以進行不對稱解密亦在本發明之範疇內,且使用此項技術中已知之技術作出必要的改變。
在方塊560處,可自擁有記憶體控制器160A之一處理器之另一組件接收對資料之一請求。例如,該請求可來源於尋求位址ADDR處之資料之一CPU,諸如CPU0 112。在方塊565處,記憶體控制器160A可將對位址ADDR之一請求發送至處理器150A外部之記憶體。例如,可經由記憶體介面130將該請求發送至RAM 195或非揮發儲存器192。位址ADDR可為由CPU請求之原始位址,或如下文詳細解釋,其可為由記憶體控制器160A產生之一再計算位址。
在方塊570處,記憶體控制器160A可使用鑑認引擎435初始化鑑認緩衝器440。根據CCM規範,對於某個非負整數n標示為B_0、B_1、…B_n之完整資料區塊之一非空序列可由一有效負載P、一額外鑑認資料(AAD)A及一臨時標誌(nonce)N產生。有效負載P對於CCM係選用的且當存在時被加密並鑑認。AAD A亦係選用的,但是當存在時僅將被鑑認而不被加密。在一非限制實施例中,在鑑認緩衝器440之初始化期間,可由位址ADDR計算臨時標誌N且可使用臨時標誌N產生資料區塊B_0。接著,可使用金鑰165加密資料區塊B_0並將資料區塊B_0保存至鑑認緩衝器440。在一非限制實例中,加密可使用進階加密標準(AES)演算法。
在方塊575處,可由記憶體控制器160A接收一資料區塊。例如,此資料區塊可表示經由記憶體介面130到達之一或多個資料區塊(例如,對於DDR-3,一128位區塊可由經由記憶體介面130到達之兩個64位區塊組成)。在方塊580處,可將所接收之資料區塊發送至解密引擎430,其可對傳入資料區塊執行解密。根據CCM規範,可藉由以下操作執行解密:獲取臨時標誌N-自位址ADDR導出,如下文描述;計算A_i;藉由使用金鑰165加密A_i來產生S_i;及使用S_i對所接收之 資料區塊進行互斥或(XOR)。
在方塊585處,記憶體控制器160A可將解密資料自解密引擎430發送至暫時緩衝器445之一適當部分及鑑認引擎435二者。在方塊587處,鑑認引擎435可根據CCM演算法處理所接收之解密區塊以供鑑認。例如,鑑認引擎435可採用來自鑑認緩衝器440之所儲存之資料、使用來源於解密引擎430之資料對其進行XOR、使用金鑰165加密XOR結果且將解密結果儲存回至鑑認緩衝器440。
在方塊590處,例示性程序500可判定是否接收到所請求資料之所有區塊。若否,則可需要重複方塊575至587直至整個資料區段/快取線被處理。例如,若一快取線係64個位元組,則可需要處理4個128位資料區塊。若已接收到整個資料區段,則程序500可進行至方塊592,此時可接收另一資料區塊,其可表示根據CCM演算法之鑑認值(例如,鑑認值115)。例如,鑑認值資料區塊可具有M個位元組之一大小。應注意,CCM規定M小於或等於16,因此鑑認資料區塊中之位元數目可小於或等於128。
在方塊594處,可由解密引擎430解密所接收之鑑認資料區塊,例如,使用與方塊580中進行之演算法相同之解密演算法。接著,在方塊596處,可確認已解密之鑑認值。例如,可將已解密之鑑認資料區塊發送至鑑認引擎435,其可比較已解密鑑認資料區塊中之M個位元組與儲存於鑑認緩衝器440中之前面M個位元組。若存在一準確匹配,則可將鑑認程序視為成功的,且可將來自暫時緩衝器445之資料區段轉發至處理器150A之請求組件。否則,其可為一錯誤。
在一或多個實施例中,若存在一錯誤,則記憶體控制器160A可經組態以嘗試讀取操作預定次數(通常介於1次至3次之間)。此外,記憶體控制器160A可經組態以在不成功嘗試達到預定數目時迫使處理器150A進入一特殊狀態。特殊狀態可致使在作出一全硬體重設之前 處理器150A將不會執行任何操作。此外,在一些實施例中,可將硬體重設(自重設開始直至處理器150A開始操作)限於最小時間量(諸如0.1秒或1秒)。因為蠻力攻擊係基於快速連續重試,所以設定硬體重設之最小時間量可增加蠻力攻擊所需時間且在一些情況下可使此等攻擊不切實際。
在一或多個實施例中,用以執行CCM演算法之臨時標誌可自所請求之資料區段之位址ADDR導出,例如,臨時標誌可等於資料區段之位址ADDR或可為ADDR之一對一函數。這可有助於起保護作用而免遭可交換資料區段之攻擊者之損害並(例如,藉由減小差分密碼分析之可能性)增強總體系統安全性。
如上文描述,儲存鑑認值(例如,鑑認值115)可招致儲存額外耗用,因此在許多實際情況下,可需要由記憶體控制器160A再計算位址。例如,歸因於儲存額外耗用,由處理器150A之一CPU請求之位址可能無法匹配非揮發儲存器中之位址。如上文描述,在一實施例中,非揮發儲存器192之位址空間可加倍。例如,一普通快取線可為64位元組長,而受保護資料(經加密及/或鑑認資料)可佔據128個位元組:64個位元組的加密資料及16個位元組的鑑認資料以及48個未使用位元組。在一些實施例中,該等未使用位元組可用以儲存待添加到臨時標誌之額外資訊。因此,例如若已知自一第一位址SECURE_BEGIN至一第二位址SECURE_END之一位址範圍需要解密及/或鑑認,則可保留自一第一實體位址SECURE_BEGIN2至一第二實體位址SECURE_END2之範圍之實體記憶體。實體位址範圍可被設定為等於位址範圍的兩倍,即,SECURE_END2-SECURE_BEGIN2=2*(SECURE_END-SECURE_BEGIN)。接著,當針對一位址ADDR(其中SECURE_BEGIN<=ADDR<SECURE_END)接收到對SZ個位元組(SZ係一整數)之一請求時,記憶體控制器160A可經由介面130發佈 對位址SECURE_BEGIN2+(ADDR-SECURE_BEGIN)*2處的2*SZ個位元組之一請求。應注意,可由一簡單移位實施二進位算術中之乘以2。
應進一步注意,在一些實施例中,可使用其他方案來代替使用針對所請求之各SZ個位元組之2*SZ個位元組(這導致2倍的額外耗用)。作為另一非限制實例,在一些實施例中,針對所請求之各64個位元組可儲存64+16個位元組。在此實例中,當記憶體控制器160A接收到對位址ADDR(可除以64)處之64個位元組之一請求時,其可經由介面130發佈對位址SECURE_BEGIN2+(ADDR-SECURE_BEGIN)/64*(64+16)處之64+16個位元組之一請求。在一些實施例中,可將除以64實施為一次移位且可將乘以64+16實施為兩次移位及一次加法。
應注意,雖然CCM可使用128位區塊密碼(諸如AES-128、AES-192或AES-256),但是在使用此項技術中已知之機制進行調整之後亦可對不同區塊大小使用相同方法。此外,亦應注意加密係可選用的。例如,在一些實施例中,藉由將待儲存之所有資料視為僅需要鑑認之AAD A,CCM演算法可單單用於鑑認而不用於加密。在一些其他實施例中,可使用任何現有的基於對稱金鑰之MAC演算法來代替CCM演算法。照此說法,加密在一些情況下可能係有利的。例如,旨在儲存於此安全的非揮發儲存器192中之任何敏感的器件特定資料(諸如一器件之私密金鑰)可獲益於加密。進一步言之,在一些實施例中,僅需要加密儲存於非揮發儲存器192上之資料之敏感部分。例如,基於一預定義位址表,可將一些位址指定為「普通」,將一些位址指定為「僅-鑑認」且將一些位址指定為「鑑認-及-加密」。在此等實施例中,可如上文所述般處置「普通」及「鑑認-及-加密」位址範圍內之請求,且可類似於「鑑認-及-加密」範圍內之請求處置「僅-鑑認」範 圍內之請求,但是省略加密(同時保持鑑認)。
亦應注意,CCM可為根據本發明使用之許多可能演算法之一者。在一些實施例中,可使用EAX模式(其係作為CCM模式之一替代之另一帶相關聯資料之鑑認加密(AEAD)演算法)來代替CCM模式;可改變例示性程序500及記憶體控制器160A以實施EAX模式。將程序500調適為EAX模式所必需的改變可使用熟習此項技術者已知之技術。由於EAX具有與CCM相同之臨時標誌需求,故基於EAX之實施方案之一些實施例可使用與如上文描述用於CCM相同之臨時標誌產生方法。
在其他實施例中,可根據本發明使用伽羅瓦/計數器操作模式(GCM或GCM模式)。D.McGrew及J.Viega在2004年1月15日提交給操作模式程序國家科學技術學會(NIST)之「The Galois/Counter Mode of Operation(GCM)」(其係以引用方式全部併入本文且在下文被稱為「GCM」)中定義GCM。圖6係根據本發明之一例示性記憶體控制器16B之一方塊圖。記憶體控制器160B可為實施記憶體控制器160之所有特徵之記憶體控制器160之另一實施例且具有可不同於記憶體控制器160A之實施例之額外特徵。在一或多個實施例中,記憶體控制器160B可經組態以使用GCM。
如圖6中所示,記憶體控制器160B可包括輸入緩衝器432、暫時緩衝器445及金鑰165,其等可為與記憶體控制器160A之組件相同之組件。此外,記憶體控制器160B可包括一伽羅瓦域(GF)乘法引擎610、一H儲存器620、一計數器622、一比較器625、一加密引擎630、一鑑認緩衝器640及一XOR模組646及648。H儲存器620可儲存如用於GCM模式之一H值。例如,H儲存器可儲存128個位元之一值。應注意,128個位元可僅係密碼之一例示性區塊大小,而具有不同區塊大小(例如,192個位元、256個位元)之密碼可用於根據本發明之具 有使用熟習此項技術者已知之技術作出之必要改變之各個實施例中。GF乘法引擎610可為在GF中提供乘法(2^128)(即,在有限域中具有2^128個元素之乘法)之一引擎。計數器622可為具有對應於H儲存器之位元數目(例如,128個位元)之一儲存器。使用圖7中所示之例示性程序700,比較器625、加密引擎630及鑑認緩衝器640可用於GCM,如下文描述。
例示性程序700可為由記憶體控制器160B實施以自一非揮發儲存器(例如,非揮發儲存器192)讀取使用GCM加密之資料之一程序。下文描述假定用於例示性程序500之金鑰165可為一對稱金鑰。使用一不對稱金鑰165以進行不對稱解密亦在本發明之範疇內,且使用此項技術中已知之技術作出必要的改變。又,為簡單起見,可假定例示性程序700中並未使用如[GCM]中描述之AAD A。然而,如上文關於CCM描述,若僅需要鑑認,則可將儲存於非揮發儲存器192中之整個資料區段視為AAD A
例示性程序700可開始於方塊760處,此時可接收對一位址ADDR處之資料之一請求。例如,記憶體控制器160B可自CPU之一者(例如,CPU0 112或CPU1 112A)接收對資料之請求。在方塊765處,記憶體控制器160B可經由記憶體介面130將對一位址ADDR之一資料請求發送至外部記憶體。外部記憶體可為一主記憶體(諸如RAM 195)或電腦系統之其他非揮發儲存器(諸如非揮發儲存器192)。取決於加密/鑑認資料之位址空間分配,可需要類似於或相等於上文在CCM方面關於記憶體控制器160A描述之位址再計算之一位址再計算。接著在方塊770處,記憶體控制器160B可初始化用於GCM之組件。例如,可使用零初始化鑑認緩衝器640,可使用由位址ADDR(如上文關於CCM描述之原始或再計算位址)產生之一臨時標誌初始化計數器622之96個高位元,且可使用零初始化計數器622之32個低位元。如[GCM]中定 義,臨時標誌可用作初始化向量(IV)。此外,在初始化操作期間,可由加密引擎630使用金鑰165計算一H值且可將H值儲存於H儲存器620中。應注意,根據GCM,H值對於一給定對稱金鑰可為恆定的,因此其可僅需要計算一次,或甚至被預計算且與金鑰165儲存在一起(消除在方塊770處計算該H值之需要)。
在方塊775處,可由記憶體控制器160B接收一資料區塊。例如,此資料區塊可表示經由憶體介面130到達之資料區塊之一或多者(例如,對於DDR-3,一128位區塊可由經由記憶體介面130到達之兩個64位區塊組成)。在方塊780處,可將所接收之資料區塊發送至加密引擎630,其可根據GCM對傳入資料區塊執行解密。例如,如[GCM]中描述,可藉由自計數器622獲取值並使用此值及金鑰165加密傳入資料來解密傳入資料區塊。此外,加密引擎630可藉由應用如[GCM]中定義之遞增函數incr()修改計數器622之值。來自加密引擎630之解密資料可儲存於暫時緩衝器445之一適當部分內。
在方塊785處,記憶體控制器160B可根據特定加密及鑑認演算法處理解密資料。例如,根據GCM,記憶體控制器160B可使用來自鑑認緩衝器640之資料(例如,使用XOR模組648)對來自輸入緩衝器432之所加密之傳入資料進行XOR,且將結果發送至GF乘法器引擎610。GF乘法器引擎610可將經XOR之資料乘以來自H儲存器620之值H(在GF中(2^128))。接著可將乘法結果儲存回至鑑認緩衝器640中。此外,可使用來自加密引擎630之解密資料(例如,使用XOR模組646)對乘法結果進行XOR以產生用於比較器625之一輸入。在一或多個實施例中,可並行於方塊780執行方塊785。
在方塊790處,例示性程序700可判定是否已接收到所請求資料之所有區塊。若否,則可需要重複方塊775至785直至整個資料區段/快取線被處理。例如,若一快取線係64個位元組,則可需要處理4個 128位資料區塊。之後,可接收一資料區段/快取線之所有加密資料區塊,例示性程序700可進行至方塊792,此時可接收表示鑑認值之另一資料區塊。例如,根據GCM,所接收之資料區塊可為一鑑認標籤。
接著,在方塊794處,可執行根據加密及鑑認演算法之一鑑認且記憶體控制器160B可判定鑑認是否成功。在一非限制實施例中,可如下執行鑑認:a)使用表示如[GCM]中定義之len(A)∥len(C)之一常數對來自鑑認緩衝器640之值進行XOR,其中len(A)可為0(如上文描述,未使用AAD欄)且len(C)可等於資料區段大小;b)使用GF乘法器引擎610將XOR結果乘以H(在GF中(2^128));c)使用加密引擎630用金鑰165加密來自計數器622之值(其中低32個位元被遮罩為零);d)對(b)及(c)之結果進行XOR(使用XOR模組646);e)使用比較器625比較d)之XOR結果與輸入緩衝器432中之資料。在一些實施例中,可藉由使用XOR模組648之輸入上之一常數len(C)在邏輯上替換來自輸入緩衝器432之輸入(例如,使用一多工器(未展示))一起實施步驟(a)及(b)。若步驟(e)處存在一準確匹配,則可將鑑認視為成功的且可將來自暫時緩衝器445之資料區段/快取線傳遞至處理器150A之剩餘部分。若不存在一準確匹配,則鑑認出現錯誤且可如上文關於CCM針對方塊596描述般處置鑑認。
GCM要求初始化向量(IV)係唯一的。根據本發明之實施例可藉由使用所產生之臨時標誌作為IV之高96個位元而滿足該要求。如上文關於CCM描述,例如可使用位址ADDR產生臨時標誌。由於GCM鑑認IV,這亦可有助於確保無法交換非揮發儲存器區塊。進一步言之,如上文描述,若資料之所有或部分無需加密,則一些實施例可使用GCM AAD來鑑認資料且無需加密。
在一些實施例中,若無需加密,則可使用訊息鑑認碼(MAC),諸如(例如)CBC-MAC、其他基於密碼之MAC(例如,單金鑰MAC (OMAC))。應注意,若使用CBC-MAC,則其可依賴於具有相同長度之資料區段,這可提供一更簡化的實施方案。對於所有MAC方案,應注意,位址ADDR可參與產生MAC。例如,出於計算MAC之目的,可將一固定長度ADDR(或使用ADDR作為一輸入以產生一對一輸出之一固定長度函數)前置於實際資料區段。對MAC使用位址ADDR可確保一攻擊者不能交換不同資料區段。
在其他實施例中,若需要加密以及鑑認,則(例如)可使用加密-接著-MAC或MAC-接著-加密。進一步言之,為實現加密資料之隨機存取(其可在一任意時刻需要解密),可使用計數器(CTR)模式進行加密。在此等實施例中,可將位址ADDR添加至用以產生如上文描述之MAC之原材料。又,在加密或解密操作期間,位址ADDR可用作一CTR計數器。
在一些實施例中,可結合CBC模式使用加密-接著-MAC之變體。在此情況下,資料可整體上以CBC模式加密,且接著可分別對各資料區段計算並儲存MAC。接著,讀取加密資料及鑑認資料之程序可如下進行(再次假定區塊密碼係128位長;對於其他區塊大小,可必須使用已知技術作出改變):a)讀取緊貼在所請求ADDR之前之加密128位區塊PRE;b)讀取對應於所請求位址ADDR之加密資料區塊DATA;c)讀取對應於所請求位址ADDR之MAC(注意在一些實施例中,PRE、DATA及MAC可表示記憶體中之一連續區塊,這可加速讀取);d)對DATA核對MAC之有效性(若MAC無效-則其係一錯誤,例如可如上文在圖5之方塊596處描述般處置MAC);e)使用PRE作為用於解密之一IV解密DATA(在CBC中,用於下一個區塊之IV係來自先前加密區塊之加密資料)。可以一類似方式構造CBC與加密-接著-MAC及MAC-接著-加密之組合。
在一些實施例中,在製造之後的稍晚時間可能需要修改(更新等 等)儲存於根據本發明之實施例之非揮發儲存器中之受保護資料。一種完成此修改之方式係將加密金鑰儲存於一安全資料庫中以供晶片製造商(例如,處理器及/或非揮發儲存器製造商)或某個可信賴第三方稍後使用。然而,重用加密金鑰可導致安全擔憂,這係因為加密金鑰之重用可減小總體系統安全性(例如,藉由開放差分密碼分析之額外可能性(諸如組合來自不同程式碼版本之資料區段以獲得攻擊者期望一之效果)以及潛在地曝露安全資料庫)。為確保安全性,下文關於圖8、圖9A及圖9B描述更新/修訂一受保護非揮發儲存器中之受保護資料之替代機制。
圖8係根據本發明之另一例示性系統100B之一方塊圖。例示性系統100B可為例示性系統100A之一變體且可包含正如例示性系統100A之資料介面130、RAM 195及非揮發儲存器192。除與例示性系統100A相同之組件以外,例示性系統100B可進一步包括一處理器150B及一非揮發儲存器程式設計模組190。處理器150B可為處理器150A之一替代實施例且可能能夠產生或更新儲存於非揮儲存器192中之內容。
如同圖1之處理器150A,處理器150B可包括一或多個CPU(例如,CPU0 112及CPU1 112A)、一或多個快取區(例如,L2快取區114及114A、L3快取區116)及可包括一金鑰165之一記憶體控制器160。此外,處理器150B可包括一當前對稱金鑰170、(一對不對稱金鑰對之)一公用金鑰172、一安全記憶體174、一I/O埠175、一加密模組176、一簽名驗證模組178及一隨機數產生器(RNG)180。RNG 180可為任何RNG,諸如(例如)一基於熱雜訊或基於曾納雜訊之產生器,其可用於支援產生加密金鑰及加密及/或解密操作。安全記憶體174可結合簽名驗證模組178及/或加密模組176之操作使用。儲存於安全記憶體174中之資料亦可受保護而不受來自處理器150B外部的存取。在一實施例 中,此一安全記憶體174可(例如)實施為處理器150B內部之一單獨揮發記憶體區塊。
除使用(例如,解密及/或鑑認)儲存於非揮發儲存器192中之資料以外,處理器150B亦可參與產生及/或更新儲存於非揮發儲存器192中之資料。應注意,處理器150B可具有類似於處理器150A之一抗篡改或至少防篡改實體外殼。
在一實施例中,公用金鑰172可為一受信賴方之一公用金鑰,當製造處理器150B時該公用金鑰可嵌入至處理器150B中。此受信賴方可為處理器150B之一製造商或有資格修改儲存於非揮發儲存器192中之受保護資料之任何其他第三方。此外,處理器150B可具有永久地儲存於一晶片上非揮發記憶體中之當前對稱金鑰170。當前對稱金鑰170可受保護而不受來自處理器150B外部的存取。在一實施例中,可將對當前對稱金鑰170之存取限於在產生儲存於非揮發儲存器192中之資料(包含加密接收自其他源之資料)及在隨後讀取資料時解密讀取自非揮發儲存器192之資料時所涉及之某些組件。非揮發程式設計模組190可耦合至I/O埠175以接收儲存於非揮發儲存器192上之受保護資料。在一替代實施例中,作為對I/O埠175的替代,處理器150B可經由直接記憶體存取(DMA)控制器(未展示)耦合至非揮發儲存器192。
簽名驗證模組178可為負責使用公用金鑰172驗證提供寫入至非揮發儲存器192之資料之一受信賴方(例如,處理器製造商)之一簽名之一模組。加密模組176可能夠使用當前對稱金鑰170加密資料。簽名驗證模組178及加密模組176二者皆可以硬體、軟體或硬體與軟體之一組合實施且受保護以免被修改。
在一實施例中,簽名驗證模組178及加密模組176可實施為處理器150B內部之一單獨電路,且因此由處理器150B之實體外殼保護以免被修改。例如,驗證模組178及加密模組176可實施為一或多個 ASIC。
在另一實施例中,簽名驗證模組178及加密模組176可實施為由處理器150B之一CPU執行之一指令集。在一基於軟體之實施例中,用於簽名驗證模組178及加密模組176之指令可儲存於處理器150B內之一非揮發儲存器(例如,一ROM)(未展示)內,且因此亦由處理器150B之實體外殼保護以免被修改。在另一基於軟體之實施例中,用於簽名驗證模組178及加密模組176之指令可儲存為諸如非揮發儲存器192之一外部非揮發儲存器中之受保護資料。若用於簽名驗證模組178及加密模組176之指令可以類似於關於圖1A之實施例描述之一方式儲存為一外部非揮發儲存器(例如,非揮發儲存器192)中之受保護資料,則記憶體控制器160可儲存一加密金鑰(諸如加密金鑰165)以在用於在將簽名驗證模組178及加密模組176之指令讀取至處理器150B中時解密及/或鑑認該等指令。
在其中用於簽名驗證模組178及加密模組176之指令儲存為一外部非揮發儲存器上之受保護資料之實施例中,指令可不更新或可更新。在具有不可更新指令之一實施例中,處理器150B可具有儲存於其中之金鑰170及165二者。金鑰165可用以解密及/或鑑認不可更新指令,而金鑰170可用以解密及/或鑑認儲存於外部非揮發儲存器上之其他受保護資料(在使用金鑰170加密/鑑認其他受保護資料之後)。
在其中用於簽名驗證模組及加密模組之指令可更新之一實施例中,處理器150B可對金鑰165及當前對稱金鑰170使用相同金鑰(在一些實施例中僅可儲存此金鑰之一複本)。每當執行一更新程序時可替換此等金鑰(如下文更詳細描述)。
無關於用於簽名驗證模組178及加密模組176之指令是實施為處理器150B內部之專用硬體、儲存於處理器150B中之一非揮發儲存器上且由處理器150B之一CPU執行還是儲存為一外部非揮發儲存器上之 受保護資料且由處理器150B之一CPU執行,在一實施例中,處理器150B可總是具有儲存於其中之一金鑰(例如,金鑰165、170或其二者)且可使用處理器150B執行例示性程序200、500及700。
如上文描述,處理器150B可自一受信賴方接收寫入至非揮發儲存器192中之資料。該資料可伴隨有一簽名,其可由簽名驗證模組178使用公用金鑰172來確認。若簽名確認成功,則在一實施例中可由加密模組176加密資料。在其他實施例中,可將鑑認資訊附加至該資料,但是無法加密該資料本身。在任一情況下,可將所處理之資料(例如,受保護資料)傳輸至非揮發程式設計模組190,其可將加密資料發送至非揮發儲存器192。
圖9A展示繪示可如何以一安全方式更新儲存於一非揮發儲存器中之受保護資料之一例示性程序800。例示性程序800之以下描述可使用系統100B作為一實例,但是可適用於根據本發明之其他實施例。
在方塊805處,可由處理器150B接收儲存於非揮發儲存器192中之資料。可由一合法方使用可對應於公用金鑰172之一私密金鑰對所接收之資料簽名。在方塊810處,處理器150B可使用公用金鑰172及簽名驗證模組178確認簽名。簽名驗證可視需要包含有效性核對機制,諸如憑證撤銷清單(CRL)及/或線上憑證狀態協定(OSCP)。若簽名驗證失敗,則在方塊812處可中止程序800且可不改變系統。
在一些實施例中,更新所需模組之一些(例如,簽名驗證模組178或加密模組176)可以軟體實施,且用於此等模組之任一者之指令可儲存為一外部非揮發儲存器上之受保護資料(如上文描述)且可更新。在此等實施例中,可需要採取額外措施以解決不一致狀態。例如,在一實施例中,可存在非揮發儲存器192之兩個複本及一非揮發旗標,其指示該兩個複本中的哪一個當前係「作用的」(由一記憶體控制器讀取)。當在此實施例中更新非揮發儲存器時,可對「閒置」複本執行 寫入操作;當完成更新時,可切換非揮發旗標以將先前「閒置」複本指示為「作用的」。在此實施例中,即使更新程序已被中斷,系統仍將能夠讀取更新程序中涉及之模組之指令之一「舊」版本,且重複更新程序以寫入受保護資料之「新」版本。
若簽名驗證成功通過,則在方塊815處可使用RNG 180產生一新的當前對稱金鑰並暫時儲存當前對稱金鑰(例如,儲存於安全記憶體174中)。在方塊820處,處理器150B可使用加密引擎176及方塊815處產生之新的當前對稱金鑰來加密所接收之資料,且在方塊825處可經由I/O埠175將加密資料儲存於非揮發儲存器192中。在成功地更新非揮發儲存器192之後,在方塊830處可將方塊815處產生之新的當前對稱金鑰永久儲存為當前對稱金鑰170。一旦永久儲存在處理器150B內部,便可使用當前對稱金鑰170來讀取儲存於非揮發儲存器192中之資料。
若在方塊805至830期間發生一錯誤,則系統可處於一不一致狀態。例如,可歸因於電力故障而發生一錯誤,使得可能僅更新了資料的一部分,或更新了所有資料但是未永久保存方塊815處產生之一金鑰,或發生其他錯誤。在所有此等情況下,可對方塊805處接收之資料重複方塊810至830(例如,假定方塊805處接收之資料儲存於處理器150B之一非揮發儲存器中)。
為減小一可能的已知明文攻擊之風險,使用方塊815處產生之一加密金鑰加密之資料可受保護以免在驗證該資料之前曝露於處理器150B外部。在一非限制實施例中,安全記憶體174的量可小於一起處理更新所需的量。即使在此情況下,亦可成塊地確認並加密待更新之完整資料集且在處理器晶片150B外部僅可以加密形式曝露每個單一區塊。然而,無關於安全記憶體174之大小,可將更新劃分為區塊且如下文描述般處理更新。
圖9B係根據本發明之展示用於對一非揮發儲存器執行一更新之例示性資料結構之一方塊圖。如圖9B中所示,一更新840可包括一或多個資料區塊841(例如,841-1至841-n,其中n係一正整數)及一終止區塊842。各資料區塊841可包含一更新ID 845、區塊資料846、區塊位址847、區塊雜湊848及區塊簽名849。區塊位址847可表示更新840內之一位址。區塊簽名849可使用可對應於一公用/私密金鑰對中之公用金鑰172之一私密金鑰而產生。一更新840之所有區塊中之更新ID 845之值可相同,且一更新840之所有區塊之區塊位址847可形成更新840內之所有區塊可遵循之一序列。區塊資料846可為需要更新之實際資料,且視需要其大小可為快取線之大小之一倍數(通常,64個位元組)。終止區塊842可至少包含整個更新之雜湊844及區塊簽名849以確認整個更新之完整性。
圖9C繪示根據本發明之將由一個以上單一區塊組成之一更新應用於一非揮發儲存器之一例示性程序850。在方塊860處,處理器晶片150B可接收對非揮發儲存器192之一更新可用之資訊。此資訊可包含(例如)此更新之一ID(諸如更新ID 845)。在方塊862處,處理器150B可暫時保存此ID。在方塊864處,可使用RNG 180產生一新的當前對稱金鑰(例如,金鑰170)並暫時儲存新的當前對稱金鑰(例如,儲存於安全記憶體174中)。
在方塊865處,處理器晶片150B可接收一資料區塊841。接著在方塊866處,處理器晶片150B可執行一確認以確保資料區塊841係一有效區塊。在一非限制實施例中,該確認可包含核對雜湊係正確的、使用對應於一公用金鑰172之一私密金鑰進行簽名、其更新ID 845對應於步驟862處保存之ID,且其位址係在序列中(例如,關於一前置區塊(若可用))。若此確認失敗,則在方塊867處可中止程序850,且不進一步改變系統。因此,即使是呈加密形式之區塊資料亦不可在晶片 150B外部曝露。
否則,若方塊866處之所有確認成功通過,則在方塊870處,處理器晶片150B可遞增地計算整個更新之已處理資料之一雜湊。接著在方塊872處,處理器晶片150B可使用步驟864處產生之新的當前對稱金鑰加密區塊資料846,且在方塊875處可發送待儲存於非揮發儲存器192中之加密資料。
在方塊880處,程序850可判定是否接收到更新之所有資料區塊。例如,程序850重複方塊865至875直至發現終止區塊842。在方塊882處,一旦接收到終止區塊842,處理器晶片150B便亦可藉由(例如)核對終止區塊842之簽名來確認終止區塊有效,且亦可確認整個更新資料之遞增計算(藉由對所有先前區塊重複區塊870)之雜湊等於儲存於終止區塊中之雜湊(如雜湊844)。
若方塊882處之核對失敗,則在方塊883處可中止程序850。例如,可報告一錯誤且不執行對系統的進一步改變。若核對通過,則在方塊885處,可將方塊864處產生之加密金鑰永久儲存為當前對稱金鑰170。此時,系統可處於一致狀態,且可使用新的當前對稱金鑰170來讀取儲存於非揮發儲存器192中之資料。
雖然已繪示且描述本發明之特定實施例及應用,但是應瞭解本發明不限於本文揭示之精確組態及組件。本文使用之術語、描述及圖式係僅藉由繪示加以陳述且並不意謂限制。在不脫離本發明之精神及範疇之情況下,可對本文揭示之本發明之裝置、方法及系統之配置、操作及細節作出熟習此項技術者將明白之各種修改、改變及變動。藉由非限制實例,將瞭解本文包含之方塊圖旨在展示各裝置及系統之組件之一選定子組且各經描繪之裝置及系統可包含圖式上未展示之其他組件。此外,一般技術者將認知,在不減損本文描述之實施例之範疇或效能之情況下,可省略或重新排序本文描述之某些步驟及功能性。
結合本文揭示之實施例描述之各種闡釋性邏輯塊、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或二者之組合。為繪示硬體與軟體之此可互換性,各種闡釋性組件、區塊、模組、電路及步驟已在上文就其等功能性大體上加以描述。此功能性是實施為硬體還是軟體取決於特定應用及強加於整體系統之設計約束。對於各特定應用可以各種方式實施所描述之功能性-諸如藉由使用微處理器、微控制器、場可程式化閘陣列(FPGA)、特定應用積體電路(ASIC)及/或系統單晶片(SoC)之任何組合-但是此等實施決定不應被解釋為導致脫離本發明之範疇。
結合本文揭示之實施例描述之一方法或演算法之步驟可直接以硬體、以一處理器執行之一軟體模組或以二者之一組合實施。一軟體模組可駐留在RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶體、EEPROM記憶體、暫存器、硬碟、一可抽換磁碟、一CD-ROM、一DVD或此項技術中已知之任何其他形式的儲存媒體中。
本文揭示之方法包括用於達成所描述之方法之一或多個步驟或動作。在不脫離本發明之範疇之情況下,該等方法步驟及/或動作可彼此互換。換言之,除非實施例之適當操作需要步驟或動作之一特定順序,否則在不脫離本發明之範疇之情況下可修改特定步驟及/或動作之順序及/或使用。
130‧‧‧記憶體介面/介面
160B‧‧‧記憶體控制器
165‧‧‧加密/解密金鑰/不對稱金鑰/金鑰
432‧‧‧輸入緩衝器
445‧‧‧暫時緩衝器
610‧‧‧伽羅瓦域乘法引擎/伽羅瓦域乘法器引擎
620‧‧‧H儲存器
622‧‧‧計數器
625‧‧‧比較器
630‧‧‧加密引擎
640‧‧‧鑑認緩衝器
646‧‧‧互斥或模組
648‧‧‧互斥或模組

Claims (36)

  1. 一種電腦處理器,其包括:一中央處理單元(CPU);及一記憶體控制器,其包括:儲存一金鑰之一儲存器;一第一組電路,其等經組態以:自該CPU接收對一資料片段之一請求;判定需要自一外部儲存器讀取以一受保護格式儲存之該所請求資料片段;及自該外部儲存器讀取呈該受保護格式之該資料片段;及一安全模組,其經組態以使用儲存於該儲存器中之該金鑰對呈該受保護格式之該資料片段執行鑑認及解密之至少一者。
  2. 如請求項1之電腦處理器,其中判定需要自該外部儲存器讀取該資料片段包括:基於對該資料片段之該請求中之一原始位址計算該資料片段之一位址。
  3. 如請求項1之電腦處理器,其中該受保護格式係無加密之鑑認,且該安全模組經組態以執行鑑認。
  4. 如請求項3之電腦處理器,其中該安全模組經組態以藉由密碼區塊鏈結訊息鑑認碼(CBC-MAC)實施鑑認。
  5. 如請求項1之電腦處理器,其中該受保護格式係無鑑認之加密且該安全模組經組態以執行加密。
  6. 如請求項1之電腦處理器,其中該受保護格式係鑑認及加密且該安全模組經組態以執行鑑認及加密二者。
  7. 如請求項6之電腦處理器,其中該安全模組經組態以藉由帶關聯 資料之鑑認加密(AEAD)演算法實施鑑認及加密。
  8. 如請求項7之電腦處理器,其中該安全模組經進一步組態以自所請求之該資料片段之一位址導出用以執行該AEAD演算法之一臨時標誌。
  9. 如請求項7之電腦處理器,其中該AEAD演算法係以下項之一者:具有密碼區塊鏈結訊息鑑認碼(CBC-MAC)之計數器(CCM)鑑認加密演算法、EAX模式及伽羅瓦/計數器模式(GCM)。
  10. 如請求項9之電腦處理器,其中該安全模組經進一步組態以自所請求之該資料片段之一位址導出用以執行該AEAD演算法之一臨時標誌。
  11. 如請求項1之電腦處理器,其進一步包括:一第二組電路,其等經組態以:接收儲存在該外部儲存器中之一新的資料片段,該新的資料片段係使用一簽名而進行簽名;及產生並儲存一新的加密金鑰;一簽名驗證模組,其經組態以確認該簽名;及一加密模組,其經組態以使用該新的加密金鑰來將該新的資料片段處理為該受保護格式以發送至該外部儲存器。
  12. 如請求項11之電腦處理器,其進一步包括用於儲存一受信賴方之一公用金鑰之一儲存器,且該簽名驗證模組經進一步組態以使用此公用金鑰來確認該新的資料片段之該簽名。
  13. 如請求項12之電腦處理器,其中該新的資料片段係儲存於該外部儲存器中之該資料片段之一更新。
  14. 如請求項13之電腦處理器,其中該經處理之新的資料片段包括:一或多個資料區塊及一終止區塊。
  15. 如請求項14之電腦處理器,其中各資料區塊包含用於該資料區 塊之區塊資料之一雜湊值,且該終止區塊包含整體上用於該新的資料片段之一雜湊值,且各資料區塊及該終止區塊分別包含一區塊簽名。
  16. 如請求項11之電腦處理器,其中將該新的資料片段處理為該受保護格式包括:加密該新的資料片段。
  17. 如請求項11之電腦處理器,其中將該新的資料片段處理為該受保護格式包括:產生用於該新的資料片段之鑑認資料。
  18. 如請求項11之電腦處理器,其中將該新的資料片段處理為該受保護格式包括:加密該新的資料片段並產生用於該新的資料片段之鑑認資料。
  19. 一種用於存取安全地儲存在一電腦處理器外部之資料之方法,其包括:自該電腦處理器之一中央處理單元(CPU)接收對一資料片段之一請求;判定需要自一外部儲存器讀取以一受保護格式儲存之該所請求資料片段;自該外部儲存器讀取呈該受保護格式之該資料片段;及使用儲存於該電腦處理器中之一金鑰對呈該受保護格式之該資料片段執行鑑認及解密之至少一者。
  20. 如請求項19之方法,其中判定需要自該外部儲存器讀取該資料片段包括:基於對該資料片段之該請求中之一原始位址計算該資料片段之一位址。
  21. 如請求項19之方法,其中該受保護格式係無加密之鑑認,且該電腦處理器包括經組態以執行鑑認之一安全模組。
  22. 如請求項21之方法,其中該安全模組經組態以藉由密碼區塊鏈結訊息鑑認碼(CBC-MAC)實施鑑認。
  23. 如請求項19之方法,其中該受保護格式係無鑑認之加密,且該電腦處理器包括經組態以執行加密之一安全模組。
  24. 如請求項19之方法,其中該受保護格式係鑑認及加密,且該電腦處理器包括經組態以執行鑑認及加密二者之一安全模組。
  25. 如請求項24之方法,其中該安全模組經組態以藉由帶關聯資料之鑑認加密(AEAD)演算法實施鑑認及加密。
  26. 如請求項25之方法,其進一步包括自所請求之該資料片段之一位址導出用以執行該AEAD演算法之一臨時標誌。
  27. 如請求項25之方法,其中該AEAD演算法係以下項之一者:具有密碼區塊鏈結訊息鑑認碼(CBC-MAC)之計數器(CCM)鑑認加密演算法、EAX模式及伽羅瓦/計數器模式(GCM)。
  28. 如請求項27之方法,其進一步包括自所請求之該資料片段之一位址導出用以執行該AEAD演算法之一臨時標誌。
  29. 如請求項19之方法,其進一步包括:接收待儲存在該外部儲存器中之一新的資料片段,該新的資料片段係使用一簽名而進行簽名;產生並儲存一新的加密金鑰;確認該簽名;及使用該新的加密金鑰來將該新的資料片段處理為該受保護格式以發送至該外部儲存器。
  30. 如請求項29之方法,其進一步包括:使用儲存於該電腦處理器中之一受信賴方之一公用金鑰來確認該新的資料片段之該簽名。
  31. 如請求項30之方法,其中該新的資料片段係儲存於該外部儲存器中之該資料片段之一更新。
  32. 如請求項31之方法,其中該經處理之新的資料片段包括一或多 個資料區塊及一終止區塊。
  33. 如請求項32之方法,其中各資料區塊包含用於該資料區塊之區塊資料之一雜湊值,且該終止區塊包含總體上用於該新的資料片段之一雜湊值,且各資料區塊及該終止區塊分別包含一區塊簽名。
  34. 如請求項29之方法,其中將該新的資料片段處理為該受保護格式包括:加密該新的資料片段。
  35. 如請求項29之方法,其中將該新的資料片段處理為該受保護格式包括:產生用於該新的資料片段之鑑認資料。
  36. 如請求項29之方法,其中將該新的資料片段處理為該受保護格式包括:加密該新的資料片段並產生用於該新的資料片段之鑑認資料。
TW103109320A 2013-03-14 2014-03-14 運用一電腦處理器使用一安全非揮發儲存器之系統、方法及裝置 TW201502847A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201361785388P 2013-03-14 2013-03-14

Publications (1)

Publication Number Publication Date
TW201502847A true TW201502847A (zh) 2015-01-16

Family

ID=50397216

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103109320A TW201502847A (zh) 2013-03-14 2014-03-14 運用一電腦處理器使用一安全非揮發儲存器之系統、方法及裝置

Country Status (5)

Country Link
US (1) US20140281587A1 (zh)
EP (1) EP2973195A1 (zh)
CA (1) CA2902291A1 (zh)
TW (1) TW201502847A (zh)
WO (1) WO2014141159A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI684114B (zh) * 2018-12-19 2020-02-01 技嘉科技股份有限公司 通用型輸入輸出埠的配置方法及系統
US10637647B2 (en) * 2016-04-13 2020-04-28 Infineon Technologies Ag Control device including direct memory access controller for securing data and method thereof
CN111338462A (zh) * 2018-12-19 2020-06-26 技嘉科技股份有限公司 通用型输入输出端口的配置方法及系统
TWI781248B (zh) * 2018-02-23 2022-10-21 南韓商三星電子股份有限公司 可程式資料儲存裝置及可程式網路資料儲存系統

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201349009A (zh) 2012-04-13 2013-12-01 Ologn Technologies Ag 用於數位通信之安全區
WO2013153437A1 (en) 2012-04-13 2013-10-17 Ologn Technologies Ag Apparatuses, methods and systems for computer-based secure transactions
US9432348B2 (en) 2012-04-20 2016-08-30 Ologn Technologies Ag Secure zone for secure purchases
US11176546B2 (en) 2013-03-15 2021-11-16 Ologn Technologies Ag Systems, methods and apparatuses for securely storing and providing payment information
CA3099685C (en) 2013-03-29 2022-09-20 Ologn Technologies Ag Systems, methods and apparatuses for secure storage of data using a security-enhancing chip
WO2014185916A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
CN105339929B (zh) * 2013-05-16 2019-12-03 慧与发展有限责任合伙企业 选择用于取消重复数据的存储
JP6182371B2 (ja) * 2013-06-28 2017-08-16 ルネサスエレクトロニクス株式会社 半導体集積回路を含むシステム
US9948640B2 (en) 2013-08-02 2018-04-17 Ologn Technologies Ag Secure server on a system with virtual machines
CN103812854B (zh) * 2013-08-19 2015-03-18 深圳光启创新技术有限公司 身份认证系统、装置、方法以及身份认证请求装置
US10691838B2 (en) 2014-06-20 2020-06-23 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10169618B2 (en) 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US10192062B2 (en) * 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
MX366491B (es) * 2014-12-03 2019-07-10 Nagravision Sa Método criptográfico en bloques para encriptar/desencriptar mensajes y dispositivos criptográficos para implementar este método.
EP3262515B1 (en) * 2015-09-30 2019-08-07 Hewlett-Packard Enterprise Development LP Cryptographic-based initialization of memory content
US10992453B2 (en) * 2016-05-18 2021-04-27 International Business Machines Corporation System architecture for encrypting external memory
US10534725B2 (en) * 2017-07-25 2020-01-14 International Business Machines Corporation Computer system software/firmware and a processor unit with a security module
TWI656535B (zh) * 2017-10-18 2019-04-11 Yinghwi Chang 系統晶片之非揮發性記憶體之寫入方法
JP7109992B2 (ja) * 2018-05-22 2022-08-01 キオクシア株式会社 メモリシステムおよび制御方法
US11138132B2 (en) 2018-06-20 2021-10-05 Intel Corporation Technologies for secure I/O with accelerator devices
CN109697173B (zh) * 2018-12-11 2023-05-23 中国航空工业集团公司西安航空计算技术研究所 一种面向信息安全的嵌入式计算机SiP模块设计方法及电路
CN111566987B (zh) * 2018-12-12 2023-05-02 深圳市汇顶科技股份有限公司 数据处理方法、电路、终端设备及存储介质
US11743240B2 (en) * 2019-03-08 2023-08-29 Intel Corporation Secure stream protocol for serial interconnect
CN109995527B (zh) * 2019-04-12 2022-10-28 四川巨微集成电路有限公司 秘钥交互方法、装置、上位机、下位机和存储介质
CN110443049B (zh) * 2019-07-17 2023-05-23 南方电网科学研究院有限责任公司 一种安全数据存储管理的方法、系统及安全存储管理模块
KR102730656B1 (ko) * 2020-07-13 2024-11-15 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20230418603A1 (en) * 2022-06-22 2023-12-28 Silicon Laboratories Inc. System and Method for Securing Nonvolatile Memory for Execute-in-Place
US12423090B2 (en) * 2022-07-01 2025-09-23 Micron Technology, Inc. Memory system firmware update using virtual slots
US12513000B2 (en) * 2022-11-29 2025-12-30 PUFsecurity Corporation Apparatus and method for performing authenticated encryption with associated data operation of encrypted instruction with corresponding golden tag stored in memory device in event of cache miss

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266842B2 (en) * 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
US7734932B2 (en) * 2003-11-10 2010-06-08 Broadcom Corporation System and method for securing executable code
WO2010019916A1 (en) * 2008-08-14 2010-02-18 The Trustees Of Princeton University Hardware trust anchors in sp-enabled processors
US8356177B2 (en) * 2008-12-30 2013-01-15 Cisco Technology, Inc. Key transport in authentication or cryptography
DE102009019051B4 (de) * 2009-04-28 2011-07-07 Giesecke & Devrient GmbH, 81677 Speichermedium mit Verschlüsselungseinrichtung
US8442955B2 (en) * 2011-03-30 2013-05-14 International Business Machines Corporation Virtual machine image co-migration
US8873747B2 (en) * 2012-09-25 2014-10-28 Apple Inc. Key management using security enclave processor

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10637647B2 (en) * 2016-04-13 2020-04-28 Infineon Technologies Ag Control device including direct memory access controller for securing data and method thereof
TWI781248B (zh) * 2018-02-23 2022-10-21 南韓商三星電子股份有限公司 可程式資料儲存裝置及可程式網路資料儲存系統
US11750370B2 (en) 2018-02-23 2023-09-05 Samsung Electronics Co., Ltd. Programmable blockchain solid state drive and switch
US12316744B2 (en) 2018-02-23 2025-05-27 Samsung Electronics Co., Ltd. Programmable blockchain solid state drive and switch
TWI684114B (zh) * 2018-12-19 2020-02-01 技嘉科技股份有限公司 通用型輸入輸出埠的配置方法及系統
CN111338462A (zh) * 2018-12-19 2020-06-26 技嘉科技股份有限公司 通用型输入输出端口的配置方法及系统

Also Published As

Publication number Publication date
EP2973195A1 (en) 2016-01-20
US20140281587A1 (en) 2014-09-18
CA2902291A1 (en) 2014-09-18
WO2014141159A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
TW201502847A (zh) 運用一電腦處理器使用一安全非揮發儲存器之系統、方法及裝置
US12244732B2 (en) System and methods for confidential computing
US11487908B2 (en) Secure memory
US11218299B2 (en) Software encryption
JP6991431B2 (ja) ホストシステムとデータ処理アクセラレータの間の通信を保護するための方法およびシステム
US9703945B2 (en) Secured computing system with asynchronous authentication
KR102239711B1 (ko) 보안 파라미터들에 기초한 작업 보안 키의 생성
TW201502855A (zh) 使用安全加強晶片之用於資料之安全儲存之系統、方法及裝置
US20140173756A1 (en) Platform-hardened digital rights management key provisioning
CN110050437A (zh) 分布式证书注册的装置和方法
CN107306184A (zh) 以安全代码验证进行的消息认证
CN101149774A (zh) 经散布保护机制防护固件映像档的下载暨储存方法及装置
CN112100696B (zh) 存储器装置及其安全读取方法
CN106295257A (zh) 一种被加固软件的认证方法及装置
US7979628B2 (en) Re-flash protection for flash memory
CN105933117A (zh) 一种基于tpm秘钥安全存储的数据加解密装置和方法
KR101656092B1 (ko) 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
CN114091027B (zh) 信息配置方法、数据访问方法及相关装置、设备
CN114024702A (zh) 信息安全保护的方法以及计算设备
CN121234352A (zh) 一种芯片安全启动方法、装置、芯片及电子设备
CN120825278A (zh) 使用随机数的安全固件更新