KR20140088414A - 보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법 - Google Patents

보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법 Download PDF

Info

Publication number
KR20140088414A
KR20140088414A KR1020130000268A KR20130000268A KR20140088414A KR 20140088414 A KR20140088414 A KR 20140088414A KR 1020130000268 A KR1020130000268 A KR 1020130000268A KR 20130000268 A KR20130000268 A KR 20130000268A KR 20140088414 A KR20140088414 A KR 20140088414A
Authority
KR
South Korea
Prior art keywords
security
data
logic
area
security data
Prior art date
Application number
KR1020130000268A
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 KR1020130000268A priority Critical patent/KR20140088414A/ko
Priority to US14/143,574 priority patent/US20140189370A1/en
Publication of KR20140088414A publication Critical patent/KR20140088414A/ko

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/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Abstract

본 발명은 읽기 접근 불가능한 영역에 저장 되는 보안 데이터가 올바르게 저장 되었는지 검증하기 위한 기능을 구비한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 방법에 관한 것이다. 본 발명의 메모리 장치는 외부 장치로부터 보안 데이터 예측 값이 포함 된 저장 검증 커맨드를 입력 받는 보안 로직, 상기 외부 장치로부터 사용자 데이터의 입력 요청 또는 출력 요청을 입력 받아, 요청 된 작업을 수행하는 I/O 로직 및 상기 보안 데이터를 저장하고, 상기 보안 로직에 의하여만 억세스 되는 보안 영역 및 상기 사용자 데이터를 저장 하고, 상기 I/O 로직을 통하여 억세스 되는 일반 영역을 포함하는 메모리부를 포함한다. 이 때, 상기 보안 로직은 상기 저장 검증 커맨드 입력에 응답하여, 상기 보안 영역으로부터 상기 보안 데이터를 리드하고 상기 보안 데이터와 상기 보안 데이터 예측 값의 일치 여부에 따라 저장 검증 결과를 상기 외부 장치에 출력하고, 상기 보안 데이터를 상기 외부 장치에 출력하지 않는다.

Description

보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법{Memory device, system and verifying method for verifying of secure data storage}
본 발명은 보안 데이터가 올바르게 저장 되었는지 검증하기 위한 기능을 구비한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 방법에 관한 것이다. 보다 자세하게는, 읽기 접근 불가능한 영역에 저장 되는 보안 데이터가 올바르게 저장 되었는지 검증하기 위한 기능을 구비한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 방법에 관한 것이다.
보안 데이터의 유출을 막기 위하여, 상기 보안 데이터를 메모리 장치의 읽기 접근 불가능한 영역에 기록(program) 하는 경우, 상기 보안 데이터를 기록 한 후 read back after program 등의 방식으로 저장이 올바르게 되었는지 검증하는 것이 불가능하다. 상기 보안 데이터가 상기 메모리 장치를 인증(authentication)하는 용도 등으로 사용 된다면, 보안 데이터의 잘못된 기록으로 인하여 상기 메모리 장치의 인증이 실패할 수 있다.
따라서, 보안 데이터를 읽기 접근 불가능한 영역에 저장하는 메모리 장치는 저장 된 상기 보안 데이터가 올바르게 저장 되었는지 검증할 수 있는 기능을 구비할 필요가 있다.
본 발명이 해결하려는 과제는, 보안 데이터를 읽기 접근 불가능한 영역에 저장하되, 저장 된 보안 데이터가 올바르게 저장 되었는지 검증할 수 있는 기능을 구비한 메모리 장치와 보안 데이터 저장 검증 시스템 및 그 검증 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 보안 데이터를 읽기 접근 불가능한 영역에 저장하고, 저장 된 보안 데이터가 올바르게 저장 되었는지 검증하되, 검증 과정에서 상기 보안 데이터가 유출 되지 않도록 하는 보안 데이터 저장 검증 시스템 및 그 검증 방법을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 메모리 장치의 일 태양(aspect)은 외부 장치로부터 보안 데이터 예측 값이 포함 된 저장 검증 커맨드를 입력 받는 보안 로직, 상기 외부 장치로부터 사용자 데이터의 입력 요청 또는 출력 요청을 입력 받아, 요청된 작업을 수행하는 I/O 로직 및 상기 보안 데이터를 저장하고, 상기 보안 로직에 의하여만 억세스 되는 보안 영역 및 상기 사용자 데이터를 저장 하고, 상기 I/O 로직을 통하여 억세스 되는 일반 영역을 포함하는 메모리부를 포함한다. 이 때, 상기 보안 로직은 상기 저장 검증 커맨드 입력에 응답하여, 상기 보안 영역으로부터 상기 보안 데이터를 리드하고 상기 보안 데이터와 상기 보안 데이터 예측 값의 일치 여부에 따라 저장 검증 결과를 상기 외부 장치에 출력하고, 상기 보안 데이터를 상기 외부 장치에 출력하지 않는다.
일 실시예에 따른 상기 메모리 장치의 상기 보안 영역은 1회의 데이터 쓰기만 가능한 영역이고, 상기 보안 로직에 의하여만 읽기 전용에 한하여 억세스 되는 영역일 수 있다. 또한, 상기 보안 데이터는 상기 상기 메모리 장치의 제조 시, 또는 상기 메모리부의 제조 시에 상기 보안 영역에 저장 될 수 있다. 상기 보안 데이터가 상기 메모리 장치의 제조 시에 저장 되는 경우, 상기 보안 데이터의 저장은 상기 보안 로직을 통하여 수행 될 수 있다. 또한, 상기 보안 데이터는 상기 메모리부의 고유한 식별자이거나, 상기 메모리 장치의 고유한 식별자일 수 있다.
일 실시예에 따른 상기 메모리 장치의 상기 메모리부는 상기 일반 영역이 읽기 전용 억세스 만 가능한 시스템 영역 및 읽기/쓰기 억세스가 가능한 사용자 영역을 포함하는 것일 수 있다. 상기 시스템 영역에는 상기 보안 데이터가 암호화 된 데이터가 저장 될 수 있다.
상기 과제를 해결하기 위한 본 발명의 보안 데이터 저장 검증 시스템의 일 태양은 보안 데이터 예측 값이 포함 된 검증 요청 신호를 입력 받는 저장 검증부, 상기 저장 검증부로부터 저장 검증 커맨드를 입력 받는 보안 로직, 상기 외부 장치로부터 사용자 데이터의 입력 요청 또는 출력 요청을 입력 받아, 요청 된 작업을 수행하는 I/O 로직 및 상기 보안 데이터를 저장하고, 상기 보안 로직에 의하여만 억세스 되는 보안 영역 및 상기 사용자 데이터를 저장 하고, 상기 I/O 로직을 통하여 억세스 되는 일반 영역을 포함하는 메모리부를 포함한다. 이 때, 상기 보안 로직은 상기 저장 검증 커맨드 입력에 응답하여, 상기 보안 영역으로부터 상기 보안 데이터를 리드하고 상기 보안 데이터를 기 지정 된 고정 방식으로 변환하여 상기 저장 검증부에 출력하고, 상기 저장 검증부는, 상기 보안 로직으로부터 변환 된 보안 데이터를 제공 받아, 상기 변환 된 보안 데이터를 이용하여 상기 보안 데이터와 상기 예측 값의 일치 여부를 판정하며, 상기 일치 여부에 따라 저장 검증 결과를 출력할 수 있다.
일 실시예에 따른 상기 보안 데이터 저장 검증 시스템은 상기 보안 로직, I/O 로직 및 메모리부를 구비하는 메모리 장치와 상기 저장 검증부를 구비하는 호스트를 포함할 수 있다.
일 실시예에 따른 상기 보안 데이터 저장 검증 시스템은 상기 보안 로직, I/O 로직 및 메모리부를 구비하는 메모리 장치와 상기 메모리 장치와 연결 되어 상기 메모리 장치를 제어하고, 상기 저장 검증부를 구비하는 컨트롤러를 포함할 수 있다.
일 실시예에 따른 상기 보안 데이터 저장 검증 시스템은 상기 보안 데이터를 소정의 검증용 키로 암호화 하여 상기 저장 검증부에 출력하는 상기 보안 로직 및 상기 보안 로직으로부터 제공 받은 데이터를 상기 검증용 키로 복호화 하여 상기 보안 데이터를 추출하여 상기 추출 된 보안 데이터와 상기 예측 값의 일치 여부를 판정하는 상기 저장 검증부를 포함할 수 있다. 상기 저장 검증부는, 상기 일치 여부의 판정 후 상기 보안 데이터를 바로 삭제하여 상기 보안 데이터의 유출 가능성을 줄일 수 있다. 또한, 상기 검증용 키는 상기 메모리 장치의 제조 시에 상기 보안 로직 및 상기 저장 검증부에 저장 될 수 있다.
일 실시예에 따른 상기 보안 데이터 저장 검증 시스템의 메모리부는 상기 일반 영역이 읽기 전용 억세스 만 가능한 시스템 영역 및 읽기/쓰기 억세스가 가능한 사용자 영역을 포함하는 것일 수 있다. 상기 시스템 영역에는 상기 보안 데이터가 암호화 된 데이터가 저장 될 수 있다.
일 실시예에 따른 상기 보안 데이터 저장 검증 시스템은 상기 보안 데이터를 기 지정 된 일방향 함수에 입력하여 상기 일방향 함수의 출력값을 상기 저장 검증부에 출력하는 상기 보안 로직 및 상기 보안 로직으로부터 제공 받은 일방향 함수 출력 값과, 상기 예측 값을 상기 일방향 함수에 입력하여 출력 된 값의 일치 여부를 판정하는 상기 저장 검증부를 포함할 수 있다. 상기 저장 검증부는, 상기 일치 여부의 판정 후 상기 보안 로직으로부터 제공 받은 일방향 함수 출력 값을 바로 삭제하여 상기 보안 데이터의 유출 가능성을 줄일 수 있다.
상기 과제를 해결하기 위한 본 발명의 보안 데이터 저장 검증 방법의 일 태양(aspect)은, 메모리 장치의 저장 영역 중 상기 메모리 장치의 보안 로직에 의하여만 억세스 되는 영역인 보안 영역에 보안 데이터를 기록하되, 상기 보안 로직은 상기 보안 데이터를 출력하지 않는 것이고, 보안 데이터 예측 값을 포함한 저장 검증 커맨드를 상기 메모리 장치의 I/O 인터페이스를 통하여 상기 보안 로직에 입력하고, 상기 I/O 인터페이스를 통하여 상기 보안 로직으로부터 검증 결과 신호를 제공받는 것을 포함한다. 이 때, 상기 검증 결과 신호는 상기 보안 데이터 예측 값과 상기 보안 로직에 의하여 리드된 상기 보안 데이터의 일치 여부에 대한 판정 결과인 것이 바람직하다.
상기 과제를 해결하기 위한 본 발명의 보안 데이터 저장 검증 방법의 다른 태양(aspect)은, 메모리 장치의 저장 영역 중 상기 메모리 장치의 보안 로직에 의하여만 억세스 되는 영역인 보안 영역에 보안 데이터를 기록하되, 상기 보안 로직은 상기 보안 데이터를 출력하지 않는 것이고, 저장 검증 커맨드를 상기 메모리 장치의 I/O 인터페이스를 통해 상기 보안 로직에 입력하고, 상기 저장 검증 커맨드 입력에 대한 응답으로, 기 지정된 고정 방식으로 변환된 상기 보안 데이터를 상기 I/O 인터페이스를 통해 상기 보안 로직으로부터 제공받고, 상기 변환된 보안 데이터를 이용하여, 보안 데이터 예측 값과 상기 보안 영역에 기록된 상기 보안 데이터가 일치하는지 판정하는 것을 포함한다.
일 실시예에 따르면, 상기 변환된 보안 데이터는, 상기 보안 로직에 저장된 검증용 키를 이용하여 상기 보안 데이터가 암호화된 것이고, 상기 판정하는 것은, 상기 검증용 키를 이용하여 상기 변환된 보안 데이터를 복호화하여 상기 보안 영역에 기록된 상기 보안 데이터와 상기 보안 데이터 예측 값이 일치하는지 판정하는 것을 포함할 수 있다.
본 발명에 따른 저장 검증 방법은 상기 메모리 장치의 제조 시, 상기 보안 영역에 기록된 상기 보안 데이터가 올바르게 기록되었는지를 검증하기 위하여 실시될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 따르면, 보안 데이터가 읽기 접근 불가능한 영역에 저장되더라도, 상기 보안 데이터가 어떠한 값으로 저장 되었는지 상기 보안 데이터의 유출 위험을 최소화하여 검증 할 수 있는 효과가 있다.
도 1 내지 3은 본 발명의 일 실시예에 따른 메모리 장치의 블록구성도들이다.
도 4는 본 발명의 일 실시예에 따른 메모리 장치의 보안 로직 기능을 설명하기 위한 세부 블록구성도이다.
도 5는 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 메모리 장치와 호스트를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 보안 데이터 저장 검증 시스템의 블록구성도이다.
도 8 및 9는 본 발명의 일 실시예들에 따른 보안 데이터 저장 검증 시스템의 구성을 나타내는 도면들이다.
도 10 및 11은 본 발명의 일 실시예들에 따른 보안 데이터 저장 검증 시스템의 보안 로직 및 저장 검증부의 동작을 설명하기 위한 세부 블록구성도들이다.
도 12 및 13은 본 발명의 일 실시예들에 따른 보안 데이터 저장 검증 시스템의 동작을 설명하기 위한 순서도들이다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
본 실시예에서 사용되는 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 본 발명의 일 실시예에 따른 메모리 장치에 대하여 도 1 내지 4를 참조하여 설명한다. 도 1 내지 2는 본 실시예에 따른 메모리 장치(10)의 기본 블록 구성도이고, 도 3은 본 실시예에 따른 메모리 장치(10)의 메모리부(100)가 보안 영역(110), 시스템 영역(121) 및 사용자 영역(122)의 세 개 영역으로 구분 되는 경우의 블록 구성도이다. 또한, 도 4는 본 실시예에 따른 메모리 장치(10)에 구비 된 보안 로직(200)의 저장 검증 관련 동작을 설명하기 위한 상세 블록도이다.
먼저, 도 1을 참조하여 설명한다. 도 1에는 본 실시예에 따른 메모리 장치(10)가 도시 된다. 메모리 장치(10)는 메모리부(100), 보안 로직(200), I/O 로직(300) 및 I/O 인터페이스(400)를 포함한다.
먼저, I/O 인터페이스(400)는 메모리 장치(10)와 외부 장치 사이의 신호 송수신을 중계한다. 즉, 메모리 장치(10)에 입력되거나 출력되는 모든 신호는 I/O 인터페이스(400)를 경유하며, I/O 인터페이스(400)를 통하지 않고 메모리 장치(10)에 신호를 입력하거나, 메모리 장치(10)로부터 신호를 출력받을 수는 없다.
I/O 인터페이스(400)는 호스트 등 외부 장치와 직접 연결 될 수도 있고, 메모리부(100)를 제어하기 위한 컨트롤러(미도시)를 통하여 상기 외부 장치와 연결 될 수도 있다.
메모리부(100)는 불휘발성 메모리로서, NAND-FLASH 메모리, NOR-FLASH 메모리, 상변화 메모리 (PRAM: Phase change Random Access Memory), 고체 자기 메모리(MRAM: Magnetic Random Access Memory), 저항 메모리(RRAM, Resistive Random Access Memory)를 저장 수단으로 사용 한 칩 또는 패키지 일 수 있다. 또한, 상기 패키지 방식과 관련하여, 메모리 소자(100)는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
메모리부(100)는 보안 영역(110) 및 일반 영역(120)을 포함할 수 있다. 일반 영역(120)은 I/O 로직(300)에 의하여 억세스 가능하나, 보안 영역(110)은 I/O 로직(300)에 의하여 억세스 될 수 없는 영역이다. 보안 영역(110)은 보안 로직(200)에 의하여만 억세스 될 수 있다. 보안 영역(110)에 저장 되는 데이터 중 소정의 데이터를 보안 데이터로, 일반 영역에 저장 되는 데이터 중 소정의 데이터를 사용자 데이터로 각각 지칭한다.
보안 영역(110)은 1회의 데이터 쓰기만 가능한 영역인 것이 바람직하다.
상기 보안 데이터는, 예를 들어 메모리부(100)의 고유한 식별자이거나, 메모리 장치(10)의 고유한 식별자일 수 있다. 그러나, 상기 보안 데이터는 상기 식별자들로 한정 되지 않고 외부로 유출 되어서는 안되는 모든 데이터를 의미할 수 있다.
I/O 로직(300)은 I/O 인터페이스(400)를 통해 외부 장치(미도시)와 연결 되어 상기 외부 장치로부터 사용자 데이터의 입력 요청 또는 출력 요청을 입력 받아, 요청 된 작업을 수행한다. I/O 로직(300)은, 예를 들어 READ 커맨드 및 어드레스 정보를 입력 받아 상기 어드레스에 저장 된 사용자 데이터를 출력하거나, WRITE 커맨드, 어드레스 정보 및 데이터를 입력 받아 상기 어드레스에 상기 데이터를 저장할 수 있다. 즉, I/O 로직(300)은 일반 영역(120)에 저장 된 사용자 데이터의 입출력을 중계할 수 있다. 그러나, I/O 로직(300)은 보안 영역(110)에 저장 된 보안 데이터의 입출력은 중계할 수 없다. 보안 영역(110)에 저장 된 데이터는 보안 영역(110)에 의하여만 억세스 가능하도록 하드웨어적으로 설계 되어 있다.
보안 로직(200)은 보안 영역(110)에 하드웨어적으로 연결 되어 보안 영역(110)에 저장 된 보안 데이터에 대한 억세스가 가능하도록 구성 된 회로(circuit)이다. 보안영역(110)은 I/O로직(300)이 처리하는 주소 체계에 포함되지 않는 영역이며, 일반적인 커맨드에 의하여 접근될 수 없다. 소정의 인증 커맨드를 입력 받는 경우 보안 로직(200)이 구동되며, 보안 로직이 인증을 수행하는 과정에서 보안 로직의 내부 동작을 위해서만 보안 영역(110)에 저장된 데이터가 참조될 수 있으며, 참조된 데이터는 I/O 인터페이스(400)를 통하여 외부 전송되지 않는다. 보안 로직(200)은 상기 보안 데이터에 대한 읽기 전용(read only) 억세스 만 가능할 수도 있고, 상기 보안 데이터에 대한 읽기/쓰기 억세스가 모두 가능할 수도 있다. 보안 로직(200) 역시 I/O 로직(300)과 마찬가지로 I/O 인터페이스(400)를 통하여 상기 외부 장치와 직접 연결 되거나, 컨트롤러를 통하여 연결 될 수 있다.
도 2에는 보안 로직(200)이 보안 영역(110)에 억세스 함에 있어서, 읽기 전용 억세스 만 가능한 경우가 도시 되어 있다. 도 2에 도시 된 바와 같이, 보안 로직(200)은 보안 영역(110)에 저장 된 보안 데이터를 리드하기 위한 리드 요청 신호를 메모리부(100)에 송신하고, 그 응답으로 보안 데이터를 제공 받을 수 있다. 보안 로직(200)과는 달리 일반 영역(120)에 읽기/쓰기 억세스가 가능한 I/O 로직(300)은 제어 신호, 주소 정보를 메모리부(100)에 송신하고, 데이터를 메모리부(100)와 송수신할 수 있다. 또한, 도 2에 도시 된 바와 같이, 보안 로직(200)과 I/O 로직(300)이 억세스할 수 있는 메모리부(100)의 메모리 영역은 서로 분리 될 수 있다. 다시 말하면, 보안 로직(200)과 I/O 로직(300) 각각이 억세스 할 수 있는 메모리 영역은 서로 별도로 존재할 수 있다.
상기 보안 데이터가 메모리부(100)의 고유 식별자이거나 메모리 장치(10)의 고유 식별자인 경우, 상기 보안 데이터는 메모리 장치(10)의 제조 시점에 외부 장치로부터 보안 영역(110)에 저장 될 수 있다.
이미 언급한 바와 같이, 보안 영역(110)은 1회의 데이터 쓰기만 가능한 영역일 수 있는데, 이러한 경우 보안 로직(200)은 보안 영역(110)에 대한 쓰기 억세스가 가능하더라도 이미 1회의 데이터 쓰기가 이뤄졌다면 추가적인 데이터 쓰기를 거부할 수 있다.
보안 로직(200)은 보안 영역(110)에 대한 억세스를 통하여 상기 보안 데이터를 리드할 수는 있으나, 상기 보안 데이터를 상기 외부 장치에 출력하지는 않는다. 즉, 보안 로직(200)은 상기 보안 데이터의 출력을 위한 커맨드는 지원하지 않는다. 그대신, 보안 로직(200)은 상기 보안 데이터를 이용하여 상기 외부 장치로부터 요청 된 연산을 수행하여, 그 결과를 출력한다. 예를 들어, 보안 로직(200)은 테스트 장치로부터 보안 데이터 예측 값(expected value)이 포함 된 저장 검증 커맨드를 입력 받을 수 있다. 이미 설명한 바와 같이, 보안 로직(200)은 상기 외부 장치와 연결 되어 상기 저장 검증 커맨드를 입력 받을 수도 있고, 컨트롤러를 통하여 상기 저장 검증 커맨드를 입력 받을 수도 있다.
상기 보안 데이터 예측 값은 보안 영역(110)에 저장 되어 있을 것으로 예측 되는 보안 데이터를 의미한다. 상기 보안 데이터 예측 값은 값(value)으로 기재 되어 있으나, 수치 데이터로 한정 되는 것이 아니라, 모든 타입의 디지털 데이터를 의미한다.
보안 로직(200)은 테스트 장치로부터 상기 저장 검증 커맨드 입력에 응답하여, 보안 영역(110)으로부터 상기 보안 데이터를 리드하고 상기 보안 데이터와 상기 보안 데이터 예측 값의 일치 여부를 판정하며, 판정 결과에 따라 저장 검증 결과를 상기 테스트 장치에 출력한다. 예를 들어, 상기 보안 데이터와 상기 예측 값이 일치하는 경우 검증 결과로 PASS 대응 신호를 출력하고, 그렇지 않은 경우 검증 결과로 FAIL 대응 신호를 출력할 수 있다.
본 실시예에 따른 메모리 장치(10)는 보안 데이터 자체는 물론이고, 역변환 되어 보안 데이터가 유출 될 여지가 있는 변환 된 보안 데이터도 외부로 출력하지 않는다. 본 실시예에 따른 메모리 장치(10)는 예측 값을 입력 받아 그 예측 값이 실제로 저장 된 것인지 여부만을 출력한다. 따라서, 본 실시예에 따른 메모리 장치(10)는 보안 영역(110)에 저장 된 보안 데이터의 유출 가능성을 최소화할 수 있다.
도 3을 참조하여, 본 실시예에 따른 메모리 장치(10)의 메모리 구성 예시를 설명한다. 도 3에 도시 된 바와 같이, 본 실시예에 따른 메모리 장치(10)는 일반 영역(120)이 시스템 영역(121) 및 사용자 영역(122)으로 더 나뉠 수 있다. 시스템 영역(121)은 I/O 로직(300)에 의한 읽기 전용 억세스만 가능한 영역이고, 사용자 영역(122)은 I/O 로직(300)에 의한 읽기/쓰기 억세스가 가능한 영역이다. 시스템 영역(121)에는 보안 영역(110)에 저장 된 보안 데이터(111)가 암호화 된 데이터(112)가 저장 될 수 있다.
사용자 영역(122)에는 사용자 어플리케이션에 의하여 억세스 될 수 있도록 어드레스가 부여된다. 반면에 시스템 영역(121)은 I/O 로직(300)에 의하여 읽기 전용 억세스가 가능하기는 하나, 시스템 영역(121)에는 사용자 어플리케이션에 의하여 억세스 될 수 있도록 하는 어드레스가 부여되어 있지 않은 영역이다. 따라서, 시스템 영역(121)은 소정의 시스템 I/O 함수를 통하여만 억세스될 수 있다.
암호화 된 보안 데이터(112)는 보안 데이터(111)와 함께 메모리 장치(10) 제조시에 프로그램 될 수 있다.
도 4를 참조하여, 본 실시예에 따른 메모리 장치(10)의 보안 로직(200)의 동작을 보다 자세히 설명한다.
먼저, 보안 로직(200)에 보안 데이터(111)가 저장 될 수 있다. 보안 데이터(111)는 보안 로직(200)을 통해 보안 영역(110)에 저장될 수도 있고, 메모리 장치(10)의 제조시에 보안 영역(110)에 직접 프로그램될 수도 있다. 그 후에, 상기 저장이 올바르게 이뤄졌는지 확인하기 위하여, 보안 로직(200)에 기대 값을 포함한 저장 검증 커맨드가 입력 되면, 보안 로직(200)은 보안 영역(110)에 저장 된 보안 데이터(111)를 리드한다. 그 후에 비교 로직(202)은 리드 된 보안 데이터와 상기 기대 값의 일치 여부를 판정한다. 상기 판정 여부에 따라 상기 저장 검증 커맨드에 대한 응답으로써 PASS 대응 신호 또는 FAIL 대응 신호가 출력 된다. 즉, 리드 된 보안 데이터와 상기 기대 값이 일치하면 PASS 신호, 불일치하면 FAIL 대응 신호가 각각 출력 된다.
다음으로, 본 발명의 일 실시예에 따른 메모리 장치의 저장 검증 방법을 설명한다. 도 5에는 본 실시예에 따른 메모리 장치의 저장 검증 방법의 순서도가 도시 되어 있다.
먼저, 메모리 장치의 제조 시점에 보안 데이터가 메모리 장치의 보안 영역(110)에 저장 될 수 있다(S202). 이미 설명한 바와 같이, 보안 영역(110)은 보안 로직(200)에 의하여만 억세스 될 수 있고, 한번 기록 되면 추가적으로 기록 될 수 없는 영역이다.
다음으로, 보안 로직(200)이 저장 검증 커맨드를 입력 받는다. 상기 저장 검증 커맨드에는 보안 영역(110)에 저장 되었을 것으로 기대 되는 기대치가 파라미터 형태로 수납 될 수 있다(S204).
보안 로직(200)은 상기 저장 검증 커맨드의 입력에 응답하여, 보안 영역(110)에 저장 된 보안 데이터(111)를 리드하고, 리드 된 보안 데이터와 상기 기대 값의 일치 여부를 판정한다(S208). 상기 판정 여부에 따라 상기 저장 검증 커맨드에 대한 응답으로써 PASS 대응 신호(S212) 또는 FAIL 대응 신호(S210)가 출력 된다.
본 발명에 따른 메모리 장치(10)가 호스트(20)에 연결 되어 동작하는 것에 대하여 도 6을 참조하여 설명한다.
도 6에 도시 된 바와 같이, 호스트(20)가 메모리 장치(10)의 보안 로직(200)에 보안 데이터(X)의 기록을 요청하고, 보안 데이터가 "X"로 제대로 기록 되었는지 확인하기 위하여, 보안 로직(200)에 "X"라는 기대치와 함께 저장 검증 커맨드를 입력한다. 보안 로직(200)은 도 4에 도시 된 동작을 수행하고, 그 결과 값으로 보안 데이터가 "X"로 제대로 기록 되었다면 PASS를 의미하는 응답 신호를 호스트(20)에 출력할 것이다.
이하, 본 발명의 일 실시예에 따른 보안 데이터 저장 검증 시스템에 대하여 도 7 내지 11을 참조하여 설명한다.
도 7에 도시 된 바와 같이, 본 실시예에 따른 보안 데이터 저장 검증 시스템(30)은 저장 검증부(500), 보안 로직(200), I/O 로직(300), I/O 인터페이스(400) 및 메모리부(100)를 포함한다. 저장 검증부(500)는 보안 데이터 기록 장치에 구비되고, 메모리부(100), 보안 로직(200), I/O 로직(300) 및 I/O 인터페이스(400)는 메모리 장치에 구비될 수 있다.
상기 보안 데이터 기록 장치는 메모리 장치의 제조 단계에서 보안데이터를 입력하는 장치일 수 있다.
저장 검증부(500)는 보안 데이터 예측 값이 포함 된 검증 요청을 입력 받아 일련의 저장 검증 프로세스를 수행한다. 상기 저장 검증 요청은 메모리 장치의 제조 단계에서 보안데이터를 보안영역에 기록한 후에 올바르게 기록되어 있는지 확인하기 위해 발생한다.
상기 저장 검증 프로세스는 I/O 인터페이스(400)를 통해 보안 로직(200)에 저장 검증 커맨드를 입력하는 것, 그 응답으로 보안 로직(200)으로부터 I/O 인터페이스(400)를 통해 변환된 보안 데이터를 제공 받는 것, 상기 변환된 보안 데이터를 이용하여 보안 영역(110)에 저장된 보안 데이터(111)와 상기 검증 요청 신호에 포함된 보안 데이터 예측 값의 일치 여부를 판정하는 것, 상기 판정 결과를 출력하는 것을 포함할 수 있다.
한편, 보안 로직(200)은 저장 검증부(500)로부터 상기 저장 검증 커맨드를 입력 받는다. 보안 로직(200)은 상기 저장 검증 커맨드 입력에 응답하여, 보안 영역(110)으로부터 보안 데이터(111)를 리드하고 보안 데이터(111)를 기 지정 된 고정 방식으로 변환하여 상기 저장 검증부에 출력한다.
보안 로직(200)이 보안 데이터(111)를 "기 지정 된 고정 방식"으로 변환하는 것은 상기 저장 검증 커맨드가 입력 될 때마다 항상 동일한 방식으로 보안 데이터(111)를 변환하는 것을 의미한다. 예를 들어, 보안 로직(200)은 고정된 암호화 키를 사용하여 보안 데이터(111)를 암호화하여 출력하거나, 고정된 일방향 함수에 보안 데이터(111)를 입력하여 출력할 수 있다.
I/O 로직(300)은 I/O 인터페이스(400)를 통하여 호스트 등 외부 장치로부터 사용자 데이터의 입력 요청 또는 출력 요청을 입력 받아, 요청 된 작업을 수행한다.
메모리부(100)는 보안 데이터(111)를 저장하고, 상기 보안 로직에 의하여만 억세스 되는 보안 영역(110) 및 상기 사용자 데이터를 저장 하고, I/O 로직(300)을 통하여 억세스 되는 일반 영역(120)을 포함한다.
본 실시예에 따르면, 저장 검증부(500)가 보안 로직(200)으로부터 보안 데이터(111)의 변환 값을 제공 받아, 직접 상기 예측 값과의 일치여부를 판정하여야 한다. 즉, 저장 검증부(500)가 구비 되지 않으면, 보안 로직(200)으로부터 출력 된 보안 데이터(111)의 변환 데이터를 해석할 수 없다. 따라서, 보안 데이터가 유출 될 가능성을 낮출 수 있는 효과가 있다.
도 8을 참조하면, 본 실시예에 따른 보안 데이터 저장 검증 시스템(30)은 보안 로직(200), I/O 로직(300), I/O 인터페이스(400) 및 메모리부(100)를 구비하는 메모리 장치 및 저장 검증부(500)를 구비하는 호스트를 포함할 수도 있다. 상기 호스트는 상기 메모리 장치와 연결 되어 동작할 수 있다. 상기 메모리 장치는 예를 들어, 휴대용 메모리 장치로써, SD 카드, MMC 카드, 스마트 카드, USB 메모리 등일 수 있다. 상기 메모리 장치는 SSD(Solid State Drive)일 수도 있다. 저장 검증부(500)는 도 7을 참조하여 설명한 저장 검증부(500)와 동일하게 동작할 수 있다. 다만, 도 8에 도시된 저장 검증부(500)는 인증 된 어플리케이션 프로그램으로부터만 상기 저장 검증 요청을 입력 받는 것이 바람직하다. 해킹용 프로그램으로부터 상기 저장 검증 요청을 입력 받는 것이 허용 되는 경우, 상기 해킹용 프로그램은 랜덤으로 상기 보안 데이터 예측 값을 생성하고 상기 저장 검증 요청을 저장 검증부(500)에 입력하는 동작을 반복하여 보안 데이터(111)를 획득할 수 있기 때문이다.
상기 호스트는 예를 들어, 컴퓨터, UMPC (Ultra Mobile PC), 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치를 의미할 수 있다.
도 9를 참조하면, 본 실시예에 따른 보안 데이터 저장 검증 시스템(30)은 보안 로직(200), I/O 로직(300) 및 메모리부(100)를 구비하는 메모리 장치와 저장 검증부(500)를 구비하는 컨트롤러를 포함할 수도 있다. 도 9에 도시 된 보안 데이터 저장 검증 시스템(30)은, 예를 들어 휴대용 메모리 장치로써, SD 카드, MMC 카드, 스마트 카드, USB 메모리 등일 수 있다. 도 9에 도시 된 보안 데이터 저장 검증 시스템(30)은, SSD(Solid State Drive)일 수도 있다.
도 9의 저장 검증부(500)는 상기 컨트롤러를 통해 호스트 등 외부 장치로부터 상기 저장 검증 요청을 입력받고, 검증 결과를 상기 컨트롤러를 통해 상기 외부 장치에 출력하는 점을 제외하고는 도 7을 참조하여 설명한 저장 검증부(500)와 동일하게 동작할 수 있다. 다만, 도 9에 도시된 저장 검증부(500)도, 도 8을 참조하여 설명된 저장 검증부(500)와 마찬 가지로, 외부 장치의 인증 된 어플리케이션 프로그램으로부터만 상기 저장 검증 요청을 입력 받는 것이 바람직하다.
이하, 도 10을 참조하여 일 실시예에 따른 보안 데이터 저장 검증 시스템(30)의 동작을 보다 자세히 설명한다.
본 실시예에 따른 보안 데이터 저장 검증 시스템(30)은 보안 데이터(111)를 검증용 키로 암호화 하여 저장 검증부(500)에 출력하는 보안 로직(200)을 포함한다. 즉, 보안 로직(200)은 보안 데이터(111)를 암호화 형식으로 변환하여 출력한다. 이 때, 암호화에 사용 되는 제2 키(450)는 보안 로직(200)에 구비 된 비휘발성 저장부에 저장 되거나, Hard wired 된 것일 수 있다. 이 때, 저장 검증부(500)는 보안 데이터 기록 장치 또는 보안 데이터 기록 검증 장치에 구비된 것일 수 있다.
보안 로직(200)은 암호화 키와 복호화 키가 동일하도록 대칭형 암호화 알고리즘을 이용하여 보안 데이터(111)를 암호화하는 것이 바람직하다. 상기 대칭형 암호화 알고리즘으로, 예를 들어 AES(Advanced Encryption Standard) 표준에 따르는 암호화 알고리즘이 사용 될 수 있다.
한편, 이미 언급한 바와 같이, 메모리부(100)의 시스템 영역(121)에 암호화 된 보안 데이터(112)가 저장 될 수 있는 데, 보안 데이터를 암호화 하는 데 사용하는 제1 키와 제2 키(450)는 상이하다. 따라서, 시스템 영역(121)에 저장 된 암호화 된 보안 데이터(112)와 보안 로직(200)이 저장 검증부(500)에 제공하는 암호화 된 보안 데이터(113)는 서로 다른 데이터이다. 본 명세서에서, 제2 키(450)는 '검증용 키'로 지칭 될 수도 있다.
상기 암호화는 보안 로직(200) 내의 암호화 로직(402)이 담당할 수 있다.
저장 검증부(500) 역시 제2 키(450)를 가지고 있다. 제2 키(450)는 저장 검증부(500)에 구비 된 비휘발성 저장부에 저장 되거나, Hard wired 된 것일 수 있다. 제2 키(450)의 유출이 불가능하도록, 저장 검증부(500)는 외부 장치에 의하여 억세스 되지 않는 저장 수단에 제2 키(450)를 저장하는 것이 바람직하다. 제2 키(450)는 보안 로직(200) 및 저장 검증부(500)의 제조 시에 보안 로직(200) 및 저장 검증부(500)에 저장 될 수 있다.
저장 검증부(500)에 포함 된 복호화 로직(502)은 보안 로직(200)으로부터 제공 된 암호화 된 보안 데이터(113)를 제2 키(450)를 이용하여 복호화 한다. 그 후, 비교 로직(504)이 복호화 된 보안 데이터 및 기대치를 비교하여, 양자가 일치하면 PASS 신호를 출력하고, 불일치하면 FAIL 신호를 출력한다.
저장 검증부(500)는 비교 로직(504)의 일치 여부 판정 이후에 복호화 된 보안 데이터를 바로 삭제하는 것이 바람직하다.
이하, 도 11을 참조하여 일 실시예에 따른 보안 데이터 저장 검증 시스템(30)의 동작을 보다 자세히 설명한다.
본 실시예에 따른 보안 데이터 저장 검증 시스템(30)은 보안 데이터(111)를 기 지정 된 소정의 일방향 함수에 입력하여, 상기 일방향 함수(one-way function)의 출력 값을 저장 검증부(500)에 출력하는 보안 로직(200)을 포함한다. 즉, 본 실시예에 따른 보안 로직(200)은 보안 데이터(111)를 일방향 함수의 함수 값 형식으로 변환하여 출력한다. 상기 일방향 함수는 출력 값으로부터 입력 값을 유추하는 것이 불가능한 함수로, 예를 들어 해쉬(hash) 함수일 수 있다. 이 때, 저장 검증부(500)는 보안 데이터 기록 장치 또는 보안 데이터 기록 검증 장치에 구비된 것일 수 있다.
도 11에 도시된 바와 같이 보안 로직(200)은 해쉬 로직(404)을 포함할 수 있다. 해쉬 로직(404)이 보안 데이터의 해쉬 값을 저장 검증부(500)에 제공한다.
저장 검증부(500) 역시 해쉬 로직(404)을 포함할 수 있다. 저장 검증부(500)는 해쉬 로직(404)을 이용하여 기대치의 해쉬 값을 연산하고, 비교 로직(504)을 이용하여 기대치의 해쉬 값 및 보안 로직(200)으로부터 제공 받은 보안 데이터의 해쉬 값의 일치 여부를 판정한다. 상기 판정 결과, 양자가 일치하면 PASS 신호가 출력 되고, 불일치하면 FAIL 신호가 출력 된다.
다음으로, 본 발명의 일 실시예에 따른 보안 데이터의 저장 검증 방법을 도 12를 참조하여 설명한다.
먼저, 메모리 장치의 제조 시점에 보안 데이터가 메모리 장치의 보안 영역(110)에 저장 될 수 있다(S302). 이미 설명한 바와 같이, 보안 영역(110)은 보안 로직(200)에 의하여만 억세스 될 수 있고, 제조 단계에서 한번 기록 되면 사용자가 추가적으로 기록 할 수 없는 영역이다.
다음으로, 저장 검증부(500)가 저장 검증 요청을 입력 받을 수 있다. 상기 저장 검증 요청에는 보안 영역(110)에 저장 되었을 것으로 기대 되는 기대치가 파라미터 형태로 수납 될 수 있다(S304). 일 실시예에 따르면, 저장 검증부(500)가 저장 검증 요청을 입력 받지 않더라도, 보안 데이터의 저장(S302) 후에, 자동으로 본 실시예에 따른 저장 검증 방법의 수행이 이뤄질 수 있다.
다음으로, 저장 검증부(500)가 보안 로직(200)에 저장 검증 커맨드를 입력한다(S306). 상기 저장 검증 커맨드에는 상기 기대치가 수납 되지 않는다.
보안 로직(200)은 상기 저장 검증 커맨드의 입력에 응답하여, 보안 영역(110)에 저장 된 보안 데이터(111)를 리드하고, 리드 된 보안 데이터를 검증용 키로 암호화하여(S308), 저장 검증부(500)에 제공한다(S310).
저장 검증부(500)는 보안 로직(200)으로부터 제공 된 암호화 된 보안 데이터를 복호화 한 후, 상기 저장 검증 요청과 함께 입력 된 기대치와 비교한다(S312). 저장 검증부(500)는 상기 비교 이후 즉시 복호화 된 보안 데이터를 삭제하는 것이 바람직하다. 저장 검증부(500)는 복호화 된 보안 데이터와 기대치가 일치하면 PASS 신호를 출력하고, 불일치하면 FAIL 신호를 출력한다.
다음으로, 본 발명의 일 실시예에 따른 보안 데이터의 저장 검증 방법을 도 13을 참조하여 설명한다.
먼저, 메모리 장치의 제조 시점에 보안 데이터가 메모리 장치의 보안 영역(110)에 저장 될 수 있다(S302). 이미 설명한 바와 같이, 보안 영역(110)은 보안 로직(200)에 의하여만 억세스 될 수 있고, 제조 단계에서 한번 기록 되면 사용자가 추가적으로 기록 할 수 없는 영역이다.
다음으로, 저장 검증부(500)가 저장 검증 요청을 입력 받을 수 있다. 상기 저장 검증 요청에는 보안 영역(110)에 저장 되었을 것으로 기대 되는 기대치가 파라미터 형태로 수납 될 수 있다(S304). 일 실시예에 따르면, 저장 검증부(500)가 저장 검증 요청을 입력 받지 않더라도, 보안 데이터의 저장(S302) 후에, 자동으로 본 실시예에 따른 저장 검증 방법의 수행이 이뤄질 수 있다.
다음으로, 저장 검증부(500)가 보안 로직(200)에 저장 검증 커맨드를 입력한다(S306). 상기 저장 검증 커맨드에는 상기 기대치가 수납 되지 않는다.
보안 로직(200)은 상기 저장 검증 커맨드의 입력에 응답하여, 보안 영역(110)에 저장 된 보안 데이터(111)를 리드하고, 리드 된 보안 데이터를 일방향 함수, 예를 들어 해쉬 함수에 입력하여(S408), 그 결과 값을 저장 검증부(500)에 제공한다(S410).
보안 로직(200) 뿐만 아니라, 저장 검증부(500)도 상기 저장 검증 요청과 함께 제공 된 기대치를 상기 일방향 함수, 예를 들어 해쉬 함수에 입력한다(S412). 그 후, 저장 검증부(500)는 보안 로직(200)으로부터 제공 된 해쉬 함수 값과 상기 자체 연산 된 해쉬 함수 값의 일치 여부를 비교하여(S414), 양자가 일치하면 PASS 신호를 출력하고, 불일치하면 FAIL 신호를 출력한다(S416).
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
메모리 장치 10
메모리 부 100
보안 로직 200
I/O 로직 300

