TWI873394B - 資料保護方法、資料保護裝置及微控制器 - Google Patents
資料保護方法、資料保護裝置及微控制器 Download PDFInfo
- Publication number
- TWI873394B TWI873394B TW110149560A TW110149560A TWI873394B TW I873394 B TWI873394 B TW I873394B TW 110149560 A TW110149560 A TW 110149560A TW 110149560 A TW110149560 A TW 110149560A TW I873394 B TWI873394 B TW I873394B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- address
- lookup table
- random
- grouped
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Emergency Protection Circuit Devices (AREA)
Abstract
一種資料保護方法,包括:將一輸入資料進行分群,用以產生複數分群資料;記錄每一分群資料的一原始起始位址以及每一分群資料的資料量;隨機打亂該等分群資料,用以產生一隨機資料;記錄隨機資料的每一分群資料的一新起始位址;將該等原始起始位址、該等分群資料的資料長度以及該等新起始位址匯集成一尋查表,其中該尋查表記錄每一分群資料的原始起始位址及隨機打亂後的新起始位址的對應關係;儲於該隨機資料於一儲存記憶體中;以及儲存該尋查表於一記憶體控制器中。
Description
本發明係有關於一種資料保護方法,特別是有關於一種避免資料遭到竊取的資料保護方法。
在傳統的微控制器中,通常具有一內部儲存記憶體。內部儲存記憶體係以機器碼明文方式儲存程式碼與資料。然而,內部儲存記憶體的程式碼與資料很容易受到竊取。
本發明之一實施例提供一種資料保護方法,包括:將一輸入資料進行分群,用以產生複數分群資料;記錄每一分群資料的一原始起始位址以及每一分群資料的資料量;隨機打亂該等分群資料,用以產生一隨機資料;記錄隨機資料的每一分群資料的一新起始位址;將該等原始起始位址、該等分群資料的資料長度以及該等新起始位址匯集成一尋查表,其中該尋查表記錄每一分群資料的原始起始位址及隨機打亂後的新起始位址的對應關係;儲存該隨機資料於一儲存記憶體中;以及儲存該尋查表於一記憶體控制器中。
本發明之另一實施例提供一種資料保護裝置,包括一打散電路、一儲存記憶體以及一記憶體控制器。打散電路將一輸入資料進行分群,用以產生複數分群資料,並記錄每一分群資料的一原始起始位址以及每一分群資料的資料量。打散電路隨機打亂分群資料,用以產生一隨機資料,並記錄隨機資料的每一分群資料的一新起始位址。打散電路將原始起始位址、分群資料的資料長度以及新起始位址匯集成一尋查表。尋查表記錄每一分群資料的原始起始位址及隨機打亂後的新起始位址的對應關係。儲存記憶體儲存隨機資料。記憶體控制器儲存該尋查表。
本發明之另一實施例提供一種微控制器,包括一儲存記憶體以及一記憶體控制器。儲存記憶體儲存一隨機資料。隨機資料具有複數分群資料。記憶體控制器儲存一尋查表。尋查表記錄複數原始位址、分群資料的資料量以及每一分群資料位於該儲存記憶體一隨機位址。記憶體控制器根據一讀取位址,由尋查表中,選擇隨機位址中一特定隨機位址,並根據特定隨機位址,讀取儲存記憶體,用以取得分群資料之一特定分群資料。特定隨機位址對應該等原始位址中之一特定位址。特定位址相同於讀取位址。
本發明之資料保護方法可經由本發明之資料保護裝置來實作,其為可執行特定功能之硬體或韌體,亦可以透過程式碼方式收錄於一紀錄媒體中,並結合特定硬體來實作。當程式碼被電子裝置、處理器、電腦或機器載入且執行時,電子裝置、處理器、電腦或機器變成用以實行本發明之資料保護裝置。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出實施例,並配合所附圖式,做詳細之說明。本發明說明書提供不同的實施例來說明本發明不同實施方式的技術特徵。其中,實施例中的各元件之配置係為說明之用,並非用以限制本發明。另外,實施例中圖式標號之部分重覆,係為了簡化說明,並非意指不同實施例之間的關聯性。
第1圖為本發明之資料保護方法的流程示意圖。本發明的資料保護方法可在一微控制器(micro-controller unit;MCU)中實現。首先,將一輸入資料進行分群,用以產生複數分群資料(步驟S111)。在一可能實施例中,該輸入資料係為一連續位址的資料。
第2A圖為本發明之原機器碼明文示意圖。輸入資料DIN可能儲存於一儲存記憶體200中。在本實施例中,輸入資料DIN被劃分成分群資料211~216。本發明並不限定每一分群資料的資料量(length)。在一可能實施例中,分群資料211~216之一分群資料的資料長度不同於分群資料211~216之另一分群資料的資料長度。舉例而言,分群資料211具有四位元組(bytes)的資料,分群資料213具有八位元組的資料。在一些實施例中,分群資料211~216之一分群資料的資料長度相同於分群資料211~216之另一分群資料的資料長度。舉例而言,分群資料211與212具有四位元組的資料。
接著,記錄每一分群資料的原始起始位址以及資料量(步驟S112)。以第2A圖為例,分群資料211的原始起始位址(或稱原始位址)為0x1800,分群資料212的原始起始位址為0x1804,分群資料213的原始起始位址為0x1808,分群資料214的原始起始位址為0x1810,分群資料215的原始起始位址為0x1818,分群資料216的原始起始位址為0x181C。另外,分群資料211、212、215及216的資料長度為四位元組,分群資料213及214的資料長度為八位元組。
然後,隨機打亂分群資料211~216的排列順序,用以產生一隨機資料(步驟S113)。第2B圖為本發明之隨機資料的示意圖。如圖所示,經隨機打亂後,隨機資料RDA的排列順序為分群資料214、212、215、216、211及213。相較於第2A圖,在隨機打亂前,輸入資料DIN的排列順序為211~216。
接著,記錄隨機打亂後的每一分群資料的一新起始位址(步驟S114)。如第2B圖所示,經隨機打亂後,分群資料214的新起始位址(或稱隨機位址)為0x1800,分群資料212的新起始位址為0x1808,分群資料215的新起始位址為0x180C,分群資料216的新起始位址為0x1810,分群資料211的新起始位址為0x1814,分群資料213的新起始位址為0x1818。在此例中,隨機打亂後的分群資料仍儲存於儲存記憶體200中。
接著,將分群資料211~216的原始起始位址、資料長度以及新起始位址匯集成一尋查表(步驟S115)。第2C圖為本發明之尋查表的示意圖。如圖所示,尋查表220記錄分群資料211~216的原始起始位址、資料長度及隨機打亂後的新起始位址的對應關係。以分群資料211為例,分群資料211的原始位址為0x1800,並且資料長度為4bytes。在隨機打亂操作後,分群資料211的新起始位址為0x1814。
根據每一分群資料的新起始位址,儲存隨機資料於一儲存記憶體中(步驟S116)。第2D圖為儲存記憶體的示意圖。如圖所示,儲存記憶體230具有區塊231~233。在一可能實施例中,儲存記憶體230係為一快閃記憶體(flash memory)。本發明並不限定儲存記憶體230的區塊數量。在其它實施例中,儲存記憶體230具有更多或更少的區塊。在本實施例中,區塊231的起始位址為0x0000,結束位址為0x17FF。區塊232的起始位址為0x1800,結束位址為0x18FF。區塊233的起始位址為0x1900,結束位址為0x1FFF。
在一些實施例中,隨機資料係儲存於區塊232中。如圖所示,隨機資料的分群資料214的起始位址為0x1800,分群資料212的起始位址為0x1808,分群資料215的起始位址為0x180C,分群資料216的起始位址為0x1810,分群資料211的起始位址為0x1814,分群資料213的起始位址為0x1818。
然後,儲存尋查表於一記憶體控制器中(步驟S117)。在一可能實施例中,記憶體控制器根據尋查表,將第2B圖所示的隨機資料RDA,寫入儲存記憶體230中。在此例中,當記憶體控制器接收一讀取指令時,記憶體控制器進入一讀取模式。在讀取模式下,記憶體控制器解碼讀取指令,用以產生一讀取位址(0x1800)。記憶體控制器透過尋查表220,得知讀取位址所對應的一新起始位址(如0x1814)。記憶體控制器讀取儲存記憶體230,並輸出新起始位址(如0x1814)所對應的一分群資料(如211)。
在一些實施例中,在步驟S115產生尋查表後,執行一加密操作,用以加密尋查表。加密後的尋查表可稱為一加密資料。在此例中,記憶體控制器執行一解密操作,用以解密該加密資料。記憶體控制器儲存解密後的還原資料(即尋查表)。在一可能實施例中,解密操作係由一解密電路執行。解密電路可能整於記憶體控制器中,或是獨立於記憶體控制器之外。
在一些實施例中,步驟S115係利用一二元樹搜尋方式,編排分群資料211~216,用以加快記憶體控制器搜尋尋查表的速度。在此例中,編排後的結果即為尋查表。在其它實施例中,步驟S115可能依分群資料211~216的資料量,依序編排分群資料211~216。舉例而言,由於分群資料211、212、215、216的資料量低於分群資料213及214的資料量,故尋查表先記錄分群資料如211、212、215、216,然後再記錄分群資料213及214。在本實施例中,步驟S115係根據分群資料211~216的原始起始位址進行編排。以第2C圖為例,尋查表依序記錄分群資料211~216的原始位址、資料量及新起始位址。
第3圖為本發明之微控制器的示意圖。本發明的微控制器(micro-controller)300具有資料保護功能,用以避免內部儲存記憶體所儲存的程式碼及資料受到竊取。在本實施例中,微控制器300包括一儲存記憶體230以及一記憶體控制器310。
儲存記憶體230具有區塊231~233。在本實施例中,隨機資料RDA儲存於區塊232中。記憶體控制器310用以存取儲存記憶體230。在一些實施例中,記憶體控制器310透過記憶體匯流排(memory bus)350存取儲存記憶體230。在本實施例中,記憶體控制器310包括一解碼電路311以及一儲存記憶體312。
儲存記憶體312儲存一尋查表220。如第2C圖所示,尋查表220記錄分群資料211~216的原始位址、資料量以及新起始位址(或稱隨機位址)。解碼電路311耦接一指令匯流排(instruction bus)330以及一資料匯流排(data bus)340。解碼電路311解碼指令匯流排330所提供的一存取指令。在一可能實施例中,當存取指令係為一讀取指令時,解碼電路311解碼該讀取指令,用以得知一讀取位址。解碼電路311將該讀取位址作為一原始起始位址,並由尋查表220中,尋找該原始起始位址所對應的一新起始位址以及資料量。解碼電路311根據新起始位址以及資料量,讀取儲存記憶體230,用以取得一特定分群資料。
以第2C及2D圖為例,假設讀取位址為0x1800。在此例中,解碼電路311根據尋查表220(如第2C圖所),得知讀取位址0x1800對應新起始位址0x1814。因此,解碼電路311讀取儲存記憶體230的位址0x1814的分群資料(如211)。在一可能實施例中,解碼電路311透過資料匯流排340,輸出分群資料211予一中央處理器320。在其它實施例中,中央處理器320透過指令匯流排330,輸出一讀取指令予解碼電路311。
本發明並不限定尋查表220的來源。在一可能實施例中,尋查表220係由微控制器300外的一外部電路(未顯示)所提供。解碼電路311可能透過資料匯流排340,接收尋查表220,並將尋查表220寫入儲存記憶體312中。
在另一可能實施例中,為了提高尋查表220的安全性,一外部電路對尋查表220執行一加密操作,用以產生一加密資料EDA。在此例中,微控制器300更包括一解密電路360。解密電路360對加密資料EDA進行一解碼操作,用以產生一解密資料(即尋查表220)DDA。解碼電路311透過資料匯流排340,接收解密資料DDA,並將解密資料DDA寫入儲存記憶體312。
在其它實施例中,解密電路360整合於記憶體控制器310中。在此例中,解密電路360透過資料匯流排340接收加密資料EDA,並將解密資料DDA提供予解碼電路311。在另一可能實施例中,解密電路360可能透過其它輸入輸出介面(未顯示),接收加密資料EDA。在一些實施例中,解密電路360可能整合於解碼電路311之中。在此例中,解密電路360可能透過資料匯流排340或其它輸入輸出介面,接收加密資料EDA。
第4圖為本發明之資料保護裝置的示意圖。如圖所示,資料保護裝置400包括一打散電路410、一記憶體控制器420以及一儲存記憶體430。打散電路410將一輸入資料DIN進行分群,用以產生複數分群資料,並記錄每一分群資料的一原始起始位址以及每一分群資料的資料量。以第2A圖為例,打散電路410將輸入資料DIN進行分群,用以產生分群資料211~216。在此例中,打散電路410記錄分群資料211的原始起始位址及資料量。
打散電路410隨機打亂分群資料211~216,用以產生一隨機資料RDA,並記錄隨機資料RDA的每一分群資料的一新起始位址。在此例中,打散電路410將分群資料211~216的原始起始位址、分群資料211~216的資料長度以及分群資料211~216的新起始位址,匯集成一尋查表220。如第2C圖所示,尋查表220記錄每一分群資料的原始起始位址及隨機打亂後的新起始位址的對應關係。
記憶體控制器420儲存尋查表220,並根據尋查表220,將隨機資料RDA寫入儲存記憶體430。在一可能實施例中,記憶體控制器420透過一資料匯流排440,接收隨機資料RDA及尋查表220。在另一可能實施例中,記憶體控制器420透過一指令匯流排,接收一存取指令(如一寫入指令或是一讀取指令)。在此例中,資料保護裝置400更包括一中央處理器(未顯示)。在此例中,中央處理器可能透過指令匯流排,提供一讀取指令或是一寫入指令予記憶體控制器420。
當記憶體控制器420接收到一寫入指令時,記憶體控制器420根據尋查表220所記錄的新起始位址,將隨機資料RDA寫入儲存記憶體430中。當記憶體控制器420接收到一讀取指令時,記憶體控制器420解碼該讀取指令,用以產生一讀取位址。記憶體控制器420透過尋查表220,得知該讀取位址所對應的一相對應新起始位址。記憶體控制器420讀取儲存記憶體430的該相對應新起始位址所儲存的一相對應分群資料,並輸出該相對應分群資料。
在本實施例中,記憶體控制器420包括一解碼電路421以及一儲存記憶體422。在一可能實施例中,記憶體控制器420及儲存記憶體430整合於一微控制器中。在此例中,打散電路410獨立於該微控制器之外。由於解碼電路421以及儲存記憶體422的特性相似於第3圖的解碼電路311以及儲存記憶體312的特性,故不再贅述。
在一些實施例中,記憶體控制器420更包括一快速查表引擎(fast look-up engine)。快速查表引擎(未顯示)由尋查表220中,尋找讀取位址所對應的新起始位址。另外,由於儲存記憶體430的特性相似於第3圖的儲存記憶體230的特性,故不再贅述。
第5圖為本發明之資料保護裝置的另一示意圖。資料保護裝置500包括一打散電路510、一加密電路520以及一微控制器530。由於打散電路510的特性相同於第4圖的打散電路410的特性,故不再贅述。加密電路520加密尋查表220,用以產生一加密資料EDA。在一可能實施例中,加密電路520獨立於微控制器530之外。在其他實施例中,加密電路520和打散電路510也可在微控制器530內。
在本實施例中,微控制器530包括一中央處理器531、一解密電路532、一記憶體控制器533以及一儲存記憶體534。中央處理器531可能透過一指令匯流排535,提供一讀取指令或是一寫入指令予記憶體控制器533。由於中央處理器531的特性相似於第3圖的中央處理器320的特性,故不再贅述。
解密電路532解密加密資料EDA,用以還原尋查表220,並將還原後的尋查表220儲存於記憶體控制器533中。在一可能實施例中,解密電路532位於微控制器530之中。由於解密電路532的特性相似於第3圖的解密電路360的特性,故不再贅述。
記憶體控制器533透過指令匯流排535,接收一存取指令(如讀取指令或是寫入指令),並透過資料匯流排536,接收隨機資料RDA及尋查表220。由於記憶體控制器420的特性相似於第3圖的記憶體控制器310以及第4圖的記憶體控制器420,故不再贅述。另外,儲存記憶體534的特性相似於第3圖的儲存記憶體230的特性,故不再贅述。
由於微控制器530裡的儲存記憶體534儲存隨機排列的分群資料,並且每一分群資料的資料長度可能不同於另一分群資料的長度,故可大幅提高儲存記憶體534所儲存的資料的安全性。另外,由於微控制器530儲存一尋查素,故可快速地還原出中央處理器欲取得(fetch)資料,以確保資料的機密性。
本發明之資料保護方法,或特定型態或其部份,可以以程式碼的型態存在。程式碼可儲存於實體媒體,如軟碟、光碟片、硬碟、或是任何其他機器可讀取(如電腦可讀取)儲存媒體,亦或不限於外在形式之電腦程式產品,其中,當程式碼被機器,如電腦載入且執行時,此機器變成用以參與本發明之資料保護裝置。程式碼也可透過一些傳送媒體,如電線或電纜、光纖、或是任何傳輸型態進行傳送,其中,當程式碼被機器,如電腦接收、載入且執行時,此機器變成用以參與本發明之資料保護置。當在一般用途處理單元實作時,程式碼結合處理單元提供一操作類似於應用特定邏輯電路之獨特裝置。
除非另作定義,在此所有詞彙(包含技術與科學詞彙)均屬本發明所屬技術領域中具有通常知識者之一般理解。此外,除非明白表示,詞彙於一般字典中之定義應解釋為與其相關技術領域之文章中意義一致,而不應解釋為理想狀態或過分正式之語態。雖然“第一”、“第二”等術語可用於描述各種元件,但這些元件不應受這些術語的限制。這些術語只是用以區分一個元件和另一個元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾。舉例來說,本發明實施例所述之系統、裝置或是方法可以硬體、軟體或硬體以及軟體的組合的實體實施例加以實現。因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S111~S117:步驟
DIN:輸入資料
RDA:隨機資料
200、230、312、422、430、534:儲存記憶體
211~216:分群資料
220:尋查表
231~233:區塊
300、530:微控制器
310、420、533:記憶體控制器
311、421:解碼電路
320、531:中央處理器
330、535:指令匯流排
340、440、536:資料匯流排
350:記憶體匯流排
360、532:解密電路
EDA:加密資料
DDA:解密資料
400、500:資料保護裝置
410、510:打散電路
第1圖為本發明之資料保護方法的流程示意圖。
第2A圖為本發明之一原機器碼明文示意圖。
第2B圖為本發明之隨機資料的示意圖。
第2C圖為本發明之尋查表的示意圖。
第2D圖為儲存記憶體的示意圖。
第3圖為本發明之微控制器的示意圖。
第4圖為本發明之資料保護裝置的示意圖。
第5圖為本發明之資料保護裝置的另一示意圖。
S111~S117:步驟
Claims (10)
- 一種資料保護方法,包括: 將一輸入資料進行分群,用以產生複數分群資料; 記錄每一分群資料的一原始起始位址以及每一分群資料的資料量; 隨機打亂該等分群資料並維持每一分群資料的資料的排列順序,用以產生一隨機資料; 記錄隨機資料的每一分群資料的一新起始位址; 將該等原始起始位址、該等分群資料的資料長度以及該等新起始位址匯集成一尋查表,其中該尋查表記錄每一分群資料的原始起始位址及隨機打亂後的新起始位址的對應關係; 儲存該隨機資料於一儲存記憶體中;以及 儲存該尋查表於一記憶體控制器中, 其中在該儲存記憶體所儲存的該隨機資料中,由該等新起始位址中之一特定新起始位址開始,連續位址所對應的資料相同於由該特定新起始位址所對應的原始起始位址開始,連續位址所對應的資料。
- 如請求項1之資料保護方法,其中該等分群資料之一第一分群資料的資料長度不同於該等分群資料之一第二分群資料的資料長度。
- 如請求項1之資料保護方法,其中儲存該尋查表於該記憶體控制器的步驟包括: 加密該尋查表,用以產生一加密資料; 解密該加密資料,用以產生一還原資料;以及 儲存該還原資料於該記憶體控制器中。
- 如請求項1之資料保護方法,更包括: 接收一讀取指令; 解碼該讀取指令,用以產生一讀取位址; 透過該尋查表,得知該讀取位址所對應的一相對應新起始位址; 讀取該儲存記憶體的該相對應新起始位址所儲存的一相對應分群資料;以及 輸出該相對應分群資料。
- 一種資料保護裝置,包括: 一打散電路,將一輸入資料進行分群,用以產生複數分群資料;並記錄每一分群資料的一原始起始位址以及每一分群資料的資料量,其中該打散電路隨機打亂該等分群資料並維持每一分群資料的資料的排列順序,用以產生一隨機資料,並記錄該隨機資料的每一分群資料的一新起始位址,該打散電路將該等原始起始位址、該等分群資料的資料長度以及該等新起始位址匯集成一尋查表,該尋查表記錄每一分群資料的原始起始位址及隨機打亂後的新起始位址的對應關係; 一儲存記憶體,儲存該隨機資料;以及 一記憶體控制器,儲存該尋查表; 其中在該儲存記憶體所儲存的該隨機資料中,由該等新起始位址中之一特定新起始位址開始,連續位址所對應的資料相同於由該特定新起始位址所對應的原始起始位址開始,連續位址所對應的資料。
- 如請求項5之資料保護裝置,其中該儲存記憶體及該記憶體控制器整合於一微控制器(MCU)中,該打散電路獨立於該微控制器之外。
- 如請求項6之資料保護裝置,更包括: 一加密電路,加密該尋查表,用以產生一加密資料;以及 一解密電路,解密該加密資料,用以還原該尋查表,並將該還原後的尋查表儲存於該記憶體控制器中。
- 一種微控制器,包括: 一儲存記憶體,儲存一隨機資料,該隨機資料具有複數分群資料; 一解密電路,解密一加密資料,用以產生一尋查表;以及 一記憶體控制器,儲存該尋查表,該尋查表記錄複數原始位址、該等分群資料的資料量以及每一分群資料位於該儲存記憶體一隨機位址; 其中該記憶體控制器根據一讀取位址,由該尋查表中,選擇該等隨機位址中一特定隨機位址,並根據該特定隨機位址,讀取該儲存記憶體,用以取得該等分群資料之一特定分群資料; 其中該特定隨機位址對應該等原始位址中之一特定位址,該特定位址相同於該讀取位址; 其中在該儲存記憶體所儲存的該隨機資料中,由該特定隨機位址開始,連續位址所對應的資料相同於由該特定位址開始,連續位址所對應的資料。
- 如請求項8之微控制器,更包括: 一中央處理器,提供該讀取位址,並接收該特定分群資料。
- 如請求項8之微控制器,更包括: 一解密電路,解密一加密資料,用以產生該尋查表,並提供該尋查表予該記憶體控制器。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110149560A TWI873394B (zh) | 2021-12-30 | 2021-12-30 | 資料保護方法、資料保護裝置及微控制器 |
| CN202211190404.2A CN116415312A (zh) | 2021-12-30 | 2022-09-28 | 数据保护方法、数据保护装置及微控制器 |
| US18/091,652 US20230214519A1 (en) | 2021-12-30 | 2022-12-30 | Data protection method, data protection device and micro-controller |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW110149560A TWI873394B (zh) | 2021-12-30 | 2021-12-30 | 資料保護方法、資料保護裝置及微控制器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202326489A TW202326489A (zh) | 2023-07-01 |
| TWI873394B true TWI873394B (zh) | 2025-02-21 |
Family
ID=86991746
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110149560A TWI873394B (zh) | 2021-12-30 | 2021-12-30 | 資料保護方法、資料保護裝置及微控制器 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20230214519A1 (zh) |
| CN (1) | CN116415312A (zh) |
| TW (1) | TWI873394B (zh) |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1302013A (zh) * | 1999-12-28 | 2001-07-04 | 后健慈 | 非挥发性储存装置内容保密方法与架构 |
| CN101241758A (zh) * | 2007-01-04 | 2008-08-13 | 三星电子株式会社 | 使用搅乱地址数据的存储系统和方法 |
| US20120166582A1 (en) * | 2010-12-22 | 2012-06-28 | May Patents Ltd | System and method for routing-based internet security |
| TWI693530B (zh) * | 2017-09-12 | 2020-05-11 | 力旺電子股份有限公司 | 安全系統及安全系統的操作方法 |
| TW202036319A (zh) * | 2019-03-15 | 2020-10-01 | 美商美超微電腦股份有限公司 | 儲存空間之自動組態之設備及方法 |
| TWI707234B (zh) * | 2019-05-20 | 2020-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
| US20200357446A1 (en) * | 2011-04-11 | 2020-11-12 | Rambus Inc. | Memory buffer with data scrambling and error correction |
| TWI722613B (zh) * | 2018-11-15 | 2021-03-21 | 美商美光科技公司 | 記憶體之位址混淆 |
| TWI750013B (zh) * | 2021-01-20 | 2021-12-11 | 群聯電子股份有限公司 | 資料存取方法、記憶體控制電路單元及記憶體儲存裝置 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2258809A1 (fr) * | 1998-12-23 | 2000-06-23 | Harold Cote | Jeu de hasard et d'argent sur ordinateur |
| CA2305078A1 (en) * | 2000-04-12 | 2001-10-12 | Cloakware Corporation | Tamper resistant software - mass data encoding |
| JP2002156413A (ja) * | 2000-11-21 | 2002-05-31 | Ando Electric Co Ltd | 半導体試験装置 |
| GB2405247B (en) * | 2003-08-21 | 2007-07-25 | Hewlett Packard Development Co | Position sensing method and position sensing apparatus and its construction |
| TWI336567B (en) * | 2007-03-07 | 2011-01-21 | Ind Tech Res Inst | A variable length decoder and decoding method therefor |
| TWI517682B (zh) * | 2012-12-28 | 2016-01-11 | 晨星半導體股份有限公司 | 多媒體資料流格式、元數據產生器、編碼及解碼方法與系統 |
| DE102015215401B4 (de) * | 2015-08-12 | 2020-10-01 | Infineon Technologies Ag | Speichervorrichtung und Verfahren zum Korrigieren einer gespeicherten Bitfolge |
| CN107292192A (zh) * | 2017-05-25 | 2017-10-24 | 南京邮电大学 | 一种云计算环境中低调整率的保序加密方法 |
| US11087009B2 (en) * | 2018-06-29 | 2021-08-10 | International Business Machines Corporation | Authorization-based messaging |
| US11474920B2 (en) * | 2020-03-31 | 2022-10-18 | International Business Machines Corporation | Dynamic mapping of logical to physical memory for increased performance |
| US11899829B2 (en) * | 2020-12-01 | 2024-02-13 | Micron Technology, Inc. | Memory systems and devices including examples of generating access codes for memory regions using authentication logic |
-
2021
- 2021-12-30 TW TW110149560A patent/TWI873394B/zh active
-
2022
- 2022-09-28 CN CN202211190404.2A patent/CN116415312A/zh active Pending
- 2022-12-30 US US18/091,652 patent/US20230214519A1/en active Pending
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1302013A (zh) * | 1999-12-28 | 2001-07-04 | 后健慈 | 非挥发性储存装置内容保密方法与架构 |
| CN101241758A (zh) * | 2007-01-04 | 2008-08-13 | 三星电子株式会社 | 使用搅乱地址数据的存储系统和方法 |
| US20120166582A1 (en) * | 2010-12-22 | 2012-06-28 | May Patents Ltd | System and method for routing-based internet security |
| US20200357446A1 (en) * | 2011-04-11 | 2020-11-12 | Rambus Inc. | Memory buffer with data scrambling and error correction |
| TWI693530B (zh) * | 2017-09-12 | 2020-05-11 | 力旺電子股份有限公司 | 安全系統及安全系統的操作方法 |
| TWI722613B (zh) * | 2018-11-15 | 2021-03-21 | 美商美光科技公司 | 記憶體之位址混淆 |
| TW202036319A (zh) * | 2019-03-15 | 2020-10-01 | 美商美超微電腦股份有限公司 | 儲存空間之自動組態之設備及方法 |
| TWI707234B (zh) * | 2019-05-20 | 2020-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
| TWI750013B (zh) * | 2021-01-20 | 2021-12-11 | 群聯電子股份有限公司 | 資料存取方法、記憶體控制電路單元及記憶體儲存裝置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116415312A (zh) | 2023-07-11 |
| TW202326489A (zh) | 2023-07-01 |
| US20230214519A1 (en) | 2023-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101324825B1 (ko) | 메시지 인증 코드 사전 연산 방법 및 시스템 | |
| TWI556106B (zh) | 具完整性檢查和防護重播攻擊之用於記憶體加密的方法及設備 | |
| EP3355232B1 (en) | Input/output data encryption | |
| US8094816B2 (en) | System and method for stream/block cipher with internal random states | |
| JP6292594B2 (ja) | 重複排除に基づくデータセキュリティ | |
| TWI567557B (zh) | 具防護重播攻擊之用於記憶體加密的可微調加密模式 | |
| US7444480B2 (en) | Processor, memory device, computer system, and method for transferring data | |
| US12326933B2 (en) | Method for protecting against side-channel attacks | |
| CN112887077A (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
| US20080212770A1 (en) | Key Information Generating Method and Device, Key Information Updating Method, Tempering Detecting Method and Device, and Data Structure of Key Information | |
| JPH06243046A (ja) | 情報保護方法及び情報メディア | |
| CN213876729U (zh) | 一种ssd主控芯片随机缓存保密电路 | |
| TWI873394B (zh) | 資料保護方法、資料保護裝置及微控制器 | |
| US9058507B2 (en) | Signal processor with an encrypting or decrypting device in a memory system | |
| CN118377734A (zh) | 基于物理与访存地址转换的内存数据安全加强方法及系统 | |
| JP6704071B2 (ja) | 保護されていないハードウェアレジスタへの秘密データの安全なローディング | |
| CN118113254A (zh) | 一种随机数种子的生成方法、装置、电子设备及介质 | |
| CN117411634A (zh) | 用于保护电子装置免受旁信道攻击的方法和电路 | |
| US20050050341A1 (en) | Device of applying protection bit codes to encrypt a program for protection | |
| CN116414737A (zh) | 微控制芯片及存取方法 |