CN110046506A - 存储设备和包括存储设备的存储***及使用其进行操作的方法 - Google Patents
存储设备和包括存储设备的存储***及使用其进行操作的方法 Download PDFInfo
- Publication number
- CN110046506A CN110046506A CN201811462968.0A CN201811462968A CN110046506A CN 110046506 A CN110046506 A CN 110046506A CN 201811462968 A CN201811462968 A CN 201811462968A CN 110046506 A CN110046506 A CN 110046506A
- Authority
- CN
- China
- Prior art keywords
- ufid
- file
- equipment
- data
- storage
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种存储***,包括主机设备和存储设备。主机设备产生文件,并且针对每个文件产生唯一文件标识(UFID),其中UFID基于所产生的文件的标识符和与所产生的文件相对应的至少一个逻辑地址。存储设备基于UFID和随机数产生用于加密或解密与所产生的文件相对应的写入数据的密钥,并且通过使用密钥来加密写入数据。
Description
相关申请的交叉引用
本申请要求于2017年12月27日在韩国知识产权局递交的韩国专利申请No.10-2017-0180795的优先权,其公开内容通过引用整体合并于此。
技术领域
本发明构思的示例实施例涉及一种存储***,更具体地,涉及一种用于在文件单元中产生加密密钥的存储***及其操作方法。
背景技术
半导体存储器器件被分类为在断电时丢失其中存储的数据的易失性存储器器件(例如,静态随机存取存储器(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等)、以及即使在断电时也保留其中存储的数据的非易失性存储器器件(例如,只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存器件、相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等)。
具体地,在非易失性存储器器件具有写入前擦除特性的情况下,即使执行“逻辑擦除”操作,也可能不会物理地完全擦除非易失性存储器器件中存储的数据。也就是说,仅释放了非易失性存储器器件中存储的数据的逻辑地址和物理地址之间的映射关系,可能不会物理地完全擦除数据。通常,在逻辑擦除和物理擦除之间可能有相当长的一段时间。因此,关于非易失性存储器器件中存储的数据的安全性/加密,存在要解决的重要问题。
同时,作为用于提高非易失性存储器器件的安全级别的技术,正在使用物理擦除数据的方法。例如,在逻辑擦除数据之后,在存储器器件的存储空间不足的情况下,可以执行用于物理擦除数据的垃圾收集操作(例如,清理、清除等)。然而,频繁的写入和擦除操作可能会使得非易失性存储器器件的性能降低,并使得其寿命缩短。
此外,广泛使用产生加密密钥的方法来提高存储器器件的安全级别。然而,在基于数据的逻辑地址执行加密的方法的情况下,由于产生与文件的所有逻辑地址相关联的加密密钥并且对所有逻辑地址执行加密,因此加密密钥的数量和/或加密密钥的大小可能会增加。这使得在管理上有困难,且***复杂性增加。因此,需要一种用于产生能够提高安全级别而不会使得***的复杂性增加的加密密钥的技术。
发明内容
本发明构思的一些示例实施例涉及通过在文件单元中产生加密密钥来减小密钥大小,同时保持所需(和/或期望)的安全级别。
根据一些示例实施例,存储***包括:主机设备,其产生文件,并且针对每个文件产生唯一文件标识(UFID),其中UFID基于所产生的文件的标识符和与所产生的文件相对应的至少一个逻辑地址;以及存储设备,其基于UFID和随机数产生用于加密或解密与所产生的文件相对应的写入数据的密钥,并且通过使用密钥来加密写入数据。
根据一些示例实施例,存储设备包括:控制器,其通过使用唯一文件标识(UFID)来产生加密密钥,UFID是基于在文件***上产生的文件的标识符和与所产生的文件相对应的至少一个逻辑地址针对每个文件产生的;以及非易失性存储器器件,其将加密密钥与UFID相关联地存储。
根据一些示例实施例,一种存储***的操作方法,存储***包括主机设备和存储设备,所述方法包括:由所述主机设备产生文件;由所述主机设备基于所产生的文件的标识符和与所产生的文件相对应的至少一个逻辑地址,针对每个文件产生唯一文件标识(UFID);从主机设备向存储设备发送UFID;以及,由所述存储设备基于随机数和从主机设备接收的UFID,产生用于加密或解密与所产生的文件相对应的写入数据的密钥。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,本发明构思的上述及其它目的和特征将变得更清楚。
图1是示出了根据本发明构思的一些示例实施例的存储***的示例性配置的框图。
图2是示出了用于驱动图1的存储***的软件/硬件层的框图。
图3是示出了图2所示的存储设备的示例性配置的框图。
图4是示出了图1所示的存储***的示例性配置的框图。
图5是概念性地示出了设备驱动器如何通过使用文件的ID和文件的地址来产生唯一文件ID的视图。
图6是示出了图1所示的存储***的示例性配置的框图。
图7是示出了根据本发明构思的一些示例实施例的存储***的操作的流程图。
图8是示出了根据本发明构思的一些示例实施例的存储***的操作的框图。
图9是示出了根据本发明构思的一些示例实施例的存储***的操作的流程图。
图10是示出了根据本发明构思的一些示例实施例的存储***的操作的框图。
图11是示出了根据本发明构思的一些示例实施例的存储***的操作的流程图。
图12是示出了参考图3至图10描述的非易失性存储器器件的示例性配置的框图。
图13是示出了图12的存储器单元阵列中包括的存储器块中的任何一个存储器块的示例的电路图。
图14是示出了应用了根据本发明构思的一些示例实施例的存储***的电子设备的框图。
具体实施方式
下面可以以使本领域普通技术人员可以容易实现本发明构思的程度详细并清楚地描述了本发明构思的一些示例实施例。
可以参考可以结合下文中更详细讨论的各种单元和/或设备来实现的操作(例如,以流程图表、流程图、数据流程图、结构图、框图等的形式)的动作和符号表示来描述一些示例实施例。尽管以特定方式讨论,但是可以与流程图表、流程图等中指定的流程不同地执行在特定块中指定的功能或操作。例如,被示出为在两个连续块中顺次执行的功能或操作实际上可以并行地、同时地执行,或者在一些情况下以相反的顺序执行。
图1是示出了根据本发明构思的一些示例实施例的存储***1000的示例性配置的框图。存储***1000可以包括主机设备1100和存储设备1200。
主机设备1100可以管理和处理存储***1000的整体操作。主机设备1100可以驱动基于文件***的操作***OS。主机设备1100可以执行各种算术运算/逻辑运算。
例如,主机没备1100可以包括一个或多个处理器核。主机设备1100可以被实现为包括专用电路(例如,现场可编程门阵列(FPGA)和专用集成电路(ASIC)),或者可以用片上***(SoC)来实现。例如,主机设备1100可以包括通用处理器、专用处理器或应用处理器。主机设备1100可以是处理器本身、或包括处理器在内的电子设备或***。
主机设备1100可以根据用户的请求来产生命令CMD。例如,主机设备1100可以根据针对存储设备1200的写入请求来产生写入命令和写入数据。写入数据可以是根据写入请求而在主机设备1100上产生的文件。基于写入命令和地址ADDR将文件存储在存储设备1200中。备选地,主机设备1100可以根据针对存储设备1200的读取请求来产生读取命令。可以基于读取命令和地址ADDR从存储设备1200读取数据。备选地,可以通过擦除命令删除存储设备1200中存储的数据。
主机设备1100可以基于文件的标识符ID和逻辑地址ADDR来产生唯一文件标识(UFID)。例如,文件的标识符ID可以是文件***中文件的ID,并且逻辑地址ADDR可以是文件***中的文件的起始地址。然而,本发明构思的一些示例实施例不限于此。根据一些示例实施例,唯一文件ID UFID可以与文件的所有逻辑地址相对应。
主机设备1100可以通过使用供应商特定命令VS CMD向存储设备1200发送唯一文件标识UFID。唯一文件ID UFID可以用于加密和/或解密数据,这将在后面更全面地描述。形成加密/解密基础的唯一文件ID UFID与文件的所有逻辑地址相对应。
在写入请求的情况下,主机设备1100可以向存储设备1200发送与文件相对应的写入数据、地址ADDR和唯一文件ID UFID。在读取请求的情况下,主机设备1100可以向存储设备1200发送地址ADDR和唯一文件ID UFID。在数据删除请求的情况下,主机设备1100可以向存储设备1200发送唯一文件ID UFID和用于删除与唯一文件IDUFID相对应的密钥值的供应商特定命令VS CMD。
存储设备1200可以被配置为对从主机设备1100接收的唯一文件ID UFID进行加密。例如,存储设备1200可以通过使用随机数和唯一文件ID UFID来产生密钥值。例如,可以使用通过软件和/或硬件实现的密钥值发生器(未示出)。存储设备1200可以被配置为对所产生的密钥值和从主机设备1100接收的数据(即,与文件相对应的写入数据)进行加密。密钥值与具有多个逻辑地址的一个文件相对应。
存储设备1200可以被配置为基于从主机设备1100接收的读取命令和唯一文件IDUFID来解密数据。此外,存储设备1200可以响应于从主机设备1100接收的擦除请求,删除与唯一文件ID UFID相对应的密钥值。在这种情况下,对密钥值的删除可以是物理擦除,而不是逻辑擦除,使得密钥值完全从存储设备1200擦除。
根据上面简要描述的本发明构思的一些示例实施例的加密/解密操作,与一般情况不同,加密(和/或解密)密钥是针对每个文件而产生的,而不是针对每个逻辑地址而产生的。根据通用加密密钥产生方法,由于产生分别与文件的所有逻辑地址相对应的加密密钥,因此密钥大小可能会过度变大。然而,根据本发明构思的一些示例实施例,通过基于文件的加密密钥产生方法或针对每个文件(或通过文件)产生加密密钥的方法,可以减小密钥大小而不会对应地降低安全级别。
图2是示出了用于驱动图1的存储***的软件/硬件层的框图。在实施例中,示出了在主机设备1100上驱动的应用11、文件***12、块层13和设备驱动器14、以及存储设备1200。为了更好的理解,将一起参考图1给出描述。
应用11可以例如包括在主机设备1100的操作***OS中驱动的各种应用程序,例如文档编辑器、web浏览器、电子表格、语音播放器、图像播放器等。
文件***12组织与存储设备1200交换的文件或数据。文件***12提供用于访问存储设备1200的存储空间的逻辑地址。例如,文件***12可以包括FAT(文件分配表)、FAT32、NTFS(NT文件***)、HFS(分层文件***)、JSF2(日志文件***2)、XFS、ODS-5(盘上结构-5)、UDF、ZFS、UFS(Unix文件***)、ext2、ext3、ext4、ReiserFS、Reiser4、ISO 9660、Gnome VFS、BFS、WinFS等。例如,文件***12可以管理扇区和/或集群单元中的文件或数据。
例如,与图2的图示不同,根据本发明构思的一些示例实施例的用于驱动存储***的软件/硬件层可以包括多个文件***。在这种情况下,文件***可以通过驱动器中的起始地址来彼此区分。此外,文件可以通过文件所属的文件***中的文件的ID来彼此区分。例如,即使可以减小或放大文件***的大小,文件***的起始地址和/或文件本身的起始地址也可以不改变。
块层13提供用于文件***12和设备驱动器14之间的通信的抽象层。
设备驱动器14可以控制主机设备1100中包括的设备、以及与主机设备1100连接的设备。设备驱动器14可以将操作***OS的一般输入/输出指令转换为与各个设备相对应的消息。设备驱动器14可以控制存储设备1200。例如,设备驱动器14可以响应于用户、应用11或操作***OS的读取请求向存储设备1200发送命令CMD、地址ADDR和数据“DATA”,或者可以响应于其写入请求向存储设备1200发送命令CMD、地址ADDR和数据“DATA”。
存储设备1200可以驱动闪速转换层FTL。闪速转换层FTL执行文件***12和存储设备1200之间的接口连接。例如,闪速转换层FTL执行文件***12的逻辑地址与存储设备1200的物理地址之间的映射。在接收到写入请求时,闪速转换层FTL向文件(或写入数据)的ID指派物理地址。此外,闪速转换层FTL还可以执行存储设备1200的垃圾收集、磨损调平等。
图3是示出了图2所示的存储设备1200的示例性配置的框图。存储设备1200的控制器1210可以包括至少一个处理器1211、只读存储器(ROM)1212和纠错码(ECC)电路1213。此外,控制器1210还可以包括:主机接口(I/F)1214,用于遵照各种协议与主机设备1100进行接口连接;缓冲管理器1215,用于管理/控制缓冲存储器1230;以及非易失性存储器接口(I/F)1216,用于与非易失性存储器器件1220进行接口连接。
处理器1211可以控制控制器1210的整体操作。处理器1211可以驱动用于操作控制器1210或控制非易失性存储器器件1220所需的各种固件/软件。例如,处理器1211可以驱动用于管理映射表的闪速转换层(FTL),映射表中定义了多个非易失性存储器NVM1至NVMn的逻辑地址和物理地址之间的关系。
ROM 1212可以存储用于引导存储设备1200所需的引导代码。此外,ROM 1212可以存储用于将非易失性存储器器件1220中存储的固件加载到缓冲存储器1230上的单独固件。例如,ROM 1212中存储的固件可以在存储设备1200上进行引导时执行,或者可以根据外部请求(例如,主机)或在存储设备1200的运行期间的内部请求来执行。
ECC电路1213可以检测并校正从非易失性存储器器件1220读取的数据的错误。
主机接口1214可以通过使用具有各种通信协议的总线来与主机设备1100进行通信。例如,总线格式可以包括各种接口协议中的一个或多个,例如通用串行总线(USB)、小型计算机***接口(SCSI)、***组件快速互连(PCIe)、移动PCIe(M-PCIe)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)、串行附接SCSI(SAS)、集成驱动电子器件(IDE)、增强型IDE(EIDE)、非易失性快速存储器(NVMe)、通用闪存(UFS)等。
非易失性存储器器件1220可以包括用于存储数据的多个非易失性存储器NVM1至NVMn。例如,在非易失性存储器器件1220包括NAND闪存的情况下,非易失性存储器器件1220可以包括沿着多条字线和多条位线形成的存储器单元阵列。
然而,以上示例不限制本发明构思。根据一些示例实施例,非易失性存储器器件1220可以包括各种非易失性存储器器件中的一个或多个,例如电可擦除可编程ROM(EEPROM)、NOR闪存、相变RAM(PRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)、自旋转矩磁RAM(STT-MRAM)等。为了更好地理解,在以下描述中,可以假设非易失性存储器器件1220包括NAND闪存。然而,根据一些示例实施例,可以不同地改变或修改非易失性存储器器件1220的配置。
缓冲存储器1230可以存储用于存储设备1200的操作的数据。缓冲存储器1230可以临时存储已被处理器1211处理或将被处理器1211处理的数据。例如,缓冲存储器1230可以存储从非易失性存储器器件1220加载的固件。例如,缓冲存储器1230可以包括易失性存储器(例如,动态随机存取存储器(DRAM)、同步DRAM(SDRAM)等)和/或非易失性存储器(例如,PRAM、磁阻RAM(MRAM)、ReRAM、FRAM等)。
图4是示出了图1所示的存储***1000的示例性配置的框图。图5是概念性地示出了设备驱动器14如何通过使用文件的ID和文件的地址来产生唯一文件ID UFID的视图。将一起参考图4和图5来描述如何产生唯一文件ID UFID以及如何产生和管理密钥。
主机设备1100的文件***12响应于用户的请求等产生文件。在示例实施例中,在图4中示出了产生具有名称为“文件B”的文件的示例。设备驱动器14可以确定(或检测)是否产生了文件。例如,设备驱动器14可以直接检测在文件***12中产生的文件。
备选地或附加地,设备驱动器14可以通过检测文件***12和块层13之间的事务或者检测块层13和设备驱动器14之间的事务来确定产生了文件。在这种情况下,为了设备驱动器14检测文件产生,可以在各层之间设置过滤器驱动器(未示出)。
设备驱动器14可以基于所产生的文件的标识符ID和逻辑地址LA1至LAn来产生唯一文件ID UFID。例如,文件的标识符ID可以是由文件***12指派的文件的唯一ID,并且文件的逻辑地址可以是基于文件***12中的扇区和/或集群的地址。
由于由设备驱动器14产生的唯一文件ID UFID基于文件的标识符ID和逻辑地址LA1至LAn,因此唯一文件ID UFID是简单的,并且还具有区别于另一文件的唯一文件IDUFID的唯一值。例如,唯一文件ID UFID可以是但不限于文件***12中的文件的起始地址。例如,逻辑地址LA1至LAn可以是不连续的。
同时,在检测到产生了文件的情况下,设备驱动器14可以向控制器1210发送唯一文件ID UFID。例如,设备驱动器14可以通过使用供应商特定命令VS CMD来发送唯一文件IDUFID。例如,可以将唯一文件ID UFID添加到供应商特定命令VS CMD的保留字段,以便将其发送给控制器1210。然而,本发明构思的一些示例实施例不限于此。
控制器1210可以被配置为通过使用唯一文件ID UFID产生加密或解密数据所需的密钥。为此,控制器1210可以包括随机数(RN)发生器1217和密钥发生器1218,它们由硬件和/或软件实现。
随机数发生器1217可以被配置为产生不规则数,其中在给定长度上不连续输出一个特定值(例如,“0”或“1”)。例如,随机数发生器1217可以通过使用环形振荡器来实现,或者可以通过使用亚稳态(meta-stability)来实现。然而,本发明构思的一些示例实施例不限于此。
密钥发生器1218可以被配置为通过使用唯一文件ID UFID和随机数(RN)来产生用于加密和/或解密数据所需的密钥。由于由文件***12产生的文件具有唯一文件ID和唯一文件地址,因此由密钥发生器1218产生的密钥值也可以具有与任何其它密钥值不同的唯一值。可以向非易失性存储器器件1220发送所产生的密钥值。
非易失性存储器器件1220可以存储从控制器1210接收的密钥值。例如,可以在与唯一文件ID UFID有关的表中管理密钥值。例如,密钥值可以存储在非易失性存储器器件1220中的与存储通用用户数据的区域不同的安全区域(例如,管理器区域、过度供应区域等)中。因此,未授权用户不能访问非易失性存储器器件1220中的存储有密钥值的安全区域。
图6是示出了图1所示的存储***1000的示例性配置的框图。将参考图6描述由文件***12产生的文件存储在存储设备1200中的操作。
在文件***12产生文件(例如,文件B)的情况下,文件***12可以响应于用户的请求,产生写入命令CMDw。这里,写入命令CMDw是用于将文件“B”存储在非易失性存储器器件1220中的命令,并且唯一文件ID UFID对应于文件“B”。例如,设备驱动器14可以向控制器1210发送写入命令CMDw和唯一文件ID UFID。备选地/附加地,设备驱动器14的下层(例如,链路层、传输层等)可以将写入命令CMDw和唯一文件ID UFID打包,并且可以向控制器1210发送打包的结果。然而,本发明构思的一些示例实施例不限于此。
文件***12可以向控制器1210发送地址ADDR和写入数据DATAw。例如,地址ADDR可以是由文件***12产生的文件的逻辑地址,或者可以与由文件***12产生的逻辑地址相对应。
控制器1210可以包括加密器/解密器1219和闪速转换层FTL。例如,加密器/解密器1219可以是用硬件实现的功能块(例如,密码知识产权(IP)),或者可以根据加密算法用软件/固件实现。然而,本发明构思的一些示例实施例不限于此。例如,闪速转换层FTL可以存储在非易失性存储器器件1220中,可以在引导存储设备1200时加载到缓冲存储器1230(参考图3),并且可以由处理器1211驱动(参见图3)。
加密器/解密器1219可以通过使用非易失性存储器器件1220中存储的密钥值来加密写入数据DATAw。在加密之前,控制器1210可以响应于写入命令CMDw从非易失性存储器器件1220中存储的表中读取与文件“B”(或写入数据DATAw)相对应的密钥值。
闪速转换层FTL将从主机设备1100接收的逻辑地址ADDR映射到非易失性存储器器件1220上的物理地址上,在该物理地址处将存储加密的写入数据DATAw。控制器1210可以根据闪速转换层FTL的映射结果将加密的写入数据DATAw存储在非易失性存储器器件1220的区域中。
图7是示出了根据本发明构思的一些示例实施例的存储***的操作的流程图。为了更好的理解,将一起参考图4至图6给出描述。
在接收到用户的写入请求的情况下,在操作S110中,主机设备1100的文件***12产生文件和文件的ID。设备驱动器14直接或通过使用在各个层之间设置的过滤器层来检测产生了文件。文件***12通过使用文件***12上的文件的ID和文件的逻辑地址ADDR来产生唯一文件ID UFID。通过使用供应商特定命令VS CMD向控制器1210发送唯一文件ID UFID(S120)。
在操作S130中,控制器1210可以通过使用唯一文件ID UFID和随机数来产生用于加密和/或解密数据所需的密钥值。由于唯一文件IDUFID基于文件的唯一ID和唯一地址,因此密钥值具有与文件相关的区别于任何其它文件的唯一值。所产生的密钥值可以被发送给非易失性存储器器件1220,并且可以在与唯一文件ID UFID相关联的表中管理(S140)。
在操作S150中,主机设备1100可以响应于针对文件的写入请求,向控制器1210发送写入命令CMDw、唯一文件ID UFID、地址ADDR和写入数据DATAw。地址ADDR可以是由文件***12产生的文件的逻辑地址,或者可以与文件的逻辑地址相对应,写入数据DATAw可以是文件或可以对应于文件。
在操作S160中,控制器1210可以从非易失性存储器器件1220中存储的表中读取与唯一文件ID UFID相对应的密钥值,并且可以通过使用密钥值来加密写入数据DATAw。加密的写入数据DATAw可以被发送给非易失性存储器器件1220(S170),并且可以根据闪速转换层FTL的地址映射结果编程在非易失性存储器器件1220的物理区域上(S180)。
根据上述操作,基于文件的ID和地址产生文件的唯一文件IDUFID。即使文件具有多个逻辑地址,由于加密是通过使用与多个逻辑地址共同相对应的一个唯一文件ID UFID来执行的,因此可以减小用于加密的密钥值的大小。
图8是示出了根据本发明构思的一些示例实施例的存储***的操作的框图。将参考图8描述读取操作和解密操作。
在接收到用户的读取请求的情况下,主机设备1100的文件***12产生读取命令CMDr。
设备驱动器14检测到产生了读取命令CMDr。例如,设备驱动器14可以直接或通过在各个层之间设置的过滤器层(未示出)来检测从文件***12产生了读取命令CMDr。设备驱动器14向控制器1210发送读取命令CMDr、与要读取的文件相对应的唯一文件ID UFID、以及与要读取的文件相对应的逻辑地址ADDR。
在接收到读取命令CMDr时,控制器1210基于闪速转换层FTL的映射结果从非易失性存储器器件1220读取加密的数据DATAr。
此外,控制器1210响应于读取命令CMDr,从非易失性存储器器件1220中存储的表中读取与和读取命令CMDr一起接收的唯一文件ID UFID相关联的密钥值。加密器/解密器1219可以通过使用所读取的密钥值来对加密的读取数据DATAr进行解密。然后,一经解密,可以向主机设备1100发送解密的读取数据DATAr。
图9是示出了根据本发明构思的一些示例实施例的存储***的操作的流程图。为了更好的理解,将一起参考图8给出描述。
在操作S210中,可以根据用户的读取请求向控制器1210发送读取命令CMDr、唯一文件ID UFID和地址ADDR。唯一文件ID UFID与要读取的文件相对应,地址ADDR与要读取的文件的逻辑地址相对应。
在控制器1210向非易失性存储器器件1220发送读取命令CMDr和地址ADDR时(S220),可以在非易失性存储器器件1220处对要读取的数据执行读取操作(S230),并且可以通过控制器1210读取加密的读取数据DATAr(S240)。图9中示出了根据一些示例实施例的加密的读取数据DATAr加载到控制器1210的示例,但是,详细地,加密的读取数据DATAr可以加载到缓冲存储器1230(参考图3)。
在操作S250中,可以执行解密操作以通过使用密钥值来对加密的读取数据DATAr进行解密。然后,经解密的数据可以作为读取数据DATAr发送给主机设备1100。图9中示出了当执行解密操作时从非易失性存储器器件1220中存储的密钥表中读取密钥值的示例,但是,本发明构思的一些示例实施例不限于此。例如,可以在各个时间点(例如,在操作S240中读取加密的数据DATAr时的时间点)读取密钥值,。
图10是示出了根据本发明构思的一些示例实施例的存储***的操作的框图。将参考图10来描述删除文件的操作。
在接收到用户的文件删除请求的情况下,主机设备1100的文件***12产生擦除命令CMDe。
设备驱动器14检测到产生了擦除命令CMDe。例如,设备驱动器14可以直接或通过在各个层之间设置的过滤器层(未示出)来检测从文件***12产生了擦除命令CMDe。设备驱动器14向控制器1210发送供应商特定命令VS CMD和要被擦除的文件的唯一文件IDUFID。
在接收到供应商特定命令VS CMD和唯一文件ID UFID时,控制器1210可以响应于供应商特定命令VS CMD从在非易失性存储器器件1220中存储的密钥表中删除与对应于要被删除的文件的唯一文件ID UFID相关联的密钥值。在这种情况下,删除与唯一文件IDUFID相关联的密钥值是物理擦除。由于与唯一文件ID UFID相关联的密钥值被物理擦除,即使仍然可以读取与唯一文件ID UFID相对应的加密的数据,也不可能在没有已经被物理擦除的对应密钥值的情况下对加密的数据进行解密。
在从在非易失性存储器器件1220中存储的密钥表中物理擦除与唯一文件ID UFID相关联的密钥值之后,控制器1210从主机设备1100接收擦除命令CMDe和逻辑地址ADDR。闪速转换层FTL释放要被擦除的文件的逻辑地址ADDR与存储与要被擦除的文件相对应的加密的数据DATAw所处的物理地址之间的映射关系。也就是说,从非易失性存储器器件1220中逻辑擦除要被擦除的文件(例如,在从密钥表中物理擦除与唯一文件ID UFID相关联的密钥值时,与要被擦除的文件相对应的加密的数据DATAw变成无效数据)。之后,在非易失性存储器器件1220的存储空间不足的情况下(例如,当可用存储空间的量下降到低于预定和/或期望阈值时),控制器1210可以对非易失性存储器器件1220中的存储逻辑擦除的数据(例如,由于与唯一文件ID UFID相关联的密钥值被物理擦除而变成无效数据的加密的数据DATAw)的区域执行垃圾收集和/或物理擦除操作(例如,清理),以便释放非易失性存储器器件1220中的一些附加存储空间。
图11是示出了根据本发明构思的一些示例实施例的存储***的操作的流程图。为了更好的理解,将一起参考图10给出描述。
在操作S310中,主机设备1100向控制器1210发送针对文件的擦除命令CMDe、请求擦除的文件的唯一文件ID UFID、以及请求擦除的文件的逻辑地址ADDR。例如,可以通过供应商特定命令VS CMD向控制器1210发送唯一文件ID UFID。备选地,与图11的图示不同,根据一些示例实施例,在首先向控制器1210发送唯一文件ID UFID,并且从在非易失性存储器器件1220中存储的密钥表中物理擦除与唯一文件ID UFID相对应的密钥值之后,然后主机设备1100可以向控制器1210发送擦除命令CMDe。
在操作S320中,控制器1210可以从非易失性存储器器件1220中存储的密钥表中物理地擦除与唯一文件ID UFID相对应的密钥值。
在操作S330中,控制器1210可以释放在请求擦除的文件(加密的DATAw)相对应的逻辑地址ADDR与请求擦除的文件的物理地址之间的映射关系。也就是说,请求擦除的文件(加密的DATAw)被逻辑地擦除。
在非易失性存储器器件1220的存储空间不足的情况下(例如,响应于可用存储空间的量低于预定和/或期望阈值),在操作S340中,控制器1210可以对非易失性存储器器件1220执行垃圾收集和/或物理擦除操作(例如,清理),以用于确保非易失性存储器器件1220的存储空间的目的。结果,逻辑擦除的数据(例如,已成为无效数据的加密的DATAw)被从非易失性存储器器件1220中物理地擦除,以释放非易失性存储器器件1220中的一些附加存储空间。
通常,即使请求文件擦除操作,在逻辑擦除数据的时间点和物理擦除数据的时间点之间也可能存在相当长的时间段。然而,根据本发明构思的一些示例实施例,由于通过使用针对每个文件产生的唯一文件ID UFID来加密数据,因此可以减小用于加密和/或解密的密钥值的大小。此外,当请求文件删除操作时,可以增加安全级别,因为物理擦除了与对应于请求删除的文件的唯一文件ID UFID相关联的密钥值。
图12是示出了参考图3至图10描述的非易失性存储器器件1220的示例性配置的框图。非易失性存储器器件1220可以包括存储器单元阵列1221、地址(ADDR)解码器1222、页缓冲器1223、输入/输出(I/O)电路1224、以及控制逻辑1225。
存储器单元阵列1221可以包括多个存储器块BLK1至BLKm。存储器块BLK1至BLKm中的每一个可以包括多个单元串。每一个单元串可以包括多个存储器单元。多个存储器单元可以与多条字线WL连接。每个存储器单元可以是存储一比特的单级单元(SLC)或存储至少两个比特的多级单元(MLC)。
地址解码器1222通过多条字线WL、串选择线SSL和接地选择线GSL与存储器单元阵列1221连接。地址解码器1222可以从外部接收逻辑地址,并且可以对所接收的逻辑地址进行解码以驱动多条字线WL。例如,地址ADDR可以是通过转换逻辑地址而获得的非易失性存储器器件1220的物理地址。可以通过由控制器1210驱动的闪速转换层FTL来执行上述地址转换操作(参考图3)。
页缓冲器1223通过多条位线BL与存储器单元阵列1221连接。在控制逻辑1225的控制下,页缓冲器1223可以控制位线BL,使得从输入/输出电路1224接收的数据“DATA”存储在存储器单元阵列1221中。在控制逻辑1225的控制下,页缓冲器1223可以读取存储器单元阵列1221中存储的数据,并且可以向输入/输出电路1224提供读取数据。在一些示例实施例中,页缓冲器1223可以通过页从输入/输出电路1224接收数据,和/或可以通过页从存储器单元阵列1221读取数据。
输入/输出电路1224可以从外部设备接收数据“DATA”,并且可以向页缓冲器1223提供接收的数据。
控制逻辑1225可以响应于从外部接收的命令CMD和控制信号CTRL,控制地址解码器1222、页缓冲器1223和输入/输出电路1224。例如,控制逻辑1225可以响应于命令CMD和控制信号CTRL来控制其它组件,使得数据“DATA”存储在存储器单元阵列1221中。备选地,控制逻辑1225可以响应于命令CMD和控制信号CTRL来控制其它组件,使得向外部设备发送存储在存储器单元阵列1221中的数据“DATA”。控制信号CTRL可以是控制器1210(参考图3)提供的用于控制非易失性存储器器件1220的信号。
控制逻辑1225可以产生用于非易失性存储器器件1220操作所需的各种电压。例如,控制逻辑1225可以产生多个编程电压、多个通过电压、多个选择读取电压、多个非选择读取电压、多个擦除电压、多个验证电压等。控制逻辑1225可以向地址解码器1222或存储器单元阵列1221的基板提供所产生的电压。
图13是示出了图12的存储器单元阵列中包括的多个存储器块中的任何一个存储器块的示例的电路图。参考图13,存储器块BLK可以包括多个单元串CS11、CS12、CS21和CS22。多个单元串CS11、CS12、CS21和CS22可以沿行方向和列方向布置以形成行和列。
例如,单元串CS11和CS12可以连接到串选择线SSL1a和SSL1b以构成第一行。单元串CS21和CS22可以连接到串选择线SSL2a和SSL2b以构成第二行。例如,单元串CS11和CS21可以连接到第一位线BL1以构成第一列。单元串CS12和CS22可以连接到第二位线BL2以构成第二列。
多个单元串CS11、CS12、CS21和CS22中的每一个包括多个单元晶体管。例如,多个单元串CS11、CS12、CS21和CS22中的每一个可以包括串选择晶体管SSTa和SSTb、多个存储器单元MC1至MC8、接地选择晶体管GSTa和GSTb以及虚设存储器单元DMC1和DMC2。在一些示例实施例中,单元串CS11、CS12、CS21和CS22中包括的多个单元晶体管中的每一个可以是电荷捕获型(CTF)闪存单元。
在每个单元串中,存储器单元MC1至MC8可以串联连接,并且可以沿高度方向堆叠,高度方向是垂直于由行方向和列方向定义的平面的方向。在每个单元串中,串选择晶体管SSTa和SSTb可以串联连接,并且串联连接的串选择晶体管SSTa和SSTb可以***在存储器单元MC1至MC8与位线BL1或BL2之间。在每个单元串中,接地选择晶体管GSTa和GSTb可以串联连接,并且串联连接的接地选择晶体管GSTa和GSTb可以***在存储器单元MC1至MC8和公共源极线CSL之间。
在一些示例实施例中,在每个单元串中,可以在存储器单元MC1至MC8和接地选择晶体管GSTa和GSTb之间***第一虚设存储器单元DMC1。在一些示例实施例中,在每个单元串中,可以在存储器单元MC1至MC8和串选择晶体管SSTa和SSTb之间***第二虚设存储器单元DMC2。
单元串CS11、CS12、CS21和CS22的接地选择晶体管GSTa和GSTb可以共同与接地选择线GSL连接。在一些示例实施例中,相同行中的接地选择晶体管可以连接到相同的接地选择线,并且不同行中的接地选择晶体管可以连接到不同的接地选择线。例如,第一行中的单元串CS11和CS12的第一接地选择晶体管GSTa可以连接到第一接地选择线,并且第二行中的单元串CS21和CS22的第一接地选择晶体管GSTa可以连接到第二接地选择线。
在一些示例实施例中,尽管图13中未示出,但是设置在与基板(未示出)相距相同高度处的接地选择晶体管可以连接到相同的接地选择线,并且设置在不同高度处的接地选择晶体管可以连接到不同的接地选择线。例如,在单元串CS11、CS12、CS21和CS22中,第一接地选择晶体管GSTa可以连接到第一接地选择线,第二接地选择晶体管GSTb可以连接到第二接地选择线。
与基板(或接地选择晶体管GSTa和GSTb)相距相同高度的存储器单元可以共同连接到相同的字线,并且与其相距不同高度处的存储器单元可以连接到不同的字线。例如,单元串CS11、CS12、CS21和CS22的存储器单元MC1至MC8可以连接到第一字线WL1至第八字线WL8。
相同高度的第一串选择晶体管SSTa当中的属于相同行的串选择晶体管可以连接到相同的串选择线,并且第一串选择晶体管SSTa当中的属于不同行的串选择晶体管可以连接到不同的串选择线。例如,第一行中的单元串CS11和CS12的第一串选择晶体管SSTa可以共同连接到串选择线SSL1a,以及第二行中的单元串CS21和CS22的第一串选择晶体管SSTa可以共同连接到串选择线SSL2a。
同样,相同高度的第二串选择晶体管SSTb当中的属于相同行的串选择晶体管可以连接到相同的串选择线,并且第二串选择晶体管SSTb当中的属于不同行的串选择晶体管可以连接到不同的串选择线。例如,第一行中的单元串CS11和CS12的第二串选择晶体管SSTb可以共同连接到串选择线SSL1b,以及第二行中的单元串CS21和CS22的第二串选择晶体管SSTb可以共同连接到串选择线SSL2b。
在一些示例实施例中,尽管图13中未示出,但是相同行中的单元串的串选择晶体管可以共同连接到相同的串选择线。例如,第一行中的单元串CS11和CS12的第一串选择晶体管SSTa和第二串选择晶体管SSTb可以共同连接到相同的串选择线,第二行中的单元串CS21和CS22的第一串选择晶体管SSTa和第二串选择晶体管SSTb可以共同连接到相同的串选择线。
在一些示例实施例中,相同高度处的虚设存储器单元与相同的虚设字线连接,并且不同高度处的虚设存储器单元与不同的虚设字线连接。例如,第一虚设存储器单元DMC1连接到第一虚设字线DWL1,第二虚设存储器单元DMC2连接到第二虚设字线DWL2。
在存储器块BLK中,可以针对每行执行读取和写入操作。例如,可以通过串选择线SSL1a、SSL1b、SSL2a和SSL2b来选择存储器块BLK的一行。
例如,当向串选择线SSL1a和SSL1b提供导通电压并且向串选择线SSL2a和SSL2b提供关断电压时,第一行中的单元串CS11和CS12分别连接到位线BL1和BL2。当向串选择线SSL2a和SSL2b提供导通电压并且向串选择线SSL1a和SSL1b提供关断电压时,第二行中的单元串CS21和CS22分别连接到位线BL1和BL2。当驱动字线时,可以选择连接到所驱动的字线的单元串的存储器单元当中的布置在相同高度处的存储器单元。可以针对所选择的存储器单元执行读取和写入操作。所选择的存储器单元可以构成物理页单元。
在存储器块BLK中,可以针对每个存储器块和/或针对每个子块执行擦除操作。当针对每个存储器块执行擦除操作时,可以响应于一个擦除请求同时擦除存储器块BLK中的所有存储器单元MC(例如,MC1至MC8)。当针对每个子块执行擦除操作时,可以响应于一个擦除请求同时擦除存储器块BLK中的一些存储器单元MC,并且可以禁止擦除其余的存储器单元MC。例如,可以向与要被擦除的存储器单元MC连接的字线提供低电压(例如,接地电压),并且可以浮置与其余禁止擦除的存储器单元MS连接的字线。
图13中所示的存储器块BLK仅是非限制性示例实施例。在一些示例实施例中,单元串的数量可以增加或减少,和/或单元串的行数和/或单元串的列数可以根据单元串的数量而增加或减少。此外,在存储器块BLK中,单元晶体管(GST、MC、DMC、SST等)的数量可以增加或减少,和/或存储器块BLK的高度可以根据单元晶体管(GST、MC、DMC、SST等)的数量而增加或减小。此外,与单元晶体管连接的线(GSL、WL、DWL、SSL等)的数量可以根据单元晶体管的数量而增加或减少。
图14是示出了应用了根据本发明构思的一些示例实施例的存储***的电子设备的框图。例如,电子设备2000可以用智能电话、平板计算机、台式计算机、膝上型计算机或可穿戴设备来实现。
电子设备2000可以包括图像处理设备2100、主处理器2200、工作存储器2300、存储设备2400、显示器2500、通信块2600和用户接口2700。
图像处理设备2100可以包括用于拍摄图像的图像传感器2110和用于处理所拍摄的图像的图像处理器2120。
主处理器2200可以控制电子设备2000的整体操作。主处理器2200可以驱动基于文件***的操作***OS。特别地,主处理器2200可以产生基于文件的ID和地址的唯一文件标识(UFID)。此外,主处理器2200可以包括加密器/解密器2210,其被配置为基于唯一文件IDUFID来加密和/或解密数据。附加地/备选地,加密器/解密器2210可以是在工作存储器2300上驱动的软件和/或固件。
工作存储器2300可以存储用于电子设备2000的操作的数据。例如,定义存储设备2400中存储的数据的逻辑地址和物理地址之间的映射关系的闪速转换层FTL可以被加载到工作存储器2300。例如,工作存储器2300可以包括易失性存储器(例如,动态随机存取存储器(DRAM)、同步DRAM(SDRAM)等)和/或非易失性存储器(例如,相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)等)。
存储设备2400可以存储用于加密和/或解密数据所需的密钥值。例如,密钥值可以存储在存储设备2400中的与存储通用数据的区域不同的安全区域中。例如,存储密钥值的安全区域可以是用户(和/或未授权用户)不可能访问的区域。存储设备2400可以包括非易失性存储器,比如闪存、PRAM、MRAM、ReRAM、FRAM等。
显示器2500可以包括显示器面板和显示器串行接口(DSI)***电路(未示出)。例如,显示器面板可以用各种设备实现,例如液晶显示(LCD)设备、发光二极管(LED)显示设备、有机LED(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备等。嵌入在主处理器2200中的DSI主机(未示出)可以通过DSI与显示器面板进行串行通信。DSI***电路可以包括用于驱动显示器面板的定时控制器、源极驱动器等。
通信块2600可以通过天线与外部设备/***(未示出)交换信号。通信块2600的收发器2610和调制器/解调器(调制解调器)2620可以遵照无线通信协议(比如,长期演进(LTE)、全球微波接入互操作性(WiMax)、全球移动通信***(GSM)、码分多址(CDMA)、蓝牙、近场通信(NFC)、无线保真(Wi-Fi)或者射频标识(RFID))处理与外部设备/***交换的信号。
用户接口2700可以包括诸如键盘、鼠标、键区、按钮、触摸面板、触摸屏、触摸板、触摸球、陀螺仪传感器、振动传感器、加速度传感器等的输入接口中的至少一个。
电子设备2000的组件可以基于诸如通用串行总线(USB)、小型计算机***接口(SCSI)、高速***组件互连(PCIe)、移动PCIe(M-PCIe)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)、串行连接SCSI(SAS)、集成驱动电子设备(IDE)、增强型IDE(EIDE)、非易失性存储器快速(NVMe)、通用闪存(UFS)等的各种接口协议中的一个或多个来交换数据。
根据一些示例实施例,可以通过针对文件单元中的每个文件产生加密密钥来减少密钥大小,同时保持所需(和/或期望)的安全级别。
根据一些示例实施例,由于针对每个文件管理加密密钥,因此可以在不降低安全级别的情况下降低密钥管理的复杂性。
可以使用硬件、硬件和软件的组合、或存储软件的存储介质来实现如上根据一个或多个示例实施例所述的各种单元和/或设备。可以使用处理电路来实现硬件,处理电路例如但不限于一个或多个处理器、一个或多个中央处理单元(CPU)、一个或多个控制器、一个或多个算术逻辑单元(ALU)、一个或多个数字信号处理器(DSP)、一个或多个微计算机、一个或多个现场可编程门阵列(FPGA)、一个或多个片上***(SoC)、一个或多个可编程逻辑单元(PLU)、一个或多个微处理器、一个或多个专用集成电路(ASIC)或者能够以定义的方式响应和执行指令的任何一个或多个其它设备。
软件可以包括计算机程序、程序代码、指令或其一些组合,用于独立地或共同地指示或配置硬件设备根据需要操作。计算机程序和/或程序代码可以包括能够由一个或多个硬件设备(例如一个或多个上面提到的硬件设备)实现的程序或计算机可读指令、软件组件、软件模块、数据文件、数据结构等。程序代码的示例包括由编译器产生的机器代码和使用解译器执行的更高级程序代码。
例如,当硬件设备是计算机处理设备(例如,一个或多个处理器、CPU、控制器、ALU、DSP、微计算机、微处理器等)时,计算机处理设备可以被配置为通过根据程序代码执行算术、逻辑和输入/输出操作来执行程序代码。一旦程序代码被加载到计算机处理设备中,计算机处理设备可以被编程为执行程序代码,由此将计算机处理设备转换成专用计算机处理设备。在更具体的示例中,当程序代码被加载到处理器中时,处理器被编程为执行程序代码和与其相对应的操作,从而将处理器变换成专用处理器。在另一示例中,硬件设备可以是定制为专用处理电路(例如,ASIC)的集成电路。
诸如计算机处理设备之类的硬件设备可以运行操作***(OS)以及在OS上运行的一个或多个软件应用。计算机处理设备还可以响应于软件的执行而存取、存储、操纵、处理和创建数据。为了简单起见,可以将一个或多个示例实施例例示为一个计算机处理设备;然而,本领域技术人员将认识到,硬件设备可以包括多个处理元件和多种类型的处理元件。例如,硬件设备可以包括多个处理器或者单个处理器以及控制器。另外,其他处理配置也是可能的,例如并行处理器。
软件和/或数据可以被永久地或暂时地体现在任何类型的存储介质中,包括但不限于任何机器、组件、物理或虚拟设备,或者能够向硬件设备提供指令或数据或者由硬件设备解译的计算机存储介质或设备。软件可以分布在网络耦接的计算机***上,使得以分布式的方式存储和执行软件。具体而言,例如,软件和数据可以由一个或多个计算机可读记录介质来存储,所述计算机可读记录介质包括如本文所讨论的有形或非暂时性计算机可读存储介质。
根据一个或多个示例实施例,存储介质还可以包括在单元和/或设备处的一个或多个存储设备。一个或多个存储设备可以是有形或非暂时性计算机可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、永久大容量存储设备(诸如磁盘驱动器)和/或能够存储和记录数据的任何其他类似的数据存储机构。一个或多个存储设备可以被配置为存储用于一个或多个操作***和/或用于实现本文描述的示例实施例的计算机程序、程序代码、指令或其一些组合。计算机程序、程序代码、指令或其一些组合也可以使用驱动机构从单独的计算机可读存储介质加载到一个或多个存储设备和/或一个或多个计算机处理设备中。这种单独的计算机可读存储介质可以包括通用串行总线(USB)闪存驱动、存储棒、蓝光/DVD/CD-ROM驱动、存储卡和/或其它类似的计算机可读存储介质。计算机程序、程序代码、指令或其一些组合可以经由网络接口而不是经由计算机可读存储介质从远程数据存储设备加载到一个或多个存储设备和/或一个或多个计算机处理设备中。另外,计算机程序、程序代码、指令或其一些组合可以从被配置成通过网络传送和/或分发计算机程序、程序代码、指令或其一些组合的远程计算***加载到一个或多个存储设备和/或一个或多个处理器中。远程计算***可以经由有线接口、空中接口和/或任何其它类似的介质来传送和/或分发计算机程序、程序代码、指令或其一些组合。
为了示例实施例的目的,一个或多个硬件设备、存储介质、计算机程序、程序代码、指令或其一些组合可以被专门设计和构造,或者它们可以是为了一些示例实施例的目的而被改变和/或修改的已知设备。
尽管已经参照本发明构思的一些示例实施例描述了本发明构思,但是对于本领域普通技术人员来说显而易见的是:在不脱离由所附权利要求阐述的本发明构思的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储***,包括:
主机设备,被配置为产生文件,并且针对每个文件产生唯一文件标识UFID,其中所述UFID基于所产生的文件的标识符和与所产生的文件相对应的至少一个逻辑地址;以及
存储设备,被配置为基于所述UFID和随机数产生用于加密或解密与所产生的文件相对应的写入数据的密钥,并且通过使用所述密钥来加密所述写入数据。
2.根据权利要求1所述的存储***,其中,所述存储设备包括:
控制器,被配置为基于所述UFID和所述随机数产生所述密钥,并且通过使用所述密钥来加密所述写入数据;以及
非易失性存储器器件,被配置为将所述密钥与所述UFID相关联地存储,并且存储加密的写入数据。
3.根据权利要求2所述的存储***,其中,所述主机设备还被配置为:
根据与所产生的文件相关联的写入请求,产生写入命令;以及
向所述存储设备发送所述写入命令、所述UFID和所述写入数据。
4.根据权利要求2所述的存储***,其中,所述UFID基于与所产生的文件相关联的文件***上的起始地址。
5.根据权利要求2所述的存储***,其中,所述主机设备通过使用供应商特定命令向所述存储设备发送所述UFID。
6.根据权利要求2所述的存储***,其中,所述主机设备还被配置为:
根据与所产生的文件相关联的读取请求,产生读取命令;以及
向所述存储设备发送所述读取命令和所述UFID。
7.根据权利要求6所述的存储***,其中,所述控制器还被配置为:
通过使用与所述UFID相关联地存储在所述非易失性存储器器件中的所述密钥,对所述非易失性存储器器件中存储的加密的写入数据进行解密。
8.根据权利要求2所述的存储***,其中:
所述主机设备还被配置为:根据与所产生的文件相关联的删除请求,产生擦除命令,并且使用供应商特定命令向所述控制器发送所述UFID,以及
所述控制器还被配置为响应于所述供应商特定命令,物理地擦除与所述UFID相关联地存储在所述非易失性存储器器件中的所述密钥。
9.根据权利要求8所述的存储***,其中:
所述主机设备还被配置为:根据与所产生的文件相关联的所述删除请求,向所述控制器发送所述擦除命令和与所产生的文件相对应的所述至少一个逻辑地址的逻辑地址,
所述控制器还被配置为:
响应于所述擦除命令,释放所述逻辑地址与存储与所产生的文件相对应的所述加密的写入数据所处的物理地址之间的映射关系,使得存储在所述物理地址处的所述加密的写入数据变为无效数据,以及
对所述非易失性存储器器件执行垃圾收集操作,以物理擦除在所述非易失性存储器器件中存储的与所述删除请求相对应的所述无效数据。
10.根据权利要求2的存储***,其中,所述非易失性存储器器件包括:
存储器单元阵列,包括多个存储器单元,所述多个存储器单元被形成为垂直于基板并连接到多条字线和多条位线;以及
页缓冲器,被配置为存储从所述存储器单元阵列读取的数据,
其中,多个单元串共同连接到所述多条位线中的相同位线,所述多个单元串中的每一个单元串包括所述多个存储器单元当中的串联连接的存储器单元。
11.一种存储设备,包括:
控制器,被配置为通过使用唯一文件标识UFID来产生加密密钥,所述UFID是基于在文件***上产生的文件的标识符和与所产生的文件相对应的至少一个逻辑地址针对每个文件产生的;以及
非易失性存储器器件,被配置为将所述加密密钥与所述UFID相关联地存储。
12.根据权利要求11所述的存储设备,其中,所述控制器还被配置为:
响应于写入命令,通过使用与所述UFID相关联地存储在所述非易失性存储器器件中的所述加密密钥来加密与所产生的文件相对应的写入数据;以及
将加密的写入数据存储在所述非易失性存储器器件中。
13.根据权利要求12所述的存储设备,其中,所述控制器还被配置为:
响应于读取命令,通过使用与所述UFID相关联地存储在所述非易失性存储器器件中的所述加密密钥来对所述加密的写入数据进行解密。
14.根据权利要求11所述的存储设备,其中,所述控制器还被配置为响应于擦除命令,物理地擦除与所述UFID相关联地存储在所述非易失性存储器器件中的所述加密密钥。
15.根据权利要求11所述的存储设备,其中,所述非易失性存储器器件包括:
存储器单元阵列,包括多个存储器单元,所述多个存储器单元被形成为垂直于基板并连接到多条字线和多条位线;以及
页缓冲器,被配置为存储从所述存储器单元阵列读取的数据,
其中,多个单元串共同连接到所述多条位线中的相同位线,所述多个单元串中的每一个单元串包括所述多个存储器单元当中的串联连接的存储器单元。
16.一种存储***的操作方法,所述存储***包括主机设备和存储设备,所述方法包括:
由所述主机设备产生文件;
由所述主机设备基于所产生的文件的标识符和与所产生的文件相对应的至少一个逻辑地址,针对每个文件产生唯一文件标识UFID;
从所述主机设备向所述存储设备发送所述UFID;以及
由所述存储设备基于随机数和从所述主机设备接收的所述UFID,产生用于加密或解密与所产生的文件相对应的写入数据的密钥。
17.根据权利要求16所述的方法,还包括:
由所述主机设备根据与所产生的文件相关联的写入请求,产生写入命令;
从所述主机设备向所述存储设备发送所述写入命令、所述UFID和所述写入数据;
通过使用所述密钥对从所述主机设备接收的所述写入数据进行加密;以及
将所述密钥与所述UFID相关联地存储在所述存储设备的非易失性存储器器件中,并且将加密的写入数据存储在所述存储设备的所述非易失性存储器器件中。
18.根据权利要求17所述的方法,还包括:
由所述主机设备根据与所产生的文件相关联的读取请求,产生读取命令;
从所述主机设备向所述存储设备发送所述读取命令和所述UFID;以及
通过使用与所述UFID相关联地存储在所述非易失性存储器器件中的所述密钥,对所述非易失性存储器器件中存储的加密的写入数据进行解密。
19.根据权利要求18所述的方法,还包括:
由所述主机设备根据与所产生的文件相关联的擦除请求,产生擦除命令;
从所述主机设备向所述存储设备发送所述擦除命令和所述UFID;以及
物理地擦除与所述UFID相关联地存储在所述非易失性存储器器件中的所述密钥。
20.根据权利要求16所述的方法,其中,所述UFID基于与所产生的文件相对应的所述至少一个逻辑地址的起始地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170180795A KR102420158B1 (ko) | 2017-12-27 | 2017-12-27 | 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법 |
KR10-2017-0180795 | 2017-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046506A true CN110046506A (zh) | 2019-07-23 |
CN110046506B CN110046506B (zh) | 2023-08-11 |
Family
ID=66950816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811462968.0A Active CN110046506B (zh) | 2017-12-27 | 2018-11-30 | 存储设备和包括存储设备的存储***及使用其进行操作的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10880081B2 (zh) |
KR (1) | KR102420158B1 (zh) |
CN (1) | CN110046506B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112165384A (zh) * | 2020-10-15 | 2021-01-01 | 清华大学 | 数据加密方法和解密方法及数据加密装置和解密装置 |
CN112836247A (zh) * | 2019-11-25 | 2021-05-25 | 美光科技公司 | 与存储器子***的安全数据通信 |
WO2021129557A1 (zh) * | 2019-12-23 | 2021-07-01 | 华为技术有限公司 | 一种文件加密方法及相关装置 |
CN114968088A (zh) * | 2022-04-08 | 2022-08-30 | 中移互联网有限公司 | 文件存储方法、文件读取方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113168818A (zh) * | 2018-09-03 | 2021-07-23 | 德克萨斯仪器股份有限公司 | 触摸传感器电路 |
KR20200126531A (ko) * | 2019-04-30 | 2020-11-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 커맨드 수행 방법 |
US11513719B2 (en) * | 2019-08-29 | 2022-11-29 | Micron Technology, Inc. | Fast purge on storage devices |
KR20220020636A (ko) | 2020-08-12 | 2022-02-21 | 삼성전자주식회사 | 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 메모리 장치 및 상기 메모리 컨트롤러의 동작 방법 |
KR102430219B1 (ko) | 2021-09-15 | 2022-08-05 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치의 키 생성 방법 및 스토리지 장치의 인증 방법 |
US20240028747A1 (en) * | 2022-07-20 | 2024-01-25 | Micron Technology, Inc. | Preventing access to data based on locations |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0254565A2 (en) * | 1986-07-24 | 1988-01-27 | Meiji Milk Products Company Limited | Methods of and apparatus for forming identification data |
CN1838296A (zh) * | 2005-02-10 | 2006-09-27 | 索尼株式会社 | 信息处理装置和方法、和计算机程序 |
US20080065905A1 (en) * | 2006-09-13 | 2008-03-13 | Simpletech, Inc. | Method and system for secure data storage |
US20080307155A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method of Interfacing A Host Operating Through A Logical Address Space With A Direct File STorage Medium |
CN101849377A (zh) * | 2007-09-04 | 2010-09-29 | 艾比奎蒂数字公司 | 数字无线电广播接收机、广播方法和用于标记感兴趣的内容的方法 |
WO2014180416A1 (zh) * | 2013-09-18 | 2014-11-13 | 中兴通讯股份有限公司 | 一种上传文件到云存储***的方法、下载方法及装置 |
CN105678174A (zh) * | 2015-12-31 | 2016-06-15 | 四川秘无痕信息安全技术有限责任公司 | 一种基于二进制解密微信加密数据的方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8117377B2 (en) | 2007-12-27 | 2012-02-14 | Electronics And Telecommunications Research Institute | Flash memory device having secure file deletion function and method for securely deleting flash file |
US8250380B2 (en) | 2009-12-17 | 2012-08-21 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing secure erase for solid state drives |
US20120079289A1 (en) | 2010-09-27 | 2012-03-29 | Skymedi Corporation | Secure erase system for a solid state non-volatile memory device |
US9015401B2 (en) | 2011-04-28 | 2015-04-21 | Seagate Technology Llc | Selective purge of confidential data from a non-volatile memory |
US8909888B2 (en) * | 2011-04-29 | 2014-12-09 | Seagate Technology Llc | Secure erasure of data from a non-volatile memory |
JP5214782B2 (ja) * | 2011-08-31 | 2013-06-19 | 株式会社東芝 | メモリ装置、ストレージメディア、ホスト装置、及びシステム |
WO2012149728A1 (zh) | 2011-09-06 | 2012-11-08 | 华为技术有限公司 | 一种数据删除方法及装置 |
US9749132B1 (en) * | 2011-11-28 | 2017-08-29 | Amazon Technologies, Inc. | System and method for secure deletion of data |
CN103390139A (zh) | 2012-05-11 | 2013-11-13 | 慧荣科技股份有限公司 | 数据储存装置以及其数据保护方法 |
US8918651B2 (en) | 2012-05-14 | 2014-12-23 | International Business Machines Corporation | Cryptographic erasure of selected encrypted data |
KR101346284B1 (ko) * | 2012-05-31 | 2013-12-31 | 주식회사 이노티움 | 암호화 파일의 생성 방법 및 해독 방법과 이 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 |
US20150006911A1 (en) | 2013-06-28 | 2015-01-01 | Lexmark International, Inc. | Wear Leveling Non-Volatile Memory and Secure Erase of Data |
US9612773B2 (en) * | 2013-11-21 | 2017-04-04 | Samsung Electronics Co., Ltd. | User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof |
US10474831B1 (en) * | 2016-11-28 | 2019-11-12 | Amazon Technologies, Inc. | Large network attached storage encryption |
KR20180093153A (ko) * | 2017-02-09 | 2018-08-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
-
2017
- 2017-12-27 KR KR1020170180795A patent/KR102420158B1/ko active IP Right Grant
-
2018
- 2018-07-09 US US16/030,087 patent/US10880081B2/en active Active
- 2018-11-30 CN CN201811462968.0A patent/CN110046506B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0254565A2 (en) * | 1986-07-24 | 1988-01-27 | Meiji Milk Products Company Limited | Methods of and apparatus for forming identification data |
CN1838296A (zh) * | 2005-02-10 | 2006-09-27 | 索尼株式会社 | 信息处理装置和方法、和计算机程序 |
US20080065905A1 (en) * | 2006-09-13 | 2008-03-13 | Simpletech, Inc. | Method and system for secure data storage |
US20080307155A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method of Interfacing A Host Operating Through A Logical Address Space With A Direct File STorage Medium |
CN101849377A (zh) * | 2007-09-04 | 2010-09-29 | 艾比奎蒂数字公司 | 数字无线电广播接收机、广播方法和用于标记感兴趣的内容的方法 |
WO2014180416A1 (zh) * | 2013-09-18 | 2014-11-13 | 中兴通讯股份有限公司 | 一种上传文件到云存储***的方法、下载方法及装置 |
CN105678174A (zh) * | 2015-12-31 | 2016-06-15 | 四川秘无痕信息安全技术有限责任公司 | 一种基于二进制解密微信加密数据的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112836247A (zh) * | 2019-11-25 | 2021-05-25 | 美光科技公司 | 与存储器子***的安全数据通信 |
CN112836247B (zh) * | 2019-11-25 | 2024-04-05 | 美光科技公司 | 与存储器子***的安全数据通信 |
WO2021129557A1 (zh) * | 2019-12-23 | 2021-07-01 | 华为技术有限公司 | 一种文件加密方法及相关装置 |
CN113094718A (zh) * | 2019-12-23 | 2021-07-09 | 华为数字技术(苏州)有限公司 | 一种文件加密方法及相关装置 |
CN112165384A (zh) * | 2020-10-15 | 2021-01-01 | 清华大学 | 数据加密方法和解密方法及数据加密装置和解密装置 |
CN114968088A (zh) * | 2022-04-08 | 2022-08-30 | 中移互联网有限公司 | 文件存储方法、文件读取方法及装置 |
CN114968088B (zh) * | 2022-04-08 | 2023-09-05 | 中移互联网有限公司 | 文件存储方法、文件读取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20190199520A1 (en) | 2019-06-27 |
CN110046506B (zh) | 2023-08-11 |
US10880081B2 (en) | 2020-12-29 |
KR102420158B1 (ko) | 2022-07-13 |
KR20190078962A (ko) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110046506A (zh) | 存储设备和包括存储设备的存储***及使用其进行操作的方法 | |
KR102466412B1 (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 | |
CN111539043B (zh) | 提供对受保护存储器的存取的*** | |
US20140032935A1 (en) | Memory system and encryption method in memory system | |
CN104424016B (zh) | 用于自加密驱动器的虚拟带集中 | |
TW201405359A (zh) | 隨機數產生方法、加密金鑰產生方法、記憶體、記憶體系統以及加密金鑰系統 | |
CN110176267A (zh) | 存储器***及其操作方法 | |
KR20110059313A (ko) | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 마모도 관리 방법 | |
KR20180019419A (ko) | 메모리 컨트롤러, 메모리 시스템 및 그 동작방법 | |
US11567663B2 (en) | Storage device and host for the same | |
EP4020296B1 (en) | Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device | |
US11669644B2 (en) | Storage device and data destruction method thereof | |
US12001676B2 (en) | Storage device and host for the same | |
US11550906B2 (en) | Storage system with separated RPMB sub-systems and method of operating the same | |
EP4180977A1 (en) | Parameter change command for storage device interface tuning | |
US11556252B2 (en) | Storage device and method of operating the same | |
KR20220036569A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20220118004A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20220091955A (ko) | 메모리 시스템 폐기 방법 및 그 메모리 시스템 | |
US11822800B2 (en) | Storage system including host and storage device and operation method thereof | |
US12026101B2 (en) | Methods of operating host device and storage device, and electronic device | |
KR102547251B1 (ko) | 비휘발성 메모리 장치를 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법 | |
US11386018B2 (en) | Memory system and operating method thereof | |
KR20240009363A (ko) | 보안 삭제 검증 가능한 저장 장치 및 그것의 동작 방법 | |
KR20240038418A (ko) | 메모리 컨트롤러 및 이를 포함하는 저장 장치 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |