CN114064525A - 存储器系统、存储器系统的控制方法以及信息处理系统 - Google Patents
存储器系统、存储器系统的控制方法以及信息处理系统 Download PDFInfo
- Publication number
- CN114064525A CN114064525A CN202110196076.6A CN202110196076A CN114064525A CN 114064525 A CN114064525 A CN 114064525A CN 202110196076 A CN202110196076 A CN 202110196076A CN 114064525 A CN114064525 A CN 114064525A
- Authority
- CN
- China
- Prior art keywords
- data
- encryption key
- encrypted
- user
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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/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
- 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加密数据。控制器构成为对所述第1非易失性存储器进行控制。所述控制器在从主机与写入请求一起接收到的第2数据与所述第1数据相同且正在使用所述主机的用户是与第1用户不同的第2用户的情况下,用与所述第2用户相关联的第2密钥加密密钥将第1数据加密密钥进行加密而取得第2加密数据加密密钥,并保存所述第2加密数据加密密钥。
Description
本申请享受以日本专利申请2020-134803号(申请日:2020年8月7日)为基础申请的优先权。本申请通过参照该基础申请而包括基础申请的全部内容。
技术领域
本发明的实施方式涉及具备非易失性存储器的存储器系统(memory system)、存储器系统的控制方法以及信息处理系统。
背景技术
近年来,具备非易失性存储器的存储器系统广为普及。
作为这种存储器系统之一,已知有具备NAND型闪速存储器(flash memory,闪存)的固态硬盘(SSD:Solid State Drive)。SSD被用作各种计算设备的主储存器(mainstorage)。
存储于储存器的数据有时会被加密。例如,通过用对于每个用户而言唯一的加密密钥(密码键)将数据加密,能够实现其他用户无法取得某个用户的数据这样的机密性。
此外,最近对高效地将大量数据保存于储存器提出了要求。作为用于改善储存效率的技术,已知有去重(De-duplication,重复数据删除、重复排除)技术。
然而,由于用每个用户的密钥加密了的数据无法由多个用户共享,因此难以实现跨多个用户的数据的去重。为此,需要实现一种能够保守每个用户的数据的机密性并且(同时)提高储存效率的新机能。
发明内容
本发明提供能够保守每个用户的数据的机密性并且提高储存效率的存储器系统、存储器系统的控制方法以及信息处理系统。
根据实施方式,存储器系统具备第1非易失性存储器和控制器。第1非易失性存储器存储将第1数据用第1数据加密密钥进行了加密的第1加密数据。控制器在从主机(host)与写入请求一起接收到的第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实施方式涉及的存储器系统的信息处理系统的构成例的框图。
图2是表示第1实施方式的存储器系统中的数据去重的例子的图。
图3是表示第1实施方式的存储器系统中所使用的逻辑物理地址转换表(table)的一个结构例的图。
图4是表示第1实施方式的存储器系统中所使用的物理地址-哈希值对应表的一个结构例的图。
图5是表示第1实施方式的存储器系统中所使用的加密DEK(Data EncryptionKey,数据加密密钥)表的一个结构例的图。
图6是表示第1比较例涉及的存储器系统中的写(write,写入)工作(动作)以及读(read,读取)工作的例子的框图。
图7是表示第2比较例涉及的存储器系统中的写工作以及读工作的例子的框图。
图8是表示第3比较例涉及的存储器系统中的在不存在重复数据的情况下的写工作的例子的框图。
图9是表示第3比较例涉及的存储器系统中在存在重复数据的情况下的无法实现写工作的例子的框图。
图10是表示第1实施方式的存储器系统中的写工作的例子的框图。
图11是表示第1实施方式的存储器系统中的读工作的例子的框图。
图12是表示第1实施方式的存储器系统中执行的控制处理的步骤的例子的流程图。
图13是表示第1实施方式的存储器系统中执行的读处理的步骤的例子的流程图。
图14是表示第1实施方式的存储器系统中执行的写处理的步骤的例子的流程图。
图15是表示包括第2实施方式涉及的存储器系统的信息处理系统的构成例的框图。
图16是表示第2实施方式的存储器系统中的写工作的例子的框图。
标号说明
1信息处理系统;2主机;3SSD;4控制器;5NAND型闪速存储器;6DRAM;11主机I/F(接口);12CPU;13NAND I/F;14DRAM I/F;121写控制部;122读控制部;123重复控制部;124DEK(数据加密密钥)生成部;125KEK(密钥加密密钥)生成部;126DEK加密/解密部;127数据加密/解密部;20FW(固件);21逻辑物理地址转换表;22物理地址-哈希值对应表;23加密DEK表。
具体实施方式
以下,参照附图,对实施方式进行说明。
(第1实施方式)
首先,参照图1,说明包括第1实施方式涉及的存储器系统的信息处理系统1的构成。信息处理系统1包括主机设备2(以下,称为主机2)和存储器系统。
存储器系统是构成为向如NAND型闪速存储器5这样的非易失性存储器写入数据、从非易失性存储器读取数据的半导体储存设备,也被称为储存设备。该非易失性存储器包括多个存储元件,可对多个存储元件的每一个多次写入数据。存储器系统例如实现为具备NAND型闪速存储器5的SSD(固态硬盘)3。虽然以下对将存储器系统实现为SSD3的情况进行例示,但存储器系统也可以实现为硬盘驱动器(HDD)。或者,存储器系统也可以实现为具备多个储存设备的储存系统(所谓的企业储存器)。
主机2既可以是将大量且多样的数据保存到SSD3的储存服务器,也可以是个人计算机。主机2可由多个用户(例如用户A、用户B和用户C)使用。另外,主机2也可以为多个,各主机可由一个以上的用户使用。
SSD3可用作主机2的储存器。SSD3既可以内置于主机2,也可以经由电缆或者网络与主机2连接。
用于连接主机2与SSD3的接口遵照SCSI(小型计算机系统接口标准)、SAS(SerialAttached SCSI,串行SCSI)、ATA(AT Attachment,高级技术附件规格)、SATA(Serial ATA,串行ATA)、PCIe(PCI Express,高速串行计算机扩展总线标准)(注册商标)、Ethernet(以太网)(注册商标)、Fibre Channel(光纤通道)、NVMe(NVM Express,非易失性内存标准)(注册商标)等。
SSD3具备控制器4以及NAND型闪速存储器5。控制器4能够由SoC(System-on-a-Chip,片上系统)这样的电路实现。
SSD3也可以具备作为易失性存储器的随机存取存储器(RAM)、例如DRAM(动态随机存取存储器)6。或者也可以,如静态随机存取存储器(SRAM)这样的RAM内置于控制器4。此外,DRAM6也可以内置于控制器4。
在DRAM6等RAM中,例如设置有从NAND型闪速存储器5加载(load)的FW(Firmware,固件)20的存储区域。
NAND型闪速存储器5包括多个区块(block)。各区块包括多页(page)。一个区块作为最小的消除单位而发挥功能。区块有时也被称为“消除区块”或者“物理区块”。各页包括与同一字线连接的多个存储器单元(memory cell)。一页是数据写入工作以及数据读取工作的单位。此外,也可以将字线作为数据写入工作以及数据读取工作的单位。
针对各区块能够容许的编程/擦除循环数具有上限(最大P/E循环数)。某个区块的一次P/E循环包括用于使该区块内的所有存储器单元成为消除状态的消除工作和向该区块的各页写入数据的写入工作。
控制器4也可以包括主机I/F(主机接口)11、CPU12、NAND I/F13、DRAM I/F(DRAM接口)14等。上述主机I/F11、CPU12、NAND I/F13、DRAM I/F14能够经由总线10相互连接。
控制器4经由与Toggle DDR、ONFI(Open NAND Flash Interface,开放式NAND闪存接口)等接口标准对应的NAND I/F13,与NAND型闪速存储器5电连接。NAND I/F13作为构成为控制NAND型闪速存储器5的NAND控制电路而发挥功能。
NAND I/F13也可以经由多个通道(Ch)与NAND型闪速存储器5内的多个NAND型闪速存储器芯片分别连接。通过多个NAND型闪速存储器芯片并行驱动,能够使对于NAND型闪速存储器5的存取(access,访问)宽带化。
控制器4作为构成为控制NAND型闪速存储器5的存储器控制器而发挥功能。
控制器4也可以作为构成为执行NAND型闪速存储器5的数据管理以及区块管理的闪存转换层(FTL:Flash translation layer)而发挥功能。由该FTL执行的数据管理包括(1)表示各个逻辑地址与NAND型闪速存储器5的各个物理地址之间的对应关系的映射信息的管理、(2)用于隐藏以页为单位的读/写工作和以区块为单位的消除(擦除)工作的处理、等。逻辑地址是为了对SSD3进行地址指定而由主机2使用的地址。
关于各个逻辑地址与各个物理地址之间的映射的管理,使用逻辑物理地址转换表21来执行。控制器4使用逻辑物理地址转换表21,以特定的管理尺寸为单位,管理各个逻辑地址与各个物理地址之间的映射。与某个逻辑地址对应的物理地址表示该逻辑地址的数据被写入到NAND型闪速存储器5内的物理存储位置。逻辑物理地址转换表21也可以在SSD3的电源接通(ON)时从NAND型闪速存储器5加载到DRAM6。
每一次P/E循环仅能进行一次向一页的数据写入。因此,控制器4并非将与某个逻辑地址对应的更新数据写入到存储有与该逻辑地址对应的以前的数据的物理存储位置,而是将该更新数据写入到另一物理存储位置。而且,控制器4通过以将该逻辑地址与该另一物理存储位置相关联的方式更新逻辑物理地址转换表21,从而使以前的数据无效。以下,将从逻辑物理地址转换表21参照的数据(即与逻辑地址关联的数据)称为有效数据。另外,将没有与任何逻辑地址关联的数据称为无效数据。有效数据是之后有可能从主机2读取的数据。无效数据是已经不可能从主机2读取的数据。
上述的物理地址以及逻辑地址是用于控制NAND型闪速存储器5、硬盘(HD)的概念。该物理地址通常确定以512字节到4096字节为单位的存储区域。另外,该逻辑地址由各种国际标准定义。这些物理地址以及逻辑地址是NAND技术的物理/逻辑地址,在此称为低层(lower layer)的物理/逻辑地址。控制器4例如在与NAND型闪速存储器5的控制接近的层,使用低层的物理/逻辑地址。
控制器4还能够在接近主机2的层,管理用于确定更大的存储区域的物理地址以及逻辑地址(以下,称为高层的物理/逻辑地址)。这些物理地址以及逻辑地址例如确定以几千字节(KB)到几兆字节(MB)为单位的存储区域。在本实施方式中,例如在后述的数据的去重以及加密中,使用高层的物理/逻辑地址。
也即是说,控制器4例如能够构成为在接近NAND型闪速存储器5的层使用低层的物理/逻辑地址,在相比之下更接近主机2的层使用高层的物理/逻辑地址。
区块管理包括不良区块的管理、磨损均衡(wear leveling)、垃圾回收(garbagecollection)等。
主机I/F11是进行SSD3与作为SSD3的外部装置的主机2间的通信的硬件接口电路。主机I/F11作为从主机2接收各种命令例如I/O命令、各种控制命令的电路而发挥功能。I/O命令可能包括写命令、读命令。控制命令可能包括取消映射(unmap)命令(修剪(trim)命令)、格式化(format)命令。格式化命令是用于将整个SSD3进行取消映射的命令。主机I/F11也作为将与命令相应的响应、数据发送给主机2的发送电路而发挥功能。
DRAM I/F14作为构成为对DRAM6的存取进行控制的DRAM控制电路而发挥功能。DRAM6的存储区域例如被分配为用于存储FW20的区域、作为读/写缓冲器等利用的缓冲区域、以及逻辑物理地址转换表21、物理地址-哈希值对应表22、加密DEK表23等信息的高速缓存区域。
物理地址-哈希值对应表22以及加密DEK表23能够在SSD3的电源接通时从NAND型闪速存储器5加载到DRAM6。物理地址-哈希值对应表22示出表示加密地存储于NAND型闪速存储器5的用户数据的物理存储位置的物理地址与该用户数据的哈希值的对应。加密DEK表23是用于加密地保存用于将用户数据加密的数据加密密钥(Data Encryption Key:DEK)的表。关于物理地址-哈希值对应表22以及加密DEK表23的详情,将会在后面分别参照图4以及图5进行说明。
控制器4具有用于进行数据的去重和加密的功能。
图2表示SSD3中的数据去重的例子。去重是使得不向NAND型闪速存储器5重复地写入同一模式(pattern)的数据的控制方法。控制器4解析要向NAND型闪速存储器5写入的用户数据,自动排除检测出的重复数据。也即是说,在要向NAND型闪速存储器5写入的用户数据是重复数据的情况下,控制器4跳过(略去)对该用户数据的写入。
例如在定期的备份处理中,可能会频繁发生与已经写入到NAND型闪速存储器5的用户数据相同的用户数据的写入。在这种情况下,通过去重,能够大幅地削减数据传输量和数据存储容量。另外,在如NAND型闪速存储器5这样的P/E循环数有上限的硬件中,通过削减数据的写入次数,能够延长其寿命。
在图2中,由基于物理地址的数据配置(布局)51和基于逻辑地址的数据配置52示出数据去重的例子。基于物理地址的数据配置51表示NAND型闪速存储器5上的数据(数据模式)的物理的存储位置。基于逻辑地址的数据配置52表示由主机2识别的数据的逻辑的存储位置。
具体而言,在基于物理地址的数据配置51中,数据模式A存储于物理地址“1”。数据模式B存储于物理地址“2”。数据模式C存储于物理地址“3”。另外,物理地址“4”为未使用的状态。
相对于此,在基于逻辑地址的数据配置52中,数据模式A存储于逻辑地址“1”。数据模式B存储于逻辑地址“2”。数据模式C存储于逻辑地址“3”。数据模式B存储于逻辑地址“4”。
据此,数据模式B在物理上仅存储于一处(即物理地址“2”),但从主机2,识别为数据模式B存储于两处(即逻辑地址“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”与一个物理地址“2”(即数据模式B)相关联,因此不必物理地在两个位置存储数据模式B。也即是说,能够避免将同一数据模式重复地存储于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中,例如可使用从用户数据导出的哈希值、基于哈希的消息认证码(HMAC:Hash-based Message Authentication Code)值。DEK生成部124例如将用户数据代入到第1哈希函数中,生成哈希值。
重复控制部123判定与写命令一起接收到的用户数据是否和与存储于NAND型闪速存储器5的加密数据对应的明文数据(以下,也称为已保存数据)相同。即,重复控制部123判定接收到的用户数据是否为重复数据。此外,某个加密数据与某个明文数据对应意味着如下关系:通过将该明文数据用DEK进行加密,可获得该加密数据。
更具体而言,重复控制部123计算接收到的用户数据的哈希值。然后,重复控制部123判定计算出的哈希值是否和与存储于NAND型闪速存储器5的加密数据对应的明文数据的哈希值一致。在两个哈希值一致的情况下,重复控制部123判断为接收到的用户数据是重复数据。另一方面,在两个哈希值不一致的情况下,重复控制部123判断为接收到的用户数据不是重复数据。与存储于NAND型闪速存储器5的加密数据对应的明文数据的哈希值例如由物理地址-哈希值对应表22管理。
图4表示由重复控制部123使用的物理地址-哈希值对应表22的一个结构例。物理地址-哈希值对应表22可包含与多个物理地址对应的多个条目(entry)。各条目包含物理地址的字段(field)和哈希值的字段。
在与某个物理地址对应的条目中,物理地址的字段表示该物理地址。哈希值的字段表示与存储于该物理地址的加密数据对应的明文数据(用户数据)的哈希值。
在图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将从NAND型闪速存储器5读取到的加密数据用DEK进行解密,取得明文数据。在加密数据是根据读命令而读取到的数据的情况下,将所取得的明文数据发送给主机2。
KEK生成部125生成与正在使用主机2的用户相关联的密钥加密密钥(KeyEncryption Key:KEK)。KEK是被用于将DEK进行加密的密钥。KEK生成部125例如使用在主机2上用户输入的密码,生成KEK。KEK生成部125例如生成密码的哈希值作为KEK。
DEK加密/解密部126将DEK用KEK进行加密,取得加密DEK。加密DEK与由写命令所指定的逻辑地址相关联地保存于加密DEK表23。
另外,DEK加密/解密部126将从加密DEK表23中取得的加密DEK用KEK进行解密,取得DEK。该DEK被用于由数据加密/解密部127进行的加密数据的解密。
图5表示加密DEK表23的一个结构例。加密DEK表23包含与一个以上的逻辑地址对应的一个以上的条目。各条目包含逻辑地址的字段和加密DEK的字段。
在与某个逻辑地址(以下,称为第1逻辑地址)对应的条目中,逻辑地址的字段表示第1逻辑地址。
加密DEK的字段表示与第1逻辑地址对应的加密DEK。在要将用户数据存储于第1逻辑地址的情况下,控制器4将用户数据用DEK进行加密,并将加密了的用户数据写入到NAND型闪速存储器5。加密DEK是将加密该用户数据所使用的DEK用对应的用户的KEK进行加密得到的。
以下,作为一例,具体地对当在NAND型闪速存储器5中存储有将第1数据用第1DEK加密了的第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将第2数据用第2DEK进行加密,取得第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加密数据对应的保存在加密DEK表23中的第1加密DEK用第1KEK进行解密,取得第1DEK。另外,DEK加密/解密部126在正在使用主机2的用户是第2用户的情况下,将与第1加密数据对应的保存在加密DEK表23中的第2加密DEK用第2KEK进行解密,取得第1DEK。然后,数据加密/解密部127将读取到的第1加密数据用第1DEK进行解密。将通过解密得到的第1数据(=第2数据)发送给主机2。
另一方面,在第2数据与第1数据不同的情况下,读控制部122从NAND型闪速存储器5读取第2加密数据。DEK加密/解密部126在正在使用主机2的用户是第1用户的情况下,将与第2加密数据对应的保存在加密DEK表23中的第3加密DEK用第1KEK进行解密,取得第2DEK。另外,DEK加密/解密部126在正在使用主机2的用户是第2用户的情况下,将与第2加密数据对应的保存在加密DEK表23中的第4加密DEK用第2KEK进行解密,取得第2DEK。然后,数据加密/解密部127将读取到的第2加密数据用第2DEK进行解密。将通过解密得到的第2数据发送给主机2。
此外,在接收上述的请求写入第2数据的写命令之前,写控制部121从主机2接收由正在使用主机2的第2用户(例如用户B)请求写入第1数据的写命令。第1数据与写命令一起被接收。第1数据是要向NAND型闪速存储器5写入的用户数据。
DEK生成部124使用第1数据生成第1DEK。数据加密/解密部127将第1数据用第1DEK进行加密,取得第1加密数据。写控制部121将第1加密数据写入到NAND型闪速存储器5。KEK生成部125生成与正在使用主机2的第2用户(例如用户B)相关联的第2KEK。KEK生成部125例如使用在主机2上由第2用户输入的第2密码生成第2KEK。DEK加密/解密部126将第1DEK用第2KEK进行加密,取得第3加密DEK。第3加密DEK例如被保存于加密DEK表23。
另外,读控制部122从主机2接收请求读取第1数据的读命令。此外,假设通过该读命令请求读取第1数据的用户是第2用户。
读控制部122根据该读命令,从NAND型闪速存储器5读取第1加密数据。DEK加密/解密部126将保存在加密DEK表23中的第3加密DEK用第2KEK进行解密,取得第1DEK。数据加密/解密部127将读取到的第1加密数据用第1DEK进行解密。将通过解密得到的第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将第1DEK用第1KEK进行加密,保存第1加密DEK。由此,可以说,将NAND型闪速存储器5内的第1加密数据进行解密获得的第1数据(=第2数据)被与用于将第1加密DEK进行解密的第1KEK相关联的第1用户保密(隐匿)。据此,即使在物理上取出了NAND型闪速存储器5,也无法解密所存储的加密数据,因此能够防止对应的明文数据泄漏。
此外,关于上述的用于数据的去重和加密的功能,不限于由SSD3的控制器4具有,也可以由在各种计算设备中执行的文件系统驱动器和/或操作系统(OS)具有,或者也可以由搭载多个SSD和/或HD的、企业和/或数据中心的储存系统具有。
另外,由控制器4进行的用于数据的去重和加密的工作的一部分也可以通过主机2进行。即是说,也可以为,主机2与控制器4协同工作来实现数据的去重和加密。
接下来,参照图6至图9,对三个比较例进行说明。这些比较例实现为具有在多个用户进行存取的情况下的安全功能的储存装置。具体而言,第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将数据加密,因此无法由多个用户共享加密数据。也即是说,某个加密数据只能用将其加密所使用的一位用户的DEK进行解密。
因此,在由于与写命令一起接收到的用户数据与已保存数据重复而跳过了用于写入该用户数据的写工作的情况下,通过该写命令请求进行写入的用户将无法从第2储存装置7B取得用户数据。这是因为,无法用与该用户相关联的DEK将与已保存数据对应的加密数据进行解密。
如此,由于无法由多个用户共享加密数据,因为不能在第2储存装置7B中实现去重。
(使用每个用户的KEK的加密储存装置)
图8是表示第3比较例涉及的储存装置7C(以下,称为第3储存装置7C)中的、在不存在重复的已保存数据的情况下的写工作的例子的框图。该第3储存装置7C将用于加密用户数据的DEK用每个用户的唯一的KEK进行加密并保存。
第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将DEK用KEK进行加密,取得加密DEK。该KEK是与通过写命令请求写入用户数据的用户相关联的KEK。DEK加密/解密部155将加密DEK发送给写控制部151。写控制部151将加密DEK保存于加密DEK表23C。在加密DEK表23C中,例如保存与由写命令所指定的逻辑地址相关联的加密DEK。
如图8所示,在不存在与准备写入的用户数据重复的已保存数据的情况下,第3储存装置7C将用户数据用随机数的DEK进行加密并写入到NAND型闪速存储器5C,并且将该DEK用每个用户的KEK加密并保存。
图9是表示在第3储存装置7C中在存在重复的已保存数据的情况下的无法实现写工作的例子的框图。
在由重复控制部152判断为用户数据与已保存数据重复的情况下,数据加密/解密部156不对用户数据进行加密。而且,写控制部151跳过用于将被加密的用户数据写入到NAND型闪速存储器5C的写工作。
在该情况下,写控制部151以及DEK加密/解密部155需要将在与已保存数据对应的加密数据的加密中使用的DEK用通过写命令请求写入用户数据的用户的KEK进行加密并保存于加密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,并将DEK用对于每个用户而言唯一的KEK进行加密而保存。DEK不是随机数,而是根据用户数据导出的,因此准备写入同一模式的用户数据的多个用户能够共享与该用户数据对应的DEK。通过用被共享的DEK加密用户数据,多个用户能够共享该加密数据。
另外,由于控制器4将DEK用每个用户的KEK进行加密而保存,因此例如在正确输入了用于生成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将DEK用KEK进行加密,取得加密DEK。该KEK是与通过写命令请求写入用户数据的用户相关联的KEK。DEK加密/解密部126将加密DEK发送给写控制部121。
写控制部121将加密DEK保存于加密DEK表23。在加密DEK表23中,例如保存与由写命令所指定的逻辑地址相关联的加密DEK。
如此,在用户数据与已保存数据不同的情况下,控制器4用使用用户数据生成的DEK将用户数据进行加密并写入到NAND型闪速存储器5。而且,控制器4将该DEK用与通过写命令请求写入用户数据的用户相关联的KEK进行加密并保存于加密DEK表23。
(用户数据与已保存数据相同的情况)
在由重复控制部123判断为用户数据与已保存数据相同的情况下,数据加密/解密部127不对用户数据进行加密。而且,写控制部121跳过用于将被加密的用户数据写入到NAND型闪速存储器5的写工作。也即是说,写控制部121不向NAND型闪速存储器5发送写指示。
此外,写控制部121将逻辑物理地址转换表21更新以使其示出由写命令所指定的逻辑地址与将已保存数据进行了加密的加密数据被存储的物理地址的映射。另外,由于没有发生新的物理的写入,因此写控制部121不更新物理地址-哈希值对应表22。
DEK加密/解密部126将DEK用KEK进行加密,取得加密DEK。该DEK与加密已保存数据所使用的DEK相同。另外,KEK是与通过写命令请求写入用户数据的用户相关联的KEK。DEK加密/解密部126将加密DEK发送给写控制部121。
写控制部121将加密DEK保存于加密DEK表23。在加密DEK表23中,例如保存与由写命令所指定的逻辑地址相关联的加密DEK。
如此,在用户数据与已保存数据相同的情况下,控制器4不使用户数据加密,不向NAND型闪速存储器5写入。然而,控制器4将使用用户数据生成的DEK用与通过写命令请求写入用户数据的用户相关联的KEK进行加密,并保存于加密DEK表23。
据此,在用户数据与已保存数据相同的情况下,控制器4不进行用于将用户数据写入到NAND型闪速存储器5的工作,能够实现去重。另外,控制器4使用用户数据生成加密已保存数据所使用的DEK,并将该DEK用与用户相关联的KEK进行加密而保存。因此,可以说,与用户数据相同的已保存数据被与KEK相关联的用户保密。
如上所述,写工作的内容根据用户数据是否与已保存数据相同而不同。例如在用户数据与已保存数据相同的情况下,不进行将用户数据加密并写入到NAND型闪速存储器5的工作。在该情况下,相比于用户数据与已保存数据不同的情况,与写命令相应的处理时间较短,功耗也较低。
因此,在某个用户通过写命令请求写入某个用户数据、且进行了与该请求相应的写工作的情况下,存在根据其处理时间和/或功耗而能够推测用户数据是否与已保存数据重复的可能性。
为了使得无法进行这种推测,在用户数据与已保存数据相同的情况下,写控制部121以及数据加密/解密部127也可以进行虚拟(dummy)的加密处理和写入处理。具体而言,数据加密/解密部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将加密DEK用KEK进行解密,取得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:否),控制器4返回至步骤S101,再次判定是否接收到密码。
另一方面,在接收到密码的情况下(步骤S101:是),控制器4使用密码生成KEK(步骤S102)。控制器4例如生成密码的哈希值作为KEK。由此,控制器4能够使用KEK将DEK加密,并且能够使用KEK将该加密DEK进行解密。
接下来,控制器4判定是否从主机2接收到I/O命令(步骤S103)。在没有接收到I/O命令的情况下(步骤S103:否),控制器4返回至步骤S103,再次判定是否接收到I/O命令。
另一方面,在接收到I/O命令的情况下(步骤S103:是),控制器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的流程图,该读处理相当于上述的控制处理的步骤S105。
控制器4使用逻辑物理地址转换表21决定与由读命令所指定的逻辑地址对应的物理地址(步骤S201)。然后,控制器4从NAND型闪速存储器5内的所决定的物理地址,读取加密数据(步骤S202)。
另外,控制器4从加密DEK表23中取得与由读命令所指定的逻辑地址对应的加密DEK(步骤S203)。然后,控制器4将加密DEK用与用户对应的KEK进行解密(步骤S204)。KEK使用正在使用主机2的用户输入的密码来生成。另外,加密DEK只能用将其加密所使用的KEK进行解密。因此,控制器4也可以在从主机2接收到错误的密码的情况下或者在没能正常地将加密DEK用KEK进行解密的情况下,判断为是不正常的访问,中止读处理。
此外,控制器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。在加密数据的解密中,使用了将加密DEK用每个用户的唯一的KEK进行解密得到的DEK。因此,在得不到对应的用户的KEK的不正常的访问中,加密数据不会被解密。据此,能够防止在不正常的访问中泄漏明文的用户数据。
图14是表示由控制器4执行的写处理的步骤的例子的流程图。参照图12的流程图,该写处理相当于上述的控制处理的步骤S106。
控制器4从主机2接收要向NAND型闪速存储器5写入的用户数据(步骤S301)。控制器4计算用户数据的哈希值(步骤S302)。
然后,控制器4使用计算出的哈希值和物理地址-哈希值对应表22,判定接收到的用户数据是否和与存储于NAND型闪速存储器5的加密数据对应的明文数据(已保存数据)重复(步骤S303)。也即是说,控制器4判定与接收到的用户数据相同模式的数据是否已被加密并存储于NAND型闪速存储器5。
在用户数据与已保存数据重复的情况下(步骤S303:是),控制器4使用用户数据生成DEK(步骤S304)。控制器4例如生成用户数据的哈希值作为DEK。然后,控制器4将逻辑物理地址转换表21更新,以使得由写命令所指定的逻辑地址和写入了与该已保存数据对应的加密数据的物理地址相关联(即建立映射)(步骤S305)。由此,写入加密数据的一个物理地址可与多个逻辑地址相关联。
另外,在用户数据不与已保存数据重复的情况下(步骤S303:否),控制器4使用用户数据生成DEK(步骤S306)。控制器4将用户数据用DEK进行加密(步骤S307),将加密了的用户数据(加密数据)写入到NAND型闪速存储器5(步骤S308)。控制器4将逻辑物理地址转换表21更新,以使得由写命令所指定的逻辑地址与写入了加密数据的物理地址相关联(即建立映射)(步骤S309)。然后,控制器4将物理地址-哈希值对应表22更新(步骤S310)。更具体而言,当在物理地址-哈希值对应表22中存在包含写入了加密数据的物理地址的条目的情况下,控制器4在该条目内的哈希值的字段中设定通过步骤S302计算出的用户数据的哈希值。
当在步骤S305中将逻辑物理地址转换表21更新后或者在步骤S310中将物理地址-哈希值对应表22更新后,控制器4用与用户对应的KEK将DEK进行加密(步骤S311)。KEK使用正在使用主机2的用户输入的密码来生成。然后,控制器4将加密了的DEK进行保存(步骤S312)。更具体而言,当在加密DEK表23中不存在包含与用户数据对应的逻辑地址(即由写命令所指定的逻辑地址)的条目的情况下,控制器4将包含该逻辑地址和加密DEK的条目追加到加密DEK表23中。另外,当在加密DEK表23中存在包含与用户数据对应的逻辑地址的条目的情况下,控制器4在该条目内的加密DEK的字段中设定通过步骤S311得到的加密DEK。
通过以上的写处理,控制器4能够在与写命令一起接收到的用户数据与已保存数据重复的情况下,跳过将用户数据加密的处理和将加密数据写入到NAND型闪速存储器5的处理,实现去重。
另外,不管用户数据是否与已保存数据重复,控制器4都使用用户数据生成DEK。由此,能够由请求写入同一模式的用户数据的多个用户共享用DEK加密用户数据得到的加密数据。
再者,控制器4将DEK用每个用户的唯一的KEK进行加密,并将加密DEK保存。据此,为了将加密数据进行解密,需要将所保存的加密DEK用每个用户的KEK进行解密。因此,用户通过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的构成的基础之上,还具备OTP存储器(One TimeProgrammable memory,一次性可编程存储器)15。
OTP存储器15包括多个存储元件(即存储器单元),可对多个存储元件的每一个写入一次数据。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存储将第1数据用第1DEK进行了加密的第1加密数据。控制器4在从主机2与写入请求(例如写命令)一起接收到的第2数据与第1数据相同且正在使用主机2的用户是第1用户的情况下,用与第1用户相关联的第1KEK将第1DEK进行加密而取得第1加密DEK,并保存第1加密DEK。控制器4在第2数据与第1数据相同且正在使用主机2的用户是与第1用户不同的第2用户的情况下,用与第2用户相关联的第2KEK将第1DEK进行加密而取得第2加密DEK,并保存第2加密DEK。控制器4在第2数据与第1数据不同且正在使用主机2的用户是第1用户的情况下,使用第2数据生成第2DEK,将第2数据用第2DEK进行加密而取得第2加密数据,将第2加密数据写入到NAND型闪速存储器5,用第1KEK将第2DEK进行加密而取得第3加密DEK,并保存第3加密DEK。控制器4在第2数据与第1数据不同且正在使用主机2的用户是第2用户的情况下,使用第2数据生成第2DEK,将第2数据用第2DEK进行加密而取得第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用户的情况下,将第1DEK用与第1用户相关联的第1KEK进行加密并保存。在该情况下,可以说,将NAND型闪速存储器5内的第1加密数据进行解密获得的第1数据(=第2数据)被与用于将加密了的第1DEK进行解密的第1KEK相关联的第1用户保密。
再者,在第1数据与第2数据相同且正在使用主机2的用户是与第1用户不同的第2用户的情况下,将第1DEK用与第2用户相关联的第2KEK进行加密并保存。在该情况下,可以说,将NAND型闪速存储器5内的第1加密数据进行解密获得的第1数据(=第2数据)被与用于将加密了的第1DEK进行解密的第2KEK相关联的第2用户保密。
通过以上,SSD3能够保守每个用户的数据的机密性并且提高储存效率。
第1以及第2实施方式所记载的各种功能分别也可以通过电路(处理电路)实现。处理电路的例子包括如中央处理装置(CPU)这样的被程序化的处理器。该处理器通过执行存储于存储器的计算机程序(命令群)来执行所记载的各个功能。该处理器也可以是包括电路的微型处理器。处理电路的例子也包括数字信号处理器(DSP)、面向特定用途的集成电路(ASIC)、微型控制器、控制器、其他电路部件。这些实施方式所记载的CPU以外的其他组件分别也可以通过处理电路实现。
说明了本发明的几个实施方式,但是这些实施方式是作为例子而提示的,并非意图限定发明的范围。这些新的实施方式能够以其他各种各样的方式来实施,在不脱离发明要旨的范围内能够进行各种省略、替换、变更。这些实施方式和/或其变形包含于发明的范围和/或要旨内,并且包含于技术方案中记载的发明及与其等同的范围内。
Claims (12)
1.一种存储器系统,具备:
第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加密数据加密密钥。
2.根据权利要求1所述的存储器系统,
所述控制器还构成为,
从所述主机接收用于读取所述第2数据的读取请求;
在所述第2数据与所述第1数据相同且正在使用所述主机的用户是所述第1用户的情况下,从所述第1非易失性存储器读取所述第1加密数据,将所述第1加密数据加密密钥用所述第1密钥加密密钥进行解密而取得所述第1数据加密密钥,并将读取到的所述第1加密数据用所述第1数据加密密钥进行解密;
在所述第2数据与所述第1数据相同且正在使用所述主机的用户是所述第2用户的情况下,从所述第1非易失性存储器读取所述第1加密数据,将所述第2加密数据加密密钥用所述第2密钥加密密钥进行解密而取得所述第1数据加密密钥,并将读取到的所述第1加密数据用所述第1数据加密密钥进行解密。
3.根据权利要求1或2所述的存储器系统,
所述控制器还构成为,
从所述主机接收用于读取所述第2数据的读取请求;
在所述第2数据与所述第1数据不同且正在使用所述主机的用户是所述第1用户的情况下,从所述第1非易失性存储器读取所述第2加密数据,将所述第3加密数据加密密钥用所述第1密钥加密密钥进行解密而取得所述第2数据加密密钥,并将读取到的所述第2加密数据用所述第2数据加密密钥进行解密;
在所述第2数据与所述第1数据不同且正在使用所述主机的用户是所述第2用户的情况下,从所述第1非易失性存储器读取所述第2加密数据,将所述第4加密数据加密密钥用所述第2密钥加密密钥进行解密而取得所述第2数据加密密钥,并将读取到的所述第2加密数据用所述第2数据加密密钥进行解密。
4.根据权利要求1或2所述的存储器系统,
在所述第2数据与所述第1数据相同的情况下,所述第1数据加密密钥是所述第2数据的哈希值或者基于哈希的消息认证码值即HMAC值,
在所述第2数据与所述第1数据不同的情况下,所述第1数据加密密钥是所述第1数据的哈希值或者基于哈希的消息认证码值即HMAC值,所述第2数据加密密钥是所述第2数据的哈希值或者基于哈希的消息认证码值即HMAC值。
5.根据权利要求1或2所述的存储器系统,
所述控制器还构成为,
使用在所述主机上由所述第1用户输入的第1密码生成所述第1密钥加密密钥;
使用在所述主机上由所述第2用户输入的第2密码生成所述第2密钥加密密钥。
6.根据权利要求1或2所述的存储器系统,
所述控制器还构成为,在接收所述第2数据之前,使用从所述第2用户正在使用的所述主机与写入请求一起收取到的所述第1数据生成所述第1数据加密密钥,将所述第1数据用所述第1数据加密密钥进行加密而取得所述第1加密数据,将所述第1加密数据写入到所述第1非易失性存储器,用所述第2密钥加密密钥将所述第1数据加密密钥进行加密而取得所述第3加密数据加密密钥,并保存所述第3加密数据加密密钥。
7.根据权利要求6所述的存储器系统,
所述控制器还构成为,
从所述主机接收用于读取所述第1数据的读取请求;
在正在使用所述主机的用户是所述第2用户的情况下,从所述第1非易失性存储器读取所述第1加密数据,将所述第3加密数据加密密钥用所述第2密钥加密密钥进行解密而取得所述第1数据加密密钥,并将读取到的所述第1加密数据用所述第1数据加密密钥进行解密。
8.根据权利要求1所述的存储器系统,
所述控制器构成为,在所述第2数据与所述第1数据相同的情况下,使用所述第2数据生成所述第1数据加密密钥。
9.根据权利要求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加密数据加密密钥。
10.根据权利要求1所述的存储器系统,
所述控制器还构成为,
在所述第2数据与所述第1数据相同且正在使用所述主机的用户是所述第1用户的情况下,使用所述第2数据生成所述第1数据加密密钥,将第3数据用所述第1数据加密密钥进行加密而取得第3加密数据,将所述第3加密数据写入到所述第1非易失性存储器,用所述第1密钥加密密钥将所述第1数据加密密钥进行加密而取得所述第1加密数据加密密钥,并保存所述第1加密数据加密密钥;
在所述第2数据与所述第1数据相同且正在使用所述主机的用户是所述第2用户的情况下,使用所述第2数据生成所述第1数据加密密钥,将第4数据用所述第1数据加密密钥进行加密而取得第4加密数据,将所述第4加密数据写入到所述第1非易失性存储器,用所述第2密钥加密密钥将所述第1数据加密密钥进行加密而取得所述第2加密数据加密密钥,并保存所述第2加密数据加密密钥。
11.一种存储器系统的控制方法,是具备非易失性存储器的存储器系统的控制方法,
所述非易失性存储器存储将第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加密数据加密密钥。
12.一种信息处理系统,是由主机和具备非易失性存储器的存储器系统构成的信息处理系统,
所述非易失性存储器存储将第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 |
---|---|---|---|
JP2020134803A JP2022030661A (ja) | 2020-08-07 | 2020-08-07 | メモリシステム、制御方法、および情報処理システム |
JP2020-134803 | 2020-08-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114064525A true CN114064525A (zh) | 2022-02-18 |
Family
ID=80114041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110196076.6A Pending CN114064525A (zh) | 2020-08-07 | 2021-02-22 | 存储器系统、存储器系统的控制方法以及信息处理系统 |
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 | 삼성전자주식회사 | 스토리지 장치 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101878682B1 (ko) * | 2011-11-14 | 2018-07-18 | 삼성전자주식회사 | 컨텐츠를 보호하기 위한 방법 및 저장 매체 |
KR102013841B1 (ko) * | 2012-08-06 | 2019-08-23 | 삼성전자주식회사 | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 |
US10764037B2 (en) * | 2014-12-23 | 2020-09-01 | 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 |
US10395043B2 (en) * | 2016-07-29 | 2019-08-27 | International Business Machines Corporation | Securely storing data in an elastically scalable dispersed storage network |
EP3379445B1 (en) * | 2017-03-22 | 2024-06-12 | Diebold Nixdorf Systems GmbH | System and method to generate encryption keys based on information of peripheral devices |
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 |
US11070375B2 (en) * | 2018-02-08 | 2021-07-20 | Micron Technology, Inc. | Key encryption handling |
US10887088B2 (en) * | 2018-03-20 | 2021-01-05 | International Business Machines Corporation | Virtualizing a key hierarchy using a partially-oblivious pseudorandom function (P-OPRF) |
US10841080B2 (en) * | 2018-03-20 | 2020-11-17 | International Business Machines Corporation | Oblivious pseudorandom function in a key management system |
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
Also Published As
Publication number | Publication date |
---|---|
TWI775284B (zh) | 2022-08-21 |
JP2022030661A (ja) | 2022-02-18 |
US20220045850A1 (en) | 2022-02-10 |
TW202207060A (zh) | 2022-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11362830B2 (en) | Memory system | |
US11847243B2 (en) | Memory system | |
JP7048411B2 (ja) | メモリシステムおよび制御方法 | |
JP5662037B2 (ja) | 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング | |
US7631195B1 (en) | System and method for providing security to a portable storage device | |
US11775184B2 (en) | Memory system, information processing apparatus, and information processing system | |
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 | |
JP2020149222A (ja) | メモリシステム | |
TWI775284B (zh) | 記憶系統、其控制方法及資訊處理系統 | |
US11468159B2 (en) | Memory system | |
US11644983B2 (en) | Storage device having encryption | |
US20220261162A1 (en) | Memory system | |
TWI736000B (zh) | 資料儲存裝置以及其操作方法 | |
US20220123932A1 (en) | Data storage device encryption | |
TW201830284A (zh) | 資料儲存系統、資料儲存方法及資料讀取方法 | |
US11588634B2 (en) | Storage device and controlling method | |
US20240086336A1 (en) | Storage device deleting encryption key, method of operating the same, and method of operating electronic device including the same | |
KR20170005538A (ko) | 항공기 전자장비용 대용량 ssd | |
KR20240082056A (ko) | 어플리케이션 단위로 어플리케이션과 스토리지 장치간 안전한 저장공간을 제공하기 위한 스토리지 장치, 스토리지 장치 동작 방법 및 시스템 | |
TW202036349A (zh) | 電腦系統及其虛擬硬碟的加解密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |