TWI738097B - 具有密碼學組件的記憶體裝置 - Google Patents
具有密碼學組件的記憶體裝置 Download PDFInfo
- Publication number
- TWI738097B TWI738097B TW108138758A TW108138758A TWI738097B TW I738097 B TWI738097 B TW I738097B TW 108138758 A TW108138758 A TW 108138758A TW 108138758 A TW108138758 A TW 108138758A TW I738097 B TWI738097 B TW I738097B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- component
- error correction
- controller
- user data
- Prior art date
Links
Images
Classifications
-
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
本發明揭示一種設備(諸如一記憶體系統(例如一NAND (「反及」)記憶體系統)),其可具有含一第一錯誤校正碼組件之一控制器及耦合至該控制器之一記憶體裝置(例如一NAND記憶體裝置)。該記憶體裝置可具有:一記憶體單元陣列;一第二錯誤校正碼組件,其耦合至該陣列且經組態以校正來自該陣列之資料;及一密碼學組件,其經耦合以自該第二錯誤校正碼組件接收該經校正資料。
Description
本發明大體上係關於記憶體裝置,且更特定言之,本發明係關於具有密碼學組件之記憶體裝置。
記憶體系統可實施於諸如電腦、蜂巢式電話、手持電子裝置等等之電子系統中。一些記憶體系統(諸如固態硬碟(SSD)、嵌入式多媒體控制器(eMMC)裝置、通用快閃儲存(UFS)裝置及其類似者)可包含用於儲存來自一主機之主機(例如使用者)資料之非揮發性儲存記憶體。非揮發性儲存記憶體藉由在被斷電時保存所儲存之資料來提供持久資料,且可包含NAND (「反及」)快閃記憶體、NOR (「反或」)快閃記憶體、唯讀記憶體(ROM)、電可擦除可程式化ROM (EEPROM)、可擦除可程式化ROM (EPROM)及電阻可變記憶體(諸如相變隨機存取記憶體(PCRAM)、三維交叉點記憶體(例如3D XPoint)、電阻隨機存取記憶體(RRAM)、鐵電隨機存取記憶體(FeRAM)、磁阻隨機存取記憶體(MRAM)及可程式化導電記憶體)及其他類型之記憶體。
在一些實例中,記憶體裝置可儲存安全資訊且可易受旨在獲得及/或更改安全資訊之惡意攻擊影響。此等攻擊可包含(例如)重播攻擊,其可涉及惡意或詐欺性重複或延遲安全資訊且可涉及攔截及重傳安全資訊。
一實例性設備(諸如一記憶體系統(例如一NAND記憶體系統))可具有含一第一錯誤校正碼組件之一控制器及耦合至控制器之一記憶體裝置(例如一NAND記憶體裝置)。記憶體裝置可具有:一記憶體單元陣列;一第二錯誤校正碼組件,其耦合至陣列且經組態以校正來自陣列之資料;及一密碼學組件,其經耦合以自第二錯誤校正碼組件接收經校正資料。
在記憶體裝裝置上具有密碼學組件允許記憶體裝置經由密碼學組件來對儲存於記憶體陣列上之資料執行密碼學操作(例如判定儲存於記憶體陣列中之資料是否安全),其無需將資料發送至記憶體裝置外之一控制器(如先前方法中通常所進行)。
例如,在一些先前方法中,密碼學組件可在外部控制器中,且可將資料自記憶體裝置發送至外部控制器以判定資料是否安全。然而,將資料發送至外部控制器可能為一不安全程序,且發送至外部控制器之資料之安全性會受損。將資料發送至外部控制器亦可能很耗時。此外,經由一外部控制器所提供之安全性可能很昂貴,因為其可涉及向提供安全功能之第三方支付費用。因而,在記憶體裝置上具有密碼學組件可提高安全性且可比在一外部控制器中具有密碼學組件減少執行密碼學操作所涉及之時間及成本。
當自記憶體陣列讀取使用者資料時,一些記憶體裝置(諸如NAND記憶體裝置)會具有相對較高位元錯誤率(BER)。因此,問題可發生於對具有此等高BER之使用者資料執行密碼學操作時。可採用錯誤校正方案來校正自一記憶體陣列讀取之資料。然而,在先前方法中,可由外部控制器對自記憶體裝置發送至外部控制器之使用者資料執行資料錯誤校正操作。此意謂,在一些實例中,要將資料發送至外部控制器用於校正且將經校正資料發送回至記憶體裝置用於密碼學操作。然而,在記憶體裝置與外部控制器之間來回發送資料可能為一不安全及耗時程序。所揭示之實施例藉由將一錯誤校正組件定位於記憶體裝置上且使用該錯誤校正組件來校正來自陣列之資料以供記憶體裝置之密碼學組件使用來解決此等問題。
圖1係根據本發明之數個實施例之呈一運算系統100之形式的一設備之一簡化方塊圖。運算系統100包含呈記憶體系統102之形式的一設備,其可為(例如)一儲存系統,諸如一SSD、一UFS裝置、一eMMC裝置等等。在一些實例中,記憶體系統102可為一NAND記憶體系統。然而,所揭示之實施例不受限於一特定類型之記憶體系統。例如,記憶體系統102可充當系統100之主記憶體。
如圖1中所展示,記憶體系統102可包含一控制器104,其可指稱一記憶體系統控制器(例如一NAND控制器),因為控制器104可控制耦合至控制器104之一記憶體裝置106 (例如一NAND記憶體裝置)。控制器104可位於記憶體裝置106外,且因此可指稱一外部控制器,諸如一外部主機控制器。在一些實例中,控制器104及記憶體裝置106可整合於一單一晶片上。
控制器104具有一錯誤校正組件108 (例如一外部錯誤校正組件)。記憶體裝置106具有一記憶體陣列(例如一NAND記憶體陣列) 109,其耦合至可校正來自陣列109之資料的一錯誤校正組件110 (例如一內部錯誤校正組件)。例如,陣列109可耦合至可為一頁緩衝器之一緩衝器111 (例如一資料緩衝器)。緩衝器111可耦合至一資料路徑112,資料路徑112可耦合至錯誤校正組件110。一密碼學組件114可經耦合以自錯誤校正組件110接收經校正資料。如本文中將進一步討論,密碼學組件114可對經校正資料執行密碼學操作,諸如判定資料是否安全。在一些實例中,密碼學操作可包含計算保用密碼,諸如密碼雜湊、訊息鑑別碼(MAC)、雜湊MAC (HMAC)等等。
陣列109可邏輯佈置成邏輯分區116-1至116-N及一安全邏輯分區117。例如,邏輯分區可包含記憶體單元之數個實體區塊,其等各經組態以作為一群組一起被擦除。安全分區117可由耦合至控制器104之一主機120發出之安全命令存取。邏輯分區116-1至116-N可為可由來自主機120之非安全命令存取之非安全分區。
在一些實例中,對應於邏輯分區116-1至116-N之記憶體單元可經程式化以每單元儲存一單一位元或每單元儲存多個位元,諸如每單元兩個位元、每單元三個位元、每單元四個位元等等。然而,在數個實施例中,對應於安全邏輯分區117之記憶體單元可經程式化以每單元儲存僅一單一位元以確保相對低於多位元單元之一BER。經組態以每單元儲存一單一位元之記憶體單元可指稱單位階單元(SLC),且經組態以每單元儲存多個位元之記憶體單元可指稱多位階單元(MLC)。
一記憶體單元可程式化至2m
個資料狀態之一者,其中m係每單元之位元數。各資料狀態可對應於一不同臨限電壓Vt分佈,且記憶體單元可程式化至可對應於一Vt分佈之一Vt。例如,針對每單元兩個位元,一記憶體單元可程式化至對應於四個資料狀態11、10、01及00之一者的一Vt,且針對每單元一個位元,一記憶體單元可程式化至對應於兩個資料狀態0及1之一者的一Vt。
安全命令可係指自主機120經由控制器104所接收之命令,其需要(例如)鑑別。安全命令可係指針對對應於安全分區117之位址的命令,而非針對對應於非安全分區116之位址的命令。如本文中將進一步討論,一安全命令可包含一操作碼、一密碼簽章及一新鮮度指標。相比而言,非安全命令可無需鑑別且因此可不包含一簽章或一新鮮度指標。
記憶體裝置106可經由一介面121 (例如記憶體介面)來耦合至控制器104。例如,介面121可將控制器104耦合至記憶體裝置106之一輸入/輸出(I/O) 122。I/O 122繼而可耦合至資料路徑112。在一些實例中,介面121可包含可支援各種標準及/或符合各種介面類型(諸如雙倍資料速率(DDR)、開放式NAND快閃介面(ONFI)、串列周邊介面(SPI)等等)之一資料匯流排。
控制器104可自主機120接收安全及非安全命令,諸如安全及非安全讀寫命令。例如,控制器104可自一主機120接收寫入至記憶體陣列109之使用者資料(例如經由一主機介面123)。例如,控制器104可將安全資料映射至安全邏輯分區117且將非安全資料映射至邏輯分區116-1至116-N。
主機120可為(例如)一主機系統,諸如一個人膝上型電腦、一桌上型電腦、一數位攝影機、一行動電話(例如蜂巢式電話)、網路伺服器、物聯網(IoT)啟用裝置或一記憶卡讀取器及各種其他類型之主機。例如,主機120可包含能夠透過可包含一匯流排之介面123來存取記憶體系統102 (例如經由控制器104)之一或多個處理器。介面123可為一標準化介面,諸如一串列進階技術附件(SATA)、周邊組件互連快速(PCIe)或一通用串列匯流排(USB)及各種其他介面。
圖2A繪示根據本發明之數個實施例之一資料結構225 (例如一受管理單元)。控制器104可在將資料結構225寫入至陣列109之一寫入(程式化)操作期間將資料結構225發送至記憶體裝置106。在一些實例中,資料結構225可指稱一碼字。例如,資料結構225可對應於一記憶體單元區塊中之一頁資料。
資料結構225可包含可分別為Frame 1至Frame 4之資料之分段227-1至227-4。然而,本發明不受限於此,而是資料結構225中可存在任何數目個分段。在一些實例中,各自分段227-1至227-4可指稱各自子碼字。
分段227-1至227-4可分別包含使用者資料欄228-1至228-4、可分別儲存備用資料SPARE1至SPARE4之備用資料欄229-1至229-4及可分別儲存ECC資料ECC1至ECC4之錯誤校正碼(ECC)欄230-1至230-4。在一些實例中,使用者資料欄228-1至228-4之各者可儲存4千個位元組之使用者資料,備用資料欄229-1至229-4之各者可儲存16個位元組之備用資料,且錯誤校正碼欄230-1至230-4之各者可儲存516個位元組之ECC資料。然而,本發明不受限於此。
控制器104可將來自主機120之使用者資料USER1至USER4分別放置於使用者資料欄228-1至228-4中。ECC組件108可分別自使用者資料USER1至USER4計算ECC資料ECC1至ECC4,且控制器104可將ECC資料ECC1至ECC4分別放置於使用者資料欄228-1至228-4中。例如,ECC資料ECC1至ECC4分別對應於使用者資料USER1至USER4。
資料結構225可包含可用於校正整個資料結構225之一校正碼231,諸如一博斯-喬赫里-霍昆格姆(Bose-Chaudhuri-Hocquenghem)(BCH)碼。例如,ECC1至ECC4可指稱內部校正碼,且校正碼231可指稱一外部校正碼。在一些實例中,校正碼231可用於ECC1至ECC4之一或多者無法校正其對應使用者資料時。在一些實例中,校正碼231可為80個位元組,但本發明不受限於此。
當資料結構225係非安全且使用者資料USER1至USER4係非安全資料時,控制器104可將備用資料欄229-1至229-4用於各種目的。例如,控制器104可程式化分別位於備用資料欄229-1至229-4中之備用資料SPARE1至SPARE4之各種型樣。控制器104可將非安全資料結構225發送至緩衝器111,且緩衝器111中之非安全資料結構225可被寫入至一非安全分區116。例如,可將非安全資料結構225寫入一非安全分區116中SLC或MLC之一群組(例如一頁)中。
當使用者資料USER1至USER4係安全資料時,控制器104可不使用備用資料欄229-1至229-4。例如,控制器104可將備用資料SPARE1至SPARE4作為全1或全0型樣寫入備用資料欄229-1至229-4中。接著,控制器104可將安全資料結構發送至資料緩衝器111。
在一些實例中,亦可將安全使用者資料USER1至USER4發送至ECC組件110,且ECC組件110可自使用者資料USER1至USER4計算ECC資料。可將由ECC組件110自使用者資料USER1至USER4計算之ECC資料儲存於備用資料欄229-1至229-4中,同時將資料結構225儲存於緩衝器111中。例如,備用資料SPARE1至SPARE4可分別為自使用者資料USER1至USER4計算之ECC。在一些實例中,可使用自使用者資料USER1至USER4計算之各自ECC來覆寫各自備用資料SPARE1至SPARE4之全1或全0型樣。
圖2B繪示根據本發明之數個實施例之具有安全使用者資料及由記憶體裝置106計算之ECC資料的一資料結構225'。在圖2B中,ECC資料ECC'1至ECC'4由ECC組件110分別自使用者資料USER1至USER4計算且分別儲存於備用資料欄229-1至229-4中。例如,可使用各自ECC資料ECC'1至ECC'4來覆寫各自備用資料SPARE1至SPARE4之全1或全0型樣。安全資料結構225'可位於緩衝器111中且可被寫入安全分區117中。例如,圖2B中之安全資料結構225'可僅程式化於安全分區117中之一SLC群組中。
例如,ECC組件110可指稱一「輕ECC」組件,因為其可使用比ECC組件108少之ECC位元。例如,ECC'資料可指稱輕ECC資料。在一些實例中,ECC'可為8位元ECC且可使約10-8
之一BER恢復至約10-15
之一最終目標BER。例如,輕ECC可歸因於與將安全使用者資料儲存於分區117中之SLC相關聯的較低BER而足夠。ECC組件108可為比ECC組件110重之一ECC組件,因為ECC組件108可用於校正來自分區116中之MLC之使用者資料。應注意,MLC可具有比SLC高之BER。
在一些實例中,圖2B中所描繪之安全資料結構225'可自安全分區117讀取至緩衝器111。使用者資料USER1至USER4可由ECC組件110分別使用ECC資料ECC'1至ECC'4來校正。接著,密碼學組件114可自各自經校正使用者資料USER1至USER4運算各自密碼。
圖3A係根據本發明之數個實施例之呈一記憶體系統302 (其可為記憶體系統102)之形式的一設備之一詳細方塊圖。本文中之圖遵循一編號慣例,其中首個或前幾位數字對應於圖號且剩餘數字識別圖式中之一元件或組件。可藉由使用類似元件符號來識別不同圖之間的類似元件或組件。例如,在元件符號117中,數字1係指圖1,且數字17識別圖1中之安全分區。類似地,在元件符號317中,數字3係指圖3A及圖3B,且數字17識別圖3A及圖3B中之一類似安全分區。
記憶體系統302可包含藉由一介面321來耦合至一控制器304之一記憶體裝置306。例如,控制器304可藉由介面321來耦合至I/O 322。控制器304可為控制器104且可包含一ECC組件308 (其可為ECC組件108)。控制器304可藉由一主機介面323來耦合至一主機,諸如主機120。I/O 322可耦合至一資料路徑312。資料路徑312可耦合至一緩衝器311,緩衝器311可經耦合以讀取/寫入電路335且可為緩衝器111。
讀取/寫入電路335可耦合至一記憶體陣列309。陣列309之部分(例如區塊或區塊群組)可對應於非安全邏輯分區316-1至316-N及安全邏輯分區317及317'。
圖3B繪示根據本發明之數個實施例之安全分區317。安全分區317可儲存數個資料結構325' (例如325'-1至325'-M)。資料結構325'-1至325'-M之各者可組態成(例如)安全資料結構225'。資料結構325'-1至325'-M可分別由位址(例如頁位址) Addr-1至Addr-M定址。
安全分區317可包含使用者不可存取之一秘密區域332。例如,秘密區域332可位於使用者可存取之位址空間外。一密鑰(例如一根密鑰) 333可儲存於秘密區域332中。在一些實例中,可在向使用者(例如消費者)發售記憶體系統302之前在製造設備處將密鑰333儲存於秘密區域332中。替代地,密鑰333可由記憶體裝置306產生,如本文中將進一步討論。
一密碼(諸如一黃金度量334)可儲存於秘密區域332中。例如,可在執行任何操作(諸如讀取、寫入或擦除操作)之前第一次將資料儲存於安全分區317中時針對安全分區317計算黃金度量334。例如,黃金度量334可在記憶體裝置306之壽命期間保持不變。黃金度量334可對應於儲存於資料結構325'-1至325'-M中之使用者資料。可比較黃金度量334與由記憶體裝置306自儲存於資料結構325'-1至325'-M中之使用者資料計算之一密碼學度量以判定使用者資料是否安全,如本文中將進一步討論。
在一些實例中,安全分區317可為可組成一較大安全分區之若干此等子分區之一安全子分區。在此等實例中,各子分區可由一各自子分區位址定址。各個子分區可(例如)具有數個各自資料結構325'及對應於數個各自資料結構中之使用者資料的一各自黃金度量334。然而,密鑰333可用於整個分區。例如,密鑰333可用於對各種子分區所執行之密碼學操作中。
分區317'可儲存相同於安全分區317之資料。分區317'可為分區317之一備份分區,其可在一矯正程序期間與分區317交換,如本文中將進一步討論。例如,當資料首次儲存於分區317及317'中時,分區317及317'中之資料可相同。然而,分區317'中之資料可保持不變(例如永不更新),使得資料保持其初始狀態。例如,在將資料儲存於分區317'中之後,可不對資料執行諸如讀取、寫入或擦除操作之操作。替代地,分區317及317'中之資料可經一起更新以具有相同型樣。在一些實例中,分區317'可為可對使用者隱藏之一秘密分區,使得使用者不可存取分區317'。
讀取/寫入電路335可將安全資料(諸如安全資料結構225')自緩衝器311寫入至安全分區317中。讀取/寫入電路335可將安全資料自安全分區317讀取至緩衝器311中。
在一些實例中,在一非安全寫入操作期間,可經由介面321、I/O 322及資料路徑312來將非安全資料(諸如呈具有非安全使用者資料之資料結構225之格式的一非安全資料結構)自控制器304發送至緩衝器311,且讀取/寫入電路335可將非安全資料寫入至一分區316中。
在一非安全讀取操作期間,讀取/寫入電路335可將非安全資料結構自一非安全邏輯分區316讀取至緩衝器311中。所讀取之非安全資料可發送至控制器304且使用者資料可由ECC組件308校正。
記憶體裝置306之一資料選擇器337可耦合至資料路徑312。資料選擇器337可耦合至一ECC組件310 (例如一輕ECC組件),ECC組件310可為ECC組件110。ECC組件310可耦合至一多工器339之一輸入。資料路徑312可藉由一資料匯流排341來直接耦合(例如無介入組件)至多工器339之另一輸入。
I/O 322可耦合至一命令介面342 (例如一命令使用者介面)。命令介面342可耦合至記憶體裝置306之一控制器345。控制器345可耦合至多工器339之另一輸入。
控制器345可指稱一內部控制器,因為其在記憶體裝置306內,相反地,控制器304係一外部控制器,因為控制器304在記憶體裝置306外。在一些實例中,控制器304可為一記憶體系統控制器(因為其可控制記憶體裝置306),且控制器345可指稱一嵌入式控制器。
控制器345可將各自控制信號發送至ECC組件310、資料選擇器337、資料路徑312、緩衝器311及讀取/寫入電路335。例如,各自控制信號可啟動ECC組件310、資料選擇器337、資料路徑312、緩衝器311及讀取/寫入電路335。控制器345可將各自控制信號發送至多工器339。各個信號可引起多工器339選擇一各自輸入。
多工器339之一輸出可耦合至一解多工器350之一輸入,解多工器350可為(例如)一密碼學組件314 (其可為密碼學組件114)之部分。密碼學組件314可包含一訊息鑑別碼(MAC)組件,諸如一HMAC組件352。密碼學組件314亦可包含耦合至HMAC組件352之一密碼雜湊組件,諸如一SHA組件354。例如,SHA組件354可實施一SHA-256 HASH演算法。解多工器350之各自輸出可分別耦合至SHA組件354及HMAC組件352。
密碼學組件314可包含耦合至HMAC組件352及SHA組件354之控制邏輯356。控制邏輯356可經耦合以自控制器345接收可啟動控制邏輯356之控制信號。控制邏輯356可輸出控制信號至解多工器350。例如,一控制信號可引起解多工器350選擇耦合至HMAC組件352之輸出,且另一控制信號可引起解多工器350選擇耦合至SHA組件354之輸出。在一些實例中,控制邏輯356可將與由密碼學組件314執行之操作相關之各種結果及/或旗標發送至控制器345及/或命令介面342。
記憶體裝置306可包含耦合至控制器345之一單調計數器360及耦合至控制器345之一物理不可複製函數(PUF)組件362。單調計數器360可在每次由記憶體裝置306自控制器304接收一安全命令時使一單調遞增計數(MTC)遞增。在一些實例中,單調計數器360可在重設記憶體裝置306之各電力循環使MTC遞增。MTC可為一新鮮度指標,其可與嵌入安全命令中之一對應新鮮度指標比較以判定安全命令之新鮮度。此可預防(例如消除)重播之可能性。
一PUF可基於記憶體裝置306之物理現象及/或物理特性,諸如溫度、雜訊、信號速度、結構特性等等。例如,PUF組件362可產生隨機數字。在一些實例中,由PUF組件362產生之一PUF可用於產生可由HMAC組件352用於密碼學操作之一密鑰,諸如密鑰333。
密鑰可為(例如)一PUF。在一些實例中,控制器345可經由多工器339及解多工器350來將一PUF及一MTC發送至SHA組件354,因此,SHA組件354可藉由使PUF與MTC雜湊來產生密鑰(例如,密鑰=HASH(PUF | MTC))。替代地,控制器345可將一PUF、MTC及來自控制器304之資料發送至SHA組件354,因此,SHA組件354可藉由使PUF與MTC及資料雜湊來產生密鑰(例如,密鑰=HASH(PUF | MTC | data))。
I/O 322可根據一特定協定(諸如一SPI協定或一ONFI協定及其他協定)來將命令自控制器304選路傳送至命令介面342。命令介面342可接收一非安全命令且可評估命令以判定命令是否正確。例如,命令介面342可藉由判定命令是否包含預期操作碼及預期命令參數來判定命令是否正確。回應於判定命令正確,命令介面342可發送一控制信號以啟動資料路徑312及I/O 322選路傳送資料。命令介面342亦可啟動控制器345以執行命令。
就一非安全寫入命令而言,啟動資料路徑312及I/O 322使對應於非安全寫入命令之資料自控制器304經由I/O 322及資料路徑312選路傳送至緩衝器311。就一非安全讀取命令而言,啟動資料路徑312及I/O 322使對應於非安全讀取命令之資料自緩衝器311經由資料路徑312及I/O 322選路傳送至控制器304。
圖4繪示根據本發明之數個實施例之一安全命令470。命令470可包含一操作碼(Opcode)欄471,其可儲存一Opcode (例如十六進位碼0x9B)。命令470可包含一命令類型(CmdType)欄472,其可儲存一子opcode作為一命令類型。命令470可包含一命令引數欄473,其可包含一新鮮度欄474,新鮮度欄474可儲存命令之一新鮮度,諸如一MTC或一NONCE (例如僅使用一次之一任意數)。命令引數欄473亦可包含可儲存命令之參數的一命令參數欄475及可儲存命令之一簽章的一命令簽章欄476。一命令有效負載477可包含(例如) Opcode、子opcode、新鮮度及參數。
命令介面342可自控制器304接收安全命令470。命令介面342可回應於判定Opcode正確而啟動控制器345。接著,控制器345可鑑別命令470。例如,控制器345可判定子opcode、有效負載477中位元组之數目及新鮮度是否正確。若此等之任何者不正確,則控制器345可中止命令且透過命令介面342及I/O 322來將一錯誤訊息發送至控制器304。應注意,控制器345可藉由(例如)比較命令470中之MTC與來自單調計數器360之MTC來判定新鮮度。回應於判定子opcode、有效負載477中位元組之數目及新鮮度正確,控制器可驗證命令470中之簽章。
在一些實例中,控制器345可藉由比較簽章與由密碼學組件314計算之一局部密碼簽章來驗證簽章。例如,密碼學組件314可將局部簽章計算為有效負載477之一MAC及一密鑰K,諸如密鑰333。例如,有效負載477可自控制器345經由多工器339及解多工器350發送至密碼學組件314。
密碼學組件314可經由一匯流排378來將局部簽章發送至控制器345。控制器345可回應於命令470中之簽章匹配局部簽章而執行命令470或回應於命令470中之簽章不匹配局部簽章而中止命令470。
在一些實例中,局部簽章可為由HMAC組件352自有效負載477及密鑰K計算之一HMAC (例如,作為HMAC(payload, K)。例如,控制器345可將一控制信號發送至控制邏輯356以請求一HMAC計算。控制器345亦可將一控制信號發送至多工器339,其引起多工器339自控制器345選擇輸入用於自多工器339輸出,使得多工器339可輸出有效負載477至解多工器350。控制邏輯356可將一控制信號發送至解多工器350,其引起解多工器350將有效負載477導引至HMAC組件352。控制器345可將一控制信號發送至控制邏輯356,且控制邏輯356可引起HMAC組件352回應於控制邏輯356接收控制信號而計算局部簽章。控制邏輯356可經由匯流排378來將局部簽章發送至控制器345。
在一些實例中,可藉由結合SHA組件354使用HMAC組件352來計算局部簽章。例如,HMAC組件352組合密鑰K與內部填補(ipad),諸如藉由使K與ipad進行XOR (「互斥或」)運算(例如K XOR ipad)。HMAC組件352可組合XOR運算之結果與有效負載以產生(K XOR ipad) || payload。接著,SHA組件354可將(K XOR ipad) || payload之一密碼HASH計算為HASH[(K XOR ipad) || payload]。接著,HMAC組件352可使K與一外部填補(opad)進行XOR運算且組合該XOR運算之結果與HASH[(K XOR ipad) || payload]以產生(K XOR opad) || HASH[(K XOR ipad) || payload]。接著,SHA組件354可將(K XOR opad) || HASH[(K XOR ipad) || payload]之密碼HASH計算為HASH[(K XOR opad) || HASH[(K XOR ipad) || payload]],其可為局部簽章。應注意,在此實例中,兩次使用SHA組件354。
在一些實例中,可由密碼學組件314回應於來自控制器304之命令而對來自控制器304之非安全使用者資料執行密碼學操作。例如,密碼學組件314可回應於來自控制器304之一MAC命令而運算自控制器304接收之使用者資料及一密鑰之一MAC (例如MAC(user data, key))或回應於來自控制器304之一HASH命令而運算自控制器304接收之使用者資料之一HASH。接著,可使所運算之MAC或HASH返回至控制器304。
在一些實例中,可在命令介面342處自控制器304接收命令(例如MAC或HASH命令),且命令介面342可啟動控制器345。控制器345可經由控制信號來啟動I/O 322及資料路徑312,使得對應於命令之一資料結構(諸如資料結構225)可自控制器304經由I/O 322及資料路徑312發送至緩衝器311。
控制器345可經由控制信號來啟動緩衝器311及資料路徑312,使得緩衝器311中之資料結構中之使用者資料可自緩衝器311發送至耦合至資料匯流排341之多工器339之輸入。控制器345可引起多工器339選擇使用者資料用於輸出至解多工器350。
控制器345可啟動控制邏輯356 (例如經由控制器345與控制邏輯356之間的一「交握」操作)。所啟動之控制邏輯356可啟動HMAC組件352且可引起解多工器350導引使用者資料至HMAC組件352。在其中一控制器304提供一密鑰之實例中,可使用命令來將密鑰發送至控制器345,且控制器345可經由匯流排378來將密鑰發送至控制邏輯356。
當圖2A中之資料結構225中之使用者資料係安全時,可回應於鑑別一安全寫入命令而將資料結構225寫入至資料緩衝器311,如先前所描述。例如,控制器345可回應於鑑別寫入命令而啟動I/O 322及資料路徑312,使得資料結構225可經由I/O 322及資料路徑312來發送至資料緩衝器311。
控制器345可經由控制信號來啟動緩衝器311、資料路徑312、資料選擇器337及ECC組件310。接著,資料結構225之各自框Frame 1至Frame 4可自緩衝器311發送至資料選擇器337,使得資料選擇器337可選擇各自使用者資料USER1至USER4且將各自使用者資料USER1至USER4發送至ECC組件310。ECC組件310可自各自使用者資料USER1至USER4計算各自ECC'1至ECC'4。
ECC組件310可將各自ECC'1至ECC'4發送回至緩衝器311,使得各自ECC'1至ECC'4可寫入各自備用欄229-1至229-4中。例如,可使用各自ECC'1至ECC'4來覆寫各自備用資料SPARE1至SPARE4 (例如具有全1或全0資料型樣)(例如以產生資料結構225')。可由讀取/寫入電路335回應於控制器345經由一控制信號來啟動讀取/寫入電路335而將資料結構225'自緩衝器311寫入至安全分區317中。
可回應於鑑別來自控制器304之一安全讀取命令而自分區317讀取一安全資料結構(諸如一安全資料結構225'),如先前所描述。控制器345可回應於鑑別讀取命令而啟動讀取/寫入電路335,使得讀取/寫入電路335可將資料結構讀取至資料緩衝器311中。
控制器345可啟動緩衝器311、資料路徑312及I/O 322,使得資料結構可自緩衝器311選路傳送至控制器304。在一些實例中,ECC組件308可使用各自ECC資料(諸如ECC1、ECC2、ECC3及ECC4)來校正使用者資料,諸如USER1、USER2、USER3及USER4 (圖2B)。
在一些實例中,記憶體裝置306可在每次記憶體裝置306通電或重設時判定安全分區317中之使用者資料是否安全。例如,控制器304可在每次記憶體系統302通電或重設時將一安全命令發送至記憶體裝置306,其可引起記憶體裝置306判定分區317中之使用者資料是否安全。
記憶體裝置306可藉由判定使用者資料是否已改變(例如自記憶體裝置306上一次斷電起)來判定使用者資料是否安全。此可藉由計算安全分區317中使用者資料之一密碼學度量且比較密碼學度量與黃金度量334來完成。
在一些實例中,密碼學度量可為分區317中所有使用者資料之一HMAC。HMAC可類似於先前結合局部簽章所描述之HMAC (例如HMAC(user data, K))。例如,密碼學度量可為由HMAC組件352結合SHA組件354所運算之局部簽章HASH,其中使用者資料係有效負載。
安全命令可由控制器345鑑別,如先前所描述。控制器345可執行鑑別命令以判定分區317之密碼學度量。控制器345可啟動讀取/寫入電路335以將資料結構325'-1至325'-M自分區317逐個讀取至緩衝器311中。控制器345可經由控制信號來啟動緩衝器311、資料路徑312、資料選擇器337及ECC組件310。ECC組件310可使用由ECC組件310計算之各自ECC資料來校正資料結構325'-1至325'-M之各者中之各自使用者資料。ECC組件310可將經校正使用者資料發送至密碼學組件314,且密碼學組件314可計算經校正使用者資料之密碼學度量。
控制器345可將一控制信號發送至多工器339,其可引起多工器339選擇耦合至ECC組件310之輸入,使得ECC組件310可將經校正使用者資料發送至解多工器350。在一些實例中,控制器345可經由一「交握」操作來啟動控制邏輯356,且控制邏輯356可將一信號發送至解多工器350,其引起解多工器350將經校正使用者資料傳至HMAC組件352。接著,HMAC組件352 (例如結合SHA組件354)可自經校正使用者資料計算密碼學度量。
密碼學度量可與黃金度量334比較。若密碼學度量等於黃金度量334,則分區中之使用者資料不改變且因此安全。然而,若密碼學度量不等於黃金度量334,則分區中之使用者資料已被改變(例如歸因於一駭客攻擊)且因此被認為不安全。
舉例而言,其中各自資料結構325'-1至325'-M之各者組態為資料結構225'。各自框Frame 1至Frame 4可自緩衝器311發送至資料選擇器337,使得資料選擇器337可選擇各自使用者資料USER1至USER4及各自ECC資料ECC'1至ECC'4且將USER1至USER4及各自ECC資料ECC'1至ECC'4發送至ECC組件310。ECC組件310可使用各自ECC'1至ECC'4來校正各自使用者資料USER1至USER4且將經校正使用者資料USER1至USER4發送至密碼學組件314。各自資料結構325'-1至325'-4之各者可重複此程序。
在一些實例中,可計算黃金度量334,如先前針對密碼學度量,但針對使用者資料首次儲存於安全分區317中且未對分區317執行諸如讀取、寫入或擦除操作之操作時之分區317中之使用者資料(例如初始使用者資料)之初始狀態所描述。例如,黃金度量334可為一HMAC。HMAC可類似於先前結合局部簽章所描述之HMAC (例如HMAC(initial user data, K))。例如,黃金度量334可為由HMAC組件352結合SHA組件354所運算之局部簽章HASH,其中初始使用者資料係有效負載。
當一資料結構之一框中之使用者資料中之錯誤無法由ECC組件310校正時,內部控制器345可(例如)引起讀取/寫入電路335重讀資料結構,使得ECC組件310可校正重讀資料結構之各框中之使用者資料。
在一些實例中,控制器304可回應於ECC組件310無法校正資料結構之一框中之使用者資料而讀取緩衝器311中之資料結構。例如,ECC組件308可使用由ECC組件308計算之對應ECC資料(諸如ECC1、ECC2、ECC3及ECC4)來校正資料結構之各自框中之資料,諸如USER1、USER2、USER3及USER4。接著,控制器304可將具有經校正使用者資料(例如經外部校正使用者資料)之資料結構發送至資料緩衝器311。接著,控制器345可引起資料選擇器337選擇經外部校正使用者資料。在一些實例中,控制器345可在一旁路模式中放置ECC組件310,使得資料選擇器337可選擇經外部校正使用者資料用於密碼學組件314,無需由ECC組件310校正。例如,此可在計算密碼學度量期間進行。
在一些實例中,控制器304可僅在分區317中之任何資料已改變時用於校正分區317中之資料。替代地,可在分區317中之任何資料已改變時使用一矯正程序。分區317中之資料可由於一駭客攻擊或操作記憶體裝置306時之一技術故障而改變。亦可回應於密碼學度量不匹配黃金度量344而執行矯正程序。例如,矯正程序可涉及控制器345使用分區317'來替換分區317。
在涉及密鑰333之各種前述實例中,直接使用密鑰333。然而,在一些實例中,可使用會話期密鑰來代替密鑰333。例如,可在可開始記憶體系統302之各通電(例如重設)之記憶體系統302之各電力循環期間使用一新(例如不同)會話期密鑰。例如,可在密碼學組件314之前一電力循環結束時之一電力循環計算一會話期密鑰。例如,會話期密鑰可為前一電力循環結束時之密鑰333及MTC之MAC (例如,會話期密鑰=MAC(MTC, secret key))。替代地,例如,會話期密鑰=HMAC(MTC, secret key)。
記憶體裝置306可具有一記憶體裝置識別符(ID)。在一些實例中,回應於來自控制器304之一記憶體裝置鑑別命令,控制器345可將ID發送至密碼學組件314。密碼學組件314可將一密碼(例如一簽章ID)計算為密鑰333及ID之一MAC (例如,簽章ID=MAC(secret key, ID))。密碼學組件314可使簽章ID返回至控制器345,且控制器345可將簽章ID發送至控制器304。控制器304可比較簽章ID與記憶體裝置306之一正確簽章ID且自比較判定記憶體裝置是否本真。若簽章ID匹配,則記憶體裝置306係本真的。否則,記憶體裝置306不本真且可為(例如)一克隆。
圖5係可為陣列109或309 (例如一NAND陣列)之一部分的非揮發性記憶體單元之一區塊580 (例如一NAND區塊)之一示意圖。在一些實例中,區塊580可對應於一非安全分區116或316或一安全分區117或317。
區塊580包含串聯耦合記憶體單元之群組(例如NAND串581-1至581-I)。NAND串581-1至581-I之各者可包含串聯耦合於一選擇電晶體583與一選擇電晶體584之間的記憶體單元582-1至582-J。NAND串581-1至581-I可回應於將一啟動信號施加於共同耦合至選擇電晶體584之閘極之一選擇線586而分別藉由各自選擇電晶體584來選擇性耦合至資料線585-1至585-I (例如位元線)。NAND串581-1至581-I可回應於將一啟動信號施加於共同耦合至選擇電晶體583之閘極之一選擇線588而分別藉由各自選擇電晶體583來選擇性耦合至一共同源極587。
存取線590-1至590-J (例如字線)可分別共同耦合至記憶體單元582-1至582-J之控制閘極。例如,NAND串581-1至581-I中一共同位置處之記憶體單元582之一群組可共同耦合至一各自存取線590。在一些實例中,共同耦合至一存取線之一記憶體單元群組可為一頁記憶體單元。例如,分別共同耦合至存取線590-1至590-J之I個記憶體單元之各自群組可為記憶體單元之各自頁。因而,區塊580中可存在J頁記憶體單元,其等各具有I個記憶體單元。然而,本發明不受限於此,且共同耦合至一存取線之記憶體單元之各種群組可對應於一頁。在一些實例中,一資料結構(諸如資料結構225、225'或325')可儲存於頁中。
應注意,可在一擦除程序期間共同擦除區塊580之所有記憶體單元582,不管區塊580是否為一安全或非安全分區之部分。當區塊580係一安全分區之部分時,可回應於自控制器304接收之一安全擦除命令(其可如先前所描述般鑑別)而擦除區塊580。當區塊580係一非安全分區之部分時,可回應於自控制器304接收之一非安全擦除而擦除區塊580。在一些實例中,可一次寫入或讀取一頁記憶體單元582。
記憶體單元582之各者可包含一電荷儲存結構591 (諸如一浮動閘極或一電荷捕捉層等等)及一控制閘極592。透過程式化電荷儲存結構591之記憶體單元582之Vt改變可判定各單元之資料狀態。
記憶體單元582可為:SLC,其可每單元儲存一單一位元;或MLC,其可每單元儲存多個位元,諸如每單元兩個位元、每單元三個位元(諸如三位階單元(TLC))、每單元四個位元(諸如四位階單元(QLC))等等。應注意,分區117及317可僅包含SLC之區塊,而分區116或316可包含SLC及/或MLC之區塊。
在一些實例中,區塊580可為一堆疊記憶陣列(其可指稱三維(3D)記憶體陣列(諸如三維NAND記憶體陣列))之一部分。在一堆疊記憶體陣列中,NAND串581可相鄰於半導體結構(例如垂直半導體柱),且NAND串581中之記憶體單元582可處於不同位階(例如垂直位階)。共同耦合至一存取線590之記憶體單元582 (諸如一頁記憶體單元)可處於(例如)一共同位階且可形成記憶體單元之一層級(有時指稱記憶體單元之一階層)。
在本發明之以上詳細描述中,參考構成本發明之一部分的附圖,且附圖中依繪示方式展示可如何實踐本發明之數個實施例。足夠詳細描述此等實施例以使一般技術者能夠實踐本發明之實施例,且應瞭解,可利用其他實施例且可在不背離本發明之範疇之情況下作出程序、電及/或結構改變。
如本文中所使用,「數個」或「一定量」某物可係指一或多個此等事物。例如,數個或一定量記憶體單元可係指一或多個記憶體單元。「複數個」某物意指兩個或更多個。如本文中所使用,術語「耦合」可包含電耦合、無介入元件之直接耦合及/或直接連接(例如藉由直接實體接觸)、使用介入元件之間接耦合及/或連接、或無線耦合。術語「耦合」可進一步包含彼此配合或相互作用(例如呈一因果關係)之兩個或更多個元件。
儘管本文中已繪示及描述特定實施例,但一般技術者應瞭解,經計算已達成相同結果之一配置可替代所展示之特定實施例。本發明意欲涵蓋本發明之數個實施例之調適或變動。應瞭解,已依一說明方式而非限制方式進行以上描述。熟習技術者將在檢視以上描述之後明白上述實施例之組合及本文中未具體描述之其他實施例。本發明之數個實施例之範疇包含其中使用上述結構及方法之其他應用。因此,應參考隨附申請專利範圍及此申請專利範圍授權之等效物之全範圍來判定本發明之數個實施例之範疇。
在[實施方式]中,一些特徵一起群組於一單一實施例中以精簡本發明。本發明方法不應被解譯為反映以下意圖:本發明之揭示實施例必須使用比各請求項中所明確列舉之特徵多之特徵。確切而言,如以下申請專利範圍所反映,發明標的不具有一單一揭示實施例之所有特徵。因此,以下申請專利範圍藉此併入至[實施方式]中,其中各請求項自身代表一單獨實施例。
100:運算系統
102:記憶體系統
104:控制器
106:記憶體裝置
108:錯誤校正組件/錯誤校正碼(ECC)組件
109:記憶體陣列
110:錯誤校正組件/ECC組件
111:緩衝器
112:資料路徑
114:密碼學組件
116:非安全分區
116-1至116-N:邏輯分區
117:安全邏輯分區
120:主機
121:介面
122:輸入/輸出(I/O)
123:主機介面
225:資料結構
225':資料結構
227-1至227-4:分段
228-1至228-4:使用者資料欄
229-1至229-4:備用資料欄
230-1至230-4:錯誤校正碼(ECC)欄
231:校正碼
302:記憶體系統
304:控制器
306:記憶體裝置
308:ECC組件
309:記憶體陣列
310:ECC組件
311:緩衝器
312:資料路徑
314:密碼學組件
316:非安全邏輯分區
316-1至316-N:非安全邏輯分區
317:安全邏輯分區
317':安全邏輯分區
321:介面
322:I/O
323:主機介面
325':資料結構
325'-1至325'-M:資料結構
332:秘密區域
333:密鑰
334:黃金度量
335:讀取/寫入電路
337:資料選擇器
339:多工器
341:資料匯流排
342:命令介面
345:控制器
350:解多工器
352:雜湊訊息鑑別碼(HMAC)組件
354:SHA組件
356:控制邏輯
360:單調計數器
362:物理不可複製函數(PUF)組件
378:匯流排
470:安全命令
471:操作碼(Opcode)欄
472:命令類型(CmdType)欄
473:命令引數欄
474:新鮮度欄
475:命令參數欄
476:命令簽章欄
477:命令有效負載
580:區塊
581-1至581-I:NAND串
582-1至582-J:記憶體單元
583:選擇電晶體
584:選擇電晶體
585-1至585-I:資料線
586:選擇線
587:共同源極
588:選擇線
590:存取線
590-1至590-J:存取線
591:電荷儲存結構
592:控制閘極
圖1係根據本發明之數個實施例之一設備之一簡化方塊圖。
圖2A繪示根據本發明之數個實施例之一資料結構。
圖2B繪示根據本發明之數個實施例之具有由一記憶體裝置計算之ECC資料的一資料結構。
圖3A係根據本發明之數個實施例之一設備(例如呈一記憶體系統之形式)之一方塊圖。
圖3B繪示根據本發明之數個實施例之一安全記憶體分區。
圖4繪示根據本發明之數個實施例之一安全命令。
圖5係根據本發明之數個實施例之一記憶體陣列之一部分之一示意圖。
100:運算系統
102:記憶體系統
104:控制器
106:記憶體裝置
108:錯誤校正組件/錯誤校正碼(ECC)組件
109:記憶體陣列
110:錯誤校正組件/ECC組件
111:緩衝器
112:資料路徑
114:密碼學組件
116-1至116-N:邏輯分區
117:安全邏輯分區
120:主機
121:介面
122:輸入/輸出(I/O)
123:主機介面
Claims (22)
- 一種用於操作記憶體之設備,其包括:一外部控制器,其包括一第一錯誤校正碼組件;及一記憶體裝置,其耦合至該控制器,該記憶體裝置包括:一記憶體單元陣列;一緩衝器,其耦合至該陣列且經組態以自該記憶體單元陣列之一安全分區接收一資料結構,該資料結構包括資料之複數個各自分段,其中該等各自分段之各者包括各自使用者資料及由該第一錯誤校正碼組件所計算之各自第一錯誤校正碼資料;一第二錯誤校正碼組件,其耦合至該緩衝器且經組態以自該緩衝器中之該資料結構接收該各自使用者資料,以自該各自使用者資料計算各自第二錯誤校正碼資料及將該各自第二錯誤校正碼資料加至該資料結構之該等各自分段;一內部控制器,其經組態以在將該各自第二錯誤校正碼資料加至該資料結構之該等各自分段之後,將該資料結構自該緩衝器寫入至該安全分區;及一密碼學組件,其耦合至該第二錯誤校正碼組件且經組態以自該第二錯誤校正碼組件接收經校正之該各自使用者資料。
- 如請求項1之設備,其中該第一錯誤校正碼組件經組態以計算各自第一錯誤校正碼且使用該各自第一錯誤校正碼來校正來自該陣列之該各自使用者資料;且 該第二錯誤校正碼組件經組態以計算各自第二錯誤校正碼且使用該各自第二錯誤校正碼來校正來自該陣列之該各自使用者資料。
- 如請求項1之設備,其中該密碼學組件經組態以自經接收之該各自使用者資料計算一第一密碼;且該記憶體裝置經組態以比較該第一密碼與儲存於該陣列中之一第二密碼。
- 如請求項3之設備,其中該第一密碼及該第二密碼係基於儲存於該陣列中之一密鑰。
- 如請求項3之設備,其中該第一密碼及該第二密碼係第一密碼雜湊及第二密碼雜湊。
- 如請求項1至3中任一項之設備,其中:該外部控制器係在該記憶體裝置外且經由一記憶體介面來耦合至該記憶體裝置及經由一主機介面來耦合至一主機。
- 如請求項6之設備,其中:該記憶體裝置包括耦合至該內部控制器之一單調計數器;且該內部控制器經組態以比較來自該單調計數器之一單調計數與自該第一控制器接收之一命令中之一單調計數以判定該命令之一新鮮度。
- 如請求項6之設備,其中該記憶體裝置包括耦合至該內部控制器之一物理不可複製函數組件。
- 如請求項1至3中任一項之設備,其中該密碼學組件包括:一SHA組件,其耦合至一雜湊訊息鑑別碼組件;及控制邏輯,其耦合至該SHA組件及該雜湊訊息鑑別碼組件。
- 如請求項1至3中任一項之設備,其中密碼學組件經組態以:自該外部控制器接收資料且不使用該第二錯誤校正碼組件來校正該資料;及自該資料計算一密碼。
- 一種用於資料校正之記憶體裝置,其包括:一記憶體單元陣列,其包括對應於一安全分區之一部分;一緩衝器,其耦合至該陣列且經組態以自該安全分區接收一資料結構,該資料結構包括資料之複數個各自分段,其中該等各自分段之各者包括各自使用者資料及該記憶體裝置外所計算之各自第一錯誤校正碼資料;一錯誤校正碼組件,其耦合至該緩衝器且經組態以自該緩衝器中之該資料結構接收該各自使用者資料,以自該各自使用者資料計算各自第二錯誤校正碼資料及將該各自第二錯誤校正碼資料加至該資料結構之該等各自分段;一控制器,其經組態以在將該各自第二錯誤校正碼資料加至該資料結 構之該等各自分段之後,將該資料結構自該緩衝器寫入至該安全分區;及一密碼學組件,其耦合至該第二錯誤校正碼組件;其中該錯誤校正碼組件經組態以使用該各自第二錯誤校正碼資料來校正該各自使用者資料及將經校正之該各自使用者資料發送至該密碼學組件。
- 如請求項11之記憶體裝置,其中該控制器係一第一控制器,該記憶體裝置進一步包括耦合至該第一控制器之一命令使用者介面,其中該命令使用者介面經組態以回應於自該記憶體裝置外之一第二控制器接收一命令而啟動該第一控制器。
- 如請求項12之記憶體裝置,其中該第一控制器經組態以回應於被啟動而藉由以下操作來鑑別該命令:判定該命令之一新鮮度;回應於判定該命令係新鮮而引起該密碼學組件計算一簽章;及比較該計算簽章與該命令中之一簽章。
- 如請求項13之記憶體裝置,其中該計算簽章係基於儲存於該陣列中之一密鑰及該密碼學組件處自該第一控制器接收之該命令之一有效負載的一雜湊訊息鑑別碼。
- 如請求項13之記憶體裝置,其中:該計算簽章係基於一密鑰及該密碼學組件處自該第一控制器接收之 該命令之一有效負載的一雜湊訊息鑑別碼;且該密鑰係一會話期密鑰,其係儲存於該陣列中之一密鑰及該記憶體裝置之一單調計數器之一單調計數的一訊息鑑別碼。
- 一種用於操作記憶體之方法,其包括:自一記憶體裝置之一記憶體陣列讀取資料,該資料包括使用者資料、由一外部控制器自該使用者資料計算之第一錯誤校正資料及由該記憶體裝置之一錯誤校正碼組件自該使用者資料計算之第二錯誤校正資料;由該錯誤校正碼組件使用該第二錯誤校正資料來校正該使用者資料;將經校正之該使用者資料自該錯誤校正碼組件發送至該記憶體裝置之一密碼學組件;由該密碼學組件對經校正之該使用者資料執行密碼學操作;及回應於該錯誤校正碼組件無法使用該第二錯誤校正資料來校正該使用者資料而:由該記憶體裝置之一內部控制器自該記憶體陣列讀取該資料;及由該錯誤校正碼組件使用該重讀資料之該第二錯誤校正資料來校正該重讀資料之該使用者資料。
- 如請求項16之方法,其進一步包括在使用該第二錯誤校正資料來校正該使用者資料之前:將該資料自記憶體陣列發送至該記憶體裝置之一資料選擇器;由該資料選擇器自該資料選擇該使用者資料及該第二錯誤校正資 料;及將該使用者資料及該第二錯誤校正資料自該資料選擇器發送至該錯誤校正碼組件。
- 如請求項16之方法,其中由該密碼學組件對該經校正使用者資料執行密碼學操作包括由該密碼學組件自該經校正資料計算一密碼學度量,其中該方法進一步包括:比較該計算密碼學度量與儲存於該記憶體陣列中之一黃金度量。
- 如請求項18之方法,其中自該記憶體陣列讀取該資料包括自對應於一第一邏輯分區之該記憶體陣列之一部分讀取該資料;且該方法進一步包括回應於該計算密碼學度量不匹配該黃金度量而使用資料之一第二邏輯分區來替換資料之該第一邏輯分區。
- 如請求項16至18中任一項之方法,其進一步包括回應於該錯誤校正碼組件無法使用該第二錯誤校正資料來校正該使用者資料而:由該外部控制器自該陣列讀取該資料;及由該外部控制器使用該第一錯誤校正資料來校正由該外部控制器讀取之該資料之該使用者資料。
- 如請求項20之方法,其中由該外部控制器校正之該使用者資料係經外部校正之使用者資料,該方法進一步包括: 將該經外部校正之使用者資料發送至該密碼學組件且無需該記憶體裝置之該錯誤校正碼組件校正該經外部校正之使用者資料。
- 如請求項16至18中任一項之方法,其進一步包括藉由比較自該外部控制器接收之一命令之一密碼簽章與由該密碼學組件自該命令及儲存於該陣列中之一密鑰計算之一密碼學簽章來驗證該命令之該密碼簽章。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/255,142 US11514174B2 (en) | 2019-01-23 | 2019-01-23 | Memory devices with cryptographic components |
US16/255,142 | 2019-01-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202101215A TW202101215A (zh) | 2021-01-01 |
TWI738097B true TWI738097B (zh) | 2021-09-01 |
Family
ID=71608361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108138758A TWI738097B (zh) | 2019-01-23 | 2019-10-28 | 具有密碼學組件的記憶體裝置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11514174B2 (zh) |
EP (1) | EP3915035A4 (zh) |
JP (1) | JP2022523294A (zh) |
KR (1) | KR20210107148A (zh) |
TW (1) | TWI738097B (zh) |
WO (1) | WO2020154006A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11514174B2 (en) * | 2019-01-23 | 2022-11-29 | Micron Technology, Inc. | Memory devices with cryptographic components |
US11237732B2 (en) * | 2019-08-06 | 2022-02-01 | Intel Corporation | Method and apparatus to improve write bandwidth of a block-based multi-level cell nonvolatile memory |
US11782610B2 (en) * | 2020-01-30 | 2023-10-10 | Seagate Technology Llc | Write and compare only data storage |
FR3118268B1 (fr) * | 2020-12-23 | 2024-01-12 | St Microelectronics Sa | Mémoire sécurisée |
US20230057004A1 (en) * | 2021-08-17 | 2023-02-23 | Micron Technology, Inc. | Secure Collection of Diagnostics Data about Integrated Circuit Memory Cells |
US12007912B2 (en) * | 2022-06-01 | 2024-06-11 | Micron Technology, Inc. | NAND page buffer based security operations |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100262889A1 (en) * | 2006-06-30 | 2010-10-14 | Bains Kuljit S | Reliability, availability, and serviceability in a memory device |
US20100313056A1 (en) * | 2009-06-03 | 2010-12-09 | Freescale Semiconductor, Inc. | Secure Computing Device with Monotonic Counter and Method Therefor |
TW201319817A (zh) * | 2011-11-04 | 2013-05-16 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器及資料串傳送與識別方法 |
US20150234751A1 (en) * | 2012-10-04 | 2015-08-20 | Intrinsic Id B.V. | System for generating a cryptographic key from a memory used as a physically unclonable function |
TW201805817A (zh) * | 2016-08-04 | 2018-02-16 | 旺宏電子股份有限公司 | 電子裝置及其記憶體電路與其操作方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU1265195A (en) | 1993-12-06 | 1995-06-27 | Telequip Corporation | Secure computer memory card |
WO2003060719A1 (en) | 2002-01-18 | 2003-07-24 | Mentor Graphics (Holdings) Ltd. | System and method of clocking an ip core during a debugging operation |
EP1733555A4 (en) | 2004-02-23 | 2009-09-30 | Lexar Media Inc | SAFE COMPACT FLASH |
KR100743253B1 (ko) | 2006-04-11 | 2007-07-27 | 엠텍비젼 주식회사 | 코드 데이터 에러 정정 방법 및 장치 |
JP5540969B2 (ja) | 2009-09-11 | 2014-07-02 | ソニー株式会社 | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム |
WO2012045627A1 (en) | 2010-10-04 | 2012-04-12 | Intrinsic Id B.V. | Physical unclonable function with improved start-up behavior |
JP2012252557A (ja) | 2011-06-03 | 2012-12-20 | Mega Chips Corp | メモリコントローラ |
US8943313B2 (en) | 2011-07-19 | 2015-01-27 | Elwha Llc | Fine-grained security in federated data sets |
WO2013095387A1 (en) * | 2011-12-20 | 2013-06-27 | Intel Corporation | Secure replay protected storage |
US8996951B2 (en) | 2012-11-15 | 2015-03-31 | Elwha, Llc | Error correction with non-volatile memory on an integrated circuit |
JP2014191372A (ja) | 2013-03-26 | 2014-10-06 | Mega Chips Corp | 不揮発性記憶システム、不揮発性記憶装置、メモリコントローラ、および、プログラム |
US9804979B2 (en) * | 2014-12-29 | 2017-10-31 | Sandisk Technologies Llc | Ring bus architecture for use in a memory module |
US9613714B1 (en) * | 2016-01-19 | 2017-04-04 | Ememory Technology Inc. | One time programming memory cell and memory array for physically unclonable function technology and associated random code generating method |
US10911229B2 (en) * | 2016-08-04 | 2021-02-02 | Macronix International Co., Ltd. | Unchangeable physical unclonable function in non-volatile memory |
KR102557993B1 (ko) * | 2018-10-02 | 2023-07-20 | 삼성전자주식회사 | 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법 |
US11514174B2 (en) * | 2019-01-23 | 2022-11-29 | Micron Technology, Inc. | Memory devices with cryptographic components |
-
2019
- 2019-01-23 US US16/255,142 patent/US11514174B2/en active Active
- 2019-10-28 TW TW108138758A patent/TWI738097B/zh active
- 2019-10-30 KR KR1020217026229A patent/KR20210107148A/ko not_active Application Discontinuation
- 2019-10-30 JP JP2021542320A patent/JP2022523294A/ja not_active Ceased
- 2019-10-30 WO PCT/US2019/058812 patent/WO2020154006A1/en unknown
- 2019-10-30 EP EP19911368.9A patent/EP3915035A4/en not_active Withdrawn
-
2022
- 2022-11-28 US US17/994,680 patent/US11868488B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100262889A1 (en) * | 2006-06-30 | 2010-10-14 | Bains Kuljit S | Reliability, availability, and serviceability in a memory device |
US20100313056A1 (en) * | 2009-06-03 | 2010-12-09 | Freescale Semiconductor, Inc. | Secure Computing Device with Monotonic Counter and Method Therefor |
TW201319817A (zh) * | 2011-11-04 | 2013-05-16 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器及資料串傳送與識別方法 |
US20150234751A1 (en) * | 2012-10-04 | 2015-08-20 | Intrinsic Id B.V. | System for generating a cryptographic key from a memory used as a physically unclonable function |
TW201805817A (zh) * | 2016-08-04 | 2018-02-16 | 旺宏電子股份有限公司 | 電子裝置及其記憶體電路與其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US11514174B2 (en) | 2022-11-29 |
WO2020154006A1 (en) | 2020-07-30 |
US20200233967A1 (en) | 2020-07-23 |
CN113348456A (zh) | 2021-09-03 |
EP3915035A1 (en) | 2021-12-01 |
US20230086754A1 (en) | 2023-03-23 |
TW202101215A (zh) | 2021-01-01 |
JP2022523294A (ja) | 2022-04-22 |
EP3915035A4 (en) | 2022-11-16 |
KR20210107148A (ko) | 2021-08-31 |
US11868488B2 (en) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI738097B (zh) | 具有密碼學組件的記憶體裝置 | |
JP7101318B2 (ja) | メモリ内のデータアテステーション | |
US11683155B2 (en) | Validating data stored in memory using cryptographic hashes | |
CN113632066A (zh) | 所执行代码中的错误识别 | |
US11669643B2 (en) | Block chain based validation of memory commands | |
US11228443B2 (en) | Using memory as a block in a block chain | |
CN113826071A (zh) | 空中更新确认 | |
CN113348456B (zh) | 具有密码学组件的存储器装置 | |
US20220138114A1 (en) | Using memory as a block in a block chain | |
TW202403773A (zh) | 半導體裝置及用以管理其之安全操作的系統與方法 |