KR101494992B1 - 인증자, 피인증자 및 인증 방법 - Google Patents

인증자, 피인증자 및 인증 방법 Download PDF

Info

Publication number
KR101494992B1
KR101494992B1 KR1020137020863A KR20137020863A KR101494992B1 KR 101494992 B1 KR101494992 B1 KR 101494992B1 KR 1020137020863 A KR1020137020863 A KR 1020137020863A KR 20137020863 A KR20137020863 A KR 20137020863A KR 101494992 B1 KR101494992 B1 KR 101494992B1
Authority
KR
South Korea
Prior art keywords
secret information
data
random number
memory
authenticator
Prior art date
Application number
KR1020137020863A
Other languages
English (en)
Other versions
KR20130127499A (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 KR20130127499A publication Critical patent/KR20130127499A/ko
Application granted granted Critical
Publication of KR101494992B1 publication Critical patent/KR101494992B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • 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
    • 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/30Compression, e.g. Merkle-Damgard construction
    • 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/34Encoding or coding, e.g. Huffman coding or error correction
    • 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
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

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

Abstract

한 실시형태에 따르면, 피인증자는, 복수의 비밀 정보 XY와 상기 복수의 비밀 정보 XY를 암호화함으로써 생성되는 복수의 비밀 정보 XYE를 저장하도록 구성된 메모리; 난수 A를 생성하도록 구성된 생성 모듈; 상기 생성된 난수 A와 수신되는 난수 B의 적어도 일부로 구성되는 난수 D를 생성하도록 구성된 생성 모듈; 적어도 상기 난수 D와 상기 메모리로부터 로딩된 비밀 정보 XY에 관하여 압축 연산을 실행함으로써 데이터 C를 생성하도록 구성된 계산 모듈; 데이터 ν를 생성하도록 구성된 생성 모듈; 및 상기 데이터 ν와 상기 데이터 C로부터 결과 Z를 계산하도록 구성된 비트별 가산 모듈을 포함한다.

Description

인증자, 피인증자 및 인증 방법{AUTHENTICATOR, AUTHENTICATEE AND AUTHENTICATION METHOD}
본 명세서에서 설명되는 실시형태는 대체로 인증자, 피인증자 및 인증 방법에 관한 것이다.
일반적으로, 보안을 요구하는 분야에서, 자기의 진정성(authenticity)을 증명하기 위한 수단으로서 암호화기와 공유하는 비밀에 기초하는 방법이 채택되고 있다.
예를 들어, 전자 결제에 이용되는 IC 카드 등에서, 개별화된 ID 및 비밀 정보가 카드 내의 IC에 저장되고, IC 카드는 ID 및 비밀 정보에 기초하여 인증을 행하기 위한 암호 처리 기능을 가지고 있다. 또 다른 예에서는, 콘텐츠의 저작권 보호에 있어서 SD 카드(상표)의 진정성을 증명하기 위한 수단이 있다.
한 실시형태에 따르면, 복수의 비밀 정보 XY와 상기 복수의 비밀 정보 XY를 암호화함으로써 생성되는 복수의 비밀 정보 XYE를 저장하는 피인증자와 상기 피인증자를 인증하는 인증자 사이의 인증 방법은, 상기 인증자가, 상기 피인증자로부터 수신되는 상기 비밀 정보 XYE에 관해 암호해독 처리를 실행하고 상기 비밀 정보 XY를 공유하는 단계; 상기 피인증자가, 상기 인증자에 의해 생성되는 난수 B를 수신하고 상기 비밀 정보 XY를 로딩하는 단계; 상기 피인증자가, 난수 A 및 데이터 ν(ν은 1의 발생 확률이 η이며, η<0.5)를 생성하는 단계; 상기 피인증자가, 상기 생성된 난수 A와 상기 수신된 난수 B의 적어도 일부로 구성되는 난수 D를 생성하는 단계; 상기 피인증자가, 상기 난수 D와 상기 비밀 정보 XY의 적어도 일부에 관하여 압축 연산을 실행함으로써 데이터 C를 생성하는 단계; 상기 피인증자가, 상기 데이터 ν와 상기 데이터 C로부터 계산된 결과 Z를 상기 인증자에 전송하는 단계; 상기 인증자가, 상기 생성된 난수 A와 상기 수신된 난수 B의 적어도 일부로 구성되는 난수 D를 생성하는 단계; 상기 인증자가, 상기 난수 D와 상기 비밀 정보 XY의 적어도 일부에 관하여 압축 연산을 실행함으로써 데이터 C를 생성하는 단계; 및 상기 인증자가, 상기 수신된 계산 결과 Z와 상기 생성된 데이터 C를 이용함으로써 판정 처리를 실행하는 단계를 포함한다.
도 1은 비교예 1에 따른 프로토콜을 도시하는 블록도이다;
도 2는 비교예 2에 따른 프로토콜을 도시하는 블록도이다;
도 3은 제1 실시형태에 따른 구조예를 도시하는 블록도이다;
도 4는 제1 실시형태에 따른 인증 플로우를 나타내는 플로차트이다;
도 5는 제2 실시형태에 따른 구조예를 도시하는 블록도이다;
도 6은 제2 실시형태에 따른 인증 플로우를 나타내는 플로차트이다;
도 7은 제3 실시형태에 따른 구조예를 도시하는 블록도이다;
도 8은 제3 실시형태에 따른 인증 플로우를 나타내는 플로차트이다;
도 9는 제3 실시형태에 따른 비밀 정보의 데이터 전송을 도시하는 블록도이다;
도 10은 제4 실시형태에 따른 구조예를 도시하는 블록도이다;
도 11은 제4 실시형태에 따른 인증 플로우를 나타내는 플로차트이다;
도 12는 제5 실시형태에 따른 구조예를 도시하는 블록도이다;
도 13은 제5 실시형태에 따른 인증 플로우를 나타내는 플로차트이다;
도 14는 제6 실시형태에 따른 구조예를 도시하는 블록도이다;
도 15는 제6 실시형태에 따른 인증 플로우를 나타내는 플로차트이다;
도 16은 제7 실시형태에 따른 구조예를 도시하는 블록도이다;
도 17은 제7 실시형태에 따른 인증 플로우를 나타내는 플로차트이다;
도 18은 제8 실시형태에 따른 ID 회수 처리 (1)을 나타내는 블록도이다;
도 19는 제8 실시형태에 따른 ID 회수 처리 (2)를 나타내는 블록도이다;
도 20은 제8 실시형태에 따른 ID 회수 처리 (3)을 나타내는 블록도이다;
도 21은 제8 실시형태에 따른 ID 회수 처리 (4)를 나타내는 블록도이다;
도 22는 제9 실시형태에 따른 ID 결합 처리 (1)을 나타내는 블록도이다;
도 23은 제9 실시형태에 따른 ID 결합 처리 (2)를 나타내는 블록도이다;
도 24는 제10 실시형태에 따른 구조예를 도시하는 블록도이다;
도 25는 제11 실시형태에 따른 구조예를 도시하는 블록도이다;
도 26은 제12 실시형태에 따른 구조예를 도시하는 블록도이다.
본 발명의 실시를 위한 최상의 형태
전술된 예에서, 피인증자는 비밀키와 암호화기를 포함하는 것이 필요하다. 그러나, 암호화기의 구현은 비교적 큰 회로 규모를 요구한다. 따라서, 회로 규모에 대한 제약이 동시에 부과되는 환경에서, 자신의 진정성을 증명하는 것이 매우 어렵다. 회로 규모에 대한 제약이 부과되는 대표적인 예는 RFID(Radio Frequency Identification)이다.
따라서, 최근, 구현에 관한 필요성이 증가하고 있는 추세이다.
더 구체적으로, 도면을 참조하여, 비교예와 실시형태들이 설명될 것이다. 이하의 설명에서, 공통된 부분들은 도면들을 통틀어 유사한 참조 부호로 표기된다.
[비교예 1(HB+프로토콜의 예)]
우선, 도 1을 참조하여, 비교예 1을 설명한다. 비교예 1은 HB+프로토콜의 예에 관한 것이다.
HB+프로토콜은 2000년 Hopper와 Blum에 의해 제안된 경량의 인증 프로토콜인 HB 프로토콜의 개량된 프로토콜이다. HB 프로토콜은 노이즈를 갖는 패러티 값의 식별은 어렵고(LPN: Learning Parity with Noise), 수동 공격에 대한 보안성이 입증되었다. 그러나, HB 프로토콜은 리더기(Reader)의 위장 등의 능동 공격에 대해 취약하다. 이 문제를 해결하기 위해, 2005년 Juels 등에 의해 HB+프로토콜이 제안되었다.
HB+프로토콜의 개요는 도 1에 도시된 바와 같다. 도 1에서, a, b, x 및 y는 벡터이고, ν와 z는 비트이다.
도면에 도시된 바와 같이, HB+프로토콜에서, 피인증자(인증받는 컴포넌트)인 태그(Tag)와, 인증자(인증 컴포넌트)인 리더기(Reader)는 비밀 정보 x와 y를 공유한다.
태그는 임시 난수 벡터 b를 리더기에 전달한다.
그 다음, 리더기는 임시 난수 a를 태그에 전달한다.
후속해서, 태그는 난수 a와 비밀 정보 벡터 x간의 내적 (a·x), 및 난수 b와 비밀 정보 벡터 y간의 내적 (b·y)를 계산한다. 또한, 태그는 확률 η가 1이 되는 변수 ν를 생성한다. 그 다음, 태그는 내적 (a·x), 내적 (b·y) 및 변수 ν를 가산하여, z = ax
Figure 112013071488859-pct00001
by
Figure 112013071488859-pct00002
ν를 계산한다. 이 경우, ax는 내적 (a·x)을 의미하고,
Figure 112013071488859-pct00003
는 배타적 논리합을 의미한다.
그 다음, 태그는 계산된 z를 리더기에 전송한다.
후속해서, 리더기는 수신된 z와 단독으로 계산된 ax
Figure 112013071488859-pct00004
by를 비교하고, 일치/불일치를 검사한다. 상기 일련의 처리를 "1 라운드(round)"라고 말할 수 있다.
1 라운드의 처리가 복수회(예를 들어, 수십회 내지 수만회) 반복되고, 전술된 불일치의 확률이 미리결정된 t를 밑돌 때, 태그는 비밀 정보를 보유하는 것으로 간주되고, 인증이 성공적으로 실행된다.
한편, ax
Figure 112013071488859-pct00005
by는 비밀 정보 x, y와 결합 벡터 a, b의 내적이다. 따라서, x, y의 결합 벡터 xy가 비밀 정보이고, a, b의 결합 벡터가 Concat(a, b)인 경우, ax
Figure 112013071488859-pct00006
by는 Concat(a, b)xy로서 표현될 수 있다.
[비교예 2(랜덤 HB#프로토콜의 예)]
그 다음, 도 2를 참조하여, 비교예 2를 설명한다. 비교예 2는 랜덤 HB#프로토콜의 예에 관한 것이다. 랜덤 HB#프로토콜은 전술된 비교예 1에 도시된 HB+프로토콜의 더 개량된 프로토콜이다.
전술된 HB+프로토콜이 수동 공격 및 능동 공격에 대한 해결책을 제공하지만, HB+프로토콜은 중간자 공격에 대해 취약하다는 경향이 있다. 이 문제를 해결하기 위해, Gilbert 등에 의해 HB+프로토콜의 개량된 프로토콜로서 랜덤 HB#프로토콜이 제안되었다.
HB#프로토콜의 개요는 도 2에 도시된 바와 같다. 도 2에서, X와 Y는 행렬이고, a, b, z, 및 ν는 벡터이다.
도 2에 도시된 바와 같이, 랜덤 HB#프로토콜에서, 태그(Tag)와 리더기(Reader)는 비밀 정보 행렬 x와 y를 공유한다.
우선, 태그가 임시 난수 벡터 b를 리더기에 전달한다.
그 다음, 리더기는 임시 난수 a를 태그에 전달한다.
후속해서, 태그는 난수 a와 비밀 정보 행렬 X간의 내적 (aX), 및 난수 b와 비밀 정보 행렬 Y간의 내적 (bY)를 계산한다. 이 경우, X와 Y는 행렬이고 a와 b는 벡터이므로, 각 내적 결과는 벡터이다. 또한, 태그는 확률 η가 1이 되는 변수 ν를 생성한다. 그 다음, 태그는 전술된 값을 가산하여, z = aX
Figure 112013071488859-pct00007
bY
Figure 112013071488859-pct00008
ν을 계산한다. 이 경우, z는 벡터이다.
그 다음, 태그는 계산된 z를 리더기에 전송한다.
후속해서, 리더기는 수신된 z와 단독으로 계산된 aX
Figure 112013071488859-pct00009
bY간의 비트 가산, 즉, 배타적 논리합 연산의 결과를 이용함으로써 aX
Figure 112013071488859-pct00010
bY
Figure 112013071488859-pct00011
z의 Hamming 가중치 Hwt(aX
Figure 112013071488859-pct00012
bY
Figure 112013071488859-pct00013
z)를 계산한다. Hamming 가중치 Hwt(aX
Figure 112013071488859-pct00014
bY
Figure 112013071488859-pct00015
z)가 미리결정된 값 t*clen을 밑돌 때, 태그는 비밀 정보를 보유하는 것으로 간주되고, 인증은 성공적으로 실행된다.
한편, aX
Figure 112013071488859-pct00016
bY는 비밀 정보 X, Y의 결합 행렬과 a 및 b의 결합 벡터간의 내적이다. 따라서, X 및 Y의 결합 행렬 XY가 비밀 정보이고 a 및 b의 결합 벡터가 Concat(a, b)인 경우, aX
Figure 112013071488859-pct00017
bY는 Concat(a, b)XY로서 표현될 수 있다.
<구현상의 개선점>
그러나, 전술된 비교예 1과 2의 프로토콜에서, 예를 들어, 이 프로토콜들이 NAND 플래시 메모리 등에서 구현된다면, 이하의 (I) 내지 (IV)의 개선점을 생각해 볼 수 있다.
(I) 비밀 정보 X와 Y의 공유 수단
전술된 바와 같이, 전술된 비교예 1과 2에서, 리더기와 태그는 비밀 정보 X, Y를 공유할 필요가 있다. 그러나, 예 1과 2는 비밀 정보 X, Y를 공유하기 위한 구체적인 공유 방법을 제시하지 못한다.
따라서, 모든 리더기들과 태그들이 동일한 X, Y를 미리 공유하는 경우, 일단 X, Y가 노출되버리면, 전체 시스템이 치명적인 영향을 받을 것이다. 반면, 각 태그에 상이한 정보 X, Y가 적용되는 경우, 리더기측은, 예를 들어, 모든 태그에 적용되는 X와 Y를 저장하거나 X와 Y를 통합 관리하는 데이터베이스에 액세스할 것이 요구된다.
그 결과, 리더기측의 부하가 증가한다.
관련된 종래 기술 일본 특허 출원 KOKAI 공보 제2000-357213호는, 연산 처리 기능을 갖는 기록 매체에 복제 콘텐츠를 기록하는 기록 장치와 기록 매체간의 상호 인증 방법을 제안하고 있다. 기록 매체는, 기록 매체에 의존하는 적어도 제1 정보, 및 기록 매체에 의존하고 기록 장치와의 상호 인증의 실행시 기록 장치와 공유되는 제2 정보를 저장한다. 기록 매체로부터 얻어진 제1 정보에 기초하여, 기록 장치는 기록 매체와의 상호 인증이 실행될 때 이용되는 인증 정보를 생성한다. 기록 장치와 기록 매체 사이의 상호 인증은 생성된 인증 정보와 제2 정보를 이용함으로써 실행된다.
(II) 컴포넌트 P에서 비밀 정보 X와 Y를 효율적으로 기록하기 위한 수단
전술된 HB+프로토콜과 랜덤 HB#프로토콜에서, 현실적인 계산량으로 전술된 LPN을 식별해 내기 어렵게 하기 위하여 상응하는 비밀 정보량, 즉, X, Y의 상응하는 데이터 크기가 필요하다. X, Y가 모든 태그에 공통이면, 하드와이어드 로직 구현이 가능하다. 그러나, X, Y가 태그마다 다른 때에는, 태그는 X, Y를 보유하기 위하여 충분한 메모리 용량을 가질 필요가 있다. 동시에, 태그 제조시에 데이터를 개별적으로 기록하는 것이 필요하고, 그 기록 시간은 제조 시간에 반영된다.
그 결과, 메모리 용량 증가와 기록 시간 증가로 인해 태그의 비용이 증가한다.
(III) 컴포넌트 P에 저장된 비밀 정보 X와 Y의 손상을 방지하기 위한 수단
컴포넌트 P가 X, Y를 내부 메모리에 저장하는 경우, X, Y는 인증에 이용될 때, X, Y의 데이터 완전성이 요구된다. 그러나, 종래 기술은 이에 관해 언급하지 않고 있다. 데이터 완전성을 보장하기 위하여, 에러 정정 코드가 추가된 X, Y가 태그의 내부 메모리에 저장되고, 인증시에 정정 처리가 실행되는 방법을 생각해 볼 수 있다. 그러나, 일반적으로, 염가의 메모리는 정정 기능을 항상 갖는 것은 아니다. 메모리가 정정 기능을 갖지 않을 때, 정정 기능은 메모리 이외의 태그 내 컴포넌트로서 제공될 필요가 있다.
그 결과, 태그의 비용이 증가한다.
(IV) 비밀 정보 X와 Y의 노출시 비밀 정보 업데이트 수단
전술된 랜덤 HB#프로토콜은 미리결정된 조건하에서 수동 공격, 능동 공격, 및 중간자 공격에 내성을 갖는 것으로 인정된다. 그러나, 최근 일반화된 중간자 공격에 대한 취약성이 보고되었고, X, Y의 노출의 가능성이 배재될 수 없다. X, Y의 노출을 위해서는 상응하는 공격 비용이 요구되지만, 일단 X, Y가 노출되면, X, Y를 이용한 위조 태그의 제조가 가능해진다. 따라서, X, Y가 노출되더라도 새로운 X, Y로 이행하기 위하여 비밀 정보를 업데이트하기 위한 수단이 바람직하다.
상기를 고려하여, 도면을 참조하여 이하에서 실시형태들이 설명된다. 상기에서 리더기 및 RFID의 태그가 예로서 설명되었다. 그러나, 회로 면적이 비용과 직접적으로 관련있는 NAND 플래시 메모리와 같은 메모리 칩에 동일한 요건이 적용된다. 따라서, 이하의 실시형태에서는, NAND 플래시 메모리를 인증하는 호스트 장치(Host)가 인증자로서 기능하는 리더기(Reader)로서 이용되고, NAND 플래시 메모리(NAND 칩)는 피인증자로서 기능하는 태그(Tag)로서 이용되는 예를 설명한다. 그러나, 실시형태는 이들 예로 제한되지 않는다. 예를 들어, NOR 플래쉬 메모리, 저항 변화식 메모리(ReRAM: Resistive Random Access Memory), 자기저항 랜덤 액세스 메모리(MRAM: Magnetoresistive Random Access Memory), 상변화 랜덤 액세스 메모리(PRAM:Phase change Random Access Memory), 및 강유전체 랜덤 액세스 메모리(FeRAM: Ferroelectric Random Access Memory), 하드 디스크 드라이브나 솔리드 스테이트 드라이브 등의 연산 기능 및 메모리를 가지는 저장 장치, RFID나 IC 카드 등의 인증을 요구하는 컴포넌트, 범용 연산 소자와 범용 메모리 및 소프트웨어를 포함하는 컴퓨터를 포함하는 시스템 등의 다양한 구현 형태에 적용가능하다. 이하의 설명에서, 공통된 부분들은 도면들을 통틀어 유사한 참조 부호로 표기한다.
[제1 실시형태]
그 다음, 제1 실시형태에 따른 인증자, 피인증자 및 인증 방법에 대해 설명한다.
<1. 구조예(메모리 시스템)>
우선, 도 3을 참조하여, 제1 실시형태에 따른 구조예를 설명한다.
도 3에 도시된 메모리 시스템은, 피인증자인 NAND 플래시 메모리(10), 인증자인 호스트 장치(20), 및 이들 사이에서 중재하는 제어기(19)를 포함한다. 도 3에 도시된 바와 같이, 호스트(20)는, NAND 플래시 메모리(10)에 액세스하는 기능을 갖는 "제어기(19)"라 불리는 장치를 통해 NAND 플래시 메모리에 액세스한다.
반도체 제품의 제조 공정을 설명한다. 반도체 제품의 제조 공정은 주로, 기판 웨이퍼 상에 회로를 형성하는 전-공정(pre-process), 및 웨이퍼를 단편들로 다이싱하고 배선 및 수지 팩키지 봉입을 행하는 후-공정으로 구분된다. 이 경우, 제어기(19)는, 예를 들어, 제어기(19)가 전-공정에서 NAND 플래시 메모리(10)에 포함되거나, 제어기(19)가 전-공정에 포함되지 않지만 후-공정에서 동일한 팩키지에 포함되거나, 제어기(19)가 NAND 플래시 메모리(10)와는 상이한 칩으로서 형성되는 등, 다양하게 구성된다. 도 3을 포함하는 도면들에서, 예로서, 제어기(19)가 NAND 플래시 메모리(10)와는 상이한 칩으로서 형성되는 경우를 설명한다. 그러나, 본 실시형태는 상기 경우들 중 임의의 것에 적용가능하다. 이하의 설명에서, 달리 명시하지 않는 한, 제어기는, 많은 경우에서, 호스트 장치(20)와 NAND 플래시 메모리(10) 사이의 처리 데이터 및 명령을 중재하지만, 그 설명은 생략한다. NAND 플래시 메모리(10)와 제어기(19)의 구조예를 후술한다.
도 3에 나타낸 각 컴포넌트 및 데이터 처리가 이하에서 설명된다. 도면에 도시된 바와 같이, 비밀 정보 X, Y를 공유하는 방법과 이 방법을 NAND 플래시 메모리(10)에 적용하는 경우의 구조가 도시되어 있다.
1-1. NAND 플래시 메모리
NAND 플래시 메모리(10)가 피인증자이다. 이 예에 따른 NAND 플래쉬 메모리(10)는, 셀 어레이(11), 및 셀 어레이(11)의 주변 영역에 배치되는 데이터 캐쉬(12), 압축 연산 회로(13), 바이어스드 RNG(14), 출력 모듈(15), 난수 생성기(16), 순열&교환 회로(18), 비트별 가산 회로(C1)를 포함한다.
셀 어레이(Cell array)(11)에서, 복수의 메모리 셀이 비트 라인들과 워드 라인들(미도시) 사이의 교차부에서 매트릭스로 배열되어 있다. 메모리 셀은, 반도체 기판 상에서, 터널 절연막, 부유 게이트, 층간 절연막, 및 워드 라인에 접속된 제어 게이트를, 열거된 순서대로 포함한다. 비트 라인 방향에서의 메모리 셀의 전류 경로는 직렬 접속되어, 셀 유닛(cell unit)을 구성한다. 셀 유닛은 비트 라인 및 소스 라인에 접속된 선택 트랜지스터에 의해 선택된다. 워드 라인 방향의 복수의 메모리 셀은 데이터 판독 및 데이터 기입의 단위가 되는 1 페이지(Page)를 구성한다. 또한, 복수의 페이지는 데이터 소거의 단위가 되는 블록(Block)을 구성한다.
셀 어레이(Cell array)(11)는 ROM 영역(11-1), 은닉 영역(11-2) 및 사용자 영역(11-3)을 포함한다.
ROM 영역(ROM area)(11-1)은 데이터 기록이 금지되고 데이터 판독이 허용된 영역이다. 이 예에 따른 ROM 영역(11-1)에는, 비밀 정보 XY를 암호화하고 암호화된 비밀 정보에 추가로 정정 코드를 부가함으로써 얻어지는 데이터(XYE)(xe 비트)가 기록된다. 암호화를 위해, 예를 들어, 대칭 키 암호인 AES(Advanced Encryption Standard) 암호화기가 이용될 수 있다. 암호화 방법으로서, CTR(Counter), CBC(Cipher block chain) 등이 이용될 수 있다. 또한, 비대칭 암호인 ECDSA(elliptic curve cipher) 또는 RSA가 이용될 수 있다. 게다가, 오류 정정 코드로서, BCH code, a Reed Solomon 코드, LDPC(Low density parity check) 코드 등이 이용될 수 있다. 이런 방식으로, 본 예는 임의의 암호화 방법 및 임의의 정정 코드에 적용가능하다. 이 경우, XYE는 비밀 정보 XY를 암호화하고 암호화된 비밀 정보에 추가로 정정 코드를 부가함으로써 얻어지는 데이터로서 표현된다. 또한, (xe 비트)는 비트수를 나타낸다.
은닉 영역(Hidden area)(11-2)은, NAND 플래시 메모리(10) 외부가 데이터 기록이 금지되고 데이터 판독도 금지되는(Read Program inhibit) 영역이다. 이 예에 따른 은닉 영역(11-2)에서는, 인증에 이용하기 위한 X, Y에 대응하는 데이터 XY가 기록된다.
사용자 영역(User area)(11-3)은 데이터 기록과 데이터 판독이 자유로이 실행될 수 있는 영역이다. 사용자 영역(11-3)에서는, 예를 들어, 사진 및 동영상 데이터와 같은 영상 데이터가 기록된다.
전술된 ROM 영역, 은닉 영역, 및 사용자 영역은 물리적 구조를 상이하게 함으로써 실현되거나, 물리적 구성은 동일하게 하되 NAND 플래시 메모리 내의 논리적 제어에 의해 실현될 수도 있다. 이 경우, 논리적 제어란, 예를 들어, 각 영역에 NAND 플래쉬 메모리 외부로부터의 액세스를 제어하는 식별자가 제공되고, 이들 식별자들이 보관되며, NAND 플래쉬 메모리가 외부로부터 해당 영역으로의 액세스를 수신했을 때 식별자들에 의해 액세스 제어가 실행되는 등의 방법이다.
또한, 셀 어레이(Cell array)(11)를 구성하는 메모리 셀들 각각은, 복수의 비트를 저장하는 메모리 셀(MLC: Multi Level Cell)이거나, 1 비트를 저장하는 메모리 셀(SLC: Single Level Cell)일 수도 있다. 또한, ROM 영역 및 은닉 영역은 SLC로 이용하도록 구성되고 사용자 영역은 MLC로 이용하도록 구성될 수도 있다. 이 때, 셀 어레이의 물리적 구조는 SLC 영역과 MLC 영역간에 상이할 수도 있고, MCL로서 이용가능한 메모리 셀의 일부 비트들만이 의사-SLC 영역으로서 이용될 수도 있다.
데이터 캐쉬(Data cache)(12)는 셀 어레이(11)로부터 판독된 데이터를 임시로 저장한다.
바이어스드 RNG(Biased RNG)(14)는 미리결정된 확률 η가 1이 되는 난수 ν를 생성한다. 한편, 후술되는 난수 생성기는 바이어스드 RNG의 입력 소스로서 이용될 수 있다. 이 경우, 난수 생성기로부터 출력되는 복수의 난수열에 관해 AND 또는 OR와 같은 산술 연산을 실행함으로써 확률 η에 대응하는 난수가 생성될 수 있다.
난수 생성기(RNG: Random Number Generator)(16)는 인증에 이용되는 난수 Nonce_N(a 비트)를 생성한다.
순열&교환 회로(Permutation & Concatenation)(18)는 호스트(20)로부터 입력되는 난수 Nonce_H와 메모리(10)로부터 입력되는 난수 Nonce_N로 구성되는 난수 Nonce(c 비트)를 양쪽 모두가 공유하는 XY를 이용함으로써 생성한다. 이 경우, a는 Nonce_N의 비트 길이를 의미하고, b는 Nonce_H의 비트 길이를 의미하며, c는 압축 연산 회로의 1 처리마다 입력되는 비트 길이를 의미한다. 구체적으로는, 순열&교환 회로(Permutation & Concatenation)로부터 출력되는 개개의 난수 Nonce는 압축 연산 회로의 1 처리를 위한 데이터이고, Nonce_N 및 Nonce_H의 전체 비트들이 1 처리에 이용되거나 그 부분이 선택적으로 이용될 수도 있다.
압축 연산 회로(Compress(ex, inner product))(13)는 데이터 캐쉬(12)의 출력 XY(각 c 비트)와 순열&교환 회로(18)의 출력(c 비트)에 관해 내적 연산 등의 미리결정된 연산을 실행하여, 데이터 C를 출력한다.
비트별 가산 회로(C1)는, 바이어스드 RNG에 의해 생성된 ν를 압축 연산 회로(13)의 출력 비트에 가산함으로써 얻어지는 Z = C+ ν를 출력 모듈(15)에 출력한다. 전술된 바와 같이, 비트 가산이란 배타적 논리합을 의미한다. 구체적으로는, 비트별 가산 회로는 2 입력 데이터의 비트들의 배타적 논리합을 출력한다.
출력 모듈(15)은 제어기(19)를 통해 호스트(20)에 비트별 가산 회로(C1)의 결과(Z = C+ ν)를 출력한다.
셀 어레이(11) 이외의 데이터 캐쉬(12) 등의 구조적 컴포넌트도 역시 메모리 제어기(19)에 배치될 수 있다.
1-2. 호스트
이 예에 따른 호스트(Host)(20)는, 정정 처리 모듈(21), 암호해독 모듈(22), 키 보유 모듈(23), 데이터 임시 저장 모듈(25), 압축 연산 모듈(26), 난수 생성기(27), 순열&교환 회로(29), 및 판정 모듈(30)을 포함한다.
정정 처리 모듈(ECC)(21)은 NAND 플래시 메모리(10)의 ROM 영역(11-1)로부터 판독된 데이터 XYE에 관해 에러 정정 처리(ECC)를 실행한다.
암호해독 모듈(Decrypt)(22)은, 판독된 데이터 XYE가 에러 정정 처리된 후, 키 보유 모듈(23)에 유지된 키(KEY)에 의해 데이터 XYE를 암호해독함으로써, XY를 얻는다.
데이터 임시 저장 모듈(Data cache)(25)은 암호해독된 XY를 임시로 저장한다. 이로써, 호스트 장치(20)와 NAND 플래시 메모리(20)는 비밀 정보 XY를 공유할 수 있다.
압축 연산 회로(Compress(ex, inner product))(26)는 데이터 캐쉬(25)의 출력(각 c 비트)과 순열&교환 회로(29)의 출력(c 비트)에 관해 내적 연산 등의 미리결정된 연산을 실행하여, 데이터 C를 출력한다.
난수 생성기(RNG)(27)는 호스트의 난수 Nonce_H(b 비트)를 생성한다.
순열&교환 회로(Permutation & Concatenation)(29)는 호스트(20)로부터 입력되는 난수 Nonce_H와 메모리(10)로부터 입력되는 난수 Nonce_N으로 구성되는 난수 Nonce(c 비트)를 양쪽 모두가 공유하는 XY를 이용함으로써 생성한다.
판정 모듈(Accept if Hwt(Z
Figure 112013071488859-pct00018
C) ≤ t*clen)(30)은, 압축 연산 모듈(26)의 출력 C 및 출력 모듈(15)의 출력 Z에 관해, 전술된 바와 같은 Hamming 가중치 Hwt(Z
Figure 112013071488859-pct00019
C)를 계산한다. Hamming 가중치 Hwt(Z
Figure 112013071488859-pct00020
C)가 미리결정된 값 t*clen을 밑돌게 되면, 판정 모듈(30)은 비밀 정보가 보유된 것으로 간주하고, 인증 성공으로 판정한다. η ≤ t < 0.5를 가정하면, clen은 Z
Figure 112013071488859-pct00021
C의 비트 길이이다.
이런 방식으로, 호스트(20)는, 바이어스드 RNG 처리(27)를 배제하고, 판정 모듈(30)이 동일한 처리에 의해 얻어졌던 C와 Z를 비교함으로써, 피인증자인 NAND 플래쉬 메모리(10)의 진정성을 확인한다.
한편, 전술된 구조에 의한 동일한 처리는 복수회 실행될 수 있고, 이로써 진정성이 최종적으로 확인될 수 있다. 예를 들어, 본 도면에서, C가 복수 비트인 경우가 예로서 예시되고 있고, 비교 판정 방법은, 판정시에, Z와 C의 가산 비트열에서의 Hamming 가중치를 이용한다. C가 단일 비트이면, 전술된 처리는, 전술된 HB+프로토콜과 같이, 복수회 실행될 필요가 있다. 이 경우, HB+프로토콜과 같이, 에러 변수의 발생 확률에 기초하여 Z와 C간의 불일치 비율이 검사된다면 족할 것이다.
1-3. 변형례
상기와는 별도로, 이 실시형태의 구조는 후술되는 바와 같이, 필요하다면 변형될 수도 있다.
압축 처리는 도 1 및 도 2에 도시된 비교예 1과 2에 따른 내적 계산에 대응할 수도 있지만, 반드시 내적 계산에 대응할 필요는 없다. 예를 들어, 압축 처리에서, XY에 기초한 데이터와 Nonce_H 및 Nonce_N에 기초한 데이터가 LFSR(Linear Feedback Shift Register)로 구성된 연산 장치에 입력될 수도 있고, 입력 후의 LFSR 중의 레지스터 값들의 일부 또는 모두가 압축 결과로서 이용될 수도 있다. 대안으로서, LFSR로서 CRC 연산 장치가 이용될 수도 있다. 또한, 해쉬 함수는 압축 처리에 이용되는 함수로서 이용될 수도 있다. 해쉬 함수는 암호화기에 기초하거나 기초하지 않을 수도 있다. 어떤 연산 방법이 이용되더라도, 이 실시형태에서 제안된 방법이 적용가능하다. 보안의 기초가 되는 LPN 문제에 속한다는 점에서 차이가 없다. 압축 처리는 무손실 압축이거나 손실 압축일 수 있다. 압축 처리란, 적어도 입력 데이터보다 작고 입력 데이터에 의존하는 데이터를 출력하는 처리를 의미한다.
Nonce_H 및 Nonce_N에 기초하여 발생되는 Nonce를 전송하는 처리에 대해 설명한다. Nonce는, Nonce_H와 Nonce_N을 미리결정된 순서로 결합함으로써 생성된 다음 전송되는 데이터이다. 결합/전송 방법은 단순한 전방-공급 데이터 결합/전송 방법이거나, 상호의 데이터가 교대로 삽입되는 인터리브 데이터 결합/전송 방법일 수 있다. 데이터는 전술된 방법에 의해 복수회 전송될 수도 있다. 어쨌든, Nonce는 Nonce_N 및 Nonce_H의 적어도 일부로부터 생성되며 c 비트 길이를 갖는 데이터이다. Nonce_N의 데이터 길이는 a이고, Nonce_H의 데이터 길이는 b이며, 양쪽의 총 데이터 길이는 d라고 가정한다. c = d이고 데이터가 복수회 전송되지 않는다면, 압축 계산 모듈로부터의 출력은 1 비트이다. c = d이고 데이터가 복수회 전송된다면, 압축 계산 모듈로부터의 출력은 1 비트가 복수회 전송된다. c < d이고 데이터가 복수회 전송된다면, 압축 계산 모듈로부터의 출력은 1 비트가 복수회 전송된다.
반면, Nonce와의 압축을 계산하는 XY에 관하여, XY 내의 데이터는 c 비트 단위로 압축 계산 모듈에 전송된다. XY 데이터의 비트 크기 x는 c와 같거나 c의 정수배이다. 비트 크기 x가 c와 같을 때, 압축 계산 모듈의 출력은 1 비트이다. XY 데이터의 비트 크기 x가 c의 정수배일 때, 압축 계산 모듈의 출력은 1 비트가 복수회 출력된다. 대표적인 조합은 다음과 같다:
● c = d = x의 경우, 압축 계산 모듈의 출력은 1 비트이고,
● c = d < x의 경우, 압축 계산 모듈의 출력은 복수회의 1 비트이고,
● c < d이고, c < x인 경우, 압축 계산 모듈의 출력은 복수회의 1 비트이다. 한편, 상기 예는 압축 계산 모듈이 2개 입력을 1 비트로 압축하는 경우에 관한 것이다. 압축 계산 모듈이 2개 입력을 복수 비트로 압축하는 경우에는, 1회당 출력값 그 자체는 복수 비트가 된다.
<2. 인증 플로우>
그 다음, 도 4를 참조하여, 도 3에 도시된 구조를 갖는 메모리 시스템의 인증 플로우에 대해 설명한다.
인증이 개시되면(Start), 호스트 장치(10)는, 단계(S11)에서, XYE의 판독 명령(Read XYE)을 NAND 플래시 메모리(10)에 전송한다.
그 다음, 단계(S12)에서, NAND 플래시 메모리(10)는 판독 명령에 따라, 셀 어레이(11-1)로부터 XYE를 로딩하고(load XYE), 이것을 호스트 장치(20)에 전송한다.
후속해서, 단계(S13)에서, 호스트 장치(20)는 수신된 XYE에 관하여 전술된 암호해독 처리를 실행하여 XY를 회수한다(Retrieve XY).
그 다음, 단계(S14)에서, 호스트 장치(20)는 NAND 플래시 메모리(10)에 인증 요청(Request authentication)을 전송한다. 이 경우, 인증 요청은 Nonce_H를 포함할 수도 있다.
그 후, 단계(S15)에서, NAND 플래시 메모리(10)는 Nonce_H를 수신하고 XY를 로딩한다(Load XY(if required)).
그 다음, 단계(S16)에서, NAND 플래시 메모리(10)는 Nonce_N과 ν를 생성한다(Create Nonce_N, Create ν).
후속해서, 단계(S17)에서, NAND 플래시 메모리(10)는 전술된 바와 같이 ν를 가산하고, Z를 계산한다. NAND 플래시 메모리(10)는 Nonce_N과 Z를 호스트(20)에 전송한다.
그 다음, 단계(S18)에서, Nonce_N과 Z를 수신한 후에, 호스트(20)는 내적 연산 등의 미리결정된 연산을 실행하여, 데이터 C를 계산한다.
후속해서, 단계(S19)에서, 호스트(20)는 Z와 C의 비트별 XOR 값열에 관하여 Hamming 가중치 Hwt(Z
Figure 112013071488859-pct00022
C)를 계산하고, Hamming 가중치 Hwt(Z
Figure 112013071488859-pct00023
C)가 미리결정된 값 t*Clen을 밑도는지를 판정하기 위해 판정 처리를 실행한다(Check Hwt(Z
Figure 112013071488859-pct00024
C) ≤ t*Clen). 전술된 바와 같이, t는 Z의 계산시 NAND 플래시 메모리(10)에 의해 이용되었던 에러 비트 또는 에러 벡터에 있어서의 에러 부가 확률(또는 데이터에서 1의 출현 확률) η에 기초하는 값이며, η ≤ t < 0.5인 것으로 가정한다. 또한, clen은 C의 비트 길이인 것으로 가정한다.
후속해서, 단계(S20)에서, 단계(S19)에서의 판정 결과는 미리결정된 값보다 낮지 않을 때(Fail), 호스트(20)는 실패라고 판정하고 동작을 중지한다.
그 다음, 단계(S21)에서, 단계(S19)에서의 판정 결과가 미리결정된 값보다 낮을 때(Success), 호스트(20)는 미리결정된 라운드 수에 도달했는지를 판정한다(Enough round ?). 이 상황에서, 라운드 수란, 인증 요청 처리로부터 판정 처리까지의 일련의 처리를 말한다. 라운드 수에 도달하지 않으면(No), 인증 요청 처리(S14~)가 반복된다.
후속해서, 단계(S22)에서, 라운드 수에 도달하면(Yes), 호스트 장치(10)는 인증이 성공적으로 실행되었다고 간주하고, 필요하다면, XY에 기초하여 Media ID를 계산하는 처리를 실행한다. Media ID의 계산 처리 및 Media ID를 이용하는 방법(S23 및 그 이하)이 후술될 것이다.
전술된 동작에 의해, 제1 실시형태에 따른 인증 플로우가 종료된다(End).
한편, 각 라운드들마다 Nonce_N, Nonce_H 및 ν의 상이한 파라미터들을 이용하는 것이 필요하다. 또한, NAND 플래시 메모리(10)가 인증 요청을 수신했을 때, 이전 인증 요청시의 XY가 데이터 캐쉬 내에 로딩되어 있다면, 셀 어레이로부터 XY의 로딩을 생략하고 데이터 캐쉬 내의 값을 이용하는 것이 가능하다. 또한, 단계(S17) 후에, 데이터 캐쉬 내의 XY는 소거될 수도 있다. 특히, NAND 플래시 메모리(10)가 데이터 캐쉬에 액세스하는 기능을 외부에 제공하는 경우, 보안의 관점에서는, 인증에 필요한 데이터 Z가 계산된 단계에서 데이터 캐쉬 내의 비밀 정보를 소거하는 것이 유용하다.
<3. 유익한 효과>
제1 실시형태에 관련된 구조 및 인증 방법에 따르면, 상기 포인트 (I) 내지 (IV)는 개선될 수 있고, 적어도 다음과 같은 유익한 효과 (1)이 얻어질 수 있다.
(1) 인증자와 피인증자 간에 상이한 비밀 정보 XY가 비밀 정보 XY의 비밀 상태를 유지한 채로 공유될 수 있고, 공유된 비밀 정보에 기초한 경량인 계산에 의해 인증이 실행될 수 있다.
본 실시형태에 따른 NAND 플래쉬 메모리(10)는, 비밀 정보 XY를 기록 금지/판독 금지 영역인 은닉 영역(11-2)에 저장하고, 비밀 정보 XY를 암호화하고 암호화된 비밀 정보에 정정 코드를 부가함으로써 얻어지는 XYE를 기록 금지/판독 허용 영역인 ROM 영역(11-1)에 저장한다. 또한, 호스트(20)는, XYE를 판독하여 에러 정정 처리(21) 및 암호해독 처리(22)를 실행하는 기능을 가지며, 암호해독에 이용되는 키(23)에 의해 NAND 플래쉬 메모리(10)와 호스트 장치(20) 사이에서 비밀 정보 XY를 공유할 수 있다. 따라서, 인증자와 피인증자는 공유된 비밀 정보 XY에 의해 인증을 실행할 수 있다(S11 내지 S23).
또한, NAND 플래쉬 메모리(10)와 호스트 장치(20)는 임시 난수를 생성하는 RNG(16, 17), 순열&교환 모듈(18, 29), 압축 계산 모듈(13, 26), 임시 난수의 비트별 가산 모듈(C1, 26), 및 출력 모듈(15)을 포함한다. 또한, NAND 플래시 메모리(10)는 바이어스드 RNG(14)를 포함한다. 호스트(20)는, NAND 플래쉬 메모리(10)로부터 출력된 Z와 호스트 장치 내부에서 계산한 C를 비교함으로써 인증을 실행하는 판정 모듈(30)을 포함한다.
전술된 바와 같이, 제1 실시형태에서, 비밀 정보 XY가 기록 금지/판독 금지 영역인 은닉 영역(11-2)에 저장되고 이 정보를 이용함으로써 데이터 Z가 생성되기 때문에, 은닉성이 확보될 수 있다. 게다가, 비밀 정보 XY를 암호화하고 암호화된 비밀 정보에 정정 코드를 부가함으로써 얻어지는 XYE는, 기록 금지/판독 허용 영역인 ROM 영역(11-1)에 저장된다. 호스트(20)는, 이로부터 판독되는 XYE에 대해, 에러 정정 처리(21), 및 키(23)를 이용한 암호해독 처리(22)를 실시함으로써, XY를 공유한다. 따라서, 인증자와 피인증자 간에 상이한 비밀 정보 XY가, 비밀 정보 XY의 비밀 상태를 유지한 채로 공유될 수 있다.
따라서, 제1 실시형태에 관련된 구조 및 인증 방법에 따르면, 인증자와 피인증자 간에 상이한 비밀 정보 XY가 비밀 정보 XY의 비밀 상태를 유지한 채로 공유될 수 있고, 공유된 비밀 정보에 기초한 경량인 계산에 의해 인증이 실행될 수 있다.
[제2 실시형태]
그 다음, 도 5 및 도 6을 참조하여, 제2 실시형태에 따른 인증자/피인증자 및 인증 방법에 대해 설명한다. 이하의 설명에서, 제1 실시형태와 중복되는 부분의 설명을 생략한다.
<구조예(메모리 시스템)>
도 5를 참조하여, 제2 실시형태의 구조예를 설명한다.
도 5에 도시된 바와 같이, 제2 실시형태의 구조예는, NAND 플래쉬 메모리(10)가 각각 ROM 영역(11-1) 및 은닉 영역(11-2)에, 복수의 XYE 및 복수의 XY를 저장한다는 점에서 제1 실시형태와는 상이하다. 이 예에서, i와 j가 상이할 때, XY[i] ≠ XY[j]이고, XYE[i] ≠ XYE[j].
이런 방식으로, 복수의 XYE 및 복수의 XY 세트를 저장함으로써, 비밀 정보 X 및 Y가 노출될 때 비밀 정보를 업데이트하기 위한 수단을 제공하는 것이 가능하다. XY와 XYE의 한 개 세트가 중간자 공격 등에 의해 노출되고, 노출된 XY 및 XYE를 부정유용함으로써 위조 장치가 제조된다면, 본 실시형태에서는, 호스트(20)가 보유하는 KEY[1]23을 업데이트할 수 있다(예를 들어, KEY[1]=> 업데이트된 KEY[2]). 이런 방식으로, 노출된 XY 및 XYE 이외의 세트를 이용함으로써, 위조 장치를 제거하는 것이 가능해진다. 각 XY[i]의 암호화에 이용되는 KEY의 경우, i가 상이할 때, 상이한 KEY를 이용하는 것이 바람직하다.
다른 양태들에서는, 제2 실시형태는 제1 실시형태와 실질적으로 동일하므로, 상세한 설명은 생략한다.
<인증 플로우>
그 다음, 도 6을 참조하여, 제2 실시형태에 따른 인증 동작을 설명한다.
제2 실시형태에서는, NAND 플래쉬 메모리(10)에는 복수의 XY 및 복수의 XYE가 기록되기 때문에, 호스트(20)는 이용하고자 하는 XY를 선택함으로써 인증을 실행한다.
따라서, 제2 실시형태에서는, 단계(S14)에서, 호스트(20)가 인증을 요청할 때(Request authentication), 호스트(20)는 이용하고자 하는 XY를 지정하는 파라미터 i를, 난수 Nonce_H와 함께, NAND 플래쉬 메모리(10)에 전송한다. 이 점에서, 제2 실시형태는 제1 실시형태와는 상이하다.
다른 양태들에서는, 제2 실시형태는 제1 실시형태와 실질적으로 동일하므로, 상세한 설명은 생략한다.
<유익한 효과>
제2 실시형태에 관련된 인증자/피인증자 및 인증 방법에 따르면, 상기 포인트 (I) 내지 (IV)는 개선될 수 있고, 적어도 전술된 유익한 효과 (1)이 얻어질 수 있다.
또한, 제2 실시형태는, NAND 플래쉬 메모리(10)가 각각 ROM 영역(11-1) 및 은닉 영역(11-2)에, 복수의 XYE 및 복수의 XY를 저장한다는 점에서 제1 실시형태와는 상이하다.
이런 방식으로, 복수의 XYE 및 복수의 XY 세트를 저장함으로써, 비밀 정보 X 및 Y가 노출될 때 비밀 정보를 업데이트하기 위한 수단을 제공하는 것이 가능하다. XY와 XYE의 한 개 세트가 중간자 공격 등에 의해 노출되고, 노출된 XY 및 XYE를 부정유용함으로써 위조 장치가 제조된다면, 본 실시형태에서는, 호스트(20)가 보유하는 KEY[1]23을 업데이트할 수 있다(예를 들어, KEY[1]=> 업데이트된 KEY[2]).
따라서, 제2 실시형태의 인증 플로우에서는, 단계(S14)에서, 호스트(20)가 인증을 요청할 때(Request authentication), 호스트(20)는 이용하고자 하는 XY를 지정하는 파라미터 i를, 난수 Nonce_H와 함께, NAND 플래쉬 메모리(10)에 전송한다.
제2 실시형태에서, 전술된 바와 같이, NAND 플래쉬 메모리(10)는, 복수의 XY 및 복수의 XYE를 가지며, 호스트 장치로부터의 명령에 의해 XYE를 선택적으로 전송하는 기능을 가지며, 호스트 장치로부터의 명령에 의해 인증에 이용되는 XY를 선택적으로 설정한다. 또한, 호스트 장치는, 호스트 장치 자신이 보유하는 키에 대응하는 XYE를 선택적으로 판독하는 기능을 가지며, XYE를 암호해독하는 기능을 가지며, 자신이 보유하는 키를 미리결정된 조건하에서 업데이트하는 기능을 가진다.
그 결과, 노출된 XY 및 XYE 이외의 세트를 이용함으로써, 유익하게도 위조 장치를 제거하는 것이 가능해진다.
[제3 실시형태]
그 다음, 도 7 내지 도 9를 참조하여, 제3 실시형태에 따른 인증자/피인증자 및 인증 방법에 대해 설명한다.
<구조예(메모리 시스템)>
도 7을 참조하여, 제3 실시형태의 구조예를 설명한다.
도 7에 도시된 바와 같이, 제3 실시형태는, NAND 플래쉬 메모리(10)가 각각 ROM 영역(11-1B) 및 은닉 영역(11-2B)에, 복수의 XYsubE 및 복수의 XYsub를 저장한다는 점에서 제2 실시형태와는 상이하다. 이 예에서, i와 j가 상이할 때, XYsub[i] ≠ XYsub[j]이고, XYsubE[i] ≠ XYsubE[j]. XYsubE는 XYsub를 암호화한 다음 정정 코드를 부가함으로써 얻어지는 데이터이다.
XYsub는, XY처럼, 기록 금지/판독 금지 영역(은닉 영역)(11-2B)에 기록되고, XYsubE는, XYE처럼, 기록 금지/판독 허용 영역(ROM 영역)(11-1B)에 기록된다.
XYmain의 데이터 크기는 XYsub보다 크다(데이터 크기:XYmain> XYsub). 또한, XYmain과 XYsub로 구성된 데이터는 전술된 비밀 정보 XY에 대응한다.
제3 실시형태에서는, 전술된 바와 같이, XY의 세트 외에도 XYsub[i]와 XYsubE[i]의 세트가 더 포함되므로, 제3 실시형태는, 비밀 정보 X 및 Y가 효율적으로 기록될 수 있다는 점에서 유리하다. 상세한 내용은 이하에서 설명될 것이다.
또한, NAND 플래쉬 메모리(10)는, XYsub를 저장하기 위한 데이터 캐쉬(12B), 및 XYmain과 XYsub를 비트별로 가산하기 위한 비트별 가산 모듈(C2)을 포함한다. 비트별 가산 모듈(C2)의 출력값은 인증에 이용되는 전술된 XY 값에 대응한다. 이 예에서, XYmain과 XYsub간에는 비트 길이가 상이하므로, 비트 가산(C2)에는 XYsub의 반복 데이터가 적용된다.
예를 들어, 도면에 도시된 바와 같이, 비트 가산은 미리결정된 연산으로서 생각할 수 있다. XYmain의 데이터 크기가 XYsub의 데이터 크기의 정수배일 때, XYmain의 데이터를 저장하는 Data cache로부터 XYmain이 연속적으로 전송되고 XYsub의 데이터를 저장하는 Data cache부터는 XYsub가 연속적으로 및 반복적으로 전송되는 구성을 생각해 볼 수 있다. XYsub를 저장하는 Data cache는 링 버퍼라고 생각할 수도 있다. 비트별 가산 외에, XYmain과 XYsub의 결합 값이 XY로서 이용되거나, XYmain과 XYsub의 인터리브 결합 값이 XY로서 이용될 수도 있다. 게다가, XYmain과 XYsub가 LFSR에 입력되고 LFSR의 미리결정된 레지스터의 값이 XY로서 이용될 수도 있다. 요약하면, 본 실시형태에서는, 비트별 가산 모듈이 이용되고 있지만, 2개 입력으로 구성된 데이터를 XY로서 이용하는 임의의 연산 방법도 적용가능하다.
마찬가지로, 호스트(20)는, 판독된 XYsubE에 적응적인, 정정 처리 모듈(21B), 암호해독 모듈(22B), 키 보유 모듈(23B), 데이터 저장 모듈(25B), 및 가산 모듈(C3)을 더 포함한다. 상기 구조에 의해, 호스트(20)는 에러 정정 처리를 실행하고, 대응하는 KEY_XYsub에 의해 암호해독을 실행함으로써, XYsub를 얻는다. 따라서, 호스트 장치와 NAND 플래쉬 메모리 사이에서 비밀 정보 XYmain 및 XYsub가 공유될 수 있다. 도면에서는 KEY_XYmain과 KEY_XYsub가 상이한 객체로 도시되어 있지만, 이들은 실제로는 동일할 수도 있다. 각 XYsub[i]의 암호화에 이용되는 KEY_XYsub의 경우, i가 상이할 때, 상이한 KEY_XYsub를 이용하는 것이 바람직하다. 게다가, 호스트 장치(20)와 메모리(10)는, XYmain과 XYsub를 이용하여 미리결정된 연산을 실행함으로써 얻어지는 XY값에 기초하여 인증 처리를 실행한다.
<인증 플로우>
그 다음, 도 8을 참조하여, 제3 실시형태에 따른 인증 동작을 설명한다.
제3 실시형태에서는, NAND 플래쉬 메모리(10)에 XYmain 외에도 XYsub가 기록되며, 또한 이들을 암호화함으로써 얻어지는 XYmainE 및 XYsubE가 기록된다.
따라서, 도면에 도시된 바와 같이, 대응하는 단계(S13)에서, 호스트(10)는, XYmainE 및 XYsubE를 추가로 판독하고, 이들을 암호해독하여, 비밀 정보 XYmain 및 XYsub에 기초하여 비밀 정보 XY를 생성한다(Create XY). 후속해서, 호스트(20)는 비밀 정보 XYmain과 XYsub로부터 유도된 정보를 이용함으로써 유사한 인증을 실행한다.
마찬가지로, NAND 플래쉬 메모리(10)측에서는, 단계(S15)에서, 판독된 비밀 정보 XYmain 및 XYsub에 기초하여 비밀 정보 XY가 생성된다(Create XY). 이 점에서, 제3 실시형태는 제2 실시형태와는 상이하다.
<유익한 효과>
제3 실시형태에 관련된 인증자/피인증자 및 인증 방법에 따르면, 상기 포인트 (I) 내지 (IV)는 개선될 수 있고, 적어도 전술된 유익한 효과 (1)이 얻어질 수 있다. 또한, 제3 실시형태에서는, 다음과 같은 유익한 효과 (2)가 얻어질 수 있다.
(2) 비밀 정보 X, Y는 효율적으로 기록될 수 있고, 기록 시간은 유익하게도 단축될 수 있다.
제3 실시형태에서는, NAND 플래쉬 메모리(10)는, 복수의 XYsub 및 복수의 XYsubE를 가지며, 호스트(20)로부터의 명령에 의해 XYsubE를 선택적으로 전송하고, 호스트(20)로부터의 명령에 의해 인증에 이용되는 XYsub를 선택적으로 설정하며, 선택된 XYsub와 XY의 미리결정된 연산에 의해 유도되는 값에 의해 인증을 실행한다.
또한, 호스트 장치는, 호스트 장치 자신이 보유하는 키(23B)에 대응하는 XYsubE를 선택적으로 판독하는 기능을 가지며, XYsubE를 암호해독하는 기능(22B)을 가지며, 자신이 보유하는 키(23B)를 미리결정된 조건하에서 업데이트하는 기능을 가지며, 선택된 XYsub와 XYmain의 미리결정된 연산에 의해 유도되는 값에 의해 인증(30)을 실행한다.
전술된 바와 같이, XYmain의 세트 외에도 XYsub[i]와 XYsubE[i]의 세트가 더 포함되므로, 비밀 정보 X 및 Y가 효율적으로 기록될 수 있다는 이점이 있다.
더 구체적으로는, 예를 들어, 도 9에 이것이 예시되어 있다. 도 9에 도시된 바와 같이, NAND 플래쉬 메모리의 제조 공정에서, XYmain, XYmainE, XYsub, XYsubE의 복수의 세트는 XY 생성기(XY GEN)에 의해 생성되어, 기입기(Writer)에 의해 복수의 NAND 플래쉬 메모리(여기서는, Chip 1 내지 Chip 4)에 기입된다.
이 예에서, XYmain 및 XYmainE의 데이터는, 복수의 칩 Chip 1 내지 Chip 4를 포함하는 그룹(예를 들어, 로트(lot))에서 동일한 데이터일 수도 있다. 반면, XYsub 및 XYsubE는, 칩 Chip 1 내지 Chip 4마다 상이한 데이터(XYsub1 내지 XYsub4, 및 XYsubE1 내지 XYsubE4)로 할 필요가 있다.
전술된 바와 같이, 제3 실시형태에서는, 데이터 기입 동작에서, 데이터량이 많은 XYmain 및 XYmainE가 복수의 칩 Chip 1 내지 Chip 4 간에 공통으로 된다. 이로써, 메모리에서의 데이터 기입 처리가 최적화할 수 있고 데이터가 효율적으로 기록될 수 있다.
만일 XYmain 및 XYmainE가 하드와이어드 구성에 의해 조직되는 경우, 실제로 기록되는 데이터는 XYsub 및 XYsubE이고, 그 데이터량은 작고, 기록 시간이 단축될 수 있다. XYmain 및 XYmainE가 셀에 기록된다면, 이들은 그룹 내에서 동일하므로, NAND 플래쉬 메모리에서 데이터 기록 장치에 기록 데이터를 전송하기 위한 시간을 단축할 수 있다. 전술된 바와 같이, 기록 시간의 증가는 비용 증가가 되므로, 제3 실시형태는 제조 비용이 절감될 수 있다는 큰 장점을 가진다.
[제4 실시형태(다중 기록의 예)]
그 다음, 도 10 및 도 11을 참조하여, 제4 실시형태에 따른 인증자/피인증자 및 인증 방법에 대해 설명한다.
<구조예(메모리 시스템)>
도 10을 참조하여, 제4 실시형태의 구조예를 설명한다.
제4 실시형태는, 복수의 XY[i]를 다중 복제함으로써 생성되는 정보(11-2A, 11-2B 및 11-2C)가 메모리(10)의 은닉 영역(11-2)에 더 포함된다는 점에서 제2 실시형태와는 상이하다.
구체적으로는, 제2 실시형태에서 XY[i]를 복제함으로써 얻어지는 데이터는, 도 10에서 XY[i, 1], XY[i, 2], ... , XY[i, n]으로 표시되고, XY[i, 1] = XY[i, 2] =, ... ,= XY[i, n]이며, 여기서, 1 ≤ i ≤ m이다. 또한, XY[1, j]≠ XY[2, j] ≠, ... , ≠ XY[m, j], 여기서, 1≤ j ≤ n.
이 예에서, ECC는 XYE에 추가되는 반면, XY에는 추가되지 않는다. 따라서, NAND 플래쉬 메모리에서 셀로부터 판독된 데이터에 에러가 포함되어 있는 경우, NAND 플래쉬 메모리에 의해 인증에 이용되는 XY의 완전성이 소실되는 것도 생각해 볼 수 있다. 그러나, 본 실시형태에서와 같이, 복수의 XY[i]를 복제함으로써 생성되는 정보(11-2A, 11-2B 및 11-2C)가 더 포함되므로, 체크섬&선택 모듈(12-0)은 에러의 포함여부를 복제 데이터간의 데이터 비교에 의해 검출할 수 있다.
따라서, 본 실시형태의 메모리는, XY[i]를 복제함으로써 생성되는 정보(11-2A, 11-2B 및 11-2C)에 적응하기 위해 체크섬&선택 모듈(Check sum & select)(12-0)을 더 포함한다는 점에서 제2 실시형태와는 상이하다.
도 10에서, 셀(11-2)로부터 로딩되는 적어도 2개의 XY의 데이터 세트는 전술된 바와 동일한 미리결정된 방법에 의해 비교되어, 에러의 포함 여부가 검사된다. 에러가 포함되어 있거나 에러가 제거될 수 없다면, 적어도 2개의 XY의 상이한 데이터 세트가 다시 한번 로딩되어, 유사한 검사가 실행된다. 이것은, 아무런 에러도 포함되지 않을 때까지 또는 에러가 제거될 수 있는 데이터 세트가 발견될 때까지 반복된다. 이러한 데이터 세트가 발견되면, 이 데이터 세트가 인증에 이용된다. 상기 미리결정된 방법의 예로서, 2개의 XY가 로딩되고, 비트별로 XOR 값이 계산된 다음, 모든 XOR 값이 0인지에 관해 검사가 실행되는 방법을 생각해 볼 수 있다. 대안으로서, 3개 이상의 XY가 로딩되고, 다수결 검사에 의해 비트별로 에러를 제거한 XY를 얻는 방법도 생각해 볼 수 있다. 또한, 이 도면에서는, XY의 복제 데이터 모두는 동일한 데이터이지만, 복제 데이터에서 홀수 번호의 데이터의 극성과 짝수 번호의 데이터의 극성이 반전되는 상보 관계를 갖는 데이터가 형성되어 사전에 기록되는 방법도 생각해 볼 수 있다. 이 경우, 상보 관계를 갖는 2개의 XY가 로딩되고, 비트별로 XOR 값이 계산된 다음, 모든 XOR 값이 1인지에 관해 검사가 실행된다.
<인증 플로우>
그 다음, 도 11을 참조하여, 제4 실시형태에 따른 인증 동작을 설명한다.
도 11에 도시된 바와 같이, 제4 실시형태에서는, NAND 플래쉬 메모리(10)의 은닉 영역(11-2)에는 복수의 XY가 다중 기록된다.
따라서, 단계(S15)에서, NAND 플래쉬 메모리(10)는, 적어도 2개의 XY를 판독하고, 이들을 비교하여, 에러를 포함하지 않는 XY를 이용함으로써 인증을 실행한다(Load/compare XY).
<유익한 효과>
제4 실시형태에 관련된 인증자/피인증자 및 인증 방법에 따르면, 상기 포인트 (I) 내지 (IV)는 개선될 수 있고, 적어도 전술된 유익한 효과 (1)이 얻어질 수 있다.
또한, 제4 실시형태에 따르면, 복수의 XY[i]를 다중 복제함으로써 생성되는 정보(11-2A, 11-2B 및 11-2C)가 메모리(10)의 은닉 영역(11-2)에 더 포함된다.
이 경우, ECC는 XYE에 추가되는 반면, XY에는 추가되지 않는다. 따라서, NAND 플래쉬 메모리에서 셀로부터 판독된 데이터에 에러가 포함되어 있는 경우, NAND 플래쉬 메모리에 의해 인증에 이용되는 XY의 완전성이 소실되는 것도 생각해 볼 수 있다. 그러나, 제4 실시형태에 따르면, 복수의 XY[i]를 복제함으로써 생성되는 정보(11-2A, 11-2B 및 11-2C)가 더 포함되므로, 체크섬&선택 모듈(12-0)은 에러의 포함여부를 복제 데이터간의 데이터 비교에 의해 검출할 수 있다. 그 결과, 메모리(10)에서 셀로부터 판독된 데이터에 에러가 포함되어 있는 경우에도, 메모리(10)에 의한 인증에 이용되는 XY의 완전성이 소실되는 것을 유익하게도 방지할 수 있다.
[제5 실시형태]
그 다음, 도 12 및 도 13을 참조하여, 제5 실시형태에 따른 인증자/피인증자 및 인증 방법에 대해 설명한다.
<구조예(메모리 시스템)>
도 12를 참조하여, 제5 실시형태의 구조예를 설명한다. 제5 실시형태의 구조예는 제3 및 제4 실시형태의 조합에 관련된 예이다.
도 12에 도시된 바와 같이, 제5 실시형태의 NAND 플래시 메모리(10)는, XYsub 및 XYsubE의 복제 데이터 XYsub[i, j] 및 XYsubE[i, j]도 역시 은닉 영역(11-2)에 기록된다는 점에서 제4 실시형태와는 상이하다.
또한, 이 실시형태는 상기에 적응하기 위한 체크섬&선택 모듈(12-0B) 및 데이터 캐쉬(12B)를 더 포함한다.
<인증 플로우>
그 다음, 도 13을 참조하여, 제5 실시형태에 따른 인증 동작을 설명한다.
제5 실시형태에서는, NAND 플래쉬 메모리(10)에 XYsub도 역시 다중 기록된다(XYsub[i, j] 및 XYsubE[i, j]).
따라서, 단계(S15)에서, NAND 플래쉬 메모리(10)는, 적어도 2개의 XYsub를 더 판독하고, 이들을 비교하여, 에러를 포함하지 않는 XYsub를 이용함으로써 인증을 실행한다(Load/compare XY 및 XYsub).
<유익한 효과>
제5 실시형태에 관련된 인증자/피인증자 및 인증 방법에 따르면, 상기 포인트 (I) 내지 (IV)는 개선될 수 있고, 적어도 전술된 유익한 효과 (1)이 얻어질 수 있다.
또한, 제5 실시형태에 따르면, NAND 플래쉬 메모리(10)는 XYsub 및 XYsubE의 XYsub[i, j] 및 XYsubE[i, j]를 은닉 영역(11-2)에 기록한다.
필요하다면, 이 실시형태의 구조 및 방법이 적용가능하다.
[제6 실시형태]
그 다음, 도 14 및 도 15를 참조하여, 제6 실시형태에 따른 인증자/피인증자 및 인증 방법에 대해 설명한다.
<구조예(메모리 시스템)>
도 14를 참조하여, 제6 실시형태의 구조예를 설명한다.
제6 실시형태에서도, NAND 플래시 메모리(10)는 복수의 XY[i]를 복제함으로써 생성되는 정보를 포함한다. 구체적으로는, 제2 실시형태에서 XY[i]를 복제함으로써 생성되는 데이터는, 도 14에서 XY[i, 1], XY[i, 2], ... , XY[i, n]으로 표시되고, XY[i, 1] = XY[i, 2] =, ... ,= XY[i, n]이며, 여기서, 1 ≤ i ≤ m이다. 또한, XY[1, j]≠ XY[2, j] ≠, ... , ≠ XY[m, j], 여기서, 1≤ j ≤ n.
이 예에서, XY 데이터의 복제는 제4 실시형태에서와 같다. 그러나, 제6 실시형태에서는, NAND 플래쉬 메모리(10)측에서는 복제 데이터의 비교 처리가 실행되지 않는다. 그 대신, 비교 처리는 호스트(20)에서 실행된다. 이 점에서, 제6 실시형태는 제4 실시형태와는 상이하다. 또한, 제6 실시형태는, 호스트(20)가 다수결 검사 모듈(Majority check)(31)을 포함한다는 점에서 제4 실시형태와는 상이하다.
구체적으로는, 호스트(20)에 의해 지정되는 i에 따라, NAND 플래쉬 메모리(10)는 XY[i, 1], XY[i, 2], ... ,XY[i, n] 중 적어도 2개를 로딩하고, 각각의 XY에 관하여 전술된 인증 처리를 실행한다. 이 경우, 각각의 XY에 대해 동일한 Nonce_N 및 동일한 Nonce_H가 이용되고, 또한 바이어스드 RNG에 의해 생성되는 동일한 ν이 적용된다.
NAND 플래쉬 메모리(10)의 송신 모듈(15)은 상이한 파라미터들의 동일한 조건하에 복수의 XY에 관해 복수의 Z (Z[i, 1], Z[i, 2],..., Z[i, n])를 계산하고, 이들을 호스트(20)에 전송한다.
복수의 Z (Z[i, 1], Z[i, 2],..., Z[i, n])를 수신한 후, 호스트 장치는 다수결 검사 모듈(31)에 의해 다수결 검사를 실행하고, 단일의 Z를 얻는다. 이 경우, 각 Z가 복수의 비트 요소들로 구성되고, 압축 계산 모듈의 출력이 복수 비트로 구성되면, 다수결 검사는 비트별로 실행된다.
다수결 검사에 의해 에러가 제거된 Z를 얻은 후, 호스트 장치는 전술된 바와 동일한 판정 처리(30)를 실행함으로써, NAND 플래쉬 메모리(10)를 인증한다.
<인증 플로우>
그 다음, 도 15를 참조하여, 제6 실시형태에 따른 인증 동작을 설명한다.
제6 실시형태에서는, NAND 플래쉬 메모리(10)는, NAND 플래쉬 메모리(10)에 다중 기록되어 있는 XY를 이용함으로써 복수의 Z를 계산하고, 이 Z들을 전송한다. 호스트 장치는 복수의 Z에 관해 다수결 검사를 실행함으로써 단일의 Z를 얻고 인증을 실행한다.
따라서, 단계(S17)에서, NAND 플래시 메모리(10)는 계산된 복수의 Z와 j를 호스트(20)에 전송한다.
후속해서, 단계(S18)에서, 호스트(20)는 상이한 복수의 Z의 다수결 검사(Majority check)를 실행하고, 이것이 제4 실시형태와는 상이한 점이다.
<유익한 효과>
제6 실시형태에 관련된 인증자/피인증자 및 인증 방법에 따르면, 상기 포인트 (I) 내지 (IV)는 개선될 수 있고, 적어도 전술된 유익한 효과 (1)이 얻어질 수 있다.
또한, 제6 실시형태에서는, NAND 플래시 메모리(10)는 복수의 XY[i]를 복제함으로써 생성되는 정보를 더 포함한다. 또한, 호스트(20)는 다수결 검사 모듈(Majority check)(31)을 포함한다.
따라서, 계산 자원이 제약되어 있는 NAND 플래쉬 메모리(10)에서의 비교 처리의 부하가 경감될 수 있고, 비교 처리(다수결 처리)(31)를 실행하기 위해 충분한 계산 자원을 갖는 호스트(20)에 의존할 수 있다. 그 결과, NAND 플래쉬 메모리(10)의 비용 증가가 억제될 수가 있고, 에러가 제거될 수 있다.
[제7 실시형태]
그 다음, 도 16 및 도 17을 참조하여, 제7 실시형태에 따른 인증자/피인증자 및 인증 방법에 대해 설명한다.
<구조예(메모리 시스템)>
도 16을 참조하여, 제7 실시형태의 구조예를 설명한다. 제7 실시형태는 제3 및 제6 실시형태의 조합의 예에 관한 것이다.
도 16에 도시된 바와 같이, NAND 플래시 메모리(10)는 또한 XYsub 및 XYsubE의 복제 데이터(11-2B 및 11-1B)를 저장한다. 전술된 제6 실시형태와 같이, 복수의 XY에 대한 인증 데이터 Z가 계산되고 계산 모듈(15)에 의해 호스트(20)에 전송되고, 호스트(20)에서 다수결 검사(31)가 실행된다.
<인증 플로우>
그 다음, 도 17을 참조하여, 제7 실시형태에 따른 인증 동작을 설명한다.
제7 실시형태에서는, NAND 플래쉬 메모리(10)는, NAND 플래쉬 메모리(10)에 다중 기록되어 있는 XYmain 및 XYsub를 이용함으로써 복수의 Z를 계산하고, 이 Z들을 전송한다. 호스트 장치는 복수의 Z에 관해 다수결 검사를 실행함으로써 단일의 Z를 얻고 인증을 실행한다.
따라서, 단계(S11)에서, 호스트(20)는 다중 기록된 XYmain 및 XYsub의 판독 요청(Read XYmainE 및 XYsubE)을 발생한다.
후속해서, 단계(S12)에서, NAND 플래쉬 메모리(10)는, 다중 기록된 XYmain 및 XYsub를 판독하여(LoadXYmainE 및 XYsubE), XYmain 및 XYsub를 호스트(20)에 전송한다(XYmainE 및 XYsubE).
<유익한 효과>
제7 실시형태에 관련된 인증자/피인증자 및 인증 방법에 따르면, 상기 포인트 (I) 내지 (IV)는 개선될 수 있고, 적어도 유익한 효과 (1)이 얻어질 수 있다.
또한, 제7 실시형태에 따르면, NAND 플래시 메모리(10)는 또한 XYsub 및 XYsubE의 복제 데이터(11-2B 및 11-1B)를 기록한다. 전술된 제6 실시형태와 같이, 복수의 XY에 대한 인증 데이터 Z가 계산되고 계산 모듈(15)에 의해 호스트(20)에 전송되고, 호스트(20)에서 다수결 검사(31)가 실행된다.
이런 방식으로, 필요하다면, 이 실시형태가 적용가능하다.
[제8 실시형태(Media ID 회수 처리)]
그 다음, 도 18 내지 도 21을 참조하여, 제8 실시형태를 설명한다. 제8 실시형태는, 전술된 단계 S22에서 미디어 ID(Media lD)를 계산하는 다양한 처리(Media ID retrieve process)에 관한 것이다.
ID 회수 처리 (1)
ID 회수 처리 (1)는 도 18에 도시된 바와 같다. 도 18에 도시된 바와 같이, 이 예(1)에서, 단계(RS1)에서, 전술된 인증에 이용되는 XYmain 및 XYsub에 관해 일방향 함수 처리(One-way function process)가 실행된다. 처리의 결과는 Media ID로서 취급된다.
이 경우, 일방향 함수 처리로서, SHA-1, SHA-256, 또는 AEG-H 등의 암호에 기초하는 일방향 연산을 이용할 수 있다.
ID 회수 처리 (2)
ID 회수 처리 (2)는 도 19에 도시된 바와 같다. 도 19에 도시된 바와 같이, 이 예(2)에서는, 단계(RS1, RS2)에서, 전술된 인증에 이용된 XYmain과 XYsub는, 전술된 인증 처리에 이용된 KEY_XYmainE 및 KEY_XYsubE의 암호해독에 이용된 KEY_XYmain과 KEY_XYsub 중 하나에 대응하는 KEY_XY를 이용함으로써 추가로 암호해독 처리(Decode)된다.
후속해서, 단계(RS3)에서, 유사한 일방향 처리(One-way function)가 실행되고, 처리의 결과는 Media ID로서 취급된다.
ID 회수 처리 (3)
ID 회수 처리 (3)는 도 20에 도시된 바와 같다. 도 20에 도시된 바와 같이, 이 예(3)에서는, 단계(RS1, RS2)에서, 전술된 인증에 이용된 XYmain과 XYsub는, 전술된 인증 처리에 이용된 KEY_XYmainE 및 KEY_XYsubE의 암호해독에 이용된 KEY_XYmain과 KEY_XYsub를 이용함으로써 추가로 암호해독 처리(Decode)된다.
후속해서, 단계(RS3)에서, 유사한 일방향 처리(One-way function)가 실행되고, 처리의 결과는 Media ID로서 취급된다.
ID 회수 처리 (4)
ID 회수 처리 (4)는 도 21에 도시된 바와 같다. 도 21에 도시된 바와 같이, 이 예(4)에서는, 단계(RS1, RS2)에서, 전술된 인증에 이용된 XYmain과 XYsub는, 전술된 인증 처리에 이용된 KEY_XYmainE 및 KEY_XYsubE의 암호해독에 이용된 KEY_XYmain과 KEY_XYsub와는 상이한 KEY_XYmain2과 KEY_XYsub2를 이용함으로써 추가로 암호해독 처리(Decode)된다. 이 경우, KEY_XYmain2 and KEY_XYsub2는 동일한 값을 가질 수 있다.
후속해서, 단계(RS3)에서, 유사한 일방향 처리(One-way function)가 실행되고, 처리의 결과는 Media ID로서 취급된다.
[제9 실시형태(Media ID 결합 처리)]
그 다음, 도 22 및 도 23을 참조하여, 제9 실시형태를 설명한다. 제9 실시형태는 Media ID의 이용 방법(Media ID binding process)에 관한 것이다.
예를 들어, 상용 동영상 콘텐츠 등이 물리 매체에 기록되고 재생되는 경우, 이 물리 매체에 고유한 식별 정보가 콘텐츠 기록시의 암호화 처리에 이용되고 콘텐츠가 그 물리 매체에 결합되는 방법이 이용된다.
콘텐츠 재생시, 식별 정보에 기초하는 암호해독 처리 또는 검사 처리가 실행되고, 재생된 식별 정보가 콘텐츠 기록시의 암호화 처리에 이용된 식별 정보와 일치하지 않는 경우, 콘텐츠의 재생이 정지되는 방법이 채택된다. 물리 매체의 예로서는, SD 카드 등의 착탈식 매체와, 이동 전화 등에 내장되는 임베디드 메모리가 포함된다.
어쨌든, 전술된 방법의 목적은, 소정 매체에 기록되어있는 암호화된 콘텐츠가 또 다른 매체에 불법 복제되었을 때, 불법 복제된 콘텐츠의 재생을 중단하는 것이다. 이 목적을 위한 정보로서, 매체마다 다른 전술된 식별 정보(media ID)가 이용된다.
ID 결합 처리 (1)
ID 결합 처리 (1)는 도 22에 도시된 바와 같다. 도 22에 도시된 바와 같이, 이 예 (1)에서, MAC(Message Authentication Code) 생성 처리가 실행되고, 이것은 불법적인 복제 방지를 위해 이용된다.
구체적으로는, 단계(BP1)에서, 전술된 식별 정보로서 Media ID를 이용하는 방법예에서, 콘텐츠 암호화에 이용되는 콘텐츠 키(Content Key)에 기초하여 Media ID 또는 기타의 정보에 대해 MAC 생성 처리가 실행된다.
후속해서, 매체에 콘텐츠를 기록하는 장치에서, MAC이 생성되고 생성된 MAC은 매체에 기록된다. 매체로부터 콘텐츠를 재생하는 장치에서, Media ID 또는 콘텐츠 키(Content Key)에 기초하여, 기록된 MAC이 검사된다. 진정성이 확인되면, 콘텐츠가 재생된다. 진정성이 확인되지 않으면, 콘텐츠의 재생이 중단되는 방법이 적용된다.
ID 결합 처리 (2)
ID 결합 처리 (2)는 도 23에 도시된 바와 같다. 도 23에 도시된 바와 같이, 이 예 (2)에서는, Media ID는 콘텐츠 암호화에 이용되는 콘텐츠 키를 생성하기 위한 정보로서 이용된다.
단계(BP1)에서, 콘텐츠를 매체에 기록하는 장치에서는, Media ID 및 콘텐츠 키 프리커서(Content Key Precursor)가 일방향 처리된다(One-way function).
콘텐츠를 매체에 기록하는 장치에서, 처리된 콘텐츠 키에 의해 암호화된 콘텐츠가 기록된다.
매체로부터 콘텐츠를 재생하는 장치에서, 기록된 콘텐츠 키 프리커서와 Media ID는 유사한 일방향 함수 처리되어, 콘텐츠 키를 얻는다. 따라서, 콘텐츠의 암호해독 및 재생이 실행된다. Media ID가 일치하지 않는 경우, 즉, 콘텐츠 데이터가 상이한 매체에 불법 복제된 경우, 유도된 콘텐츠 키는 콘텐츠 암호화에 이용된 콘텐츠 키와 일치하지 않는다. 따라서, 콘텐츠의 암호해독이 실패하고, 재생은 중단된다.
[제10 실시형태(메모리 및 저장/재생 호스트의 예)]
그 다음, 도 24를 참조하여, 제10 실시형태를 설명한다. 제10 실시형태는, 전술된 실시형태들의 구조의 조합에 해당하는, 메모리 카드(inc. NAND chip)(10), 기록 호스트(Recording Device)(20A), 재생 호스트(Playback Device)(20B)의 시스템에서, 전술된 인증이 실행되고, 전술된 Media ID를 이용함으로써 호스트(20B)에서 콘텐츠가 재생되는 예에 관한 것이다.
기록 호스트(Recording Device)(20A)가 콘텐츠를 메모리 카드(inc. NAND chip)(10)에 기록할 때, 우선 메모리 카드(inc. NAND chip)(10)와 기록 호스트(Recording Device)(20A) 사이에서 상기 실시형태의 인증 처리를 실행된다. 인증 처리가 성공적으로 실행된 후에, 상기 실시형태에서의 ID 회수 처리가 실행된다. 그 다음, 상기 실시형태의 ID 결합 처리 (1)에 의해 생성된 MAC이 메모리 카드(inc. NAND chip)(10)에 기록된다. 또한, ID 결합 처리 (1)에 대해 이용된 콘텐츠 키(Content Key)에 의해 암호화된 콘텐츠(Encrypted Content)가 기록된다. 또한, 콘텐츠 키 그 자체도 역시 보안된 형태로 기록된다. 이 상황에서, 보안된 형태란, 메모리 카드(inc. NAND chip)(10)와 기록 호스트(Recording Device)(20A) 사이에 인증이 성공적으로 실행된 후에 액세스가 가능해지는 메모리 카드(inc. NAND chip)(10)의 기록 영역에서의 기록 형태를 말할 수 있다. 이 상황에서, 인증이란, 본 출원에서 설명된 인증 방법일 수도 있고, 메모리 카드(inc. NAND chip)(10)가 갖는 어떤 다른 인증 기능에 의해 실현될 수도 있다. 보안된 형태의 또 다른 예는, 메모리 카드(inc. NAND chip)(10) 또는 기록 호스트(Recording Device)(20A)가 갖는 키에 의해 암호화된 형태일 수도 있다.
재생 호스트(Playback Device)(20B)가 메모리 카드(inc. NAND chip)(10)로부터 콘텐츠를 판독하여 콘텐츠를 재생할 때, 우선 메모리 카드(inc. NAND chip)(10)와 재생 호스트(Playback Device)(20B) 사이에서 상기 실시형태의 인증 처리가 실행된다. 인증 처리가 성공적으로 실행된 후에, 상기 실시형태에서의 ID 회수 처리가 실행된다. 그 다음, 상기 실시형태에서의 ID 결합 처리 (1)에 대응하는 처리에 의해 메모리 카드(inc. NAND chip)(10)에 기록되어 있는 MAC이 검증된다. 그 후, 콘텐츠 키(Content Key)가 메모리 카드(inc. NAND chip)(10)로부터 판독되고, 암호화된 콘텐츠(Encrypted Content)의 암호해독이 실행됨으로써, 콘텐츠가 재생된다.
[제11 실시형태(메모리 및 저장/재생 호스트의 또 다른 예)]
그 다음, 도 25를 참조하여, 제11 실시형태를 설명한다. 제11 실시형태는, 전술된 실시형태들의 구조의 조합에 해당하는, 메모리 카드(inc. NAND chip)(10), 기록 호스트(Recording Device)(20A), 재생 호스트(Playback Device)(20B)의 시스템에서, 전술된 인증이 실행되고, 전술된 Media ID를 이용함으로써 호스트(20B)에서 콘텐츠가 재생되는 예에 관한 것이다.
기록 호스트(Recording Device)(20A)가 콘텐츠를 메모리 카드(inc. NAND chip)(10)에 기록할 때, 우선 메모리 카드(inc. NAND chip)(10)와 기록 호스트(Recording Device)(20A) 사이에서 상기 실시형태의 인증 처리를 실행된다. 인증 처리가 성공적으로 실행된 후에, 상기 실시형태에서의 ID 회수 처리가 실행된다. 그 다음, 상기 실시형태의 ID 결합 처리 (1)에 의해 생성된 콘텐츠 키(Content Key)가 메모리 카드(inc. NAND chip)(10)에 기록된다. 또한, ID 결합 처리 (2)에 의해 생성된 콘텐츠 키(Content Key)에 의해 암호화된 콘텐츠(Encrypted Content)가 기록된다. 또한, 콘텐츠 키 프리커서 그 자체도 역시 보안된 형태로 기록된다.
이 상황에서, 보안된 형태란, 메모리 카드(inc. NAND chip)(10)와 기록 호스트(Recording Device)(20A) 사이에 인증이 성공적으로 실행된 후에 액세스가 가능해지는 메모리 카드(inc. NAND chip)(10)의 기록 영역에서의 기록 형태를 말할 수 있다. 이 상황에서, 인증이란, 본 출원에서 설명된 인증 방법일 수도 있고, 메모리 카드(inc. NAND chip)(10)가 갖는 어떤 다른 인증 기능에 의해 실현될 수도 있다. 보안된 형태의 또 다른 예는, 메모리 카드(inc. NAND chip)(10) 또는 기록 호스트(Recording Device)(20A)가 갖는 키에 의해 암호화된 형태일 수도 있다.
재생 호스트(Playback Device)(20B)가 메모리 카드(inc. NAND chip)(10)로부터 콘텐츠를 판독하여 콘텐츠를 재생할 때, 우선 메모리 카드(inc. NAND chip)(10)와 재생 호스트(Playback Device)(20B) 사이에서 상기 실시형태의 인증 처리가 실행된다. 인증 처리가 성공적으로 실행된 후에, 상기 실시형태에서의 ID 회수 처리가 실행된다. 그 다음, 상기 실시형태에서의 ID 결합 처리 (2)에 대응하는 처리에 의해, 메모리 카드(inc. NAND chip)(10)에 기록되어 있는 콘텐츠 키 프리커서로부터 콘텐츠 키가 생성된다. 그 후, 암호화된 콘텐트(Encrypted Content)가 암호해독되고, 이로써 콘텐츠가 재생된다.
[제12 실시형태(메모리, 제어기 및 호스트의 예)]
그 다음, 도 26을 참조하여, 제12 실시형태를 설명한다. 제12 실시형태는, 전술된 실시형태에 적용가능한 NAND 플래쉬 메모리(10), 제어기(19), 및 호스트(20) 예에 관한 것이다. 이 실시형태에서, 메모리 카드의 예로서 SD 카드(상표)가 취해진다.
도 26에 도시된 바와 같이, 이 실시형태에서는, 메모리 카드에 접속된 호스트 장치의 기능 블록들이 예시되어 있다. 각 기능 블록은, 하드웨어 또는 컴퓨터 소프트웨어에 의해, 또는 이들의 조합에 의해 실현될 수 있다. 따라서, 각 블록들은, 각 블록이 어떤 기능들로 실현되는지를 명확히 하도록 일반적으로 그들의 기능의 관점에서 설명된다. 이러한 기능이 하드웨어 또는 소프트웨어로서 실행되는지의 여부는 구체적인 구현 형태나 전체 시스템에 부과된 설계 제약에 의존한다. 당업자는, 각각의 구체적인 구현 형태에서 다양한 방법으로 이러한 기능들을 실현할 수 있지만, 구현 방법들 모두는 본 발명의 범위 내에 든다.
호스트(20)는 애플리케이션 또는 운영 체제 등의 소프트웨어(211)를 포함한다. 소프트웨어(211)는 사용자에 의해 메모리 카드에 데이터를 기입할 것을, 또는 메모리 카드로부터 데이터를 판독할 것을 지시받는다. 소프트웨어(211)는 데이터 기입 및 판독을 파일 시스템(212)에 지시한다. 파일 시스템(212)은 관리 대상의 저장 매체에 기록되어 있는 파일 데이터를 관리하기 위한 구조이다. 파일 시스템(212)은 저장 매체의 저장 영역에 관리 정보를 기록하고, 이 관리 정보를 이용함으로써 파일 데이터를 관리한다.
호스트(20)는 SD 인터페이스(213)를 포함한다. SD 인터페이스(213)는, 호스트(20)와 메모리 카드 사이에서 인터페이스 처리를 실행하는데 필요한 하드웨어 및 소프트웨어로 구성된다. 호스트(20)는 SD 인터페이스(213)를 통해 메모리 카드와 통신한다. SD 인터페이스(213)는, 호스트(20)와 메모리 카드 사이의 통신에 필요한 다양한 프로토콜을 명시하고, 후술되는 메모리 카드의 SD 인터페이스(31)에 의해 상호 인식가능한 다양한 명령 세트를 포함한다. 또한, SD 인터페이스(213)는 메모리 카드의 SD 인터페이스(31)에 접속가능한 하드웨어 구성(핀의 배치, 핀수 등)를 포함한다.
메모리 카드는 NAND 플래쉬 메모리(10), 및 메모리(10)를 제어하기 위한 제어기(19)를 포함한다. 메모리 카드가 호스트(20)에 접속될 때, 또는 호스트(20)가 OFF 상태의 호스트(20)에 메모리 카드가 삽입된 상태에서 온 될 때, 메모리 카드는 전원을 공급을 받아, 초기화 동작을 실행한 후, 호스트(20)으로부터의 액세스에 응하는 처리를 실행한다.
NAND 메모리(10)는 데이터를 비휘발성 상태로 저장하고, 복수의 메모리 셀을 포함하는 "페이지"라 불리는 단위로 데이터의 기입 및 판독을 실행한다. 각 페이지에는 고유의 물리 주소가 할당된다. 또한, 메모리(10)는 복수의 페이지를 포함하는 "블록"이라 불리는 단위(소거 블록)로 데이터의 소거를 실행한다. 일부 경우에는, 물리 블록 단위에 물리 주소가 할당된다.
제어기(19)는 메모리(10)에 의한 데이터의 저장 상태를 관리한다. 저장 상태의 관리는, 페이지(또는 물리 블록)의 물리 주소와 이 페이지에 저장되는 데이터의 논리 주소 사이의 관계를 관리하는 것, 및 어느 물리 주소가 소거 상태(아무런 데이터도 기입되지 않은 상태, 또는 무효 데이터가 저장되어 있는 상태)에 있는 페이지(또는 물리 블록)를 나타내는지를 관리하는 것을 포함한다.
제어기(19)는, SD 인터페이스(31), MPU(32), ROM(read only memory)(33), RAM(random access memory)(34), 및 NAND 인터페이스(35)를 포함한다.
SD 인터페이스(31)는, 호스트(20)와 제어기(19) 사이에서 인터페이스 처리를 실행하는데 필요한 하드웨어 및 소프트웨어로 구성된다. SD 인터페이스(213)와 같이, SD 인터페이스(31)는 양자간의 통신을 가능케 하는 프로토콜을 명시하고, 다양한 명령 세트를 포함하며, 또한 하드웨어 구조(핀배열, 핀수 등)를 포함한다. 메모리 카드(제어기 19)는 SD 인터페이스(31)를 통해 호스트(20)와 통신한다. SD 인터페이스(31)는 레지스터(36)를 포함한다.
MPU(32)는 메모리 카드의 전체 동작을 제어한다. 예를 들어, 메모리 카드가 전원 공급을 받을 때, MPU(32)는, ROM(33)에 저장되어 있는 펌웨어(제어 프로그램)를 RAM(34) 내로 읽어들이고, 미리결정된 처리를 실행한다. MPU(32)는, 제어 프로그램에 따라 RAM(34) 상에서 다양한 테이블을 생성하거나, 호스트(20)로부터 수신되는 명령에 따라 메모리(10)에 관한 미리결정된 처리를 실행한다.
ROM(33)은, 예를 들어, MPU(32)에 의해 제어되는 제어 프로그램을 저장한다. RAM(34)은 MPU(32)의 작업 영역으로서 이용되고, 제어 프로그램이나 다양한 테이블을 임시로 저장한다. 이러한 테이블은, 파일 시스템(12)에 의해 데이터에 할당된 논리 주소를 데이터가 실제로 저장되어 있는 페이지의 물리 주소로 변환하기 위한 변환 테이블(논리/물리 테이블)을 포함한다. NAND 인터페이스(35)는, 제어기(19)와 메모리(10) 사이의 인터페이스 처리를 실행한다.
NAND 플래시 메모리(10) 내의 저장 영역은, 저장되어 있는 데이터의 종류에 따라, 예를 들어, 시스템 데이터 영역, 비밀 데이터 영역, 보호 데이터 영역, 사용자 데이터 영역 등을 포함한다. 시스템 데이터 영역은, 제어기(19)의 동작에 필요한 데이터를 저장하기 위하여 제어기(19)에 의해 메모리(10)에서 확보되는 영역이다. 비밀 데이터 영역은, 암호화에 이용되는 키 정보와 인증시에 이용하기 위한 비밀 데이터를 저장하며, 호스트(20)로부터 액세스될 수 없다. 보호 데이터 영역은, 중요한 데이터, 보안 데이터 등을 저장한다. 사용자 데이터 영역은 호스트(20)에 의해 자유로이 액세스가능 및 이용가능하며, 예를 들어, AV 콘텐츠 파일 및 영상 데이터 등의 사용자 데이터를 저장한다. 제어기(19)는 사용자 데이터 영역의 일부를 확보하고, 제어기(19) 자체의 동작에 필요한 제어 데이터(예를 들어, 논리/물리 주소 변환 테이블)를 저장한다.
소정 실시형태들이 설명되었지만, 이들 실시형태들은 단지 예시로서 제시되었고, 본 발명의 범위를 제한하기 위한 것이 아니다. 사실상, 여기서 설명된 신규한 실시형태는 다양한 다른 형태로 구현될 수 있다: 또한, 본 발명의 사상으로부터 벗어나지 않고 여기서 설명된 실시형태들의 형태에서 다양한 생략, 대체, 및 변경이 이루어질 수 있다. 첨부된 청구항들 및 그들의 등가물들은 본 발명의 범위 및 사상에 드는 이러한 형태나 변형을 커버하는 것으로 의도되어 있다.

Claims (12)

  1. 복수의 비밀 정보 XY와 상기 복수의 비밀 정보 XY를 암호화함으로써 생성되는 복수의 비밀 정보 XYE를 저장하는 피인증자와 상기 피인증자를 인증하는 인증자 사이의 인증 방법으로서,
    상기 인증자가, 상기 피인증자로부터 수신되는 상기 복수의 비밀 정보 XYE에 관해 암호해독 처리를 실행하고 상기 복수의 비밀 정보 XY를 공유하는 단계;
    상기 피인증자가, 상기 인증자에 의해 생성되는 난수 B를 수신하고, 상기 복수의 비밀 정보 XY를 로딩하는 단계;
    상기 피인증자가, 난수 A 및 데이터 ν(ν는 1의 발생 확률이 η이며, η<0.5)를 생성하는 단계;
    상기 피인증자가, 상기 생성된 난수 A와 상기 수신된 난수 B 중 적어도 하나로 구성되는 난수 D를 생성하는 단계;
    상기 피인증자가, 상기 난수 D와 상기 복수의 비밀 정보 XY 중 적어도 하나에 관하여 압축 연산을 실행함으로써 데이터 C를 생성하는 단계;
    상기 피인증자가, 상기 데이터 ν와 상기 데이터 C로부터 계산된 결과 Z를 상기 인증자에 전송하는 단계;
    상기 인증자가, 상기 피인증자로부터 수신한 난수 A와 상기 생성된 난수 B 중 적어도 하나로 구성되는 난수 D를 생성하는 단계;
    상기 인증자가, 상기 난수 D와 상기 복수의 비밀 정보 XY 중 적어도 하나에 관하여 압축 연산을 실행함으로써 데이터 C를 생성하는 단계; 및
    상기 인증자가, 상기 수신된 계산 결과 Z와 상기 생성된 데이터 C를 이용함으로써 판정 처리를 실행하는 단계
    를 포함하는, 인증 방법.
  2. 제1항에 있어서, 상기 복수의 비밀 정보 XYE는 에러 정정 코드를 포함하고,
    상기 인증자는 상기 피인증자로부터 수신되는 상기 복수의 비밀 정보 XYE에 관해 에러 정정 처리를 실행하도록 구성된, 인증 방법.
  3. 제1항에 있어서, 상기 복수의 비밀 정보 XYE는 상기 피인증자에 포함되는 메모리의 ROM 영역에 저장되고,
    상기 복수의 비밀 정보 XY는 상기 메모리의 은닉 영역에 저장되는, 인증 방법.
  4. 제3항에 있어서, 상기 피인증자는 상기 메모리를 제어하고 상기 인증자에 액세스하도록 구성된 제어기를 포함하는, 인증 방법.
  5. 피인증자로서,
    복수의 비밀 정보 XY와 상기 복수의 비밀 정보 XY를 암호화함으로써 생성되는 복수의 비밀 정보 XYE를 저장하도록 구성된 메모리;
    난수 A를 생성하도록 구성된 생성 모듈;
    상기 생성된 난수 A와 수신되는 난수 B 중 적어도 하나로 구성되는 난수 D를 생성하도록 구성된 생성 모듈;
    상기 난수 D와 상기 메모리로부터 로딩된 상기 복수의 비밀 정보 XY 중 적어도 하나에 관하여 압축 연산을 실행함으로써 데이터 C를 생성하도록 구성된 계산 모듈;
    데이터 ν(ν는 1의 발생 확률이 η이며, η<0.5)를 생성하도록 구성된 생성 모듈; 및
    상기 데이터 ν와 상기 데이터 C로부터 결과 Z를 계산하도록 구성된 비트별 가산 모듈
    을 포함하는, 피인증자.
  6. 제5항에 있어서, 상기 복수의 비밀 정보 XYE는 에러 정정 코드를 포함하는, 피인증자.
  7. 제5항에 있어서, 상기 복수의 비밀 정보 XYE는 상기 메모리의 ROM 영역에 저장되고,
    상기 복수의 비밀 정보 XY는 상기 메모리의 은닉 영역에 저장되는, 피인증자.
  8. 제5항에 있어서, 상기 메모리를 제어하고 상기 인증자에 액세스하도록 구성된 제어기를 더 포함하는, 피인증자.
  9. 복수의 비밀 정보 XY와 상기 복수의 비밀 정보 XY를 암호화함으로써 생성되는 복수의 비밀 정보 XYE를 저장하도록 구성된 피인증자를 인증하는 인증자로서,
    상기 암호화된 복수의 비밀 정보 XYE에 관해 키를 이용하여 암호해독 처리를 실행하고, 상기 복수의 비밀 정보 XY를 공유하도록 구성된 암호해독 모듈;
    난수 B를 생성하도록 구성된 생성 모듈;
    상기 생성된 난수 B와 상기 피인증자로부터 수신되는 난수 A 중 적어도 하나로 구성되는 난수 D를 생성하도록 구성된 생성 모듈;
    상기 난수 D와 상기 복수의 비밀 정보 XY 중 적어도 하나에 관하여 압축 연산을 실행함으로써 데이터 C를 생성하도록 구성된 계산 모듈; 및
    상기 생성된 데이터 C와 상기 피인증자로부터 수신되는 계산 결과 Z를 이용함으로써 판정 처리를 실행하도록 구성된 판정 모듈
    을 포함하는 인증자.
  10. 제9항에 있어서, 상기 복수의 비밀 정보 XYE는 에러 정정 코드를 포함하고,
    상기 인증자는 상기 복수의 비밀 정보 XYE에 관해 에러 정정 처리를 실행하도록 구성된 에러 정정 모듈을 더 포함하는, 인증자.
  11. 제9항에 있어서, 상기 복수의 비밀 정보 XYE는 상기 피인증자에 포함되는 메모리의 ROM 영역에 저장되고,
    상기 복수의 비밀 정보 XY는 상기 메모리의 은닉 영역에 저장되는, 인증자.
  12. 제11항에 있어서, 상기 피인증자는 상기 메모리를 제어하고 상기 인증자에 액세스하도록 구성된 제어기를 포함하는, 인증자.
KR1020137020863A 2011-04-22 2011-09-26 인증자, 피인증자 및 인증 방법 KR101494992B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2011-096498 2011-04-22
JP2011096498A JP2012227899A (ja) 2011-04-22 2011-04-22 認証コンポーネント、被認証コンポーネントおよびその認証方法
PCT/JP2011/072696 WO2012144094A1 (en) 2011-04-22 2011-09-26 Authenticator, authenticatee and authentication method

Publications (2)

Publication Number Publication Date
KR20130127499A KR20130127499A (ko) 2013-11-22
KR101494992B1 true KR101494992B1 (ko) 2015-03-03

Family

ID=44936471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137020863A KR101494992B1 (ko) 2011-04-22 2011-09-26 인증자, 피인증자 및 인증 방법

Country Status (7)

Country Link
US (1) US9160534B2 (ko)
EP (1) EP2700190B8 (ko)
JP (1) JP2012227899A (ko)
KR (1) KR101494992B1 (ko)
CN (1) CN103348625B (ko)
TW (1) TWI436233B (ko)
WO (1) WO2012144094A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5466032B2 (ja) * 2010-02-10 2014-04-09 Kddi株式会社 認証システム、認証方法およびプログラム
KR101824044B1 (ko) * 2011-05-17 2018-01-31 삼성전자주식회사 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
WO2013175640A1 (ja) 2012-05-25 2013-11-28 株式会社東芝 ホストデバイスおよびホストデバイスにおける認証方法
US8726024B2 (en) * 2012-06-14 2014-05-13 Kabushiki Kaisha Toshiba Authentication method
CN106533684B (zh) * 2016-12-02 2019-03-08 江苏理工学院 基于lpn的公钥加密方法
US11201745B2 (en) * 2019-01-10 2021-12-14 International Business Machines Corporation Method and system for privacy preserving biometric authentication
KR102336020B1 (ko) * 2019-08-13 2021-12-07 동서대학교 산학협력단 랭포드 형태의 otp 발생기
CN113067701B (zh) * 2021-03-29 2022-09-02 武汉天喻信息产业股份有限公司 一种更新绑定关系的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001015373A1 (en) * 1999-08-19 2001-03-01 Koninklijke Philips Electronics N.V. Majority decoding in a communication system with automatic repeat request (arq)
WO2007102907A2 (en) * 2005-12-12 2007-09-13 Qualcomm Incorporated Certify and split system and method for replacing cryptographic keys
US7828213B2 (en) * 2005-11-08 2010-11-09 Morpho RF label identification

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4011792B2 (ja) 1999-06-16 2007-11-21 株式会社東芝 記録方法、再生方法、記録装置、再生装置及び記録媒体
US7152166B2 (en) 2002-06-26 2006-12-19 Microsoft Corporation Digital rights management (DRM) encryption and data-protection for content on device without interactive authentication
JP2003099332A (ja) 2002-06-27 2003-04-04 Sony Corp データ処理システム、データ記録再生器、記録デバイス、および方法、並びにプログラム提供媒体
US7559072B2 (en) * 2006-08-01 2009-07-07 Sony Corporation System and method for neighborhood optimization for content recommendation
US8090098B2 (en) * 2006-11-13 2012-01-03 Electronics And Telecommunications Research Institute Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
CN101192927B (zh) * 2006-11-28 2012-07-11 中兴通讯股份有限公司 基于身份保密的授权与多重认证方法
JP4872695B2 (ja) 2007-02-09 2012-02-08 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP4867760B2 (ja) * 2007-03-30 2012-02-01 ソニー株式会社 情報処理装置および方法、並びに情報処理システム
FR2916594A1 (fr) 2007-05-23 2008-11-28 France Telecom Procede d'authentification d'une entite par une entite verificatrice
IL185285A0 (en) * 2007-08-14 2008-01-06 Yeda Res & Dev A method and apparatus for implementing a novel one-way hash function on highly constrained devices such as rfid tags
WO2009050368A2 (fr) 2007-09-26 2009-04-23 France Telecom Communication securisee entre une etiquette electronique et un lecteur
CN101887503B (zh) * 2010-06-24 2012-06-27 北京农业信息技术研究中心 种子流通监管系统及其认证方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001015373A1 (en) * 1999-08-19 2001-03-01 Koninklijke Philips Electronics N.V. Majority decoding in a communication system with automatic repeat request (arq)
US7828213B2 (en) * 2005-11-08 2010-11-09 Morpho RF label identification
WO2007102907A2 (en) * 2005-12-12 2007-09-13 Qualcomm Incorporated Certify and split system and method for replacing cryptographic keys

Also Published As

Publication number Publication date
CN103348625B (zh) 2016-01-20
US20140047239A1 (en) 2014-02-13
TWI436233B (zh) 2014-05-01
TW201243639A (en) 2012-11-01
WO2012144094A1 (en) 2012-10-26
EP2700190B1 (en) 2015-01-14
EP2700190A1 (en) 2014-02-26
CN103348625A (zh) 2013-10-09
EP2700190B8 (en) 2015-09-09
JP2012227899A (ja) 2012-11-15
US9160534B2 (en) 2015-10-13
KR20130127499A (ko) 2013-11-22

Similar Documents

Publication Publication Date Title
KR101494992B1 (ko) 인증자, 피인증자 및 인증 방법
KR101494991B1 (ko) 인증자, 피인증자 및 인증 방법
US9544138B2 (en) Authenticator, authenticatee and authentication method
KR101540875B1 (ko) 의사-난수 생성용 반도체 메모리 장치
CN102843232B (zh) 生成安全装置密钥
KR101494990B1 (ko) 인증자, 피인증자 및 인증 방법

Legal Events

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