KR101517337B1 - 반도체 메모리 장치 - Google Patents

반도체 메모리 장치 Download PDF

Info

Publication number
KR101517337B1
KR101517337B1 KR1020147011373A KR20147011373A KR101517337B1 KR 101517337 B1 KR101517337 B1 KR 101517337B1 KR 1020147011373 A KR1020147011373 A KR 1020147011373A KR 20147011373 A KR20147011373 A KR 20147011373A KR 101517337 B1 KR101517337 B1 KR 101517337B1
Authority
KR
South Korea
Prior art keywords
data
information
authentication
nand flash
flash memory
Prior art date
Application number
KR1020147011373A
Other languages
English (en)
Other versions
KR20140063892A (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 KR20140063892A publication Critical patent/KR20140063892A/ko
Application granted granted Critical
Publication of KR101517337B1 publication Critical patent/KR101517337B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00094Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers
    • G11B20/00115Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers wherein the record carrier stores a unique medium identifier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/60Solid state media
    • 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/601Broadcast encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Read Only Memory (AREA)

Abstract

일 실시 형태에 따르면, 디바이스는 제1 키를 저장하는 제1 메모리 영역을 포함한다. 제2 메모리 영역은 패밀리 키를 이용하여 비밀 식별(ID) 정보로부터 생성되는 암호화된 비밀 ID 정보를 저장한다. 제3 메모리 영역은 ID 키를 이용하여 패밀리 키로부터 생성되는 데이터를 포함하는 패밀리 키 블록을 저장한다. 인증 모듈은 인증을 행한다. 제2 키는 제1 키를 이용하여 제1 수로부터 생성되고, 세션 키는 제2 키를 이용하여 난수로부터 생성되고, 인증 정보는 세션 키를 이용하여 비밀 ID 정보로부터 생성된다. 암호화된 비밀 ID 정보, 패밀리 키 블록 및 인증 정보가 출력된다.

Description

반도체 메모리 장치{SEMICONDUCTOR MEMORY DEVICE}
관련 출원에 대한 상호 참조
본 출원은, 2011년 12월 2일에 출원된 이전의 일본 특허 출원 제2011-265289호에 기초하고, 그로부터의 우선권의 이익을 주장하며, 그 전체 내용은 본 명세서에서 참조로서 원용된다.
본 명세서에 기재된 실시 형태는 전반적으로 반도체 메모리 장치에 관한 것이다.
일반적으로, 정보 보안의 분야에서, 자신의 정당성을 증명하는 수단으로서 서로 공유하는 비밀 정보와 암호화기를 이용한 방법이 채용된다.
예를 들면, 전자 결제에 이용하는 IC 카드(스마트 카드) 등에서는, 카드 내의 IC에는 해당 IC 카드를 개별화하기 위한 ID 및 비밀 정보가 저장된다. 또한, IC 카드는 ID 및 비밀 정보에 근거하는 인증을 행하기 위한 암호 처리 기능을 가진다.
다른 예에서는, CPRM(Content Protection for Recordable Media)으로 불리는 인증 방식이 저작권을 가지는 콘텐츠의 보호에서 SD(등록 상표) 카드의 정당성을 증명하기 위한 수단으로서 규정되어 있다.
도 1은 제1 실시 형태에 따른 메모리 시스템의 구성예를 도시하는 블록도.
도 2는 제1 실시 형태에 따른 메모리 시스템의 인증 플로우를 나타내는 플로우차트.
도 3은 제1 실시 형태에 따른 암호화된 FKey 다발(FKB)의 구성예를 도시하는 도면.
도 4는 제1 실시 형태에 따른 메모리 시스템의 구성예를 도시하는 블록도.
도 5는 제1 실시 형태에 따른 NAND 제조자에 의한 비밀 정보의 기입 처리를 예시하는 도면.
도 6은 도 5의 처리를 나타내는 플로우차트.
도 7은 제1 실시 형태에 따른 카드 제조자에 의한 FKB의 기입 처리를 예시하는 도면.
도 8은 도 7의 처리를 나타내는 플로우차트.
도 9는 제1 변형예에 따른 피인증 장치를 도시하는 도면.
도 10은 제1 변형예에 따른 FKB를 다운로드하는 시스템을 도시하는 블록도.
도 11은 제1 변형예에 따른 FKB를 다운로드하는 플로우를 나타내는 플로우차트.
도 12 및 도 13은 제2 및 제3 실시 형태에 따른 메모리 시스템의 구성예를 각각 도시하는 블록도.
도 14는 제3 실시 형태에 따른 메모리 시스템의 인증 플로우를 나타내는 플로우차트.
도 15는 제4 실시 형태에 따른 메모리 시스템의 구성예를 도시하는 블록도.
도 16은 제4 실시 형태에 따른 메모리 시스템의 인증 플로우를 나타내는 플로우차트.
도 17은 제3 또는 제4 실시 형태에 따른 기능 제어의 구성예를 도시하는 블록도.
도 18은 제5 실시 형태에 따른 NAND 칩의 전체 구성예를 도시하는 블록도.
도 19는 도 18의 NAND 칩의 1블록의 구성예를 나타내는 등가 회로도.
도 20a, 20b, 20c 및 20d는 제5 실시 형태에 따른 셀 어레이의 구성예를 도시하는 블록도.
도 21은 제5 실시 형태에 따른 ROM 블록의 판독 전용 데이터를 도시하는 도면.
도 22, 23, 24 및 25는 ECC의 제1, 제2, 제3 및 제4 구성예를 도시하는 블록도.
도 26은 제5 실시 형태에 따른 기밀 블록 내의 기밀 데이터를 도시하는 도면.
도 27은 제5 실시 형태에 따른 액세스 제어 패턴의 예를 도시하는 도면.
도 28은 제5 실시 형태에 따른 액세스 제어 패턴의 이용예를 도시하는 블록도.
도 29는 제5 실시 형태에 따른 테스트 플로우를 도시하는 도면.
도 30은 제5 실시 형태에 따른 데이터 소거 플로우를 도시하는 도면.
도 31은 제6 실시 형태에 따른 NAND 칩의 구성예를 도시하는 블록도.
도 32 및 도 33은 제6 실시 형태에 따른 NAND 칩의 제1 및 제2 연산 플로우를 도시하는 도면.
도 34는 제6 실시 형태에 따른 테스트 플로우를 도시하는 도면.
도 35는 제6 실시 형태에 따른 숨은 정보의 검사 플로우를 도시하는 도면.
도 36의 (a) 및 (b)는 제7 실시 형태에 따른 커맨드 매핑 예를 나타내는 타이밍차트.
도 37의 (a) 및 (b)는 제7 실시 형태에 따른 커맨드 매핑 예(셋/겟 피쳐 커맨드(Set/Get feature commands))를 나타내는 타이밍차트.
도 38은 제8 실시 형태에 따른 메모리 카드의 구성예를 도시하는 도면.
도 39는 제8 실시 형태에 따른 콘텐츠 보호에의 제1 응용예를 도시하는 도면.
도 40 및 도 41은 제8 실시 형태에 따른 HDD에의 제1 및 제2 응용예를 도시하는 도면.
도 42, 43 및 44는 제8 실시 형태에 따른 콘텐츠 보호에의 제2, 제3 및 제4 응용예를 도시하는 도면.
도 45는 제2 변형예에 따른 센스 증폭기 및 그 주변 회로의 구성예를 도시하는 블록도.
도 46은 도 45의 센스 증폭기 및 데이터 캐시의 등가 회로도.
전반적으로, 일 실시 형태에 따르면, 이하의 내용이 제공된다.
(1-1) 인증될 장치는,
제1 키(NKey) 및 상기 장치에 고유한 비밀 식별 정보(SecretID)를 저장하는 데에 이용되고, 적어도 출하 후에 상기 장치의 외부로부터의 판독 및 기입이 금지되는 제1 메모리 영역과,
상기 비밀 식별 정보(SecretID)를 암호화해서 생성된 암호화된 비밀 식별 정보(E-SecretID)를 저장하는 데에 이용되고, 상기 장치의 외부로부터 판독 전용으로 될 것이 요구되는 제2 메모리 영역과,
상기 장치의 외부로부터의 판독 및 기입이 가능할 것이 요구되는 제3 메모리 영역과,
AES 연산에서 상기 제1 키(NKey)로 호스트 상수(HC)를 암호화하여 제2 키(HKey)를 생성하도록 구성되는 제1 데이터 생성기와,
AES 연산에서 상기 제2 키(HKey)로 난수(RN)를 암호화하여 세션 키(SKey)를 생성하도록 구성되는 제2 데이터 생성기와,
일방향성 함수 연산에서 상기 세션 키(SKey)로 상기 비밀 식별 정보(SecretID)를 처리하여 인증 정보(Oneway-ID)를 생성하도록 구성되는 일방향성 함수 처리기와,
상기 암호화된 비밀 식별 정보(E-SecretID) 및 상기 인증 정보(Oneway-ID)를 상기 장치의 외부로 출력하도록 구성되는 데이터 출력 인터페이스를 포함한다.
(1-2) 인증될 장치는,
제1 키(NKey) 및 상기 장치에 고유한 비밀 식별 정보(SecretID)를 저장하는 데에 이용되고, 적어도 출하 후에 상기 장치의 외부로부터의 판독 및 기입이 금지되는 제1 메모리 영역과,
상기 비밀 식별 정보(SecretID)를 암호화해서 생성된 암호화된 비밀 식별 정보(E-SecretID)를 저장하는 데에 이용되고, 상기 장치의 외부로부터 판독 전용으로 될 것이 요구되는 제2 메모리 영역과,
상기 장치의 외부로부터의 판독 및 기입이 가능할 것이 요구되는 제3 메모리 영역과,
상기 제1 키(NKey)로 호스트 상수(HC)를 암호화하여 제2 키(HKey)를 생성하도록 구성되는 제1 데이터 생성기와,
상기 제2 키(HKey)로 난수(RN)를 암호화하여 세션 키(SKey)를 생성하도록 구성되는 제2 데이터 생성기와,
일방향성 함수 연산에서 상기 세션 키(SKey)로 상기 비밀 식별 정보(SecretID)를 처리하여 인증 정보(Oneway-ID)를 생성하도록 구성되는 일방향성 함수 처리기와,
상기 암호화된 비밀 식별 정보(E-SecretID) 및 상기 인증 정보(Oneway-ID)를 상기 장치의 외부로 출력하도록 구성되는 데이터 출력 인터페이스를 포함한다.
(1-3) 인증될 장치는,
제1 키(NKey) 및 상기 장치에 고유한 비밀 식별 정보(SecretID)를 저장하는 데에 이용되는 제1 메모리 영역과,
상기 비밀 식별 정보(SecretID)를 암호화해서 생성된 암호화된 비밀 식별 정보(E-SecretID)를 저장하는 데에 이용되는 제2 메모리 영역과,
AES 연산에서 상기 제1 키(NKey)로 호스트 상수(HC)를 암호화하여 제2 키(HKey)를 생성하도록 구성되는 제1 데이터 생성기와,
AES 연산에서 상기 제2 키(HKey)로 난수(RN)를 암호화하여 세션 키(SKey)를 생성하도록 구성되는 제2 데이터 생성기와,
일방향성 함수 연산에서 상기 세션 키(SKey)로 상기 비밀 식별 정보(SecretID)를 처리하여 인증 정보(Oneway-ID)를 생성하도록 구성되는 일방향성 함수 처리기와,
상기 암호화된 비밀 식별 정보(E-SecretID) 및 상기 인증 정보(Oneway-ID)를 상기 장치의 외부로 출력하도록 구성되는 데이터 출력 인터페이스를 포함한다.
(1-4) 인증될 장치는,
제1 키(NKey) 및 고유한 비밀 식별 정보(SecretID)를 저장하는 데에 이용되고, 외부로부터 판독 및 기입이 제한되는 제1 메모리 영역과,
상기 비밀 식별 정보(SecretID)를 암호화해서 생성된 암호화된 비밀 식별 정보(E-SecretID)를 저장하는 데에 이용되고, 외부로부터 판독 전용으로 될 것이 허용되는 제2 메모리 영역과,
외부로부터의 판독 및 기입이 가능한 제3 메모리 영역과,
상기 제1 키(NKey)를 이용하여 제2 키(HKey)를 생성하도록 구성되는 제1 데이터 생성기와,
상기 제2 키(HKey)를 이용하여 세션 키(SKey)를 생성하도록 구성되는 제2 데이터 생성기와,
일방향성 함수 연산에서 상기 세션 키로 상기 비밀 식별 정보를 처리하여 인증 정보를 생성하도록 구성되는 일방향성 함수 처리기를 포함하고,
상기 암호화된 비밀 식별 정보(E-SecretID) 및 상기 인증 정보(Oneway-ID)는 외부로 출력된다.
(1-5) 인증될 장치는,
제1 키(NKey), 고유한 비밀 식별 정보(SecretID) 및 암호화된 비밀 식별 정보(E-SecretID)를 저장하는 데에 이용되는 메모리 영역- 상기 암호화된 비밀 식별 정보(E-SecretID)는 상기 비밀 식별 정보(SecretID)를 암호화해서 생성되고, 상기 제1 키(NKey) 및 상기 비밀 식별 정보(SecretID)는 외부로부터의 판독이 금지되고, 상기 암호화된 비밀 식별 정보(E-SecretID)는 외부로부터의 판독이 가능함 -과,
상기 제1 키(NKey)에 기초하여 생성되는 제2 키(HKey)를 이용하여 세션 키(SKey)를 생성하도록 구성되는 데이터 생성기와,
일방향성 함수 연산에서 상기 세션 키(SKey)로 상기 비밀 식별 정보(SecretID)를 처리하여 인증 정보를 생성하도록 구성되는 일방향성 함수 처리기를 포함한다.
(1-6) 인증 방법은,
메모리에 저장되고, 외부로부터의 판독이 금지되는 제1 키(NKey)로 AES 연산을 처리하여 제2 키(HKey)를 생성하는 단계와,
상기 제2 키(HKey)로 AES 연산을 처리하여 세션 키(SKey)를 생성하는 단계와,
일방향성 함수 연산에서 상기 세션 키(SKey)로 비밀 식별 정보(SecretID)를 처리하여 제1 인증 정보(Oneway-ID)를 생성하는 단계- 상기 비밀 식별 정보(SecretID)는 메모리에 저장되고, 외부로부터의 판독이 금지됨 -와,
암호화된 비밀 식별 정보(E-SecretID)를 외부 장치로 송신하고, 상기 외부 장치로부터 제2 인증 정보(Oneway-ID)를 수신하는 단계- 상기 암호화된 비밀 식별 정보(E-SecretID)는 메모리에 저장되어 판독가능하고, 상기 제2 인증 정보(Oneway-ID)는 상기 암호화된 비밀 식별 정보(E-SecretID)에 기초하여 생성됨 -와,
상기 제1 인증 정보 및 상기 제2 인증 정보가 일치하는지의 여부를 판정하는 단계를 포함한다.
(1-7) 인증될 장치의 제조 방법이며, 상기 장치는, 메모리 벤더로부터의 출하 후에 데이터 판독 및 데이터 기입이 금지되는 제1 메모리 영역과, 메모리 벤더로부터의 출하 후에 외부로부터의 데이터 판독이 허용되는 제2 메모리 영역과, 메모리 벤더로부터의 출하 후에 외부로부터의 데이터 판독 및 데이터 기입이 허용되는 제3 메모리 영역을 포함하고,
상기 방법은,
상기 메모리 벤더에 의해, 제1 키(NKey) 및 상기 장치에 고유한 비밀 식별 정보를 상기 제1 메모리 영역 내에 저장하고, 상기 메모리 벤더에 의해, 상기 비밀 식별 정보(SecretID)를 암호화해서 생성된 암호화된 비밀 식별 정보(E-SecretID)를 상기 제2 메모리 영역 내에 저장하는 단계와,
상기 메모리 벤더와는 상이한 벤더에 의해, 상기 암호화된 비밀 식별 정보(E-SecretID)를 해독할 수 있게 하는 정보를 생성하는 패밀리 키 블록(FKB)을 상기 제3 메모리 영역 내에 저장하는 단계를 포함한다.
(1-7.1) 인증될 장치의 제조 방법이며, 상기 장치는, 제1 제조 유닛으로부터의 출하 후에 데이터 판독 및 데이터 기입이 금지되는 제1 메모리 영역과, 상기 제1 제조 유닛으로부터의 출하 후에 외부로부터의 데이터 판독이 허용되는 제2 메모리 영역과, 상기 제1 제조 유닛으로부터의 출하 후에 외부로부터의 데이터 판독 및 데이터 기입이 허용되는 제3 메모리 영역을 포함하고,
상기 방법은,
메모리 벤더에 의해, 제1 키(NKey) 및 상기 장치에 고유한 비밀 식별 정보를 상기 제1 메모리 영역 내에 저장하고, 메모리 벤더에 의해, 상기 비밀 식별 정보(SecretID)를 암호화해서 생성된 암호화된 비밀 식별 정보(E-SecretID)를 상기 제2 메모리 영역 내에 저장하는 단계와,
제2 제조 유닛에 의해, 상기 암호화된 비밀 식별 정보(E-SecretID)를 해독할 수 있게 하는 정보를 생성하는 패밀리 키 블록(FKB)을 상기 제3 메모리 영역 내에 저장하는 단계를 포함한다.
(1-8) 장치는,
호스트 식별 키(IDKey), 호스트 상수(HC) 및 상기 호스트 상수(HC)에 기초해서 생성되는 제1 키(Hkey)를 저장하는 데에 이용되는 메모리와,
상기 호스트 식별 키(IDKey)로 외부 장치로부터 판독된 패밀리 키 블록을 해독하여 패밀리 키(FKey)를 생성하도록 구성되는 제1 생성기와,
상기 패밀리 키(FKey)로 상기 외부 장치로부터 판독된 암호화된 비밀 식별 정보(E-SecretID)를 해독하여 비밀 식별 정보(SecretID)를 생성하도록 구성되는 제2 생성기와,
난수(RN)를 생성하도록 구성되는 제3 생성기와,
상기 제1 키(HKey) 및 상기 난수(RN)를 이용하여 세션 키(SKey)를 생성하도록 구성되는 제4 생성기와,
일방향성 함수 연산에서 상기 세션 키(SKey)로 상기 비밀 식별 정보(SecretID)를 처리하여 제1 인증 정보(Oneway-ID)를 생성하도록 구성되는 제5 생성기와,
상기 제1 인증 정보(Oneway-ID)와, 상기 외부 장치에 송신된 상기 호스트 상수(HC)로 상기 외부 장치에 의해 생성된 제2 인증 정보(Oneway-ID)가 일치하는지의 여부를 판정하도록 구성되는 검증 유닛을 포함한다.
(1-9) 인증 장치에 의해 장치를 인증하는 방법이며,
상기 장치는,
상기 장치에 고유한 제1 비밀 식별 정보(SecretID) 및 제1 키(NKey)를 저장하고, 적어도 상기 장치의 출하 후에 상기 장치의 외부로부터의 판독 및 기입이 금지되는 제1 메모리 영역과,
암호화된 비밀 식별 정보(E-SecretID)를 저장하고, 상기 장치의 외부로부터 판독 전용일 것이 요구되는 제2 메모리 영역을 포함하고,
상기 인증 장치는, 호스트 상수(HC), 상기 인증 장치의 외부로부터 숨겨진 호스트 식별 키(IDKey) 및 상기 인증 장치의 외부로부터 숨겨진 제2 키(HKey)를 저장하며,
상기 방법은,
상기 인증 장치에 의해 상기 장치로부터 상기 암호화된 비밀 식별 정보(E-SecretID)를 판독하는 단계와,
상기 인증 장치에 의해 상기 암호화된 비밀 식별 정보(E-SecretID)를 해독하여 제2 비밀 식별 정보(SecretID)를 생성하는 단계와,
상기 인증 장치에 의해 난수(RN)를 생성하는 단계와,
상기 장치에 의해 상기 인증 장치로부터 상기 호스트 상수(HC) 및 상기 난수(RN)를 판독하는 단계와,
상기 장치에 의해 상기 호스트 상수(HC) 및 상기 제1 키(NKey)를 이용하여 제3 키(HKey')를 생성하는 단계와,
상기 장치에 의해 상기 제3 키(HKey') 및 상기 난수(RN)를 이용하여 제1 세션 키(SKey)를 생성하는 단계와,
상기 인증 장치에 의해 상기 제2 키(HKey) 및 상기 난수(RN)를 이용하여 제2 세션 키(SKey')를 생성하는 단계와,
상기 장치에 의해 일방향성 함수 연산에서 상기 제1 세션 키(SKey)로 상기 제1 비밀 정보(SecretID)를 처리하여 제1 인증 정보(Oneway-ID)를 생성하는 단계와,
상기 인증 장치에 의해 일방향성 함수 연산에서 상기 제2 세션 키(SKey')로 상기 제2 비밀 정보(SecretID)를 처리하여 제2 인증 정보(Oneway-ID')를 생성하는 단계와,
상기 인증 장치에 의해 상기 장치로부터 상기 제1 인증 정보(Oneway-ID)를 판독하는 단계와,
상기 인증 장치에 의해 상기 제1 인증 정보(Oneway-ID)와 상기 제2 인증 보(Oneway-ID')가 일치하는지의 여부를 판정하는 단계를 포함한다.
(1-10) 제1 장치와 제2 장치를 서로 인증하는 방법이며,
제1 비밀 식별 정보(SecretID), 제1 키(NKey) 및 암호화된 비밀 식별 정보(E-SecretID)는 상기 제1 장치에 저장되고, 상기 제1 비밀 식별 정보(SecretID) 및 제1 키(Nkey)는 외부로부터의 판독이 금지되고, 상기 암호화된 비밀 식별 정보(E-SecretID)는 판독가능하며,
호스트 상수(HC), 호스트 식별 키(IDKey) 및 제2 키(HKey)는 상기 제2 장치에 저장되고,
상기 방법은,
상기 제2 장치에 의해 상기 제1 장치로부터 판독된 상기 암호화된 비밀 식별 정보(E-SecretID)를 해독하여 제2 비밀 식별 정보(SecretID)를 생성하는 단계와,
상기 제2 장치에 의해 난수(RN)를 생성하는 단계와,
상기 제1 장치에 의해 상기 제1 장치로부터 판독된 상기 호스트 상수(HC) 및 상기 제1 키(NKey)를 이용해서 제3 키(HKey')를 생성하는 단계와,
상기 제1 장치에 의해 상기 제3 키(HKey') 및 상기 난수(RN)를 이용하여 제1 세션 키(SKey)를 생성하는 단계와,
상기 제1 장치에 의해 일방향성 함수 연산에서 상기 제1 세션 키(SKey)로 상기 제1 비밀 정보(SecretID)를 처리하여 제1 인증 정보(Oneway-ID)를 생성하는 단계와,
상기 제2 장치에 의해 상기 제2 키(HKey) 및 상기 난수(RN)를 이용하여 제2 세션 키(SKey')를 생성하는 단계와,
상기 제2 장치에 의해 일방향성 함수 연산에서 상기 제2 세션 키(SKey')로 상기 제2 비밀 정보(SecretID)를 처리하여 제2 인증 정보(Oneway-ID')를 생성하는 단계와,
상기 제2 장치에 의해 상기 제1 인증 정보(Oneway-ID)와 상기 제2 인증 정보(Oneway-ID')가 일치하는지의 여부를 판정하는 단계를 포함한다.
(2-1) 반도체 메모리 장치이며,
외부로부터 액세스 가능한 일반 영역과, 외부로부터의 액세스 요구가 제한되는 숨은 영역과, 상기 숨은 영역에 액세스하기 위한 조건을 규정하는 식별 정보가 기록되는 식별 정보 기록 영역을 적어도 포함하는 셀 어레이와,
외부와의 인증을 행하는 인증 회로와,
상기 식별 정보 저장 영역에 기록된 정보를 인지하고, 외부로부터의 액세스 요구가 상기 숨은 영역을 선택하는 경우에 상기 식별 정보 기록 영역에 기록된 정보를 판정하고, 상기 식별 정보가 기록되어 있는 것으로 판정된 경우에는 외부로부터의 상기 숨은 영역에 대한 액세스를 인증하고, 상기 식별 정보가 기록되어있지 않은 것으로 판정된 경우에는 외부로부터의 상기 숨은 영역에 대한 액세스를 무효화하는 감지 회로를 포함한다.
(2-2) 상기 (2-1)의 장치에서, 상기 식별 정보는 비트, 부(sub) 식별 정보 항목, 또는 상보적인 정보를 포함한다.
(2-3) 상기 (2-2)의 장치에서, 상기 검지 회로는 각각의 부 식별 정보 항목에 대해 상보적인 판정을 행하고, 상기 식별 정보의 상보적인 판정 결과가 소정의 수 이상인지 여부를 판정하여, 상기 식별 정보가 기록되어있는지 여부를 판정한다.
(2-4) 상기 (2-1) 내지 (2-3) 중 어느 하나의 장치에서, 상기 인증 회로에 의해 상기 숨은 영역에 숨겨진 정보가 기록된다.
(2-5) 상기 (2-1) 내지 (2-4) 중 어느 하나의 장치에서, 상기 액세스 요구가 상기 숨은 영역에 기록된 정보를 소거하는 요구인 경우, 상기 감지 회로는, 상기 식별 정보가 기록되어 있다고 판정되면 상기 숨은 영역에 기록된 정보의 소거를 행하고, 상기 식별 정보가 기록되어있지 않다고 판정되면 상기 숨은 영역에 기록된 정보의 소거를 행하지 않는다.
(2-6) 상기 (2-1) 내지 (2-4) 중 어느 하나의 장치에서, 상기 액세스 요구가 상기 숨은 영역의 정보 기입인 경우, 상기 감지 회로는, 상기 식별 정보가 기록되어 있다고 판정되면 상기 숨은 영역의 정보의 기입을 행하고, 상기 식별 정보가 기록되어있지 않다고 판정되면 상기 숨은 영역의 정보의 기입을 행하지 않는다.
(2-7) 상기 (2-1) 내지 (2-4) 중 어느 하나의 장치에서, 상기 액세스 요구가 상기 숨은 영역에 기록된 정보의 판독인 경우, 상기 감지 회로는, 상기 식별 정보가 기록되어 있다고 판정되면 상기 숨은 영역에 기록된 정보의 판독을 행하고, 상기 식별 정보가 기록되어있지 않다고 판정되면 상기 숨은 영역에 기록된 정보의 판독을 행하지 않는다.
(2-8) 상기 (2-1) 내지 (2-4) 중 어느 하나의 장치에서, 상기 액세스 요구가 상기 일반 영역에 기록된 정보를 소거하는 요구인 경우, 상기 감지 회로는, 상기 식별 정보 기록 영역에 기록된 정보를 판정하지 않고서 상기 일반 영역에 기록된 정보의 소거를 행한다.
(2-9) 상기 (2-1) 내지 (2-4) 중 어느 하나의 장치에서, 상기 액세스 요구가 상기 일반 영역의 정보 기입인 경우, 상기 감지 회로는, 상기 식별 정보 기록 영역에 기록된 정보를 판정하지 않고서 상기 일반 영역의 정보 기입을 행한다.
(2-10) 상기 (2-1) 내지 (2-4) 중 어느 하나의 장치에서, 상기 액세스 요구가 상기 일반 영역에 기록된 정보의 판독인 경우, 상기 감지 회로는, 상기 식별 정보 기록 영역에 기록된 정보를 판정하지 않고서 상기 일반 영역에 기록된 정보의 판독을 행한다.
(2-11) 상기 (2-1) 내지 (2-10) 중 어느 하나의 장치에서, 상기 셀 어레이는 최소 소거 단위인 블록을 포함하고, 하나 이상의 블록이 상기 일반 영역에 할당되고, 하나 이상의 블록이 상기 숨은 영역에 할당되며, 상기 식별 정보 기록 영역은 상기 숨은 영역에 할당된 블록에 배치된다.
(2-12) 상기 (2-11)의 장치에서, 하나의 블록은 기입 및 판독 단위인 페이지를 포함하고, 상기 식별 정보 기록 영역은 하나의 블록 내의 하나의 페이지에만 배치된다.
(2-13) 상기 (2-11)의 장치에서, 하나의 블록은 기입 및 판독 단위인 페이지를 포함하고, 상기 식별 정보 기록 영역은 하나의 블록 내의 페이지 내에 배치된다.
(2-14) 상기 (2-1) 내지 (2-13) 중 하나의 장치에서, 상기 감지 회로는, 상기 식별 정보가 기록되어있지 않다고 판정한 경우, 상기 숨은 영역에 대한 액세스의 무효화를 나타내는 상태 신호를 외부에 출력한다.
(2-15) 상기 (2-5)의 장치에서, 상기 셀 어레이의 소거, 기입 및 판독을 적어도 제어하는 시퀀스 제어 회로를 더 포함하고, 상기 감지 회로는, 상기 식별 정보가 기록되어 있다고 판정된 경우에, 상기 시퀀스 제어 회로에 대하여 소거의 무효화를 나타내는 신호를 출력한다.
(2-16) 상기 (2-6)의 장치에서, 상기 셀 어레이의 소거, 기입 및 판독을 적어도 제어하는 시퀀스 제어 회로를 더 포함하고, 상기 감지 회로는, 상기 식별 정보가 기록되어 있다고 판정된 경우에, 상기 시퀀스 제어 회로에 대하여 기입의 무효화를 나타내는 신호를 출력한다.
(2-17) 상기 (2-7)의 장치에서, 상기 셀 어레이의 소거, 기입 및 판독을 적어도 제어하는 시퀀스 제어 회로를 더 포함하고, 상기 감지 회로는, 상기 식별 정보가 기록되어 있다고 판정된 경우에, 상기 시퀀스 제어 회로에 대하여 판독의 무효화를 나타내는 신호를 출력한다.
(2-18) 상기 (2-15) 내지 (2-17) 중 적어도 하나의 장치에서, 상기 시퀀스 제어 회로는 상기 일반 영역과 상기 숨은 영역 사이에 공통으로 이용된다.
(3-1) 컨트롤러를 통해 외부 장치와 통신하는 장치이며,
제1 키(NKey)와 고유한 비밀 식별 정보(SecretID)를 저장하는 데에 이용되고, 적어도 출하 후에 외부로부터의 판독이 금지되는 제1 메모리 영역과, 패밀리 키(FKey)로 상기 비밀 식별 정보(SecretID)를 암호화해서 생성되는 암호화된 비밀 식별 정보(E-SecretID)를 저장하는 데에 이용되고, 외부로부터 판독 전용으로 될 것이 요구되는 제2 메모리 영역과, 식별 키(호스트 식별 키, 외부 장치 식별 키)(IDKey)로 상기 패밀리 키(Fkey)를 암호화하여 생성되는 데이터를 포함하는 패밀리 키 블록(FKB)을 저장하는 데에 이용되고, 외부로부터의 판독 및 기입이 요구되는 제3 메모리 영역을 포함하는 메모리와,
상기 메모리에 저장된 정보를 이용하여 상기 외부 장치와의 인증을 행하는 인증 모듈(인증 장치, 인증 회로, 회로)을 포함하고,
AES에 기초하여(AES 연산으로, AES 기초의) 상기 메모리 내의 제1 메모리 영역으로부터 판독된 상기 제1 키(NKey)로 상기 외부 장치로부터 수신되는 제1 수(HC)를 암호화하여 제2 키(HKey)가 생성되고,
AES에 기초하여(AES 연산으로, AES 기초의) 상기 제2 키(HKey)로 상기 외부 장치로부터 수신되는 난수(RN)를 암호화하여 세션키(SKey)가 생성되고,
일방향성 함수(일방향성 함수 연산)에서 상기 세션 키(SKey)로 상기 비밀 식별 정보(SecretID)를 계산하여(처리하여) 인증 정보(Oneway-ID)가 생성되고,
상기 암호화된 비밀 식별 정보(E-SecretID), 상기 패밀리 키 블록(FKB) 및 상기 인증 정보(Oneway-ID)는 상기 외부 장치로 출력된다.
인증 처리를 채용한 보안 시스템을 구축하는 경우에는, 해당 인증 처리를 행하는 장치가 공격을 받고, 숨은 정보(hidden information)가 추출되는 경우를 상정할 필요가 있다. 따라서, 추출된 숨은 정보를 무효화하는 방법이 중요하게 된다.
전술한 CPRM이나, Blu-ray 디스크에 기록된 콘텐츠를 보호하기 위해서 규정된 저작권 보호 기술인 AACS(Advanced Access Content System)에서는, 숨은 정보인 디바이스 키를 무효화하기 위해서 MKB(Media Key Block)가 이용된다. 공개 키 암호시스템에 근거하는 프로트콜을 채용하는 다른 방식에서는, 유출된 비밀 키 정보와 쌍을 이룬 공개 키 증명서의 리스트(폐지 목록(Revocation List))가 이용된다.
SD 카드에 기록된 비디오 콘텐츠를 PC에 인스톨된 소프트웨어에 의해 재생하는 시스템을 예로 든다. CPRM 처리는 하드웨어에 의해 SD 카드 내에서 실행되기 때문에, 숨은 정보를 불법적으로 추출하는 것은 매우 어렵다. 이에 비해, 많은 경우에 공격의 방법으로서 비디오 재생 소프트웨어로부터 숨은 정보를 추출하는 것은 보다 용이하다. 실제로, 보호된 DVD나 Blu-ray 디스크에 기록된 콘텐츠를 불법적으로 해독하는 많은 소프트웨어 항목이 이용가능하였다. 이러한 불법적인 소프트웨어에서, 정품 소프트웨어 플레이어로부터 추출된 숨은 정보가 이용된다.
또한, 어떤 경우에는, 카드 위조 소프트웨어 또는 위조 SD 카드에 대한 대책이 필요하다. 예를 들면, 정품 소프트웨어로부터 추출된 숨은 정보를 이용하여 위장된 모방 SD 카드가 생산되어, 정품 소프트웨어 플레이어를 속이는 데에 사용된다. 예를 들면, 위조 SD 카드는, 위조 SD 카드로부터 콘텐츠의 암호화에 이용된 암호화 키가 용이하게 판독될 수 있도록 생산된다. 이에 의해, 정품 비디오 레코더를 이용하여 위조 SD 카드에 기록된 비디오 콘텐츠를 용이하게 해독할 수 있게 된다.
인증 장치는, 소비자 기기와 같은 전용 하드웨어 장치뿐만 아니라, PC(퍼스널 컴퓨터) 등에서 실행가능한 프로그램(소프트웨어)으로서 제공될 수 있으며, 어떤 경우에는, 소프트웨어가 실질적인 인증 장치로서 기능한다. 한편, 피인증 장치는, 예를 들면, 기록 매체 등이다. 피인증 장치는 인증될 장치이다. 예를 들면, 피인증 장치는 이산 장치(예를 들면, 메모리 장치), 모듈(예를 들면, 메모리 장치가 내장된 카드), 기기(예를 들면, 빌트인 모듈을 가지는 기기) 및 그러한 장치, 모듈 및 기기의 조합을 포함한다. 기록 매체를 구성하는 하드웨어의 동작에 "펌웨어"라고 불리는 프로그램이 개재하는 경우에도, 중요한 처리나 정보는 셀 어레이 내의 하드웨어 내에 숨겨진 상태로 저장된다. 따라서, PC 상에서 실행되는 소프트웨어가 인증 장치인 경우, 기록 매체 등의 피인증 장치와 비교하여, 탬퍼링 내성(공격에 대한 내성)이 낮아질 우려가 있다.
따라서, 낮은 탬퍼링 내성을 가지는 인증 장치를 공격함으로써, 높은 탬퍼링 내성을 가지는 피인증 장치에 숨겨진 비밀 정보 또한 노출되어, 높은 탬퍼링 내성을 가지는 장치로의 위장을 초래할 우려가 있다. 이러한 상황에 대응하기 위해서, 비밀 정보의 불법적인 이용을 효율적으로 방지하는 방법이 요구된다.
또한, 최근에는, 회로 규모에도 제한이 가해지는 환경, 예를 들면, 비교적 큰 회로 규모를 요구하는 공개 키 암호시스템 처리나 MKB 처리의 하드웨어 구현이 이루어지기 어려운 환경에서도, 그러한 요구가 강해지는 경향이 있다. 따라서, 회로 규모의 증대를 최소한으로 제어하면서, 비밀 정보의 불법적인 이용을 효율적으로 방지하는 방법이 요구된다.
이하, 복수의 실시 형태에 대해서 도면을 참조해서 설명한다. 이하의 설명에서는, 인증 장치, 피인증 장치 및 인증 방법으로서 메모리 시스템을 예시하지만, 실시 형태는 이러한 예에 한정되지 않는다. 이하의 설명에서는, 전체 도면에 걸쳐 공통인 부분은 동일한 참조 부호로 표시한다.
[제1 실시 형태]
제1 실시 형태에 따른 인증 장치, 피인증 장치 및 인증 방법에 대해서 설명한다.
<1. 구성예(메모리 시스템)>
도 1을 이용하여 제1 실시 형태에 따른 메모리 시스템의 구성예에 대해서 설명한다.
도 1에 도시한 바와 같이, 제1 실시 형태에 따른 메모리 시스템은 피인증 장치인 NAND 플래시 메모리(10), 인증 장치인 호스트 장치(20) 및 양자를 중개하는 컨트롤러(19)를 구비한다. 호스트 장치(20)는 컨트롤러(19)를 통하여 NAND 플래시 메모리(10)에 액세스한다.
여기서, NAND 플래시 메모리(10) 등의 반도체 제품의 제조 공정에 대해서 간단히 설명한다. 반도체 제품의 제조 공정은 주로 기판 웨이퍼 위에 회로를 형성하는 전공정과, 이 웨이퍼를 개별 조각으로 절단한 후, 배선 및 수지 내에 조각의 패키징을 행하는 후공정으로 나눌 수 있다.
컨트롤러(19)는 전공정에서 NAND 플래시 메모리(10) 내에 포함되도록 구성되는 경우, 전공정에는 포함되지 않지만 후공정에서 동일 패키지에 포함되도록 구성되는 경우, 및 NAND 플래시 메모리(10)와는 다른 칩으로서 제공되는 경우 등의 여러 가지 방식으로 구성된다. 도 1을 포함하는 이하의 설명에서는, 컨트롤러(19)가 NAND 플래시 메모리(10)와는 다른 칩으로서 제공될 경우를 예로 들어서 설명한다.
이하, 특히 언급하지 않는 한, 호스트 장치(20)와 NAND 플래시 메모리(10)의 사이의 데이터 및 명령의 교환은 대부분의 경우 컨트롤러(19)가 중개한다. 이 경우에도, 컨트롤러(19)는 전술한 데이터 및 명령의 본질적인 내용을 바꾸지 않기 때문에, 이하에서 상세한 사항에서는 생략해서 설명할 경우가 있다. NAND 플래시 메모리(10) 및 컨트롤러(19)의 구성예의 상세에 대해서는 후술한다.
호스트 장치(20)가 소비자 기기와 같은 전용 하드웨어로 구성되는 경우, 전용 하드웨어와 이 전용 하드웨어를 동작시키는 펌웨어를 조합하여 장치가 구성되는 경우뿐만 아니라, 장치의 전 기능이 PC에서 동작하는 소프트웨어에 의해 실현되는 경우도 상정된다. 본 실시 형태는 호스트 장치(20)가 어떤 구성을 채용하는지에 관계없이 기본적으로 적용될 수 있다.
도 1에 나타내는 각 구성 요소 및 데이터 처리에 대해서 이하에서 설명한다. 본 실시 형태에서는, 피인증 장치에 기록된 비밀 식별 정보 SecretID를 제3 자로부터 숨겨진 상태로 판독하고, 또한, 정품 피인증 장치로부터 판독된 데이터를 검증하는 방법과, 이 방법을, NAND 플래시 메모리(10)를 이용한 메모리 시스템에 적용한 경우의 구성예를 나타낸다.
1-1. NAND 플래시 메모리
본 실시 형태에서 NAND 플래시 메모리(10)는 피인증 장치이다.
도 1에 도시한 바와 같이, 본 실시 형태에 따른 NAND 플래시 메모리(10)는 셀 어레이(Cell array)(11)와, 셀 어레이(11)의 주변 영역에 배치되는 데이터 캐시(Data Cache)(12)와, 데이터 생성기(Generate)(13, 14)와, 일방향성 변환기(Oneway)(15)를 포함한다. 데이터 생성기(Generate)(13, 14) 및 일방향성 변환기(Oneway)(15)는 인증 회로(17)를 구성한다.
셀 어레이(11)는 외부로부터의 판독 및 기입이 허용된 판독/기입 영역(Read/Write area)(11-1), 외부로부터의 판독 및 기입이 모두 금지된 숨은 영역(Hidden area)(11-2), 및 외부로부터의 기입이 금지된 ROM 영역(ROM area)(11-3)을 포함한다.
판독/기입 영역(일반 영역)(11-1)은 NAND 플래시 메모리(10)의 외부로부터의 데이터 기입 및 데이터 판독이 가능한 영역이다. 판독/기입 영역(11-1)에는, FKeyv를 숨기기 위해서 준비된 암호화된 FKey 다발인 키 관리 정보 FKBv(Family Key Block)가 저장된다. NAND 플래시 메모리(10)에 기록된 다른 데이터와는 대조적으로, FKBv는 NAND 플래시 메모리(10)의 제조 시에, 혹은, NAND 플래시 메모리(10)에 컨트롤러를 접속하여 일반 이용자를 위한 저장 매체를 제조하는 때에 기록될 수 있다. 혹은, FKBv는 출하 후에 이용자의 요구에 따라서 서버로부터 다운로드될 수도 있다. 즉, 제3 메모리 영역(11-1)은 호스트 식별 키 IDKey로 패밀리 키 FKey를 암호화하여 생성된 데이터를 포함하는 패밀리 키 블록 FKB를 저장하는 데에 이용되며, 제3 메모리 영역(11-1)은 인증 장치의 외부로부터 판독 및 기입 가능할 것이 요구된다. 상세 사항에 대해서는 후술한다.
키 관리 정보 FKBv는 호스트 장치(20)가 유지하는 비밀 정보 IDKeyk와, 비밀 정보 IDKeyk의 인덱스 정보 k에 근거해서 숨은 정보 FKeyv를 해독하는 데에 이용되는 정보, 또는, 호스트 장치(20)가 유지하는 비밀 정보 IDKeyk와, 호스트 장치(20)의 식별 정보에 근거해서 숨은 정보 FKeyv를 해독하는 데에 이용되는 정보이다.
또한, 키 관리 정보 FKBv는 NAND 플래시 메모리(10)마다 고유하게 준비될뿐만 아니라, 제조 공정에 따라 NAND 플래시 메모리(10)의 제조 로트 단위나 웨이퍼 단위 등의 복수의 NAND 플래시 메모리(10)에 공통적으로 부여될 수 있는(연관될 수 있는) 정보이다. 키 관리 정보 FKBv의 인덱스 정보 v는 키 관리 정보 FKBv의 식별 정보 또는 버전 번호 정보이어도 된다.
숨은 영역(11-2)은 NAND 플래시 메모리(10)의 외부로부터의 기입 및 판독이 모두 금지된 영역이다. 숨은 영역(11-2)에는, 인증 처리를 위해 NAND 플래시 메모리(10)가 이용하는 비밀 정보 NKeyi 및 NAND 플래시 메모리(10)의 비밀 식별 정보 SecretID가 기록된다. 즉, 제1 메모리 영역(11-2)은 제1 키 NKey 및 인증 장치에 고유한 비밀 식별 정보 SecretID를 저장하는 데에 이용되며, 제1 메모리 영역(11-2)은 적어도 출하 후에 인증 장치의 외부로부터의 판독 및 기입이 금지된다.
ROM 영역(11-3)은 NAND 플래시 메모리(10) 외부로부터의 기입이 금지되지만, 그로부터의 데이터 판독이 허가되는 영역이다. ROM 영역(11-3)에는, 키 관리 정보 FKBv에 의해 숨겨진 숨은 정보 FKeyv를 나타내기 위한 인덱스 정보 v(FKey의 인덱스), 숨은 정보 FKeyv에 의해 암호화된 비밀 식별 정보(SecretID)(E-SecretID), 비밀 정보 NKeyi를 나타내기 위한 인덱스 정보 i(NKey의 인덱스)가 기록된다. 즉, 제2 메모리 영역(11-3)은 패밀리 키 FKey로 식별 정보 SecretID를 암호화해서 생성된 암호화된 비밀 식별 정보 E-SecretID를 저장하는 데에 이용되며, 제2 메모리 영역(11-3)은 인증 장치의 외부로부터 판독 전용일 것이 요구된다.
본 실시 형태에서는, 인덱스 정보 i나 인덱스 정보 v를 기록할 때에 데이터에 에러가 발생한 경우에도, 올바른 식별 정보가 판독될 수 있도록, 일반적으로는 에러 정정 부호를 부가한 후에 데이터가 기록된다. 그러나, 설명을 간략화하기 위해서, 에러 정정 부호화 및 복호화 처리에 대해서는 구체적으로 설명하지 않는다.
또한, ROM 영역(11-3)은, 예를 들면, 데이터가 1회만 기입될 수 있는 OTP(One Time Program) 영역이어도 되고, 출하 후에 관리 플래그의 재기입에 의해 판독 전용 영역으로 변환되기 전에 NAND 플래시 메모리(10)의 제조 공정에서는 판독 및 기입이 가능한 일반 영역이어도 된다. 또는, ROM 영역에 액세스하기 위한, 통상의 영역에 액세스하기 위한 커맨드와는 상이한 특정 기입 커맨드를 준비하고, 이 특정 기입 커맨드를 NAND 플래시 메모리(10)의 수령자에게는 제공하지 않는 방법을 이용해도 된다. 또한, ROM 영역은 NAND 플래시 메모리(10) 내에서 일반 영역으로서 취급되지만, 컨트롤러(19)가 호스트 장치(20)에 제공되는 기능을 판독만으로 한정할 수도 있다.
아래에서 설명되지만, ROM 영역(11-3)에 기록된 정보는 숨은 영역(11-2)에 기록된 정보와 관련되기 때문에, ROM 영역(11-3)에 기록된 정보를 위조했을 경우, NAND 플래시 메모리(10)의 인증 기능이 유효하게 작용하지 않게 될 수도 있다. 따라서, 위조에 의한 보안 상의 우려의 원인이 없기 때문에, ROM 영역(11-3)은 데이터의 판독 및 기입이 허용되는 일반 영역으로 대체될 수도 있다. 이 경우, 도 1의 ROM 영역(11-3)은 판독/기입 영역(일반 영역)(11-1)으로 대체될 수도 있다. 이와 관련해서, ROM 영역(11-3)에 기록된 데이터의 일부를 판독/기입 영역(일반 영역)(11-1)에 기록해도 된다. 예를 들면, 인덱스 정보 v(FKey의 인덱스)가 판독/기입 영역(일반 영역)에 기록되고, 암호화된 비밀 식별 정보(E-SecretID)와 인덱스 정보 v(FKey의 인덱스)가 ROM 영역(11-3)에 기록되는 구성도 허용된다. 상기 ROM 영역(11-3)의 구성예는 다른 실시 형태 또는 변형예로서 본 명세서에 기술된 ROM 영역(11-3)에도 적용가능하다.
E-SecretID는 NAND 플래시 메모리(10)마다 고유하게 부여되는 SecretID를 FKeyv에 의해 암호화해서 얻어지는 데이터이다. 혹은, 용도에 따라 동일한 암호화된 비밀 식별 정보를 복수의 NAND 플래시 메모리에 기록할 수도 있다. 예를 들면, 사전 기록 콘텐츠 배포에서는, NAND 플래시 메모리에 미리 동일한 콘텐츠 데이터를 기록해서 그 NAND 플래시 메모리를 판매하고, 그 콘텐츠를 저장하는 NAND 플래시 메모리에 동일한 E-SecretID가 기록된다.
데이터 캐시(12)는 셀 어레이(11)로부터 판독된 데이터를 일시적으로 저장한다.
데이터 생성기(13, 14)는 복수의 입력 데이터로부터 미리 정해진 연산에 의해 출력 데이터를 생성하는 회로이다.
데이터 생성기(13)는 호스트 장치(20)로부터 수신한 상수 HCj를 전술의 비밀 정보 NKeyi를 이용해서 변환함으로써 비밀 정보 HKeyi,j를 생성한다. 데이터 생성기(14)는 호스트 장치(20)로부터 수신한 난수 RNh를 비밀 정보 HKeyi,j를 이용해서 변환함으로써 세션 키 SKeyi,j를 생성한다. 데이터 생성기(13, 14)는 하드웨어(회로), 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 실시될 수 있다.
데이터 생성기(13, 14)가 회로로서 실시되는 경우에는, 전체의 회로 규모를 작게 하기 위해서 후술하는 일방향성 변환기(15)와 동일한 회로, 일방향성 변환기를 유용한 회로, 또는 AES(Advanced Encryption Standard) 암호화기 등을 이용하는 것도 가능하다. 마찬가지로, 데이터 처리 순서를 이해하기 쉽게 하기 위해서 다른 구성 요소로서 도시되어 있는 두 개의 데이터 생성기에 대해 같은 회로를 되풀이해서 이용하는 것이 가능하다. 이 예의 경우, HKeyi,j=AES_E(NKeyi, HCj), SKeyi,j= AES_E(HKeyi,j, RNh) 등의 구성을 채용하는 것이 가능하다. 즉, 제1 데이터 생성기(13)는 AES 연산에서 제1 키 NKey로 호스트 상수 HC를 암호화하여 제2 키 HKey를 생성하도록 구성된다. 제2 데이터 생성기(14)는 AES 연산에서 제2 키 HKey로 난수 RN를 암호화하여 세션 키 SKey를 생성하도록 구성된다.
일방향성 변환기(15)는 입력 데이터와, 별도로 입력된 키 데이터에 일방향성의 변환을 행하여, 일방향성의 변환된 입력 데이터를 출력한다. 일방향성 변환기(15)는 하드웨어(회로), 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 실시될 수 있다.
일방향성 변환기(15)는 숨은 영역(11-2)으로부터 판독된 SecretID를 데이터 생성기(14)에 의해 생성된 SKeyi,j를 이용해서 일방향성 함수에 의해 변환하여, 일방향성 변환 식별 정보 Oneway-ID(=Oneway(SKeyi,j, SecretID))를 생성한다. 일방향성 변환기(15)는, 회로로서 실시되는 경우에는, 상술한 바와 같이, 전체의 회로 규모를 작게 하기 위해서, 데이터 생성기(14) 등을 유용해서 이용하는 것도 가능하다. 이 예의 경우, Oneway-ID=AES_E(SKeyi,j, SecretID)(+) SecretID 등의 구성을 채용하는 것이 가능하다. 즉, 일방향성 함수 처리기(15)는 일방향성 함수 연산에서 세션 키 SKey로 비밀 식별 정보 SecretID를 처리하여 인증 정보 Oneway-ID를 생성하도록 구성된다.
도시하지는 않았지만, 컨트롤러(19)를 통해서 호스트 장치(20)에 데이터를 출력하는 출력 유닛 등도 실제로는 구성 요소로서 배치된다.
1-2. 호스트 장치
본 실시 형태에서, 호스트 장치(20)는 인증 장치이다.
도 1에 도시한 바와 같이, 본 실시 형태에 따른 호스트 장치(20)는 해독기(Decrypt)(21), FKB 처리기(Process FKB)(22), 메모리(Memory)(23), 난수 생성기(RNG)(24), 선택기(Select2)(25), 데이터 생성기(Generate)(26), 일방향성 변환기(Oneway)(27) 및 데이터 검증 유닛(Verify)(28)을 포함한다. 이밖에, 예를 들면, 에러 정정 처리 유닛 등도 필요에 따라서 포함될 수 있다.
해독기(21)는 입력된 데이터를 별도 입력된 키 데이터를 이용하여 해독해서 해독된 입력 데이터를 출력한다. 본 실시 형태에서는, 해독기(21)는 컨트롤러(19)를 통하여 E-SecretID를 NAND 플래시 메모리(10)로부터 판독한다. 그리고, 해독기(21)는 후술하는 FKB 처리기(22)(데이터 선택기(22-1))로부터 입력된 숨은 정보 FKey를 이용해서 E-SecretID를 해독하여 SecretID를 출력한다.
FKB 처리기(22)는 NAND 플래시 메모리(10)로부터 판독된 키 관리 정보 FKBv를, 메모리(23)에 숨겨진 비밀 정보 IDKeyk 및 IDKeyk의 인덱스 정보 k를 이용해서 해독하여, 생성된 숨은 정보 FKey를 해독기(21)에 출력한다. 본 실시 형태에서는, FKB 처리기(22)는 데이터 선택기(Select1)(22-1) 및 해독기(Decrypt)(22-2)를 포함한다.
제1 단의 데이터 선택기(22-1)는 NAND 플래시 메모리(10)로부터 판독된 암호화된 FKey 다발(키 관리 정보 FKBv) 중에서 메모리(23)에 기록된 인덱스 정보 k를 이용하여 메모리(23)에 숨겨진 IDKeyk에 의해 해독될 수 있는 데이터를 선택하고, 선택된 데이터를 해독기(22-2)에 출력한다.
해독기(22-2)는 메모리(23)에 숨겨진 IDKeyk를 이용하여 데이터 선택기(22-1)에 의해 선택된 데이터를 해독하여, 생성된 숨은 정보 FKey를 해독기(21)에 출력한다.
메모리(23)는 k, IDKeyk, HKeyi,j(i=1, ..., m, j는 HKeyi,j에 고정된 값)의 세트, 및 HCj를 기록하고, 적어도 IDKeyk 및 HKeyi,j(i=1, ..., m)의 세트를 호스트 장치(20)의 외부로부터 숨긴다. HCj는 인증 요구(Request authentication) 시에 NAND 플래시 메모리(10)에 송신하기 위해서 미리 호스트 장치(20)에 유지된 상수이다. 그 상세한 내용은 후술한다.
난수 생성기(24)는 인증 처리에 이용하는 난수 RNh를 생성하고, 출력한다.
제2 단의 데이터 선택기(25)는, NAND 플래시 메모리(10)의 ROM 영역(11-3)으로부터 데이터 캐시(12)를 통해서 판독된 인덱스 정보 i를 이용하여, 호스트 장치(20)에 의해 숨겨진 HKeyi,j의 세트로부터 인증 처리에 필요한 HKeyi,j를 선택한다.
데이터 생성기(26)는 복수의 입력 데이터에 대해 미리 정해진 연산을 행하여 출력 데이터를 생성하는 연산 유닛이다. 본 실시 형태에서는, 데이터 생성기(26)는 호스트 장치(20)에 의해 숨겨진 HKeyi,j를 이용해서 호스트 장치(20)에 의해 생성된 RNh를 변환함으로써 세션 키 SKeyi,j를 생성한다. 데이터 생성기(26)로서, 예를 들면, 상술한 AES 암호화기를 이용할 수도 있다.
일방향성 변환기(27)는 해독기(21)로부터 출력되는 SecretID를, 데이터 생성기(26)로부터 출력되는 SKeyi,j를 이용해서 일방향성 함수에 의해 변환하여, 일방향성 변환 식별 정보 Oneway-ID를 생성한다.
데이터 검증 유닛(28)은 NAND 플래시 메모리(10)로부터 수신한 Oneway-ID와 호스트 장치(20) 내의 일방향성 변환기(27)로부터 얻어진 Oneway-ID를 비교하여 양 Oneway-ID가 일치하는지의 여부를 확인한다. 상기 일방향성 변환 식별 정보 Oneway-ID의 양쪽의 값이 일치할 경우(OK), 데이터 검증 유닛(28)은 해독기(21)에 의해 얻어진 SecretID가 진정한 ID라고 판정하고, 얻어진 SecretID를 이후의 처리에 전달한다. 한편, 양쪽의 값이 일치하지 않는 경우(NG), 데이터 검증 유닛(28)은 SecretID가 불법적인 ID라고 판정하고, 그러한 취지의 메시지를 출력한다.
또한, 호스트 장치(20)에 의해 유지되는 비밀 정보, 예를 들면 IDKeyk, HKeyi,j가 유출되고, 유출 정보를 가지는 불법적인 호스트 장치가 불법 제조자에 의해 제조되었을 경우에, 불법적인 호스트 장치를 무효화하는 수단으로서, 키 관리 정보(FKBv)로부터 불법적인 호스트 장치에 의해 유지된 IDKeyk로부터 FKey가 도출될 수 있는 정보를 제거하는 등의 대책을 취하는 것도 가능하다. 이러한 대책에 대해서는 도 3을 참조하는 설명과 관련하여 후술한다. 이러한 대책을 취할 때에, IDKeyk, k, HKeyi,j 및 HCj 간에 관련을 갖게 하는 것이 유용하다. 이것은, 그러한 관련이 있으면, 불법적인 호스트 장치에 의해 인증을 위해 통지되는 HCj를 관찰함으로써, 해당 불법적인 호스트 장치에 의해 유지되는 비밀 정보 IDKeyk 및 HKeyi,j의 양쪽 모두가 식별될 수 있기 때문이다. 관련의 방법으로는, HCj의 전부 혹은 일부의 정보를 IDKeyk와 공유하거나, HCj의 전부 혹은 일부의 정보를 IDKeyk의 암호화 처리한 결과에 기초하여 구성하거나, IDKeyk의 전부 혹은 일부의 정보를 HCj를 암호 처리한 결과에 기초하여 구성하는 것을 채용할 수 있다. 또한, 키 관리 정보 FKBv를 생성하는 데에, FKey 및 IDKeyk 외에, HKeyi,j를 이용하는 것이 바람직하다. 이것에 대해서는 FKB의 구성예를 설명하는 단락에서 후술한다.
상기 비밀 정보 IDKeyk와, 비밀 정보 HKeyi,j는, 예를 들면, 호스트 장치(20)가 소비자 기기와 같은 전용 하드웨어 장치이면 내부의 전용 메모리에 제조자에 특정한 방법에 의해 암호화된 후에 기록되거나, 호스트 장치(20)가 PC 등에서 실행되는 프로그램이면 TRS(tamper resistant software) 기술에 의해 불법적인 해석으로부터 보호될 수 있는 상태로 유지되거나, 혹은 보안 모듈이 내장된 경우에는 해당 보안 모듈의 기능을 이용해서 비밀 정보를 숨기기 위한 대책을 취한 후의 상태로 기록된다.
컨트롤러(Controller)(19)는 NAND 플래시 메모리(10)를 제어하여 호스트 장치(20)와의 데이터 전송을 행한다. 예를 들면, 컨트롤러(19)는 호스트 장치(20)로부터 수신한 명령을 해석하고, 이 명령을 NAND 플래시 메모리(10)의 인터페이스 사양에 적합한 명령으로 변환한 다음, 이 명령을 NAND 플래시 메모리(10)에 송출한다. 컨트롤러(19)는 필요에 따라서 SD 메모리 규격, SDIO 규격, eMMC 규격 등의 여러가지 인터페이스 규격을 채용할 수 있다.
컨트롤러(19)는 일반 영역(11-1)의 일부를 확보하여, 컨트롤러(19)의 동작에 필요한 제어 데이터를 저장한다. 컨트롤러(19)는 호스트 장치(20)로부터 수신한 로직 어드레스를 NAND 플래시 메모리의 물리 어드레스로 변환하는 기능을 가질 수도 있다. 컨트롤러(19)는, 셀 어레이(11)의 피폐를 평준화하기 위해서, 소위 웨어 레벨링을 실행하는 기능을 가져도 된다. 단, 적어도 숨은 영역(11-2)은 웨어 레벨링에서 배제된다.
메모리 시스템의 구성예는 상기 설명한 것에 한정되지 않는다. 예를 들면, (도시하지 않은) 에러 정정 처리 유닛과 그 밖의 구성 요소도 필요에 따라서 포함될 수도 있다. 또한, NAND 플래시 메모리(10)에 의해 유지되는 비밀 정보 NKeyi가 복수 개 있어도 된다. 즉, NKeyi 및 대응하는 인덱스 정보 i의 조합을 1개의 슬롯으로 규정하면, 복수의 슬롯이 NAND 플래시 메모리(10)에 기록된다. 각각의 슬롯에는 슬롯 번호가 부여되고, 호스트 장치(20)는 각 슬롯 번호의 인덱스 정보 i를 판독하고, 하나의 슬롯을 선택해서 인증을 행한다. 이 경우, 호스트 장치(20)는 NAND 플래시 메모리(10)에 선택한 슬롯 번호에 대응하는 정보를 통지하고, NAND 플래시 메모리(10)는 통지된 슬롯 번호에 대응하는 정보를 이용해서 인증 처리를 행한다. 또한, NAND 플래시 메모리(10)에 의해 유지되는 모든 정보를 1개의 슬롯으로 규정해서 복수의 정보 슬롯이 유지될 수도 있다. 즉, NKeyi, i, FKBv, v, SecretID, E-SecretID가 1개의 슬롯으로 규정되고, 복수의 슬롯이 NAND 플래시 메모리(10)에 기록된다. 각각의 슬롯에는 슬롯 번호가 부여되고, 호스트 장치(20)는 각 슬롯 번호의 인덱스 정보 i를 판독하고, 하나의 슬롯을 선택해서 인증을 행한다. 이 경우, 호스트 장치(20)는 NAND 플래시 메모리(10)에 선택한 슬롯 번호에 대응하는 정보를 통지하고, NAND 플래시 메모리(10)는 통지된 슬롯 번호에 대응하는 정보를 이용해서 인증 처리를 행한다.
상기에서, NAND 플래시 메모리(10)가 복수의 슬롯을 가지는 방법을 나타냈지만, 방법은 이것들에 한하지 않고, 일부의 정보를 복수의 슬롯에 의해 공유하는 어떠한 구성을 취하는 것도 가능하다. 예를 들면, SecretID, E-SecretID, FKBv, 인덱스 v는 복수의 슬롯에 의해 공유되고, 다른 정보는 각각의 슬롯에 의해 개별적으로 유지될 수도 있다.
NAND 플래시 메모리(10)가 복수의 슬롯과 슬롯 번호를 가지고, 어느 슬롯을 인증에 이용할지를 호스트 장치(20)가 통지하는 방법은 본 명세서에서 후술하는 모든 다른 실시 형태에 적용가능하다.
<2. 인증 플로우>
다음으로, 도 2에 따라 제1 실시 형태에 따른 메모리 시스템의 인증 플로우에 대해서 설명한다.
(단계 S11)
인증을 시작하면(Start), 호스트 장치(20)는 NAND 플래시 메모리(10)로부터 키 관리 정보인 암호화된 FKey 다발(FKB: Family Key Block) 및 암호화된 비밀 식별 정보 SecretID(E-SecretID)를 판독한다.
(단계 S12)
계속해서, 호스트 장치(20)는 판독된 키 관리 정보 FKB으로부터 데이터 선택기(Select1)(22-1)에 의해 데이터 선택 처리를 행하여, 호스트 장치(20)에 의해 해독될 수 있는 암호화된 숨은 정보 FKey를 판독하고, 또한, 숨겨진 비밀 정보 IDKeyk를 이용해서 해독기(22-2)에 의해 암호화된 숨은 정보 FKey를 해독하여 숨은 정보 FKey를 얻는다. 또한, 호스트 장치(20)는 얻어진 FKey를 이용하여 NAND 플래시 메모리(10)로부터 판독된 E-SecretID를 해독함으로써, 비밀 식별 정보 SecretID를 얻는다.
(단계 S13)
계속해서, 호스트 장치(20)는 NAND 플래시 메모리(10)에 대하여 인덱스 정보 i의 판독 요구를 행한다.
(단계 S14)
계속해서, NAND 플래시 메모리(10)는, 호스트 장치(20)로부터의 요구에 응답하여, 인덱스 정보 i를 셀 어레이(11)로부터 로드하고, 인덱스 정보 i를 호스트 장치(20)에 출력한다.
(단계 S15)
계속해서, 호스트 장치(20)는 인증 요구에 필요한 난수 RNh를 생성한다. 인증 처리에 난수 RNh를 이용함으로써, 이하의 처리에서 NAND 플래시 메모리(10)와 함께 매회 다른 공통 키를 이용할 수 있다.
(단계 S16)
계속해서, 호스트 장치(20)는 인증 요구(Request authentication)와 함께, 미리 유지된 상수 HCj 및 RNh를 NAND 플래시 메모리(10)에 송출한다.
(단계 S17)
계속해서, NAND 플래시 메모리(10)는 비밀 정보 NKeyi (i=1, ..., m) 및 비밀 식별 정보 SecretID를 숨은 영역(11-2)으로부터 로드하고, 이를 데이터 캐시(12)에 저장한다.
(단계 S18)
계속해서, NAND 플래시 메모리(10)는 숨겨진 비밀 정보 NKeyi와 호스트 장치(20)로부터 수신한 상수 HCj를 이용하여, 데이터 생성기(13)의 데이터 생성 처리에 의해 비밀 정보 HKeyi,j를 생성한다.
(단계 S19)
계속해서, NAND 플래시 메모리(10)는 수신한 RNh를 이용하여, 데이터 생성기(14)의 데이터 생성 처리에 의해 세션 키 SKeyi,j(= Generate(HKeyi,j, RNh))를 생성한다.
(단계 S20)
계속해서, NAND 플래시 메모리(10)는 SKeyi,j를 이용하여 SecretID에 대해 일방향성 변환기(15)의 일방향성 변환 처리를 행함으로써, 일방향성 변환 식별 정보 Oneway-ID(= Oneway(SKeyi,j, SecretID))를 생성한다. 생성된 Oneway-ID는 호스트 장치(20)에 송출된다. 즉, 데이터 출력 인터페이스는 암호화된 비밀 식별 정보 E-SecretID, 패밀리 키 블록 FKB 및 인증 정보 Oneway-ID를 인증 장치 외부로 출력하도록 구성된다.
(단계 S21)
단계 S18과 병행하여, 호스트 장치(20)는 수신한 인덱스 i를 이용하여 미리 숨겨진 HKeyi,j(i=1, ..., m)의 세트로부터 NAND 플래시 메모리(10)와의 인증 처리에 필요한 HKeyi,j를 선택한다.
(단계 S22)
계속해서, 호스트 장치(20)는 선택한 HKeyi,j와 생성한 RNh를 이용하여 데이터 생성기(26)의 데이터 생성 처리에 의해 SKeyi,j(= Generate(HKeyi,j, RNh))를 생성한다.
(단계 S23)
계속해서, 호스트 장치(20)는 생성한 SKeyi,j를 이용하여 SecretID에 대하여 일방향성 변환기(27)의 일방향성 변환 처리를 행함으로써 Oneway-ID를 생성한다.
(단계 S24)
계속해서, 호스트 장치(20)는 NAND 플래시 메모리(10)로부터 수신한 Oneway-ID와, 호스트 장치(20)에 의해 생성된 Oneway-ID가 일치하는지의 여부를 판정한다. Oneway-ID의 양쪽의 값이 일치할 경우(OK), 호스트 장치(20)는 해독기(21)에 의해 얻어진 SecretID가 진정한 ID이라고 판정하고, 이 후의 처리에 SecretID를 넘겨준다. 한편, 양쪽의 값이 불일치할 경우(NG), 호스트 장치(20)는 SecretID가 불법적인 ID라고 판정하고, 그 취지의 메시지를 출력한다.
이상의 동작에 의해, 제1 실시 형태에 따른 인증 플로우를 종료한다(End).
메모리 시스템의 구성예에서 설명한 바와 같이, NAND 플래시 메모리(10)가 복수의 슬롯을 가질 경우, 호스트 장치(20)는 인증에 이용하는 슬롯 번호를 NAND 플래시 메모리(10)에 통지할 필요가 있다. 이 경우, 상기 단계 S16에서 슬롯 번호를 통지해도 되고, 혹은 단계 S16 이전의 단계에서 통지해도 된다.
<3. FKB(Family Key Block)>
다음으로, 도 3을 이용하여 제1 실시 형태에 따른 키 관리 정보 FKB(Family Key Block)에 대해서 보다 자세하게 설명한다.
비밀 식별 정보 SecretID가 기록된 NAND 플래시 메모리(10)에 적합한 키 관리 정보 FKB를 생성하기 위해서, 미리 준비된 비밀 키 정보인 1개의 IDKeyi(i=1, ..., n)(IDKeyi의 세트)를 차례로 이용하여 1개의 FKeyv를 차례로 암호화한다(Encrypt). 즉, 키 관리 정보 FKB는 암호화된 FKeyv(E- FKeyv,i)=Encrypt(IDKeyi, FKeyv)의 세트이며, 이 암호화된 FKeyv의 세트를 암호화된 FKey 다발이라고 칭한다.
또한, 키 관리 정보 FKB의 구성은 본 실시 형태의 구성에 한정되지 않는다. 예를 들면, 특정한 IDKeyi가 유출된 경우, 유출된 IDKeyi로부터 해독될 수 있는 암호화된 FKeyv(E-FKeyv)는 FKB로부터 삭제된다. 그 결과, 호스트 장치(20)가 새로이 구성된 FKB로 NAND 플래시 메모리에 액세스하는 경우, 호스트 장치(20)는 올바른 FKeyv 및 SecretID를 얻을(해독할) 수 없다. 이러한 방식으로, 비밀 정보 IDKeyi를 유지한 호스트 장치(20)를 무효화하는 기능을 제공하는 것이 가능하다.
상술한 바와 같이, IDKeyk, k, HKeyi,j 및 HCj가 관련을 갖게 되는 경우, FKBv의 생성에 대해, FKey 및 IDKeyk 이외에, HKeyi,j를 유용할 수도 있다. 예를 들면, E-FKeyv,i=Encrypt(Encrypt(IDKeyi, FKeyv), HKeyi,j), E-FKeyv,i=Encrypt (Encrypt(HKeyi,j, FKeyv), IDKeyi), E-FKeyv,i=Encrypt(HKeyi,j, IDKeyi(+)FKeyv와 같은 구성이 채용될 수도 있다. 이것은, 복수의 호스트 장치(20)로부터 키가 유출되었을 경우에, 다른 장치의 비밀 키 IDKeyi, HKeyi,j를 조합시키는 것을 방지하는 효과가 있다. 즉, IDKeyi 및 HKeyi,j가 올바르게 조합되지 않으면 FKey의 해독을 불가능하게 함으로써, HCj를 관측하여 관련된 HKeyi,j를 밝히고, 또한 IDKeyi를 식별하여 유출된 IDKeyi를 무효화할 수 있다.
또한, 키 관리 정보 FKB의 생성 방법은 본 실시 형태의 방법에 한정되지 않는다. 예를 들면, CPRM에서 이용되는 통상적인 MKB(Media Key Block) 기술이나, 다른 MKB 기술을 이용해서 키 관리 정보 FKB가 생성되는 경우에도 호스트 장치(20)를 무효화하는 기능을 제공하는 것이 가능하다.
MKB 기술은, 복수의 기기가 각각 서로 상이한 비밀 정보를 가지는 상황에서, 장치의 무효화를 실현하면서, (무효화 대상이 아닌 기기의 사이에서) 공통인 비밀 정보(Media Key)를 효율적으로 공유하며, 브로드캐스트 암호화라고도 불린다.
예를 들면, 상기 MKB 기술을 적용했을 경우, 메모리 시스템의 구성예는 도 4와 같이 나타난다. 도시하는 메모리 시스템은, FKB 처리기(Process FKB)(22)가 상위 개념으로서 도시되는 점에서, 도 1의 메모리 시스템과 상이하다. 이 경우에도, K 또는 IDKeyi에 대응하는 정보인 호스트 장치(20)의 노드 번호 및 노드 번호에 할당되는 호스트 키 군에 기초하여 해독된 FKB의 데이터를 HKeyi,j 및 HCj와 관련시키는 것에 의해, 노출된 키가 식별되고 무효화될 수 있다.
<4. 비밀 정보 및 FKB의 기입>
다음으로, NAND 플래시 메모리(10)에의 비밀 정보나 키 관리 정보 FKB의 기입에 대해서 설명한다.
4-1. NAND 플래시 메모리의 제조 중에 비밀 정보 또는 키 관리 정보 FKB를 기입할 경우
우선, 도 5 및 6을 이용하여, 예를 들면, NAND 플래시 메모리(10)의 제조 중에 비밀 정보나 키 관리 정보 FKB를 기입하는 경우에 대해서 설명한다. 도 6의 플로우에 따라서 설명한다.
라이센스 관리자(40)는 이하의 데이터를 생성한다: 키 관리 정보 FKBv(v=1, ..., n), 숨은 정보 FKeyv(v=1, ..., n), 인덱스 정보 v(v=1, ..., n), 비밀 정보 NKeyi, 및 인덱스 정보 i. 상술된 바와 같이, FKBv는 FKeyv를 암호화하여 생성된다. 또한, v는 복수의 값일 수도 있다. 예를 들면, v로서 1, 2, 3의 3개의 값을 라이센스 관리자(40)가 생성하는 경우, 라이센스 관리자(40)는 생성된 v에 따라 (FKB1, FKey1), (FKB2, FKey2), (FKB3, FKey3)을 생성한다.
라이센스 관리자(40)는, 생성된 데이터 중에서 FKeyv(v=1, ..., n), v(v=1, ..., n), NKeyi, i를 메모리 벤더(30)에 전달한다. 데이터의 전달을 위해, 예를 들면, 라이센스 관리자(40)는 미리 얻어진 메모리 벤더(30)의 공개 키를 이용하여 데이터를 암호화한 후, 데이터를 메모리 벤더(30)에게 송신하는 것과 같은 안전한 수단을 이용한다.
메모리 벤더(30)에는, 상기 NAND 플래시 메모리(10) 이외에, 선택기(32,33), 생성기(34) 및 암호화 유닛(35)이 존재한다. 메모리 벤더(30)는 라이센스 관리자(40)에 의해 전달된 FKBv(v=1, ..., n) 등의 데이터(31)를 더 유지한다.
(단계 S31)
상기 구성에 의해, 우선, 메모리 벤더(30)는 생성기(SecretID Generator)(34)에 의해 SecretID를 생성한다.
(단계 S32)
계속해서, 데이터(31)를 수신한 메모리 벤더(30)는 v로부터 하나의 값을 선택기(32)에 의해 선택한다. 또한, 선택기(32)는 상기 선택한 v에 대응하는 FKeyv를 선택한다. 메모리 벤더(30)는 선택한 FKeyv를 이용하여 생성된 SecretID를 암호화하여 E-SecretID를 생성한다.
(단계 S33)
계속해서, 메모리 벤더(30)는 v의 값을 NAND 플래시 메모리(10)의 ROM 영역(11-3)에 인덱스 정보 v(FKey의 인덱스)로서 기입한다.
또한, 메모리 벤더(30)는 인덱스 정보 i(NKey의 인덱스)의 값을 NAND 플래시 메모리(10)의 ROM 영역(11-3)에, NKeyi의 값을 숨은 영역(11-2)에 기입한다.
또한, 메모리 벤더(30)는 SecretID의 값을 NAND 플래시 메모리(10)의 숨은 영역(11-2)에, E-SecretID의 값을 ROM 영역(11-3)에 기입한다.
이상의 동작에 의해, NAND 플래시 메모리(10)의 제조 동안에 소정의 비밀 정보 및 키 관리 정보 FKB가 기입될 수 있다(End). 상기 각각의 값을 기입하는 순서에 관하여, E-SecretID는 암호화 처리 후에 얻어지는 값이고, 암호화 유닛(35)에 의한 암호화 처리 후에 기입될 수 있다. 그렇지 않다면, 기입 동작의 순서에 대한 제한이 없으며, 상술한 예의 순서와는 상이한 순서로 기입될 수도 있다.
또한, 메모리 벤더(30)는 기입 처리를 완료한 NAND 플래시 메모리(10)를 카드 벤더에게 전달한다.
이렇게, 본 실시 형태에서는, NAND 플래시 메모리(10)가 인덱스 정보 v(FKey의 인덱스) 등이 이미 기입된 상태에 있는 것으로 가정할 수 있다.
4-2. 카드 벤더에 의해 FKB가 기입되는 경우
다음으로, 도 7 및 8을 이용하여 카드 벤더(50)가 FKB를 기입하는 경우에 대해서 설명한다. 도 8의 플로우에 따라 설명한다.
카드 벤더(50)는 메모리 벤더(30)로부터 소정의 정보 v 등이 기입된 NAND 플래시 메모리(10)를 수신한다.
그리고, 카드 벤더(50)는 예를 들면, NAND 플래시 메모리(10)를 제어하는 컨트롤러(19)를 접속하여 SD 카드와 같은 일반 이용자용의 저장 매체(여기서는, 카드)(55)를 제조한다.
카드 벤더(50)에는 상기 저장 매체(Card)(55) 및 라이센스 관리자(40)로부터 수신된 데이터(FKBv)(51) 이외에, 선택기(52)가 있다.
카드 벤더(50)에 의해 키 관리 정보 FKBv를 기입하는 처리는 다음과 같다.
(단계 S35)
우선, 카드 벤더(50)는 FKBv를 라이센스 관리자(40)로부터 데이터(51)로서 수신한다. 데이터(51)의 전달을 위해, 상술한 안전한 수단을 이용한다.
그리고, 카드 벤더(50)는 (컨트롤러(19)를 통해) NAND 플래시 메모리(10)의 ROM 영역(11-3)에 기록된 인덱스 정보 v의 값을 데이터 캐시(12) 등에 판독한다.
(단계 S36)
계속해서, 카드 벤더(50)는 판독된 인덱스 정보 v의 값에 대응하는 FKBv를 선택기(52)를 통해 선택한다.
(단계 S37)
계속해서, 카드 벤더(50)는 컨트롤러(19)를 통해서 NAND 플래시 메모리(10)의 판독/기입 영역(11-1)에 선택된 FKBv를 기입한다.
<유리한 효과>
제1 실시 형태에 따른 인증 장치, 피인증 장치, 및 인증 방법에 따르면, 적어도 하기 (1) 내지 (3)의 유리한 효과를 얻을 수 있다.
(1) 호스트 장치(20)로부터 비밀 정보가 유출된 경우에도, 유출된 정보를 이용한 NAND 플래시 메모리(10)의 비밀 정보의 불법적인 이용을 방지할 수 있다.
전술한 대로, 인증 장치인 호스트 장치(20)는, 소비자 기기와 같은 전용 하드웨어 장치뿐만 아니라, 예를 들면, PC 등에서 실행가능한 프로그램으로서 제공되어, 해당 소프트웨어가 실질적인 호스트 장치로 기능할 경우가 있다. 한편, 피인증 장치인 NAND 플래시 메모리(10)는 기록 매체이다. "펌웨어"라고 불리는 프로그램이 개재하는 경우에도, 중요한 처리나 정보는 셀 어레이(11) 내의 하드웨어 내에 숨겨진 상태로 저장된다.
그 때문에, PC에서 실행되는 소프트웨어의 탬퍼링 내성(공격에 대한 내성)이 기록 매체에 비교해서 낮아질 우려가 있다. 그 때문에, 탬퍼링 내성이 낮은 호스트 장치(인증 장치)(20)를 공격함으로써, 탬퍼링 내성이 높은 NAND 플래시 메모리(10)(피인증 장치)에 숨겨진 비밀 정보도 노출되어, 탬퍼링 내성이 높은 장치로 위장하게 할 우려가 있다.
따라서, 제1 실시 형태에 따른 구성 및 그 인증 방식에서는, 상기한 바와 같이, 비교적 탬퍼링 내성이 높은 NAND 플래시 메모리(10)는 제2 키 정보(HKeyi,j)을 생성할 수 있는 제1 키 정보(NKeyi)를 셀 어레이(11)에 숨긴다. 한편, 호스트 장치(20)는, 제1 키 정보(NKeyi)를 생성할 수 없는 제2 키 정보(HKeyi,j)만을 메모리(23)에 숨긴다.
그 때문에, NAND 플래시 메모리(10)는, 호스트 장치(20)로부터 수신된 상수 HCj와 NAND 플래시 메모리(10)에 의해 숨겨진 제1 키 정보(NKeyi)를 이용하여 인증 장치(20)에 의해 숨겨진 제2 키 정보(HKeyi,j)를 생성한다. NAND 플래시 메모리(10)는, 제2 키 정보(HKeyi,j)와 난수 RNh를 이용하여 세션 키 SKeyi,j를 더 생성한다.
호스트 장치(20)는 인덱스 정보 i에 의해 선택되는 제2 키 정보(HKeyi,j)와 난수 RNh를 이용하여 세션 키 SKeyi,j를 생성한다. 그 결과, NAND 플래시 메모리(10)와 호스트 장치(20)는 같은 세션 키 SKeyi,j를 공유한다.
이렇게, 본 실시 형태에서는, NAND 플래시 메모리(피인증 장치)(10)가 숨긴 정보의 비밀 레벨과, 호스트 장치(인증 장치)(20)가 숨긴 정보의 비밀 레벨을 비대칭으로 할 수 있다. 예를 들면, 본 실시 형태에서는, 비교적 탬퍼링 내성이 높은 NAND 플래시 메모리(10)가 숨긴 정보의 비밀 레벨을, 비교적 탬퍼링 내성이 낮은 호스트 장치(20)가 숨긴 정보의 비밀 레벨보다 보다 높게 설정할 수 있다.
그 때문에, 호스트 장치(20)가 숨긴 정보가 유출된 경우에도, 비교적 탬퍼링 내성이 높은 NAND 플래시 메모리(10)가 숨긴 정보의 비밀 레벨이 더 높기 때문에, 유출된 정보를 이용해서 NAND 플래시 메모리(10)로 "위장"할 수 없다. 따라서, 유출된 정보를 이용한 NAND 플래시 메모리(10)의 비밀 정보의 불법적인 이용을 방지할 수 있는 점에서 유리하다. 그 결과, 예를 들면, 호스트 장치(20)로부터 판독된 ID 정보가 원하는 피인증 장치(10)로부터 판독된 정보인 것을 확실하게 판정하고, 원격의 상대방에 의한 불법적인 이용을 무효화할 수 있다.
(2) 실시에 대한 이점
전술한 대로, 본 실시 형태와 같은 구성에서는, 예를 들면, 비교적 큰 회로 규모를 요구하는 공개 키 암호 시스템 처리나 MKB 처리의 하드웨어 실시가 곤란한 환경에 회로 규모 상의 제약이 동시에 부과된다. 즉, 공개 키 암호 시스템 처리 또는 MKB 처리에 비교적 큰 회로 규모가 요구된다. 한편, 회로 면적이 제한되어 하드웨어 실시가 어려워지고 있다.
그러나, 본 실시 형태에 따르면, 키 정보가 비대칭이지만, 비교적 큰 회로 규모를 필요로 하는 공개 키 암호 시스템 처리를 이용할 필요가 없다. 또한, 상기한 바와 같이, 호스트 장치(인증 장치)(20)와 NAND 플래시 메모리(피인증 장치)(10)에 의해 숨겨진 정보의 비밀 레벨을 비대칭으로 함으로써, 한쪽의 장치로부터 유출된 정보만으로는 다른 한쪽의 장치가 위장될 수 없는 인증 수단을 실시하고, 인증 장치(20)와 피인증 장치(10)에 의해 세션 키 SKeyi,j가 공유된다.
그 때문에, 상기 제약이 부과되는 가혹한 환경 하에서도 실시가 유리하다고 말할 수 있다. 또한, 상기한 바와 같이, 메모리 시스템 내의 데이터 생성기 및 암호화기를 동일한 처리로서 공유함으로써, 회로 규모를 더욱 작게 할 수 있다.
(3) 제조 공정이 유리하게 간략화될 수 있고, 제조 비용이 감소된다.
본 실시 형태에 따른 NAND 플래시 메모리(10)는, 판독/기입 영역(11-1)에 그 용도에 따라서 NAND 플래시 메모리(10)마다 고유하게, 혹은 제조 로트 단위 등 복수의 NAND 플래시 메모리(10)에 공통으로 부여되는 키 관리 정보(FKBv)를 포함한다. 또한, 본 실시 형태에 따른 NAND 플래시 메모리(10)는, ROM 영역(11-3)에 NAND 플래시 메모리(10)마다 고유하게 부여되는 암호화된 비밀 식별 정보(E-SecretID)를 포함한다.
키 관리 정보(FKBv)를 제조 로트 단위로 공통화시켰을 경우에는, NAND 플래시 메모리(10)마다 기록되어야 할 고유한 정보는 암호화된 비밀 식별 정보(E-SecretID)와 같이 데이터 사이즈가 작은 데이터로 감소될 수 있다. 바꾸어 말하면, NAND 플래시 메모리(10)에 기입되어야 할 고유한 암호화된 비밀 식별 정보(E-SecretID)의 데이터 사이즈는, 기입될 정보를 공통으로 부여되는 키 관리 정보(FKBv) 및 고유한 암호화된 비밀 식별 정보(E-SecretID)로 나누고, 2 단계로 그 정보를 암호화함으로써 감소될 수 있다.
예를 들면, 상기 도 5 및 6에 도시한 바와 같이, 메모리 벤더(30)는 NAND 플래시 메모리의 제조 중에 라이센스 관리자(40)로부터 수신된 NAND 플래시 메모리(10)마다 고유한 정보(E-SecretID)를 기입한다.
NAND 플래시 메모리(10)에 공통으로 부여되는 암호화된 키 관리 정보(FKBv)는 카드 벤더(50)에 의해 NAND 플래시 메모리(10) 내에 공통으로 기입될 수 있다. 예를 들면, 상기 도 7 및 8에 도시한 바와 같이, 카드 벤더(50)는 상기 라이센스 관리자(40)로부터 수신된 각각의 NAND 플래시 메모리(10)에 공통 키 관리 정보 FKBv를 기입한다. 그 때문에, 메모리 벤더(30)에 의해 각각의 NAND 플래시 메모리(10)에 기입되어야 할 고유한 데이터의 사이즈를 감소시킬 수 있다.
NAND 플래시 메모리(10)의 제조 중에 NAND 플래시 메모리(10)에 고유하고, 데이터 사이즈가 큰 정보가 기입되는 경우, 제조 공정이 더욱 복잡하게 되고, 제조 시간이 장기화되어, 제조 비용이 증대할 것이다. 그러나, 본 실시 형태의 구성 및 방법에 따르면, 기입될 정보를 공통으로 부여되는 키 관리 정보 FKBv와 고유한 암호화된 비밀 식별 정보(E-SecretID)로 나누어서 2 단계로 정보를 암호화함으로써, 이러한 복잡한 제조 공정은 불필요하게 되기 때문에, 제조 공정이 유리하게 간략화되고 제조 비용이 감소될 수 있다. 또한, 제조 시간을 단축할 수 있기 때문에, 소비 전력을 감소시킬 수 있는 이점을 제공한다.
또한, 호스트 장치(20)의 측에서도, 숨은 정보 FKey를 이용해서 NAND 플래시 메모리에 고유한 값인 SecretID를 암호화해서 E-SecretID를 생성하고, 또한, IDKeyk를 이용해서 FKey를 암호화해서 키 관리 정보 FKB를 생성하는 구성을 채용함으로써, NAND 플래시 메모리(10)와 마찬가지의 이점이 얻어질 수 있다.
[제1 변형예(FKB를 나중에 다운로드하여 기입할 경우)]
제1 변형예에 따른 인증 장치, 피인증 장치 및 인증 방법에 대해서 설명한다. 이 설명에서, 상기 제1 실시 형태와 중복하는 부분의 설명은 생략한다.
<FKB의 기입>
암호화된 FKey 다발(FKB)의 기입에 대해서 설명한다.
본 제1 변형예의 처리는 암호화된 FKey 다발(FKB)이 NAND 플래시 메모리(10)의 제조 중에 기입되는 경우에는 특별히 필요가 없는 처리이다. 그러나, 이 처리는 NAND 플래시 메모리(10)와 컨트롤러(19)가 접속되고, 예를 들면, NAND 플래시 메모리(10)가 SD 카드처럼 일반 이용자에 의해 입수되고, 카드 이용 시에 시장에서 FKB가 나중에 기입될 경우에 필요한 FKB의 기입 처리에 관한 것이다.
도 9는 상기한 바와 같이 키 관리 정보 FKB가 미기록의 저장 매체(Card)(55)에 기록된 상태를 나타내고 있다.
도 9에 도시한 바와 같이, NAND 플래시 메모리(10)는 숨은 영역(11-2)에 기록된 NKeyi와 SecretID를 가진다. NKeyi를 식별하는 데에 필요한 인덱스 정보 i, FKB를 식별하는 데에 필요한 인덱스 정보 v, 및 인덱스 정보 v에 의해 특정된 FKeyv에 의해 암호화된 SecretID(E-SecretID)는 ROM 영역(11-3)에 기록된다.
제1 변형예는, 판독/기입 영역(11-1)에 암호화된 FKey 다발인 FKB가 기록되지 않는다는 점에서 제1 실시 형태와 상이하다.
다음으로, 도 10을 이용하여, 상기한 바와 같이 FKB가 서버로부터 다운로드되어 미기록 저장 매체(55)에 기록되는 경우에 대해서 설명한다.
도 9에 도시한 바와 같이, 이 경우에는, 필요에 따라서 NAND 플래시 메모리(10)에 데이터 캐시(12)가 배치된다.
본 실시 형태에 따른 서버(70)는 FKB 데이터베이스(FKBi'의 세트(i=1, ..., x))(71) 및 인덱스 정보 v에 기초하여 FKBv를 선택하기 위한 선택기(72)를 포함한다.
서버(70)와 메모리 시스템(NAND 플래시 메모리(10), 컨트롤러(19), 호스트 장치(20))는 인터넷(60)을 통해서 전기적으로 통신 접속된다.
호스트 장치(20)는 FKB의 신규 기입이 필요한지의 여부를 판정하고, 필요에 따라서 FKB를 서버로부터 요구하는 기능을 포함한다.
<FKB 기입 플로우>
다음으로, 도 11에 따라 암호화된 FKeyID 다발(FKB)을 서버(70)로부터 다운로드해서 FKB를 NAND 플래시 메모리(10)에 기입하는 플로우에 대해서 설명한다.
(단계 S41)
도 11에 도시한 바와 같이, 우선, 호스트 장치(20)가 FKB를 다운로드할 필요가 있다고 판정한 경우, FKB 기입이 개시되어, 호스트 장치(20)는 서버(70)에 대하여 FKB 요구를 제기한다.
(단계 S42)
계속해서, 서버(70)는 NAND 플래시 메모리(10)로부터 FKeyv를 식별하는 데에 필요한 인덱스 정보 v를 요구한다.
(단계 S43)
계속해서, NAND 플래시 메모리(10)는 ROM 영역(11-3)으로부터 v를 판독하고, v를 서버에 송출된다.
(단계 S44)
계속해서, 서버(70)는 수신된 v에 대응하는 FKBv를 FKB 데이터베이스(71)로부터 선택한다.
(단계 S45)
계속해서, 서버(70)는 선택된 FKBv를 NAND 플래시 메모리(10)에 송출한다.
(단계 S46)
계속해서, NAND 플래시 메모리(10)는 수신된 FKBv를 판독/기입 영역(11-1)에 기록을 위해 기입한다.
이상의 동작에 의해, 제1 실시 형태에 따른 암호화된 FKey 다발(FKB)의 다운로드 플로우를 종료한다(End).
기타의 구성 및 동작은 제1 변형예와 실질적으로 마찬가지이다.
<유리한 효과>
제1 변형예에 따른 인증 장치, 피인증 장치 및 인증 방법에 따르면, 적어도 제1 실시 형태와 마찬가지의 유리한 효과 (1) 내지 (3)을 얻을 수 있다.
또한, 제1 변형예에 따르면, 본 실시 형태는 나중에 FKB를 기입하는 경우에도 필요에 따라서 적용가능하다.
[제2 실시 형태]
다음으로, 제2 실시 형태에 대해서 설명한다. 이 설명에서, 제1 실시 형태와 중복되는 부분의 설명은 생략한다.
제1 실시 형태에서는, 호스트 장치(20)에 의한 NAND 플래시 메모리(10)의 인증이 성공적으로 완료된 후, 양자는 SecretID를 공유한다. 인증 후의 처리로서, 예를 들면, 호스트 장치(20)가 콘텐츠를 암호화하고, NAND 플래시 메모리(10)에 암호화된 콘텐츠를 기입한다. 이러한 처리에 대해, 공유된 SecretID를 이용하는 것이 고려될 수 있다.
본 실시 형태는 그러한 처리에서도 SecretID를 보호하는 것을 목적으로 한다. 그 때문에, 이 설명에서는, 제1 실시 형태와 중복하는 부분의 설명은 생략한다.
<메모리 시스템>
제2 실시 형태에 따른 메모리 시스템은 도 12와 같이 나타난다.
도 12에 도시한 바와 같이, 본 실시 형태에 따른 메모리 시스템은, 시스템이 일방향성 변환기(Oneway)(27B), 스위치 유닛(29), 및 대상 콘텐츠를 다루는 모든 호스트 장치(20)에 의해 공통적으로 유지되는 정보(ASSV)를 더 포함한다는 점에서 상기 제1 실시 형태와 상이하다.
스위치 유닛(29)은 데이터 검증 유닛(Verify)(28)에서 Oneway-ID의 양쪽의 값이 일치할 경우(OK)의 판정 결과가 제어 신호로서 입력되면, 신호 경로를 온으로 하여 SecretID를 일방향성 변환기(27B)에 출력한다.
일방향성 변환기(Oneway)(27B)는 스위치 유닛(29)으로부터 입력되는 SecretID를, 대상 콘텐츠를 다루는 모든 호스트 장치에 의해 공통으로 유지되는 정보(ASSV)를 이용해서 일방향성 함수에 의해 변환하여, 일방향성 변환 식별 정보 EMID(EMID=Oneway(SecretID, ASSV))를 생성한다.
이렇게, 제2 실시 형태에서는, 호스트 장치(20)에 의해 SecretID가 검증된 후에, 호스트 장치(20)가 대상이 되는 모든 호스트 장치에 의해 공통적으로 유지되는 ASSV를 이용해서 SecretID를 변환하여, EMID를 계산한다. 그 때문에, 호스트 장치(20)는 SecretID 대신에 EMID를 이용하여 콘텐츠 암호화 등의 처리를 행할 수 있다.
기타의 구성 및 동작은 제1 실시 형태와 실질적으로 마찬가지이기 때문에, 상세한 설명은 생략한다.
<유리한 효과>
제2 실시 형태에 따른 인증 장치, 피인증 장치 및 인증 방법에 따르면, 적어도 제1 실시 형태와 마찬가지의 유리한 효과 (1) 내지 (3)을 얻을 수 있다.
또한, 제2 실시 형태는, 호스트 장치(20)가 일방향성 변환기(Oneway)(27B), 스위치 유닛(29) 및 대상 콘텐츠를 다루는 모든 호스트 장치에 의해 공통으로 유지되는 정보(ASSV)를 더 포함한다는 점에서 제1 실시 형태와 상이하다.
상기 구성에 따르면, 호스트 장치(20)에 의해 비밀 인식 정보 SecretID가 검증된 후에, 호스트 장치(20)는 대상이 되는 모든 호스트 장치에 의해 공통적으로 유지되는 정보(ASSV)를 이용해서 비밀 식별 정보 SecretID를 변환하여, 일방향성 변환 식별 정보 EMID를 계산한다. 그 때문에, 호스트 장치(20)는 비밀 식별 정보 SecretID 대신에 일방향성 변환 식별 정보 EMID를 이용하여 콘텐츠 암호화 등의 처리를 행할 수 있다.
그 결과, 도시되지는 않았지만, 일방향성 변환 식별 정보 EMID가 후공정에서의 콘텐츠 암호화에 이용될 수 있고, 따라서, 해당 후공정에서 비밀 식별 정보 SecretID가 유출되는 것이 방지될 수 있어, 비밀 식별 정보 SecretID의 기밀성을 유리하게 더욱 강화할 수 있다. 그 상세 사항에 대해서는 후술한다.
[제3 실시 형태]
다음으로, 제3 실시 형태에 대해서 설명한다. 제3 실시 형태는, NAND 플래시 메모리(10)가 호스트 장치(20)를 인증하는 일례에 관한 것이다. 본 실시 형태는, NAND 플래시 메모리(10) 내의 SecretID를 제3자로부터 숨겨진 상태로 판독하고, 또한, 데이터가 NAND 플래시 메모리(10)로부터 판독된 것을 확실하게 판정하는 방법, 및, NAND 플래시 메모리(10)가 호스트 장치(20)를 검사하는 방법을 나타낸다.
이 설명에서, 상기 실시 형태들과 중복되는 부분의 설명은 생략한다.
<메모리 시스템>
도 13을 이용하여 제3 실시 형태에 따른 메모리 시스템에 대해서 설명한다.
도 13에 도시한 바와 같이, 본 실시 형태는, NAND 플래시 메모리(10)가 기능 컨트롤러(18), 난수 생성기(24n) 및 데이터 검증 유닛(28n)을 더 포함하고, 호스트 장치(20)가 기능 호출 유닛(30)을 더 포함하는 점에서, 제1 실시 형태와 상이하다.
난수 생성기(RNG)(24n)는 인증에 이용되는 난수 RNn를 생성한다.
데이터 검증 유닛(Verify)(28n)은, 호스트 장치(20)로부터 수신된 Oneway-ID와 NAND 플래시 메모리(10) 내의 일방향성 변환기(15)로부터 얻어진 Oneway-ID를 비교해서 양쪽의 Oneway-ID가 일치하는지의 여부를 판정한다. 양쪽의 값이 일치하는 경우, 데이터 검증 유닛(28n)은 호스트 장치(20)가 올바른 Oneway-ID를 얻었다고 판정하고(OK), 양쪽의 값이 일치하지 않는 경우, 데이터 검증 유닛(28n)은 호스트 장치(20)가 올바른 Oneway-ID를 얻지 않았다고 판정한다(NG).
기능 컨트롤러(18)는, 호스트 장치(20)가 올바른 Oneway-ID를 얻을 경우에만(OK), NAND 플래시 메모리(10)의 소정 기능이 호스트 장치(20)에 대하여 이용가능해지도록, 메모리 셀 어레이(11)에 대하여 소정 기능을 인에이블시킨다. 또한, 호스트 장치(20)로부터 수신된 HCj를 기능 컨트롤러(18)에 입력시켜, HCj에 따라서 소정 기능이 제어된다. 소정 기능에 대해서는 별도로 후술한다.
기능 호출 유닛(30)은 호스트 장치(20)에 의해 생성된 Oneway-ID의 정당성을 NAND 플래시 메모리(10)가 검증한 것을 나타내는 액세스 허가 정보(도 13에서 "액세스 허가"로 표시됨)를 호스트 장치(20)가 수신하면, NAND 플래시 메모리(10)의 소정 기능을 호출하는 처리를 행한다.
<인증 플로우>
다음으로, 도 14에 따라 제3 실시 형태에 따른 메모리 시스템의 인증 플로우에 대해서 설명한다.
(단계 S11 내지 S14)
도 14에 도시한 바와 같이, 제1 실시 형태와 마찬가지의 처리가 인증 개시(Start)로부터 단계 S11 내지 S14까지 행해진다.
(단계 S51)
계속해서, 호스트 장치(20)는 인덱스 정보 i를 수신하면 난수 생성 요구(Request RNn)를 NAND 플래시 메모리(10)에 송출한다.
(단계 S52)
계속해서, NAND 플래시 메모리(10)는 상기 요구를 수신하고, 난수 생성기(24n)에 의해 RNn을 생성한다. 생성된 RNn은 호스트 장치(20)에 송출된다.
(단계 S21 내지 S23)
계속해서, 호스트 장치(20)는 제1 실시 형태의 단계 S21 내지 S23과 마찬가지의 처리를 행한다.
(단계 S53)
계속해서, 호스트 장치(20)는 NAND 플래시 메모리(10)에 인증을 요구하고(Request authentication), HCj 및 Oneway-ID를 송출한다.
(단계 S17 내지 S20)
상기한 단계 S17 내지 S19와 마찬가지의 처리에 계속해서, 단계 S20에서, NAND 플래시 메모리(10)는 생성된 SKeyi,j를 이용하여 SecretID에 일방향성 변환기(15)에 의한 일방향성 변환 처리를 행하여, Oneway-ID(=Oneway(SKeyi,j, SecretID))를 생성한다.
(단계 S54)
계속해서, NAND 플래시 메모리(10)는 수신된 Oneway-ID와, NAND 플래시 메모리(10)에 의해 생성된 Oneway-ID가 일치하는 것을 검증한다. 양쪽의 Oneway-ID가 일치하는 경우(OK), NAND 플래시 메모리(10)는 상기 SecretID가 진정한 ID라고 판정하고, 양쪽의 Oneway-ID가 일치하지 않는 경우(NG), NAND 플래시 메모리(10)는 상기 SecretID가 불법적인 ID라고 판정한다. 그런 다음, NAND 플래시 메모리(10)는 판정 결과를 호스트 장치(20)에 반송하고, 또한, 소정 기능의 호출 접수를 허가(Permission)한다.
(단계 S55)
계속해서, NAND 플래시 메모리(10)는, 상기 단계 S54에서의 판정 결과가 일치했을 경우(OK), 기능 컨트롤러(18) 내의 소정 기능을 인에이블하여, NAND 플래시 메모리(10)의 소정 기능이 호스트 장치(20)에 대해 이용가능하게 되도록 한다.
(단계 S56)
계속해서, 호스트 장치(20)는, 호스트 장치(20)에 의해 생성된 Oneway-ID의 정당성을 NAND 플래시 메모리(10)가 검증한 것을 나타내는 액세스 허가 정보(Access Permission)를 호스트 장치(20)가 수신하면, 기능 호출 유닛(30)을 통해 소정 기능을 호출하는 명령을 회신한다.
(단계 S57)
계속해서, NAND 플래시 메모리(10)는 기능의 호출을 수신하고, 호스트 장치(20)로부터 수신된 기능 호출 명령에 따른 기능 컨트롤러(18)의 처리를 행하고, 그 처리 결과의 상태(Status)를 반송한다.
이 경우에, 호스트 장치(20)로부터 수신된 HCj를 기능 컨트롤러(18)에 입력하여, HCj에 따라서 소정 기능이 제어될 수 있다. 소정 기능에 대해서는 별도로 후술한다.
<유리한 효과>
제3 실시 형태에 따른 인증 장치, 피인증 장치 및 인증 방법에 따르면, 적어도 제1 실시 형태와 마찬가지인 유리한 효과 (1) 내지 (3)을 얻을 수 있다. 또한, 적어도 하기의 유리한 효과 (4) 및 (5)를 얻는 것이 가능하다.
(4) NAND 플래시 메모리(10)가 호스트 장치(20)를 인증할 수 있다.
본 실시 형태는, NAND 플래시 메모리(10)가 기능 컨트롤러(18), 난수 생성기(24n) 및 데이터 검증 유닛(28n)을 더 포함하고, 호스트 장치(20)가 기능 호출 유닛(30)을 더 포함하는 점에서 제1 실시 형태와 상이하다.
그 때문에, 상기 구성에 따르면, 예를 들면, 호스트 장치(20)가 NAND 플래시 메모리(10)에 액세스할 때에, 호스트 장치(20)가 충분히 신뢰할 만한 경우에만 NAND 플래시 메모리(10)가 소정의 기능을 제공하는 방식으로 인증 기능이 제어될 수 있다.
이렇게, 본 실시 형태에 따르면, 통상적으로 피인증 장치인 NAND 플래시 메모리 등의 기록 매체가, 반대로 호스트 장치(20)를 인증할 수 있는 점에서 유리하다.
(5) 인증된 호스트 장치(20)의 고유 정보(상수 HCj)에 따라서 소정의 기능을 제공할 것인지의 여부를 더 제어하는 기구를 마련할 수 있다는 점에서 유리하다. 소정의 기능의 상세에 대해서는 후술한다.
[제4 실시 형태(상호 인증)]
다음으로, 제4 실시 형태에 대해서 설명한다. 제4 실시 형태는 NAND 플래시 메모리(10)와 호스트 장치(20)가 상호 인증하는 일례에 관한 것이다.
이 설명에서, 상기 실시 형태와 중복하는 부분의 설명은 생략한다.
<메모리 시스템>
도 15를 이용하여 제4 실시 형태에 따른 메모리 시스템에 대해서 설명한다.
도 15에 도시한 바와 같이, 본 실시 형태는 제1 실시 형태에 따른 메모리 시스템과 제3 실시 형태에 따른 메모리 시스템을 실질적으로 조합시킨 구성을 포함한다.
보다 구체적으로는, NAND 플래시 메모리(10) 및 호스트 장치(20)가, 난수 생성기(24n, 24h), 생성기(14-2, 26-2), 일방향성 변환기(15-2, 26-2), 데이터 검증 유닛(28n, 28h)을 포함한다. 또한, 본 실시 형태는, 호스트 장치(20)가 스위치 유닛(29B)을 더 포함하는 점에서 상기 제3 실시 형태와 상이하다.
상기 구성의 각각의 동작은 상기 실시 형태와 마찬가지이다.
<인증 플로우>
다음으로, 도 16에 따라 제4 실시 형태에 따른 메모리 시스템의 인증 플로우에 대해서 설명한다. 본 실시 형태에 따른 인증 플로우는, 원칙적으로는, 상기 제1 실시 형태에 따른 인증 동작(호스트 장치가 NAND 플래시 메모리를 인증한다)을 행한 후, 상기 제3 실시 형태에 따른 인증 동작(NAND 플래시 메모리가 호스트 장치를 인증한다)을 행한다.
(단계 S11 내지 S24)
도 15에 도시한 바와 같이, 인증이 개시되면(Start), 우선, 호스트 장치(20)는 상기 제1 실시 형태와 마찬가지의 단계 S11 내지 S24를 행하여 NAND 플래시 메모리(10)를 인증한다.
여기서, 난수 생성기(24h)에 의해 생성되는 난수 RNh를 이용하여 마찬가지의 인증을 행한다.
(단계 S51 내지 S70)
계속해서, 상기 단계 S24의 판정 결과가 일치하는 경우(OK), NAND 플래시 메모리(10)의 인증이 완료되었다고 판단한다.
계속해서, NAND 플래시 메모리(10)는 상기 제3 실시 형태와 마찬가지의 단계 S51 내지 S70을 행하여 호스트 장치(20)를 인증한다.
여기서, 난수 생성기(24n)에 의해 생성되는 난수 RNn을 이용하여 마찬가지의 인증을 행한다.
이상의 단계에 의해, 제4 실시 형태에 따른 인증 동작을 종료한다(End).
<기능 제어의 구성예>
다음으로, 도 17을 이용하여 기능 제어의 구성예에 대해서 설명한다.
기능 제어는, NAND 플래시 메모리(10)가 인증 장치이며, 호스트 장치(20)가 피인증 장치일 경우, NAND 플래시 메모리(10)가 호스트 장치(20)를 인증하고, 인증 결과에 근거해서 호스트 장치(20)에 대하여 소정 기능을 제공하는 제3 및 제4 실시 형태에 따른 소정 기능의 제어 방법이다.
도 17에 도시하는 기능 제어의 구성은 NAND 플래시 메모리(10) 각각에 포함된다. 기능 제어는 인증 회로(17)에 포함되는 기능 컨트롤러(18), 파라미터 레지스터(89) 및 시퀀스 제어 회로(88)를 포함한다.
인증 회로(17) 내에 포함되는 기능 컨트롤러(18)는, 인증 결과, 또는 필요에 따라 호스트 장치(20)의 고유 정보(상수 HCj 등)에 기초하여, 호스트 장치(20)에 소정 기능을 제공하기 위한 기능을 제어한다. 기능 컨트롤러(18)는, 파라미터 레지스터(89)에 포함되는 제어 파라미터(890)를 호스트 장치(20)의 인증 결과나 고유 정보에 기초하여 갱신한다.
파라미터 레지스터(89) 내의 제어 파라미터(890)는 하나 이상의 액세스 허가 정보(#0, #1, ..., #3)를 포함한다. 예를 들면, 액세스 허가 정보 #0은 블록 어드레스, 페이지 어드레스, 판독 속성, 기입 속성, 소거 속성 및 고유 정보 등을 포함한다. 블록 어드레스는 블록 어드레스와 관련된 메모리 셀 어레이(11)의 제어를 나타낸다. 페이지 어드레스는 페이지 어드레스와 관련된 메모리 셀 어레이(11)의 제어를 나타낸다. 판독 속성은 블록 어드레스, 혹은 블록 어드레스 및 페이지 어드레스에 관련된 판독 허가 정보를 나타낸다. 기입 속성은 블록 어드레스, 혹은 블록 어드레스 및 페이지 어드레스에 관련된 기입 허가 정보를 나타낸다. 소거 속성은 블록 어드레스, 혹은 블록 어드레스 및 페이지 어드레스에 관련된 소거 허가 정보를 나타낸다. 고유 정보는 액세스 허가 정보가 특정 정보를 가지는 호스트 장치(20)의 제어 파라미터인 것을 나타낸다.
각각의 액세스 허가 정보(#0, #1, ..., #3)는 상기 정보 모두를 포함할 필요는 없으며, 필요한 제어 레벨에 따른 정보를 포함하고 있으면 된다. 예를 들면, 호스트 장치(20)의 고유 정보(상수 HCj 등)에 근거한 제어가 필요하지 않으면 특정 정보는 포함되지 않아도 된다. 또한, 페이지 단위의 제어가 필요하지 않으면 페이지 어드레스는 포함되지 않아도 된다. 또한, 임의의 블록 어드레스에서의 제어가 필요하지 않고, 예를 들면, 미리 정해진 블록에 대해서만, 혹은 전체 NAND 플래시 메모리(10)에 대해서 제어가 의도되는 경우, 블록 어드레스는 포함되지 않아도 된다. 마찬가지로, 판독 속성, 기입 속성, 소거 속성에 대해서도, 제어가 필요한 기능의 속성만을 포함하면 된다.
시퀀스 제어 회로(88)는 제어 파라미터(890)에 따라 호스트 장치(20)에 의해 제공되는 커맨드(CMD)에 따른 동작 시퀀스를 제어한다. 예를 들면, 데이터 판독 커맨드에 대하여, 시퀀스 제어 회로(88)는, 제어 파라미터(890) 내의 액세스 허가 정보의 판독 속성에 기초하여, 제공된 판독 커맨드에 따라 데이터 판독(Read) 또는 데이터 판독 거부의 동작을 제어한다. 판독 속성에서 판독이 허가되면, 셀 어레이(11)로부터 데이터를 판독할 수 있다. 기타, 데이터 기입 동작, 데이터 소거 동작에 대해서도 상기 동작 예가 적용된다.
<유리한 효과>
제4 실시 형태에 따른 인증 장치, 피인증 장치 및 인증 방법에 따르면 적어도 상기한 것과 마찬가지의 유리한 효과 (1) 내지 (5)를 얻을 수 있다.
본 실시 형태에 따르면, NAND 플래시 메모리(10)와 호스트 장치(20)가 상호 인증하는 것이 가능하다.
또한, 본 실시 형태에 따른 NAND 플래시 메모리(10)는 도 17에 나타난 구성에 의한 기능 제어를 실현한다. 시퀀스 제어 회로(88)는 제어 파라미터(890)에 따라서, 제공된 커맨드에 따른 동작 시퀀스를 제어할 수 있다. 그 때문에, NAND 플래시 메모리(10)에 의해 인증된 호스트 장치(20)는, 그 호스트 장치(20)의 고유 정보(상수 HCj 등)에 기초하여, 갱신된 제어 파라미터(890)의 각종 기능 처리를 행하는 것이 허가될 수 있다는 점(Process function)에서 유리하다.
또한, 본 예에 따른 NAND 플래시 메모리(10)는 도 17에 나타난 구성의 기능 제어를 제3 및 제4 실시 형태와 함께 포함할 수 있다.
[제5 실시 형태(NAND 플래시 메모리의 구성예)]
다음으로, 제5 실시 형태에 대해서 설명한다. 제5 실시 형태는 제1 내지 제4 실시 형태에 따른 인증 기능이 적용된 NAND 플래시 메모리(10)의 구성예에 관한 것이다.
이 설명에서, 상기 실시 형태와 중복하는 부분의 설명은 생략한다.
<NAND 플래시 메모리의 전체 구성예>
도 18을 이용하여 제5 실시 형태에 따른 NAND 플래시 메모리(10)의 전체 구성예에 대해서 설명한다.
도 18에 도시한 바와 같이, NAND 플래시 메모리(10)는 메모리 셀 어레이(11) 및 주변 회로를 포함한다.
메모리 셀 어레이(11)는 복수의 블록 BLOCK1 내지 BLOCKn을 포함한다. 도 19를 참조하여 후술되는 각 블록의 구성은, 복수의 메모리 셀 트랜지스터 MC, 워드선 WL, 비트선 BL을 포함한다. 각 블록 내의 메모리 셀 트랜지스터 MC 내의 데이터는 일괄 소거된다. 데이터는 메모리 셀 트랜지스터 단위 또는 페이지 단위로 소거될 수는 없다. 즉, 각각의 블록이 최소의 소거 단위이다.
주변 회로는 센스 증폭기(77), 입출력 제어 회로(84), 로직 제어 회로(85)를 포함한다.
센스 증폭기(77)는 비트선 BL을 통해서 메모리 셀 어레이(11) 내의 메모리 셀(메모리 셀 트랜지스터 MC)의 데이터를 판독하고, 비트선 BL을 통해서 메모리 셀 어레이(11) 내의 메모리 셀의 상태를 검출한다.
데이터 캐시(12)는 센스 증폭기(77)로부터 판독되는 데이터 또는 센스 증폭기(77)에 공급되는 데이터를 일시적으로 유지한다.
컬럼 디코더(75)는 NAND 플래시 메모리(10)의 외부로부터 IO 단자를 통해서 공급된 어드레스 신호에 기초하여 특정의 비트선 BL, 센스 증폭기 등을 선택한다.
컬럼 어드레스 버퍼(74)는 어드레스 신호를 일시적으로 유지하여, 이 어드레스 신호를 컬럼 디코더(75)에 공급한다.
로우 디코더(78)는 데이터 판독, 기입, 혹은 소거에 필요한 여러 가지 전압을 전압 생성 회로(86)로부터 수신하여, 그러한 전압을 어드레스 신호에 근거해서 특정한 워드선 WL에 공급한다.
로우 어드레스 버퍼 디코더(79)는 어드레스 신호를 일시적으로 유지하여, 이 어드레스 신호를 로우 디코더(78)에 공급한다.
전압 생성기(86)는 기준 전원 전압 VSS, VCC, 전압 VSSQ, VCCQ 등을 수신하여, 이들 전압으로부터 데이터 기입, 판독 또는 소거에 필요한 전압을 생성한다.
입출력 제어 회로(84)는 IO 단자를 통하여 NAND 플래시 메모리(10)의 동작을 제어하는 여러 가지 커맨드, 어드레스 신호, 기입 데이터를 수신하고, 또한, 판독 데이터를 출력한다. 입출력 제어 회로(84)로부터 출력된 어드레스 신호는 어드레스 레지스터(82)에 의해 래치된다. 래치된 어드레스 신호는 컬럼 어드레스 버퍼(74) 및 로우 어드레스 버퍼 디코더(79)에 공급된다. 입출력 제어 회로(84)로부터 출력된 커맨드는 커맨드 레지스터(83)에 의해 래치된다. 상태 레지스터(81)는 입출력 제어 회로(84)에 대한 여러 가지 상태 값을 유지한다.
NAND 플래시 메모리(10)는 외부 인터페이스(NAND I/F)로서, 커맨드, 어드레스, 데이터 입출력용의 IO 단자 및 동작을 제어하기 위한 여러 가지 제어 신호를 외부로부터 수신한다. 제어 신호는, 예를 들면, 칩 인에이블 /CE, 커맨드 래치 인에이블 CLE, 어드레스 래치 인에이블 ALE, 리드 인에이블 RE 및 /RE, 라이트 인에이블 WE 및 /WE, 라이트 프로텍트 WP 및 클럭 DQS, /DQS를 포함한다.
이들 제어 신호는 대응하는 단자에서 수신된 후, 로직 제어 회로(85)에 송신된다. 로직 제어 회로(85)는 제어 신호에 기초하여 입출력 제어 회로(84)를 제어하여, 단자 IO 상의 신호가 커맨드, 어드레스, 또는 데이터로서 입출력 제어 회로(84)를 통해서 어드레스 레지스터(82), 커맨드 레지스터(83), 페이지 버퍼(12) 등에 도달하는 것을 허가하거나 금지한다. 또한, 로직 제어 회로(85)는 커맨드 레지스터(83)로부터 래치된 커맨드를 수신한다.
제어 신호 중에서, WE 단자는 데이터 입력용 클럭을 공급하고, RE 단자는 데이터 출력용 클럭을 공급하고, DQS 단자는 데이터 입출력용 클럭을 전송하고, CLE 단자는 데이터 입력을 커맨드로서 입력하는 인에이블용이며, ALE 단자는 데이터 입력을 어드레스로서 입력하는 인에이블용이며, CE 단자는 데이터 입출력의 전반적인 기능을 인에이블하기 위한 것이다.
R/B 단자는 NAND 플래시 메모리(10)의 내부 동작 상태를 나타내고, WP 단자는 오기입 방지용의 기입 방지 신호를 전송하고, Vcc/Vss/Vccq/Vssq 단자는 전력 공급에 이용된다. 또한, 본 실시 형태에서는, 고속 인터페이스에 의해 데이터 전송이 실현되는 때에 이용되는 단자(Toggle)로서, RE 단자, WE 단자, DQS 단자에 대해 각각의 상보 신호를 전송하는 /RE 단자, /WE 단자, /DQS 단자가 존재한다.
로직 제어 회로(85)는 시퀀스 제어 회로(88), 파라미터 레지스터(89), 인증 회로(17)를 포함한다. 또한, 로직 제어 회로(85)는 ready/busy 신호(R/B)의 출력을 담당한다. 보다 구체적으로는, 로직 제어 회로(85)는 NAND 플래시 메모리(10)가 busy인 동안에 busy 신호를 출력한다.
시퀀스 제어 회로(88)는 커맨드 레지스터(83)로부터 커맨드를 수신한다. 시퀀스 제어 회로(88)는 수신된 커맨드에 기초하여, 커맨드에 의해 지시되는 처리(데이터 판독, 기입 또는 소거 등)가 실행될 수 있도록 센스 증폭기(77), 전압 생성 회로(86) 등을 제어한다.
파라미터 레지스터(89)는 로직 제어 회로(85)의 동작을 특정하는 여러 가지 제어 파라미터(890)를 유지한다. 제어 파라미터(890)는 시퀀스 제어 회로(88)를 참조하거나, 그에 의해 갱신되고, 로직 제어 회로(85) 또는 입출력 제어 회로(84)의 시퀀스의 제어에 이용된다.
인증 회로(17)는 상기의 인증에 관한 처리를 행한다. 예를 들면, 인증 회로(17)는, 상기한 바와 같이, 파라미터 레지스터에 포함되는 제어 파라미터(890)의 재기입 등의 데이터의 갱신도 행한다. 인증 회로(17)는 인증을 요구하는 커맨드를 수신하고, 메모리 셀 어레이(11) 내의 특정한 데이터를 이용해서 인증을 위한 특정한 연산을 행하고, 그 결과를 메모리(10)의 외부에 출력한다. 이 일련의 동작의 실행 과정에서, 인증 회로(17)는 필요한 데이터의 판독 또는 기입을 제어 파라미터(890)의 갱신을 통해서 시퀀스 제어 회로(88)에 허가한다.
ready/busy 회로(RY/BY)(87)는 로직 제어 회로(85)의 제어 하에 스위치 트랜지스터를 통해서 R/B 신호를 NAND 플래시 메모리(10) 외부에 통지한다.
<블록(BLOCK)의 구성예>
다음으로, 도 19를 이용하여 메모리 셀 어레이(11)를 구성하는 블록(BLOCK)의 구성예에 대해서 설명한다. 도 18의 BLOCK1을 일례로 들어 설명한다. 상기한 바와 같이, 블록 BLOCK1 내의 메모리 셀 내의 데이터는 일괄하여 소거되기 때문에, 이 블록은 데이터 소거 단위이다.
블록 BLOCK1은 워드선 방향(WL 방향)으로 배치되는 복수의 메모리 셀 유닛 MU를 포함한다. 메모리 셀 유닛 MU는 WL 방향과 교차하는 비트선 방향(BL 방향)으로 배치되고, 전류 경로가 직렬 접속되는 8개의 메모리 셀 MC0 내지 MC7로 이루어지는 NAND 스트링(메모리 셀 스트링)과, NAND 스트링의 전류 경로의 일단에 접속되는 소스 측의 선택 트랜지스터 S1과, NAND 스트링의 전류 경로의 타단에 접속되는 드레인 측의 선택 트랜지스터 S2를 포함한다.
본 실시 형태에서는, 메모리 셀 유닛 MU는 8개의 메모리 셀 MC0 내지 MC7을 포함하지만, 2개 이상의 메모리 셀, 예를 들면, 56개 또는 32개의 메모리 셀을 포함할 수도 있으며, 메모리 셀의 수는 8개에 한정되지는 않는다.
소스 측의 선택 트랜지스터 S1의 전류 경로의 타단은 소스선 SL에 접속된다. 드레인 측의 선택 트랜지스터 S2의 전류 경로의 타단은 메모리 셀 유닛 MU에 대응해서 각각의 메모리 셀 유닛 MU의 상방에 마련되어져, BL 방향으로 연장하는 비트선 BL에 접속된다.
워드선 WL0 내지 WL7은 WL 방향으로 연장하여 WL 방향의 복수의 메모리 셀의 제어 게이트 전극 CG에 공통으로 접속된다. 선택 게이트 선 SGS는 WL 방향으로 연장하여 WL 방향의 복수의 선택 트랜지스터 S1에 공통으로 접속된다. 선택 게이트 선 SGD 또한 WL 방향으로 연장하여 WL 방향의 복수의 선택 트랜지스터 S2에 공통으로 접속된다.
각각의 워드선 WL0 내지 WL7에 대하여 페이지(도 19에서 "PAGE"로 표시됨)가 존재한다. 예를 들면, 도 19에서 파선으로 둘러싸여 도시된 것과 같이, 워드선 WL7에는 페이지 7(PAGE7)이 존재한다. 이 페이지(PAGE)마다 데이터 판독 동작 또는 데이터 기입 동작이 행하여지기 때문에, 페이지(PAGE)는 데이터 판독 단위이며 데이터 기입 단위이다.
<셀 어레이의 구성예>
다음으로, 도 20a, 20b, 20c 및 20d를 이용하여 메모리 셀 어레이(11)의 구조를 나타낸다.
도 20a에 도시한 바와 같이, 메모리 셀 어레이(11)는 일반 블록(11-1), 숨은 블록(11-2), ROM 블록(11-3), ROM 퓨즈 블록(11-4), 보호 블록(11-5) 등의 복수의 블록(BLOCK)을 포함한다. 각 블록은, 상기한 바와 같이, 복수의 페이지를 포함한다. 통상적으로, 데이터는 페이지 단위로 판독되거나 기입되고, 데이터는 블록 단위로 소거된다.
상기한 바와 같이, 일반 블록(11-1)에는 데이터 기입 및 데이터 판독 모두가 허가되어, 통상적인 데이터 유지에 이용된다. 일반 블록은 상술한 판독/기입 영역(11-1)에 대응한다. 블록의 수는 특별히 한정되지 않는다.
전술한 바와 같이, 숨은 블록(11-2) 및 ROM 블록(11-3)은 상기한 인증 동작에 적용된다. 숨은 블록(11-2)은 상기한 숨은 영역(11-2)에 대응한다. ROM 블록(11-3)은 상기한 ROM 영역(11-3)에 대응한다. 블록의 수는 양쪽의 경우 모두 특별히 한정되지 않는다.
도 20b에 도시한 바와 같이, 본 실시 형태에서는 ROM 블록(11-3)의 메모리 공간에 판독 전용 데이터가 더 기록된다.
도 20c에 도시한 바와 같이, 본 실시 형태에서는 숨은 블록(11-2)의 메모리 공간에 숨은 데이터가 더 기록된다.
도 20d에 도시한 바와 같이, 본 실시 형태에서는 후술하는 인증 기능에 의해 이용되는 보호 데이터가 보호 블록(11-5)의 메모리 공간에 더 기록된다.
ROM 퓨즈 블록(11-4)은, 예를 들면, NAND 플래시 메모리(10)의 동작 제어용의 파라미터를 유지하는 데에 이용될 수 있다.
<ROM 블록 내의 판독 전용 데이터>
다음으로, 도 21을 이용하여 ROM 블록(11-3) 내의 판독 전용 데이터에 대해서 설명한다.
도 21에 도시한 바와 같이, ROM 블록(11-3)의 메모리 공간 내의 어떤 페이지에 판독 전용 데이터가 기록된다. 판독 전용 데이터가 판독 전용 데이터 A 내지 Z의 시퀀스인 경우, 도 21은 데이터의 에러 정정을 목적으로 하는 데이터 패턴의 3개의 예를 나타낸다.
제1 데이터 패턴에 도시한 바와 같이, 제1 데이터 패턴은 동일한 데이터(A, A, ,,, B, B, ,,,)를 반복해서 기록하는 예이다. 이 경우, 호스트 장치(20)에 의해 판독 전용 데이터를 반복해서 판독하고, 호스트 장치(20) 등의 에러 정정 유닛에 의해 다수결 판정을 행함으로써, 에러 정정이 이루어질 수 있다. 또는, 컨트롤러(19)에 의해 판독 전용 데이터를 반복해서 판독하고, 컨트롤러(19) 등의 에러 정정 유닛에 의해 다수결 판정을 행함으로써 에러 정정이 이루어질 수 있다. 또는, NAND 플래시 메모리(10) 내의 에러 정정 유닛에 의해 반복적으로 판독된 판독 전용 데이터에 다수결 판정을 행함으로써, 에러 정정이 가능하다. 예를 들면, 반복 횟수는 16회 이상인 것이 바람직하다.
도 21의 제2 데이터 패턴에 도시된 바와 같이, 제2 데이터 패턴은 데이터(A, B,,,) 및 그 반전 데이터(A의 반전, B의 반전, ,,,)로 이루어지는 상보 데이터 쌍을 반복적으로 기록하는 예이다. 이 경우, 호스트 장치(20)에 의해 판독 전용 데이터를 반복적으로 판독하고, 호스트 장치(20) 등의 에러 정정 유닛에 의해 상보적인 데이터 쌍을 고려하여 다수결 판정을 행함으로써, 에러 정정이 이루어질 수 있다. 또는, 컨트롤러(19)에 의해 판독 전용 데이터를 반복적으로 판독하고, 컨트롤러(19) 등의 에러 정정 유닛에 의해 상보적인 데이터 쌍을 고려하여 다수결 판정을 행함으로써 에러 정정이 이루어질 수 있다. 또는, NAND 플래시 메모리(10) 내의 에러 정정 유닛에 의해 반복적으로 판독된 판독 전용 데이터의 상보적인 데이터 쌍을 고려하여 다수결 판정을 행함으로써 에러 정정이 가능하다.
상보적인 데이터 쌍이 반복적으로 기록되는 이유는 NAND 플래시 메모리(10)의 에러 모드에 기인한다. NAND 플래시 메모리(10)는 메모리 셀 MC에 소정의 전압을 인가함으로써 플로팅 게이트 FG에 전자를 주입하여, 데이터를 기입한다. 데이터는 메모리 셀 MC의 플로팅 게이트 FG 내에 전자가 존재하는지의 여부에 따라 변화하는 임계 전압을 이용해서 판독된다. 데이터는, 데이터 기입 시의 전압의 반대 방향으로 전압을 인가함으로써 플로팅 게이트 FG로부터 기판으로 전자를 추출하여 소거된다. 데이터의 판독, 기입, 소거 시에 전압 인가량 및 전압이 인가되는 게이트는 상이하지만, 이들 모든 경우에 메모리 셀 MC에 전압이 인가된다. 이러한 원리에 기인하는 NAND 플래시 메모리(10)의 대표적인 에러 모드는 판독 프로그램 디스터브 및 데이터 보유 문제를 포함한다. 판독 프로그램 디스터브는, 자신 혹은 인접 페이지를 반복해서 판독하거나, 인접 페이지에 기입한 후에 플로팅 게이트 FG 내의 전자량의 변화에 의해 데이터가 변화하는 에러 모드이다. 이 때문에, 메모리 셀의 상태가 약한 프로그램 상태로 변화하여, 대부분의 경우에 임계 전압이 증가한다. 데이터 유지 문제는, 한번 기입된 페이지가 장시간 방치된 후에 플로팅 게이트로부터 전자가 빠져나가서 데이터가 변화하는 에러 모드이다. 이 때문에, 메모리의 상태가 약한 소거 상태로 변화하여 대부분의 경우에 임계 전압이 감소한다. 즉, 이들 불량 모드에서는 전반적으로 증가하거나 감소하는 경향이 있기 때문에, 데이터의 에러가 동일한 방향으로 발생하기 쉽다.
따라서, 도 21의 제2 데이터 패턴에 도시한 바와 같이 상보적인 데이터로서 데이터를 기록함으로써, 만일 데이터가 1(미기록 상태)이었을 경우 그 반전 데이터는 0(기록 상태)이기 때문에, 판독 프로그램 디스터브의 경우에는 양쪽 데이터가 0 방향으로 이행하고(임계 전압의 증가), 데이터 보유의 경우에는 반대로 1 방향으로 이행한다(임계 전압의 감소). 이 때문에, 적어도 에러가 발생하였는지의 여부는 상보적인 데이터를 저장함으로써 보다 용이하게 판별될 수 있다. 이 경우, 예를 들면, 상보적인 데이터 쌍은 데이터 패턴에서 적어도 8회 반복된다.
도 21의 제3 데이터 패턴에 도시한 바와 같이, 제3 데이터 패턴은 판독 전용 데이터(A, B, ,,, Z) 이외에 에러 정정 부호가 더 이용되는 예이다. NAND 플래시 메모리(10)에서는 랜덤 에러가 비트 단위로 발생하기 때문에, 예를 들면, 랜덤 비트 에러를 정정할 수 있는 BCH 부호, LDPC 부호 등이 에러 정정 부호로서 바람직하다.
제1 내지 제3 데이터 패턴의 각각의 예에서, 각 데이터는 랜덤화될 수 있다. 랜덤화는, 데이터의 치우침을 없애기 위해서, 예를 들면 발생된 랜덤 시퀀스와 기록될 데이터의 배타적 OR를 연산하는 방법에 의해, 데이터가 랜덤하게 기록되게 하는 것이다. 랜덤 시퀀스의 생성 방법으로서는 M 시퀀스 등이 이용될 수 있다.
또한, 제1 내지 제3 데이터 패턴의 모든 예에서, 각 데이터는 이진 상태로 기록된다. 이진 상태는 하나의 소정의 레벨을 기준으로 설정하여 하나의 메모리 셀 내의 임계 전압이 높은 레벨 또는 낮은 레벨에 속하는지의 여부를 판정하여 데이터를 기록하는 방법이며, 메모리 셀 당 1 비트의 정보를 유지할 수 있다. 이러한 기록 방법은 일반적으로 SLC(Single Level Cell) 기록이라고 불린다. 한편, 소정의 복수 레벨을 기준으로 설정하여 하나의 메모리 셀 내의 임계 전압이 어느 레벨에 속하는지를 판정해서 데이터가 기록되는 경우에는, 복수의 비트의 정보가 각각의 메모리 셀에 유지될 수 있다. 예를 들어, 임계 전압이 속하는 4개의 레벨을 마련하여 기록하는 경우, 2 비트의 정보가 각각의 메모리 셀에 의해 유지될 수 있다. 이러한 기록 방법은 일반적으로 MLC(Multi Level Cell) 기록이라고 불린다. MLC 기록은 셀 당 기록 용량이 크기 때문에 보다 높은 기록 밀도를 실현할 수 있지만, 임계 전압의 어긋남에 대한 기록 데이터의 변화가 비교적 용이하게 발생한다. 따라서, ROM 블록(11-3)에 기록된 판독 전용 데이터는, 통상 데이터보다 셀 당 비트 수를 적게 하여 기록하는 것이 바람직하다. 셀 당 비트 수가 2인 4 레벨 기록의 MLC의 경우, ROM 데이터는 SLC 기록되는 것이 바람직하다. 셀 당 비트 수가 4인 8 레벨 기록의 MLC의 경우, ROM 데이터는 셀 당 비트 수가 2인 4 레벨 기록의 MLC, 혹은 SLC 기록되는 것이 바람직하다.
<ECC의 구성예>
다음으로, 에러 정정 부호화(ECC)를 행하는 구성예에 대해서 설명한다.
도 21에서 나타낸 제1 내지 제3 데이터 구조는 엄밀한 의미에서는 상이하지만, 원 데이터에 리던던시(redundancy)가 부여되는 넓은 의미에서는 정정 부호화 ECC로 간주된다. 그 때문에, 각각의 데이터 구조는 데이터와, 데이터에 부여된 정정 코드를 포함하는 것으로 간주된다. 호스트 장치(20), 컨트롤러(19) 및 NAND 플래시 메모리(10)의 적어도 어느 하나가 대응하는 정정 기능을 가질 필요가 있다.
도 22에 나타낸 제1 예는, 호스트 장치(20)가 정정 기능(ECC decode)(90)을 가지는 예이다. 이 경우, 컨트롤러(19) 및 NAND 플래시 메모리(10)는 정정 처리를 행하지 않고 부호가 부여된 데이터(Data)를 호스트 장치(20)에 전달하며, 호스트 장치(20)는 정정 기능(ECC decode)(90)을 통해 정정 처리를 행하여 소정의 데이터(Data)를 생성한다.
도 23에 나타난 제2 예는 컨트롤러(19)가 정정 기능(ECC decode)(90)을 가지는 예이다. 이 경우, NAND 플래시 메모리(10)는 정정 처리를 행하지 않고, 컨트롤러(19)는 정정 처리를 행하고, 정정된 데이터(Data)를 호스트 장치(20)에 전달한다.
도 24에 나타난 제3 예는 NAND 플래시 메모리(10)가 정정 기능(ECC decode)(90)을 가지는 예이다. 이 경우, NAND 플래시 메모리(10)는 정정 처리를 행하고, 정정된 데이터(Data)를 컨트롤러(19)를 통해서 호스트 장치(20)에 전달한다.
도 25에 나타난 제4 예는 컨트롤러(19) 및 호스트 장치(20)의 양쪽 모두가 정정 기능(90-1, 90-2)을 가지는 예이다. 이 경우, 우선 부여된 정정 부호가 이중 구조를 가지고, 내부 부호(Inner code) 또는 외부 부호(Outer code)의 정정 처리를 컨트롤러(19)와 호스트 장치(20)가 각각 실행한다.
그러나, 본 실시 형태는 상기의 경우에 한정되지 않고, NAND 플래시 메모리(10), 컨트롤러(19) 및 호스트 장치(20)는 각각 자신의 정정 기능에 따라서 협조하여 에러를 정정할 수 있다.
<숨은 블록(11-2) 내의 숨은 데이터>
다음으로, 도 26을 이용하여 숨은 블록(11-2) 내의 숨은 데이터의 유지 상태의 예를 설명한다.
도 26에 도시한 바와 같이, 숨은 데이터는 숨은 블록(11-2)의 메모리 공간 내의 페이지에 기록된다. 숨은 데이터가 A 내지 Z의 시퀀스라고 하면, 도 26은 3개의 예를 나타낸다.
도 26에 도시된 제1 데이터 패턴에는, 복수의 숨은 데이터(A, A, ,,, B, B, ,,,) 및 액세스 제어 패턴 B1이 저장된다.
도 26에 도시된 제2 데이터 페턴에는, 복수의 숨은 데이터(A, A, ,,, B, B, ,,,)와, 그 반전 데이터와, 액세스 제어 패턴 B2가 저장된다.
도 26에 도시된 제3 데이터 패턴에는, 복수의 숨은 데이터(A, B, ,,, Z), 에러 정정 부호, 및 액세스 제어 패턴 B3이 저장된다.
각 예의 목적의 하나는 마찬가지로 에러 정정이다. 다른 목적은 숨은 블록(11-2) 혹은 숨은 블록(11-2) 내의 페이지에 대한 판독, 기입, 소거를 제어하는 것이다. 해당 영역은 숨은 데이터를 기록하고, 또한 인증 회로(17)에 의해 NAND 플래시 메모리(10)의 내부에서만 이용되는 정보를 유지하기 때문에, 외부로부터의 판독, 기입, 소거의 모든 동작을 금지할 필요가 있다. 한편, NAND 플래시 메모리(10)의 제조 초기 단계에서는, 해당 영역은 미기록 상태이고, 제조의 한 단계에서 숨은 데이터가 기록될 필요가 있다. 또한, 초기 상태의 메모리 셀의 데이터 보유 성능은 NAND 플래시 메모리(10)의 특성으로서 불충분할 수 있기 때문에, 해당 메모리 셀이 데이터를 사양대로 유지가능한지의 여부를 검사하기 위해서, 메모리 셀이 판독, 기입, 소거의 동작을 행하게 할 필요가 있다.
따라서, 해당 영역(11-2)에 대해서 제조 단계에서 판독, 기입, 소거가 행해질 수 있지만, 제조 완료 후 출하 시에 해당 영역에 대해서 판독, 기입, 소거가 행해지는 것을 금지할 필요가 있다. 이러한 상태 변경을 야기하기 위한 정보로서, 해당 영역(11-2)에 액세스 제어 패턴 B1, B2, B3을 기록한다.
액세스 제어 패턴 B1, B2, B3은 페이지마다 기록되어도 되고, 블록의 선두 페이지에만 기록되어도 된다. 페이지 내의 액세스 제어 패턴 B1, B2, B3의 기록 위치는 일반 데이터 영역이어도 되고, 리던던트 영역이어도 된다. 리던던트 영역은, 예를 들면, 컨트롤러 등에 의해 정정 부호의 부여에 이용되는 영역, NAND 플래시 메모리(10)에 의해 각각의 페이지에 대한 내부 상태를 나타내는 정보를 기록하는 데에 이용되는 영역 등이다.
숨은 데이터 및 액세스 제어 패턴 B1, B2, B3을 ROM 데이터처럼 이진(SLC) 모드로 기록하는 것 또한 바람직하다.
다음으로, 도 27을 이용하여 액세스 제어 패턴의 구성예를 나타낸다.
우선, 액세스 제어 패턴은 에러에 의한 손실을 막기 위해서 복수의 비트로 구성된다.
제1 예로서의 액세스 제어 패턴 B1은, 복수의 제어 플래그 비트 A 내지 Z를 마련하고, 그 각각을 소정의 패턴으로서 설정한다. NAND 플래시 메모리(10)는, 해당 영역에 대한 판독, 기입, 소거 등의 액세스 요구를 호스트 장치(20)로부터 수신한 경우, 해당 영역(11-2)의 액세스 제어 패턴 B1을 소정 패턴에 대해 확인하고, 양자의 일치율이 소정의 비율 이상인 경우에 액세스를 금지한다.
제2 예로서의 액세스 제어 패턴 B2는, 제어 플래그를 반복해서 기록하는 방법에 따른다. 이것은 소정 패턴의 에러의 확률을 감소시키는 데에 유효하다.
제3 예로서의 액세스 제어 패턴 B3은, 각 제어 플래그와 각 제어 플래그의 반전 데이터를 기록하는 방법에 따른다. 상술한 바와 같이, 본 방법도 에러의 확률을 감소시키는 데에 유효하다.
<액세스 제어 패턴의 이용예>
다음으로, 액세스 제어 패턴의 검지 방법 및 검지 결과의 이용 방법을 설명한다.
도 28에 도시한 바와 같이, 메모리 셀 어레이(11) 내의 숨은 영역(11-2)으로부터 판독된 액세스 패턴은 로직 제어 회로(85) 내의 패턴 검지 회로(91)에 입력된다.
패턴 검지 회로(91)는 입력되는 액세스 제어 패턴에 대하여 패턴 인식 처리를 행하고, 일치율이 소정 비율 이상인지의 여부를 판정하여 액세스를 제어한다. 일치율은, NAND 플래시 메모리(10)의 메모리 셀 어레이에서의 에러 확률과 액세스 제어 패턴의 데이터량으로부터 계산되며, 예를 들면, 에러 검출 확률이 적어도 10-3 이하가 되도록 일치율을 설정하는 것이 바람직하다. 패턴 검지 회로(91)는 검지 결과에 기초하여 데이터 판독, 데이터 기입, 데이터 소거를 제어하기 위한 인에이블 신호를 시퀀스 제어 회로(88)에 입력한다.
시퀀스 제어 회로(88)는 상기 검지 결과의 인에이블 신호에 따라, 데이터 판독, 데이터 기입, 데이터 소거를 제어한다.
<테스트 플로우>
다음으로, 도 29에 따라, 상기 액세스 제어 패턴(예를 들면, B1 내지 B3)을 이용한 NAND 플래시 메모리(10)의 제조 공정의 검사 플로우를 설명한다.
(단계 S71, S72)
제조 공정에서, 우선, 액세스 제어 패턴에 해당하지 않는 데이터를 숨은 영역(11-2)에 기록하고 테스트한다. 이 단계에서는, 숨은 영역(11-2)에의 액세스는 허가된다.
단, 데이터 판독, 데이터 기입, 데이터 소거의 모든 액세스를 허가할지, 데이터 기입 및 데이터 소거를 허가할지 등에 따라 영역(11-2)에 상이한 보안 레벨이 설정될 것이다. 영역(11-2)에 높은 보안 레벨이 필요할 경우, 만일 액세스 제어 패턴에 의해 모든 액세스를 금지하더라도, 액세스 제어 패턴의 데이터가 열화함으로써 잘못된 액세스 허가를 할 가능성이 있다. 이 경우, 숨은 데이터가 판독될 수 있기 때문에, 단계 S71의 테스트 공정에서도, 데이터 판독을 금지할 수 있을 것이고, 즉 NAND 플래시 메모리(10)의 하드 와이어드 레벨에서 영역(11-2)에 대해 처음부터 판독을 허가하지 않을 수도 있다.
또는, 액세스 제어 패턴의 데이터 열화에 대한 내성이 충분할 경우, 예를 들면, 액세스 제어 패턴이 복수 회 반복되어 기록되거나, 강고한 에러 정정 부호가 부여된 경우에는, 테스트의 편리성을 확보하기 위해서, 데이터 판독을 포함하는 제어를 액세스 제어 패턴에 의해 행하여도 된다. 이 경우, 전술한 에러 검출 확률은 더욱 낮아, 예를 들면, 10-5 이하인 것이 바람직하다.
(단계 S73)
계속해서, 단계 S72에서 소정의 테스트가 완료한 후, 숨은 영역(11-2)에 숨은 데이터 및 액세스 제어 패턴(B1 내지 B3 등)이 기입된다.
(단계 S74)
계속해서, 상기 데이터가 기입된 상태로, NAND 플래시 메모리(10)가 출하된다.
<데이터 소거 플로우>
다음으로, 도 30에 따라, NAND 플래시 메모리(10)의 내부의 데이터 소거 동작을 설명한다.
(단계 S76)
우선, 호스트 장치(20)에 의해 소거 동작의 동작 명령이 제기되면, NAND 플래시 메모리(10)는 해당 명령에서의 선택 블록 어드레스가 특정 블록인지의 여부를 판정한다.
(단계 S77)
계속해서, 선택 블록 어드레스가 특정 블록이 아닐 경우(No), NAND 플래시 메모리(10)는 통상의 소거 시퀀스를 행한다.
(단계 S78)
한편, 선택 블록 어드레스가 특정 블록인 경우(Yes), NAND 플래시 메모리(10)는 숨은 영역(11-2)으로부터 액세스 제어 정보(B1 내지 B3 등)를 판독한다.
(단계 S79)
계속해서, NAND 플래시 메모리(10)는 액세스 제어 정보(B1 내지 B3 등)의 패턴을 검지하여, 패턴 일치율이 소정값 이상인지의 여부를 판정한다.
(단계 S80)
계속해서, 패턴 일치율이 소정값 이하일 경우(Yes), NAND 플래시 메모리(10)는 통상의 소거 시퀀스를 행한다.
(단계 S81)
계속해서, 패턴 일치율이 소정값 이상일 경우(No), NAND 플래시 메모리(10)는 소거 시퀀스를 빠져나와 데이터 소거 플로우를 종료한다(End).
본 실시 형태에서는, 데이터 소거를 일례로 들었지만, 본 실시 형태는 데이터 판독, 데이터 기입에도 마찬가지로 적용가능하다.
<유리한 효과>
제5 실시 형태에 따른 인증 장치, 피인증 장치 및 인증 방법에 따르면, 적어도 상기와 마찬가지의 유리한 효과 (1) 내지 (5)를 얻을 수 있다.
또한, 본 실시 형태의 구성 및 방법을 적용함으로써, 신뢰성을 향상시킬 수 있는 점에서 유리하다.
[제6 실시 형태(데이터 캐시의 인증 처리에의 이용의 일례)]
제6 실시 형태는, 데이터 캐시의 인증 처리에의 이용의 일례에 관한 것이다. 이 설명에서, 상기 실시 형태와 중복하는 부분의 설명은 생략한다.
<데이터 캐시, 센스 증폭기 등의 구성예>
도 31을 이용하여 제6 실시 형태에 따른 데이터 캐시, 센스 증폭기 등의 구성예에 대해서 설명한다.
도 31에 도시한 바와 같이, 상기 실시 형태에 따른 인증 처리의 데이터 캐시(12)가 하나의 구성 요소로서 도시된다. NAND 플래시 메모리(10)는, 메모리 셀 어레이(11)로부터 판독된 페이지 데이터를 일시적으로 저장하거나, 외부로부터 기록 데이터로서 수신된 기입 페이지 데이터를 일시적으로 저장하는 휘발성 데이터 캐시(12)를 포함한다. 본 실시 형태의 데이터 캐시(12)는 페이지 버퍼, 데이터 버퍼 등으로도 불리며, 통상 페이지 크기 이상의 영역을 가진다. 또한, 페이지 데이터의 판독이나 기입 처리의 고속화 및 랜덤 페이지 액세스를 실현하기 위해서, 데이터 캐시는 페이지 크기의 복수 배의 영역을 종종 가진다.
데이터 캐시(12)는 복수의 데이터 캐시 A, B, C를 포함한다. 각 데이터 캐시는 메모리 셀 어레이(11)로부터의 판독에 이용되는 센스 증폭기(SA)와 데이터선에 접속된다.
센스 증폭기(SA)는 (도시하지 않은) 비트선을 통해서 메모리 셀 어레이(11)에 전기적으로 접속된다.
데이터 캐시 중의 래치 회로 DC_A는, 직접 데이터 선과의 데이터의 교환이 가능한 데이터 캐시이다. 데이터 선을 통해 IO가 접속됨으로써, DC_A를 통해 데이터 캐시(12) 내의 데이터가 NAND 플래시 메모리(10)로부터 출력될 수 있고, NAND 플래시 메모리(10)의 외부의 데이터가 데이터 캐시 내에 로드될 수 있다.
또한, 데이터 캐시(12)에 접속되어, 데이터 캐시(12)와의 사이의 연산을 행하기 위한 연산기가 포함된다. 연산기는 상기 실시 형태에서 인증 처리에 이용되고, 데이터 생성기(13, 14) 및 일방향성 회로(15)를 포함하는 인증 회로(17)에 대응한다.
또한, 일시적으로 데이터를 저장하기 위한 내부 레지스터(92)가 포함된다.
NAND 플래시 메모리(10)에는 메모리 셀 어레이(11)로부터의 판독 커맨드 외에, 데이터 캐시(12)에 메모리 셀 어레이(11)로부터 판독된 데이터를 판독하기 위한, 레지스터 리드라고 불리는 커맨드가 데이터 판독을 위해 이용가능하다. 구체적으로, 데이터 판독 커맨드는 2 종류의 커맨드를 포함하는데, 그 커맨드 중 하나는 NAND 플래시 메모리가 메모리 셀 어레이로부터 데이터 캐시(12)로 데이터를 판독할 것을 명령하고, 다른 커맨드는 NAND 플래시 메모리가 데이터 캐시(12)로부터 외부로 데이터를 판독할 것을 명령하며, "레지스터 리드"라고 불린다.
이러한 인증 방법에서, NAND 플래시 메모리(10) 내의 숨은 블록(11-2)은 숨은 블록(11-2)에 기록된 숨은 정보(NKey, SecretID 등)가 NAND 칩(10)의 외부로부터 액세스되어 판독되는 것을 허용하지 않을 수도 있을 것이다. 한편, NAND 플래시 메모리(10)가 인증 처리를 행하는 경우에는, 숨은 블록(11-2)에 기록된 숨은 정보(NKey, SecretID 등)를 내부적으로 판독하여, 이 숨은 정보를 인증 처리에 이용할 수도 있을 것이다. 즉, 메모리 셀 어레이(11)로부터 데이터 캐시(12)로 숨은 정보(NKey, SecretID 등)가 판독되도록 허용할 필요가 있는 한편, 데이터 캐시(12)로부터 NAND 플래시 메모리(10)의 외부로의 데이터 출력을 금지할 필요가 있다. 이것은 레지스터 리드를 무효화하는 것에 대응한다.
따라서, 숨은 블록(11-2)이 NAND 플래시 메모리(10)의 외부로부터 액세스되었을 때의 데이터 판독 동작은 통상의 판독 동작과는 다르게 된다. 보다 구체적으로는, 숨은 블록(11-2)이 액세스되었을 경우, 메모리 셀 어레이(11)로부터 감지된 데이터를 데이터 캐시 DC_A 이외의 데이터 캐시 DC_B, DC_C에 로크(lock)되게 하여 데이터가 외부로 출력될 수 없도록 하여, 레지스터 리드 커맨드가 작용하지 않도록 무효화한다. 한편, 액세스된 블록이 숨은 블록(11-2)이 아닐 경우, 통상대로 데이터 캐시 DC_A를 이용하여 데이터를 판독한다.
이렇게, 상기 구성에 따르면, 복수의 데이터 캐시 DC_A 내지 DC_C를 마련하고, 외부로부터의 이용자에 의해 액세스될 수 없는 데이터 캐시 DC_B, DC_C를 이용하여 인증 처리를 실행한다. 그 때문에, 상기 인증 처리에 숨은 정보(NKey, SecretID 등)를 이용할 때에, 키 정보(NKey) 등의 숨은 정보가 외부로부터 불법적으로 판독되는 것이 방지된다는 점에서 유리하다.
<인증 처리에서의 NAND 내부 연산 플로우의 제1 예>
다음으로, 도 32에 따라, 인증 처리의 과정에서 호스트 장치(20)에 대하여 숨은 블록(11-2)에 유지된 정보를 직접적으로, 또는 간접적으로 출력하지 않는 플로우를 나타낸다.
(단계 S82)
우선, 인증 처리에서, 호스트 장치(20)와 같은 NAND 플래시 메모리(10)의 외부로부터 데이터가 입력된다고 가정한다. 이 입력 데이터는, 예를 들면, 난수 RN이나 호스트 상수 HCj이며, 이 데이터는 데이터 캐시 DC_A에 로드된다.
(단계 S83)
계속해서, 호스트 장치(20)로부터 숨은 블록(11-2)과 같은 특별 블록에 액세스하는 간접적 판독 요구가 행하여진다. 이것은, 인증에서의 인증 정보의 계산 요구에 대응한다.
이러한 요구에 응답하여, 메모리 셀 어레이(11)로부터 판독된 기밀 페이지의 데이터가 판독된다.
(단계 S84)
계속해서, 판독된 기밀 페이지의 데이터는 데이터 캐시 DC_B에 저장된다.
(단계 S85)
계속해서, 데이터 캐시 DC_A와 데이터 캐시 DC_B에 저장된 데이터 간에 상기 실시 형태에서 설명한 인증 처리의 연산을 연산기(인증 회로(17))를 이용해서 행한다.
(단계 S86)
계속해서, 연산의 결과는 데이터 캐시 DC_C에 저장된다.
(단계 S87)
일련의 시퀀스를 완료하여 칩이 대기되었을 때에, 기밀 데이터가 데이터 캐시에 남아있으면, 이 기밀 데이터가 외부로부터 판독될 가능성이 있다. 이러한 가능성을 방지하기 위해, 시퀀스가 완료되기 전에 모든 데이터 캐시 DC_A 내지 DC_C의 정보를 리셋할 필요가 있다. 한편, 호스트 장치(20)는 데이터 캐시 DC_A 내지 DC_C가 리셋된 후에 상기 연산의 결과를 얻을 필요가 있다.
따라서, 우선, 데이터 캐시 DC_C에 유지된 연산의 결과를 내부 레지스터(92)에 카피한다.
(단계 S88)
계속해서, 모든 데이터 캐시 DC_A 내지 DC_C의 데이터를 리셋한다(즉, 데이터가 삭제된다).
(단계 S89)
계속해서, 내부 레지스터(92)에 저장된 데이터를 데이터 캐시 DC_A로 다시 가져온다. 여기까지의 동작이 종료하면, NAND 플래시 메모리(10)는 이 시퀀스를 종료하여 대기 상태로 된다. 이때, 데이터 캐시 DC_A에 연산의 결과가 저장된다.
(단계 S90)
계속해서, 호스트 장치(20)는 레지스터 리드 커맨드에 의해 데이터 캐시 DC_A에 저장된 데이터를 얻을 수 있다.
<인증 처리에서의 NAND 내부 연산 플로우의 제2 예>
다음으로, 도 33에 따라, NAND 플래시 메모리(10) 내부에 난수 생성기(24n)를 포함하는 실시 형태의 NAND 내부 연산 플로우에 대해서 설명한다. 도 33은, NAND 플래시 메모리(10) 내부의 난수 발생기(24n)에 의해 생성된 난수(RNn)가 이용된다는 점에서 도 32와는 상이하다.
(단계 S91)
우선, 인증 처리에서, 호스트 장치(20)로부터 NAND 플래시 메모리(10)에 대하여 난수 판독 요구가 제기되면, NAND 플래시 메모리(10)는 난수 생성기가 난수를 생성하게 하고, 생성된 난수가 데이터 캐시 DC_A에 로드된다.
(단계 S92)
계속해서, 호스트 장치(20)는 레지스터 리드 커맨드에 의해 데이터 캐시 DC_A 내의 난수를 판독한다.
(단계 S93)
계속해서, 인증 처리에서, 호스트 장치(20)로부터 NAND 플래시 메모리(10)로, 예를 들면 호스트 상수(HCj) 등의 데이터가 입력된다. 상기 데이터는 데이터 캐시 DC_A에 로드된다.
또한, 호스트 장치(20)의 연산 동작에 의해 얻어진 인증 정보가 호스트 장치(20)로부터 NAND 플래시 메모리(10)로 입력된다. 이 데이터는, 예를 들면 Oneway-ID이며, 이 데이터는 데이터 캐시 DC_A에 로드된다.
(단계 S94)
계속해서, 호스트 장치(20)로부터 숨은 블록(11-2)에 액세스하여 간접적 판독 요구가 행해진다. 이것은 인증에서의 인증 정보의 계산 요구에 대응한다.
그런 다음, 메모리 셀 어레이(11)로부터 기밀 페이지가 판독된다.
(단계 S95)
계속해서, 판독 결과는 데이터 캐시 DC_B에 저장된다.
(단계 S96)
계속해서, 데이터 캐시 DC_A와 데이터 캐시 DC_B에 저장된 데이터 간에 상기 실시 형태에서 설명한 인증 처리에서의 연산을 연산기(인증 회로(17))를 이용해서 행한다.
(단계 S97)
계속해서, 상기 연산의 결과는 데이터 캐시 DC_B에 저장된다.
(단계 S98)
계속해서, 데이터 캐시 DC_A에 유지된 호스트의 연산 결과와 데이터 캐시 DC_B에 유지된 NAND의 연산 결과를 검증한다.
(단계 S99)
계속해서, 상기 단계 S98의 검증에서 검증 결과의 일치가 확인되었을 경우, 제어 파라미터(890)를 갱신한다.
(단계 S100)
계속해서, NAND 플래시 메모리(10)는 모든 데이터 캐시 DC_A 내지 DC_C의 정보를 리셋한다. 여기까지의 동작이 종료하면, NAND 플래시 메모리(10)는 이 시퀀스를 빠져나가 대기 상태로 된다.
(단계 S101)
계속해서, 호스트 장치(20)는 검증 결과를 확인하는 커맨드를 이용하여 NAND 칩(10)으로부터 판독된 검증 결과를 얻는다.
<숨은 정보의 검사 방법>
다음으로, 숨은 정보의 검사 방법에 대해서 설명한다.
·검사 플로우
도 34에 따라, 공장에서 실리콘 칩이 완성되고 나서, NAND 플래시 메모리(10)를 출하할 때까지의 과정에서의 인증 방법에 관계되는 공정을 나타낸다.
도 34에 도시한 바와 같이, 제조 공정, 테스트, 숨은 데이터 기입, 출하의 순서대로 공정이 진행된다.
(단계 S71, S72)
우선, 실리콘 칩의 제조 공정이 종료하면, 소정의 검사 테스트를 행하여 적합한 칩(10)을 웨이퍼로부터 선별한다.
(단계 S73)
계속해서, 상기 단계 S72의 통상적인 테스트 공정이 종료한 후, 숨은 데이터의 기입 공정이 행해지고, 숨은 데이터가 올바르게 기입되었는지의 여부에 대한 검사가 행해질 필요가 있다.
한편, 숨은 블록(11-2)으로부터 숨은 데이터를 직접 읽어낼 수는 없다. 이것은, 해당 판독 기능은 보안 홀이 될 우려가 있기 때문이다.
(단계 S74)
계속해서, 올바르게 숨은 데이터가 기입된 NAND 플래시 메모리(10)가 출하된다.
·숨은 정보의 간접적 판독 검사 플로우
단계 S73에서, 숨은 데이터는 보안 홀이 될 가능성이 있다는 관점으로부터 숨은 블록(11-2)으로부터 직접 판독될 수 없다.
따라서, 도 35에 따라, 직접 데이터 판독 기능을 제공하지 않고 기록된 데이터의 확인을 하는 플로우를 설명한다.
(단계 S111)
우선, 메모리 셀 어레이(11)의 숨은 블록(11-2)으로부터 숨은 정보(Nkey 등)가 판독된다.
(단계 S112)
계속해서, 판독된 숨은 정보(Nkey 등)의 판독 결과를 데이터 캐시 DC_B에 저장한다.
(단계 S113)
계속해서, NAND 플래시 메모리(10)의 외부로부터 동일한 숨은 정보(Nkey 등)를 데이터 캐시 DC_A에 기억시킨다.
(단계 S114)
계속해서, 연산기(인증 회로(17))를 이용하여, 데이터 캐시 DC_A의 데이터와 데이터 캐시 DC_B의 데이터의 배타적 OR를 연산한다.
(단계 S115)
계속해서, 배타적 OR의 결과를 데이터 캐시 DC_C에 저장한다.
(단계 S116)
계속해서, 데이터 캐시 DC_C의 데이터를 검지한다.
(단계 S117)
이때, 데이터 캐시 DC_A의 데이터와 데이터 캐시 DC_B의 데이터가 일치하면(Yes), 테스트를 통과한다(OK). 한편, 양 데이터가 일치하지 않으면(No), 테스트는 실패이다.
보다 구체적으로는, 데이터 캐시 DC_C는 배타적 OR의 결과를 포함하기 때문에, 데이터 캐시 DC_C의 데이터(모든 비트)가 모두 "0"인 경우(Yes), 테스트를 통과한다(OK). 한편, 데이터 캐시 DC_C 내의 데이터가 "1"인 경우(No), 테스트는 실패이다.
우선, 데이터 캐시 DC_C의 데이터가 모두 "0"인지의 여부를 검지한다. 모든 비트가 "0"인 경우(Yes), 테스트를 통과한다. 그렇지 않은 경우(No), 테스트는 단계 S118로 진행한다.
(단계 S118)
계속해서, 모든 비트가 "0"이 아닐 경우(No), "1"의 수를 계수한다. "1"의 수가 규정의 수 이하일 경우(Yes), 다수결 에러 정정이나 정정 부호에 의한 에러가 정정가능하다고 판단되므로 테스트를 통과한다(OK). 한편, "1"의 수가 규정의 수 이상인 경우(No), 테스트는 실패이다(NG).
상기 실시 형태에 기재한 특정 블록에의 액세스 제어에 대한 인증을 이용하는 방법을 이용하여, 숨은 블록(11-2)에 기록된 숨은 정보 대신에, NAND 플래시 메모리(10)에 하드 와이어된 제2 숨은 정보를 별도로 유지하여 제2 숨은 정보에 근거하여 숨은 블록(11-2)에 대한 액세스를 제어하는 방법 또한 가능하다. 이 경우, 데이터 판독뿐만 아니라, 데이터 기입 및 데이터 소거도 제2 숨은 정보에 근거하는 인증에 의해 제어될 수 있다.
<유리한 효과>
제6 실시 형태에 따른 인증 장치, 피인증 장치 및 인증 방법에 따르면, 적어도 상기한 것과 마찬가지의 유리한 효과 (1) 내지 (5)를 얻을 수 있다.
또한, 본 실시 형태에서는, 숨은 블록(11-2)이 액세스된 경우, 메모리 셀 어레이(11)로부터 감지된 데이터를 데이터 캐시 DC_A가 아닌 다른 데이터 캐시 DC_B, DC_C에 로크되게 하여 데이터가 출력되는 것을 막아서, 레지스터 리드 커맨드가 작동하지 않도록 무효화한다. 한편, 액세스된 블록이 숨은 블록(11-2)이 아닐 경우, 통상처럼 데이터 캐시 DC_A를 이용하여 데이터 판독을 행한다.
이렇게, 상기 구성에 따르면, 복수의 데이터 캐시 DC_A 내지 DC_C를 마련하고, 외부로부터의 이용자에 의해 액세스될 수 없는 데이터 캐시 DC_B, DC_C를 이용하여 상기 인증 처리를 실행한다. 따라서, 인증 처리에 숨은 정보(NKey, SecretID 등)를 이용할 때에, 키 정보(NKey) 등의 숨은 정보가 외부로부터 불법적으로 판독되는 것이 방지될 수 있다는 점에서 유리하다.
또한, 상기 단계 S88, S100에 도시한 바와 같이, busy 상태로부터 ready 상태에 돌아가기 전에, 데이터 캐시 DC_A 내지 DC_C 내의 키 정보 등의 숨은 정보를 모두 소거한다. 따라서, 안전성을 확보할 수 있다.
[제7 실시 형태(커맨드 매핑의 예)]
제7 실시 형태는 커맨드 매핑의 일례에 관한 것이다. 이 설명에서, 상기 실시 형태와 중복하는 부분의 설명은 생략한다.
<판독/기입 커맨드와 양립가능한 커맨드 매핑의 예>
NAND 플래시 메모리(10)는 판독용 커맨드로서, 예를 들면, "00h"-"어드레스"-"30h"의 커맨드 시퀀스에 의해 판독될 블록 및 페이지 어드레스를 특정한다. 어드레스 부분은 종종 블록 어드레스, 페이지 어드레스, 또는 특정된 페이지의 바이트 위치를 나타낸다. 컬럼 어드레스 부분의 입력 데이터는 무시되거나, 페이지 판독 후의 바이트 포인터의 설정에 이용되어 해당 바이트 포인트에 대응하는 바이트 위치로부터 위치된 데이터를 판독할 수도 있다. 커맨드(30h)의 입력 후에 NAND 플래시 메모리(10)는 판독을 위한 busy 상태로 되고, 판독 완료 후에 ready 상태로 천이한다. ready 상태로의 천이 후에, 데이터 출력(Dout)이 가능해지고, 신호 RE 또는 DQS를 공급함으로써 데이터를 판독할 수 있다. 판독된 페이지 내에서 바이트 위치를 변경하기 위해, "05h"-"어드레스"-"E0h"의 커맨드 시퀀스를 이용하여 판독될 바이트 위치에 대응하는 컬럼 어드레스를 설정한다.
"80h"-"어드레스"-"입력 데이터"-"10h"의 커맨드 시퀀스가 데이터 기입(기록)에 이용되어 기입될 블록 및 페이지를 특정한다. 어드레스 부분은 종종 블록 어드레스, 페이지 어드레스, 또는 특정 페이지 내의 바이트 위치를 나타낸다. 컬럼 어드레스 부분의 입력 데이터는 무시될 수도 있으며, 페이지 기입용 데이터 입력을 위한 바이트 포인터를 설정하는 데에 이용되어 해당 바이트 포인트에 대응하는 바이트 위치로부터 위치된 기입 데이터를 입력할 수도 있다. 커맨드(10h)가 입력된 후, NAND 플래시 메모리(10)는 기입을 위한 busy 상태로 되고, 기입 완료 후에 ready 상태로 천이한다.
이상은 NAND 플래시 메모리(10)에 의해 널리 이용되는 커맨드 시스템이다. 상기 실시 형태에 따른 인증 기능을 실시하는 경우에, 커맨드 시퀀스를 될 수 있는한 공통화시키는 것이 회로의 패키징 면적을 최소화하는 관점에서 바람직하다. 그러나, 인증 기능은 보안을 요하는 분야에서 이용되므로, 기능 이용자를 한정하는 것이 더 바람직하다고 하는 관점도 있다.
따라서, 도 36의 (a) 및 (b)는 상기 관점을 고려하여 NAND 플래시 메모리(10)의 상기 판독 및 기입 커맨드와 양립가능한 커맨드 매핑의 예를 나타낸다.
상기 커맨드 매핑의 예는, 보안성 접두사의 입력 커맨드를 해당 커맨드 앞에 부여한다는 점에서 전술한 일반적인 명령 시퀀스와는 다르다. 하나의 바이트에 의해서, 그리고, 복수의 바이트에 의해서 구성되는 보안성 접두사가 고려될 수 있다. 커맨드 보안성 접두사는 해당 인증 기능을 필요로 하는 이용자에게만 개시된다. 이용자 관리의 관점으로부터, 커맨드 보안성 접두사를 복수의 바이트로 구성되는 것이 바람직하다.
도 36의 (a)에 도시된 바와 같이, 데이터 판독 커맨드 시퀀스와 같이, 판독될 블록 어드레스 및 페이지 어드레스는 IO 단자에 "커맨드 보안성 접두사"-"커맨드 00h"-"어드레스 ADD"-"커맨드 30h"를 순차적으로 입력하여 특정된다. 어드레스로 설정된 값은 이용자 관리용의 특별한 값으로 될 수 있으며, 혹은 내부적으로 무시되는 값으로 될 수도 있다.
계속해서, 커맨드(30h)의 입력 후에, NAND 플래시 메모리(10)는 판독을 위한 busy 상태로 되고, 판독 완료 후에 ready 상태로 천이한다. ready 상태로 천이한 후에, 데이터 출력(Dout)이 가능해지고, 신호 RE, DQS 등을 공급함으로써, 인덱스 정보 i, v, 고유한 암호화된 비밀 식별 정보(E-SecretID), 공통으로 부여되는 키 관리 정보(FKB) 등의 데이터가 판독될 수 있다.
도 36의 (b)에 나타난 바와 같이, 데이터 기입 커맨드 시퀀스와 같이, IO 단자에 "커맨드 보안성 접두사"-"커맨드 80h"-"어드레스 ADD"-"데이터 Din(32B)"-"커맨드 10h"를 순차적으로 입력함으로써 대상 데이터가 입력된다. 또한, 어드레스로 설정된 값은 이용자 관리용의 특별한 값으로 될 수도 있으며, 혹은, 내부적으로 무시되는 값으로 될 수도 있다. 본 시퀀스는 기입 시퀀스와 공통 부분이 많지만, 실제로는 셀 어레이에의 데이터 기입은 필요하지 않으며, 본 시퀀스는 인증 처리의 계산을 위해 NAND 플래시 메모리(10)에 의해 요구되는 데이터의 입력에 이용된다. 인증 처리의 계산에 필요한 데이터의 예는 호스트 장치(20)의 고유 정보 HCi 및 난수를 포함한다.
계속해서, NAND 플래시 메모리(10)는 인증 처리의 계산이 종료할 때까지 busy 상태이며, 계산이 종료하고, 데이터 캐시 DC_A 내지 DC_C 내의 보안 데이터가 모두 클리어된 후에, ready 상태로 천이한다.
도 36의 (b)에 나타난 바와 같이, ready 상태로 천이한 후, 호스트 장치(20)는 IO단자에 "커맨드 05h"-"어드레스 ADD"-"커맨드 E0h"를 순차적으로 입력하고, 인증 처리의 계산 결과가 유지된 컬럼 어드레스를 지정함으로써 결과를 취득할 수 있다. 인증 처리의 계산 결과의 예로서 Oneway-ID를 들 수 있다.
<셋/겟 피쳐 커맨드와 양립가능한 커맨드 매핑의 예>
다음으로, 도 37의 (a) 및 (b)를 이용하여, 본 인증 기능을 적용한 NAND 플래시 메모리(10)의 커맨드 구성의 다른 예를 나타낸다.
NAND 플래시 메모리(10)는 해당 메모리(10)의 기능을 유효화하기 위한 "셋 피쳐"라고 불리는 커맨드와, 해당 메모리(10)의 기능의 유효화/무효화 상태를 판독하기 위한 "겟 피쳐"라고 불리는 커맨드를 가진다. 이들 커맨드는, 예를 들면, 고속 데이터 전송용의 상보 신호인 /RE, /WE, /DQS의 입력을 유효화하는 데에 이용된다.
"셋 피쳐"의 기능은 "EEh"-"어드레스"-"데이터 입력"의 커맨드 시퀀스를 입력하여 설정된다. "어드레스"에는 기능 번호가 설정되고, "데이터 입력"에는 해당 기능 번호에서 나타나는 기능의 파라미터가 입력된다. 그 후, 기능 유효화를 위한 busy 기간이 오고, 기능을 유효화한 뒤, ready 상태로의 천이가 발생한다.
"겟 피쳐"는 "EFh"-"어드레스"-"데이터 출력"의 커맨드 시퀀스를 입력하여 기능의 유효화/무효화 상태를 판독한다. "어드레스"에는 기능 번호가 설정되고, "데이터 출력"에는 해당 기능 번호에 의해 나타나는 기능의 파라미터가 출력된다. 어드레스와 데이터 출력의 사이에는 설정 파라미터를 내부적으로 판독하기 위한 busy 기간이 존재한다.
본 실시 형태는 이들 셋 피쳐 및 겟 피쳐를 유용한 커맨드 시퀀스의 예이다.
도 37의 (a)에 도시한 바와 같이, 커맨드 시퀀스는 상기와 마찬가지이지만, 지정되는 "어드레스"가 상이하다. "어드레스"는 하나의 바이트 및 복수의 바이트일 수 있다. "어드레스"는 해당 인증 기능을 필요로 하는 이용자에게만 개시된다. 이용자 관리의 관점으로부터, "어드레스"는 복수 바이트로 구성하는 것이 바람직하다. "데이터 출력" 및 "데이터 입력"의 예는, 상기 도 37의 (a) 및 (b)에 도시한 것과 같이, 인덱스 정보 i, v를 포함한다.
도 37의 (b)에 도시한 바와 같이, "EEh"-"어드레스 ADD"-"데이터 Din"의 데이터 입력용 명령 시퀀스는 동시에 인증 처리의 실행을 유발하고, NAND 플래시 메모리(10)는 busy 기간에 인증 처리의 계산을 행한다.
계속해서, 계산이 종료하고, 보안 데이터가 데이터 캐시로부터 클리어된 후에, NAND 플래시 메모리(10)는 ready 상태로 천이한다. ready 상태로 천이한 후, 호스트 장치(20)는 Oneway-ID를 판독할 수 있다.
<유리한 효과>
제7 실시 형태에 따른 인증 장치, 피인증 장치 및 인증 방법에 따르면, 적어도 상기와 마찬가지의 유리한 효과 (1) 내지 (5)를 얻을 수 있다.
또한, 본 실시 형태에서는, 도 36의 (a) 및 (b)에 도시한 바와 같이, NAND 플래시 메모리(10)의 커맨드 시퀀스와의 공통화가 가능한 많이 제공될 수 있다. 그 때문에, 보안을 고려하면서, 회로의 패키징 면적을 최소화할 수 있기 때문에, 상기 실시 형태에 따른 인증 기능을 실시하는 경우에 보다 효과적이다.
또한, 도 37의 (a) 및 (b)에 도시한 바와 같이, 해당 메모리(10)의 기능을 유효화하기 위한 "셋 피쳐"라고 불리는 커맨드와, 해당 메모리(10)의 기능의 유효화/무효화 상태를 판독하기 위한 "겟 피쳐"라고 불리는 커맨드도 필요에 따라서 공통화시켜서 적용할 수 있다.
busy 상태로부터 ready 상태에 되돌아오기 전의 타이밍에서 데이터 캐시 DC_A 내지 DC_C의 모든 데이터를 클리어하는 것은 상기와 마찬가지이다.
[제8 실시 형태(메모리 카드, 콘텐츠 보호, HDD에 대한 응용예)]
제8 실시 형태는 메모리 카드, 콘텐츠 보호, HDD에의 응용예에 관한 것이다. 이 설명에서, 상기 실시 형태와 중복하는 부분의 설명은 생략한다.
메모리 카드에의 응용예
도 38을 이용하여 본 인증 기능을 적용한 NAND 플래시 메모리(10)를 포함하는 메모리 카드의 구성예를 나타낸다.
도 38에 도시한 바와 같이, 메모리 카드(55)에 컨트롤러(19)가 탑재된다. 컨트롤러(19)는 NAND 플래시 메모리(10)의 동작을 제어하는 기능, 호스트 장치(20)와의 인터페이스를 제어하는 기능 등을 포함한다.
NAND 패키지 내에 적층된 복수의 NAND 플래시 메모리 칩(10)(MCP1), (MCP2) 중 하나 이상이 메모리 카드(55)에 포함된다. NAND 패키지 내의 하나 이상의 NAND 플래시 메모리 칩(10)이, 상기 실시 형태 중 하나 이상에 따른 인증 기능 및 피인증 기능을 가질 필요가 있다. 환언하면, NAND 패키지 내의 모든 NAND 플래시 메모리 칩(10)이 상기 실시 형태에 따른 인증 기능 및 피인증 기능을 가지지 않아도 된다. 또한, 메모리 카드(55)에 탑재된 모든 NAND 패키지가 상기 실시 형태 중 하나 이상에 따른 인증 기능 및 피인증 기능을 가지지 않아도 된다. 명확화를 위하여, 본 실시 형태의 NAND 플래시 메모리(10)는 NAND 패키지 또는 NAND 플래시 메모리 칩으로 불릴 것이다.
메모리 카드(55) 내의 컨트롤러(19)는 NAND 패키지내의 NAND 인터페이스를 통하여 상기 실시 형태 중 하나 이상에 따른 인증 기능 및 피인증 기능을 제어하는 기능을 가진다. 컨트롤러(19)의 기능은 복수의 NAND 패키지 중 어느 하나의 인증 기능 및 피인증 기능을 제어하는 기능일 수도 있고, 혹은, 복수의 NAND 패키지 각각의 인증 기능 및 피인증 기능을 제어하는 기능일 수도 있다. 또한, 컨트롤러(19)의 기능은 NAND 패키지 내의 하나의 NAND 플래시 메모리 칩(10)의 인증 기능 및 피인증 기능을 제어하는 기능일 수도 있고, NAND 패키지 내의 각각의 NAND 플래시 메모리 칩(10)의 인증 기능 및 피인증 기능을 제어하는 기능일 수도 있다.
·콘텐츠 보호에의 제1 응용예
도 39를 이용하여 상기 인증 기능을 적용한 NAND 플래시 메모리(10)를 포함하는 메모리 카드(55)의 콘텐츠 보호에의 제1 응용예를 나타낸다. 간략화를 위하여, 본 명세서에서 이미 설명한 내용은 아래에서 설명을 생략한다.
메모리 카드(55) 내에는 컨트롤러(19) 및 NAND 패키지(MCP1),(MCP2)가 탑재된다. NAND 패키지(MCP1),(MCP2)는 상기 실시 형태 중 하나 이상에 따른 인증 기능 및 피인증 기능을 가진다.
호스트 장치(20)는 상기 실시 형태 중 하나 이상에 도시된 인증 처리에 의해 NAND 플래시 메모리(10)의 NAND 패키지(MCP1),(MCP2)의 비밀 식별 정보 SecretID의 정당성을 검증한다.
정당성의 검증 후, 호스트 장치(20)는 비밀 식별 정보 SecretID에 기초하여 제2 실시 형태에서 설명한 방법을 이용하여 EMID의 계산 처리를 행한다.
NAND 패키지(MCP2)는 콘텐츠(도 39에서 "콘텐츠"로 표시됨) 기입 시에, EMID와 콘텐츠를 관련짓기 위한 바인딩 데이터(도 39에서 "바인딩 데이터"로 표시됨)를 생성한다. 바인딩 데이터는 콘텐츠를 암호화/해독하기 위한 키에 관한 데이터를 포함하는 것이 바람직하다. 바인딩 데이터는 카드(55)에 탑재된 NAND 패키지(MCP1),(MCP2) 중 하나에 기록된다. 바인딩 데이터가 기록되는 NAND 패키지는 인증 처리에 이용된 비밀 식별 정보 SecretID를 가지는 NAND 패키지(MCP1)일 수도 있고, 다른 NAND 패키지(MCP2)일 수도 있다. 도 39는 후자의 예를 나타내고 있지만, 바인딩 데이터의 구성은 이 예에 한정되지 않는다. 콘텐츠의 기록 위치도 마찬가지로 어느 쪽의 NAND 패키지이어도 된다.
콘텐츠와 EMID 간의 관계가 계산되어 검증되고, 그 관계가 검증된 경우에만 이 콘텐츠가 재생된다. EMID는 SecretID와, EMID 및 콘텐츠를 관련시키는 바인딩 데이터에 의해 얻어진다.
상기 구성에 의해, 콘텐츠(Content)는 SecretID와 관련된다. 따라서, 동일한 SecretID를 가지지 않는 다른 메모리 카드에 콘텐츠나 바인딩 데이터가 불법적으로 카피된 경우에도 콘텐츠의 재생을 무효화하는 효과를 얻을 수 있다는 점에서 유리하다.
·HDD에의 제1 응용예
도 40을 이용하여, 본 인증 기능을 적용한 NAND 플래시 메모리(10)를 이용한 하드디스크 드라이브(HDD)의 제1 구성예를 나타낸다.
도 40에 도시한 바와 같이, HDD 패키지(200)에는 하나 이상의 NAND 패키지(MCP1)가 탑재되고, 하나 이상의 NAND 패키지는 상기 실시 형태 중 하나 이상에 따른 인증 기능 및 피인증 기능을 가진다.
HDD 패키지(200)에는 하나 이상의 HDD(210)가 탑재된다.
또한, NAND 패키지(MCP1)의 제어, HDD(210)의 제어, 호스트 장치와의 인터페이스의 제어를 행하는 브리지 컨트롤러(190)가 탑재된다. 브리지 컨트롤러(190)는 단일 집적 회로 또는 복수의 집적 회로로 구성될 수 있다. 또한, 집적 회로와 펌웨어의 조합에 의해 기능을 실현해도 된다.
NAND 패키지(MCP1) 내의 인증 기능 및 피인증 기능은 브리지 컨트롤러(190)를 통해서 호스트 장치인 HDD(210)에 제공된다.
·HDD에의 제2 응용예
도 41을 이용하여 본 인증 기능을 적용한 NAND 플래시 메모리(10)를 이용한 하드디스크 드라이브(HDD)의 다른 구성예를 나타낸다.
도 41에 도시한 바와 같이, HDD 패키지(200)는 도 38에 의해 전술한 메모리 카드(55)에 접속하기 위한 메모리 카드 소켓(550)을 포함한다.
HDD 패키지(200)에는 하나 이상의 HDD(210)가 탑재된다. 또한, 메모리 카드(55)의 제어, HDD(210)의 제어, 호스트 장치와의 인터페이스의 제어를 행하는 브리지 컨트롤러(190)가 탑재된다. 브리지 컨트롤러(190)는 단일의 집적 회로 또는 복수의 집적 회로에 의해 구성되어도 된다. 집적 회로와 펌웨어의 조합에 의해 기능을 실현해도 된다.
메모리 카드(55) 내의 인증 기능 및 피인증 기능은 브리지 컨트롤러(190)를 통해서 호스트 장치인 HDD(210)에 제공된다.
·콘텐츠 보호에의 제2 응용예
도 42는 본 인증 기능이 적용된 NAND 플래시 메모리(10)를 이용한 하드디스크 드라이브(HDD)의 콘텐츠 보호에의 응용예를 나타낸다. 본 실시 형태는 도 41에 나타낸 HDD 구성을 예로 들고 있지만, 도 40에 나타낸 HDD 구성에도 적용가능하다.
도 42에 도시한 바와 같이, HDD 패키지(200A, 200B) 내에는 브리지 컨트롤러(190A, 190B), 메모리 카드 소켓(550A, 550B), HDD(210A, 210B)가 각각 탑재된다.
메모리 카드(55)는 상기 실시 형태 중 하나 이상에 따른 인증 기능 및 피인증 기능을 포함한다. 호스트 장치(20)는 상기 실시 형태에 나타난 인증 처리에 의해 NAND 플래시 메모리(10)의 SecretID의 정당성을 검증한다. 정당성의 검증 후에, 호스트 장치(20)는 비밀 식별 정보 SecretID에 근거해서 제2 실시 형태에 나타낸 방법을 이용하여 EMID의 계산 처리를 행한다.
콘텐츠(Content) 기입 시에, EMID와 콘텐츠를 관련시키는 바인딩 데이터가 생성된다. 바인딩 데이터에는 콘텐츠를 암호화/해독하기 위한 키에 관한 데이터를 포함하는 것이 바람직하다. 바인딩 데이터는 메모리 카드(55) 및 HDD(210A, 210B) 중 하나에 기록된다. 바인딩 데이터가 HDD(210A, 210B)에 기록되는 예를 나타내고 있지만, 바인딩 데이터의 구성은 이 예에 한정되지 않는다. 콘텐츠의 기록 위치도 마찬가지로 메모리 카드(55) 혹은 HDD(210A, 210B)일 수 있다.
콘텐츠와 EMID 간의 관계가 계산 및 검증되어, 그 관계가 검증된 경우에만 콘텐츠가 재생된다. EMID는 SecretID와, EMID 및 콘텐츠를 관련시키는 바인딩 데이터의 인증 처리에 의해 얻어진다.
본 실시 형태는 카드 소켓(550A)을 통해서 메모리 카드(55) 내의 NAND 플래시 메모리(10)에 포함된 인증 기능 및 피인증 기능을 이용하는 예이지만, 도 40에 나타낸 HDD에 NAND 패키지가 직접 탑재되고 HDD가 NAND 패키지를 직접 제어하는 구성에도 적용가능하다. 이 경우, 메모리 카드가 NAND 패키지로 대체될 수도 있다.
또한, 카드 소켓(550A, 550B)을 가지는 HDD에 적용가능한 응용예로서, 복수의 유사한 HDD 패키지가 존재하는 경우, 양쪽 HDD 패키지에 콘텐츠 및 바인딩 데이터가 카피된 후에 카드를 이동하는 것에 의해서만 임의의 HDD에 기록된 콘텐츠가 재생가능하다. 바인딩 데이터는 HDD 대신 카드에 기록되거나, 혹은 양쪽 모두에 기록될 수도 있다.
본 구성에 의해, 콘텐츠(Content)는 메모리 카드(55) 혹은 NAND 패키지 내의 SecretID와 관련되므로, 동일한 SecretID를 가지지 않는 메모리 카드(55)에 콘텐츠나 바인딩 데이터가 불법적으로 카피되는 경우에도, 콘텐츠의 재생을 무효화하는 효과를 얻을 수 있다.
또한, 도 41에 나타낸 HDD 패키지가 메모리 소켓을 포함하는 예에서는, 메모리 카드를 이동시키는 것만으로 복수의 HDD에 기록된 콘텐츠가 재생될 수 있다. 이것은 메모리 카드에 비교하여 HDD가 큰 케이스를 가지고, 고정된 용도로 설치될 수 있기 때문에 이동성의 관점에서 유리하다.
·콘텐츠 보호에의 제3 응용예
도 43을 이용하여, 본 인증 기능을 적용한 NAND 플래시 메모리(10)를 이용한 하드디스크 드라이브(HDD)의 제3 응용예를 설명한다. 본 실시 형태는 호스트 장치(20)가 메모리 카드 소켓(550)을 포함하고, 외장 HDD(210)를 이용하는 예이다.
도 43에 도시한 바와 같이, HDD 패키지(200) 내에는 브리지 컨트롤러(190) 및 HDD(210)가 탑재된다.
호스트 장치(20)에는 메모리 카드 소켓(550)에 삽입되는 메모리 카드(55)에 포함되는 인증 기능 및 카드 제어 기능이 탑재된다. 메모리 카드(55)에는 상기 실시 형태 중 하나 이상에 따른 인증 기능 및 피인증 기능을 가지는 NAND 패키지가 탑재된다.
상기 구성에서, 호스트 장치(20)는 상기 실시 형태 중 하나 이상에 나타난 인증 처리에 의해 NAND 플래시 메모리(10)의 SecretID의 정당성을 검증한다.
정당성의 검증 후에, 호스트 장치(20)는 비밀 식별 정보 SecretID에 기초하여 제2 실시 형태에 따른 방법을 이용하여, EMID의 계산 처리를 행한다.
콘텐츠(Content)의 기입 시에는, EMID와 콘텐츠를 관련시키는 바인딩 데이터를 생성한다. 바인딩 데이터는 콘텐츠를 암호화/해독하기 위한 키에 관한 데이터를 포함하는 것이 바람직하다. 바인딩 데이터는 메모리 카드(55) 및 HDD(210) 중 하나에 기록된다. 여기에서는, 후자의 예를 나타내고 있지만, 바인딩 데이터의 구성은 이 예에 한정되지 않는다. 콘텐츠의 기록 위치도 마찬가지로 카드(55) 혹은 HDD(210)일 수 있다.
콘텐츠와 EMID의 관계가 계산되고 검증되며, 그 관계가 검증된 경우에만 콘텐츠가 재생된다. EMID는 SecretID와, EMID 및 콘텐츠를 관련시키는 바인딩 데이터의 인증 처리에 의해 얻어진다.
본 실시 형태는 카드 소켓(550)을 통해서 메모리 카드(55) 내의 NAND 플래시 메모리(10)에 포함된 인증 기능 및 피인증 기능을 이용하는 예이지만, NAND 패키지가 호스트 장치(20) 내에 직접 탑재되고, 호스트 장치(20)가 NAND 패키지를 직접 제어하는 구성에도 적용가능하다. 이 경우, 메모리 카드(55)는 NAND 패키지로 대체될 수도 있다.
또한, 카드 소켓(550)을 가지는 호스트 장치(20)에 적용가능한 응용예로서, 복수의 유사한 호스트 장치(20)가 존재하는 경우, 메모리 카드(55)와 HDD 패키지(200)를 다른 호스트 장치(20)에 접속함으로써, 임의의 호스트 장치(20)에 의해 콘텐츠가 재생가능하다. 콘텐츠 및 바인딩 데이터는 HDD(210) 대신에 카드(55)에 기록되거나 양쪽 모두에 기록되어도 된다.
본 구성에 의해, 콘텐츠는 메모리 카드(55) 혹은 NAND 패키지 내의 SecretID와 관련되므로, 동일한 SecretID를 가지지 않는 메모리 카드에 콘텐츠나 바인딩 데이터를 불법적으로 카피한 경우에도, 콘텐츠의 재생을 무효화하는 효과를 얻을 수 있다. 또한, 메모리 카드(55)와 HDD(210)를 이동시킴으로써 복수의 호스트 장치에 의해 콘텐츠가 재생가능하다.
·콘텐츠 보호에의 제4 응용예
도 44를 이용하여, 본 인증 기능을 적용한 NAND 플래시 메모리(10)를 이용한 하드디스크 드라이브(HDD)의 제4 응용예를 설명한다. 본 실시 형태는 호스트 장치(20)가 메모리 카드 소켓(550)을 포함하고, 내장 HDD(210)를 더 이용한 예이다.
도 44에 도시한 바와 같이, HDD 패키지(200) 내에 브리지 컨트롤러(190) 및 HDD(210)가 탑재된다.
호스트 장치(20)에는 메모리 카드 소켓(550)에 삽입되는 메모리 카드(55) 내에 포함된 인증 기능 및 카드 제어 기능이 탑재된다. 메모리 카드(55)에는, 상기 실시 형태 중 하나 이상에 따른 인증 기능 및 피인증 기능을 가지는 NAND 패키지가 탑재된다.
상기 구성에서, 호스트 장치(20)는 상기 실시 형태 중 하나 이상에 나타난 인증 처리에 의해 NAND 플래시 메모리(10)의 SecretID의 정당성을 검증한다.
정당성의 검증 후, 호스트 장치(20)는 SecretID에 기초하여 제2 실시 형태에 따른 방법을 이용하여 EMID의 계산 처리를 행한다.
콘텐츠(Content) 기입 시에, EMID와 콘텐츠를 관련시키는 바인딩 데이터를 생성한다. 바인딩 데이터는 콘텐츠를 암호화/해독하기 위한 키에 관한 데이터를 포함하는 것이 바람직하다. 바인딩 데이터는 메모리 카드(55) 및 HDD(210) 중 어느 하나에 기록된다. 여기에서는 후자의 예를 나타내고 있지만, 바인딩 데이터의 구성은 이 예에 한정되지 않는다. 콘텐츠의 기록 위치도 마찬가지로 카드(55) 혹은 HDD(210)이다.
콘텐츠와 EMID 간의 관계가 계산되고 검증되어, 그 관계가 검증된 경우에만 콘텐츠가 재생된다. EMID는 SecretID와, EMID 및 콘텐츠를 관련시키는 바인딩 데이터의 인증 처리에 의해서 얻어진다.
본 실시 형태는 카드 소켓(550)을 통해서 메모리 카드(55) 내의 NAND 플래시 메모리(10) 내에 포함된 인증 기능 및 피인증 기능을 이용하는 예이지만, NAND 패키지가 호스트 장치(20)에 직접 탑재되고, 호스트 장치(20)가 NAND 패키지를 직접 제어하는 구성에도 적용가능하다. 이 경우, 메모리 카드(55)는 NAND 패키지로 대체될 수 있다.
또한, 카드 소켓(550)을 가지는 호스트 장치(20)에 적용가능한 응용예로서, 복수의 유사한 호스트 장치(20)가 존재하는 경우, 메모리 카드(55)와 HDD 패키지(200)를 다른 호스트 장치(20)에 접속함으로써, 임의의 호스트 장치(20)에 의해 콘텐츠가 재생가능하다. 콘텐츠 및 바인딩 데이터는 HDD(210) 대신에 카드(55)에 기록되거나, 양쪽 모두에 기록되어도 된다.
본 구성에 의해, 콘텐츠는 메모리 카드(55) 혹은 NAND 패키지 내의 SecretID와 관련되기 때문에, 동일한 SecretID를 가지지 않는 메모리 카드에 콘텐츠나 바인딩 데이터가 불법적으로 카피되는 경우에도 콘텐츠의 재생을 무효화하는 효과를 얻을 수 있다. 또한, 메모리 카드(55)와 HDD(210)를 이동시킴으로써 복수의 호스트 장치에 의해 콘텐츠가 재생될 수 있다.
[제2 변형예(데이터 캐시를 이용하는 다른 예)]
제2 변형예는 제6 실시 형태에서 설명한 데이터 캐시의 인증 처리에의 이용의 다른 구성예에 관한 것이다. 이 설명에서, 상기 실시 형태와 중복하는 부분의 설명은 생략한다.
<센스 증폭기 및 그 주변 회로의 구성예>
센스 증폭기 및 주변 회로의 구성예가 도 45에 도시된다. 도 45에 도시한 바와 같이, 제2 변형예에서는, 데이터 캐시(12)는 DC_A, DC_B, DC_C, DC_S를 포함하며, DC_A만이 컬럼 제어 회로를 통해서 데이터 선과 접속되어, 칩 외부의 유닛과의 데이터 교환에 이용된다. DC_S는 데이터에 따라서 센스 증폭기의 동작을 제어하는 데에 이용되는 래치이다. DC_B, DC_C, DC_S는 DC_A와 센스 증폭기의 사이의 버스(LBUS)에 병렬로 접속되어 데이터 캐시로서 이용되고, 외부와 데이터를 교환하는 데에는 DC_A를 통할 필요가 있다. 컬럼 제어 회로는 컬럼 어드레스와 관련된 DC_A를 데이터 선에 접속한다. NAND 플래시 메모리가 통상적인 동작에 이용될 경우에는, 어드레스 제어 회로에 의해 공급된 컬럼 어드레스가 이용되지만, 본 제안의 인증 시퀀스가 행해지는 경우에는, 연산기에 의해 지정되는 어드레스가 이용된다. 통상적인 어드레스 또는 연산기의 어드레스를 이용할지의 여부는 모드 전환 신호에 의해 전환될 수 있다.
<센스 증폭기 및 데이터 캐시의 등가 회로예>
도 46은 도 45의 센스 증폭기(77) 및 데이터 캐시(12)의 등가 회로예를 도시한다.
소정의 실시 형태에 대해서 설명하였지만, 이들 실시 형태는 단지 예로서 제시된 것이며, 본 발명의 범위를 한정하는 것을 의도하지는 않는다. 본 명세서에 설명된 신규한 실시 형태는 기타의 여러 가지 형태로 실시되는 것이 가능해며, 본 발명의 사상을 일탈하지 않는 범위에서, 본 명세서에 설명된 실시 형태의 형태에 여러 가지의 생략, 치환 및 변경을 행할 수 있다. 첨부된 특허청구범위와 그 균등물은 본 발명의 범위 및 사상의 범위에 놓이는 형태 또는 변형을 포함하도록 의도된다.

Claims (1)

  1. 컨트롤러를 통해 외부 장치와 통신하는 장치로서,
    제1 키(NKey)와 고유한 비밀 식별 정보(SecretID)를 저장하는 데에 이용되고, 적어도 출하 후에 외부로부터의 판독이 금지되는 제1 메모리 영역과, 패밀리 키(FKey)로 상기 비밀 식별 정보(SecretID)를 암호화해서 생성되는 암호화된 비밀 식별 정보(E-SecretID)를 저장하는 데에 이용되고, 외부로부터 판독 전용으로 될 것이 요구되는 제2 메모리 영역과, 식별 키(IDKey)로 상기 패밀리 키(Fkey)를 암호화하여 생성되는 데이터를 포함하는 패밀리 키 블록(FKB)을 저장하는 데에 이용되고, 외부로부터의 판독 및 기입이 요구되는 제3 메모리 영역을 포함하는 메모리와,
    상기 메모리에 저장된 정보를 이용하여 상기 외부 장치와의 인증을 행하는 인증 모듈을 포함하고,
    AES에 기초하여 상기 메모리 내의 제1 메모리 영역으로부터 판독된 상기 제1 키(NKey)로 상기 외부 장치로부터 수신되는 제1 수(HC)를 암호화하여 제2 키(HKey)가 생성되고,
    AES에 기초하여 상기 제2 키(HKey)로 상기 외부 장치로부터 수신되는 난수(RN)를 암호화하여 세션키(SKey)가 생성되고,
    일방향성 함수에서 상기 세션 키(SKey)로 상기 비밀 식별 정보(SecretID)를 계산하여 인증 정보(Oneway-ID)가 생성되고,
    상기 암호화된 비밀 식별 정보(E-SecretID), 상기 패밀리 키 블록(FKB) 및 상기 인증 정보(Oneway-ID)는 상기 외부 장치로 출력되는, 장치.
KR1020147011373A 2011-12-02 2012-06-15 반도체 메모리 장치 KR101517337B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011265289A JP5204291B1 (ja) 2011-12-02 2011-12-02 ホスト装置、装置、システム
JPJP-P-2011-265289 2011-12-02
PCT/JP2012/065935 WO2013080595A1 (en) 2011-12-02 2012-06-15 Semiconductor memory device

Publications (2)

Publication Number Publication Date
KR20140063892A KR20140063892A (ko) 2014-05-27
KR101517337B1 true KR101517337B1 (ko) 2015-05-04

Family

ID=46754739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147011373A KR101517337B1 (ko) 2011-12-02 2012-06-15 반도체 메모리 장치

Country Status (6)

Country Link
US (1) US8732466B2 (ko)
EP (1) EP2786523B1 (ko)
JP (1) JP5204291B1 (ko)
KR (1) KR101517337B1 (ko)
CN (1) CN104040936A (ko)
WO (1) WO2013080595A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140237258A1 (en) * 2013-02-20 2014-08-21 Kabushiki Kaisha Toshiba Device and authentication method therefor
JP6077405B2 (ja) * 2013-07-02 2017-02-08 Kddi株式会社 記憶装置
JP6106050B2 (ja) * 2013-08-26 2017-03-29 Kddi株式会社 記憶装置、記憶システム、記憶方法およびプログラム
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
JP6293648B2 (ja) 2014-12-02 2018-03-14 東芝メモリ株式会社 メモリデバイス
JP2017045405A (ja) 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
JP6495853B2 (ja) * 2016-03-16 2019-04-03 株式会社東芝 データ生成装置、電子デバイスおよび認証システム
CN105930115B (zh) * 2016-04-25 2018-11-16 杭州旗捷科技有限公司 一种关键数据还原耗材芯片和存储数据保护方法
CN106100829B (zh) * 2016-05-23 2020-05-19 深圳市硅格半导体有限公司 加密存储的方法及装置
JP6388736B1 (ja) * 2017-04-24 2018-09-12 三菱電機株式会社 プログラマブルロジックコントローラシステムおよびエンジニアリングツールプログラム
US12010217B2 (en) 2020-07-31 2024-06-11 Micron Technology, Inc. Secure memory system programming for host device verification

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020087814A1 (en) 2000-12-28 2002-07-04 Ripley Michael S. Verifying the integrity of a media key block by storing validation data in the cutting area of media
US20070174198A1 (en) 2004-08-06 2007-07-26 Kabushiki Kaisha Toshiba Content data distributing system, content data distributing method, and commodity selling method
JP2009100394A (ja) 2007-10-19 2009-05-07 Sony Corp 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
JP2010183279A (ja) 2009-02-04 2010-08-19 Saitama Univ 高速度カメラの画像処理装置、画像処理方法及び高速度カメラ装置

Family Cites Families (83)

* 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
JPH03171231A (ja) 1989-11-30 1991-07-24 Toshiba Corp マイクロコンピュータシステム
JPH08204702A (ja) 1995-01-30 1996-08-09 Nec Corp 暗号鍵管理装置
JPH10232918A (ja) 1997-02-19 1998-09-02 Canon Inc 画像ファイル及びそれを処理する画像処理装置及び画像処理方法、画像処理システム
JP2000122931A (ja) * 1998-10-15 2000-04-28 Toshiba Corp デジタル集積回路
JP4395302B2 (ja) * 1999-04-27 2010-01-06 パナソニック株式会社 半導体メモリカード及びその制御方法
JP4011792B2 (ja) 1999-06-16 2007-11-21 株式会社東芝 記録方法、再生方法、記録装置、再生装置及び記録媒体
JP2003506974A (ja) 1999-08-10 2003-02-18 インテル・コーポレーション 受信者のグループにコンテンツを安全に配布するためのシステムおよび方法
CN100442393C (zh) 1999-10-21 2008-12-10 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
JP4524829B2 (ja) 2000-01-25 2010-08-18 ソニー株式会社 データ処理システム、記録デバイス、およびデータ処理方法、並びにプログラム提供媒体
US7270193B2 (en) 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US7058806B2 (en) 2000-10-17 2006-06-06 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for secure leveled access control
US8020199B2 (en) 2001-02-14 2011-09-13 5th Fleet, L.L.C. Single sign-on system, method, and access device
JP2002251326A (ja) 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
US7987510B2 (en) 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US20030105961A1 (en) 2001-11-30 2003-06-05 Peter Zatloukal Avoiding attachment of an ineligible smart interchangeable cover to an electronic device
US7240157B2 (en) 2001-09-26 2007-07-03 Ati Technologies, Inc. System for handling memory requests and method thereof
US7372964B2 (en) 2001-10-10 2008-05-13 Kabushiki Kaisha Toshiba Method and apparatus for recording information including secret information and method and apparatus for reproduction thereof
US20030154355A1 (en) 2002-01-24 2003-08-14 Xtec, Incorporated Methods and apparatus for providing a memory challenge and response
JP4168679B2 (ja) 2002-06-26 2008-10-22 ソニー株式会社 コンテンツ利用管理システム、コンテンツを利用し又は提供する情報処理装置又は情報処理方法、並びにコンピュータ・プログラム
CN1695128B (zh) * 2002-10-18 2010-05-05 株式会社东芝 编码记录设备
JP2004220317A (ja) 2003-01-15 2004-08-05 Sony Corp 相互認証方法、プログラム、記録媒体、信号処理システム、再生装置および情報処理装置
US6950379B2 (en) 2003-03-28 2005-09-27 Mediatek Inc. Burst cutting area extraction method and device
WO2005008385A2 (en) * 2003-07-07 2005-01-27 Cryptography Research, Inc. Reprogrammable security for controlling piracy and enabling interactive content
EP3798874A1 (en) 2003-08-26 2021-03-31 Panasonic Intellectual Property Corporation of America Program execution device
US7484090B2 (en) 2003-10-10 2009-01-27 Panasonic Corporation Encryption apparatus, decryption apparatus, secret key generation apparatus, and copyright protection system
JP4102290B2 (ja) 2003-11-11 2008-06-18 株式会社東芝 情報処理装置
WO2005071515A1 (en) 2004-01-22 2005-08-04 Koninklijke Philips Electronics N.V. Method of authorizing access to content
TWI266190B (en) 2004-02-10 2006-11-11 Yizai Internat Corp File access controlling method and file access controlling system for digital rights management
US7406598B2 (en) 2004-02-17 2008-07-29 Vixs Systems Inc. Method and system for secure content distribution
JP4572669B2 (ja) 2004-03-31 2010-11-04 セイコーエプソン株式会社 レイアウトルール生成システム、レイアウトシステム及びレイアウトルール生成方法並びにレイアウトルール生成プログラム
US8607299B2 (en) 2004-04-27 2013-12-10 Microsoft Corporation Method and system for enforcing a security policy via a security virtual machine
JP4686138B2 (ja) * 2004-05-26 2011-05-18 株式会社東芝 記憶媒体変換方法、プログラム及び機器
US7624269B2 (en) 2004-07-09 2009-11-24 Voltage Security, Inc. Secure messaging system with derived keys
JP2006033326A (ja) 2004-07-15 2006-02-02 Toshiba Corp 記憶媒体処理方法、記憶媒体処理装置及びプログラム
US8260259B2 (en) 2004-09-08 2012-09-04 Qualcomm Incorporated Mutual authentication with modified message authentication code
JP2006085045A (ja) 2004-09-17 2006-03-30 Sony Corp 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
JP3814620B2 (ja) 2004-10-15 2006-08-30 株式会社東芝 情報処理装置および情報処理方法
TWI277870B (en) 2004-11-22 2007-04-01 Toshiba Corp Copyright management method, information recording/reproducing method and device, and information recording medium and method of manufacturing the medium
JP2006172147A (ja) * 2004-12-16 2006-06-29 Matsushita Electric Ind Co Ltd コンテンツ保護方法及びその方法を用いた情報記録再生装置
US7971070B2 (en) 2005-01-11 2011-06-28 International Business Machines Corporation Read/write media key block
EP1847995A4 (en) 2005-02-07 2009-11-11 Panasonic Corp RECORDING DEVICE, PLAYING DEVICE, INTEGRATED CIRCUIT AND CONTROL PROGRAM
US7712131B1 (en) 2005-02-09 2010-05-04 David Lethe Method and apparatus for storage and use of diagnostic software using removeable secure solid-state memory
JP2007004522A (ja) * 2005-06-24 2007-01-11 Renesas Technology Corp 記憶装置
US8194859B2 (en) 2005-09-01 2012-06-05 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
US8281386B2 (en) 2005-12-21 2012-10-02 Panasonic Corporation Systems and methods for automatic secret generation and distribution for secure systems
JP4655951B2 (ja) 2006-02-06 2011-03-23 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
EP2016701A4 (en) 2006-04-25 2012-04-25 Stephen Laurence Boren DYNAMIC DISTRIBUTED KEY SYSTEM AND METHOD FOR MANAGING IDENTITY, AUTHENTICATION OF SERVERS, DATA SECURITY AND PREVENTING ATTACKS OF MIDDLE MAN
CN101491000B (zh) 2006-07-12 2011-12-28 耶德托公司 用于混淆密码函数的方法和系统
JP2008022367A (ja) 2006-07-13 2008-01-31 Toshiba Corp 暗号鍵情報保持方法および暗号鍵情報処理装置
JP2008035397A (ja) * 2006-07-31 2008-02-14 Toshiba Corp 暗号情報処理方法および暗号情報処理装置
JP4882636B2 (ja) * 2006-09-27 2012-02-22 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US8520850B2 (en) 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
CN101617351B (zh) 2007-01-19 2011-06-22 三菱电机株式会社 密文生成装置、密码通信系统以及群参数生成装置
US8261130B2 (en) 2007-03-02 2012-09-04 Infineon Technologies Ag Program code trace signature
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)
JP2008269088A (ja) * 2007-04-17 2008-11-06 Toshiba Corp プログラム情報提供システム、プログラム情報提供方法、プログラム情報提供方法に用いられる記録媒体
US8381062B1 (en) 2007-05-03 2013-02-19 Emc Corporation Proof of retrievability for archived files
JP4687703B2 (ja) * 2007-10-02 2011-05-25 ソニー株式会社 記録システム、情報処理装置、記憶装置、記録方法及びプログラム
JP2009105566A (ja) 2007-10-22 2009-05-14 Sky Kk 配布管理装置及び配布管理プログラム
JP5248153B2 (ja) 2008-03-14 2013-07-31 株式会社東芝 情報処理装置、方法及びプログラム
JP2010021888A (ja) 2008-07-11 2010-01-28 Toshiba Corp 通信装置、鍵サーバ及び管理サーバ
JP4620146B2 (ja) * 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
EP2330533B1 (en) 2008-09-24 2021-02-17 Panasonic Intellectual Property Management Co., Ltd. Recording/reproducing system, recording medium device, and recording/reproducing device
US8868925B2 (en) 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
JP4799626B2 (ja) 2009-02-04 2011-10-26 ソニーオプティアーク株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP2010268417A (ja) * 2009-04-16 2010-11-25 Toshiba Corp 記録装置及びコンテンツデータ再生システム
JP2010267240A (ja) 2009-04-16 2010-11-25 Toshiba Corp 記録装置
JP2010267540A (ja) * 2009-05-15 2010-11-25 Panasonic Corp 非水電解質二次電池
JP5369916B2 (ja) * 2009-06-11 2013-12-18 ソニー株式会社 カード管理装置およびカード管理システム
WO2011064883A1 (ja) 2009-11-27 2011-06-03 株式会社東芝 メモリチップ
US8364594B2 (en) * 2010-03-09 2013-01-29 Visa International Service Association System and method including security parameters used for generation of verification value
CN102422301A (zh) 2010-03-11 2012-04-18 松下电器产业株式会社 记录系统、再现系统、密钥分发服务器、记录装置、记录介质装置、再现装置、记录方法及再现方法
JP5604929B2 (ja) * 2010-03-29 2014-10-15 ソニー株式会社 メモリ装置およびメモリシステム
JP5552870B2 (ja) * 2010-04-01 2014-07-16 ソニー株式会社 メモリ装置、ホスト装置、およびメモリシステム
US20110276490A1 (en) 2010-05-07 2011-11-10 Microsoft Corporation Security service level agreements with publicly verifiable proofs of compliance
JP2012014416A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 記録装置、書き込み装置、読み出し装置、及び記録装置の制御方法
US20120137137A1 (en) * 2010-11-30 2012-05-31 Brickell Ernest F Method and apparatus for key provisioning of hardware devices
US8296477B1 (en) 2011-04-22 2012-10-23 Symantec Corporation Secure data transfer using legitimate QR codes wherein a warning message is given to the user if data transfer is malicious
JP5214782B2 (ja) 2011-08-31 2013-06-19 株式会社東芝 メモリ装置、ストレージメディア、ホスト装置、及びシステム
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
JP5275432B2 (ja) 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020087814A1 (en) 2000-12-28 2002-07-04 Ripley Michael S. Verifying the integrity of a media key block by storing validation data in the cutting area of media
US20070174198A1 (en) 2004-08-06 2007-07-26 Kabushiki Kaisha Toshiba Content data distributing system, content data distributing method, and commodity selling method
JP2009100394A (ja) 2007-10-19 2009-05-07 Sony Corp 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム
JP2010183279A (ja) 2009-02-04 2010-08-19 Saitama Univ 高速度カメラの画像処理装置、画像処理方法及び高速度カメラ装置

Also Published As

Publication number Publication date
CN104040936A (zh) 2014-09-10
KR20140063892A (ko) 2014-05-27
EP2786523A1 (en) 2014-10-08
JP2013117882A (ja) 2013-06-13
EP2786523B1 (en) 2015-09-23
US8732466B2 (en) 2014-05-20
US20130145164A1 (en) 2013-06-06
WO2013080595A1 (en) 2013-06-06
JP5204291B1 (ja) 2013-06-05

Similar Documents

Publication Publication Date Title
KR101506123B1 (ko) 장치 및 그 인증 방법
KR101517337B1 (ko) 반도체 메모리 장치
KR101517336B1 (ko) 반도체 저장 장치
US8650398B2 (en) Device authentication using restricted memory
US20140281564A1 (en) Method of authenticating access to memory device
KR20140146199A (ko) 메모리 디바이스 및 메모리 시스템
US20140068278A1 (en) Manufacturing method
KR101553790B1 (ko) 메모리
US20140223188A1 (en) Device
JP4991971B1 (ja) 被認証装置及びその認証方法
US8726024B2 (en) Authentication method
US8995657B2 (en) Device and method for certifying one&#39;s own authenticity
US8949621B2 (en) Memory device authentication
JP5443575B2 (ja) メモリカード、ホスト装置、及びシステム
JP5433757B2 (ja) メモリ装置、ホスト装置、及びシステム
US20140245023A1 (en) Device and authentication method therefor
US20130336478A1 (en) Authentication method
US20140237245A1 (en) Device and authentication method therefor
US20130336475A1 (en) Device
JP2013118616A (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
FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 5