TWI460604B - 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法 - Google Patents

安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法 Download PDF

Info

Publication number
TWI460604B
TWI460604B TW098134676A TW98134676A TWI460604B TW I460604 B TWI460604 B TW I460604B TW 098134676 A TW098134676 A TW 098134676A TW 98134676 A TW98134676 A TW 98134676A TW I460604 B TWI460604 B TW I460604B
Authority
TW
Taiwan
Prior art keywords
memory
data
special
block
address
Prior art date
Application number
TW098134676A
Other languages
English (en)
Other versions
TW201030550A (en
Inventor
Robert Michael Muchsel
Donald W Loomis
Edward Tang K Ma
Mark Alan Lovell
Michael Anthony Quarles
Original Assignee
Maxim Integrated Products
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 Maxim Integrated Products filed Critical Maxim Integrated Products
Publication of TW201030550A publication Critical patent/TW201030550A/zh
Application granted granted Critical
Publication of TWI460604B publication Critical patent/TWI460604B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

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

Description

安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法
本發明概言之係關於微控制器,且更特定而言係關於啟用對憑藉一微控制器儲存之內容(例如智慧財產元素)之保護之技術。具有此等特徵之微控制器通常稱作安全微控制器。
處理器或微控制器內之內容保護一段時間以來對於電子工業一直係一挑戰。隨著半導體技術的進步,某些微控制器已變成複雜的系統單晶片。先前在硬體中實施之重要系統功能現在可在軟體中實施,從而允許原始設備製造商(「OEM」)迅速向市場提供高價值、低成本微控制器解決方案。舉例而言,基於可程式化非揮發性記憶體之微控制器允許眾多應用程式/內容提供者對微控制器進行頻繁系統更新,包括程式碼修改及新功能添加。
時常,此等程式碼修改及/或新功能可表示由提供者擁有之頗具價值的智慧財產且可容易受到其他方之未經授權存取。另外,一微控制器內之軟體實施形式通常比硬體更容易反向工程。由此,基於非揮發性記憶體之電子裝置可包括嘗試保護該電子裝置內之此智慧財產之硬體資料保護。
微控制器通常包括一根據一非揮發性記憶體中之資料區為存取控制資訊保留之儲存區。該資料區可根據記憶體陣列之實體結構配置成一含有用於儲存資料之所有記憶胞之單個實體或成複數個記憶體區段(memory segment)。於先前技術系統中,對一特定記憶體區段之存取控制係由硬體強制實施。程式碼可由處理器執行,但讀取及寫入操作因控制設定而被禁止。通常,取消此保護之唯一方式係首先抹除受保護程式碼及其對應存取控制資訊兩者。
此方法提供有效資料保護但亦引起用於控制資訊之額外記憶體區(memory area)及用於抹除及再程式化之CPU時間方面的顯著成本開銷。CPU時間方面的開銷不僅降低系統效率,而且增大程式管理複雜性。
此簡單安全性配置但嚴格形成施加太多限制且可成為最終使用者之一負擔。隨著用於微控制器操作之程式碼變得更完善且更複雜,可有利地使用由一OEM及其他廠商提供之可用軟體程式庫而不是從零開始創建一全程式。一軟體程式庫包括主要演算法常式及特定函式,且準備好供副常式呼叫使用。此一軟體程式庫將重要值表示成最終產品之智慧財產(「IP」)。此外,在具有境外支援(off-shore support)及維護之可能性之情況下,程式開發可在不同開發階段涉及不同開發者。此多層程式開發及其中之多開發者參與導致其中難以安全地保持專有IP內容之一複雜環境。
當前存取控制方案亦缺乏對程式記憶體空間中之操作參數之直接讀出。操作參數通常係在系統初始化期間設定且以資料表形式儲存於非揮發性記憶體中,因而可在電源中斷之情況下保存資料。通常的做法係,將此等重要參數連同該微控制器之該(該等)系統程式一起儲存於同一非揮發性記憶體中。若受保護程式區僅用於執行且禁止對資料之讀取,則對操作參數之讀取可成為一問題。
上述限制對系統晶片中之IP保護,尤其對低成本但高度整合之電子系統(例如安全微控制器)提出一挑戰。
本發明係關於一種提供對專有數位內容之多層保護之微控制器。該微控制器之各實施例包括一安全CPU、一即時加密器及用於該微控制器內之可程式化非揮發性記憶體之一使用者可程式化多層存取控制系統。可程式化非揮發性記憶體允許最終使用者進行系統級程式燒錄及應用程式級程式燒錄且能夠在移除電力時保存資料內容。
多層存取控制提供於該微控制器中或憑藉該微控制器提供且藉由根據一組使用者程式化參數來控制對一程式碼區段之讀取、寫入及/或執行從而啟用對嵌入數位內容之機密性保護。於某些實施例中,一加密器置入一組憑藉對資料儲存器之列及行操縱來進行資料加密及解密之密碼編譯規則。於本發明之一些實施例中,密碼編譯操作與CPU運行時並行執行而不引起對系統操作之大量額外延時及延遲。
本發明之某些特徵及優點已大體闡述於本發明內容中;然而,本文中亦呈現或熟習此項技術者根據本發明之圖式、說明書及申請專利範圍將易知額外特徵、優點及實施例。因此,應瞭解,本發明之範疇不應受本發明內容中所揭示之特定實施例限制。
本發明實施例提供用於安全微控制器之系統、裝置及方法。於下文說明中,為了解釋之目的,列出具體細節以達成對本發明之理解。然而,熟習此項技術者將易知,本發明可在沒有此等細節之情況下實踐。熟習此項技術者將認識到,下文闡述之本發明實施例可以各種方式及使用各種構件來實施。熟習此項技術者亦將認識到,額外修改、應用及實施例仍歸屬於本發明之範疇,其中本發明可提供實用性之額外領域亦歸屬於本發明之範圍。因此,下文所述之實施例說明本發明之具體實施例且旨在避免模糊本發明。
本說明書中對「一個實施例」或「一實施例」之提及意指結合該實施例所述之特定特徵、結構、特性或功能包括於本發明之至少一個實施例中。片語「於一個實施例中」、「於一實施例中」或諸如此類於本說明書中之各個地方中之出現未必皆指同一實施例。
A. 安全微控制器
根據本發明之各實施例闡述一包含具有安全及保護功能之核心及功能元件之安全微控制器。該等保護功能可係置入一根據系統程式設計人員所定義之每一記憶體區段之讀取/寫入特殊權限來進行記憶體存取之控制協定之微控制器核心之一部分。該控制協定可由與一記憶體管理單元耦合之硬體及駐存於公用程式ROM中之程式常式來強制實施。公用程式函式可包括用於系統程式化之一安全載入程式及用於程式碼開發之電路內除錯程式。為了增加對所嵌入程式碼之保護,資料內容及記憶體位置可由一根據本發明之某些實施例之硬體加密器在運行時擾亂。由此,一個或多個程式可由多個開發者構建於一微控制器內同時保護該微控制器內之每一開發者之專有內容。於各實施列中,為儲存於一微控制器內之每一開發者之專有內容指配限制及/或阻斷其他方對此內容之存取之特定存取權限。
圖1係一根據本發明之各實施例之安全微控制器100之一方塊圖。如圖1中所示,一微控制器核心101包括一中央處理單元(「CPU」)及一例外處理常式。該CPU亦稱作一「處理器單元」。於本發明之某些實施例中,微控制器核心101之CPU實施為一允許一單個程式碼預取時脈循環之流水線處理器。因此,一指令字致使一指令在一單個時脈循環中執行。此憑藉具有長存取時間之程式記憶體(例如快閃記憶體)實現更高之系統時脈頻率。程式碼執行仍係單個線性程式碼循環,但程式碼分支引起一單個時脈循環損失,除非採用進一步措施,例如一分支預測單元。一指令碼操作通常包含定義一具體函式之多個程式碼執行循環。另外,措詞「碼」、「程式碼」及「指令碼」視為同義的。
於各實施例中,該處理器使用具有單獨程式及資料記憶體之哈佛記憶體架構。此記憶體架構藉由允許同時存取程式及資料記憶體來改善系統頻寬;其亦容許對資料儲存器使用不同字長。舉例而言,程式記憶體位址及資料記憶體位址可係16位元。16位元有效位址支援65536(64K) 16位元字的程式記憶體及64K 16位元字的資料記憶體。為了允許存取儲存於程式記憶體中之資料表,該處理器亦支援一馮諾依曼式存取,但此存取引起一1循環暫停,除非採用一指令快取記憶體。熟習此項技術者將認識到,根據本發明實施例可採用各種處理器架構、計時方案及定址方法。
例外處理常式係微控制器核心101之一部分且用作在出現意外或預期事件或條件時致使正常程式流中斷。舉例而言,一未經授權使用者存取安全內容之一非法嘗試可產生一有效阻止此一存取之中斷。
程式記憶體儲存可包括程式碼及操作參數之內容。主程式記憶體可使用非揮發性記憶體(例如快閃記憶體106或EEPROM)構建而成。
一ROM 105亦映射至程式空間以支援不需要系統級程式燒錄能力之公用程式函式,例如一啟動載入程式函式、電路內除錯及晶片測試。為了確保正確操作,對可程式化非揮發性記憶體之抹除及寫入可藉由對公用程式ROM 105之副常式呼叫來實施且因此只可由系統程式碼記憶體存取。於本發明之某些實施例中,對快閃記憶體106之讀取存取係一個循環,但抹除及寫入時間並非確定性的,此乃因此等操作係由公用程式ROM 105經由一對控制與資料暫存器來處理。
資料記憶體將各種類型的資料儲存於該微控制器內。熟習此項技術者將認識到,該資料記憶體可由各種記憶體技術(例如SRAM 107)構建而成。
安全微控制器100之一特徵在於其對該程式記憶體之階層式多層存取控制。此階層係使用一與記憶體管理單元(MMU) 103及存取控制102耦合之實體層及微控制器核心101之安全特徵而實現。該實體層包括以一記憶體保護模式連接監視該程式流並根據使用者定義之對記憶體區段的特殊權限級別來控制對該程式記憶體之讀取/寫入存取之監視器及比較器電路系統。於一特定實施例中,該程式記憶體可分成三個記憶體區段,以為該系統提供三個存取特殊權限級別。每一記憶體區段之記憶體範圍及存取特殊權限可使用CPU之通用暫存器映射中之一組專用暫存器來定義。於某些實施例中,此等暫存器係使用者可程式化的但其存取序列係由一呈一對序列控制暫存器之形式之原子電路強制實施。一原子操作係指一組可經組合以便其在該系統之其他部分看來似乎係一僅具有兩種可能結果(成功或失敗)之單個操作之操作。
於本發明之各實施例中,該存取控制將在設定該系統暫存器中之一記憶體保護啟用(「MPE」)位元時在該記憶體保護模式下生效。於某些實例中,此系統暫存器只可由駐存於最高安全記憶體區段中之程式碼存取。在此操作模式下,該CPU以一正常方式提取、解碼並執行程式指令。該控制存取電路監視記憶體指令之指令解碼器。當偵測到一載入命令或一儲存命令時,該監視器使用最後程式位址來判定當前存取特殊權限。然後,當比較器參照記憶體區段邊界檢查指標位址時,使用該當前特殊權限來測試源/目的地之合法性。僅經授權讀取或寫入存取(其係指在對應存取特殊權限下所允許之存取)將由該CPU執行。任何未經授權之存取嘗試將造成一例外狀況或中斷,從而視需要迫使該程式作為回應執行一使用者定義程式常式。
如圖1中所圖解闡釋,微控制器100亦可含有一根據本發明之各實施例為了保護所嵌入軟體之目的在運行時變換指令碼之雙向硬體加密器104。針對強密碼編譯保護,可使用一使用一習用密碼編譯演算法(例如三重DES或AES)之加密器。於某些實施例中,安全微控制器100採用一種藉由用一秘密密鑰來變更指令位址從而產生一密鑰流之加密技術。對該加密技術之考量事項包括:
1. 足夠的混淆:該加密特徵引起足夠的混淆,從而使演繹純文字(plaintext)變得困難,即使知道第一快閃記憶體指令係來自習知啟動碼。
2. 低硬體影響:該加密特徵不耗用區域及計算時間方面的過多資源。因低快閃記憶體操作速度,故只應在解密器操作之最後階段使用需要自快閃記憶體提取之經加密碼字。
3. 支援雙向操作之可逆函數:若存在一d=fn(s,x,y,z,...),則亦存在一s=fn-1 (d,x,y,z,...)。此並非意謂一真逆轉,因為針對任一給定d應存在若干s,但針對s,x,y,z,...之任一組合僅存在一個d。若fn()實施為一「密鑰流」產生器,則除最後總和以外fn-1 ()=fn()。
4. 其他潛在約束條件:存在對密鑰暫存器大小之限制。一64至128位元之大小係儲存器大小與密鑰長度之間的一較佳折衷。操作可係加法模、二元和、位元選擇等等,但一些操作可在硬體(例如泛用旋轉或模n,其中n並非係2之一乘方)方面成本高昂。可使用專門旋轉(其中n=0,1,2,3)或硬接線模3、模5、或模7及類似低閘計數操作。
參照圖7,加密器功能及介面700包括:一雜湊區塊701,其用於快速壓縮一用於密鑰產生之長偽隨機序列;若干暫存器,其用於儲存秘密密鑰(例如,將加密密鑰儲存於快閃記憶體106中);一位元隨機排列器(bit shuffler)(位址位元隨機排列器705),其用於擾亂記憶體位置;及一加密區塊703,其用於加密用於儲存之純文字碼並解密用於執行之加密文字(ciphertext)碼或重要資料。於各實施例中,加密區塊703在一逐指令基礎上工作,自該密鑰暫存器提取每一指令及資料子集之位址以產生一由一序列原始操作而引起之密鑰流。然後,將該密鑰流與一碼字二元相加。該加密器亦可含有檢查傳入及傳出位元流是否有特殊型樣並判定其是否應被繞過之電路系統。於某些實施例中,加密器104可整合於MMU 103內,此乃因其實施於程式記憶體之資料路徑中且該加密器功能通常被啟用。
雖然全程式空間可在記憶體保護模式下受保護,但硬體加密器104通常應用至由一快閃記憶體106實現之主程式記憶體。ROM 105主要含有通常不屬於秘密之通用功能。ROM 105中所包括之啟動載入程式不應造成一安全威脅,即使該啟動載入程式能夠對快閃記憶體106進行直接讀取/寫入,此乃因該載入程式函式係在該實體層之該存取控制之下。
該安全微控制器之其他實施例可在沒有該硬體加密器之情況下實現。儘管該程式碼將在該微控制器內不受保護,但此系統仍將具有該等多層存取控制安全特徵。
B. 多層存取控制
下文對一微控制器內之多層存取控制及記憶體分段之說明意欲闡釋本發明之某些實施例。熟習此項技術者將認識到,根據本發明之實施例亦可實現其他存取控制協定及記憶體分段(memory segmentation)架構。
如先前所提到,安全微控制器100之一個特徵在於其對該程式記憶體之針對多個使用者之階層式多層存取控制。如圖2中所示,存取控制102啟用對安全微控制器100之多層存取控制。該存取控制之一個元件係存取監視器201。存取控制器102耦合至來自微控制器核心101之CPU之控制、位址及資料信號。來自CPU之控制信號可包括命令、記憶體保護、讀取/寫入請求及熟習此項技術者已知之其他信號。來自CPU之資料信號可包括資料匯流排信號、暫存器信號及熟習此項技術者已知之其他資料信號。於某些實施例中,該等資料信號耦合至一雙向資料匯流排。來自CPU之位址信號可包括程式位址信號及熟習此項技術者已知之其他位址信號。
包含PRIV、PRIVT0、PRIVT1及PRIVF之特殊權限暫存器亦顯示於存取控制102中。此等暫存器儲存並管理與使用者之特殊權限級別相關之特殊權限資訊。熟習此項技術者將認識到,可採用各種類型及數量之特殊權限暫存器來控制對微控制器100內之專有資料/IP之存取。
藉由監視並比較CPU之操作,存取控制102藉由提供一因一特殊權限請求而需要之特殊動作來通知例外處理常式。換言之,存取控制102之一功能係管理對應於特殊權限級別之記憶體區段級別請求。於本發明之某些實施例中,存取控制功能元件可包括:
‧ 一與讀取/寫入特殊權限級別相關之記憶體存取控制協定。
‧ 該等記憶體區段中之每一者對應於該特殊權限級別,以使具有不同特殊權限級別之多方能夠單獨地載入程式碼,且可寫入存取適當特殊權限級別之暫存器。
‧ 較小特殊權限之程式碼無法改變一更高特殊權限級別之邊界,且保護程式碼之機密性以防止較小特殊權限之程式碼區之讀取/寫入嘗試。
根據各實施例,該主程式記憶體儲存於非揮發性記憶體106中,且可視為三個連續記憶體區段。圖4圖解闡釋三個記憶體區段之特定程式記憶體分段。指令碼駐存於該程式記憶體中且始終可由該CPU執行;然而,對每一記憶體區段之讀取或寫入存取係根據其特殊權限級別在硬體控制之下。安全微控制器100中之自最高安全性至最低安全性定義之該三個記憶體區段係:系統、使用者載入程式及使用者應用程式。圖3中之表略述此等記憶體區段、可組態快閃記憶體頁邊界及根據本發明之某些實施例可與該等記憶體區段內之程式碼執行相關聯之最大特殊權限級別。所有該等特殊權限級別皆可由唯讀記憶體程式碼105存取。
於各實施例中,該記憶體區段邊界係根據快閃記憶體106之頁數而定義。該系統區段自頁0開始至頁ULDR-1(一個位於使用者載入程式區段下方之頁)。以相同方式,使用者載入程式區段自頁ULDR開始至頁UAPP-1且使用者應用程式區段自頁UAPP開始至快閃記憶體106之頂部。
該三個記憶體區段中之每一者皆具有一最大允許特殊權限級別。當前特殊權限級別指配由硬體用作控制對其他記憶體區段之讀取/寫入存取之基礎。除該三個使用者可定義區段以外,公用程式ROM及資料記憶體區亦具有一預設最大特殊權限級別,以提供對程式及資料空間兩者之存取控制。該微控制器核心架構藉由將該資料記憶體映射至該程式空間來支援自資料RAM之程式執行。使資料記憶體變成一低特殊權限區段排除使用資料RAM來規避存取控制之可能性。
於本發明之某些實施例中,經由內部暫存器使用者載入程式起始頁位址(「ULDR」)及使用者應用程式起始頁位址(「UAPP」)組態快閃記憶體頁邊界。對此等暫存器之寫入存取致使較小特殊權限之程式碼無法改變一更高特殊權限之記憶體區段之邊界。將此等暫存器之值乘以每頁之字數以判定所指定頁上之第一個字之對應位址。舉例而言,當一快閃記憶體頁中之字數為256時,ULDR*256係頁ULDR上之第一個字之位址。
為了使此等關鍵值變成非揮發性的,在區段初始化期間將ULDR及UAPP之值儲存於快閃記憶體106中。若一使用者載入程式區段係較佳的,則該ULDR值必須程式化於該系統區段中且該系統程式碼負責在開機重設之情況下將該ULDR值傳送至該ULDR暫存器。同樣適用於使用者應用程式區段。該UAPP值程式化於該使用者載入程式區段中且必須由該使用者載入程式傳送至該UAPP暫存器。
於本發明之各實施例中,圖3中之快閃記憶體頁邊界為不可由使用者程式碼創建之分段選項留下了開放的可能性。當啟用程式記憶體分段及保護(例如,MPE=1)時,該系統程式碼區段應包括第一快閃記憶體頁。此意謂ULDR及UAPP暫存器未程式化至0。若期望該程式記憶體由僅兩個記憶體區段構成,則程式化ULDR暫存器及UAPP暫存器以定義同一起始頁,因此未在該ULDR區段內定義任何頁。若該ULDR暫存器程式化至一等於或大於UAPP之值,則不定義任何使用者載入程式區段。該UAPP可程式化至第二區之起始頁。在此情況(僅兩個程式記憶體區段)下,系統程式碼記憶體之最後一頁將係(UAPP-1),如圖5中所圖解闡釋。在某些情況下,此優於將使用者載入程式用作第二記憶體區以使僅高特殊權限級別及低特殊權限級別可用。
提供此程式記憶體分段以有利於多方在產品壽命週期期間之不同階段載入程式碼(例如,原始廠商、第二使用者、最終使用者更新及程式庫下載)。該分段及特殊權限方案亦提供一用於保護程式碼之機密性以防止較小特殊權限之程式碼區之讀取/寫入存取嘗試之機構。於某些實施例中,通常獨立於MPE位元狀態提供讀取公用程式ROM之能力。
在以下段落中,將針對兩區段式多層存取控制系統及三區段式多層存取控制系統兩者來提供實例。然而,熟習此項技術者將認識到,具有大於彼三個記憶體區段之實施例仍歸屬於本發明之範疇。
C. 系統程式碼區段
於本發明之某些實施例中,最高特殊權限級別,以及最高安全級別係該系統或系統程式碼區段,如圖3中所示。通常,該系統程式碼只可供該微控制器產品之原始廠商使用。針對三區段或兩區段實施例,一實例性系統程式碼分別圖解闡釋於圖4及5中。
於某些實施例中,該系統程式碼始於某一頁上並延伸至剛好在使用者載入程式起始頁之前的頁。定義該系統程式碼區之頂部之ULDR暫存器可由系統程式碼或ROM碼寫入。於本發明之各實施例中,一用於初始化該系統程式碼區之方法將所期望ULDR起始頁值儲存於快閃記憶體字位址000Fh(剛好在系統密碼之前的字)處並使重設向量碼以下述方式實施ULDR寫入:
然而,根據本發明之實施例亦可採用其他方法來初始化該系統程式碼區。
於本發明之各實施例中,系統程式碼之讀取/寫入可存取性由PRIV特殊權限暫存器中之兩個暫存器位元定義。舉例而言,將系統讀取特殊權限(「PSYR」)位元設定至特定值以允許讀取該系統程式碼區。將系統寫入特殊權限(「PSYW」)位元設定至特定值以允許寫入至該系統程式碼區。當前IP/內容不在ROM碼或系統程式碼中時,這兩個位元將由硬體自動清除至一值。若在PSYR/PSYW未被啟用之情況下對該系統區進行讀取/寫入嘗試,則將分別針對讀取及寫入嘗試來設定記憶體保護中斷標記(例如,PSYRF及PSYWF)。若設定該MPE位元,則此等中斷標記將改變正常程式流以執行一使用定義之副常式以處理該例外狀況。
D. 使用者載入程式碼區段
於本發明之某些實施例中,中間特殊權限級別,以及中間安全級別係該使用者載入程式碼區段,如圖3中所示。通常,該使用者載入程式碼係可供該微控制器產品之第二使用者使用之最高程式碼。針對三區段實施例,一實例性使用者載入程式碼區段圖解闡釋於圖4中。
於本發明之各實施例中,該使用者載入程式碼區通常始於由該系統程式碼定義之ULDR頁上且延伸至剛好在該使用者應用程式起始頁之起始頁之前的頁。該UAPP暫存器定義該使用者載入程式碼區之頂部且不可由使用者應用程式碼寫入(亦即,僅可由系統程式碼、使用者載入程式、或ROM碼寫入)。
於某些實施例中,一用於組態使用者載入程式邊界之方法類似於由該系統程式碼區使用之方法。於第一ULDR頁上,欲程式化至該UAPP暫存器中之所期望值放置於剛好在該使用者載入程式密碼之前的字位址偏移000Fh處。該ULDR頁之開始處之使用者載入程式啟動碼讀取儲存於ULDR*快閃記憶體頁大小+000Fh處之值並寫入至該UAPP暫存器。
於本發明之各實施例中,使用者載入程式碼之讀取/寫入可存取性由PRIV特殊權限暫存器中之兩個暫存器位元定義。舉例而言,將一使用者載入程式讀取特殊權限(「PULR」)位元設定至一特定值以允許讀取該使用者載入程式碼區。將一使用者載入程式寫入特殊權限(「PULW」)設定至特定值以允許寫入至該使用者載入程式碼區。在當前IP不在ROM碼、系統程式碼或使用者載入程式碼中時,這兩個位元可由硬體自動清除至0。若在未被啟用之情況下對該使用者載入程式區進行讀取/寫入嘗試,則將分別針對讀取及寫入嘗試來設定記憶體保護中斷標記(例如,PULR讀取特殊權限標記及PULW寫入特殊權限標記)。若設定該MPE位元,則此等中斷標記將改變正常程式流以執行一使用者定義副常式以處理該例外狀況。
E. 兩區段式記憶體組態
若一微控制器應用程式之範疇僅需要兩個特殊權限級別,則可使用兩區段式記憶體組態。該兩區段式記憶體組態根據本發明之各實施例圖解闡釋於圖5中。針對具有僅兩個記憶體區段之裝置,將該使用者載入程式記憶體區排除在外,因此只留下該系統記憶體區及該使用者應用程式記憶體區。
於某些實施例中,轉而使用通常用來給使用者載入程式供應起始頁之值之位址000Fh處之快閃記憶體字來給使用者應用程式之起始頁供應一值以支援該兩區段式記憶體組態。為了公用程式ROM根據上下文知道上述快閃記憶體字旨在供應關於UAPP起始頁而不是ULDR起始頁之資訊,可將此字中之最重要位元設定至特定位元值。因此,若系統程式碼欲將使用者載入程式排除在外,則可使用以下碼且程式記憶體分段映射將相應地變化。
F. 使用者應用程式碼區段
於本發明之某些實施例中,最低特殊權限級別,以及最低安全級別係該使用者應用程式碼區段,如圖3中所示。通常,該使用者應用程式碼只可供第三使用者或一最終使用者用來進行更新或程式庫下載。針對三區段式實施例或兩區段式實施例,實例性使用者應用程式碼分別圖解闡釋於圖4及5中。
於本發明之某些實施例中,該使用者應用程式碼區始於該UAPP頁上且延伸穿過該快閃程式記憶體之最後一頁(已知定義一UAPP碼區)。使用者應用程式區中之程式碼執行之特殊權限不能大於對應於最低特殊權限級別之「低」,如圖3中所示。因此,不存在任何讀取/寫入特殊權限啟用或記憶體保護中斷標記。
G. 特殊權限暫存器
於本發明之某些實施例中,特殊權限暫存器包含PRIV、PRIVT0及PRIVT1,且表示於圖1及2上。圖6提供一表,該表給出對應於一根據本發明之各實施例之三區段式記憶體組態之三個特殊權限級別之特殊權限暫存器值。此表應用特殊權限暫存器PRIV、PRIVT0及PRIVT1。存在兩種改變特殊權限級別之方式。可在存取控制之下直接讀取/寫入PRIV暫存器。更新PRIV暫存器值之另一方式係經由原子操作(一對PRIVT0及PRIVT1暫存器之背對背寫入)。亦即,一寫入PRIVT0操作之後緊跟著一寫入PRIVT1操作。推薦最後一種方法以防有人修改堆疊指標以規避存取控制。硬體保證PRIV暫存器之內容決不高於程式碼正自其流出之記憶體區之最大特殊權限級別。舉例而言,若使用者載入程式或使用者應用程式碼嘗試將PRIV設定至高,則硬體將阻止此動作發生。然而,任一程式碼可在任一時間決定降低該特殊權限級別。於本發明之某些實施例中,當前程式碼執行之特殊權限將係以下中之較小者:
1. 其中程式碼正執行之記憶體區之最大特殊權限級別,或
2. PRIV暫存器之內容。
舉例而言,若PRIV暫存器被組態至中間特殊權限,則該系統程式碼區中之程式碼執行將僅係基於中間特殊權限之允許存取。於本發明之各實施例中,根據PRIV暫存器之位元內容之典型固定級別指配給出於圖6中。顯示常數高、中及低,但可使用自0000b至1111b之所有值。
H. 使用PRIVT0及PRIVT1暫存器之原子PRIV寫入
根據各實施例,除對PRIV暫存器之直接寫入以外,亦可藉由按一背對背序列寫入至PRIVT0及PRIVT1暫存器來設定暫存器及特殊權限級別。此命令稱作一原子PRIV寫入命令。
類似於PRIV暫存器,硬體保證PRIVT0之內容決不高於程式碼正自其流出之記憶體區之最大特殊權限級別。寫入至PRIVT0對PRIV暫存器沒有影響,但寫入至PRIVT1暫存器將致使硬體將PRIV暫存器修改至以下中之較小者:
1. 其中程式碼正執行之記憶體區之最大特殊權限級別,
2. PRIVT0暫存器,或
3. PRIVT1寫入之源引數。
達成依序寫入PRIVT0、PRIVT1暫存器對以改變特殊權限PRIV暫存器之安全益處在於放置於PRIVT0、PRIVT1寫入之間的程式碼不可由希望得到未經授權之更高特殊權限的某人故意地跳過。寫入至PRIV可自動將PRIVT0重設至低。
I. 系統軟體之規則
雖然特殊權限級別實施於硬體中,但存在使用者程式碼可設法規避記憶體存取保護之各種方式,包括對共享、共同堆疊或暫存器之操縱,及跳轉或調用不屬於一官方入口點之系統記憶體中之程式碼。根據本發明之各實施例,可應用以下規則來提供一更安全的系統並使此等攻擊之成功最小化。
首先,系統程式碼不保存及恢復特殊權限級別。轉而,中斷及提升特殊權限之系統程式庫函式亦在退出之前無條件地降低特殊權限。若存在降低特殊權限級別之中斷、或運行於系統空間外部之中斷程式碼,則提升特殊權限之程式碼在特殊權限操作期間停用中斷。
其次,一需要高特殊權限級別之操作不調用副常式來提升特殊權限級別。再其次,一在提升特殊權限級別之前檢查引數之系統程式庫函式使用PRIVT0及PRIVT1以一原子方式來這樣做以防止使該檢查短路(關於停用中斷之規則亦適用)。
熟習此項技術者將認識到,亦可應用其他系統軟體規則來進一步確保微控制器內之內容/IP之安全性及完整性。
J. 啟動載入程式函
安全微控制器100支援各種系統操作模式。於本發明之某些實施例中,微控制器100通常在一使用者模式下運行以支援使用者應用程式。使用一ROM啟動載入程式模式來初始化記憶體及系統組態。該ROM啟動載入程式模式亦在硬體輔助下支援應用程式級程式燒錄及重要系統資料更新。一實例性啟動載入程式操作之一流程圖900顯示於圖9中。
根據本發明之各實施例,一駐存於公用程式ROM中之啟動載入程式函式為系統初始化及程式化提供必需之支援。根據圖9,在每一重設901、904之後,CPU自動開始執行於公用程式ROM 906中之一特定位址處,以允許公用程式ROM碼實施必要之系統支援功能。接下來,檢驗907系統程式化啟用(「SPE」)位元以判定系統程式化是否應開始或彼碼是否應被繞過,轉而迫使執行向量至使用者程式碼111之開頭。舉例而言,當將SPE位元設定至特定值時,該處理器將執行規定啟動載入程式模式程式921。SPE值亦可預設為一值。
為了進入啟動載入程式模式921,可經由一介面(例如JTAG 902、903)在重設901期間將該SPE位元設定至某一值。該啟動載入程式實施如圖9(步驟922至932)中所描述之系統程式化。此等步驟包括檢查系統密碼925及ULDR密碼926、927。假定一密碼匹配928,則解鎖929該載入程式,並根據需要在串列介面931的支援下實施快閃記憶體程式化930。當系統程式化完成時,該啟動載入程式能夠清除該SPE位元並重設該裝置以便隨後繞過該系統程式化常式。
於某些實施例中,公用程式ROM區段具有一預設高安全級別,因此該啟動載入程式具有最高存取特殊權限且可被調用來存取任何程式記憶體區段,包括未映射於正常程式記憶體空間且不可用於一般用途之資訊區塊。
於本發明之各實施例中,該資訊區塊係快閃記憶體106中之一小預留記憶體區段。針對微控制器核心100,使用該資訊區塊來儲存使用者秘密資料及加密密鑰資料。使用者秘密係一二元流且用於經由一習用介面(例如USB、UART或SPI)來建立與一由該啟動載入程式支援之遠端安全載入程式的一經鑑別連接。該加密密鑰係一欲由硬體加密器使用之偽隨機序列。一鎖定型樣亦定義於該資訊區塊中。若程式化該鎖定型樣,則禁止對該資訊區塊之進一步存取。於某些實施例中,僅一大規模抹除(其抹除快閃記憶體106中之所有資料內容)可解鎖該鎖定。
由於該資訊區塊不在該程式記憶體空間中,因此對該資訊區塊之讀取/寫入存取係經由快閃記憶體控制(「FCNT」)及只有當CPU自公用程式ROM執行時才可運作之快閃記憶體資料(「FDATA」)暫存器。該資訊區塊之安全級別預設為高且因此在鎖閉之前其只可由系統程式碼存取。實例性FCNT及FDATA圖解闡釋於根據本發明之各實施例之圖7中。
K. 電路內除錯功能
微控制器100支援各種系統操作模式。通常,微控制器100在使用者模式下運行以支援使用者應用程式。除錯模式意欲提供即時電路內除錯/仿真。測試模式經設計以支援內部晶片測試及鑒定。經由一測試存取埠TAP)及與JTAG標準相容之TAP控制器來支援除錯模式及測試模式兩者。
於本發明之各實施例中,駐存於公用程式ROM 105中之硬體電路內除錯程式及除錯常式由存取控制硬體控制。除錯程式硬體設備可供用於程式開發及系統除錯,但對程式記憶體之讀取/寫入存取遵循一特定記憶體區段之特殊權限級別。
由於該等除錯特徵係藉由該等除錯常式而實現,因此此等軟體常式遵守該等存取規則。除錯程式追蹤調用位址並根據記憶體區段之特殊權限級別來決定其動作進程。於某些實施例中,禁止對一更高特殊權限記憶體區段之電路內仿真及資料轉儲。在一追蹤操作中,允許自一更低特殊權限記憶體區段至一更高特殊權限記憶體區段之副常式呼叫,但不會顯示中間暫存器資料且無法讀出追蹤碼或記憶體資料。於某些實施例中,除錯程式執行一單個步驟。然而,當單步執行一更高特殊權限級別區段時,不存在回傳之中間資料。
於本發明之各實施例中,當已程式化該資訊區塊中之鎖定型樣時停用該除錯程式。
L. 典型之啟動碼序列
在微控制器100之初始化期間,該裝置經由確保可靠操作之多個步驟來定序,同時經由特殊權限級別階層來定序。此初始化程序圖解闡釋於圖9之流程圖900上。針對本發明之各實施例,啟動序列如下:首先,微控制器100將具有一開機重設(「POR」)901且將檢查是否需要特殊程式化902、903,亦即,是否認定SPE位元。若認定SPE位元,則佔用啟動載入程式(參見段落J.啟動載入程式功能及圖9(步驟921至932))。
若未認定SPE位元,則作為一預設值,系統在特定頁位址(例如8000h)處重設904,並開始運行ROM碼906。ULDR及UAPP暫存器始終設定至快閃記憶體106之最後一頁。舉例而言,對於一具有512位元組之頁大小之64KB快閃記憶體,ULDR及UAPP處於其重設值0080h下。對於一具有512位元組之頁大小之128KB快閃記憶體,ULDR及UAPP處於其重設值0100h下。PRIV暫存器處於其重設值高下。啟用記憶體保護(MPE=1) 904。
接下來,ROM初始化碼檢查系統密碼907且在該密碼為空908時停用MPE 910。在ROM初始化完成之後,ROM在一特定位址(例如0000h)處之將執行傳遞給系統程式碼記憶體911。
接下來,系統程式碼開始執行並使用一特定資料指標(例如000Fh)來讀取使用者載入程式起始頁位址913並將其寫入至ULDR暫存器915。在系統初始化完成之後,系統程式碼跳轉以定址ULDR*快閃記憶體頁大小+一特定頁位址,例如0000h。此跳轉自動將PRIV降至中間916。
使用者載入程式碼開始執行並使用ULDR*快閃記憶體頁大小之資料指標+一特定頁位址(例如0Fh)來讀取使用者應用程式起始頁位址並將其寫入至UAPP暫存器中918。在使用者載入程式初始化完成之後,使用者載入程式碼跳轉以定址UAPP*快閃記憶體頁大小+一特定頁位址,例如0000h。此跳轉自動將PRIV降至低919。隨後,將進行正常程式碼執行920。熟習此項技術者將認識到,上述步驟可應用於具有一不同數量之特殊權限級別之應用。
M. 硬體加密器
圖7圖解闡釋根據本發明之各實施例之微控制器100內之硬體加密器104及其介面之主功能區塊。於某些實施例中,一雙向硬體加密器104給使用者程式記憶體提供額外保護以防止判定數位內容之嘗試。在此特定設計中,加密器104僅應用於快閃記憶體106但將根據需要可適用於其他記憶體技術。
加密器104與MMU 103耦合,以截取系統位址及介接快閃記憶體106之資料匯流排。加密器104由MMU 103控制,MMU 103置入自動將所選資料自快閃記憶體傳送至本端暫存器之特殊快閃記憶體控制邏輯及狀態機。於各實施例中,該加密器包含五個主功能區塊:
1. 雜湊函數701基於加密密鑰提供一長偽隨機序列並創建一雜湊摘要。
2. SCRAM暫存器702提供一由對該雜湊摘要之進一步操縱而引起之中間密鑰流。
3. 加密區塊703提供一用於加密純文字資料並解密加密文字資料之位元流產生器。
4. 位址位元隨機排列器705擾亂快閃實體記憶體位置。
5. 檢查器704「檢查」是否有特殊資料型樣。若偵測到此等型樣,則採取特殊動作。
於本發明之各實施例中,該等功能操作對使用者透明。除在一開機重設期間啟動之自動載入功能以外,作為CPU之提取循環中之路徑延遲之一部分,在運行時進行其他操作,包括記憶體存取。對於微控制器100,此在某些實例中係在一個時脈循環內完成。
1. 雜湊函數及秘密SCRAM暫存器
於某些實施例中,在由一開機重設觸發之重設期間啟動雜湊函數701。MMU 103含有一狀態機,該狀態機自動地自位於快閃記憶體106中之快閃記憶體資訊區塊讀出加密密鑰同時使系統保持處於重設狀態。雜湊區塊701處理一長二元序列並產生一摘要。該摘要儲存於給加密區塊703提供中間密鑰序列之SCRAM暫存器702中。
根據各實施例,雜湊函數701實施支援加密密鑰之512位元區塊大小之安全雜湊演算法(SHA)中之一者。為了限制SCRAM暫存器702之大小,在該當前實施形式中,該雜湊摘要在保存至SCRAM暫存器702之前被截短。當僅有限秘密儲存器可用時,雜湊函數701可係一恆等函數,此乃因SCRAM暫存器701之大小與所儲存秘密之大小可完全相同。該等SHA演算法之長度依賴於複雜運算之多個舍入。冗長延遲並不重要,此乃因SCRAM暫存器702只有在一開機重設情況下才需要更新。
由於儲存於該資訊區塊中之資料未經加密,因此任何未用記憶體位置皆可程式化有隨機資料。另外,可擾亂該資訊區塊之位址,以使洩露使用者秘密及加密密鑰之努力變得更加困難。
2. 加密區塊
於本發明之某些實施例中,加密區塊703與MMU 103與快閃記憶體106之間的系統資料匯流排一致置入。系統位址匯流排亦耦合至加密區塊703,以給一實體位址提供用於密鑰流產生之密鑰序列。端視操作模式(一載入程式模式或一正常操作模式),該實體位址來自不同源。
在該載入程式模式期間,該實體位址係源自用於對快閃記憶體106進行記憶體初始化及系統級程式燒錄之FDATA。在此操作模式下,駐存於公用程式ROM 105中之記憶體常式由啟動載入程式或主程式調用。此等記憶體常式處理使用者識別、快閃記憶體抹除及程式化協定、操作序列及時序。存取控制由硬體及記憶體區段特殊權限強制實施。加密區塊703正加密欲儲存至快閃記憶體106之純文字碼。
在該正常操作模式期間,該實體位址可源自指令指標(IP)或資料指標(CP、FP、DP0或DP1)。在正常操作中,指令碼係在藉由該IP定址時預取。該加密區塊將加密文字碼解密至解碼器以用於CPU執行。當解碼一讀取操作時,自現用資料指標擷取實體位址以讀出快閃記憶體資料。該加密區塊亦經由輸送網路將加密文字資料解密至目的地暫存器。存取控制由硬體及記憶體區段特殊權限強制實施。正如在載入程式模式中,一寫入操作係藉由一對公用程式ROM 105之副常式呼叫來完成。
圖8顯示一方塊圖800,其圖解闡釋根據本發明之各實施例之加密區塊之基本功能及資料路徑。SCRAM暫存器702,連同CONST暫存器801給加密區塊703提供隨機序列以用於子密鑰產生。SCRAM暫存器702含有一由雜湊函數701產生之雜湊摘要,例如一64位元雜湊。CONST暫存器801係硬接線至晶片中之預定隨機選取號碼。此等常數,連同來自SCRAM暫存器702之偽隨機序列有效地形成一長偽隨機序列並向密鑰流添加熵而無需任何硬體加法器。此意謂該偽隨機序列之一半駐存於晶片邏輯中,而另一半駐存於非揮發性記憶體中。
於本發明之某些實施例中,加密區塊703採用目標指令字之實體位址並使用由子密鑰產生區塊803所產生之兩個位元流來開始該過程。此等位元流係在一二元和運算之後由位址位元控制之兩個64位元運算之結果。
密鑰及資料排列之原始二元運算定義如下:
XOR-按位異或
ADD-加法模216
ROL-字之左旋轉
MOD-八位元模
MUX-多工器
位址排列區塊804接受一子密鑰及該實體位址。首先經由該八位元模(「MOD」)來處理該位址之較低位元組以產生加法模216 (「ADD」)及左旋轉(「ROL」)運算之一輸出。該MOD基本上係一序列憑藉一用於最後輸出選擇之多工器之加法運算。所得位元流用於位址及資料變換兩者。該實體位址變換係該位元流之一簡單二元和。
該資料排列係一序列原始運算。資料排列區塊805圖解闡釋於圖8中。一多工器(「MUX」)區塊將自該子密鑰產生器供應之子密鑰及來自該位址排列區塊之位元流壓縮成一單個位元流。重新排列至該MUX之輸入之位元次序且該選擇取決於自SCRAM暫存器702供應之選擇器位元之二元值。藉由憑藉經變換位址位元流之加法模216 運算來進一步擴散此位元流。在一ROL位元旋轉之後,根據所需操作將所得位元流與用於加密或解密之資料二元相加。
3. 位址位元隨機排列
根據本發明之各實施例,位址位元隨機排列器705與該實體位址匯流排一致安置以藉由改變儲存位置來對記憶體內容添加混淆。
當存取快閃記憶體106時,一簡單位址位元隨機排列器705重新排序且可能逆轉位址位元。位址位元隨機排列器705可係靜態的。在不進行隨機排列之情況下,習知啟動碼將位於已知位置0000h處且中斷向量碼將位於已知表位址位置處。位址位元隨機排列只可在一快閃記憶體頁內進行以支援應用程式級程式燒錄。位址位元隨機排列只應用於快閃程式記憶體106。若位址位元隨機排列在不進行碼擾亂且知道公用程式ROM內容之情況下應用於公用程式ROM 105,則可判定快閃記憶體之隨機排列方案,若使用相同方案的話。
4. 檢查器
檢查器區塊704主要含有用於處理因快閃記憶體106之特性而引起之特殊資料型樣之比較器。針對某些實施例,存在下文所提到之兩種特殊情況。
在第一種情況下,微控制器100嘗試用型樣FFFFh來程式化(留下未程式化)一快閃記憶體字位址。隨著加密啟用,可將目標字處之快閃記憶胞程式化至0,因此需要抹除才可對該字實施額外程式化。此將不對使用者透明,因為使用者將預期能夠程式化被故意留下未程式化之字。該FFFFh資料型樣不應由加密區塊703加密或解密。
嘗試用一當用密鑰流加密時之型樣來程式化一快閃記憶體字將產生該FFFFh型樣。由於將不解密該FFFFh型樣,因此不應將該FFFFh型樣之經加密版本呈現於該快閃記憶體中,因為此將造成判定快閃記憶體106中之既定型樣之一難題。此等型樣不應由加密區塊703加密或解密。
在第二種情況下,檢查器704電路對照該FFFFh位元型樣來比較加密區塊703之輸入與輸出資料。
對於寫入操作,若純文字輸入為FFFFh,則FFFFh繞過加密區塊且被程式化至快閃記憶體106。另一選擇係,若加密區塊輸出為FFFFh,則捨棄經加密資料。純文字資料繞過加密區塊703且被程式化至快閃記憶體106。
對於指令提取及讀取操作,若快閃記憶體輸出資料為FFFFh,則FFFFh繞過加密區塊703且被分派至解碼器或目的地暫存器。另一選擇係,若加密區塊703輸出為FFFFh,則捨棄加密器資料。快閃記憶體106輸出資料繞過加密區塊703且被分派至解碼器或目的地暫存器。
5. 加密器操作
圖10係一流程圖1000,其圖解闡釋本發明之各實施例之加密器操作。在一POR 1001之後,自非揮發性記憶體106提取1002加密密鑰。然後,憑藉儲存於密鑰暫存器1005中之所得摘要,經由一雜湊運算1003來處理該加密密鑰。然後,將此摘要連同來自硬體加密密鑰1005之輸入、來自MMU 103之程式位址1006及輸入資料1007呈現給資料加密1008。然後,檢查輸入資料1007及資料加密1008之輸出是否有特殊型樣1009、1010、1011、1012。若偵測到任何特殊型樣,則使用輸入資料,以繞過加密操作。否則,將經加密資料耦合至非揮發性記憶體106或MMU 103。參見輸出資料1013、至NVM以進行儲存操作1016、至MMU以進行載入操作1017之步驟。同時,位址隨機排列器1014擾亂該等程式位址。
上文出於清晰及理解之目的而對本發明之上述說明進行了闡述。並非旨在將本發明限制至所揭示之精確形式。可具有各種修改,此仍歸屬於隨附申請專利範圍之範疇及等效範疇。
100‧‧‧安全微控制器
101‧‧‧微控制器核心
102‧‧‧存取控制
103‧‧‧記憶體管理單元
104‧‧‧雙向硬體加密器
105‧‧‧唯讀記憶體
106‧‧‧快閃記憶體
107‧‧‧靜態隨機存取記憶體
201‧‧‧存取監視器
700‧‧‧加密器功能及介面
701‧‧‧雜湊區塊
702‧‧‧SCRAM暫存器
703‧‧‧加密區塊
704‧‧‧檢查器
705‧‧‧位址位元隨機排列器
800‧‧‧方塊圖
801‧‧‧CONST暫存器
803‧‧‧子密鑰產生區塊
804‧‧‧位址排列區塊
805‧‧‧資料排列區塊
900‧‧‧流程圖
901‧‧‧步驟
902‧‧‧步驟
903‧‧‧步驟
904‧‧‧步驟
905‧‧‧步驟
906‧‧‧步驟
907‧‧‧步驟
908‧‧‧步驟
909‧‧‧步驟
910‧‧‧步驟
911‧‧‧步驟
912‧‧‧步驟
913‧‧‧步驟
914‧‧‧步驟
915‧‧‧步驟
916‧‧‧步驟
917‧‧‧步驟
918‧‧‧步驟
919‧‧‧步驟
920‧‧‧步驟
921‧‧‧步驟
922‧‧‧步驟
923‧‧‧步驟
924‧‧‧步驟
925‧‧‧步驟
926‧‧‧步驟
927‧‧‧步驟
928‧‧‧步驟
929‧‧‧步驟
930‧‧‧步驟
931‧‧‧步驟
932‧‧‧步驟
1000‧‧‧流程圖
1001‧‧‧步驟
1002‧‧‧步驟
1003‧‧‧步驟
1004‧‧‧步驟
1005‧‧‧步驟
1006‧‧‧步驟
1007‧‧‧步驟
1008‧‧‧步驟
1009‧‧‧步驟
1010‧‧‧步驟
1011‧‧‧步驟
1012‧‧‧步驟
1013‧‧‧步驟
1014‧‧‧步驟
1015‧‧‧步驟
1016‧‧‧步驟
1017‧‧‧步驟
將參考本發明實施例,其實例可圖解闡釋於附圖中。此等圖式意欲為闡釋性的,而非限制性的。儘管已在此等實施例之上下文中大體闡述了本發明,但應瞭解,並非意欲將本發明之範疇限制至此等特定實施例。
圖(「Fig.」)1圖解闡釋一根據本發明之各實施例之智慧財產內容保護微控制器(或安全微控制器)方塊圖; 圖2圖解闡釋本發明之各實施例之存取控制及關聯電路系統之一方塊圖;圖3係一描述根據本發明之各實施例之程式記憶體邊界及特殊權限級別之表;圖4係一根據本發明之各實施例之三記憶體區段之程式記憶體分段之一圖示;圖5係一根據本發明之各實施例之兩記憶體區段之程式記憶體分段之一圖示;圖6係一根據本發明之各實施例之三記憶體區段之特殊權限暫存器級別之一表;圖7係本發明之各實施例之加密器功能區塊及介面之一方塊圖;圖8係根據本發明之各實施例之加密區塊內部結構之一方塊圖;圖9係一圖解闡釋根據本發明之各實施例之多層存取控制之操作之流程圖;及圖10係一圖解闡釋根據本發明之各實施例之加密器之操作之流程圖。
100...安全微控制器
101...微控制器核心
102...存取控制
103...記憶體管理單元
104...雙向硬體加密器
105...唯讀記憶體
106...快閃記憶體
107...靜態隨機存取記憶體

