TWI805486B - 記憶體裝置以及記憶體晶片的記憶體陣列資訊的讀取方法 - Google Patents
記憶體裝置以及記憶體晶片的記憶體陣列資訊的讀取方法 Download PDFInfo
- Publication number
- TWI805486B TWI805486B TW111134800A TW111134800A TWI805486B TW I805486 B TWI805486 B TW I805486B TW 111134800 A TW111134800 A TW 111134800A TW 111134800 A TW111134800 A TW 111134800A TW I805486 B TWI805486 B TW I805486B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- command
- information
- memory array
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 52
- 239000000872 buffer Substances 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 24
- 230000000694 effects Effects 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 2
- 230000001960 triggered effect Effects 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 13
- 238000012546 transfer Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 47
- 230000003993 interaction Effects 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 238000006467 substitution reaction Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- 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]
Abstract
本發明提供一種記憶體裝置,包含命令解碼器,實施安全邏輯以偵測命令序列從而讀取具有連續加密資料的記憶體陣列的安全區,且輸出/輸入用於資料的特定上下文。特定上下文的輸出/輸入可在虛擬週期進行以達成更多效能。主機介接可例如執行單個命令以得到加密資料及用於加密資料的特定上下文兩者。吾等技術可在系統匯流排上呈密文形式實施傳送資料且由與用於前述傳送操作中不同的Nonce或不同的對話密鑰加密。以此方式,資料將在不同對話處的匯流排上用不同密文表示,從而防禦重播攻擊。
Description
所揭露技術是關於積體電路記憶體裝置,支援安全儲存及檢索,且特定而言是關於自積體電路記憶體裝置內的安全區提供高效能安全讀取的命令解碼器序列。
在現代資訊儲存技術中,已產生許多不同類型的記憶體架構,諸如快閃、ReRAM、EPROM、PCM等等;各自提供數位資料的儲存且解決各種應用的不同需求及要求。
數位資料易於儲存及傳輸;易於存取,然而,使得儲存為數位資料的安全敏感資料容易經未授權方攔截及竊取。舉例而言,若數位資料儲存於外部記憶體中,則諸如駭客的未經授權方可在匯流排上探測以竊取資料。使問題更複雜的是,在應用中期望具有安全特徵及讀取/寫入效能兩者。
因此,期望提供改良的機制來安全以及有效地讀取所儲存的資料。
記憶體裝置包含命令解碼器,所述命令解碼器實施安全邏輯以偵測讀取記憶體陣列的安全區的命令序列且呈加密形式輸出讀取資料的連續流以及用於資料的特定上下文的輸出/輸入。一些實施方案可在虛擬週期輸出/輸入特定上下文以達成更多效能。特定上下文包含隨機數、虛擬週期單調計數器、固定值、唯一ID以及其任何組合中的一或多者。使用吾等所揭露的技術,介接主機可例如執行單個命令以得到加密資料及用於加密資料的特定上下文兩者。在一些實施例中,吾等所揭露的技術在系統匯流排上呈密文形式實施傳送資料且使用與用於前述傳送操作中不同的Nonce或不同的對話密鑰加密。以此方式,資料將在不同對話處的匯流排上使用不同密文表示;由此防禦重播攻擊。
在代表性的安全命令機制實施方案中,記憶體裝置包含:記憶體陣列,包含多個位元線;輸入/輸出介面,用於I/O資料單元;資料路徑電路,連接於記憶體陣列與輸入/輸出介面之間;以及用於維持特定上下文的電路,結合加密資訊使用。記憶體裝置具有安全引擎(或「密碼引擎」),包含用於使用特定上下文將自記憶體陣列所檢索的資訊進行加密且輸出所加密資訊以及特定上下文。命令解碼器實施邏輯以回應於在輸入/輸出介面處接收到的命令而判定,自主機接收到的命令資訊包含安全記憶體讀取命令,且以實質上同時觸發執行:(i)輸出自記憶體陣列讀取且由安全引擎加密的第一組資訊以及特定上下文;(ii)使用安全引擎對自記憶體陣列讀取的第二組資訊執行加密;以及(iii)將第三組資訊自記憶體陣列讀取至緩衝器中以由安全引擎加密。藉由重複此等活動
直至達到記憶體陣列中的位址的安全區域的指定末端,解碼器及安全引擎可能夠使得記憶體裝置提供加密資訊的連續輸出以及特定上下文。
在實施方案中,記憶體裝置的命令解碼器亦實施邏輯以執行偵測所接收到的命令序列中的命令碼欄位及有效負載。解碼器偵測命令碼欄位包含指示連續安全記憶體讀取的操作碼,在所述連續安全記憶體讀取中自記憶體陣列讀取的資訊在輸出之前由記憶體裝置的安全引擎來加密。命令解碼器亦偵測有效負載包含:指向指示記憶體陣列內的安全區的多個位址中的至少一者的位址,自記憶體陣列讀取資訊;以及可配置的虛擬週期,在所述虛擬週期中輸出特定上下文。可在各種實施方案中以不同方法用以配置虛擬週期,例如(1)。使用串行快閃可搜尋參數(Serial Flash Discoverable Parameter;SFDP),詳細描述可參考「應用註解SFDP介紹」公開案AN114,旺宏電子股份有限公司(2011年9月);(2)使用由記憶體晶片的製造商組態的唯讀資訊陣列;或(3)使用允許使用者定義的組態陣列。在一些實施方案中,可使用單獨命令。在一些實施方案中,可用以配置虛擬週期次數以實現不同的頻率。
一些記憶體裝置具有命令解碼器,該命令解碼器實施邏輯以執行偵測所接收到的命令序列中的命令碼欄位及有效負載。命令解碼器可偵測命令碼欄位,該命令碼欄位包含一操作碼,該操作碼指示一接收特定上下文輸入的操作。命令解碼器亦偵測有效負載,該有效負載包含含有特定上下文資訊的虛擬週期。特定上下文可儲存於記憶體裝置中以供安全引擎在加密自記憶體陣列讀取
的資訊時使用。
記憶體裝置的一些實施方案包含用於維持特定上下文資訊的電路,諸如用於產生虛擬亂數的電路、唯一ID及/或物理不可複製函數(physical unclonable function;PUF)碼。
安全引擎可包含用於實施在輸出之前自記憶體陣列讀取的資料的高級加密標準計數器(Advanced Encryption Standard Counter,AES-CTR)區塊模式加密或在輸出之前自記憶體陣列讀取的資料的伽羅瓦/計數器模式(Galois/Counter Mode;GCM)區塊模式加密的電路。
用於I/O資料單元的輸入/輸出介面可並行或1IO、2IO、4IO、8IO、1I2O、1I4O以及1I8O中的至少一者的串行/並行介面IO。
在另一代表性的實施方案中,吾等技術可提供用於自記憶體晶片的記憶體陣列執行資訊的高效能安全讀取的方法。方法可包含由記憶體晶片偵測自主機接收到的命令包含安全記憶體讀取命令。方法可更包含記憶體晶片:藉由實質上同時執行來觸發讀取、加密以及輸出連續「波」中的資訊的操作,輸出自記憶體陣列讀取且由晶片上安全引擎加密的第一組資訊以及用於將第一組資訊加密的特定上下文;使用安全引擎,對自記憶體陣列讀取的第二組資訊執行加密;以及將第三組資訊自記憶體陣列讀取至緩衝器中以由安全引擎加密。藉由重複此等活動直至達到記憶體陣列中的位址的安全區域的指定末端,方法可由此提供加密資訊以及特定上下文的連續輸出。
在進一步代表性的實施方案中,吾等技術可提供用於回
應於處理多個命令序列而自記憶體晶片的記憶體陣列執行資訊的高效能安全讀取的方法。方法可包含:由記憶體晶片偵測自主機接收到的命令包含安全記憶體讀取命令;以及觸發操作的執行包含:輸入由晶片上安全引擎加密的一組資訊以及用於將所述組資訊加密的特定上下文;使用安全引擎以對自記憶體陣列讀取的第二組資訊執行加密;將第三組資訊自記憶體陣列讀取至緩衝器中以由安全引擎加密。
在又一進一步代表性的實施方案中,吾等技術可提供用於回應於處理多個命令序列而自記憶體晶片的記憶體陣列執行資訊的高效能安全讀取的方法。方法可包含由記憶體晶片偵測自主機接收到的第一命令包含安全記憶體讀取請求命令,且作為回應觸發操作的執行包含輸入特定上下文以用於將自記憶體陣列讀出的資訊加密。方法亦可包含由記憶體晶片偵測自主機接收到的第二命令包含安全記憶體讀取回應命令,且作為回應觸發連續輸出加密資料的操作的執行,包含:使用特定上下文,輸出自記憶體陣列讀取且由晶片上安全引擎加密的第一組資訊;使用安全引擎以對自記憶體陣列讀取的第二組資訊執行加密;以及將第三組資訊自記憶體陣列讀取至緩衝器中以由安全引擎加密。
安全晶片可為安全記憶體或具有安全引擎的任何晶片的實施方案可實現。
在特定實施方案中,吾等技術可提供容量以簡化命令序列以執行安全連續讀取且節省執行時間。
在審閱接下來的圖式、詳細描述以及申請專利範圍之後可見本發明的其他態樣及優勢。
0128:「0」區塊
84、85、91、130:資料匯流排
97a、97A、97N:主機
98、T:認證標籤
100:記憶體裝置
105:輸入/輸出介面
108:命令解碼器
110:控制邏輯
111:狀態機
112:安全引擎
114:位址產生器
115:時脈產生器
116:密鑰
117:高電壓產生器
118:相關聯資料
119:感測放大器
121:虛擬亂數產生器
122:隨機數暫存器/Nonce
123:單調計數器
124:資料/明文
126:密文資料
124a、124b、124c、P:明文
126a、126b、126c:密文
141:X-解碼器
142:頁緩衝器
143:Y-解碼器
160:記憶體陣列/儲存陣列
171:輸出緩衝器
181:資料暫存器
182:SRAM緩衝器
195:輸入/輸出埠
301、302、303、304、400、400B、600、601、602、603:活動
311、401:虛擬週期
400C1、400D1:第一命令交互作用
400C2、400D2:第二命令交互作用
402:特定上下文
403:虛擬區段
404:MAC區段
700、900:資料流圖式
701a:計數器
702:區塊編密
704:電路
801、802、803、804、805、806、811、812、813、814、815、1001、1002、1003、1004、1201、1202、1203、1204、1205、1206、1207:區塊
800A、800B:流程圖
801、802、803、804、805:步驟
1102:預計數器區塊
1103:遞增函數
A:相關聯資料
C:密文
CIPH:區塊編密
CS#:晶片選擇信號
H:雜湊子密鑰
ICB 901a:輸入區塊
ICB 901a、CB2 901b、CBN 901N:計數器區塊
IV:初始化向量
SI:串列輸入資料/位址信號
SO:串列輸出資料信號
SCLK:串列時脈信號
圖1為根據實施例的包含具有安全命令解碼器的積體電路記憶體裝置的記憶體系統的簡化方塊圖。
圖2為示出類似於圖1的具有安全命令解碼器的積體電路記憶體裝置的實施例的實例操作的資料流圖式。
圖3為示出在主機與具有安全命令解碼器的積體電路記憶體裝置之間使用四個命令交互作用的實例的時序圖式。
圖4A為示出在主機與具有安全命令解碼器的積體電路記憶體裝置之間使用命令交互作用以交換隨機數資訊的實例的時序圖式。
圖4B為示出在主機與具有安全命令解碼器的積體電路記憶體裝置之間使用命令交互作用以交換特定上下文資訊的實例的時序圖式。
圖4C為示出使用多個命令組態以將特定上下文資訊自主機輸入至具有安全命令解碼器的積體電路記憶體裝置中的實例的時序圖式。
圖4D為示出在主機與具有安全命令解碼器的積體電路記憶體裝置之間使用多個命令組態且返回MAC以交換特定上下文資訊的實例的時序圖式。
圖5A為示出類似於圖1的在主機與具有安全命令解碼器的積體電路記憶體裝置之間交換隨機數資訊的實例的系統圖式。
圖5B為示出類似於圖1的在主機與具有安全命令解碼器的
積體電路記憶體裝置之間交換特定上下文的實例的系統圖式。
圖5C為示出類似於圖1的將由主機產生的特定上下文與具有安全命令解碼器的積體電路記憶體裝置交換的實例的系統圖式。
圖6為示出用於主機與具有安全命令解碼器的積體電路記憶體裝置之間的高效能安全讀取命令交互作用的連續加密製程的實例的時序圖式。
圖7為示出用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式的資料流圖式。
圖8A為示出用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式操作的流程圖。
圖8B為示出用於類似於圖1的系統的如本文中所描述的用於產生例如認證標籤的特定上下文以使用區塊編密計數器模式操作來驗證資料的完整性的製程的流程圖。
圖9為示出用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式的資料流圖式。
圖10為示出用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式操作的流程圖。
圖11為示出用於類似於圖1的系統的如本文中所描述的使用用於安全命令解碼器的特定上下文的GCM的經認證加密函數的資料流圖式。
圖12為示出用於類似於圖1的系統的如本文中所描述的用於產生例如認證標籤的特定上下文以使用區塊編密計數器模式操作來驗證資料的完整性的製程的流程圖。
參考圖1至圖12提供本技術的實施例的詳細描述。本技術解決藉由在不同對話處的匯流排上使用不同密文表示資料來防禦重播附接的問題。在實施例中,本技術可自半導體記憶體提供高效能安全讀取操作。
圖1為根據實施例的包含具有安全命令解碼器的積體電路記憶體裝置的記憶體系統的簡化方塊圖。記憶體裝置100的實施方案包含記憶體陣列160,所述記憶體陣列160可包括每單元在積體電路基底上儲存兩個或大於兩個位元的資料的多層級單元MLC。一些實施方案可使用單一層級單元。記憶體陣列160可實施使用二維或三維陣列技術實施的快閃、ReRAM、EPROM、PCM記憶體。記憶體陣列160的一個實施方案儲存呈未加密(明文)格式的資料,但根據所揭露的技術記憶體裝置100可提供呈經加密(密文)形式輸出的資料。記憶體陣列160的替代實施方案儲存呈經加密(密文)形式的資料。如本文中所描述的記憶體裝置同樣可使用多晶片模組、堆疊晶片以及其他組態來實施。記憶體裝置100可實施於單一積體電路晶片上、包含共同封裝中的一或多個積體電路的多晶片模組上或用以適合特定需要的多個晶片上。
實施所揭露技術,結合安全引擎112、控制邏輯110及安全命令解碼器108構成可使用包含狀態機及支援邏輯的專用邏輯電路來實施的控制器。控制邏輯110根據需要耦接至記憶體陣列160及記憶體裝置100的其他元件。控制邏輯110包含用於控制下文更詳細地描述的多個層級程式操作的邏輯電路。在替代實施例
中,控制邏輯包括可實施於相同積體電路上的通用處理器,所述通用處理器執行電腦程式以控制裝置的操作。在另外其他實施例中,可採用專用邏輯電路與通用處理器的組合來實施控制邏輯。
控制器的命令解碼器108及控制邏輯110用以針對儲存記憶體偵測及執行加密感知命令,諸如,偵測及執行讀取記憶體陣列連續加密資料中且輸出/輸入特定上下文的安全區的命令。一些實施方案可在虛擬週期輸出/輸入特定上下文以達成更多效能。在本文所描述的實施例中,控制器回應於在輸入/輸出介面105處接收到的命令而控制記憶體操作,所述記憶體操作包含偵測及執行命令以在儲存及檢索針對儲存記憶體160的資訊時進行加密或解密操作,且在I/O介面105處呈加密形式輸出結果。
將資料呈密文格式經由資料暫存器181寫入至SRAM緩衝器182中。狀態機111控制安全引擎112以解密密文,接著儲存於記憶體陣列160中。可在通電或特定命令時或在每個Nonce輸出之後產生Nonce(例如,在隨機數暫存器122中)。當控制邏輯110接收安全讀取命令時,控制邏輯110觸發隨機數暫存器122及輸出緩衝器171以輸出Nonce。同時,讀取資料自記憶體陣列讀取至安全引擎112中且使用Nonce(例如,儲存於隨機數暫存器122中)及使用例如AES-CTR演算法的共享密鑰進行加密。在完成資料加密之後,將資料發送至輸出緩衝器171,接著用密文格式輸出至主機97a。安全引擎112可在現行頁輸出以達成連續資料輸出的同時開始加密下一頁資料。所揭露技術包含在預先輸出加密資料以便達成高效能安全讀取操作的同時執行加密。
安全引擎112包含實施一或多個加密演算法的加密/解密
電路,所述加密演算法可使用IP核心、可程式邏輯及處理器、電路或其組合來實現。加密演算法的一些實例包含但不限於基於雜湊的訊息認證碼(hash-based message authentication code;HMAC)、呈伽羅瓦/計數器模式(GCM)模式的經認證加密標準(Authenticated Encryption Standard;AES)(亦即,AES-GCM)、呈編密區塊鏈訊息認證碼(Cipher Block Chaining Message Authentication Code;CBC-MAC)模式的利用計數器的經認證加密標準(亦即,AES-CCM)或類似者。對於關於AES-GCM及AES-CCM的背景資訊,可分別參考標題為「對區塊編密操作模式的建議:方法及技術(Recommendation for Block Cipher Modes of Operation:Methods and Techniques)」(//doi.org/10.6028/NIST.SP.800-38A)的NIST特定公開案800-38A、標題為「對區塊編密操作模式的建議:伽羅瓦/計數器模式(GCM)及GMAC(Recommendation for Block Cipher Modes of Operation:Galois/Counter Mode(GCM)and GMAC)」(//nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf)的NIST特定公開案800-38D;所述全部參考內容出於所有目的以引用的方式併入本文中。實施諸如伽羅瓦/計數器模式(GCM)的AES的區塊編密對位元的固定長度串執行加密及解密操作。此位元串的長度稱為「區塊大小」且128個位元(16個位元組)的大小用於實施方案中。然而,所揭露技術的實例加密及解密實施方案可支援區塊及128個、192個以及256個位元的密鑰大小。
隨機數暫存器122保存隨機數及/或其他上下文資訊,所
述上下文資訊定義供安全引擎112使用以加密自儲存陣列160讀出的資料及/或解密呈密文形式接收以寫入至陣列160中的資料的特定上下文。特定上下文資訊可經由連接至輸出緩衝器171而輸出。特定上下文資訊亦可經由介面105輸入且儲存於隨機數暫存器122中。
(虛擬)亂數產生器121為某些實施方案提供在記憶體裝置100(例如「晶片上」)內產生隨機數的能力。隨機數可在通電或特定命令時或在每個Nonce輸出之後產生。
繼續參考圖1,記憶體裝置100包含以下由記憶體裝置100內的匯流排彼此耦接的電路區塊。與記憶體陣列160相關聯的電路區塊包含記憶體陣列160、X-解碼器141、頁緩衝器142、Y-解碼器143、感測放大器119以及輸出緩衝器171。記憶體裝置100亦包含以下控制及支援電路區塊、位址產生器114、資料暫存器181、SRAM緩衝器182、控制邏輯110、時脈產生器115、狀態機111、安全引擎112、隨機數暫存器122以及HV產生器117。一些實施方案更包含(虛擬)亂數產生器121。
記憶體裝置100的實施方案包含介面105,所述介面105包含耦接至各別輸入/輸出插腳的若干輸入區塊。在一個實施例中,介面105為實施一組I/O埠195的串列介面,經由所述串列介面傳送命令、位址以及資料。介面105可基於串列周邊介面(Serial Peripheral Interface;SPI)匯流排規範或與其相容,在所述串列周邊介面匯流排規範中命令通道共用由位址及資料使用的I/O插腳。舉例而言,積體電路記憶體裝置100可包含使用插腳以用於接收及傳輸SPI匯流排信號的輸入/輸出埠。一個插腳可連接至輸入資
料線,所述輸入資料線攜載串列輸入資料/位址信號SI,同樣可用於命令。另一插腳或多個其他插腳可連接至一或多個輸出資料線,或輸出資料線攜載串列輸出資料信號SO。另一插腳可連接至攜載串列時脈信號SCLK的時脈線,所述時脈線耦接至時脈產生器115,所述時脈產生器115又耦接至命令解碼器108及控制邏輯110。控制邏輯110經可操作地耦接以在介面105的CS#輸入端子上接收晶片選擇信號CS#。命令或指令可例如經由輸入SI/SIO0區塊來輸入,且接著轉移至資料暫存器181及控制邏輯110。與狀態機111組合的控制邏輯110解譯且實行命令,諸如讀取、抹除或程式化操作。在實施例中,控制邏輯110亦自介面105的WP#/ACC區塊接收信號以執行寫入保護函數,且自介面105的HOLD#區塊接收信號以使時脈信號不進入狀態機111。
資料可經由耦接至資料暫存器181的SI/SIO0區塊、SO/SIO1區塊、WP#/ACC區塊以及HOLD#區塊輸入。資料暫存器181由資料匯流排84耦接至SRAM緩衝器182,以用於在由安全引擎112中的安全邏輯進行的解密操作期間臨時儲存。安全引擎112由資料匯流排84及資料匯流排85耦接至SRAM緩衝器182(且因此至資料暫存器181)。資料匯流排84及資料匯流排85可具有小於一個區塊大小的匯流排寬度,諸如一個位元組或一個字元,且供安全引擎112使用以循環通過儲存於區塊中的明文及密文,從而自一個緩衝器檢索資料、執行加密/解密操作以及將結果儲存於其他緩衝器中。安全引擎112亦可或可替代地由資料匯流排91耦接至介面105以視需要來回移動資料。
資料可經由耦接至輸出緩衝器171的SI/SIO0區塊、
SO/SIO1區塊、WP#/ACC區塊以及HOLD#區塊輸出。定義諸如隨機數(儲存於隨機數暫存器122中)的供安全引擎112使用以加密自儲存陣列160讀出的資料的特定上下文的上下文資訊可經由連接至輸出緩衝器171輸出。
對應於記憶體陣列160中的位置的位址可透過資料匯流排130自資料暫存器181供應至位址產生器114。位址隨後由X-解碼器141及Y-解碼器143解碼。在一些實施方案中,頁緩衝器142可耦接至記憶體陣列160以提供用於記憶體操作的臨時儲存。在讀取操作中,資料自記憶體陣列160經由感測放大器119傳送至輸出緩衝器171。對於寫入操作,資料自資料暫存器181傳送,在SRAM緩衝器182中緩衝以用於解密,且接著寫入至記憶體陣列160中。對於高電壓操作,例如對於寫入操作,啟動高電壓產生器117。亦可使用其他類型的介面,包含並列介面。特定積體電路記憶體裝置100上的I/O埠195可用以每介面時脈(例如,SCLK)週期並行地提供具有I/O資料寬度的輸出資料,對於一些實例,所述I/O資料寬度可為1個位元、4個位元、8個位元、16個位元、32個位元或大於32個位元。I/O介面105可包含FIFO緩衝器、移位暫存器緩衝器或其他支援電路以及傳輸器,所述傳輸器用於以埠時脈速率傳輸在埠上的介面處所接收的資料,對於SPI介面而言,所述埠時脈速率諸如SCLK速率。
輸入/輸出資料及控制信號在記憶體裝置100上的介面105、命令解碼器108以及控制邏輯110以及輸入/輸出埠195當中或在記憶體裝置100內部或外部的其他資料源中移動。在一些實施例中,輸入/輸出埠195可連接至晶片上主機電路,諸如通用
處理器或專用應用程式電路,或提供由記憶體陣列160支援的晶片上系統功能的模組的組合。
在圖1中所繪示的實例中,使用偏壓配置狀態機的控制邏輯110控制或機器控制經由電壓供應件產生或提供的供應電壓的應用,諸如用於本文所描述的記憶體裝置100操作方法中的一組可選程式及讀取操作的讀取、驗證及編程電壓。
一或多個參數暫存器(圖中未示)可包含於記憶體裝置100上且耦接至控制邏輯110。參數暫存器可儲存用於根據本文中所描述的製程可選的多個可選程式操作及多個可選讀取操作的參數。舉例而言,參數暫存器可儲存不同程式及讀取操作中使用的程式驗證電壓層級及讀取電壓層級。此外,參數暫存器可儲存諸如增量步進脈衝程式化ISPP演算法的程式化演算法中使用的程式序列的細節,諸如脈衝高度、脈衝寬度以及脈衝量值增量。
記憶體陣列160可包括浮動閘極記憶體單元或介電電荷捕獲記憶體單元,所述記憶體單元用以藉由建立對應於所儲存電荷量的多個程式化層級來每單元儲存多個位元,此又建立記憶體單元臨限電壓VT。本文中的描述基於使用電荷捕獲記憶體單元,諸如浮動閘極快閃記憶體及介電電荷捕獲快閃記憶體。技術可與其他記憶體單元技術一起使用。在其他實例中,記憶體單元可包括可程式化電阻記憶體單元,所述可程式化電阻記憶體單元用以藉由建立對應於電阻量的多個程式化層級而用於每單元多個位元。
在實施方案中,主機97A~主機97N可包括通用處理器、特殊用途處理器、用以作為記憶體控制器的處理器或使用記憶體裝置100的其他處理器。主機97A~主機97N的全部或部分可實
施於與記憶體相同的積體電路上。儘管上文已使用用於積體電路裝置的組件的所選群組進行繪示,但可存在許多替代、修改以及改變。舉例而言,組件中的一些可經擴展及/或組合。其他組件可插入至上述內容。取決於實施例,組件的配置可與其他替換物互換。此等組件的另外細節可貫穿本說明書且更特定言之在下文找到。
在已描述用於儲存記憶體的實例安全架構後,將分別參考以下來描述使用類似於圖1的安全機制進行的寫入及讀取操作的下一實例:圖2的資料流圖式;圖3及圖4A及圖4B的時序圖式;圖5A、圖5B以及圖5C的系統圖式及圖6的時序圖式;以及圖7、圖9以及圖11的資料流圖式;以及圖8A、圖8B、圖10以及圖12的流程圖。此等圖式僅為實例,其不應不恰當地限制本文中的申請專利範圍的範疇。本領域中具有通常知識者將認識到其他改變、修改以及替代。
接下來說明記憶體系統。
圖2為示出類似於圖1的具有安全命令解碼器的積體電路記憶體裝置的實施例的實例操作的資料流圖式。此圖式僅為實例,其不應不恰當地限制本文中的申請專利範圍的範疇。本領域中具有通常知識者將認識到其他改變、修改以及替代。在圖2中,主機97a由匯流排合作性地與記憶體裝置100耦接。在主機97a中,安全引擎存取呈明文形式的資料。主機安全引擎亦具有密鑰116的輸入。主機安全引擎進一步能夠接收例如來自記憶體裝置100的隨機數的特定上下文作為輸入。記憶體裝置100包含合作性地耦接至隨機數暫存器122、呈明文形式的資料124以及密鑰116的安全引擎112。資料124可例如儲存於圖1的記憶體陣列160中。圖
2中值得注意的是,安全引擎112可在匯流排上用不同密文得到相同資料的寫入及讀取。
圖3為示出在使用主機與具有安全命令解碼器的積體電路記憶體裝置之間的四個命令交互作用的實例的時序圖式。此圖式僅為實例,其不應不恰當地限制本文中的申請專利範圍的範疇。本領域中具有通常知識者將認識到其他改變、修改以及替代。在圖3中,在活動301中,主機發送要求「隨機數」命令。在活動302中,主機發送讀取「隨機數」回應命令以自記憶體裝置讀取Nonce。在活動303中,主機發送要求「安全讀取」命令以將資料的頁自記憶體陣列讀取至記憶體裝置。在活動304中,主機發送讀取「安全讀取」回應命令以讀取由記憶體裝置提供的資料。
圖4A為示出在主機與具有安全命令解碼器的積體電路記憶體裝置之間使用命令交互作用以交換隨機數資訊的實例的時序圖式。此圖式僅為實例,其不應不恰當地限制本文中的申請專利範圍的範疇。本領域中具有通常知識者將認識到其他改變、修改以及替代。與傳統SPI快閃讀取命令相容的命令協定。在圖4A中,在活動400中,隨機數可在虛擬週期401或虛擬週期的一部分處輸出,而不是使用額外命令獲得隨機數。(比較圖3的虛擬週期311,其中不傳送資料。)在實施要求隨機數及資料的命令的實施例中,資料將呈加密格式由記憶體裝置100連續輸出。
圖4B為示出在主機與具有安全命令解碼器的積體電路記憶體裝置之間使用命令交互作用以交換特定上下文資訊的實例的時序圖式。在活動400B中,特定上下文402可在虛擬週期或虛擬週期的一部分上輸出。特定上下文402可為隨機數、單調計數
器、固定值、唯一ID或其組合。舉例而言,由於每段通信對話具有不同數值,故單調計數器可用於防止重播攻擊。
圖4C為示出使用多個命令組態以將特定上下文資訊自主機輸入至具有安全命令解碼器的積體電路記憶體裝置中的實例的時序圖式。在圖4C中,第一命令交互作用400C1實施自主機輸入特定上下文402的「安全讀取」請求命令,且第二命令交互作用400C2實施「安全讀取」回應,使得加密資料可在主機與具有安全命令解碼器的積體電路記憶體裝置之間連續輸出。一些實施方案可借助第二命令結合第一命令連續觸發加密資料的輸出而得到高產出量。特定上下文402可為明文資訊或加密資訊。特定上下文402可包含MAC以認證主機。此外,特定上下文402在某些實施方案中可為密文以保護主機的要求。第二命令交互作用400C2可包含可由使用者或工廠配置的虛擬區段403。
圖4D為示出在主機與具有安全命令解碼器的積體電路記憶體裝置之間使用多個命令組態且返回MAC以交換特定上下文資訊的實例的時序圖式。在圖4D中,第一命令交互作用400D1實施自主機輸入特定上下文的「安全讀取」請求命令,且第二命令交互作用400D2實施「安全讀取」回應,使得加密資料以及MAC可在主機與具有安全命令解碼器的積體電路記憶體裝置之間連續輸出以交換特定上下文資訊。第二命令交互作用400D2亦可包含用於資料完整性的MAC區段404。第二命令交互作用400D2亦可包含可由使用者或工廠配置的虛擬區段403。
圖5A及圖5B為示出類似於圖1的具有安全命令解碼器的積體電路記憶體裝置的實施例的實例操作的系統圖式。此圖式
僅為實例,其不應不恰當地限制本文中的申請專利範圍的範疇。本領域中具有通常知識者將認識到其他改變、修改以及替代。在圖5A中,記憶體裝置100包含安全引擎112,安全引擎112協和地耦接至實施為(虛擬)亂數產生器(random number generator;RNG)121的隨機數產生器。隨機數可在每一次電源重置後產生,或每當隨機數輸出時由特定命令序列更新或改變。自記憶體晶片讀取的資料124可用安全引擎112加密且呈密文格式輸出至主機97a。主機97a接收加密資料,接著使用共享密鑰116及自記憶體裝置100的隨機數暫存器122輸出的Nonce對加密資料進行解密(用其自身的安全引擎)。資料124可例如儲存於圖1的記憶體陣列160中。
圖5B為示出類似於圖1的在主機與具有安全命令解碼器的積體電路記憶體裝置之間交換特定上下文的實例的系統圖式。在圖5B中,記憶體裝置100包含安全引擎112及單調計數器123。自記憶體裝置100讀取的資料可用安全引擎112加密且呈密文格式輸出至主機97a。主機97a自記憶體裝置100接收加密資料,接著使用自記憶體裝置100輸出/部分輸出的共享密鑰(Key)116及其他上下文來對加密資料進行解密。特定上下文可為隨機數、單調計數器、固定值、唯一ID或其組合。
圖5C為示出類似於圖1的將由主機產生的特定上下文與具有安全命令解碼器的積體電路記憶體裝置交換的實例的系統圖式。在圖5C中,主機97a接收加密資料,接著使用共用密鑰(Key)116及輸入/部分輸入特定上下文將資料解密至記憶體裝置100中。上下文可自主機輸入及亦輸入至安全引擎以對資料加密/解密。
接下來說明高效能安全讀取命令。
圖6為示出用於主機與具有安全命令解碼器的積體電路記憶體裝置之間的高效能安全讀取命令交互作用的連續加密製程的實例的時序圖式。此圖式僅為實例,其不應不恰當地限制本文中的申請專利範圍的範疇。本領域中具有通常知識者將認識到其他改變、修改以及替代。
在活動601中,當控制邏輯110接收安全讀取命令時,控制邏輯110觸發隨機數暫存器122及輸出緩衝器171以輸出Nonce。同時,讀取資料自記憶體陣列讀取至安全引擎112中且使用Nonce(例如,儲存於隨機數暫存器122中)及使用例如AES-CTR演算法的共享密鑰進行加密。在完成資料加密之後,將資料發送至輸出緩衝器171,接著用密文格式輸出至主機97a。在活動602中,安全引擎112可在現行頁輸出以達成連續資料輸出的同時開始加密下一頁資料。在活動602中,安全引擎已加密第二頁且開始加密自記憶體陣列160讀取的第三頁。輸出第二頁。所揭露技術包含在預先輸出加密資料以便達成高效能安全讀取操作的同時執行加密。
在已描述使用類似於圖1的安全機制進行的讀取操作的實例後,將參考圖7的資料流圖式700及圖8A的流程圖800A來描述實施在一些加密/解密安全引擎112實施例中使用的伽羅瓦/計數器模式加密的下一實例經認證加密服務。
接下來說明AES-CTR。
現在參考圖7及圖8A,圖7繪示用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式的資
料流圖式700。安全引擎112包含實施一或多個加密演算法的加密/解密電路,所述加密演算法可使用IP核心、可程式邏輯及處理器、電路或其組合來實現。加密演算法的一些實例包含但不限於呈伽羅瓦/計數器模式(GCM)模式的經認證加密標準(AES)(亦即,AES-GCM)、呈編密區塊鏈訊息認證碼(CBC-MAC)模式的利用計數器的經認證加密標準(亦即,AES-CCM)或類似者。對於關於AES-GCM及AES-CCM的背景資訊,可分別參考標題為「對區塊編密操作模式的建議:方法及技術(Recommendation for Block Cipher Modes of Operation:Methods and Techniques)」(//doi.org/10.6028/NIST.SP.800-38A)的NIST特定公開案800-38A。圖8A為示出用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式操作的流程圖。
在步驟801中,使用安全虛擬亂數產生器121來產生初始化向量(initialization vector;IV)(例如,Nonce 122)。在實施方案中,Nonce 122具有96個位元(或12個位元組)大小的長度。IV必須僅由發送器及接收器知道。
在步驟802中,Nonce 122接著與32位元計數器701a級聯。在一個實施方案中,計數器701a開始自0計數。在另一實施方案中,計數器701a開始自1計數。計數器在實施方案中使用計數器模式自0開始以用於加密明文。級聯串區塊具有128個位元大小且現可經加密。
在步驟803中,使用密鑰116利用經認證加密標準來加密由Nonce 122與計數器701a的級聯形成的區塊。此引起16個位元組或128個位元大小的串S。
在步驟804中,所得串S與儲存於明文資料124中的明文的第一區塊進行XOR,得到密文的第一區塊,且儲存於密文資料126中。
在步驟805中,計數器的值隨後增加1。
在步驟806中,對計數器的每個值及呈明文資料124的不同明文區塊重複步驟802至步驟805,形成密文資料126。
在一個實施方案中,對於明文的最後一個區塊,若明文區塊不為16的倍數(亦即,區塊大小),則所得經加密密文串s將分成等於明文的最後一個區塊長度的長度且接著與明文的最後一個區塊進行XOR。
在描述加密/解密安全引擎112可如何加密明文以形成密文後,將重新參考圖7的資料流圖式700且參考圖8B的流程圖800B來描述用於產生用於確保資料的完整性的特定上下文的製程。
用於產生包含認證標籤98的特定上下文的製程的一個實施方案基於先加密後MAC建構及韋格曼-卡特(Wegman-Carter)MAC。用於產生認證標籤的函數亦稱為GHASH。函數GHASH由GHASH(H,A,C)=Xm+n+1定義,其中輸入A及C分別為如上文所描述格式化的相關聯資料118及密文資料126,且變量Xi(i=0、...、m+n+1)由等式(1)定義:
現在參考圖7及圖8B;圖7為示出用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式的資料流圖式。圖8B為示出用於產生類似於圖1的系統的如本文中所描述的用於產生例如認證標籤的特定上下文以使用區塊編密計數器模式操作來驗證資料的完整性的製程的流程圖。
在步驟811中,雜湊子密鑰H藉由使用加密密鑰116加密空串而產生,亦即,H=Ek(「\x00」*16);其中「\x00」*16為16個位元組大小的空串。
在步驟812中,在一系列步驟中逐區塊地產生認證標籤。因此,對於相關聯資料118的每一區塊,串Xi由電路704使用以下計算產生,且此有助於最終認證標籤:Xi=GmulH(Xi-1 xor Ai),其中i=1、...、m,X0=0。此處,m僅為待認證的區塊(相關聯資料區塊)的數目。
在步驟813中,現在相關聯資料區塊Ai已包含於該認證簽中,當前認證標籤將由電路704處理,且n個密文區塊126a、密文區塊126b亦將包含於認證標籤中:Xi+m=GmulH(Xi+m-1 xor Ci),其中i=1,...,n。此處,n為密文的區塊的數目。
在步驟814中,相關聯資料A的長度的64位元表示與密文C的長度的64位元表示級聯。所得串作為參數供應至如下GmulH( ):S=GmulH=(Xm+n xor(len(A)∥len(C)))。
在步驟814中,使用以下來產生認證標籤T 128:T=S xor Ek(J0);其中J0由初始化向量(例如,Nonce 122)與計數器0(counter0)701a的級聯形成。
在一個實施方案中,認證標籤98可與來自加密函數的密
文的每一區塊的產生並行地產生。
在步驟815中,服務將密文C與對應認證標籤T的級聯作為最終輸出返回。
接下來說明伽羅瓦/計數器模式(GCM)。
現在參考圖9及圖10,圖9繪示用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式的資料流圖式900。安全引擎112包含實施一或多個加密演算法的加密/解密電路,所述加密演算法可使用IP核心、可程式邏輯及處理器、電路或其組合來實現。加密演算法的一些實例包含但不限於GCTR伽羅瓦/計數器模式。伽羅瓦/計數器模式的進一步描述可在標題為「對區塊編密操作模式的建議:伽羅瓦/計數器模式(GCM)及GMAC(Recommendation for Block Cipher Modes of Operation:Galois/Counter Mode(GCM)and GMAC)」(//nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf)的NIST特定公開案800-38D中發現。GCM中使用的變量包含:
在一個實施方案中,GCTR函數定義為具有128位元區塊大小、密鑰K、初始計數器區塊ICB 901的輸入、任意長度的位元串X以及位元長度len(X)的位元串Y的輸出的經批准的區塊編密CIPH:1.若X為空串,則返回空串為Y。2.讓n=[len(X)/128]。3.讓X 1 ,X 2 ,...,X n-1 ,指代位元串的唯一序列,使得
X 1 ,X 2 ,...,X n-1 為完整區塊。4.讓CB1=ICB。5.其中i=2至n,讓CBi=inc32(CBi-1)。6.其中i=1至n-1,讓Y i =X i ⊕ CIPHK(CBi)。7.讓(CIPHK(CBn))。8.讓。9.返回Y。 (2)
圖10為示出用於類似於圖1的系統的如本文中所描述的安全命令解碼器的區塊編密計數器模式操作的流程圖。
在步驟1001中,將任意長度X的輸入串最大限度地劃分為一連串區塊,使得序列中僅最右邊的串可為「部分」區塊。
在步驟1002中,在初始計數器區塊901輸入上迭代32位元遞增函數inc,以產生一連串計數器區塊ICB 901a、計數器區塊CB2 901b、計數器區塊CBN 901N;輸入區塊ICB 901a為序列的第一區塊。
在步驟1003中,將區塊編密702應用至計數器區塊901a至計數器區塊901N,且結果與輸入串X的分割區的對應區塊(或部分區塊)XOR。
在步驟1004中,結果的序列級聯以形成輸出GCTR,所述序列可應用於明文124a至明文124c以製造密文126a至密文126c。
現在參考圖11及圖12。圖11為示出用於類似於圖1的系統的如本文中所描述的使用用於安全命令解碼器的特定上下文的GCM的經認證加密函數的資料流圖式。圖12為示出用於類似於圖1的系統的如本文中所描述的用於產生例如認證標籤的特定上下文以使用區塊編密計數器模式操作來驗證資料的完整性的製程的流程圖。
如圖11及圖12中所繪示,在GCM的經認證加密函數中產生特定上下文的製程包含以下步驟:
1.讓H=CIPHK(0128)。
2.將區塊J0定義如下:
若len(IV)=96,則讓J0=IV∥031∥1。
3.讓C=GCTRK(inc32(J0),P)。.
5.將區塊S定義如下:S=GHASHH(A∥0v∥C∥0u∥[len(A)]64∥[len(C)]64)。
6.讓T=MSBt(GCTRK(J0,S))。
存在GCM的認證加密函數的三個輸入串:標示為P的明文、標示為A的額外認證資料(additional authenticated data;AAD)以及初始化向量IV(例如,Nonce 122)。GCM保護明文及額外認證資料AAD的真實性。存在來自GCM的認證加密函數的兩個輸出串:標示為C的密文,其位元長度與明文的位元長度相同;以及認證標籤,或標籤,標示為T。GCM的數學分量包含遞增函數incS 1103對區塊的乘法運算、GHASH函數以及GCTR函數。
圖12為示出用於類似於圖1的系統的如本文中所描述的用於產生例如認證標籤的特定上下文以使用區塊編密計數器模式操作來驗證資料的完整性的製程的流程圖。
在步驟1201中,藉由將區塊編密CIPHK應用於「0」區塊0128來產生GHASH函數的雜湊子密鑰H。
在步驟1202中,自初始化向量IV(例如,Nonce 122)產生預計數器區塊(J0)1102。
在步驟1203中,將32位元的遞增函數inc32應用於預計數器塊(J0)以產生用於調用明文P上的GCTR函數的初始計數器區塊。GCTR函數的此調用的輸出為密文C。
在步驟1204及步驟1205中,額外認證資料AAD及密文C各自附加有『0』位元的最小數目,可能無,使得所得串的位元長度為區塊大小的倍數。此等串的級聯附加有額外認證資料AAD
及密文C的長度的64位元表示([len(A)]64,[len(C)64])。
在步驟1206中,將GHASH函數應用於結果以產生單個輸出區塊。
在步驟1207中,使用具有在步驟1002中產生的預計數器塊(J0)的GCTR函數加密此輸出區塊,且結果經截斷為指定的標籤長度t(MSB t )以形成特定上下文(例如,認證標籤T)。
此區段中描述的方法的其他實施方案可包含非暫時性電腦可讀儲存媒體,其儲存可由處理器執行以執行上文所描述的方法中的任一者的指令。此區段中描述的方法的又一實施方案可包含一種包含記憶體及一或多個處理器的系統,所述一或多個處理器可操作以執行儲存於記憶體中的指令以執行上文所描述的方法中的任一者。
此區段中描述的方法的其他實施方案可包含非暫時性電腦可讀儲存媒體,其儲存可由處理器執行以執行上文所描述的方法中的任一者的指令。此區段中描述的方法的又一實施方案可包含一種包含記憶體及一或多個處理器的系統,所述一或多個處理器可操作以執行儲存於記憶體中的指令以執行上文所描述的方法中的任一者。
上文描述或提及的任何資料結構及碼根據電腦可讀儲存媒體上的許多實施方案而儲存,所述電腦可讀儲存媒體可為可儲存由電腦系統使用的碼及/或資料的任何裝置或媒體。此包含但不限於揮發性記憶體、非揮發性記憶體、特殊應用積體電路(application-specific integrated circuit;ASIC)、場可程式化閘極陣列(field-programmable gate array;FPGA)、磁性及光學儲存裝置
或現已知或之後開發的能夠儲存電腦可讀媒體的其他媒體,所述磁性及光學儲存裝置諸如磁碟機、磁帶、緊密光碟(compact disc;CD)、數位通用光碟或數位視訊光碟(digital versatile disc/digital video disc;DVD)。
位元組為許多積體電路邏輯及記憶體電路中使用的基本儲存單元且由8位元組成。基本儲存單元可具有其他大小,包含例如1位元、2位元、4位元、16位元等等。因此,上文闡述及在其他實例中本文中利用術語位元組所描述的安全引擎的描述大體上應用於具有儲存單元或儲存單元的集合的使用不同大小的儲存單元的電路,如將藉由替換術語位元組或位元組的集合所描述。另外,在一些實施例中,不同大小的儲存單元可用於單一命令序列,諸如與8位元儲存單元合併的一或多個4位元儲存單元。
本文中描述說明藉由記憶體控制器或藉由記憶體裝置執行的邏輯的多個流程圖。邏輯可使用儲存於電腦系統可訪問記憶體中的電腦程式編程的處理器實施,且可由處理器、包含場可程式化積體電路的專用邏輯硬體以及專用邏輯硬體及電腦程式的組合執行。如同本文中的所有流程圖,應瞭解,可組合、並行執行或以不同序列執行許多步驟而不影響所達成功能。在一些情況下,如讀者將瞭解,只要亦進行某些其他改變,步驟的重新配置將實現相同結果。在其他狀況下,如讀者將瞭解,只要符合某些條件,重新排列步驟將達成相同結果。此外,應瞭解,本文中的流程圖僅繪示相關於理解所揭露技術的步驟,且應理解,可在所繪示的步驟之前、之後以及之間執行用於實現其他功能的大量額外步驟。
本文中描述具有命令解碼器的裝置以及回應於包含安全
讀取命令的命令序列的方法。
本文中描述一種具有命令解碼器的裝置以及執行安全讀取命令的方法,包含回應於在輸入/輸出介面處接收到的命令而判定,自主機接收到的命令資訊包含安全記憶體讀取命令,且以實質上同時觸發執行:(i)輸出自記憶體陣列讀取且由安全引擎加密的第一組資訊以及特定上下文;(ii)使用安全引擎對自記憶體陣列讀取的第二組資訊執行加密;以及(iii)將第三組資訊自記憶體陣列讀取至緩衝器中以由安全引擎加密;由此提供加密資訊以及特定上下文的連續輸出。
本文中描述一種具有命令解碼器的裝置以及執行安全讀取命令的方法,包含:在接收到的命令序列中偵測包含:命令碼欄位及有效負載,所述命令碼欄位包含指示連續安全記憶體讀取的操作碼,在所述連續安全記憶體讀取中自記憶體陣列讀取的資訊在輸出之前由記憶體裝置的安全引擎來加密;偵測有效負載包含(i)指向指示記憶體陣列內的安全區的多個位址中的至少一個位址的位址,自記憶體陣列讀取資訊;以及(ii)可配置的虛擬週期,在所述虛擬週期中輸出特定上下文。
本文中描述一種具有命令解碼器的裝置以及執行安全讀取命令的方法,包含在接收到的命令序列中偵測包含:命令碼欄位及有效負載,所述命令碼欄位包含指示接收特定上下文的輸入的操作碼;以及偵測有效負載包含(i)含有特定上下文資訊的虛擬週期;其中將特定上下文儲存於記憶體裝置中,以供安全引擎在加密將自所述記憶體陣列讀取的資訊時使用。
雖然參考上文較佳實施例及實例來揭示本發明技術,但
應理解,此等實例意欲為說明性而非限制性意義。預期在所屬技術領域中具有通常知識者將容易地想到各種修改及組合,所述修改及組合將在本發明的精神及以下申請專利範圍的範疇內。
97a:主機
100:記憶體裝置
112:安全引擎
116:密鑰
122:隨機數暫存器/Nonce
124:資料/明文
Claims (18)
- 一種記憶體裝置,包括:記憶體陣列,包含多個位元線;輸入/輸出介面,用於I/O資料單元;資料路徑電路,連接於所述記憶體陣列與所述輸入/輸出介面之間;用於維持特定上下文的電路,結合加密資訊使用;安全引擎,包含用於使用所述特定上下文將自所述記憶體陣列檢索的資訊進行加密且輸出所加密的所述資訊以及所述特定上下文的電路;以及命令解碼器,用以回應於在所述輸入/輸出介面處接收到自主機發送的命令,當所述命令解碼器判定自該主機發送的該命令包含安全記憶體讀取命令時,則所述命令解碼器被觸發而在實質上同時執行:(i)輸出自所述記憶體陣列讀取且由所述安全引擎加密的第一組資訊以及所述特定上下文;(ii)經由所述安全引擎對自所述記憶體陣列讀取的第二組資訊執行加密;以及(iii)將第三組資訊自所述記憶體陣列讀取至緩衝器中以由所述安全引擎加密;其中重複活動(i)至(iii)直至達到所述記憶體陣列中的位址的安全區域的指定末端,從而提供已加密的資訊以及所述特定上下文的連續輸出。
- 如請求項1所述的記憶體裝置,所述命令解碼器進 一步執行:偵測已接收到的命令序列,所述已接收到的命令序列包含命令碼欄位及有效負載;其中所述命令碼欄位包含指示連續安全記憶體讀取的操作碼,在所述連續安全記憶體讀取中自所述記憶體陣列讀取的資訊在輸出之前由所述記憶體裝置的所述安全引擎來加密;其中所述有效負載包含:位址,指向指示要從所述記憶體陣列內讀取所述資訊的安全區的多個位址中的至少一個位址;以及可配置的虛擬週期,在所述虛擬週期中輸出所述特定上下文。
- 如請求項2所述的記憶體裝置,其中所述虛擬週期用以使用串行閃存可搜尋參數(Serial Flash Discoverable Parameter,SFDP)結構中的一或多者。
- 如請求項2所述的記憶體裝置,其中所述虛擬週期用以使用由工廠組態的唯讀資訊陣列中的一或多者。
- 如請求項2所述的記憶體裝置,其中所述虛擬週期用以使用允許使用者定義的組態陣列中的一或多者。
- 如請求項1所述的記憶體裝置,其中所述特定上下文包含以下中的一或多者:隨機數、虛擬週期單調計數器、固定值、唯一ID以及其組合。
- 如請求項6所述的記憶體裝置,其中所述單調計數器用於唯一識別通信對話,從而防止重播攻擊。
- 如請求項1所述的記憶體裝置,所述命令解碼器進 一步執行:偵測已接收到的命令序列,所述已接收到的命令序列包含命令碼欄位及有效負載;其中所述命令碼欄位包含指示接收所述特定上下文的輸入的操作的操作碼;以及其中所述有效負載包含含有特定上下文資訊的虛擬週期;其中將所述特定上下文儲存於所述記憶體裝置中,以供所述安全引擎在加密自所述記憶體陣列讀取的資訊時使用。
- 如請求項1所述的記憶體裝置,其中用於維持所述特定上下文的電路包含:用於產生虛擬亂數的電路。
- 如請求項1所述的記憶體裝置,其中用於維持所述特定上下文的電路包含:用於產生唯一識別符(ID)的電路。
- 如請求項1所述的記憶體裝置,其中用於維持特定上下文的電路包含:用於產生物理不可複製函數(physical unclonable function,PUF)碼的電路。
- 如請求項1所述的記憶體裝置,其中用於I/O資料單元的所述輸入/輸出介面實施1IO、2IO、4IO、8IO、1I2O、1I4O以及1I8O中的至少一者的串行/並行介面IO。
- 如請求項1所述的記憶體裝置,所述安全引擎更包含用於執行以下操作的電路: 在輸出之前自所述記憶體陣列讀取的資料的高級加密標準計數器(Advanced Encryption Standard Counter,AES-CTR)區塊模式加密。
- 如請求項1所述的記憶體裝置,所述安全引擎更包含用於執行以下操作的電路:在輸出之前自所述記憶體陣列讀取的資料的伽羅瓦/計數器模式(Galois/Counter Mode,GCM)區塊模式加密。
- 一種記憶體晶片的記憶體陣列資訊的讀取方法,包含:當所述記憶體晶片偵測自主機接收到的命令包含安全記憶體讀取命令時,則所述記憶體晶片被觸發而在實質上同時執行:(i)輸出自所述記憶體陣列讀取且由晶片上安全引擎加密的第一組資訊,以及用於將所述第一組資訊加密的特定上下文;(ii)經由所述安全引擎對自所述記憶體陣列讀取的第二組資訊執行加密;以及(iii)將第三組資訊自所述記憶體陣列讀取至緩衝器中以由所述安全引擎加密;以及重複活動(i)至(iii)直至達到所述記憶體陣列中的位址的安全區域的指定末端,從而提供加密資訊以及所述特定上下文的連續輸出。
- 一種記憶體晶片的記憶體陣列資訊的讀取方法,包含:由所述記憶體晶片偵測自主機接收到包含安全記憶體讀取請 求命令的第一命令,並且觸發執行的操作包含:輸入特定上下文以用於將自所述記憶體陣列讀出的資訊加密;以及由所述記憶體晶片偵測自主機接收到包含安全記憶體讀取回應命令的第二命令,並且觸發執行以連續輸出加密資料的操作包含:(i)輸出自所述記憶體陣列讀取且使用所述特定上下文由晶片上安全引擎加密的第一組資訊;(ii)使用所述安全引擎以對自所述記憶體陣列讀取的第二組資訊執行加密;以及(iii)將第三組資訊自所述記憶體陣列讀取至緩衝器中以由所述安全引擎加密。
- 如請求項16所述的記憶體晶片的記憶體陣列資訊的讀取方法,更包含輸出訊息認證碼(Message Authentication Code,MAC)以及連續輸出的所述加密資料。
- 如請求項16所述的記憶體晶片的記憶體陣列資訊的讀取方法,其中重複活動(i)至(iii)直至達到所述記憶體陣列中的位址的安全區域的指定末端,從而提供加密資訊的連續輸出。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263309649P | 2022-02-14 | 2022-02-14 | |
US63/309,649 | 2022-02-14 | ||
US17/824,226 US11960769B2 (en) | 2022-02-14 | 2022-05-25 | High performance secure read in secure memory providing a continuous output of encrypted information and specific context |
US17/824,226 | 2022-05-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI805486B true TWI805486B (zh) | 2023-06-11 |
TW202333077A TW202333077A (zh) | 2023-08-16 |
Family
ID=87803051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111134800A TWI805486B (zh) | 2022-02-14 | 2022-09-14 | 記憶體裝置以及記憶體晶片的記憶體陣列資訊的讀取方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11960769B2 (zh) |
TW (1) | TWI805486B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140137271A1 (en) * | 2012-11-15 | 2014-05-15 | Elwha LLC, a limited liability corporation of the State of Delaware | Data security and access tracking in memory |
TW201837774A (zh) * | 2015-10-06 | 2018-10-16 | 美商美光科技公司 | 用於執行安全操作之裝置及方法 |
US20200241768A1 (en) * | 2019-01-28 | 2020-07-30 | Macronix International Co., Ltd. | Configurable security memory region |
TW202042241A (zh) * | 2018-12-28 | 2020-11-16 | 美商美光科技公司 | 使用反及閘記憶體陣列之物理不可複製函數 |
TW202109546A (zh) * | 2019-08-21 | 2021-03-01 | 旺宏電子股份有限公司 | 用於執行安全命令的記憶體裝置及方法 |
US20210406411A1 (en) * | 2019-05-21 | 2021-12-30 | Micron Technology, Inc. | Bus encryption for non-volatile memories |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3892994B2 (ja) | 1999-07-23 | 2007-03-14 | スパンション インク | コマンドの暗号化を可能にした不揮発性メモリ |
US6957329B1 (en) | 2001-02-05 | 2005-10-18 | Ati Technologies, Inc. | System for encrypting data from multiple multimedia applications and method thereof |
US7532722B2 (en) | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US7392399B2 (en) * | 2003-05-05 | 2008-06-24 | Sun Microsystems, Inc. | Methods and systems for efficiently integrating a cryptographic co-processor |
TW200509700A (en) | 2003-06-20 | 2005-03-01 | Nagravision Sa | Decoder and system for processing pay-TV data and process for managing at least two decoders |
TWI274281B (en) | 2003-12-04 | 2007-02-21 | Ip First Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US9280773B1 (en) * | 2006-08-30 | 2016-03-08 | Qurio Holdings, Inc. | System and method for managing first party rights to content captured by third parties |
US20080320263A1 (en) * | 2007-06-20 | 2008-12-25 | Daniel Nemiroff | Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner |
US11258599B2 (en) * | 2016-08-04 | 2022-02-22 | Macronix International Co., Ltd. | Stable physically unclonable function |
US11081168B2 (en) * | 2019-05-23 | 2021-08-03 | Hefei Reliance Memory Limited | Mixed digital-analog memory devices and circuits for secure storage and computing |
-
2022
- 2022-05-25 US US17/824,226 patent/US11960769B2/en active Active
- 2022-09-14 TW TW111134800A patent/TWI805486B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140137271A1 (en) * | 2012-11-15 | 2014-05-15 | Elwha LLC, a limited liability corporation of the State of Delaware | Data security and access tracking in memory |
TW201837774A (zh) * | 2015-10-06 | 2018-10-16 | 美商美光科技公司 | 用於執行安全操作之裝置及方法 |
TW202042241A (zh) * | 2018-12-28 | 2020-11-16 | 美商美光科技公司 | 使用反及閘記憶體陣列之物理不可複製函數 |
US20200241768A1 (en) * | 2019-01-28 | 2020-07-30 | Macronix International Co., Ltd. | Configurable security memory region |
US20210406411A1 (en) * | 2019-05-21 | 2021-12-30 | Micron Technology, Inc. | Bus encryption for non-volatile memories |
TW202109546A (zh) * | 2019-08-21 | 2021-03-01 | 旺宏電子股份有限公司 | 用於執行安全命令的記憶體裝置及方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202333077A (zh) | 2023-08-16 |
US11960769B2 (en) | 2024-04-16 |
US20230315340A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10601583B2 (en) | Architecture and instruction set for implementing advanced encryption standard (AES) | |
US11856116B2 (en) | Method and apparatus for protecting embedded software | |
US8737606B2 (en) | Method and system for high throughput blockwise independent encryption/decryption | |
TWI402675B (zh) | 低等待時間的區塊密碼術 | |
TWI761896B (zh) | 用於執行安全命令的記憶體裝置及方法 | |
US20090316899A1 (en) | Encryption/decryption device and security storage device | |
US20230386541A1 (en) | Puf applications in memories | |
US11429751B2 (en) | Method and apparatus for encrypting and decrypting data on an integrated circuit | |
AU2018321922A1 (en) | Cryptographic systems and methods for extending apparent size of pools of truly random numbers | |
TWI546731B (zh) | 輸入-相依隨機數產生裝置及其方法 | |
US20170365191A1 (en) | Iterative encryption and random generation and serialization of cryptographic functions | |
US7657034B2 (en) | Data encryption in a symmetric multiprocessor electronic apparatus | |
CN116628776A (zh) | 存储器装置以及存储器芯片的存储器阵列信息的读取方法 | |
US8681996B2 (en) | Asymmetric key wrapping using a symmetric cipher | |
CN113055155A (zh) | 一种基于大数据平台的数据安全存储方法 | |
TWI805486B (zh) | 記憶體裝置以及記憶體晶片的記憶體陣列資訊的讀取方法 | |
US11050575B2 (en) | Entanglement and recall system using physically unclonable function technology | |
CN112395651A (zh) | 存储器装置及用于操作存储器装置的方法 | |
KR100509489B1 (ko) | 가변 폭의 데이터 패킷을 암호화하는 장치 및 방법 | |
CN115378595A (zh) | 一种配置fpga的码流加、解密实现方法、系统及设备 |