TW202107285A - 安全記憶體方案 - Google Patents
安全記憶體方案 Download PDFInfo
- Publication number
- TW202107285A TW202107285A TW109100448A TW109100448A TW202107285A TW 202107285 A TW202107285 A TW 202107285A TW 109100448 A TW109100448 A TW 109100448A TW 109100448 A TW109100448 A TW 109100448A TW 202107285 A TW202107285 A TW 202107285A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- message authentication
- command sequence
- memory device
- authentication code
- 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/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
-
- 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
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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/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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/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/3263—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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Abstract
本發明提供一種記憶體裝置,可包括記憶體及接收命令序列的介面。訊息認證碼(MAC)具有命令序列。記憶體裝置上的控制電路包括命令解碼器以解碼經接收的命令序列且執行經識別的記憶體操作。訊息認證引擎包括基於經接收的命令序列及經儲存密鑰來計算與經接收的訊息認證碼匹配的訊息認證碼的值。記憶體裝置可在記憶體中儲存與一或多個記憶體區相關聯的多個密鑰。若經計算的值與經接收的訊息認證碼不匹配,則裝置上的邏輯阻止完成由命令序列進行識別的記憶體操作。
Description
本發明是關於記憶體安全,且特別是關於基於訊息認證碼的記憶體安全。
記憶體裝置包括積體電路記憶體裝置正廣泛在各種設置中使用。此外,通信技術變得更加多樣化及廣泛。這些技術支援各種新類型裝置,例如物聯網(Internet of Things;IoT)裝置及類似者。
因此,需要提供一種用於改良儲存於此類裝置上資料的資訊安全技術。
描述一種記憶體裝置,其中記憶體裝置的記憶體空間可經分成由訊息認證協定保密的一或多個記憶體區。
記憶體裝置的實施例可包括記憶體及介面,在所述介面上接收用以識別記憶體操作及記憶體中的記憶體區的命令序列。訊息認證碼(message authentication code;MAC)具有命令序列,且在介面處接收。記憶體裝置上的控制電路可操作地耦接至介面,且控制電路包括命令解碼器,以解碼經接收的命令序列,且執行經識別記憶體操作。訊息認證引擎可操作地耦接至控制電路及介面,訊息認證引擎包括使用經接收的命令序列的全部或部分及及與經識別的記憶體區相關聯的經儲存的訊號儲存於記憶體裝置上的訊息認證參數來計算與經接收的訊息認證碼匹配的訊息認證碼的值的邏輯。記憶體裝置可包括訊息認證參數儲存器,從而儲存與記憶體中的一或多個記憶體區相關聯的多個訊息認證參數,例如加密密鑰。訊息認證參數用於計算與經接收的訊息認證碼匹配的值,訊息認證參數可由經接收的命令序列中的位址來識別。若計算的值與經接收的訊息認證碼不匹配,則訊息認證引擎可包括一邏輯,該邏輯用以阻止由命令序列進行識別的記憶體操作被完成。
在本文中所描述的實例中,記憶體裝置包括控制用於記憶體中多個記憶體區中的對應記憶體區的認證旗標的狀態的邏輯。基於將訊息認證碼的計算值與經接收的訊息認證碼進行匹配來設置認證旗標。所述邏輯回應於對應經識別記憶體區的認證旗標的狀態來致能(eable)或禁能(diable)完成經識別的記憶體操作。
記憶體及訊息認證引擎可配置於獨立的積體電路晶片上或配置於單個積體電路晶片上。在一些實施例中,記憶體及訊息認證引擎可配置於由實體安全鏈路連接的獨立積體電路晶片上。在一些實施例中,記憶體及訊息認證引擎可配置於多晶片封裝中的獨立積體電路晶片上。
在本文中所描述的技術中使用的訊息認證協定可使用命令序列的全部或部分以計算訊息認證碼。命令序列可包括用於命令、位址、臨時標誌、標頭資料以及其他要素的操作碼,且對於寫入操作,包括待寫入的資料。命令序列的全部或部分的真實性及完整性可由訊息認證協定來保密。
產生命令序列的主機上的互補邏輯使用共用的訊息認證參數或加密密鑰,以及正產生的命令序列,以產生具有命令序列的訊息認證碼。
通常,描述用於操作記憶體裝置的方法,所述方法包括將與記憶體區相關聯的訊息認證參數儲存於記憶體裝置上;接收用以識別記憶體操作及記憶體區的命令序列,以及用於命令序列的訊息認證碼;使用命令序列的全部或部分以及與記憶體區相關聯的訊息認證參數來計算訊息認證碼的值;以及若經計算的值與經接收的訊息認證碼不匹配,則阻止完成由命令序列進行識別的記憶體操作。
在審閱接下來的圖式、實施方式以及申請專利範圍之後可見本文中所描述的技術的其他態樣及優勢。
參考圖1至圖5提供本發明的實施例的詳細描述。
圖1為包括記憶體裝置1及經配置用於存取記憶體裝置1的主機2的記憶體系統的簡圖。主機2及記憶體裝置1包括互補邏輯,以用於在與記憶體裝置1的通信中利用訊息認證碼,所述訊息認證碼可用以認證在記憶體裝置1處經由通信鏈路85接收的命令序列。
主機2與記憶體裝置1之間的通信鏈路85可包括網路或匯流排系統,所述網路或匯流排系統包括主機2及記憶體裝置1上的介面電路,例如串列周邊介面(serial peripheral interface;SPI)匯流排、快速周邊元件互連協定(peripheral component interconnect express;PCIE)匯流排、乙太網路連接(ethernet connection)或與主機2及記憶體裝置1相容的其他系統。此外,鏈路85可為無線鏈路,所述無線鏈路由主機2及記憶體裝置1上的無線電電路支援或可由所述主機2及所述記憶體裝置1存取。在一些實施例中,鏈路可包括點對點連接協定(point to point connection protocol)。在一些實施例中,鏈路可支援封包交換協定(packet switched protocol),例如網際網路協定(internet protocol)。此外,在一些實施例中,鏈路可支援電路交換協定(circuit switched protocol)。
主機2可包括通用處理器、特殊用途處理器、經配置為記憶體控制器的處理器或使用或控制記憶體裝置1的其他處理器。記憶體裝置1及主機2可實施於單個電路板上。在其他實施例中,主機2可為實體或虛擬遠程伺服器(physical or virtual remote server)、基於雲的平台(cloud-based platform)或經由區域網路(local area network)連接至記憶體裝置1的伺服器。可使用各種主機組態。主機2包括安全邏輯(security logic)及處理器資源,用以支援與記憶體裝置1之間的訊息認證協定,且特別是訊息認證協定的源側部分(source side portion)。在一些實施例中,主機2可包括支援訊息認證協定的接收器側部分的資源,以處理與記憶體裝置1的通信。
記憶體裝置1包括記憶體,在此實例中包括記憶體陣列60。解碼器40耦接至多個存取線45,例如字元線(word line)、區塊選擇線(block select line)以及串選擇線(string select line)等,且沿記憶體陣列60中的列進行配置。頁緩衝器70耦接至記憶體陣列60中的多個存取線65,例如位元線,以用以從記憶體陣列60讀取資料及將資料寫入至記憶體陣列60。
輸入輸出(Input/Output;IO)電路5連接至鏈路85,在所述輸入輸出電路上接收用以識別記憶體操作及記憶體中經識別記憶體區的命令序列以及用於命令序列的訊息認證碼。輸入輸出電路5向位址線30、用以實施命令解碼器及控制器模組的控制電路10、頁緩衝器70以及解碼器40提供位址。
頁緩衝器70包括電路,所述電路配置為回應於用以設定待執行的記憶體存取操作的資料值及控制訊號來選擇性地向記憶體中的位元線施加寫入電壓(program voltages)及抑制電壓(inhibit voltages)。此外,頁緩衝器70可包括用於從記憶體陣列60讀取資料的感測電路。
資料經由資料線75及輸入輸出緩衝器90移入至頁緩衝器70並從頁緩衝器70移出,所述輸入輸出緩衝器又經由資料路徑30耦接至輸入輸出電路5。
在圖1中所繪示的實例中,控制電路10包括實施一或多個偏置配置狀態機(bias arrangement state machine)的控制模組,所述偏置配置狀態機控制經由裝置上的一或多個電壓供應產生或提供的供電電壓的應用,例如用於可選的寫入、擦除以及讀取操作集合的讀取電壓、驗證電壓以及寫入電壓。
控制電路10視需要耦接至輸入輸出緩衝器90及記憶體陣列60以及積體電路的其他元件。控制電路10中的控制模組包括邏輯以控制記憶體操作。
控制電路10可包括使用本領域中已知的特殊用途邏輯電路來實施的模組。在替代性實施例中,控制電路10可包括使用通用處理器來實施的模組,所述通用處理器可以在相同的積體電路上實現,所述積體電路執行電腦程式以控制記憶體裝置1的操作。在其他實施例中,特殊用途邏輯電路及通用處理器的組合可用於實施控制電路10中的模組。
在所說明的實施例中,參數暫存器組11包括於記憶體裝置1上,且耦接至電路10中的控制模組。參數暫存器組11中的參數暫存器可儲存用於多個寫入操作、抹除操作以及讀取操作的參數,所述操作回應於經由鏈路85從主機2接收的命令序列而執行。舉例而言,參數暫存器可儲存不同寫入及讀取操作中使用的寫入驗證電壓位準及讀取電壓位準。此外,參數暫存器可儲存寫入化演算法(例如增量步進脈衝寫入(incremental stepped pulse programming;ISPP)演算法)中使用的寫入序列的細節,例如脈衝高度、脈衝寬度以及脈衝量值增量(pulse magnitude increment)。
記憶體陣列60可包括經配置為NAND快閃記憶體的浮動閘極記憶胞或介電電荷捕獲記憶胞,其使用二維或三維陣列技術實施所述NAND快閃記憶體。在其他實例中,記憶體陣列60可經配置為NOR快閃記憶體或AND快閃記憶體。記憶體陣列60可包括其他類型的記憶體,包括唯讀記憶體、一次寫入記憶體、SRAM以及DRAM。記憶胞可包括可程式化電阻記憶胞(programmable resistance memory cells),舉例來說,基於例如金屬氧化物記憶體材料的相變記憶體(phase change memory)及ReRAM記憶體。亦可使用其他類型的記憶胞及記憶體架構。
在此實例中,記憶體裝置1中的記憶體包括記憶體陣列60,記憶體陣列60包括多個記憶體區Z0至記憶體區Z5,儘管可以是任何數目。所述記憶體區包括記憶體陣列60中位址空間的各別部分,對所述記憶體區的存取可藉由在位址空間的各別部分內的位址來識別。記憶體區可具有任何實際大小。記憶體區可具有對應於記憶體陣列60的實體分區的邊界,例如快閃記憶體中的抹除區塊邊界、對應於記憶體陣列中的可分割佈局區的扇區邊界、記憶體陣列中的平面、記憶體陣列中的記憶體組或其他類型的分區。記憶體區亦可具有對應於記憶體陣列60的邏輯分區的邊界,所述邏輯分區例如僅由不受實體分區限制的位址範圍所指定。
記憶體裝置1包括可操作地耦接至控制電路10的MAC安全引擎20,可包括:訊息認證參數儲存器,用於與記憶體中的一或多個記憶體區相關聯的一或多個訊息認證參數;使用與經識別的記憶體區相關聯的訊息認證參數儲存器中經接收的命令序列及訊息認證參數來計算與經接收的訊息認證碼匹配的值的邏輯,且若經計算的值與經接收的訊息認證碼不匹配,則阻止完成由命令序列進行識別的記憶體操作。出於存取記憶體陣列60的目的,MAC安全引擎20支援訊息認證碼的使用。MAC安全引擎20可為多個記憶體區中的多個單獨記憶體區中的每一者儲存唯一的訊息認證參數,例如MAC密鑰。在一些實施例中,多個記憶體區中超過一個記憶體區可共用訊息認證參數,實際上增大使用單個MAC密鑰可存取的位址範圍的大小。MAC安全引擎20可包括暫存器、緩衝器以及用作參數儲存的其他記憶體資源,包括密鑰及旗標,以及支援訊息認證碼(MAC)的值的計算的工作記憶體。通過使用邏輯電路、以通用處理器的軟體實現的邏輯以及邏輯電路與處理器的組合可以實現MAC安全引擎20。邏輯可包括根據標準化MAC協定及根據其他類型的MAC協定配置的狀態機。MAC安全引擎20可以可操作地耦接至控制電路10,或直接耦接至輸入輸出電路5,以接收傳入的命令序列及MAC。此外,MAC安全引擎20可直接地或經由控制電路10可操作地耦接至記憶體裝置1的元件,以便基於訊息認證協定的結果實現記憶體操作、阻止完成記憶體操作以及覆蓋(override)記憶體操作。
MAC可用於認證命令序列的來源及其完整性中的一或兩者。一種類型經稱為基於密鑰散列的訊息認證碼(keyed-hash based message authentication code;HMAC)。HMAC可具有兩個功能上相異的參數、訊息輸入(例如,在此情形下,所有命令序列的部分)以及僅訊息源及預期接收器知曉的秘密密鑰。由訊息源使用的HMAC函數產生一個值(MAC),所述值藉由壓縮秘密密鑰及訊息輸入形成。MAC通常與訊息一起發送至訊息接收器。接收器使用與發送器所使用相同的密鑰及HMAC函數來計算經接收訊息中的MAC,且將計算的結果與經接收的MAC比較。若兩個值匹配,則訊息已正確接收,且接收器保證發送器為共用密鑰的使用者團體的成員。參見FIPS PUB 198-1,「密鑰散列訊息認證碼(HMAC)(The Keyed-Hash Message Authentication Code (HMAC))」,2008年7月,其以引述的方式併入本文,如在本文中充分闡述。
另一個可用於產生MAC的加密機制包括對加密區塊鏈(cipher block chaining;CBC)技術的調適以提供真實性的保障。具體而言,初始化向量為零的CBC技術應用於待認證的資料(例如命令序列);產生CBC輸出的最終區塊,其可能被截斷,作為資料的訊息認證碼(MAC)。一種以此方式產生MAC的演算法通常稱作CBC-MAC。
稱作具有加密區塊鏈-訊息認證碼(Cipher Block Chaining-Message Authentication Code)的計數器(縮寫為CCM)的演算法可提供命令序列機密性及真實性保障。參見,NIST特別出版800-38C,「區塊加密操作模式的建議:用於認證及機密性的CCM模式(Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality)」,2004年5月,所述出版物以引入的方式併入本文,如在本文中充分闡述。
被稱作伽羅瓦計數器模式(Galois/Counter Mode;GCM)的另一演算法可用於對相關聯的資料進行認證加密。GCM由經允許的對稱密鑰區塊密碼構成,例如聯邦資訊處理標準(Federal Information Processing Standard;FIPS)版本197中規定的高級加密標準(Advanced Encryption Standard;AES)演算法。因此,GCM為AES演算法的操作模式。
GCM使用加密操作的計數器模式的變化來提供資料機密性的保障。GCM使用在二進位伽羅瓦(Galois)(亦即有限)域上定義的通用散列函數來提供機密資料中大檔案(例如,每次調用至多約64十億位元組(gigabytes))的真實性保障。GCM亦可為未加密的額外資料(實際上每次調用無限長度)提供認證保障。
若GCM輸入受限於未經加密資料,則GCM的特化結果稱作GMAC,其僅為輸入資料的認證模式。參見,NIST特別出版800-38D,「區塊加密操作模式的建議:伽羅瓦計數器模式(GCM)及GMAC(Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC」,2007年11月,所述出版物以引用的方式併入本文,如在本文中充分闡述。
需要共用私用密鑰的訊息認證協定的安全取決於共用密鑰的保密及管理。為此目的可使用各種技術。參見,NIST特別出版800-56A,修訂版2,「使用離散對數密碼學的雙智慧密鑰建立方案的建議(Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography)」,2013年5月,所述出版物以引入的方式併入本文,如本文中充分闡述。
一般而言,參看圖2,其描述由控制電路10及MAC安全引擎20中的邏輯及計算資源所支援的用於操作記憶體裝置1的方法。方法包括在記憶體裝置1上儲存分配至多個記憶體區中的每一記憶體區的訊息認證參數組,例如MAC密鑰。儲存於記憶體裝置1上的訊息認證參數可藉由命令序列中使用的位址,以與由位址範圍識別的對應記憶體區相關聯(步驟100)。舉例而言,用於存取記憶體區的位址可識別對應的所分配訊息認證參數。
記憶體裝置1可從主機2接收用於經識別的記憶體區的命令序列以及訊息認證碼(MAC)(步驟101)。為了支援訊息認證協定,命令序列可包括記憶體裝置1中的讀取或寫入命令、與用以識別記憶體區的記憶體操作相關聯的位址、以及寫入操作下的資料,所述讀取或寫入命令包括晶片致能控制訊號的斷言(assertion),該斷言由操作碼接續,所述操作碼包括位址及/或資料線上的位元組的序列,所述位元組的序列用以識別待執行的記憶體操作。此外,命令序列使用額外要素進行補充,例如臨時標誌(nonce)、例如相關聯資料的長度的參數、初始化值、用作封包標頭(packet header)的明文字串(plaintext string)等。
在接收命令序列後,或在接收命令序列時,使用從命令序列的全部或部分導出的向量且使用儲存於記憶體裝置1上的與經識別的記憶體區相關聯的訊息認證參數來計算MAC值(步驟102)。
記憶體裝置可啟動命令序列中經識別的記憶體操作的執行,且並行計算MAC值,使得操作中的每一者中涉及的延遲(latency)在時間上交疊。舉例而言,控制電路10可在完成計算MAC值之前開始由命令序列識別的記憶體操作。若MAC不匹配,則控制電路在開始記憶體操作執行之後禁能完成記憶體操作。在其他實例中,記憶體裝置1上的記憶體操作的啟動可經延遲或置於閒置狀態中,直至確認MAC碼,且所述完成記憶體操作可藉由阻止操作的啟動來進行阻止。
方法包括若在記憶體裝置1上計算的值與所接收的MAC不匹配,則阻止完成由命令序列進行識別的記憶體操作(步驟103)。
在命令序列包括針對經識別記憶體區的讀取命令的情況下,控制電路可藉由輸出錯誤資料,例如全部零或全部一,來阻止記憶體操作的完成。此外,在讀取命令的情況下,控制電路可藉由例如在輸出上設置高阻抗三態(high impedance tri-state)來禁能輸出驅動器而阻止完成記憶體操作。
在命令序列包括針對經識別記憶體區的寫入命令的情況下,控制電路可藉由在更改經識別記憶體區中的資料之前中止寫入操作來阻止記憶體操作的完成。
圖3為包括主機300及記憶體裝置301的系統的簡圖,所述記憶體裝置301包括記憶體裝置301中的MAC安全引擎305的實施例。
記憶體裝置301包括資料記憶體310中的多個資料區。資料區可包括資料記憶體310中的記憶體空間的相等大小部分。在一些實施例中,資料區可具有不同大小。在一些實施例中,所有資料記憶體310可經分配至由MAC協定保密的資料區。在其他實施例中,僅部分資料記憶體310可經分配至由MAC協定保密的記憶體區。
主機300與記憶體裝置301之間的通信鏈路用於發送命令序列的輸入參數302以及輸入MAC303。記憶體裝置301上包括命令介面304,在所述介面上接收識別記憶體操作及記憶體中的經識別記憶體區的命令序列的輸入參數302,以及用於命令序列的MAC303。命令介面304將向量從輸入參數302發送至向量儲存器320及安全引擎305。
安全引擎305耦接至密鑰儲存器321,所述密鑰儲存器321將密鑰[i]與資料記憶體310中的資料區相關聯。此外,安全引擎305可與計數器322連接,所述計數器322用於認證協定(authentication protocol)的一些實施方案中。
在所說明的實施例中,密鑰儲存器321儲存密鑰組,所述密鑰組以安全方式與主機300共用加密密鑰。密鑰組包括單獨密鑰[i],i為0至N,其中記憶體310中的記憶體區的數目等於N+1,每一密鑰[i]與多個記憶體區中對應的記憶體區相關聯。在一些實施例中,超過一個記憶體區可共用公共密鑰[i]。在一些實施例中,單獨密鑰可用於所有記憶體區。在一些實施例中,多個密鑰中的每一密鑰藉由邏輯,例如可組態的查找表(lookup table),以映射至多個記憶體區中一或多個對應的記憶體區。藉此,分配至每一密鑰的記憶體空間的量(亦即,一或多個記憶體區及不同大小的記憶體區)可經配置為適用特定的設置。密鑰儲存器321及映射表(mapping table)包括揮發性或非揮發性記憶體。
在一些實施例中,與記憶體310中的一或多個記憶體區相關聯的位址範圍可配置為使用儲存於記憶體裝置301上的參數,例如起始位址(starting address)、範圍參數(extent parameter)及結束位址(ending address)。在其他實施例中,可在製造中設置記憶體區邊界。
在圖3中所說明的實施例中,記憶體裝置301包括用以儲存認證旗標(旗標0至旗標N中的一者用於資料記憶體310中的每一資料區)的揮發性或非揮發性儲存器311。通常,安全引擎305可藉由以下操作來與記憶體裝置301上的控制電路協作:通過針對給定的命令序列的經計算MAC值來測試輸入MAC,且在匹配後設置旗標、針對對應資料區的旗標、或命令序列的主題區域。在由命令序列識別的記憶體操作完成之前,控制電路可測試旗標。若在記憶體操作完成之前未設置對應的旗標或多個旗標,則隨後如上文所述阻止其完成。
圖4為可由與圖3的系統類似的系統執行的控制序列的流程圖。序列包括執行用於經識別資料區的認證保密命令序列,包括計算MAC值(步驟400)。將計算的MAC值與所接收的MAC值相比較以判定認證協定是否通過(步驟401)。若計算的值與所接收的值匹配,則隨後針對經識別資料區設置認證通過旗標(步驟402)。若計算的值不匹配,則隨後針對經識別資料區重置認證通過旗標(步驟403)。此後,或在時間上與計算MAC值重疊(overlap),如圖中分支所示,執行經識別的操作,以執行對資料區的讀取命令(步驟404),或執行對資料區的寫入命令(步驟405)。在讀取操作完成之前,檢查對應資料區的認證通過旗標(步驟406)。若未設置通過旗標,則隨後藉由輸出所有為一或所有為零或三態至所述輸出驅動器來阻止讀取命令的完成(步驟407)。若設置通過旗標,則隨後經由記憶體裝置301上的輸入輸出電路來輸出讀取資料(步驟408)。
在寫入操作的完成之前,檢查對應資料區的認證通過旗標(步驟409)。若未設置通過旗標,則隨後藉由在更改經識別記憶體區中的資料之前中止寫入操作且視情況輸出非法命令通知(illegal command notification)來阻止寫入命令的完成(步驟410)。若在步驟409處設置通過旗標,則隨後完成對資料區的寫入資料操作(步驟411)。
圖5說明包括多晶片封裝的實施例,封裝包括安全晶片501及記憶體晶片521,其與命令序列的輸入參數502以及輸入MAC503通訊。在此實施例中,記憶體及訊息認證引擎配置於獨立積體電路晶片上。安全晶片501及記憶體晶片521可藉由控制鏈路511與輸入輸出鏈路512而在連接襯墊531至連接襯墊541、以及連接襯墊532至連接襯墊542之間連接,並具有給定組態所需要的互連佈線、接收器電路530與發射器電路540。控制鏈路511、輸入輸出鏈路512可以是保密封裝內部或以其他方式阻止外部存取的實體安全鏈路。舉例而言,在堆疊晶片實施例中,連接襯墊531至連接襯墊541、連接襯墊532至連接襯墊542可包括球柵陣列(ball grid array)或矽穿孔(through silicon vias)。
安全晶片501亦可包括記憶體控制器邏輯或其他功能性。在所說明的實施例中,安全晶片501包括類似於圖3中的元件,所述元件給予相同的附圖標號且不再描述。記憶體晶片521不直接耦接至主機500。記憶體晶片521可包括大規模NAND快閃裝置,或其他類型的大規模記憶體裝置,例如DRAM或SRAM以及其他,所述記憶體晶片包括多個資料區,如上述的資料區0至資料區N。在一些實施例中,多個記憶體裝置可經堆疊,通常耦接至安全晶片501,其中訊息認證協定的資料區主題(data zones subject)可位於堆疊中的一或多個記憶體裝置上。
在此描述的記憶體晶片包括安全引擎。資料記憶體可分成多個資料區,且每一資料區可具有必須設置的旗標以准許命令存取。每一旗標可回應於認證方案(authentication scheme)(例如訊息認證組合)來設置及重置。在一些實施例中,認證組合可包括認證引擎、密鑰、向量以及計數器值。
安全晶片及記憶體晶片或多個記憶體晶片可封裝於多晶片封裝中。安全晶片可包括安全引擎。記憶體晶片可經分成多個資料區,每一資料區具有認證旗標,其允許根據訊息認證方案通過特定命令進行存取。
本文描述說明由記憶體裝置執行的邏輯的多個流程圖。邏輯可使用儲存於電腦系統可存取的記憶體中的電腦程式所編碼的處理器來實現,且可由處理器、專用邏輯硬體(包括現場可程式積體電路)以及專用邏輯硬體與電腦程式的組合執行。如同本文中的所有流程圖,應瞭解,可組合、並行執行或以不同順序執行許多步驟而不影響所達成的功能。在一些情況下,如讀者瞭解,只要進行某些其他改變,則步驟的重新配置將達成相同結果。在其他情況下,如讀者瞭解,只要符合某些條件,則步驟的重新配置將達成相同結果。此外,將瞭解,本文中的流程圖僅展示與理解本發明有關的步驟,且將理解,可在所展示的那些步驟之前、之後以及之間執行用於實現其他功能的大量額外步驟。
儘管藉由參考上文詳述的較佳實施例及實例來揭露本發明,但應理解,這些實例意欲為例示性而非限制性意義。預期所屬領域中的技術人員將容易地想到各種修改及組合,所述修改及組合將在本發明的精神及以下申請專利範圍的範疇內。
1、301:記憶體裝置
2、300、500:主機
5:輸入輸出電路
10:控制電路
11:參數暫存器組
20、305:MAC安全引擎
30:位址線
40:解碼器
45、65:存取線
60:記憶體陣列
70:頁緩衝器
75:資料線
85:通信鏈路
90:輸入輸出緩衝器
100、101、102、103、400、401、402、403、404、405、406、407、408、409、410、411:步驟
302、502:輸入參數
303、503:輸入MAC
304:命令介面
310:資料記憶體
311:揮發性或非揮發性儲存器
320:向量儲存器
321:密鑰儲存器
322:計數器
501:安全晶片
511:控制鏈路
512:輸入輸出鏈路
521:記憶體晶片
530:接收器電路
531、532、541、542:連接襯墊
540:發射器電路
Z0、Z1、Z2、Z3、Z4、Z5:記憶體區
圖1為主機及包括本文所描述的訊息認證碼安全引擎的積體電路記憶體的簡圖。
圖2為利用訊息認證碼來操作例如圖1中所展示的記憶體裝置的方法的簡圖。
圖3為包括主機及由本文所描述的安全引擎支援的記憶體裝置的系統的簡化方塊圖。
圖4為操作與圖3的裝置類似的裝置的方法的簡圖。
圖5為包括耦接至多晶片封裝的主機的系統的簡化方塊圖,所述多晶片封裝包括經配置以執行訊息認證協定的安全晶片及記憶體晶片。
1:記憶體裝置
2:主機
5:輸入輸出電路
10:控制電路
11:參數暫存器組
20:安全引擎
30:位址線
40:解碼器
45、65:存取線
60:記憶體陣列
70:頁緩衝器
75:資料線
85:通信鏈路
90:輸入輸出緩衝器
Z0、Z1、Z2、Z3、Z4、Z5:記憶體區
Claims (10)
- 一種記憶體裝置,包括: 記憶體; 介面,在所述介面上接收用以識別記憶體操作及所述記憶體中記憶體區的命令序列,以及用於所述命令序列的訊息認證碼; 控制電路,可操作地耦接至所述介面,包括命令解碼器,以解碼經接收的所述命令序列,且執行經識別所述記憶體操作;以及 訊息認證引擎,可操作地耦接至所述控制電路,包括使用經接收的所述命令序列的全部或部分以及與所述經識別的所述記憶體區相關聯的經儲存的訊息認證參數來計算與經接收的所述訊息認證碼匹配的值的邏輯,且若經計算的所述值與經接收的所述訊息認證碼不匹配,則阻止完成由所述命令序列進行識別的所述記憶體操作。
- 如申請專利範圍第1項所述的記憶體裝置,更包括訊息認證參數儲存器,所述訊息認證參數儲存器用於與所述記憶體中一或多個記憶體區相關聯的多個訊息認證參數,其中所述多個訊息認證參數包括加密密鑰,每一加密密鑰映射至所述多個記憶體區中的一或多個對應記憶體區。
- 如申請專利範圍第1項所述的記憶體裝置,包括基於將經計算的所述值與所述接收的所述訊息認證碼進行匹配來控制多個記憶體區中對應記憶體區的認證旗標的狀態的邏輯,且回應於對應經識別的所述記憶體區的所述認證旗標的所述狀態來致能或禁能完成經識別的所述記憶體操作。
- 如申請專利範圍第1項所述的記憶體裝置,其中所述記憶體及所述訊息認證引擎配置於獨立積體電路晶片上,或配置於由實體安全鏈路連接的獨立積體電路晶片上。
- 如申請專利範圍第1項所述的記憶體裝置,更包括邏輯以 判定經計算的所述值是否與經接收的所述訊息認證碼匹配; 若經計算的所述值與經接收的所述訊息認證碼匹配,則設置記憶體區旗標;以及 若未針對經識別的所述記憶體區設置所述記憶體區旗標,則阻止完成所述記憶體操作。
- 如申請專利範圍第1項所述的記憶體裝置,其中所述命令序列包括用於命令以及臨時標誌的操作碼,且其中所述命令序列的所述全部或部分包括所述臨時標誌。
- 一種用於操作記憶體裝置的方法,包括: 將與記憶體區相關聯的訊息認證參數儲存於多個記憶體區中; 接收用以識別記憶體操作及所述記憶體區的命令序列,及用於所述命令序列的訊息認證碼; 使用所述命令序列的全部或部分以及與所述記憶體區相關聯的所述訊息認證參數來計算所述訊息認證碼的值;以及 若經計算的所述值與經接收的訊息認證碼不匹配,則阻止完成由所述命令序列進行識別的所述記憶體操作。
- 如申請專利範圍第7項所述的用於操作記憶體裝置的方法,更包括在完成計算所述值之前開始執行所述記憶體操作,且若經計算的所述值與經接收的訊息認證碼不匹配,則禁能完成所述記憶體操作。
- 如申請專利範圍第7項所述的用於操作記憶體裝置的方法,其中所述命令序列包括針對經識別的所述記憶體區的讀取命令,且阻止完成所述記憶體操作包括輸出錯誤資料或禁能輸出驅動器。
- 如申請專利範圍第7項所述的用於操作記憶體裝置的方法,其中所述命令序列包括針對所述記憶體區的寫入命令,且阻止完成所述記憶體操作包括在更改所述記憶體區中的資料之前中止所述寫入操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/541,009 | 2019-08-14 | ||
US16/541,009 US11050569B2 (en) | 2019-08-14 | 2019-08-14 | Security memory scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202107285A true TW202107285A (zh) | 2021-02-16 |
TWI775033B TWI775033B (zh) | 2022-08-21 |
Family
ID=74567904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109100448A TWI775033B (zh) | 2019-08-14 | 2020-01-07 | 安全記憶體方案 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11050569B2 (zh) |
CN (1) | CN112395651A (zh) |
TW (1) | TWI775033B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11722291B1 (en) * | 2021-08-11 | 2023-08-08 | Cadence Design Systems, Inc. | Device and method for low-latency and encrypted hardware layer communication |
CN114527933A (zh) * | 2022-01-06 | 2022-05-24 | 长江存储科技有限责任公司 | 存储器操作方法、存储器及存储系统 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2668278A1 (fr) * | 1990-10-19 | 1992-04-24 | Gemplus Card Int | Procede pour la ratification de codes secrets pour cartes a memoires. |
US7124302B2 (en) * | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5774545A (en) | 1996-03-28 | 1998-06-30 | Lucent Technologies Inc. | Method and apparatus for enhancing security in and discouraging theft of VLSI and ULSI devices |
US5991519A (en) * | 1997-10-03 | 1999-11-23 | Atmel Corporation | Secure memory having multiple security levels |
US6026016A (en) * | 1998-05-11 | 2000-02-15 | Intel Corporation | Methods and apparatus for hardware block locking in a nonvolatile memory |
AU7182701A (en) * | 2000-07-06 | 2002-01-21 | David Paul Felsher | Information record infrastructure, system and method |
US6795899B2 (en) * | 2002-03-22 | 2004-09-21 | Intel Corporation | Memory system with burst length shorter than prefetch length |
US7444682B2 (en) * | 2002-07-03 | 2008-10-28 | Macronix International Co., Ltd. | Security memory device and method for making same |
US20060059368A1 (en) * | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | System and method for processing by distinct entities securely configurable circuit chips |
JP4857284B2 (ja) * | 2004-12-21 | 2012-01-18 | サンディスク コーポレーション | 多目的コンテンツ制御をするコントロール構造の生成システム |
US8000502B2 (en) * | 2005-03-09 | 2011-08-16 | Sandisk Technologies Inc. | Portable memory storage device with biometric identification security |
US8639939B2 (en) * | 2006-07-07 | 2014-01-28 | Sandisk Technologies Inc. | Control method using identity objects |
JP2010066848A (ja) * | 2008-09-09 | 2010-03-25 | Toshiba Storage Device Corp | 記憶装置の管理方法及び記憶装置、並びに記憶システム |
US8328104B2 (en) * | 2009-03-30 | 2012-12-11 | Condel International Technologies Inc. | Storage device management systems and methods |
JP5604929B2 (ja) * | 2010-03-29 | 2014-10-15 | ソニー株式会社 | メモリ装置およびメモリシステム |
US9432348B2 (en) * | 2012-04-20 | 2016-08-30 | Ologn Technologies Ag | Secure zone for secure purchases |
JP2015122620A (ja) * | 2013-12-24 | 2015-07-02 | 富士通セミコンダクター株式会社 | 認証システム、認証方法、認証装置、及び、被認証装置 |
US9658787B2 (en) * | 2014-02-26 | 2017-05-23 | Macronix International Co., Ltd. | Nonvolatile memory data protection using nonvolatile protection codes and volatile mask codes |
US20150363333A1 (en) * | 2014-06-16 | 2015-12-17 | Texas Instruments Incorporated | High performance autonomous hardware engine for inline cryptographic processing |
US9779232B1 (en) * | 2015-01-14 | 2017-10-03 | Sprint Communications Company L.P. | Trusted code generation and verification to prevent fraud from maleficent external devices that capture data |
US10114958B2 (en) * | 2015-06-16 | 2018-10-30 | Microsoft Technology Licensing, Llc | Protected regions |
US10313129B2 (en) * | 2015-06-26 | 2019-06-04 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
US10715340B2 (en) * | 2016-08-04 | 2020-07-14 | Macronix International Co., Ltd. | Non-volatile memory with security key storage |
US10769299B2 (en) * | 2018-07-12 | 2020-09-08 | Capital One Services, Llc | System and method for dynamic generation of URL by smart card |
US11269786B2 (en) * | 2018-07-25 | 2022-03-08 | Intel Corporation | Memory data protection based on authenticated encryption |
-
2019
- 2019-08-14 US US16/541,009 patent/US11050569B2/en active Active
-
2020
- 2020-01-07 TW TW109100448A patent/TWI775033B/zh active
- 2020-04-08 CN CN202010269134.9A patent/CN112395651A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11050569B2 (en) | 2021-06-29 |
US20210051020A1 (en) | 2021-02-18 |
TWI775033B (zh) | 2022-08-21 |
CN112395651A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11411747B2 (en) | Nonvolatile memory device with regions having separately programmable secure access features and related methods and systems | |
US20070136576A1 (en) | Methods and apparatus for the secure handling of data in a microcontroller | |
EP3296912B1 (en) | Memory system and binding method between the same and host | |
US20210311643A1 (en) | Memory encryption engine interface in compute express link (cxl) attached memory controllers | |
US10809925B2 (en) | Configurable security memory region | |
TWI738097B (zh) | 具有密碼學組件的記憶體裝置 | |
US10691619B1 (en) | Combined integrity protection, encryption and authentication | |
US11722467B2 (en) | Secured communication from within non-volatile memory device | |
CN111131130A (zh) | 密钥管理方法及系统 | |
TWI775033B (zh) | 安全記憶體方案 | |
CN110089070B (zh) | 用于秘钥交换以在网络功能虚拟化环境中建立安全连接的技术 | |
US20220021544A1 (en) | Secure Serial Peripheral Interface (SPI) Flash | |
KR20150143149A (ko) | 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US10521360B1 (en) | Combined integrity protection, encryption and authentication | |
TWI737093B (zh) | 具有安全功能的記憶體晶片及記憶體裝置 | |
US20190205046A1 (en) | Memory controller, method for performing access control to memory module | |
US20230273977A1 (en) | Managing ownership of an electronic device | |
KR20210132721A (ko) | 네트워크에 액세스 시의 보안 통신 | |
TWI821052B (zh) | 用來進行儲存裝置的權限管理的電子裝置以及方法 | |
US11469890B2 (en) | Derived keys for connectionless network protocols | |
US20230222219A1 (en) | Storage controller, storage system, and method of operating storage device | |
TW202403773A (zh) | 半導體裝置及用以管理其之安全操作的系統與方法 | |
WO2023164227A1 (en) | Managing ownership of an electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |