TWI797353B - 動態密碼密鑰擴展之電路、方法及系統 - Google Patents
動態密碼密鑰擴展之電路、方法及系統 Download PDFInfo
- Publication number
- TWI797353B TWI797353B TW108123676A TW108123676A TWI797353B TW I797353 B TWI797353 B TW I797353B TW 108123676 A TW108123676 A TW 108123676A TW 108123676 A TW108123676 A TW 108123676A TW I797353 B TWI797353 B TW I797353B
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- cryptographic
- block
- engine
- input
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Lock And Its Accessories (AREA)
Abstract
一些實施例包括用於複數個經擴展密碼密鑰之管理的系統與方法,該等經擴展密碼密鑰與藉由在一電腦系統上運行之受保護軟體環境(PSE)管理軟體監督的複數個對應PSE相關聯。在一個實施例中,一電腦系統具有一第一處理器、一第一記憶體控制器及一第一RAM。該第一記憶體控制器具有連接於該第一處理器與該第一RAM之間的一第一記憶體密碼電路。該記憶體密碼電路包含一密鑰庫及一第一密碼引擎。該密鑰庫包含一種子庫及一密鑰擴展引擎。該種子庫經組態以儲存可藉由一密鑰識別符存取的第一複數個密碼密鑰種子,以供藉由該密鑰擴展引擎用於生成經擴展密鑰,其中每一密鑰種子對應於一對應用戶端。
Description
本發明之實施例大體上係關於積體電路(IC),且更特定言之,但非排他地,係關於IC實施之密碼系統。
密碼術用於藉由(例如)將使用者之意欲保持私密的資料(稱為明文)加密成未經授權之查看者無法理解的密文,而自未經授權之查看者保護使用者之私密資料。接著可安全地儲存及/或傳輸呈現為混亂資訊之經編碼密文。隨後,在需要時,使用者或經授權查看者可將密文解密回明文。此加密及解密過程允許使用者以明文形式創建並存取私密資料,同時防止在以密文形式儲存及/或傳輸時對私密資料之未經授權存取。
加密及解密通常係藉由使用密碼密鑰處理輸入(分別為明文或密文)以生成對應輸出(分別為密文或明文)來執行。對於加密及解密兩者使用相同密鑰之密碼系統被分類為對稱密碼系統。一種流行的對稱密碼系統為高級加密標準(AES),其描述於聯邦資訊標準(FIPS)公開197中。
密碼系統可(例如)用於允許多個虛擬機(VM)共用單個實體伺服器平台之虛擬化伺服器環境中。應注意,在多個IC裝置上可包含多個處理器核心之單個實體伺服器被作為單個平台進行操作。實體平台支援在
實體平台上管理多個VM之操作的超管理器程式。應注意,由超管理器管理之特定VM可在實體平台上主動運行,或可以暫停狀態儲存於記憶體中。主動式VM可存取多個不同的記憶體類型及/或位置,其他VM及/或平台上運行之其他程式(諸如,超管理器自身)可存取該等類型及/或位置中之一些。VM亦可存取另一VM之記憶體內容或超管理器之記憶體內容,限制條件為存取控制准許此等存取。為保護每一VM之機密性免受諸如DRAM探測/窺探之實體攻擊,可對其內容的一部分-直至整體進行加密。為實現有效安全性,每一VM應使用唯一的(即,排他性的)對應密碼密鑰。管理用於VM程式碼及資料之加密及/或解密的密鑰之系統及方法可係有用的。
相關地,例如,亦可使用密碼系統分別對共用一個記憶體儲存系統的複數個檔案系統中之每一者進行加密。靜態資料密碼系統可用於此檔案保護,不管檔案係儲存於磁性儲存媒體上、RAM上或別處。通常用於靜態資料保護的密碼系統之實例係基於XEX之密文竊用(XTS)經調整碼簿模式中的AES。管理用於儲存器共用之檔案系統的密碼密鑰之類似系統與方法亦可為可用的。
以下呈現一或多個態樣之簡化概述,以提供對此等態樣之基本理解。此概述並非所有預期態樣之廣泛綜述,且既不意欲識別所有態樣之關鍵重要要素,亦不意欲描繪所有態樣之範疇。其唯一目的為以簡化形式呈現一或多個態樣之一些概念,作為稍後所呈現的更為具體之實施方式的序言。
在一個實施例中,一積體電路(IC)系統包含一第一處理
器、一第一記憶體控制器及一第一隨機存取記憶體(RAM)。該第一記憶體控制器包含連接至該第一處理器及該第一RAM的一記憶體密碼電路。該記憶體密碼電路包含一密鑰庫。該密鑰庫包含一密鑰擴展引擎。該密鑰庫經組態以接收一密鑰識別符,且基於該密鑰識別符向該密鑰擴展引擎提供一第一密鑰擴展輸入。該密鑰擴展引擎經組態以對該第一密鑰擴展輸入執行一密鑰擴展操作,以生成一經擴展密碼密鑰。
在另一實施例中,一種用於具有一第一處理器、一第一記憶體控制器及一第一隨機存取記憶體(RAM)之一積體電路(IC)系統的方法,其中該第一記憶體控制器包括連接至該第一處理器及該第一RAM之一記憶體密碼電路,該記憶體密碼電路具有一密鑰庫,且該密鑰庫具有一密鑰擴展引擎,該方法包含:(a)藉由該密鑰庫接收一密鑰識別符;(b)藉由該密鑰庫基於該密鑰識別符向該密鑰擴展引擎提供一第一密鑰擴展輸入;及(c)藉由該密鑰擴展引擎對該第一密鑰擴展輸入執行一密鑰擴展操作以生成一經擴展密碼密鑰。
在又一實施例中,一種非暫時性電腦可讀媒體上儲存有指令,用於使得包含一第一處理器、一第一記憶體控制器及一第一隨機存取記憶體(RAM)之一IC系統執行一種方法,其中該第一記憶體控制器包含連接至該第一處理器及該第一RAM之一記憶體密碼電路,該記憶體密碼電路包含一密鑰庫,且該密鑰庫包含一密鑰擴展引擎。該方法包含:藉由該密鑰庫接收一密鑰識別符;藉由該密鑰庫基於該密鑰識別符向該密鑰擴展引擎提供一第一密鑰擴展輸入;及藉由該密鑰擴展引擎對該第一密鑰擴展輸入執行一密鑰擴展操作以生成一經擴展密碼密鑰。
為實現前述及相關目的,該一或多個態樣包含在下文中充
分描述且在該申請專利範圍中特別指出之特徵。以下描述及隨附圖式詳細闡述一或多個態樣之某些說明性特徵。然而,此等特徵僅指示可採用各種態樣原理之各種方式中之少許,且此描述意欲包括所有此等態樣及其等效物。
100:電腦系統
101:系統單晶片(SoC)
102:隨機存取記憶體(RAM)模組
103:使用者介面
104:網路介面
205:中央處理單元(CPU)核心
206:L3快取記憶體
207:記憶體控制器
208:實體層(PHY)介面
209:系統匯流排
210:密鑰管理單元(KMU)
211:記憶體密碼電路(MCC)
312:加密引擎
313:解密引擎
314:密鑰庫
315:種子庫
316:擴展引擎
317:本端快取記憶體
318:仲裁器
400:資料封包
401:資料有效負載
402:密鑰識別符(KID)
403:標頭
500:處理程序
501:步驟
502:步驟
503:步驟
504:步驟
505:步驟
506:步驟
507:步驟
508:步驟
509:步驟
510:步驟
600:處理程序
601:步驟
602:步驟
603:步驟
604:步驟
605:步驟
606:步驟
607:步驟
608:步驟
609:步驟
714:密鑰庫
716:擴展引擎
717:本端快取記憶體
718:仲裁器
720:全域種子庫
721:計數器庫
800:處理程序
801:步驟
802:步驟
803:步驟
804:步驟
805:步驟
806:步驟
807:步驟
914:密鑰庫
916:擴展引擎
917:本端快取記憶體
918:仲裁器
920:全域種子庫
1000:處理程序
1001:步驟
1002:步驟
1003:步驟
1004:步驟
1005:步驟
本發明之態樣將在下文中結合附圖予以描述,該等附圖提供以說明且不限制本發明之態樣,其中相同名稱指示相同元件,且其中:圖1為根據本發明之一個實施例的電腦系統之簡化示意圖。
圖2為圖1之電腦系統的詳述部分之簡化示意圖。
圖3為圖2之記憶體密碼電路的簡化示意圖。
圖4為根據圖2之電腦系統的一個實施例之例示性資料封包的示意性表示。
圖5為根據一個實施例之處理程序的流程圖。
圖6為根據一個實施例之處理程序的流程圖。
圖7為根據一替代實施例的密鑰庫之簡化示意圖。
圖8為根據本發明之一實施例的用於圖7之密鑰庫的處理程序之流程圖。
圖9為根據另一替代實施例的密鑰庫之簡化示意圖。
圖10為根據本發明之一實施例的用於圖9之密鑰庫的處理程序之流程圖。
本專利申請案主張2018年8月2日申請、此處指派至受讓人的標題為「DYNAMIC CRYPTOGRAPHIC KEY EXPANSION」之美國非臨時專利申請案第16/053,626號之優先權,且特此以全文引用之方式明確地併入本文中。
現參考圖式描述各種實施例。在以下描述中,為達成解釋之目的,闡述許多特定細節以便提供對一或多個實施例之透徹理解。然而,明顯地,此(此等)態樣可在無此等特定細節之情況下得以實踐。另外,如本文中所使用之術語「組件」可為組成系統的部件中之一者,可為硬體、韌體及/或儲存於電腦可讀媒體上之軟體,且可分成其他組件。
以下描述提供實例,且並不限制在申請專利範圍中所闡述之範疇、適用性或實例。可在不脫離本發明之範疇之情況下對所論述元件之功能及配置作出改變。可省略、取代各種實例或視需要添加各種程序或組件。舉例而言,可以不同於所描述次序的次序執行所描述方法,且可添加、省略或組合各種步驟。另外,關於一些實例描述之特徵可在其他實例中組合。應注意,為了易於參考並增大清晰度,可僅在圖式中個別地標記多個大體上相同元件之一個例子。
在一些實施例中,每一VM在對應受保護軟體環境(PSE)內運行。PSE由PSE管理軟體管理。應注意,密碼保護可應用於任何任意軟體層(例如,韌體、超管理器、VM/核心、驅動器、應用程式、處理程序、子處理程序、執行緒等)。任何此等軟體可在PSE內部起作用。超管理器通常將為囊封VM的用於PSE之PSE管理軟體,且OS核心通常將為囊封應用程式的用於PSE之PSE管理軟體。大體而言,PSE管理軟體作用通常將由相比PSE內含有之軟體以下一較高特權等級運行之軟體來實現。
應注意,一些密碼系統使用唯一密鑰種子生成對應密碼密鑰,以供與對應PSE相關聯。舉例而言,可藉由將128位元密鑰種子提供至密鑰擴展引擎,該密鑰擴展引擎隨後輸出對應256位元密碼密鑰,來使用128位元密鑰種子生成256位元密碼密鑰(安全性強度128位元)。應注意,密碼密鑰可為包含2個或更多個子密鑰之複合密鑰。舉例而言,256位元密碼密鑰可包含兩個不同的128位元子密鑰,其中總體安全性強度為128位元。可接著將兩個子密鑰用於密碼系統中,該等密碼系統需要兩個不同密鑰用於密碼處理,諸如AES-XEX及AES-XTS。
一些密碼系統使用結合臨時標誌之共用或全域密鑰種子生成對應密碼密鑰,以供與對應PSE相關聯。舉例而言,可結合唯一實例計數器使用128位元共用密鑰種子,以生成唯一128位元或256位元密碼密鑰用於對應PSE。實例計數器為針對每一新PSE遞增的計數器,其中,針對該PSE產生一密碼密鑰,且因此,其應從不重複。一般而言,藉由密鑰擴展、導出或類似函數生成之密碼密鑰在本文中被稱作經擴展密碼密鑰。如本文所使用,密鑰種子可指輸入至密鑰擴展或密鑰導出函數及/或對應密鑰擴展或密鑰導出模組的任何資料。
本發明之實施例包括用於第一複數個密碼密鑰之高效管理的系統與方法。密碼密鑰可與藉由PSE管理軟體(例如,超管理器)監督之第一複數個對應PSE(例如,囊封虛擬機)相關聯,該PSE管理軟體在電腦系統上運行且經組態以監督該第一複數個PSE之超集。電腦系統至少將超集之當前未經使用密鑰及/或密鑰種子以經加密形式儲存於相對較遠、便宜、大型且緩慢的記憶體(例如,DDR SDRAM)中,且使用結合相對較近、快速、小型且昂貴的記憶體(例如,晶片上SRAM)之密鑰擴展引擎管
理第一複數個之密鑰。應注意,除超集之當前未經使用密鑰及/或密鑰種子之外,相對較遠記憶體亦可儲存第一複數個PSE的當前經使用密鑰及/或密鑰種子之複本。
在一些實施例中,包含一或多個處理器且能夠並行處理之電腦系統經組態以支援對複數個PSE之保護及同時(即,並行)操作,其中複數個PSE具有對應複數個密碼密鑰,換言之,每一PSE與對應密碼密鑰相關聯。另外,電腦系統具有由複數個PSE共用之隨機存取記憶體。電腦系統具有連接至一或多個處理器與共用記憶體之記憶體密碼電路(MCC),其中MCC包括密碼引擎及用於儲存複數個密碼密鑰之子集的密鑰庫。應注意,術語密碼引擎可指加密引擎、解密引擎或組合引擎。
在處理器與共用記憶體之間的資料傳輸操作期間(例如,在提取處理器指令、資料讀取及資料寫入時-在本文中一般稱為記憶體異動請求),密碼引擎使用藉由密鑰庫提供之對應密碼密鑰將所傳輸資料(例如,處理器指令)加密或解密。以硬體或韌體實施MCC及管理密鑰庫中很可能使用之密鑰有助於實現對所傳輸資料執行快速且高效之密碼操作。
圖1為根據本發明之一個實施例的電腦系統100之簡化示意圖。電腦系統100包含系統單晶片(SoC)101及一或多個SoC外部隨機存取記憶體(RAM)模組102,該RAM可為例如雙資料速率(DDR)同步動態RAM(SDRAM)或任何其他合適的RAM。電腦系統100亦包含使用者介面103及網路介面104。應注意,如一般熟習此項技術者將瞭解,電腦系統100以及其組件中之任一者可進一步包括任何合適類別之各種額外組件(圖中未示),該等組件之描述對於理解該實施例並非必需的。
圖2為圖1之電腦系統100之詳述部分的簡化示意圖,該電
腦系統包含SoC 101及RAM模組102。SoC 101包含一或多個中央處理單元(CPU)核心205,該等核心中之每一者可為單執行緒或多執行緒處理器。每一CPU核心205可包括L1及L2快取記憶體(圖中未示)。SoC 101可進一步包含一或多個L3快取記憶體206、一或多個記憶體控制器207、一或多個實體層(PHY)介面208及系統匯流排209。SoC 101可進一步包含密鑰管理單元(KMU)210,其可實施為如所示之離散獨立模組,實施為兩個或更多個CPU核心205內的分佈式模組,或以任何適合方式。系統匯流排209互連CPU核心205、L3快取記憶體206、KMU 210與記憶體控制器207,連同可包括在SoC 101內之任何其他周邊裝置。
記憶體控制器207包含記憶體密碼電路(MCC)211,且可進一步包含用於MCC 211與SoC 101之其他組件之間的互動的介面模組(圖中未示),諸如匯流排介面。記憶體控制器207以通信方式耦接至對應PHY介面208,該介面又以通信方式耦接至對應外部RAM模組102。
電腦系統100可支援藉由PSE管理軟體對複數個PSE進行管理,其中複數個PSE之子集可作為並行處理程序同時運行。電腦系統100支援藉由多個CPU核心205進行並行處理。在一些實施中,CPU核心205中之一或多者可經組態以並行執行多個執行緒。應注意,在一些替代實施例中,電腦系統100可僅具有一個CPU核心205,然而,該核心支援多執行緒處理,且因此支援並行處理。應進一步注意,在一些替代實施例中,電腦系統100可包含兩個或更多個SoC,其通過晶片對晶片介面以相干方式連接以形成多插座系統。
電腦系統100可支援較大數目個PSE,其中每一者與唯一密碼密鑰種子相關聯,以及其對應經擴展密鑰,其允許藉由CPU核心205
安全共用RAM模組102,且允許PSE安全地操作,而免受諸如其他PSE、PSE管理軟體及潛在駭入攻擊者之其他處理程序的窺探。SoC 101可被設計成使用時間分片以支援對數個PSE之差不多同時執行,該等PSE之數目大於SoC 101可在對應CPU核心205上支援之並行處理程序的數目,但小於電腦系統100可支援的PSE之任意較大總數目。如在下文將更詳細地解釋,KMU 210管理密碼密鑰種子及其對應密鑰識別符(KIDs),用於藉由電腦系統100支援之PSE。應注意,KID亦可被視為PSE標記。
如在下文將更詳細地解釋,在操作中,當在第一CPU核心205上運行之第一PSE需要將資料區塊寫入至RAM 102時,藉由MC電路211使用唯一地對應於第一PSE之第一經擴展密碼密鑰對資料區塊進行加密。接著將對應經加密資料區塊寫入至第一RAM模組102。當第一PSE需要自RAM模組102讀取資料區塊時,藉由MC電路211使用第一經擴展密碼密鑰對在RAM模組102上進行加密之經擷取資料區塊進行解密。隨後將對應經解密資料區塊傳輸至上面運行有第一PSE之CPU核心205。應注意,寫入至RAM模組102與自其讀取可被執行為CPU核心205之例行指令執行之部分。
圖3為圖2之記憶體密碼電路211之一個實施例的簡化示意圖。MC電路211包含加密引擎312、解密引擎313及密鑰庫314。加密引擎312為經組態以接收明文區塊(例如,自CPU核心205)及自密鑰庫314接收經擴展密碼密鑰,使用加密演算法(諸如,使用適當密碼操作模式之AES)運用經擴展密碼密鑰將明文加密,且輸出對應密文區塊(例如,輸出至RAM模組102)的電路。解密引擎313為經組態以接收密文區塊(例如,自RAM模組102)及自密鑰庫314接收經擴展密碼密鑰,使用解密演算法(諸
如,使用適當密碼操作模式之AES)運用經擴展密碼密鑰將明文解密,且輸出對應明文區塊(例如,輸出至CPU核心205)的電路。
密鑰庫314包含種子庫315、擴展引擎316、本端快取記憶體317及仲裁器318。種子庫315可為(例如)SRAM模組、暫存器檔案或經組態使用複數個密鑰種子之對應KID,以可定址方式儲存且更新複數個密鑰種子的類似快速存取RAM。類似地,快取記憶體317可為SRAM模組或經組態以儲存且更新較少複數個經擴展密鑰及其對應KID的類似快速存取RAM。換言之,快取記憶體317可支援關聯陣列之管理。快取記憶體317可包含內容可定址記憶體(CAM),其用於使用經擴展密鑰之對應KID找出該等經擴展密鑰。擴展引擎316可自種子庫315接收一或多個密鑰種子且輸出對應經擴展密鑰,該經擴展密鑰隨後被提供至仲裁器318(以供可能提供至加密引擎312或解密引擎313)及快取記憶體317。
種子庫315可經組態以儲存相對較大複數個密鑰種子,該等密鑰種子由其對應KID索引。KMU 210經組態以管理密鑰種子及KID於種子庫315中之儲存。舉例而言,若電腦系統100支援數目大於藉由種子庫315可儲存之密鑰種子之數目的PSE,則KMU 210判定PSE之哪些密鑰種子藉由種子庫315儲存及其對應KID。
種子庫315經組態以經由組態介面自KMU 210接收密鑰種子及/或控制命令。例如,KMU 210可提供PSE之128位元密鑰種子及PSE之KID。作為回應,種子庫315可在藉由KID指示之種子庫位址處儲存所接收密鑰種子。種子庫315亦經組態以回應於接收作為記憶體異動請求之部分的KID(例如,作為快取未命中之結果),向擴展引擎316輸出儲存於藉由KID指示之密鑰庫位址處的種子。應注意,RAM 102的讀取及寫入記
憶體異動請求兩者係經由系統匯流排209進行傳輸,且包括對應於請求PSE之KID。
應注意,除經載運於系統匯流排209上之外,KID亦可儲存於L1/L2/L3快取記憶體中,其中每一快取線載運KID連同記憶體位址及資料。如在本文別處所述,KID為用以自密鑰庫314獲得用於請求PSE的對應經擴展密碼密鑰之索引。
當藉由MC電路211接收記憶體異動請求時,KID被提供至密鑰庫314。KID被提供至快取記憶體317及種子庫315。若快取記憶體317具有KID之有效記錄(換言之,若存在快取命中或KID匹配),則快取記憶體317將對應經擴展密鑰提供至仲裁器318,該仲裁器反過來將經擴展密鑰作為密鑰庫314之輸出提供至密碼引擎312及313,用於對應密碼處理(亦即,使用經擴展密鑰之加密或解密)。
若快取記憶體317不具有KID之有效記錄(換言之,若存在快取未命中或KID並不匹配),則種子庫315查找KID,且將位於KID對應位址處之對應密鑰種子提供至擴展引擎316。擴展引擎316隨後使用所接收密鑰種子執行密鑰擴展函數,且將對應經擴展密鑰輸出至仲裁器318及快取記憶體317。仲裁器318將經擴展密鑰提供至密碼引擎312及313。同時,經擴展密鑰及其對應KID進入至快取記憶體317(以更新快取記憶體317),從而可能自快取記憶體317收回另一項。
在某些替代實施例中,密鑰庫314不具有快取記憶體317及仲裁器318,且因此,記憶體異動請求如同其皆導致快取未命中而進行處置。因此,每當藉由MC電路211接收記憶體異動請求時,種子庫315將對應於所接收KID之密鑰種子提供至擴展引擎316,該擴展引擎反過來對密
鑰種子執行密鑰擴展以生成對應經擴展密鑰,用於提供至密碼引擎312及313。
應注意,來自CPU核心205之讀取請求的處理可能涉及藉由對應經擴展密鑰之MC電路211緩衝,直至自RAM 102擷取位於所請求記憶體位址處之對應密文區塊為止,此時密文區塊及經擴展密鑰被提供至解密引擎313用於解密。
在一個實例實施中,SoC 101可包含十六個單執行緒CPU核心205,由此允許十六個唯一PSE同步運行。PSE管理軟體可為跨越CPU核心205中之一者、一些或全部分佈式運行的程式。SoC 101可經組態以支援數千個PSE,且支援至多任一時間128個PSE之時間分片。換言之,在正常操作期間,數千個PSE暫時中止(換言之,半休眠),同時可藉由共用SoC 101之十六個CPU核心205的時間分片執行PSE之計分。快取記憶體317可經組態以儲存128個經擴展密鑰,且種子庫315可經組態以儲存4,096個密鑰種子,其中種子庫315中的密鑰種子之位址為密鑰種子之KID。因此,KID可為對應於種子庫315位址之12位元數(此係因為212=4,096)。在一替代實施例中,快取記憶體317可經組態以儲存32個經擴展密鑰,其將很可能需要更頻繁快取收回,但提供成本及電力節省。
若電腦系統100支援超過4,096個PSE,則KMU 210可管理不包括於其中之PSE的密鑰種子,其操作性地休眠,且並不具有對應KID。若電腦系統100判定休眠PSE待啟動,則KMU 210向彼PSE指派一KID,且將彼KID及對應密鑰種子提供至種子庫315,從而可能自種子庫315收回另一PSE之密鑰種子。KMU 210適當地處置經收回PSE在收回時具有保留在RAM模組102中的對應經加密區塊之情境。KMU 210可以經
加密形式將不包括於其中/休眠PSE之密鑰種子(以及包括於其中/半休眠及/或主動式PSE之密鑰種子的複本)儲存於相對較遠、便宜、大型且緩慢的記憶體(例如,DDR SDRAM)中,且視需要擷取該等密鑰種子。
圖4為根據圖2之電腦系統100的一個實施例之例示性資料封包400的示意性表示。資料封包400包括資料有效負載401、KID 402及標頭403。在一個實例實施中,(i)資料有效負載欄位401至少為128位元,以便能夠含有整個128位元標準AES區塊,且(ii)KID欄位至少為12位元以支援在密鑰庫314中定址4,096個密碼密鑰位置。標頭403可含有任何合適之標頭資訊,諸如用於在系統匯流排209上傳輸資料封包400之屬性資訊(例如,記憶體位址、讀取/寫入指示符、用於路由回應之源位址等)。應注意,讀取請求封包可僅包括KID 402及標頭403(包括記憶體位址),而無有效負載。相關地,讀取回應封包可僅包括資料有效負載401及標頭403而無KID。應進一步注意,KID 402當使用時不必為資料封包之排它性使用片段,且可為(例如)標頭之部分及/或用於除識別種子庫315中之密鑰位置之外的目的。
圖5為根據一個實施例之處理程序500的流程圖。處理程序500在寫入模組判定需要將資料區塊寫入至RAM模組102時開始(步驟501)。可(例如)藉由在第一CPU 205上執行之第一PSE進行寫入判定,即需要將區塊直接寫入至記憶體或需要收回快取線之第一快取記憶體。應注意,大體而言,來自CPU 205上執行之PSE的寫入請求可被快取,且當在SoC 101之快取層級中時,資料區塊係與PSE之KID相關聯。寫入模組經由系統匯流排209將對應資料封包400提供至MC電路211,該資料封包包含資料有效負載401中之明文資料區塊,及在KID欄位402中的對應於第一
PSE之KID(步驟502)。應注意,資料有效負載401可包括尾碼及/或首碼填補位元連同資料區塊。將資料有效負載401提供至加密引擎312,且將KID提供至密鑰庫314及快取記憶體317(步驟503)。
快取記憶體317搜尋KID(步驟504)。若KID出現在快取記憶體317中(亦即,步驟504中之快取命中),則快取記憶體317經由仲裁器318將對應經擴展密鑰提供至加密引擎(步驟505)。若KID未出現在快取記憶體317中(亦即,步驟504中之快取未命中),則種子庫315查找KID以找出對應密鑰種子(步驟506)。種子庫315隨後將對應密鑰種子提供至擴展引擎316(步驟507)。擴展引擎316使用所接收密鑰種子執行擴展函數,以生成經擴展密鑰(步驟508)。擴展引擎316將所得經擴展密鑰提供至快取記憶體317,且經由仲裁器318將其提供至加密引擎312(步驟509)。快取記憶體317儲存經擴展密鑰及對應KID,其可需要收回最少使用、隨機選擇或另外選擇之快取線。在於步驟505或步驟509中將經擴展密鑰提供至加密引擎之後,加密引擎312使用所接收經擴展密鑰對所接收明文資料執行加密演算法(例如,AES加密),且輸出被提供至RAM模組102之對應密文資料區塊(步驟510)。
圖6為根據一個實施例之處理程序600的流程圖。處理程序600在記憶體控制器207經由匯流排介面接收資料封包,且判定需要使用資料封包中提供之位址及KID自RAM模組102讀取(亦即,擷取)資料區塊時開始(步驟601)。可自(例如)CPU核心205、L2快取記憶體或L3快取記憶體206接收資料封包。記憶體控制器207起始自RAM模組102讀取對應資料區塊(步驟602),且並行地獲得對應經擴展密鑰(步驟604、605及/或606)。獲得經擴展密鑰包括:判定KID是否處於快取記憶體317中(步驟
604);若如此,則自快取記憶體317得到經擴展密鑰(步驟606);及否則,查找種子庫315中之KID以定位對應密鑰種子,將對應種子提供至擴展引擎316,且使用密鑰種子執行擴展函數以得到經擴展密鑰(步驟605)。擴展引擎316將所得經擴展密鑰提供至快取記憶體317,且緩衝經擴展密鑰直至MC電路211自RAM模組102接收所請求經加密資料區塊為止(步驟603)。快取記憶體317儲存經擴展密鑰及對應KID,其可需要收回經最少使用、隨機選擇或另外選擇之快取線。
解密引擎313提供(1)經擷取經加密資料區塊,且(2)提供經擴展密鑰(步驟607)。解密引擎313使用所接收密鑰對所接收經加密資料區塊執行解密演算法(例如,AES解密),並輸出對應明文資料區塊(步驟608)。記憶體控制器207提供含有用於路由回請求CPU核心或快取記憶體之明文資料區塊的反應資料封包(步驟609)。
圖7為根據一替代實施例的密鑰庫714之簡化示意圖。密鑰庫714可用以代替圖3之密鑰庫314。密鑰庫714包含本端快取記憶體717、擴展引擎716、計數器庫721、全域種子庫720及仲裁器718。快取記憶體717及仲裁器718大體上分別與密鑰庫314之快取記憶體317及仲裁器318同樣地操作。合併密鑰庫714之電腦系統(圖中未示)使用儲存於全域種子庫720中之共用密鑰種子及每一PSE之唯一計數器值生成用於PSE之對應經擴展密鑰。如上文所描述,當新PSE經實體化時,其接收充當臨時標誌的新的遞增計數器值。對應KMU(圖中未示)管理計數器值之維護及其與對應PSE之關聯,且因此更新計數器庫721。
圖8為根據本發明之一實施例的用於圖7之密鑰庫714的處理程序800之流程圖。當密鑰庫714運用記憶體存取請求接收KID(步驟
801)時,快取記憶體717查找KID(802)。若KID出現在快取記憶體717中,則將對應經擴展密鑰提供至仲裁器718以提供作為密鑰庫714之輸出(步驟803)。若KID未出現在快取記憶體717中(步驟802),則計數器庫查找KID(步驟804)以獲得對應計數器值,該對應計數器值被提供至擴展引擎716(步驟805)。應注意,計數器值為基於KID之密鑰擴展值。擴展引擎716隨後使用計數器值及自全域種子庫720獲得之全域種子執行擴展操作,以生成經擴展密碼密鑰(步驟806)。擴展引擎716將所得經擴展密鑰提供至密鑰快取記憶體717,該密鑰快取記憶體儲存經擴展密鑰及對應KID(步驟807)。值得注意地,此快取記憶體更新可能需要收回儲存KID及對應經擴展密鑰之現有快取線(步驟807)。經擴展密鑰亦被提供至仲裁器718,以供提供作為密鑰庫714之輸出(步驟803)。
圖9為根據另一替代實施例的密鑰庫914之簡化示意圖。密鑰庫914可用以代替圖3之密鑰庫314。密鑰庫914包含本端快取記憶體917、擴展引擎916、全域種子庫920及仲裁器918。快取記憶體917及仲裁器918大體上分別與密鑰庫314之快取記憶體317及仲裁器318同樣地操作。合併密鑰庫914之電腦系統(圖中未示)使用儲存於全域種子庫920中之共用密鑰種子及每一PSE之KID生成用於PSE之對應經擴展密鑰。對應KMU(圖中未示)可管理KID與對應PSE之關聯。
圖10為根據本發明之一實施例的用於圖9之密鑰庫914的處理程序1000之流程圖。當密鑰庫914運用記憶體存取請求接收KID(步驟1001)時,快取記憶體917查找KID(步驟1002)。若KID出現在快取記憶體917中,則將對應經擴展密鑰提供至仲裁器918以提供作為密鑰庫914之輸出(步驟1003)。若KID未出現在快取記憶體917中(步驟1002),則擴展引
擎916使用KID及自全域種子庫920獲得之全域種子執行擴展操作,以生成經擴展密碼密鑰(步驟1004)。應注意,計數器值為基於KID之密鑰擴展值。擴展引擎916將所得經擴展密鑰提供至密鑰快取記憶體917,該密鑰快取記憶體儲存經擴展密鑰及對應KID(步驟1005)。值得注意地,此快取記憶體更新可能需要收回儲存KID及對應經擴展密鑰之現有快取線(步驟1005)。經擴展密鑰亦被提供至仲裁器918,以供提供作為密鑰庫914之輸出(步驟1003)。
在圖3之MC電路211之一個例示性實施中,其中使用128位元種子生成256位元經擴展密鑰,密鑰庫314可模擬將需要使用略大於實際上儲存4,096個256位元密鑰之儲存空間的一半來儲存4,096個256位元密鑰。在圖7之密鑰庫714之例示性實施中,其中實例計數器儲存於藉由KID定址之計數器庫721中,且實例計數器結合全域密鑰種子使用以導出密鑰,密鑰庫714可模擬使用略大於實際上儲存4,096個256位元密鑰之儲存空間的五分之一來儲存4,096個256位元密鑰將需要假定使用一56位元計數器,此將允許在超過20年時間中每10奈秒提供一新的且唯一的計數器值。應注意,當PSE經實體化時,PSE變為新的計數器值。在圖9之密鑰庫914的例示性實施中,其中系統中所支援之密鑰的總數目限於可能KID值之數目(例如,對於12位元KID總共4,096個密鑰),可運用全域密鑰種子直接使用KID導出密鑰,且密鑰庫914可模擬僅僅使用本端快取記憶體917及全域種子920之儲存空間來儲存4,096個密鑰。
應注意,上文所描述之記憶體密碼電路可用於除了電腦系統100之系統中。舉例而言,可將MC電路211用於管理儲存於藉由複數個檔案系統共用之非揮發性記憶體上的所謂靜止資料之加密,其中每一檔案
系統具有對應密鑰種子及經擴展密鑰,類似於上述PSE。記憶體密碼電路可用於管理相對大量複數個用戶端及對應密碼種子之任何合適系統中。此外,應注意,本發明之實施例不限於用於運行多個PSE之系統。實際上,一般而言,MC電路可用於使用具有對應密鑰種子之複數個經擴展密碼密鑰的任何系統中,該等密鑰種子可在必要時經擴展至經擴展密碼密鑰。
一般術語可用於描述上文所描述之讀取及寫入處理程序500及600的步驟。判定需要寫入或讀取資料為判定需要在第一PSE與RAM模組102之間轉移資料。密文及明文為資料。加密及解密為密碼操作,其獲取第一資料區塊並輸出第一密碼對應資料區塊。
上文結合隨附圖式闡釋之詳細描述描述實例,且不表示可實施或在申請專利範圍之範疇內之唯一實例。當在本說明書中使用時,術語「實例」意謂「充當實例、例子或說明」且並不「比其他實例更佳」或「比其他實例更優」。出於提供對所描述技術的理解之目的,詳細描述包括特定細節。然而,可在無此等特定細節的情況下實踐此等技術。在一些情況下,以方塊圖之方式展示熟知結構及設備,以免混淆所描述實例之概念。
可使用多種不同技藝及技術中之任一者表示資訊及信號。舉例而言,可在整個上述描述中參考的資料、指令、命令、資訊、信號、位元、符號及碼片可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學粒子、儲存於電腦可讀媒體上之電腦可執行程式碼或指令或其任何組合表示。
結合本文中揭示內容描述的各種說明性區塊及組件可藉由經特別程式化裝置實施或執行,經特別程式化裝置諸如但不限於處理器、
數位信號處理器(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)、軟碟及藍光(Blu-ray)光碟,其中磁碟通常以磁性方式再現資料,而光碟藉由雷射以光學方式再現資料。以上各者之組合亦可包括於電腦可讀媒體之範疇內。
提供本發明之先前描述以使得任何熟習此項技術者能夠製作或使用本發明。熟習此項技術者將易於理解對本發明之各種修改,且本文所定義之常用原理可在不背離本發明之精神或範疇的情況下應用於其他變體。此外,儘管所描述之態樣的元件可以單數形式來描述或主張,但除非明確陳述單數限制,否則亦預期複數。另外,除非另有說明,否則任何態樣之全部或一部分可結合任何其他態樣之全部或一部分加以利用。因此,本發明並不限於本文中所描述之實例及設計,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣泛範疇。
211:記憶體密碼電路(MCC)
312:加密引擎
313:解密引擎
314:密鑰庫
315:種子庫
316:擴展引擎
317:本端快取記憶體
318:仲裁器
Claims (15)
- 一種記憶體密碼電路,其包含一密鑰庫及一密鑰擴展引擎,其中:該記憶體密碼電路連接至一處理器以及一隨機存取記憶體(RAM);該密鑰庫經組態以進行以下操作:接收一密鑰識別符;及基於該密鑰識別符將一第一密鑰擴展輸入提供至該密鑰擴展引擎;該密鑰擴展引擎經組態以對該第一密鑰擴展輸入執行一密鑰擴展操作,以生成一經擴展密碼密鑰;該記憶體密碼電路包含一第一密碼引擎,其經組態以接收該經擴展密碼密鑰及一輸入區塊;該第一密碼引擎經組態以使用該經擴展密碼密鑰處理該輸入區塊以輸出一對應輸出區塊;該記憶體密碼電路經組態以執行下列其中一者:從該RAM接收該輸入區塊及傳輸該輸出區塊至該RAM;該輸入區塊是明文區塊與密文區塊其中一者;若該輸入區塊是明文區塊,則:該對應輸出區塊是密文區塊;及該第一密碼引擎是一加密引擎,其經組態以進行以下操作:接收該經擴展密碼密鑰以及該輸入區塊;及使用該經擴展密碼密鑰將該輸入區塊加密,以輸出該對應輸出區塊以用於傳送至該RAM;及 若該輸入區塊是密文區塊,則:從該RAM接收該密文區塊;該對應輸出區塊是一明文區塊;及該第一密碼引擎是一解密引擎,其經組態以進行以下操作:接收該經擴展密碼密鑰以及該輸入區塊;及使用該經擴展密碼密鑰將該輸入區塊解密,以輸出該對應輸出區塊。
- 如請求項1之電路,其中:該輸入區塊是一明文區塊;該對應輸出區塊是一加密區塊;及該第一密碼引擎是一加密引擎,其經組態以進行以下操作:接收該經擴展密碼密鑰以及該輸入區塊;及使用該經擴展密碼密鑰將該輸入區塊加密,以輸出該對應輸出區塊,用以傳送至該RAM。
- 如請求項1之電路,其中:該密鑰庫進一步包含一本端快取記憶體,其經組態以進行以下操作:儲存複數個密鑰識別符及對應經擴展密碼密鑰;及查找該所接收密鑰識別符; 若該所接收密鑰識別符藉由該本端快取記憶體匹配,則該本端快取記憶體經組態以隨後回應於匹配該所接收密鑰識別符而將一對應經擴展密碼密鑰提供至該第一密碼引擎;若該所接收密鑰識別符未藉由該本端快取記憶體匹配,則該密鑰庫經組態以隨後用該所接收密鑰識別符及藉由該密鑰擴展引擎生成之一對應經擴展密碼密鑰更新該本端快取記憶體,其中該密鑰擴展引擎經組態以將該對應經擴展密碼密鑰提供至該本端快取記憶體及該第一密碼引擎兩者。
- 如請求項1之電路,其中:該密鑰庫進一步包含一種子庫,其經組態以進行以下操作:儲存複數個密鑰種子,該等密鑰種子由其對應密鑰識別符索引;及回應於接收該密鑰識別符而將一對應密鑰種子提供至該密鑰擴展引擎,作為該第一密鑰擴展輸入。
- 如請求項1之電路,其中:該密鑰庫包含一計數器庫,其經組態以進行以下操作:儲存複數個計數器值,該等計數器值由其對應密鑰識別符索引;回應於接收一密鑰識別符而將一對應計數器值提供至該密鑰擴展引擎,作為該第一密鑰擴展輸入;該密鑰擴展引擎經組態以對該第一密鑰擴展輸入及一全域種子值執行該密鑰擴展操作,以生成該經擴展密碼密鑰。
- 如請求項1之電路,其中:該第一密鑰擴展輸入為該所接收密鑰識別符;該密鑰擴展引擎經組態以對該第一密鑰擴展輸入及一全域種子值執行該密鑰擴展操作,以生成該經擴展密碼密鑰。
- 如請求項1之電路,其中每一該複數個密鑰識別符以及所對應之經擴展密碼密鑰對應一區別的受保護之軟體環境,該軟體環境包含以下至少一者:虛擬機,驅動器,應用程式,次處理程序,以及執行緒。
- 如請求項1之電路,其中該本端快取記憶體包括靜態隨機存取記憶體(SRAM)。
- 一種用於包含連接至一處理器和一隨機存取記憶體(RAM)之一記憶體密碼電路的積體電路系統的方法,該記憶體密碼電路包含一密鑰庫、一密鑰擴展引擎以及一第一密碼引擎,該方法包含:藉由該密鑰庫接收一密鑰識別符;及藉由該密鑰庫基於該密鑰識別符將一第一密鑰擴展輸入提供至該密鑰擴展引擎;藉由該密鑰擴展引擎對該第一密鑰擴展輸入執行一密鑰擴展操作以生成一經擴展密碼密鑰;藉由該第一密碼引擎接收該經擴展密碼密鑰及一輸入區塊;藉由該第一密碼引擎使用該經擴展密碼密鑰處理該輸入區塊;及藉由該第一密碼引擎輸出一對應輸出區塊,其中該記憶體密碼電路 經組態以執行下列其中一者:從該RAM處接收該輸入區塊及傳輸該輸出區塊至該RAM;該輸入區塊是明文區塊與密文區塊其中一者;若該輸入區塊是一明文區塊,則:該對應輸出區塊是一密文區塊;且該第一密碼引擎是一加密引擎,其經組態以進行以下操作:接收該經擴展密碼密鑰以及該輸入區塊;及使用該經擴展密碼密鑰將該輸入區塊加密,以輸出該對應輸出區塊用以傳送至該RAM;且若該輸入區塊是一密文區塊,則:從該RAM接收該密文區塊;該對應輸出區塊是一明文區塊;及該第一密碼引擎是一解密引擎,其經組態以進行以下操作:接收該經擴展密碼密鑰以及該輸入區塊;及使用該經擴展密碼密鑰將該輸入區塊解密,以輸出該對應輸出區塊。
- 如請求項9之方法,其中:該密鑰庫進一步包含一本端快取記憶體,其經組態以儲存複數個密鑰識別符及對應經擴展密碼密鑰;且該方法進一步包含:查找該本端快取記憶體中之該所接收密鑰識別符;若該所接收密鑰識別符出現在該本端快取記憶體中,則藉由該本 端快取記憶體回應於匹配該所接收密鑰識別符而將一對應經擴展密碼密鑰提供至該第一密碼引擎;及若該所接收密鑰識別符未出現在該本端快取記憶體中,則用該所接收密鑰識別符及藉由該密鑰擴展引擎生成之一對應經擴展密碼密鑰更新該本端快取記憶體,其中該密鑰擴展引擎將該對應經擴展密碼密鑰提供至該本端快取記憶體及該第一密碼引擎兩者。
- 如請求項10之方法,其中:該密鑰庫進一步包含一種子庫;且該方法進一步包含:將複數個密鑰種子儲存於該種子庫中,該等密鑰種子由其對應密鑰識別符索引;及回應於接收該密鑰識別符而藉由該種子庫將一對應密鑰種子提供至該密鑰擴展引擎,作為該第一密鑰擴展輸入。
- 如請求項10之方法,其中:該密鑰庫包含一計數器庫;且該方法進一步包含:將複數個計數器值儲存於該計數器庫中,該等計數器值由其對應密鑰識別符索引;回應於接收一密鑰識別符藉由該計數器庫將一對應計數器值提供至該密鑰擴展引擎作為該第一密鑰擴展輸入; 藉由該密鑰擴展引擎對該第一密鑰擴展輸入及一全域種子值執行該密鑰擴展操作以生成該經擴展密碼密鑰。
- 如請求項10之方法,其中:該第一密鑰擴展輸入為該所接收密鑰識別符;且該方法進一步包含藉由該密鑰擴展引擎對該第一密鑰擴展輸入及一全域種子值執行該密鑰擴展操作以生成該經擴展密碼密鑰。
- 一種積體電路(IC)系統,其包含一第一處理器、一第一隨機存取記憶體(RAM)及一記憶體密碼電路,其中:該記憶體密碼電路連接至該第一處理器及該第一RAM;該記憶體密碼電路包含一密鑰庫;該密鑰庫包含一密鑰擴展引擎;該密鑰庫經組態以進行以下操作:接收一密鑰識別符;及基於該密鑰識別符將一第一密鑰擴展輸入提供至該密鑰擴展引擎;該密鑰擴展引擎經組態以對該第一密鑰擴展輸入執行一密鑰擴展操作,以生成一經擴展密碼密鑰;該記憶體密碼電路包含一第一密碼引擎,其經組態以接收該經擴展密碼密鑰及一輸入區塊;該第一密碼引擎經組態以使用該經擴展密碼密鑰處理該輸入區塊以輸出一對應輸出區塊;及 該記憶體密碼電路經組態以執行下列其中一者:從該RAM接收該輸入區塊及傳輸該輸出區塊至該RAM;該輸入區塊是明文區塊與密文區塊其中一者;若該輸入區塊是明文區塊,則:該對應輸出區塊是密文區塊;且該第一密碼引擎是一加密引擎,其經組態以進行以下操作:接收該經擴展密碼密鑰以及該輸入區塊;且使用該經擴展密碼密鑰將該輸入區塊加密,以輸出該對應輸出區塊,用以傳送至該RAM;且若該輸入區塊是一密文區塊,則:從該RAM接收該密文區塊;該對應輸出區塊是一明文區塊;且該第一密碼引擎是一解密引擎,其經組態以進行以下操作:接收該經擴展密碼密鑰以及該輸入區塊;及使用該經擴展密碼密鑰將該輸入區塊解密,以輸出該對應輸出區塊。
- 如請求項14之積體電路系統,進一步包含一資料快取記憶體,其經組態以將包含該所接收密鑰識別符,一記憶體位址及一資料有效負載的一資料封包提供至該記憶體密碼電路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/053,626 US11216592B2 (en) | 2018-08-02 | 2018-08-02 | Dynamic cryptographic key expansion |
US16/053,626 | 2018-08-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202008744A TW202008744A (zh) | 2020-02-16 |
TWI797353B true TWI797353B (zh) | 2023-04-01 |
Family
ID=67441699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108123676A TWI797353B (zh) | 2018-08-02 | 2019-07-04 | 動態密碼密鑰擴展之電路、方法及系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11216592B2 (zh) |
CN (1) | CN112514320A (zh) |
TW (1) | TWI797353B (zh) |
WO (1) | WO2020027984A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113874857A (zh) * | 2019-05-27 | 2021-12-31 | 百可德罗德公司 | 用于最优信息理论安全的加密密钥管理的方法和设备 |
CN114222260B (zh) * | 2021-12-29 | 2023-03-24 | 渔翁信息技术股份有限公司 | 一种对等短信传输方法、系统、设备及计算机存储介质 |
CN114866292B (zh) * | 2022-04-18 | 2024-03-22 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种信息安全交互的加解密方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070092081A1 (en) * | 2004-01-15 | 2007-04-26 | Kaoru Yokota | Content reproduction apparatus |
TW200803395A (en) * | 2006-04-04 | 2008-01-01 | Qualcomm Inc | File decryption interface |
US20080183999A1 (en) * | 2007-01-31 | 2008-07-31 | Hewlett-Packard Development Company, L.P. | Method Of Updating Data |
US20160203342A1 (en) * | 2015-01-09 | 2016-07-14 | Kabushiki Kaisha Toshiba | Memory system and information processing system |
US20170139842A1 (en) * | 2014-02-05 | 2017-05-18 | Hitachi, Ltd. | Storage system and cache control apparatus for storage system |
TWI750184B (zh) * | 2016-08-02 | 2021-12-21 | 南韓商三星電子股份有限公司 | 安全記憶體與智慧儲存裝置內執行資料擦除之方法 |
TWI763710B (zh) * | 2016-09-15 | 2022-05-11 | 美商納茲控股有限責任公司 | 加密使用者資料傳輸及儲存(nuts) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000057290A1 (fr) * | 1999-03-19 | 2000-09-28 | Hitachi, Ltd. | Processeur d'informations |
US8494168B1 (en) | 2008-04-28 | 2013-07-23 | Netapp, Inc. | Locating cryptographic keys stored in a cache |
US8990582B2 (en) | 2010-05-27 | 2015-03-24 | Cisco Technology, Inc. | Virtual machine memory compartmentalization in multi-core architectures |
US8880847B2 (en) * | 2010-09-28 | 2014-11-04 | Texas Instruments Incorporated | Multistream prefetch buffer |
CN107209724B (zh) * | 2015-03-27 | 2020-02-14 | 华为技术有限公司 | 数据处理方法、内存管理单元及内存控制设备 |
US20170277898A1 (en) * | 2016-03-25 | 2017-09-28 | Advanced Micro Devices, Inc. | Key management for secure memory address spaces |
US11126718B2 (en) * | 2017-07-12 | 2021-09-21 | Acronis International Gmbh | Method for decrypting data encrypted by ransomware |
-
2018
- 2018-08-02 US US16/053,626 patent/US11216592B2/en active Active
-
2019
- 2019-07-04 TW TW108123676A patent/TWI797353B/zh active
- 2019-07-05 CN CN201980049867.7A patent/CN112514320A/zh active Pending
- 2019-07-05 WO PCT/US2019/040720 patent/WO2020027984A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070092081A1 (en) * | 2004-01-15 | 2007-04-26 | Kaoru Yokota | Content reproduction apparatus |
TW200803395A (en) * | 2006-04-04 | 2008-01-01 | Qualcomm Inc | File decryption interface |
US20080183999A1 (en) * | 2007-01-31 | 2008-07-31 | Hewlett-Packard Development Company, L.P. | Method Of Updating Data |
US20170139842A1 (en) * | 2014-02-05 | 2017-05-18 | Hitachi, Ltd. | Storage system and cache control apparatus for storage system |
US20160203342A1 (en) * | 2015-01-09 | 2016-07-14 | Kabushiki Kaisha Toshiba | Memory system and information processing system |
TWI750184B (zh) * | 2016-08-02 | 2021-12-21 | 南韓商三星電子股份有限公司 | 安全記憶體與智慧儲存裝置內執行資料擦除之方法 |
TWI763710B (zh) * | 2016-09-15 | 2022-05-11 | 美商納茲控股有限責任公司 | 加密使用者資料傳輸及儲存(nuts) |
Also Published As
Publication number | Publication date |
---|---|
TW202008744A (zh) | 2020-02-16 |
WO2020027984A1 (en) | 2020-02-06 |
US11216592B2 (en) | 2022-01-04 |
US20200042746A1 (en) | 2020-02-06 |
CN112514320A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI809026B (zh) | 用於在一加密系統中管理密碼密鑰之一集合的積體電路(ic)系統、用於一積體電路(ic)系統之方法及非暫時性電腦可讀媒體 | |
US11088846B2 (en) | Key rotating trees with split counters for efficient hardware replay protection | |
KR101880075B1 (ko) | 중복 제거 기반 데이터 보안 | |
EP3602376B1 (en) | Monitoring of memory page transitions between a hypervisor and a virtual machine | |
US9141558B2 (en) | Secure memory control parameters in table look aside buffer data fields and support memory array | |
US20170277898A1 (en) | Key management for secure memory address spaces | |
US9135450B2 (en) | Systems and methods for protecting symmetric encryption keys | |
US10896267B2 (en) | Input/output data encryption | |
US10372628B2 (en) | Cross-domain security in cryptographically partitioned cloud | |
TWI797353B (zh) | 動態密碼密鑰擴展之電路、方法及系統 | |
US9678894B2 (en) | Cache-less split tracker architecture for replay protection trees | |
JP6916454B2 (ja) | ハードウェアアクアクセラレーテッド暗号法のためのキーのスレッド所有権 | |
JP2020535693A (ja) | 記憶データ暗号化/復号化装置及び方法 | |
JP2008123513A (ja) | 仮想化されたレジスタを有するトラステッド・デバイス | |
US20230409492A1 (en) | Method, apparatus, and system for storing memory encryption realm key ids | |
US9218296B2 (en) | Low-latency, low-overhead hybrid encryption scheme | |
US20180307626A1 (en) | Hardware-assisted memory encryption circuit | |
US11734415B2 (en) | Device and method for managing an encrypted software application | |
CN112585607A (zh) | 用于存储存储器加密领域密钥id的方法、装置和系统 | |
WO2014042512A1 (en) | Management of storage encryption over network-based elastic block store volume |