TWI833533B - 避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法 - Google Patents
避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法 Download PDFInfo
- Publication number
- TWI833533B TWI833533B TW111150795A TW111150795A TWI833533B TW I833533 B TWI833533 B TW I833533B TW 111150795 A TW111150795 A TW 111150795A TW 111150795 A TW111150795 A TW 111150795A TW I833533 B TWI833533 B TW I833533B
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- mentioned
- management device
- control circuit
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 39
- 230000004913 activation Effects 0.000 claims abstract description 49
- 230000003068 static effect Effects 0.000 claims abstract description 18
- 238000012217 deletion Methods 0.000 claims description 15
- 230000037430 deletion Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
一種避免使用不完整金鑰的金鑰管理裝置,包括:一靜態隨機存取記憶體;一暫存器;以及一控制電路,在上述靜態隨機存取記憶體或上述暫存器設置一金鑰查找表,並管理一金鑰資料庫,其中上述金鑰資料庫係儲存一或多把金鑰;其中上述控制電路執行:接收由一處理器所傳送之一金鑰創建指令,其中上述金鑰創建指令包括一新金鑰及相應的元資料;當上述新金鑰已被儲存至上述金鑰資料庫,並且上述新金鑰相應的元資料已在上述金鑰查找表中被新增後,在上述金鑰查找表中設定上述新金鑰相應的激活位元為開啟狀態;以及回報上述新金鑰相應的一金鑰編號。
Description
本揭露係有關於一種金鑰管理裝置、處理器晶片及方法,特別是有關於一種避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法。
在現今的電腦系統或控制系統中,往往會需要對資料進行資料加解密處理。然而,資料解密的過程往往需要金鑰或私鑰,當金鑰或私鑰的數量變多時,金鑰管理及保存亦會對使用者造成相當大的困擾。
此外,在金鑰建立過程中,如果遇到系統重置(System reset)或是其他不明原因,進而導致金鑰建立過程被中斷。這種狀況將會使得金鑰未能完整寫入。等到系統需要使用此金鑰時,由於系統可能操作著不完整建立的金鑰而造成加解密運算失敗,將會發生不如預期的結果而面臨安全上的風險與問題。
因此,需要一種避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法,以確保所有金鑰建立過程被中斷的金鑰無法被使用。
以下揭露的內容僅為示例性的,且不意指以任何方式加以限制。除所述說明方面、實施方式和特徵之外,透過參照附圖和下述具體實施方式,其他方面、實施方式和特徵也將顯而易見。即,以下揭露的內容被提供以介紹概念、重點、益處及本文所描述新穎且非顯而易見的技術優勢。所選擇,非所有的,實施例將進一步詳細描述如下。因此,以下揭露的內容並不意旨在所要求保護主題的必要特徵,也不意旨在決定所要求保護主題的範圍中使用。
因此,本揭露之主要目的即在於提供一種避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法。
本揭露提出一種避免使用不完整金鑰的金鑰管理裝置,包括:一靜態隨機存取記憶體;一暫存器;以及一控制電路,用以在上述靜態隨機存取記憶體或上述暫存器設置一金鑰查找表,並管理一金鑰資料庫,其中上述金鑰資料庫係儲存一或多把金鑰;其中,上述控制電路執行以下步驟:接收由一處理器所傳送之一金鑰創建指令,其中上述金鑰創建指令包括一新金鑰及相應的元資料;當上述新金鑰已被儲存至上述金鑰資料庫,並且上述新金鑰相應的元資料已在上述金鑰查找表中被新增後,在上述金鑰查找表中設定上述新金鑰相應的激活位元為開啟狀態;以及回報上述新金鑰相應的一金鑰編號至上述處理器。
在一些實施例中,上述新金鑰相應的上述激活位元預設為關閉狀態。
在一些實施例中,上述控制電路更執行:接收一金鑰讀取指令,其中上述金鑰讀取指令係用以請求讀取一第一金鑰;當在上述金鑰查找表找到上述第一金鑰相應的一第一金鑰編號後,判斷上述第一金鑰相應的一第一激活位元是否為開啟狀態;當上述第一激活位元為開啟狀態時,從上述金鑰資料庫讀取上述第一金鑰,並傳送上述第一金鑰至上述處理器;以及當上述第一激活位元為關閉狀態時,回報一讀取失敗資訊至上述處理器。
在一些實施例中,上述控制電路更執行:接收來自上述處理器之一金鑰刪除指令,其中上述金鑰刪除指令係用以刪除一第二金鑰;依據來自上述金鑰刪除指令中之上述第二金鑰相應的一第二金鑰編號從上述金鑰資料庫中刪除上述第二金鑰編號的上述第二金鑰;以及設定在上述金鑰查找表中之上述第二金鑰相應的一第二激活位元為關閉狀態。
在一些實施例中,當上述新金鑰相應的元資料或上述金鑰編號無法在上述金鑰查找表中被新增,或是上述新金鑰無法被儲存至上述金鑰資料庫時,產生一中斷資訊,其中上述中斷資訊係記錄上述新金鑰的儲存資訊。
本揭露提出一種處理器晶片,包括:一處理器;一次性可程式化(One-time Programmable (OTP) Memory)記憶體;一快閃記憶體;以及一金鑰管理裝置,電性連接至上述處理器、上述OTP記憶體及上述快閃記憶體,上述金鑰管理裝置包括:一靜態隨機存取記憶體;一暫存器;以及一控制電路,用以在上述靜態隨機存取記憶體或上述暫存器設置一金鑰查找表,並管理一金鑰資料庫,其中上述金鑰資料庫係儲存一或多把金鑰;其中,上述控制電路接收由一處理器所傳送之一金鑰創建指令,其中上述金鑰創建指令包括一新金鑰及相應的元資料;其中,當上述新金鑰已被儲存至上述金鑰資料庫,並且上述新金鑰相應的元資料已在上述金鑰查找表中被新增後,上述控制電路在上述金鑰查找表中設定上述新金鑰相應的激活位元為開啟狀態;以及其中,上述控制電路回報上述新金鑰相應的一金鑰編號至上述處理器。
本揭露提出一種避免使用不完整金鑰的方法,用於一金鑰管理裝置中,包括:由一控制電路在一靜態隨機存取記憶體或一暫存器設置一金鑰查找表,並管理一金鑰資料庫,其中上述金鑰資料庫係儲存一或多把金鑰;由上述控制電路接收由一處理器所傳送之一金鑰創建指令,其中上述金鑰創建指令包括一新金鑰及相應的元資料;當上述新金鑰已被儲存至上述金鑰資料庫,並且上述新金鑰相應的元資料已在上述金鑰查找表中被新增後,由上述控制電路在上述金鑰查找表中設定上述新金鑰相應的激活位元為開啟狀態;以及由上述控制電路回報上述新金鑰相應的一金鑰編號至上述處理器。
在下文中將參考附圖對本揭露的各方面進行更充分的描述。然而,本揭露可以具體化成許多不同形式且不應解釋為侷限於貫穿本揭露所呈現的任何特定結構或功能。相反地,提供這些方面將使得本揭露周全且完整,並且本揭露將給本領域技術人員充分地傳達本揭露的範圍。基於本文所教導的內容,本領域的技術人員應意識到,無論是單獨還是結合本揭露的任何其它方面實現本文所揭露的任何方面,本揭露的範圍旨在涵蓋本文中所揭露的任何方面。例如,可以使用本文所提出任意數量的裝置或者執行方法來實現。另外,除了本文所提出本揭露的多個方面之外,本揭露的範圍更旨在涵蓋使用其它結構、功能或結構和功能來實現的裝置或方法。應可理解,其可透過申請專利範圍的一或多個元件具體化本文所揭露的任何方面。
詞語「示例性」在本文中用於表示「用作示例、實例或說明」。本揭露的任何方面或本文描述為「示例性」的設計不一定被解釋為優選於或優於本揭露或設計的其他方面。此外,相同的數字在所有若干圖示中指示相同的元件,且除非在描述中另有指定,冠詞「一」和「上述」包含複數的參考。
可以理解,當元件被稱為被「連接」或「耦接」至另一元件時,該元件可被直接地連接到或耦接至另一元件或者可存在中間元件。相反地,當該元件被稱為被「直接連接」或「直接耦接」至到另一元件時,則不存在中間元件。用於描述元件之間的關係的其他詞語應以類似方式被解釋(例如,「在…之間」與「直接在…之間」、「相鄰」與「直接相鄰」等方式)。
第1圖係顯示本揭露一實施例中之控制系統10的方塊圖。
如第1圖所示,控制系統10包括一處理器晶片110、一動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)130、一儲存裝置140、一傳輸介面150、至少一週邊裝置160。處理器晶片110及DRAM 130係透過匯流排21而互相電性連接。在一些實施例中,匯流排21例如為先進高效能匯流排(Advanced High-Performance Bus,AHB)。傳輸介面150及週邊裝置160例如可電性連接至匯流排22,且匯流排21及22之間係透過一橋接器(bridge)23進行溝通,其中匯流排22例如可為一先進系統匯流排(Advanced System Bus,ASB)或一先進週邊匯流排(Advanced Peripheral Bus,APB),但本揭露並不侷限於此。
處理器晶片110包括一中央處理器(或微處理器)111、揮發性記憶體112、快閃記憶體113及一次性可程式化記憶體(One-time Programmable (OTP) Memory)114、一圖形處理單元120、一金鑰管理裝置170及一加解密裝置180。揮發性記憶體112例如可為一靜態隨機存取記憶體(Static Random Access Memory,SRAM)。快閃記憶體113例如可為一NAND快閃記憶體。一次性可程式化記憶體114,例如可稱為可程式化唯讀記憶體(Programmable Read-only Memory,PROM),其可利用具有鎖定位元(Lock Bit)暫存器的非揮發性記憶體,例如:快閃記憶體、可抹除可程式化唯讀記憶體(Erasable Programmable Read-only Memory,EPROM)、或電子可抹除可程式化唯讀記憶體(Electrically Erasable Programmable Read-only Memory,EEPROM)所實現。
舉例來說,當中央處理器111編程或寫入資料至一次性可程式化記憶體114後會修改一次性可程式化記憶體114之鎖定位元暫存器。例如將鎖定位元由1(表示未鎖定狀態)修改至0(表示鎖定狀態)以表示一次性可程式化記憶體114所儲存的資料無法再修改,且鎖定位元無法再從0修改為1。
圖形處理單元120例如可為單獨的圖形處理器或可整合至中央處理器111中。記憶體單元130為一揮發性記憶體,例如是動態隨機存取記憶體(DRAM),但本揭露並不侷限於此。儲存裝置140為一非揮發性記憶體(Non-volatile Memory)。例如可為一硬碟機(Hard Disk Drive)、一固態硬碟(Solid-state Disk)、一快閃記憶體(Flash Memory)、或一唯讀記憶體(Read-only Memory),但本發明並不限於此。在一些實施例中,儲存裝置140例如可電性連接至匯流排22。
儲存裝置140可儲存一或多個應用程式141及一作業系統142(例如可為Windows、Linux、MacOS、或是嵌入式作業系統(Embedded OS)等等),且處理單元110係將作業系統142及應用程式141讀取至記憶體單元130並執行。
傳輸介面150可包括一或多個資料傳輸介面,例如一通用序列匯流排(Universal Serial Bus,USB)介面、USB Type-C介面、雷靂(Thunderbolt)介面、一般用途輸入輸出(General-purpose Input/Output,GPIO)介面、通用非同步收發傳輸器(Universal Asynchronous Receiver/Transmitter,UART)介面、序列周邊介面(Serial Peripheral Interface,SPI)介面、積體電路匯流排(inter-integrated circuit,I2C)介面、或其組合,但本揭露並不侷限於此。週邊裝置160例如包括:鍵盤、滑鼠、觸控板等輸入裝置,但本揭露並不侷限於此。
金鑰管理裝置170例如可為一智慧金鑰儲存裝置(Intelligent Key Storage Device)的硬體電路,其可由應用導向積體電路(Application-specific Integrated Circuit,ASIC)或是現在可程式化邏輯閘陣列(Field Programmable Gate Array,FPGA)所實現。金鑰管理裝置170例如可依據處理器晶片110之控制指令以對不同的金鑰進行相關操作,例如增加金鑰、讀取金鑰、抹除(或廢止)其中一把金鑰、抹除(或廢止)所有金鑰等等,但本揭露並不侷限於此。
在一實施例中,金鑰管理裝置170包括一控制電路171、一匯流排封套(bus wrapper)172、一暫存器174及一靜態隨機存取記憶體(SRAM)175。控制電路171係用以控制金鑰之各種操作,例如創建金鑰、讀取金鑰、刪除單一金鑰、刪除全部金鑰等等。匯流排封套172例如可提供金鑰管理裝置170之內部元件的信號與匯流排21之信號的轉換介面。暫存器174係用以記錄各金鑰之金鑰編號及相應的其他元資料的欄位,其中暫存器174所記錄的金鑰資訊亦可稱為一金鑰查找表(Key Lookup Table)。在另一實施例中,控制電路171可將金鑰查找表設置於靜態隨機存取記憶體175。靜態隨機存取記憶體175例如可為金鑰資料庫的其中一個儲存空間,其係用以儲存一或多把金鑰。在一些實施例中,控制電路171係將上述金鑰查找表備份於靜態隨機存取記憶體175或快閃記憶體(例如可為處理器晶片110中的快閃記憶體113或儲存裝置140的快閃記憶體)中。金鑰管理裝置170之詳細操作將於後述實施例中進行說明。
加解密裝置180例如為支援多種加解密演算法的硬體電路,且各種加解密演算法在加解密裝置180中均有相應的硬體電路,例如進階加密標準(Advanced Encryption Standard,AES)加解密電路181、金鑰雜湊訊息認證碼(Keyed-hash Message Authentication Code,HMAC)加解密電路182、橢圓曲線密碼學(Elliptic Curve Cryptography,ECC)加解密電路183、RSA加解密電路184、隨機數產生(Random Number Generator)電路185、或其組合,且可分別針對相應的加解密演算法進行硬體加速。隨機數產生電路185例如可為偽隨機數(Pseudorandom Number)產生電路或真隨機數產生電路。在一些實施例中,金鑰管理裝置170及加解密裝置180可為獨立的硬體電路,且可設置於處理器晶片110之外,並透過匯流排21以電性連接至處理器晶片110。
舉例來說,在一實施例中,當控制系統10進行運作時,不同的應用程式141可能會使用不同的加解密演算法以對欲加密的內容(例如,使用者密碼)進行加密。例如,可使用在加解密裝置180中所設置的各種加解密電路181~185。不同的加解密演算法所使用的金鑰尺寸亦不同,例如可從64位元至4096位元。當加解密裝置180對欲加密的內容加密完成後,會將相應的金鑰(密鑰)傳送至金鑰管理裝置170以進行金鑰管理。
金鑰管理裝置170之金鑰管理可分為幾個不同的操作,例如寫入(增加)金鑰、讀取金鑰、抹除(刪除)單一金鑰、抹除(刪除)所有金鑰。若為寫入金鑰之操作,金鑰管理裝置170例如可接收來自處理器晶片110(或加解密裝置180)的金鑰及相應的元資料(Metadata),其中上述元資料之屬性(Attribute)欄位例如可包括:金鑰尺寸(Key Size)、擁有者(Owner)、安全等級、特權等級、讀取(Readable)屬性、廢除(Revoke)屬性、開機狀態(Booting State)等等,但本揭露並不侷限於此。以下將一一說明元資料之各種欄位的內容。
「金鑰尺寸」例如可用金鑰所使用的位元數量表示,例如80位元、128位元、256位元等等。依據所使用的加解密演算法的不同,加解密裝置180例如可支援64位元至4096位元之金鑰尺寸。「擁有者」例如表示此金鑰的擁有者,非此金鑰的擁有人無法讀取此金鑰。金鑰的擁有者可依需求而設定,例如可包括:CPU(即,處理器晶片110)、AES、HMAC、ECC、RSA等等。舉例來說,若金鑰之元資料中的金鑰擁有者之欄位為AES,表示在加解密裝置180中的AES加解密電路才能讀取此金鑰。
「安全等級」表示金鑰的安全等級,例如可分為安全(Secure)等級及非安全(Non-secure)等級。具有安全等級的金鑰僅能給同樣具有安全等級的擁有者使用,具有非安全等級的金鑰則無需確認擁有者的安全等級。需注意的是,金鑰之元資料中的安全等級屬性是否發揮作用需要搭配處理器晶片110之設計。舉例來說,處理器晶片110可分為安全處理器或非安全處理器,且當處理器晶片110為安全處理器時,金鑰之元資料中的安全等級之欄位設定才能發揮作用。當處理器晶片110為非安全處理器時,則金鑰之元資料中的安全等級之欄位設定並無法發揮作用。
「特權等級」表示金鑰的特權等級,例如可分為特權(Privilege)等級及非特權(Non-privilege)等級。具有特權等級的金鑰僅能給同樣具有特權等級的擁有者使用,具有非特權等級的金鑰則無需確認擁有者的特權等級。舉例來說,不同的使用者可能會具有不同的權限,管理者或超級使用者(Super User)之特權等級最高,例如可對被設定有特權等級的金鑰進行存取,但未具有特權等級的一般使用者則無法對被設定有特權等級的金鑰進行存取。
「讀取屬性」表示此金鑰是否能給處理器晶片110讀取。舉例來說,若此金鑰的擁有者欄位為CPU,表示此金鑰必定能給處理器晶片110讀取。若此金鑰的擁有者欄位為其他加解密電路,則金鑰管理裝置170會依據金鑰的讀取屬性之欄位以決定處理器晶片110是否能讀取此金鑰。
「廢除屬性」,此欄位係記錄於金鑰管理裝置170中之內部暫存器,且無法在創建金鑰時一併設定相應的廢除屬性。舉例來說,在一般使用情況下,金鑰管理裝置170會將金鑰的廢除屬性之欄位的數值係設定為0,表示此金鑰正常使用。當使用者執行金鑰刪除操作時,金鑰管理裝置170可能會針對儲存於快閃記憶體或一次性可程式化記憶體中的金鑰進行刪除。然而,上述快閃記憶體或一次性可程式化記憶體中可能因為鎖定位元被設定而無法真正刪除所儲存的金鑰。因此,金鑰管理裝置170在執行金鑰刪除操作時,會設定其內部暫存器中相應於欲刪除之金鑰的廢除屬性。金鑰在金鑰管理裝置170中相應的廢除屬性一旦被設定後就無法再修改,意即無法將相應的金鑰回復為可使用的狀態。此時,無論其他屬性的條件成立與否,金鑰管理裝置170均無法讀取或使用已被設定廢除屬性的金鑰,意即金鑰的廢除屬性係優先於其他屬性。
「開機狀態」屬性係表示金鑰能被使用的開機狀態,例如可分為開機狀態1(BL1)及開機狀態2(BL2)。舉例來說,當控制系統10之開機狀態處於開機狀態1(BL1)時,金鑰管理裝置170可使用具有BL1及BL2之開機狀態屬性的金鑰。當控制系統10之開機狀態處於開機狀態2(BL2)時,金鑰管理裝置170則僅能使用具有BL2之開機狀態屬性的金鑰。
第2A~2B圖為依據本發明一實施例中避免使用不完整金鑰之金鑰創建操作的示意圖。
在一實施例中,當使用者欲在金鑰管理裝置170創建新的金鑰時,使用者可先填入欲創建之金鑰的元資料之各欄位的內容,例如金鑰尺寸、擁有者、安全等級、特權等級、讀取屬性、廢除屬性、開機狀態等等,並接著填入金鑰的內容。當填入金鑰所需的上述內容後,使用者即可啟動金鑰儲存程序(例如可按下一軟體按鈕),且金鑰管理裝置170會先依據金鑰尺寸及內部儲存空間之剩餘空間以決定是否可儲存目前的金鑰。若金鑰管理裝置170中的內部儲存空間小於金鑰尺寸,金鑰管理裝置170則會回報一讀取失敗信息至處理器111以通知使用者。若金鑰管理裝置170中的內部儲存空間大於或等於金鑰尺寸,金鑰管理裝置170則開始創建金鑰,且當金鑰被創建成功並儲存後,金鑰管理裝置170將設定金鑰相應的激活位元為開啟狀態,例如,將激活位元由0設定為1(表示開啟狀態)。接著,金鑰管理裝置170會回報一完成狀態以通知使用者所創建的金鑰之金鑰編號(Key number),如第2A圖所示。在一實施中,在金鑰被創建並儲存之前,金鑰相應的激活位元係預設為關閉狀態,例如,將激活位元預設為0(表示關閉狀態)。
在一實施例中,金鑰管理裝置170的金鑰資料庫可分為幾個儲存空間,例如快閃記憶體、OTP記憶體及SRAM 175,其中上述快閃記憶體可為處理器晶片110中的快閃記憶體113或是儲存裝置140中的快閃記憶體,OTP記憶體可為處理器晶片110中的OTP記憶體114或是電性連接至匯流排21或22的OTP記憶體。本發明技術領域中具有通常知識者當可了解可視實際的設計需求而使用合適位置的快閃記憶體及OTP記憶體,以與SRAM 175一共組成金鑰資料庫,且本揭露並不以此為限。
承上述實施例,當遇到系統重置(System reset)或是其他不明原因,進而導致金鑰建立過程被中斷時,金鑰管理裝置170會產生中斷資訊紀錄新金鑰的儲存資訊。換言之,當欲創建的金鑰相應的元資料或相應的金鑰編號無法在金鑰查找表中被新增,或是欲創建的金鑰無法被儲存至金鑰資料庫時,金鑰管理裝置170可產生一中斷資訊,其中中斷資訊係記錄欲創建的金鑰的儲存資訊。例如,使用者所填入欲創建之金鑰的元資料之各欄位的內容,以及此欲創建的金鑰係被儲存至哪個階段。舉另一例子說明,在已新增欲創建的金鑰相應的元資料至金鑰查找表後發生中斷時,金鑰管理裝置170將記錄使用者所填入欲創建之金鑰的元資料之各欄位的內容,以及此欲創建的金鑰相應的元資料已被儲存至金鑰查找表中。
而使用者可自行透過金鑰管理裝置170觀看上述紀錄,以得知哪些欲創建的金鑰未被建立成功。當使用者根據上述紀錄發現有金鑰未被建立成功時,可重新啟動金鑰儲存程序,以重新儲存未被建立成功之金鑰。在一實施例中,當金鑰管理裝置170前次係將未被建立成功之金鑰新增至SRAM 175中時,在重新啟動金鑰儲存程序的過程中,金鑰管理裝置170可將此金鑰重新新增至與前次未被建立成功之金鑰在SRAM 175的同一位置中。在另一實施例中,當金鑰管理裝置170前次係將未被建立成功之金鑰新增至快閃記憶體中時,在重新啟動金鑰儲存程序的過程中,金鑰管理裝置170係將此金鑰重新新增至與前次未被建立成功之金鑰在快閃記憶體不同的位置中。
如第2B圖所示,若在金鑰管理裝置170原本已創建了兩把金鑰,例如金鑰00及金鑰01,且金鑰00及金鑰01係儲存於金鑰管理裝置170的金鑰資料庫210中,例如分別儲存於OTP記憶體及快閃記憶體。在金鑰管理裝置170之暫存器174中係記錄有金鑰00及金鑰01的金鑰編號、相應的元資料及相應的激活位元。為了便於說明,元資訊係以金鑰尺寸及擁有者為例。需注意的是,金鑰資料庫210係為統稱,其包含複數個儲存空間用以儲存金鑰,例如金鑰資料庫210可包括OTP記憶體、快閃記憶體及SRAM 175,其中上述快閃記憶體可為處理器晶片110中的快閃記憶體113或是儲存裝置140中的快閃記憶體,OTP記憶體可為處理器晶片110中的OTP記憶體114或是電性連接至匯流排21或22的OTP記憶體。
當金鑰管理裝置170由處理器晶片110接收到一金鑰創建指令及相應的金鑰及元資訊(例如擁有者為AES,且金鑰尺寸為512位元)後,金鑰管理裝置170例如可將該金鑰設定為金鑰02,並且將金鑰02儲存於金鑰資料庫中的SRAM 175。接著,金鑰管理裝置170可更新在暫存器174中的金鑰查找表關於金鑰02的複數個欄位以及儲存位置。當上述更新動作完成後,金鑰管理裝置170在金鑰查找表中設定金鑰02相應的激活位元為開啟狀態,例如,將激活位元由0設定為1(表示開啟狀態)。當上述激活位元設定完成後,金鑰管理裝置170可回報一金鑰創建完成之資訊以及金鑰編號(意即金鑰編號02)至處理器晶片110。對於使用者來說,其僅能得知所儲存的金鑰相應的金鑰編號,但並無法得知所儲存的金鑰之儲存位置。若需讀取相應的金鑰,則使用者僅需經由處理器晶片110或加解密電路181~185傳送欲取得的金鑰之金鑰編號至金鑰管理裝置170,且金鑰管理裝置170在驗證取讀取的金鑰之資訊通過及判斷欲取得的金鑰相應的激活位元為開啟狀態後,即可將所讀取的金鑰回報至處理器晶片110或加解密電路181~185。
第2C~2D圖為依據本發明一實施例中避免使用不完整金鑰之讀取金鑰操作的示意圖。
在一實施例中,當處理器晶片110或是加解密裝置180中的加解密電路181~185的其中一者欲讀取由金鑰管理裝置170所保存的其中一把金鑰時,金鑰管理裝置170係從加解密裝置180或是處理器晶片110接收欲讀取之金鑰的一金鑰編號。當金鑰管理裝置170從加解密裝置180或是處理器晶片110接收金鑰編號後,金鑰管理裝置170除了從其金鑰資料庫找尋相應的金鑰之外,還會判斷欲讀取金鑰相應的激活位元是否為開啟狀態,例如,判斷激活位元是否為1。
舉例來說,若金鑰的激活位元並未被設定開啟(即,激活位元為關閉狀態或激活位元為0),金鑰管理裝置170會判斷欲讀取金鑰並未被完整新增至金鑰資料庫,並回報讀取失敗信息至欲讀取此金鑰的元件。若金鑰的激活位元已被設定為開啟狀態,金鑰管理裝置170將進行後續讀取金鑰之步驟。例如,金鑰管理裝置170依據金鑰的元資料以進一步判斷欲讀取金鑰之元件或使用者是否符合金鑰之元資料所記錄的權限或特權、並確認是否有設定廢除屬性以及確認當前控制系統10的開機狀態是否符合金鑰的元資料之開機狀態屬性。
舉例來說,請參考第2D圖,當處理器晶片110欲讀取金鑰編號00的金鑰時,處理器晶片110係傳送欲讀取之金鑰的金鑰編號(即金鑰編號00)至金鑰管理裝置170。金鑰管理裝置170先查找在暫存器174中的金鑰查找表中關於金鑰編號00的相應的激活位元,並確認金鑰編號00相應的激活位元是否為開啟狀態。當金鑰管理裝置170判斷金鑰編號00相應的激活位元為開啟狀態時,金鑰管理裝置170再繼續查找在暫存器174中的金鑰查找表中關於金鑰編號00的相關元資訊,並確認處理器晶片110是否為金鑰編號00的擁有者。當金鑰管理裝置170判斷處理器晶片110確實為金鑰編號00的擁有者時,金鑰管理裝置170即會回報讀取完成之資訊及金鑰編號00之金鑰的內容至處理器晶片110。
第2E~2F圖為依據本發明一實施例中避免使用不完整金鑰之刪除金鑰操作的示意圖。
在一實施例中,當使用者認為在金鑰管理裝置170所儲存的特定金鑰已經不再使用時,使用者可經由處理器晶片110發出抹除(或刪除)單一金鑰操作的指令及欲抹除的金鑰編號至金鑰管理裝置170。當金鑰管理裝置170判斷上述抺除金鑰指令為處理器晶片110所發出之合格指令後,金鑰管理裝置170即可將欲抹除的金鑰從金鑰資料庫中相應的儲存空間刪除,並將已刪除金鑰對應的激活位元設定為關閉狀態,並回報刪除成功之資訊至處理器晶片110,如第2E圖所示。
詳細而言,假定金鑰管理裝置170已儲存了金鑰00、金鑰01及金鑰02,當金鑰管理裝置從處理器晶片110接收到抹除(或刪除)單一金鑰操作的指令及欲抹除的金鑰編號01後,金鑰管理裝置170會依據在暫存器174之金鑰查找表以得到欲抹除之金鑰的金鑰編號01、金鑰尺寸及其儲存位置,並據以計算出該金鑰所所佔用的儲存空間及範圍。金鑰管理裝置170之控制電路171並刪除上述儲存空間中之所有資料,更新在暫存器174中的金鑰查找表並重新計算在金鑰資料庫中之各個儲存空間的剩餘空間,並將所刪除金鑰編號01相應的激活位元設定為關閉狀態(例如,激活位元由1設定為0),如第2F圖所示。
須注意的是,金鑰管理裝置170能儲存的金鑰數量最大值係對應激活位元的數量。儘管金鑰數量在第2A~2F圖中係以三個金鑰作為例子,但本揭露不應被限制於此。
第3圖為依據本發明一實施例中金鑰管理裝置避免使用不完整金鑰的創建新金鑰流程300的示意圖。
在步驟S302中,金鑰管理裝置170進入準備狀態。舉例來說,金鑰管理裝置170在開機後或重置後會先進行初始化,當初始化完成後即會進入準備狀態(Ready Status)以接收不同的金鑰操作之指令。
在步驟S304,金鑰管理裝置170接收一金鑰創建指令,其中上述金鑰創建指令例如是來自中央處理器111。
在步驟S306中,金鑰管理裝置170係檢查金鑰資料庫的剩餘空間。舉例來說,金鑰管理裝置170可檢查金鑰資料庫中之不同儲存空間的剩餘空間,例如SRAM 175、快閃記憶體113及OTP記憶體114之剩餘空間。
在步驟S308中,金鑰管理裝置170判斷剩餘空間是否大於或等於金鑰尺寸。若是,執行步驟S310。若否,執行步驟S318。在另一實施例中,在步驟S308中,金鑰管理裝置170判斷剩餘空間是否大於或等於金鑰尺寸並判斷金鑰資料庫是否已達到金鑰儲存數量之上限。若剩餘空間大於或等於金鑰尺寸且金鑰資料庫未達到金鑰儲存數量之上限,則執行步驟S310。若剩餘空間小於金鑰尺寸或金鑰資料庫已達到金鑰儲存數量之上限時,則執行步驟S320。
在步驟S310中,金鑰管理裝置170寫入金鑰之元資料至金鑰查找表。金鑰管理裝置170寫入金鑰查找表中之新金鑰的元資料的屬性包括:金鑰尺寸、擁有者、安全等級、特權等級、讀取屬性、開機狀態及儲存位置。
在步驟S312中,金鑰管理裝置170在金鑰查找表增加新金鑰的金鑰編號。舉例來說,金鑰管理裝置170之控制電路171可從編號0遞增搜尋尚未使用的金鑰編號,且可使用尚未使用的最小金鑰編號以做為新金鑰的金鑰編號。
在步驟S314中,金鑰管理裝置170將新金鑰寫入金鑰資料庫。舉例來說,金鑰管理裝置170可依據新金鑰的元資料中已被設定的安全等級或特權等級而將新金鑰儲存於金鑰資料庫中的OTP記憶體。若新金鑰的元資料中的安全等級或特權等級未被設定,金鑰管理裝置170可將新金鑰儲存於金鑰資料庫中的SRAM 175或是快閃記憶體113。
在步驟S316中,金鑰管理裝置170在金鑰查找表中設定新金鑰相應的激活位元為開啟狀態,表示新金鑰已被完整儲存至金鑰資料庫。在一實施例中,新金鑰相應的激活位元為關閉狀態可用數值0表示:而新金鑰相應的激活位元為開啟狀態可用數值1表示。
在步驟S318中,金鑰管理裝置170回報金鑰編號及寫入完成信息至中央處理器111。
在步驟S320中,金鑰管理裝置170係回報一寫入失敗信息至中央處理器111。
在步驟S322中,金鑰創造指令完成,並回到步驟S302。
第4圖為依據本發明一實施例中金鑰管理裝置避免使用不完整金鑰的讀取新金鑰流程400的示意圖。
在步驟S402中,金鑰管理裝置170進入準備狀態。舉例來說,金鑰管理裝置170在開機後或重置後會先進行初始化,當初始化完成後即會進入準備狀態(Ready Status)以接收不同的金鑰操作之指令。
在步驟S404中,金鑰管理裝置170接收一金鑰讀取指令,其中上述金鑰讀取指令例如是來自處理器晶片110或是加解密裝置180中的加解密電路181~185的其中一者,並用以係請求讀取一第一金鑰。
在步驟S406中,金鑰管理裝置170判斷是否能在金鑰查找表中找到金鑰讀取指令中的相應第一金鑰的一第一金鑰編號。若是,執行步驟S408。若否,執行步驟S418。
在步驟S408中,金鑰管理裝置170判斷上述第一金鑰相應的一第一激活位元是否為開啟狀態。若是,執行步驟S410。若否,執行步驟S418。
在步驟S410中,金鑰管理裝置170依據第一金鑰的元資料以進一步判斷欲讀取第一金鑰之元件或使用者是否符合第一金鑰之元資料所記錄的權限或特權。若是,執行步驟S412。若否,執行步驟S418。
在步驟S412中,金鑰管理裝置170從金鑰資料庫中讀取第一金鑰。
在步驟S414中,金鑰管理裝置170傳送上述第一金鑰至欲讀取此金鑰的元件。
在步驟S416中,金鑰管理裝置170回報一讀取完成信息至中央處理器111。
在步驟S418中,金鑰管理裝置170係回報一寫入失敗信息至中央處理器111。
在步驟S420中,金鑰讀取指令完成,並回到步驟S402。
在一實施例中,當金鑰管理裝置170在步驟S412中從金鑰資料庫中讀取第一金鑰發生中斷時,金鑰管理裝置170將會記錄是第一金鑰相應的第一金鑰編號,已使使用者可查看金鑰管理裝置170在讀取哪個金鑰的過程中發生中斷。
綜上所述,本揭露係提供一種避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法,其新增一組激活位元。當金鑰被創建並儲存成功時為開啟狀態,當金鑰被刪除時而回歸關閉狀態。藉此,金鑰管理裝置可以透過讀取激活位元狀態可以決定金鑰是否完整且已被啟用。因此,即使在金鑰建立的過程中發生中斷,只要在創建尚未成功前,能夠確保該金鑰的激活位元都處於關閉的狀態,更可避免使用到不完整金鑰的風險,並增加金鑰管理的安全性。
在此所揭露程序之任何具體順序或分層之步驟純為一舉例之方式。基於設計上之偏好,必須了解到程序上之任何具體順序或分層之步驟可在此文件所揭露的範圍內被重新安排。伴隨之方法權利要求以一示例順序呈現出各種步驟之元件,也因此不應被此所展示之特定順序或階層所限制。
申請專利範圍中用以修飾元件之「第一」、「第二」、「第三」等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本揭露已以實施範例揭露如上,然其並非用以限定本案,任何熟悉此項技藝者,在不脫離本揭露之精神和範圍內,當可做些許更動與潤飾,因此本案之保護範圍當視後附之申請專利範圍所界定者為準。
10:控制系統
21:匯流排
22:匯流排
23:橋接器
110:處理器晶片
111:中央處理器
112:揮發性記憶體
113:快閃記憶體
114:OTP記憶體
120:圖形處理器
130:動態隨機存取記憶體
140:儲存裝置
141:應用程式
142:作業系統
150:傳輸介面
160:週邊裝置
170:金鑰管理裝置
171:控制電路
172:匯流排封套
174:暫存器
175:靜態隨機存取記憶體
180:加解密裝置
181:AES加解密電路
182:HMAC加解密電路
183:ECC加解密電路
184:RSA加解密電路
185:隨機數產生電路
186:匯流排封套
188:內部匯流排
210:金鑰資料庫
300:流程
S302, S304, S306, S308, S310, S312, S314, S316, S318, S320, S322:步驟
400:流程
S402,S404,S406,S408,S410,S412,S414,S416,S418,S420:步驟
第1圖係顯示本揭露一實施例中之控制系統的方塊圖。
第2A~2B圖為依據本發明一實施例中避免使用不完整金鑰之金鑰創建操作的示意圖。
第2C~2D圖為依據本發明一實施例中避免使用不完整金鑰之讀取金鑰操作的示意圖。
第2E~2F圖為依據本發明一實施例中避免使用不完整金鑰之刪除金鑰操作的示意圖。
第3圖為依據本發明一實施例中金鑰管理裝置避免使用不完整金鑰的創建新金鑰流程的示意圖。
第4圖為依據本發明一實施例中金鑰管理裝置避免使用不完整金鑰的讀取新金鑰流程的示意圖。
300:流程
S302,S304,S306,S308,S310,S312,S314,S316,S318,S320,S322:步驟
Claims (10)
- 一種避免使用不完整金鑰的金鑰管理裝置,包括: 一靜態隨機存取記憶體; 一暫存器;以及 一控制電路,用以在上述靜態隨機存取記憶體或上述暫存器設置一金鑰查找表,並管理一金鑰資料庫,其中上述金鑰資料庫係儲存一或多把金鑰; 其中,上述控制電路執行以下步驟: 接收由一處理器所傳送之一金鑰創建指令,其中上述金鑰創建指令包括一新金鑰及相應的元資料; 當上述新金鑰已被儲存至上述金鑰資料庫,並且上述新金鑰相應的元資料已在上述金鑰查找表中被新增後,在上述金鑰查找表中設定上述新金鑰相應的激活位元為開啟狀態;以及 回報上述新金鑰相應的一金鑰編號至上述處理器。
- 如請求項1之避免使用不完整金鑰的金鑰管理裝置,其中上述新金鑰相應的上述激活位元預設為關閉狀態。
- 如請求項1之避免使用不完整金鑰的金鑰管理裝置,其中上述控制電路更執行: 接收一金鑰讀取指令,其中上述金鑰讀取指令係用以請求讀取一第一金鑰; 當在上述金鑰查找表找到上述第一金鑰相應的一第一金鑰編號後,判斷上述第一金鑰相應的一第一激活位元是否為開啟狀態; 當上述第一激活位元為開啟狀態時,從上述金鑰資料庫讀取上述第一金鑰,並傳送上述第一金鑰至上述處理器;以及 當上述第一激活位元為關閉狀態時,回報一讀取失敗資訊至上述處理器。
- 如請求項1之避免使用不完整金鑰的金鑰管理裝置,其中上述控制電路更執行: 接收來自上述處理器之一金鑰刪除指令,其中上述金鑰刪除指令係用以刪除一第二金鑰; 依據來自上述金鑰刪除指令中之上述第二金鑰相應的一第二金鑰編號從上述金鑰資料庫中刪除上述第二金鑰編號的上述第二金鑰;以及 設定在上述金鑰查找表中之上述第二金鑰相應的一第二激活位元為關閉狀態。
- 一種處理器晶片,包括: 一處理器; 一次性可程式化(One-time Programmable (OTP) Memory)記憶體; 一快閃記憶體;以及 一金鑰管理裝置,電性連接至上述處理器、上述OTP記憶體及上述快閃記憶體,上述金鑰管理裝置包括: 一靜態隨機存取記憶體; 一暫存器;以及 一控制電路,用以在上述靜態隨機存取記憶體或上述暫存器設置一金鑰查找表,並管理一金鑰資料庫,其中上述金鑰資料庫係儲存一或多把金鑰; 其中,上述控制電路接收由一處理器所傳送之一金鑰創建指令,其中上述金鑰創建指令包括一新金鑰及相應的元資料; 其中,當上述新金鑰已被儲存至上述金鑰資料庫,並且上述新金鑰相應的元資料已在上述金鑰查找表中被新增後,上述控制電路在上述金鑰查找表中設定上述新金鑰相應的激活位元為開啟狀態;以及 其中,上述控制電路回報上述新金鑰相應的一金鑰編號至上述處理器。
- 如請求項5之處理器晶片,其中上述控制電路更執行: 接收一金鑰讀取指令,其中上述金鑰讀取指令係用以請求讀取一第一金鑰; 當在上述金鑰查找表找到上述第一金鑰相應的一第一金鑰編號後,判斷上述第一金鑰相應的一第一激活位元是否為開啟狀態; 當上述第一激活位元為開啟狀態時,從上述金鑰資料庫讀取上述第一金鑰,並傳送上述第一金鑰至上述處理器;以及 當上述第一激活位元為關閉狀態時,回報一讀取失敗資訊至上述處理器。
- 如請求項5之處理器晶片,其中當上述新金鑰相應的元資料或上述金鑰編號無法在上述金鑰查找表中被新增,或是上述新金鑰無法被儲存至上述金鑰資料庫時,產生一中斷資訊,其中上述中斷資訊係記錄上述新金鑰的儲存資訊。
- 一種避免使用不完整金鑰的方法,用於一金鑰管理裝置中,包括: 由一控制電路在一靜態隨機存取記憶體或一暫存器設置一金鑰查找表,並管理一金鑰資料庫,其中上述金鑰資料庫係儲存一或多把金鑰; 由上述控制電路接收由一處理器所傳送之一金鑰創建指令,其中上述金鑰創建指令包括一新金鑰及相應的元資料; 當上述新金鑰已被儲存至上述金鑰資料庫,並且上述新金鑰相應的元資料已在上述金鑰查找表中被新增後,由上述控制電路在上述金鑰查找表中設定上述新金鑰相應的激活位元為開啟狀態;以及 由上述控制電路回報上述新金鑰相應的一金鑰編號至上述處理器。
- 如請求項8之避免使用不完整金鑰的方法,上述方法更包括: 由上述控制電路接收來自上述處理器之一金鑰刪除指令,其中上述金鑰刪除指令係用以刪除一第二金鑰; 由上述控制電路依據來自上述金鑰刪除指令中之上述第二金鑰相應的一第二金鑰編號從上述金鑰資料庫中刪除上述第二金鑰編號的上述第二金鑰;以及 由上述控制電路設定在上述金鑰查找表中之上述第二金鑰相應的一第二激活位元為關閉狀態。
- 如請求項8之避免使用不完整金鑰的方法,其中當上述新金鑰相應的元資料或上述金鑰編號無法在上述金鑰查找表中被新增,或是上述新金鑰無法被儲存至上述金鑰資料庫時,由上述控制電路產生一中斷資訊,其中上述中斷資訊係記錄上述新金鑰的儲存資訊。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111150795A TWI833533B (zh) | 2022-12-30 | 2022-12-30 | 避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法 |
CN202311385059.2A CN118282630A (zh) | 2022-12-30 | 2023-10-24 | 避免使用不完整密钥的密钥管理装置、处理器芯片及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111150795A TWI833533B (zh) | 2022-12-30 | 2022-12-30 | 避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI833533B true TWI833533B (zh) | 2024-02-21 |
TW202427987A TW202427987A (zh) | 2024-07-01 |
Family
ID=90824972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111150795A TWI833533B (zh) | 2022-12-30 | 2022-12-30 | 避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118282630A (zh) |
TW (1) | TWI833533B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI705687B (zh) * | 2019-09-09 | 2020-09-21 | 新唐科技股份有限公司 | 用於資料加解密的金鑰管理裝置及處理器晶片 |
TW202111584A (zh) * | 2019-09-09 | 2021-03-16 | 新唐科技股份有限公司 | 具有旁通通道的金鑰管理裝置及處理器晶片 |
-
2022
- 2022-12-30 TW TW111150795A patent/TWI833533B/zh active
-
2023
- 2023-10-24 CN CN202311385059.2A patent/CN118282630A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI705687B (zh) * | 2019-09-09 | 2020-09-21 | 新唐科技股份有限公司 | 用於資料加解密的金鑰管理裝置及處理器晶片 |
TW202111584A (zh) * | 2019-09-09 | 2021-03-16 | 新唐科技股份有限公司 | 具有旁通通道的金鑰管理裝置及處理器晶片 |
Also Published As
Publication number | Publication date |
---|---|
CN118282630A (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11861194B2 (en) | Storage device configuration and method managing storage configuration | |
TWI705687B (zh) | 用於資料加解密的金鑰管理裝置及處理器晶片 | |
US8122262B2 (en) | Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method | |
TWI716023B (zh) | 記憶體系統 | |
US20240160766A1 (en) | File system metadata protection | |
US11507284B2 (en) | Storage device and control method | |
JP2013506910A (ja) | ライトワンスリードメニー(worm)メモリデバイスの認証およびセキュアリング | |
WO2019211385A1 (en) | Cryptographic key distribution | |
US11468159B2 (en) | Memory system | |
TWI731407B (zh) | 具有旁通通道的金鑰管理裝置及處理器晶片 | |
TWI833533B (zh) | 避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法 | |
TWI821675B (zh) | 記憶體系統 | |
TW202427987A (zh) | 避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法 | |
TWI738020B (zh) | 電子機器及其控制方法 | |
JP2000250818A (ja) | 記憶システム、記憶装置及び記憶データ保護方法 | |
CN117407327A (zh) | 具有rpmb重置功能的存储器件及其rpmb管理方法 | |
JP2023137886A (ja) | ストレージ装置 |