Claims (10)

  1. I/O 인터페이스;
    상기 I/O 인터페이스를 통하여 외부 장치로부터 보안 데이터 예측 값이 포함 된 저장 검증 커맨드를 입력 받는 보안 로직;
    상기 I/O 인터페이스를 통하여 외부 장치로부터 사용자 데이터의 입력 요청 또는 출력 요청을 입력 받아, 요청 된 작업을 수행하는 I/O 로직; 및
    상기 보안 데이터를 저장하고, 상기 보안 로직에 의하여만 억세스 되는 보안 영역 및 상기 사용자 데이터를 저장 하고, 상기 I/O 로직을 통하여 억세스 되는 일반 영역을 포함하는 메모리부를 포함하되,
    상기 보안 로직은 상기 저장 검증 커맨드 입력에 응답하여, 상기 보안 영역으로부터 상기 보안 데이터를 리드하고 상기 보안 데이터와 상기 보안 데이터 예측 값의 일치 여부에 따라 저장 검증 결과를 상기 외부 장치에 출력하고, 상기 보안 데이터를 상기 외부 장치에 출력하지 않는, 메모리 장치.
  2. 제1 항에 있어서,
    상기 보안 영역은 상기 보안 로직에 의하여만 읽기 전용에 한하여 억세스 되는 영역인, 메모리 장치.
  3. 제1 항에 있어서,
    상기 보안 데이터는 상기 메모리 장치의 고유한 식별자인, 메모리 장치.
  4. 보안 데이터 예측 값이 포함 된 검증 요청 신호를 입력 받는 저장 검증부;
    I/O 인터페이스;
    상기 I/O 인터페이스를 통하여 상기 저장 검증부로부터 저장 검증 커맨드에 응답하는 보안 로직;
    상기 I/O 인터페이스를 통하여 외부 장치로부터 사용자 데이터의 입력 요청 또는 출력 요청을 입력 받아, 요청 된 작업을 수행하는 I/O 로직; 및
    상기 보안 데이터를 저장하고, 상기 보안 로직에 의하여만 억세스 되는 보안 영역 및 상기 사용자 데이터를 저장 하고, 상기 I/O 로직을 통하여 억세스 되는 일반 영역을 포함하는 메모리부를 포함하되,
    상기 보안 로직은 상기 저장 검증 커맨드 입력에 응답하여, 상기 보안 영역으로부터 상기 보안 데이터를 리드하고 상기 보안 데이터를 기 지정 된 고정 방식으로 변환하여 상기 저장 검증부에 출력하고,
    상기 저장 검증부는, 상기 보안 로직으로부터 변환 된 보안 데이터를 제공 받아, 상기 변환 된 보안 데이터를 이용하여 상기 보안 데이터와 상기 예측 값의 일치 여부를 판정하며, 상기 일치 여부에 따라 저장 검증 결과를 출력하는, 보안 데이터 저장 검증 시스템.
  5. 제4 항에 있어서,
    상기 보안 로직, I/O 로직, I/O 인터페이스 및 메모리부는 메모리 장치에 구비 되고, 상기 저장 검증부는 상기 I/O 인터페이스를 통해 상기 메모리 장치와 연결 된 저장 검증 장치에 구비 되는, 보안 데이터 저장 검증 시스템.
  6. 제4 항에 있어서,
    상기 보안 로직은, 상기 보안 데이터를 검증용 키로 암호화 하여 상기 저장 검증부에 출력하고,
    상기 저장 검증부는, 상기 보안 로직으로부터 제공 받은 데이터를 상기 검증용 키로 복호화 하여 상기 보안 데이터를 추출하여 상기 추출 된 보안 데이터와 상기 예측 값의 일치 여부를 판정하는, 보안 데이터 저장 검증 시스템.
  7. 제4 항에 있어서,
    상기 보안 로직은, 상기 보안 데이터를 기 지정 된 일방향 함수에 입력하여 상기 일방향 함수의 출력값을 상기 저장 검증부에 출력하고,
    상기 저장 검증부는, 상기 보안 로직으로부터 제공 받은 일방향 함수 출력 값과, 상기 예측 값을 상기 일방향 함수에 입력하여 출력 된 값의 일치 여부를 판정하는, 보안 데이터 저장 검증 시스템.
  8. 메모리 장치의 저장 영역 중 상기 메모리 장치의 보안 로직에 의하여만 억세스 되는 영역인 보안 영역에 보안 데이터를 기록하되, 상기 보안 로직은 상기 보안 데이터를 출력하지 않는 것이고;
    보안 데이터 예측 값을 포함한 저장 검증 커맨드를 상기 메모리 장치의 I/O 인터페이스를 통하여 상기 보안 로직에 입력하고; 및
    상기 I/O 인터페이스를 통하여 상기 보안 로직으로부터 검증 결과 신호를 제공받는 것을 포함하되,
    상기 검증 결과 신호는 상기 보안 데이터 예측 값과 상기 보안 로직에 의하여 리드된 상기 보안 데이터의 일치 여부에 대한 판정 결과인, 보안 데이터 저장 검증 방법.
  9. 메모리 장치의 저장 영역 중 상기 메모리 장치의 보안 로직에 의하여만 억세스 되는 영역인 보안 영역에 보안 데이터를 기록하되, 상기 보안 로직은 상기 보안 데이터를 출력하지 않는 것이고;
    저장 검증 커맨드를 상기 메모리 장치의 I/O 인터페이스를 통해 상기 보안 로직에 입력하고;
    상기 저장 검증 커맨드 입력에 대한 응답으로, 기 지정된 고정 방식으로 변환된 상기 보안 데이터를 상기 I/O 인터페이스를 통해 상기 보안 로직으로부터 제공받고;
    상기 변환된 보안 데이터를 이용하여, 보안 데이터 예측 값과 상기 보안 영역에 기록된 상기 보안 데이터가 일치하는지 판정하는 것을 포함하는, 보안 데이터 저장 검증 방법.
  10. 제9 항에 있어서,
    상기 변환된 보안 데이터는, 상기 보안 로직에 저장된 검증용 키를 이용하여 상기 보안 데이터가 암호화된 것이고,
    상기 판정하는 것은,
    상기 검증용 키를 이용하여 상기 변환된 보안 데이터를 복호화하여 상기 보안 영역에 기록된 상기 보안 데이터와 상기 보안 데이터 예측 값이 일치하는지 판정하는 것을 포함하는, 보안 데이터 저장 검증 방법.
KR1020130000268A 2013-01-02 2013-01-02 보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법 KR20140088414A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130000268A KR20140088414A (ko) 2013-01-02 2013-01-02 보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법
US14/143,574 US20140189370A1 (en) 2013-01-02 2013-12-30 Memory devices, and systems and methods for verifying secure data storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130000268A KR20140088414A (ko) 2013-01-02 2013-01-02 보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법

Publications (1)

Publication Number Publication Date
KR20140088414A true KR20140088414A (ko) 2014-07-10

Family

ID=51018726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130000268A KR20140088414A (ko) 2013-01-02 2013-01-02 보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법

Country Status (2)

Country Link
US (1) US20140189370A1 (ko)
KR (1) KR20140088414A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190023857A (ko) * 2017-08-30 2019-03-08 한국과학기술원 미들박스 장치 및 이의 암호화된 패킷 처리 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016091134A (ja) * 2014-10-31 2016-05-23 株式会社メガチップス 半導体装置、及び半導体装置の信頼性テスト方法
WO2017163204A1 (en) * 2016-03-23 2017-09-28 Craig Michael Horn A memory management system and method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3638770B2 (ja) * 1997-12-05 2005-04-13 東京エレクトロンデバイス株式会社 テスト機能を備える記憶装置
KR20040015798A (ko) * 2001-07-09 2004-02-19 마츠시타 덴끼 산교 가부시키가이샤 콘텐츠 판독장치
US7174332B2 (en) * 2002-06-11 2007-02-06 Ip. Com, Inc. Method and apparatus for safeguarding files
US20100017627A1 (en) * 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
TWI229741B (en) * 2004-01-16 2005-03-21 Sunplus Technology Co Ltd Device and method for accessing hidden data in boundary scan test interface
US7339400B1 (en) * 2006-06-09 2008-03-04 Xilinx, Inc. Interface port for electrically programmed fuses in a programmable logic device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190023857A (ko) * 2017-08-30 2019-03-08 한국과학기술원 미들박스 장치 및 이의 암호화된 패킷 처리 방법

Also Published As

Publication number Publication date
US20140189370A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
JP6140998B2 (ja) セキュアデータを保護するメモリ装置及びセキュアデータを利用したメモリ装置の認証方法
KR102453780B1 (ko) 액세스 보호 기법을 안전화하기 위한 장치 및 방법
EP1517244B1 (en) Information storage device, memory access control system and method, and computer program
US9325505B2 (en) Apparatus and method for content encryption and decryption based on storage device ID
US9100187B2 (en) Authenticator
EP1519276A1 (en) Information storage device, memory access control system and method, and computer program
US20130318358A1 (en) Apparatus for generating secure key using device and user authentication information
EP1519275A1 (en) Information storage device, memory access control method, and computer program
WO2019184740A1 (zh) 数据加密、解密方法及装置
US20150078550A1 (en) Security processing unit with configurable access control
EP2751732A1 (en) Authenticator, authenticatee and authentication method
US8489899B2 (en) System and method for encrypting and decrypting data
CN103914662A (zh) 一种基于分区的文件加密系统的访问控制方法和装置
CN107526947A (zh) 一种嵌入式软件激活控制方法
KR101888382B1 (ko) 복수 키 활용 지원 저장 장치
KR20140088414A (ko) 보안 데이터의 저장 검증을 위한 메모리 장치, 보안 데이터 저장 검증 시스템 및 그 검증 방법
CN106529271A (zh) 一种终端及其绑定校验方法
WO2015154469A1 (zh) 数据库的操作方法及装置
KR20130050696A (ko) 메모리 시스템
WO2018024797A1 (en) Sequence verification
KR102420035B1 (ko) 저장 디바이스의 인증 변경
KR20210132721A (ko) 네트워크에 액세스 시의 보안 통신
CN111512308A (zh) 一种存储控制器、文件处理方法、装置及系统
WO2010061562A1 (ja) 情報更新装置とその集積回路、情報更新方法、および、記録装置とその集積回路
JP5494389B2 (ja) 電子制御装置

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