KR20150095273A - 모바일 스토리지의 파일별 암복호화 방법들 - Google Patents

모바일 스토리지의 파일별 암복호화 방법들 Download PDF

Info

Publication number
KR20150095273A
KR20150095273A KR1020140016393A KR20140016393A KR20150095273A KR 20150095273 A KR20150095273 A KR 20150095273A KR 1020140016393 A KR1020140016393 A KR 1020140016393A KR 20140016393 A KR20140016393 A KR 20140016393A KR 20150095273 A KR20150095273 A KR 20150095273A
Authority
KR
South Korea
Prior art keywords
context
host
memory device
file
application
Prior art date
Application number
KR1020140016393A
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 KR1020140016393A priority Critical patent/KR20150095273A/ko
Priority to US14/621,625 priority patent/US20150227755A1/en
Publication of KR20150095273A publication Critical patent/KR20150095273A/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Databases & Information Systems (AREA)

Abstract

본 발명의 실시 예에 따른 메모리 장치와 호스트를 포함하는 시스템의 동작 방법은 상기 호스트가 상기 메모리 장치로 콘텍스트 ID 리스트의 전송을 요청하는 단계와, 상기 호스트가 상기 메모리 장치로부터 전송된 상기 콘텍스트 ID 리스트에 포함된 콘텍스트 ID들에 기초하여 애플리케이션별로 대응되는 콘텍스트 ID를 할당하는 단계와, 상기 호스트가, 상기 애플리케이션별로 관련된 파일을 상기 메모리 장치와 주거나 받을 때마다, 상기 애플리케이션별로 할당된 상기 콘텍스트 ID를 상기 메모리 장치로 전송하는 단계를 포함한다.

Description

모바일 스토리지의 파일별 암복호화 방법들{ENCRYPTION AND DECRYPTION METHODS OF MOBILE STORAGE BASED ON A FILE-BY FILE BASIS}
본 발명의 개념에 따른 실시 예는 모바일 스토리지의 파일별 암복호화 방법에 관한 것으로, 특히 애플리케이션별(또는 상기 애플리케이션에 관련된 파일별)로 할당된 콘텍스트 ID를 이용하여 파일을 암복호화를 할 수 있는 메모리 장치의 동작 방법들에 관한 것이다.
암호화 동작 시에, 호스트는 암호라이브러리를 이용하여 사용자 데이터를 파일로 변환하면서 상기 파일을 암호화하고, 암호화된 파일을 모바일 스토리지로 전송한다.
복호화 동작 시에, 호스트는 모바일 스토리지로부터 암호화된 파일을 리드하고, 파일 시스템 수준에서 상기 암호화된 파일을 복호화하고, 복호화된 파일을 사용자 애플리케이션에게 제공한다.
즉, 암호화 동작과 복호화 동작 모두는 호스트에서 수행된다.
호스트가 암호화 동작과 복호화 동작을 수행하기 위해서, 상기 호스트는 파일 시스템의 데이터 경로를 변경해야 하고, 상기 암호화 동작과 상기 복호화 동작에 상당히 많은 시간을 소비한다. 이에 따라, 상기 호스트의 성능이 저하될 수 있다. 이에 따라 호스트와 모바일 스토리지를 포함하는 시스템에서 상기 호스트의 성능 저하를 방지할 수 있는 방법이 필요하다.
본 발명이 이루고자 하는 기술적인 과제는 호스트의 보안 솔루션을 단순화시키기 위해 상기 호스트가 아닌 모바일 스토리지의 내부에서 애플리케이션별(또는 상기 애플리케이션에 관련된 파일별)로 할당된 콘텍스트 ID를 이용하여 파일별로 암복호화를 할 수 있는 메모리 장치의 동작 방법들을 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적인 과제는 상기 메모리 장치의 내부에서 파일을 암복호화를 할 수 있도록 상기 메모리 장치와 호스트 사이에서 수행되는 인증 방법과 파일 송수신 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 메모리 장치와 호스트를 포함하는 시스템의 동작 방법은 상기 호스트가 상기 메모리 장치로 콘텍스트 ID 리스트의 전송을 요청하는 단계와, 상기 호스트가 상기 메모리 장치로부터 전송된 상기 콘텍스트 ID 리스트에 포함된 콘텍스트 ID들에 기초하여 애플리케이션별로 대응되는 콘텍스트 ID를 할당하는 단계와, 상기 호스트가, 상기 애플리케이션별로 관련된 파일을 상기 메모리 장치와 주거나 받을 때마다, 상기 애플리케이션별로 할당된 상기 콘텍스트 ID를 상기 메모리 장치로 전송하는 단계를 포함한다.
상기 시스템의 동작 방법은 상기 메모리 장치가, 상기 애플리케이션별로 관련된 상기 파일을 상기 호스트와 주거나 받을 때마다, 상기 애플리케이션별로 할당된 암호키를 이용하여 상기 파일을 암호화하거나 복호화하는 단계를 더 포함한다.
상기 시스템의 동작 방법은 상기 메모리 장치는 상기 호스트로부터 출력된 상기 콘텍스트 ID를 포함하는 무효화 명령에 기초하여 상기 암호키를 무효화하는 단계를 더 포함한다.
상기 시스템의 동작 방법은 상기 애플리케이션이 패스워드를 필요로 하는 애플리케이션일 때, 상기 호스트가 상기 애플리케이션에 할당된 상기 콘텍스트 ID와 함께 상기 패스워드를 상기 메모리 장치로 전송하는 단계와, 상기 메모리 장치가 상기 콘텍스트 ID와 상기 패스워드를 이용하여 상기 애플리케이션에 대한 인증키를 생성하는 단계를 더 포함한다.
상기 패스워드는 사용자에 의해 입력되거나 상기 호스트와 통신할 수 있는 서버로부터 입력된다.
상기 시스템의 동작 방법은, 상기 인증키가 생성된 후, 상기 메모리 장치가 상기 호스트로부터 새로운 콘텍스트 ID와 새로운 패스워드를 수신하는 단계와, 상기 메모리 장치가 상기 새로운 콘텍스트 ID와 상기 새로운 패스워드를 이용하여 새로운 인증키를 생성하는 단계와, 상기 인증키와 상기 새로운 인증키가 일치할 때, 상기 메모리 장치는 상기 호스트로부터 출력된 상기 새로운 콘텍스트 ID를 포함하는 명령에 따라 상기 암호키를 이용하여 상기 파일을 암호화하거나 복호화하는 단계를 더 포함한다.
상기 동작 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다.
본 발명의 실시 예에 따른 메모리 장치의 동작 방법은 호스트로부터 출력된 명령에 응답하여, 콘텍스트 ID들을 포함하는 콘텍스트 ID 리스트를 상기 호스트로 전송하는 단계와, 상기 호스트로부터 출력되고 상기 콘텍스트 ID들 중에서 상기 호스트에서 실행되는 애플리케이션에 할당된 콘텍스트 ID와 상기 애플리케이션에 관련된 파일을 수신하는 단계와, 상기 콘텍스트 ID 리스트에 포함되고 상기 콘텍스트 ID에 할당된 암호 키를 이용하여 상기 파일을 암호화하는 단계와, 상기 암호화된 파일을 메모리 영역에 저장하는 단계를 포함한다.
본 발명의 실시 예에 따른 방법은 메모리 장치의 내부에서 애플리케이션별(또는 상기 애플리케이션에 관련된 파일별)로 할당된 콘텍스트 ID를 이용하여 파일을 암복호화할 수 있는 효과가 있다.
따라서, 상기 메모리 장치와 호스트를 포함하는 시스템의 성능이 향상되는 효과가 있다.
또한, 메모리 장치의 내부에서 파일이 암복호화되므로, 호스트의 보안 솔루션을 단순화시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 데이터 처리 시스템의 초기화 동작을 설명하기 위한 데이터 흐름도이다.
도 3은 도 1에 도시된 메모리 장치에 저장된 콘텍스트 ID 리스트의 일 실시 예이다.
도 4는 도 1에 도시된 메모리 장치에 저장된 콘텍스트 ID 리스트의 다른 실시 예이다.
도 5는 도 1에 도시된 데이터 처리 시스템의 라이트 동작의 일 실시 예를 설명하기 위한 데이터 흐름도이다.
도 6은 도 1에 도시된 데이터 처리 시스템의 리드 동작의 일 실시 예를 설명하기 위한 데이터 흐름도이다.
도 7은 도 1에 도시된 데이터 처리 시스템의 암호키 무효화 동작의 실시 예를 설명하기 위한 데이터 흐름도이다.
도 8은 도 1에 도시된 호스트의 개략적인 블록도이다.
도 9는 도 1에 도시된 메모리 장치의 개략적인 블록도이다.
도 10은 도 1에 도시된 데이터 처리 시스템의 라이트 동작의 다른 실시 예를 설명하기 위한 데이터 흐름도이다.
도 11은 애플리케이션과 파일을 보안 그룹별로 할당하는 도 1에 도시된 호스트의 동작을 설명하기 위한 개념도이다.
도 12는 도 1에 도시된 데이터 처리 시스템의 라이트 동작의 또 다른 실시 예를 설명하기 위한 데이터 흐름도이다.
도 13은 도 1에 도시된 데이터 처리 시스템의 리드 동작의 다른 실시 예를 설명하기 위한 데이터 흐름도이다.
도 14는 도 1에 도시된 데이터 처리 시스템이 허가되지 않은 콘텍스트 ID를 처리하는 방법을 설명하는 데이터 흐름도이다.
도 15는 도 1에 도시된 데이터 처리 시스템이 모바일 장치일 때 상기 모바일 장치의 동작을 설명하기 위한 개념도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(100)은 호스트(200)와 메모리 장치(300)를 포함할 수 있다.
데이터 처리 시스템(100)은 파티션별(partion-by-partion basis) 보안이 아닌 파일별(file-by-file basis) 또는 애플리케이션별(application-by-application basis) 보안을 제공할 수 있다. 파일은 애플리케이션에 의해 생성되거나 실행될 수 있으므로, 이하에서는 파일별 보안을 제공하는 데이터 처리 시스템(100)의 동작이 상세히 설명된다.
따라서, 파일별 보안은 말 그대로 파일별 보안뿐만 아니라 애플리케이션별 보안을 포함하는 넓은 개념으로 해석될 수 있다.
데이터 처리 시스템(100)은 PC(personal computer), 서버(server), 데이터베이스(database), 또는 휴대용 전자 장치로 구현될 수 있다. 상기 휴대용 전자 장치는 이동 전화기, 스마트폰, 태블릿(tablet) PC, 모바일 인터넷 장치(mobile internet device(MID)), IoT(internet of things) 장치, IoE(internet of everething) 장치, 또는 웨어러블 컴퓨터를 포함할 수 있다.
호스트(200)는, 인터페이스(400)를 통해, 메모리 장치(300)에 대한 라이트 동작과 리드 동작을 제어할 수 있다.
호스트(200)는 집적 회로, 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서(application processor(AP)), 모바일 AP, 또는 인쇄 회로 기판 (printed circuit board(PCB))으로 구현될 수 있다. 또한, 호스트(200)는 메모리 컨트롤러로 구현되거나 또는 상기 메모리 컨트롤러의 기능을 수행할 수 있다.
종래의 호스트와 달리 본 발명의 실시 예에 따른 호스트(200)는 파일에 대한 암호화 동작과 복호화 동작을 수행하지 않을 수 있다.
메모리 장치(300)는 호스트(200)와 착탈 가능한 데이터 스토리지(removal data storage) 또는 모바일 스토리지(mobile storage)일 수 있다.
예컨대, 메모리 장치(300)는 플래시-기반 메모리일 수 있다. 상기 플래시-기반 메모리 장치는 멀티미디어 카드(multimedia card(MMC)), 임베디드 MMC(embedded MMC(eMMC)), 유니버셜 플래시 스토리지(universal flash storage(UFS)), USB (universal serial bus) 플래시 드라이버, 또는 임베디드 솔리드 스테이트 드라이브(embedded solid state drive(eSSD))로 구현될 수 있다.
호스트(200)는 네트워크(500)를 통해 서버(600)에 접속될 수 있다. 네트워크 (500)는 유선 네트워크 또는 무선 네트워크를 의미할 수 있다. 상기 무선 네트워크는 인터넷, Wi-Fi 네트워크, 또는 이동 통신 네트워크를 의미할 수 있다. 서버(600)는 네트워크(500)를 통해 호스트(200)와 명령 및/또는 데이터를 주거나 받을 수 있는 장치를 의미한다.
도 2는 도 1에 도시된 데이터 처리 시스템의 초기화 동작을 설명하기 위한 데이터 흐름도이고, 도 3은 도 1에 도시된 메모리 장치에 저장된 콘텍스트 ID 리스트의 일 실시 예이다.
데이터 처리 시스템의 초기화 동작은 도 1부터 도 3을 참조하여 상세히 설명된다.
도 3에 도시된 바와 같이, 메모리 장치(300)의 내부 메모리에는 콘텍스트 ID들(CID0~CIDn; 여기서 n은 자연수)을 포함하는 리스트(LIST)가 저장될 수 있다. 예컨대, 리스트(LIST)는 메모리 장치(300)의 제조자에 의해 프로그램(또는 설정)될 수 있다.
실시 예들에 따라, 리스트(LIST)에 포함되는 정보는 다양하게 변경될 수 있으나, 도 3에서는 설명의 편의를 위해, 컨텍스트 ID(CID0~CIDn)별로 암호키 (EKEY0~EKEYn)가 할당되고, 각 컨텍스트 ID(CID0~CIDn)에 대한 인증 키는 호스트 (200)로부터 입력되는 각 컨텍스트 ID(CID0~CIDn) 및/또는 패스워드를 이용하여 메모리 장치(300)에 의해 생성될 수 있다고 가정한다.
콘텍스트 ID들(CID0~CIDn)은 메모리 장치(300)에서 사용될 수 있는 또는 메모리 장치(300)에서 지원되는 콘텍스트 ID들을 의미한다.
여기서, 콘텍스트 ID는 트랜잭션 콘텍스트(transaction context)를 구별할 수 있는 식별자를 의미하고, 상기 트랜잭션 콘텍스트는 상기 콘텍스트 ID에 따라 수행될 동작을 정의하는 파라미터들을 포함할 수 있다. 또한, 상기 콘텍스트 ID과 상기 트랜잭션 콘텍스트는 명령(command)에 포함될 수 있다. 예컨대, 메모리 장치 (300)는 명령에 포함된 트랜잭션 콘텍스트를 해석하고, 해석의 결과에 따라 상기 트랜잭션 콘텍스트에서 정의된 동작을 수행할 수 있다.
호스트(200)는 메모리 장치(300)로 콘텍스트 ID 리스트(LIST)의 전송을 요청하는 요청 신호(REQ)를 전송할 수 있다(S110).
메모리 장치(300)는, 요청 신호(REQ)에 응답하여, 콘텍스트 ID 리스트(LIST)를 호스트(200)로 전송할 수 있다(S120).
실시 예에 따라, 메모리 장치(300)는 각 콘텍스트 ID(CID0~CIDn)만을 포함하는 콘텍스트 ID 리스트(LIST)를 호스트(200)로 전송할 수 있다(S120).
호스트(200)에 애플리케이션(APP)이 설치되거나 애플리케이션(APP)이 실행되면(S130), 호스트(200), 예컨대 운영 체제(operating system(OS))는 애플리케이션 (APP)을 콘텍스트 ID 리스트(LIST)에 포함된 콘텍스트 ID들(CID0~CIDn) 중에서 어느 하나의 ID에 할당할 수 있다(S140).
예컨대, 복수의 애플리케이션들이 호스트(200)에 설치되어 있을 때, 호스트(200)는 상기 애플리케이션들 각각을 콘텍스트 ID들(CID0~CIDn) 각각에 할당할 수 있다. 상기 할당에 따라, 하나 또는 그 이상의 애플리케이션들은 하나의 콘텍스트 ID에 할당될 수 있다. 예컨대, 하나 또는 그 이상의 애플리케이션들은 동일한 콘텍스트 ID(예컨대, CID0)에 할당될 수 있고, 상기 콘텍스트 ID(예컨대, CID0)는 상기 하나 또는 그 이상의 애플리케이션들에 의해 생성된 파일(들)에게 할당될 수 있다.
특정 애플리케이션 또는 상기 특정 애플리케이션에 관련된 파일에 대해 패스워드(PW)를 설정할 필요가 있을 때, 호스트(200)는 사용자로부터 입력된 패스워드(PW) 또는 네트워크(500)를 통해 서버(600)로부터 전송된 패스워드(PW)를 수신할 수 있다(S150).
호스트(200)는 할당된 콘텍스트 ID(예컨대, CID0)와 패스워드(PW)를 메모리 장치(300)로 전송할 수 있다(S160).
실시 예에 따라, 메모리 장치(300)는 패스워드(PW)를 이용하여 인증 키(예컨대, AKEY0)를 생성하고(S170), 생성된 인증 키(예컨대, AKEY0)를 콘텍스트 ID 리스트(LIST)에 저장할 수 있다(S180).
다른 실시 예에 따라, 메모리 장치(300)는 할당된 콘텍스트 ID(예컨대, CID0)와 패스워드(PW)를 이용하여 인증 키(예컨대, AKEY0)를 생성하고(S170), 생성된 인증 키(예컨대, AKEY0)를 콘텍스트 ID 리스트(LIST)에 저장할 수 있다(S180).
예컨대, 메모리 장치(300)는 AES(Advanced Encryption Standard) 또는 해시 함수(hash function)를 이용하여 인증 키를 생성할 수 있다.
도 4는 도 1에 도시된 메모리 장치에 저장된 콘텍스트 ID 리스트의 다른 실시 예이다. 도 4에 도시된 바와 같이, 리스트(LIST)는 콘텍스트 ID(CID0~CIDn)별로 보안 상태(예컨대, PW의 설정 여부)를 나타내는 정보와, 사용 여부를 나타내는 정보를 포함할 수 있다.
예컨대, 보안 상태가 "1"로 설정되면, 콘텍스트 ID(CID0 또는 CID1)는 보안 그룹에 속하므로 해당하는 애플리케이션 또는 파일에 대한 보안이 필요함을 나타낸다. 따라서, 콘텍스트 ID(CID0 또는 CID1)에 할당된 애플리케이션 또는 상기 애플리케이션에 관련된 파일을 처리(예컨대, 라이트 또는 리드)하기 위해서는 패스워드 (PW)가 입력되어야 한다.
사용 여부가 "1"로 설정되면, 콘텍스트 ID(CID0 또는 CID1)는 특정 애플리케이션에 할당되었음을 나타낸다. 예컨대, 이전까지 사용되지 않던 콘텍스트 ID(예컨대, CID2)가 호스트(200)로부터 입력되면, 메모리 장치(300)는 콘텍스트 ID(예컨대, CID2)의 사용 여부를 "0"으로부터 "1"로 변경할 수 있다.
도 5는 도 1에 도시된 데이터 처리 시스템의 라이트 동작의 일 실시 예를 설명하기 위한 데이터 흐름도이다.
도 1, 도 2, 도 3, 및 도 5를 참조하면, 애플리케이션(APP)이 실행되고 (S210), 패스워드 (PW)가 입력되면(S220), 호스트(200)는 애플리케이션(APP)에 할당된 콘텍스트 ID (예컨대, CID0)와 패스워드(PW)를 메모리 장치(300)로 전송한다 (S230).
메모리 장치(300)는 단계 S230을 통해 입력된 패스워드(PW)를 이용하여 인증 키(AKEY0)를 생성할 수 있다(S240). 상술한 바와 같이, 메모리 장치(300)는 단계 S230을 통해 입력된 콘텍스트 ID(예컨대, CID0)와 패스워드(PW)를 이용하여 인증 키(AKEY0)를 생성할 수 있다(S240).
보안이 필요한 애플리케이션을 인증하기 위해, 메모리 장치(300)는 단계 S180을 통해 리스트(LIST)에 저장된 인증 키와 단계 S240을 통해 생성된 인증 키를 서로 비교한다(S250).
메모리 장치(300)는 비교 결과를 나타내는 응답 신호를 호스트(200)로 전송한다(S260).
인증 성공을 나타내는 비교 결과에 따라, 호스트(200)는 명령과 라이트 파일 (WDATA)을 메모리 장치(300)로 전송할 수 있다(S270). 상기 명령은 콘텍스트 ID (예컨대, CID0)를 포함할 수 있다. 라이트 파일(WDATA)은 콘텍스트 ID(예컨대, CID0)를 할당받은 애플리케이션(APP)에 의해 생성된 파일을 의미할 수 있다. 인증 실패를 나타내는 비교 결과에 따라, 호스트(200)는 단계 S270을 수행하지 않을 수 있다.
실시 예에 따라, 라이트 파일(WDATA)이 복수의 부분들로 분할되어 전송될 때, 호스트(200)는 각 부분과 함께 콘텍스트 ID(예컨대, CID0)를 전송할 수 있다(S270).
메모리 장치(300)는 콘텍스트 ID(예컨대, CID0)에 관련된 암호키(예컨대, EKEY0)를 이용하여 라이트 파일(WDATA)을 암호화하고(S280), 암호화된 라이트 파일을 메모리 영역, 예컨대 불휘발성 메모리 영역에 저장할 수 있다(S290).
즉, 호스트(200)는 리스트(LIST)를 이용(또는 참조)하여 애플리케이션마다 대응되는 콘텍스트 ID를 할당하고, 파일을 메모리 장치(300)에 라이트할 때마다 상기 콘텍스트 ID와 함께 상기 파일을 메모리 장치(300)로 전송한다.
메모리 장치(300)는 상기 파일과 함께 입력되는 콘텍스트 ID에 상응하는 암호키를 이용하여 상기 파일을 암호화하고 암호화된 파일을 메모리 장치(300)의 메모리 영역에 저장할 수 있다.
도 6은 도 1에 도시된 데이터 처리 시스템의 리드 동작의 일 실시 예를 설명하기 위한 데이터 흐름도이다.
도 1, 도 3, 및 도 6을 참조하면, 애플리케이션(APP)이 실행되고(S310), 패스워드(PW)가 입력되면(S320), 호스트(200)는 애플리케이션(APP)에 할당된 콘텍스트 ID(예컨대, CID0)와 패스워드(PW)를 메모리 장치(300)로 전송한다(S330).
메모리 장치(300)는 단계 S330을 통해 입력된 패스워드(PW)를 이용하여 인증 키를 생성할 수 있다(S340). 상술한 바와 같이, 메모리 장치(300)는 단계 S330을 통해 입력된 콘텍스트 ID(예컨대, CID0)와 패스워드(PW)를 이용하여 인증 키를 생성할 수 있다(S340).
메모리 장치(300)는 단계 S180을 통해 리스트(LIST)에 저장된 인증 키와 단계 S340을 통해 생성된 인증 키를 서로 비교한다(S350).
메모리 장치(300)는 비교 결과를 나타내는 응답 신호를 호스트(200)로 전송한다(S360).
인증 성공을 나타내는 비교 결과에 따라, 호스트(200)는 콘텍스트 ID(예컨대, CID0)와 리드 명령(RCMD)을 메모리 장치(300)로 전송한다(S370).
메모리 장치(300)는 리드 명령(RCMD)에 따라 정의된 메모리 영역에 저장된 암호화된 파일을 리드하고, 콘텍스트 ID(예컨대, CID0)에 관련된 암호키(EKEY0)를 이용하여 리드된 암호화된 파일을 복호화한다(S380).
메모리 장치(300)는 복호화된 파일을 호스트(200)로 전송한다(S390).
도 7은 도 1에 도시된 데이터 처리 시스템의 암호키 무효화 동작의 실시 예를 설명하기 위한 데이터 흐름도이다.
도 1, 도 3, 및 도 7을 참조하면, 애플리케이션(APP)이 실행되고(S410), 패스워드(PW)가 입력되면(S420), 호스트(200)는 애플리케이션(APP)에 할당된 콘텍스트 ID(예컨대, CID0)와 패스워드(PW)를 메모리 장치(300)로 전송한다(S430).
메모리 장치(300)는 단계 S430을 통해 입력된 패스워드(PW)를 이용하여 인증 키를 생성할 수 있다(S440). 상술한 바와 같이, 메모리 장치(300)는 단계 S430을 통해 입력된 콘텍스트 ID(예컨대, CID0)와 패스워드(PW)를 이용하여 인증 키를 생성할 수 있다(S440).
메모리 장치(300)는 단계 S180을 통해 리스트(LIST)에 저장된 인증 키와 단계 S440을 통해 생성된 인증 키를 서로 비교한다(S450).
메모리 장치(300)는 비교 결과를 나타내는 응답 신호를 호스트(200)로 전송한다(S460).
인증 성공을 나타내는 비교 결과에 따라, 호스트(200)는 콘텍스트 ID(예컨대, CID0)와 무효화 명령(ECMD)을 메모리 장치(300)로 전송한다(S470).
메모리 장치(300)는 무효화 명령(ECMD)에 따라 콘텍스트 ID(예컨대, CID0)에 관련된 암호키(EKEY0)를 무효화할 수 있다(S780). 상기 무효화는 삭제 또는 언로드(unload)를 의미할 수 있다.
도 7에서는 무효화 명령(ECMD)에 따라 콘텍스트 ID(예컨대, CID0)에 관련된 암호키(EKEY0)를 무효화하는 방법이 설명되었으나, 실시 예에 따라 메모리 장치 (300)는, 콘텍스트 ID(예컨대, CID0)에 상응하는 애플리케이션이 일정 시간 동안 메모리 장치(300)를 액세스하지 않을 때, 콘텍스트 ID(예컨대, CID0)에 상응하는 인증 키(AKEY0)를 자동으로 무효화시킬 수 있다.
또 다른 실시 예에 따라, 메모리 장치(300)는, 파워 온 리셋(power on reset(POR)) 동작 시에, 콘텍스트 ID(예컨대, CID0)에 상응하는 인증 키(AKEY0)를 자동으로 무효화시킬 수 있다.
도 8은 도 1에 도시된 호스트의 개략적인 블록도이다.
도 1부터 도 8을 참조하면, 호스트(200)는 CPU(220), 입출력 인터페이스 (230), 장치 인터페이스(240), 및 네트워크 인터페이스(250)를 포함할 수 있다.
CPU(220)는 애플리케이션(APP)을 실행할 수 있다. 예컨대, CPU(220)에서 실행되는 OS, 또는 본 발명의 실시 예를 실행할 수 있는 프로그램은 콘텍스트 ID 리스트(LIST)를 수신하고, 콘텍스트 ID 리스트(LIST)를 참조하여 보안 정책(또는 보안 레벨)에 따라 각 애플리케이션에게 대응되는 각 콘텍스트 ID를 할당할 수 있다.
예컨대, CPU(220)는 애플리케이션(APP1)에 콘텍스트 ID(CID0)을 할당할 수 있고, 각 애플리케이션(APP2와 APP3)에게 콘텍스트 ID(CID1)을 할당할 수 있다. 예컨대, 각 콘텍스트 ID별로 보안 그룹이 결정될 수 있다. 동일한 보안 그룹에 속하는 적어도 하나의 애플리케이션 또는 적어도 하나의 파일에 동일한 보안 정책이 적용될 수 있다. 여기서, 각 애플리케이션(APP1, APP2, APP3, ...)은 애플리케이션 (APP)으로 총칭될 수 있다.
CPU(220)는 버스(210)를 통해 각 구성 요소(230, 240, 및 250)의 동작을 제어할 수 있고, 버스(210)를 통해 각 구성 요소(230, 240, 및 250)와 데이터 및/또는 제어 신호들을 주고받을 수 있다.
입출력 인터페이스(230)는 사용자로부터 입력된 패스워드(PW)를 버스(210)를 통해 CPU(220)로 전송할 수 있다. 예컨대, 입출력 인터페이스(230)는 디스플레이 컨트롤러 또는 터치 패널 컨트롤러로 구현될 수 있다.
장치 인터페이스(240)는 인터페이스(400)를 통해 메모리 장치(300)와 데이터 및/또는 명령을 주고받을 수 있다.
네트워크 인터페이스(250)는 네트워크(500)를 통해 서버(600)와 데이터 및/또는 명령을 주고받을 수 있다. 네트워크 인터페이스(250)는 서버(600)로부터 출력된 패스워드(PW)를 버스(210)를 통해 CPU(220)로 전송할 수 있다.
예컨대, 사용자가 특정 애플리케이션을 사용할 때, CPU(220)가 상기 특정 애플리케이션의 사용을 요청하는 요청 신호를 구성 요소들(210, 250, 및 500)을 통해 서버(600)로 전송하면, 서버(600)는 상기 특정 애플리케이션의 사용을 허가하는 패스워드(PW)를 구성 요소들(210, 250, 및 500)을 통해 CPU(220)로 전송할 수 있다.
도 1부터 도 8을 참조하면, 호스트(200)는 리스트(LIST)를 이용(또는 참조)하여 애플리케이션(APP1, APP2, APP3, ...)마다 대응되는 콘텍스트 ID(CID0, CID1,...)를 할당하고, 해당 애플리케이션(APP1, APP2, APP3, ...)이 파일을 메모리 장치(300)에 라이트할 때마다 해당 애플리케이션(APP1, APP2, APP3, ...)에게 할당된 콘텍스트 ID와 상기 파일을 메모리 장치(300)로 전송할 수 있다.
도 9는 도 1에 도시된 메모리 장치의 개략적인 블록도이다.
도 9를 참조하면, 메모리 장치(300)는 컨트롤러(310), 제1메모리(325), 및 제2메모리(329)를 포함할 수 있다.
메모리 장치(300)는 MMC, eMMC, UFS, SSD, 또는 eSSD로 구현될 수 있다.
컨트롤러(310)는 호스트(200), 제1메모리(325), 및 제2메모리(329) 사이에서 주고받는 데이터를 인터페이싱할 수 있다.
컨트롤러(310)는 집적 회로 또는 시스템 온 칩(system on chip(SoC))으로 구현될 수 있다.
컨트롤러(310)는 CPU(313), 내부 메모리(315), 호스트 인터페이스(317), DMA(direct memory access) 컨트롤러(319), 암복호화 엔진(321), 제1메모리 컨트롤러(323), 및 제2메모리 컨트롤러(327)를 포함할 수 있다.
CPU(313) 또는 CPU(313)에 의해 실행되는 프로그램은 컨트롤러(310)의 동작을 전반적으로 제어할 수 있다. 예컨대, CPU(313)는 멀티 코어 프로세서로 구현될 수 있다.
CPU(313)는 버스(311)를 통해 구성 요소들(315, 317, 319, 321, 323, 및 327)의 동작을 제어할 수 있다.
예컨대, CPU(313)는 리스트(LISI) 전송(S120), 인증 키 생성(S170, S240, S340, 또는 S440), 인증 키 저장(S180), 인증키 비교(S250, S350, 또는 S450), 및 비교 결과의 전송(S260, S360, 또는 S460) 등을 수행할 수 있다.
내부 메모리(315)는 콘텍스트 ID 리스트(315)를 저장할 수 있다. 여기서, 내부 메모리(315)는 휘발성 메모리와 불휘발성 메모리의 집합을 의미할 수 있다.
실시 예에 따라, 콘텍스트 ID 리스트(315)는 초기부터 내부 메모리(315)에 저장될 수 있다. 다른 실시 예에 따라, 콘텍스트 ID 리스트(315)는, 메모리 장치 (300)가 부팅될 때, 제2메모리(329)로부터 내부 메모리(315)로 로드될 수 있다.
호스트 인터페이스(317)는 인터페이스(400)를 통해 장치 인터페이스(240)와 데이터 및/또는 명령을 주거나 받을 수 있다.
DMA 컨트롤러(319)는 암복호화 엔진(321)과 암호화된 파일 또는 복호화된 파일을 주거나 받을 수 있다. 예컨대, DMA 컨트롤러(319)는 호스트 인터페이스 (317)와 암복호화 엔진(321) 사이에서 주고받는 데이터를 제어할 수 있다.
암복호화 엔진(321)은 호스트(200)로부터 출력된 콘텍스트 ID 및/또는 패스워드(PW)를 이용하여 해당 콘텍스트 ID에 관련된 인증 키를 생성할 수 있다.
또한, 암복호화 엔진(321)은 해당 콘텍스트 ID에 관련된 암호키를 이용하여 라이트 파일을 암호화하거나 암호화된 라이트 파일을 복호화할 수 있다.
제1메모리 컨트롤러(323)는 제1메모리(325)에 데이터를 라이트하거나 제1메모리(325)로부터 데이터를 리드할 수 있다. 제1메모리(352)가 DRAM으로 구현될 때, 제1메모리 컨트롤러(323)는 DRAM 컨트롤러로 구현될 수 있다.
제2메모리 컨트롤러(327)는 제2메모리(329)에 데이터를 라이트하거나 제2메모리(329)로부터 데이터를 리드할 수 있다. 예컨대, 제2메모리 컨트롤러(327)는 암호화된 데이터를 제2메모리(329)에 라이트하거나 제2메모리(329)로부터 암호화된 데이터를 리드할 수 있다.
예컨대, 제2메모리(329)는 플래시-기반 메모리로 구현될 수 있다. 상기 플래시-기반 메모리는 NAND 플래시 메모리 셀들 또는 NOR 플래시 메모리 셀들을 포함할 수 있다.
도 10은 도 1에 도시된 데이터 처리 시스템의 라이트 동작의 다른 실시 예를 설명하기 위한 데이터 흐름도이고, 도 11은 애플리케이션과 파일을 보안 그룹별로 할당하는 도 1에 도시된 호스트의 동작을 설명하기 위한 개념도이다.
도 1, 도 9, 도 10, 및 도 11을 참조하면, 호스트(200)는 각 애플리케이션 또는 상기 각 애플리케이션에 의해 생성된 파일을 각 보안 그룹에 할당할 수 있다.
예컨대, 애플리케이션들(APP11~APP1m, APP21~APP2k, 및 APP31~APP3p, 여기서, m, n, 및 p는 자연수)이 호스트(200)에 설치되어 있을 때, 호스트(200)의 CPU (220)는 각 애플리케이션(APP11~APP1m)을 제1보안 그룹(GP1)에 할당할 수 있다 (S510). 또한, 호스트(200)의 CPU(220)는 각 애플리케이션(APP11~APP1m)에 의해 생성된 각 파일(FILE11~FILE1m)을 제1보안 그룹(GP1)에 할당할 수 있다(S510).
호스트(200)의 CPU(220)는 각 애플리케이션들(APP21~APP2k)을 제2보안 그룹 (GP2)에 할당할 수 있다(S510). 또한, 호스트(200)의 CPU(220)는 각 애플리케이션 (APP21~APP2k)에 의해 생성된 각 파일(FILE21~FILE2k)을 제2보안 그룹(GP2)에 할당할 수 있다(S510).
호스트(200)의 CPU(220)는 각 애플리케이션들(APP31~APP3p)을 제3보안 그룹 (GP3)에 할당할 수 있다(S510). 또한, 호스트(200)의 CPU(220)는 각 애플리케이션 (APP31~APP3p)에 의해 생성된 각 파일(FILE31~FILE3p)을 제3보안 그룹(GP3)에 할당할 수 있다(S510).
각 보안 그룹(GP1, GP2, 및 GP3)의 보안 정책 또는 보안 레벨은 서로 다를 수 있다.
예컨대, 제1보안 그룹(GP1)은 비-보안 그룹으로, 제2보안 그룹(GP2)은 개인 보안 그룹으로, 제3보안 그룹(GP3)은 회사 보안 그룹으로 설정될 수 있다.
이때, 제1보안 그룹(GP1)에 속하는 각 애플리케이션(APP11~APP1m) 및/또는 각 파일(FILE11~FILE1m)은 비-보안 속성을 가질 수 있다.
제2보안 그룹(GP2)에 속하는 각 애플리케이션(APP21~APP2k) 및/또는 각 파일(FILE21~FILE2k)은 개인 보안 속성을 가질 수 있다. 제3보안 그룹(GP3)에 속하는 각 애플리케이션(APP31~APP3p) 및/또는 각 파일(FILE31~FILE3p)은 회사 보안 속성을 가질 수 있다.
호스트(200)의 CPU(220)는 각 보안 그룹(GP1, GP2, 및 GP3)에 각 콘텍스트 ID(CID1, CID2, 및 CID3)를 할당할 수 있다(S520).
이하에서는 설명의 편의를 위해, 제1보안 그룹(GP1)에 속하는 각 애플리케이션(APP11~APP1m)이 콘텍스트 ID(CID1)를 이용하여 제1보안 그룹(GP1)에 속하는 각 파일(FILE11~FILE1m)을 처리하는 과정이 설명된다.
애플리케이션(APP11)이 실행되면 또는 파일(FILE11)에 대한 라이트 동작이 실행되면, 호스트(200)의 CPU(220)는 애플리케이션(APP11) 또는 파일(FILE11)에 관련된 콘텍스트 ID(CID1)를 메모리 장치(300)로 전송한다(S530).
메모리 장치(300)의 CPU313)는 콘텍스트 ID(CID1)의 사용 여부를 판단한다 (S540). 예컨대, 콘텍스트 ID(CID1)의 사용 여부는 내부 메모리(315)에 저장될 수 있다.
경우I(CASE1)과 같이 콘텍스트 ID(CID1)가 사용되지 않은 경우(S540), 메모리 장치(300)의 CPU(313)는 사용되지 않았음을 지시하는 제1응답(RES1)을 호스트 (200)로 전송한다(S545). 호스트(200)의 CPU(220)는 콘텍스트 ID(CID1)를 포함하는 인증 요청(AREQ)을 메모리 장치(300)로 전송한다.
메모리 장치(300)의 암복호화 엔진(321)은 콘텍스트 ID(CID1)에 대한 암호키를 생성하고, 생성된 암호키를 내부 메모리(315)에 저장한다(S555).
콘텍스트 ID(CID1)에 대한 암호키가 생성되면, 메모리 장치(300)의 CPU(313)는 상기 암호키가 생성됨을 지시하는 제2응답(RES2)을 호스트(200)로 전송한다 (S560).
호스트(200)의 CPU(220)는 콘텍스트 ID(CID1)와 파일(FILE1)을 메모리 장치(300)로 전송한다(S565).
암복호화 엔진(321)은, CPU(313)의 제어에 따라, 내부 메모리(315)에 저장된 암호키를 이용하여 파일(FILE1)을 암호화한다(S570).
제2메모리 컨트롤러(327)는, CPU(313)의 제어에 따라, 암복호화 엔진(321)에 의해 암호화된 파일(FILE1)을 제2메모리(329)의 메모리 영역에 저장한다(S575).
경우II(CASEII)과 같이 콘텍스트 ID(CID1)가 이미 사용되고 콘텍스트 ID(CID1)에 대한 암호키가 단계S555에 따라 이미 생성된 경우, 메모리 장치(300)의 CPU(313)는 이미 사용되었음을 지시하는 제1응답(RES1)을 호스트(200)로 전송한다 (S545).
호스트(200)의 CPU(220)는 콘텍스트 ID(CID1)와 파일(FILE1)을 메모리 장치 (300)로 전송한다(S565).
암복호화 엔진(321)은, CPU(313)의 제어에 따라, 단계 S555에 따라 내부 메모리(315)에 저장된 암호키를 이용하여 파일(FILE1)을 암호화한다(S570).
제2메모리 컨트롤러(327)는, CPU(313)의 제어에 따라, 암복호화 엔진(321)에 의해 암호화된 파일(FILE1)을 제2메모리(329)의 메모리 영역에 저장한다(S575).
즉, CPU(220)는 제1그룹(GP1)에 속하는 각 애플리케이션(APP11~APP1m) 또는 각 파일(FILE11~FILE1n)을 처리할 때, 콘텍스트 ID(CID1)을 사용할 수 있다.
도 12는 도 1에 도시된 데이터 처리 시스템의 라이트 동작의 또 다른 실시 예를 설명하기 위한 데이터 흐름도이다.
도 10과 도 12를 참조하면, 경우IV(CASEIV)과 같이 콘텍스트 ID(CID1)가 사용되지 않은 경우(S540), 메모리 장치(300)의 CPU(313)는 사용되지 않았음을 지시하는 제1응답(RES1)을 호스트(200)로 전송한다(S545). 호스트(200)의 CPU(220)는 콘텍스트 ID(CID1)를 포함하는 인증 요청(AREQ)을 메모리 장치(300)로 전송한다 (S550).
메모리 장치(300)의 암복호화 엔진(321)은 콘텍스트 ID(CID1)에 대한 암호키를 생성하고(S555), 콘텍스트 ID(CID1) 또는 상기 암호키에 상응하는 고유 식별자(UID)를 생성하고 고유 식별자(UID)를 내부 메모리(315)에 저장할 수 있다 (S557).
콘텍스트 ID(CID1)에 대한 고유 식별자(UID)가 생성되면(S557), 메모리 장치 (300)의 CPU(313)는 고유 식별자(UID)를 포함하는 제2응답(RES2)을 호스트(200)로 전송한다(S562).
호스트(200)의 CPU(220)는 고유 식별자(UID)와 파일(FILE1)을 메모리 장치 (300)로 전송한다(S567). 메모리 장치(300)의 CPU(313)은 호스트(200)로부터 전송된 고유 식별자(UID)와 내부 메모리(315)에 저장된 고유 식별자(UID)를 비교한다.
암복호화 엔진(321)은, 상기 비교의 결과에 따라, 내부 메모리(315)에 저장된 암호키를 이용하여 파일(FILE1)을 암호화한다(S570).
제2메모리 컨트롤러(327)는, CPU(313)의 제어에 따라, 암복호화 엔진(321)에 의해 암호화된 파일(FILE1)을 제2메모리(329)의 메모리 영역에 저장한다(S575).
경우III(CASEIII)과 같이 콘텍스트 ID(CID1)가 이미 사용되고 콘텍스트 ID (CID1)에 대한 고유 식별자(UID)가 단계 S557에 따라 이미 생성된 경우, 메모리 장치(300)의 CPU(313)는 이미 사용되었음을 지시하는 제1응답(RES1)을 호스트(200)로 전송한다(S545).
호스트(200)의 CPU(220)는 고유 식별자(UID)와 파일(FILE1)을 메모리 장치 (300)로 전송한다(S567). 메모리 장치(300)의 CPU(313)은 호스트(200)로부터 전송된 고유 식별자(UID)와 내부 메모리(315)에 저장된 고유 식별자(UID)를 비교한다.
암복호화 엔진(321)은, 상기 비교의 결과에 따라, 내부 메모리(315)에 저장된 암호키를 이용하여 파일(FILE1)을 암호화한다(S570).
제2메모리 컨트롤러(327)는, CPU(313)의 제어에 따라, 암복호화 엔진(321)에 의해 암호화된 파일(FILE1)을 제2메모리(329)의 메모리 영역에 저장한다(S575).
즉, CPU(220)는 제1그룹(GP1)에 속하는 각 애플리케이션(APP11~APP1m) 또는 각 파일(FILE11~FILE1n)을 처리할 때, 콘텍스트 ID(CID1) 또는 고유 식별자(UID)를 사용할 수 있다.
도 13은 도 1에 도시된 데이터 처리 시스템의 리드 동작의 다른 실시 예를 설명하기 위한 데이터 흐름도이다.
애플리케이션(APP11)이 콘텍스트 ID(CID1) 또는 고유 식별자(UID)를 이용하여 파일(FILE1)을 리드하는 과정은 도 8, 도 9, 도 11, 및 도 13을 참조하여 설명된다.
호스트(200)의 CPU(220)는 콘텍스트 ID(CID1) 또는 고유 식별자(UID)를 포함하는 리드 명령을 메모리 장치(300)로 전송한다(S610). 상기 리드 명령은 리드 대상이 되는 파일의 저장 위치에 대한 정보를 포함한다.
메모리 장치(300)의 CPU(313)는 상기 리드 명령을 해석하고, 해석 결과를 제2메모리 컨트롤러(327)로 전송한다. 제2메모리 컨트롤러(327)는 제2메모리(329)로부터 암호화된 파일을 리드한다(S620).
암복호화 모듈(321)은 제2메모리 컨트롤러(327)에 의해 리드된 암호화된 파일을 내부 메모리(315)에 저장된 암호키를 이용하여 복호화한다(S630).
메모리 장치(300)는 복호화된 파일을 호스트(200)로 전송한다(S640).
도 14는 도 1에 도시된 데이터 처리 시스템이 허가되지 않은 콘텍스트 ID를 처리하는 방법을 설명하는 데이터 흐름도이다.
제2그룹(GP2)에 속하는 각 애플리케이션(APP21~APP2k)이 콘텍스트 ID(CID2)를 이용하여 제2그룹(GP1)에 속하는 파일(FILL11)에 대한 라이트 동작을 시도할 때, 호스트(200)는 콘텍스트 ID(CID2)을 포함하는 라이트 명령을 메모리 장치(300)로 전송한다(S710). 메모리 장치(300)의 CPU(313)는 상기 라이트 명령을 해석하고 해석의 결과에 따라 콘텍스트 ID(CID2)을 포함하는 라이트 명령을 불법 (illegal)으로 처리한다(S720).
제2그룹(GP2)에 속하는 각 애플리케이션(APP21~APP2k)이 콘텍스트 ID(CID2)를 이용하여 제2메모리(329)에 저장된 암호화된 파일에 대한 리드 동작을 시도할 때, 호스트(200)는 콘텍스트 ID(CID2)을 포함하는 리드 명령을 메모리 장치(300)로 전송한다(S710).
메모리 장치(300)의 CPU(313)는 상기 리드 명령을 해석하고 해석의 결과에 따라 가비지 데이터 또는 암호화된 파일을 그대로 전송한다(S730). 따라서, 호스트 (200)에는 암호키가 존재하지 않으므로, 호스트(200)는 암호화된 파일을 복호화할 수 없다.
도 15는 도 1에 도시된 데이터 처리 시스템이 모바일 장치일 때 상기 모바일 장치의 동작을 설명하기 위한 개념도이다.
도 1부터 도 15를 참조하면, 데이터 처리 시스템(100)의 디스플레이(700)의 그래픽 사용자 인터페이스 디스플레이 영역(701)에는 복수의 애플리케이션들(APP11과 APP21)에 대한 GUI들(702와 703)이 디스플레이된다. 각 애플리케이션(APP11과 APP21)은 각 GUI(702와 703)에 대한 선택 또는 터치에 의해 실행될 수 있다.
각 애플리케이션(APP11과 APP21)이 실행되면, 호스트(200)의 CPU(220)는 도 2부터 도 13을 참조하여 설명된 단계들을 수행할 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100; 데이터 처리 시스템
200; 호스트
220; CPU
230; 입출력 인터페이스
240; 장치 인터페이스
250; 네트워크 인터페이스
300; 메모리 장치
313; CPU
315; 내부 메모리
317; 호스트 인터페이스
319; DMA 컨트롤러
321; 암복호화 엔진
323; DRAM 컨트롤러
327; 플래시 메모리 컨트롤러
400; 인터페이스
500; 네트워크
600; 서버

Claims (10)

  1. 메모리 장치와 호스트를 포함하는 시스템의 동작 방법에 있어서,
    상기 호스트가 상기 메모리 장치로 콘텍스트 ID 리스트의 전송을 요청하는 단계;
    상기 호스트가 상기 메모리 장치로부터 전송된 상기 콘텍스트 ID 리스트에 포함된 콘텍스트 ID들에 기초하여 애플리케이션별로 대응되는 콘텍스트 ID를 할당하는 단계; 및
    상기 호스트가, 상기 애플리케이션별로 관련된 파일을 상기 메모리 장치와 주거나 받을 때마다, 상기 애플리케이션별로 할당된 상기 콘텍스트 ID를 상기 메모리 장치로 전송하는 단계를 포함하는 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 메모리 장치가, 상기 애플리케이션별로 관련된 상기 파일을 상기 호스트와 주거나 받을 때마다, 상기 애플리케이션별로 할당된 암호키를 이용하여 상기 파일을 암호화하거나 복호화하는 단계를 더 포함하는 시스템의 동작 방법.
  3. 제2항에 있어서,
    상기 메모리 장치는 상기 호스트로부터 출력된 상기 콘텍스트 ID를 포함하는 무효화 명령에 기초하여 상기 암호키를 무효화하는 단계를 더 포함하는 시스템의 동작 방법.
  4. 제1항에 있어서,
    상기 애플리케이션이 패스워드를 필요로 하는 애플리케이션일 때, 상기 호스트가 상기 애플리케이션에 할당된 상기 콘텍스트 ID와 함께 상기 패스워드를 상기 메모리 장치로 전송하는 단계; 및
    상기 메모리 장치가 상기 콘텍스트 ID와 상기 패스워드를 이용하여 상기 애플리케이션에 대한 인증키를 생성하는 단계를 더 포함하는 시스템의 동작 방법.
  5. 제4항에 있어서,
    상기 패스워드는 사용자에 의해 입력되는 시스템의 동작 방법.
  6. 제4항에 있어서,
    상기 패스워드는 상기 호스트와 통신할 수 있는 서버로부터 입력되는 시스템의 동작 방법.
  7. 제4항에 있어서,
    상기 인증키가 생성된 후, 상기 메모리 장치가 상기 호스트로부터 새로운 콘텍스트 ID와 새로운 패스워드를 수신하는 단계; 및
    상기 메모리 장치가 상기 새로운 콘텍스트 ID와 상기 새로운 패스워드를 이용하여 새로운 인증키를 생성하는 단계; 및
    상기 인증키와 상기 새로운 인증키가 일치할 때, 상기 메모리 장치는 상기 호스트로부터 출력된 상기 새로운 콘텍스트 ID를 포함하는 명령에 따라 상기 암호키를 이용하여 상기 파일을 암호화하거나 복호화하는 단계를 더 포함하는 시스템의 동작 방법.
  8. 호스트로부터 출력된 명령에 응답하여, 콘텍스트 ID들을 포함하는 콘텍스트 ID 리스트를 상기 호스트로 전송하는 단계;
    상기 호스트로부터 출력되고 상기 콘텍스트 ID들 중에서 상기 호스트에서 실행되는 애플리케이션에 할당된 콘텍스트 ID와 상기 애플리케이션에 관련된 파일을 수신하는 단계;
    상기 콘텍스트 ID 리스트에 포함되고 상기 콘텍스트 ID에 할당된 암호 키를 이용하여 상기 파일을 암호화하는 단계; 및
    상기 암호화된 파일을 메모리 영역에 저장하는 단계를 포함하는 메모리 장치의 동작 방법.
  9. 제8항에 있어서, 상기 수신하는 단계는,
    상기 호스트로부터 출력된 상기 콘텍스트 ID와 패스워드를 수신하고, 상기 콘텍스트 ID와 상기 패스워드를 이용하여 제1인증 키를 생성하는 단계;
    상기 호스트로부터 출력된 새로운 콘텍스트 ID와 새로운 패스워드를 수신하고, 상기 새로운 콘텍스트 ID와 상기 새로운 패스워드를 이용하여 제2인증 키를 생성하는 단계; 및
    상기 제1인증 키와 상기 제2인증 키가 서로 일치할 때, 상기 콘텍스트 ID와 상기 파일을 수신하는 단계를 더 포함하는 메모리 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 제1인증 키와 상기 제2인증 키 각각은 해시 함수를 이용하여 생성되는 메모리 장치의 동작 방법.
KR1020140016393A 2014-02-13 2014-02-13 모바일 스토리지의 파일별 암복호화 방법들 KR20150095273A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140016393A KR20150095273A (ko) 2014-02-13 2014-02-13 모바일 스토리지의 파일별 암복호화 방법들
US14/621,625 US20150227755A1 (en) 2014-02-13 2015-02-13 Encryption and decryption methods of a mobile storage on a file-by-file basis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140016393A KR20150095273A (ko) 2014-02-13 2014-02-13 모바일 스토리지의 파일별 암복호화 방법들

Publications (1)

Publication Number Publication Date
KR20150095273A true KR20150095273A (ko) 2015-08-21

Family

ID=53775186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140016393A KR20150095273A (ko) 2014-02-13 2014-02-13 모바일 스토리지의 파일별 암복호화 방법들

Country Status (2)

Country Link
US (1) US20150227755A1 (ko)
KR (1) KR20150095273A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018186543A1 (ko) * 2017-04-07 2018-10-11 주식회사트러스트홀딩스 장치 인증키를 이용한 데이터 암호화 방법 및 시스템
US10635839B2 (en) 2017-05-02 2020-04-28 Electronics And Telecommunications Research Institute Fixed-location IoT device for protecting secure storage access information and method for protecting secure storage access information of fixed-location IoT device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967319B2 (en) * 2014-10-07 2018-05-08 Microsoft Technology Licensing, Llc Security context management in multi-tenant environments
US10896267B2 (en) * 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
JP2023045300A (ja) * 2021-09-21 2023-04-03 株式会社東芝 ディスク装置および記憶装置

Family Cites Families (4)

* 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
US7945788B2 (en) * 2005-05-03 2011-05-17 Strong Bear L.L.C. Removable drive with data encryption
US9449183B2 (en) * 2012-01-28 2016-09-20 Jianqing Wu Secure file drawer and safe
KR20150059439A (ko) * 2013-11-22 2015-06-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018186543A1 (ko) * 2017-04-07 2018-10-11 주식회사트러스트홀딩스 장치 인증키를 이용한 데이터 암호화 방법 및 시스템
KR20180113688A (ko) * 2017-04-07 2018-10-17 주식회사트러스트홀딩스 장치 인증키를 이용한 데이터 암호화 방법 및 시스템
US11128455B2 (en) 2017-04-07 2021-09-21 Trusst Holdings Inc. Data encryption method and system using device authentication key
US10635839B2 (en) 2017-05-02 2020-04-28 Electronics And Telecommunications Research Institute Fixed-location IoT device for protecting secure storage access information and method for protecting secure storage access information of fixed-location IoT device

Also Published As

Publication number Publication date
US20150227755A1 (en) 2015-08-13

Similar Documents

Publication Publication Date Title
US20210192090A1 (en) Secure data storage device with security function implemented in a data security bridge
EP3050335B1 (en) Systems and methods for nfc access control in a secure element centric nfc architecture
KR101608510B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
US10032038B2 (en) File system support for rolling keys
KR20150095273A (ko) 모바일 스토리지의 파일별 암복호화 방법들
EP4052414B1 (en) Method and electronic device for managing digital keys
CN107315966B (zh) 固态硬盘数据加密方法及系统
US20150242609A1 (en) Universal Authenticator Across Web and Mobile
JP6756056B2 (ja) 身元検証による暗号チップ
US11243881B2 (en) Practical ORAM delegation for untrusted memory on cloud servers
TW201530344A (zh) 應用程式存取保護方法及應用程式存取保護裝置
CN111949372B (zh) 一种虚拟机迁移方法、通用处理器及电子设备
CN102200948A (zh) 多分区存储装置及其访问方法
US20220141001A1 (en) Secure communication in accessing a network
CN109960935B (zh) 确定tpm可信状态的方法、装置及存储介质
CN110619237A (zh) 数据存储方法、装置、计算机设备以及存储介质
US20190109829A1 (en) Apparatus and method for storing device data in internet-of-things environment
US20200274862A1 (en) Runtime identity confirmation for restricted server communication control
KR102537788B1 (ko) 서버 및 이를 이용한 어플리케이션의 무결성 판단 방법
KR101719129B1 (ko) 크로스 플랫폼 엔드포인트 보안시스템
KR101320739B1 (ko) 휴대용 단말의 메모리 보안 시스템
CN115544547A (zh) 一种移动硬盘加密方法、装置、电子设备以及存储介质
KR20220162609A (ko) 저장 디바이스와 호스트 디바이스 사이의 데이터 전송을 인증하는 모듈 및 방법
CN102426635B (zh) 文件信息显示装置、显示方法及系统
CN104580181A (zh) 加密数据的方法、装置及加密加速引擎

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid