TWI809026B - 用於在一加密系統中管理密碼密鑰之一集合的積體電路(ic)系統、用於一積體電路(ic)系統之方法及非暫時性電腦可讀媒體 - Google Patents

用於在一加密系統中管理密碼密鑰之一集合的積體電路(ic)系統、用於一積體電路(ic)系統之方法及非暫時性電腦可讀媒體 Download PDF

Info

Publication number
TWI809026B
TWI809026B TW108100549A TW108100549A TWI809026B TW I809026 B TWI809026 B TW I809026B TW 108100549 A TW108100549 A TW 108100549A TW 108100549 A TW108100549 A TW 108100549A TW I809026 B TWI809026 B TW I809026B
Authority
TW
Taiwan
Prior art keywords
key
kid
memory
cryptographic
engine
Prior art date
Application number
TW108100549A
Other languages
English (en)
Other versions
TW201933169A (zh
Inventor
戴倫 拉斯科
羅伯托 阿凡希
湯瑪仕 史派爾
哈柏 阿卜杜哈米德
維克拉姆吉特 塞西
Original Assignee
美商高通公司
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 美商高通公司 filed Critical 美商高通公司
Publication of TW201933169A publication Critical patent/TW201933169A/zh
Application granted granted Critical
Publication of TWI809026B publication Critical patent/TWI809026B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

本發明之實施例包括用於儲存與由一受保護軟體環境(PSE)管理軟體監督之第一複數個對應PSE相關聯之第一複數個密碼密鑰的系統及方法,該PSE管理軟體在一電腦系統上執行且經組態以監督該複數個PSE之一超集。該電腦系統在一相對便宜、大且緩慢的記憶體中儲存該超集之當前未使用的密鑰,並在一相對快速、小且昂貴的記憶體中快取該第一複數個密鑰。在一個實施例中,在具有一第一處理器、一第一記憶體控制器及一第一RAM之一電腦系統中,該第一記憶體控制器具有連接於該第一處理器與該第一RAM之間的一記憶體密碼電路,該記憶體密碼電路具有一密鑰儲存區及一第一密碼引擎,且該密鑰儲存區經組態以儲存可由一密碼密鑰識別存取之第一複數個密碼密鑰。

Description

用於在一加密系統中管理密碼密鑰之一集合的積體電路(IC)系統、用於一積體電路(IC)系統之方法及非暫時性電腦可讀媒體
本發明之實施例大體上係關於積體電路(IC),且更特定地而非獨占式地係關於IC實施密碼系統。
密碼術用以藉由例如將意欲保持私密之使用者資料(被稱為明文)加密成未經授權檢視者無法理解之密文,而使未經授權檢視者不能檢視使用者之私密資料。接著可安全地儲存及/或傳輸顯得淩亂之經編碼密文。隨後,在需要時,使用者或經授權檢視者可將密文解密回成明文。此加密及解密處理程序允許使用者以明文形式建立及存取私密資料,同時防止在以密文形式儲存及/或傳輸時對私密資料進行未經授權存取。
通常藉由使用密碼密鑰處理輸入(分別為明文或密文)以產生對應輸出(分別為密文或明文)來執行加密及解密。針對加密及解密兩者使用相同密鑰之密碼系統被分類為對稱密碼系統。一種風行對稱密碼系統為進階加密標準(Advanced Encryption Standard;AES),其被描述於聯 邦資訊標準(Federal Information Standards;FIPS)公告197中。
密碼系統可用於例如虛擬化伺服器環境中,該虛擬化伺服器環境允許多個虛擬機(virtual machine;VM)共用單一實體伺服器平台。應注意,可在多個IC裝置上包含多個處理器核心之單一實體伺服器係作為單一平台而操作。實體平台支援超級監督器程式,該超級監督器程式管理多個VM在實體平台上之操作。應注意,由超級監督器管理之特定VM可在實體平台上主動地執行,或可以暫停狀態儲存於記憶體中。主動VM可存取多個不同記憶體類型及/或位置,該等記憶體類型及/或位置中之一些可由其他VM及/或在平台上執行之其他程式(諸如超級監督器自身)存取。一VM亦可存取另一VM之記憶體內容或超級監督器之記憶體內容,限制條件為存取控制准許此等存取。為了保護每一VM之機密性免受諸如DRAM探測/窺探之實體攻擊,可加密VM之內容之一部分,直至其全部。為了實現有效安全性,每一VM應使用唯一(亦即,獨佔式)對應密碼密鑰。用以管理用於VM程式碼及資料之加密及/或解密之密鑰的系統及方法可為有用的。
以下呈現一或多個實施例之簡化概述以提供對此等實施例之基本理解。此概述並非所有預期實施例之廣泛綜述,且既不意欲識別所有實施例之關鍵或決定性要素,亦不意欲劃定任何或所有實施例之範疇。該概述之唯一目的係以簡化形式呈現一或多個實施例之一些概念,作為稍後所呈現之更詳細描述的序言。
在一個實施例中,一種積體電路(IC)系統包含一第一處理器、一第一記憶體控制器及一第一隨機存取記憶體(RAM),其中該第一記 憶體控制器包含一記憶體密碼電路,該記憶體密碼電路包含一密鑰儲存區及一密碼引擎,該密鑰儲存區包含複數個儲存空間,每一儲存空間可使用一對應密鑰識別符(key identifier;KID)來存取,且其中該密鑰儲存區經組態以回應於接收到一KID而提供儲存於該對應儲存空間中之一密碼密鑰。
在另一實施例中,提供一種用於一積體電路(IC)系統之方法,該IC系統包含一第一處理器、一第一記憶體控制器及一第一隨機存取記憶體(RAM),其中該第一記憶體控制器包含一記憶體密碼電路,該記憶體密碼電路包含一密鑰儲存區及一密碼引擎,且該密鑰儲存區包含複數個儲存空間,每一儲存空間可使用一對應密鑰識別符(key identifier;KID)來存取,該方法包含:由該密鑰儲存區接收一KID;由該密鑰儲存區存取對應於該KID之該儲存空間;及由該密鑰儲存區回應於接收到該KID而提供儲存於該對應儲存空間中之一密碼密鑰。
在又一實施例中,一種非暫時性電腦可讀媒體在其上儲存有指令,該等指令用於致使一IC系統執行一方法,該IC系統包含一第一處理器、一第一記憶體控制器及一第一隨機存取記憶體(RAM),其中該第一記憶體控制器包含一記憶體密碼電路,該記憶體密碼電路包含一密鑰儲存區及一密碼引擎,且該密鑰儲存區包含複數個儲存空間,每一儲存空間可使用一對應密鑰識別符(key identifier;KID)來存取,該方法包含:由該密鑰儲存區接收一KID;由該密鑰儲存區存取對應於該KID之該儲存空間;及由該密鑰儲存區回應於接收到該KID而提供儲存於該對應儲存空間中之一密碼密鑰。
此外,本發明亦包括具有組件或經組態以執行上述方法之 設備,及儲存可由一處理器執行以執行上述方法之一或多個程式碼之電腦可讀媒體。
為了實現前述及相關目的,一或多個實施例包含在下文中充分地描述並在申請專利範圍中特定地指出之特徵。以下描述及所附圖式詳細地闡述了一或多個實施例之某些說明性特徵。然而,此等特徵僅僅指示可使用各種實施例之原理的各種方式中之幾種方式,且此描述意欲包括所有此等實施例及其等效者。
100:電腦系統
101:系統單晶片(SoC)
102:系統單晶片(SoC)外部隨機存取記憶體(RAM)模組
103:使用者介面
104:網路介面
201:中央處理單元(CPU)核心
202:L2快取記憶體
203:L3快取記憶體
204:記憶體控制器
205:實體層(PHY)介面
206:系統匯流排
207:密鑰管理單元(KMU)
208:匯流排介面
209:記憶體密碼(MC)電路(MCC)
209a:資料路徑
209b:資料路徑
210:錯誤校正碼(ECC)電路
301:加密引擎
302:解密引擎
303:密鑰儲存區
304:仲裁器
400:資料封包
401:標頭
402:密鑰識別符(KID)
403:資料酬載
500:處理程序
501:步驟
502:步驟
503:步驟
504:步驟
505:步驟
506:步驟
600:處理程序
601:步驟
602:步驟
603:步驟
604:步驟
605:步驟
606:步驟
607:步驟
700:處理程序
701:步驟
702:步驟
703:步驟
704:步驟
705:步驟
706:步驟
707:步驟
708:步驟
將在下文中結合所附圖式描述所揭示之實施例,該等圖式被提供以繪示而非限制所揭示之實施例,其中類似的名稱表示類似的元件,且其中:圖1為根據一個實施例之電腦系統的簡化示意圖。
圖2為圖1之電腦系統之詳細部分的簡化示意圖。
圖3為圖2之記憶體密碼電路的簡化示意圖。
圖4為根據圖2之電腦系統之一個實施例之例示性資料封包的示意性表示。
圖5為根據一個實施例之處理程序的流程圖。
圖6為根據一個實施例之處理程序的流程圖。
圖7為根據一個實施例之處理程序的流程圖。
根據35 U.S.C.§119之優先權主張
本申請案主張2018年1月9日申請的名為「在一加密系統中管理密碼密鑰之一集合(MANAGING A SET OF CRYPTOGRAPHIC KEYS IN AN ENCRYPTED SYSTEM)」之美國非臨時專利申請案第15/865,994號的優先權,該專利申請案被讓渡給本申請案之受讓人且其全文據此以引用之方式明確地併入本文中。
現在參考圖式描述各種實施例。在以下描述中,出於闡釋之目的,闡述了特定細節以提供對一或多個實施例之透徹理解。然而,可能明顯的是,可在沒有此等特定細節之情況下實踐此(此等)實施例。另外,如本文中所使用之術語「組件」可為構成系統之部件中之一者,可為硬體、韌體及/或儲存於電腦可讀媒體上之軟體,且可被劃分成其他組件。
以下描述提供了實例,且並不限制申請專利範圍中所闡述之範疇、適用性或實例。可在不脫離本發明之範疇的情況下對所論述元件之功能及配置作出改變。適當時,各種實例可省略、取代或添加各種程序或組件。舉例而言,可以與所描述次序不同之次序執行所描述方法,且可添加、省略或組合各種步驟。又,關於一些實例所描述之特徵可在其他實例中加以組合。應注意,為了易於參考並增大清晰度,可在各圖中個別地標記多個實質上相同元件之僅一個例項。
本發明之實施例包括每一VM在對應受保護軟體環境(protected software environment;PSE)內執行之系統。PSE由PSE管理軟體管理。應注意,密碼保護可應用於任何任意軟體層(例如,韌體、超級監督器、VM/內核、驅動程式、應用程式、處理程序、子處理程序、執行緒等等)。任何此類軟體可在PSE內部起作用。超級監督器通常將為囊封VM之PSE的PSE管理軟體,且OS內核通常將為囊封應用程式之PSE的PSE管理軟體。大體而言,PSE管理軟體角色通常將由相比於PSE內含有 之軟體以下一較高特殊權限等級執行的軟體實現。
本發明之實施例包括用於儲存與由PSE管理軟體(例如,超級監督器)監督之第一複數個對應PSE(例如,囊封虛擬機)相關聯之第一複數個密碼密鑰的系統及方法,該PSE管理軟體在電腦系統上執行且經組態以監督複數個PSE之超集。電腦系統以加密形式在相對便宜、大且緩慢的記憶體(例如,DDR SDRAM)中儲存超集之當前未使用的密鑰,並以明文形式在相對快速、小且昂貴的記憶體(例如,晶片上SRAM)中快取第一複數個密鑰。在一個實施例中,在具有第一處理器、第一記憶體控制器及第一RAM之電腦系統中,第一記憶體控制器具有連接於第一處理器與第一RAM之間的記憶體密碼電路,記憶體密碼電路具有密鑰儲存區及第一密碼引擎,且密鑰儲存區包含經組態以儲存可由密鑰識別符(key identifier;KID)存取之第一複數個密碼密鑰的複數個儲存空間。
在一些實施例中,包含一或多個處理器並能夠進行並行處理之電腦系統經組態以支援複數個PSE之安全及同時(亦即,並行)操作,其中複數個PSE具有對應複數個密碼密鑰,換言之,每一PSE與對應密碼密鑰相關聯。另外,電腦系統具有由複數個PSE共用之隨機存取記憶體。電腦系統具有連接於一或多個處理器與共用記憶體之間的記憶體密碼電路(MCC),其中MCC包括密碼引擎及用於儲存複數個密碼密鑰之子集的密鑰儲存區。在處理器與共用記憶體之間的資料傳輸操作期間(例如,在提取處理器指令、資料讀取及資料寫入時),密碼引擎使用儲存於密鑰儲存區中之對應密碼密鑰加密或解密經傳輸資料(例如,處理器指令)。以硬體或韌體實施MCC且在密鑰儲存區中快取很可能使用的密鑰會有助於允許對經傳輸資料快速且高效地執行密碼操作。
圖1為根據本發明之一個實施例之電腦系統100的簡化示意圖。電腦系統100包含系統單晶片(SoC)101及一或多個SoC外部隨機存取記憶體(RAM)模組102,SoC外部RAM模組102可為例如雙資料速率(DDR)同步動態RAM(SDRAM)或任何其他合適RAM。電腦系統100亦包含使用者介面103及網路介面104。應注意,一般熟習此項技術者將瞭解,電腦系統100以及其組件中之任一者可進一步包括任何合適種類之各種額外組件(未圖示),該等額外組件之描述對於理解該實施例而言並非必需的。
圖2為圖1之電腦系統100之詳細部分的簡化示意圖。SoC 101包含一或多個中央處理單元(CPU)核心201,CPU核心201中之每一者可為單執行緒或多執行緒處理器。每一CPU核心201可包括一L1快取記憶體(未圖示)及一L2快取記憶體202。SoC 101進一步包含一或多個L3快取記憶體203、一或多個記憶體控制器204、一或多個實體層(PHY)介面205,及一系統匯流排206。SoC 101進一步包含一密鑰管理單元(KMU)207,KMU 207可被實施為如所展示之離散單機模組,被實施為兩個或多於兩個CPU核心201內之分散式模組,或以任何合適方式被實施。系統匯流排206互連CPU核心201、L3快取記憶體203、KMU 207及記憶體控制器204,連同可包括於SoC 101內之任何其他周邊裝置。
記憶體控制器204包含連接至系統匯流排206之一匯流排介面208。匯流排介面208亦經由一資料路徑209a連接至一記憶體密碼(MC)電路(MCC)209,MCC 209又經由一資料路徑209b連接至一選用的錯誤校正碼(ECC)電路210。應注意,在替代實施例中,MCC 209可在無中介ECC電路之情況下連接至PHY 205。記憶體控制器204以通信方式耦接至 一對應PHY介面205,PHY介面205又以通信方式耦接至一對應外部RAM模組102。
電腦系統100支援PSE管理軟體對複數個PSE之管理,其中複數個PSE之一子集可作為並行處理程序同時執行。電腦系統100支援由多個CPU核心201進行之並行處理。在一些實施方案中,CPU核心201中之一或多者可經組態以並行地執行多個執行緒。應注意,在一些替代實施例中,電腦系統100可具有僅一個CPU核心201,然而,CPU核心201支援多執行緒處理且因此支援並行處理。應進一步注意,在一些替代實施例中,電腦系統100可包含兩個或多於兩個SoC,該等SoC經由晶片至晶片介面相干地連接以形成多通訊端系統。
電腦系統100可支援任意大數目個PSE,每一PSE與唯一密碼密鑰相關聯,此允許CPU核心201安全地共用RAM模組102並允許PSE安全地操作,而不會受到諸如其他PSE、PSE管理軟體及能夠實體上存取電腦系統100之攻擊者(例如,實體攻擊者)的其他處理程序的窺探。SoC 101可經設計成使用時間分片以支援數個PSE之幾乎同時執行,該等PSE之數目大於可由SoC 101在對應CPU核心201上支援之並行處理程序之數目,但小於可由電腦系統100支援之PSE之任意大總數目。如下文將更詳細地所闡釋,KMU 207儲存及管理用於由電腦系統100支援之PSE的密碼密鑰及對應KID。
如下文將更詳細地所闡釋,在操作中,當在第一CPU核心201上執行之第一PSE需要將資料區塊寫入至RAM 102時,由MC電路209使用唯一地對應於第一PSE之第一密碼密鑰加密資料區塊。接著將對應加密資料區塊寫入至第一RAM模組102。當第一PSE需要自RAM模組102讀 取資料區塊時,由MC電路209使用第一密碼密鑰解密在RAM模組102上加密之資料區塊,且接著將對應解密資料區塊傳輸至CPU核心201,第一PSE正在CPU核心201上執行。應注意,寫入至RAM模組102及自RAM模組102讀取可作為由CPU核心201進行之例行指令執行之部分而執行。
圖3為圖2之記憶體密碼電路209的簡化示意圖。MC電路209包含加密引擎301、解密引擎302、密鑰儲存區303及仲裁器304。加密引擎301及解密引擎302為兩個不同類型之密碼引擎。加密引擎301為經組態以接收明文區塊及密碼密鑰、使用諸如使用適當編密操作模式之AES的加密演算法運用密碼密鑰加密明文並輸出對應密文區塊的電路。解密引擎302為經組態以接收密文區塊及密碼密鑰、使用諸如使用適當編密操作模式之AES的解密演算法運用密碼密鑰解密密文並輸出對應明文區塊的電路。密鑰儲存區303可為經組態以可定址地儲存及更新複數個密碼密鑰之SRAM、暫存器檔案或相似快速存取RAM。
密鑰儲存區303經組態以自仲裁器304接收KID。回應於接收到KID,密鑰儲存區303經組態以輸出儲存於由KID指示之密鑰儲存區位址處之密碼密鑰。密鑰儲存區303之輸出連接至加密引擎301及解密引擎302。密鑰儲存區303亦經組態以經由組態介面自密鑰管理單元(KMU)207接收密碼密鑰以供儲存。KMU 207經由組態介面提供例如256位元密碼密鑰,並經由仲裁器304提供對應KID。作為回應,密鑰儲存區303在由KID指示之密鑰儲存區位址處儲存經接收密碼密鑰。
仲裁器304經組態以(i)經由資料路徑209a自CPU核心201,及(ii)經由資料路徑209a自KMU 207接收KID。應注意,對於讀取及寫入請求兩者,自CPU核心201接收KID。KID被攜載於系統匯流排206上且亦 可儲存於快取記憶體中,其中每一快取行攜載KID連同記憶體位址及資料。來自CPU核心201之寫入請求包括明文資料及對應於CPU核心201上執行之PSE的KID。來自CPU核心201之讀取請求包括記憶體位址及PSE對應KID。回應於讀取請求,可由MC電路209緩衝暫存KID或來自密鑰儲存區303之對應密鑰,直至自RAM 102擷取位於經請求記憶體位址處之密文區塊為止,此時,若KID被緩衝暫存,則使用KID以自密鑰儲存區303擷取對應密鑰。接著將密文區塊及密鑰提供至解密引擎302。
仲裁器304將其KID輸入多工成提供至密鑰儲存區303之KID輸入的一個KID輸出。此等仲裁器304輸入可被稱為(i)記憶體寫入路徑、(ii)記憶體讀取請求路徑及(iii)組態介面路徑。仲裁器304可經組態以基於例如經指派優先級在實質上同時接收到之衝突KID輸入當中進行仲裁。在一個實施方案中,與自RAM模組102擷取之讀取相關聯的KID被給予最高優先級,與自CPU核心201接收到之寫入相關聯的KID被給予中等優先級,且自KMU接收到之密鑰更新被給予最低優先級。應注意,MC電路209之替代實施例可放棄仲裁器304,而代替地將KID直接提供至密鑰儲存區303,且可具有用於處置至密鑰儲存區303之衝突KID輸入的任何合適替代機構。
應注意,加密引擎301及解密引擎302中之每一者一般可被稱為密碼引擎。應注意,在一些替代實施例中,單一密碼引擎執行加密及解密兩者,且額外電路系統提供資料、位址及/或KID之所需選路傳送。應注意,在一些替代實施例中,MC電路209可具有僅一種類型之密碼引擎。換言之,在一些替代實施例中,MC電路209可僅具有加密引擎而無解密引擎,或反之亦然。
在一個實施方案中,SoC 101包含十六個單執行緒CPU核心201,藉此允許十六個獨特PSE同時執行。PSE管理軟體可為橫越CPU核心201中之一者、一些或全部分散式執行的程式。SoC 101經組態以支援數千個PSE,並在任一時間支援高達128個PSE之時間分片。換言之,在正常操作期間,數千個PSE被暫停(換言之,休眠),其中一PSE之程式碼及資料存在於運用彼PSE之密鑰加密的RAM中,但該PSE之對應密碼密鑰由KMU以加密形式儲存於相對便宜、大且緩慢的記憶體(例如,DDR SDRAM)中,且因此不立即可用於加密/解密彼PSE之程式碼及資料。同時,可藉由時間分片式共用SoC 101之十六個CPU核心201來執行許多PSE,其中此等PSE之密碼密鑰儲存於密鑰儲存區303(相對快速、小且昂貴的記憶體,例如晶片上SRAM)中以供加密引擎301及解密引擎302快速存取,其中此等PSE之程式碼及資料可儲存於RAM模組102中,且其中此等PSE中之高達十六者可在CPU核心201上同時執行。
因此,密鑰儲存區303可經組態以快取128個密碼密鑰。每一密碼密鑰儲存於密鑰儲存區303中之對應7位元可定址(使用KID)記憶體位置中。應注意,7位元位址可用以唯一地定址128個密碼密鑰位置(由於27等於128)。在一個實施方案中,每一密碼密鑰為256位元。
圖4為根據圖2之電腦系統100之一個實施例之例示性資料封包400的示意性表示。資料封包400包括資料酬載403、密鑰識別符(KID)402及標頭401。在一個實施方案中,(i)資料酬載欄位403為至少128位元,以便能夠含有整個128位元標準AES區塊,且(ii)KID欄位為至少7位元,以支援在密鑰儲存區303中定址128個密碼密鑰位置。標頭401可含有任何合適標頭資訊,諸如用於在系統匯流排206上傳輸資料封包 400之屬性資訊(例如,記憶體位址、讀取/寫入指示符、用於選路傳送回應之源位址等等)。應注意,讀取請求封包可僅包括KID及標頭,包括記憶體位址,而無酬載。相關地,讀取回應封包可僅包括資料酬載及標頭,而無KID。應進一步注意,在使用時,KID不必為資料封包之專用區段,且可為例如標頭之部分及/或用於除了識別密鑰儲存區中之密鑰位置以外的目的。
圖5為根據一個實施例之處理程序500的流程圖。處理程序500在由寫入模組判定需要將資料區塊寫入至RAM模組102(步驟501)時開始。寫入模組可由例如在第一CPU上執行的需要將區塊直接寫入至記憶體之第一PSE或需要收回快取行之第一快取記憶體構成。應注意,大體而言,來自CPU上執行之PSE的寫入請求可被快取,且當在SoC 101之快取階層中時,資料區塊與PSE之KID相關聯。寫入模組經由系統匯流排206及匯流排介面208將對應資料封包400提供至MC電路209,資料封包400包含在資料酬載403中之明文資料區塊,及在KID欄位402中對應於第一PSE之KID(步驟502)。應注意,資料酬載403可包括尾碼及/或首碼填補位元連同資料區塊。將資料酬載403提供至加密引擎301,且將KID提供至仲裁器304,仲裁器304將KID提供至密鑰儲存區303(步驟503)。
密鑰儲存區303輸出儲存於由KID指定之位址處之密碼密鑰,並將彼密鑰提供至加密引擎301(步驟504)。加密引擎301使用經接收密鑰對經接收明文資料執行加密演算法(例如,AES加密),並輸出對應密文資料區塊(步驟505)。接著將密文資料區塊提供至RAM模組102(步驟506)。
圖6為根據一個實施例之處理程序600的流程圖。處理程序 600在記憶體控制器204經由匯流排介面208接收資料封包並判定需要使用資料封包中提供之位址及KID自RAM模組102讀取(亦即,擷取)資料區塊(步驟601)時開始。可自例如CPU核心201、L2快取記憶體202或L3快取記憶體203接收資料封包。記憶體控制器204起始自RAM模組102讀取對應資料區塊,並緩衝暫存對應KID(步驟602)。MC電路209自RAM模組102接收經請求加密資料區塊(步驟603)。
將KID提供至密鑰儲存區303(步驟604)。向解密引擎302提供(1)經擷取加密資料區塊及(2)密鑰儲存區303中儲存於KID位址處之密鑰(步驟605)。解密引擎302使用經接收密鑰對經接收加密資料區塊執行解密演算法(例如,AES解密),並輸出對應明文資料區塊(步驟606)。記憶體控制器204經由匯流排介面208提供含有明文資料區塊之回應資料封包,以用於選路傳送回至請求CPU核心或快取記憶體(步驟607)。
一般術語可用以描述上述讀取及寫入處理程序500及600之步驟。判定需要寫入或讀取資料為判定需要在第一PSE與RAM模組102之間傳送資料。密文及明文為資料。加密及解密為密碼操作,其採取第一資料區塊並輸出第一密碼對應資料區塊。
圖7為根據一個實施例之處理程序700的流程圖。處理程序700在PSE管理軟體判定需要啟動新的或休眠的PSE(步驟701)時開始。回應於該判定,PSE管理軟體通知KMU 207,KMU 207判定密鑰儲存區303中是否存在可用的空閒(例如,空白)槽位(步驟702)。若存在,則在密鑰儲存區303中之可用槽位中儲存用於該啟動PSE之密碼密鑰,且將彼啟動PSE與對應於可用槽位之密鑰儲存區位址的KID相關聯(步驟703)。若在步驟702中判定密鑰儲存區303中不存在可用的空閒槽位,則KMU 207選擇 對應密鑰待自密鑰儲存區303收回之PSE,並將選定PSE置於休眠狀態(步驟704)。任何合適演算法或演算法組合可用以判定要收回哪一PSE,例如,最少使用的KID、隨機選擇的KID、循序選擇的KID或最低優先級的PSE KID。
在選擇收回PSE之後,清空與待收回密鑰之PSE相關聯的快取行,且使與待收回密鑰之PSE相關聯的轉譯後備緩衝暫存器(TLB)輸入項目無效(步驟705)。若尚未儲存,則以加密形式在相對較便宜、較大且較慢的記憶體(例如,DDR SDRAM)中儲存收回PSE之對應密碼密鑰以供稍後使用(步驟706)。KMU 207向密鑰儲存區303(1)經由仲裁器304提供經收回密鑰之KID及(2)提供啟動PSE之密碼密鑰(步驟707),且密鑰儲存區303在由經收回密鑰之KID指示的記憶體位址中儲存啟動PSE之密碼密鑰(步驟708),藉此在密鑰儲存區303中運用啟動PSE之密鑰替換收回PSE之密鑰。
應注意,上述記憶體密碼電路可用於除了電腦系統100以外之系統中。舉例而言,MC電路209可用於管理由複數個檔案系統儲存於共用非揮發性記憶體上(例如,在一或多個非揮發性雙排記憶體模組NVDIMM上)之所謂靜止資料之加密,其中相似於上述PSE,每一檔案系統具有對應密碼密鑰。大體而言,記憶體密碼電路可用於相對大量複數個用戶端及對應密碼密鑰被管理之任何合適系統中。
上文結合所附圖式所闡述之實施方式描述了實例,且並不表示可實施或在申請專利範圍之範疇內的僅有實例。當在此實施方式中使用時,術語「實例」意謂「充當實例、例項或說明」,且並不「較佳」或「優於其他實例」。實施方式包括出於提供對所描述技術之理解之目的的 特定細節。然而,可在沒有此等特定細節之情況下實踐此等技術。在一些情況下,以方塊圖形式展示熟知的結構及設備,以免混淆所描述實例之概念。
可使用多種不同科技及技術中之任一者來表示資訊及信號。舉例而言,可在整個上文描述中參考之資料、指令、命令、資訊、信號、位元、符號及碼片可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子、儲存於電腦可讀媒體上之電腦可執行程式碼或指令或其任何組合表示。
結合本文中之揭示內容所描述的各種說明性區塊及組件可運用經特殊程式化之裝置來實施或執行,經特殊程式化之裝置係諸如但不限於經設計成執行本文中所描述之功能的處理器、數位信號處理器(DSP)、ASIC、FPGA或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或其任何組合。經特殊程式化之處理器可為微處理器,但在替代例中,處理器可為任何習知處理器、控制器、微控制器或狀態機。經特殊程式化之處理器亦可被實施為計算裝置之組合,例如,DSP與微處理器之組合、多個微處理器、結合DSP核心之一或多個微處理器,或任何其他此類組態。
本文中所描述之功能可在硬體、由處理器執行之軟體、韌體或其任何組合中實施。若在由處理器執行之軟體中實施,則功能可作為一或多個指令或程式碼儲存於非暫時性電腦可讀媒體上或經由非暫時性電腦可讀媒體而傳輸。其他實例及實施方案在本發明及所附申請專利範圍之範疇及精神內。舉例而言,歸因於軟體之本質,上文所描述之功能可使用由經特殊程式化之處理器、硬體、韌體、硬連線或此等各者中之任一者之 組合執行的軟體來實施。實施功能之特徵亦可實體上位於各種部位,包括經分佈使得功能之部分在不同實體位置處實施。又,如本文中所使用,包括在申請專利範圍中,「或」在用於以「中之至少一者」作為結尾之項目清單中時指示分離性清單,使得例如「A、B或C中之至少一者」之清單意謂A或B或C或AB或AC或BC或ABC(亦即,A及B及C)。
電腦可讀媒體包括電腦儲存媒體及通信媒體兩者,通信媒體包括促進電腦程式自一處至另一處之傳送的任何媒體。儲存媒體可為可由一般用途或特殊用途電腦存取之任何可用媒體。作為實例而非限制,電腦可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存、磁碟儲存或其他磁性儲存裝置,或可用以攜載或儲存呈指令或資料結構形式之所要程式碼構件且可由一般用途或特殊用途電腦或一般用途或特殊用途處理器存取的任何其他媒體。又,將任何連接適當地稱為電腦可讀媒體。舉例而言,若使用同軸纜線、光纜、雙絞線、數位用戶線(DSL)或諸如紅外線、無線電及微波之無線科技自網站、伺服器或其他遠端源傳輸軟體,則同軸纜線、光纜、雙絞線、DSL或諸如紅外線、無線電及微波之無線科技包括於媒體之定義中。如本文中所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位多功能光碟(DVD)、軟性磁碟及藍光光碟,其中磁碟通常以磁性方式再生資料,而光碟運用雷射以光學方式再生資料。以上各者之組合亦包括於電腦可讀媒體之範疇內。
提供了本發明之先前描述以使熟習此項技術者能夠製作或使用本發明。在不脫離本發明之精神或範疇的情況下,對本發明之各種修改對於熟習此項技術者而言將容易顯而易見,且本文中所定義之常見原理可應用於其他變化。此外,儘管可以單數形式描述或主張所描述之實施例 的元件,但除非明確陳述單數限制,否則亦涵蓋複數。另外,除非另有陳述,否則任一實施例之全部或一部分可與任一其他實施例之全部或一部分一起被利用。因此,本發明並不限於本文中所描述之實例及設計,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣範疇。
209:記憶體密碼(MC)電路(MCC)
209a:資料路徑
209b:資料路徑
301:加密引擎
302:解密引擎
303:密鑰儲存區
304:仲裁器

Claims (19)

  1. 一種積體電路(IC)系統,該IC系統包含一第一處理器、一第一記憶體控制器及一第一隨機存取記憶體(RAM),其中:該第一記憶體控制器包含一記憶體密碼電路;該記憶體密碼電路包含:一密鑰儲存區;一仲裁器;及一第一類型密碼引擎;該密鑰儲存區包含複數個儲存空間,每一儲存空間可使用一對應密鑰識別符(key identifier;KID)來存取;該仲裁器經組態以將複數個KID輸入多工成提供至該密鑰儲存區之一KID,並在實質上同時接收到之衝突KID輸入當中進行仲裁;且該密鑰儲存區經組態以回應於接收到該KID而提供儲存於一對應儲存空間中之一密碼密鑰。
  2. 如請求項1之IC系統,其中:該記憶體密碼電路經組態以接收一第一輸入區塊及一對應第一KID;該記憶體密碼電路經組態以進行以下操作:將該第一KID提供至該密鑰儲存區;向該第一類型密碼引擎提供該第一輸入區塊及由該密鑰儲存區回應於接收到該第一KID而提供之一第一密碼密鑰;且該第一類型密碼引擎經組態以使用由該密鑰儲存區提供之該第一密 碼密鑰對該第一輸入區塊執行一第一類型密碼操作。
  3. 如請求項2之IC系統,其中:該第一類型密碼引擎為一加密引擎;該第一類型密碼操作為使用該第一密碼密鑰對該第一輸入區塊進行一加密;該加密引擎輸出提供至該第一RAM之一對應密文區塊。
  4. 如請求項3之IC系統,其中:該記憶體密碼電路進一步包含一解密引擎;該記憶體密碼電路經組態以接收一第二輸入區塊及一對應第二KID;該記憶體密碼電路經組態以進行以下操作:將該第二KID提供至該密鑰儲存區;向該解密引擎提供該第二輸入區塊及由該密鑰儲存區回應於接收到該第二KID而提供之一第二密碼密鑰;該解密引擎經組態以使用由該密鑰儲存區提供之該第二密碼密鑰對該第二輸入區塊執行一解密操作;且該解密引擎輸出一對應明文區塊。
  5. 如請求項4之IC系統,其中:該第二輸入區塊係自一第二RAM接收;且該第二KID係自一第二處理器接收。
  6. 如請求項2之IC系統,其中:該第一KID係自該第一處理器接收;該第一輸入區塊係自該第一RAM接收;該第一類型密碼引擎為一解密引擎;該第一類型密碼操作為使用該第一密碼密鑰對該第一輸入區塊進行一解密;該解密引擎輸出一對應明文區塊;該明文區塊被提供至該第一處理器。
  7. 如請求項2之IC系統,其中:該記憶體密碼電路進一步包含一第二類型密碼引擎;該記憶體密碼電路經組態以接收一第二輸入區塊及一對應第二KID;該記憶體密碼電路經組態以進行以下操作:將該第二KID提供至該密鑰儲存區;向該第二類型密碼引擎提供該第二輸入區塊及由該密鑰儲存區回應於接收到該第二KID而提供之一第二密碼密鑰;且該第二類型密碼引擎經組態以使用由該密鑰儲存區提供之該第二密碼密鑰對該第二輸入區塊執行一第二類型密碼操作,其中該第二類型密碼操作不同於該第一類型密碼操作。
  8. 如請求項1之IC系統,其進一步包含一密鑰管理單元(KMU),其中:該KMU經組態以管理該密鑰儲存區。
  9. 如請求項1之IC系統,其進一步包含一第一快取記憶體,及互連該第一處理器、該第一記憶體控制器及該第一快取記憶體之一系統匯流排,其中:該系統匯流排經組態以攜載一KID連同一對應記憶體位址及一對應資料區塊;且該第一快取記憶體經組態以儲存該KID連同該對應記憶體位址及該對應資料區塊。
  10. 如請求項1之IC系統,其中:該IC系統支援複數個受保護軟體環境(protected software environment;PSE)之操作;該等PSE之該操作由一PSE管理器管理;每一PSE與一對應密碼密鑰相關聯;且該第一處理器經組態以執行一第一PSE。
  11. 如請求項1之IC系統,其中該第一RAM為一同步動態RAM(SDRAM)。
  12. 如請求項1之IC系統,其中該第一RAM為一非揮發性雙排記憶體模組(NVDIMM)RAM。
  13. 一種用於一積體電路(IC)系統之方法,該IC系統包含一第一處理器、一第一記憶體控制器及一第一隨機存取記憶體(RAM),其中該第一記 憶體控制器包含一記憶體密碼電路,該記憶體密碼電路包含一密鑰儲存區、一仲裁器及一第一類型密碼引擎,且該密鑰儲存區包含複數個儲存空間,每一儲存空間可使用一對應密鑰識別符(key identifier;KID)來存取,該方法包含:由該密鑰儲存區自複數個KID輸入之一接收一KID,其中該仲裁器經組態以將該複數個KID輸入多工成提供至該密鑰儲存區之該KID,並在實質上同時接收到之衝突KID輸入當中進行仲裁;由該密鑰儲存區存取對應於該KID之該儲存空間;及由該密鑰儲存區回應於接收到該KID而提供儲存於一對應儲存空間中之一密碼密鑰。
  14. 如請求項13之方法,其進一步包含:由該記憶體密碼電路接收一第一輸入區塊及一對應第一KID;由該記憶體密碼電路將該第一KID提供至該密鑰儲存區;由該記憶體密碼電路向該第一類型密碼引擎提供該第一輸入區塊及由該密鑰儲存區回應於接收到該第一KID而提供之一第一密碼密鑰;及由該第一類型密碼引擎使用由該密鑰儲存區提供之該第一密碼密鑰對該第一輸入區塊執行一第一類型密碼操作。
  15. 如請求項14之方法,其中:該第一類型密碼引擎為一加密引擎;該第一類型密碼操作為使用該第一密碼密鑰對該第一輸入區塊進行一加密; 該加密引擎輸出提供至該第一RAM之一對應密文區塊。
  16. 如請求項15之方法,其中該記憶體密碼電路進一步包含一解密引擎,且該方法進一步包含:由該記憶體密碼電路接收一第二輸入區塊及一對應第二KID;由該記憶體密碼電路將該第二KID提供至該密鑰儲存區;由該記憶體密碼電路向該解密引擎提供該第二輸入區塊及由該密鑰儲存區回應於接收到該第二KID而提供之一第二密碼密鑰;由該解密引擎使用由該密鑰儲存區提供之該第二密碼密鑰對該第二輸入區塊執行一解密操作;及由該解密引擎輸出一對應明文區塊。
  17. 如請求項14之方法,其中該記憶體密碼電路進一步包含一第二類型密碼引擎,且該方法進一步包含:由該記憶體密碼電路接收一第二輸入區塊及一對應第二KID;由該記憶體密碼電路將該第二KID提供至該密鑰儲存區;由該記憶體密碼電路向該第二類型密碼引擎提供該第二輸入區塊及由該密鑰儲存區回應於接收到該第二KID而提供之一第二密碼密鑰;及由該第二類型密碼引擎使用由該密鑰儲存區提供之該第二密碼密鑰對該第二輸入區塊執行一第二類型密碼操作,其中該第二類型密碼操作不同於該第一類型密碼操作。
  18. 如請求項13之方法,其中該IC進一步包含一第一快取記憶體,及互 連該第一處理器、該第一記憶體控制器及該第一快取記憶體之一系統匯流排,該方法進一步包含:由該系統匯流排攜載一KID連同一對應記憶體位址及一對應資料區塊;及由該第一快取記憶體儲存該KID連同該對應記憶體位址及該對應資料區塊。
  19. 一種非暫時性電腦可讀媒體,其上儲存有指令,該等指令用於致使一IC系統執行一方法,該IC系統包含一第一處理器、一第一記憶體控制器及一第一隨機存取記憶體(RAM),其中該第一記憶體控制器包含一記憶體密碼電路,該記憶體密碼電路包含一密鑰儲存區、一仲裁器及一密碼引擎,且該密鑰儲存區包含複數個儲存空間,每一儲存空間可使用一對應密鑰識別符(key identifier;KID)來存取,該方法包含:由該密鑰儲存區自複數個KID輸入之一接收一KID,其中該仲裁器經組態以將該複數個KID輸入多工成提供至該密鑰儲存區之該KID,並在實質上同時接收到之衝突KID輸入當中進行仲裁;由該密鑰儲存區存取對應於該KID之該儲存空間;及由該密鑰儲存區回應於接收到該KID而提供儲存於一對應儲存空間中之一密碼密鑰。
TW108100549A 2018-01-09 2019-01-07 用於在一加密系統中管理密碼密鑰之一集合的積體電路(ic)系統、用於一積體電路(ic)系統之方法及非暫時性電腦可讀媒體 TWI809026B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/865,994 US20190215160A1 (en) 2018-01-09 2018-01-09 Managing a set of cryptographic keys in an encrypted system
US15/865,994 2018-01-09

Publications (2)

Publication Number Publication Date
TW201933169A TW201933169A (zh) 2019-08-16
TWI809026B true TWI809026B (zh) 2023-07-21

Family

ID=65234706

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108100549A TWI809026B (zh) 2018-01-09 2019-01-07 用於在一加密系統中管理密碼密鑰之一集合的積體電路(ic)系統、用於一積體電路(ic)系統之方法及非暫時性電腦可讀媒體

Country Status (4)

Country Link
US (1) US20190215160A1 (zh)
CN (1) CN111566650A (zh)
TW (1) TWI809026B (zh)
WO (1) WO2019139854A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11789874B2 (en) 2018-01-09 2023-10-17 Qualcomm Incorporated Method, apparatus, and system for storing memory encryption realm key IDs
US11005649B2 (en) 2018-04-27 2021-05-11 Tesla, Inc. Autonomous driving controller encrypted communications
CN110391895B (zh) * 2019-07-31 2020-10-27 创新先进技术有限公司 数据预处理方法、密文数据获取方法、装置和电子设备
US10790961B2 (en) 2019-07-31 2020-09-29 Alibaba Group Holding Limited Ciphertext preprocessing and acquisition
US11556665B2 (en) * 2019-12-08 2023-01-17 Western Digital Technologies, Inc. Unlocking a data storage device
US11263153B1 (en) * 2020-11-02 2022-03-01 Silicon Motion, Inc. Data accessing method using data protection with aid of advanced encryption standard processing circuit, and associated apparatus
TWI769961B (zh) * 2020-12-11 2022-07-01 熵碼科技股份有限公司 基於物理不可複製函數的密鑰管理系統及其操作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201415286A (zh) * 2012-08-10 2014-04-16 Cryptography Res Inc 積體電路中之安全特性及金鑰管理
US20170132156A1 (en) * 2015-11-06 2017-05-11 International Business Machines Corporation Protecting a memory from unauthorized access
US20170277898A1 (en) * 2016-03-25 2017-09-28 Advanced Micro Devices, Inc. Key management for secure memory address spaces

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080229117A1 (en) * 2007-03-07 2008-09-18 Shin Kang G Apparatus for preventing digital piracy
US8990582B2 (en) * 2010-05-27 2015-03-24 Cisco Technology, Inc. Virtual machine memory compartmentalization in multi-core architectures
JP2012080295A (ja) * 2010-09-30 2012-04-19 Toshiba Corp 情報記憶装置、情報記憶方法、及び電子機器
US9798678B2 (en) * 2015-04-02 2017-10-24 International Business Machines Corporation Protecting storage from unauthorized access
US9846712B2 (en) * 2015-04-25 2017-12-19 International Business Machines Corporation Index-only multi-index access
US9848041B2 (en) * 2015-05-01 2017-12-19 Amazon Technologies, Inc. Automatic scaling of resource instance groups within compute clusters
US10069626B2 (en) * 2016-02-23 2018-09-04 Red Hat, Inc. Multiple encryption keys for a virtual machine
US10798073B2 (en) * 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
US10657071B2 (en) * 2017-09-25 2020-05-19 Intel Corporation System, apparatus and method for page granular, software controlled multiple key memory encryption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201415286A (zh) * 2012-08-10 2014-04-16 Cryptography Res Inc 積體電路中之安全特性及金鑰管理
US20170132156A1 (en) * 2015-11-06 2017-05-11 International Business Machines Corporation Protecting a memory from unauthorized access
US20170277898A1 (en) * 2016-03-25 2017-09-28 Advanced Micro Devices, Inc. Key management for secure memory address spaces

Also Published As

Publication number Publication date
TW201933169A (zh) 2019-08-16
WO2019139854A1 (en) 2019-07-18
CN111566650A (zh) 2020-08-21
US20190215160A1 (en) 2019-07-11

Similar Documents

Publication Publication Date Title
TWI809026B (zh) 用於在一加密系統中管理密碼密鑰之一集合的積體電路(ic)系統、用於一積體電路(ic)系統之方法及非暫時性電腦可讀媒體
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
US10671422B2 (en) Monitoring of memory page transitions between a hypervisor and a virtual machine
KR101880075B1 (ko) 중복 제거 기반 데이터 보안
US9397834B2 (en) Scrambling an address and encrypting write data for storing in a storage device
CN107408081B (zh) 提供对存储器的加强重放保护
US20170277898A1 (en) Key management for secure memory address spaces
US8954751B2 (en) Secure memory control parameters in table look aside buffer data fields and support memory array
US10896267B2 (en) Input/output data encryption
US11194920B2 (en) File system metadata protection
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
US20140164793A1 (en) Cryptographic information association to memory regions
US20190384938A1 (en) Storage apparatus and method for address scrambling
US8799673B2 (en) Seamlessly encrypting memory regions to protect against hardware-based attacks
US20150186295A1 (en) Bridging Circuitry Between A Memory Controller And Request Agents In A System Having Multiple System Memory Protection Schemes
JP2005523519A (ja) 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能
TWI797353B (zh) 動態密碼密鑰擴展之電路、方法及系統
US20230409492A1 (en) Method, apparatus, and system for storing memory encryption realm key ids
CN112585607A (zh) 用于存储存储器加密领域密钥id的方法、装置和系统
US20130103953A1 (en) Apparatus and method for encrypting hard disk