KR20220124452A - 스토리지 장치 - Google Patents

스토리지 장치 Download PDF

Info

Publication number
KR20220124452A
KR20220124452A KR1020210028064A KR20210028064A KR20220124452A KR 20220124452 A KR20220124452 A KR 20220124452A KR 1020210028064 A KR1020210028064 A KR 1020210028064A KR 20210028064 A KR20210028064 A KR 20210028064A KR 20220124452 A KR20220124452 A KR 20220124452A
Authority
KR
South Korea
Prior art keywords
key
encrypted
data
encryption key
password
Prior art date
Application number
KR1020210028064A
Other languages
English (en)
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 KR1020210028064A priority Critical patent/KR20220124452A/ko
Priority to US17/514,059 priority patent/US11644983B2/en
Priority to DE102021128994.7A priority patent/DE102021128994A1/de
Priority to CN202210188792.4A priority patent/CN115017556A/zh
Priority to JP2022032544A priority patent/JP2022136025A/ja
Publication of KR20220124452A publication Critical patent/KR20220124452A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • 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
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Valve Device For Special Equipments (AREA)
  • Vehicle Body Suspensions (AREA)

Abstract

스토리지 장치가 제공된다. 스토리지 장치는, 암호화 키 및 암호화 키로 암호화된 데이터 키를 저장하고, 데이터 키를 이용하여 데이터가 라이트되고 데이터 키를 이용하여 데이터가 리드되는 비휘발성 메모리, 및 제1 패스워드를 이용하여 데이터 키에 대한 액세스를 허용하는 제1 보안 설정 커맨드를 수신하고, 제1 보안 설정 커맨드에 응답하여, 제1 패스워드에 기초하여 제1 키를 생성하고, 암호화 키를 제1 키로 암호화하여 제1 암호화된 암호화 키를 생성하고, 제1 키를 암호화 키로 암호화하여 암호화된 제1 키를 생성하고, 비휘발성 메모리에 제1 암호화된 암호화 키 및 암호화된 제1 키를 저장하는 스토리지 컨트롤러를 포함한다.

Description

스토리지 장치{STORAGE DEVICE}
본 발명은 스토리지 장치에 관한 것이다.
스토리지 장치는 컴퓨터, 스마트폰, 스마트 패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 비휘발성 메모리에 데이터를 저장하는 장치를 포함한다.
데이터 보안 문제가 중요시됨에 따라, 스토리지 장치에 저장되는 데이터를 암호화하는 기능이 제공되고 있다.
본 발명이 해결하고자 하는 기술적 과제는 보안성이 개선 또는 향상된 스토리지 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예들에 따른 스토리지 장치는, 암호화 키 및 암호화 키로 암호화된 데이터 키를 저장하고, 데이터 키를 이용하여 데이터가 라이트되고 데이터 키를 이용하여 데이터가 리드되는 비휘발성 메모리, 및 제1 패스워드를 이용하여 데이터 키에 대한 액세스를 허용하는 제1 보안 설정 커맨드를 수신하고, 제1 보안 설정 커맨드에 응답하여, 제1 패스워드에 기초하여 제1 키를 생성하고, 암호화 키를 제1 키로 암호화하여 제1 암호화된 암호화 키를 생성하고, 제1 키를 암호화 키로 암호화하여 암호화된 제1 키를 생성하고, 비휘발성 메모리에 제1 암호화된 암호화 키 및 암호화된 제1 키를 저장하는 스토리지 컨트롤러를 포함한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예들에 따른 스토리지 장치는, 제1 패스워드에 기초하여 생성된 제1 키를 암호화 키로 암호화하여 생성된 암호화된 제1 키와, 암호화 키를 제1 키로 암호화하여 생성된 제1 암호화된 암호화 키와, 데이터 키를 암호화 키로 암호화하여 생성된 암호화된 데이터 키를 저장하는 비휘발성 메모리, 및 비휘발성 메모리의 동작을 제어하는 스토리지 컨트롤러를 포함하고, 스토리지 컨트롤러는, 제1 패스워드를 이용하여 데이터 키에 대한 액세스를 차단하는 제1 보안 설정 커맨드를 수신하고, 제1 보안 설정 커맨드에 응답하여, 비휘발성 메모리에 저장된 제1 암호화된 암호화 키를 삭제하고, 제1 패스워드를 이용하여 데이터 키에 대한 액세스를 허용하는 제2 보안 설정 커맨드를 수신하고, 제2 보안 설정 커맨드에 응답하여, 비휘발성 메모리에 제1 암호화된 암호화 키를 저장한다.
상기 기술적 과제를 달성하기 위한 몇몇 실시예들에 따른 스토리지 장치는, 제1 암호화 키 및 제1 암호화 키로 암호화된 제1 암호화된 데이터 키를 저장하고, 데이터 키를 이용하여 데이터가 라이트되고 데이터 키를 이용하여 데이터가 리드되는 비휘발성 메모리, 및 서로 다른 복수의 제1 패스워드를 이용하여 데이터 키에 접근 가능하도록 하는 제1 보안 설정 커맨드를 수신하고, 제1 보안 설정 커맨드에 응답하여, 각각의 복수의 제1 패스워드에 기초하여 복수의 제1 키를 생성하고, 제1 암호화 키를 각각의 복수의 제1 키로 암호화하여 복수의 제1 암호화된 암호화 키를 생성하고, 각각의 복수의 제1 키를 제1 암호화 키로 암호화하여 복수의 제1 키를 생성하고, 비휘발성 메모리에 복수의 제1 암호화된 암호화 키 및 복수의 암호화된 제1 키를 저장하는 스토리지 컨트롤러를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예들에 따른 스토리지 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 AES 엔진을 설명하기 위한 도면이다.
도 3 내지 도 8은 몇몇 실시예들에 따른 스토리지 장치의 동작을 설명하기 위한 도면들이다.
도 9 내지 도 13은 몇몇 실시예들에 따른 스토리지 장치의 동작을 설명하기 위한 도면들이다.
도 14 내지 도 17은 몇몇 실시예들에 따른 스토리지 장치의 동작을 설명하기 위한 도면들이다.
도 18 및 도 19는 몇몇 실시예들에 따른 스토리지 장치의 동작을 설명하기 위한 도면들이다.
도 20 내지 도 22는 몇몇 실시예들에 따른 스토리지 시스템을 설명하기 위한 도면이다.
도 23 및 도 24는 몇몇 실시예들에 따른 스토리지 시스템을 설명하기 위한 도면이다.
도 25는 몇몇 실시예들에 따른 스토리지 장치가 적용된 시스템을 설명하기 위한 도면이다.
도 1은 몇몇 실시예들에 따른 스토리지 시스템을 설명하기 위한 도면이다. 도 2는 도 1의 AES 엔진을 설명하기 위한 도면이다.
도 1 및 도 2를 참조하면, 스토리지 시스템(1)은 호스트(100) 및 스토리지 장치(200)를 포함할 수 있다. 또한, 스토리지 장치(200)는 스토리지 컨트롤러(210) 및 비휘발성 메모리 (NVM, 220)를 포함할 수 있다. 또한, 본 발명의 예시적인 실시예에 따라, 호스트(100)는 호스트 컨트롤러(110) 및 호스트 메모리(120)를 포함할 수 있다. 호스트 메모리(120)는 스토리지 장치(200)로 전송될 데이터, 혹은 스토리지 장치(200)로부터 전송된 데이터를 임시로 저장하기 위한 버퍼 메모리로서 기능할 수 있다.
스토리지 장치(200)는 호스트(100)로부터의 요청에 따라 데이터를 저장하기 위한 저장 매체들을 포함할 수 있다. 일 예로서, 스토리지 장치(200)는 SSD(Solid State Drive), 임베디드(embedded) 메모리 및 착탈 가능한 외장(external) 메모리 중 적어도 하나를 포함할 수 있다. 스토리지 장치(200)가 SSD인 경우, 스토리지 장치(200)는 NVMe(non-volatile memory express) 표준을 따르는 장치일 수 있다. 스토리지 장치(200)가 임베디드 메모리 혹은 외장(external) 메모리인 경우, 스토리지 장치(200)는 UFS(universal flash storage) 혹은 eMMC(embedded multi-media card) 표준을 따르는 장치일 수 있다. 호스트(100)와 스토리지 장치(200)는 각각 채용된 표준 프로토콜에 따른 패킷을 생성하고 이를 전송할 수 있다.
스토리지 장치(200)의 비휘발성 메모리(220)가 플래시 메모리를 포함할 때, 상기 플래시 메모리는 2D NAND 메모리 어레이나 3D(또는 수직형, Vertical) NAND(VNAND) 메모리 어레이를 포함할 수 있다. 다른 예로서, 스토리지 장치(200)는 다른 다양한 종류의 비휘발성 메모리들을 포함할 수도 있다. 예를 들어, 스토리지 장치(200)는 MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torgue MRAM), Conductive bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase RAM), 저항 메모리(Resistive RAM) 및 다른 다양한 종류의 메모리가 적용될 수 있다.
일 실시예에 따라, 호스트 컨트롤러(110)와 호스트 메모리(120)는 별도의 반도체 칩으로 구현될 수 있다. 또는, 일부 실시예들에서, 호스트 컨트롤러(110)와 호스트 메모리(120)는 동일한 반도체 칩에 집적될 수 있다. 일 예로서, 호스트 컨트롤러(110)는 어플리케이션 프로세서(Application Processor)에 구비되는 다수의 모듈들 중 어느 하나일 수 있으며, 상기 어플리케이션 프로세서는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 또한, 호스트 메모리(120)는 상기 어플리케이션 프로세서 내에 구비되는 임베디드 메모리이거나, 또는 상기 어플리케이션 프로세서의 외부에 배치되는 비휘발성 메모리 또는 메모리 모듈일 수 있다.
호스트 컨트롤러(110)는 버퍼 영역(121)의 데이터(예컨대, 기록 데이터)를 비휘발성 메모리(220)에 저장하거나, 비휘발성 메모리(220)의 데이터(예컨대, 독출 데이터)를 버퍼 영역(121)에 저장하는 동작을 관리할 수 있다.
스토리지 컨트롤러(210)는 호스트 인터페이스(211), 메모리 인터페이스(212) 및 CPU(central processing unit, 213)를 포함할 수 있다. 또한, 스토리지 컨트롤러(210)는 워킹 메모리(214), 패킷 매니저(215), 버퍼 메모리(216), ECC(error correction code, 217) 엔진 및 AES(advanced encryption standard, 218) 엔진을 더 포함할 수 있다.
호스트 인터페이스(211)는 호스트(100)와 패킷(packet)을 송수신할 수 있다. 호스트(100)로부터 호스트 인터페이스(211)로 전송되는 패킷은 커맨드(command) 혹은 비휘발성 메모리(220)에 기록될 데이터 등을 포함할 수 있으며, 호스트 인터페이스(211)로부터 호스트(100)로 전송되는 패킷은 커맨드에 대한 응답(response) 혹은 비휘발성 메모리(220)로부터 독출된 데이터 등을 포함할 수 있다. 메모리 인터페이스(212)는 비휘발성 메모리(220)에 기록될 데이터를 비휘발성 메모리(220)로 송신하거나, 비휘발성 메모리(220)로부터 독출된 데이터를 수신할 수 있다. 이러한 메모리 인터페이스(212)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.
워킹 메모리(214)는 CPU(213)의 제어에 따라 동작하며, 동작 메모리, 버퍼 메모리, 캐시 메모리 등으로 사용될 수 있다. 예를 들어, 워킹 메모리(214)는 DRAM, SRAM과 같은 휘발성 메모리 또는 PRAM, 플래시 메모리와 같은 비휘발성 메모리로 구현될 수도 있다.
플래시 변환 레이어(FTL, 214a)는 워킹 메모리(214)에 로딩될 수 있다. CPU(213)가 플래시 변환 레이어(214a)를 실행하는 것에 의해 비휘발성 메모리(220)에 대한 데이터 기록 및 독출 동작이 제어될 수 있다. 플래시 변환 레이어(214a)는 어드레스 매핑(address mapping), 웨어-레벨링(wear-leveling), 가비지 콜렉션(garbage collection)과 같은 여러 기능을 수행할 수 있다. 어드레스 매핑 동작은 호스트로부터 수신한 논리 어드레스(logical address)를, 비휘발성 메모리(220) 내에 데이터를 실제로 저장하는 데 사용되는 물리 어드레스(physical address)로 바꾸는 동작이다. 웨어-레벨링은 비휘발성 메모리(220) 내의 블록(block)들이 균일하게 사용되도록 하여 특정 블록의 과도한 열화를 방지하기 위한 기술로, 예시적으로 물리 블록(physical block)들의 소거 카운트들을 밸런싱하는 펌웨어 기술을 통해 구현될 수 있다. 가비지 콜렉션은, 블록의 유효 데이터를 새 블록에 복사한 후 기존 블록을 소거(erase)하는 방식을 통해 비휘발성 메모리(220) 내에서 사용 가능한 용량을 확보하기 위한 기술이다.
해쉬 알고리즘(214b)은 펌웨어 또는 소프트웨어로 구현될 수 있고, 워킹 메모리(214)에 로딩될 수 있다. 또는 도시된 바와 달리, 해쉬 알고리즘(214b)은 하드웨어로 구현될 수도 있다. 해쉬 알고리즘(214b)은 호스트(100)로부터 제공되는 패스워드의 해쉬 값을 생성할 수 있다.
패킷 매니저(215)는 호스트(100)와 협의된 인터페이스의 프로토콜에 따른 패킷(Packet)을 생성하거나, 호스트(100)로부터 수신된 패킷(Packet)으로부터 각종 정보를 파싱할 수 있다. 또한, 버퍼 메모리(216)는 비휘발성 메모리(220)에 기록될 데이터 혹은 비휘발성 메모리(220)로부터 독출될 데이터를 임시로 저장할 수 있다. 버퍼 메모리(216)는 스토리지 컨트롤러(210) 내에 구비되는 구성일 수 있으나, 스토리지 컨트롤러(210)의 외부에 배치되어도 무방하다.
ECC 엔진(217)은 비휘발성 메모리(220)로부터 독출되는 독출 데이터에 대한 오류 검출 및 정정 기능을 수행할 수 있다. 보다 구체적으로, ECC 엔진(217)은 비휘발성 메모리(220)에 기입될 기입 데이터에 대하여 패리티 비트(parity bit)들을 생성할 수 있으며, 이와 같이 생성된 패리티 비트들은 기입 데이터와 함께 비휘발성 메모리(220) 내에 저장될 수 있다. 비휘발성 메모리(220)로부터의 데이터 독출 시, ECC 엔진(217)은 독출 데이터와 함께 비휘발성 메모리(220)로부터 독출되는 패리티 비트들을 이용하여 독출 데이터의 에러를 정정하고, 에러가 정정된 독출 데이터를 출력할 수 있다.
AES 엔진(218)은, 스토리지 컨트롤러(210)로 입력되는 데이터에 대한 암호화(encryption) 동작과 복호화(decryption) 동작 중 적어도 하나를, 대칭 키 알고리즘(symmetric-key algorithm)를 이용하여 수행할 수 있다. AES 엔진(218)은 AES(advanced encryption standard) 알고리즘을 이용한 데이터의 암호화 및 복호화를 수행할 수 있으며, 암호화 모듈(218a) 및 복호화 모듈(218b)을 포함할 수 있다. 도 2는 서로 별개의 모듈로 구현된 암호화 모듈(218a)과 복호화 모듈(218b)을 도시하고 있으나, 이와는 달리 암호화와 복호화를 모두 수행할 수 있는 하나의 모듈이 AES 엔진(218) 내에 구현되는 것도 가능하다.
비휘발성 메모리(220)는 메타 영역(222)과 유저 영역(224)을 포함할 수 있다. 메타 영역(222)은 스토리지 장치(200)의 보안에 관한 키들이 저장되는 영역일 수 있다. 메타 영역(222)은 암호화 키(KEK) 또는 다른 키로 암호화된 암호화 키와 암호화 키(KEK)로 암호화된 데이터 키(E_DEK)가 저장될 수 있다. 또는 메타 영역(222)은 다른 키로 암호화된 암호화 키와 암호화 키(KEK)로 암호화된 데이터 키(E_DEK)가 저장될 수 있다. 유저 영역(224)은 데이터 키로 암호화된 데이터(E_DATA)가 저장되는 영역일 수 있다.
예를 들어, AES 엔진(218)은 호스트(100)로부터 전송된 데이터를 수신할 수 있다. 암호화 모듈(218a)은 호스트(100)로부터 전송된 데이터를 데이터 키를 이용하여 암호화함으로써 암호화된 데이터(E_DATA)를 생성할 수 있다. 암호화된 데이터(E_DATA)는 AES 엔진(218)으로부터 비휘발성 메모리(220)로 전송되어, 비휘발성 메모리(220)의 유저 영역(224) 내에 저장될 수 있다.
AES 엔진(218)은 비휘발성 메모리(220)로부터 저장된 암호화된 데이터(E_DATA)를 수신할 수 있다. 복호화 모듈(218b)은 비휘발성 메모리(220)로부터 전송된 암호화된 데이터(E_DATA)를, 데이터 키로 복호화하여 데이터를 생성할 수 있다. 데이터는 AES 엔진(218)으로부터 호스트(100)로 전송될 수 있다.
도 3 내지 도 8은 몇몇 실시예들에 따른 스토리지 장치의 동작을 설명하기 위한 도면들이다.
스토리지 장치(200)는 제조사에 의해 제1 패스워드(MPW)가 설정된 상태일 수 있다.
도 3을 참조하면, 몇몇 실시예들에 따른 스토리지 장치(200)는 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 대한 액세스를 허용하는 보안 설정 커맨드(CMD_1)를 제공받을 수 있다(S110).
구체적으로, 보안 설정 커맨드(CMD_1)는 제2 패스워드(UPW)와 제2 패스워드(UPW)의 보안 권한을 포함할 수 있다. 제2 패스워드(UPW)의 보안 권한은 제1 레벨일 수 있다. 또한 보안 설정 커맨드(CMD_1)는 제2 패스워드(UPW)를 설정하겠다는 식별 값을 포함할 수 있다.
제2 패스워드(UPW)의 보안 권한이 제1 레벨(High)인 경우, 스토리지 장치(200)는 제1 패스워드(MPW) 및 제2 패스워드(UPW) 중 어느 하나에 의해 락(lock) 상태에서 언락(unlock) 상태가 될 수 있다. 이에 따라 호스트(100)는 스토리지 장치(200)에 저장된 데이터를 리드하거나 스토리지 장치(200)에 데이터를 저장할 수 있다. 제2 패스워드(UPW)의 보안 권한이 제2 레벨인 경우, 스토리지 장치(200)는 제2 패스워드(UPW)에 의해서만 락 상태에서 언락 상태로 변경될 수 있다. 즉, 호스트(100)는 제1 패스워드(MPW)를 이용하여 스토리지 장치(200)를 언락 상태로 변경하고, 스토리지 장치(200)에 저장된 데이터를 리드하거나 스토리지 장치(200)에 데이터를 저장할 수 없다.
앞서 설명한 바와 같이, 스토리지 컨트롤러(210)는 데이터 키(DEK)로 데이터를 암호화하여 비휘발성 메모리(220)에 암호화된 데이터(E_DATA)를 저장할 수 있고, 데이터 키(DEK)로 암호화된 데이터(E_DATA)를 복호화하여 비휘발성 메모리(220)에 저장된 암호화된 데이터(E_DATA)를 리드할 수 있다. 따라서 다르게 설명하면, 제2 패스워드(UPW)의 보안 권한이 제1 레벨인 경우, 제1 패스워드(MPW) 및 제2 패스워드(UPW) 중 어느 하나를 이용하여 데이터 키(DEK)에 대한 액세스가 허용될 수 있다. 제2 패스워드(UPW)의 보안 권한이 제2 레벨인 경우, 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 차단될 수 있고, 제2 패스워드(UPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 허용될 수 있다.
몇몇 실시예들에서 보안 설정 커맨드(CMD_1)는 ATA 표준에 따라 도 4에 도시된 SECURITY SET PASSWORD 커맨드 형태로 구현될 수 있다. 여기서 제1 보안 레벨은 High일 수 있고, 제2 보안 레벨은 Maximum일 수 있다. SECURITY SET PASSWORD 커맨드의 세부 구성은 ATA 표준 문서들에 설명되어 있는 바, 상세한 설명은 생략한다.
스토리지 컨트롤러(210)는 보안 설정 커맨드(CMD_1)에 응답하여 제1 암호화된 암호화 키(E_MKEK), 제2 암호화된 암호화 키(E_UKEK), 암호화된 제1 키(E_MKPK) 및 암호화된 제2 키(E_UKPK)를 생성하고, 제1 암호화된 암호화 키(E_MKEK), 제2 암호화된 암호화 키(E_UKEK) 및 암호화된 제1 키(E_MKPK)를 비휘발성 메모리(220)의 메타 영역(222)에 저장할 수 있다(S120).
구체적으로 도 5a 및 도 5b를 참조하면, 해쉬 알고리즘(214b)은 제2 패스워드(UPW)에 기초하여 제2 키(UKPK)를 생성할 수 있다(A). 제2 키(UKPK)는 제2 패스워드(UPW)의 해쉬 값일 수 있다. AES 엔진(218)은 암호화 키(KEK)를 제2 키(UKPK)로 암호화하여 제2 암호화된 암호화 키(E_UKEK)를 생성할 수 있다(B). 제2 암호화된 암호화 키(E_UKEK)는 비휘발성 메모리(220)의 메타 영역(222)에 저장될 수 있다. 비휘발성 메모리(220)의 메타 영역(222)에 암호화 키(KEK)가 저장되어 있는 경우, 스토리지 컨트롤러(210)는 암호화 키(KEK)를 삭제하고 제2 암호화된 암호화 키(E_UKEK)를 저장할 수 있다.
앞서 설명한 바와 같이, 암호화된 데이터 키(E_DEK)는 비휘발성 메모리(220)의 메타 영역(222)에 저장될 수 있고, 암호화된 데이터 키(E_DEK)는 AES 엔진(218)이 데이터 키(DEK)를 암호화 키(KEK)로 암호화하여 생성될 수 있다(C). 이에 따라, 제2 패스워드(UPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 허용될 수 있다.
해쉬 알고리즘(214b)은 제1 패스워드(MPW)에 기초하여 제1 키(MKPK)를 생성할 수 있다(D). 제1 키(MKPK)는 제1 패스워드(MPW)의 해쉬 값일 수 있다. AES 엔진(218)은 암호화 키(KEK)를 제1 키(MKPK)로 암호화하여 제1 암호화된 암호화 키(E_MKEK)를 생성할 수 있다(E). 제1 암호화된 암호화 키(E_MKEK)는 비휘발성 메모리(220)의 메타 영역(222)에 저장될 수 있다. 이에 따라 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 허용될 수 있다.
또한 AES 엔진(218)은 제1 키(MKPK)를 암호화 키(KEK)로 암호화하여 암호화된 제1 키(E_MKPK)를 생성할 수 있다(F). 암호화된 제1 키(E_MKPK)는 비휘발성 메모리(220)의 메타 영역(222)에 저장될 수 있다. 즉, 제1 키(MKPK)는 암호화 키(KEK)로 암호화될 수 있고, 암호화 키(KEK)는 제1 키(MKPK)로 암호화될 수 있다.
도 6 내지 도 8은 S120 단계 이후 스토리지 장치의 동작을 설명하기 위한 도면들이다.
도 6 및 도 7을 참조하면, 스토리지 장치(200)는 제1 패스워드(MPW)를 제공받을 수 있다(S210). 이어서, 스토리지 장치(200)는 데이터(DATA)와 라이트 커맨드(CMD_W)를 제공받을 수 있다(S215).
라이트 커맨드(CMD_W)에 응답하여, 해쉬 알고리즘(214b)은 제1 패스워드(MPW)에 기초하여 제1 키(MKPK)를 생성할 수 있다(S220_1). AES 엔진(218)은 비휘발성 메모리(220)에 저장된 제1 암호화된 암호화 키(E_MKEK)를 제1 키(MKPK)로 복호화하여 암호화 키(KEK)를 생성할 수 있다(S230_1). AES 엔진(218)은 비휘발성 메모리(220)에 저장된 암호화된 데이터 키(E_DEK)를 암호화 키(KEK)로 복호화하여 데이터 키(DEK)를 생성할 수 있다(S240_1). AES 엔진(218)은 데이터(DATA)를 암호화 키(KEK)로 복호화하여 암호화된 데이터(E_DATA)를 비휘발성 메모리(220)에 저장할 수 있다(S270).
도 6 및 도 8을 참조하면, 스토리지 장치(200)는 제2 패스워드(UPW)를 제공받을 수 있다(S210). 이어서, 스토리지 장치(200)는 데이터(DATA)와 라이트 커맨드(CMD_W)를 제공받을 수 있다(S215).
라이트 커맨드(CMD_W)에 응답하여, 해쉬 알고리즘(214b)은 제2 패스워드(UPW)에 기초하여 제2 키(UKPK)를 생성할 수 있다(S220_2). AES 엔진(218)은 비휘발성 메모리(220)에 저장된 제2 암호화된 암호화 키(E_UKEK)를 제2 키(UKPK)로 복호화하여 암호화 키(KEK)를 생성할 수 있다(S230_2). AES 엔진(218)은 비휘발성 메모리(220)에 저장된 암호화된 데이터 키(E_DEK)를 암호화 키(KEK)로 복호화하여 데이터 키(DEK)를 생성할 수 있다(S240_2). AES 엔진(218)은 데이터(DATA)를 암호화 키(KEK)로 복호화하여 암호화된 데이터(E_DATA)를 비휘발성 메모리(220)에 저장할 수 있다(S270).
도 9 내지 도 13은 몇몇 실시예들에 따른 스토리지 장치의 동작을 설명하기 위한 도면들이다. 도 9 내지 도 13은 S120 단계 이후 스토리지 장치의 동작을 설명하기 위한 도면들이다.
도 9 내지 도 11을 참조하면, 몇몇 실시예들에 따른 스토리지 장치(200)는 호스트(100)로부터 제1 패스워드(MPW) 또는 제2 패스워드(UPW)를 이용하지 않고 데이터 키(DEK)에 대한 액세스를 허용하는 보안 해제 커맨드(CMD_2)를 제공받을 수 있다(S130).
보안 해제 커맨드(CMD_2)는 제1 패스워드(MPW)와 제2 패스워드(UPW) 중 어느 하나와 상기 어느 하나가 제1 패스워드(MPW)인지 제2 패스워드(UPW)인지 식별하는 값을 포함할 수 있다. 비휘발성 메모리(220)는 제1 패스워드(MPW)에 기초하여 생성된 제1 값과 제2 패스워드(UPW)에 기초하여 생성된 제2 값을 저장할 수 있다. 스토리지 컨트롤러(210)는 보안 해제 커맨드(CMD_2)에 제1 패스워드(MPW)가 포함된 경우 보안 해제 커맨드(CMD_2)에 포함된 제1 패스워드(MPW)와 상기 제1 값에 기초하여, 보안 해제 커맨드(CMD_2)에 제2 패스워드(UPW)가 포함된 경우 보안 해제 커맨드(CMD_2)에 포함된 제2 패스워드(UPW)와 상기 제2 값에 기초하여 보안 해제 동작을 수행할 수 있다.
몇몇 실시예들에서 보안 해제 커맨드(CMD_2)는 ATA 표준에 따라 도 9에 도시된 SECURITY DISABLE PASSWORD 커맨드 형태로 구현될 수 있다. SECURITY DISABLE PASSWORD 커맨드의 세부 구성은 ATA 표준 문서들에 설명되어 있는 바, 상세한 설명은 생략한다.
스토리지 컨트롤러(210)는 보안 해제 커맨드(CMD_2)에 응답하여 비휘발성 메모리(220)의 메타 영역(222)에 저장된 제2 암호화된 암호화 키(E_UKEK)를 삭제할 수 있다(S140). 이에 따라 제2 패스워드(UPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 차단될 수 있다. 제1 패스워드(MPW)가 변경되는 것은 아니다.
또한 스토리지 컨트롤러(210)는 암호화 키(KEK)를 생성하고, 비휘발성 메모리(220)의 메타 영역(222)에 저장할 수 있다(S150).
보안 해제 커맨드(CMD_2)가 제1 패스워드(MPW)를 포함하는 경우 스토리지 컨트롤러(210)는 제1 패스워드(MPW) 및 제1 암호화된 암호화 키(E_MKEK)를 이용하여 암호화 키(KEK)를 생성할 수 있다. 보안 해제 커맨드(CMD_2)가 제2 패스워드(UPW)를 포함하는 경우 스토리지 컨트롤러(210)는 제2 패스워드(UPW) 및 제2 암호화된 암호화 키(E_UKEK)를 이용하여 암호화 키(KEK)를 생성할 수 있다. S140 단계와 S150 단계는 동시에 또는 둘 중 어느 하나가 먼저 수행될 수 있다.
또는 도 12 및 도 13을 참조하면, 몇몇 실시예들에 따른 스토리지 장치(200)는 호스트(100)로부터 비휘발성 메모리(220)에 저장된 데이터(E_DATA)를 삭제하도록 하는 보안 삭제 커맨드(CMD_2')를 제공받을 수 있다(S150).
보안 삭제 커맨드(CMD_2')는 제1 패스워드(MPW)와 제2 패스워드(UPW) 중 어느 하나와 상기 어느 하나가 제1 패스워드(MPW)인지 제2 패스워드(UPW)인지 식별하는 값을 포함할 수 있다. 스토리지 컨트롤러(210)는 보안 삭제 커맨드(CMD_2')에 제1 패스워드(MPW)가 포함된 경우 제1 패스워드(MPW)와 상기 제1 값에 기초하여, 보안 삭제 커맨드(CMD_2')에 제2 패스워드(UPW)가 포함된 경우 제2 패스워드(UPW)와 상기 제2 값에 기초하여 보안 삭제 동작을 수행할 수 있다.
몇몇 실시예들에서 보안 삭제 커맨드(CMD_2')는 ATA 표준에 따라 도 13에 도시된 SECURITY ERASE UNIT 커맨드 형태로 구현될 수 있다. SECURITY ERASE UNIT 커맨드의 세부 구성은 ATA 표준 문서들에 설명되어 있는 바, 상세한 설명은 생략한다.
스토리지 컨트롤러(210)는 보안 삭제 커맨드(CMD_2')에 응답하여 비휘발성 메모리(220)의 메타 영역(222)에 저장된 제2 암호화된 암호화 키(E_UKEK) 및 비휘발성 메모리(220)의 유저 영역(224)에 저장된 암호화된 데이터(E_DATA)를 삭제할 수 있다(S140). 제1 패스워드(MPW)가 변경되는 것은 아니다.
또한 스토리지 컨트롤러(210)는 보안 삭제 커맨드(CMD_2')에 응답하여 암호화된 데이터 키(E_DEK)를 삭제할 수 있다. 스토리지 컨트롤러(210)는 새로운 데이터 키를 생성하고, 비휘발성 메모리(220)의 메타 영역(222)에 암호화 키(KEK)로 암호화된 새로운 데이터 키(E_DEK')를 저장할 수 있다.
도 14 내지 도 17은 몇몇 실시예들에 따른 스토리지 장치의 동작을 설명하기 위한 도면들이다. 도 14 내지 도 17은 S140 단계 또는 S160 단계 이후 스토리지 장치의 동작을 설명하기 위한 도면들이다.
도 14 내지 도 16을 참조하면, 몇몇 실시예들에 따른 스토리지 장치(200)는 호스트(100)로부터 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 대한 액세스를 허용하는 보안 설정 커맨드(CMD_3)를 제공받을 수 있다(S310).
보안 설정 커맨드(CMD_3)는 제2 패스워드(UPW')와 제2 패스워드(UPW')의 보안 권한을 포함할 수 있다. 제2 패스워드(UPW')의 보안 권한은 제2 레벨일 수 있다. 따라서 앞서 설명한 바와 같이, 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 차단될 수 있고, 제2 패스워드(UPW')를 이용하여 데이터 키(DEK)에 대한 액세스가 허용될 수 있다. 또한 보안 설정 커맨드(CMD_3)는 제2 패스워드(UPW'')를 설정하겠다는 식별 값을 포함할 수 있다.
몇몇 실시예들에서 보안 설정 커맨드(CMD_3)는 ATA 표준에 따라 도 15에 도시된 SECURITY SET PASSWORD 커맨드 형태로 구현될 수 있다. 여기서 제1 보안 레벨은 High일 수 있고, 제2 보안 레벨은 Maximum일 수 있다. SECURITY SET PASSWORD 커맨드의 세부 구성은 ATA 표준 문서들에 설명되어 있는 바, 상세한 설명은 생략한다.
스토리지 컨트롤러(210)는 보안 설정 커맨드(CMD_3)에 응답하여 제2 암호화된 암호화 키(E_UKEK'), 암호화된 제2 키(E_UKPK') 및 암호화 키(KEK)를 생성하고, 제2 암호화된 암호화 키(E_UKEK') 및 암호화 키(KEK)를 비휘발성 메모리(220)의 메타 영역(222)에 저장할 수 있고, 비휘발성 메모리(220)의 메타 영역(222)에 저장된 제1 암호화된 암호화 키(E_MKEK)를 삭제할 수 있다(S320).
따라서 도 17을 참조하면, AES 엔진(218)은 제1 패스워드(MPW)를 이용하여 암호화 키(KEK)를 생성할 수 없고, 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 차단될 수 있다. 제1 패스워드(MPW)가 변경되는 것은 아니다.
도 18 및 도 19는 몇몇 실시예들에 따른 스토리지 장치의 동작을 설명하기 위한 도면들이다. 도 18 및 도 19는 S320 단계 이후 S130 단계 및 S140 단계 또는 S150 단계 및 S160 단계가 수행되어, 비휘발성 메모리(220)의 메타 영역(222)에 저장된 제2 암호화된 암호화 키(E_UKEK')가 삭제된 후 스토리지 장치의 동작을 설명하기 위한 도면들이다.
도 18 및 도 19를 참조하면, 몇몇 실시예들에 따른 스토리지 장치(200)는 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 대한 액세스를 허용하는 보안 설정 커맨드(CMD_4)를 제공받을 수 있다(S410). 보안 설정 커맨드(CMD_4)는 제2 패스워드(UPW'')와 제2 패스워드(UPW'')의 보안 권한을 포함할 수 있다. 제2 패스워드(UPW')의 보안 권한은 제1 레벨일 수 있다. 따라서 앞서 설명한 바와 같이, 제1 패스워드(MPW) 및 제2 패스워드(UPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 허용될 수 있다.
스토리지 컨트롤러(210)는 보안 설정 커맨드(CMD_4)에 응답하여 제2 암호화된 암호화 키(E_UKEK''), 암호화된 제2 키(E_UKPK''), 제1 키(MKPK) 및 제1 암호화된 암호화 키(E_MKEK)를 생성하고, 제2 암호화된 암호화 키(E_UKEK'') 및 제1 암호화된 암호화 키(E_MKEK)를 비휘발성 메모리(220)의 메타 영역(222)에 저장할 수 있고, 비휘발성 메모리(220)의 메타 영역(222)에 저장된 암호화 키(KEK)를 삭제할 수 있다(S420).
구체적으로 도 18을 참조하면, 해쉬 알고리즘(214b)은 제2 패스워드(UPW'')에 기초하여 제2 키(UKPK'')를 생성할 수 있다(A). 제2 키(UKPK'')는 제2 패스워드(UPW'')의 해쉬 값일 수 있다. AES 엔진(218)은 암호화 키(KEK)를 제2 키(UKPK'')로 암호화하여 제2 암호화된 암호화 키(E_UKEK'')를 생성할 수 있다(B). 제2 암호화된 암호화 키(E_UKEK'')는 비휘발성 메모리(220)의 메타 영역(222)에 저장될 수 있다. 비휘발성 메모리(220)의 메타 영역(222)에 암호화 키(KEK)가 저장되어 있는 경우, 스토리지 컨트롤러(210)는 암호화 키(KEK)를 삭제하고 제2 암호화된 암호화 키(E_UKEK'')를 저장할 수 있다. 이에 따라, 제2 패스워드(UPW'')를 이용하여 데이터 키(DEK)에 대한 액세스가 허용될 수 있다.
AES 엔진(218)은 암호화된 제1 키(E_MKPK)를 암호화 키(KEK)로 복호화하여 제2 키(MKPK)를 생성할 수 있다(F'). AES 엔진(218)은 제2 키(MKPK)를 암호화 키(KEK)로 암호화하여 암호화된 제1 키(E_MKPK)를 생성할 수 있다(F). 이에 따라 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 대한 액세스가 허용될 수 있다.
몇몇 실시예들에 따른 스토리지 장치에서, 제1 키(MKPK)는 암호화 키(KEK)로 암호화될 수 있고, 암호화 키(KEK)는 제1 키(MKPK)로 암호화될 수 있다. 이에 따라 보안 설정 커맨드에 따라 데이터 키(DEK)에 액세스가 차단되는 상태에서 제1 패스워드(MPW)를 이용하여 데이터 키(DEK)에 액세스가 허용되는 상태로 변경되더라도, 암호화 키(KEK)와 제1 키(MKPK) 사이의 암호 링크가 다시 형성될 수 있다.
또한 몇몇 실시예들에 따른 스토리지 장치는 암호화 키(KEK)로 암호화된 제1 키(E_MKPK)를 저장하고 있어, 데이터 키(DEK) 또는 암호화 키(KEK)가 업데이트되는 경우, 암호화된 제1 키(E_MKPK)를 이용하여 업데이트된 데이터 키(DEK)와 제1 패스워드(MPW) 사이의 암호 링크가 유지될 수 있다. 이에 따라 스토리지 장치(200)의 보안성이 개선 또는 향상될 수 있다.
도 20 내지 도 22는 몇몇 실시예들에 따른 스토리지 시스템을 설명하기 위한 도면이다. 설명의 편의 상, 도 1 내지 도 19를 이용하여 설명한 것과 다른 점을 중심으로 설명한다.
도 20 및 도 21을 참조하면, 몇몇 실시예들에 따른 스토리지 시스템(2)에서, 복수의 제1 키(KEY_1 ~ KEY_N)를 이용하여 데이터 키(DEK)에 액세스할 수 있다.
스토리지 컨트롤러(210)는 각각의 복수의 제1 키(KEY_1 ~ KEY_N)에 대해, 제1 키(KEY_1 ~ KEY_N)를 이용하여 데이터 키(DEK)에 액세스를 허용하는 보안 설정 커맨드에 응답하여, 제1 키(KEY_1 ~ KEY_N)를 암호화 키(KEK)로 암호화하여 암호화된 제1 키(E_KEY_1 ~ E_KEY_N)를 생성할 수 있고(A), 암호화 키(KEK)를 제1 키(KEY_1 ~ KEY_N)로 암호화하여 제1 암호화된 암호화 키(E_KEK_1 ~ E_KEK_N)를 생성할 수 있다(B). 여기서 암호화된 데이터 키(E_DEK)는 데이터 키(DEK)를 암호화 키(KEK)로 암호화하여 생성될 수 있다(C). 스토리지 컨트롤러(210)는 비휘발성 메모리(220)의 메타 영역(222)에 제1 암호화된 암호화 키(E_KEK_1 ~ E_KEK_N), 암호화된 제1 키(E_KEY_1 ~ E_KEY_N) 및 암호화된 데이터 키(DEK)를 저장할 수 있다.
각각의 복수의 제1 키(KEY_1 ~ KEY_N)는 복수의 제1 패스워드로부터 생성될 수 있다.
스토리지 컨트롤러(210)는 각각의 복수의 제1 키(KEY_1 ~ KEY_N)에 대해, 제1 키(KEY_1 ~ KEY_N)를 이용하여 데이터 키(DEK)에 액세스를 차단하는 보안 설정 커맨드에 응답하여, 제1 암호화된 암호화 키(E_KEK_1 ~ E_KEK_N)를 삭제할 수 있다.
스토리지 컨트롤러(210)는 각각의 복수의 제1 키(KEY_1 ~ KEY_N)를 이용하여 데이터 키(DEK)에 액세스를 허용하는 보안 설정 커맨드에 응답하여, 암호화된 제1 키(E_KEY_1 ~ E_KEY_N)를 이용하여 암호화 키(KEK)를 생성할 수 있고 제1 암호화된 암호화 키(E_KEK_1 ~ E_KEK_N)를 다시 생성할 수 있다.
몇몇 실시예들에 따른 스토리지 시스템에서 스토리지 장치(200)는 암호화된 제1 키(E_KEY_1 ~ E_KEY_N)를 저장할 수 있다. 이에 따라 스토리지 장치(200)는 데이터 키(DEK)에 대해 액세스를 허용하거나 차단하는 보안 설정 커맨드에 응답하여, 제1 키(KEY_1 ~ KEY_N)로부터 암호화 키(KEK)에 대한 액세스를 차단하거나 다시 허용할 수 있다.
도 22를 참조하면, 데이터 키(DEK)를 복수의 암호화 키(KEK_1 ~ KEK_M) 로 암호화할 수 있다(C). 각각의 복수의 암호화 키(KEK_1 ~ KEK_M)는 복수의 제1 키(KEY_1_1 ~ KEY_M_N)로 암호화될 수 있고(A), 복수의 제1 키(KEY_1_1 ~ KEY_M_N)를 암호화할 수 있다(B). 데이터 키(DEK)에 대해 액세스를 허용하거나 차단하는 보안 설정 커맨드에 응답하여, 복수의 제1 키(KEY_1_1 ~ KEY_M_N)로부터 복수의 암호화 키(KEK_1 ~ KEK_M)에 대한 액세스가 차단되거나 허용될 수 있다.
각각의 암호화 키(KEK_1 ~ KEK_M)와 암호 링크를 형성하는 제1 키(KEY_1_1 ~ KEY_1_N)의 수는 서로 동일할 수도 있고 다를 수도 있다. 또한 본 도면에서는 하나의 데이터 키(DEK)를 도시하였지만, 본 발명이 이에 제한되는 것은 아니며, 복수의 데이터 키들을 포함할 수도 있다. 각각의 데이터 키는 복수의 암호화 키와 암호 링크를 형성할 수 있다. 또한 각각의 데이터 키와 암호 링크를 형성하는 복수의 암호화 키의 수는 서로 동일할 수도 있고 다를 수도 있다.
또한 도시된 바와 달리, 각각의 제1 키(KEY_1_1 ~ KEY_M_N)는 한 개의암호화 키(KEK_1 ~ KEK_M) 또는 복수개의 암호화 키(KEK_1 ~ KEK_M)와 암호 링크를 형성할 수 있다. 예를 들어, 제1 키(KEY_1_1)는 암호화 키(KEK_1)와 암호 링크를 형성할 수 있고, 제1 키(KEY_1_2)는 암호화 키(KEK_1, KEK_2)와 암호 링크를 형성할 수 있고, 제1 키(KEY_1_3)는 암호화 키(KEK_1, KEK_2, KEK_4)과 암호 링크를 형성할 수 있다.
도 23 및 도 24는 몇몇 실시예들에 따른 스토리지 시스템을 설명하기 위한 도면이다. 설명의 편의 상, 도 1 내지 도 21을 이용하여 설명한 것과 다른 점을 중심으로 설명한다.
도 23 및 도 24를 참조하면, 몇몇 실시예들에 따른 스토리지 시스템(3)은 복수의 스토리지 장치(200_1 ~ 200_N)을 포함할 수 있다.
스토리지 장치(200_1 ~ 200_N)는 스토리지 컨트롤러(210_1 ~ 210_N)와 비휘발성 메모리(220_1 ~ 220_N)을 포함할 수 있다. 스토리지 컨트롤러(210_1 ~ 210_N)는 제1 키(KEY_1 ~ KEY_N)를 암호화 키(KEK_1 ~ KEK_N)로 암호화하여 암호화된 제1 키(E_KEY_1 ~ E_KEY_N)를 생성할 수 있다(A). 스토리지 컨트롤러(210_1 ~ 210_N)는 암호화 키(KEK_1 ~ KEK_N)를 제1 키(KEY_1 ~ KEY_N)로 암호화하여 암호화된 암호화 키(E_KEK_1 ~ K_KEK_N)를 생성할 수 있다(B). 스토리지 컨트롤러(210_1 ~ 210_N)는 데이터 키(DEK_1 ~ DEK_N)를 암호화 키(KEK_1 ~ KEK_N)로 암호화하여 암호화된 데이터 키(E_DEK_1 ~ E_DEK_N)를 생성할 수 있다(C).
비휘발성 메모리(220_1 ~ 220_N)의 메타 영역(222_1 ~ 222)은 암호화된 암호화 키(E_KEK_1 ~ K_KEK_N), 암호화된 제1 키(E_KEY_1 ~ E_KEY_N) 및 암호화된 데이터 키(E_DEK_1 ~ E_DEK_N)가 저장될 수 있다. 비휘발성 메모리(220_1 ~ 220_N)의 데이터 영역(222_1 ~ 222)은 암호화된 데이터(E_DATA_1 ~ E_DATA_N)이 저장될 수 있다.
스토리지 장치(200_1 ~ 200_N)는 데이터 키(DEK_1 ~ DEK_N)에 대해 액세스를 허용하거나 차단하는 보안 설정 커맨드에 응답하여, 제1 키(KEY_1 ~ KEY_N)로부터 암호화 키(KEK_1 ~ KEK_N)에 대한 액세스를 차단하거나 다시 허용할 수 있다.
스토리지 장치(200_1 ~ 200_N)의 암호화 키(KEK_1 ~ KEK_N)의 수는 동일할 수도 있고 다를 수도 있다. 또한 암호화 키(KEK_1 ~ KEK_N)와 암호 링크를 형성하는 제1 키(KEY_1_1 ~ KEY_N_N)의 수는 서로 다를 수도 있다.
도 25는 몇몇 실시예들에 따른 스토리지 장치가 적용된 시스템을 설명하기 위한 도면이다.
도 25의 시스템(1000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 26의 시스템(1000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등이 될 수도 있다.
도 25를 참조하면, 시스템(1000)은 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.
메인 프로세서(1100)는 시스템(1000)의 전반적인 동작, 보다 구체적으로는 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다.
메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 및/또는 스토리지 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator) 블록(1130)을 더 포함할 수 있다. 이와 같은 가속기 블록(1130)은 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.
메모리(1200a, 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.
스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성(non-volatile memory, NVM) 스토리지 장치(1300a, 1300b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 서로 동일한 종류 또는 다른 종류의 비휘발성 메모리를 포함할 수도 있다.
스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다.
스토리지 장치(1300a, 1300b)는 도 1 내지 도 25를 이용하여 설명한 스토리지 장치 중 어느 하나일 수 있다.
촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다.
사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.
센서(1430)는 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 등일 수 있다.
통신 장치(1440)는 다양한 통신 규약에 따라 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.
디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.
전력 공급 장치(1470)는 시스템(1000)에 내장된 배터리(도시 안함) 및/또는외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.
연결 인터페이스(1480)는 시스템(1000)과, 시스템(1000)에 연결되어 시스템(1000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 호스트 200: 스토리지 장치
218: AES 엔진 220: 비휘발성 메모리
MPW: 제1 패스워드 UPW: 제2 패스워드
MKPK: 제1 키 UKPK: 제2 키
E_MKPK: 암호화된 제1 키 E_MKEK: 제1 암호화된 암호화 키
E_UKEK: 제2 암호화된 암호화 키 KEK: 암호화 키
DEK: 데이터 키

Claims (20)

  1. 암호화 키 및 상기 암호화 키로 암호화된 데이터 키를 저장하고, 상기 데이터 키를 이용하여 데이터가 라이트되고 상기 데이터 키를 이용하여 상기 데이터가 리드되는 비휘발성 메모리; 및
    제1 패스워드를 이용하여 상기 데이터 키에 대한 액세스를 허용하는 제1 보안 설정 커맨드를 수신하고,
    상기 제1 보안 설정 커맨드에 응답하여, 상기 제1 패스워드에 기초하여 제1 키를 생성하고,
    상기 암호화 키를 상기 제1 키로 암호화하여 제1 암호화된 암호화 키를 생성하고,
    상기 제1 키를 상기 암호화 키로 암호화하여 암호화된 제1 키를 생성하고,
    상기 비휘발성 메모리에 상기 제1 암호화된 암호화 키 및 상기 암호화된 제1 키를 저장하는 스토리지 컨트롤러를 포함하는 스토리지 장치.
  2. 제 1항에 있어서,
    상기 제1 키는 상기 제1 패스워드에 대한 해쉬 값인 스토리지 장치.
  3. 제 1항에 있어서,
    상기 스토리지 컨트롤러는, 상기 제1 보안 설정 커맨드에 응답하여 상기 암호화 키를 삭제하는 스토리지 장치.
  4. 제 1항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 제1 패스워드를 이용하여 상기 데이터 키에 대한 액세스를 차단하는 제2 보안 설정 커맨드를 수신하고,
    상기 제2 보안 설정 커맨드에 응답하여, 상기 비휘발성 메모리에 저장된 상기 제1 암호화된 암호화 키를 삭제하는 스토리지 장치.
  5. 제 4항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 제1 패스워드를 이용하여 상기 데이터 키에 대한 액세스를 허용하는 제3 보안 설정 커맨드를 수신하고,
    상기 제3 보안 설정 커맨드에 응답하여, 상기 비휘발성 메모리에 저장된 상기 암호화된 제1 키를 복호화하여 상기 제1 키를 생성하고,
    상기 암호화 키를 상기 제1 키로 암호화하여 상기 제1 암호화된 암호화 키를 생성하고,
    상기 비휘발성 메모리에 상기 제1 암호화된 암호화 키를 저장하는 스토리지 장치.
  6. 제 1항에 있어서,
    상기 제1 패스워드는 상기 제1 보안 설정 커맨드에 의해 변경되지 않는 스토리지 장치.
  7. 제 1항에 있어서,
    상기 제1 보안 설정 커맨드는, 상기 제1 패스워드와 다른 제2 패스워드를 포함하고, 상기 제2 패스워드를 더 이용하여 상기 데이터 키에 대한 액세스를 허용하는 제1 보안 설정 커맨드이고,
    상기 스토리지 컨트롤러는,
    상기 제1 보안 설정 커맨드에 응답하여, 상기 제2 패스워드에 기초하여 제2 키를 더 생성하고,
    상기 암호화 키를 상기 제2 키로 암호화하여 제2 암호화된 암호화 키를 더 생성하고,
    상기 비휘발성 메모리에 상기 제2 암호화된 암호화 키를 더 저장하는 스토리지 장치.
  8. 제 7항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 제1 보안 설정 커맨드에 응답하여 상기 비휘발성 메모리에 저장된 상기 암호화 키를 더 삭제하는 스토리지 장치.
  9. 제 7항에 있어서,
    상기 제2 키는 상기 제2 패스워드에 대한 해쉬 값인 스토리지 장치.
  10. 제 7항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 제1 패스워드 또는 상기 제2 패스워드를 이용하지 않고 상기 데이터 키에 대한 액세스를 허용하는 보안 해제 커맨드를 수신하고,
    상기 보안 해제 커맨드에 응답하여, 상기 비휘발성 메모리에 저장된 상기 제1 암호화된 암호화 키 및 상기 제2 암호화된 암호화 키를 삭제하는 스토리지 장치.
  11. 제 10항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 제1 보안 설정 커맨드에 응답하여, 상기 비휘발성 메모리에 저장된 상기 암호화 키를 더 삭제하고,
    상기 보안 해제 커맨드에 응답하여, 상기 비휘발성 메모리에 상기 암호화 키를 더 저장하는 스토리지 장치.
  12. 제 7항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 제1 패스워드 및 상기 제2 패스워드 중 어느 하나를 포함하고 상기 비휘발성 메모리에 저장된 데이터를 삭제하도록 하는 보안 삭제 커맨드를 수신하고,
    상기 보안 삭제 커맨드에 응답하여, 상기 비휘발성 메모리에 저장된 상기 데이터, 상기 제1 암호화된 암호화 키,상기 제2 암호화된 암호화 키 및 암호화된 데이터 키를 삭제하는 스토리지 장치.
  13. 제 12항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 보안 삭제 커맨드에 응답하여, 새로운 데이터 키를 생성하고, 상기 비휘발성 메모리에 상기 새로운 데이터 키를 상기 암호화 키로 암호화하여 저장하는 스토리지 장치.
  14. 제1 패스워드에 기초하여 생성된 제1 키를 암호화 키로 암호화하여 생성된 암호화된 제1 키와, 상기 암호화 키를 상기 제1 키로 암호화하여 생성된 제1 암호화된 암호화 키와, 데이터 키를 상기 암호화 키로 암호화하여 생성된 암호화된 데이터 키를 저장하는 비휘발성 메모리; 및
    상기 비휘발성 메모리의 동작을 제어하는 스토리지 컨트롤러를 포함하고,
    상기 스토리지 컨트롤러는,
    상기 제1 패스워드를 이용하여 상기 데이터 키에 대한 액세스를 차단하는 제1 보안 설정 커맨드를 수신하고,
    상기 제1 보안 설정 커맨드에 응답하여, 상기 비휘발성 메모리에 저장된 상기 제1 암호화된 암호화 키를 삭제하고,
    상기 제1 패스워드를 이용하여 상기 데이터 키에 대한 액세스를 허용하는 제2 보안 설정 커맨드를 수신하고,
    상기 제2 보안 설정 커맨드에 응답하여, 상기 비휘발성 메모리에 상기 제1 암호화된 암호화 키를 저장하는 스토리지 장치.
  15. 제 14항에 있어서,
    상기 스토리지 컨트롤러는,
    상기 제2 보안 설정 커맨드에 응답하여, 상기 비휘발성 메모리에 저장된 상기 암호화된 제1 키를 복호화하여 상기 제1 키를 생성하고,
    상기 암호화 키를 상기 제1 키로 암호화하여 상기 제1 암호화된 암호화 키를 생성하고,
    상기 비휘발성 메모리에 상기 제1 암호화된 암호화 키를 저장하는 스토리지 장치.
  16. 제 14항에 있어서,
    상기 비휘발성 메모리는,
    상기 데이터 키를 이용하여 데이터가 라이트되고 상기 데이터 키를 이용하여 상기 데이터가 리드되는 유저 영역과,
    상기 암호화 키, 상기 제1 암호화된 암호화 키 및 상기 암호화된 제1 키가 저장되는 메타 영역을 포함하는 스토리지 장치.
  17. 제 14항에 있어서,
    상기 제1 보안 설정 커맨드는, 상기 제1 패스워드와 다른 제2 패스워드를 포함하고, 상기 제2 패스워드를 이용하여 상기 데이터 키에 액세스 가능하도록 하는 제1 보안 설정 커맨드이고,
    상기 제2 보안 설정 커맨드는 상기 제1 패스워드와 다른 제3 패스워드를 포함하고, 상기 제3 패스워드를 더 이용하여 상기 데이터 키에 액세스 가능하도록 하는 제2 보안 설정 커맨드이고,
    상기 스토리지 컨트롤러는,
    상기 제1 보안 설정 커맨드에 응답하여, 상기 제2 패스워드에 기초하여 제2 키를 더 생성하고,
    상기 암호화 키를 상기 제2 키로 암호화하여 제2 암호화된 암호화 키를 더 생성하고,
    상기 비휘발성 메모리에 상기 제2 암호화된 암호화 키를 더 저장하고,
    상기 제2 보안 설정 커맨드에 응답하여, 상기 제3 패스워드에 기초하여 제3 키를 더 생성하고,
    상기 암호화 키를 상기 제3 키로 암호화하여 제3 암호화된 암호화 키를 더 생성하고,
    상기 비휘발성 메모리에 상기 제3 암호화된 암호화 키를 더 저장하는 스토리지 장치.
  18. 제1 암호화 키 및 상기 제1 암호화 키로 암호화된 제1 암호화된 데이터 키를 저장하고, 상기 데이터 키를 이용하여 데이터가 라이트되고 상기 데이터 키를 이용하여 상기 데이터가 리드되는 비휘발성 메모리; 및
    서로 다른 복수의 제1 패스워드를 이용하여 상기 데이터 키에 접근 가능하도록 하는 제1 보안 설정 커맨드를 수신하고,
    상기 제1 보안 설정 커맨드에 응답하여, 각각의 상기 복수의 제1 패스워드에 기초하여 복수의 제1 키를 생성하고,
    상기 제1 암호화 키를 각각의 상기 복수의 제1 키로 암호화하여 복수의 제1 암호화된 암호화 키를 생성하고,
    상기 각각의 복수의 제1 키를 상기 제1 암호화 키로 암호화하여 복수의 암호화된 제1 키를 생성하고,
    상기 비휘발성 메모리에 상기 복수의 제1 암호화된 암호화 키 및 상기 복수의 암호화된 제1 키를 저장하는 스토리지 컨트롤러를 포함하는 스토리지 장치.
  19. 제 18항에 있어서,
    상기 복수의 제1 패스워드는 제1 서브 패스워드를 포함하고,
    상기 복수의 제1 키는 상기 제1 서브 패스워드에 기초하여 생성된 제1 서브 키를 포함하고,
    상기 복수의 제1 암호화된 암호화 키는 상기 제1 암호화 키를 상기 제1 서브 키로 암호화하여 생성된 제2 서브 키를 포함하고,
    상기 스토리지 컨트롤러는,
    상기 제1 서브 패스워드를 이용하여 상기 데이터 키에 대한 액세스를 차단하는 제2 보안 설정 커맨드를 수신하고,
    상기 제2 보안 설정 커맨드에 응답하여, 제2 서브 키를 삭제하는 스토리지 장치.
  20. 제 18항에 있어서,
    상기 비휘발성 메모리는,
    상기 제1 암호화 키와 다른 제2 암호화 키 및 상기 제2 암호화 키로 암호화된 제2 암호화된 데이터 키를 더 저장하고,
    상기 스토리지 컨트롤러는,
    서로 다른 복수의 제2 패스워드를 이용하여 상기 데이터 키에 접근 가능하도록 하는 제4 보안 설정 커맨드를 수신하고,
    상기 제4 보안 설정 커맨드에 응답하여, 각각의 상기 복수의 제2 패스워드에 기초하여 복수의 제2 키를 생성하고,
    상기 제2 암호화 키를 각각의 상기 복수의 제2 키로 암호화하여 복수의 제2 암호화된 암호화 키를 생성하고,
    상기 각각의 복수의 제2 키를 상기 제2 암호화 키로 암호화하여 복수의 암호화된 제2 키를 생성하고,
    상기 비휘발성 메모리에 상기 복수의 제2 암호화된 암호화 키 및 상기 복수의 암호화된 제2 키를 저장하는 스토리지 컨트롤러를 포함하는 스토리지 장치.
KR1020210028064A 2021-03-03 2021-03-03 스토리지 장치 KR20220124452A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020210028064A KR20220124452A (ko) 2021-03-03 2021-03-03 스토리지 장치
US17/514,059 US11644983B2 (en) 2021-03-03 2021-10-29 Storage device having encryption
DE102021128994.7A DE102021128994A1 (de) 2021-03-03 2021-11-08 Speichervorrichtung mit Verschlüsselung
CN202210188792.4A CN115017556A (zh) 2021-03-03 2022-02-28 具有加密功能的存储设备
JP2022032544A JP2022136025A (ja) 2021-03-03 2022-03-03 ストレージ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210028064A KR20220124452A (ko) 2021-03-03 2021-03-03 스토리지 장치

Publications (1)

Publication Number Publication Date
KR20220124452A true KR20220124452A (ko) 2022-09-14

Family

ID=82898202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210028064A KR20220124452A (ko) 2021-03-03 2021-03-03 스토리지 장치

Country Status (5)

Country Link
US (1) US11644983B2 (ko)
JP (1) JP2022136025A (ko)
KR (1) KR20220124452A (ko)
CN (1) CN115017556A (ko)
DE (1) DE102021128994A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4339790A1 (en) * 2022-09-14 2024-03-20 Samsung Electronics Co., Ltd. Storage device deleting encryption key, method of operating the same, and method of operating electronic device including the same

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6947556B1 (en) * 2000-08-21 2005-09-20 International Business Machines Corporation Secure data storage and retrieval with key management and user authentication
JP4999736B2 (ja) 2008-03-13 2012-08-15 キヤノン株式会社 データ処理装置
US8509448B2 (en) 2009-07-29 2013-08-13 Motorola Solutions, Inc. Methods and device for secure transfer of symmetric encryption keys
US20110154023A1 (en) 2009-12-21 2011-06-23 Smith Ned M Protected device management
US9026805B2 (en) 2010-12-30 2015-05-05 Microsoft Technology Licensing, Llc Key management using trusted platform modules
US9705854B2 (en) 2012-07-09 2017-07-11 Massachusetts Institute Of Technology Cryptography and key management device and architecture
US9087205B2 (en) * 2013-10-11 2015-07-21 Sap Se Shared encrypted storage
US20170372085A1 (en) * 2016-06-28 2017-12-28 HGST Netherlands B.V. Protecting data in a storage device
US9953168B1 (en) * 2017-06-26 2018-04-24 Bracket Computing, Inc. Secure boot of virtualized computing instances
US10693641B2 (en) 2018-01-12 2020-06-23 Blackberry Limited Secure container based protection of password accessible master encryption keys
US11599479B2 (en) * 2018-05-09 2023-03-07 Intel Corporation Technology for fine-grain encryption and secure key injection on self-encrypting drives
US11133934B2 (en) * 2018-08-24 2021-09-28 Powch, LLC Systems and methods for single-step out-of-band authentication
US10812267B2 (en) * 2018-11-05 2020-10-20 International Business Machines Corporation Secure password lock and recovery
US10963592B2 (en) 2019-02-05 2021-03-30 Western Digital Technologies, Inc. Method to unlock a secure digital memory device locked in a secure digital operational mode
CN110071799A (zh) 2019-04-09 2019-07-30 山东超越数控电子股份有限公司 一种加密存储密钥的生成保护方法,系统,终端机及可读存储介质
TWI728355B (zh) * 2019-05-10 2021-05-21 慧榮科技股份有限公司 密碼保護的資料儲存裝置以及非揮發式記憶體控制方法
KR102599124B1 (ko) 2019-09-03 2023-11-07 한국전자통신연구원 메모리 소자
JP2021060721A (ja) * 2019-10-04 2021-04-15 キオクシア株式会社 メモリシステム
CN111464301B (zh) 2020-04-28 2022-02-11 郑州信大捷安信息技术股份有限公司 一种密钥管理方法及系统
JP2022030661A (ja) * 2020-08-07 2022-02-18 キオクシア株式会社 メモリシステム、制御方法、および情報処理システム
US20220286282A1 (en) * 2021-03-02 2022-09-08 Seagate Technology Llc Updateable encryption in self encrypting drives

Also Published As

Publication number Publication date
US11644983B2 (en) 2023-05-09
DE102021128994A1 (de) 2022-09-08
CN115017556A (zh) 2022-09-06
JP2022136025A (ja) 2022-09-15
US20220283714A1 (en) 2022-09-08

Similar Documents

Publication Publication Date Title
JP5662037B2 (ja) 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング
TWI492088B (zh) 用於控制固態磁碟之系統、方法及電腦可讀媒體
TWI737088B (zh) 主機型快閃記憶體維護技術
US20230273884A1 (en) Memory controller, storage device including the same, and operating method of the memory controller
KR20090067649A (ko) 보안 저장 장치를 갖는 메모리 시스템 및 그것의 보안 영역관리 방법
TW201833812A (zh) 資料儲存裝置以及其操作方法
TWI722496B (zh) 使用者資料的加解密方法及裝置
KR20210127278A (ko) 저장 장치 및 그것의 데이터 폐기 방법
US11644983B2 (en) Storage device having encryption
US20230179418A1 (en) Storage controller and method of operating electronic system
US20100211801A1 (en) Data storage device and data management method thereof
TW202011248A (zh) 資料儲存裝置以及其操作方法
TWI731407B (zh) 具有旁通通道的金鑰管理裝置及處理器晶片
TW201830284A (zh) 資料儲存系統、資料儲存方法及資料讀取方法
CN113721838A (zh) 用于存储设备的写、读数据方法、存储控制器以及dma引擎
US20240220667A1 (en) Storage device and computing device including the same
KR102484065B1 (ko) 스토리지 컨트롤러 및 이를 포함하는 스토리지 시스템
US20230144135A1 (en) Trusted computing device and operating method thereof
EP4394639A1 (en) Storage device and computing device including the same
US20230153441A1 (en) Storage device and operating method of storage device
US20230135891A1 (en) Storage device including storage controller and operating method
EP4184359A1 (en) Storage device and operating method of storage device
KR20240108722A (ko) 스토리지 장치 및 이를 포함하는 컴퓨팅 장치
CN118276770A (zh) 存储设备和包括该存储设备的计算设备
KR20240082056A (ko) 어플리케이션 단위로 어플리케이션과 스토리지 장치간 안전한 저장공간을 제공하기 위한 스토리지 장치, 스토리지 장치 동작 방법 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination