KR101536086B1 - 인증장치, 피인증장치, 및 인증 방법 - Google Patents

인증장치, 피인증장치, 및 인증 방법 Download PDF

Info

Publication number
KR101536086B1
KR101536086B1 KR1020147002367A KR20147002367A KR101536086B1 KR 101536086 B1 KR101536086 B1 KR 101536086B1 KR 1020147002367 A KR1020147002367 A KR 1020147002367A KR 20147002367 A KR20147002367 A KR 20147002367A KR 101536086 B1 KR101536086 B1 KR 101536086B1
Authority
KR
South Korea
Prior art keywords
information
data
host device
nand flash
flash memory
Prior art date
Application number
KR1020147002367A
Other languages
English (en)
Other versions
KR20140043135A (ko
Inventor
다쿠 가토
다츠유키 마츠시타
유지 나가이
팡밍 즈하오
Original Assignee
가부시끼가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시끼가이샤 도시바 filed Critical 가부시끼가이샤 도시바
Publication of KR20140043135A publication Critical patent/KR20140043135A/ko
Application granted granted Critical
Publication of KR101536086B1 publication Critical patent/KR101536086B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • 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/42User authentication using separate channels for security data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/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/73Protecting 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 by creating or determining hardware identification, e.g. serial numbers
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/605Copy protection

Abstract

일 실시예에 따르면, 은닉된 제1 키 정보(NKey)를 저장하는 피인증장치를 인증하는 인증장치는 은닉된 제2 키 정보(HKey)를 저장하도록 구성된 메모리와, 난수 정보를 생성하도록 구성된 난수 생성 모듈, 및 제2 키 정보(HKey) 및 난수 정보를 사용하여 세션 키(SKey)를 생성하도록 구성된 데이터 생성 모듈을 포함한다. 인증장치는, 제2 키 정보(HKey)가 제1 키 정보(NKey)로부터 생성되지만, 제1 키 정보(NKey)는 제2 키 정보(HKey)로부터 생성되지 않도록 구성된다.

Description

인증장치, 피인증장치, 및 인증 방법{AUTHENTICATOR, AUTHENTICATEE AND AUTHENTICATION METHOD}
본 출원은 2011년 8월 31일에 출원된 일본 특허출원 제2011-189979호를 기초로 우선권을 주장하며, 그 내용은 여기에 참조로서 원용된다.
여기에 설명된 실시예들은 일반적으로 인증장치, 피인증장치, 및 인증 방법에 관한 것이다.
일반적으로, 정보 보안을 요구하는 분야에서, 자기의 정당성을 증명하기 위한 수단으로서 상호 공유 정보 사용 방법 및 암호화기(encryptor)가 채택되고 있다.
예를 들어, 전자 결제에 사용되는 IC 카드(스마트카드) 등에서, IC 카드를 개별화하기 위한 ID 및 비밀 정보가 카드의 IC에 저장되고, IC 카드는 ID 및 비밀 정보에 기초하여 인증을 실행하기 위한 암호 처리 기능을 갖는다. 다른 예에서, 저작권 보호 내용의 보호의 SD(등록 상표) 카드의 정당성 입증을 위한 수단으로서 CPRM(Content Protection for Recordable Media)에 인증 방법이 규정되어 있다.
예를 들어, 인증을 위한 보안 시스템이 구성되는 경우, 인증 프로세스를 실행하는 디바이스가 공격받고 은닉 정보가 추출되는 경우를 가정할 필요가 있다. 추출된 은닉 정보를 무효화(revoke)하는 것이 중요하다. 전술한 CPRM 또는 블루레이 디스크에 기록된 콘텐츠를 보호하기 위해 규정된 보호 기법인 AACS(Advanced Access Content System)에서는, 은닉 정보인 디바이스 키를 무효화하기 위해 MKB(Media Key Block)가 사용된다. 공개 키 암호체계에 기반한 프로토콜을 채택하는 다른 방법에서는, 유출된 개인 키 정보와 쌍을 이루는 공개 키 인증서의 리스트(Revocation List)가 사용된다.
PC에 설치된 비디오 재생 소프트웨어에 의해, SD(등록 상표) 카드에 기록된 비디오 데이터를 재생하는 시스템을 일례로 취하면, CPRM 프로세스가 하드웨어에 의해 SD(등록 상표)에 구현되며, 은닉 정보를 불법 추출하는 것이 매우 어렵다. 이에 비해, 여러 경우에, 공격 방법으로서 재생 소프트웨어로부터 은닉 정보를 추출하는 것이 더 쉽다. 실제로, 보호 DVD 또는 블루레이 비디오 콘텐츠를 불법 디코딩하기 위한 여러 소프트웨어 아이템들이 이용될 수 있다. 이러한 불법 소프트웨어에서, 정당한 소프트웨어 플레이어로부터 추출된 은닉 정보가 활용된다.
또한, 일부 케이스에서, 카드 위조 소프트웨어 또는 위조 SD 카드에 대한 대응조치를 취할 필요가 있다. 예를 들어, 위장된 모방 SD(등록 상표) 카드는 소프트웨어로부터 추출된 은닉 정보를 사용함으로써 생성되며, 이로써 속임으로 정당한 소프트웨어 플레이어를 사용한다. 예를 들어, 콘텐츠의 암호화에 사용된 암호화 키가 위조 SD(등록 상표) 카드로부터 용이하게 판독될 수 있도록 위조 SD(등록 상표) 카드가 생성된다. 이로써, 정당한 비디오 리코더를 사용함으로써 위조 SD(등록 상표) 카드에 기록된 비디오 콘텐츠를 용이하게 디코딩할 수 있게 된다.
소비자 디바이스와 같은 전용 하드웨어 디바이스뿐 아니라 PC(개인용 컴퓨터) 등에서 실행 가능한 프로그램(소프트웨어)으로서 인증장치가 제공될 수 있으며, 일부 경우에 소프트웨어가 실제 인증장치로서 기능한다. 한편, 피인증장치는, 예를 들어 기록 매체 등이다. "펌웨어"라고 지칭되는 프로그램이 기록 매체를 구성하는 하드웨어 동작을 중재하는 경우에도, 중요한 프로세스 또는 정보가 셀 어레이의 하드웨어에 은닉 상태로 저장된다. 이로 인해, 실제로, 예를 들어, PC에서 실행되는 소프트웨어가 인증장치인 경우에, 기록 매체와 같은 피인증장치에 비해, 탬퍼 레지스턴스(tamper-resistance)(공격에 대한 저항성)가 낮아질 우려가 있다.
이에, 탬퍼 레지스턴스가 낮은 인증장치를 공격함으로써, 높은 탬퍼 레지스턴스을 갖는 피인증장치에 은닉된 비밀 정보 또한 노출되는데, 이는 높은 탬퍼 레지스턴스를 갖는 디바이스로의 위장을 유발한다. 전술한 바와 같이, 비밀 정보의 불법적인 사용의 방지를 위한 수요가 증가하는 경향이 있다.
또한, 최근에, 회로 규모에 대한 제한들이 가해지는 환경, 예를 들어 비교적 대형의 회로 규모를 요구하는 공개 키 암호체계 프로세스 또는 MKB 프로세스의 하드웨어 구현을 이루는 것이 어려운 환경에서도 이러한 수요는 강하다.
도 1은 제1 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 2는 제1 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 3은 제1 실시예에 있어서 SELID(Set of Encrypted LotID: 암호화 LotID 세트)의 구조 예를 도시한 도면이다.
도 4는 제2 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 5는 제2 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 6은 제2 실시예에 있어서 SELID(암호화 LotID 세트)의 구조 예를 도시한 도면이다.
도 7은 제3 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 8은 제3 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 9는 제4 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 10은 제4 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 11은 제5 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 12는 제5 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 13은 제6 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 14는 제6 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 15는 제7 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 16은 제7 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 17은 제7 실시예에 있어서 SELID(암호화 LotID 세트)의 구조 예를 도시한 도면이다.
도 18은 제8 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 19는 제8 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 20은 제8 실시예에 있어서 SECID(Set of Encrypted ChipID: 암호화된 ChipID 세트)의 구조 예를 도시한 도면이다.
도 21은 제9 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 22는 제9 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 23은 제9 실시예에 있어서 SECID(암호화된 ChipID 세트)의 구조 예를 도시한 도면이다.
도 24는 제10 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 25는 제10 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 26은 제11 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 27은 제11 실시예에 따른 메모리 시스템의 인증 플로우를 도시한 흐름도이다.
도 28은 제12 실시예에 따른 메모리 시스템의 구조 예를 도시한 블록도이다.
도 29는 제12 실시예에 있어서 SECID 기입 전의 상태에서 피인증장치를 도시한 도면이다.
도 30은 제12 실시예에 있어서 SECID를 다운로드하는 시스템을 도시한 블록도이다.
도 31은 제12 실시예에 있어서 SECID를 다운로드하는 플로우를 도시한 흐름도이다.
도 32는 제13 실시예에 따른 메모리 시스템을 도시한 블록도이다.
도 33은 제14 실시예에 따른 NAND 플래시 메모리를 도시한 블록도이다.
도 34는 제14 실시예에 있어서 블록(BLOCK)을 도시한 등가 회로도이다.
일반적으로, 일 실시예에 따르면, 은닉된 제1 키 정보(NKey)를 저장하는 피인증장치를 인증하는 인증장치는 은닉된 제2 키 정보(HKey)를 저장하도록 구성된 메모리, 난수 정보를 생성하도록 구성된 난수 생성 모듈, 및 제2 키 정보(HKey) 및 난수 정보를 사용함으로써 세션 키(SKey)를 생성하도록 구성된 데이터 생성 모듈을 포함한다. 인증장치는, 제2 키 정보(HKey)가 제1 키 정보(NKey)로부터 생성되지만, 제1 키 정보(NKey)는 제2 키 정보(HKey)로부터 생성되지 않도록 구성된다.
이하, 실시예들은 다음의 도면들을 참조하여 설명될 것이다. 다음의 설명에서, 공통 부분들은 도면 전체에 걸쳐 동일한 도면 부호가 표시되어 있다.
[제1 실시예]
제1 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다.
<1. 구조 예(메모리 시스템)>
우선, 도 1을 참조하여, 제1 실시예에 따른 메모리 시스템의 구조 예를 설명한다.
도 1에 도시된 바와 같이, 제1 실시예에 따른 메모리 시스템은 피인증장치인 NAND 플래시 메모리(10), 인증장치인 호스트 디바이스(20), 및 양자 사이를 중재하는 컨트롤러(19)를 포함한다. 호스트 디바이스(20)는 컨트롤러(19)를 통해 NAND 플래시 메모리(10)에 액세스한다.
NAND 플래시 메모리(10)와 같은 반도체 제품의 제조 프로세스를 간략히 설명한다. 반도체 제품의 제조 프로세스는 기판 웨이퍼에 회로를 형성하는 사전 프로세스와, 웨이퍼를 개편화하여 배선 및 수지 패키지 밀봉(resin package sealing)을 수행하는 사후 프로세스로 크게 나뉜다. 이 경우, 컨트롤러(19)는, 예를 들어 사전 프로세스에서 NAND 플래시 메모리(10)에 포함되거나, 사전 프로세스에 포함되는 것이 아니라 사후 프로세스의 동일한 패키지에 포함되거나, 또는 NAND 플래시 메모리(10)와 상이한 칩으로서 형성되도록 다양하게 구성된다. 도 1을 포함하는 도면에서, 일례로서 컨트롤러(19)가 NAND 플래시 메모리(10)와 상이한 칩으로서 형성되는 경우를 설명한다. 이하 설명에서, 달리 특정되지 않으면, 여러 경우에 컨트롤러(19)는 호스트 디바이스(20)와 NAND 플래시 메모리(10) 사이의 데이터 및 명령어의 트랜잭션을 중재한다. 이러한 경우에도, 컨트롤러(19)는 전술한 데이터 및 명령어들의 실질적 내용을 변경하지 않기 때문에, 일부 경우에는 상세한 설명을 생략할 것이다. 이하, NAND 플래시 메모리(10) 및 컨트롤러(19)의 구조 예들을 상세히 설명할 것이다.
호스트 디바이스(20)가 소비자 디바이스와 같은 전용 하드웨어에 의해 구성되는 경우, 호스트 디바이스(20)가 전용 하드웨어와 그 하드웨어를 동작시키는 펌웨어의 조합으로 구성되고, 디바이스의 기능이 PC에서 동작하는 소프트웨어 프로그램에 의해 구성되는 것을 고려해 볼 수 있다.
이하, 도 1에 도시된 개별 구성 요소 및 데이터 처리에 대해 설명한다. 이 실시예는, 식별 정보가 제3자로부터 은닉된 상태에서 피인증장치인 NAND 플래시 메모리(10)에 기록된 ChipID 또는 LotID와 같은 식별 정보를 판독하고, 피인증장치(10)로부터 판독되는 데이터를 확인하는 방법을 도시하며, 이 방법이 NAND 플래시 메모리(10)에 적용되는 경우의 구조 예를 나타낸다.
1-1. NAND 플래시 메모리
다음으로, 피인증장치인 NAND 플래시 메모리(NAND 칩; 10)를 설명한다.
이 예에 따른 NAND 플래시 메모리(10)는 셀 어레이(11), 셀 어레이(11)의 주변 영역에 배치된 데이터 캐시(12), 데이터 생성 모듈(생성; 13 및 16), 데이터 결합 모듈(결합; 14), 난수 생성기(RNG; 15), 배타적 OR 모듈(EXOR; 17), 및 암호화기(암호화; 18)를 포함한다.
셀 어레이(11)에서, 복수의 메모리 셀이 비트 라인과 워드 라인(미도시) 사이의 교차점들에 매트릭스로 배열된다. 메모리 셀은 반도체 기판 위에 지정된 순서로 터널 절연막, 플로팅 게이트, 층간 절연막, 및 워드 라인에 접속된 제어 게이트를 포함한다. 비트 라인 방향의 메모리 셀의 전류 경로가 직렬로 접속되어 셀 유닛을 구성한다. 셀 유닛은 비트 라인 및 소스 라인에 접속된 선택 트랜지스터에 의해 선택된다. 워드 라인 방향의 복수의 메모리 셀은 데이터 판독 및 데이터 기입 단위인 1 페이지(Page)를 구성한다. 또한, 복수의 페이지는 데이터 소거 단위인 블록(Block)을 구성한다.
셀 어레이(11)는 사용자 영역(11-1), 은닉 영역(11-2) 및 ROM 영역(11-3)을 포함한다.
사용자 영역(11-1)은 데이터 기입 및 데이터 판독이 자유롭게 실행되는 영역이다. 사용자 영역(11-1)에는, 예를 들어 암호화 LotID 세트인 SELID(Set of Encrypted ChipID)가 기록된다. 또한, 사진, 비디오, 음악, 또는 전자책과 같은 콘텐츠 데이터가 기록된다. 본 실시예에서의 SELID의 구조에 대해서는 도 3을 참조하여 설명한다.
은닉 영역(11-2)은, NAND 플래시 메모리(10)의 외부가 데이터 기입으로부터 방지되고, 데이터 판독이 금지되는 영역이다(판독/프로그램 금지). 본 예에 따른 은닉 영역(11-2)에는, 인증 시에 NAND 플래시 메모리(10)에 의해 사용되는 비밀 정보인 제1 키 정보(NKey)가 기록된다. 후술하는 바와 같이, 제2 키 정보(HKey)는 제1 키 정보(NKey)로부터 생성된다. 한편, 제1 키 정보(NKey)가 제2 키 정보(HKey)로부터 생성될 수 있는 구성이 채택된다.
ROM 영역(11-3)은, 외부로부터의 데이터 기입이 금지되고, 외부로부터의 데이터 판독이 허용되는 영역이다. 본 예에 따른 ROM 영역(11-3)에는, 식별 정보인 칩 ID(ChipID) 및 로트 ID(LotID)가 기록된다. ChipID 및 LotID가 기록될 때, 데이터에 오류가 일어나는 경우에도 정확한 식별 정보가 판독될 수 있도록 일반적으로 ChipID 및 LotID가 오류-정정-인코딩된 상태로 ChipID 및 LotID가 기록된다. 오류-정정 인코딩/디코딩은 특별히 도시하지 않았다. 칩 ID(ChipID)는 칩 단위로 NAND 플래시 메모리(10)에 할당된 고유 ID이다. 로트 ID(LotID)는 NAND 플래시 메모리(10)의 제조 프로세스 시에 일정 개수의 칩의 각각의 그룹에 할당된 ID이다. LotID는, 예를 들어 소정의 개수(예를 들어, 100만개)의 칩들을 포함하는 각각의 그룹 사이에 변경되거나, 한달 또는 6개월과 같은 소정의 제조 시간 간격으로 변경되는 것을 고려해 볼 수 있다. ChipID 및 LotID가 항상 외부로부터 은닉될 경우, ChipID 및 LotID가 ROM 영역 대신 전술한 은닉 영역에 기록될 수도 있다.
전술한 ROM 영역(11-3), 은닉 영역(11-2), 및 사용자 영역(11-1)은 물리적 구조들을 상이하게 만듦으로써 실현되거나, 물리적 구조는 동일하게 하면서 NAND 플래시 메모리(10) 내의 논리적 제어에 의해 실현될 수 있다. 이 경우, 논리적 제어란, 영역마다 NAND 플래시 메모리(10)의 외부로부터의 액세스를 제어하는 식별자가 제공되고, 이들 식별자가 저장되며, NAND 플래시 메모리(10)가 외부로부터 그 영역으로의 액세스를 받아들인 경우 그 식별자에 의해 액세스 제어가 실행되는 방식이다.
또한, 셀 어레이(11)를 구성하는 메모리 셀 각각은 복수의 비트를 저장하는 메모리 셀(MLC: Multi Level Cell) 또는 1비트를 저장하는 메모리 셀(SLC: Single Level Cell)일 수 있다. 또한, ROM 영역(11-3) 및 은닉 영역(11-2)은 SLC에 의해 사용되도록 구성될 수 있고, 사용자 영역(11-1)은 MLC에 의해 사용되도록 구성될 수 있다. 이 경우, SLC 영역 및 MLC 영역은 셀 어레이의 물리적 구조가 상이할 수 있으며, MCL로서 사용 가능한 메모리 셀의 일부 비트만이 의사(pseudo)-SLC 영역으로서 이용될 수 있다.
데이터 캐시(12)는 셀 어레이(11)로부터 판독된 데이터를 임시 저장한다.
데이터 생성 모듈(생성; 13 및 16) 각각은 복수의 입력 데이터로부터의 소정의 연산에 의해 출력 데이터를 생성하는 모듈이다. 데이터 생성 모듈(13)은 전술한 제1 비밀 정보(NKey)를 사용하여 호스트 디바이스(20)로부터 수신된 정보(HCj)를 변환함으로써 제2 키 정보(HKeyj)를 생성한다. 이러한 방식으로, NAND 플래시 메모리(10) 측에서 제2 키 정보(HKeyj)가 제1 키 정보(NKey)로부터 생성될 수 있다.
데이터 생성 모듈(16)은 호스트 디바이스(20)로부터 수신된 난수(RNh)와 NAND 플래시 메모리(10) 자체에서 생성된 난수(RNc)를 결합함으로써 생성되는 데이터를, HKeyj를 사용하여 변환함으로써 세션 키(SKeyj)를 생성한다. 예를 들어, AES(Advanced Encryption Standard: 고급 암호화 표준) 암호화기가 데이터 생성 모듈(13 및 16)에 사용될 수 있다.
이 경우, 데이터 생성 모듈(생성; 13 및 16) 각각은 복수의 입력 정보로부터 새로운 데이터를 출력하는 모듈이다. 전체 구현 사이즈를 저감하기 위해, 암호화기(18)와 동일한 모듈 또는 암호화기(18)를 유용한 모듈에 의해 데이터 생성 모듈(생성; 13 및 16)을 구성할 수 있다. 마찬가지로, 데이터 처리 프로시저를 더 쉽게 이해할 수 있도록 상이한 구성 요소로서 설명하는 2개의 데이터 생성 모듈(13 및 16)이 동일한 모듈을 반복적으로 이용함으로써 실현될 수 있다.
데이터 결합 모듈(결합; 14)은 2개의 입력 데이터(난수(RNh) 및 난수(RNc))를 결합하고, 결합된 데이터를 데이터 생성 회로(16)에 출력한다.
난수 생성기(RNG; 15)는 인증에 사용되는 난수(RNc)를 생성한다.
배타적 OR 모듈(EXOR; 17)은 ROM 영역(11-3)으로부터 판독된 2개의 식별 정보(ChipID 및 LotID)를 입력 데이터로서 수신하고, 2개의 입력 데이터의 배타적 논리합을 계산하고, 계산 결과를 출력한다. 전술한 바와 같이, 식별 정보가 ROM 영역 대신 은닉 영역에 저장되면, 배타적 OR 모듈에 대한 입력 데이터인 식별 정보는 은닉 영역으로부터 판독된다.
암호화기(암호화; 18)는 별도 입력된 키 데이터에 의해 입력 데이터를 암호화하고 암호화된 입력 데이터를 출력하는 모듈이다. 본 발명에서, 암호화기(18)는 데이터 생성 모듈(16)에 의해 생성된 키 데이터(SKeyj)를 사용하여 ROM 영역(11-3)으로부터 판독된 2개의 식별 정보(ChipID 및 LotID)의 배타적 OR 회로(17)에 의해 계산 결과를 암호화하고, 암호화된 식별 정보(Enc-ID = Enc(SKeyj, ChipID (+) LotID))를 생성한다. 전술한 바와 같이, 전체 하드웨어 회로 규모를 저감하기 위해, 암호화기(18)는 데이터 생성 모듈로서 사용될 수도 있다. 이 경우, (+)는 배타적 논리합을 나타낸다.
도시되지 않았지만, 예를 들어, 컨트롤러(19)를 통해 호스트 디바이스(20)로 전송될 데이터를 출력하기 위한 출력 모듈이 구성 요소로서 실제 배치된다.
셀 어레이(11) 이외에 데이터 캐시(12)와 같은 구성 요소들이 메모리 컨트롤러(19)에 배치될 수도 있다.
1-2. 호스트
다음으로, 본 예에 따른 호스트 디바이스(호스트; 20)를 설명한다.
호스트 디바이스(20)는 메모리(23), 난수 생성기(RNG; 25), 데이터 결합 모듈(결합; 26), 배타적 OR 모듈(EXOR; 24 및 29), 데이터 선택기(선택; 21), 데이터 생성기(생성; 27), 및 암호 해독기(암호 해독; 22 및 28)을 포함한다.
메모리(23)는 본 실시예의 인증 프로세스를 실행하는데 필요한 비밀 정보(HKeyj) 및 호스트 상수(HCj)를 저장한다. 특히, 비밀 정보(HKeyj)는 외부에 대한 노출을 방지하기 위한 수단을 이용하여 저장될 필요가 있다. 이를 위해, 예를 들어, 전용 하드웨어를 사용함으로써 구성되는 소비자 디바이스와 같은 호스트 디바이스의 경우, 비록 도시되지 않았지만, 외부로부터 완전히 차단된 전용 메모리에 비밀 정보(HKeyj)를 기록하거나, 호스트 디바이스에 독립적으로 제공되는 암호화 프로세스를 사용함으로써 비밀 정보(HKeyj)를 암호화한 후 메모리에 기록하는 수단을 이용하는 것이 바람직할 수 있다. 예를 들어, PC에서 동작하는 프로그램 소프트웨어의 경우, 탬퍼 레지스턴트 소프트웨어 기술을 사용하여 프로그램 자체를 보호함으로써 비밀 정보(HKeyj)를 안전하게 보호할 수 있다.
난수 생성기(RNG; 25)는 인증에 사용되는 난수(RNh)를 생성한다.
데이터 결합 모듈(결합; 26)은 난수 생성기(15 및 25)에 의해 생성되는 2개의 입력 난수 데이터(RNh 및 RNc)를 결합하고, 결합된 데이터를 출력한다.
배타적 OR 모듈(EXOR; 24 및 29) 각각은 2개의 입력 데이터의 배타적 논리합을 계산하고, 계산 결과를 출력한다.
데이터 선택기(선택; 21)는 NAND 플래시 메모리(10)로부터 판독된 SELID(암호화 LotID 세트)로부터, 호스트 디바이스(20)에 은닉된 비밀 정보(HKeyj)를 사용함으로써 암호 해독될 수 있는 암호화 LotID 데이터를 비밀 정보(HKeyj)의 인덱스 정보(j)를 사용함으로써 선택한다. 예를 들어, 소비자 디바이스의 경우, 비밀 정보(HKeyj)는 제조사의 고유 방법에 의해 암호화된 후 내부 전용 메모리에 기록된다. 소프트웨어 프로그램의 경우, 비밀 정보(HKeyj)는 탬퍼 레지스터트 소프트웨어(TRS) 기술에 의해 불법적인 분석으로부터 보호받을 수 있는 상태로 저장된다. 보안 모듈이 내장된 경우, 비밀 정보(HKeyj)는 보안 모듈의 기능을 사용함으로써 비밀 정보(HKeyj)를 은닉하는 조치를 취한 후 저장된다.
데이터 생성기(생성; 27)는 복수의 입력 데이터로부터의 소정의 연산에 의해 출력 데이터를 생성하는 산술 모듈이다. 데이터 생성기(생성; 27)는 NAND 플래시 메모리에 제공되는 데이터 생성 모듈(16)과 동일한 연산 프로세스를 실행한다. 데이터 생성기(27)는 호스트 디바이스(20)에 은닉된 비밀 정보(HKeyj)를 이용해서, 호스트 디바이스(20) 자체에 의해 생성된 난수(RNh)와 NAND 플래시 메모리(10)로부터 수신된 난수(RNc)를 결합함으로써 생성된 데이터를 변환함으로써 세션 키(SKeyj)를 생성한다. 이 경우 데이터 생성기(27)는, 예를 들어 AES 암호화 연산을 사용할 수 있다.
암호 해독기(암호 해독; 22 또는 28)는 별도 입력된 키 데이터에 의해 입력 데이터를 암호 해독하고 암호 해독된 입력 데이터를 출력한다. 본 실시예에서, 암호 해독기(22)는 필요한 경우, 호스트 디바이스에 은닉된 비밀 정보(HKeyj) 및 비밀 정보(HKeyj)를 식별하기 위한 인덱스 정보(j)에 대한 배타적 OR 모듈에 의한 계산 결과를 키 정보로서 사용하여, 데이터 선택기(21)에 의해 선택된 암호화 LotID 데이터를 암호 해독함으로써 LotID를 획득하기 위해 사용된다.
암호 해독기(28)는 데이터 생성기(27)로부터 출력된 SKeyj를 사용함으로써 NAND 플래시 메모리(10)로부터 수신된 암호화된 ID 정보(Enc-ID)를 암호 해독하고, 암호 해독된 결과를 배타적 OR 모듈(29)에 출력한다. 이러한 암호 해독 프로세스의 결과로서, 호스트 디바이스(20)는 2개의 식별 데이터(ChipID 및 LotID)를 획득할 수 있다.
전술한 바와 같이, 호스트 디바이스(20)는 제1 스테이지 암호 해독기(22)에 의해 LotID를 획득한다. 또한, ChipID는, 획득된 LotID와 제2 스테이지 암호 해독기(28)의 출력 데이터에 대해, 배타적 OR 모듈(29)에 의한 연산 결과로 획득될 수 있다. 게다가, 공유 키 데이터(SKeyj)를 사용한 암호화된 ID 정보(Enc-ID)의 암호 해독에 의해, 호스트 디바이스(20)에 의해 인증된 NAND 플래시 메모리(10)로부터 ID 정보(ChipID 및 LotID)가 정확히 판독된 것을 확인하는 것도 있다.
이 경우, 필요하면, 미도시된 오류 정정 프로세스 모듈 등이 구성 요소로서 제공된다.
<2. 인증 플로우>
다음으로, 도 2를 참조하여, 도 1에 도시된 구조를 갖는 메모리 시스템의 인증 플로우에 대해 설명한다.
인증이 시작되면(시작), 호스트 디바이스(20)는 NAND 플래시 메모리(10)로부터 암호화 LotID 세트(SELID)를 판독한다[단계 S11].
그 후, 호스트 디바이스(20)는 판독된 SELID로부터의 선택을 위한 선택 프로세스를 선택기(21)에 의해 실행하고, 호스트 디바이스(20)에 의해 암호 해독될 수 있는 암호화 LotID 데이터를 판독한다. 나아가, 호스트 디바이스(20)는 은닉된 비밀 정보(HKeyj)를 사용하여, 전술한 암호 해독 프로세스를 암호 해독기(22)에 의해 실행함으로써 LotID를 획득한다[단계 S12].
계속해서, 호스트 디바이스(20)는 인증 요청 시에 필요한 난수(RNh)를 생성한다. 인증 프로세스에 난수(RNh)를 사용함으로써, 후속 프로세스에서 호스트 디바이스(20)와 NAND 플래시 메모리(10) 사이에서 매번 상이한 공유 키를 사용하는 것이 가능해진다[단계 S13].
그 후, 호스트 디바이스(20)는 인증을 요청하고(인증 요청), 미리 저장된 호스트 상수(HCj) 및 난수(RNh)를 NAND 플래시 메모리(10)에 전송한다[단계 S14].
계속해서, NAND 플래시 메모리(10)는 인증 요청을 수신하고, 은닉 영역(11-2)에 은닉된 NKey를 로드하고, NKey를 데이터 캐시(12)에 저장한다[단계 S15].
그 후, NAND 플래시 메모리(10)는 난수 생성기(15)에 의해 인증에 필요한 난수(RNc)를 생성하고, 생성된 난수(RNc)를 호스트 디바이스에 전송한다[단계 S16].
단계 S16의 프로세스와 병행하여, 호스트 디바이스(20)는 결합 모듈(26)에 의한 전술한 데이터 결합 프로세스의 결과로서, 단계 S13에서 생성된 난수(RNh) 및 단계 S16에서 수신된 난수(RNc)를 사용하여, 결합 데이터(RNh || RNc)를 생성한다. 또한, 미리 은닉되어 있는 비밀 정보(HKeyj) 및 결합 데이터(RNh || RNc)를 사용하여, 생성기(27)는 전술한 데이터 생성 프로세스를 실행하고, SKeyj(= Generate(HKeyj, RNh || RNc))를 생성한다[단계 S17].
계속해서, 단계 S14에서 수신된 호스트 상수(HCj)와 로드된 NKey를 사용하여, NAND 플래시 메모리(10)는 전술한 데이터 생성 프로세스 회로(13)에 의해 HKeyj를 생성한다. 또한, NAND 플래시 메모리(10)는 데이터 결합 프로세스 모듈(14)에 의해, 단계 S14에서 수신된 난수(RNh) 및 단계 S16에서 생성된 난수(RNc)로부터 결합 데이터(RNh || RNc)를 생성한다. 또한, HKeyj 및 결합 데이터(RNh || RNc)를 사용하여, NAND 플래시 메모리(10)는 데이터 생성 모듈(16)의 데이터 생성 프로세스에 의해 SKeyj(= Generate(HKeyj, RNh || RNc))를 생성한다[단계 S18].
그 후, 호스트 디바이스(20)는 ID 요청(Request ID)을 NAND 플래시 메모리(10)에 전송한다[단계 S19].
계속해서, NAND 플래시 메모리(10)는 ROM 영역(11-3)으로부터 ChipID 및 LotID를 판독한다[단계 S21].
그 후, NAND 플래시 메모리(10)는 배타적 OR 모듈(17)에 의해 ChipID 및 LotID의 배타적 논리합(ChipID (+) LotID)을 계산한다. 또한, NAND 플래시 메모리(10)는 단계 S18에서 생성된 키 데이터(SKeyj)를 이용하여 암호화기(18)에 의해 (ChipID (+) LotID)를 암호화하고, 암호화된 ID 정보(Enc-ID)(= Enc(SKeyj, ChipID (+) LotID))를 생성하고, 생성된 암호화 ID 정보(Enc-ID)를 호스트 디바이스(20)에 전송한다[단계 S22].
계속해서, 호스트 디바이스(20)는 단계 S17에서 생성된 키 데이터(SKeyj)를 사용하여, 수신된 암호화 ID 정보(Enc-ID)를 암호 해독기(28)에 의해 암호 해독함으로써 ID = ChipID (+) LotID를 획득한다[단계 S23].
그 후, 호스트 디바이스(20)는 단계 S12에서 획득된 LotID와 전술한 ID 사이의 배타적 논리합을 배타적 OR 모듈(29)에 의해 계산함으로써 ChipID를 획득한다[단계 S24].
전술한 동작에 의해, 제1 실시예에 따른 인증 플로우가 종료된다(종료).
<3. SELID에 대하여>
다음으로, 도 3을 참조하여, 본 실시예에 관한 SELID를 설명한다.
LotID가 기록된 NAND 플래시 메모리에 적합한 SELID를 생성하기 위해, LotID는 미리 준비된 비밀 정보인 제2 키 정보 세트(HKeyj (j = 1,…, n))(HKey 세트)의 각각의 개별 제2 키 정보(HKeyj)를 사용하여 하나씩 암호화된다. 구체적으로, SELID는 암호화된 LotIDj(E-LotIDj = Encrypt(HKeyj, LotID))의 세트이고, 암호화된 LotID 세트는 "암호화 LotID 세트"라고 지칭된다.
암호화 시에, 필요한 경우, 각각의 제2 키 정보(HKeyj)와 각각의 인덱스 정보(j) 사이에 배타적 논리합이 실행되고, 그 결과가 암호화 키로서 사용된다. 이 때의 암호화 LotIDj는 다음의 수식: E-LotIDj = Encrypt(HKeyj (+) j, LotID)에 따라 계산된다.
전술한 예에서, (HKeyj (+) j)가 암호화 키로서 사용된다. 그러나, 이 외에도, 순환 시프트 연산(cyclic shift operation)이 사용될 수 있다. 순환 시프트 연산은 비트들을 시프트하여 자리수를 초과하는 비트를 반대측으로 넘기는 연산이다. 좌 순환 시프트 연산의 일례에서, 2진법에서의 "11010101"가 좌측으로 3번 순환 시프트되면, 그 결과는 "10101110"이다. 암호화 키는 수식: E-LotIDj = Encrypt(CyclicLeftShift(HKeyj, j), LotID)를 사용하여 계산될 수 있다. 이 수식에서, CyclicLeftShift(HKeyj, j)는 HKeyj가 좌측으로 j번 순환 시프트된다는 것을 의미한다. 이 경우, 도 1에 도시된 배타적 OR 모듈(24)이 좌 순환 시프트 연산을 실행하는 좌 순환 시프트 모듈로 대체되는 것이 바람직하다. 이러한 사정은 후술하는 다른 실시예에도 적용된다.
SELID의 구조는 전술한 예에 국한되지 않는다. 예를 들어, 특정 HKeyj가 노출되는 경우, 이 HKeyj를 저장하는 호스트 디바이스(20)는 LotID가 암호화 LotID 세트로부터 암호 해독될 수 없도록 구성될 수 있다. 이를 위해, HKeyj에 의해 암호 해독될 수 있는 암호화 LotID는 SELID로부터 삭제된다. 이로써, 새롭게 구성된 SELID가 기록된 NAND 플래시 메모리(10)가 사용되는 경우에, 호스트 디바이스에서 정확한 LotID 및 ChipID가 획득(암호 해독)될 수 없다. 이로써, 이 비밀 정보(HKeyj)를 저장하는 호스트 디바이스(20)를 무효화하기 위한 기능을 제공할 수 있다.
<4. 작용 효과>
제1 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 적어도 다음의 작용 효과 (1) 및 (2)를 획득할 수 있다.
(1) 비밀 정보가 호스트 디바이스(20)로부터 유출된 경우에도, 유출된 정보를 사용하여 NAND 플래시 메모리(10)의 비밀 정보의 불법적인 사용을 방지할 수 있다.
소비자 디바이스와 같은 전용 하드웨어 디바이스뿐 아니라 PC(개인용 컴퓨터) 등에서 실행 가능한 프로그램(소프트웨어)으로서 인증장치인 호스트 디바이스(20)가 제공될 수 있으며, 일부 경우에 소프트웨어가 실질적인 인증장치로서 기능한다. 한편, 피인증장치인 NAND 플래시 메모리(10)는, 예를 들어 기록 매체 등이다. "펌웨어"라고 지칭되는 프로그램이 기록 매체를 구성하는 하드웨어 동작을 중재하는 경우에도, 중요한 프로세스 또는 정보가 셀 어레이(11)의 하드웨어에 은닉 상태로 저장된다. 이로 인해, 실제로, 예를 들어, PC에서 실행되는 소프트웨어가 기록 매체보다 탬퍼 레지스턴스(공격에 대한 저항성)가 낮을 우려가 있다. 이로 인해, 탬퍼 레지스턴스가 낮은 호스트 디바이스(인증장치; 20)를 공격함으로써 탬퍼 레지스턴스가 높은 NAND 플래시 메모리(피인증장치; 10)에 은닉된 비밀 정보 또한 노출되며, 이는 탬퍼 레지스턴스가 높은 디바이스로의 위장을 유발한다.
제1 실시예에 따른 구조 및 인증 방법에 있어서, 전술한 바와 같이, 비교적 탬퍼 레지스턴스가 높은 NAND 플래시 메모리(10)에서는, 제2 키 정보(HKey)가 생성되는 제1 키 정보(NKey)가 셀 어레이(11)에 은닉된다. 한편, 비교적 탬퍼 레지스턴스가 낮은 호스트 디바이스(20)에서는, 제2 키 정보(NKey)가 생성될 수 없는 제1 키 정보(HKey)만이 메모리(23)에 은닉된다.
이에, NAND 플래시 메모리(10)는 호스트 디바이스(20)로부터 수신된 소스 정보(HC)와 NAND 플래시 메모리(10) 자체에 은닉된 제1 키 정보(NKey)를 사용하여, 인증장치에 은닉된 동일한 정보인 제2 키 정보(HKey)를 생성한다. NAND 플래시 메모리(10)는 제2 키 정보(HKey) 및 난수 정보(RNh, RNc)로부터 세션 키(SKey)를 생성한다.
호스트 디바이스(20)는 은닉된 제2 키 정보(HKey)와 난수 정보(RNh, RNc)로부터 세션 키(SKey')를 생성한다. 그 결과, NAND 플래시 메모리(10) 및 호스트 디바이스(20)는 값이 동일한 세션 키를 공유한다.
이러한 방식으로, 본 실시예에 있어서, NAND 플래시 메모리(피인증장치; 10)에 은닉된 정보의 비밀 레벨 및 호스트 디바이스(인증장치; 20)에 은닉된 정보의 비밀 레벨은 비대칭적일 수 있다. 예를 들어, 본 실시예에 있어서, 비교적 탬퍼 레지스턴스가 높은 NAND 플래시 메모리(10)에 은닉된 정보의 비밀 레벨은 비교적 탬퍼 레지스턴스가 낮은 호스트 디바이스(20)에 은닉되는 정보의 비밀 레벨보다 높도록 설정될 수 있다.
그로 인해, 호스트 디바이스(20)에 은닉된 정보가 유출된 경우에도, 비교적 탬퍼 레지스턴스가 높은 NAND 플래시 메모리(10)에 은닉된 정보의 비밀 레벨이 더 높기 때문에, 유출된 정보를 사용하여 NAND 플래시 메모리(10)로서 가장할 수 없다. 그러므로, 유출된 정보를 이용하여 NAND 플래시 메모리(10)의 비밀 정보를 불법적으로 사용하는 것을 방지할 수 있다는 이점이 있다. 그 결과, 예를 들어, 인증장치로부터 판독된 ID 정보가 목표 피인증장치로부터 판독된 정보라는 것을 확인할 수 있고, 상대방에 의한 불법적인 사용을 무효화할 수 있다.
(2) 구현화가 유리하게 이루어진다.
본 실시예의 구조는 회로 규모에 대한 제한들이 가해지는 환경, 예를 들어 비교적 대형의 회로 규모를 요구하는 공개 키 암호화 프로세스 또는 MKB 프로세스의 하드웨어 구현화를 이루는 것이 어려운 환경 하에 있다.
그러나, 본 실시예에 따르면, 키 정보가 비대칭적인 경우에도, 비교적 대형의 회로 규모를 요구하는 공개 키 암호화 프로세스를 사용할 필요가 존재하지 않는다. 또한, 전술한 바와 같이, 호스트 디바이스(인증장치; 20)에 은닉된 정보의 비밀 레벨과 NAND 플래시 메모리(피인증장치; 10)에 은닉된 정보의 비밀 레벨은 비대칭적일 수 있다. 이로써, 하나의 디바이스로부터 유출된 정보만으로는 다른 디바이스로 가장하는 것을 허용하지 않는 이러한 인증 수단이 사용되고, 비밀 정보인 세션 키(SKey)가 인증장치와 피인증장치 사이에 공유된다.
그러므로, 전술한 제한 사항들이 부과되는 열악한 환경에서도, 구현화가 유리하게 이루어질 수 있다.
더구나, 전술한 바와 같이 동일 프로세스에 의해 메모리 시스템을 구성하는 데이터 생성 회로 및 암호화기를 구현함으로써 회로 규모를 비교적 저감할 수 있다.
[제2 실시예(복수의 NKey가 제공되는 일례)]
다음으로, 제2 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 이 실시예는 복수의 NKey(제1 키 정보)가 제공되는 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
우선, 도 4를 참조하여, 제2 실시예에 따른 구조 예를 설명한다.
도 4에 도시된 바와 같이, 제2 실시예의 구조 예는 복수의 비밀 정보(NKeyi (i = 1,…, m))가 NAND 플래시 메모리(10)의 셀 어레이(11)의 은닉 영역(11-2)에 은닉된다는 점에서 제1 실시예의 구조와 상이하다. 또한, 호스트 디바이스(인증장치)로부터 수신된 인덱스 정보(i)에 따라, 은닉된 비밀 정보(NKeyi (i = 1,…, m))로부터 NKeyi를 선택하는 선택기(31)를 더 포함한다.
게다가, 인덱스 정보(i)는 호스트 디바이스(20)에 유지되는데, 어느 비밀 정보(HKeyi ,j)가 NAND 플래시 메모리(10)의 비밀 정보(NKeyi)에 대응하는지를 나타내는 인덱스 정보(i)는 메모리(23)에 은닉된다.
전술한 구조에서, 인증 프로세스의 실행 시에, 호스트 디바이스(20)는 인덱스 정보(j)뿐 아니라 비밀 정보를 지정하는 인덱스 정보(i)를 사용함으로써, SELID 중에서 호스트 디바이스(20) 자체에 의해 암호 해독될 수 있는 암호화 LotID를 선택기(21)에 의해 선택한다.
또한, 호스트 디바이스(20)는 인덱스 정보(i)를 NAND 플래시 메모리(10)에 전송한다.
NAND 플래시 메모리(10)는 은닉된 비밀 정보(NKeyi (i = 1,…, m)) 중에서 수신된 인덱스 정보(i)에 대응하는 NKeyi를 선택기(31)에 의해 선택한다.
<인증 플로우>
다음으로, 도 5를 참조하여, 제2 실시예에 따른 인증 플로우를 설명한다.
도 5에 도시된 바와 같이, 본 실시예에 있어서, 단계 S14에서 인증 요청(인증 요청) 시에, NAND 플래시 메모리(10)에 은닉된 비밀 정보(NKeyi)를 선택하는 데 필요한 인덱스 정보(i)가 호스트 디바이스(20)로부터 NAND 플래시 메모리(10)로 추가 전송된다.
또한, 단계 S18에서, 인덱스 정보(i)는 제2 키 정보(HKeyi ,j)를 생성하기 위해 NAND 플래시 메모리(10)에서 사용된다.
인증 플로우의 다른 부분들은 전술한 제1 실시예와 실질적으로 동일하기 때문에, 상세한 설명은 생략된다.
<SELID에 대하여>
다음으로, 도 6을 참조하여, 제2 실시예에서의 SELID를 설명한다.
도 6의 부분 (a) 및 부분 (c)에 나타낸 바와 같이, 제2 실시예에 있어서, NKey 및 HKey를 지정하기 위한 인덱스 정보가 2개의 요소 즉, i 및 j로 구성되기 때문에, SELID는 행렬 형태를 갖는다.
그외에는 전술한 제1 실시예와 실질적으로 동일하기 때문에, 상세한 설명은 생략된다.
<작용 효과>
제2 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
게다가, 제2 실시예에서, 복수의 비밀 정보(NKeyi (i = 1,…, m))가 NAND 플래시 메모리(10)의 셀 어레이(11)의 은닉 영역(11-2)에 은닉된다.
따라서, 용도에 따라 달라지는 비밀 정보(HKey)가 대응하는 호스트 디바이스(20)에 은닉된다. 그러므로, 더 유리하게, 특정 용도를 위해 배포되었던 HKey 또는 NKey가 노출된 경우에도, 다른 용도에 악영향을 미치지 않는다.
예를 들어, 제1 비밀 정보(NKey)가 비디오 플레이어에 할당되고, 제2 비밀 정보(NKey)가 전자책 리더기(reader)에 할당되는 경우에, 비디오 플레이어에 할당된 비밀 정보(HKey1 ,j/NKey1)가 노출되더라도, 노출된 비밀 정보(HKey1 ,j/NKey1)를 사용하여 전자책 리더기를 구성할 수 없다. 게다가, 상이한 HKey/NKey들이 개별 호스트 디바이스 제조사에 할당되었던 경우, 비밀 정보가 "A" 제조사의 호스트 디바이스로부터 노출되더라도, "B" 제조사의 호스트 디바이스를 구성할 수 없다. 그러므로, 비밀 정보가 노출된 특정 "A" 제조사의 호스트 디바이스만이 정확하게 LotID 및 ChipID를 판독할 수 없는 이러한 NAND 플래시 메모리(10)를 새롭게 제조 및 제공하는 것이 가능해진다.
[제3 실시예(복수의 NKey가 Lot마다 제공되는 일례)]
다음으로, 제3 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 이 실시예는 복수의 NKey(제1 키 정보)가 Lot(예를 들어, NAND 제조사)마다 제공되는 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
우선, 도 7을 참조하여, 제3 실시예에 따른 구조 예를 설명한다.
도 7에 도시된 바와 같이, 제3 실시예의 구조 예에서, 복수의 비밀 정보(NKeyi (i = 1,…, m)) 중에서 선택된 하나의 비밀 정보(NKeyi)가 NAND 플래시 메모리(10)의 은닉 영역(11-2)에 기록된다. 또한, 비밀 정보(NKeyi)를 특정하기 위한 인덱스 정보(i)는 ROM 영역(11-3)에 기록된다. 이 점에 있어서 제3 실시예는 제1 실시예와 상이하다.
또한, 호스트 디바이스(20)는 m개의 비밀 정보(NKeyi (i = 1,…, m)) 중 어느 하나가 은닉되어 있는 NAND 플래시 메모리(10)와의 인증 프로세스를 실행할 수 있도록 m개의 비밀 정보(HKeyi (i = 1,…, m)) 전부를 은닉한다.
전술한 구조에서, 인증 프로세스의 실행 시에, 호스트 디바이스(20)는 NAND 플래시 메모리(10)로부터 인덱스 정보(i)를 판독하고, 은닉된 HKeyi (i = 1,…, m) 중에서 대응하는 HKeyi를 선택한다. 또한, 마찬가지로, 호스트 디바이스(20)는 NAND 플래시 메모리(10)로부터 판독된 암호화 LotID 세트(SELID) 중에서 호스트 디바이스(20) 자체에 의해 암호 해독될 수 있는 암호화 LotID를 선택한다.
<인증 플로우>
다음으로, 도 8을 참조하여, 제3 실시예에 관한 인증 플로우를 설명한다.
본 실시예의 단계 S32에서, NAND 플래시 메모리(10)는 ROM 영역(11-3)에 비밀 정보(NKeyi)를 특정하기 위한 인덱스 정보(i)를 더 로드하고, 호스트 디바이스(20)는 인덱스 정보(i)를 판독한다.
단계 S33에서, 호스트 디바이스(20)는 NAND 플래시 메모리(10)로부터 RNc를 판독한다.
계속해서, 단계 S17에서, 호스트 디바이스(20)는 복수의 은닉된 비밀 정보(NKeyi (i = 1,…, m))로부터 대응하는 NKeyi를 이용하여, (단계 S32에서 판독된)판독된 인덱스(i)에 따라 SELID로부터 LotID를 암호 해독한다.
또한, 호스트 디바이스(20)는 전술한 프로세스에서 수신된 인덱스 정보(i)를 사용하여 비밀 정보 세트(HKeyi ,j (i = 1,…, m))로부터 키 데이터(SKeyi ,j)를 생성하는데 필요한 HKeyi ,j를 선택한다.
도시하는 프로세스 플로우에서, 인덱스(i) 및 SELID는 이러한 순서로 판독되지만, 판독 순서가 특별히 제한되지 않는다.
<SELID에 대하여>
이 실시예에서도, HKey를 지정하기 위한 인덱스 정보는 2개의 인덱스 정보, 즉 i 및 j로 구성된다. 그렇기 때문에, SELID는 도 6에 도시된 제2 실시예와 유사하다.
그외에는 전술한 제1 실시예에서와 실질적으로 동일하기 때문에, 상세한 설명은 생략된다.
<작용 효과>
제3 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
또한, 제3 실시예에서, Lot(예를 들어, NAND 제조사)마다 복수의 NKey(제1 키 정보)가 NAND 플래시 메모리(10)의 은닉 영역(11-2)에 저장된다. 또한, 비밀 정보(NKeyi)를 특정하기 위한 인덱스 정보(i)는 ROM 영역(11-3)에 기록된다.
이러한 방식으로, 은닉된 NKey들은 NAND 플래시 메모리의 제조사 사이에 상이해 질 수 있다. 이로써, 특히 중요한 비밀 정보인 NKey가 특정 NAND 플래시 메모리 제조사의 불충분한 정보 관리로 인해 유출된 경우, 또는 시판 중인 NAND 플래시 메모리의 부적절한 정보 은닉 방법으로 인해 비밀 정보 NKey가 유출된 경우에도, 다른 NAND 플래시 메모리 제조사들에 의해 제조된 NAND 플래시 메모리들은 변경 없이 계속 사용될 수 있다는 장점이 있다.
인덱스 정보(i)(NKey의 인덱스)가 셀 어레이(11)에 저장된 위치는 전술한 위치에 국한되지 않는다. 예를 들어, 인덱스 정보(i)는 ROM 영역(11-3) 대신 사용자 영역(정상 판독/기입 영역)(11-1)에 저장될 수 있다.
전술한 바와 같이, 은닉 영역(11-2)에 저장될 정보는 기밀성이 높으며, 다른 영역에 저장되어서는 안 된다. 이와 반대로, 디바이스 제조 시의 데이터 저장 단계의 편의를 위해 또는 데이터의 용이한 사용을 위해 다른 종류의 정보는 사용자 영역(11-1) 또는 ROM 영역(11-3)과 같은 다른 영역에 저장될 수 있다.
[제4 실시예(SELID가 보호 영역에 기록된 일례)]
다음으로, 제4 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 이 실시예는 SELID가 보호 영역에 기록된 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
우선, 도 9를 참조하여, 제4 실시예에 따른 구조 예를 설명한다.
도 9에 도시된 바와 같이, 제4 실시예는 암호화 LotID 세트(SELID)가 NAND 플래시 메모리(10)의 셀 어레이(11)의 보호 영역(11-4)에 기록된다는 점에서 전술한 실시예와 상이하다. 보호 영역(14)은 컨트롤러(19)에 별도로 구현된 인증 프로세스가 성공적으로 실행된 경우에만 외부로부터의 액세스에 의한 데이터 기록/판독 프로세스가 허용되는 영역이다.
보호 영역(11-4)은, 예를 들어 현재 시판 중인 SD(등록 상표) 카드에 마련되어 있는 영역이다. 보호 영역(11-4)에 기록된 데이터는 컨트롤러(19)와의 인증 프로세스를 실행할 수 있는 정당한 호스트 디바이스(20)의 외부로부터 은닉될 뿐 아니라 사용자가 데이터를 잘못 재기입/소거하는 것을 방지할 수 있다. 이로 인해, 보호 영역(11-4)은 또한 데이터 재생 프로세스에 필요하고 필수적인 정보를 저장하기 위한 영역이 된다.
그러므로, 호스트 디바이스(20)와 컨트롤러(19) 사이에 별도로 제공된 인증 프로세스가 실행된 보안 채널(33)을 확립한 후, 이 실시예에 관한 SELID는 호스트 디바이스(20)에 전송된다.
<인증 플로우>
다음으로, 도 10을 참조하여, 제4 실시예에 관한 인증 플로우를 설명한다.
도 10에 도시된 바와 같이, 단계 S35에서, 호스트 디바이스(20)는 호스트 디바이스(20)와 컨트롤러(19) 사이에 별도로 제공된 인증 프로세스를 실행하여 보안 채널을 확립한다.
이에, 단계 S35에서, 호스트 디바이스(20)는 보호 영역(11-4)에 대한 액세스 허가를 획득하고, 확립된 보안 채널을 통해 암호화 LotID 세트(SELID)를 판독한다.
제4 실시예의 SELID는 도 3에 도시된 SELID와 동일하다.
그외 구조적인 점들은 전술한 제1 실시예에서와 실질적으로 동일하기 때문에, 상세한 설명은 생략된다.
<작용 효과>
제4 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
나아가, 제4 실시예에서, 암호화 LotID 세트(SELID)는 셀 어레이(11)의 보호 영역(11-4)에 기록된다. 그러므로 사용자에 의한 SELID의 잘못된 재기입/소거로 인해 ChipID 또는 LotID가 판독될 수 있다고 하는 과제를 방지할 수 있다.
[제5 실시예(난수 생성기가 NAND에 제공되지 않는 일례)]
다음으로, 제5 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 이 실시예는 난수 생성기(15)가 NAND 플래시 메모리(10)에 제공되지 않는 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
도 11을 참조하여, 제5 실시예에 따른 구조 예를 설명한다.
도 11에 도시된 바와 같이, 제5 실시예의 구조 예에서, 난수 생성기(RNG; 15)는 NAND 플래시 메모리(10)에 제공되지 않는다.
대신에, NAND 플래시 메모리(10)마다 사전 준비된 고정 값 인덱스 정보(i-NAND)가 셀 어레이의 ROM 영역(11-3)에 저장된다. i-NAND는 키 데이터(SKeyj)가 제1 실시예에서 난수(RNc) 대신 생성되는 경우 사용되는 값이다. 이러한 값으로서, 다양한 생성 수단에 의해 생성된 값들, 예를 들어 NAND 플래시 메모리의 제조 시에 미리 생성되었던 난수 값, ChipID 또는 LotID의 해시 값(hash value), 또는 특정 값에 의해 ChipID 또는 LotID를 암호화함으로써 생성된 값이 이용될 수 있다.
이에, NAND 플래시 메모리(10)는 데이터 캐시(12B)를 더 포함한다.
<인증 플로우>
다음으로, 도 12를 참조하여, 제5 실시예에 관한 인증 플로우를 설명한다.
도 12에 도시된 바와 같이, 단계 S16에서, NAND 플래시 메모리(10)가 호스트 디바이스(20)로부터 인증 요청을 수신하면, NAND 플래시 메모리(10)는 난수 생성기에 의해 난수를 생성하는 것 대신에 ROM 영역(11-3)으로부터 고정 값 인덱스 정보(i-NAND)를 판독하고, 고정 값 인덱스 정보(i-NAND)를 호스트 디바이스(20)로 전송한다.
키 데이터(SKeyj)의 생성 시에, 호스트 디바이스(20) 및 NAND 플래시 메모리(10)는 호스트 디바이스(20)에 의해 생성된 난수(RNh)와 i-NAND 사이의 결합 데이터(RNh || i-NAND) 및 HKeyj를 사용하여 전술한 데이터 생성 프로세스를 실행한다(SKeyj = Generate(HKeyi, RNh || i-NAND)).
제5 실시예의 SELID는 도 3에 도시된 SELID와 동일하다.
그외에는 전술한 제1 실시예에서와 실질적으로 동일하기 때문에, 상세한 설명은 생략된다.
<작용 효과>
제5 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
더구나, 제5 실시예에서, 도 1에서의 전술한 난수 생성기(RNG; 15)는 NAND 플래시 메모리(10)에 포함되지 않는다. 그러므로, NAND 플래시 메모리(10)의 구현 회로 규모는 더욱 저감될 수 있고, 미세 제조가 유리하게 이루어질 수 있다.
[제6 실시예(Token을 생성하는 일례)]
다음으로, 제6 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 이 실시예는 검증 데이터(Token)를 생성하는 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
도 13을 참조하여, 제6 실시예에 따른 구조 예를 설명한다.
도 13에 도시된 바와 같이, 제6 실시예의 구조 예는 NAND 플래시 메모리(10) 및 호스트 디바이스(20) 각각이 데이터 생성 회로(생성; 16, 26)를 사용하여 2개의 난수의 결합 데이터(RNh || RNc) 및 비밀 정보(HKeyj)로부터 키 데이터(SKeyj)를 생성하고, 동일한 키 데이터(SKeyj)가 호스트 디바이스와 NAND 플래시 메모리 사이에 생성되는 것을 확인하기 위한 검증 데이터(Token)를 생성한다는 점에서 전술한 실시예들과 상이하다.
검증 데이터(Token)는 세션 키 데이터(SKeyj), 및 호스트 디바이스(20)와 NAND 플래시 메모리(10)가 공유하는 값에 기초하여 계산되는 데이터이면 바람직하다. 본 실시예에서는, 2개의 난수의 결합 순서가 변경되는 (RNc || RNh)를 사용하여 획득된 Token(= Generate(SKeyj, RNc || RNh))이 일례로 사용된다. 도면에는 기재 공간의 형편상 Generate()를 G()로 기재하고 있다.
세션 키(SKeyj)를 생성하는데 사용되는 데이터 생성 회로, 및 Token을 생성하는데 사용되는 데이터 생성 모듈은 동일한 모듈로 표시되어 있다. 그러나, 그 목적은 호스트 디바이스(20)와 NAND 플래시 메모리(10)에 의해 동일한 데이터를 생성하기 위한 것이기 때문에, 전술한 2개의 데이터 생성 모듈이 동일한 데이터 생성 모듈일 필요는 없으며, 이들 2개의 데이터 생성 모듈은 상이한 모듈들에 의해 구성될 수 있다.
생성된 검증 데이터(Token)는 NAND 플래시 메모리로부터 호스트 디바이스로 전송된다.
호스트 디바이스(20)는 수신된 검증 데이터(Token) 및 호스트 디바이스 자체에서 계산된 검증 데이터가 동일한지 여부를 비교기(35)에 의해 판정한다. 검증 데이터 값(Token)이 동일하면(Yes), 게이트 모듈(36)은 세션 키(SKeyj)를 암호 해독 모듈(암호 해독; 28)에 출력하고, 제1 실시예에서와 같이 후속 프로세스를 계속한다. 한편, 검증 데이터 값(Token)이 상이하면(No), 후속 프로세스가 중지된다(Abort).
<인증 플로우>
다음으로, 도 14를 참조하여, 제6 실시예에 관한 인증 플로우를 설명한다.
제6 실시예에 있어서, 제1 실시예에서의 키 데이터(SKeyj)의 생성 후에 다음의 프로세스가 추가된다.
단계 S36에서, 호스트 디바이스(20)는 생성된 키 데이터(SKeyj) 및 2개의 난수(RNh 및 RNc)로부터 검증 데이터(Token)(= Generate(SKeyj, RNc || RNh))를 계산한다.
마찬가지로, 단계 S37에서, NAND 플래시 메모리는 또한 생성된 키 데이터(SKeyj) 및 2개의 난수(RNh 및 RNc)로부터 검증 데이터(Token)(= Generate(SKeyj, RNc || RNh))를 계산한다.
계속해서, 단계 S39에서, 호스트 디바이스는 수신 Token이 호스트 디바이스 자체에 의해 생성된 Token에 대응하는지 여부를 확인한다. 수신 Token이 호스트 디바이스 자체에서 생성된 Token에 대응하는 경우, 후속 프로세스가 계속 실행된다. 수신 Token이 호스트 디바이스 자체에서 생성된 Token에 대응하지 않는 경우, 후속 인증 프로세스가 취소된다.
제6 실시예의 SELID는 도 3에 도시된 SELID와 동일하다.
그외에는 전술한 제1 실시예에서와 실질적으로 동일하기 때문에, 상세한 설명은 생략된다.
<작용 효과>
제6 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
또한, 제6 실시예에서, 동일한 키 데이터(SKeyj)가 호스트 디바이스와 NAND 플래시 메모리 사이에 생성된다고 확인하기 위한 검증 데이터(Token)가 생성되고 그 검증 데이터(Token)의 일치가 판정된다.
이에, 인증에 의한 키 공유 프로세스가 호스트 디바이스와 NAND 플래시 메모리 사이에 정확히 실행되는 것을 확인할 수 있고, 불법적인 인증 상대 또는 인증 프로세스에서의 중간 경로의 데이터의 오류 또는 탬퍼의 발생을 쉽게 확인할 수 있다는 장점이 있다.
[제7 실시예(SELID 암호화에 다른 세트의 IDKey가 사용되는 일례)]
다음으로, 제7 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 이 실시예는 SELID 암호화에 다른 세트의 IDKey가 사용되는 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
도 15를 참조하여, 제7 실시예에 따른 구조 예를 설명한다.
도 15에 도시된 바와 같이, 제7 실시예의 구조 예는 암호화 LotID 세트(SELID)를 생성하는데 사용되는 암호화 키가 NKey로부터 도출되는 HKey와 상이한 암호화 키(IDKey)로 변경된다는 점에서 전술한 실시예들과 상이하다. 그러나, 본 실시예에 따른 NAND 플래시 메모리(10)의 구조 예에 실질적인 변경이 있는 것은 아니다.
본 실시예의 호스트 디바이스(20)에서는 새로운 비밀 정보(IDKeyk)가 메모리(23)에 은닉되고, 이 IDKeyk는 NAND 플래시 메모리(10)로부터 판독되는 SELID의 암호 해독 프로세스에 사용된다. 이 점에 있어서, 본 실시예는 전술한 실시예와 상이하다. 그러나, 암호 해독 프로세스 자체에 변화가 있는 것은 아니다.
<인증 플로우>
다음으로, 도 16을 참조하여, 제7 실시예에 관한 인증 플로우를 설명한다.
도 16에 도시된 바와 같이, 본 실시예는 단계 S12에서 호스트 디바이스(20)가 비밀 정보(IDKeyk) 및 인덱스 정보(k)를 사용하여 NAND 플래시 메모리(10)로부터 판독된 암호화 LotID 세트(SELID)를 암호 해독한다는 점에서 전술한 실시예들과 상이하다.
또한, 전술한 바와 같이, LotID의 암호화에 사용되는 키 데이터가 변경되기 때문에, 본 실시예의 SELID의 구조 예는 도 17에 도시된 바와 같다.
그외에는 전술한 제1 실시예에서와 실질적으로 동일하기 때문에, 상세한 설명은 생략된다.
<작용 효과>
제7 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
또한, 제7 실시예에서, NAND 플래시 메모리에 은닉된 비밀 정보(NKey)가 사용되는 경우에도, LotID는 SELID를 암호 해독함으로써 획득될 수 없다. 이로 인해, 비밀 정보(NKey)가 NAND 플래시 메모리(10)로부터 노출된 경우, 또는 비밀 정보(NKey)가 NAND 플래시 메모리(10)의 제조사로부터 유출된 경우에도, SELID를 사용하여 LotID 또는 ChipID를 암호 해독할 수 있는 불법적인 호스트 디바이스들을 배제할 수 있다.
[제8 실시예(ChipID 전송 시에 일방향성 함수를 연산에 사용하는 일례)]
다음으로, 제8 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 본 실시예는 ChipID 전송 시에 계산에 일방향성 함수를 사용하는 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
도 18을 참조하여, 제8 실시예에 따른 구조 예를 설명한다.
도 18에 도시된 바와 같이, 제8 실시예의 구조 예는 LotID가 아니라 ChipID를 암호화함으로써 형성되는 암호화 ChipID 세트(SECID)가 NAND 플래시 메모리(10)의 셀 어레이(11)의 사용자 영역(11-1)에 기록되고, ChipID만이 ROM 영역(11-3)에 기록된다는 점에서 전술한 실시예와 상이하다.
또한, NAND 플래시 메모리(10) 및 호스트 디바이스(20)는 세션 키(SKeyj)에 의해 ID를 암호화하는 대신, 일방향성 연산을 실행하기 위한 일방향성 컨버터(일방향성; 38 및 39)를 포함한다.
호스트 디바이스(20)는 NAND 플래시 메모리(10)로부터 SECID를 판독하고, HKeyj 및 인덱스 정보(j)를 사용하여 SECID로부터 ChipID를 획득하기 위한 암호 해독기(22)로서 제1 실시예의 암호 해독기(22)와 유사한 암호 해독기를 포함한다.
호스트 디바이스(20)는 NAND 플래시 메모리(10)로부터 수신된 ChipID를 일방향성 변환함으로써 획득되는 값(Oneway(SKeyj, ChipID)) 및 호스트 디바이스(20) 자체에서 계산된 ChipID의 일방향성 변환 값 사이의 검증 결과를 판정하는 데이터 검증 모듈(40)을 포함한다.
<인증 플로우>
다음으로, 도 19를 참조하여, 제8 실시예에 따른 인증 플로우를 설명한다.
도 19에 도시된 바와 같이, 인증이 시작되면(시작), 호스트 디바이스(20)는 NAND 플래시 메모리(10)로부터 암호화 ChipID 세트(SECID: Set of Encrypted ChipID)를 판독한다[단계 S11].
그 후, 호스트 디바이스(20)는 판독된 SECID로부터의 선택을 위한 전술한 선택 프로세스를 실행하고, 호스트 디바이스(20)에 의해 암호 해독될 수 있는 암호화 ChipID 데이터를 판독한다. 또한, 호스트 디바이스(20)는 은닉된 비밀 정보(HKeyj)를 사용하여, 전술한 암호 해독 프로세스를 실행함으로써 ChipID를 획득한다[단계 S12].
계속해서, 호스트 디바이스(20)는 인증 요청 시에 필요한 난수(RNc)를 생성한다. 인증 프로세스에 난수를 사용함으로써, 후속 프로세스에서 호스트 디바이스(20)와 NAND 플래시 메모리(10) 사이에서 매번 상이한 공유 키가 사용된다[단계 S13].
그 후, 호스트 디바이스(20)는 인증을 요청하고(인증 요청), 미리 저장된 호스트 상수(HCj) 및 난수(RNh)를 NAND 플래시 메모리(10)에 전송한다[단계 S14].
그 후, NAND 플래시 메모리(10)는 인증에 필요한 난수(RNc)를 생성하고, 난수(RNc)를 호스트 디바이스에 전송한다[단계 S15].
계속해서, 단계 S14에서 수신된 HCj와 은닉된 NKey를 사용하여, NAND 플래시 메모리(10)는 전술한 데이터 생성 프로세스에 의해 HKeyj를 생성한다. 또한, NAND 플래시 메모리(10)는 전술한 데이터 결합 프로세스에 의해, 단계 S14에서 수신된 난수(RNh)와 단계 S15에서 생성된 난수(RNc)로부터 결합 데이터(RNh || RNc)를 생성한다. 또한, HKeyj 및 결합 데이터(RNh || RNc)를 사용하여, NAND 플래시 메모리(10)는 전술한 데이터 생성 프로세스에 의해 키 데이터(SKeyj)(= Generate(HKeyj, RNh || RNc))를 생성한다[단계 S16].
단계 S16의 프로세스와 병행하여, 호스트 디바이스(20)는 전술한 데이터 결합 프로세스에 의해, 생성된 난수(RNh) 및 수신된 난수(RNc)로부터 결합 데이터(RNh || RNc)를 생성한다. 또한, 미리 은닉되어 있는 비밀 정보(HKeyj) 및 결합된 데이터(RNh || RNc)를 사용하여, 호스트 디바이스(20)는 전술한 데이터 생성 프로세스에 의해 SKeyj(= Generate(HKeyj, RNh || RNc))를 생성한다[단계 S17].
계속해서, 호스트 디바이스(20)는 ID 요청(Request ID)을 NAND 플래시 메모리(10)에 전송한다[단계 S19].
그 후, NAND 플래시 메모리(10)는 ROM 영역(11-3)으로부터 ChipID를 판독한다[단계 S21].
계속해서, NAND 플래시 메모리(10)는 ChipID가 생성된 키 데이터(SKeyj)를 사용하여 일방향성 변환을 실행하고, 일방향성 변환 데이터(Oneway-ID)(= Oneway(SKeyj, ChipID))를 생성하고, 생성된 일방향성 변환 데이터(Oneway-ID)를 호스트 디바이스(20)에 전송한다[단계 S38].
그 후, 호스트 디바이스(20)는 ChipID가 생성된 키 데이터(SKeyj)를 사용하여 일방향성 변환을 실행하고, 일방향성 변환 데이터(Oneway-ID)를 구한다[단계 S39].
계속해서, 호스트 디바이스(20)는 수신된 일방향성 변환 데이터(Oneway-ID)와 구해진 일방향성 변환 데이터(Oneway-ID)가 일치하는 것을 확인한다. 양자가 일치하는 경우, 호스트 디바이스(20)는 전술한 ChipID가 정확한 ChipID라고 판정한다. 양자가 일치하지 않는 경우, 호스트 디바이스(20)는 전술한 ChipID가 부정한 ID라고 판정한다[단계 S40].
전술한 동작에 의해, 제8 실시예에 따른 인증 플로우가 종료된다(종료).
암호화 ChipID 세트인 SECID의 구조 예는 마찬가지로 도 20과 같이 도시된다.
그외에는 전술한 제1 실시예와 실질적으로 동일하다.
<작용 효과>
제8 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
또한, 제8 실시예에서, LotID가 아니라 ChipID를 암호화함으로써 형성되는 암호화 ChipID 세트(SECID)는 NAND 플래시 메모리(10)의 셀 어레이(11)에서의 사용자 영역(11-1)에 기록되고, ChipID만이 ROM 영역(11-3)에 기록된다.
그러므로 NAND 플래시 메모리(10)에 저장되어야 하는 ID 정보량이 감소될 수 있다.
[제9 실시예(제7 및 제8 실시예의 조합의 일례)]
다음으로, 제9 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 본 실시예는 제7 및 제8 실시예의 조합의 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
도 21을 참조하여, 제9 실시예에 따른 구조 예를 설명한다.
도 21에 도시된 바와 같이, 본 실시예는 제7 실시예 및 제8 실시예에 있어서 제1 실시예에 추가된 변경 모두를 포함한다. 구체적으로, 제9 실시예는, IDKey가 도입되고, SELID가 SECID로 변경된다는 점에서 제1 실시예와 주로 상이하다.
<인증 플로우>
도 22는 제9 실시예에 관한 인증 플로우를 도시한다.
도 22에 도시된 바와 같이, 제9 실시예의 인증 플로우는 제7 실시예의 인증 플로우와 제8 실시예의 인증 플로우의 조합이다.
암호화 ChipID 세트인 SECID의 구조 예는 마찬가지로 도 23과 같이 도시된다.
그외에는 전술한 제1 실시예와 실질적으로 동일하다.
<작용 효과>
제9 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
나아가, 제9 실시예에서는, 제7 실시예 및 제8 실시예에 추가된 작용 효과를 모두 획득할 수 있다.
[제10 실시예(제3, 제7, 및 제8 실시예의 조합의 일례)]
다음으로, 제10 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 본 실시예는 제3, 제7 및 제8 실시예의 조합의 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
도 24를 참조하여, 제10 실시예에 따른 구조 예를 설명한다.
도 24에 도시된 바와 같이, 본 실시예는 제3, 제7, 및 제8 실시예에 추가된 상이한 점들을 포함한다. 구체적으로, 제10 실시예는, IDKey가 도입되고, SELID가 SECID로 변경되고, 복수의 비밀 정보(HKey)가 호스트 디바이스에 은닉된다는 점에서 주로 제1 실시예와 상이하다.
<인증 플로우>
다음으로, 도 25를 참조하여, 제10 실시예에 따른 인증 플로우를 설명한다.
도 25에 도시된 바와 같이, 인증 플로우는 후술하는 인증 플로우가 추가된다는 점에서 제9 실시예의 인증 플로우와 상이하다.
우선, 호스트 디바이스(20)는 단계 S14에서 인증을 요청한다(인증 요청).
그 후, 단계 S33에서, 난수(RNh) 및 호스트 상수(HCj)를 전송한 후, 호스트 디바이스(20)는 NAND 플래시 메모리의 ROM 영역으로부터, NAND 플래시 메모리에 은닉된 NKeyi의 인덱스 정보(i)를 판독한다. 또한, NAND 플래시 메모리로부터 난수(RNc)를 수신한 후, 호스트 디바이스(20)는 전술한 프로세스에서 수신된 인덱스 정보(i)를 사용하여 비밀 정보 세트(HKeyi ,j (i = 1,…, m))로부터 키 데이터(SKeyi ,j)를 생성하는데 필요한 HKeyi ,j를 선택한다.
그러나, 도 25에 도시된 프로세스 플로우는 일례에 불과하다. 필요한 정보를 인덱스 정보(i)의 판독 및 HKeyi ,j의 선택 프로세스 등의 프로세스에서 미리 획득할 수 있다면, 프로세스 플로우는 이 예에 국한되지 않는다.
암호화 ChipID 세트인 SECID의 구조 예는 마찬가지로 도 23과 같이 도시된다.
그외에는 전술한 제1 실시예와 실질적으로 동일하다.
<작용 효과>
제10 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
나아가, 제10 실시예에 따르면, 제3, 제7 및 제8 실시예의 작용 효과들이 획득될 수 있다.
[제11 실시예(난수 생성기가 제공되지 않는 일례)]
다음으로, 제11 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 이 실시예는 제10 실시예에 있어서 난수 생성기(15)가 NAND 플래시 메모리(10)에 제공되지 않은 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
도 26을 참조하여, 제11 실시예에 따른 구조 예를 설명한다.
도 26에 도시된 바와 같이, 본 실시예는 제10 실시예에 있어서 NAND 플래시 메모리에 제공되는 난수 생성기(RNG; 15)가 제공되지 않는다는 점에서 제10 실시예와 상이하다.
제10 실시예에서, 세션 키 데이터(SKeyi ,j)는 2개의 난수(RNh 및 RNc)의 결합 데이터 및 비밀 데이터(HKeyi ,j)로부터 생성된다. 한편, 본 실시예에서, 세션 키 데이터(SKeyi ,j)는 난수(RNh) 및 비밀 데이터(HKeyi ,j)로부터 생성된다.
다음으로, 제11 실시예에 따른 구조 예를 상세하게 설명한다.
본 실시예는 피인증장치인 NAND 플래시 메모리에 기록된 식별 정보(ChipID)를 식별 정보(ChipID)가 제3자로부터 은닉된 상태로 판독하고, 피인증장치로부터 판독되는 데이터인 것을 확실하게 확인하는 방법을 나타내며, 이 방법이 NAND 플래시 메모리에 적용되는 경우의 구조 예를 나타낸다.
NAND 플래시 메모리
NAND 플래시 메모리(10)는 전술한 바와 같이 피인증장치이다.
도 26에 도시하는 바와 같이, 본 예에 따른 NAND 플래시 메모리(10)는 셀 어레이(11), 셀 어레이(11)의 주변 영역에 배치된 데이터 캐시(12A 및 12B), 데이터 생성 모듈(생성; 13 및 16), 및 일방향성 컨버터(일방향성; 38)를 포함한다.
셀 어레이(11)는 사용자 영역(11-1), 은닉 영역(11-2) 및 ROM 영역(11-3)을 포함한다.
ROM 영역(11-3)은 외부로부터의 데이터 기록이 금지되고, 외부로부터의 데이터 판독이 허용되는 영역이다. 이 예에 따른 ROM 영역(11-3)에서, 식별 정보인 ChipID 및 은닉 영역에 기록된 비밀 정보(NKeyi)를 나타내는 인덱스 정보(i)(NKey의 인덱스)가 기록된다. ChipID 및 인덱스(i)가 기록될 때, 오류가 데이터에 일어난 경우에도 정확한 식별 정보가 판독될 수 있도록 ChipID 및 인덱스(i)가 오류 정정 인코딩된 상태로 ChipID 및 인덱스(i)가 기록된다. 그러나 오류-정정 인코딩/디코딩은 특별히 도시하지 않았다.
은닉 영역(11-2)은 NAND 플래시 메모리(10)의 외부가 데이터 기록으로부터 방지되고, 데이터 판독이 금지되는 영역이다(판독/프로그램 금지). 이 예에 따른 은닉 영역(11-2)에는, 인증 시에 NAND 플래시 메모리(10)에 의해 사용되는 비밀 정보인 NKeyi가 기록된다. ChipID가 외부로부터 항상 은닉되는 경우에, ChipID는 ROM 영역 대신 은닉 영역에 기록될 수 있다.
사용자 영역(11-1)은 데이터 기록 및 데이터 판독이 자유롭게 실행되는 영역이다. 사용자 영역(11-1)에는, 예를 들어 암호화 ChipID 세트인 SECID(Set of Encrypted ChipID)가 기록된다. 또한, 사진, 비디오, 음악, 또는 전자책과 같은 콘텐츠 데이터가 사용자 영역(11-1)에 기록된다. 암호화 ChipID인 SECID의 구조 예가 도 23에 도시된 바와 같다.
데이터 캐시(12A 및 12B)는 셀 어레이(11)로부터 판독된 데이터를 임시 저장한다.
데이터 생성 모듈(생성; 13 및 16) 각각은 복수의 입력 정보로부터 새로운 데이터를 출력하는 모듈이다. 전체 모듈 규모를 저감하기 위해, 전술한 일방향성 컨버터와 동일한 모듈 또는 일방향성 컨버터를 유용한 모듈에 의해 데이터 생성 모듈(생성; 13 및 16)을 구성할 수 있다. 마찬가지로, 데이터 처리 프로시저를 더 쉽게 이해할 수 있도록 상이한 구성 요소로서 도시되고 있는 2개의 데이터 생성 모듈은 동일한 모듈을 반복적으로 DL용함으로써 실현될 수 있다.
데이터 생성 모듈(생성; 13 및 16) 각각은 복수의 입력 데이터로부터의 미리 정해진 계산에 의해 출력 데이터를 생성하는 모듈이다. 전술한 비밀 정보(NKeyi)를 사용하여 호스트 디바이스(20)로부터 수신된 정보(HCj)를 변환하여 HKeyi ,j를 생성하고, HKeyj를 사용하여 호스트 디바이스(20)로부터 수신된 난수(RNh)를 변환하여 세션 키(SKeyi ,j)를 생성하기 위해 데이터 생성 모듈이 사용된다. 예를 들어, AES(Advanced Encryption Standard) 암호화기들이 데이터 생성 모듈(13 및 16)에 사용될 수 있다.
일방향성 컨버터(일방향성; 38)는 입력된 데이터과 별도 입력된 키 데이터의 일방향성 변환을 실행하고, 일방향성 변환된 입력 데이터를 출력하는 모듈이다. 본 실시예에서, 일방향성 컨버터(일방향성; 38)는 전술한 데이터 생성 모듈들에 의해 생성된 키 데이터(SKeyi ,j)를 사용하여 ROM 영역으로부터 판독된 식별 정보(ChipID)를 일방향성 변환에 의해 변환함으로써 일방향성 식별 정보(Oneway-ID)(= SKeyi ,j, ChipID)를 생성한다. 제1 실시예에서와 같이, 식별 정보(ChipID)가 ROM 영역 대신 은닉 영역에 기록되는 경우, 일방향성 컨버터의 입력 데이터인 식별 정보(ChipID)는 은닉 영역으로부터 판독된다.
전술한 바와 같이, 전체 하드웨어 모듈 규모를 저감하기 위해, 일방향성 컨버터(38)는 데이터 생성 회로로서 사용될 수도 있다.
도시되지 않았지만, 예를 들어, 컨트롤러(19)를 통해 호스트 디바이스(20)로 전송될 데이터를 출력하기 위한 출력 모듈이 구성 요소로서 실제로 배치될 수 있다.
호스트 디바이스
도 26에 도시된 바와 같이, 이 예에 따른 호스트 디바이스(호스트; 20)는 난수 생성기(RNG; 25), 배타적 OR 모듈(EXOR; 24), 데이터 선택기(선택; 21-1 및 21-2), 암호 해독기(암호 해독; 22), 데이터 생성기(생성; 27), 일방향성 컨버터(일방향성; 39), 및 데이터 검증 모듈(검증; 40)을 포함한다. 또한, 예를 들어, 필요한 경우, 도시되지 않은 오류 정정 프로세스 모듈이 구성 요소로서 포함될 수 있다.
난수 생성기(RNG; 25)는 인증에 사용되는 난수(RNh)를 생성한다.
배타적 OR 모듈(EXOR; 24)은 2개의 입력 데이터의 배타적 논리합을 계산하고, 계산 결과를 출력한다.
2개의 데이터 선택기(선택; 21-1 및 21-2)가 배치된다. 제1 스테이지 데이터 선택기(선택1; 21-1)는 비밀 정보(HKeyj)의 인덱스 정보(k)를 사용해서, NAND 플래시 메모리(10)로부터 판독된 암호화 ChipID 세트(SECID)로부터 호스트 디바이스에 은닉된 비밀 정보(IDKeyk)를 사용하여 암호 해독될 수 있는 암호화 ChipID 데이터를 선택한다.
제2 스테이지 데이터 선택기(선택2; 21-2)는 NAND 플래시 메모리(10)로부터 판독된 비밀 정보(NKeyi)의 인덱스 정보(i)를 사용하여 호스트 디바이스(20)에 은닉된 비밀 정보 세트(HKeyi ,j (i = 1,…, m; j는 HKeyi ,j에서 고정 값임))로부터 NAND 플래시 메모리(10)와의 인증 프로세스에 필요한 비밀 정보(HKeyi ,j)를 선택한다.
소비자 디바이스의 경우, 비밀 정보(IDKeyk 및 HKeyi ,j)는 제조사의 고유 방법에 의해 암호화된 후 내부 전용 메모리에 기록된다. 소프트웨어 프로그램의 경우, 비밀 정보(IDKeyk 및 HKeyi ,j)는 탬퍼 레지스턴트 소프트웨어(TRS) 기술에 의한 불법적인 분석으로부터 보호될 수 있는 상태로 저장된다. 보안 모듈이 내장된 경우, 보안 모듈의 기능을 사용하여 비밀 정보(IDKeyk 및 HKeyi ,j)를 은닉하기 위한 조치를 취한 후 비밀 정보(IDKeyk 및 HKeyi ,j)가 저장된다.
암호 해독기(암호 해독; 22)는 별도 입력된 키 데이터에 의해 입력 데이터를 암호 해독하고 암호 해독된 입력 데이터를 출력한다. 본 실시예에서, 암호 해독기(22)는, 필요한 경우, 호스트 디바이스에 은닉된 비밀 정보(IDKeyk) 및 비밀 정보(IDKeyk)를 식별하기 위한 인덱스 정보(k)에 대한 배타적 OR 모듈에 의한 연산 결과를 키 정보로서 사용하여 제1 데이터 선택기에 의해 선택된 암호화 ChipID 데이터를 암호 해독함으로써 ChipID를 획득하기 위해 사용된다.
데이터 생성기(생성; 27)는 복수의 입력 데이터로부터의 미리 정해진 연산에 의해 출력 데이터를 생성하는 산술 모듈이다. 데이터 생성기(27)는 호스트 디바이스에 은닉된 비밀 정보(HKeyi ,j)를 사용하여 호스트 디바이스(20) 자체에서 생성된 난수(RNh)를 변환함으로써 세션 키(SKeyi ,j)를 생성하기 위해 사용된다. 예를 들어, 데이터 생성기(27)는 AES 암호화 연산을 사용할 수 있다.
일방향성 컨버터(일방향성; 39)는 데이터 생성기로부터 출력된 SKeyi ,j를 사용하여 암호 해독기로부터 출력된 ChipID를 일방향성 함수에 의해 변환함으로써, 일방향성 변환 식별 정보(Oneway-ID)를 생성한다.
데이터 검증 모듈(검증; 40)은 NAND 플래시 메모리(10)로부터 수신된 일방향성 변환 식별 정보(Oneway-ID)와 호스트 디바이스 내의 일방향성 컨버터로부터 획득된 일방향성 변환 식별 정보를 비교한다. 양자 정보 값들이 일치하는 경우, 데이터 검증 모듈(검증; 40)은 암호 해독기에 의해 획득된 전술한 ChipID가 정확한 ChipID라고 판정한다. 양자 정보 값들이 일치하지 않는 경우, 데이터 검증 모듈(검증; 40)은 전술한 ChipID가 부정한 ID라고 판정한다.
필요한 경우, 도시되지 않은 오류 정정 프로세스 모듈 등이 구성 요소들로서 제공될 수 있다.
<인증 플로우>
다음으로, 도 27을 참조하여, 제11 실시예에 따른 메모리 시스템의 인증 플로우를 설명한다.
도 27에 도시된 바와 같이, 인증이 시작되면(시작), 호스트 디바이스(20)는 NAND 플래시 메모리(10)로부터 암호화 ChipID 세트(SECID: Set of Encrypted ChipID)를 판독한다[단계 S11].
그 후, 호스트 디바이스(20)는 판독된 SECID로부터의 선택을 위한 데이터 선택 프로세스를 데이터 선택기(선택1; 21-1)에 의해 실행하고, 호스트 디바이스(20)에 의해 암호 해독될 수 있는 암호화 ChipID 데이터를 판독한다. 또한, 호스트 디바이스(20)는 은닉된 비밀 정보(IDKeyk)를 사용하여, 암호 해독 프로세스를 암호 해독기(22)에 의해 실행함으로써 ChipID를 획득한다[단계 S12].
계속해서, 호스트 디바이스(20)는 인증 요청 시에 필요한 난수(RNh)를 생성한다[단계 S13]. 인증 프로세스에 난수를 사용함으로써, 후속 프로세스에서 호스트 디바이스(20)와 NAND 플래시 메모리(10) 사이에서 매번 상이한 공유 키가 사용된다.
그 후, 호스트 디바이스(20)는 인증을 요청하고(인증 요청), 미리 저장된 호스트 상수(HCj) 및 난수(RNh)를 NAND 플래시 메모리(10)에 전송한다[단계 S14].
계속해서, NAND 플래시 메모리(10)는 호스트 디바이스(20)가 비밀 정보 세트(HKeyi,j (i = 1,…, m))로부터 NAND 플래시 메모리와의 인증에 필요한 HKeyi ,j를 선택하는데 필요한 NKey의 인덱스 정보(i)를 판독한다[단계 S15 및 S33].
그 후, NAND 플래시 메모리(10)는 은닉된 NKeyi 및 수신된 HCj를 사용하여 데이터 생성 모듈의 데이터 생성 프로세스에 의해 HKeyi ,j를 생성하고, 수신된 난수(RNh)를 사용하여 데이터 생성 회로의 전술한 데이터 생성 프로세스에 의해 키 데이터(SKeyi,j)(= Generate(HKeyi,j, RNh))를 생성한다[단계 S18].
단계 S32의 프로세스와 병행하여, 호스트 디바이스(20)는 수신된 인덱스 정보(i)를 사용하여, 미리 은닉된 비밀 정보 세트(HKeyi ,j (i = 1,…, m))로부터 NAND 플래시 메모리(10)와의 인증 프로세스에 필요한 HKeyi ,j를 선택한다[단계 S33].
계속해서, 호스트 디바이스(20)는 선택된 비밀 정보(HKeyi ,j)와 생성된 난수(RNh)를 사용하여, 데이터 생성기(27)의 전술한 데이터 생성 프로세스에 의해 세션 키(SKeyi ,j)(= Generate(HKeyi ,j, RNh))를 생성한다[단계 S17].
그 후, 호스트 디바이스(20)는 ID 요청(Request ID)을 NAND 플래시 메모리(10)에 전송한다[단계 S19].
계속해서, NAND 플래시 메모리(10)는 ROM 영역으로부터 ChipID를 판독한다[단계 S21].
그 후, NAND 플래시 메모리(10)는 일방향성 변환 데이터(Oneway-ID)(= Oneway (SKeyi ,j, ChipID))를 생성하기 위해 ChipID를 갖는 키 데이터(SKeyi ,j)를 사용하여 일방향성 컨버터(38)의 일방향성 변환 프로세스를 실행하고, 생성된 일방향성 변환 데이터(Oneway-ID)를 호스트 디바이스(20)에 전송한다[단계 S38].
계속해서, 호스트 디바이스(20)는 ChipID가 생성된 키 데이터(SKeyi ,j)를 사용하여, 일방향성 컨버터(39)에서 일방향성 변환 프로세스를 실행하고, 일방향성 변환 데이터(Oneway-ID)를 구한다[단계 S39].
계속해서, 호스트 디바이스(20)는 수신된 일방향성 변환 데이터(Oneway-ID)와 구해진 일방향성 변환 데이터가 일치하는 것을 확인한다. 양자가 일치하는 경우, 호스트 디바이스(20)는 전술한 ChipID가 정확한 ChipID라고 판정한다. 양자가 일치하지 않는 경우, 호스트 디바이스(20)는 전술한 ChipID가 부정한 ID라고 판정한다[단계 S40].
전술한 동작에 의해, 제11 실시예에 따른 인증 플로우가 종료된다(종료).
<작용 효과>
제11 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
더구나, 제11 실시예에서, NAND 플래시 메모리(10)에 난수 생성기(15)를 제공할 필요가 없다. 그러므로 제1 실시예의 작용 효과 및 제10 실시예에 추가된 작용 효과를 마찬가지로 획득할 수 있고, NAND 플래시 메모리의 구현 회로 규모를 더욱 유리하게 저감할 수 있다.
[제12 실시예(ID-index가 기입된 일례)]
다음으로, 제12 실시예에 따른 인증장치, 피인증장치, 및 인증 방법에 대해 설명한다. 이 실시예는 ChipID를 특정하는데 필요한 인덱스 정보(ID-index)가 기입된 일례에 관한 것이다. 제1 실시예와 공통적인 부분들에 대한 상세한 설명은 생략된다.
<구조 예(메모리 시스템)>
도 28을 참조하여, 제12 실시예에 따른 구조 예를 설명한다.
도 28에 도시된 바와 같이, 본 실시예는 필요한 경우, ChipID를 특정하는데 필요한 인덱스 정보(ID-index)가 NAND 플래시 메모리(10)의 ROM 영역(11-3)에 기입되고, ChipID가 은닉 영역(11-3)에 기록되며, 예를 들어 ChipID를 판독하기 위한 데이터 캐시(12C)가 포함된다는 점에서 제11 실시예와 상이하다.
암호화 ChipID인 SECID의 구조 예는 도 23에 도시된 바와 유사하다.
<인증 플로우>
은닉 영역으로부터 ChipID를 판독할 때, NAND 플래시 메모리(10)는 필요한 경우 데이터 캐시를 통해 ChipID를 판독한다. 그외에는 프로세스 플로우가 제11 실시예와 실질적으로 동일하다.
<SECID의 기입에 대하여>
도 29를 참조하여, 암호화 ChipID 세트(SECID)의 기입을 설명한다.
이 기입 프로세스는, 예를 들어 암호화 ChipID 세트(SECID)가 NAND 플래시 메모리(10)의 제조 시에 기입된 경우 특히 필요하지 않는다. 그러나, NAND 플래시 메모리(10) 및 컨트롤러(19)가 결합되어, 예컨대 SD(등록 상표) 카드와 같은 저장 매체 제품으로서 일반 사용자들에 의해 입수되며, SECID가 카드 사용 시에 시장에서 차후에 기입되는 경우에는 SECID 기입 프로세스가 필요하다.
도 29는 전술한 바와 같이, SECID가 아직 기록되지 않은 상태로 데이터가 저장 매체에 기록되는 경우를 도시한다.
도 29에 도시된 바와 같이, NAND 플래시 메모리(10)에서, 비밀 정보(NKeyi) 및 식별 정보(ChipID)는 은닉 영역(11-2)에 기록되고, 비밀 정보(NKeyi)를 특정하는데 필요한 인덱스 정보(i), 및 식별 정보(ChipID)를 특정하는데 필요한 인덱스 정보(ID-index)는 ROM 영역(11-3)에 기입된다. 그러나, SECID는 아직 NAND 플래시 메모리(10)에 기입되지 않았다.
도 30을 참조하여, SECID가 서버로부터 다운로드되어 SECID가 아직 기록되지 않은 저장 매체(10)에 기록된 경우를 설명한다.
도 30에 도시된 바와 같이, 이 경우, NAND 플래시 메모리(10)에는 필요에 따라 데이터 캐시(12)가 배치된다.
이 예에서의 서버(60)는 ID-index로부터 ChipID를 생성하기 위한 ChipID 생성기(ChipID 생성; 62), 암호화기(암호화; 63), 및 IDKey 데이터베이스(IDKeye 세트 (e = 1,…, x); 61)를 포함한다.
다양한 변환이 ID-index로부터 ChipID를 생성하는 방법으로서 활용될 수 있다. 이하, 변환의 일례를 설명한다.
(변환 예)
우선, NAND 플래시 메모리(10)의 각각의 제조사에 미리 배포되어 있는 변환 키(Km)를 사용한 암호화에 의해 ChipID를 암호화함으로써 생성된 값을 ID-index로 설정한다. ID-index는 다음의 수식으로 표현된다.
ID-index = Encrypt(Km, ChipID)
ID-index는 인터넷(50)을 통해 서버(60)로 전송된다.
서버(60)에서, 생성기(62)는 변환 키(Km)를 사용하여, 수신된 ID-인덱스를 암호 해독하며, 이로써 ChipID를 획득한다. ChipID는 다음의 수식으로 표현된다.
ChipID = Decrypt(Km, ID-index)
변환 키(Km)는 NAND 플래시 메모리(10)의 모든 제조사에 공통될 수 있다. 그러나 변환 키(Km)는 NAND 플래시 메모리(10)의 제조사들 사이에 상이해질 수도 있다.
호스트 디바이스(20)는 SECID의 새로운 기입이 필요한지 여부를 판정하고, 필요에 따라 서버에 SECID를 요청하는 기능을 갖는다.
<SECID 기입 플로우>
다음으로, 도 31을 참조하여, 서버(60)로부터 암호화 ChipID 세트(SECID)를 다운로드하고 NAND 플래시 메모리(10)에 SECID를 기입하는 플로우를 설명한다.
도 31에 도시된 바와 같이, 우선, SECID가 다운로드될 필요가 있다고 호스트 디바이스(20)가 판정하면, SECID 기입 프로세스가 시작되고(시작), 호스트 디바이스(20)는 SECID 요청을 서버(60)에 발행한다[단계 S55].
그 후, 서버(60)는 ChipID를 특정하는데 필요한 인덱스 정보(ID-index)를 NAND 플래시 메모리(10)에 요청한다[단계 S60].
계속해서, NAND 플래시 메모리(10)는 ROM 영역(11-3)으로부터 ID-index를 판독하고, ID-index를 서버에 전송한다[단계 S61].
그 후, 서버(60)는 수신된 ID-index를 사용하여 ChipID 생성기(62)에 의해 ChipID를 생성한다[단계 S62].
계속해서, 서버(60)는 은닉된 IDKeye (e = 1,…, x)를 판독하고, 각각의 IDKeye(61)를 사용하여, 생성된 ChipID를 암호화하고, 암호화 ChipID 세트(SECID)를 생성한다[단계 S63].
그 후, 서버(60)는 생성된 암호화 ChipID 세트를 NAND 플래시 메모리에 전송한다[단계 S64].
계속해서, NAND 플래시 메모리(10)는 수신된 암호화 ChipID 세트(SECID)를 사용자 영역(11-1)에 기입 및 기록한다[단계 S65].
전술한 동작에 의해, 제12 실시예에 관한 암호화 ChipID 세트(SECID) 다운로드 플로우가 종료된다(종료).
나머지 구조 및 동작들은 제11 실시예와 실질적으로 동일하다.
<작용 효과>
제12 실시예에 관한 인증장치, 피인증장치, 및 인증 방법에 따르면, 전술한 제1 실시예에서와 동일한 작용 효과 (1) 및 (2)를 획득할 수 있다.
또한, 제12 실시예에서와 같이, SECID가 차후에 기입되는 경우에 적용될 수 있다.
[제13 실시예(메모리, 컨트롤러, 및 호스트의 일례)]
다음으로, 도 32를 참조하여, 제13 실시예를 설명한다. 제13 실시예는 전술한 실시예에 적용 가능한 NAND 플래시 메모리(10), 컨트롤러(19), 및 호스트 디바이스(20)의 일례에 관한 것이다. 이 실시예에서, SD(등록 상표) 카드가 메모리 카드의 일례로서 취해진다.
도 32에 도시된 바와 같이, 이 실시예에 있어서, 메모리 카드에 접속되어 있는 호스트 디바이스의 기능 블록들이 도시된다. 개별 기능 블록들은 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합에 의해 실현될 수 있다. 이에, 개별 블록들은 각각의 블록이 실현되는 것을 명확히 하기 위해 일반적으로 이들 기능에 입각하여 설명된다. 이러한 기능들이 하드웨어 또는 소프트웨어로서 실행되는지 여부는 구체적인 구현 모드 또는 전체 시스템에 부과된 설계 제한 사항에 의존한다. 당업자는 각각의 구체적인 구현 모드에서 다양한 방법에 의해 이들 기능을 실현할 수 있지만, 모든 구현 방법은 본 발명의 범위에 있다.
호스트 디바이스(20)는 애플리케이션 또는 운영 체제와 같은 소프트웨어(211)를 포함한다. 소프트웨어(211)는 사용자에 의해 메모리 카드에 데이터를 기입하거나 메모리 카드로부터 데이터를 판독하도록 지시받는다. 소프트웨어(211)는 파일 시스템(212)이 데이터를 기입 및 판독하도록 지시한다. 파일 시스템(212)은 관리 대상인 저장 매체에 기록된 파일 데이터를 관리하는 방식이다. 파일 시스템(212)은 저장 매체의 메모리 영역에 관리 정보를 기록하고, 관리 정보를 사용하여 파일 데이터를 관리한다.
호스트 디바이스(20)는 SD 인터페이스(213)를 포함한다. SD 인터페이스(213)는 호스트 디바이스(20)와 메모리 카드 사이의 인터페이스 프로세스를 실행하는데 필요한 하드웨어 및 소프트웨어로 구성된다. 호스트 디바이스(20)는 SD 인터페이스(213)를 통해 메모리 카드와 통신한다. SD 인터페이스(213)는 호스트 디바이스(20)와 메모리 카드 사이의 통신에 필요한 다양한 프로토콜을 특정하고, 후에 설명될 메모리 카드의 SD 인터페이스(131)에 의해 상호 인식 가능한 다양한 커맨드 세트를 포함한다. 또한, SD 인터페이스(213)는 메모리 카드의 SD 인터페이스(131)에 접속 가능한 하드웨어 구조(핀 배열, 핀 개수 등)를 포함한다.
메모리 카드는 NAND 플래시 메모리(10) 및 메모리(10)를 제어하기 위한 컨트롤러(19)를 포함한다. 메모리 카드가 호스트(20)에 접속되는 경우, 또는 오프 상태인 호스트(20)에 메모리 카드가 삽입되는 상태에서 호스트(20)가 턴온되는 경우, 메모리 카드는 전원을 공급받아, 초기화 프로세스를 실행하고, 호스트(20)로부터의 액세스에 대응하는 프로세스를 실행한다.
NAND 메모리(10)는 비휘발성 상태로 데이터를 저장하고, 복수의 메모리 셀을 포함하는 "페이지"로 지칭되는 단위로 데이터 기입 및 판독을 실행한다. 고유한 물리적 어드레스가 각각의 페이지에 할당된다. 또한, 복수의 페이지를 포함하는 "블록"(소거 블록)이라고 지칭되는 단위로 데이터의 소거를 실행한다. 일부 경우에, 물리적 어드레스가 물리적 블록 단위로 할당된다.
컨트롤러(19)는 메모리(10)에 의해 데이터의 저장 상태를 관리한다. 저장 상태의 관리는, 페이지(또는 물리적 블록)의 물리적 주소와 이 페이지에 저장된 데이터의 논리적 주소 사이의 관계를 관리하는 것과, 어느 물리적 주소가 소거 상태(데이터가 기입되지 않거나 무효 데이터가 저장된 상태)에 있는 페이지(또는 물리적 블록)를 나타내는지를 관리하는 것을 포함한다.
컨트롤러(19)는 SD 인터페이스(131), MPU(132), ROM(read only memory; 133), RAM(random access memory; 134), 및 NAND 인터페이스(135)를 포함한다.
SD 인터페이스(131)는 호스트(20)와 컨트롤러(19) 사이의 인터페이스 프로세스를 실행하는데 필요한 하드웨어 및 소프트웨어로 구성된다. SD 인터페이스(213)와 마찬가지로, SD 인터페이스(131)는 양자 사이의 통신을 가능하게 하는 프로토콜을 특정하고, 다양한 커맨드 세트를 포함하며, 하드웨어 구조(핀 배열, 핀 개수 등)도 포함한다. 메모리 카드(컨트롤러; 19)는 SD 인터페이스(131)를 통해 호스트(20)와 통신한다. SD 인터페이스(131)는 레지스터(136)를 포함한다.
MPU(132)는 메모리 카드의 전체 동작을 제어한다. 예를 들어, 메모리 카드에 전원이 공급되면, MPU(132)는 ROM(133)에 저장된 펌웨어(제어 프로그램)를 판독하여 RAM(134)에 출력하고, 미리 정해진 프로세스를 실행한다. MPU(132)는 제어 프로그램에 따라 RAM(134) 상에 다양한 테이블을 작성하거나, 호스트(20)로부터 수신된 커맨드에 따라 메모리(10) 상에 미리 정해진 프로세스를 실행한다.
ROM(133)은, 예를 들어 MPU(132)에 의해 제어되는 제어 프로그램을 저장한다. RAM(134)는 MPU(132)의 작업 영역으로서 사용되고, 제어 프로그램 또는 다양한 테이블들을 임시 저장한다. 이러한 테이블들은 파일 시스템(212)에 의해 데이터에 할당된 논리 주소를 데이터가 실제 저장되는 페이지의 물리적 주소로 변환하기 위한 변환 테이블(논리적/물리적 테이블)을 포함한다. NAND 인터페이스(135)는 컨트롤러(19)와 메모리(10) 사이의 인터페이스 프로세스를 실행한다.
NAND 플래시 메모리(10)의 메모리 영역은, 예를 들어 저장된 데이터의 종류에 따라, 전술한 바와 같이 사용자 영역, 은닉 영역, 보호 영역, 및 ROM 영역을 포함한다. 컨트롤러(19)는 사용자 데이터 영역의 일부를 확보하고, 컨트롤러(19) 자체의 동작에 필요한 제어 데이터(예를 들어, 논리적/물리적 테이블)를 저장한다.
[제14 실시예(NAND 플래시 메모리의 구조 예)]
다음으로, 전술한 NAND 플래시 메모리(10)의 구체적인 구조 예로서 제14 실시예를 설명한다.
<전체 구조 예>
도 33은 NAND 플래시 메모리(10)의 구체적인 전체 구조 예를 도시한다.
도 33에 도시된 바와 같이, 이 실시예의 NAND 플래시 메모리(10)는 메모리 셀 어레이(11), 제어 회로(19), 인증 회로(151), 비트 라인 제어 회로(152), 컬럼 디코더(153), 데이터 입출력 버퍼(154), 데이터 입출력 단자(155), 워드 라인 구동 회로(156), 제어 신호 입력 단자(158), 및 전압 생성 회로(159)를 포함한다.
메모리 셀 어레이(11)는 복수의 블록(BLOCK1 내지 BLOCKn)으로 구성된다. 블록(BLOCK1 내지 BLOCKn)의 각각은 워드 라인과 비트 라인 사이에 교차점에 배열된 복수의 메모리 셀을 포함한다. 예를 들어, BLOCK1은 전술한 ROM 영역(11-3)이다. 예를 들어, BLOCK2는 은닉 영역(11-2)이다. 다른 블록들은, 예를 들어 호스트 디바이스(20)로부터 액세스 가능한 사용자 영역(11-1)이다.
ROM 영역(11-3)은, 예를 들어 OTP(One Time Program) 블록이고, 1회의 기입만이 허용된다. 데이터 기입 후에, 전기 퓨즈, 레이저 퓨즈, 또는 ROM 퓨즈와 같은 수단을 이용하여 블록 디코더를 제어하며, 이로써 소거 동작을 금지한다. 은닉 영역(11-2)은, 예를 들어 외부 어드레스와 디코딩함으로써 선택될 수 없는 상태로 설정된다. 은닉 영역(11-2)은 NAND 플래시 메모리의 제어 회로(19)에 의해서만 데이터가 판독될 수 있는 영역이다.
인증 회로(151)는, 예를 들어 전술한 데이터 캐시(12), 생성 회로(13 및 16), 결합 회로(14), 난수 생성기(15), 배타적 OR 회로(17), 및 암호화기(18)를 포함한다. 인증 회로(151)는 제어 회로(19)에 의해 제어된다.
비트 라인 제어 회로(152)는 비트 라인을 통해 메모리 셀 어레이(11) 내의 메모리 셀의 데이터를 판독하고, 비트 라인을 통해 메모리 셀 어레이(11) 내의 메모리 셀의 상태를 검출한다. 또한, 비트 라인 제어 회로(152)는 비트 라인을 통해 메모리 셀 어레이(11) 내의 메모리 회로에 기입 제어 전압을 인가하며, 이로써 메모리 셀에 데이터를 기입한다.
비트 라인 제어 회로(152)에는, 페이지 버퍼(미도시)와 같은 데이터 메모리 회로가 제공되고, 이 데이터 메모리 회로는 컬럼 디코더(153)에 의해 선택된다. 데이터 메모리 회로에 판독되어 출력된 메모리 셀의 데이터는 데이터 입출력 버퍼(154)를 통해 데이터 입출력 단자(155)로부터 외부로 출력된다.
데이터 입출력 단자(155)는, 예를 들어 외부 호스트 디바이스(20)에 접속된다. 데이터 입출력 단자(155)는, 예를 들어 8비트 또는 16비트의 버스 폭을 갖는다. NAND 플래시 메모리(10)는 토글 모드 인터페이스와 같은 고속 인터페이스 표준을 지원할 수 있다. 토글 모드 인터페이스에서는, 예를 들어, 데이터 스트로브 신호(DQS)의 상승 엣지 및 하강 엣지 모두와 동기화하여 데이터 입출력 단자(155)를 통해 데이터 전송이 수행된다.
호스트 인터페이스(20)는 예를 들어 마이크로컴퓨터이며, 데이터 입출력 단자(155)로부터 출력된 데이터를 수신한다. 호스트 디바이스(20)는 NAND 플래시 메모리(10), 어드레스(ADD), 및 데이터(DT)의 동작을 제어하기 위한 다양한 커맨드(CMD; 기입 커맨드, 판독 커맨드, 소거 커맨드, 상태 판독 커맨드 등)을 출력한다. 호스트 디바이스(20)로부터 데이터 입출력 단자(155)에 입력된 기입 데이터(DT)는 데이터 입출력 버퍼(154)를 통해 컬럼 디코더(153)에 의해 선택된 데이터 메모리 회로에 공급된다. 한편, 커맨드(CMD) 및 어드레스(ADD)는 제어 회로(19)에 공급된다.
제어 회로(19)의 제어 하에, 워드 라인 구동 회로(156)는 메모리 셀 어레이(11)에서 워드 라인을 선택하고, 데이터 판독, 기입, 또는 소거에 필요한 전압을 선택된 워드 라인에 인가한다.
제어 회로(19)의 제어 하에서, 전압 생성 회로(159)는 도면들에 도시된 접속된 구조 회로의 동작들에 필요한 전압을 공급한다. 예를 들어, 전압 생성 회로(159)는 호스트 디바이스로부터 공급된 외부 전압을 승압하여, 데이터 판독, 기입, 또는 소거 시에 워드 라인에 인가되는 전압을 생성한다.
제어 회로(컨트롤러; 19)는 개별 접속된 회로들에 필요한 제어 신호 및 제어 전압을 전달하며, 이로써 NAND 플래시 메모리(10)의 전체 동작을 제어한다. 제어 회로(19)는 메모리 셀 어레이(11), 인증 회로(151), 비트 라인 제어 회로(152), 컬럼 디코더(153), 데이터 입출력 버퍼(154), 워드 라인 구동 회로(156), 및 전압 생성 회로(159)에 접속된다. 접속된 구조 회로들은 제어 회로(19)에 의해 제어된다.
제어 회로(19)는 제어 신호 입력 단자(158)에 접속되고, 호스트 디바이스(20)로부터 제어 신호 입력 단자(158)를 통해 입력된 WE(기입 가능) 신호, RE(판독 가능) 신호, ALE(어드레스 래치 가능) 신호, 및 CLE(커맨드 래치 가능) 신호와 같은 제어 신호들의 조합에 의해 제어된다.
기능적 표현에 있어서, 워드 라인 구동 회로(156), 비트 라인 제어 회로(152), 컬럼 디코더(154), 및 제어 회로(19)는 데이터 기입 회로, 데이터 판독 회로, 및 데이터 소거 회로를 구성한다. 호스트 디바이스(20)는 RY/BY(ready/busy) 신호 출력 단자(미도시)를 모니터링함으로써 NAND 플래시 메모리(10)가 기입 동작, 판독 동작, 또는 소거 동작과 같은 내부 동작을 실행하고 있는지 여부를 검출한다. 제어 회로(19)는 RY/BY 신호 출력 단자를 통해 RY/BY 신호를 출력한다.
<블록(BLOCK)의 구조 예>
다음으로, 도 34를 참조하여, 메모리 셀 어레이를 구성하는 블록(BLOCK)의 구조 예를 설명한다. 도 33에서의 블록(BLOCK1)을 일례로서 설명한다. 이 예에서, 블록(BLOCK1)의 메모리 셀이 일괄적으로 소거되기 때문에, 이 블록은 데이터 소거 단위이다.
블록(BLOCK1)은 워드 라인 방향(WL 방향)으로 배열되는 복수의 메모리 셀 유닛(MU)을 포함한다. 메모리 셀 유닛(MU)은 WL 방향과 교차하는 비트 라인 방향(BL 방향)으로 배열된 NAND 스트링(메모리 셀 스트링)을 포함하고, 직렬로 접속된 전류 경로들을 갖는 8개의 메모리 셀(MC0 내지 MC7)과, NAND 스트링의 전류 경로의 일단에 접속된 소스측 선택 트랜지스터(S1)와, NAND 스트링의 전류 경로의 타단에 접속된 드레인측 선택 트랜지스터(S2)로 구성된다.
본 실시예에서, 메모리 셀 유닛(MU)은 8개의 메모리 셀(MCO 내지 MC7)을 포함한다. 그러나 메모리 셀의 개수는 8에 국한되지 않고, 2 이상, 예를 들어 56 또는 32일 수 있다.
소스측 선택 트랜지스터(S1)의 전류 경로의 타단은 소스 라인(SL)에 접속된다. 드레인측 선택 트랜지스터(S2)의 전류 경로의 타단은 각각의 메모리 셀 유닛(MU)에 대응하여, 메모리 셀 유닛(MU)의 상측에 제공되고 BL 방향으로 연장되는 비트 라인(BLm-1)에 접속된다.
워드 라인(WL0 내지 WL7)은 WL 방향으로 연장되고, WL 방향으로 복수의 메모리 셀의 제어 전극에 공통 접속된다. 선택 게이트 라인(SGS)은 WL 방향으로 연장되어 WL 방향으로 복수의 선택 트랜지스터(S1)에 공통 접속된다. 마찬가지로, 선택 게이트 라인(SGD)은 WL 방향으로 연장되어 WL 방향으로 복수의 선택 트랜지스터(S2)에 공통 접속된다.
워드 라인(WL0 내지 WL7) 각각에 대응하는 페이지(PAGE)가 존재한다, 예를 들어, 도 34에 파선으로 표시하는 바와 같이, 워드 라인(WL7)에 대응하는 페이지7(PAGE7)이 존재한다. 데이터 판독 동작 및 데이터 기입 동작이 페이지(PAGE) 단위로 실행되기 때문에, 페이지(PAGE)는 데이터 판독 단위 및 데이터 기입 단위이다.
소정의 실시예들을 설명하였지만, 이들 실시예는 단지 예로서 제시되는 것이며, 본 발명의 범위를 제한하려는 것이 아니다. 실제로, 여기에 설명한 신규한 실시예들은 다양한 다른 형태로 구체화될 수 있으며, 또한 여기에 설명한 실시예들의 형태의 다양한 생략, 대체, 및 변경이 본 발명의 사상에서 벗어나지 않고 수행될 수 있다. 첨부하는 청구범위 및 그에 대한 균등물은 본 발명의 범위 및 사상 내에 있는 이러한 형태 또는 변형예를 커버하려는 것이다.

Claims (15)

  1. 외부 컨트롤러에 의해 제어되는 메모리 디바이스와,
    상기 메모리 디바이스와의 인증 프로세스를 수행할 수 있는 호스트 장치
    를 포함하고,
    상기 메모리 디바이스는,
    메모리 디바이스 고유의 제1 식별 정보와 제1 키 정보를 저장하고, 메모리 디바이스의 외부로부터 판독이 금지되는 제1 영역과,
    상기 제1 식별 정보를 암호화하여 생성된 암호화된 제1 식별 정보를 저장하고, 판독이 가능한 제2 영역
    을 포함하며,
    상기 메모리 디바이스는,
    상기 제1 키 정보와 제2 식별 정보를 사용해 암호화 프로세스를 수행하여 제2 키 정보를 생성하고, 상기 제2 식별 정보는 상기 호스트 장치로부터 수신되고 상기 호스트 장치에 할당되는 것이며,
    상기 제2 키 정보와 난수를 사용해 암호화 프로세스를 수행하여 제3 키 정보를 생성하고, 상기 난수는 상기 호스트 장치로부터 수신되는 것이며,
    상기 제3 키 정보와 상기 제1 식별 정보를 사용해 일방향성 변환 프로세스를 수행하여 상기 호스트 장치와의 인증을 위한 일방향성 변환 식별 정보를 생성하고,
    상기 호스트 장치에 의해 인증되도록
    구성되며,
    상기 호스트 장치는,
    제1 호스트 키 정보와 제2 호스트 키 정보를, 상기 호스트 장치에 할당된 제3 식별 정보로서 저장하고, 상기 제2 호스트 키 정보는 세트로서 저장되는 것이며,
    상기 제2 영역에 저장된 암호화된 제1 식별 정보를 판독하고, 상기 제1 호스트 키 정보에 의한 프로세스로부터 획득된 정보를 사용하여 상기 암호화된 제1 식별 정보를 암호 해독하며,
    상기 제2 영역에 저장된 인덱스 정보를 판독하고 그 인덱스 정보와 대응하는 제2 호스트 키 정보를 상기 세트로부터 선택하며,
    선택된 제2 호스트 키 정보를 사용해 난수를 암호화하여 제4 키 정보를 생성하며,
    입력 값으로서 새로운 제1 식별 정보와 상기 제4 키 정보를 사용해 일방향성 변환 프로세스를 수행하여 검증 정보를 생성하도록
    구성되며, 상기 새로운 제1 식별 정보는 상기 암호화된 제1 식별 정보를 암호 해독하여 새롭게 생성되는 것인 시스템.
  2. 컨트롤러와, 이 컨트롤러에 의해 제어되는 메모리 디바이스를 포함하는 저장 매체와,
    상기 저장 매체와의 인증 프로세스를 수행할 수 있는 호스트 장치
    를 포함하고,
    상기 메모리 디바이스는,
    메모리 디바이스 고유의 제1 식별 정보와 제1 키 정보를 저장하고, 판독이 금지되는 제1 영역과,
    상기 제1 식별 정보를 암호화하여 생성된 암호화된 제1 식별 정보를 저장하고 판독이 가능한 제2 영역
    을 포함하며,
    상기 메모리 디바이스는,
    상기 제1 키 정보와 제2 식별 정보를 사용해 암호화 프로세스를 수행하여 제2 키 정보를 생성하고, 상기 제2 식별 정보는 상기 호스트 장치로부터 수신되고 상기 호스트 장치에 할당되는 것이며,
    상기 제2 키 정보와 난수를 사용해 암호화 프로세스를 수행하여 제3 키 정보를 생성하고, 상기 난수는 상기 호스트 장치로부터 수신되는 것이며,
    상기 제3 키 정보와 상기 제1 식별 정보를 사용해 일방향성 변환 프로세스를 수행하여 상기 호스트 장치와의 인증을 위한 일방향성 변환 식별 정보를 생성하고,
    상기 호스트 장치에 의해 인증되도록
    구성되며,
    상기 호스트 장치는,
    제1 호스트 키 정보와 제2 호스트 키 정보를, 상기 호스트 장치에 할당된 제3 식별 정보로서 저장하고, 상기 제2 호스트 키 정보는 세트로서 저장되는 것이며,
    상기 제2 영역에 저장된 암호화된 제1 식별 정보를 판독하고, 상기 제1 호스트 키 정보에 의한 프로세스로부터 획득된 정보를 사용하여 상기 암호화된 제1 식별 정보를 암호 해독하며,
    상기 제2 영역에 저장된 인덱스 정보를 판독하고 그 인덱스 정보와 대응하는 제2 호스트 키 정보를 상기 세트로부터 선택하며,
    선택된 제2 호스트 키 정보를 사용해 난수를 암호화하여 제4 키 정보를 생성하며,
    입력 값으로서 새로운 제1 식별 정보와 상기 제4 키 정보를 사용해 일방향성 변환 프로세스를 수행하여 검증 정보를 생성하도록
    구성되며, 상기 새로운 제1 식별 정보는 상기 암호화된 제1 식별 정보를 암호 해독하여 새롭게 생성되는 것인 시스템.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020147002367A 2011-08-31 2012-03-19 인증장치, 피인증장치, 및 인증 방법 KR101536086B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011189979A JP5214782B2 (ja) 2011-08-31 2011-08-31 メモリ装置、ストレージメディア、ホスト装置、及びシステム
JPJP-P-2011-189979 2011-08-31
PCT/JP2012/058276 WO2013031270A1 (en) 2011-08-31 2012-03-19 Authenticator, authenticatee and authentication method

Publications (2)

Publication Number Publication Date
KR20140043135A KR20140043135A (ko) 2014-04-08
KR101536086B1 true KR101536086B1 (ko) 2015-07-24

Family

ID=46062682

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147002367A KR101536086B1 (ko) 2011-08-31 2012-03-19 인증장치, 피인증장치, 및 인증 방법

Country Status (5)

Country Link
EP (2) EP3454236B1 (ko)
JP (1) JP5214782B2 (ko)
KR (1) KR101536086B1 (ko)
CN (1) CN103718185B (ko)
WO (1) WO2013031270A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012084071A (ja) 2010-10-14 2012-04-26 Toshiba Corp デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
JP5275432B2 (ja) 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
JP5112555B1 (ja) 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
JP5100884B1 (ja) 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP5204290B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、システム、及び装置
JP5204291B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、装置、システム
JP5275482B2 (ja) 2012-01-16 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
JP2013118616A (ja) * 2012-09-24 2013-06-13 Toshiba Corp メモリ装置
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data
CN109391468A (zh) * 2017-08-14 2019-02-26 杭州萤石网络有限公司 一种认证方法及系统
FR3074989B1 (fr) * 2017-12-11 2021-03-05 Airbus Defence & Space Sas Procede de communication securise
KR102420158B1 (ko) * 2017-12-27 2022-07-13 삼성전자주식회사 파일 단위의 암호화 키에 기반하여 암호화를 수행하도록 구성되는 스토리지 장치, 스토리지 시스템, 및 그 동작 방법
CN110110548B (zh) * 2019-04-12 2022-11-11 深圳市中易通安全芯科技有限公司 基于加密芯片的可信执行环境下文件加密存储的相关方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4757468A (en) * 1982-09-22 1988-07-12 Intel Corporation Authenticated read-only memory
JP2009100394A (ja) * 2007-10-19 2009-05-07 Sony Corp 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
WO2011064883A1 (ja) * 2009-11-27 2011-06-03 株式会社東芝 メモリチップ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08204702A (ja) * 1995-01-30 1996-08-09 Nec Corp 暗号鍵管理装置
DE69722796T2 (de) * 1996-07-25 2004-04-29 Collins, Peter David, Hockley Schutzsystem zum blockieren von elektronischen geräten und bauteilen und verfahren hierfür
JP2000122931A (ja) * 1998-10-15 2000-04-28 Toshiba Corp デジタル集積回路
JP4524829B2 (ja) * 2000-01-25 2010-08-18 ソニー株式会社 データ処理システム、記録デバイス、およびデータ処理方法、並びにプログラム提供媒体
US7058806B2 (en) * 2000-10-17 2006-06-06 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for secure leveled access control
US20030105961A1 (en) * 2001-11-30 2003-06-05 Peter Zatloukal Avoiding attachment of an ineligible smart interchangeable cover to an electronic device
US7624269B2 (en) * 2004-07-09 2009-11-24 Voltage Security, Inc. Secure messaging system with derived keys
WO2006067729A1 (en) * 2004-12-21 2006-06-29 Philips Intellectual Property & Standards Gmbh Integrated circuit with improved device security
US9767319B2 (en) * 2007-04-17 2017-09-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus of secure authentication for system on chip (SoC)
JP4620146B2 (ja) * 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4757468A (en) * 1982-09-22 1988-07-12 Intel Corporation Authenticated read-only memory
JP2009100394A (ja) * 2007-10-19 2009-05-07 Sony Corp 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
WO2011064883A1 (ja) * 2009-11-27 2011-06-03 株式会社東芝 メモリチップ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
David Hoff, et al., "System and software security via authentication handshake in EPROM", 1985 Proceedings of the National Conference, URL: http://www.computer.org/csdl/proceedings/, 1985, pp. 203-209 *

Also Published As

Publication number Publication date
EP2751732B1 (en) 2018-12-12
JP5214782B2 (ja) 2013-06-19
EP2751732A1 (en) 2014-07-09
CN103718185B (zh) 2016-04-27
KR20140043135A (ko) 2014-04-08
WO2013031270A1 (en) 2013-03-07
EP3454236B1 (en) 2022-07-06
JP2013055370A (ja) 2013-03-21
CN103718185A (zh) 2014-04-09
EP3454236A1 (en) 2019-03-13

Similar Documents

Publication Publication Date Title
US10361850B2 (en) Authenticator, authenticatee and authentication method
KR101536086B1 (ko) 인증장치, 피인증장치, 및 인증 방법
US9100187B2 (en) Authenticator
EP2786521B1 (en) Device and authentication method therefor
KR101546204B1 (ko) 호스트 디바이스, 반도체 메모리 디바이스, 및 인증 방법
KR101517336B1 (ko) 반도체 저장 장치
EP2786523B1 (en) Semiconductor memory device
US20150326397A1 (en) Host device and authentication method for host device
US20150074406A1 (en) Memory device and memory system
US20140006738A1 (en) Method of authenticating a memory device by a host device
US20150074421A1 (en) Security system
JP5591964B2 (ja) 認証方法、被認証装置及び認証装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee