TWI805341B - 系統單晶片架構及其資料保護方法 - Google Patents
系統單晶片架構及其資料保護方法 Download PDFInfo
- Publication number
- TWI805341B TWI805341B TW111116008A TW111116008A TWI805341B TW I805341 B TWI805341 B TW I805341B TW 111116008 A TW111116008 A TW 111116008A TW 111116008 A TW111116008 A TW 111116008A TW I805341 B TWI805341 B TW I805341B
- Authority
- TW
- Taiwan
- Prior art keywords
- volatile memory
- key
- encryption
- processing unit
- central processing
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 19
- 230000015654 memory Effects 0.000 claims abstract description 153
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本發明為一種系統單晶片架構,包括:一非揮發性記憶體;以及一系統單晶片。該系統單晶片包括:一中央處理器、一揮發性記憶體、一系統匯流排、一即時加解密電路、一記憶體介面、一計時器與一密鑰庫。該中央處理器、該揮發性記憶體與該即時加解密電路連接至該系統匯流排。該記憶體介面連接於該即時加解密電路與該非揮發性記憶體之間。該即時加解密電路連接至該密鑰庫,用以選擇該密鑰庫中的多個密鑰來進行一加密動作或一解密動作。於一電源開啟後,當該計時器未被禁能時,該計時器於一特定時間後暖重置該中央處理器,使得該中央處理器將該非揮發性記憶體的儲存格式由一初始格式改變為一工作格式。
Description
本發明是有關於一種電路架構及其資料保護方法,且特別是有關於一種外接非揮發性記憶體的系統單晶片(system on a chip,簡稱SoC)架構及其相關資料保護方法。
眾所周知,嵌入式系統(embedded system)中通常會使用系統單晶片(system on a chip,簡稱SoC)用來作為嵌入式系統的控制中心(control center)。一般來說,嵌入式系統中的系統單晶片架構是由系統單晶片以及外部(external)非揮發性記憶體(Non-volatile memory)所構成。也就是說,在系統單晶片架構中,系統單晶片會連接至一外部非揮發性記憶體(Non-volatile memory),而外部非揮發性記憶體中儲存系統單晶片所需執行的程式碼(program code)。基本上,競爭者可以很輕易的窺探外部非揮發性記憶體中的程式碼並得知系統單晶片的運作方式。
對於注重安全相關(security-related)的嵌入式系統中,會先將程式碼進行加密動作成為密文(ciphertext),並儲存至外部非揮發性記憶體。也就是說,進行加密動作之後的加密程式碼(encrypted program code)可視為
密文(ciphertext),而進行解密動作之後的解密程式碼(decrypted program code)可視為明文(plaintext)。而由於外部非揮發性記憶體中儲存密文,所以就算競爭者由外部非揮發性記憶體中竊取密文後也無法得知系統單晶片的運作方式。
請參照第1圖,其所繪示為習知嵌入式系統的系統單晶片架構。系統單晶片架構190包括系統單晶片100以及非揮發性記憶體160。系統單晶片100包括一中央處理器(CPU)110、內嵌式快閃記憶體(embedded Flash,簡稱eFlash)120、系統匯流排(system bus)130、即時加解密電路(On-The-Fly Decryption,以下簡稱OTFDEC電路)140、記憶體介面(memory interface)150。其中,內嵌式快閃記憶體120中儲存開機碼(boot code)。另外,系統單晶片100經由記憶體介面150連接至外部非揮發性記憶體160。
如第1圖所示,當電源開啟時,系統單晶片100根據內嵌式快閃記憶體120中的開機碼開始進行初始化程序(initialization)。首先,中央處理器110的指令指標(instruction pointer,簡稱IP)指向(point to)內嵌式快閃記憶體120的位址。中央處理器110經由系統匯流排130讀取並執行內嵌式快閃記憶體120中的開機碼,並完成初始化程序。
當初始化程序完成後系統單晶片100即可正常運作。於嵌入式系統正常運作時,中央處理器110的指令指標(instruction pointer)指向非揮發性記憶體160,使得中央處理器110存取非揮發性記憶體160中的密文。然而,由於中央處理器110無法直接執行密文中的加密程式碼(encrypted program code)。因此,OTFDEC電路140利用特定密鑰(Key)142來進行加密動作與解密動作。
舉例來說,OTFDEC電路140經由記憶體界面150讀取非揮發性記憶體160中的密文,並利用特定密鑰(Key)142對密文進行解密動作。轉換為明文(plaintext)後,中央處理器110即可執行明文中的解密程式碼。另外,當中央處理器110將資料儲存至非揮發性記憶體160時,OTFDEC電路140先對儲存資料進行加密動作,並轉換為密文,經由記憶體界面150存至非揮發性記憶體160。
由以上的說明可知,習知系統單晶片架構190中,在OTFDEC電路140、記憶體介面150、非揮發性記憶體160之間傳遞的都是密文。在中央處理器110、內嵌式快閃記憶體120、OTFDEC電路140之間傳遞的都是明文。因此,習知系統單晶片架構可以達到資料保護的目的。
再者,因為中央處理器110需要即時存取外接非揮發性記憶體160的資料,如果存取延遲(access latency)太長將會造成系統單晶片100的效能降低。所以OTFDEC電路140中的加解密演算法必須擁有低延遲特性。也就是說,OTFDEC電路140無法使用複雜加解密演算法。如果OTFDEC電路140使用複雜的加解密演算法,將會造成存取延遲(access latency)太長。
另外,為了防止競爭者觀察明文與密文之間的關係,而破解出特定密鑰(Key)142。所以不同的系統單晶片架構190中,每一個OTFDEC電路140所使用的特定密鑰(Key)142皆不同。並且,每一個OTFDEC電路140所使用的特定密鑰(Key)142是無法被讀取的唯一特定密鑰(Key)142。
請參照第2圖,其所繪示為習知n個相同的嵌入式系統的示意圖。n個相同的嵌入式系統有相同的系統單晶片架構。再者,每一個系統單
晶片201~20n連接至對應的非揮發性記憶體261~26n。其中,每一個系統單晶片201~20n皆相同於第1圖的系統單晶片100,其內部連接關係不再贅述。
基本上,系統單晶片201~20n內部的中央處理器都是根據相同的明文來運作。亦即,系統單晶片201~20n內部的中央處理器都是根據相同解密程式碼來運作。再者,由於每個系統單晶片201~20n搭配的不相同的密鑰Key1~Keyn來進行加密動作與解密動作,所以完全不相同的密文ciphertext1~密文ciphertextn會儲存於對應的非揮發性記憶體261~26n中。
舉例來說,系統單晶片201根據密鑰Key1對密文ciphertext1進行解密動作,並轉換為明文,使得系統單晶片201中的中央處理器可執行明文中的解密程式碼。再者,系統單晶片201中的中央處理器將資料儲存至非揮發性記憶體261時,系統單晶片201根據密鑰Key1將儲存資料進行加密動作,並轉換為密文ciphertext1,並存至非揮發性記憶體261。
由以上的說明可知,每個系統單晶片201~20n必須搭配對應的密鑰Key1~Keyn才能正常運作。如果嵌入式系統在生產的過程中,系統單晶片201~20n連接至錯誤的非揮發性記憶體261~26n,則系統單晶片架構將無法運作。舉例來說,系統單晶片201連接至儲存密文ciphertext2的非揮發性記憶體262。明顯地,系統單晶片201根據密鑰Key1對密文ciphertext2進行解密動作後的內容根本不是為明文,將導致系統單晶片201無法執行解密程式碼,造成系統當機(crash)而無法正常運作。
由以上的說明可知,習知嵌入式系統在生產的過程中,將密鑰Key1所產生的密文ciphertext1儲存至非揮發性記憶體261後,還必須進一步確認非揮發性記憶體261連接至系統單晶片201。否則,一旦系統單晶片連
接至錯誤的非揮發性記憶體時,嵌入式系統仍無法運作。也就是說,在習知嵌入式系統量產的過程中,必須非常仔細的確認系統單晶片201~20n與非揮發性記憶體261~26n之間的連接關係,這樣會讓製造商在生產過程中增加額外的管理成本。
另外,習知的嵌入式系統中,皆是以系統單晶片100中內嵌式快閃記憶體120作為開機區(boot area),並進行外接非揮發性記憶體160的加密、解密的管理。
本發明為一種系統單晶片架構,包括:一非揮發性記憶體;以及一系統單晶片。該系統單晶片連接至該非揮發性記憶體。該系統單晶片包括:一中央處理器、一揮發性記憶體、一系統匯流排、一即時加解密電路、一記憶體介面、一計時器與一密鑰庫。該中央處理器、該揮發性記憶體與該即時加解密電路連接至該系統匯流排。該記憶體介面連接於該即時加解密電路與該非揮發性記憶體之間。該即時加解密電路連接至該密鑰庫,用以選擇該密鑰庫中的多個密鑰來進行一加密動作或一解密動作。於一電源開啟後,當該計時器未被禁能時,該計時器於一特定時間後暖重置該中央處理器,使得該中央處理器將該非揮發性記憶體的儲存格式由一初始格式改變為一工作格式。
本發明為一種關於上述系統單晶片架構的資料保護方法,包括下列步驟:(a)於該電源開啟後,該即時加解密電路為一正常模式;(b)該中央處理器執行該非揮發性記憶體中的一加密開機碼,其中該加密開機碼
中包括一禁能指令用以該禁能該計時器;(c)當該計時器被禁能時,該中央處理器執行該非揮發性記憶體中的一加密程式碼,使得該系統單晶片架構正常運作;(d)當該計時器未被禁能時,於該特定時間後改變該即時加解密電路為一通透模式,並暖重置該中央處理器;(e)於暖重置該中央處理器後,該中央處理器執行該非揮發性記憶體中的一初始開機碼,其中該初始開機碼中包括該禁能指令用以該禁能該計時器;(f)當該計時器未被禁能時,回到該步驟(d);(g)當該計時器被禁能時,該中央處理器將該非揮發性記憶體中的該初始開機碼複製到該揮發性記憶體,並執行該揮發性記憶體中的該初始開機碼;(h)該中央處理器根據該揮發性記憶體中的該初始開機碼,改變該即時加解密電路為一雙密鑰模式;(i)該中央處理器根據該揮發性記憶體中的該初始開機碼,將該非揮發性記憶體中的一加密資料讀取至該系統單晶片,並再次儲存至該非揮發性記憶體;以及,(j)執行一系統重置。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
100,201~20n,300:系統單晶片
110,310:中央處理器
120:內嵌式快閃記憶體
130,330:系統匯流排
140,340:即時加解密電路
142:特定密鑰
150,350:記憶體介面
160,261~26n,380:非揮發性記憶體
190,390:系統單晶片架構
320:揮發性記憶體
360:計時器
370:密鑰庫
S401~S422:步驟流程
第1圖為習知嵌入式系統的系統單晶片架構;第2圖為習知n個相同的嵌入式系統的示意圖;第3A圖為本發明的系統單晶片架構;第3B圖與第3C圖為本發明非揮發性記憶體中的儲存格式示意圖;以及第4圖為運用於本發明系統單晶片架構的資料保護方法流程圖。
請參照第3A圖,其所繪示為本發明的系統單晶片架構。系統單晶片架構390包括系統單晶片300以及非揮發性記憶體380,且系統單晶片300連接至外部非揮發性記憶體380。
系統單晶片300包括一中央處理器310、揮發性記憶體(volatile memory)320、系統匯流排(system bus)330、即時加解密電路(On-The-Fly Decryption,簡稱OTFDEC電路)340、記憶體介面(memory interface)350、計時器(timer)360、密鑰庫(key bank)370。其中,揮發性記憶體320可為動態隨機存取記憶體(DRAM)或者靜態隨機存取記憶體(SRAM)。
中央處理器310、揮發性記憶體320、OTFDEC電路340連接至系統匯流排330。記憶體介面350連接於OTFDEC電路340與非揮發性記憶體380之間。再者,OTFDEC電路340連接至密鑰庫370,並可選擇密鑰庫370所提供的多個密鑰來進行加密動作與解密動作。其中,密鑰庫370中至少包括一初始密鑰KeyI與一主密鑰KeyM。基本上,多個相同系統單晶片架構390中的密鑰庫370中皆有相同的初始密鑰KeyI,可由製造商所輸入。再者,每個系統單晶片架構390中的主密鑰KeyM都不相同,且主密鑰KeyM僅能被OTFDEC電路340讀取的唯一主密鑰KeyM。
再者,OTFDEC電路340有多種操作模式(operation mode)。舉例來說,正常模式(normal mode)、通透模式(bypass mode)與雙密鑰模式(two keys mode)。於正常模式時,OTFDEC電路340根據主密鑰KeyM來進行加密動作與解密動作。於通透模式時,OTFDEC電路340不會利用密鑰來進
行加密動作與解密動作,OTFDEC電路340將非揮發性記憶體380的內容直接傳遞至中央處理器310。於雙密鑰模式時,OTFDEC電路340根據初始密鑰KEYI來進行解密動作,且OTFDEC電路340根據主密鑰KeyM來進行加密動作。
根據本發明的實施例,系統單晶片300中的計時器360於供應電源或者重置(reset)時,計時器360開始計時。當計時器360被禁能(disable)時,計時器360停止計時。當計時器360持續地計時到一特定時間之後,會產生一設定信號S,用以改變OTFDEC電路340的操作模式(operation mode)。另外,計時器360也會產生一暖重置(warm reset)信號RstW至中央處理器310。
請參照第3B圖與第3C圖,其所繪示為本發明非揮發性記憶體中的儲存格式(data format)示意圖。根據本發明的實施例,非揮發性記憶體380中的儲存格式可區分為初始格式(initial format)以及工作格式(operation format)。
如第3B圖所示,非揮發性記憶體380中的初始格式包括:開機區儲存的初始開機碼,以及程式區儲存的加密資料(encrypted data)。其中,初始開機碼為明文,加密資料為利用初始密鑰KeyI進行加密動作後的內容。基本上,系統單晶片架構390於製造完成時,非揮性記憶體380中的儲存格式皆為初始格式。
如第3C圖所示,非揮發性記憶體380中的工作格式包括:開機區儲存的加密開機碼,以及程式區儲存的加密程式碼。其中,加密開機碼與加密程式碼皆為利用主密鑰KeyM進行加密動作後的內容。
根據本發明的實施例,當系統單晶片架構390第一次電源開啟後,系統單晶片300會將非揮發性記憶體380中的儲存格式由初始格式轉換為工作格式。以下詳細說明之。
請參照第4圖,其所繪示為運用於本發明系統單晶片架構的資料保護方法流程圖。當電源開啟時,OTFDEC電路340為正常模式(normal mode)(步驟S401)。此時,OTFDEC電路340讀取密鑰庫370中的主密鑰KeyM,並根據主密鑰KeyM來進行加密動作與解密動作。
接著,在OTFDEC電路340為正常模式下,中央處理器310執行非揮發性記憶體380中開機區的加密開機碼(步驟S403)。其中,加密開機碼中包括一禁能指令(disable command)用以禁能計時器360。
當計時器360被禁能時(步驟S405),代表非揮發性記憶體380中的儲存格式為第3C圖所示的工作格式(operation format),而OTFDEC電路340成功利用主密鑰KeyM將非揮發性記憶體380中的加密開機碼解密成為中央處理器310可執行的明文。而中央處理器310執行明文(亦即,解碼後的開機碼)的過程會禁能(disable)計時器360,並完成初始化程序(initialization)。
之後,系統單晶片架構可正常運作(步驟S407)。亦即,中央處理器310利用OTFDEC電路340的解密動作與加密動作來執行非揮發性記憶體380中程式區的加密程式碼。
基本上,步驟S401至步驟S407為系統單晶片架構正常運作的流程。此時,非揮發性記憶體380中儲存的內容為工作格式(operation format)。也就是說,於正常運作時,OTFDEC電路340皆是利用主密鑰KeyM來進行加密動作與解密動作。
另外,當計時器360未被禁能時(步驟S405),代表OTFDEC電路340無法成功將非揮發性記憶體380中的內容解密成為中央處理器310可執行的明文,造成系統單晶片300當機(crash)而無法禁能計時器360。此時,非揮發性記憶體380的儲存格式並不是工作格式(operation format),而是如第3B圖所示的初始格式(initial format),代表本發明的系統單晶片架構390第一次開啟電源。
由於中央處理器310無法禁能計時器360,計時器360經過一特定時間後,改變OTFDEC電路340為一通透模式(bypass mode),並對中央處理器310觸發一暖重置(步驟S410)。換句話說,經過一特定時間後,計時器360產生一設定信號S,將OTFDEC電路340改變為通透模式。另外,計時器360也會產生一暖重置(warm reset)信號RstW至中央處理器310,使得系統單晶片架構390被暖重置。
根據本發明實施例,於暖重置之後,中央處理器310執行非揮發性記憶體380中開機區的初始開機碼(步驟S412)。也就是說,OTFDEC電路340於通透模式時,OTFDEC電路340不需要任何密鑰進行加密動作或者解密動作。因此,在OTFDEC電路340不進行解密動作的情況下,中央處理器310直接執行非揮發性記憶體380中的初始開機碼。
相同地,初始開機碼中包括一禁能指令(disable command)用以禁能計時器360。也就是說,當系統單晶片架構390被暖重置後,計時器360再次重新計時。當計時器360被禁能時(步驟S414),代表中央處理器310成功執行初始開機碼,並禁能(disable)計時器360。反之,當計時器360無法
被禁能時(步驟S414),代表中央處理器310無法成功執行初始開機碼,並回到步驟S410。
接著,中央處理器310繼續執行非揮發性記憶體380中的初始開機碼,並將非揮發性記憶體380中的初始開機碼複製(copy)至揮發性記憶體320中,並執行揮發性記憶體320中的初始開機碼(步驟S416)。也就是說,當初始開機碼由非揮發性記憶體380複製到揮發性記憶體320後,中央處理器310的指令指標(instruction pointer)指向揮發性記憶體320的位址,使得中央處理器310執行揮發性記憶體320中的初始開機碼。
接著,中央處理器310根據揮發性記憶體320中的初始開機碼,將OTFDEC電路340改變雙密鑰模式(步驟S418)。亦即,OTFDEC電路340根據初始密鑰KEYI來進行解密動作,且OTFDEC電路340根據主密鑰KeyM來進行加密動作。
接著,中央處理器310根據揮發性記憶體320中的初始開機碼,將非揮發性記憶體380中程式區的加密資料讀取至系統單晶片300並再次儲存至非揮發性記憶體380(步驟S420)。由於OTFDEC電路340為雙密鑰模式,所以加密資料讀取至系統單晶片300時,OTFDEC電路340利用初始密鑰KeyI將加密資料解密成為明文。
另外,中央處理器310將明文儲存至非揮發性記憶體380時,OTFDEC電路340利用主密鑰KeyM將明文加密成為加密開機碼與加密程式碼,並且覆寫(overwrite)至非揮發性記憶體380中。因此,非揮發性記憶體380中的儲存格式會由第3B圖所示的初始格式(initial format)改變為第3C圖所示的工作格式(operation format)。
當上述步驟S420完成後,中央處理器310執行揮發性記憶體320內,初始開機碼中的系統重置指令(system reset command)。因此,本發明的單晶片系統架構390進行系統重置(步驟S422),並再次回到步驟S401。
於系統單晶片架構390進行系統重置之後,由於非揮發性記憶體380中的儲存格式已經改為工作格式(operation format),所以系統單晶片架構390會執行步驟S401至步驟S407,不會跳至步驟S410至步驟S422。
由以上的說明可知,本發明的系統單晶片架構390於第一次開啟電源時,計時器360未被禁能,使得計時器360於一特定時間後控制中央處理器310被暖重置。之後,中央處理器310再控制該OTFDEC電路340根據該密鑰庫370中的初始密鑰KeyI以及主密鑰KeyM將非揮發性記憶體380中的儲存格式由初始格式改變為工作格式。
再者,當系統單晶片架構390被系統重置或者再次開啟電源之後,OTFDEC電路340會根據主密鑰KeyM來進行解密動作與加密動作,而中央處理器310可成功地執行非揮發性記憶體380中的加密開機碼並完成初始化程序,並接著執行非揮發性記憶體380中的加密程式碼,進而讓系統單晶片架構390正常運作。
由於系統單晶片架構390於出廠時非揮發性記憶體380中的儲存格式皆為相同的初始格式,所以在系統單晶片架構390生產的過程中,不需要另外管理系統單晶片300與非揮發性記憶體380之間的搭配。因此,可以節省生產管理的成本。
再者,由於每個系統單晶片300中有不相同的主密鑰KeyM。於第一次開啟電源並將非揮發性記憶體380的儲存格式改為工作格式之
後,多個系統單晶片架構中的非揮發性記憶體380中將會儲存不相同的密文。
另外,相較於習知的系統單晶片架構,本發明的系統單晶片架構390中並未有內嵌式快閃記憶體來儲存開機碼,而是將開機碼儲存於外接非揮發性記憶體380的開機區。也就是說,本發明系統單晶片架構390中適用於未內建內嵌式快閃記憶體的系統單晶片300。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
300:系統單晶片
310:中央處理器
320:揮發性記憶體
330:系統匯流排
340:即時加解密電路
350:記憶體介面
360:計時器
370:密鑰庫
380:非揮發性記憶體
390:系統單晶片架構
Claims (9)
- 一種系統單晶片架構,包括:一非揮發性記憶體;以及一系統單晶片,連接至該非揮發性記憶體,該系統單晶片包括:一中央處理器、一揮發性記憶體、一系統匯流排、一即時加解密電路、一記憶體介面、一計時器與一密鑰庫;其中,該中央處理器、該揮發性記憶體與該即時加解密電路連接至該系統匯流排;該記憶體介面連接於該即時加解密電路與該非揮發性記憶體之間;該即時加解密電路連接至該密鑰庫,用以選擇該密鑰庫中的多個密鑰來進行一加密動作或一解密動作;其中,於一電源開啟後,當該計時器未被禁能時,該計時器於一特定時間後暖重置該中央處理器,使得該中央處理器將該非揮發性記憶體的儲存格式由一初始格式改變為一工作格式。
- 如請求項1所述之系統單晶片架構,其中當該中央處理器被暖重置後,該中央處理器控制該即時加解密電路根據一初始密鑰進行該解密動作以及一主密鑰進行該加密動作,並將該非揮發性記憶體中的該儲存格式由該初始格式改變為該工作格式。
- 如請求項2所述之系統單晶片架構,其中該非揮發性記憶體的該初始格式包括一初始開機碼與一加密資料;該非揮發性記憶體的該工作格式包括一加密開機碼與一加密程式碼;該中央處理器執行該初始開機碼,使得該即時加解密電路根據該初始密鑰將該加密資 料解密成為一明文,且該即時加解密電路再根據該主密鑰將該明文加密成為該加密開機碼與該加密程式碼,並覆寫至該非揮發性記憶體。
- 如請求項3所述之系統單晶片架構,其中當該計時器被禁能時,該即時加解密電路根據該主密鑰進行該加密動作與該解密動作,該中央處理器執行該非揮發性記憶體中的該加密開機碼以及該加密程式碼。
- 一種如請求項1所述之系統單晶片架構的資料保護方法,包括下列步驟:(a)於該電源開啟後,該即時加解密電路為一正常模式;(b)該中央處理器執行該非揮發性記憶體中的一加密開機碼,其中該加密開機碼中包括一禁能指令用以該禁能該計時器;(c)當該計時器被禁能時,該中央處理器執行該非揮發性記憶體中的一加密程式碼,使得該系統單晶片架構正常運作;(d)當該計時器未被禁能時,於該特定時間後改變該即時加解密電路為一通透模式,並暖重置該中央處理器;(e)於暖重置該中央處理器後,該中央處理器執行該非揮發性記憶體中的一初始開機碼,其中該初始開機碼中包括該禁能指令用以該禁能該計時器;(f)當該計時器未被禁能時,回到該步驟(d);(g)當該計時器被禁能時,該中央處理器將該非揮發性記憶體中的該初始開機碼複製到該揮發性記憶體,並執行該揮發性記憶體中的該初始開機碼; (h)該中央處理器根據該揮發性記憶體中的該初始開機碼,改變該即時加解密電路為一雙密鑰模式;(i)該中央處理器根據該揮發性記憶體中的該初始開機碼,將該非揮發性記憶體中的一加密資料讀取至該系統單晶片,並再次儲存至該非揮發性記憶體;以及(j)執行一系統重置。
- 如請求項5所述之資料保護方法,其中該即時加解密電路為該正常模式時,該即時加解密電路根據該密鑰庫的一主密鑰進行該加密動作與該解密動作。
- 如請求項6所述之資料保護方法,其中該即時加解密電路為該通透模式時,該即時加解密電路不進行該加密動作與該解密動作。
- 如請求項7所述之資料保護方法,其中該即時加解密電路為該雙密鑰模式時,該即時加解密電路根據該密鑰庫的該主密鑰進行該加密動作,並根據該密鑰庫的一初始密鑰進行該解密動作。
- 如請求項8所述之資料保護方法,其中,該步驟(h)中,該中央處理器執行該初始開機碼,使得該即時加解密電路根據該初始密鑰將該加密資料解密成為一明文,且該即時加解密電路再根據該主密鑰將該明文加密成為該加密開機碼與該加密程式碼,並覆寫至該非揮發性記憶體。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111116008A TWI805341B (zh) | 2022-04-27 | 2022-04-27 | 系統單晶片架構及其資料保護方法 |
CN202210891248.6A CN117009284A (zh) | 2022-04-27 | 2022-07-27 | 系统单芯片架构及其数据保护方法 |
US17/899,653 US12124618B2 (en) | 2022-04-27 | 2022-08-31 | SoC architecture and data protection method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111116008A TWI805341B (zh) | 2022-04-27 | 2022-04-27 | 系統單晶片架構及其資料保護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI805341B true TWI805341B (zh) | 2023-06-11 |
TW202343289A TW202343289A (zh) | 2023-11-01 |
Family
ID=87802925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111116008A TWI805341B (zh) | 2022-04-27 | 2022-04-27 | 系統單晶片架構及其資料保護方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117009284A (zh) |
TW (1) | TWI805341B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201346613A (zh) * | 2012-03-01 | 2013-11-16 | Ologn Technologies Ag | 用於媒體內容之安全傳輸及限制使用之系統、方法及裝置 |
TWI460604B (zh) * | 2008-10-23 | 2014-11-11 | Maxim Integrated Products | 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法 |
TWI623205B (zh) * | 2012-09-27 | 2018-05-01 | 內數位專利控股公司 | 在虛擬網路中端對端架構、api框架、發現及存取 |
TW201939341A (zh) * | 2018-03-15 | 2019-10-01 | 美商阿它佧瑪有限公司 | 用於靜止資料之免密碼保全系統 |
-
2022
- 2022-04-27 TW TW111116008A patent/TWI805341B/zh active
- 2022-07-27 CN CN202210891248.6A patent/CN117009284A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI460604B (zh) * | 2008-10-23 | 2014-11-11 | Maxim Integrated Products | 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法 |
TW201346613A (zh) * | 2012-03-01 | 2013-11-16 | Ologn Technologies Ag | 用於媒體內容之安全傳輸及限制使用之系統、方法及裝置 |
TWI623205B (zh) * | 2012-09-27 | 2018-05-01 | 內數位專利控股公司 | 在虛擬網路中端對端架構、api框架、發現及存取 |
TW201939341A (zh) * | 2018-03-15 | 2019-10-01 | 美商阿它佧瑪有限公司 | 用於靜止資料之免密碼保全系統 |
Also Published As
Publication number | Publication date |
---|---|
US20230351055A1 (en) | 2023-11-02 |
CN117009284A (zh) | 2023-11-07 |
TW202343289A (zh) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11354253B2 (en) | Storage system and method for performing and authenticating write-protection thereof | |
US11347898B2 (en) | Data protection device and method and storage controller | |
US10868679B1 (en) | Nonvolatile memory device with regions having separately programmable secure access features and related methods and systems | |
US9984007B2 (en) | Storage system and method for performing and authenticating write-protection thereof | |
US8572410B1 (en) | Virtualized protected storage | |
US20070180271A1 (en) | Apparatus and method for providing key security in a secure processor | |
US10749672B2 (en) | Computing system having an on-the-fly encryptor and an operating method thereof | |
US20080066075A1 (en) | System and Method for Securely Saving and Restoring a Context of a Secure Program Loader | |
US20050021944A1 (en) | Security architecture for system on chip | |
JP6609154B2 (ja) | ブートプログラム、情報処理装置、情報処理システム、情報処理方法、半導体装置、およびプログラム | |
TWI705687B (zh) | 用於資料加解密的金鑰管理裝置及處理器晶片 | |
CN116011041B (zh) | 密钥管理方法、数据保护方法、系统、芯片及计算机设备 | |
WO2019211385A1 (en) | Cryptographic key distribution | |
TW201508770A (zh) | 非依電性記憶體儲存可重置資料之技術 | |
CN116648688A (zh) | 包含使用认证逻辑产生用于存储器区的存取代码的实例的存储器系统和装置 | |
US10880082B2 (en) | Rekeying keys for encrypted data in nonvolatile memories | |
TWI805341B (zh) | 系統單晶片架構及其資料保護方法 | |
TWI731407B (zh) | 具有旁通通道的金鑰管理裝置及處理器晶片 | |
US12124618B2 (en) | SoC architecture and data protection method thereof | |
TWI833533B (zh) | 避免使用不完整金鑰的金鑰管理裝置、處理器晶片及方法 | |
JP2004118937A (ja) | 不揮発性メモリおよびこれを有したデータ記憶装置 | |
TW202403773A (zh) | 半導體裝置及用以管理其之安全操作的系統與方法 | |
TW202343231A (zh) | 管理電子設備的所有權 | |
CN116414737A (zh) | 微控制芯片及存取方法 |