KR102420158B1 - 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법 - Google Patents

파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법 Download PDF

Info

Publication number
KR102420158B1
KR102420158B1 KR1020170180795A KR20170180795A KR102420158B1 KR 102420158 B1 KR102420158 B1 KR 102420158B1 KR 1020170180795 A KR1020170180795 A KR 1020170180795A KR 20170180795 A KR20170180795 A KR 20170180795A KR 102420158 B1 KR102420158 B1 KR 102420158B1
Authority
KR
South Korea
Prior art keywords
file
ufid
nonvolatile memory
key
controller
Prior art date
Application number
KR1020170180795A
Other languages
English (en)
Other versions
KR20190078962A (ko
Inventor
김석환
장준호
안성준
Original Assignee
삼성전자주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170180795A priority Critical patent/KR102420158B1/ko
Priority to US16/030,087 priority patent/US10880081B2/en
Priority to CN201811462968.0A priority patent/CN110046506B/zh
Publication of KR20190078962A publication Critical patent/KR20190078962A/ko
Application granted granted Critical
Publication of KR102420158B1 publication Critical patent/KR102420158B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File 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)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 스토리지 시스템은 호스트 장치와 스토리지 장치를 포함한다. 호스트 장치는 파일을 생성하고, 생성된 파일의 아이디 및 생성된 파일에 대응하는 적어도 하나의 논리 주소에 기반하여, 파일 단위의 유니크 파일 아이디를 생성한다. 스토리지 장치는 유니크 파일 아이디와 난수에 기반하여 상기 파일에 대응하는 쓰기 데이터를 암호화하거나 복호화하기 위한 키를 생성하고, 키를 이용하여 쓰기 데이터를 암호화하도록 구성되는 스토리지 장치를 포함한다. 본 발명에 의하면 파일 단위로 암호화 키를 생성하기 때문에, 키 값의 사이즈를 줄일 수 있다.

Description

파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법{STORAGE DEVICE AND STORAGE SYSTEM CONFIGURED TO PERFORM ENCRYPTION BASED ON ENCRYPTION KEY IN FILE UNIT AND METHOD OF OPERATING USING THE SAME}
본 발명은 스토리지 시스템에 관한 것으로, 좀 더 상세하게는, 파일 단위의 암호화 키를 생성하는 스토리지 시스템 및 그 동작 방법에 관한 것이다.
반도체 메모리는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같이, 전원 공급이 차단되면 저장된 데이터가 소멸되는 휘발성 메모리 장치, 및 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같이, 전원 공급이 차단되어도 저장된 데이터가 유지되는 불휘발성 메모리 장치로 구분된다.
특히, "쓰기 전 소거(erase before write)" 특성을 갖는 불휘발성 메모리 장치의 경우, 소거 동작이 수행된다 하더라도, 저장된 데이터가 완전히 소거되지는 않는다. 즉, 불휘발성 메모리 장치에 저장된 데이터의 논리 주소-물리 주소 사이의 맵핑 관계만 해소될 뿐이며, 데이터가 물리적으로 완전히 소거되지 않는다. 이를 들어 논리적 소거라고 일컬어지기도 한다. 그러므로, 불휘발성 메모리 장치에 저장된 데이터의 보안/암호화와 관련하여 중요한 이슈가 있다.
한편, 불휘발성 메모리 장치의 보안 성능을 향상시키기 위한 기법으로써, 데이터를 물리적으로 소거하는 방법이 있으나, 잦은 쓰기 및 소거 동작은 불휘발성 메모리 장치의 성능을 하락시키고 수명을 단축시킨다. 반면, 데이터의 논리 주소에 기반하여 암호화를 수행하는 방법의 경우, 모든 논리 주소에 대해 암호화를 수행하므로, 암호화 키의 개수 및/또는 사이즈가 커지는 문제가 있다. 이는 관리 상의 어려움 및 시스템의 복잡도를 초래한다. 그러므로, 시스템의 복잡도를 초래하지 않고 보안 성능을 향상시킬 수 있는 암호화 키를 생성하는 기법이 요구된다.
본 발명의 목적은, 파일 단위로 암호화 키를 생성함으로써, 키 사이즈를 줄이는데 있다.
본 발명의 실시 예에 따른 스토리지 시스템은, 파일을 생성하고, 상기 생성된 파일의 아이디 및 상기 생성된 파일에 대응하는 적어도 하나의 논리 주소에 기반하여, 파일 단위의 유니크 파일 아이디(이하, UFID)를 생성하도록 구성되는 호스트 장치, 그리고 상기 UFID와 난수에 기반하여 상기 생성된 파일에 대응하는 쓰기 데이터를 암호화하거나 복호화하기 위한 키를 생성하고, 상기 키를 이용하여 상기 쓰기 데이터를 암호화하도록 구성되는 스토리지 장치를 포함한다.
본 발명의 실시 예에 따른 스토리지 장치는, 파일 시스템 상에 생성된 파일의 아이디 및 상기 생성된 파일에 대응하는 적어도 하나의 논리 주소에 기반하여 생성된, 파일 단위의 유니크 파일 아이디(이하, UFID)를 이용하여 암호화 키를 생성하도록 구성되는 컨트롤러, 그리고 상기 암호화 키를 저장하도록 구성되는 불휘발성 메모리 장치를 포함한다.
본 발명의 실시 예에 따른 호스트 장치와 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법은, 파일을 생성하는 단계, 상기 생성된 파일의 아이디 및 상기 생성된 파일에 대응하는 적어도 하나의 논리 주소에 기반하여, 파일 단위의 유니크 파일 아이디(이하, UFID)를 생성하는 단계, 상기 UFID를 상기 스토리지 장치로 전달하는 단계, 그리고 상기 호스트 장치로부터 수신된 상기 UFID와 난수에 기반하여, 상기 생성된 파일에 대응하는 쓰기 데이터를 암호화하거나 복호화하기 위한 키를 생성하는 단계를 포함한다.
본 발명에 의하면, 파일 단위로 암호화 키를 생성함으로써, 키 사이즈를 줄일 수 있다.
본 발명에 의하면, 파일 단위로 암호화 키를 관리하기 때문에, 키 관리의 복잡도를 줄일 수 있다.
도 1은 본 발명의 실시 예에 따른 스토리지 시스템의 예시적인 구성을 보여주는 블록도이다.
도 2는 도 1의 스토리지 시스템을 구동하기 위한 소프트웨어/하드웨어 계층들을 보여주는 블록도이다.
도 3은 도 2에 도시된 스토리지 장치의 예시적인 구성을 보여주는 블록도이다.
도 4는 도 1에 도시된 스토리지 시스템의 예시적인 구성을 좀 더 상세하게 보여주는 블록도이다.
도 5는 장치 드라이버가 파일의 아이디와 파일의 주소를 이용하여 유니크 파일 아이디를 생성하는 것을 개념적으로 보여주는 도면이다.
도 6은 도 1에 도시된 스토리지 시스템의 예시적인 구성을 좀 더 상세하게 보여주는 블록도이다.
도 7은 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 순서도이다.
도 8은 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 블록도이다.
도 9는 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 순서도이다.
도 10은 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 블록도이다.
도 11은 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 순서도이다.
도 12는 도 3 내지 도 10을 통하여 설명된 불휘발성 메모리 장치의 구성을 예시적으로 보여주는 블록도이다.
도 13은 도 12의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 예를 보여주는 회로도이다.
도 14는 본 발명의 실시 예에 따른 스토리지 시스템이 적용된 전자 장치를 예시적으로 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 스토리지 시스템(1000)의 예시적인 구성을 보여주는 블록도이다. 스토리지 시스템(1000)은 호스트 장치(1100), 및 스토리지 장치(1200)를 포함할 수 있다.
호스트 장치(1100)는 스토리지 시스템(1000)의 전반적인 동작들을 관리하고 처리할 수 있다. 호스트 장치는 파일 시스템에 기반하는 운영 체제(operating system; OS)를 구동할 수 있다. 호스트 장치(1100)는 다양한 산술 연산/논리 연산을 수행할 수 있다.
예를 들어, 호스트 장치(1100)는 하나 이상의 프로세서 코어들을 포함할 수 있다. 호스트 장치(1100)는 전용 회로(예컨대, Field Programmable Gate Arrays; FPGA), ASICs (Application Specific Integrated Circuits) 등)를 포함하여 구현되거나, 또는 SoC (System on Chip)로 구현될 수 있다. 예를 들어, 호스트 장치(1100)는 범용 프로세서, 전용 프로세서, 또는 애플리케이션 프로세서(Application Processor)를 포함할 수 있다. 호스트 장치(1100)는 프로세서 그 자체이거나, 프로세서를 포함하는 전자 장치 또는 시스템일 수 있다.
호스트 장치(1100)는 사용자의 요청에 따라 커맨드(CMD)를 생성할 수 있다. 예를 들어, 호스트 장치(1100)는 스토리지 장치(1200)로의 쓰기 요청에 다른 쓰기 커맨드 및 쓰기 데이터를 생성할 수 있다. 쓰기 데이터는 쓰기 요청에 따라 호스트 장치(1100) 상에 생성된 파일일 수 있다. 파일은 쓰기 커맨드와 주소(ADDR)에 기반하여 스토리지 장치에 저장된다. 또는, 호스트 장치(1100)는 스토리지 장치(1200)로의 읽기 요청에 따른 읽기 커맨드를 생성할 수 있다. 읽기 커맨드와 주소(ADDR)에 기반하여 스토리지 장치(1200)로부터 데이터가 읽혀질 것이다. 또는, 소거 커맨드에 의하여, 스토리지 장치(1200)에 저장된 데이터가 삭제될 수 있다.
호스트 장치(1100)는, 파일의 아이디와 논리 주소에 기반하여 유니크 파일 아이디(unique file ID)를 생성할 수 있다. 예를 들어, 파일의 아이디는 파일 시스템 내에서의 파일의 아이디일 수 있으며, 논리 주소는 파일 시스템 내에서 파일의 시작 주소일 수 있다. 그러나, 이에 한정되지 않는다. 유니크 파일 아이디는 파일의 모든 논리 주소들에 대응할 수 있다.
호스트 장치(1100)는 벤더 고유의 커맨드(vendor specific command; VS CMD)를 이용하여 유니크 파일 아이디(UFID)를 스토리지 장치(1200)로 전달할 수 있다. 상세하게 후술되겠지만, 유니크 파일 아이디(UFID)는 데이터를 암호화하거나 복호화하는데 이용될 수 있다. 암호화/복호화의 기반이 되는 유니크 파일 아이디(UFID)는 파일의 모든 논리 주소들에 대응한다.
쓰기 요청이 있는 경우, 호스트 장치(1100)는 파일에 대응하는 쓰기 데이터, 주소(ADDR), 및 유니크 파일 아이디(UFID)를 스토리지 장치(1200)로 전달한다. 읽기 요청이 있는 경우, 호스트 장치(1100)는 주소(ADDR), 및 유니크 파일 아이디(UFID)를 스토리지 장치(1200)로 전달한다. 데이터 삭제 요청이 있는 경우, 호스트 장치(1100)는 유니크 파일 아이디(UFID), 및 유니크 파일 아이디(UFID)에 대응하는 키 값을 삭제하기 위한 벤더 고유의 커맨드를 스토리지 장치(1200)로 전달한다.
스토리지 장치(1200)는 호스트 장치(1100)로부터 수신된 유니크 파일 아이디(UFID)를 암호화시키도록 구성될 수 있다. 예를 들어, 스토리지 장치(1200)는 난수와 유니크 파일 아이디(UFID)를 이용하여 키 값을 생성할 수 있다. 스토리지 장치(1200)는 생성된 키 값과 호스트 장치로부터 수신된 데이터(즉, 파일에 대응하는 쓰기 데이터)를 암호화하도록 구성될 수 있다. 키 값은 복수의 논리 주소들을 갖는 하나의 파일에 대응한다.
스토리지 장치(1200)는 호스트 장치(1100)로부터 수신된 읽기 커맨드와 유니크 파일 아이디(UFID)에 기반하여 데이터를 복호화할 수 있다. 나아가, 스토리지 장치(1200)는 호스트 장치(1100)로부터의 소거 요청에 따라, 유니크 파일 아이디(UFID)에 대응하는 키 값을 삭제할 수 있다. 이 때, 키 값의 삭제는 논리적 소거가 아닌, 물리적 소거일 수 있다.
이상 간략히 설명된 본 발명의 암호화 복호화에 의하면, 일반적인 경우와는 달리, 논리 주소 단위가 아닌 파일 단위로 암호화 (또는 복호화) 키가 생성된다. 일반적인 암호화 키 생성 방법에 의하면, 파일의 모든 논리 주소들 각각에 대응하는 암호화 키가 생성되므로, 키 사이즈가 과도화게 커지는 문제가 있다. 그러나, 본 발명의, 파일 기반 또는 파일 단위의 암호화 키 생성 방법에 의하면, 보안 성능의 하락 없이 키 사이즈를 줄일 수 있다.
도 2는 도 1의 스토리지 시스템을 구동하기 위한 소프트웨어/하드웨어 계층들을 보여주는 블록도이다. 예시적으로, 호스트 장치(1100) 상에서 구동되는 애플리케이션(11), 파일 시스템(12), 블록 레이어(13), 및 장치 드라이버(14), 그리고 스토리지 장치(1200)가 도시되었다. 더 나은 이해를 돕기 위해, 도 1을 함께 참조한다.
애플리케이션(11)은 호스트 장치(1100)의 운영 체제(OS)에서 구동되는 다양한 응용 프로그램들을 나타낸다. 예를 들어, 애플리케이션(11)은 호스트 장치(1100)에서 구동되는 문서 편집기, 웹 브라우저, 스프레드시트, 음성 재생기, 또는 화상 재생기 등과 같은 다양한 프로그램들을 포함한다.
파일 시스템(12)은 스토리지 장치(1200)와 교환되는 파일 또는 데이터를 조직화한다. 파일 시스템(12)은 스토리지 장치(1200)의 저장 공간을 액세스하기 위한 논리 주소를 제공한다. 예를 들어, 파일 시스템(12)은 FAT, FAT32, NTFS, HFS, JSF2, XFS, ODS-5, UDF, ZFS, UFS (Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 할 수 있다. 예를 들어, 파일 시스템(12)은 파일 또는 데이터를 섹터 및/또는 클러스터 단위로 관리할 수 있다.
예를 들어, 도면에 도시된 것과는 달리, 본 발명의 스토리지 시스템을 구동하기 위한 소프트웨어/하드웨어 계층들은 복수의 파일 시스템들을 포함할 수 있다. 이 경우, 파일 시스템들은 드라이브 내의 시작 주소에 의해 서로 구별될 수 있다. 나아가, 파일들은, 그 파일들이 속한 파일 시스템 내에서 파일의 아이디에 의해 서로 구별될 수 있다. 예를 들어, 파일 시스템의 크기가 축소되거나 확대되더라도 파일 시스템의 시작 주소 및/또는 파일의 시작 주소는 변하지 않을 수 있다.
블록 레이어(13)는 파일 시스템(12)과 장치 드라이버(14) 사이의 통신을 위한 추상화 레이어(abstraction layer)를 제공한다.
장치 드라이버(14)는 호스트 장치(1100)에 포함된 장치들 및 호스트 장치(1100)와 연결된 장치들을 제어할 수 있다. 장치 드라이버(14)는 운영 체제(OS)의 일반적인 입출력 명령어들을 각 장치들에 대응하는 메시지로 변환시킬 수 있다. 장치 드라이버(14)는 스토리지 장치(1200)을 제어할 수 있다. 예를 들어, 장치 드라이버(14)는 사용자, 애플리케이션, 또는 운영 체제에 의한 읽기 요청 또는 쓰기 요청에 따라 스토리지 장치(1200)로 커맨드(CMD), 주소(ADDR), 및 데이터(DATA)를 전송할 수 있다.
스토리지 장치(1200)는 플래시 변환 계층(flash translation layer; FTL)을 구동할 수 있다. 플래시 변환 계층(FTL)은 파일 시스템(12)과 스토리지 장치(1200) 사이의 인터페이싱을 수행한다. 예를 들어, 플래시 변환 계층(FTL)은 파일 시스템(12)의 논리 주소와 스토리지 장치(1200)의 물리 주소 사이의 매핑을 수행한다. 플래시 변환 계층(FTL)은 쓰기 요청이 수신되면, 파일(또는 쓰기 데이터)의 아이디에 대한 물리 주소를 할당한다. 나아가, 플래시 변환 계층(FTL)은 스토리지 장치(1200)의 가비지 컬렉션(garbage collection), 웨어 레벨링(wear leveling) 등을 더 수행할 수 있다.
도 3은 도 2에 도시된 스토리지 장치(1200)의 예시적인 구성을 보여주는 블록도이다. 스토리지 장치(1200)는 컨트롤러(1210)는 적어도 하나의 프로세서(1211), ROM(1212), 및 ECC 회로(1213)를 포함할 수 있다. 나아가, 컨트롤러(1210)는 다양한 규약에 따라 호스트와의 인터페이싱을 수행하기 위한 호스트 인터페이스(1214), 버퍼 메모리(1230)를 관리/제어하기 위한 버퍼 컨트롤러(1215), 및 불휘발성 메모리 장치(1220)와의 인터페이싱을 수행하기 위한 불휘발성 메모리 인터페이스(1216)를 더 포함할 수 있다.
프로세서(1211)는 컨트롤러(1210)의 전반적인 동작들을 제어할 수 있다. 프로세서(1211)는 컨트롤러(1210)를 구동하거나, 불휘발성 메모리 장치(1220)를 제어하는데 필요한 다양한 펌웨어/소프트웨어들을 구동할 수 있다. 예를 들어, 프로세서(1211)는 복수의 불휘발성 메모리들(NVM1~NVMn)의 논리 주소와 물리 주소 사이의 관계를 정의하는 맵핑 테이블을 관리하기 위한 플래시 변환 계층(FTL)을 구동할 수 있다.
ROM(1212)은 스토리지 장치(1200)를 부팅하는데 필요한 부트 코드를 저장할 수 있다. 나아가, ROM(1212)은 불휘발성 메모리 장치(1220)에 저장된 펌웨어를 버퍼 메모리(1230)로 로딩하기 위한 별도의 펌웨어를 저장할 수 있다. 예를 들어, ROM(1212)에 저장된 펌웨어는 스토리지 장치(1200)의 부팅 온 시 실행되거나, 스토리지 장치(1200)의 런타임 중에 외부(호스트) 또는 내부의 요청에 의해 실행될 수 있다.
ECC 회로(1213)는 불휘발성 메모리 장치(1220)로부터 읽혀진 데이터의 에러를 검출하고 정정할 수 있다.
호스트 인터페이스(1214)는 다양한 통신 규약을 갖는 버스를 이용하여 호스트와 통신을 수행할 수 있다. 예를 들어, 버스 포맷은 USB, SCSI (Small Computer System Interface), PCIe (Peripheral Component Interconnect Express), M-PCIe (Mobile PCIe), ATA (Advanced Technology Attachment), PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI), IDE (Integrated Drive Electronics), EIDE (Enhanced IDE), NVMe (Nonvolatile Memory Express), UFS (Universal Flash Storage) 등과 같은 다양한 인터페이스 규약 중 하나 이상을 포함할 수 있다.
불휘발성 메모리 장치(1220)는 데이터를 저장하기 위한 복수의 불휘발성 메모리들(NVM1~NVMn)을 포함할 수 있다. 예를 들어, 불휘발성 메모리 장치(1220)가 낸드 플래시 메모리(NAND-type Flash Memory)들을 포함하는 경우, 불휘발성 메모리 장치(1220)는 복수의 워드 라인 및 복수의 비트 라인을 따라 형성되는 메모리 셀 어레이들을 포함할 수 있다.
그러나, 위 예는 본 발명을 한정하기 위한 것은 아니다. 불휘발성 메모리 장치(1220)는 EPROM (Electrically Erasable and Programmable ROM), 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 다양한 불휘발성 메모리 장치들 중 적어도 하나 이상을 포함할 수 있다. 더 나은 이해를 돕기 위해, 아래의 설명에서 불휘발성 메모리 장치(1220)가 낸드 플래시 메모리들을 포함하는 것으로 가정될 것이나, 불휘발성 메모리 장치(1220)의 구성들은 다양하게 변경 또는 수정될 수 있다.
버퍼 메모리(1230)는 스토리지 장치(1200)의 동작에 이용되는 데이터를 저장할 수 있다. 버퍼 메모리(1230)는 프로세서(1211)에 의해 처리된 또는 처리될 데이터를 일시적으로 저장할 수 있다. 예를 들어, 버퍼 메모리(1230)는 불휘발성 메모리 장치(1220)로부터 로딩된 펌웨어를 저장할 수 있다. 예를 들어, 버퍼 메모리(1230)는 DRAM (Dynamic RAM), SDRAM (Synchronous RAM) 등과 같은 휘발성 메모리, 및/또는 PRAM (Phase-change RAM), MRAM (Magneto-resistive RAM), ReRAM (Resistive RAM), FRAM (Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
도 4는 도 1에 도시된 스토리지 시스템(1000)의 예시적인 구성을 좀 더 상세하게 보여주는 블록도이다. 도 5는 장치 드라이버(14)가 파일의 아이디와 파일의 주소를 이용하여 유니크 파일 아이디(unique file identifier; UFID)를 생성하는 것을 개념적으로 보여주는 도면이다. 도 4와 도 5를 함께 참조하여, 유니크 파일 아이디(UFID)의 생성, 및 키의 생성/관리를 설명하기로 한다.
호스트 장치(1100)의 파일 시스템(12)은 사용자의 요청 등이 있는 경우, 파일을 생성한다. 예시적으로, ‘File B’라는 이름을 갖는 파일이 생성되는 것으로 도시되었다. 파일의 생성이 감지되면, 장치 드라이버(14)는 이를 감지할 수 있다. 예를 들어, 장치 드라이버(14)는 파일 시스템(12)에 생성된 파일을 직접 감지할 수 있다.
대안적으로 또는 추가적으로, 장치 드라이버(14)는 파일 시스템(12)과 블록 레이어(13) 사이의 트랜잭션을 감지하거나, 또는 블록 레이어(13)와 장치 드라이버(14) 사이의 트랜잭션을 감지함으로써, 파일의 생성을 감지할 수 있다. 이 경우, 장치 드라이버(14)에 의한 파일 생성의 감지를 위해, 각 계층들 사이에는 필터 드라이버(미도시)가 제공될 수 있다.
장치 드라이버(14)는 생성된 파일의 아이디와 논리 주소들(LA1~LAn)에 기반하여 유니크 파일 아이디(UFID)를 생성할 수 있다. 예를 들어, 파일의 아이디는 파일 시스템(12)에 의해 할당된 파일 고유의 아이디일 수 있으며, 파일의 논리 주소는 파일 시스템(12)내에서의 섹터 및/또는 클러스터 기반의 주소일 수 있다.
장치 드라이버(14)에 의해 생성된 유니크 파일 아이디(UFID)는 파일의 아이디와 논리 주소에 기반하여 생성되므로, 심플할 뿐만 아니라 다른 파일의 유니크 파일 아이디(UFID)와 구별되는 독특한 값을 갖는다. 예를 들어, 유니크 파일 아이디(UFID)는 파일 시스템 내에서의 파일의 시작 주소일 수 있으나, 이에 한정되지 않는다. 예를 들어, 논리 주소들(LA1~LAn)은 불연속적일 수 있다.
한편, 파일의 생성이 감지된 경우, 장치 드라이버(14)는 유니크 파일 아이디(UFID)를 컨트롤러(1210)로 전달할 수 있다. 예를 들어, 장치 드라이버(14)는 벤더 고유의 커맨드(vendor specific command; VS CMD)를 이용하여 유니크 파일 아이디(UFID)를 전달할 수 있다. 예를 들어, 유니크 파일 아이디(UFID)는 벤더 고유의 커맨드의 미할당 필드(예를 들어, reserved field 등)에 부가되어 전송될 수 있다. 그러나, 이에 한정되지 않는다.
컨트롤러(1210)는 유니크 파일 아이디(UFID)를 이용하여 데이터를 암호화하거나 복호화하는데 필요한 키를 생성하도록 구성될 수 있다. 이러한 구성의 예로써, 컨트롤러(1210)는 난수 생성기(1217) 및 키 생성기(1218)를 포함할 수 있다.
난수 생성기(1217)는 특정한 하나의 값(예컨대, ‘0’ 또는 ‘1’)이 일정 길이 이상 연속하여 출력되지 않는 불규칙한 수들을 생성하도록 구성될 수 있다. 예를 들어, 난수 생성기(1217)는 링-오실레이터를 이용하여 구현되거나, 또는 메타-스테이빌리티(meta-stability)를 이용하여 구현될 수 있다. 그러나, 이에 한정되지 않는다.
키 생성기(1218)는 유니크 파일 아이디(UFID)와 난수에 기반하여 데이터를 암호화하거나 복호화하는데 필요한 키 값을 생성하도록 구성될 수 있다. 파일 시스템(12)에 의해 생성된 파일은, 고유의 파일 아이디와 고유의 파일 주소를 가지므로, 키 생성기(1218)에 의해 생성되는 키 값도 다른 키 값과 구별되는 고유의 값을 가질 수 있다. 생성된 키 값은 불휘발성 메모리 장치(1220)로 전달될 수 있다.
불휘발성 메모리 장치(1220)는 컨트롤러(1210)로부터 수신된 키 값을 저장할 수 있다. 예를 들어, 키 값은 유니크 파일 아이디(UFID)와 관련되어 테이블의 형태로 관리될 수 있다. 예를 들어, 키 값은 일반적인 유저 데이터가 저장되는 영역과는 다른 영역(예컨대, 관리자 영역, over provisioning 영역 등)에 저장될 수 있다. 그러므로, 일반적인 권한 없는 사용자는 불휘발성 메모리 장치(1220)의 키가 저장된 영역을 액세스하지 못할 수 있다.
도 6은 도 1에 도시된 스토리지 시스템(1000)의 예시적인 구성을 좀 더 상세하게 보여주는 블록도이다. 본 실시 예에서, 파일 시스템(12)에 의해 생성된 파일이 스토리지 장치(1200)에 저장되는 동작이 설명될 것이다.
파일 시스템(12)에 파일(예컨대, File B)이 생성되는 경우, 일반적으로 사용자의 요청에 따라 파일 시스템(12)에 의해 쓰기 커맨드(CMDw)가 생성될 수 있다. 여기서 쓰기 커맨드(CMDw)는 파일 B를 불휘발성 메모리 장치(1220)에 저장하고자 하는 커맨드이며, 유니크 파일 아이디(UFID)는 파일 B에 대응한다. 예를 들어, 장치 드라이버(14)는 쓰기 커맨드(CMDw)와 유니크 파일 아이디(UFID)를 컨트롤러(1210)로 전달할 수 있다. 대안적으로/추가적으로, 장치 드라이버(14) 하위의 계층(예컨대, 링크 계층, 전송 계층 등)은 쓰기 커맨드(CMDw)와 유니크 파일 아이디(UFID)를 컨트롤러(1210)를 패킷화하여 컨트롤러(1210)로 전달할 수 있다. 그러나, 이에 한정되지 않는다.
파일 시스템(12)는 주소(ADDR)와 쓰기 데이터(DATAw)를 컨트롤러(1210)로 전달할 수 있다. 예를 들어, 주소(ADDR)는 파일 시스템(12)에 의해 생성된, 파일의 논리 주소이거나, 논리 주소에 대응할 수 있다.
컨트롤러(1210)는 암호화 및 복호화기(1219), 그리고 플래시 변환 계층(FTL)을 포함할 수 있다. 예를 들어, 암호화 및 복호화기(1219)는 하드웨어로 구현되는 기능 블록(예컨대, Intellectual Property; IP)이거나, 암호화 알고리즘에 따라 소프트웨어/펌웨어로 구현될 수 있다. 그러나, 이에 한정되지 않는다. 플래시 변환 계층(FTL)은 불휘발성 메모리 장치(1220)에 저장되었다가, 스토리지 장치(1200)의 부팅 시 버퍼 메모리(도 3, 1230)에 로딩되어 프로세서(도 3, 1211)에 의해 구동될 수 있다.
암호화 및 복호화기(1219)는 불휘발성 메모리 장치(1220)에 저장된 키 값을 이용하여 쓰기 데이터(DATAw)를 암호활 수 있다. 물론, 암호화 하기에 앞서, 컨트롤러(1210)는, 쓰기 커맨드(CMDw)에 응답하여, 불휘발성 메모리 장치(1220)에 저장된 테이블로부터 파일 B (또는 쓰기 데이터(DATAw))에 대응하는 키 값을 읽어내야 할 것이다.
플래시 변환 계층(FTL)은 호스트 장치(1100)로부터 수신된 주소(ADDR)와, 암호화된 쓰기 데이터가 저장될 불휘발성 메모리 장치(1220) 상의 물리 주소를 맵핑한다. 컨트롤러(1210)는 플래시 변환 계층(FTL)에 의한 맵팽 결과에 의해 지시되는 영역에 암호화된 쓰기 데이터를 저장할 것이다.
도 7은 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 순서도이다. 더 나은 이해를 돕기 위해 도 4 내지 도 6을 함께 참조한다.
S110 단계에서, 사용자에 의한 요청 등이 있는 경우, 호스트 장치(1100)의 파일 시스템(12)은 파일과 파일의 아이디를 생성한다. 장치 드라이버(14)는 파일의 생성을 직접 감지하거나, 각 계층들 사이에 제공되는 필터 레이어를 이용하여 파일의 생성을 감지한다. 파일 시스템은, 파일 시스템 상의 파일의 아이디와 파일의 논리 주소를 이용하여 유니크 파일 아이디(UFID)를 생성한다. UFID는 벤더 고유의 커맨드를 이용하여 컨트롤러(1210)로 전달된다(S120).
S130 단계에서, 컨트롤러(1210)는 유니크 파일 아이디(UFID)와 난수를 이용하여 데이터를 암호화하거나 복호화하는데 필요한 키 값을 생성할 수 있다. 유니크 파일 아이디(UFID)는 파일 고유의 아이디와 고유의 주소에 기반하기 때문에, 키 값도 파일과 관련하여 다른 파일과 구별되는 고유의 값을 갖는다. 생성된 키 값은 불휘발성 메모리 장치(1220)로 전달되어, 테이블로써 관리될 수 있다(S140).
S150 단계에서, 호스트 장치(1100)는, 파일에 대한 쓰기 요청에 따라, 쓰기 커맨드(CMDw), 유니크 파일 아이디(UFID), 주소(ADDR), 및 쓰기 데이터(DATAw)를 컨트롤러(1210)로 전달할 수 있다. 주소(ADDR)는 파일 시스템(12)에 의해 생성된 파일의 논리 주소이거나 파일의 논리 주소에 대응할 수 있으며, 쓰기 데이터(DATAw)는 파일이거나 파일에 대응할 수 있다.
S160 단계에서, 컨트롤러(1210)는 키 값을 이용하여 쓰기 데이터(DATAw)를 암호화할 수 있다. 암호화된 데이터는 불휘발성 메모리 장치(1220)로 전달될 수 있으며(S170), 플래시 변환 계층(FTL)의 주소 맵핑 결과에 의해 지시되는 물리 영역 상에 프로그램될 수 있다(S180).
상술된 동작들에 의하면, 파일의 아이디 및 주소에 기반하여, 파일의 유니크 파일 아이디(UFID)가 생성된다. 파일이 복수의 논리 주소들을 가지고 있다 하더라도, 복수의 논리 주소들에 공통적으로 해당하는 하나의 유니크 파일 아이디(UFID)만을 이용하여 암호화를 수행하므로, 암호화에 필요한 키 값의 크기를 줄일 수 있다.
도 8은 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 블록도이다. 본 실시 예에서, 읽기 동작 및 복호화 동작이 설명될 것이다.
사용자 등의 읽기 요청이 있는 경우, 호스트 장치(1100)의 파일 시스템(12)은 읽기 커맨드(CMDr)를 생성한다.
장치 드라이버(14)는 읽기 커맨드(CMDr)의 생성을 감지한다. 예를 들어, 장치 드라이버(14)는 파일 시스템(12)으로부터 읽기 커맨드(CMDr)의 생성을 직접 감지하거나, 각 계층들 사이에 제공되는 필터 레이어(미도시)를 통하여 읽기 커맨드(CMDr)의 생성을 감지한다. 장치 드라이버(14)는 읽기 커맨드(CMDr), 읽어낼 파일에 대응하는 UFID, 및 주소(ADDR)를 컨트롤러(1210)로 전달한다.
읽기 커맨드(CMDr)가 수신되면, 컨트롤러(1210)는 플래시 변환 계층(FTL)의 매핑 결과에 기반하여 불휘발성 메모리 장치(1220)로부터 데이터를 읽어낸다. 읽혀진 데이터는 암호화된 읽기 데이터일 것이다.
나아가, 컨트롤러(1210)는, 읽기 커맨드(CMDr)에 응답하여, 읽기 커맨드(CMDr)와 함께 수신된 유니크 파일 아이디(UFID)의 키 값을 불휘발성 메모리 장치(1220)로부터 읽어낸다. 암호화 및 복호화기(1219)는 키 값을 이용하여 암호화된 읽기 데이터를 복호화할 수 있다. 복호화된 읽기 데이터(DATAr)는 호스트 장치(1100)로 전달될 것이다.
도 9는 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 순서도이다. 더 나은 이해를 돕기 위해 8을 함께 참조한다.
S210 단계에서, 사용자의 읽기 요청에 따라 읽기 커맨드(CMDr), 유니크 파일 아이디(UFID), 및 주소(ADDR)가 컨트롤러(1210)로 전달될 수 있다. 유니크 파일 아이디(UFID)는 읽어내고자 하는 파일에 대하며, 주소(ADDR)는 읽어내고자 하는 파일의 논리 주소에 대응한다.
읽기 커맨드(CMDr)와 주소(ADDR)가 불휘발성 메모리 장치(1220)로 전달되면(S220), 읽어내고자 하는 데이터에 대한 읽기 동작이 수행되며(S230), 암호화된 읽기 데이터가 읽혀질 것이다(S240). 비록 도면에는, 암호화된 읽기 데이터가 컨트롤러(1210)로 로딩되는 것으로 도시되었지만, 좀 더 상세하게는, 버퍼 메모리(도3, 1230)에 로딩될 것이다.
S250 단계에서, 키 값을 이용하여 복호화가 수행될 수 있다. 복호화된 데이터는 읽기 데이터(DATAr)로써, 호스트 장치(1100)로 전달될 것이다. 비록 도면에는, 복호화가 수행될 때, 키 테이블로부터 키 값이 읽혀지는 것으로 도시되었으나, 이에 한정되지 않는다. 예를 들어, 키 값은 S240 단계에서 암호화된 데이터가 읽혀질 때 읽혀지는 등, 다양한 시점에서 읽혀질 수 있다.
도 10은 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 블록도이다. 본 실시 예에서, 파일을 삭제하는 동작이 설명될 것이다.
파일 삭제 요청이 있는 경우, 호스트 장치(1100)의 파일 시스템(12)은 소거 커맨드(CMDe)를 생성한다.
장치 드라이버(14)는 소거 커맨드(CMDe)의 생성을 감지한다. 예를 들어, 장치 드라이버(14)는 파일 시스템(12)으로부터 소거 커맨드(CMDe)의 생성을 직접 감지하거나, 각 계층들 사이에 제공되는 필터 레이어(미도시)를 통하여 소거 커맨드(CMDe)의 생성을 감지한다. 장치 드라이버(14)는 벤더 고유의 커맨드(VS CMD), 및 소거할 파일의 유니크 파일 아이디(UFID)를 컨트롤러(1210)로 전달한다.
컨트롤러(1210)는 벤더 고유의 커맨드(VS CMD)에 응답하여 불휘발성 메모리 장치에 저장된 키 테이블에서 삭제하고자 하는 파일에 대응하는 유니크 파일 아이디(UFID)를 삭제할 수 있다. 이때, 유니크 파일 아이디(UFID)의 삭제는 물리적 소거를 수반한다. 유니크 파일 아이디(UFID)가 물리적으로 소거되었기 때문에, 유니크 파일 아이디(UFID)에 대응하는 암호화된 데이터를 읽어내더라도 복호화할 수 없다.
이후, 컨트롤러(1210)는 호스트 장치(1100)로부터 소거 커맨드(CMDe)와 주소(ADDR)를 수신한다. 플래시 변환 계층(FTL)은 소거될 파일의 논리 주소와, 소거될 파일에 대응하는 데이터가 저장된 물리 주소 사이의 맵핑 관계를 해소시킨다. 즉, 소거될 파일은 불휘발성 메모리 장치(1220)로부터 논리적으로 삭제(즉, 무효 데이터)된다. 이후, 불휘발성 메모리 장치(1220)의 저장 공간이 부족하다는 등의 사정이 발생하면, 컨트롤러(1210)는 논리적으로 소거된 데이터(즉, 무효 데이터)가 저장된 영역에 대해 가비지 컬렉션 및/또는 물리적 소거 동작(예컨대, sanitize)을 수행할 수 있다.
도 11은 본 발명의 실시 예에 다른 스토리지 시스템의 동작을 보여주는 순서도이다. 더 나은 이해를 돕기 위해 10을 함께 참조한다.
S310 단계에서, 파일에 대한 소거 커맨드(CMDe), 소거 요청된 파일의 유니크 파일 아이디(UFID), 및 주소(ADDR)가 컨트롤러(1210)로 전달된다. 예를 들어, 유니크 파일 아이디(UFID)는 벤더 고유의 커맨드(VS CMD)를 통하여 컨트롤러로 전달될 수 있다. 대안적으로, 도면에 도시된 것과는 달리, 유니크 파일 아이디(UFID)가 먼저 컨트롤러(1210)로 전달된 후, UFID에 대응하는 키 값이 불휘발성 메모리 장치(1220)로부터 물리적으로 소거되면, 소거 커맨드(CMDe)가 컨트롤러(1210)로 전달될 수 있다.
S320 단계에서, 컨트롤러(1210)는 유니크 파일 아이디(UFID)에 대응하는 키 값을 물리적으로 소거할 수 있다.
S330 단계에서, 컨트롤러(1210)는 소거 요청된 파일에 대응하는 주소(ADDR), 소거 요청된 파일의 물리 주소 사이의 맵핑 관계가 해소될 수 있다. 즉, 소거 요청된 파일이 논리적으로 소거된다.
S340 단계에서, 만일 불휘발성 메모리 장치(1220)의 저장 공간이 불충분한 경우, 컨트롤러(1210)는 저장 공간을 확보하기 위해 불휘발성 메모리 장치(1220)에 대한 가비지 컬렉션 및/또는 새니타이즈 등을 실행할 수 있다. 그 결과, 논리적으로 소거되었던 데이터(무효 데이터)는 물리적으로 소거된다.
일반적으로, 파일의 삭제 요청이 있더라도, 데이터가 논리적으로 소거되는 시점과 물리적으로 소거되는 시점 사이에는 상당한 텀이 있다. 그러나, 본 발명에 의하면, 파일 단위로 생성되는 유니크 파일 아이디(UFID)를 이용하여 데이터를 암호화하므로, 암호화 또는 복호화에 필요한 키 값의 크기를 줄일 수 있다. 그리고, 파일의 삭제 요청 시, 삭제 요청된 파일에 대응하는 유니크 파일 아이디(UFID)를 물리적으로 소거하기 때문에 데이터의 보안을 강화할 수 있다.
도 12는 도 3 내지 도 10을 통하여 설명된 불휘발성 메모리 장치(1220)의 구성을 예시적으로 보여주는 블록도이다. 불휘발성 메모리 장치(1220)는 메모리 셀 어레이(1221), 어드레스 디코더(1222), 페이지 버퍼(1223), 입출력 회로(1224), 그리고 제어 로직(1225)을 포함할 수 있다.
메모리 셀 어레이(1221)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 셀 스트링들을 포함할 수 있다. 복수의 셀 스트링들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들은 복수의 워드라인들(WL)과 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트를 저장하는 단일 레벨 셀(Single Level Cell; SLC) 또는 적어도 2-비트를 저장하는 멀티 레벨 셀(Multi Level Cell; MLC)을 포함할 수 있다.
어드레스 디코더(1222)는 복수의 워드라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(1221)와 연결된다. 어드레스 디코더(1222)는 외부로부터 논리 주소를 수신하고, 수신된 논리 주소를 디코딩 하여, 복수의 워드라인들(WL)을 구동할 수 있다. 예를 들어, 주소(ADDR)는 논리 주소가 변환된, 불휘발성 메모리 장치(1200)의 물리 주소를 나타낼 수 있다. 상술된 주소 변환 동작은 본 발명의 컨트롤러(도 3, 1210)에 의해 구동되는 플래시 변환 계층(FTL)에 의해 수행될 수 있다.
페이지 버퍼(1223)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(1221)와 연결된다. 페이지 버퍼(1223)는 제어 로직(1225)의 제어에 따라 입출력 회로(1224)로부터 수신된 데이터(DATA)가 메모리 셀 어레이(1221)에 저장되도록 비트 라인들(BL)을 제어할 수 있다. 페이지 버퍼(1223)는 제어 로직(1225)의 제어에 따라 메모리 셀 어레이(1221)에 저장된 데이터를 읽고, 읽은 데이터를 입출력 회로(1224)로 전달할 수 있다. 예시적으로, 페이지 버퍼(1223)는 입출력 회로(1224)로부터 페이지 단위로 데이터를 수신하거나 또는 메모리 셀 어레이(1221)로부터 페이지 단위로 데이터를 읽을 수 있다.
입출력 회로(1224)는 외부 장치로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 페이지 버퍼(1223)로 전달할 수 있다.
제어 로직(1225)은 외부로부터 커맨드(CMD) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(1222), 페이지 버퍼(1223), 및 입출력 회로(1224)를 제어할 수 있다. 예를 들어, 제어 로직(1225)은 신호들(CMD, CTRL)에 응답하여 데이터(DATA)가 메모리 셀 어레이(1221)에 저장되도록 다른 구성 요소들을 제어할 수 있다. 또는 제어 로직(1225)은 신호들(CMD, CTRL)에 응답하여 메모리 셀 어레이(1221)에 저장된 데이터(DATA)가 외부 장치로 전송되도록 다른 구성 요소들을 제어할 수 있다. 제어 신호(CTRL)는 컨트롤러(도 2, 1210)가 불휘발성 메모리 장치(1200)를 제어하기 위하여 제공하는 신호일 수 있다.
제어 로직(1225)은 불휘발성 메모리 장치(1200)가 동작하는데 요구되는 다양한 전압들을 생성할 수 있다. 예를 들어, 제어 로직(1225)은 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 소거 전압들, 복수의 검증 전압들과 같은 다양한 전압들을 생성할 수 있다. 제어 로직(1225)은 생성된 다양한 전압들을 어드레스 디코더(1222)로 제공하거나 또는 메모리 셀 어레이(1221)의 기판으로 제공할 수 있다.
도 13은 도 12의 메모리 셀 어레이에 포함된 메모리 블록들 중 어느 하나의 예를 보여주는 회로도이다. 도 13을 참조하면, 메모리 블록(BLK)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.
예를 들어, 셀 스트링들(CS11, CS12)은 스트링 선택 라인들(SSL1a, SSL1b)과 연결되어, 제 1 행을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 스트링 선택 라인들(SSL2a, SSL2b)과 연결되어 제 2 행을 형성할 수 있다. 예를 들어, 셀 스트링들(CS11, CS21)은 제 1 비트라인(BL1)과 연결되어 제 1 열을 형성할 수 있다. 셀 스트링들(CS12, CS22)은 제 2 비트라인(BL2)과 연결되어 제 2 열을 형성할 수 있다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택된 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택된 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다. 예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(charge trap flash; CTF) 메모리 셀일 수 있다.
복수의 메모리 셀들(MC1~MC8)은 직렬 연결되며, 행 방향 및 열 방향에 의해 형성된 평명과 수직 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택된 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택된 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트라인(BL) 사이에 제공된다. 접지 선택된 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택된 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC8) 및 공통 소스 라인(CSL) 사이에 제공된다.
예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 접지 선택된 트랜지스터들(GSTa, GSTb) 사이에 제 1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 스트링 선택된 트랜지스터들(SSTa, SSTb) 사이에 제 2 더미 메모리 셀(DMC2)이 제공될 수 있다.
셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택된 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다. 예시적으로, 동일한 행의 접지 선택된 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 행의 접지 선택된 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 접지 선택된 트랜지스터들(GSTa)은 제 1 접지 선택 라인에 연결될 수 있고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 접지 선택된 트랜지스터들(GSTa)은 제 2 접지 선택 라인에 연결될 수 있다.
예시적으로, 도면에 도시되지는 않았으나, 기판(미도시)으로부터 동일한 높이에 제공되는 접지 선택된 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 높이에 제공되는 접지 선택된 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 접지 선택된 트랜지스터들(GSTa)은 제 1 접지 선택 라인에 연결되고, 제 2 접지 선택 트랜지스터들(GSTb)은 제 2 접지 선택 라인에 연결될 수 있다.
기판(또는 접지 선택된 트랜지스터(GSTa, GSTb)로부터 동일한 높이의 메모리 셀들은 동일한 워드라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드라인에 연결된다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제 1 내지 제 8 메모리 셀들(MC8)은 제 1 내지 제 8 워드라인들(WL1~WL8)에 각각 공통으로 연결된다.
동일한 높이의 제 1 스트링 선택된 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 스트링 선택된 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결되고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 스트링 선택된 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결된다.
마찬가지로, 동일한 높이의 제 2 스트링 선택된 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제 2 행의 셀 스트링들(CS21, CS22)의 제 2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결된다.
비록 도면에 도시되지는 않았으나, 동일한 행의 셀 스트링들의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제 1 행의 셀 스트링들(CS11, CS12)의 제 1 및 제 2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 제 2 행의 셀 스트링들(CS21, CS22)의 제 1 및 제 2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다.
예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다. 예를 들어, 제 1 더미 메모리 셀들(DMC1)은 제 1 더미 워드라인(DWL1)과 연결되고, 제 2 더미 메모리 셀들(DMC2)은 제 2 더미 워드라인(DWL2)과 연결된다.
메모리 블록(BLK)에서, 읽기 및 쓰기는 행 단위로 수행될 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLK)의 하나의 행이 선택될 수 있다.
예를 들어, 스트링 선택 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제 1 행의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제 2 행의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결되어 구동된다. 워드라인을 구동함으로써 구동되는 행의 셀 스트링의 메모리 셀들 중 동일한 높이의 메모리 셀들이 선택된다. 선택된 메모리 셀들에서 읽기 및 쓰기 동작이 수행될 수 있다. 선택된 메모리 셀들은 물리 페이지 단위를 형성할 수 있다.
메모리 블록(BLK)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 메모리 블록(BLK)의 모든 메모리 셀들(MC)이 하나의 소거 요청에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 메모리 블록(BLK)의 메모리 셀들(MC) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결된 워드 라인은 플로팅 될 수 있다.
예시적으로, 도시된 메모리 블록(BLK)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 메모리 블록(BLK)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들은 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 메모리 블록(BLK)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.
도 14는 본 발명의 실시 예에 따른 스토리지 시스템이 적용된 전자 장치를 예시적으로 보여주는 블록도이다. 예를 들어, 전자 장치(2000)는 스마트폰, 태블릿 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 웨어러블(Wearable) 기기로 구현될 수 있다.
전자 장치(2000)는 이미지 처리 장치(2100), 메인 프로세서(2200), 워킹 메모리(2300), 스토리지(2400), 디스플레이(2500), 통신 블록(2600), 및 유저 인터페이스(2700)를 포함할 수 있다.
이미지 처리 장치(2100)는 이미지를 촬영하기 위한 이미지 센서(2110), 및 촬영된 이미지를 처리하기 위한 이미지 프로세서(2120)를 포함할 수 있다.
메인 프로세서(2200)는 전자 장치(2000)의 전반적인 동작을 제어할 수 있다. 메인 프로세서(2200)는 파일 시스템 기반의 운영 체제(OS)를 구동할 수 있다. 특히, 메인 프로세서(2200)는 파일의 아이디와 주소에 기반하는, 유니크 파일 아이디(UFID)를 생성할 수 있다. 나아가, 메인 프로세서(2200)는, 유니크 파일 아이디(UFID)에 기반하여 데이터를 암호화하거나 복호화하도록 구성되는 암호화 및 복호화기(2210)를 포함할 수 있다. 추가적으로/대안적으로 암호화 및 복호화기(2210)는 워킹 메모리(2300) 상에서 구동되는 소프트웨어 및/또는 펌웨어일 수 있다.
워킹 메모리(2300)는 전자 장치(2000)의 동작에 이용되는 데이터를 저장할 수 있다. 예를 들어, 워킹 메모리(2300)에는 스토리지(2400)에 저장되는 데이터의 논리 주소와 물리 주소 사이의 맵핑 관계를 정의하는 플래시 변환 계층(FTL)이 로딩될 수 있다. 예를 들어, 워킹 메모리(2300)는 DRAM (Dynamic RAM), SDRAM (Synchronous RAM) 등과 같은 휘발성 메모리, 및/또는 PRAM (Phase-change RAM), MRAM (Magneto-resistive RAM), ReRAM (Resistive RAM), FRAM (Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
스토리지(2400)는 데이터를 암호화하거나 복호화하는데 필요한 키 값을 저장할 수 있다. 예를 들어, 키 값은 일반적인 데이터가 저장되는 영역과는 다른 영역에 저장될 수 있다. 예를 들어, 키 값이 저장되는 영역은 사용자에 의해 액세스 불가능한 영역일 수 있다. 스토리지(2400)는 플래시 메모리, PRAM, MRAM, ReRAM, FRAM 등과 같은 불휘발성 메모리를 포함할 수 있다.
디스플레이(2500)는 디스플레이 패널 및 DSI (display serial interface) 주변 회로를 포함할 수 있다. 예를 들어, 디스플레이 패널은 LCD (Liquid Crystal Display) 장치, LED (Light Emitting Diode) 표시 장치, OLED (Organic LED) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치 등과 같은 다양한 장치로 구현될 수 있다. 메인 프로세서(2200)에 내장된 DSI 호스트는 DSI를 통하여 디스플레이 패널과 시리얼 통신을 수행할 수 있다. DSI 주변 회로는 디스플레이 패널을 구동하는데 필요한 타이밍 컨트롤러, 소스 드라이버 등을 포함할 수 있다.
통신 블록(2600)은 안테나를 통해 외부 장치/시스템과 신호를 교환할 수 있다. 통신 블록(2600)의 송수신기(2610) 및 MODEM (Modulator/Demodulator, 2620)은 LTE (Long Term Evolution), WIMAX (Worldwide Interoperability for Microwave Access), GSM (Global System for Mobile communication), CDMA (Code Division Multiple Access), Bluetooth, NFC (Near Field Communication), Wi-Fi (Wireless Fidelity), RFID (Radio Frequency Identification) 등과 같은 무선 통신 규약에 따라, 외부 장치/시스템과 교환되는 신호를 처리할 수 있다.
유저 인터페이스(2700)는 키보드, 마우스, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 자이로스코프 센서, 진동 센서, 가속 센서 등과 같은 입력 인터페이스들 중 적어도 하나를 포함할 수 있다.
전자 장치(2000)의 구성 요소들은 USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCIe (Peripheral Component Interconnect Express), M-PCIe (Mobile PCIe), ATA (Advanced Technology Attachment), PATA (Parallel ATA), SATA (Serial ATA), SAS (Serial Attached SCSI), IDE (Integrated Drive Electronics), EIDE (Enhanced IDE), NVMe (Nonvolatile Memory Express), UFS (Universal Flash Storage) 등과 같은 다양한 인터페이스 규약 중 하나 이상에 의거하여 데이터를 교환할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
1000: 스토리지 시스템 1100: 호스트 장치
1200: 스토리지 장치 1210: 컨트롤러
1211: 프로세서 1212: ROM
1213: ECC 회로 1214: 호스트 인터페이서
1215: 버퍼 컨트롤러 1216: 불휘발성 메모리 인터페이스
1217: 난수 생성기 1218: 키 생성기
1219: 암호화 및 복호화기 1220: 불휘발성 메모리 장치
1230: 버퍼 메모리

Claims (10)

  1. 파일을 생성하고, 상기 생성된 파일의 아이디 및 상기 생성된 파일에 대응하는 적어도 하나의 논리 주소에 기반하여, 파일 단위의 유니크 파일 아이디(이하, UFID)를 생성하도록 구성되는 호스트 장치; 그리고
    상기 UFID와 난수에 기반하여 상기 생성된 파일에 대응하는 쓰기 데이터를 암호화하거나 복호화하기 위한 키를 생성하고, 상기 키를 이용하여 상기 쓰기 데이터를 암호화하도록 구성되는 스토리지 장치를 포함하고,
    상기 스토리지 장치는:
    상기 UFID와 상기 난수에 기반하여 상기 키를 생성하고, 상기 키를 이용하여 상기 쓰기 데이터를 암호화하도록 구성되는 컨트롤러; 그리고
    상기 키, 및 상기 암호화된 데이터를 저장하도록 구성되는 불휘발성 메모리 장치를 포함하고,
    상기 호스트 장치는, 읽기 요청에 따라 읽기 커맨드를 생성하고, 상기 읽기 커맨드 및 상기 UFID를 상기 스토리지 장치로 전달하도록 더 구성되는 스토리지 시스템.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 호스트 장치는,
    상기 생성된 파일에 관한 쓰기 요청에 따라 쓰기 커맨드를 생성하고, 상기 쓰기 커맨드, 상기 UFID, 및 상기 쓰기 데이터를 상기 스토리지 장치로 전달하도록 더 구성되는 스토리지 시스템.
  4. 제 1 항에 있어서,
    상기 UFID는, 상기 생성된 파일의 파일 시스템 상의 시작 주소에 기반하는 스토리지 시스템.
  5. 삭제
  6. 제 1 항에 있어서,
    상기 컨트롤러는,
    상기 불휘발성 메모리 장치에 저장된 상기 키를 이용하여 상기 불휘발성 메모리 장치에 저장된 상기 암호화된 데이터를 복호화하도록 더 구성되는 스토리지 시스템.
  7. 제 1 항에 있어서,
    상기 호스트 장치는 상기 생성된 파일에 관한 삭제 요청에 따라 상기 UFID를 상기 컨트롤러에 전달하도록 더 구성되고,
    상기 컨트롤러는 상기 불휘발성 메모리 장치에 저장된 상기 키를 삭제하도록 더 구성되는 스토리지 시스템.
  8. 파일 시스템 상에 생성된 파일의 아이디 및 상기 생성된 파일에 대응하는 적어도 하나의 논리 주소에 기반하여 생성된, 파일 단위의 유니크 파일 아이디(이하, UFID)를 이용하여 암호화 키를 생성하도록 구성되는 컨트롤러; 그리고
    상기 암호화 키를 저장하도록 구성되는 불휘발성 메모리 장치를 포함하고,
    상기 컨트롤러는 읽기 커맨드에 응답하여 상기 불휘발성 메모리 장치에 저장된 상기 암호화 키를 이용하여 상기 암호화된 쓰기 데이터를 복호화하도록 더 구성되는 스토리지 장치.
  9. 제 8 항에 있어서,
    상기 컨트롤러는:
    쓰기 커맨드에 응답하여 상기 불휘발성 메모리 장치에 저장된 상기 암호화 키를 이용하여 상기 생성된 파일에 대응하는 쓰기 데이터를 암호화하고; 그리고
    상기 암호화된 쓰기 데이터를 상기 불휘발성 메모리 장치에 저장하도록 더 구성되는 스토리지 장치.
  10. 삭제
KR1020170180795A 2017-12-27 2017-12-27 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법 KR102420158B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170180795A KR102420158B1 (ko) 2017-12-27 2017-12-27 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법
US16/030,087 US10880081B2 (en) 2017-12-27 2018-07-09 Storage device and storage system configured to perform encryption based on encryption key in file unit and method of operating using the same
CN201811462968.0A CN110046506B (zh) 2017-12-27 2018-11-30 存储设备和包括存储设备的存储系统及使用其进行操作的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170180795A KR102420158B1 (ko) 2017-12-27 2017-12-27 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20190078962A KR20190078962A (ko) 2019-07-05
KR102420158B1 true KR102420158B1 (ko) 2022-07-13

Family

ID=66950816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170180795A KR102420158B1 (ko) 2017-12-27 2017-12-27 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법

Country Status (3)

Country Link
US (1) US10880081B2 (ko)
KR (1) KR102420158B1 (ko)
CN (1) CN110046506B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113168818A (zh) 2018-09-03 2021-07-23 德克萨斯仪器股份有限公司 触摸传感器电路
KR20200126531A (ko) * 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그의 커맨드 수행 방법
US11249924B2 (en) * 2019-11-25 2022-02-15 Micron Technology, Inc. Secure data communication with memory sub-system
CN113094718A (zh) * 2019-12-23 2021-07-09 华为数字技术(苏州)有限公司 一种文件加密方法及相关装置
KR20220020636A (ko) * 2020-08-12 2022-02-21 삼성전자주식회사 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 메모리 장치 및 상기 메모리 컨트롤러의 동작 방법
CN112165384B (zh) * 2020-10-15 2022-04-01 清华大学 数据加密方法和解密方法及数据加密装置和解密装置
KR102430219B1 (ko) 2021-09-15 2022-08-05 삼성전자주식회사 스토리지 장치, 스토리지 장치의 키 생성 방법 및 스토리지 장치의 인증 방법
CN114968088B (zh) * 2022-04-08 2023-09-05 中移互联网有限公司 文件存储方法、文件读取方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101346284B1 (ko) * 2012-05-31 2013-12-31 주식회사 이노티움 암호화 파일의 생성 방법 및 해독 방법과 이 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1286417C (en) * 1986-07-24 1991-07-16 Junichi Ohta Method and apparatus for forming identification data
JP4692003B2 (ja) * 2005-02-10 2011-06-01 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8464073B2 (en) * 2006-09-13 2013-06-11 Stec, Inc. Method and system for secure data storage
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US8351843B2 (en) * 2007-09-04 2013-01-08 Ibiquity Digital Corporation Digital radio broadcast receiver, broadcasting methods and methods for tagging content of interest
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 株式会社東芝 メモリ装置、ストレージメディア、ホスト装置、及びシステム
CN102511044B (zh) 2011-09-06 2013-10-02 华为技术有限公司 一种数据删除方法及装置
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
US20150006911A1 (en) 2013-06-28 2015-01-01 Lexmark International, Inc. Wear Leveling Non-Volatile Memory and Secure Erase of Data
CN104468664A (zh) * 2013-09-18 2015-03-25 中兴通讯股份有限公司 一种上传文件到云存储系统的方法、下载方法及装置
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
CN105678174A (zh) * 2015-12-31 2016-06-15 四川秘无痕信息安全技术有限责任公司 一种基于二进制解密微信加密数据的方法
US10474831B1 (en) * 2016-11-28 2019-11-12 Amazon Technologies, Inc. Large network attached storage encryption
KR20180093153A (ko) * 2017-02-09 2018-08-21 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101346284B1 (ko) * 2012-05-31 2013-12-31 주식회사 이노티움 암호화 파일의 생성 방법 및 해독 방법과 이 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체

Also Published As

Publication number Publication date
KR20190078962A (ko) 2019-07-05
US20190199520A1 (en) 2019-06-27
US10880081B2 (en) 2020-12-29
CN110046506A (zh) 2019-07-23
CN110046506B (zh) 2023-08-11

Similar Documents

Publication Publication Date Title
KR102420158B1 (ko) 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법
US10310924B2 (en) Storage device and read reclaim method thereof
KR102318561B1 (ko) 스토리지 장치, 스토리지 장치의 동작 방법
KR102254392B1 (ko) 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
US9760503B2 (en) Operation method of memory controller and nonvolatile memory system including the memory controller
KR102397016B1 (ko) 불휘발성 메모리 시스템의 동작 방법
US10008272B2 (en) Operation method of nonvolatile memory system that includes erase operations, fast erase operations, program operations and fast program operations
US9760308B2 (en) Nonvolatile memory system and operation method of the same
KR102615593B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102211865B1 (ko) 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
US9977711B2 (en) Operation method of nonvolatile memory system
US10403369B2 (en) Memory system with file level secure erase and operating method thereof
KR102564774B1 (ko) 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
KR20160103236A (ko) 저장 장치 및 그것의 동작 방법
US20170270040A1 (en) Memory system and operating method thereof
KR102292172B1 (ko) 불휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
KR20200001310A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR102435863B1 (ko) 스토리지 장치 및 그것을 포함하는 서버 시스템의 매칭 키 검색 방법
KR102660399B1 (ko) 메모리 시스템 및 그것의 동작방법
KR20190102790A (ko) 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템
US11556252B2 (en) Storage device and method of operating the same
US20220206692A1 (en) Memory system and memory system discard method
US20150242335A1 (en) Method of operating storage device including nonvolatile memory and memory controller
US11822800B2 (en) Storage system including host and storage device and operation method thereof
KR20220092770A (ko) 커맨드의 보안 모드를 설정하는 스토리지 장치의 동작 방법, 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant