TWI813815B - 記憶體模組、其操作方法、記憶體系統以及其操作方法 - Google Patents
記憶體模組、其操作方法、記憶體系統以及其操作方法 Download PDFInfo
- Publication number
- TWI813815B TWI813815B TW108142405A TW108142405A TWI813815B TW I813815 B TWI813815 B TW I813815B TW 108142405 A TW108142405 A TW 108142405A TW 108142405 A TW108142405 A TW 108142405A TW I813815 B TWI813815 B TW I813815B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- encryption key
- memories
- address
- data
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 413
- 238000000034 method Methods 0.000 title claims description 21
- 239000000463 material Substances 0.000 claims description 3
- 238000003491 array Methods 0.000 claims 1
- IJGRMHOSHXDMSA-UHFFFAOYSA-N Atomic nitrogen Chemical compound N#N IJGRMHOSHXDMSA-UHFFFAOYSA-N 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000007788 liquid Substances 0.000 description 2
- 229910052757 nitrogen Inorganic materials 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/20—Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access
-
- 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
Abstract
一種記憶體模組,包括:多個記憶體,其中,每個記憶體包括適用於儲存加密密鑰的加密密鑰儲存電路;位址加密電路,適用於透過使用儲存在加密密鑰儲存電路中的加密密鑰對從記憶體控制器傳送來的位址進行加密來產生加密位址;以及單元陣列,其透過加密位址來存取,其中,多個記憶體的加密密鑰儲存電路儲存不同的加密密鑰。
Description
本發明的各個實施例涉及包括記憶體控制器和記憶體模組的記憶體系統。
諸如雙列直插式記憶體模組(Dual In-line Memory Modules, DIMM)之類的記憶體模組被廣泛用於諸如資料中心之類的各種伺服器系統中。資料中心中使用的記憶體模組包含許多需要保全的資料。於是,已有嘗試竊取此類資料。例如,嘗試透過以下方法來洩漏連接到DIMM的資料:用液氮冷凍資料中心中使用的記憶體模組(例如DIMM)以保持儲存在其中的資料,然後將該DIMM連接到另一個計算機系統。
因此,需要用於防止記憶體模組和記憶體系統中的這種類型的資料洩漏的技術。
本申請請求2019年5月9日提交的申請號為10-2019-0054235的韓國專利申請的優先權,其公開內容透過引用整體合併於此。
各個實施例針對能夠提高記憶體系統的安全級別的技術。
根據本發明的實施例,一種記憶體模組包括:多個記憶體,其中,每個記憶體包括:適用於儲存加密密鑰的加密密鑰儲存電路;位址加密電路,適用於透過使用儲存在所述加密密鑰儲存電路中的加密密鑰對從記憶體控制器傳送來的位址進行加密來產生加密位址;以及單元陣列,其透過所述加密位址來被存取,其中,所述多個記憶體的加密密鑰儲存電路儲存不同的加密密鑰。
根據本發明的另一實施例,一種用於操作記憶體模組的方法,所述記憶體模組設置有多個記憶體,所述方法包括:在所述記憶體中的每個記憶體中儲存不同的加密密鑰;在所述記憶體中接收命令和位址;透過使用相應記憶體的加密密鑰,對每個記憶體中的位址進行加密來產生加密位址;以及存取在每個記憶體中由所述加密位址指定的區域。
根據本發明的另一實施例,一種記憶體系統包括:多個記憶體;以及記憶體控制器,其適用於將公共命令和公共位址傳送到所述記憶體,並且其中,所述記憶體中的每一個包括:加密密鑰儲存電路,其適用於記憶體加密密鑰;位址加密電路,其適用於透過使用儲存在加密密鑰儲存電路中的加密密鑰對所述公共位址進行加密來產生加密位址;以及單元陣列,其透過所述加密位址來被存取,以及其中,所述多個記憶體的加密密鑰儲存電路儲存不同的加密密鑰。
根據本發明的另一實施例,一種記憶體系統包括:多個記憶體;以及記憶體控制器,其中,所述記憶體中的每一個包括:加密密鑰儲存電路,其適用於儲存對於所述記憶體中的每個記憶體都不同的加密密鑰;資料加密電路,其適用於在寫入操作期間透過使用儲存在所述加密密鑰儲存電路中的加密密鑰對從所述記憶體控制器傳送來的寫入資料進行加密來產生加密資料;以及單元陣列,其適用於儲存所述加密資料,其中,所述記憶體控制器包括:讀取加密密鑰儲存電路,其適用於儲存所述多個記憶體的不同的加密密鑰;以及解密電路,其適用於在讀取操作期間透過使用儲存在所述讀取加密密鑰儲存電路中的加密密鑰來解密從所述記憶體讀取的資料。
根據本發明的另一實施例,一種用於操作記憶體系統的方法,所述記憶體系統設置有多個記憶體和記憶體控制器,所述方法包括:將不同的加密密鑰從所述記憶體控制器傳送到所述記憶體;將命令和位址從所述記憶體控制器傳送到所述記憶體;透過使用每個記憶體中的加密密鑰對所述位址進行加密來產生加密位址;以及存取每個記憶體中由所述加密位址指定的區域。
根據本發明的另一實施例,一種用於操作記憶體系統的方法,所述記憶體系統設置有多個記憶體和記憶體控制器,所述方法包括:將不同的加密密鑰從所述記憶體控制器傳送到所述記憶體;將寫入命令和資料從所述記憶體控制器傳送到所述記憶體;透過使用每個記憶體中的加密密鑰對所述資料進行加密來產生加密資料;將所述加密資料儲存在每個記憶體中;將讀取命令從所述記憶體控制器傳送到所述記憶體;將從所述記憶體讀取的資料傳送到所述記憶體控制器;以及透過使用所述記憶體的所述加密密鑰來解密所述記憶體控制器中的從所述記憶體傳送來的資料。
根據本發明的另一實施例,一種記憶體系統包括:多個記憶體;以及記憶體控制器,其適用於將命令和位址傳送到所述記憶體,其中所述記憶體中的每一個包括:命令解碼器,其適用於對所述命令和位址進行解碼以提取專用於相應記憶體的加密密鑰;以及位址加密電路,其適用於透過使用所述加密密鑰對所述位址進行加密來產生加密位址;以及單元陣列,其透過所述加密位址來被存取。
下面參考附圖更詳細地描述本發明的各種實施例。然而,本發明可以以不同的形式實施,並且不應被解釋為限於本文闡述的實施例。相反,提供這些實施例是為了使本公開透徹和完整,並將本發明的範圍充分傳達給本發明所屬技術領域中具有通常知識者。貫穿本公開,在本發明的各個附圖和實施例中,相似的元件符號指代類似的部分。另外,在整個說明書中,對“一實施例”等的提及不必然是指僅僅一個實施例,並且對任何這種短語的各種提及不必然指同一實施例。
圖1是示出根據本發明的實施例的記憶體系統100的方塊圖。
參考圖1,記憶體系統100可以包括記憶體控制器110和記憶體模組150。
記憶體控制器110可以根據來自主機HOST的請求來控制記憶體模組150的整體操作,諸如寫入操作和讀取操作。主機HOST可以包括中央處理單元(Central Processing Unit, CPU)、圖形處理單元(Graphic Processing Unit, GPU)、以及應用處理器(Application Processor, AP)等。記憶體控制器110可以被包括在主機HOST的內部,即,記憶體控制器110和主機HOST可以被集成到一個設備中。在某些情況下,記憶體控制器110可以被包括在主機之外,即,記憶體控制器110和主機HOST可以是分開的設備。當記憶體控制器110被包括在主機HOST的內部時,附圖中的主機HOST可以表示主機中的不同於記憶體控制器110的組成元件。在下面的描述中,記憶體控制器110和主機HOST將被描述為彼此分離。記憶體控制器110可以包括主機介面111、調度器113、命令發生器115、隨機加密密鑰發生器117、讀取加密密鑰儲存電路119、解密電路121和記憶體介面123。
主機介面111可以是記憶體控制器110與主機HOST之間的介面。可以經由主機介面111接收來自主機HOST的請求,並且可以將根據該請求的處理結果經由主機介面111傳送到主機HOST。
調度器113可以確定來自主機HOST的請求之中的要向記憶體模組150傳送的請求的順序。調度器113可以不同地調度從主機HOST接收請求的順序和要由記憶體模組150處理的操作的順序,以提高記憶體模組150的性能。例如,即使主機HOST先請求記憶體模組150的讀取操作然後再請求寫入操作,調度器113也可以以所述寫入操作在所述讀取操作之前被執行的這種方式來調整該順序。
命令發生器115可以根據由調度器113確定的操作的順序來產生要施加到記憶體模組150的命令。
隨機加密密鑰發生器117可以隨機地產生加密密鑰。隨機加密密鑰發生器117可以產生分別與記憶體模組150中包括的記憶體151至158相對應的加密密鑰。隨機加密密鑰發生器117可以能夠針對包括在記憶體模組150中的每個記憶體151至158產生不同的加密密鑰。例如,如圖1所示,當記憶體模組150包括八個記憶體151至158時,可以隨機地產生八個不同的加密密鑰。同時,由隨機加密密鑰發生器117產生的加密密鑰可以透過記憶體介面123被傳送到記憶體模組150的記憶體151至158。
讀取加密密鑰儲存電路119可以儲存由隨機加密密鑰發生器117產生的加密密鑰。
解密電路121可以透過使用儲存在讀取加密密鑰儲存電路119中的加密密鑰來解密從記憶體模組150讀取的資料。解密電路121可以透過使用所述八個加密密鑰來解密從八個記憶體151至158中的每個記憶體讀取的資料。例如,在所述八個加密密鑰之中,透過使用在寫入操作期間由記憶體152使用的加密密鑰,解密電路121可以解密在讀取操作期間從記憶體152讀取的資料。
記憶體介面123可以是記憶體控制器110與記憶體模組150之間的介面。可以經由記憶體介面123而將命令CMD和位址ADD從記憶體控制器110傳送到記憶體模組150。可以經由記憶體介面123而在記憶體控制器110與記憶體模組150之間傳送和接收資料DATA0至DATA7。記憶體模組150中的記憶體151至158可以公共地從記憶體控制器110接收命令CMD和位址ADD。另一方面,記憶體151至158可以向/從記憶體控制器110傳送/接收不同的資料DATA0至DATA7。換言之,記憶體控制器110與記憶體151至158之間的命令位址匯流排可以作為公共匯流排由記憶體151至158來共享,而記憶體控制器110與記憶體151至158之間的資料匯流排專用於記憶體151至158中的每個記憶體。記憶體介面123也可以被稱為作為實體(physical, PHY)介面。同時,可以經由記憶體介面123把由隨機加密密鑰發生器117的加密密鑰以命令CMD和位址ADD的形式從記憶體控制器110傳送到記憶體模組150。
記憶體模組150可以包括多個記憶體151至158。記憶體151至158可以在記憶體控制器110的控制下執行操作,諸如讀取操作和寫入操作。由於記憶體151至158從記憶體控制器110接收相同的的命令CMD和相同的位址ADD,所以它們可以同時執行讀取操作和寫入操作。例如,為了使記憶體控制器110在單次寫入操作中將512位元的資料寫入到記憶體模組150,可以在記憶體模組150中的每個記憶體151至158中寫入64位元資料。並且,在讀取操作中,可以從記憶體151至158中的每個記憶體讀取64位元資料,從而可以將512位元的資料從記憶體模組150傳送到記憶體控制器110。換言之,在寫入操作期間512位元的資料字可以被分布式地寫入八個記憶體151至158中,並且在讀取操作期間可以透過從八個記憶體151至158讀取64位元資料來讀取該512位元的資料字。記憶體模組150可以是雙列直插式記憶體模組(Dual In-line Memory Module, DIMM)。
圖2是示出圖1所示的記憶體151的詳細方塊圖。其他記憶體152至158可以被配置為具有與圖2所示的相同的結構。
參考圖2,記憶體151可以包括命令/位址接收電路201、資料傳送/接收電路203、命令解碼器210、加密密鑰儲存電路220、位址加密電路230、資料加密電路240和核心區域250。
命令/位址接收電路201可以經由命令/位址匯流排而從記憶體控制器(圖1的110)接收命令CMD和位址ADD。命令CMD和位址ADD中的每一個可以包括多位元的信號。資料傳送/接收電路203可以經由資料匯流排而從記憶體控制器110接收資料DATA0,或者經由資料匯流排而向記憶體控制器110傳送資料DATA0。資料傳送/接收電路203可以在寫入操作期間經由資料匯流排而從記憶體控制器110接收寫入資料DATA,並且可以在讀取操作期間向記憶體控制器110傳送加密資料DATA_Encrypted。
命令解碼器210可以透過對經由命令/位址接收電路201所接收的命令CMD進行解碼,來產生用於引導讀取操作的讀取信號RD、用於引導寫入操作的寫入信號WT以及用於引導各種操作的信號(未示出)。命令解碼器210不僅可以接收和解碼命令CMD,還可以接收和解碼全部或部分的位址ADD。
可以基於命令CMD和位址ADD將加密密鑰從記憶體控制器110傳送到記憶體151。命令解碼器210可以對命令CMD和位址ADD進行解碼,以提取加密密鑰KEY並將加密密鑰KEY傳送到加密密鑰儲存電路220。加密密鑰儲存電路220可以儲存加密密鑰KEY。
位址加密電路230可以透過基於儲存在加密密鑰儲存電路220中的加密密鑰KEY對經由命令/位址接收電路201所接收到的位址ADD進行加密來產生加密位址ADD_Encrypted。位址加密電路230可以使用各種類型的加密方法。位址加密電路230可以透過對加密密鑰KEY和位址ADD執行異或(XOR)運算的方法來簡單地對位址ADD進行加密。加密密鑰KEY的位元數和位址ADD的位元數可以不同。在這種情況下,加密密鑰KEY可以被複製而使用。例如,當加密密鑰KEY包括4位元的“1001”並且位址ADD包括8位元的“11001101”時,位址加密電路230可以複製加密密鑰KEY以形成8位元的“10011001”,從而透過對加密密鑰KEY和位址ADD執行XOR運算來產生加密位址ADD_Encrypted即“01010100”。儘管作為示例,位址加密電路230對從記憶體控制器110傳送來的整個位址ADD進行加密,但是位址加密電路230可以對位址ADD的一部分進行加密。例如,當位址ADD由記憶體體位址與諸如行位址和列位址的常規位址構成時,位址加密電路230可以僅加密記憶體體位址或僅加密常規位址。
在寫入操作期間,資料加密電路240可以透過使用儲存在加密密鑰儲存電路220中的加密密鑰KEY對要儲存在核心區域250中的寫入資料DATA進行加密來產生加密資料DATA_Encrypted。資料加密電路240可以以與位址加密電路230相同的方式執行加密操作,或者資料加密電路240可以以不同的方式執行加密操作。資料加密電路240可以透過對加密密鑰KEY和寫入資料DATA執行XOR運算的方法來簡單地對寫入資料DATA進行加密。加密密鑰KEY的位元數和寫入資料DATA的位元數可以不同。在這種情況下,加密密鑰KEY可以被複製而使用。例如,當加密密鑰KEY包括4位元的“1001”並且寫入資料DATA包括10位元的“1100010110”時,資料加密電路240可以複製加密密鑰KEY以形成10位元的“1001100110”,從而透過對加密密鑰KEY和寫入資料DATA執行XOR運算來產生加密資料DATA_Encrypted即“0101110000”。
核心區域250可以包括:單元陣列,其包括多個記憶體單元;以及外圍電路,用於在/從所述單元陣列中寫入/讀取資料。在寫入信號WT被激活的寫入操作期間,可以將加密資料DATA_Encrypted寫入基於加密位址ADD_Encrypted從核心區域250中被選中的記憶體單元中。在讀取信號RD被激活的讀取操作期間,可以從基於加密位址ADD_Encrypted從核心區域250中被選中的記憶體單元中讀取加密資料DATA_Encrypted。
圖3是描述根據本發明實施例的記憶體系統的操作的流程圖。在下文中,將描述圖1中所示的記憶體系統100的操作。
參考圖3,在步驟S301中,記憶體控制器110的隨機加密密鑰發生器117可以產生加密密鑰。隨機加密密鑰發生器117可以隨機地產生分別與記憶體模組150中包括的八個記憶體151至158相對應的八個加密密鑰(例如,8)。由於加密密鑰是隨機產生的,因此八個加密密鑰可以彼此不同。八個加密密鑰可以被儲存在讀取加密密鑰儲存電路119中。
在步驟S303中,記憶體控制器110可以將加密密鑰傳送到記憶體模組150的記憶體151至158。記憶體控制器110可以透過命令/位址匯流排以命令CMD和位址ADD的形式向記憶體151至158傳送不同的加密密鑰。命令/位址匯流排可以由所有記憶體151至158共享,但是可以基於每DRAM可尋址性(Per DRAM Addressability, PDA)模式或多用途命令(Multi-Purpose Command, MPC)模式將每個加密密鑰傳送到記憶體151至158中的相對應的一個記憶體,所述模式可以針對記憶體151至158中的每個記憶體來單獨設置。記憶體151至158中每個記憶體的命令解碼器210可以透過對命令CMD和位址ADD進行解碼來提取加密密鑰KEY。記憶體151至158中每個記憶體的加密密鑰儲存電路220可以儲存從記憶體控制器150傳送來的加密密鑰KEY。例如,在記憶體系統的初始化操作期間,記憶體151至158中每個記憶體的加密密鑰儲存電路220可以儲存從記憶體控制器150傳送來的加密密鑰KEY。
在圖3中,元件符號“310”可以表示記憶體系統100的寫入操作,元件符號“350”可以表示記憶體系統100的讀取操作。在下文中,將首先描述寫入操作310。
在步驟S311中,記憶體控制器110可以將寫入命令、與寫入命令相對應的位址、以及寫入資料傳送到記憶體模組150的記憶體151至158。寫入命令和位址可以經由命令/位址匯流排被傳送到記憶體151至158,並且寫入資料可以經由資料匯流排被傳送到記憶體151至158。
在步驟S313中,記憶體151至158中每個記憶體的位址加密電路230可以透過使用儲存在加密密鑰儲存電路220中的加密密鑰KEY對位址ADD進行加密來產生加密位址ADD_Encrypted。
在步驟S315中,記憶體151至158中每個記憶體的資料加密電路240可以透過使用儲存在加密密鑰儲存電路220中的加密密鑰KEY對寫入資料DATA進行加密來產生加密資料DATA_Encrypted。
在步驟S317中,可以將加密資料DATA_Encrypted寫入基於加密位址ADD_Encrypted而在記憶體151至158中每個記憶體的核心區域250的單元陣列中選中的記憶體單元中。
在寫入操作期間,記憶體控制器110可以將相同的位址ADD傳送到記憶體151至158。然而,由於記憶體151至158使用不同的加密密鑰KEY對位址ADD進行加密,所以對於記憶體151至158中的每個記憶體,加密位址ADD_Encrypted可以是不同的。這可以意味著在記憶體模組150的記憶體151至158中要存取的記憶體單元的位置均不同。圖4示出了在記憶體151至158中的每個記憶體的單元陣列中被存取的記憶體單元的位置。陰影部分可以指示被存取的記憶體單元的位置。在此,可以看出,對於記憶體151至158中的每個記憶體,被存取的記憶體單元的位置是不同的。
在下文中,描述了記憶體系統100的讀取操作350。
在步驟S351中,記憶體控制器110可以將讀取命令和與讀取命令相對應的位址傳送到記憶體模組150的記憶體151至158。讀取命令和位址可以經由命令/位址匯流排被傳送到記憶體151至158。
在步驟S353中,記憶體151至158中每個記憶體的位址加密電路230可以透過使用儲存在加密密鑰儲存電路220中的加密密鑰KEY對位址ADD進行加密來產生加密位址ADD_Encrypted。
然後,在步驟S355中,可以基於加密位址ADD_Encrypted而從在記憶體151至158中每個記憶體的核心區域250的單元陣列中被選中的記憶體單元中讀取已編碼的資料DATA_Encrypted。在讀取操作期間,記憶體控制器110可以將相同的位址ADD傳送到記憶體151至158。但是,由於記憶體151至158透過使用不同的加密密鑰KEY對位址ADD進行加密,因此對於記憶體151至158中的每個記憶體,加密位址ADD_Encrypted可以是不同的。換言之,在讀取操作期間,如圖4所示,對於記憶體151至158中的每個記憶體,所存取的記憶體單元的位置可以是不同的,類似於寫入操作。
然後,在步驟S357中,可以將加密資料DATA_Encrypted從記憶體151至158傳送到記憶體控制器110。可以經由資料匯流排將加密資料DATA_Encrypted從記憶體151至158傳送到記憶體控制器110。
在步驟S359中,記憶體控制器110的解密電路121可以透過使用儲存在讀取加密密鑰儲存電路119中的加密密鑰來解密從記憶體151至158讀取的加密資料DATA_Encrypted。由於在讀取加密密鑰儲存電路119中儲存有與記憶體151至158相同的加密密鑰,所以解密電路121可以透過使用加密密鑰來解密從記憶體151至158傳送的加密資料DATA_Encrypted。例如,解密電路121可以透過對從記憶體151傳送的加密資料DATA_Encrypted和與記憶體151相對應的加密密鑰執行XOR運算來解密該加密資料DATA_Encrypted,並且可以透過對從記憶體152傳送的加密資料DATA_Encrypted和與記憶體152相對應的加密密鑰執行XOR運算來解密該加密資料DATA_Encrypted。
參考圖1至圖4,在讀取操作和寫入操作期間,記憶體系統100中的位址的加密是基於記憶體151至158的彼此不同的加密密鑰來執行的。可以看出,在記憶體151至158中每個記憶體的單元陣列中不同的區域被存取。換言之,當記憶體控制器110將一個資料字(例如512位元的資料)按每個記憶體64位元資料分布式地寫入記憶體151至158中時,分佈資料可以被寫入到每個記憶體151至158的不同位置中。因此,沒有加密密鑰不可能恢復被分布式地儲存在記憶體151至158中的資料字。當記憶體模組150被液氮冷凍來保持儲存在核心區域250中的資料並且將記憶體模組150連接到另一計算機系統時,儲存在核心區域250的單元陣列中的資料可以被保持。然而,由於加密密鑰KEY未儲存在記憶體單元中,所以加密密鑰KEY不會被保持。因此,可以防止資料洩漏。
另外,在記憶體系統100中,寫入資料的加密可以由記憶體151至158中的每個記憶體來執行,而讀取資料的解密可以基於記憶體控制器110的方法來執行。因此,使用加密密鑰解密資料可能會更加困難。
儘管圖1至圖4示出了位址加密和資料加密都在記憶體系統100中執行,但是對於本發明所屬技術領域中具有通常知識者顯而易見的是,記憶體系統100可以僅執行位址的加密操作或僅執行資料的加密操作。
根據本發明的實施例,記憶體系統的安全級別可以得到提高。
儘管已經針對特定實施例描述了本發明,但是對於本發明所屬技術領域中具有通常知識者而言顯而易見的是,在不脫離所附申請專利範圍所限定的本發明的精神和範圍的情況下,可以進行各種改變和修改。
100:記憶體系統
110:記憶體控制器
111:主機介面
113:調度器
115:命令發生器
117:隨機加密密鑰發生器
119:讀取加密密鑰儲存電路
121:解密電路
123:記憶體介面
150:記憶體模組
151:記憶體
152:記憶體
153:記憶體
154:記憶體
155:記憶體
156:記憶體
157:記憶體
158:記憶體
201:命令/位址接收電路
203:資料傳送/接收電路
210:命令解碼器
220:加密密鑰儲存電路
230:位址加密電路
240:資料加密電路
250:核心區域
301:步驟
303:步驟
310:步驟
313:步驟
315:步驟
317:步驟
350:步驟
351:步驟
353:步驟
355:步驟
357:步驟
359:步驟
ADD:位址
ADD_Encrypted:加密位址
CMD:命令
DATA:資料
DATA0:資料
DATA1:資料
DATA2:資料
DATA3:資料
DATA4:資料
DATA5:資料
DATA6:資料
DATA7:資料
DATA_Encrypted:加密資料
HOST:主機
KEY:加密密鑰
RD:讀取信號
WT:寫入信號
[圖1]是示出根據本發明的實施例的記憶體系統的方塊圖。
[圖2]是示出圖1所示的記憶體的詳細方塊圖。
[圖3]是描述根據本發明實施例的記憶體系統的操作的流程圖。
[圖4]示出了每個記憶體的單元陣列中被存取的記憶體單元的位置。
100:記憶體系統
110:記憶體控制器
111:主機介面
113:調度器
115:命令發生器
117:隨機加密密鑰發生器
119:讀取加密密鑰儲存電路
121:解密電路
123:記憶體介面
150:記憶體模組
151:記憶體
152:記憶體
153:記憶體
154:記憶體
155:記憶體
156:記憶體
157:記憶體
158:記憶體
ADD:位址
CMD:命令
DATA0:資料
DATA1:資料
DATA2:資料
DATA3:資料
DATA4:資料
DATA5:資料
DATA6:資料
DATA7:資料
HOST:主機
Claims (24)
- 一種記憶體模組,包括: 多個記憶體, 其中,所述多個記憶體中的每個包括: 加密密鑰儲存電路,其適用於儲存加密密鑰; 位址加密電路,其適用於:透過使用儲存在所述加密密鑰儲存電路中的加密密鑰,對從記憶體控制器傳送來的位址進行加密來產生加密位址;和 單元陣列,其透過所述加密位址來被存取, 其中,所述多個記憶體的加密密鑰儲存電路儲存不同的加密密鑰。
- 如請求項1所述的記憶體模組,其中,所述多個記憶體中的每個還包括: 資料加密電路,其適用於:在寫入操作期間,透過使用儲存在所述加密密鑰儲存電路中的加密密鑰,對從所述記憶體控制器傳送來的寫入資料進行加密來產生加密資料, 其中,所述加密資料被寫入所述單元陣列。
- 如請求項1所述的記憶體模組,其中,所述記憶體共享命令/位址匯流排,以透過所述命令/位址匯流排從所述記憶體控制器接收命令和位址。
- 如請求項1所述的記憶體模組,其中,在讀取操作和寫入操作期間,在所述多個記憶體的單元陣列中存取不同位置的記憶體單元。
- 如請求項1所述的記憶體模組,其中,所述多個記憶體中的每個從所述記憶體控制器接收不同的加密密鑰,以及將所述不同的加密密鑰儲存在相應記憶體的加密密鑰儲存電路中。
- 一種用於操作記憶體模組的方法,所述記憶體模組包括多個記憶體,所述方法包括: 在所述多個記憶體中的每個中儲存不同的加密密鑰; 在所述記憶體中接收命令和位址; 透過使用相應記憶體的加密密鑰,對所述多個記憶體中的每個中的位址進行加密來產生加密位址;和 存取所述多個記憶體中的每個中由所述加密位址指定的區域。
- 如請求項6所述的方法,還包括: 在所述記憶體中接收命令和位址的步驟中,當所述命令是寫入命令時,接收寫入資料; 透過使用在對位址進行加密的步驟中相應記憶體的加密密鑰,在所述多個記憶體中的每個中對所述寫入資料進行加密來產生加密資料;以及 在存取由所述加密位址指定的區域的步驟中,將所述加密資料寫入所述多個記憶體中的每個的指定區域。
- 如請求項6所述的方法,還包括: 在存取由所述加密位址指定的區域的步驟中,當所述命令是讀取命令時,從所述多個記憶體中的每個的指定區域讀取資料。
- 如請求項6所述的方法,其中,在存取由所述加密位址指定的區域的步驟中,在所述多個記憶體中存取不同位置的區域。
- 一種記憶體系統,包括: 多個記憶體;和 記憶體控制器,其適用於將公共命令和公共位址傳送到所述記憶體,以及 其中,所述多個記憶體中的每個包括: 加密密鑰儲存電路,其適用於儲存加密密鑰; 位址加密電路,其適用於:透過使用儲存在所述加密密鑰儲存電路中的加密密鑰,對所述公共位址進行加密來產生加密位址;和 單元陣列,其透過所述加密位址來被存取,以及 其中,所述多個記憶體的加密密鑰儲存電路儲存不同的加密密鑰。
- 如請求項10所述的記憶體系統,其中,所述多個記憶體中的每個還包括: 資料加密電路,其適用於:在寫入操作期間,透過使用儲存在所述加密密鑰儲存電路中的加密密鑰,對從所述記憶體控制器傳送來的寫入資料進行加密來產生加密資料, 其中,所述加密資料被寫入所述單元陣列,以及 其中,所述記憶體控制器包括: 讀取加密密鑰儲存電路,其適用於儲存所述多個記憶體的不同的加密密鑰;和 解密電路,其適用於:在讀取操作期間,透過使用儲存在所述讀取加密密鑰儲存電路中的加密密鑰來解密從所述記憶體讀取的資料。
- 如請求項11所述的記憶體系統,其中,所述記憶體控制器還包括: 主機介面,其適用於在主機與所述記憶體控制器之間的通信; 調度器,其適用於調度所述記憶體的操作; 命令發生器,其適用於產生要施加到所述記憶體的所述公共命令;和 記憶體介面,其適用於與所述記憶體的通信。
- 一種記憶體系統,包括: 多個記憶體;和 記憶體控制器, 其中,所述多個記憶體中的每個包括: 加密密鑰儲存電路,其適用於儲存加密密鑰,所述加密密鑰對於所述多個記憶體中的每個是不同的; 資料加密電路,其適用於:在寫入操作期間,透過使用儲存在所述加密密鑰儲存電路中的加密密鑰,對從所述記憶體控制器傳送來的寫入資料進行加密來產生加密資料;和 單元陣列,其適用於儲存所述加密資料, 其中,所述記憶體控制器包括: 讀取加密密鑰儲存電路,其適用於儲存所述多個記憶體的不同的加密密鑰;和 解密電路,其適用於:在讀取操作期間,透過使用儲存在所述讀取加密密鑰儲存電路中的加密密鑰來解密從所述記憶體讀取的資料。
- 如請求項13所述的記憶體系統,其中,在所述記憶體系統的初始化操作期間,所述多個記憶體中的每個從所述記憶體控制器接收所述不同的加密密鑰中對應的加密密鑰,並將所述對應的加密密鑰儲存在所述加密密鑰儲存電路中。
- 如請求項13所述的記憶體系統,其中,所述記憶體控制器包括: 主機介面,其適用於在主機與所述記憶體控制器之間的通信; 調度器,其適用於調度所述記憶體的操作; 命令發生器,其適用於產生要施加到所述記憶體的命令;和 記憶體介面,其適用於與所述記憶體的通信。
- 一種用於操作記憶體系統的方法,所述記憶體系統包括多個記憶體和記憶體控制器,所述方法包括: 從所述記憶體控制器向所述多個記憶體傳送不同的加密密鑰; 從所述記憶體控制器向所述記憶體傳送命令和位址; 透過使用所述多個記憶體中的每個中的加密密鑰對所述位址進行加密來產生加密位址;以及 存取所述多個記憶體中的每個中由所述加密位址指定的區域。
- 如請求項16所述的方法,還包括: 在傳送命令和位址的步驟中,當所述命令是寫入命令時,接收從所述記憶體控制器向所述記憶體傳送的寫入資料; 透過使用在對所述位址進行加密的步驟中所述多個記憶體中的每個的加密密鑰,對所述寫入資料進行加密來產生加密資料;以及 在存取由所述加密位址指定的區域的步驟中,將所述加密資料寫入所述多個記憶體中的每個中指定的區域。
- 如請求項17所述的方法,還包括: 當所述命令是讀取命令時,從所述多個記憶體中的每個中的由所述加密位址指定的區域中讀取資料; 把從所述記憶體讀取的資料傳送到所述記憶體控制器;以及 透過使用所述記憶體的加密密鑰,來在所述記憶體控制器中解密從所述記憶體傳送來的資料。
- 一種用於操作記憶體系統的方法,所述記憶體系統包括多個記憶體和記憶體控制器,所述方法包括: 從所述記憶體控制器向所述多個記憶體傳送不同的加密密鑰; 從所述記憶體控制器向所述記憶體傳送寫入命令和資料; 透過使用所述多個記憶體中的每個中的加密密鑰對所述資料進行加密來產生加密資料; 在所述多個記憶體中的每個中儲存所述加密資料; 從所述記憶體控制器向所述記憶體傳送讀取命令; 把從所述記憶體讀取的資料傳送到所述記憶體控制器;以及 透過使用所述記憶體的加密密鑰,來在所述記憶體控制器中解密從所述記憶體傳送來的資料。
- 一種記憶體系統,包括: 多個記憶體;和 記憶體控制器,其適用於將命令和位址傳送到所述記憶體, 其中,所述多個記憶體中的每個包括: 命令解碼器,其適用於:對所述命令和所述位址進行解碼,以提取專用於相應記憶體的加密密鑰; 位址加密電路,其適用於透過使用所述加密密鑰對所述位址進行加密來產生加密位址;和 單元陣列,其透過所述加密位址來被存取。
- 如請求項20所述的記憶體系統,其中,所述記憶體控制器透過共享的命令/位址匯流排將所述命令和位址傳送到所述記憶體。
- 如請求項20所述的記憶體系統,其中,所述多個記憶體中的每個還包括: 資料加密電路,其適用於:在寫入操作期間,透過使用儲存在加密密鑰儲存電路中的加密密鑰,對從所述記憶體控制器傳送來的寫入資料進行加密來產生加密資料。
- 如請求項20所述的記憶體系統,其中,所述記憶體控制器包括: 隨機加密密鑰發生器,其適用於產生分別對應於記憶體的加密密鑰;和 記憶體介面,其適用於以所述命令和位址的形式將加密密鑰傳送到所述記憶體。
- 如請求項23所述的記憶體系統,其中,所述記憶體控制器還包括: 讀取加密密鑰儲存電路,其適用於儲存所述記憶體的所述加密密鑰;和 解密電路,其適用於:在讀取操作期間,透過使用儲存在所述讀取加密密鑰儲存電路中的加密密鑰來解密從所述記憶體讀取的資料。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0054235 | 2019-05-09 | ||
KR1020190054235A KR102660388B1 (ko) | 2019-05-09 | 메모리 모듈, 메모리 모듈의 동작 방법, 메모리 시스템 및 메모리 모듈의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202101224A TW202101224A (zh) | 2021-01-01 |
TWI813815B true TWI813815B (zh) | 2023-09-01 |
Family
ID=73047204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108142405A TWI813815B (zh) | 2019-05-09 | 2019-11-21 | 記憶體模組、其操作方法、記憶體系統以及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11409668B2 (zh) |
CN (1) | CN111916132A (zh) |
TW (1) | TWI813815B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI791963B (zh) * | 2020-03-19 | 2023-02-11 | 瑞昱半導體股份有限公司 | 資料解密系統及資料解密方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017097A1 (en) * | 2009-03-23 | 2012-01-19 | Walrath Craig A | System And Method For Securely Storing Data In An Electronic Device |
TWI460604B (zh) * | 2008-10-23 | 2014-11-11 | Maxim Integrated Products | 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法 |
TWI545436B (zh) * | 2013-08-09 | 2016-08-11 | 蘋果公司 | 用於安全記憶體管理之積體電路及方法 |
US20160306750A1 (en) * | 2015-02-09 | 2016-10-20 | Honeywell International Inc. | Encryption using entropy-based key derivation |
US20170201503A1 (en) * | 2016-01-12 | 2017-07-13 | Advanced Micro Devices Inc. | Memory operation encryption |
TWI627556B (zh) * | 2015-10-15 | 2018-06-21 | 威盛電子股份有限公司 | 微處理器與其中安全執行指令的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140073384A (ko) | 2012-12-06 | 2014-06-16 | 삼성전자주식회사 | 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법 |
JP6048710B2 (ja) * | 2013-02-28 | 2016-12-21 | パナソニックIpマネジメント株式会社 | 暗号化記録装置、および暗号化記録方法 |
US10169618B2 (en) * | 2014-06-20 | 2019-01-01 | Cypress Semiconductor Corporation | Encryption method for execute-in-place memories |
-
2019
- 2019-11-21 TW TW108142405A patent/TWI813815B/zh active
- 2019-12-10 CN CN201911257474.3A patent/CN111916132A/zh active Pending
- 2019-12-27 US US16/728,143 patent/US11409668B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI460604B (zh) * | 2008-10-23 | 2014-11-11 | Maxim Integrated Products | 安全微控制器、硬體加密器及用於保全一微控制器內之內容之方法 |
US20120017097A1 (en) * | 2009-03-23 | 2012-01-19 | Walrath Craig A | System And Method For Securely Storing Data In An Electronic Device |
TWI545436B (zh) * | 2013-08-09 | 2016-08-11 | 蘋果公司 | 用於安全記憶體管理之積體電路及方法 |
US20160306750A1 (en) * | 2015-02-09 | 2016-10-20 | Honeywell International Inc. | Encryption using entropy-based key derivation |
TWI627556B (zh) * | 2015-10-15 | 2018-06-21 | 威盛電子股份有限公司 | 微處理器與其中安全執行指令的方法 |
US20170201503A1 (en) * | 2016-01-12 | 2017-07-13 | Advanced Micro Devices Inc. | Memory operation encryption |
Also Published As
Publication number | Publication date |
---|---|
US20200356495A1 (en) | 2020-11-12 |
CN111916132A (zh) | 2020-11-10 |
TW202101224A (zh) | 2021-01-01 |
KR20200129595A (ko) | 2020-11-18 |
US11409668B2 (en) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7225220B2 (ja) | 記憶データ暗号化/復号化装置及び方法 | |
US9483664B2 (en) | Address dependent data encryption | |
EP1199724B1 (en) | Simply interfaced semiconductor integrated circuit device including logic circuitry and embedded memory circuitry | |
US20130205139A1 (en) | Scrambling An Address And Encrypting Write Data For Storing In A Storage Device | |
US10896267B2 (en) | Input/output data encryption | |
US20190384938A1 (en) | Storage apparatus and method for address scrambling | |
US8843768B2 (en) | Security-enabled storage controller | |
KR20180108623A (ko) | 주변 컴포넌트 상호접속 익스프레스 (pcie) 시스템들에 대한 인라인 암호 엔진 (ice) | |
US9336401B2 (en) | Implementing enhanced security with storing data in DRAMs | |
US10033411B2 (en) | Adjustable error protection for stored data | |
US8693694B2 (en) | Information recording device | |
US8745391B2 (en) | Data recording device, host device and method of processing data recording device | |
KR20190075363A (ko) | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈 | |
EP4083842A1 (en) | Inline encryption/decryption for a memory controller | |
US9928385B2 (en) | Periodic memory refresh in a secure computing system | |
TWI813815B (zh) | 記憶體模組、其操作方法、記憶體系統以及其操作方法 | |
CN110008148B (zh) | 存储器控制器以及用于对存储模块进行访问控制的方法 | |
KR102588600B1 (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
US20190205046A1 (en) | Memory controller, method for performing access control to memory module | |
KR20150143149A (ko) | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11797717B2 (en) | Bus encryption for non-volatile memories | |
KR102660388B1 (ko) | 메모리 모듈, 메모리 모듈의 동작 방법, 메모리 시스템 및 메모리 모듈의 동작 방법 | |
US11403235B2 (en) | Memory and memory system | |
US11748274B2 (en) | Banked memory device storing hamming weight | |
KR20150143150A (ko) | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 |