TWI715619B - 用於硬體強制單向密碼學的處理器、方法及系統 - Google Patents
用於硬體強制單向密碼學的處理器、方法及系統 Download PDFInfo
- Publication number
- TWI715619B TWI715619B TW105127290A TW105127290A TWI715619B TW I715619 B TWI715619 B TW I715619B TW 105127290 A TW105127290 A TW 105127290A TW 105127290 A TW105127290 A TW 105127290A TW I715619 B TWI715619 B TW I715619B
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- instruction
- key
- encryption
- hardware
- Prior art date
Links
Images
Classifications
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本文揭示用於硬體強制單向密碼學之發明的實施例。在一實施例中,處理器包括處理器金鑰位置、指令硬體、及執行硬體。處理器金鑰位置係用於保存處理器金鑰。指令硬體接收處理器之指令集中的第一指令。第一指令以處理器金鑰加密輸入資料並返回一處置。指令集欠缺以處理器金鑰來解密處置以返回該輸入資料之對應於該第一指令的第二指令。執行硬體回應藉由指令硬體對於該第一指令之接收,執行硬體以處理器金鑰實施輸入資料之加密,並返回處置。
Description
本揭示屬於資訊處理之領域,且更特定地說,屬於資訊處理系統中之安全性的領域。
很多資訊處理系統中使用及儲存有私有訊息及其它的機密。現已開發出很多技術來嘗試儲存及/或傳送機密,以使得這些機密不被發現或被竄改。這些技術通常涉及使用一或多個密學碼金鑰。因此,也已發展出用來保護這些密碼學金鑰之完整性的技術,且隨著對資訊處理系統之惡意攻擊的威脅日益嚴重,愈來愈需要這方面的技術。
100‧‧‧系統
110‧‧‧處理器
112‧‧‧單向密碼硬體/邏輯
114‧‧‧MOV_ENCRYPT硬體/邏輯
116‧‧‧處理器金鑰
120‧‧‧系統記憶體
130‧‧‧圖形處理器
140‧‧‧周邊控制代理
150‧‧‧資訊儲存裝置
132‧‧‧顯示器
142‧‧‧裝置
200‧‧‧處理器
210‧‧‧儲存單元
211‧‧‧源暫存器
212‧‧‧目的暫存器
213‧‧‧大小暫存器
214‧‧‧初始化向量暫存器
215‧‧‧驗證資料暫存器
216‧‧‧控制暫存器
220‧‧‧指令單元
222‧‧‧mov_encrypt指令硬體/邏輯
240‧‧‧控制單元
242‧‧‧mov_encrypt控制硬體/邏輯
230‧‧‧執行單元
232‧‧‧mov_encrypt執行硬體
234‧‧‧密碼硬體
236‧‧‧鑑認硬體
250‧‧‧處理器金鑰
400‧‧‧格式
410‧‧‧第一欄位
420‧‧‧第二欄位
430‧‧‧第三欄位
440‧‧‧第四欄位
本發明藉由附圖中非限制的例子來說明。
圖1說明按照本發明實施例包括有支援硬體強制單向密碼學的系統。
圖2說明按照本發明實施例包括有支援硬體強制單向密碼學的處理器。
圖3說明按照本發明實施例之用以實施與MOV_ENCRYPT指令之執行有關之鑑認加密之鑑認加密硬體的操作。
圖4說明按照本發明實施例之MOV_ENCRYPT指令的格式。
圖5說明按照本發明實施例之用於硬體強制單向密碼學的方法。
本文描述關於硬體強制單向密碼學的發明實施例。在此描述中,為了提供對本發明更徹底的瞭解,陳述了諸多特定的細節,諸如組件與系統組構。不過,熟悉此方面技術的技藝者將可明瞭,實行本發明並不需要這些特定的細節。此外,一些習知的結構、電路、及其它特徵並未詳細顯示,以避免不必要地模糊了本發明。
在以下的描述中,提及“一實施例”、“實施例”、“例示實施例”、“各不同實施例”等,意指按此所描述之本發明的實施例可包括特定的特徵、結構、功能、或特性,但不止一個以上的實施例且非每一個實施例必然包括這些特定的特徵、結構、功能、或特性。此外,一些實施例可具有一些、全部、或全無其它實施例中所描述的特徵。
如本描述及申請專利範圍中所使用且除非特別說明,以序數形容詞“第一”、“第二”、“第三”等來描述元件,僅用來指示所提及的某特定元件例或不同的類似元件例,且
無意暗示按此描述的元件無論是在時間上、空間上、排序上、或任何其它方面必須按特定的順序。
此外,“位元”、“旗標”、“欄位”、“登錄”、“指示符”等名詞係用來描述暫存器、表、資料庫、或其它資料結構中儲存位置的任何類型或內容,但無意將本發明的實施例限制在任何特定類型的儲存位置,或任何特定儲存位置中之位元或其它元素的數量。名詞“清除”可用來指示以儲存或其它方式導致儲存位置內被儲存邏輯值零,以及,名詞“設定”用來指示以儲存或其它方式導致儲存位置內被儲存邏輯值1、全部1,或一些其它的指示值;不過,這些名詞無意將本發明的實施例限制到任何特定的習用邏輯,且本發明的實施例內可使用任何的習用邏輯。
此外,如本發明之實施例的描述中所使用,兩名詞間的“/”符號可意指實施例可包括或使用、以、及/或按照第一個名詞及/或第二個名詞(及/或任何其它額外的名詞)來實施。
如發明背景一節中的描述,很多關於使用、傳送、及儲存私人或機密資訊的技術都涉及密碼學金鑰。因此,本發明之實施例的用途意欲提供對於密碼學金鑰的保護,並減輕資訊處理系統與裝置對於攻擊的脆弱性。例如,本發明的實施例可用來在處理器內產生任何數量的密碼學金鑰,具有為該金鑰而存取對應於處理器特定之“處置”的軟體在處理器上使用每一個密碼學金鑰,其中,每一個密碼學金鑰被保存在處理器內並被保護,使得沒有韌體或軟體
甚至具有該處置的軟體能夠讀取或以其它方式發現該金鑰。此外,即使攻擊者能夠使用處理器上的金鑰(例如,藉由發現該處置),攻擊者也無法在不同的處理器或系統上使用該金鑰,或將該金鑰複製/移動到不同的處理器或系統,且可限制攻擊者之金鑰的使用時間只到處理器或系統被重置為止。本發明昀實施例也可有很多其它用途。
圖1說明系統100,資訊處理系統包括用於硬體強制單向密碼學之本發明的實施例。系統100可代表任何類型的資訊處理系統,諸如伺服器、桌上型電腦、可攜式電腦、機上盒、手持式裝置,諸如平板或智慧型手機、或內嵌式控制系統。系統100包括處理器110、系統記憶體120、圖形處理器130、周邊控制代理140、及資訊儲存裝置150。具體化本發明的系統可包括這些任何數量的每一個組件,以及任何其它組件或其它元件,諸如周邊與輸入/輸出裝置。除非特別說明,在此或任何系統實施例中的任何或所有組件或元件,可被連接、耦接、或經由任何數量的匯流排、點對點、或其它有線或無線介面或連接彼此通訊。系統100的任何組件或其它部分,無論圖1中有或沒有顯示,都可整合或以其它方式包括在單晶片(系統晶片或SOC)、晶粒、基板、或封裝之上或其內。
系統記憶體120可以是動態隨機存取記憶體(DRAM)或可被處理器110讀取之任何其它類型的媒體。圖形處理器130可包括任何處理器或為顯示器132處理圖形資料的其它組件。周邊控制代理140可代表任何組
件,諸如晶片組組件,周邊、輸入/輸出(I/O)、或其它組件或裝置,諸如裝置142(例如,觸控螢幕、鍵盤、麥克風、喇叭、其它音頻裝置、照相機、視訊或其它媒體裝置、網路配接器、監視器或其它感測器、全球定位或其它資訊的接收器等)、及/或資訊儲存裝置150包括有或透過其連接或耦接到處理器110。資訊儲存裝置150可包括任何類型的永久或非揮發性記憶體或儲存器,諸如快閃記憶體及/或固態、磁性、或光碟驅動器。
處理器110可代表整合在單片基板上或包封在單個封裝內的一或多個處理器或處理器核心,其每一個都包括以任何方式組合的多執行緒及/或多個執行核心。表示為或在處理器110內的每一個處理器可以是任何類型的處理器,包括通用微處理器、諸如Intel® Core®處理器系列中的處理器,或來自Intel®公司或其它公司的其它處理器系列;特殊用途處理器或微控制器;或可實施本發明之實施例之資訊處理器系統中的任何其它裝置或組件。處理器110可被架構及設計成無論有或沒有微碼控制都能按照任何指令集架構(ISA)操作。
為支援按照本發明之實施例的單向加密,可在諸如處理器110的處理器中實施,使用內嵌於硬體內之電路及/或邏輯的任何組合、微碼、韌體、及/或按下述所配置的其它結構、或按照任何其它方法,且在圖1中以單向密碼硬體/邏輯112來表示,其包括MOV_ENCRYPT硬體/邏輯114用以支援如下文所描述的MOV_ENCRYPT指令。處
理器110也包括處理器金鑰(PK)116,如下文之描述。
圖2說明處理器200,其代表圖1中之處理器110的實施例,或圖1中之處理器110之多核心處理器實施例的執行核心。處理器200可包括儲存單元210、指令單元220、執行單元230、控制單元240、及PK 250,在此,圖1之單向密碼硬體/邏輯112的電路、結構、及功能可分散於處理器200的每一個單元之中,如下文之描述。處理器200也可包括圖1中未顯示的任何其它的電路、結構、或邏輯。
儲存單元210可包括在處理器200內可用於任何目的之任何類型儲存器的任何組合;例如,其可包括任何數量之可讀、可寫、及/或可讀寫的暫存器、緩衝區、及/或快取記憶體,使用任何的記憶體或儲存器技術來實施,其中用以儲存能力資訊、組態資訊、控制資訊、狀態資訊、性能資訊、指令、資料、及處理器200之操作中使用的任何其它資訊,以及可用來存取此儲存器及/或用來致使或支援各種操作及/或與存取此儲存器相關聯之組態的電路。
按照本發明的實施例,儲存單元210也包括一或多個具有任何大小可供使用的儲存位置。這些儲存位置每個都可以是通用暫存器、特殊用途暫存器、整數暫存器、浮點暫存器、純量暫存器、向量暫存器、XMM暫存器(按照來自Intel®公司之處理器系列的架構)中的任何一個(即,它們不需是相同類型的暫存器),或任何其它類型的暫存器或任何大小的儲存位置,但為方便,每一個都稱
為暫存器,且每一個都以特定名稱提及,但無意暗示使用了特定暫存器或該暫存器專用於特定用途。
儲存位置210可包括源暫存器211(其可代表一組暫存器)用以保存密碼學金鑰、用做為密碼學金鑰的值、可從其推導出密碼學金鑰的值、此金鑰的一部分、意欲使用按照本發明之實施例之加密來保護的任何其它資料、或任何指向此金鑰、值、或資料的指示器或位址或其它直接或間接的位置識別符。為方便之故,將源暫存器211所保存及/或其所指向到要被載入而寫入的資料稱為輸入金鑰(在此,為了方便,本文從頭到尾係基於一實施例而將此資料稱為「輸入金鑰」,但可意指意欲使用按照本發明之任何實施例之加密來保護的任何資料,不以任何方式來限制為金鑰或與金鑰相關的值)。源暫存器211或其所指向的位置可被處理器200所執行的軟體寫,但須不被處理器200所執行的軟體可讀。即使源暫存器211或其所指向的位置可被軟體讀取,但它的內容或其所指到的內容被一或多種習知的保全技術保護(例如,藉由將輸入金鑰載入其內,對輸入金鑰實施按照本發明之實施例的加密操作,接著,所有都藉由或在安全開機程序、鑑認碼模組、安全或可信賴的處理環境等內將其清除)。
儲存位置210可包括目的暫存器212(其可代表一組暫存器),用以保存按照本發明之實施例加密操作的結果,或指向此結果的指示器或位址或其它直接或間接的位置識別符。為方便之故,將目的暫存器212所保存及/或
其所指到要從其讀取或擷取的資料稱為處置,在此,對應於特定輸入金鑰之每一個這樣的處置,係由或可藉由特定的處理器從該特定輸入金鑰導出。因此,每一個這樣的處置對輸入金鑰而言係唯一的(在某種程度上,係由加密演算法及輸入金鑰的長度與值所提供),且對處理器係唯一的(在某種程度上,係由處理器金鑰的唯一性所提供,在各不同的實施例中,處理器金鑰可被兩或更多個處理器所共用)。處理器200所執行的軟體可讀目的暫存器212或其所指到的位置,但須不被處理器200所執行的軟體寫。即使處理器200所執行的軟體可讀目的暫存器212或其所指到的位置,但它的內容或其所指到的內容被一或多種習知的保全技術所保護(例如,藉由載入輸入金鑰,對輸入金鑰實施按照本發明之實施例的加密操作,讀目的暫存器212或其所指向的位置,接著,所有都藉由或在安全開機程序,鑑認碼模組、安全或可信賴的處理環境等內將其清除)。
儲存位置210可包括用以保存輸入金鑰之大小的大小暫存器213。例如,在實施例中,源暫存器211保存指向系統記憶體120中之資料緩衝區的指示器,大小暫存器213可用來保存要被加密之區塊的數量(例如,資料緩衝區中的區塊數量),在此,每一個區塊可以是任何數量的位元(例如,128位元或由加密演算法所指定之任何其它數量的位元)。
儲存位置210包括初始化向量(IV)暫存器214(其
可代表一組暫存器)用以保存IV或指向IV的指示器或位址或其它直接或間接的位置識別符,在此,IV可以是IV(例如,用於先進加密標準(AES)密碼區段連結(CBC)模式)、初始計數器值(例如,用於先進加密標準(AES)伽羅瓦計數器模式(GCM))、種子、隨機數、其它值(例如,如由任何加密操作、密碼、或標準所定義,或在任何加密操作、密碼、或標準中所使用,或按照任何的加密操作、密碼、或標準)、或可從其導出此值的任何其它資料。IV暫存器214或其所指到的位置可被處理器200所執行的軟體寫,但須不被處理器200所執行的軟體讀。在實施例中,軟體既不能讀亦不能寫IV暫存器214或其所指到的位置,但可藉由硬體(例如,硬體亂數產生器)或韌體寫入或載入。在實施例中,軟體可讀IV暫存器214或其所指到的位置,它的內容或其所指到的內容被一或多種習知的保全技術所保護(例如,藉由將IV載入IV暫存器214或其所指到的位置,使用IV實施按照本發明之實施例的加密操作,接著,所有都藉由或在安全開機程序、鑑認碼模組、安全或可信賴的處理環境等內清除IV暫存器214或其所指到的位置)。
儲存單元210可包括附加驗證資料(AAD)暫存器215來保存用於鑑認的附加資料,用來提供除了加密之外做為保護機制的鑑認。例如,在本發明的實施例中,處置中包括鑑認標籤或其它元資料,這些可供處理器用來核實該處置係使用處理器的PK正確地產生。
儲存單元210可包括控制暫存器216,其代表按照現有處理器或指令集架構所指定或定義的一或多個控制暫存器、加到現有處理器或指令集架構中之一或多個新的控制暫存器、或現有或新暫存器中的一或多個位元/欄位。在各不同的實施例中,控制暫存器216可包括用來致能本發明之一或多個特徵的一或多個位元。例如,在本發明的實施例中,控制暫存器216可包括用來選擇特定加密密碼或模式的一或多個可程式位元,其中不僅僅使用加密密碼或模式。
指令單元220可包括任何的電路、邏輯、結構、及/或其它硬體,諸如指令解碼器,用以提取、接收、解碼、解譯、排程、及/或處置要被處理器200執行的指令。在本發明的範圍內可使用任何指令格式;例如,指令可包括運算碼與一或多個運算元,在此,運算碼可被解碼成一或多個微指令或微運算供執行單元230執行。運算元或其它參數可與指令以隱性、直接、間接、或按其它任何方法相關聯。
在實施例中,指令單元220可包括mov-encrypt指令硬體/邏輯222(其可包括以上所列硬體/邏輯的任何組合),用以接收(及/或以上所列的其它處置)MOV_ENCRYPT指令。以下所描述的本發明實施例說明一或多個MOV_ENCRYPT指令的可能格式,及/或處理器對於MOV_ENCRYPT指令之一或多個可能的回應。須注意,提供此指令的名稱僅是為方便,且本發明實施例可包
括具有任何所需名稱的此類指令。在各不同的實施例中,一或多個變體的MOV_ENCRYPT指令可加到現有的ISA中做為現有指令之增強、延伸、殘餘、或其它的衍生(例如,字串複製指令)。
亦須注意,所描述的本發明各不同實施例在MOV_ENCRYPT指令之運算元/參數以及處理器對於MOV_ENCRYPT指令之回應的方面,更可能包括了各種差異。在各不同的實施例中,每一不同種類的MOV_ENCRYPT指令使用不同的指令及/或運算碼,或它們可以是相同指令/運算元的殘餘或衍生。亦須注意,處理器之MOV_ENCRYPT指令的執行及/或對MOV_ENCRYPT指令的回應,也或可代之以回應其它事件或與其它事件有關而實施(及/或以下稱為MOV_ENCRYPT操作),這些事件例如命令、模式特定暫存器或其它暫存器之位元的寫入或設定(藉由軟體、韌體、或硬體);VM進入或離開;等。本發明的實施例包括任何一或多個這些衍生。
指令單元220可支援包括MOV_ENCRYPT指令但無對應之解密指令的ISA(例如,在ISA中的指令僅能夠正確地執行接收、處置、及/或發送)。換言之,按照本發明的實施例,ISA允許軟體對密碼學金鑰及/或其它資訊加密,但不允許該軟體或任何其它軟體解密被加密的結果。在實施例中,處理器在第一操作模式(例如,一般模式)中支援這種ISA(即包括MOV_ENCRYPT指令但無對應
之解密指令的ISA),但在第二操作模式(例如,安全模式)中支援包括有對應之解密指令的ISA。
執行單元230可包括任何的電路、邏輯、結構、及/或其它硬體,諸如算數單元、邏輯單元、浮點單元、移位器、等,用以處理資料及執行指令、微指令、及/或微操作。執行單元230可代表任何一或多個實體上或邏輯上分離的執行單元。執行單元230可包括用以執行MOV_ENCRYPT的mov-encrypt執行硬體232,如下文進一步之描述。在圖2中,雖然是以獨立的元件來顯示mov-encrypt執行硬體,但其可包括用來執行其它指令及/或實施其它操作的電路。
執行單元230可包括密碼硬體234,用來實施任何一或多種密碼學演算法,諸如電子密碼本(ECB)中的先進加密標準(AES)演算法、伽羅瓦計數器模式(GCM)、及/或密碼區段連結(CBC)模式。或者,加密可由執行單元230中的其它硬體(例如,共用、通用硬體)來實施。輸入到任何此種加密硬體/演算法的輸入可稱為明文,其輸出可稱為密文。
PK 250(如下文之描述)可用硬線或其它方式連接到密碼硬體234及/或執行單元230或就在其內,以使得PK 250在密碼硬體234及/或執行單元230所實施的任何一或多種加密演算法中用做為密碼學金鑰,而不曝露PK 250於軟體或發現。在很多實施例中,僅處理器200內的加密硬體可存取PK 250。
執行單元230可包括鑑認硬體236,用以實施任何一或多種散列演算法(例如,安全散列演算法(SHA)、伽羅瓦散列(GHASH)演算法、等),產生訊息鑑認碼(MAC)、鑑認標籤、或可用來鑑認或驗證處置(例如,使用處理器的PK所正確產生的處置)之完整性的其它資料,及/或實施任何其它提供鑑認的鑑認功能,做為加密以外的保護機制。或者,可藉由執行單元230中的其它硬體(例如,共用、通用硬體)來實施散列、及/或MAC及/或鑑認標籤之產生、及/或任何其它的鑑認功能。
在本發明的實施例中,密碼硬體234與鑑認硬體236可用來及/或整合在一起(及/或連同共用、通用的硬體)來實施鑑認加密演算法(例如,AES-GCM)。例如,圖3說明鑑認加密硬體的操作,用以對3個資料區塊實施與MOV_ENCRYPT指令之執行有關之鑑認密碼的操作,(例如,在實施例中,其中MOV_ENCRYPT指令用來實行AES-GCM),在此,Y0代表初始計數值、Auth Data代表AAD、Auth Tag代表鑑認標籤、P代表明文,及C代表密文(以下進一步描述前文或後文所引入及所提供及/或使用的每一個)。
在圖3中,頂部顯示與AES加密相關聯的計算而底部顯示GHASH計算。進到操作的輸入由金鑰(PK 250)、明文、初始資料、AAD、及大小(也稱為長度)所構成。輸出為密文與鑑認標籤。
初始資料包括鹽與序號,與1的初始計數值串接,以
形成值Y0。後續的值Yi係藉由增量計數器而產生,以“incr”方塊顯示。藉由實施Ci=Ci=EK(Yi)♁Pi而產生密文方塊。初始計數值被加密以用作為最終標籤上的遮罩。
AAD係單個填充方塊。使用AAD來計算初始摘要(digest)X0以實施第一次的GHASH運算。GHASH運算是以“mult H”方塊來指示。後續的GHASH運算係對藉由AES計數器模式加密處理所產生的3個密文方塊實施。最終的GHASH運算是對以長度資料所產生的方塊來實施,與經加密的遮罩XOR以產生最終的摘要。鑑認標籤係最終的摘要或位元組的子集。
回到圖2,控制單元240可包括任何微碼、韌體、電路、邏輯、結構、及/或硬體,用以控制處理器200之各單元及其它元件之操作,以及在處理器200內傳送資料,及將資料傳入、傳出。控制單元240可致使處理器200實施或分擔本發明之方法實施例的功能,諸如以下描述的方法實施例,例如,藉由使用執行單元230及/或其它任何資源致使處理器200執行指令單元220所接收之指令及導出自指令單元220所接收之指令的微指令或微操作。藉由執行單元230之指令的執行,可根據儲存在儲存單元210中的控制及/或組態資訊而改變,在此,此控制及/或組態資訊可儲存在或編程到控制/組態暫存器中,諸如控制暫存器216。
在實施例中,控制單元240可包括mov-encrypt控制硬體/邏輯242,其可代表微碼、韌體、電路、邏輯、結
構、及/或硬體,用來控制MOV_ENCRYPT指令/操作的執行。
在本發明的實施例中,PK 250可代表任何根金鑰、金鑰加密金鑰、處理器或平台獨有的金鑰、或其它金鑰,且可於製造期間內嵌(例如,以金屬繫結或繫固或任何其它暫存器轉移語言技術)、編程到融絲陣列內、由物理性不可複製功能陣列(PUF)或亂數產生器產生、或以其它方式包括在處理器200內或由其推導出。在實施例中,PK 250(例如,儲存在記憶體或陣列中)不可被在系統100中之處理器200或任何其它處理器或其它代理上運行的軟體或韌體存取,換言之,PK 250被保護無法被軟體或韌體讀取。PK 250及/或使用它的加密硬體被處理器200內的一或多個執行核心所共用。
在本發明的各不同實施例中,處理器200可在不同的時間產生PK 250之新及/或不同的值,以致於可防止在成功攻擊(例如,獲得對於處置之存取,或以其它方式解密或發現以PK 250加密之密碼學金鑰或其它資訊的攻擊)之後繼續的成功。例如,在實施例中,其中,PK 250係導出自亂數產生器,每當處理器200被重置時可產生新的PK 250值(且接著軟體使用本發明的實施例再加密它的密碼學金鑰或其它資訊並產生新的處置)。
在本發明的實施例中,PK 250的值可由軟體提供。例如,在安全啟動處理期間,在可信賴之執行環境中運行的鑑認碼模組可導出(例如,從亂數產生器)或啟封(例
如,從可信賴平台模組)PK 250的值,並將其儲存到處理器200中指定的儲存位置內。指定的儲存位置可按照任何方法來保護,包括本說明書中已描述的那些。例如,其可以是唯寫暫存器,或是僅可被密碼學安全引擎、其它特許的硬體代理或實體、或在安全或可信賴處理環境中的韌體或軟體才能存取的暫存器。在本發明的其它實施例中,硬體、韌體、及軟體的任何組合都可用來產生PK 250的值(例如,使用導出自硬體融絲之金鑰之軟體指定之亂數的加密,硬體金鑰被軟體供應的金鑰選擇性地覆寫(例如,用於虛擬化),或以軟體供應的金鑰置換等)。
圖4說明按照本發明之實施例之MOV_ENCRYPT指令的格式400。格式400可包括任何數量的欄位,每一個欄位包括任何數量的位元。格式400中的位元總數可視處理器的指令集架構而定。例如,格式400可具有32位元、64位元等的長度。在本發明的各不同實施例中,MOV_ENCRYPT指令的格式可包括圖4中所示之欄位的任何組合,及/或任何數量的其它運算元欄位、立即欄位、保留欄位、或任何其它欄位。
格式400包括第一欄位410,其可以是運算編碼(運算碼)欄位,用以指定指令的類型。在實施例中,可使用一或多個特定的值做為MOV_ENCRYPT指令的運算碼。按照一或多個指令集架構,運算碼可以是導致無運算(NOP)之執行的運算碼,所設計之新的或延伸的指令集架構以其反向相容。
格式400可包括第二欄位420,其可為運算元欄位,用來指定大小暫存器(如前文描述)。在替代的實施例中,大小可在指令格式中或通過不同的指令運算碼被指定為立即。
以下所顯示之MOV_ENCRYPT指令的定義,使用第一欄位410作為運算碼來指定“mov-encrypt”指令,及第二欄位420作為顯式運算元(“reg”)來指定大小(例如,被以區塊式密碼(諸如AES-ECB)加密之輸入緩衝區之區塊的大小)。在此(及後續)的例中,“rsi”與“rdi”分別代表隱式運算元、源暫存器及目的暫存器,如前文之描述,在此,源暫存器保存用以指示要被加密之輸入緩衝區的指示器,及目的暫存器保存用以指示要儲存處置之輸出緩衝區的指示器。本實施例之MOV_ENCRYPT指令之執行致使執行單元230以PK 250做為加密金鑰及輸入緩衝區的內容做為明文遞增地實施逐區塊的加密操作(區塊-密碼-加密),在此,密文(處置)被寫入輸出緩衝區。
格式400可包括第三欄位430,其可以是運算元欄位,用來為使用此IV或其它這類值(例如AES-CBC)的加密模式指定IV暫存器(如前文所述)。在替代的實施
例中,IV或其它這類值可由硬體(例如,處理器中的隨機數產生器)提供,以取代軟體為此目的而使用第三欄位430。
以下所顯示之MOV_ENCRYPT指令的定義,使用第一欄位410作為運算碼來指定“mov-encrypt-CBC”指令、第二欄位420作為顯式運算元(“reg”)來指定大小、及第三欄位430作為顯式運算元(“reg2”)來指定IV。本實施例之MOV_ENCRYPT指令之執行致使執行單元230以PK 250做為加密金鑰,輸入緩衝區的內容做為明文,及IV做為附加的輸入,遞增地實施逐區塊的AES-CBC加密操作(區塊-密碼-cbc-加密),在此,密文(處置)被寫入輸出緩衝區。
在格式400中,第三欄位430可代之以指定AAD暫存器(如前文所述)的運算元欄位用於鑑認加密操作。以下所顯示之MOV_ENCRYPT指令的定義,使用第一欄位410作為運算碼來指定“mov-encrypt-auth”指令、第二欄位420作為顯式運算元(“reg”)來指定大小、及第三欄位430作為顯式運算元(“reg3”)來指定AAD。本實施例之
MOV_ENCRYPT指令之執行致使執行單元230以PK 250做為加密金鑰及輸入緩衝區的內容做為明文,遞增地實施逐區塊的加密操作(區塊-編碼-加密),在此,密文被寫入輸出緩衝區,並接著對AAD與密文實施鑑認功能(“鑑認-功能)”以產生鑑認標籤(“Tag”),並接著將大小(或長度)、AAD、及標籤寫入輸出緩衝區,以致使包括密文與資訊的處置需要實施處置的鑑認。在替代的實施例中,標籤之產生係基於明文而非密文。
格式300可包括第四欄位440用以提供3個顯式運算元。以下所顯示之MOV_ENCRYPT指令的定義,使用第一欄位410作為運算碼來指定“mov-encrypt-auth-AES-GCM”指令,第二欄位420作為顯式運算元(“reg”)來指定大小,第三欄位430作為顯式運算元(“reg2”)來指定初始的計數器值(Y0),及第四欄位440作為顯式運算元(“reg3”)來指定AAD。本實施例之MOV_ENCRYPT指令之執行致使執行單元230以PK 250做為加密金鑰,輸
入緩衝區的內容做為明文,及Y0與AAD做為附加輸入,遞增地實施逐區塊的AES-GCM加密操作(aes-gcm-加密),在此,密文、大小(或長度)、AAD、及標籤被寫到輸出緩衝區,以致使包括密文與資訊的處置需要實施處置的鑑認。對3個資料區塊的此項AES-GCM操作例說明於圖3。
須注意,在以上的每一個指令定義例中,與該例相關聯的所有操作皆是由處理器回應單個指令而實施。例如,處理器回應mov-encrypt-auth指令而實施加密與鑑認,以使得用來完成特定操作的碼可只包括單個指令而非兩或更多個指令。
圖5說明按照本發明之實施例用於硬體強制單向密碼學的方法500。雖然本發明的實施例不限於此方面,但參考圖1、2、及3的元素會有助於圖5之方法實施例的描述。方法500之各不同的點可藉由硬體、韌體、軟體、及/或系統或裝置的使用者來實施。
在方法500的方塊510中,包括有按照本發明實施例
之處理器(例如,處理器110/200)之資訊處理系統(例如,系統100)的啟動(例如,安全或可信賴的啟動程序包括可信賴碼之指令的執行以實施方法500的方塊512至548)開始。
在方塊512中,未加密的金鑰儲被存在系統記憶體(例如,系統記憶體120)內的資料緩衝區中(“輸入緩衝區”)。本發明的各不同實施例可在輸入緩衝區中儲存除了未加密金鑰以外的資訊,但為便於說明,本說明書將該資訊稱為未加密的金鑰。
在方塊520中,指到輸入緩衝區的指示器被寫到處理器暫存器(源暫存器)。在方塊522中,輸入緩衝區的大小被寫到處理器暫存器(大小暫存器)。在方塊524中,初始值(例如,IV、初始計數器值、等)被寫到處理器暫存器(IV暫存器)。在方塊526,AAD被寫到處理器暫存器(AAD暫存器)。
在方塊530中,具有用以指定加密操作(例如,用以指定演算法、模式、鑑認之使用/類型、等)之運算碼的MOV_ENCRYPT指令被引動。該指令也具有用來指定大小暫存器的第一運算元、用來指定IV暫存器的第二運算元、及/或用來指定AAD暫存器的第三運算元。
在方塊532中,處理器中的指令硬體(例如,指令單元220)接收MOV_ENCRYPT指令。在方塊534中,回應指令硬體接收的指令,開始MOV_ENCRYPT指令的執行。
在方塊540中,處理器中的執行硬體(例如,執行單元230、密碼硬體234、及/或鑑認硬體236)使用處理器金鑰(例如,PK 250)對輸入緩衝區的內容實施加密操作。在各不同的實施例中,處理器可以是固線式,用以實施特定的加密操作及/或模式,及/或處理器可以是被指令、被編程、或被組構成根據一或多個運算碼、一或多個運算元、控制/組態暫存器(例如,控制暫存器216)之內容等來選擇加密操作、模式、及/或鑑認的使用/類型、等。在各不同的實施例中,附加到加密操作的輸入可包括初始值(例如,IV、初始計數器值、等)、AAD等。
在方塊542中,也可實施鑑認操作來產生鑑認標籤。在實施例中,鑑認操作可實施為加密操作的一部分,與加密操作平行或以其它方式相關。
在方塊544中,加密操作之功能導致將密文寫到輸出緩衝區或其它的處置儲存位置。在方塊546中,加密操作之功能也導致將鑑認資訊,諸如大小、初始計數值、AAD、及鑑認標籤寫到輸出緩衝區或其它的處置儲存位置。在方塊548中,MOV_ENCRYPT指令的執行結束。
須注意,處理器不需要儲存未加密金鑰或處置,因其可於軟體提供處置的任何時間使用執行單元230與PK 250來再產生金鑰。亦須注意,方塊512至548可經常按需要重複(例如,以不同的未加密金鑰與其它參數),及/或為了在任何時間為任何所需之目的產生符合所需數量的處置而在安全啟動程序之外實施。
在方塊550中,安全啟動程序結束。
在方塊552中,所完成的處置可供軟體使用。例如,作業系統(OS)或其它系統層級或特許的軟體可存取輸出緩衝區或其它的處置儲存位置供其自已使用,供其自已用來代表應用軟體或使用者層級的軟體,或提供給應用軟體或使用者層級的軟體。
在方塊554中,處置可提供給與指令或對資訊加密或解密之其它請求有關的處理器(例如,參考方塊552,藉由軟體提供)。對資訊加密或解密之請求可與各種任何的目的有關(例如,碟片加密/解密,與其它系統建立或從事安全通訊等)。
在方塊556中,處理器可使用包括在處置中的鑑認資訊來鑑認該處置。如果鑑認失敗則產生異常,接著在方塊558中,處理器送回錯誤碼或按照任何其它方法指示鑑認失敗。如果處置不是使用處理器的PK(例如,PK 250)正確地產生,則鑑認會失敗。如果嘗試使用的處置(例如,用於SM4密碼的金鑰)與意欲使用的處置(例如,如由AAD所指示,諸如使用用於AES 128的金鑰)不匹配,則鑑認會失敗。
如果鑑認通過,則方法500在方塊560繼續。
在方塊560中,處理器可使用它的處理器金鑰(例如,PK 250)來解密該處置以產生經解密的金鑰。須注意,方塊560可實施為方塊556之功能的一部分。
在方塊562中,處理器可使用經解密之金鑰來加密或
解密方塊554中所請求的資訊。在方塊564中,處理器丟棄該經解密的金鑰(例如,清除儲存該金鑰的任何暫存器)。
在各不同的實施例中,圖5所說明之方法可按不同的次序實施,說明的方塊可合併或省略,增添附加的方塊,或重排序、合併、省略、或附加方塊的組合。此外,本發明的方法實施例並不限於方法500或它的衍生。本文未描述的很多其它方法實施例(以及設備、系統、或其它實施例)也可能在本發明的範圍內。例如,輸入緩衝區及/或輸出緩衝區可在除了系統記憶體120以外的記憶體或儲存位置中(例如,在處理器中或可被其存取的快取記憶體、及/或受任何習知技術所保護的記憶體或記憶體的區域)。
如前文所描述之本發明的實施例或部分的實施例可儲存在任何形式的機器可讀取媒體上。例如,方法500的全部或部分可具體化成儲存在可被處理器110讀取之媒體上的軟體或韌體指令,當被處理器110執行時,致使處理器110執行本發明的實施例。此外,本發明的態樣可具體化成儲存在機器可讀取媒體上的資料,在此,該資料代表可用來製造全部或部分處理器110的設計或其它資訊。
因此,現已描述本發明之用於硬體強制單向密碼學的實施例。雖然已描述了某些實施例,並於附圖中顯示,但須瞭解,這些實施例僅是說明,並非對寬泛之發明的限制,且本發明不受限於所顯示及描述之特定的構造與配
置,因為熟悉一般技術的技藝者在研究了本揭示之後可發現各種其它的修改。在諸如此的技術領域中,成長快速且未來的進步不易預見,所揭示之實施例的配置與細節得助於技術之進步很容易修改,但不會偏離本揭示之原理或所附申請專利範圍的範圍。
100‧‧‧系統
110‧‧‧處理器
112‧‧‧單向密碼硬體/邏輯
114‧‧‧MOV_ENCRYPT硬體/邏輯
116‧‧‧處理器金鑰
120‧‧‧系統記憶體
130‧‧‧圖形處理器
132‧‧‧顯示器
140‧‧‧周邊控制代理
142‧‧‧裝置
150‧‧‧資訊儲存裝置
Claims (20)
- 一種用於硬體強制單向密碼學的處理器,包含:處理器金鑰位置,用以保存處理器金鑰;指令解碼器,用以解碼該處理器之指令集架構的指令,該指令集架構包括第一指令,該第一指令具有包括第一欄位及第二欄位的格式,該第一欄位用於運算碼指定該處理器要實施的加密,用以以該處理器金鑰來加密輸入資料並返回一處置,該指令集架構欠缺以該處理器金鑰來解密該處置以返回該輸入資料之對應於該第一指令的第二指令,該第二欄位用以指定該輸入資料大小;以及執行硬體,回應藉由該指令解碼器對於該第一指令之解碼,該執行硬體以該處理器金鑰實施該輸入資料之加密,並返回該處置。
- 如申請專利範圍第1項之處理器,其中,該執行硬體包括用以實施該加密的加密硬體。
- 如申請專利範圍第1項之處理器,其中,該執行硬體回應該指令解碼器解碼該第一指令也實施鑑認操作。
- 如申請專利範圍第2項之處理器,其中,該執行硬體也包括鑑認硬體,用以實施與加密有關的鑑認操作以產生鑑認標籤。
- 如申請專利範圍第4項之處理器,其中,該執行硬體也將鑑認標籤包括在該處置中。
- 如申請專利範圍第1項之處理器,進一步包含源儲存位置,用以指定用來保存該輸入資料之輸入緩衝區的 位置。
- 如申請專利範圍第1項之處理器,進一步包含目的儲存位置,用以指定用來保存該處置之輸出緩衝區的位置。
- 如申請專利範圍第6項之處理器,進一步包含大小儲存位置,用以指定該輸入緩衝區的大小。
- 如申請專利範圍第1項之處理器,進一步包含資料儲存位置,用以指定用作為該加密之輸入的初始值。
- 如申請專利範圍第3項之處理器,進一步包含資料儲存位置,用以指定用作為該鑑認操作之輸入的資料。
- 如申請專利範圍第1項之處理器,其中,該指令集架構也欠缺用於讀取該處理器金鑰位置的第三指令。
- 一種用於硬體強制單向密碼學的方法,包含:藉由處理器中的指令解碼器來接收該處理器之指令集架構中的第一指令,該第一指令具有包括第一欄位及第二欄位的格式,該第一欄位用於運算碼來指定要被該處理器執行的加密,用於以該處理器金鑰來加密加密金錀並返回一處置,該指令集架構欠缺以該處理器金鑰來解密該處置以返回該加密金鑰之對應於該第一指令的第二指令,該第二欄位用於指定該輸入資料大小;藉由處理器中的執行硬體回應該指令解碼器對於該第一指令之解碼,以該處理器金鑰加密該加密金鑰;以及藉由該處理器返回該處置。
- 如申請專利範圍第12項之方法,進一步包含藉 由該處理器中的執行硬體回應該指令解碼對於該第一指令之解碼,藉由實施鑑認操作而產生鑑認標籤。
- 如申請專利範圍第13項之方法,返回該處置包括返回該處置中的該鑑認標籤。
- 如申請專利範圍第14項之方法,其中,在該處理器返回該處置之後,軟體提供與請求有關的該處置給該處理器用於加密操作。
- 如申請專利範圍第15項之方法,其中:在軟體提供該處置給該處理器之後,該處理器嘗試使用該鑑認標籤來鑑認該處置;以及如果該處置的鑑認成功,則該處理器使用該處理器金鑰解密該處置以再生該加密金鑰。
- 如申請專利範圍第16項之方法,其中,在該軟體提供該處置給該處理器之後,如果該處置的鑑認失敗,則該處理器產生異常或返回一錯誤碼。
- 如申請專利範圍第17項之方法,其中,在該處理器解密該處置之後,該處理器使用再生的加密金鑰來實施該請求的加密操作。
- 如申請專利範圍第18項之方法,其中,在該處理器實施該請求的加密操作之後,該處理器清除該再生的加密金鑰。
- 一種用於硬體強制單向密碼學的系統,包含:系統記憶體,該系統記憶體中儲存加密金鑰;以及處理器,包括: 處理器金鑰位置,用以保存處理器金鑰;指令解碼器,用以解碼該處理器之指令集架構的指令,該指令集架構包括第一指令,該第一指令具有包括第一欄位及第二欄位的格式,該第一欄位用於運算碼指定該處理器要實施的加密,用以以該處理器金鑰來加密該輸入資料並返回一處置,該指令集架構欠缺以該處理器金鑰來解密該處置以返回該輸入資料之對應於該第一指令的第二指令,該第二欄位用以指定該輸入資料大小;以及執行硬體,回應藉由該指令解碼器對於該第一指令之解碼,該執行硬體以該處理器金鑰實施該輸入資料之加密,並返回該處置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/868,579 | 2015-09-29 | ||
US14/868,579 US10142101B2 (en) | 2015-09-29 | 2015-09-29 | Hardware enforced one-way cryptography |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201723920A TW201723920A (zh) | 2017-07-01 |
TWI715619B true TWI715619B (zh) | 2021-01-11 |
Family
ID=58407505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105127290A TWI715619B (zh) | 2015-09-29 | 2016-08-25 | 用於硬體強制單向密碼學的處理器、方法及系統 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10142101B2 (zh) |
CN (1) | CN107924448B (zh) |
DE (1) | DE112016004435T5 (zh) |
TW (1) | TWI715619B (zh) |
WO (1) | WO2017058433A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089500B2 (en) | 2015-09-25 | 2018-10-02 | Intel Corporation | Secure modular exponentiation processors, methods, systems, and instructions |
US10270598B2 (en) | 2016-08-26 | 2019-04-23 | Intel Corporation | Secure elliptic curve cryptography instructions |
US10061932B1 (en) * | 2018-01-04 | 2018-08-28 | WindTalker, LLC | Securing portable data elements between containers in insecure shared memory space |
US10706179B2 (en) * | 2018-01-10 | 2020-07-07 | General Electric Company | Secure provisioning of secrets into MPSoC devices using untrusted third-party systems |
US10452565B2 (en) * | 2018-01-12 | 2019-10-22 | Sunasic Technologies, Inc. | Secure electronic device |
CN110489351B (zh) * | 2018-05-14 | 2021-03-09 | 英韧科技(上海)有限公司 | 芯片指纹管理装置及安全芯片 |
US10785028B2 (en) | 2018-06-29 | 2020-09-22 | Intel Corporation | Protection of keys and sensitive data from attack within microprocessor architecture |
US11917067B2 (en) * | 2019-12-28 | 2024-02-27 | Intel Corporation | Apparatuses, methods, and systems for instructions for usage restrictions cryptographically tied with data |
FR3106909B1 (fr) | 2020-01-31 | 2022-02-18 | St Microelectronics Grenoble 2 | Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique avec protection de clé secrète |
FR3106910B1 (fr) * | 2020-01-31 | 2022-02-18 | St Microelectronics Grenoble 2 | Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique sans transmission de clé secrète |
US11216366B2 (en) | 2020-02-13 | 2022-01-04 | Intel Corporation | Security check systems and methods for memory allocations |
EP4088214A4 (en) * | 2020-02-21 | 2023-08-30 | Hewlett-Packard Development Company, L.P. | COMPUTING DEVICES FOR ENCRYPTION AND DECRYPTION OF DATA |
CN111555859A (zh) * | 2020-03-31 | 2020-08-18 | 杭州熠芯科技有限公司 | Sm4-gcm算法及在网络安全协议中的应用 |
TWI781544B (zh) * | 2020-03-31 | 2022-10-21 | 台灣積體電路製造股份有限公司 | 積體電路裝置以及產生用於積體電路裝置的安全密鑰的方法及系統 |
US11962693B2 (en) | 2020-03-31 | 2024-04-16 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integrated circuit (IC) signatures with random number generator and one-time programmable device |
US11700135B2 (en) * | 2020-12-26 | 2023-07-11 | Intel Corporation | ISA accessible physical unclonable function |
US11570010B2 (en) * | 2020-12-26 | 2023-01-31 | Intel Corporation | ISA accessible physical unclonable function |
US11706039B2 (en) * | 2020-12-26 | 2023-07-18 | Intel Corporation | ISA accessible physical unclonable function |
US11972126B2 (en) | 2021-03-26 | 2024-04-30 | Intel Corporation | Data relocation for inline metadata |
US11954045B2 (en) | 2021-09-24 | 2024-04-09 | Intel Corporation | Object and cacheline granularity cryptographic memory integrity |
US20230102178A1 (en) * | 2021-09-25 | 2023-03-30 | Intel Corporation | Isa accessible physical unclonable function |
CN114143413B (zh) * | 2021-11-26 | 2023-11-03 | 佛山芯珠微电子有限公司 | 一种图像数据puf安全加密系统及加密方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136838B1 (en) * | 1999-03-27 | 2006-11-14 | Microsoft Corporation | Digital license and method for obtaining/providing a digital license |
US20080205651A1 (en) * | 2007-02-27 | 2008-08-28 | Fujitsu Limited | Secure processor system without need for manufacturer and user to know encryption information of each other |
TW200949686A (en) * | 2008-05-24 | 2009-12-01 | Via Tech Inc | Initialization of a microprocessor providing for execution of secure code |
US20100254537A1 (en) * | 2009-04-06 | 2010-10-07 | Broadcom Corporation | Scalable and Secure Key Management For Cryptographic Data Processing |
US20120284532A1 (en) * | 2011-05-02 | 2012-11-08 | Xinyuan Wang | Method and system for recovering cryptographic operations and/or secrets |
US20150019876A1 (en) * | 2009-06-26 | 2015-01-15 | International Business Machines Corporation | Support for secure objects in a computer system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040086114A1 (en) * | 2002-11-06 | 2004-05-06 | Sun Microsystems, Inc. | System and method for implementing DES permutation functions |
US8954752B2 (en) | 2011-02-23 | 2015-02-10 | International Business Machines Corporation | Building and distributing secure object software |
US8904190B2 (en) | 2010-10-20 | 2014-12-02 | Advanced Micro Devices, Inc. | Method and apparatus including architecture for protecting sensitive code and data |
-
2015
- 2015-09-29 US US14/868,579 patent/US10142101B2/en active Active
-
2016
- 2016-08-25 TW TW105127290A patent/TWI715619B/zh active
- 2016-08-29 WO PCT/US2016/049198 patent/WO2017058433A1/en active Application Filing
- 2016-08-29 DE DE112016004435.6T patent/DE112016004435T5/de active Pending
- 2016-08-29 CN CN201680050472.5A patent/CN107924448B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136838B1 (en) * | 1999-03-27 | 2006-11-14 | Microsoft Corporation | Digital license and method for obtaining/providing a digital license |
US20080205651A1 (en) * | 2007-02-27 | 2008-08-28 | Fujitsu Limited | Secure processor system without need for manufacturer and user to know encryption information of each other |
TW200949686A (en) * | 2008-05-24 | 2009-12-01 | Via Tech Inc | Initialization of a microprocessor providing for execution of secure code |
US20100254537A1 (en) * | 2009-04-06 | 2010-10-07 | Broadcom Corporation | Scalable and Secure Key Management For Cryptographic Data Processing |
US20150019876A1 (en) * | 2009-06-26 | 2015-01-15 | International Business Machines Corporation | Support for secure objects in a computer system |
US20120284532A1 (en) * | 2011-05-02 | 2012-11-08 | Xinyuan Wang | Method and system for recovering cryptographic operations and/or secrets |
Also Published As
Publication number | Publication date |
---|---|
TW201723920A (zh) | 2017-07-01 |
US20170093567A1 (en) | 2017-03-30 |
DE112016004435T5 (de) | 2018-08-30 |
CN107924448B (zh) | 2022-02-08 |
CN107924448A (zh) | 2018-04-17 |
US10142101B2 (en) | 2018-11-27 |
WO2017058433A1 (en) | 2017-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI715619B (zh) | 用於硬體強制單向密碼學的處理器、方法及系統 | |
JP6998435B2 (ja) | メモリ動作の暗号化 | |
US11838418B2 (en) | Protection of keys and sensitive data from attack within microprocessor architecture | |
US11664994B2 (en) | Secure unlock systems for locked devices | |
US20220335117A1 (en) | Flexible container attestation | |
CN107851163B (zh) | 用于i/o数据的完整性、防重放和真实性保证的技术 | |
US8572410B1 (en) | Virtualized protected storage | |
EP3326105B1 (en) | Technologies for secure programming of a cryptographic engine for secure i/o | |
US10097349B2 (en) | Systems and methods for protecting symmetric encryption keys | |
US20200257827A1 (en) | Memory write for ownership access in a core | |
US8498418B2 (en) | Conversion of cryptographic key protection | |
US8745411B2 (en) | Protecting external volatile memories using low latency encryption/decryption | |
Mandt et al. | Demystifying the secure enclave processor | |
JP2016517241A (ja) | ストレージデバイスによって支援されるインライン暗号化および暗号化解除 | |
TWI514186B (zh) | 用以設定保護平台免受惡意軟體之政策的使用者可控制平台層級觸發技術 | |
US20220197825A1 (en) | System, method and apparatus for total storage encryption | |
EP1855476A2 (en) | System and method for trusted data processing | |
US9729309B2 (en) | Securing data transmission between processor packages | |
JP7406013B2 (ja) | 構成設定の安全な署名 | |
JP7443433B2 (ja) | 不揮発性メモリデバイス内部からの保護された通信 | |
TW201723804A (zh) | 安全模指數處理器、方法、系統、及指令 | |
TWI526869B (zh) | 用以致能耦接至客戶端之儲存系統之加值儲存服務的方法、裝置、系統及非暫時性機器可讀媒體 | |
CN113449349A (zh) | 平台安全机制 | |
EP4202748A1 (en) | Data oblivious cryptographic computing |