Claims (31)

  1. 一種安全微控制器,其包含:一記憶體,其儲存資料;一處理單元,其產生複數個命令;一存取控制,其經耦合以接收該複數個命令,該存取控制具有複數個特殊權限暫存器,該複數個特殊權限暫存器定義對儲存於該記憶體內之該資料之存取權限;一第一特殊權限暫存器,其位於該複數個特殊權限暫存器內,該第一特殊權限暫存器定義對該記憶體內之該資料之一第一部分之一第一組存取權限;一第二特殊權限暫存器,其位於該複數個特殊權限暫存器內,該第二特殊權限暫存器定義對該記憶體內之該資料之一第二部分之一第二組存取權限,該第二部分不同於該第一部分;及一例外處理常式(handler),其耦合至該存取控制,回應於對資料之該第一部分之一存取命令無法滿足與該資料之該第一部分相關聯之該第一組存取權限而中斷該存取命令;其中該等存取權限與該安全微控制器之複數個使用者特殊權限級別相關。
  2. 如請求項1之安全微控制器,其中該存取控制進一步包含:一位址監視器,其將該複數個命令內之一第一命令之一記憶體位址與該第一特殊權限暫存器相關聯;及 一位址比較器,其基於在該第一特殊權限暫存器內定義之存取權限來准予對該資料之該第一部分之存取。
  3. 如請求項2之安全微控制器,其進一步包含耦合至該記憶體、該處理單元及該存取控制並提供複數個輸出至該記憶體及該存取控制之一記憶體管理單元,該記憶體管理單元提供對該記憶體、該處理單元與該存取控制之間的資料傳送之管理。
  4. 如請求項3之安全微控制器,其中該記憶體包含唯讀記憶體、非揮發性記憶體及資料記憶體。
  5. 如請求項4之安全微控制器,其中該資料記憶體係隨機存取記憶體,且其中非揮發性記憶體係快閃記憶體。
  6. 如請求項4之安全微控制器,其進一步包含駐存於該唯讀記憶體及該非揮發性記憶體中之程式記憶體。
  7. 如請求項6之安全微控制器,其中該非揮發性記憶體進一步包含:複數個記憶體區段;該複數個記憶體區段內之該等記憶體區段中之每一者對應於該複數個使用者特殊權限級別內之一特定特殊權限級別,以使得一第一使用者將一第一指令碼載入至對應於該複數個使用者特殊權限級別內之一第一特殊權限級別之一第一記憶體區段,且使得一第二使用者將一第二指令碼載入至對應於該複數個使用者特殊權限級別內之一第二特殊權限級別之一第二記憶體區段;及其中對該第一記憶體區段及該第二記憶體區段之存取 權限係由該第一特殊權限級別及該第二特殊權限級別定義。
  8. 如請求項7之安全微控制器,其中與一較低特殊權限級別相關聯之該第二使用者被阻止存取對應於該第一特殊權限級別之該第一記憶體區段。
  9. 如請求項7之安全微控制器,其中該複數個使用者特殊權限級別內之該第一特殊權限級別係基於該存取控制之一操作狀態而判定,該操作狀態之特徵在於:該第一指令碼之該第一特殊權限級別被定義為下列中之一較小者:正在於其中執行該指令碼的該記憶體區段之一最大特殊權限級別;或在該第一特殊權限暫存器中定義之一值。
  10. 如請求項7之安全微控制器,其中該唯讀記憶體具有該第一特殊權限級別,且該資料記憶體具有該第二特殊權限級別,其中該第一特殊權限級別高於該第二特殊權限級別。
  11. 如請求項7之安全微控制器,其中一系統程式碼由一安全程序保護而免遭安全性攻擊。
  12. 如請求項11之安全微控制器,其中該安全程序包含以下步驟:在中斷及程式庫函式在一指令碼操作期間提升一當前特殊權限級別之後,退出該指令碼操作之前,降低該當前特殊權限級別;針對降低該特殊權限級別之中斷、或運行於包含該系 統程式碼之一記憶體區段外部之中斷碼,在其中指令碼提升該當前特殊權限級別之該指令碼操作之一持續時間期間停用中斷,及其中該系統程式碼被阻止保存並恢復該指令碼操作之該當前特殊權限級別。
  13. 如請求項11之安全微控制器,其中該安全程序包含以下步驟:阻止一指令碼操作經由一副常式呼叫來提升一當前特殊權限級別。
  14. 如請求項11之安全微控制器,其中該安全程序包含以下步驟:在提升一當前特殊權限級別之前檢查一系統程式庫之引數,其中該安全程序係使用一第二特殊權限暫存器及一第三特殊權限暫存器以一原子方式實施。
  15. 如請求項7之安全微控制器,其中該非揮發性記憶體進一步包含儲存使用者秘密資料及加密密鑰資料之一資訊區塊;及其中該資訊區塊之複數個未用記憶體位置係以隨機資料程式化且該資訊區塊之複數個位址被擾亂。
  16. 如請求項15之安全微控制器,其中該唯讀記憶體含有具有一最高特殊權限級別且可存取該等記憶體區段中之任一者之啟動載入程式,且其中該使用者秘密資料係用於建立與一遠端安全載入程式的一經鑑別連接。
  17. 如請求項15之安全微控制器,其進一步包含一硬體加密 器,該硬體加密器包含:一雜湊區塊,其提供對一加密密鑰之一長偽隨機序列之快速壓縮以用於密鑰產生;若干擾亂暫存器,用於秘密密鑰儲存;一位址位元隨機排列器,其提供經擾亂記憶體位址位置;一加密區塊,其提供加密及解密;及其中密碼編譯操作係與處理單元執行時期平行執行。
  18. 如請求項17之安全微控制器,其中該硬體加密器進一步包含:一檢查器,其經由一雙向資料匯流排耦合至該加密區塊及該記憶體管理單元,該檢查器提供特殊資料型樣管理,該雜湊區塊經耦合以自該非揮發性記憶體接收資料,該雜湊區塊基於該加密密鑰之該偽隨機序列創建一資料摘要,該等擾亂暫存器經耦合以自該雜湊區塊接收資料,該等擾亂暫存器產生由對該雜湊資料摘要之進一步操縱而引起之一密鑰流,該位址位元隨機排列器經耦合以接收一記憶體位址及一控制信號,該位址位元隨機排列器擾亂該等記憶體位址位置,且該加密區塊經耦合以接收耦合自該擾亂暫存器之資料,且經由該雙向資料匯流排耦合至該記憶體管理單元、該非揮發性記憶體及該檢查器,該加密區塊產生經加密純文字資料及經解密加密文字資料之一位元流。
  19. 如請求項18之安全微控制器,其中該加密區塊進一步包含: 複數個介面,偽隨機序列係在其中自該等擾亂暫存器及常數暫存器接收的;一子密鑰產生區塊,其經耦合以自來自該記憶體管理單元之至少一個實體位址接收資料,該子密鑰產生區塊產生一子密鑰;一位址排列區塊,其耦合至該子密鑰產生區塊及該記憶體管理單元,該位址排列區塊提供一位元流至一資料排列區塊;該資料排列區塊,其耦合至該等擾亂暫存器、該子密鑰產生區塊、該位址排列區塊及來自該記憶體管理單元之一資料輸入,該資料排列區塊產生耦合至該檢查器及記憶體管理單元之一加密器/解密器位元流;及其中該等常數暫存器係硬接線於該安全微控制器中之預定隨機選取號碼。
  20. 如請求項18之安全微控制器,其中該實體位址係源自一外部資料埠、或一指令指標、或用於對該非揮發性記憶體進行記憶體初始化及系統級程式燒錄之一資料指標。
  21. 如請求項19之安全微控制器,其中該位址排列區塊藉由實施以下步驟來產生一位元流:接收該子密鑰及該實體位址;經由一項八位元模運算來處理該實體位址之一較低位元組以產生一第一位元流;經由一加法模216 運算來處理該第一位元流以產生一第二位元流; 對該第二位元流實施一左旋轉運算以產生一位址排列位元流;及其中該項八位元模係憑藉一多工器之一加法運算序列。
  22. 如請求項19之安全微控制器,其中該資料排列區塊藉由實施以下步驟來產生一輸出:使用複數個多工器將來自該子密鑰產生器之該子密鑰與來自該位址排列區塊之該位元流壓縮成一第一位元流;經由憑藉一經變換位址位元流之一加法模216 運算來處理該第一位元流以產生一第二位元流;對該第二位元流實施一左旋轉運算以產生一最終位元流;使用該最終位元流來加密或解密該輸入資料;及將該加密器/解密器位元流耦合至該加密區塊及該檢查器。
  23. 如請求項19之安全微控制器,其中該檢查器包含用於處置與該非揮發性記憶體之一特性相關之特殊資料型樣之比較器且其中該特殊資料型樣被阻止由該加密區塊加密或解密。
  24. 一種硬體加密器,其包含:一雜湊區塊,其自一記憶體及一處理器單元接收雙向資料且提供對一加密密鑰之一長偽隨機序列之快速壓縮以用於密鑰產生; 若干暫存器,用於秘密密鑰儲存;一位址位元隨機排列器,其提供經擾亂記憶體位置;一加密區塊,其提供加密及解密;及其中密碼編譯操作係與處理單元執行時期平行執行。
  25. 如請求項24之硬體加密器,其進一步包含:一雜湊區塊,其經耦合以自一非揮發性記憶體接收資料,該雜湊區塊基於該加密密鑰之該偽隨機序列創建一資料摘要;一擾亂暫存器,其經耦合以自該雜湊區塊接收資料,該擾亂暫存器產生由對該資料摘要之進一步操縱而引起之一中間密鑰流;該位址位元隨機排列器,其經耦合以接收一位址輸入及自一記憶體管理單元耦合之一控制輸入,且該位址位元隨機排列器具有耦合至該非揮發性記憶體之一位址輸出,該位址位元隨機排列器擾亂非揮發性記憶體位址位置;一檢查器,其經由一雙向資料匯流排耦合至該加密區塊及該記憶體管理單元,該檢查器提供特殊資料型樣管理;一加密區塊,其經耦合以接收耦合自該擾亂暫存器之資料,且經由該雙向資料匯流排耦合至該記憶體管理單元、該非揮發性記憶體及該檢查器,該加密區塊產生一加密純文字資料並解密加密文字資料之位元流;及其中該加密器自該非揮發性記憶體接收該加密密鑰。
  26. 一種用於保全一微控制器內之內容之方法,該方法包含以下步驟:將接收自一第一使用者之一第一組資料儲存於一微控制器之一記憶體內;關聯對該第一組所儲存資料之一第一組存取權限;保護對定義對該第一組所儲存資料之存取特殊權限之該第一組存取權限;將接收自一第二使用者之一第二組資料儲存於該微控制器之該記憶體內;關聯對該第二組所儲存資料之一第二組存取權限;及保護對定義對該第二組所儲存資料之存取特殊權限之該第二組存取權限;且其中該第一組存取權限及該第二組存取權限提供針對儲存在該記憶體內的不同資料之不同保護級別。
  27. 如請求項26之方法,其進一步包含:將與該等第一存取權限相關聯之該第一組資料及與該等第二存取權限相關聯之該第二組資料儲存於一非揮發性記憶體之不同區段中;基於一使用者之該等存取權限來控制對該等記憶體區段之該存取;其中存取權限係由與一記憶體管理單元耦合之硬體及駐存於一公用程式ROM中之程式常式強制實施。
  28. 一種用於保護一微控制器中之資料之方法,其包含以下步驟: 自一非揮發性記憶體提供一加密密鑰;將具有一偽隨機序列之該加密密鑰雜湊成表示該加密密鑰之一密碼編譯變換之一資料摘要;將該資料摘要儲存於一暫存器中;提供密鑰序列以將該資料摘要耦合至一加密區塊;使用該密鑰序列來加密一位址及關聯資料以便產生一經加密位元流;其中隨機排列該位址並將其儲存於該非揮發性記憶體中;及其中所有密碼編譯操作係與一處理器單元執行時期平行執行。
  29. 如請求項28之方法,其進一步包含比較該加密區塊之該關聯資料以偵測無法憑藉一非揮發性記憶體正確地維持之一特殊型樣之一存在之步驟;回應於偵測到該特殊型樣,將該關聯資料儲存於一快閃記憶體內;及回應於未偵測到該特殊型樣,儲存該加密器位元流。
  30. 如請求項29之方法,其中該加密區塊之該關聯資料之該特殊型樣的判定係藉由執行以下步驟:針對寫入操作,判定該關聯資料之輸入資料是否係該特殊型樣,若該輸入資料係該特殊型樣則繞過該加密區塊且被程式化至該非揮發性記憶體;針對寫入操作,判定該關聯資料之輸出資料是否係該特殊型樣,若該輸出資料係該特殊型樣,則捨棄該經加 密位元流且該關聯資料之該輸入資料繞過該加密區塊且被程式化至該非揮發性記憶體中;針對讀取操作,判定該非揮發性記憶體之輸出資料是否係一特殊型樣,若該輸出資料係該特殊型樣則繞過該加密區塊且被分派至一目的地;針對讀取操作,判定該經解密資料之輸出資料是否係該特殊型樣,若該輸出資料係該特殊型樣則捨棄該一解密位元流且該非揮發性記憶體之該輸出資料繞過該加密區塊且被分派至目的地。
  31. 一種安全微控制器,其包含:一記憶體,其儲存資料;一處理單元,其產生複數個命令;一存取控制,其經耦合以接收該複數個命令,該存取控制具有複數個特殊權限暫存器,該複數個特殊權限暫存器定義對儲存於該記憶體內之該資料之存取權限;一第一特殊權限暫存器,其位於該複數個特殊權限暫存器內,該第一特殊權限暫存器定義對該記憶體內之該資料之一第一部分之一第一組存取權限;一第二特殊權限暫存器,其位於該複數個特殊權限暫存器內,該第二特殊權限暫存器定義對該記憶體內之該資料之一第二部分之一第二組存取權限,該第二部分不同於該第一部分;及一例外處理常式,其耦合至該存取控制,回應於對該資料之該第一部分之一存取命令無法滿足與資料之該第 一部分相關聯之該第一組存取權限而中斷該存取命令;及一硬體加密器,其包含:一雜湊區塊,其經耦合以自該記憶體及該處理單元接收雙向資料,該雜湊區塊提供對一加密密鑰之一長偽隨機序列之快速壓縮以用於密鑰產生,一位址位元隨機排列器,其耦合至一記憶體管理單元及該記憶體,該位址位元隨機排列器提供經擾亂記憶體位置,一加密區塊,其提供加密及解密且被耦合至該記憶體管理單元及該記憶體,其中該硬體加密器自該記憶體接收一加密密鑰。
TW098134676A 2008-10-23 2009-10-13 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法 TWI460604B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/257,339 US8555015B2 (en) 2008-10-23 2008-10-23 Multi-layer content protecting microcontroller

Publications (2)

Publication Number Publication Date
TW201030550A TW201030550A (en) 2010-08-16
TWI460604B true TWI460604B (zh) 2014-11-11

Family

ID=41469877

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098134676A TWI460604B (zh) 2008-10-23 2009-10-13 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法

Country Status (5)

Country Link
US (2) US8555015B2 (zh)
CN (1) CN102197382B (zh)
DE (1) DE112009002502T5 (zh)
TW (1) TWI460604B (zh)
WO (1) WO2010047930A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI756156B (zh) * 2019-04-07 2022-02-21 新唐科技股份有限公司 監控系統開機之安全裝置及其方法
TWI770506B (zh) * 2018-01-30 2022-07-11 日商鎧俠股份有限公司 資料處理方法、資料蓄積裝置及資訊處理系統
TWI805341B (zh) * 2022-04-27 2023-06-11 智原科技股份有限公司 系統單晶片架構及其資料保護方法
TWI813815B (zh) * 2019-05-09 2023-09-01 韓商愛思開海力士有限公司 記憶體模組、其操作方法、記憶體系統以及其操作方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8639945B2 (en) * 2010-05-25 2014-01-28 Via Technologies, Inc. Branch and switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
FR2976147B1 (fr) * 2011-05-30 2013-11-22 Maxim Integrated Products Schema d'entrelacement de donnees pour une memoire externe d'un microcontroleur securise
US9262340B1 (en) * 2011-12-29 2016-02-16 Cypress Semiconductor Corporation Privileged mode methods and circuits for processor systems
KR101975027B1 (ko) 2012-05-04 2019-05-03 삼성전자주식회사 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들
US9754133B2 (en) * 2013-03-14 2017-09-05 Microchip Technology Incorporated Programmable device personalization
US9208105B2 (en) * 2013-05-30 2015-12-08 Dell Products, Lp System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support
US9530000B2 (en) 2013-06-14 2016-12-27 Microsoft Technology Licensing, Llc Secure privilege level execution and access protection
CN103413098B (zh) * 2013-08-01 2016-05-18 广州杰赛科技股份有限公司 硬件加密方法与系统及其装置
FR3043229B1 (fr) * 2015-11-03 2018-03-30 Proton World International N.V. Demarrage securise d'un circuit electronique
US10146681B2 (en) * 2015-12-24 2018-12-04 Intel Corporation Non-uniform memory access latency adaptations to achieve bandwidth quality of service
US9990474B2 (en) * 2016-03-16 2018-06-05 Konica Minolta Laboratory U.S.A., Inc. Access control for selected document contents using document layers and access key sequence
US11442760B2 (en) * 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
US10389693B2 (en) * 2016-08-23 2019-08-20 Hewlett Packard Enterprise Development Lp Keys for encrypted disk partitions
US10379768B2 (en) * 2016-09-30 2019-08-13 Intel Corporation Selective memory mode authorization enforcement
CN106919865B (zh) * 2017-03-02 2020-06-05 上海东软载波微电子有限公司 非易失性存储器数据加密系统
FR3069935A1 (fr) * 2017-08-01 2019-02-08 Maxim Integrated Products, Inc. Dispositifs et procedes de protection de propriete intellectuelle de logiciel pour des plates-formes integrees
US10872043B2 (en) * 2017-08-17 2020-12-22 Microchip Technology Incorporated Systems and methods for integrity checking of code or data in a mixed security system while preserving confidentiality
GB201721608D0 (en) * 2017-12-21 2018-02-07 Nordic Semiconductor Asa A hardware cipher engine
JP7109992B2 (ja) * 2018-05-22 2022-08-01 キオクシア株式会社 メモリシステムおよび制御方法
US11113422B2 (en) 2018-08-03 2021-09-07 Micron Technology, Inc. Data protection in computer processors
US11074198B2 (en) * 2018-09-18 2021-07-27 Micron Technology, Inc. Key management in computer processors
CN111240581B (zh) * 2018-11-29 2023-08-08 北京地平线机器人技术研发有限公司 存储器访问控制方法、装置和电子设备
EP3736716B1 (en) * 2019-05-10 2021-12-22 Aptiv Technologies Limited Method for protecting an electronic control unit
CN110554298B (zh) * 2019-08-27 2022-03-22 江苏芯盛智能科技有限公司 芯片和芯片测试方法
CN110990331B (zh) * 2019-12-03 2023-09-05 飞腾信息技术有限公司 片上系统密钥管理方法、装置、设备及可读存储介质
US11281795B2 (en) * 2019-12-24 2022-03-22 Stmicroelectronics International N.V. Hierarchical random scrambling of secure data storage resulting in randomness across chips and on power on resets of individual chips
US11227046B2 (en) 2019-12-24 2022-01-18 Stmicroelectronics International N.V. Dynamic randomization of password challenge
US20220166762A1 (en) * 2020-11-25 2022-05-26 Microsoft Technology Licensing, Llc Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith
CN112885403B (zh) * 2021-02-08 2023-07-14 山东云海国创云计算装备产业创新中心有限公司 一种Flash控制器的功能测试方法、装置及设备
CN113420308A (zh) * 2021-07-01 2021-09-21 联芸科技(杭州)有限公司 用于加密存储器的数据访问控制方法及控制系统
WO2023238555A1 (ja) * 2022-06-10 2023-12-14 株式会社オートネットワーク技術研究所 車載装置、情報処理方法および情報処理プログラム
CN116595594A (zh) * 2023-05-19 2023-08-15 无锡摩芯半导体有限公司 一种基于ucb的flash的安全控制方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003133A (en) * 1997-11-17 1999-12-14 Motorola, Inc. Data processor with a privileged state firewall and method therefore
US20030084308A1 (en) * 2001-10-03 2003-05-01 Van Rijnswou Sander Matthijs Memory encryption
US20040163013A1 (en) * 2002-11-18 2004-08-19 Arm Limited Function control for a processor
US6792528B1 (en) * 2000-05-17 2004-09-14 Chien-Tzu Hou Method and apparatus for securing data contents of a non-volatile memory device
US6845159B1 (en) * 1998-10-07 2005-01-18 Protego Information Ab Processing method and apparatus for converting information from a first format into a second format
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
TW200746059A (en) * 2006-01-12 2007-12-16 Mediatek Inc Embedded system insuring security and integrity, and method of increasing security thereof
US20080155258A1 (en) * 2006-12-21 2008-06-26 Spansion Llc Non-volatile memory sub-system integrated with security for storing near field transactions
US20080184220A1 (en) * 2000-11-17 2008-07-31 Shao-Chun Chen Initialzation and update of software and/or firmware in electronic devices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504814A (en) * 1991-07-10 1996-04-02 Hughes Aircraft Company Efficient security kernel for the 80960 extended architecture
AU2001243365A1 (en) * 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
US6952778B1 (en) * 2000-10-26 2005-10-04 Cypress Semiconductor Corporation Protecting access to microcontroller memory blocks
DE10115118A1 (de) 2001-03-27 2002-10-10 Philips Corp Intellectual Pty Verfahren zur Übertragung von Daten über einen Datenbus
US7631160B2 (en) * 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
WO2004046916A2 (en) * 2002-11-18 2004-06-03 Arm Limited Exception types within a secure processing system
FR2849233B1 (fr) 2002-12-24 2005-05-20 Trusted Logic Procede de securisation des systemes informatiques par confinement logiciel
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
US20060265544A1 (en) * 2005-05-17 2006-11-23 John Rudelic Internally authenticated flash remediation
FR2888433A1 (fr) * 2005-07-05 2007-01-12 St Microelectronics Sa Protection d'une quantite numerique contenue dans un circuit integre comportant une interface jtag
EP1742152B1 (en) 2005-07-07 2012-09-12 Texas Instruments Inc. Method and system for a multi-sharing memory access control
US7543126B2 (en) 2005-08-31 2009-06-02 International Business Machines Corporation Apparatus, system, and method for implementing protected virtual memory subcontexts
JP4795812B2 (ja) * 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
JP2008027327A (ja) 2006-07-25 2008-02-07 Sony Corp メモリアクセス制御装置および方法、並びに、通信装置
JP4712017B2 (ja) * 2006-11-13 2011-06-29 韓國電子通信研究院 ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
US8307416B2 (en) 2007-01-03 2012-11-06 Texas Instruments Incorporated Data structures for use in firewalls
WO2008086611A1 (en) 2007-01-19 2008-07-24 Research In Motion Limited Selectively wiping a remote device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003133A (en) * 1997-11-17 1999-12-14 Motorola, Inc. Data processor with a privileged state firewall and method therefore
US6845159B1 (en) * 1998-10-07 2005-01-18 Protego Information Ab Processing method and apparatus for converting information from a first format into a second format
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
US6792528B1 (en) * 2000-05-17 2004-09-14 Chien-Tzu Hou Method and apparatus for securing data contents of a non-volatile memory device
US20080184220A1 (en) * 2000-11-17 2008-07-31 Shao-Chun Chen Initialzation and update of software and/or firmware in electronic devices
US20030084308A1 (en) * 2001-10-03 2003-05-01 Van Rijnswou Sander Matthijs Memory encryption
US20040163013A1 (en) * 2002-11-18 2004-08-19 Arm Limited Function control for a processor
TW200746059A (en) * 2006-01-12 2007-12-16 Mediatek Inc Embedded system insuring security and integrity, and method of increasing security thereof
US20080155258A1 (en) * 2006-12-21 2008-06-26 Spansion Llc Non-volatile memory sub-system integrated with security for storing near field transactions

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI770506B (zh) * 2018-01-30 2022-07-11 日商鎧俠股份有限公司 資料處理方法、資料蓄積裝置及資訊處理系統
TWI756156B (zh) * 2019-04-07 2022-02-21 新唐科技股份有限公司 監控系統開機之安全裝置及其方法
TWI813815B (zh) * 2019-05-09 2023-09-01 韓商愛思開海力士有限公司 記憶體模組、其操作方法、記憶體系統以及其操作方法
TWI805341B (zh) * 2022-04-27 2023-06-11 智原科技股份有限公司 系統單晶片架構及其資料保護方法

Also Published As

Publication number Publication date
TW201030550A (en) 2010-08-16
US20140040584A1 (en) 2014-02-06
CN102197382B (zh) 2016-01-13
WO2010047930A1 (en) 2010-04-29
US8555015B2 (en) 2013-10-08
US20100106954A1 (en) 2010-04-29
DE112009002502T5 (de) 2012-10-04
US9311255B2 (en) 2016-04-12
CN102197382A (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
TWI460604B (zh) 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法
US10360411B2 (en) Secure processing unit systems and methods
EP3757852B1 (en) Pointer based data encryption
US8572410B1 (en) Virtualized protected storage
US8656146B2 (en) Computer system comprising a secure boot mechanism
US11625337B2 (en) Encoded pointer based data encryption
JP3881942B2 (ja) 暗号化部を有する半導体装置
KR100294829B1 (ko) 플래시 메모리를 보호하는 방법 및 장치
US20200257827A1 (en) Memory write for ownership access in a core
US10237059B2 (en) Diversified instruction set processing to enhance security
US7975151B2 (en) Decryption key table access control on ASIC or ASSP
US20050283566A1 (en) Self testing and securing ram system and method
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
KR20050086782A (ko) 컨텐츠 처리 칩, 장치 및 방법
JP4580024B2 (ja) コンテンツ再生方法
JP4676547B2 (ja) 半導体装置およびそのブート方法
US20240104027A1 (en) Temporal information leakage protection mechanism for cryptographic computing
JP4336690B2 (ja) 外部インターフェースを有する半導体装置
Kemerlis et al. Enhancing Security by Diversifying Instruction Sets