TWI775284B - 記憶系統、其控制方法及資訊處理系統 - Google Patents
記憶系統、其控制方法及資訊處理系統 Download PDFInfo
- Publication number
- TWI775284B TWI775284B TW110102237A TW110102237A TWI775284B TW I775284 B TWI775284 B TW I775284B TW 110102237 A TW110102237 A TW 110102237A TW 110102237 A TW110102237 A TW 110102237A TW I775284 B TWI775284 B TW I775284B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- key
- encrypted
- user
- host
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本發明是在於提供一種可邊保持每個使用者的資料的保密性邊提升儲存效率之記憶系統、其控制方法及資訊處理系統。
若根據實施形態,則記憶系統是具備第1非揮發性記憶體及控制器。
第1非揮發性記憶體是記憶以第1資料密鑰來加密第1資料的第1加密資料。
控制器是被構成為控制前述非揮發性記憶體。
前述控制器是當與寫入要求一起從主機接收的第2資料和前述第1資料相同,使用前述主機的使用者為與第1使用者不同的第2使用者時,以和前述第2使用者建立關聯的第2密鑰加密密鑰(key encryption key,KEK)來加密第1資料密鑰而取得第2加密資料密鑰,保存前述第2加密資料密鑰。
Description
本發明的實施形態是有關具備非揮發性記憶體的記憶系統、其控制方法及資訊處理系統。
[關聯申請案]
本案是享受以日本專利申請案第2020-134803號(申請日:2020年8月7日)作為基礎申請案的優先權。本案是參照此基礎申請案,包含基礎申請案的全部的內容。
近年來,具備非揮發性記憶體的記憶系統廣泛普及。
作為如此的記憶系統之一,有具備NAND型快閃記憶體的固態硬碟(SSD)為人所知。SSD是作為各種的計算裝置的主儲存器使用。
被儲存於儲存器的資料是有被加密的情形。例如,藉由以對每個使用者獨特的密鑰來將資料加密,可實現別的使用者無法取得某使用者的資料的保密性。
可是,最近被要求效率佳地將大量的資料保存於儲存器。作為用以改善儲存效率的技術,有重複排除(De-duplication)為人所知。
但,每個使用者的以密鑰來加密的資料是無法以複數的使用者共有,因此難以實現跨越複數的使用者的資料的重複排除。因此,需要可邊保持每個使用者的資料的保密性邊提升儲存效率的新的機能的實現。
本發明是在於提供一種可邊保持每個使用者的資料的保密性邊提升儲存效率之記憶系統、其控制方法及資訊處理系統。
若根據實施形態,則記憶系統是具備第1非揮發性記憶體及控制器。
第1非揮發性記憶體是記憶以第1資料密鑰來將第1資料加密的第1加密資料。
控制器是當與寫入要求一起從主機接收的第2資料與前述第1資料相同,使用前述主機的使用者為第1使用者時,以和前述第1使用者建立關聯的第1密鑰加密密鑰來將前述第1資料密鑰加密而取得第1加密資料密鑰,保存前述第1加密資料密鑰。
控制器是當前述第2資料與前述第1資料相同,使用前述主機的使用者為與前述第1使用者不同的第2使用者時,以和前述第2使用者建立關聯的第2密鑰加密密鑰來將前述第1資料密鑰加密而取得第2加密資料密鑰,保存前述第2加密資料密鑰。
控制器是當前述第2資料與前述第1資料不同,使用前述主機的使用者為前述第1使用者時,利用前述第2資料來產生第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得第2加密資料,將前述第2加密資料寫入至前述第1非揮發性記憶體,以前述第1密鑰加密密鑰來將前述第2資料密鑰加密而取得第3加密資料密鑰,保存前述第3加密資料密鑰。
控制器是當前述第2資料與前述第1資料不同,使用前述主機的使用者為前述第2使用者時,利用前述第2資料來產生前述第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得前述第2加密資料,將前述第2加密資料寫入至前述第1非揮發性記憶體,以前述第2密鑰加密密鑰來將前述第2資料密鑰加密而取得第4加密資料密鑰,保存前述第4加密資料密鑰。
以下,參照圖面說明有關實施形態。
(第1實施形態)
首先,參照圖1,說明包含第1實施形態的記憶系統的資訊處理系統1的構成。資訊處理系統1是包含主機裝置2(以下稱為主機2)及記憶系統。
記憶系統是被構成為在NAND型快閃記憶體5之類的非揮發性記憶體中寫入資料,從非揮發性記憶體讀出資料的半導體儲存裝置,亦被稱為儲存裝置。此非揮發性記憶體是包含分別可將資料寫入複數次的複數的記憶元件。記憶系統是例如作為具備NAND型快閃記憶體5的固態硬碟(Solid State Drive;SSD)3實現。以下是舉例說明有關記憶系統作為SSD3實現的情況,但記憶系統是亦可作為硬碟(hard disk drive;HDD)實現。或者,記憶系統是亦可作為具備複數的儲存裝置的儲存系統(或企業儲存器)實現。
主機2是亦可為將大量且多樣的資料保存於SSD3的儲存伺服器,或亦可為個人電腦。主機2是可藉由複數的使用者(例如使用者A、使用者B及使用者C)來使用。又,主機2是亦可為複數,各主機可藉由1人以上的使用者來使用。
SSD3是可作為主機2的儲存器使用。SSD3是可被內藏於主機2,或亦可經由纜線或網路來連接至主機2。
用以連接主機2與SSD3的介面是依據SCSI、Serial Attached SCSI(SAS)、ATA(AT Attachment)、Serial ATA(SATA)、PCI Express(PCIe)(註冊商標)、Ethernet(註冊商標)、Fibre channel、NVM Express(NVMe)(註冊商標)等。
SSD3是具備控制器4及NAND型快閃記憶體5。控制器4是可藉由System-on-a-chip(SoC)之類的電路來實現。
SSD3是亦可具備揮發性記憶體的隨機存取記憶體(RAM),例如動態隨機存取記憶體(DRAM)6。或,靜態隨機存取記憶體(SRAM)之類的RAM亦可被內藏於控制器4。另外,DRAM6亦可被內藏於控制器4。
在DRAM6等的RAM是設有例如從NAND型快閃記憶體5下載的韌體(FW)20的儲存區域。
NAND型快閃記憶體5是包含複數的區塊。各區塊是包含複數的頁。1個的區塊是作為最小的消去單位機能。區塊是亦被稱為「消去區塊」或「物理區塊」。各頁是包含被連接至同一字元線的複數的記憶格。1頁是資料寫入動作及資料讀出動作的單位。另外,亦可以字元線作為資料寫入動作及資料讀出動作的單位。
對於各區塊可容許的程式/抹除週期數是有上限(最大P/E週期數)。某區塊的1次的P/E週期是包含:用以將此區塊內的所有的記憶格形成消去狀態的消去動作、及將資料寫入至此區塊的頁各者的寫入動作。
控制器4是亦可包含主機介面(主機I/F)11、CPU12、NAND I/F13、DRAM介面(DRAM I/F)14等。該等主機I/F11、CPU12、NAND I/F13、DRAM I/F14是可經由匯流排10來相互連接。
控制器4是經由對應於Toggle DDR、Open NAND Flash Interface(ONFI)等的介面規格之NAND I/F13來電性連接至NAND型快閃記憶體5。NAND I/F13是作為NAND控制電路機能,被構成為控制NAND型快閃記憶體5。
NAND I/F13是經由複數的通道(Ch)來分別連接至NAND型快閃記憶體5內的複數的NAND型快閃記憶體晶片。藉由複數的NAND型快閃記憶體晶片並列驅動,可使對於NAND型快閃記憶體5的存取廣域化。
控制器4是作為記憶體控制器機能,被構成為控制NAND型快閃記憶體5。
控制器4是亦可作為快閃轉換層(flash translation layer;FTL)機能,被構成為實行NAND型快閃記憶體5的資料管理及區塊管理。藉由此FTL實行的資料管理是包含:(1)表示邏輯位址各者與NAND型快閃記憶體5的物理位址各者之間的對應關係的映射資訊的管理、(2)用以隱蔽頁單位的讀出/寫入動作及區塊單位的消去(抹除)動作的處理等。邏輯位址是為了位址指定SSD3而藉由主機2來使用的位址。
邏輯位址各者與物理位址各者之間的映射的管理是利用邏輯物理位址變換表21來實行。控制器4是使用邏輯物理位址變換表21,以特定的管理大小單位來管理邏輯位址各者與物理位址各者之間的映射。某邏輯位址對應的物理位址是表示此邏輯位址的資料被寫入的NAND型快閃記憶體5內的物理記憶位置。邏輯物理位址變換表21是亦可在SSD3的電源ON時從NAND型快閃記憶體5載入DRAM6。
往1頁的資料寫入是每1次的P/E週期,只能1次。因此,控制器4是將對應於某邏輯位址的更新資料寫入至別的物理記憶位置,而不是對應於此邏輯位址的儲存有以前的資料的物理記憶位置。然後,控制器4是將邏輯物理位址變換表21更新,而使此邏輯位址與此別的物理記憶位置建立關聯,藉此將以前的資料無效化。以下,將由邏輯物理位址變換表21參照的資料(亦即與邏輯位址建立關聯的資料)稱為有效資料。又,將與哪個的邏輯位址都未建立關聯的資料稱為無效資料。有效資料是之後有可能從主機2讀出的資料。無效資料是已無可能從主機2讀出的資料。
上述的物理位址及邏輯位址是用以控制NAND型快閃記憶體5或硬碟(HD)的概念。此物理位址是一般特定512位元組~4096位元組單位的記憶區域。又,此邏輯位址是依據各種的國際規格來定義。該等物理位址及邏輯位址是NAND技術的物理/邏輯位址,在此是稱為下位層的物理/邏輯位址。控制器4是例如在接近NAND型快閃記憶體5的控制的層,使用下位層的物理/邏輯位址。
控制器4是進一步在接近主機2的層,可管理用以特定更大的記憶區域的物理位址及邏輯位址(以下稱為上位層的物理/邏輯位址)。該等物理位址及邏輯位址是例如特定數千位元組(KB)~數百萬位元組(MB)單位的記憶區域。本實施形態是例如在後述的資料的重複排除及加密中,使用上位層的物理/邏輯位址。
亦即,控制器4是可被構成為例如在接近NAND型快閃記憶體5的層使用下位層的物理/邏輯位址,在比此更接近主機2的層是使用上位層的物理/邏輯位址。
區塊管理是包含不良區塊的管理、耗損平均技術(Wear Leveling)、垃圾回收(Garbage Collection)等。
主機I/F11是進行SSD3與SSD3的外部裝置的主機2的通訊之硬體介面電路。主機I/F11是作為從主機2接收各種的指令例如I/O指令、各種控制指令的電路機能。I/O指令是可包含寫入指令、讀出指令。控制指令是可包含取消映射關系指令(UNMAP Command)、無效資料刪除指令(Trim Command)、格式指令。格式指令是用以將SSD3全體取消映射(UNMAP)的指令。主機I/F11是亦作為將對應於指令的回應或資料發送至主機2的送訊電路機能。
DRAM I/F14是作為DRAM控制電路機能,被構成為控制DRAM6的存取。DRAM6的記憶區域是例如被分配成用以儲存FW20的區域、作為讀出/寫入緩衝器等利用的緩衝區域、及邏輯物理位址變換表21、物理位址-雜湊值對應表22、加密DEK表23等的資訊的快取區域。
物理位址-雜湊值對應表22及加密DEK表23是可在SSD3的電源ON時從NAND型快閃記憶體5載入DRAM6。物理位址-雜湊值對應表22是表示被加密儲存於NAND型快閃記憶體5的使用者資料的物理記憶位置的物理位址與其使用者資料的雜湊值的對應。加密DEK表23是用以加密保存資料密鑰(Data Encryption Key:DEK)的表,該資料密鑰是用以將使用者資料加密。有關物理位址-雜湊值對應表22及加密DEK表23的詳細是分別參照圖4及圖5後述。
控制器4是具有資料的重複排除及加密用的機能。
圖2是表示SSD3的資料的重複排除的例子。重複排除是使同一樣式的資料不重複寫入至NAND型快閃記憶體5的控制方法。
控制器4是解析應寫入至NAND型快閃記憶體5的使用者資料,自動地排除測出的重複資料。亦即,控制器4是當應寫入至NAND型快閃記憶體5的使用者資料為重複資料時,跳過該該使用者資料的寫入。
例如在定期性的備份處理中,與已被寫入至NAND型快閃記憶體5的使用者資料相同的使用者資料的寫入會頻繁發生。如此的情況,藉由重複排除,可大幅度削減資料轉送量與資料儲存容量。又,如NAND型快閃記憶體5般在P/E週期數有上限的硬體,藉由削減資料的寫入次數,可拉長壽命。
在圖2中,顯示根據物理位址的資料配置51與根據邏輯位址的資料配置52,資料的重複排除的例子。根據物理位址的資料配置51是表示NAND型快閃記憶體5上的資料(資料型樣)的物理性的記憶位置。根據邏輯位址的資料配置52是表示藉由主機2來識別的資料的邏輯性的記憶位置。
具體而言,在根據物理位址的資料配置51中,在物理位址“1”儲存資料型樣A。在物理位址“2”儲存資料型樣B。在物理位址“3”儲存資料型樣C。並且,物理位址“4”是未使用的狀態。
相對於此,在根據邏輯位址的資料配置52中,在邏輯位址“1”儲存資料型樣A。在邏輯位址“2”儲存資料型樣B。在邏輯位址“3”儲存資料型樣C。在邏輯位址“4”儲存資料型樣B。
因此,資料型樣B是物理性地只被儲存於1處(亦即物理位址“2”),但從主機2是被識別為被儲存於2處(亦即邏輯位址“2”及“4”)。
控制器4是可利用邏輯物理位址變換表21來管理如此的邏輯位址與物理位址的關係。
圖3是表示邏輯物理位址變換表21的一構成例。邏輯物理位址變換表21是表示邏輯位址與NAND型快閃記憶體5的物理位址之間的映射。邏輯物理位址變換表21是例如作為查詢表格(LUT)實現。
在邏輯物理位址變換表21所示的邏輯位址與物理位址之間的映射是對應於區塊等的資料的連貫。亦即,控制器4是可利用邏輯物理位址變換表21,以區塊單位來管理邏輯位址與物理位址之間的映射。區塊的大小是例如數KB~數MB。
圖3所示的邏輯物理位址變換表21是對應於圖2所示的根據物理位址的資料配置51及根據邏輯位址的資料配置52。更具體而言,邏輯物理位址變換表21是表示(1)邏輯位址“1”與物理位址“1”的映射、(2)邏輯位址“2”與物理位址“2”的映射、(3)邏輯位址“3”與物理位址“3”的映射、及(4)邏輯位址“4”與物理位址“2”的映射。
藉此,複數的邏輯位址“2”及“4”會與1個的物理位址“2”(亦即資料型樣B)建立關聯,因此不物理性地使資料型樣B儲存於2個的位置解決。亦即,可迴避重複同樣的資料型樣來儲存於NAND型快閃記憶體5。
再度參照圖1。CPU12是被構成為控制主機I/F11、NAND I/F13、及DRAM I/F14的處理器。CPU12是藉由實行被下載於DRAM6的FW20來進行各種的處理。亦即,FW20是用以控制CPU12的動作的控制程式。CPU12是除了上述的FTL的處理以外,還可實行用以處理來自主機2的各種的指令的指令處理等。另外,FTL處理及指令處理的一部分或全部是亦可藉由控制器4內的專用硬體來實行。
CPU12為了進行資料的重複排除及加密,例如可作為寫入控制部121、讀出控制部122、重複控制部123、DEK產生部124、KEK產生部125、DEK加密/解密部126及資料加密/解密部127機能。CPU12是例如藉由實行FW20,作為該等各部機能。另外,該等各部的機能的至少一部分是亦可藉由硬體(電路)來實現。或者,亦可該等各部的機能的一部分藉由硬體來實現,其他的機能藉由實行FW20的CPU12來實現。
寫入控制部121是經由主機I/F11來從主機2接受寫入指令。寫入控制部121為了對應於寫入指令的寫入動作,可控制重複控制部123、DEK產生部124、KEK產生部125、DEK加密/解密部126及資料加密/解密部127。
讀出控制部122是經由主機I/F11來從主機2接受讀出指令。讀出控制部122為了對應於讀出指令的讀出動作,可控制KEK產生部125、DEK加密/解密部126及資料加密/解密部127。
讀出控制部122是從NAND型快閃記憶體5讀出對應於讀出指令的加密資料。又,讀出控制部122是從加密DEK表23取得對應於此加密資料的加密DEK。
DEK產生部124是利用與寫入指令一起接收的使用者資料來產生用以將此使用者資料加密的DEK。DEK是使用來自使用者資料本身(換言之對應於使用者資料)的值,隨機變數之類不來自使用者資料的值是不被使用。DEK是例如可使用從使用者資料導出的雜湊值或Hash-based Message Authentication Code(HMAC)值。DEK產生部124是例如對使用者資料施加第1雜湊函數來產生雜湊值。
重複控制部123是判定與寫入指令一起接收的使用者資料是否與對應於被儲存於NAND型快閃記憶體5的加密資料之平文的資料(以下亦稱為保存完了資料)相同。亦即,重複控制部123是判定接收的使用者資料是否為重複資料。另外,所謂某加密資料對應於某平文的資料是意思藉由以DEK來加密該平文的資料而取得該加密資料的關係。
更具體而言,重複控制部123是算出接收的使用者資料的雜湊值。然後,重複控制部123是判定算出的雜湊值是否與對應於被儲存於NAND型快閃記憶體5的加密資料之平文的資料的雜湊值一致。當2個的雜湊值一致時,重複控制部123是判斷成接收的使用者資料為重複資料。另一方面,當2個的雜湊值不一致時,重複控制部123是判斷成接收的使用者資料不是重複資料。對應於被儲存於NAND型快閃記憶體5的加密資料之平文的資料的雜湊值是例如以物理位址-雜湊值對應表22來管理。
圖4是表示藉由重複控制部123來使用的物理位址-雜湊值對應表22的一構成例。物理位址-雜湊值對應表22是可包含對應於複數的物理位址的複數的登錄(entry)。各登錄是包含物理位址的場及雜湊值的場。
在對應於某物理位址的登錄,物理位址的場是表示其物理位址。雜湊值的場是表示對應於被儲存於該物理位址的加密資料之平文的資料(使用者資料)的雜湊值。
在圖4所示的例子中,對應於被儲存於物理位址“1”的加密資料之使用者資料的雜湊值是“0980340”。對應於被儲存於物理位址“2”的加密資料之使用者資料的雜湊值是“3412355”。又,對應於被儲存於物理位址“3”的加密資料之使用者資料的雜湊值是“5154131”。
另外,在對應於物理位址“4”的登錄,雜湊值的場是未設定值。這是因為在物理位址“4”未儲存有效資料。
資料加密/解密部127是進行資料的加密及解密。資料加密/解密部127是例如將應經由NAND I/F13來寫入至NAND型快閃記憶體5的資料加密。又,資料加密/解密部127是將經由NAND I/F13來從NAND型快閃記憶體5讀出的資料(亦即加密資料)解密。
更具體而言,資料加密/解密部127是與寫入指令一起接收的使用者資料不是重複資料時,以DEK來將使用者資料加密,取得加密資料。加密資料是經由NAND I/F13來寫入至NAND型快閃記憶體5。
另外,前述的重複控制部123是為了判定接收的使用者資料是否為重複資料,而亦可算出此加密資料的雜湊值。此情況,重複控制部123是若算出的雜湊值含在物理位址-雜湊值對應表22的任一個的登錄中,則判斷成接收的使用者資料為重複資料。又,重複控制部123是若算出的雜湊值在物理位址-雜湊值對應表22的哪個的登錄中也未含,則判斷成接收的使用者資料不是重複資料。
使用平文的資料的使用者資料的雜湊值時,依雜湊值的強度,由雜湊值來特定原本的使用者資料的可能性有。但,使用加密資料的雜湊值時,難以從雜湊值特定原本的使用者資料。因此,在是否為重複資料的判定,藉由使用加密資料的雜湊值,可更提高安全性。
又,資料加密/解密部127是以DEK來將從NAND型快閃記憶體5讀出的加密資料解密,而取得平文的資料。加密資料為按照讀出指令來讀出的資料時,被取得的平文的資料是被發送至主機2。
KEK產生部125是產生與使用主機2的使用者建立關聯的密鑰加密密鑰(Key Encryption Key:KEK)。KEK是為了將DEK加密而使用的密鑰。
KEK產生部125是例如使用在主機2上使用者所輸入的密碼來產生KEK。KEK產生部125是例如產生密碼的雜湊值作為KEK。
DEK加密/解密部126是以KEK來將DEK加密,取得加密DEK。加密DEK是與以寫入指令所指定的邏輯位址建立關聯,而被保存於加密DEK表23。
又,DEK加密/解密部126是以KEK來將從加密DEK表23取得的加密DEK解密,而取得DEK。此DEK是被用在資料加密/解密部127之加密資料的解密。
圖5是表示加密DEK表23的一構成例。加密DEK表23是包含對應於1個以上的邏輯位址之1個以上的登錄。各登錄是包含邏輯位址的場及加密DEK的場。
在對應於某邏輯位址(以下稱為第1邏輯位址)的登錄,邏輯位址的場是表示第1邏輯位址。
加密DEK的場是表示對應於第1邏輯位址的加密DEK。應將使用者資料儲存於第1邏輯位址時,控制器4是以DEK來將使用者資料加密,將加密後的使用者資料寫入至NAND型快閃記憶體5。加密DEK是以對應的使用者的KEK來將被用在此使用者資料的加密之DEK加密者。
以下,具體說明有關在NAND型快閃記憶體5儲存以第1DEK來將第1資料加密後的第1加密資料時,從主機2接收要求第2資料的寫入的寫入指令時的各部的動作,作為一例。第1DEK是利用第1資料來產生的密鑰。
寫入控制部121是從主機2接收要求第2資料的寫入的寫入指令。第2資料是與寫入指令一起接收。第2資料是應寫入至NAND型快閃記憶體5的使用者資料。
重複控制部123是判定第2資料是否與第1資料相同。當第2資料與第1資料相同時,DEK產生部124是利用第2資料來產生第1DEK。KEK產生部125是當使用主機2的使用者為第1使用者時,產生與第1使用者(例如使用者A)建立關聯的第1KEK。KEK產生部125是例如使用在主機2上藉由第1使用者所輸入的第1密碼來產生第1KEK。DEK加密/解密部126是以第1KEK來將第1DEK加密,而取得第1加密DEK。第1加密DEK是例如被保存於加密DEK表23。又,KEK產生部125是當使用主機2的使用者為第2使用者時,產生與第2使用者(例如使用者B)建立關聯的第2KEK。KEK產生部125是例如使用在主機2上藉由第2使用者所輸入的第2密碼來產生第2KEK。DEK加密/解密部126是以第2KEK來將第1DEK加密,而取得第2加密DEK。第2加密DEK是例如被保存於加密DEK表23。
另一方面,當第2資料與第1資料不同時,DEK產生部124是使用第2資料來產生第2DEK。第2DEK是與被用在第1資料的加密的第1DEK不同。資料加密/解密部127是以第2DEK來將第2資料加密,而取得第2加密資料。寫入控制部121是將第2加密資料寫入至NAND型快閃記憶體5。KEK產生部125是當使用主機2的使用者為第1使用者時,產生與第1使用者建立關聯的第1KEK。DEK加密/解密部126是以第1KEK來將第2DEK加密,而取得第3加密DEK。第3加密DEK是例如被保存於加密DEK表23。又,KEK產生部125是當使用主機2的使用者為第2使用者時,產生與第2使用者建立關聯的第2KEK。DEK加密/解密部126是以第2KEK來將第2DEK加密,而取得第4加密DEK。第4加密DEK是例如被保存於加密DEK表23。
又,讀出控制部122是接收要求第2資料的讀出的讀出指令。
當第2資料與第1資料相同時,讀出控制部122是從NAND型快閃記憶體5讀出第1加密資料。DEK加密/解密部126是當使用主機2的使用者為第1使用者時,對應於第1加密資料,以第1KEK來將被保存於加密DEK表23的第1加密DEK解密,而取得第1DEK。又,DEK加密/解密部126是當使用主機2的使用者為第2使用者時,對應於第1加密資料,以第2KEK來將被保存於加密DEK表23的第2加密DEK解密,而取得第1DEK。而且,資料加密/解密部127是以第1DEK來將讀出的第1加密資料解密。藉由解密而取得的第1資料(=第2資料)是被發送至主機2。
另一方面,當第2資料與第1資料 不同時,讀出控制部122是從NAND型快閃記憶體5讀出第2加密資料。DEK加密/解密部126是當使用主機2的使用者為第1使用者時,對應於第2加密資料,以第1KEK來將被保存於加密DEK表23的第3加密DEK解密,而取得第2DEK。又,DEK加密/解密部126是使用主機2的使用者為第2使用者時,對應於第2加密資料,以第2KEK來將被保存於加密DEK表23的第4加密DEK解密,而取得第2DEK。而且,資料加密/解密部127是以第2DEK來將讀出的第2加密資料解密。藉由解密而取得的第2資料是被發送至主機2。
另外,在接收要求上述的第2資料的寫入的寫入指令之前,寫入控制部121是藉由使用主機2的第2使用者(例如使用者B)來從主機2接收要求第1資料的寫入的寫入指令。第1資料是與寫入指令一起接收。第1資料是應寫入至NAND型快閃記憶體5的使用者資料。
DEK產生部124是使用第1資料來產生第1DEK。資料加密/解密部127是以第1DEK來將第1資料加密,而取得第1加密資料。寫入控制部121是將第1加密資料寫入至NAND型快閃記憶體5。KEK產生部125是產生與使用主機2的第2使用者(例如使用者B)建立關聯的第2KEK。KEK產生部125是例如使用在主機2上藉由第2使用者所輸入的第2密碼來產生第2KEK。DEK加密/解密部126是以第2KEK來將第1DEK加密,而取得第3加密DEK。第3加密DEK是例如被保存於加密DEK表23。
又,讀出控制部122是從主機2接收要求第1資料的讀出的讀出指令。另外,以此讀出指令來要求第1資料的讀出的使用者是第2使用者。
讀出控制部122是按照此讀出指令來從NAND型快閃記憶體5讀出第1加密資料。DEK加密/解密部126是以第2KEK來將被保存於加密DEK表23的第3加密DEK解密,而取得第1DEK。資料加密/解密部127是以第1DEK來將讀出的第1加密資料解密。藉由解密而取得的第1資料是被發送至主機2。因此,當第1資料與第2資料為相同時,第1使用者與第2使用者的雙方可從SSD3取得將第1加密資料解密而取得的第1資料。
藉由以上的構成,本實施形態的SSD3是可邊保持每個使用者的資料的保密性邊提升儲存效率。當保存完了的第1資料與和新的寫入要求一起接收的第2資料為相同時,DEK產生部124是可利用第2資料來產生被用在第1資料的加密之第1DEK。此情況,以第1DEK來加密的第2資料是與以第1DEK來加密的第1資料(亦即第1加密資料)相同。因此,不須將以第1DEK來加密的第2資料寫入至NAND型快閃記憶體5,可實現重複排除。
又,DEK加密/解密部126是以第1KEK來將第1DEK加密,而保存第1加密KEK。藉此,將NAND型快閃記憶體5內的第1加密資料解密而取得的第1資料(=第2資料)可說是藉由與用以將第1加密DEK解密的第1KEK建立關聯的第1使用者來保密。因此,即使物理性地取出NAND型快閃記憶體5,還是會因為無法將被儲存的加密資料解密,所以可防止對應的平文的資料洩漏。
另外,上述的資料的重複排除及加密用的機能是不限於SSD3的控制器4,亦可在各種的計算裝置實行的檔案系統驅動器或操作系統(OS)所具有,或亦可為搭載複數SSD或HD的企業或資料中心的儲存系統所具有。
又,控制器4之資料的重複排除及用以加密的動作的一部分是亦可在主機2進行。亦即,亦可主機2與控制器4合作來實現資料的重複排除及加密。
其次,參照圖6~圖9說明有關3個的比較例。該等比較例是作為具有複數的使用者存取時的保全(security)機能的儲存裝置實現。具體而言,第1比較例的儲存裝置是具有存取管理機能的非加密儲存裝置。第2比較例的儲存裝置是利用每個使用者的DEK的加密儲存裝置。第3比較例的儲存裝置是利用每個使用者的KEK的加密儲存裝置。以下是說明有關所欲在各比較例的儲存裝置安裝重複排除的情況。
(具有存取管理機能的非加密儲存裝置)
圖6是表示第1比較例的儲存裝置7A(以下稱為第1儲存裝置7A)的寫入動作及讀出動作的例子的方塊圖。第1儲存裝置7A是設定對於特定的單位(例如區塊單位、檔案單位)的資料之各使用者的存取的許可或不許可,控制對資料的存取。
第1儲存裝置7A是具備:主機I/F11A、NAND型快閃記憶體5A、寫入控制部131、重複控制部132、讀出控制部133、存取控制部134、存取權限表135等。存取權限表135是表示各使用者是否具有存取被儲存於NAND型快閃記憶體5A的特定的每個單位的資料的權限。
寫入控制部131是經由主機I/F11A來從主機2受理寫入指令。當寫入控制部131受理寫入指令時,重複控制部132是判定與寫入指令一起接收的使用者資料是否與對應於被儲存於NAND型快閃記憶體5A的加密資料之平文的資料(保存完了資料)重複。
藉由重複控制部132,當被判斷成使用者資料未與保存完了資料重複時,寫入控制部131是進行用以將使用者資料寫入至NAND型快閃記憶體5A的寫入動作。亦即,寫入控制部131是對於NAND型快閃記憶體5A,轉送使用者資料,送出寫入指示(更詳細是程式指示)。然後,重複控制部132是將存取權限表135更新,而使能對於以寫入指令要求使用者資料的寫入之使用者賦予存取所寫入的使用者資料的權限。
另一方面,藉由重複控制部132,當被判斷成使用者資料與保存完了資料重複時,寫入控制部131是跳過用以將使用者資料寫入至NAND型快閃記憶體5A的寫入動作。然後,重複控制部132是將存取權限表135更新,而使能對於使用者賦予存取該保存完了資料的權限。
又,讀出控制部133是經由主機I/F11A來從主機2受理讀出指令。當讀出控制部133受理讀出指令時,存取控制部134是參照存取權限表135,判定是否對於以讀出指令來要求資料的讀出之使用者賦予存取該資料的權限。
藉由存取控制部134,當被判斷成賦予使用者存取資料的權限時,讀出控制部133是進行用以從NAND型快閃記憶體5A讀出對應於讀出指令的資料之讀出動作。更詳細,讀出控制部133是將讀出指示送出至NAND型快閃記憶體5A。然後,讀出控制部133是將被讀出的資料發送至主機2。
另一方面,藉由存取控制部134,當被判斷成不賦予使用者存取資料的權限時,讀出控制部133是不進行用以從NAND型快閃記憶體5A讀出對應於讀出指令的資料之讀出動作。藉此,可排除無權限的使用者之不正當的存取。
如此在第1儲存裝置7A中,邊實現重複排除,邊僅具有權限的使用者可存取資料的存取控制也可實現。
但,在第1儲存裝置7A的NAND型快閃記憶體5A是儲存平文的資料。因此,在第1儲存裝置7A是有藉由物理性地取出NAND型快閃記憶體5A(記憶部)來容易地盜出資料的脆弱性。
(使用每個使用者的DEK的加密儲存裝置)
圖7是表示第2比較例的儲存裝置7B(以下稱為第2儲存裝置7B)的寫入動作及讀出動作的例子的方塊圖。第2儲存裝置7B是記憶以每個使用者的獨特的DEK來加密的使用者資料。
第2儲存裝置7B是具備:主機I/F11B、NAND型快閃記憶體5B、寫入控制部141、讀出控制部142、重複控制部143、DEK產生部144、資料加密/解密部145等。
DEK產生部144是利用使用主機2的使用者所輸入的密碼,產生與該使用者建立關聯的DEK。DEK產生部144是例如產生使用者的密碼的雜湊值作為DEK。
寫入控制部141是經由主機I/F11B來從主機2受理寫入指令。當寫入控制部141受理寫入指令時,重複控制部143是判定與寫入指令一起接收的使用者資料是否與對應於被儲存於NAND型快閃記憶體5B的加密資料之平文的資料(保存完了資料)重複。
藉由重複控制部143,當被判斷成使用者資料未與保存完了資料重複時,資料加密/解密部145是以DEK來將使用者資料加密。此DEK是與以寫入指令要求使用者資料的寫入之使用者建立關聯的DEK。
然後,資料加密/解密部145是將加密的使用者資料轉送至NAND型快閃記憶體5B,寫入控制部141是將用以寫入該加密使用者資料的寫入指示送出至NAND型快閃記憶體5B。藉此,可將以每個使用者的獨特的DEK來加密的使用者資料儲存於NAND型快閃記憶體5B。
另一方面,藉由重複控制部143,當被判斷成使用者資料與保存完了資料重複時,資料加密/解密部145是不將使用者資料加密。然後,寫入控制部141是跳過用以將被加密的使用者資料寫入至NAND型快閃記憶體5B的寫入動作。
又,讀出控制部142是經由主機I/F11B來從主機2受理讀出指令。讀出控制部142是進行用以讀出對應於讀出指令的資料之讀出動作。更詳細,讀出控制部142是將讀出指示送出至NAND型快閃記憶體5A。
資料加密/解密部145是進行為了以DEK來將藉由讀出動作所讀出的加密資料解密的處理。加密資料是以對每個使用者獨特的DEK來加密。因此,當與以讀出指令來要求資料的讀出之使用者建立關聯的DEK與被用在加密資料的加密之DEK一致時,資料加密/解密部145是加密資料的解密成功。另一方面,若與使用者建立關聯的DEK未與被用在加密資料的加密之DEK一致,則資料加密/解密部145是加密資料的解密失敗。
如以上般,第2儲存裝置7B是可迴避重複相同的資料寫入至NAND型快閃記憶體5。然而,在第2儲存裝置7B中,由於以每個使用者的DEK來將資料加密,因此無法以複數的使用者來共有加密資料。亦即,某加密資料是只能以被用在其加密的1人的使用者的DEK來解密。因此,當與寫入指令一起接收的使用者資料與保存完了資料重複,而用以寫入該使用者資料的寫入動作被跳過時,以此寫入指令要求寫入的使用者是無法從第2儲存裝置7B取得使用者資料。這是因為無法以和此使用者建立關聯的DEK來將對應於保存完了資料的加密資料解密所致。
如此,由於無法以複數的使用者共有加密資料,因此在第2儲存裝置7B安裝重複排除是不可能。
(使用每個使用者的KEK的加密儲存裝置)
圖8是表示第3比較例的儲存裝置7C(以下稱為第3儲存裝置7C)的無重複的保存完了資料時的寫入動作的例子的方塊圖。此第3儲存裝置7C是以每個使用者的獨特的KEK來加密保存用以將使用者資料加密的DEK。
第3儲存裝置7C是具備:主機I/F11C、NAND型快閃記憶體5C、寫入控制部151、重複控制部152、DEK產生部153、KEK產生部154、DEK加密/解密部155、資料加密/解密部156、邏輯物理位址變換表21C、物理位址-雜湊值對應表22C、加密DEK表23C等。
KEK產生部154是利用使用主機2的使用者所輸入的密碼,產生與該使用者建立關聯的KEK。KEK產生部154是例如產生使用者的密碼的雜湊值作為KEK。KEK產生部154是將產生的KEK送出至DEK加密/解密部155。
寫入控制部151是經由主機I/F11C來從主機2受理寫入指令。
當寫入控制部151受理寫入指令時,DEK產生部153是按特定的單位的每個使用者資料來產生獨特的DEK。此特定的單位是例如區域、區塊或檔案。DEK產生部153是例如產生隨機變數作為DEK。DEK產生部153是將產生的DEK送出至資料加密/解密部156及DEK加密/解密部155。
又,當寫入控制部151受理寫入指令時,重複控制部152是判定與寫入指令一起接收的使用者資料是否與對應於於被儲存於NAND型快閃記憶體5C的加密資料之平文的資料(保存完了資料)重複。
藉由重複控制部152,當被判定成使用者資料未與保存完了資料重複時,資料加密/解密部156是以DEK來將使用者資料加密。然後,資料加密/解密部156是將加密的使用者資料轉送至NAND型快閃記憶體5C,寫入控制部151是將用以寫入該加密使用者資料的寫入指示送出至NAND型快閃記憶體5C。藉此,可將以對特定的單位的每個使用者資料獨特的DEK來加密的使用者資料儲存於NAND型快閃記憶體5C。
進一步,DEK加密/解密部155是以KEK來將DEK加密,而取得加密DEK。此KEK是與以寫入指令要求使用者資料的寫入之使用者建立關聯的KEK。DEK加密/解密部155是將加密DEK送出至寫入控制部151。寫入控制部151是將加密DEK保存於加密DEK表23C。在加密DEK表23C是例如保存有與以寫入指令指定的邏輯位址建立關聯的加密DEK。
如圖8所示般,當無與所欲寫入的使用者資料重複的保存完了資料時,第3儲存裝置7C是以隨機變數的DEK來將使用者資料加密,而寫入至NAND型快閃記憶體5C,且以每個使用者的KEK來加密保存其DEK。
圖9是表示在第3儲存裝置7C中,無法實現有重複的保存完了資料時的寫入動作的例子的方塊圖。
藉由重複控制部152,當被判斷成使用者資料與保存完了資料重複時,資料加密/解密部156是不將使用者資料加密。而且,寫入控制部151是跳過用以將被加密的使用者資料寫入至NAND型快閃記憶體5C的寫入動作。
此情況,寫入控制部151及DEK加密/解密部155是需要以使用者(以寫入指令要求使用者資料的寫入者)的KEK來將被用在對應於保存完了資料的加密資料的加密之DEK加密,而保存於加密DEK表23C。但,此DEK是隨機變數,以別的使用者的KEK來加密,而被保存於加密DEK表23C。DEK加密/解密部155是無法以現在的使用者的KEK來將以別的使用者的KEK所加密的加密DEK解密。因此,寫入控制部151是無法將以現在的使用者的KEK所加密的DEK保存於加密DEK表23C。然後,當現在的使用者以讀出指令來要求此使用者資料的讀出時,由於對應於加密DEK表23C的加密DEK未被保存,因此無法從第3儲存裝置7C取得使用者資料。
如此,由於無法以複數的使用者共有被用在某使用者資料(亦即資料型樣)的加密之DEK,因此在第3儲存裝置7C安裝重複排除是不可能。
對於以上的第1乃至第3比較例的儲存裝置7A,7B,7C,本實施形態的SSD3的控制器4是從使用者資料產生DEK,以對每個使用者獨特的KEK來將DEK加密而保存。DEK不是隨機變數,從使用者資料導出,因此所欲寫入同一型樣的使用者資料的複數的使用者是可共有對應於該使用者資料的DEK。藉由使用者資料以共有的DEK來加密,複數的使用者是可共有其加密資料。
又,由於控制器4是以每個使用者的KEK來將DEK加密而保存,因此例如當用以產生KEK的密碼被正確輸入時,可將加密DEK解密,另一方面,當密碼不被正確輸入時,無法將加密DEK解密。因此,不正當的存取是無法將加密DEK解密,因此即使NAND型快閃記憶體5內的加密資料被讀出,也可防止該加密資料被解密而平文的資料洩漏。
藉由以上,本實施形態的SSD3可邊保持每個使用者的資料的保密性,邊提升儲存效率。
圖10是表示SSD3的寫入動作的例子的方塊圖。
KEK產生部125是利用使用主機2的使用者所輸入的密碼,產生與該使用者建立關聯的KEK。KEK產生部125是例如產生使用者的密碼的雜湊值作為KEK。KEK產生部125是將產生的KEK送出至DEK加密/解密部126。
寫入控制部121是經由主機I/F11來從主機2受理寫入指令。
當寫入控制部121受理寫入指令時,DEK產生部124是利用與寫入指令一起接收的使用者資料來產生DEK。DEK產生部124是例如使用對使用者資料施加第1雜湊函數而算出的第1雜湊值作為DEK。使用者資料是例如區域、區塊或檔案之類的特定的單位的資料。DEK產生部124是將產生的DEK送出至資料加密/解密部127及DEK加密/解密部126。
又,當寫入控制部121受理寫入指令時,重複控制部123是判定與寫入指令一起接收的使用者資料是否與對應於被儲存於NAND型快閃記憶體5的加密資料之平文的資料(保存完了資料)相同。
具體而言,重複控制部123是例如對使用者資料施加第2雜湊函數來算出第2雜湊值。第2雜湊函數是例如與上述的第1雜湊函數不同。然後,重複控制部123是判斷在物理位址-雜湊值對應表22中是否有包含算出的第2雜湊值的登錄。若在物理位址-雜湊值對應表22中有包含第2雜湊值的登錄,則重複控制部123是判斷成使用者資料與保存完了資料相同。另一方面,若在物理位址-雜湊值對應表22中無包含第2雜湊值的登錄,則重複控制部123是判斷成使用者資料與保存完了資料不同。
(使用者資料與保存完了資料相異時)
藉由重複控制部123,當被判斷成使用者資料與保存完了資料不同時,資料加密/解密部127是以DEK來將使用者資料加密。此DEK是與被用在保存完了資料的加密之DEK不同。然後,資料加密/解密部127是將加密的使用者資料轉送至NAND型快閃記憶體5,寫入控制部121是將用以寫入該加密使用者資料的寫入指示送出至NAND型快閃記憶體5。藉此,可將以從使用者資料導出的DEK來加密的使用者資料寫入至NAND型快閃記憶體5。
又,寫入控制部121是按照此使用者資料的寫入,更新邏輯物理位址變換表21及物理位址-雜湊值對應表22。具體而言,寫入控制部121是將邏輯物理位址變換表21更新,而使能顯示以寫入指令指定的邏輯位址與寫入使用者資料的物理位址的映射。又,寫入控制部121是將物理位址-雜湊值對應表22更新,而使能顯示寫入使用者資料的物理位址與使用者資料的第2雜湊值的對應。
進一步,DEK加密/解密部126是以KEK來將DEK加密,而取得加密DEK。此KEK是與以寫入指令要求使用者資料的寫入之使用者建立關聯的KEK。DEK加密/解密部126是將加密DEK送出至寫入控制部121。
寫入控制部121是將加密DEK保存於加密DEK表23。在加密DEK表23中是例如保存有與以寫入指令指定的邏輯位址建立關聯的加密DEK。
如此,當使用者資料與保存完了資料不同時,控制器4是以利用使用者資料所產生的DEK來將使用者資料加密,而寫入至NAND型快閃記憶體5。然後,控制器4是以與以寫入指令要求使用者資料的寫入之使用者建立關聯的KEK來將此DEK加密,而保存於加密DEK表23。
(使用者資料與保存完了資料相同時)
藉由重複控制部123,當被判斷成使用者資料與保存完了資料相同時,資料加密/解密部127是不將使用者資料加密。然後,寫入控制部121是跳過用以將被加密的使用者資料寫入至NAND型快閃記憶體5的寫入動作。亦即,寫入控制部121是不將寫入指示送出至NAND型快閃記憶體5。
另外,寫入控制部121是將邏輯物理位址變換表21更新,而使顯示以寫入指令指定的邏輯位址與儲存有將保存完了資料加密的加密資料的物理位址的映射。又,由於新的物理性的寫入未發生,因此寫入控制部121是不將物理位址-雜湊值對應表22更新。
DEK加密/解密部126是以KEK來將DEK予以加密,而取得加密DEK。此DEK是與被用在保存完了資料的加密之DEK相同。又,KEK是與以寫入指令要求使用者資料的寫入之使用者建立關聯的KEK。DEK加密/解密部126是將加密DEK送出至寫入控制部121。
寫入控制部121是將加密DEK保存於加密DEK表23。在加密DEK表23是例如保存有與以寫入指令指定的邏輯位址建立關聯的加密DEK。
如此,當使用者資料與保存完了資料相同時,控制器4是不將使用者資料加密,不寫入至NAND型快閃記憶體5。但,控制器4是以KEK來將利用使用者資料而產生的DEK予以加密,而保存於加密DEK表23,該KEK是與以寫入指令要求使用者資料的寫入之使用者建立關聯。
因此,當使用者資料與保存完了資料相同時,控制器4是可不進行用以將使用者資料寫入至NAND型快閃記憶體5的動作,實行重複排除。又,控制器4是利用使用者資料來產生被用在保存完了資料的加密之DEK,以和使用者建立關聯的KEK來加密而保存。因此,與使用者資料相同的保存完了資料可說明是藉由與KEK建立關聯的使用者來保密。
如上述般,寫入動作的內容是按照使用者資料是否與保存完了資料相同而異。例如當使用者資料與保存完了資料相同時,將使用者資料加密,而不進行寫入至NAND型快閃記憶體5的動作。此情況,與使用者資料和保存完了資料相異時作比較,對應於寫入指令的處理時間變短,消耗電力也變低。
因此,當某使用者以寫入指令來要求某使用者資料的寫入,進行對應於此要求的寫入動作時,由其處理時間或消耗電力來推測使用者資料是否與保存完了資料重複的可能性有。
當使用者資料與保存完了資料相同,而使無法如此的推測時,寫入控制部121及資料加密/解密部127是亦可進行虛擬的加密處理或寫入處理。具體而言,資料加密/解密部127是以DEK來將虛擬的資料予以加密,而取得虛擬的加密資料。然後,寫入控制部121是將虛擬的加密資料寫入至NAND型快閃記憶體5。
藉此,可減低在使用者資料和保存完了資料不同時與使用者資料和保存完了資料相同時之間產生的處理時間或消耗電力的差異。因此,可使無法推測要求寫入的使用者資料是與保存完了資料相同。
圖11是表示SSD3的讀出動作的例子的方塊圖。
KEK產生部125是利用使用主機2的使用者所輸入的密碼,產生與該使用者建立關聯的KEK。KEK產生部125是例如產生使用者的密碼的雜湊值作為KEK。KEK產生部125是將產生的KEK送出至DEK加密/解密部126。
讀出控制部122是經由主機I/F11來從主機2受理讀出指令。讀出控制部122是進行用以讀出對應於讀出指令的資料的讀出動作。
具體的而言,讀出控制部122是使用邏輯物理位址變換表21,將以讀出指令所指定的邏輯位址變換成對應的物理位址。讀出控制部122是將用以從此物理位址讀出資料的讀出指示送出至NAND型快閃記憶體5。藉此,從NAND型快閃記憶體5讀出對應於讀出指令的加密資料。
又,讀出控制部122是利用加密DEK表23,取得與以讀出指令指定的邏輯位址建立關聯的加密DEK。讀出控制部122是將取得的加密DEK送出至DEK加密/解密部126。
DEK加密/解密部126是以KEK來將加密DEK予以解密,而取得DEK。此KEK是與以讀出指令來要求使用者資料的讀出之使用者建立關聯的KEK。DEK加密/解密部126是將取得的DEK送出至資料加密/解密部127。
資料加密/解密部127是以此DEK,按照讀出指示來將從NAND型快閃記憶體5讀出的加密資料予以解密,而取得平文的使用者資料。資料加密/解密部127是將使用者資料經由主機I/F11來發送至主機2。
藉此,使用主機2的使用者是可利用與該使用者建立關聯的KEK來取得對應於讀出指令的使用者資料。
另外,當與使用者建立關聯的KEK和被用在加密DEK的加密之KEK不同時,DEK加密/解密部126是加密DEK的解密失敗。該情況,資料加密/解密部127是無法將從NAND型快閃記憶體5讀出的加密資料予以解密。因此,例如未輸入正確的密碼的不正當的存取是無法產生被用在加密DEK的加密之たKEK,因此無法將加密DEK予以解密,無法將加密資料予以解密。藉此,可防止加密資料被解密而平文的使用者資料洩漏。
藉由以上的圖10及圖11所示的構成,SSD3可邊保持每個使用者的資料的保密性,邊提升儲存效率。
圖12是表示藉由控制器4所實行的控制處理的程序的例子的流程圖。此控制處理是例如按照SSD3與主機2的連接被確立而開始進行。
控制器4是判定是否從主機2接收了使用者的密碼(步驟S101)。未接收密碼時(步驟S101的NO),控制器4是回到步驟S101,再度判定是否接收了密碼。
另一方面,當接收了密碼時(步驟S101的YES),控制器4是利用密碼來產生KEK(步驟S102)。控制器4是例如產生密碼的雜湊值作為KEK。藉此,控制器4是可利用KEK來將DEK加密,且可將該加密DEK解密。
其次,控制器4是判定是否從主機2接收了I/O指令(步驟S103)。當未接收I/O指令時(步驟S103的NO),控制器4是回到步驟S103,再度判定是否接收了I/O指令。
另一方面,接收了I/O指令時(步驟S103的YES),控制器4是按照接收的I/O指令的類別來分歧處理(步驟S104)。當接收的I/O指令為讀出指令時(步驟S104的讀出指令),控制器4是實行讀出處理(步驟S105)。讀出處理是用以取得對應於讀出指令的資料來發送至主機2的處理。有關讀出處理的詳細的程序是參照圖13的流程圖後述。
又,當接收的I/O指令為寫入指令時(步驟S104的寫入指令),控制器4是實行寫入處理(步驟S106)。寫入處理是用以將與寫入指令一起接收的使用者資料進行重複排除及加密而儲存於NAND型快閃記憶體5的處理。有關寫入處理的詳細的程序是參照圖14的流程圖後述。
在步驟S105實行讀出處理之後,或在步驟S106實行寫入處理之後,控制器4是回到步驟S103。藉此,控制器4可更繼續進行對應於接收的讀出指令或寫入指令的處理。
藉由以上的控制處理,控制器4可產生用在DEK的加密及解密之每個使用者的KEK,而進行對應於讀出指令的讀出處理及對應於寫入指令的寫入處理。另外,從步驟S101到步驟S102的程序是只要比在步驟S105的讀出處理中將加密DEK解密的程序(後述的圖13的步驟S204)及在步驟S106的寫入處理中將DEK加密的程序(後述的圖14的步驟S310)更前面,在哪個的時機皆可。
圖13是表示藉由控制器4所實行的讀出處理的程序的例子的流程圖。此讀出處理是參照圖12的流程圖,相當於上述的控制處理的步驟105。
控制器4是利用邏輯物理位址變換表21來決定對應於以讀出指令指定的邏輯位址之物理位址(步驟S201)。然後,控制器4是從NAND型快閃記憶體5內的被決定的物理位址來讀出加密資料(步驟S202)。
又,控制器4是從加密DEK表23取得對應於以讀出指令指定的邏輯位址之加密DEK(步驟S203)。然後,控制器4是以對應於使用者的KEK來將加密DEK解密(步驟S204)。KEK是利用使用主機2的使用者所輸入的密碼來產生。又,加密DEK是只能以被用在其加密的KEK來解密。因此,控制器4是當主機2接收錯誤的密碼時,或無法以KEK來將加密DEK正常地解密時,亦可判斷成不正當的存取,中斷讀出處理。
另外,控制器4是例如同時進行步驟S201及步驟S202的程序、步驟S203及步驟S204的程序。控制器4是亦可在進行步驟S201及步驟S202的程序之後,進行步驟S203及步驟S204的程序。或,控制器4是亦可在進行步驟S203及步驟S204的程序之後,進行步驟S201及步驟S202的程序。
其次,控制器4是以DEK來將讀出的加密資料解密(步驟S205)。控制器4是將藉由解密而取得的平文的使用者資料發送至主機2(步驟S206)。
藉由以上的讀出處理,控制器4是按照讀出指令來從NAND型快閃記憶體5讀出加密資料,可將該加密資料解密後的平文的使用者資料發送至主機2。加密資料的解密是使用以每個使用者的獨特的KEK來將加密DEK解密的DEK。因此,在未能取得對應的使用者的KEK之不正當的存取下,加密資料不會被解密。因此,可防止在不正當的存取下平文的使用者資料洩漏。
圖14是表示藉由控制器4來實行的寫入處理的程序的例子的流程圖。此寫入處理是相當於參照圖12的流程圖上述的控制處理的步驟S106。
控制器4是從主機2接收應寫入至NAND型快閃記憶體5的使用者資料(步驟S301)。控制器4是算出使用者資料的雜湊值(步驟S302)。
然後,控制器4是利用算出的雜湊值及物理位址-雜湊值對應表22來判定接收的使用者資料是否與對應於被儲存於NAND型快閃記憶體5的加密資料之平文的資料(保存完了資料)重複(步驟S303)。亦即,控制器4是判定與接收的使用者資料同一型樣的資料是否被加密而被儲存於NAND型快閃記憶體5。
當使用者資料與保存完了資料重複時(步驟S303的YES),控制器4是利用使用者資料來產生DEK(步驟S304)。控制器4是例如產生使用者資料的雜湊值作為DEK。然後,控制器4是將邏輯物理位址變換表21更新,而使以寫入指令指定的邏輯位址能與寫入對應於其保存完了資料的加密資料之物理位址建立關聯(亦即映射)(步驟S305)。藉此,寫入加密資料的1個的物理位址可與複數的邏輯位址建立關聯。
又,當使用者資料不與保存完了資料重複時(步驟S303的NO),控制器4是利用使用者資料來產生DEK(步驟S306)。控制器4是以DEK來將使用者資料加密(步驟S307),將加密的使用者資料(加密資料)寫入至NAND型快閃記憶體5(步驟S308)。控制器4是邏輯物理位址變換表21更新,而使以寫入指令指定的邏輯位址能與寫入加密資料的物理位址建立關聯(亦即映射)(步驟S309)。然後,控制器4是將物理位址-雜湊值對應表22更新(步驟S310)。更具體而言,當在物理位址-雜湊值對應表22中有包含寫入加密資料的物理位址的登錄時,控制器4是在該登錄內的雜湊值的場(field)中設定在步驟S302算出的使用者資料的雜湊值。
在步驟S305更新邏輯物理位址變換表21之後,或在步驟S310更新物理位址-雜湊值對應表22之後,控制器4是以對應於使用者的KEK來將DEK加密(步驟S311)。KEK是利用使用主機2的使用者所輸入的密碼來產生。然後,控制器4是將加密的DEK保存(步驟S312)。更具體而言,當在加密DEK表23中無包含對應於使用者資料的邏輯位址(亦即以寫入指令指定的邏輯位址)的登錄時,控制器4是將包含此邏輯位址及加密DEK的登錄追加於加密DEK表23。又,當在加密DEK表23中有包含對應於使用者資料的邏輯位址的登錄時,控制器4是在該登錄內的加密DEK的場中設定在步驟S310所取得的加密DEK。
藉由以上的寫入處理,控制器4是當與寫入指令一起接收的使用者資料與保存完了資料重複時,跳過加密使用者資料的處理、及將加密資料寫入至NAND型快閃記憶體5的處理,而可實現重複排除。
並且,不管使用者資料是否與保存完了資料重複,控制器4利用使用者資料來產生DEK。藉此,要求同一型樣的使用者資料的寫入之複數的使用者可共有以DEK來將使用者資料加密而取得的加密資料。
而且,控制器4是以每個使用者的獨特的KEK來將DEK加密,保存加密DEK。因此,加密資料的解密是需要以每個使用者的KEK來將被保存的加密DEK解密。因此,使用者是可藉由KEK(或用以導出KEK的密碼)來保密使用者資料,該使用者資料是可用DEK來將加密資料解密而取得。
(第2實施形態)
在第1實施形態中,利用應寫入至NAND型快閃記憶體5的使用者資料來產生DEK。相對於此,在第2實施形態中,利用應寫入至NAND型快閃記憶體5的使用者資料及對每個SSD獨特的密鑰導出密鑰(Key Derivation Key:KDK)來產生DEK。
控制器4(更詳細是DEK產生部124)是只在對應的使用者資料存在時可產生某DEK。因此,控制器4是若對應的使用者資料不存在,則無法產生其DEK。
然而,例如,具有關於雜湊的知識的使用者是可在主機2上產生對應於使用者資料的DEK。因此,可能有因為使用者的處理不得當而造成DEK流出的運用上的脆弱性。
並且,從使用者資料產生DEK的方法是有無法達成密碼上正確的密鑰的產生方法的強度的可能性。
為此,第2實施形態的SSD3是不僅使用者資料,更利用對每個SSD獨特的KDK來產生DEK。藉此,可提高利用DEK的使用者資料的加密的強度。
第2實施形態的SSD3的構成是與第1實施形態的SSD3同樣,第2實施形態與第1實施形態是僅為了進一步使用KDK來產生DEK的構成不同。以下,主要說明與第1實施形態不同的點。
圖15是表示包含第2實施形態的SSD3的資訊處理系統1的構成例的方塊圖。第2實施形態的SSD3是除了第1實施形態的SSD3的構成之外,更具備One-Time Programmable記憶體(OTP記憶體)15。
OTP記憶體15是包含可分別寫入1次資料的複數的記憶元件(亦即記憶格)。OTP記憶體15內的各記憶元件是只能一度寫入資料的不可逆性的記憶元件。作為OTP記憶體15,例如可使用電子保險絲(e-Fuse),但不被限定於此。
OTP記憶體15是記憶被用在DEK的產生之KDK15A。KDK15A是在此SSD3為獨特的密鑰。亦即,複數的SSD是使用各個的獨特的KDK。藉由將KDK15A記憶於OTP記憶體15,可防止KDK15A洩漏。以下是亦將KDK15A稱為裝置密鑰15A。
圖16是表示SSD3的寫入動作的例子的方塊圖。
當寫入控制部121受理寫入指令時,DEK產生部124是使用與寫入指令一起接收的使用者資料及裝置密鑰15A來產生DEK。具體而言,DEK產生部124是將裝置密鑰15A設為KDK,以使用者資料的雜湊值作為索引,實行密鑰導出函數(Key Derivation Function:KDF),藉此產生DEK。DEK產生部124是將產生的DEK送出至資料加密/解密部127及DEK加密/解密部126。
其他的各部的動作是與第1實施形態同樣。又,有關讀出動作也是與第1實施形態同樣。
藉由以上的構成,SSD3可提高使用DEK的使用者資料的加密的強度。
如以上說明般,若根據第1及第2實施形態,則可邊保持每個使用者的資料的保密性,邊提升儲存效率。NAND型快閃記憶體5是記憶以第1DEK來將第1資料加密的第1加密資料。控制器4是當與寫入要求(例如寫入指令)一起從主機2接收的第2資料與第1資料相同,使用主機2的使用者為第1使用者時,以和第1使用者建立關聯的第1KEK來將第1DEK加密而取得第1加密DEK,保存第1加密DEK。控制器4是當第2資料與第1資料相同,使用主機的使用者為與第1使用者不同的第2使用者時,以和第2使用者建立關聯的第2KEK來將第1DEK加密而取得第2加密DEK,保存第2加密DEK。控制器4是當第2資料與第1資料不同,使用主機2的使用者為第1使用者時,利用第2資料來產生第2DEK,以第2DEK來將第2資料加密而取得第2加密資料,將第2加密資料寫入至NAND型快閃記憶體5,以第1KEK來將第2DEK加密而取得第3加密DEK,保存第3加密DEK。控制器4是當第2資料與第1資料不同,使用主機2的使用者為第2使用者時,利用第2資料來產生第2DEK,以第2DEK來將第2資料加密而取得第2加密資料,將第2加密資料寫入至NAND型快閃記憶體5,以第2KEK來將第2DEK加密而取得第4加密DEK,保存第4加密DEK。
控制器4是當被記憶於NAND型快閃記憶體5的第1資料與和寫入要求一起接收的第2資料為相同時,以第1DEK來加密的第2資料是與第1加密資料相同,因此不需要寫入至NAND型快閃記憶體5,可實現重複排除。
又,控制器4是當第1資料與第2資料相同,使用主機2的使用者為第1使用者時,以和第1使用者建立關聯的第1KEK來加密保存第1DEK。此情況,將NAND型快閃記憶體5內的第1加密資料解密而取得的第1資料(=第2資料)可說是藉由與用以將被加密的第1DEK解密的第1KEK建立關聯的第1使用者來保密。
進一步,當第1資料與第2資料為相同,使用主機2的使用者為與第1使用者不同的第2使用者時,以和第2使用者建立關聯的第2KEK來加密保存第1DEK。此情況,將NAND型快閃記憶體5內的第1加密資料解密而取得的第1資料(=第2資料)可說是藉由與用以將被加密的第1DEK解密的第2KEK建立關聯的第2使用者來保密。
藉由以上,SSD3可邊保持每個使用者的資料的保密性邊提升儲存效率。
第1及第2實施形態記載的各種的機能的各者是亦可藉由電路(處理電路)來實現。在處理電路的例子是包含中央處理裝置(CPU)之類的被程式化的處理器。此處理器是藉由實行被儲存於記憶體的電腦程式(命令群)來實行被記載的機能各者。此處理器是亦可為包含電路的微處理器。在處理電路的例子是亦包含數位訊號處理器(DSP)、特定用途的積體電路(ASIC)、微控制器、控制器、其他的電路零件。該等實施形態記載的CPU以外的其他的組成(component)的各者也亦可藉由處理電路來實現。
說明了本發明的幾個的實施形態,但該等的實施形態是舉例提示者,不是意圖限定發明的範圍。該等實施形態是可被實施於其他的各種的形態,可在不脫離發明的主旨的範圍實施各種的省略、置換、變更。該等實施形態或其變形是與發明的範圍或主旨所含者同樣,為申請專利範圍記載的發明及其均等的範圍所包含。
1:資訊處理系統
2:主機
3:SSD
4:控制器
5:NAND型快閃記憶體
6:DRAM
11:主機I/F
12:CPU
13:NAND I/F
14:DRAM I/F
121:寫入控制部
122:讀出控制部
123:重複控制部
124:DEK產生部
125:KEK產生部
126:DEK加密/解密部
127:資料加密/解密部
20:FW
21:邏輯物理位址變換表
22:物理位址-雜湊值對應表
23:加密DEK表
[圖1]是表示包含第1實施形態的記憶系統的資訊處理系統的構成例的方塊圖。
[圖2]是表示第1實施形態的記憶系統的資料的重複排除的例圖。
[圖3]是表示在第1實施形態的記憶系統所使用的邏輯物理位址變換表的一構成例的圖。
[圖4]是表示在第1實施形態的記憶系統所使用的物理位址-雜湊值對應表的一構成例的圖。
[圖5]是表示在第1實施形態的記憶系統所使用的加密資料密鑰(Data Encryption Key:DEK)表的一構成例的圖。
[圖6]是表示第1比較例的記憶系統的寫入動作及讀出動作的例子的方塊圖。
[圖7]是表示第2比較例的記憶系統的寫入動作及讀出動作的例子的方塊圖。
[圖8]是表示第3比較例的記憶系統的無重複資料時的寫入動作的例子的方塊圖。
[圖9]是表示在第3比較例的記憶系統中,無法實現有重複資料時的寫入動作的例子的方塊圖。
[圖10]是表示第1實施形態的記憶系統的寫入動作的例子的方塊圖。
[圖11]是表示第1實施形態的記憶系統的讀出動作的例子的方塊圖。
[圖12]是表示在第1實施形態的記憶系統中所被實行的控制處理的程序的例子的流程圖。
[圖13]是表示在第1實施形態的記憶系統所被實行的讀出處理的程序的例子的流程圖。
[圖14]是表示在第1實施形態的記憶系統所被實行的寫入處理的程序的例子的流程圖。
[圖15]是表示包含第2實施形態的記憶系統的資訊處理系統的構成例的方塊圖。
[圖16]是表示第2實施形態的記憶系統的寫入動作的例子的方塊圖。
5:NAND型快閃記憶體
11:主機I/F
21:邏輯物理位址變換表
22:物理位址-雜湊值對應表
23:加密DEK表
121:寫入控制部
123:重複控制部
124:DEK產生部
125:KEK產生部
126:DEK加密/解密部
127:資料加密/解密部
Claims (12)
- 一種記憶系統,其特徵係具備:第1非揮發性記憶體,其係記憶以第1資料密鑰來將第1資料加密的第1加密資料;及控制器,其係被構成為控制前述第1非揮發性記憶體,前述控制器,係被構成為:當與寫入要求一起從主機接收的第2資料具有與前述第1資料相同的資料型樣,使用前述主機的使用者為第1使用者時,以使用和前述第1使用者建立關聯的資訊所產生的第1密鑰加密密鑰來將前述第1資料密鑰加密而取得第1加密資料密鑰,保存前述第1加密資料密鑰,當前述第2資料具有與前述第1資料相同的資料型樣,使用前述主機的使用者為與前述第1使用者不同的第2使用者時,以使用和前述第2使用者建立關聯的資訊所產生的第2密鑰加密密鑰來將前述第1資料密鑰加密而取得第2加密資料密鑰,保存前述第2加密資料密鑰,當前述第2資料具有與前述第1資料不同的資料型樣,使用前述主機的使用者為前述第1使用者時,利用前述第2資料來產生第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得第2加密資料,將前述第2加密資料寫入至前述第1非揮發性記憶體,以前述第1密鑰加密密鑰來將前述第2資料密鑰加密而取得第3加密資料密鑰,保存前述第3加密資料密鑰, 當前述第2資料具有與前述第1資料不同的資料型樣,使用前述主機的使用者為前述第2使用者時,利用前述第2資料來產生前述第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得前述第2加密資料,將前述第2加密資料寫入至前述第1非揮發性記憶體,以前述第2密鑰加密密鑰來將前述第2資料密鑰加密而取得第4加密資料密鑰,保存前述第4加密資料密鑰。
- 如請求項1記載的記憶系統,其中,前述控制器更被構成為:從前述主機接收用以讀出前述第2資料的讀出要求,當前述第2資料與前述第1資料相同,使用前述主機的使用者為前述第1使用者時,從前述第1非揮發性記憶體讀出前述第1加密資料,以前述第1密鑰加密密鑰來將前述第1加密資料密鑰解密而取得前述第1資料密鑰,以前述第1資料密鑰來將被讀出的前述第1加密資料解密,當前述第2資料與前述第1資料相同,使用前述主機的使用者為前述第2使用者時,從前述第1非揮發性記憶體讀出前述第1加密資料,以前述第2密鑰加密密鑰來將前述第2加密資料密鑰解密而取得前述第1資料密鑰,以前述第1資料密鑰來將被讀出的前述第1加密資料解密。
- 如請求項1或2記載的記憶系統,其中,前述控制器更被構成為:接收用以從前述主機讀出前述第2資料的讀出要求,當前述第2資料與前述第1資料不同,使用前述主機的 使用者為前述第1使用者時,從前述第1非揮發性記憶體讀出前述第2加密資料,以前述第1密鑰加密密鑰來將前述第3加密資料密鑰解密而取得前述第2資料密鑰,以前述第2資料密鑰來將被讀出的前述第2加密資料解密,當前述第2資料與前述第1資料不同,使用前述主機的使用者為前述第2使用者時,從前述第1非揮發性記憶體讀出前述第2加密資料,以前述第2密鑰加密密鑰來將前述第4加密資料密鑰解密而取得前述第2資料密鑰,以前述第2資料密鑰來將被讀出的前述第2加密資料解密。
- 如請求項1或2記載的記憶系統,其中,當前述第2資料與前述第1資料相同時,前述第1資料密鑰為前述第2資料的雜湊值或Hash-based Message Authentication Code(HMAC)值,當前述第2資料與前述第1資料不同時,前述第1資料密鑰為前述第1資料的雜湊值或Hash-based Message Authentication Code(HMAC)值,前述第2資料密鑰為前述第2資料的雜湊值或Hash-based Message Authentication Code(HMAC)值。
- 如請求項1或2記載的記憶系統,其中,前述控制器更被構成為:利用在前述主機上藉由前述第1使用者所輸入的第1密碼來產生前述第1密鑰加密密鑰,利用在前述主機上藉由前述第2使用者所輸入的第2密碼來產生前述第2密鑰加密密鑰。
- 如請求項1或2記載的記憶系統,其中, 前述控制器更被構成為:在接收前述第2資料之前,利用與寫入要求一起從前述第2使用者所使用的前述主機接受的前述第1資料來產生前述第1資料密鑰,以前述第1資料密鑰來將前述第1資料加密而取得前述第1加密資料,將前述第1加密資料寫入至前述第1非揮發性記憶體,以前述第2密鑰加密密鑰來將前述第1資料密鑰加密而取得前述第3加密資料密鑰,保存前述第3加密資料密鑰。
- 如請求項6記載的記憶系統,其中,前述控制器更被構成為:接收用以從前述主機讀出前述第1資料的讀出要求,當使用前述主機的使用者為前述第2使用者時,從前述第1非揮發性記憶體讀出前述第1加密資料,以前述第2密鑰加密密鑰來將前述第3加密資料密鑰解密而取得前述第1資料密鑰,以前述第1資料密鑰來將被讀出的前述第1加密資料解密。
- 如請求項1記載的記憶系統,其中,前述控制器,係被構成為:當前述第2資料與前述第1資料相同時,利用前述第2資料來產生前述第1資料密鑰。
- 如請求項1記載的記憶系統,其中,更具備:記憶密鑰導出密鑰的第2非揮發性記憶體,前述控制器,係被構成為:當前述第2資料與前述第1資料相同,使用前述主機的使用者為前述第1使用者時,利用前述第2資料及前述密鑰 導出密鑰來產生前述第1資料密鑰,以前述第1密鑰加密密鑰來將前述第1資料密鑰加密而取得前述第1加密資料密鑰,保存前述第1加密資料密鑰,當前述第2資料與前述第1資料相同,使用前述主機的使用者為前述第2使用者時,利用前述第2資料及前述密鑰導出密鑰來產生前述第1資料密鑰,以前述第2密鑰加密密鑰來將前述第1資料密鑰加密而取得前述第2加密資料密鑰,保存前述第2加密資料密鑰,當前述第2資料與前述第1資料不同,使用前述主機的使用者為前述第1使用者時,利用前述第2資料及前述密鑰導出密鑰來產生前述第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得前述第2加密資料,將前述第2加密資料寫入至前述第1非揮發性記憶體,以前述第1密鑰加密密鑰來將前述第2資料密鑰加密而取得前述第3加密資料密鑰,保存前述第3加密資料密鑰,當前述第2資料與前述第1資料不同,使用前述主機的使用者為前述第2使用者時,利用前述第2資料及前述密鑰導出密鑰來產生前述第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得前述第2加密資料,將前述第2加密資料寫入至前述第1非揮發性記憶體,以前述第2密鑰加密密鑰來將前述第2資料密鑰加密而取得前述第4加密資料密鑰,保存前述第4加密資料密鑰。
- 如請求項1記載的記憶系統,其中,前述控制器更被構成為: 當前述第2資料與前述第1資料相同,使用前述主機的使用者為前述第1使用者時,利用前述第2資料來產生前述第1資料密鑰,以前述第1資料密鑰來將第3資料加密而取得第3加密資料,將前述第3加密資料寫入至前述第1非揮發性記憶體,以前述第1密鑰加密密鑰來將前述第1資料密鑰加密而取得前述第1加密資料密鑰,保存前述第1加密資料密鑰,當前述第2資料與前述第1資料相同,使用前述主機的使用者為前述第2使用者時,利用前述第2資料來產生前述第1資料密鑰,以前述第1資料密鑰來將第4資料加密而取得第4加密資料,將前述第4加密資料寫入至前述第1非揮發性記憶體,以前述第2密鑰加密密鑰來將前述第1資料密鑰加密而取得前述第2加密資料密鑰,保存前述第2加密資料密鑰。
- 一種記憶系統的控制方法,係具備非揮發性記憶體的記憶系統的控制方法,其特徵為:前述非揮發性記憶體,係記憶以第1資料密鑰來將第1資料加密的第1加密資料,前述控制方法為:當應寫入至前述非揮發性記憶體的第2資料具有與前述第1資料相同的資料型樣,使用主機的使用者為第1使用者時,以使用和前述第1使用者建立關聯的資訊所產生的第1密鑰加密密鑰來將前述第1資料密鑰加密而取得第1加密資料密鑰,保存前述第1加密資料密鑰, 當前述第2資料具有與前述第1資料相同的資料型樣,使用前述主機的使用者為與前述第1使用者不同的第2使用者時,以使用和前述第2使用者建立關聯的資訊所產生的第2密鑰加密密鑰來將前述第1資料密鑰加密而取得第2加密資料密鑰,保存前述第2加密資料密鑰,當前述第2資料具有與前述第1資料不同的資料型樣,使用前述主機的使用者為前述第1使用者時,利用前述第2資料來產生第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得第2加密資料,將前述第2加密資料寫入至前述非揮發性記憶體,以前述第1密鑰加密密鑰來將前述第2資料密鑰加密而取得第3加密資料密鑰,保存前述第3加密資料密鑰,當前述第2資料具有與前述第1資料不同的資料型樣,使用前述主機的使用者為前述第2使用者時,利用前述第2資料來產生前述第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得前述第2加密資料,將前述第2加密資料寫入至前述非揮發性記憶體,以前述第2密鑰加密密鑰來將前述第2資料密鑰加密而取得第4加密資料密鑰,保存前述第4加密資料密鑰。
- 一種資訊處理系統,係藉由主機及具備非揮發性記憶體的記憶系統所構成的資訊處理系統,其特徵為:前述非揮發性記憶體,係記憶以第1資料密鑰來將第1資料加密的第1加密資料, 前述主機,係被構成為將第2資料與寫入要求一起發送至前述記憶系統,前述記憶系統係被構成為:當前述第2資料具有與前述第1資料相同的資料型樣,使用前述主機的使用者為第1使用者時,以使用和前述第1使用者建立關聯的資訊所產生的第1密鑰加密密鑰來將前述第1資料密鑰加密而取得第1加密資料密鑰,保存前述第1加密資料密鑰,當前述第2資料具有與前述第1資料相同的資料型樣,使用前述主機的使用者為與前述第1使用者不同的第2使用者時,以使用和前述第2使用者建立關聯的資訊所產生的第2密鑰加密密鑰來將前述第1資料密鑰加密而取得第2加密資料密鑰,保存前述第2加密資料密鑰,當前述第2資料具有與前述第1資料不同的資料型樣,使用前述主機的使用者為前述第1使用者時,利用前述第2資料來產生第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得第2加密資料,將前述第2加密資料寫入至前述非揮發性記憶體,以前述第1密鑰加密密鑰來將前述第2資料密鑰加密而取得第3加密資料密鑰,保存前述第3加密資料密鑰,當前述第2資料具有與前述第1資料不同的資料型樣,使用前述主機的使用者為前述第2使用者時,利用前述第2資料來產生前述第2資料密鑰,以前述第2資料密鑰來將前述第2資料加密而取得前述第2加密資料,將前述第2加密 資料寫入至前述非揮發性記憶體,以前述第2密鑰加密密鑰來將前述第2資料密鑰加密而取得第4加密資料密鑰,保存前述第4加密資料密鑰。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-134803 | 2020-08-07 | ||
JP2020134803A JP2022030661A (ja) | 2020-08-07 | 2020-08-07 | メモリシステム、制御方法、および情報処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202207060A TW202207060A (zh) | 2022-02-16 |
TWI775284B true TWI775284B (zh) | 2022-08-21 |
Family
ID=80114041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110102237A TWI775284B (zh) | 2020-08-07 | 2021-01-21 | 記憶系統、其控制方法及資訊處理系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220045850A1 (zh) |
JP (1) | JP2022030661A (zh) |
CN (1) | CN114064525A (zh) |
TW (1) | TWI775284B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220124452A (ko) * | 2021-03-03 | 2022-09-14 | 삼성전자주식회사 | 스토리지 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3379445A1 (en) * | 2017-03-22 | 2018-09-26 | Wincor Nixdorf International GmbH | System and method to generate encryption keys based on information of peripheral devices |
TW201935304A (zh) * | 2018-02-08 | 2019-09-01 | 美商美光科技公司 | 金鑰加密處理 |
US20190311139A1 (en) * | 2016-07-29 | 2019-10-10 | International Business Machines Corporation | Securely storing data in an elastically scalable dispersed storage network |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101878682B1 (ko) * | 2011-11-14 | 2018-07-18 | 삼성전자주식회사 | 컨텐츠를 보호하기 위한 방법 및 저장 매체 |
KR102013841B1 (ko) * | 2012-08-06 | 2019-08-23 | 삼성전자주식회사 | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 |
WO2016101153A1 (en) * | 2014-12-23 | 2016-06-30 | Nokia Technologies Oy | Method and apparatus for duplicated data management in cloud computing |
US10326744B1 (en) * | 2016-03-21 | 2019-06-18 | EMC IP Holding Company LLC | Security layer for containers in multi-tenant environments |
US11403019B2 (en) * | 2017-04-21 | 2022-08-02 | Pure Storage, Inc. | Deduplication-aware per-tenant encryption |
US10691340B2 (en) * | 2017-06-20 | 2020-06-23 | Samsung Electronics Co., Ltd. | Deduplication of objects by fundamental data identification |
US10666435B2 (en) * | 2018-01-09 | 2020-05-26 | Vmware, Inc. | Multi-tenant encryption on distributed storage having deduplication and compression capability |
US10841080B2 (en) * | 2018-03-20 | 2020-11-17 | International Business Machines Corporation | Oblivious pseudorandom function in a key management system |
US10887088B2 (en) * | 2018-03-20 | 2021-01-05 | International Business Machines Corporation | Virtualizing a key hierarchy using a partially-oblivious pseudorandom function (P-OPRF) |
US11128460B2 (en) * | 2018-12-04 | 2021-09-21 | EMC IP Holding Company LLC | Client-side encryption supporting deduplication across single or multiple tenants in a storage system |
US11431488B1 (en) * | 2020-06-08 | 2022-08-30 | Pure Storage, Inc. | Protecting local key generation using a remote key management service |
JP2022124165A (ja) * | 2021-02-15 | 2022-08-25 | キオクシア株式会社 | メモリシステム |
-
2020
- 2020-08-07 JP JP2020134803A patent/JP2022030661A/ja active Pending
-
2021
- 2021-01-21 TW TW110102237A patent/TWI775284B/zh active
- 2021-02-22 CN CN202110196076.6A patent/CN114064525A/zh active Pending
- 2021-03-02 US US17/190,027 patent/US20220045850A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190311139A1 (en) * | 2016-07-29 | 2019-10-10 | International Business Machines Corporation | Securely storing data in an elastically scalable dispersed storage network |
EP3379445A1 (en) * | 2017-03-22 | 2018-09-26 | Wincor Nixdorf International GmbH | System and method to generate encryption keys based on information of peripheral devices |
TW201935304A (zh) * | 2018-02-08 | 2019-09-01 | 美商美光科技公司 | 金鑰加密處理 |
Also Published As
Publication number | Publication date |
---|---|
TW202207060A (zh) | 2022-02-16 |
US20220045850A1 (en) | 2022-02-10 |
CN114064525A (zh) | 2022-02-18 |
JP2022030661A (ja) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475871B (zh) | 存储器*** | |
JP7375071B2 (ja) | メモリシステムおよび制御方法 | |
JP5662037B2 (ja) | 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング | |
US11775184B2 (en) | Memory system, information processing apparatus, and information processing system | |
US11847243B2 (en) | Memory system | |
US20100058073A1 (en) | Storage system, controller, and data protection method thereof | |
US20180260151A1 (en) | Data Storage Device and Operating Method Therefor | |
US8886963B2 (en) | Secure relocation of encrypted files | |
US11748273B2 (en) | Secure data communication with memory sub-system | |
JP2015172959A (ja) | フラッシュメモリのアクセス方法 | |
TWI775284B (zh) | 記憶系統、其控制方法及資訊處理系統 | |
US11468159B2 (en) | Memory system | |
US20230179418A1 (en) | Storage controller and method of operating electronic system | |
KR101467227B1 (ko) | Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템 | |
JP2013062616A (ja) | 記憶装置、データ記憶方法、及びデータコントローラ | |
US20230091431A1 (en) | Memory system and random number generation device | |
US20220261162A1 (en) | Memory system | |
US20220123932A1 (en) | Data storage device encryption | |
KR101648262B1 (ko) | Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템 | |
CN112468300B (zh) | 具有旁通通道的金钥管理装置及处理器芯片 | |
TW201830284A (zh) | 資料儲存系統、資料儲存方法及資料讀取方法 | |
TW202011248A (zh) | 資料儲存裝置以及其操作方法 | |
US20240086336A1 (en) | Storage device deleting encryption key, method of operating the same, and method of operating electronic device including the same | |
TW202036349A (zh) | 電腦系統及其虛擬硬碟的加解密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |