KR20210064854A - 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 스토리지 장치, 및 메모리 컨트롤러의 동작 방법 - Google Patents

메모리 컨트롤러, 메모리 컨트롤러를 포함하는 스토리지 장치, 및 메모리 컨트롤러의 동작 방법 Download PDF

Info

Publication number
KR20210064854A
KR20210064854A KR1020190153549A KR20190153549A KR20210064854A KR 20210064854 A KR20210064854 A KR 20210064854A KR 1020190153549 A KR1020190153549 A KR 1020190153549A KR 20190153549 A KR20190153549 A KR 20190153549A KR 20210064854 A KR20210064854 A KR 20210064854A
Authority
KR
South Korea
Prior art keywords
biometric
security key
unique value
memory controller
user
Prior art date
Application number
KR1020190153549A
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 KR1020190153549A priority Critical patent/KR20210064854A/ko
Priority to US17/036,386 priority patent/US11681637B2/en
Priority to CN202011156305.3A priority patent/CN112948793A/zh
Publication of KR20210064854A publication Critical patent/KR20210064854A/ko
Priority to US18/314,330 priority patent/US20230273884A1/en

Links

Images

Classifications

    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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
    • 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
    • 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/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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/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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/13Sensors therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)

Abstract

본 개시의 기술적 사상에 따른 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러는, 외부 장치로부터 수신되는 생체 인증 메시지 및 고유 값을 기초로 보안 키 엑세스 권한을 제어하는 키 관리부 및 상기 보안 키를 기초로 호스트로부터 수신되는 데이터를 암호화하고 비휘발성 메모리에 저장된 데이터를 복호화하는 데이터 처리부를 포함할 수 있다.

Description

메모리 컨트롤러, 메모리 컨트롤러를 포함하는 스토리지 장치, 및 메모리 컨트롤러의 동작 방법{Memory controller, storage device including the same, and operating method of the memory controller}
본 개시의 기술적 사상은 스토리지 장치에 관한 것이며, 더욱 상세하게는, 자가 암호화(self-encryption)를 지원하는 메모리 컨트롤러 및 이를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법에 관한 것이다.
비휘발성 메모리로서 플래시 메모리는 전원이 차단되어도 저장하고 있는 데이터를 유지할 수 있으며, SSD(Solid State Drive) 및 메모리 카드 등의 플래시 메모리를 포함하는 스토리지 장치가 널리 사용되고 있다. 최근, 데이터 보안에 대한 요구가 높아짐에 따라 보안이 요구되는 중요한 데이터를 안전하게 보관하고, 스토리지 장치가 폐기되거나 도난 당하더라도 데이터 유출을 방지하는 자가 암호화(self-encryption)를 지원하는 스토리지 장치가 이용되고 있다. 또한, 스토리지 장치는 사용자의 생체 인증을 기초로 자가 암호화 기능을 지원할 수 있다.
본 개시의 기술적 사상은, 생체 인식 모듈로부터 제공되는 생체 인증 정보를 기초로 메모리 장치에 저장되는 사용자 데이터의 암호화 및 복호화를 수행하는 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법을 제공한다.
본 개시의 기술적 사상에 따른 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러는, 외부 장치로부터 수신되는 생체 인증 메시지 및 고유 값을 기초로 보안 키 엑세스 권한을 제어하는 키 관리부 및 상기 보안 키를 기초로 호스트로부터 수신되는 데이터를 암호화하고 비휘발성 메모리에 저장된 데이터를 복호화하는 데이터 처리부를 포함할 수 있다.
또한, 본 개시의 기술적 사상에 따른 스토리지 장치는, 제1 영역 및 제2 영역을 구비하는 비휘발성 메모리 장치, 및 생체 인식 모듈로부터 사용자의 생체 정보에 따른 제1 고유 값및 생체 인증 결과를 수신하고, 상기 제1 고유 값을 기초로, 상기 제1 영역에 저장될 제1 데이터를 암호화하고, 상기 제1 영역으로부터 독출되는 암호화된 제2 데이터를 복호화하는 메모리 컨트롤러를 포함할 수 있다.
또한, 본 개시의 기술적 사상에 따른 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법은, 외부 장치로부터 사용자의 생체 정보에 따른 고유 값 및 생체 인증 성공 메시지를 수신하는 단계, 내부에 저장된 암호화된 보안 키를 상기 고유 값을 기초로 복호화하는 단계, 복호화된 보안 키를 기초로 호스트로부터 수신되는 데이터를 암호화하는 단계 및 암호화된 데이터를 상기 비휘발성 메모리 장치에 전송하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따르면, 생체 인식 모듈이 생체 정보를 저장 및 관리하고, 메모리 컨트롤러가 생체 정보를 기초로 사용자 권한 설정 및 사용자 권한 인증을 수행할 수 있도록 생체 정보에 따른 고유 값을 생성하여 메모리 컨트롤러에 제공할 수 있다. 이에 따라, 메모리 컨트롤러는 관리 부담이 감소하고 사용자 데이터를 안전하게 저장 및 관리할 수 있다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2a 및 도 2b는 본 개시의 실시예에 따른 메모리 컨트롤러 및 생체 인식 모듈의 동작 방법을 나타내는 흐름도이다.
도 3은 본 개시의 일 실시예에 따른 메모리 컨트롤러의 일 예를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 생체 인식 모듈의 일 예를 나타내는 흐름도이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 동작 방법을 나타내는 흐름도이다.
도 6은 비휘발성 메모리 장치를 나타내는 블록도이다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예를 설명하는 도면이다.
도 8은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예를 설명하는 도면이다.
도 9a, 도 9b 및 도 9c는 본 개시의 예시적 실시예들에 따른 스토리지 시스템을 나타내는 블록도이다.
도 10은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타낸다.
도 11은 본 개시의 예시적 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(storage system)(10)은 스토리지 장치(100), 호스트(200) 및 생체 인식 모듈(300)을 포함할 수 있고, 스토리지 장치(100)는 메모리 컨트롤러(110) 및 비휘발성 메모리 장치(120, NVM)를 포함할 수 있다.
스토리지 시스템(10)은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 스토리지, IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
일부 실시예들에서, 스토리지 장치(100)는 전자 장치에 내장되는 내부 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 SSD, 임베디드 UFS(Universal Flash Storage) 메모리 장치 또는 eMMC(embedded Multi-Media Card)일 수 있다. 일부 실시예들에서, 스토리지 장치(10)는 전자 장치에 착탈 가능한 외장 메모리일 수 있다. 예를 들어, 스토리지 장치(10)는 포터블 SSD, UFS 메모리 카드, CF(Compact Flash) 카드, SD(Secure Digital) 카드, Micro-SD(Micro Secure Digital) 카드, Mini-SD(Mini Secure Digital) 카드, xD(extreme Digital) 카드 또는 메모리 스틱(Memory Stick)일 수 있다.
호스트(200)는 스토리지 장치(100)에 커맨드(CMD) 및/또는 비휘발성 메모리 장치(120)에 저장될 데이터를 전송하고, 스토리지 장치(100)로부터 응답(RES) 및/또는 비휘발성 메모리 장치(120)로부터 독출되는 데이터를 수신할 수 있다. 예를 들어, 호스트(120)는 AP(Application Processor) 또는 SoC(System-On-a-Chip)로 구현될 수 있다. 또한, 예를 들어, 호스트(120)는 집적 회로(integrated circuit), 마더보드(motherboard), 또는 데이터베이스 서버로 구현될 수 있으나 이에 한정되는 것은 아니다.
호스트(200)는 다양한 인터페이스를 통해 스토리지 장치(100)와 통신할 수있으며, 실시예에 있어서, 호스트(200)와 스토리지 장치(100) 핫-플러그를 지원하는(hot-pluggable) 인터페이스를 통해 케이블을 통해 전기적으로 연결되면 통신할 수 있다.
메모리 컨트롤러(110)는 스토리지 장치(100)의 전반적인 동작을 제어할 수 있다. 또한, 메모리 컨트롤러(110)는 호스트(200)로부터 수신되는 커맨드(CMD)에 응답하여 비휘발성 메모리 장치(120)에 데이터를 기입(write)하거나 또는 비휘발성 메모리 장치(120)로부터 데이터를 독출(read)할 수 있다. 이하, 호스트(200)로부터 수신되어 비휘발성 메모리 장치(120)에 기입되거나 또는 비휘발성 메모리 장치(120)로부터 독출되어 호스트(200)로 제공되는 데이터를 사용자 데이터로 지칭하기로 한다.
비휘발성 메모리 장치(120)는 전원이 차단되어도 저장하고 있는 데이터가 유지되는 특성을 가지는 메모리 또는 메모리 장치를 지칭할 수 있다. 따라서, 스토리지 장치(100)에 공급되는 전력이 차단되더라도 비휘발성 메모리 장치(120)에 저장된 사용자 데이터는 유지될 수 있다. 일 실시예에서, 비휘발성 메모리 장치(120)는 플래쉬 메모리 장치를 포함할 수 있고, 예를 들어, 낸드(NAND) 플래쉬 메모리 장치를 포함할 수 있다. 실시예에 있어서, 비휘발성 메모리 장치(120)는 3차원 어레이 구조(three-dimensional 10 array structure)를 가지는 수직형 낸드 플래시(Vertical NAND; VNAND) 메모리 장치를 포함할 수 있다. 그러나, 이에 제한되는 것은 아니며, 비휘발성 메모리 장치(120)는 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 장치를 포함할 수 있다. 또한, 비휘발성 메모리 장치(120)는 반도체 메모리 장치뿐만 아니라, 자기 디스크 장치로 구현될 수도 있다. 이하에서는 설명의 편의를 위하여 비휘발성 메모리 장치(120)는 낸드 플래시 메모리 장치인 것으로 설명되나, 본 개시의 기술적 사상이 이에 제한되지 않는 점은 이해될 것이다. 실시예에 있어서 비휘발성 메모리 장치(120)는 복수의 비휘발성 메모리 칩을 포함할 수 있으며, 복수의 비휘발성 메모리 칩은 복수의 채널을 통해 메모리 컨트롤러(110)와 통신할 수 있다.
전원이 차단되어도 저장하고 있는 데이터가 유지되는 비휘발성 메모리 장치(120)의 특성에 따라, 비휘발성 메모리 장치(120)에 저장된 사용자 데이터를 보안된 상태로 유지할 필요가 있을 수 있다. 예를 들면, 스토리지 장치(100)를 재사용하거나 폐기하는 경우, 또는 스토리지 장치(100)가 허가되지 않은 사용자에 의하여 사용되는 경우, 스토리지 장치(100)에 저장된 (즉, 비휘발성 메모리 장치(120)에 저장된) 보안이 필요한 사용자 데이터의 유출을 방지할 필요가 있다. 이를 위하여, 스토리지 장치(100)는 자가 암호화(self-encryption)를 지원할 수 있다. 스토리지 장치(100)는 수신되는 사용자 데이터를 암호화하여 비휘발성 메모리 장치(120)에 저장할 수 있다. 비휘발성 메모리 장치(120)에 저장된 사용자 데이터는 암호화된 상태로 유지되기 때문에, 스토리지 장치(100)에 공급되는 전력이 차단되더라도 보안된 상태로 유지될 수 있다. 이와 같이, 자가 암호화를 지원하는 스토리지 장치(100)는 SED(Self-Encrypting Device 또는 Self-Encrypting Drive)라고 지칭될 수 있다.
메모리 컨트롤러(110)는 생체 인식 모듈(300)로부터 수신되는 고유 값(UNQV)을 기초로 사용자 데이터에 대하여 암호화 및 복호화를 수행할 수 있다. 실시예에 있어서, 메모리 컨트롤러(110)는 호스트(200)로부터 수신되는 사용자 패스워드(또는 호스트 키라고 함)를 기초로 사용자 데이터에 대하여 암호화 및 복호화를 수행할 수 있으며, 호스트(200)로부터 사용자 패스워드가 수신되지 않더라도 사용자의 생체 인증 성공 시 생체 인식 모듈(300)로부터 수신되는 고유 값(UNQV)을 기초로 사용자 데이터에 대하여 암호화 및 복호화를 수행할 수 있다.
구체적으로, 메모리 컨트롤러(110)는 보안 키(KEY_SEC)(또는 암호화 및 복호화 키라고 함)를 기초로 실시간으로 사용자 데이터에 대하여 암호화 및 복호화를 수행할 수 있으며, 이때, 권한 없는 사용자에 의하여 보안 키(KEY_SEC)가 엑세스되는 것을 방지하기 위해 메모리 컨트롤러(110)는 고유 값(UNQV)을 기초로 보안 키(KEY_SEC)를 암호화 및 복호화할 수 있다.
예를 들어, 사용자 생체 정보 등록 단계에서, 메모리 컨트롤러(110)는 생체 인식 모듈(300)로부터 생체 정보 등록 메시지, 및 등록된 생체 정보에 기초하여 생성되는 고유 값(UNQV)을 수신하고, 고유 값(UNQV)에 기초하여 보안 키(KEY_SEC)를 암호화하여, 암호화된 보안 키(KEY_ENS)를 저장할 수 있다. 이후, 스토리지 장치(100)가 호스트(200)로 분리된 후(또는 전원이 차단된 후) 다시 호스트(200)에 연결되거나 또는 다른 호스트에 연결될 때, 다시 말해서 비휘발성 메모리 장치(120)에 대한 기입 및/또는 독출 권한이 요구될 때, 메모리 컨트롤러(110)는 생체 인식 모듈(300)로부터 생체 인증 성공을 나타내는 메시지(MGS) 및 고유 값(UNQV)이 수신되면, 고유 값(UNQV)을 기초로 사용자 권한 인증을 수행할 수 있다. 사용자 권한 인증 성공 시 메모리 컨트롤러(110)는 고유 값(UNQV)을 기초로 암호화된 보안 키(KEY_ENS)를 복호화함으로써, 보안 키(KEY_SEC)에 대한 엑세스 권한을 획득할 수 있고, 비휘발성 메모리 장치(120)를 언락 상태로 설정할 수 있다. 비휘발성 메모리 장치(120)가 언락 상태일 때, 비휘발성 메모리 장치(120)의 보안 영역에 대한 엑세스, 예컨대 기입 및/또는 독출이 가능할 수 있다. 메모리 컨트롤러(110)는 복호화된 보안 키(KEY_SEC)를 기초로 사용자 데이터를 암호화 또는 복호화함으로써, 비휘발성 메모리 장치(120)를 엑세스할 수 있다. 메모리 컨트롤러(110)는 데이터 처리부(110) 및 보안 키 관리부(112)를 포함할 수 있다. 데이터 처리부(110)는 사용자 데이터에 대하여 암호화 또는 복호화를 수행할 수 있다. 데이터 처리부(110)는 호스트(200)로부터 수신된 데이터를 보안 키(KEY_SEC)를 기초로 암호화할 수 있고, 암호화된 데이터를 비휘발성 메모리 장치(120)에 저장할 수 있다. 또한, 데이터 처리부(110)는 비휘발성 메모리 장치(120)로부터 독출(read)된 암호화된 데이터를 보안 키(KEY_SEC)를 기초로 복호화(decryption)할 수 있고, 복호화된 데이터를 호스트(200)에 전송할 수 있다. 보안 키(KEY_SEC)는 스토리지 장치(100) 내부의 하드웨어 로직에서 생성되는 랜덤 특성 키를 기초로 생성되거나, 또는 상기 랜덤 특성 키 및 외부(예컨대, 호스트(200))로부터 제공되는 고유 키의 조합에 기초하여 생성될 수 있다. 실시예들에 있어서, 비휘발성 메모리(120)의 보안 영역 전체에 대하여 하나의 보안 키(KEY_SEC)가 생성되거나, 비휘발성 메모리(120)의 보안 영역에 포함되는 복수의 영역 각각에 대하여 서로 다른 보안 키(KEY_SEC)가 생성될 수 있다.
보안 키 관리부(112)는 보안 키(KEY_SEC)에 대한 엑세스 권한을 제어할 수 있다. 메모리 컨트롤러(110)가 보안 키(KEY_SEC)에 대한 엑세스 권한을 획득한 경우에, 비휘발성 메모리 장치(120)가 언락 상태로 설정될 수 있다.
보안 키 관리부(112)는 외부의 생체 인식 모듈(300)로부터 수신되는 생체 인증 메시지(MSG) 및 고유 값(UNQV)을 기초로 보안 키(KEY_SEC)에 대한 엑세스 권한(또는 사용자 권한이라고 함)을 설정하거나 엑세스 권한 인증(또는 사용자 권한 인증이라고 함)을 수행할 수 있다. 실시예에 있어서, 보안 키 관리부(112)는 고유 값(UNQV) 또는 호스트(200)로부터 제공되는 사용자 패스워드를 기초로 보안 키(KEY_SEC)에 대한 엑세스 권한을 제어할 수 있다.
실시예에 있어서, 생체 인식 모듈(300)에 복수의 생체 정보가 등록될 수 있으며, 보안 키 관리부(112)는 생체 인식 모듈(300)로부터 복수의 생체 정보 각각에 대응하는 복수의 고유 값(UNQV)을 수신할 수 있다. 보안 키 관리부(112)는 복수의 고유 값을 기초로 보안 키(KEY_SEC)(예컨대 하나의 보안 키)를 암호화하여, 복수의 암호화된 보안 키(KEY_ENS)를 생성 및 저장할 수 있다. 이후, 사용자 권한 인증 수행 시, 보안 키 관리부(112)는 복수의 암호화된 보안 키 중 수신되는 고유 값(UNQV)에 대응하는 암호화된 보안 키를 고유 값(UNQV)을 기초로 복호화함으로써, 보안 키(KEY_SEC)에 대한 엑세스 권한을 획득할 수 있고, 비휘발성 메모리 장치(120)를 언락 상태로 설정할 수 있다.
이때, 보안 키 관리부(112)는 생체 인식 모듈(300)로부터 생체 인식 성공 및 고유 값(UNQV)(또는 고유 값이 나타내는 생체 정보)에 대한 인덱스를 포함하는 메시지(MSG)를 수신하고, 인덱스를 기초로 복수의 암호화된 보안 키(KEY_ENS) 중 고유 값(UNQV)에 대응하는 암호화된 보안 키(KEY_ENS)를 찾고, 암호화된 보안 키(KEY_ENS)를 고유 값(UNQV)을 기초로 복호화할 수 있다. 또는, 보안 키 관리부(112)는 복수의 암호화된 보안 키(KEY_ENS) 각각을 저장할 때, 고유 값(UNQV) 및 랜덤 값(또는 salt 값이라고 함)을 인코딩(해싱)하여 생성되는 인코딩 값을 대응하는 암호화된 보안 키(KEY_ENS)와 함께 저장하고, 이후, 사용자 권한 인증 단계에서 생체 인증 성공을 나타내는 메시지(MSG) 및 고유 값(UNQV)이 수신되면, 수신된 고유 값(UNQV) 및 랜덤 값을 인코딩하여 인증 인코딩 값을 생성하고, 인증 인코딩 값을 저장된 인코딩 값과 비교함으로써, 복수의 암호화된 보안 키(KEY_ENS) 중 고유 값(UNQV)에 대응하는 암호화된 보안 키(KEY_ENS)를 찾을 수 있다.
생체 인식 모듈(300)은 사용자의 생체를 센싱하여 생체 데이터를 획득하고, 생체 데이터를 설정된 데이터 포맷에 기초한 생체 정보로 변환하고, 생체 정보를 저장 및 관리할 수 있다. 생체 인식 모듈(300)은 내부에 구비되는 비휘발성 메모리에 사용자 권한이 등록된 사용자들 각각에 대한 생체 정보를 저장할 수 있다. 생체 인식 모듈(300)은 생체 정보에 따른 고유 값(UNQV)을 생성하고 생체 인증 메시지(MSG) 및 고유 값(UNQV)을 메모리 컨트롤러(110)로 전송할 수 있다. 생체 정보 등록 단계에서, 생체 인식 모듈(300)은 생체 정보 등록 메시지 및 고유 값(UNQV)을 메모리 컨트롤러(110)에 전송할 수 있다. 메모리 컨트롤러(110)는 생체 정보 등록 메시지가 수신되면, 고유 값(UNQV)을 기초로 사용자 권한 설정을 수행할 수 있다.
이후, 생체 인식 모듈(300)은 획득된 생체 데이터에 기초한 생체 정보가 미리 저장된 생체 정보에 매칭될 경우, 매칭된 생체 정보에 기초하여 고유 값(UNQV)을 생성하고, 생체 인증 성공 메시지(MSG) 및 고유 값(UNQV)을 메모리 컨트롤러(300)로 전송할 수 있다. 메모리 컨트롤러(110)는 생체 인증 성공 메시지가 수신되면, 고유 값(UNQV)을 기초로 사용자 권한 인증을 수행할 수 있다.
전술한 바와 같이, 생체 인식 모듈(300)은 사용자의 생체를 센싱하여 생체 정보를 획득하거나 사용자 생체 인증을 수행할 뿐 아니라, 생체 정보를 저장 및 관리하고, 사용자 생체 정보에 따른 고유 값(UNQV)을 생성하여 생체 인증 메시지와 함께 메모리 컨트롤러(110)에 제공할 수 있다.
생체 인식 모듈(300)은 지문 인식 모듈, 홍채 인식 모듈, 안면 인식 모듈,정맥 인식 모듈, 음성 인식 모듈 등 사용자의 생체 데이터를 획득할 수 있는 인식 모듈로 구현될 수 있다.
예를 들어, 지문 인식 모듈은 사용자의 지문을 스캔하여, 지문 이미지를 생체 데이터로서 획득하고, 지문 이미지를 설정된 포맷에 기초한 지문 정보로 변환할 수 있다. 생체 정보 등록 단계에서, 지문 인식 모듈은 지문 정보를 내부의 비휘발성 메모리에 저장할 수 있다. 지문 인식 모듈은 복수의 사용자 각각에 대한 지문 정보를 저장할 수 있다. 지문 인식 모듈은 지문 정보에 기초하여 고유 값(UNQV)를 생성하고, 지문 정보 등록 메시지와 함께 고유 값(UNQV)을 메모리 컨트롤러(110)에 전송할 수 있다.
이후, 사용자 권한 인증 단계에서, 지문 인식 모듈은 사용자 지문을 스캔하여 지문 이미지를 획득하고, 지문 이미지를 지문 정보로 변환할 수 있다. 지문 인식 모듈은 지문 정보를 저장된 지문 정보와 비교하여, 동일한 지문 정보가 존재하는 경우, 즉 지문 정보가 저장된 지문 정보와 매칭되는 경우에 상기 지문 정보를 기초로 고유 값(UNQV)을 생성할 수 있다. 지문 인식 모듈은 생체 인증 성공 메시지(MSG) 및 고유 값(UNQV)을 메모리 컨트롤러(110)에 전송할 수 있다.
본 개시의 실시예에 따른 메모리 컨트롤러(110) 및 이를 포함하는 스토리지장치(100)는 생체 인식 모듈(300)로부터 생체 인증 결과뿐만 아니라, 사용자의 생체 정보에 따른 고유 값(UNQV)을 수신하고, 고유 값을 기초로 보안 키(KEY_SEC) 권한 인증을 수행할 수 있다. 다시 말해서 메모리 컨트롤러(110)는 생체 인식 모듈(300)로부터 수신되는 고유 값(UNQV)을 기초로 사용자 데이터의 암호화 및 복호화를 수행할 수 있다.
사용자의 생체 정보를 기초로 사용자 권한 설정 및 사용자 권한 인증을 수행함에 있어서, 메모리 컨트롤러(110)가 생체 인증을 수행하거나 또는 생체 정보를 저장 및 관리할 경우, 메모리 컨트롤러(110)의 부담(load)이 가중될 수 있다. 그러나, 전술한 바와 같이 본 개시의 실시예에 따른 스토리지 시스템(10)은 생체 인식 모듈(300)이 생체 정보를 저장 및 관리하고, 다만 메모리 컨트롤러(110)가 생체 정보를 기초로 사용자 권한 설정 및 사용자 권한 인증을 수행할 수 있도록 생체 정보에 따른 고유 값(UNQV)을 생성하여 메모리 컨트롤러(110)에 제공할 수 있다. 이에 따라, 메모리 컨트롤러(110)는 부담이 감소할 수 있으면서도 사용자 데이터를 안전하게 저장 및 관리할 수 있다.
도 2a 및 도 2b는 본 개시의 실시예에 따른 메모리 컨트롤러 및 생체 인식 모듈의 동작 방법을 나타내는 흐름도이다. 도 2a는 생체 정보 등록 단계의 동작 방법을 나타내고, 도 2b는 생체 정보를 기초한 사용자 권한 인증 단계의 동작 방법을 나타낸다. 도 2a 및 도 2b는 메모리 컨트롤러가 탑재되는 스토리지 장치, 예컨대 도 1의 스토리지 장치(110)가 호스트, 예컨대 도 1의 호스트(200)와 물리적으로 연결된 상태에서 수행될 수 있다.
도 2a를 참조하면, 메모리 컨트롤러(110)는 생체 정보 등록 트리거 신호를 생체 인식 모듈(300)에 전송할 수 있다(S111). 실시예에 있어서, 메모리 컨트롤러(110)는 호스트(도 1의 200)로부터의 요청(예컨대, 생체 정보 등록 요청 커맨드)에 따라서 생체 정보 등록 트리거 신호를 생체 인식 모듈(300)에 전송할 수 있다.
생체 인식 모듈(300)은 생체 데이터를 획득할 수 있다(S121). 생체 인식 모듈(300)은 사용자의 생체를 센싱하여 생체 데이터를 획득할 수 있다. 예컨대 생체 인식 모듈(300)이 지문 인식 모듈일 경우, 지문 인식 모듈은 사용자의 손가락의 지문을 센싱하고, 지문 이미지를 획득할 수 있다.
생체 인식 모듈(300)은 생체 데이터를 생체 정보로 변환하고 생체 정보를 저장할 수 있다(S122). 예컨대 지문 인식 모듈은 지문 이미지를 미리 설정된 데이터 포맷에 기초하여 지문 정보로 변환할 수 있다. 예를 들어, 지문 정보는 사용자의 지문에 대한 특징을 포함할 수 있다. 지문 정보는 지문의 특징점들 간의 거리 또는 특징점들의 위치 등에 대한 정보, 또는 지문의 융과 골 간의 거리, 융 또는 골의 연장 방향 등을 포함할 수 있다. 그러나, 이에 제한되는 것은 아니며, 지문 이미지가 그대로 지문 정보로서 저장될 수도 있다.
생체 인식 모듈(300)은 생체 정보를 기초로 고유 값을 생성할 수 있다(S123). 예컨대 지문 인식 모듈은 사용자의 지문 정보를 기초로 사용자를 나타내는 고유 값을 생성할 수 있다.
이후, 생체 인식 모듈(300)은 생체 정보 등록 메시지 및 고유 값을 메모리 컨트롤러(110)에 전송할 수 있다(S124).
메모리 컨트롤러(110)는 생체 정보 등록 메시지가 수신되면, 함께 수신된 고유 값을 기초로 보안 키를 암호화하고, 암호화된 보안 키를 저장할 수 있다(S112). 다시 말해서, 메모리 컨트롤러(110)는 고유 값을 기초로 사용자 권한 설정을 수행할 수 있다. 메모리 컨트롤러(110)는 고유 값을 사용자의 권한에 대한 증명 값(credential value)(예컨대, 사용자 패스워드)으로서 설정할 수 있다. 메모리 컨트롤러(110)는 고유 값을 기초로 보안 키를 암호화하고, 암호화된 보안 키를 메모리 컨트롤러(110) 내부에 구비되는 비휘발성 메모리에 저장할 수 있다.
암호화된 보안 키가 저장되면, 메모리 컨트롤러(110)는 비휘발성 메모리 장치(도 1의 120)를 락 상태로 설정할 수 있다(S113). 비휘발성 메모리 장치(120)는 암호화된 사용자 데이터가 저장되는 보안 영역 및 비보안 영역(예컨대 미리 설정된 특정 영역(reserved area))을 포함할 수 있으며, 비휘발성 메모리 장치(120)가 락 상태일 때, 보안 영역에 대한 엑세스, 즉 보안 영역에 대한 기록 및/또는 독출이 제한될 수 있다. 그러나, 비보안 영역에 대한 엑세스는 제한되지 않을 수 있다. 예컨대, 호스트(200)는 비보안 영역에 저장된 데이터를 독출할 수 있다. 메모리 컨트롤러(110)는 사용자 권한 인증이 수행될 때까지 비휘발성 메모리 장치(120)를 락 상태로 유지할 수 있다.
도 2b를 참조하면, 메모리 컨트롤러(110)는 생체 인식 모듈(300)에 생체 인증 트리거 신호를 전송할 수 있다(S211). 실시예에 있어서, 메모리 컨트롤러(110)는 호스트(200) 또는 다른 호스트와 전기적으로 연결되거나 또는 호스트(200)와의 통신이 재연결(relink)되면 생체 인식 모듈(300)에 생체 인증 트리거 신호를 전송할 수 있다. 또는 메모리 컨트롤러(110)는 호스트(200)로의 요청(예컨대 생체 인증 요청 커맨드)에 응답하여, 생체 인식 모듈(300)에 생체 인증 트리거 신호를 전송할 수 있다.
생체 인식 모듈(300)은 사용자의 생체를 센싱하여 생체 데이터를 획득하고(S212), 생체 데이터를 생체 정보로 변환할 수 있다(S213). 단계 S221 및 S222는 도 2a의 단계 S121 및 S122와 동일 또는 유사할 수 있다.
생체 인식 모듈(300)은 생체 정보가 내부에 저장된 생체 정보, 다시 말해서 도 2a의 단계 S122에서 저장된 생체 정보와 매칭되는지 여부를 판단할 수 있다(S223). 생체인증 모듈(300)은 생체 정보를 기 저장된 생체 정보와 비교함으로써, 생체 인증을 수행할 수 있다. 생체 인식 모듈(300)은 내부에 저장된 생체 정보가 다수일 경우, 다수의 생체 정보 중 현재 생성된 생체 정보와 매칭되는 생체 정보가 있는지 판단할 수 있다.
생체 정보가 저장된 생체 정보와 매칭되지 않는 경우, 생체 인식 모듈(300)은 생체 인증 실패 메시지를 메모리 컨트롤러(110)에 전송할 수 있다.
생체 정보가 저장된 생체 정보와 매치되는 경우, 생체 인식 모듈(300)은 생체 정보를 기초로 고유 값을 생성하고(S255), 생체 인증 성공 메시지 및 고유 값을 메모리 컨트롤러(110)에 전송할 수 있다(S226).
메모리 컨트롤러(110)는 생체 인증 실패 메시지를 수신하면 사용자 권한 인증 실패로 판단하고, 비휘발성 메모리 장치(120)의 락 상태를 유지할 수 있다(S212).
메모리 컨트롤러(110)는 생체 인증 성공 메시지가 수신되면, 고유 값을 기초로 보안 키를 복호화(S213)할 수 있다. 다시 말해서, 메모리 컨트롤러(110)는 도 2a의 S112 단계에서 고유 값을 기초로, 암호화된 보안 키를 현재 수신된 고유 값을 기초로 복호화할 수 있다.
메모리 컨트롤러(110)는 비휘발성 메모리 장치(120)를 언락 상태로 설정하고(S214), 보안 키를 기초로 사용자 데이터에 대하여 암호화 및/또는 복호화를 수행할 수 있다(S215). 다시 말해서, 메모리 컨트롤러(110)는 호스트(200)의 커맨드에 응답하여, 비휘발성 메모리 장치(120)의 보안 영역에 엑세스할 수 있다.
한편, 메모리 컨트롤러(110)는 스토리지 장치(100)와 호스트(200)의 연결이 해제되거나 또는 스토리지 장치(100)의 전원이 차단되면 상기 비휘발성 메모리 장치(120)를 락 상태로 설정할 수 있다.
도 3은 본 개시의 일 실시예에 따른 메모리 컨트롤러의 일 예를 나타내는 블록도이다.
도 3을 참조하면, 메모리 컨트롤러(110a)는 프로세서(11), 메모리(12), 보안 키 저장부(13), 호스트 인터페이스(14), 주변장치 인터페이스(15), 데이터 처리부(16) 및 비휘발성 메모리 인터페이스(17)(이하, NVM 인터페이스라고 함)를 포함할 수 있다. 실시예에 있어서, 메모리 컨트롤러(110a)의 구성들, 예컨대 로세서(11), 메모리(12), 보안 키 저장부(13), 호스트 인터페이스(14), 주변장치 인터페이스(15), 데이터 처리부(16) 및 NVM 인터페이스(17)는 시스템 버스(18)을 통해 서로 통신할 수 있다. 실시예에 있어서, 메모리 컨트롤러(110a)는 다른 구성들, 예컨대, ROM(Read Only Memory), 오류 정정 회로, 버퍼 등을 더 포함할 수 있다.
프로세서(11)는 중앙 처리 장치(CPU)나 마이크로 프로세서 등을 포함할 수 있으며, 메모리 컨트롤러(110a)의 전반적인 동작을 제어할 수 있다. 일 실시예에서, 프로세서(110)는 멀티 코어 프로세서로 구현될 수 있고, 예를 들어, 듀얼 코어 프로세서 또는 쿼드 코어(quad) 프로세서로 구현될 수 있다.
메모리(12)는 DRAM, SRAM 과 같은 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있으며, 메모리(12)에는 펌웨어(FW)가 로딩될 수 있다. 펌웨어(FW)는 도 2a 및 도 2b를 참조하여 설명한 메모리 컨트롤러(110)의 동작 알고리즘, 예컨대 보안 키 관리 알고리즘이 구현된 프로그램 코드를 포함할 수 있다. 펌웨어(FW)는 메모리 컨트롤러(110a)의 내부 또는 외부에 배치된 비휘발성 메모리, 예컨대, ROM, EEPROM, PRMA, 플래시 메모리 등에 저장되거나 또는 비휘발성 메모리 장치(120)에 저장되고, 스토리지 장치(도 1의 100)가 파워-온되면, 메모리(12)에 로딩될 수 있다.
프로세서(11)와 펌웨어(12)의 조합은 도 1의 보안 키 관리부(112)로서 구현될 수 있다. 예컨대, 프로세서(11)가 펌웨어(12)를 실행함으로써, 도 1을 참조하여 설명한 보안 키 제어부(112)의 기능이 수행될 수 있다. 프로세서(11)는 보안 키 관리 알고리즘에 기초하여 생체 인식 모듈(300)로부터 수신되는 고유 값을 기초로 보안 키를 암호화하여 보안 키 저장부(13)에 저장하거나 또는 고유 값을 기초로 보안 키를 복호할 수 있다. 그러나, 이에 제한되는 것은 아니며, 보안 키 관리부(112)는 하드웨어 모듈로 구현되거나 또는 소프트웨어로 구현될 수 있다.
보안 키 저장부(13)는 암호화된 보안 키를 저장할 수 있다. 복수의 고유 값들 각각에 기초하여 암호화된 복수의 암호화된 보안 키를 저장할 수도 있다. 보안 키 저장부(13)는 레지스터, PRAM, 플래시 메모리와 같은 비휘발성 메모리로 구현될 수 있다.
호스트 인터페이스(14)는 호스트(200)와 메모리 컨트롤러(110a) 사이의 인터페이스를 제공할 수 있고, 예를 들어, 호스트 인터페이스(14)는 USB(Universal Serial Bus), MMC, PCI-E(PCIExpress), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등에 따른 인터페이스를 제공할 수 있다.
주변장치 인터페이스(15)는 메모리 컨트롤러(110a)와 생체 인증모듈(300) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 주변장치 인터페이스(15)는UART(Universal Asynchronous Receiver Transmitter) 인터페이스, I2C(inter integrated circuit) 인터페이스, SPI(serial peripheral interface), MIPI(Mobile industry processor interface), eDP(embedded display port) 인터페이스 등과 같은 통신 인터페이스를 제공할 수 있다.
주변장치 인터페이스(15)는 생체 인식 모듈(300)에 생체 정보 트리거 신호 또는 생체 인증 트리거 신호를 전송할 수 있다. 또한, 주변장치 인터페이스(15)는 생체 인식 모듈(300)로부터 생체 인증 메시지 및 고유 값을 수신할 수 있다. 예컨대 생체 정보 등록 메시지 또는 생체 인증 결과(생체 인증 실패 또는 생체 인증 성공) 메시지가 생체 인증 메시지로서 수신될 수 있다.
데이터 처리부(16)는 사용자 데이터에 대하여 암호화 또는 복호화를 수행할 수 있다. 도 1을 참조하여 설명한 데이터 처리부(110)가 도 3의 데이터 처리부(16)에 적용될 수 있다. 데이터 처리부(16)는 보안 키를 기초로 사용자 데이터에 대하여 암호화 또는 복호화를 수행할 수 있다. 데이터 처리부(16)는 호스트(200)로부터 수신된 사용자 데이터에 대하여 보안 키를 기초로 암호화를 수행할 수 있다. 예컨대, 데이터 처리부(16)는 보안 키를 기초로 사용자 데이터를 스크램블링할 수 있다. 암호화된 사용자 데이터는 비휘발성 메모리 장치(120)에 전송되어 비휘발성 메모리 장치(120)에 저장될 수 있다. 데이터 처리부(16)는 비휘발성 메모리 장치(120)로부터 독출된 암호화된 사용자 데이터 대하여 보안 키를 기초로 복호화를 수행할 수 있다. 예컨대, 데이터 처리부(16)는 보안 키를 기초로 암호화된 사용자 데이터에 대하여 디스크램블링할 수 있다. 복호화된 사용자 데이터는 호스트(200)로 전송될 수 있다.
NVM 인터페이스(17)는 메모리 컨트롤러(110a)와 비휘발성 메모리 장치(120) 사이의 인터페이스를 제공할 수 있다. 암호화된 사용자 데이터가 비휘발성 메모리 인터페이스(17)를 통해 메모리 컨트롤러(110a)와 비휘발성 메모리 장치(120) 사이에서 송수신될 수 있다. 일 실시예에서, NVM 인터페이스(17)의 개수는 스토리지 장치(10)에 포함된 비휘발성 메모리 칩의 개수 또는 메모리 컨트롤러(100a)와 비휘발성 메모리 장치(120) 사이의 채널들의 개수에 대응할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 생체 인식 모듈의 일 예를 나타내는 흐름도이다.
도 4를 참조하면 생체 인식 모듈(300a)은 센서(310), 컨트롤러(320), 저장부(330) 및 인터페이스(34)를 포함할 수 있다.
센서(310)는 사용자의 생체를 센싱하여 생체 데이터를 획득할 수 있다. 예컨대 센서(310)가 지문 센서로 구현될 경우, 지문 센서는 사용자의 손가락 지문을 센싱하여 지문 이미지를 생성(또는 획득)할 수 있다.
컨트롤러(320)는 생체 정보(AUIF)를 생성, 저장 및 관리하고, 또한 생체 인증을 수행할 수 있다. 컨트롤러(330)는 생체 데이터를 설정된 데이터 포맷에 기초한 템플릿 데이터, 즉 생체 정보(AUIF)로 변환할 수 있다. 생체 정보 등록 단계에서, 컨트롤러(320)는 생체 정보(AUIF)를 저장부(330)에 저장할 수 있다. 저장부(330)는 비휘발성 메모리로 구현될 수 있으며, 생체 인식 모듈(300a)에 인가되는 전원이 차단되어도 생체 정보(AUIF)를 유지할 수 있다. 복수의 사용자에 대하여 생체 정보 등록이 수행된 경우, 저장부(330)는 복수의 생체 정보(AUIF)를 저장할 수 있다.
생체 인증 수행 시, 컨트롤러(320)는 사용자의 생체를 센싱함으로서 획득된 생체 정보(현재 생체 정보라고 함)를 저장부(330)에 저장된 생체 정보와 비교하여 매칭여부를 판단할 수 있다. 저장부(330)에 저장된 생체 정보(AUIF) 중 하나와 현재 생체 정보가 매칭될 경우, 컨트롤러(320)는 생체 인증이 성공하였다고 판단할 수 있다.
컨트롤러(320)는 또한, 생체 정보를 기초로 고유 값(UNQV)을 생성할 수 있다. 예컨대 컨트롤러(320)는 생체 정보(AUIF)를 인코딩하여 고유 값(UNQV)을 생성할 수 있다. 고유 값(UNQV)은 생체 인식 모듈(300a) 및 메모리 컨트롤러(110)가 상호 인식할 수 있는 데이터 포맷을 가지며, 예컨대 고유 값(UNQV)은 수십 바이트(byte)(예컨대 32 byte)의 해쉬 데이터를 포함할 수 있다.
컨트롤러(320)는 생체 정보 등록 단계에서, 저장부(330)에 저장되는 생체 정보, 예컨대 등록된 생체 정보를 기초로 고유 값(UNQV)을 생성할 수 있다. 컨트롤러(320)는 생체 정보 등록을 나타내는 메시지(MSG), 및 등록된 생체 정보에 기초하여 생성되는 고유값(UNQV)을 인터페이스(340)를 통해 메모리 컨트롤러(110)로 전송할 수 있다.
컨트롤러(320)는 생체 인증 단계에서, 센서(310)로부터 수신된 생체 데이터에 기초하여 획득되는 생체 정보가 저장부(330)에 저장된 등록 생체 정보와 매칭될 경우, 획득된 생체 정보를 기초로 고유 값(UNQV)을 생성할 수 있다. 컨트롤러(320)는 생체 인증 성공을 나타내는 메시지(MSG), 및 획득된 생체 정보에 기초하여 생성되는 고유 값(UNQV)을 인터페이스(340)를 통해 메모리 컨트롤러(110)로 전송할 수 있다. 실시예에 있어서, 복수의 생체 정보(AUIF)가 등록될 경우, 예컨대 복수의 사용자의 지문을 기초로 생성되거나 또는 사용자의 여러 손가락의 지문들을 기초로 생성되는 복수의 지문 정보가 저장부(330)에 저장될 경우, 컨트롤러(320)는 복수의 생체 정보(AUIF) 중 고유 값(UNQV)이 나타내는 생체 정보(AUIF)(또는 생체 정보의 대상)에 대한 인덱스(IDX)를 포함하는 메시지(MSG)를 고유 값(UNQV)과 함께 메모리 컨트롤러(110)로 전송할 수 있다. 예컨대, 생체 정보 등록 단계에서, 컨트롤러(320)는 생체 정보 등록 신호 및 고유 값(UNQV)의 대상 생체 정보(AUIF)(예컨대 등록된 생체 정보)를 나타내는 인덱스(IDX)를 포함하는 메시지(MSG)를 생성하고, 고유 값(UNQV) 과 메시지(MSG)를 메모리 컨트롤러(110)로 전송할 수 있다. 또한, 생체 인증 단계에서, 컨트롤러(320)는 기 등록된 복수의 생체 정보(AUIF) 중 획득된 생체 정보와 매칭되는 생체 정보(AUIF)를 나타내는 인덱스(IDX) 및 생체 인증 성공 신호를 포함하는 메시지(MSG)를 고유값(UNQV)과 함께 메모리 컨트롤러(110)로 전송할 수 있다.
생체 인식 모듈(300a)에서 복수의 생체 정보(AUIF)가 등록되는 경우, 복수의 생체 정보(AUIF)에 기초한 복수의 고유 값(UNQV)이 메모리 컨트롤러(110)로 전송되며, 메모리 컨트롤러(110)는 복수의 고유 값(UNQV) 각각을 기초로 생성되는 복수의 암호화된 보안 키를 저장할 수 있다. 이 때, 메모리 컨트롤러(110)는 생체 인식 모듈(300a)로부터 수신되는 인덱스(IDX)를 기초로 복수의 암호화된 보안 키 중 인덱스와 함께 수신된 고유 값(UNQV)에 대응하는 암호화된 보안 키를 구별할 수 있다.
한편, 컨트롤러(320)는 MCU(Micro Controller Unit), CPU 등의 프로세서와 펌웨어의 조합 또는 FPGA(Field Programmable Gate Array), ASIC (Application Specific IC), CPLD (Complex Programmable Logic Device) 등과 같은 하드웨어 로직으로 구현될 수 있다.
인터페이스(340)는 메모리 컨트롤러(110)로부터 트리거 신호, 예컨대 생체 정보 등록 트리거 신호 또는 생체 인증 트리거 신호를 수신하고, 메모리 컨트롤러(110)로부터 생체 인증 메시지(MSG) 및 고유 값(UNQV)을 전송할 수 있다. 예를 들어, 인터페이스(340)는UART(Universal Asynchronous Receiver Transmitter) 인터페이스, I2C(inter integrated circuit) 인터페이스, SPI(serial peripheral interface), MIPI(Mobile industry processor interface), eDP(embedded display port) 인터페이스 등과 같은 통신 인터페이스를 제공할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 동작 방법을 나타내는 흐름도이고, 도 6은 비휘발성 메모리 장치를 나타내는 블록도이다. 도 5의 동작 방법은 도 1의 스토리지 시스템(10)에서 수행될 수 있다. 따라서, 도 1을 함께 참조하여 설명하기로 한다.
도 1 및 도 5를 참조하면, 호스트(200)와 스토리지 장치(100)가 연결될 수 있다(S10). 호스트(200)와 스토리지 장치(100)가 물리적으로 연결될 수 있다. 예를 들어 호스트(200) 와 스토리지 장치(100)는 통신 케이블을 통해 전기적으로 연결될 수 있으며, 호스트(200)는 전력 라인을 통해 스토리지 장치(100)로 전력을 공급할 수 있다.
호스트(200)가 비휘발성 메모리 장치(120)의 비보안 영역을 엑세스할 수 있다(S20). 도 6을 참조하면, 비휘발성 메모리 장치(120)는 보안 영역(SA) 및 비보안 영역(NSA)을 포함할 수 있다. 비보안 영역(NSA)은 미리 설정된 특정 영역으로서 예컨대 리저브드 영역으로 지칭될 수 있다. 보안 영역(SA)은 암호화된 사용자 데이터가 저장되는 영역으로서 사용자 영역으로 지칭될 수 있으며 복수의 사용자 영역, 예컨대 제1 내지 제3 영역(A1, A2, A3)(예컨대 복수의 파티션 또는 볼륨)으로 구분될 수 있다.
비보안 영역(NSA)은 사용자 권한에 관계없이 호스트(200)가 엑세스할 수 있으며, 보안 영역(SA)은 사용자 권한 인증이 성공하면 호스트(200)가 엑세스할 수 있다. 스토리지 장치(100)가 호스트(200)와 연결된 초기 상태에 사용자 권한 인증이 수행되지 아니한 바, 비휘발성 메모리 장치(120)는 락 상태일 수 있으며,
비보안 영역(NSA)에 저장된 SMBR(Shadow Master Boot Record)가 메모리 컨트롤러(110)로 로딩되고, SMBR에 포함된 정보를 기초로 호스트(200)는 비보안 영역(NSA)에 저장된 데이터를 독출할 수 있다. 예컨대 비보안 영역(NSA)에는 사용자 구성(user configuration)을 지원하는 소프트웨어가 저장될 수 있다. 실시예에 있어서, 소프트웨어는 자가 암호화 기능을 지원할 수 있다. 호스트(200)가 소프트웨어를 독출하여 실행함으로써, 호스트(200)와 스토리지 장치(100) 간에 사용자 구성이 수행될 수 있다.
사용자 구성에 따라, 사용자 권한 인증이 수행될 수 있다(S30). 도 2b를 참조하여 설명한 바와 같이, 생체 인식 모듈(300)은 메모리 컨트롤러(100)로부터 수신되는 생체 인증 트리거 신호에 응답하여 생체 인증을 수행할 수 있다(S31). 생체 인식 모듈(300)은 생체 인증 결과 및 고유 값(UNQV)을 메모리 컨트롤러(100)로 전송할 수 있다(S32). 생체 인식 모듈(300)은 생체 인증이 성공하면, 고유 값(UNQV)을 생성하고, 생체 인증 성공 메시지 및 고유 값(UNQV)을 메모리 컨트롤러(100)로 전송할 수 있다.
메모리 컨트롤러(110)는 생체 인증 성공 메시지가 수신되면, 함께 수신되는 고유 값(UNQV)을 기초로 보안 키에 대한 엑세스 권한을 획득할 수 있다(S33). 예컨대, 메모리 컨트롤러(110)는 암호화된 보안 키를 고유 값(UNQV)을 기초로 복호화할 수 있다. 또한, 메모리 컨트롤러(110)는 비휘발성 메모리 장치(120)를 언락 상태로 설정할 수 있다.
비휘발성 메모리 장치(120)가 언락 상태가 되면, 비휘발성 메모리 장치(120)에서 호스트(200)가 인식할 수 있는 영역들이 변경될 수 있다. 예컨대 보안 영역(SA)에 저장된 MBR(Master Boot Record)이 메모리 컨트롤러(110)에 로딩될 수 있으며, MBR은 보안 영역(SA)의 복수의 사용자 영역(A1, A2 및 A3)에 대한 정보(예컨대 파티션 정보)를 포함할 수 있다.
호스트(200)와 스토리리 장치(100)가 재연결(relink)될 수 있으며(S40). 호스트(200)는 인식되는 비휘발성 메모리 장치(120)의 보안 영역(SA)을 엑세스할 수 있다(S50). 다시 말해서, 호스트(200)는 사용자 권한 인증이 수행된 보안 영역에 대하여 기록 및/또는 독출을 요청하는 커맨드를 메모리 컨트롤러(110)에 전송하고, 메모리 컨트롤러(110)는 상기 영역들에 저장될 데이터를 보안 키를 기초로 암호화하여 저장하고, 상기 영역들로부터 독출되는 사용자 데이터에 대하여 보안 키를 기초로 복호화를 수행하여, 복호화된 사용자 데이터를 호스트(200)에 전송할 수 있다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예를 설명하는 도면이다. 도 7a 및 도 7b는 복수의 사용자 각각(또는 생체 인증 모듈(300)에 등록된 생체 정보 각각)에 대하여 비휘발성 메모리 장치(120)에 대한 사용자 권한이 설정될 경우, 사용자 권한 인증 수행에 따른 비휘발성 메모리 장치(120)의 각 영역들의 상태를 나타낸다.
도 7a를 참조하면, 제1 내지 제3 사용자(또는 제1 내지 제3 생체 정보)에 대하여 생체 정보 등록이 수행될 수 있으며, 생체 인식 모듈(300)은 제1 사용자에 대한 제1 고유 값(UNQV1), 제2 사용자에 대한 제2 고유 값(UNQV2) 및 제3 사용자에 대한 제3 고유 값(UNQV3)을 생성하고, 제1 내지 제3 고유 값(UNQV1, UNQV2, UNQV3) 각각을 메모리 컨트롤러(110)에 전송할 수 있다. 제1 내지 제3 사용자에 대하여 생체 정보 등록은 동시에 수행되는 것은 아니며, 스토리지 장치(100a)로 부터의 권한 등록 요청 또는 권한 추가 요청을 나타내는 커맨드가 수신됨에 따라 수행될 수 있다.
메모리 컨트롤러(110)는 제1 내지 제3 고유 값(UNQV1, UNQV2, UNQV3) 각각을 기초로 제1 내지 제3 사용자에 대한 사용자 권한(또는 엑세스 권한이라고 함)을 설정할 수 있다. 설명의 편의를 위하여, 제1 사용자(U1), 제2 사용자(U2) 및 제3 사용자(U3)는 제1 영역(A1), 제2 영역(A2) 및 제3 영역(A3) 각각에 대하여 사용자 권한을 가지는 것으로 가정하기로 한다.
그러나, 본 개시의 기술적 사상은 이에 제한되는 것은 아니며, 제1 사용자가 제1 내지 제3 영역(A1, A2, A3)에 대하여 사용자 권한을 갖고, 제2 사용자는 제2 영역(A2)에 대하여 사용자 권한을 갖고, 제3 사용자(U3)는 제3 영역(A3)에 대하여 사용자 권한을 가지거나, 또는 제1 사용자 및 제2 사용자가 비휘발성 메모리 장치(120)의 보안 영역(SA)에 대하여 사용자 권한을 가질 수 있고, 이 때, 제1 사용자는 제1 및 제2 영역(A1, A2)에 대하여, 제2 사용자는 제2 및 제3 영역(A2, A3)에 대하여 사용자 권한을 가질 수 있다. 이와 같이 복수의 사용자들 각각에 대한 비휘발성 메모리 장치(120)의 복수의 영역들에 대한 사용자 권한은 가변될 수 있다.
보안 키 관리부(112)는 제1 사용자에 대한 제1 고유 값(UNQV1)이 수신되면, 제1 고유 값(UNQV1)을 기초로 보안 키(KEY_SEC)를 암호화하고, 제1 암호화된 보안 키(KEY_ENS1)를 보안 키 저장부(113)에 저장할 수 있다. 이와 유사하게, 보안 키 관리부(112)는 제2 사용자에 대한 제2 고유 값(UNQV2) 및 제3 사용자에 대한 제3 고유 값(UNQV3)이 수신되면, 제2 고유 값(UNQV2) 및 제3 고유 값(UNQV3) 각각을 기초로 보안 키(KEY_SEC)를 암호화하고, 암호화에 따라 생성되는 제2 암호화된 보안 키(KEY_ENS2) 및 제3 암호화된 보안 키(KEY_ENS3)를 보안 키 저장부(113)에 저장할 수 있다. 제1 내지 제3 영역(A1, A2, A3)은 락 상태로 설정될 수 있다. 도 7b를 참조하면, 생체 인식 모듈(300)로부터 생체 인증 성공 메시지(MSG) 및 제2 고유 값(UNQV2)이 수신되면, 메모리 컨트롤러(110)는 제2 사용자의 사용자 권한에 따라 제2 영역(A2)을 언락 상태로 변경하고, 제2 고유 값(UNQV2)을 기초로 제2 암호화된 보안 키(KEY_ENS2)를 복호할 수 있다. 호스트(도 1의 200)는 제2 영역(A2)에 엑세스할 수 있다. 데이터 프로세싱부(111)는 호스트(200)로부터의 커맨드에 기초하여, 제2 영역(A2)에 기록되거나 또는 제2 영역(A2)로부터 독출되는 사용자 데이터에 대하여 보안 키(KEY_SEC)를 기초로 암호화 또는 복호화를 수행할 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 스토리지 장치의 동작 방법의 일 예를 설명하는 도면이다.
도 8을 참조하면, 제1 사용자 및 제2 사용자(또는 제1 생체 정보 및 제3 생체 정보)에 대하여 생체 정보 등록이 수행될 수 있으며, 생체 인식 모듈(300)은 제1 사용자에 대한 제1 고유 값(UNQV1) 및 제2 사용자에 대한 제2 고유 값(UNQV2)을 생성하고, 제1 고유 값(UNQV1) 및 제2 고유 값(UNQV2) 각각을 메모리 컨트롤러(110)에 전송할 수 있다.
메모리 컨트롤러(110)는 제1 고유 값(UNQV1) 및 제2 고유 값(UNQV2) 각각을 을 기초로 사용자 권한(또는 엑세스 권한이라고 함)을 설정할 수 있다. 실시예에 있어서, 비휘발성 메모리 장치(120)의 보안 영역(SA)은 제1 영역(A1) 및 제2 영역(A2)을 포함하고, 제1 영역(A1) 및 제2 영역(A2)은 각각 제1 보안 키(KEY_SEC1) 및 (KEY_SEC2)에 대응할 수 있다. 다시 말해서, 데이터 처리부(111)는 제1 영역(A1)의 데이터에 대하여 제1 보안 키(KEY_SEC1)를 기초로 암호화 및 복호화를 수행하고 제2 영역(A2)의 데이터에 대하여 제2 보안 키(KEY_SEC2)를 기초로 암호화 및 복호화를 수행할 수 있다. 또한, 제1 사용자가 제1 영역(A1)에 대하여 사용자 권한을 갖고, 제2 사용자가 제2 영역(A2)에 대하여 사용자 권한을 가질 수 있다.
보안 키 관리부(112)는 제1 고유 값(UNQV1)이 수신되면, 제1 고유 값(UNQV1)을 기초로 제1 보안 키(KEY_SEC1)를 암호화하고, 제1 암호화된 보안 키(KEY_ENS1)를 보안 키 저장부(113)에 저장할 수 있다. 이와 유사하게, 보안 키 관리부(112)는 제2 사용자에 대한 제2 고유 값(UNQV2)이 수신되면, 제2 고유 값(UNQV2)을 기초로 제2 보안 키(KEY_SEC2)를 암호화하고, 제2 암호화된 보안 키(KEY_ENS2)를 보안 키 저장부(113)에 저장할 수 있다. 제1 영역(A1) 및 제2 영역(A2)은 락 상태로 설정될 수 있다. 이후, 사용자 권한 인증 단계에서, 제1 고유 값(UNQV1)이 수신되면 제1 고유 값(UNQV1)을 기초로 제1 암호화된 보안 키(KEY_ENS1)가 복호화됨으로써, 제1 영역(A1)이 언락 상태로 설정되고, 제2 고유 값(UNQV2)이 수신되면 제2 고유 값(UNQV2)을 기초로 제2 암호화된 보안 키(KEY_ENS2)가 복호화됨으로써, 제2 영역(A2)이 언락 상태로 설정될 수 있다.
도 9a, 도 9b 및 도 9c는 본 개시의 예시적 실시예들에 따른 스토리지 시스템을 나타내는 블록도이다.
도 9a를 참조하면, 스토리지 시스템(10b)는 호스트(200b) 및 스토리지 장치(100b)를 포함할 수 있다. 도 9b에서, 생체 인식 모듈(300)은 스토리지 장치(100b) 내에 구비될 수 있다. 생체 인식 모듈(300)은 스토리지 장치(100b) 내부에서 메모리 컨트롤러(110)와 통신할 수 있다. 전술한 바와 같이, 생체 인식 모듈(300)은 사용자 생체 데이터를 센싱하고, 사용자에 대한 고유 값 및 생체 인증 메시지를 메모리 컨트롤러(110)에 전송할 수 있다. 메모리 컨트롤러(110)는 생체 인식 모듈(300)로부터 수신되는 고유 값을 기초로 사용자 데이터에 대하여 암호화 또는 복호화를 수행할 수 있다.
도 9b를 참조하면, 스토리지 장치(10c)는 호스트(200c), 스토리지 장치(100c) 및 생체 인식 모듈(300c)을 포함할 수 있다. 생체 인식 모듈(300c)은 호스트(200c)를 통해 스토리지 장치(100c)와 통신할 수 있다. 생체 인식 모듈(300)은 생체 인증 메시지 및 고유 값을 호스트(200c)를 통해 스토리지 장치(100c에 전송할 수 있다. 실시예에 있어서, 생체 인식 모듈(300c)은 호스트(200c)의 일부로서 구현될 수 있다.
도 9c를 참조하면, 스토리지 시스템(10d)는 호스트(200d), 스토리지 장치(100d) 및 생체 인식 모듈(300d)을 포함하고, 생체 인식 모듈(300d)은 스토리지 장치(100d)와 직접 통신하고, 호스트(200d)는 생체 인식 모듈(300d)을 통해 스토리지 장치(100d)와 통신할 수 있다. 예컨대 생체 인식 모듈(300d)은 리피터(repeater)로서 동작할 수 있다.
도 10은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타낸다.
도 10을 참조하면, 컴퓨팅 시스템(1000)은 메모리 시스템(1100), 프로세서(1200), RAM(1300), 입출력 장치(1400), 전원 장치(1500), 및 생체 인식 모듈(1600)을 포함할 수 있다. 한편, 도 10에는 도시되지 않았지만, 컴퓨팅 시스템(1000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다. 컴퓨팅 시스템(1000)은 퍼스널 컴퓨터로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(personal digital assistant) 및 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
프로세서(1200)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 실시예에 따라, 프로세서(1200)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일수 있다. 프로세서(1200)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 버스(1700)를 통하여 RAM(1300), 입출력 장치(1400) 및 메모리 시스템(1100)과 통신을 수행할 수 있다. 프로세서(1200)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다.
메모리 시스템(1100) 및 생체 인식 모듈(1600)은 도 1 내지 도 9c에 예시된 스토리지 장치 및 생체 인식 모듈을 이용하여 구현될 수 있다. 메모리 시스템(1100)은 자가 암호화를 지원하는 스토리지 장치일 수 있으며, 생체 인식 모듈(1600)로부터 수신되는 고유 값을 기초로 사용자 데이터에 암호화 및/또는 복호화를 수행할 수 있다.
RAM(1300)은 컴퓨팅 시스템(1000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, RAM(1300)은 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. 입출력 장치(1400)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 전원 장치(1500)는 컴퓨팅 시스템(1000)의 동작에 필요한 동작 전압을 공급할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
도 11을 참조하면, SSD 시스템(2000)은 호스트(2100), SSD(2200) 및 생체 인식 모듈(2300)을 포함할 수 있다. 실시예에 있어서, 생체 인식 모듈(2300)은 SSD(2200) 내에 탑재될 수 있다.
SSD(2200)는 신호 커넥터(SC)를 통해 호스트(1100)와 신호(SGL)를 주고 받으며, 전원 커넥터(PC)를 통해 호스트(2100)로부터 전원(PWR)을 입력받을 수 있다.
SSD(2200)는 SSD 컨트롤러(2210), 및 복수의 비휘발성 메모리 장치들(2220, 2230, 2240)를 포함할 수 있다. 도 1 내지 도 9c의 스토리지 장치(100, 100a, 100b, 100c, 100d)가 SSD(2200)에 적용될 수 있다. SSD 컨트롤러(2210)는 복수의 채널(CH1, CH2, CHn)을 통해 메모리 장치들(2220, 2230, 2240)과 통신할 수 있다. SSD 컨트롤러(2210)는 생체 인식 모듈(2300)로부터 수신되는 사용자의 생체 정보에 따른 고유 값을 기초로 메모리 장치들(2220, 2230, 2240)에 기록될 사용자 데이터에 대하여 암호화를 수행하고, 또한 메모리 장치들(2220, 2230, 2240)로부터 독출되는 사용자 데이터에 대하여 복호화를 수행할 수 있다.
전술한 본 개시의 실시예에 따른 스토리지 시스템은 SSD 시스템(2000)뿐만 아니라, 메모리 카드 시스템, 컴퓨팅 시스템, UFS 등에 탑재되거나 적용될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 비휘발성 메모리 장치를 제어하는 메모리 컨트롤러에 있어서,
    외부 장치로부터 수신되는 생체 인증 메시지 및 고유 값을 기초로 보안 키 엑세스 권한을 제어하는 키 관리부; 및
    상기 보안 키를 기초로 호스트로부터 수신되어 상기 비휘발성 메모리의 보안 영역에 저장될 데이터를 암호화하고, 상기 비휘발성 메모리의 보안 영역에 저장된 암호화된 데이터를 복호화하는 데이터 처리부를 포함하는 메모리 컨트롤러.
  2. 제1 항에 있어서, 상기 키 관리부는,
    사용자 생체 정보 등록 단계에서, 상기 외부 장치로부터 수신되는 상기 고유 값을 기초로 상기 보안 키를 암호화하여 암호화된 보안 키를 생성하고,
    사용자 권한 인증 단계에서, 상기 생체 인증 메시지가 생체 인증 성공을 나타내면 상기 고유 값을 기초로 상기 보안 키에 대한 엑세스 권한을 인증함으로써 상기 암호화된 보안 키를 복호화하는 것을 특징으로 하는 메모리 컨트롤러.
  3. 제1 항에 있어서,
    복수의 암호화된 보안 키가 보안 키 저장부에 저장되며, 상기 외부 장치로부터 수신되는 상기 생체 인증 메시지는 상기 복수의 암호화된 보안 키 중 하나를 나타내는 인덱스를 포함하는 것을 특징으로 하는 메모리 컨트롤러.
  4. 제1 항에 있어서,
    복수의 암호화된 보안 키가 보안 키 저장부에 저장되며, 상기 복수의 암호화된 보안 키 각각은, 상기 고유 값 및 랜덤 값이 인코딩되어 생성되는 인코딩 값과 함께 상기 보안 키 저장부에 저장되고,
    사용자 권한 인증 단계에서, 상기 키 관리부는, 수신되는 상기 고유 값 및상기 랜덤 값을 인코딩하여 인증 인코딩 값을 생성하고, 상기 인증 인코딩 값을 상기 보안 키 저장부에 저장된 인코딩 값과 비교함으로써, 상기 복수의 암호화된 보안 키 중 상기 고유 값에 대응하는 보안 키를 찾는 것을 특징으로 하는 메모리 컨트롤러.
  5. 제1 항에 있어서,
    상기 외부 장치와 통신하며, 상기 외부 장치로부터 상기 생체 인증 결과 및 상기 고유 값을 수신하는 제1 인터페이스; 및
    상기 호스트와 통신하며, 상기 호스트로부터 상기 데이터 및 커맨드를 수신하고, 상기 호스트로 복호화된 데이터를 전송하는 제2 인터페이스를 더 포함하는 메모리 컨트롤러.
  6. 제1 항에 있어서,
    상기 생체 인증 메시지 및 상기 고유 값은, 사용자의 생체를 센싱하여 상기 사용자의 생체 정보를 생성, 저장 및 관리하는 생체 인식 모듈로부터 수신되며,
    상기 고유 값은 사용자의 생체 정보에 따라 결정되는 특징으로 하는 메모리 컨트롤러.
  7. 제6 항에 있어서, 상기 생체 인식 모듈은,
    지문 센서; 및
    상기 지문 센서로부터 획득된 지문 데이터를 지문 정보로 변경하고, 변경된 지문 정보를 저장 및 관리하는 프로세서를 구비하는 것을 특징으로 하는 메모리 컨트롤러.
  8. 제1 항에 있어서, 상기 키 관리부는,
    복수의 고유 값을 수신하고, 상기 복수의 고유 값 각각을 기초로 상기 보안 키를 암호화하여 복수의 암호화된 보안 키를 생성하고 상기 복수의 암호화된 보안 키를 저장하는 것을 특징으로 하는 메모리 컨트롤러.
  9. 제8 항에 있어서, 상기 키 관리부는,
    생체 인증 성공 메시지 및 상기 복수의 고유 값 중 제1 고유 값이 수신되면, 상기 제1 고유 값을 기초로 상기 복수의 암호화된 보안 키 중 제1 암호화된 보안 키를 복호화하여 상기 보안 키를 복원하고,
    상기 데이터 처리부는, 상기 비휘발성 메모리 장치의 복수의 영역들 중 상기 보안 키를 기초로 상기 제1 고유 값이 나타내는 생체 정보가 엑세스 권한을 가지는 적어도 하나의 영역으로부터 독출되는 데이터에 대하여 상기 보안 키를 기초로 복호화를 수행하거나 상기 적어도 하나의 영역에 저장될 데이터에 대하여 상기 보안 키를 기초로 암호화를 수행하는 것을 특징으로 하는 메모리 컨트롤러.
  10. 제8 항에 있어서,
    상기 비휘발성 메모리는 제1 보안 영역 및 제2 보안 영역을 포함하고,
    상기 제1 보안 영역의 데이터는 제1 보안 키를 기초로 암호화 및 복호화가 수행되고, 상기 제2 보안 영역의 데이터는 제2 보안 키를 기초로 암호화 및 복호화가 수행되며, 제1 고유 값이 나타내는 제1 지문 정보가 상기 제1 보안 키에 대한 엑세스 권한을 갖고, 제2 고유 값이 나타내는 제2 지문 정보가 상기 제2 보안 키에 대한 엑세스 권한을 갖는 것을 특징으로 하는 메모리 컨트롤러.
KR1020190153549A 2019-11-26 2019-11-26 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 스토리지 장치, 및 메모리 컨트롤러의 동작 방법 KR20210064854A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190153549A KR20210064854A (ko) 2019-11-26 2019-11-26 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 스토리지 장치, 및 메모리 컨트롤러의 동작 방법
US17/036,386 US11681637B2 (en) 2019-11-26 2020-09-29 Memory controller, storage device including the same, and operating method of the memory controller
CN202011156305.3A CN112948793A (zh) 2019-11-26 2020-10-26 存储控制器、包括其的存储设备及存储控制器的操作方法
US18/314,330 US20230273884A1 (en) 2019-11-26 2023-05-09 Memory controller, storage device including the same, and operating method of the memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190153549A KR20210064854A (ko) 2019-11-26 2019-11-26 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 스토리지 장치, 및 메모리 컨트롤러의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210064854A true KR20210064854A (ko) 2021-06-03

Family

ID=75974851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190153549A KR20210064854A (ko) 2019-11-26 2019-11-26 메모리 컨트롤러, 메모리 컨트롤러를 포함하는 스토리지 장치, 및 메모리 컨트롤러의 동작 방법

Country Status (3)

Country Link
US (2) US11681637B2 (ko)
KR (1) KR20210064854A (ko)
CN (1) CN112948793A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102430219B1 (ko) * 2021-09-15 2022-08-05 삼성전자주식회사 스토리지 장치, 스토리지 장치의 키 생성 방법 및 스토리지 장치의 인증 방법
KR102482116B1 (ko) * 2021-11-08 2022-12-29 삼성전자주식회사 연산 스토리지 장치의 메모리 할당 및 보호 방법 및 이를 수행하는 연산 스토리지 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220052016A (ko) * 2020-10-20 2022-04-27 삼성전자주식회사 스토리지 장치에서의 보안 동작을 위한 키 교환 방법 및 이를 이용한 접근 권한 이관 방법
TWI796058B (zh) * 2021-12-23 2023-03-11 宇瞻科技股份有限公司 自動調整訊號之儲存裝置
US11856105B1 (en) * 2022-05-22 2023-12-26 Uab 360 It Secure multi-factor authentication system including identity verification of an authorized user
US11528144B1 (en) * 2022-06-09 2022-12-13 Uab 360 It Optimized access in a service environment

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995016238A1 (en) * 1993-12-06 1995-06-15 Telequip Corporation Secure computer memory card
JPH11187007A (ja) 1997-12-17 1999-07-09 Casio Comput Co Ltd 暗号化・復号化装置およびその方法
WO2001093002A2 (en) * 2000-05-30 2001-12-06 Dataplay, Incorporated Method of decrypting data stored on a storage device using an embedded encryption/decryption means
WO2003003295A1 (en) * 2001-06-28 2003-01-09 Trek 2000 International Ltd. A portable device having biometrics-based authentication capabilities
TW588243B (en) * 2002-07-31 2004-05-21 Trek 2000 Int Ltd System and method for authentication
US7478248B2 (en) * 2002-11-27 2009-01-13 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for securing data on a portable storage device
US8745409B2 (en) * 2002-12-18 2014-06-03 Sandisk Il Ltd. System and method for securing portable data
US7370166B1 (en) * 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US8438647B2 (en) * 2005-07-14 2013-05-07 Imation Corp. Recovery of encrypted data from a secure storage device
US20070239994A1 (en) * 2006-04-05 2007-10-11 Kulkarni Vinod K Bio-metric encryption key generator
US8001387B2 (en) * 2006-04-19 2011-08-16 Dphi, Inc. Removable storage medium with biometric access
US7962755B2 (en) * 2006-04-28 2011-06-14 Ceelox, Inc. System and method for biometrically secured, transparent encryption and decryption
US7818395B2 (en) * 2006-10-13 2010-10-19 Ceelox, Inc. Method and apparatus for interfacing with a restricted access computer system
EP2122900A4 (en) * 2007-01-22 2014-07-23 Spyrus Inc PORTABLE DATA ENCRYPTION DEVICE WITH CONFIGURABLE SAFETY FUNCTIONS AND METHOD FOR FILING ENCRYPTION
US20090210722A1 (en) * 2007-11-28 2009-08-20 Russo Anthony P System for and method of locking and unlocking a secret using a fingerprint
JP2009238156A (ja) 2008-03-28 2009-10-15 Nippon Telegr & Teleph Corp <Ntt> 認証装置、認証方法およびプログラム
JP2010226506A (ja) 2009-03-24 2010-10-07 Chugoku Electric Power Co Inc:The デジタルカメラ、記憶装置、デジタルカメラの制御方法およびプログラム
US20110246790A1 (en) * 2010-03-31 2011-10-06 Gainteam Holdings Limited Secured removable storage device
WO2011159918A2 (en) * 2010-06-16 2011-12-22 Vasco Data Security, Inc. Mass storage device memory encryption methods, systems, and apparatus
JP5859953B2 (ja) * 2010-09-30 2016-02-16 パナソニック株式会社 生体認証システム、通信端末装置、生体認証装置、および生体認証方法
US8683232B2 (en) * 2011-05-18 2014-03-25 Cpo Technologies Corporation Secure user/host authentication
US9141779B2 (en) * 2011-05-19 2015-09-22 Microsoft Technology Licensing, Llc Usable security of online password management with sensor-based authentication
US9639710B2 (en) * 2013-12-23 2017-05-02 Symantec Corporation Device-based PIN authentication process to protect encrypted data
TW201633198A (zh) * 2015-03-04 2016-09-16 映智科技股份有限公司 具有指紋辨識功能之儲存裝置
US10516533B2 (en) * 2016-02-05 2019-12-24 Mohammad Mannan Password triggered trusted encryption key deletion
US10560476B2 (en) * 2017-02-22 2020-02-11 International Business Machines Corporation Secure data storage system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102430219B1 (ko) * 2021-09-15 2022-08-05 삼성전자주식회사 스토리지 장치, 스토리지 장치의 키 생성 방법 및 스토리지 장치의 인증 방법
KR102482116B1 (ko) * 2021-11-08 2022-12-29 삼성전자주식회사 연산 스토리지 장치의 메모리 할당 및 보호 방법 및 이를 수행하는 연산 스토리지 장치
US12007884B2 (en) 2021-11-08 2024-06-11 Samsung Electronics Co., Ltd. Method of allocating and protecting memory in computational storage device, computational storage device performing the same and method of operating storage system using the same

Also Published As

Publication number Publication date
US20210157747A1 (en) 2021-05-27
US20230273884A1 (en) 2023-08-31
CN112948793A (zh) 2021-06-11
US11681637B2 (en) 2023-06-20

Similar Documents

Publication Publication Date Title
US11681637B2 (en) Memory controller, storage device including the same, and operating method of the memory controller
US11651061B2 (en) Memory controller and storage device including the same
US10503934B2 (en) Secure subsystem
US7873837B1 (en) Data security for electronic data flash card
KR102017828B1 (ko) 보안 관리 유닛, 상기 보안 관리 유닛을 포함하는 호스트 컨트롤러 인터페이스, 상기 호스트 컨트롤러 인터페이스의 동작 방법, 및 상기 호스트 컨트롤러 인터페이스를 포함하는 장치들
US20150227755A1 (en) Encryption and decryption methods of a mobile storage on a file-by-file basis
KR20230029113A (ko) 전자 장치
US12019907B2 (en) Storage device including memory controller, and non-volatile memory system including the same and operating method thereof
US11947466B2 (en) Storage device, nonvolatile memory system including memory controller, and operating method of the storage device
US20230179418A1 (en) Storage controller and method of operating electronic system
US11644983B2 (en) Storage device having encryption
KR20180128309A (ko) 인증에 기반을 둔 다중 파티션 선택적 활성 기능을 갖는 sd 메모리 제어 방법
US20140208125A1 (en) Encryption and decryption device for portable storage device and encryption and decryption method thereof
KR20230067458A (ko) 생체 정보 및 함수 암호를 활용한 인증 방법 및 인증 시스템
TWI472921B (zh) 可攜式儲存裝置及其存取控制方法

Legal Events

Date Code Title Description
A201 Request for examination