TW202407565A - 安全記憶體裝置及其存取方法 - Google Patents

安全記憶體裝置及其存取方法 Download PDF

Info

Publication number
TW202407565A
TW202407565A TW112129706A TW112129706A TW202407565A TW 202407565 A TW202407565 A TW 202407565A TW 112129706 A TW112129706 A TW 112129706A TW 112129706 A TW112129706 A TW 112129706A TW 202407565 A TW202407565 A TW 202407565A
Authority
TW
Taiwan
Prior art keywords
secure
address
storage partition
access
address range
Prior art date
Application number
TW112129706A
Other languages
English (en)
Inventor
伊塔 阿德蒙
尼爾 塔莎
卡路茲尼 厄瑞
Original Assignee
華邦電子股份有限公司
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 華邦電子股份有限公司 filed Critical 華邦電子股份有限公司
Publication of TW202407565A publication Critical patent/TW202407565A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/78Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

本發明提供一種安全記憶體裝置,包含記憶體陣列、安全存取電路、普通存取電路以及硬體保護措施。記憶體陣列包含被分配至第一位址範圍的安全儲存分區和被分配至與第一位址範圍不相交的第二位址範圍的普通儲存分區。安全存取電路被配置為通過產生第一位址範圍中的位址來存取安全儲存分區。普通存取電路被配置為通過產生第二位址範圍中的位址來存取普通儲存分區。硬體保護措施被配置為阻止普通存取電路存取安全儲存分區。

Description

安全記憶體裝置及其存取方法
本發明大體上涉及儲存有安全資料的記憶體裝置,且尤其是有關於一種可增強安全資料的保密性和安全的記憶體裝置及其安全資料的存取方法。
在各種應用和主機系統中,記憶體裝置用於儲存安全資料和普通資料兩者。例如,可保留記憶體裝置的區段以用於儲存例如加密金鑰的敏感性資料。確保安全資料僅由授權方存取非常重要,甚至在裝置受到故障注入攻擊(Fault injection attack)時。
為了避免安全記憶體裝置受到物理攻擊或故障注入攻擊,因而導致安全資料的洩漏,本發明一實施例提出一種記憶體裝置及用於記憶體存取的方法。
本文中所描述的本發明的實施例提供一種安全記憶體裝置,包含記憶體陣列、安全存取電路、普通存取電路以及硬體保護措施。記憶體陣列包含被分配至第一位址範圍的安全儲存分區和被分配至與第一位址範圍不相交的第二位址範圍的普通儲存分區。安全存取電路被配置為通過產生第一位址範圍中的位址來存取安全儲存分區。普通存取電路被配置為通過產生第二位址範圍中的位址來存取普通儲存分區。硬體保護措施被配置為阻止普通存取電路存取安全儲存分區。
根據本文中所描述的實施例,另外提供一種安全記憶體裝置的存取方法。所述方法包含:在被分配至第一位址範圍的安全儲存分區和被分配至與第一位址範圍不相交的第二位址範圍的普通儲存分區的記憶體陣列中,通過產生第一位址範圍中的位址而使用安全存取電路存取安全儲存分區,且通過產生第二位址範圍中的位址而使用普通存取電路存取普通儲存分區。阻止普通存取電路存取安全儲存分區。
自結合圖式進行的本發明的實施例的以下詳細描述將更全面理解本發明。
本文中所描述的本發明的實施例提供用於將安全資料和普通資料兩者儲存在同一記憶體裝置中的改良的技術。
在所公開實施例中,安全記憶體裝置包括記憶體陣列,其中將記憶體陣列中的一或多個記憶體區指定為安全儲存分區,且將一或多個記憶體區指定為普通儲存分區。每一分區被分配有相應的位址範圍。安全記憶體裝置進一步包括:至少一個安全存取電路,被配置為存取安全儲存分區,例如產生位於存取安全儲存分區的位址範圍中的位址;以及至少一個普通存取電路,被配置為存取普通儲存分區。
藉由使用不相交的位址範圍和獨立的存取電路(即相互獨立的安全存取電路與普通存取電路),可在安全資料與普通資料之間提供一定程度的邏輯分隔。儘管如此,此配置仍易受例如故障注入或電力中斷的物理攻擊的影響,所述物理攻擊可導致普通存取電路無意地存取安全儲存分區,即,產生落在安全儲存分區的位址範圍中的位址。
在本發明的一些實施例中,安全記憶體裝置包括阻止普通存取電路存取安全儲存分區的硬體保護措施。例如,此硬體保護措施(在圖1中表示為42)可阻止普通存取電路產生落在安全儲存分區的位址範圍中的位址。為易於解釋,以下描述將以安全記憶體裝置包括單個安全儲存分區、單個普通儲存分區、單個安全存取電路以及單個普通存取電路為例。然而,本發明不為此限,且可包括任何合適數目的安全儲存分區、普通儲存分區、安全存取電路及普通存取電路。
在一些實施例中,記憶體劃分為低位址範圍和高位址範圍。低位址範圍包括其中預定義數目的最高有效位元(Most Significant Bit;MSB)為“0”的位址。高位址範圍包括其中這些MSB中的一或多個具有與低位址範圍不同值的位址。任何合適數目個MSB(例如,單個MSB)可用於這一分隔。將低位址範圍指定為普通儲存分區,且將高位址範圍指定為安全儲存分區。
本實施例為阻止普通存取電路產生高位址範圍中的位址,將普通存取電路的位址匯流排上的預定義數目個MSB硬連線到對應於邏輯“0”的電壓。通過這種硬體保護措施,物理攻擊或硬體故障無法導致普通存取電路產生屬於安全儲存分區的位址。
在一些實施例中,分配安全記憶體和普通儲存分區的位址範圍,使得安全儲存分區中的任何位址與普通儲存分區中的任何位址之間的漢明距離大於一。藉此,可要求所述位址範圍之間具有合適的偏移,且相較於僅分配不相交位址範圍更嚴格。在一個實例中,低位址範圍包括具有四個MSB等於“0”的位址,然而高位址範圍包括具有四個MSB等於0x3(或0x6,或包括至少兩個“1”的任何其它四位元值)的位址。
在一些實施例中,硬體保護措施包括當安全存取電路存取安全儲存分區時所激活(assert)的專用控制信號。記憶體陣列包括被配置以監測專用控制信號且僅在專用控制信號被激活時才准許存取安全儲存分區的電路。由於普通存取電路不支援此專用控制信號,因此藉由此專用控制信號可阻止普通存取電路存取安全儲存分區。
在一些實施例中,在將資料寫入到記憶體線時,安全存取電路和/或普通存取電路寫入資料及錯誤檢測碼(EDC),例如,迴圈冗餘校驗(CRC)碼或錯誤校正碼(ECC)。在從記憶體線讀取資料時,安全存取電路和/或普通存取電路基於讀取資料計算預期的EDC,且將預期的EDC與儲存於記憶體線中的EDC進行比較(於本文中亦可簡稱為驗證)。為進一步阻斷對安全儲存分區的未授權存取,記憶體存取電路不僅計算資料上的EDC,而且還計算至少部分位址的上的EDC,且僅在EDC匹配時才將資料返回到使用者。藉此,即使物理攻擊或硬體故障成功地寫入到安全儲存分區中的記憶體線,但在讀取資料時,因為預期的EDC將不匹配所儲存的EDC,因此此非法寫入將很可能被檢測到。
在一些實施例中,安全記憶體裝置包括以下所示例的兩個或兩個以上的硬體保護措施(又可稱為阻斷點),藉此盡可能地阻斷物理攻擊且減少硬體故障。
藉由本發明的一些實施例所描述的硬體保護措施,可高效地阻止安全儲存分區被未經授權地存取。由於本發明的一些實施例可有效抵抗物理攻擊和硬體故障,因此在一些使用情況下(例如,在車載系統中),可增強保密性(security)和安全。增強的安全和保密性有助於在普通儲存分區及安全儲存分區之間共用記憶體裝置的資源,例如,電力供應、電荷泵、感測放大器以及邏輯控制,藉以有助於安全記憶體裝置的微型化。
圖1為示意性地示出根據本發明的實施例的安全記憶體裝置20的框圖。安全記憶體裝置20包括記憶體陣列24。記憶體陣列24可包括例如快閃記憶體的非揮發性記憶體、例如隨機存取記憶體(Random Access Memory;RAM)的揮發性記憶體或任何其它合適的記憶體類型。
在本實例中,於記憶體陣列24中界定出安全儲存分區28和普通儲存分區32(也分別簡稱為“安全分區”和“普通分區”)。安全分區28用於儲存敏感資訊,例如保密金鑰、口令或其它憑證、個人資訊(例如,信用卡號)或出於任何原因視為安全或敏感的任何其它合適的資訊。對安全分區28的存取可受限制,或需要一些加密操作,例如加密或驗證。普通分區32可用於儲存任何合適的資訊,通常視為比儲存于安全分區28中的資訊更低安全或敏感的資訊。
本實施例將安全分區28和普通分區32分別分配在記憶體陣列24的位址空間內的相應位址範圍。位址範圍可具有相同大小或具有不同大小,每一位址範圍可為連續或非連續的,且每一位址範圍可包括任何合適數目個位址。詳細而言,分配到分區28和分區32的位址範圍不重疊,也就是不相交。
安全記憶體裝置20進一步包括用於存取(讀取和寫入)安全分區28中的資料的安全存取電路36,和用於存取(讀取和寫入)普通分區32中的資料的普通存取電路40。
每一記憶體存取電路(安全存取電路36或普通存取電路40)使用資料匯流排和位址匯流排存取記憶體陣列24。在典型寫入操作中,記憶體存取電路接收用於寫入到記憶體陣列24的資料。記憶體存取電路產生適當分區(安全分區28或普通分區32)的位址範圍內的位址,且將具有位址匯流排上的位址和資料匯流排上的資料的寫入命令發送到記憶體陣列24。在典型讀取操作中,記憶體存取電路從記憶體陣列24接收讀取資料的請求。記憶體存取電路產生適當分區的位址範圍內的位址,且將具有位址的讀取命令經由位址匯流排發送到記憶體陣列24。作為回應,記憶體陣列24經由資料匯流排返回所請求的資料。
安全存取電路36和普通存取電路40可包括例如資料路徑或執行記憶體存取操作的任何其它合適的電路。安全存取電路36和普通存取電路40可服務於將資料儲存於安全記憶體裝置20中的任何合適的主機、應用或其它實體。
安全記憶體裝置20的各種元件(包含記憶體陣列24、安全存取電路36和普通存取電路40)通常集成於單個半導體裝置封裝中,例如,單個裸片或不同裸片上。安全記憶體裝置20可安裝於任何合適的主機系統中,例如電腦或車載電子單元。
圖1中所繪示的安全記憶體裝置20的配置為純粹出於概念清晰性而選擇的實例配置。任何其它合適的配置可用於替代實施例中。例如,如上文所提及,記憶體陣列24可包括任何合適數目個安全儲存分區28和普通儲存分區32,且安全記憶體裝置20可包括任何合適數目個安全存取電路36和普通存取電路40。
在各種實施例中,安全記憶體裝置20可使用硬體實施,例如,使用一或多個專用積體電路(Application-Specific Integrated Circuits;ASIC)和/或現場可程式設計閘陣列(Field-Programmable Gate Arrays;FPGA)。記憶體陣列24可包括任何合適類型的易失性或非易失性記憶體,例如RAM或快閃記憶體。
本發明一實施例提供有關阻止普通存取電路存取安全儲存分區的技術。在各種實施例中,安全記憶體裝置20可包括用於阻止普通存取電路40產生落在安全儲存分區28的位址範圍中的位址的各種硬體保護措施(也稱為阻斷點)。
於一實施例中,阻斷點可為普通存取電路的位址匯流排中的匯流排的硬連線。如圖1所示,普通分區32可對應至低位址範圍,且安全分區28可對應至高位址範圍。如先前所述,低位址範圍包括其中預定義數目個MSB(一或多個MSB)為“0”的位址。高位址範圍包括其中預定義數目個MSB為“1”的位址。
詳細而言,藉由將普通存取電路40的位址匯流排的線的預定義子集硬連線到對應於邏輯“0”的電壓,所述線對應于普通分區32的位址範圍中設定為“0”的MSB,可實施本發明所稱之阻斷點。取決於所使用的邏輯,此電壓可為例如電源電壓Vcc、接地或促使MSB到“0”的任何其它合適的電壓,而不管普通存取電路40可試圖在這些匯流排上發送的電壓。於本實施例中,將位址匯流排對應于普通分區32的位址範圍中設定為“0”的MSB硬連線到“0”,可有效地阻止普通存取電路40產生位於高位址範圍(即安全分區28的位址範圍)中的位址。
在一個實例實施方案中,普通分區32的位址範圍為00000000h至00FFFFFFh,從而提供16 MB的普通存取記憶體,且安全分區28的位址範圍為大於等於01000000h。在一實例中,硬連線到“0”的MSB的預定義數目為2。替代地,可使用任何其它合適的位址範圍和任何其它合適數目個MSB。
在一替代的實施例中,可將低位址範圍分配到安全分區且將高位址範圍分配到普通分區。另外,用以區別安全分區與普通分區的位址範圍的位元不需要一定是位址的MSB。亦即,更廣義地來說,本發明的安全記憶體裝置20的安全分區的位址範圍可被配置為具有設定成相應第一位元值的一或多個給定位元的位址;而普通分區的位址範圍可被配置為具有設定成與相應第一位元值相對的相應第二位元值的一或多個給定位元的位址;且安全記憶體裝置20可包括迫使普通存取電路的位址匯流排上的一或多個給定位元被設定為相應第二位元值的硬體保護措施(42)。
在一實施例中,阻斷點可為在普通分區與安全分區的位址範圍之間維持較大的漢明距離。在一些實施例中,安全分區28和普通分區32的位址範圍被分配為使得安全分區28中的任何位址與普通分區32中的任何位址之間的漢明距離大於一。兩個位址之間的漢明距離限定為位址不同的對應位元的數目。藉由使普通分區與安全分區的位址範圍之間具有大於一的漢明距離,攻擊或硬體故障將需要翻轉大於一個位元才有機會使普通分區32中的位址變為安全分區28中的位址,從而顯著地降低攻擊或硬體故障成功地存取安全分區28的可能。
例如,在使用32位元位址時,若普通分區32被分配於其中位址的四個MSB(位元[31:28])為“0”的位址範圍。為達成較大漢明距離,可將安全分區28分配於其中四個MSB為0x3(“0011”)的位址範圍。在另一實施例中,可將安全分區28分配於其中四個MSB為0x6(“0110”)的位址範圍。或者,可將安全分區28分配於包括至少兩個“1”的任何其它四位元值的位址範圍。
在一實施例中,阻斷點可為指示存取安全分區的專用控制信號。以圖1為例,硬體保護措施42可被配置以在存取安全儲存分區28時激活專用控制信號SEC,並且記憶體陣列24被配置以僅在專用控制信號SEC被激活時才允許存取安全儲存分區28。詳細來說,安全存取電路36被配置為在存取安全分區28時激活專用控制信號SEC。記憶體陣列24包括安全分區存取控制電路26,其被配置為監測專用控制信號SEC且僅在專用控制信號SEC被激活時才允許安全分區28被存取。普通存取電路40不支援專用控制信號SEC且無法激活專用控制信號SEC。因此,即使物理攻擊或硬體故障成功地使普通存取電路40產生落入安全分區28的位址範圍中的位址,因為專用控制信號SEC未被激活,記憶體陣列24中的安全分區存取控制電路26仍將拒絕存取安全分區28。
在一實施例中,阻斷點可為對資料與位址進行EDC計算與比較。在一些實施例中,在將資料寫入到記憶體陣列24中的記憶體線時,記憶體存取電路(安全存取電路36或普通存取電路40)寫入資料以及錯誤檢測碼(EDC),例如,迴圈冗餘校驗(CRC)碼或錯誤校正碼(ECC)。在從記憶體線讀取資料時,記憶體存取電路基於讀取資料計算預期的EDC,且將預期的EDC與儲存於記憶體線中的EDC進行比較。並且在僅當預期的EDC匹配所儲存的EDC時,才將讀取操作視為合法(即經授權的存取)的。在一些實施例中,為進一步阻斷對安全分區28的未授權存取,記憶體存取電路不僅計算資料(或至少一部分的資料)上的EDC,且還計算至少部分的位址上的EDC。
圖2為根據本發明的一實施例的安全儲存分區的示意圖。圖2中示出安全分區28中的多個記憶體線。各記憶體線包括資料區域44及相應的CRC區域48。於本實施例中,可藉由安全存取電路36對所存取的記憶體線的資料區域44的資料和記憶體線的位址進行CRC計算。
藉由對資料與位址進行EDC計算,即使物理攻擊或硬體故障成功地使普通存取電路40寫入到安全分區28中的記憶體線(即非法寫入),但在讀取資料時,因為預期的EDC將不匹配所儲存的EDC,也就是根據錯誤檢測碼或錯誤校正碼的驗證結果檢測出錯誤,藉此可識別出非法寫入(即識別出故障或攻擊),進而避免輸出讀取資料。
圖3為示意性地示出根據本發明的實施例的用於安全記憶體裝置20中的安全資料的存取方法的流程圖。須注意的是,雖然圖3是以寫入操作來示例,但讀取操作也可以以類似的方式來執行。
如圖3所示,本實施例的安全資料的存取方法開始於位址分配階段52,以將合適的位址範圍分配到普通分區32和安全分區28。接著,在資料輸入階段56,安全記憶體裝置20接收用於儲存於記憶體陣列24中的資料。接著,在檢查階段60,安全記憶體裝置20判斷資料是要寫入在普通儲存分區32還是安全儲存分區28。
如果判斷出資料將儲存於普通分區32中,安全記憶體裝置20將執行普通分配階段64,即指定普通存取電路40來執行寫入操作。相對地,如果判斷出資料將儲存於安全分區28中,安全記憶體裝置20將執行安全分配階段68,即指定安全存取電路36來執行寫入操作。
接著,在位址產生階段72,被指定的記憶體存取電路產生待儲存資料的所欲儲存位址。在CRC計算階段76,記憶體存取電路對待儲存資料和所產生的位址執行CRC計算。在儲存階段80,記憶體存取電路將待儲存資料和所計算出的CRC儲存在與所產生的位址對應的記憶體線中。
圖3的方法純粹是出於概念清晰性而示例,在其他替代的實施例中,本領域人員可基於本發明的精神與現有技術得出任何其它合適的流程。
在一些實施例中,可在圖3的安全記憶體裝置20中採用前述的阻斷點(普通存取電路的位址匯流排線的硬連線,維持普通分區的位址範圍與安全分區的位址範圍之間的較大漢明距離,使用指示存取安全分區的專用控制信號以及在對資料與位址進行EDC計算與比較)中的任一者或其組合。這些阻斷點的組合使用可進一步降低物理攻擊或硬體故障所導致的普通存取電路產生安全分區的位址範圍中的位址的概率。在各種實施例中,可基於本發明之精神對於這些阻斷點進行合適的變化與組合。
本發明有助於安全記憶體裝置的微型化,以增加晶圓上晶粒的總數。因此,本發明可降低製造單個IC的生產成本和能耗,及降低後續封裝的生產能耗,從而減少了安全記憶體裝置生產過程中的碳排放。此外,由於本發明的安全記憶體裝置的保密性和安全得到改善,延長了安全記憶體裝置的使用壽命,並且適用於要求高度安全性的電動車與IoT設備中,因此本發明提供了一種綠色的半導體技術。
應瞭解,本發明不限於上文已描述的內容。換句話說,本發明的範圍包含上文所描述的各種特徵的組合以及所屬領域的技術人員在閱讀前述描述之後將出現且現有技術中未公開的本發明的變化和修改兩者。
20:安全記憶體裝置 24:記憶體陣列 26:安全分取存取控制電路 28:安全儲存分區(簡稱為安全分區) 32:普通儲存分區(簡稱為普通分區) 36:安全存取電路 40:普通存取電路 42:硬體保護措施 44:資料區域 48:CRC區域 52:位址分配階段 56:資料輸入階段 60:檢查階段 64:普通分配階段 68:安全分配階段 72:位址產生階段 76:CRC計算階段 80:儲存階段 SEC:專用控制信號
圖1為根據本發明的實施例的安全記憶體裝置的示意圖。 圖2為根據本發明的實施例的安全儲存分區的示意圖。 圖3為示意性地示出根據本發明的實施例的用於安全記憶體裝置中的安全資料的存取方法的流程圖。
20:安全記憶體裝置
24:記憶體陣列
26:安全分區存取控制電路
28:安全分區
32:普通分區
36:安全存取電路
40:普通存取電路
42:硬體保護措施
SEC:專用控制信號

Claims (15)

  1. 一種安全記憶體裝置,包括: 記憶體陣列,包括被分配至第一位址範圍的安全儲存分區和被分配至與所述第一位址範圍不相交的第二位址範圍的普通儲存分區; 安全存取電路,被配置為通過產生所述第一位址範圍中的位址來存取所述安全儲存分區; 普通存取電路,被配置為通過產生所述第二位址範圍中的位址來存取所述普通儲存分區;以及 硬體保護措施,被配置為阻止所述普通存取電路存取所述安全儲存分區。
  2. 如請求項1所述的安全記憶體裝置,其中所述硬體保護措施被配置為阻止所述普通存取電路產生分配給所述安全儲存分區的所述第一位址範圍中的位址。
  3. 如請求項1所述的安全記憶體裝置,其中: 所述第一位址範圍中的所述位址具有被設定為第一位元值的一或多個給定位元; 所述第二位址範圍中的所述位址具有被設定為與所述第一位元值相對的第二位元值的一或多個給定位元;以及 所述硬體保護措施包括將所述普通存取電路的位址匯流排上的相應線硬連線到對應於所述第二位元值的電壓,以阻止所述普通存取電路產生分配給所述安全儲存分區的所述第一位址範圍中的位址。
  4. 如請求項1所述的安全記憶體裝置,其中所述硬體保護措施被配置為使所述第一位址範圍中的任何位址與所述第二位址範圍中的任何位址之間的漢明距離大於一。
  5. 如請求項1所述的安全記憶體裝置,其中所述硬體保護措施被配置為在存取所述安全儲存分區時激活專用控制信號,且所述記憶體陣列被配置為僅在所述專用控制信號被激活時允許存取所述安全儲存分區。
  6. 如請求項5所述的安全記憶體裝置,其中該記憶體陣列更包括安全分區存取控制電路,其設置於所述安全儲存分區與所述安全存取電路之間,且被配置為接收所述專用控制信號,且根據被激活的所述專用控制信號允許存取所述安全儲存分區。
  7. 如請求項1所述的安全記憶體裝置,其中所述安全存取電路和所述普通存取電路中的一個或兩個被配置為: 在將資料儲存在指定位址的期間,對至少部分的所述資料和至少部分的所述指定位址進行錯誤檢測碼計算或錯誤校正碼計算,且根據所述指定位址將所述資料和所述錯誤檢測碼或所述錯誤校正碼儲存在所述安全儲存分區或所述普通儲存分區中; 在從所述指定位址讀取所述資料的期間,驗證所述錯誤檢測碼或所述錯誤校正碼;以及 響應於由所述錯誤檢測碼或所述錯誤校正碼檢測到的錯誤,識別出故障或攻擊且避免提供所述資料作為輸出。
  8. 如請求項7所述的安全記憶體裝置,其中所述錯誤檢測碼為迴圈冗餘校驗碼。
  9. 一種安全記憶體裝置的存取方法,包括: 在被分配至第一位址範圍的安全儲存分區和被分配至與所述第一位址範圍不相交的第二位址範圍的普通儲存分區的記憶體陣列中,通過產生所述第一位址範圍中的位址而使用安全存取電路存取所述安全儲存分區,且通過產生所述第二位址範圍中的位址而使用普通存取電路存取所述普通儲存分區;以及 阻止所述普通存取電路存取所述安全儲存分區。
  10. 如請求項9所述的安全記憶體裝置的存取方法,其中阻止所述普通存取電路存取所述安全儲存分區包括阻止所述普通存取電路產生分配給所述安全儲存分區的所述第一位址範圍中的位址。
  11. 如請求項9所述的安全記憶體裝置的存取方法,其中: 所述第一位址範圍中的所述位址具有被設定為第一位元值的一或多個給定位元; 所述第二位址範圍中的所述位址具有被設定為與所述第一位元值相對的第二位元值的所述一或多個給定位元;以及 阻止所述普通存取電路存取所述安全儲存分區包括將所述普通存取電路的位址匯流排上的相應線硬連線到對應於所述第二位元值的電壓。
  12. 如請求項9所述的安全記憶體裝置的存取方法,其中阻止所述普通存取電路存取所述安全儲存分區包括使所述第一位址範圍中的任何位址與所述第二位址範圍中的任何位址之間的漢明距離大於一。
  13. 如請求項9所述的安全記憶體裝置的存取方法,其中阻止所述普通存取電路存取所述安全儲存分區包括在存取所述安全儲存分區時激活專用控制信號,且僅在所述專用控制信號被激活時允許存取所述安全儲存分區。
  14. 如請求項9所述的安全記憶體裝置的存取方法,其中存取所述安全儲存分區和所述普通儲存分區中的一個或兩個包括: 在將資料儲存在指定位址的期間,對至少部分的所述資料和至少部分的所述指定位址進行錯誤檢測碼計算或錯誤校正碼計算,且根據所述指定位址將所述資料和所述錯誤檢測碼或所述錯誤校正碼儲存在所述安全儲存分區或所述普通儲存分區中; 在從所述指定位址讀取所述資料的期間,驗證所述錯誤檢測碼或所述錯誤校正碼;以及 響應於由所述錯誤檢測碼或所述錯誤校正碼檢測到的錯誤,識別故障或攻擊且避免提供所述資料作為輸出。
  15. 如請求項14所述的安全記憶體裝置的存取方法,其中所述錯誤檢測碼為迴圈冗餘校驗碼。
TW112129706A 2022-08-09 2023-08-08 安全記憶體裝置及其存取方法 TW202407565A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/883,651 US11907559B1 (en) 2022-08-09 2022-08-09 Physically secure memory partitioning
US17/883,651 2022-08-09

Publications (1)

Publication Number Publication Date
TW202407565A true TW202407565A (zh) 2024-02-16

Family

ID=84981289

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112129706A TW202407565A (zh) 2022-08-09 2023-08-08 安全記憶體裝置及其存取方法

Country Status (6)

Country Link
US (1) US11907559B1 (zh)
EP (1) EP4322040A1 (zh)
JP (1) JP7564901B2 (zh)
KR (1) KR20240021095A (zh)
CN (1) CN117591003A (zh)
TW (1) TW202407565A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240126447A1 (en) * 2022-10-12 2024-04-18 Micron Technology, Inc. Address verification at a memory device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19635237A1 (de) 1996-08-30 1998-03-05 Siemens Ag Speichersystem
EP1563388A2 (en) 2002-11-18 2005-08-17 ARM Limited Secure memory for protecting against malicious programs
US7412579B2 (en) * 2004-12-30 2008-08-12 O'connor Dennis M Secure memory controller
FR2885709A1 (fr) * 2005-05-10 2006-11-17 St Microelectronics Sa Controle d'integrite d'une memoire externe a un processeur
US7845005B2 (en) 2006-02-07 2010-11-30 International Business Machines Corporation Method for preventing malicious software installation on an internet-connected computer
JP2009193397A (ja) 2008-02-15 2009-08-27 Seiko Epson Corp プリンタコントローラ、プリンタ、および、複合機
KR101537018B1 (ko) 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
JP6476098B2 (ja) 2015-09-15 2019-02-27 ルネサスエレクトロニクス株式会社 半導体装置
KR102429906B1 (ko) * 2015-10-13 2022-08-05 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치와 통신하는 호스트 및 상기 스토리지 장치를 포함하는 전자 장치
US10318438B1 (en) 2017-12-07 2019-06-11 Nuvoton Technology Corporation Secure memory access using memory read restriction
GB201810662D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Access On A Secure-Aware Bus System
US10614232B2 (en) * 2018-09-10 2020-04-07 John Almeida Storing and using multipurpose secret data
US11550733B2 (en) * 2020-07-01 2023-01-10 Arm Limited Method, system and circuit for managing a secure memory partition

Also Published As

Publication number Publication date
US11907559B1 (en) 2024-02-20
CN117591003A (zh) 2024-02-23
EP4322040A1 (en) 2024-02-14
KR20240021095A (ko) 2024-02-16
US20240053913A1 (en) 2024-02-15
JP2024024576A (ja) 2024-02-22
JP7564901B2 (ja) 2024-10-09

Similar Documents

Publication Publication Date Title
US11374967B2 (en) Systems and methods for detecting replay attacks on security space
US11748276B2 (en) Refresh and access modes for memory
US20080192928A1 (en) Portable Electronic Storage Devices with Hardware Security Based on Advanced Encryption Standard
US11409872B2 (en) Confirming a version of firmware loaded to a processor-based device
US20170083402A1 (en) Detecting data indicated as being uncorrectable at a data storage device
US11683155B2 (en) Validating data stored in memory using cryptographic hashes
TW202407565A (zh) 安全記憶體裝置及其存取方法
KR20210132723A (ko) 메모리에서의 데이터 증명
US20240004760A1 (en) Apparatus for redundant array of independent disks
JP6518798B2 (ja) 安全な集積回路状態を管理する装置およびその方法
US11669643B2 (en) Block chain based validation of memory commands
US11228443B2 (en) Using memory as a block in a block chain
CN113826071A (zh) 空中更新确认
CN111506934A (zh) 具有安全功能的存储器芯片及存储器装置
US11379580B1 (en) Mixed storage of data fields
US20220138114A1 (en) Using memory as a block in a block chain
US20240007265A1 (en) Data authenticity and integrity check for data security schemes
US20240005010A1 (en) Non-cached data transfer
JP4881606B2 (ja) ユニバーサルメモリ及びこれを用いた情報処理装置
CN113348456A (zh) 具有密码学组件的存储器装置