KR100852305B1 - 정보 처리 시스템 및 방법 - Google Patents
정보 처리 시스템 및 방법 Download PDFInfo
- Publication number
- KR100852305B1 KR100852305B1 KR1020027011163A KR20027011163A KR100852305B1 KR 100852305 B1 KR100852305 B1 KR 100852305B1 KR 1020027011163 A KR1020027011163 A KR 1020027011163A KR 20027011163 A KR20027011163 A KR 20027011163A KR 100852305 B1 KR100852305 B1 KR 100852305B1
- Authority
- KR
- South Korea
- Prior art keywords
- key
- ekb
- category
- tree
- category tree
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 217
- 230000010365 information processing Effects 0.000 title claims abstract description 113
- 238000012545 processing Methods 0.000 claims abstract description 229
- 230000008859 change Effects 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims description 144
- 238000003860 storage Methods 0.000 claims description 26
- 238000003672 processing method Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 8
- 230000007717 exclusion Effects 0.000 claims description 7
- 229920003266 Leaf® Polymers 0.000 description 116
- 238000007726 management method Methods 0.000 description 98
- 238000010200 validation analysis Methods 0.000 description 82
- 238000009826 distribution Methods 0.000 description 70
- 238000010586 diagram Methods 0.000 description 59
- 230000000875 corresponding effect Effects 0.000 description 43
- 230000005540 biological transmission Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 238000013478 data encryption standard Methods 0.000 description 15
- 230000004913 activation Effects 0.000 description 14
- 238000012795 verification Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 9
- 230000004075 alteration Effects 0.000 description 7
- 239000002131 composite material Substances 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 230000006835 compression Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000002079 cooperative effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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
- H04L9/0836—Key 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 using tree structure or hierarchical structure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00855—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a step of exchanging information with a remote server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Technology Law (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Circuits Of Receivers In General (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
- Multi-Process Working Machines And Systems (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
카테고리 구분된 트리 구조를 이용한 유효화 키 블록(EKB)을 이용한 처리에서의 효율적 처리를 실현하는 정보 처리 시스템 및 방법을 실현한다. 카테고리 구분되며, 카테고리 엔티티에 의해 관리되는 서브 트리를 복수개 갖는 키 트리의 선택 패스 상의 하위 키에 의한 상위 키의 암호화 처리 데이터로 이루어지는 EKB를 생성하여 디바이스에 제공하는 구성에서, EKB 타입 정의 리스트에 정의된 EKB의 처리 가능한 카테고리 트리에서의 리보크 등에 의한 상태 변화 발생에 관한 통지를 EKB 이용 엔티티에 대하여 실행하는 구성으로 하고, EKB 요청자는 항상 최신의 EKB에 기초한 처리가 가능해진다.
카테고리 트리, 유효화 키 블록(EKB), 키 발행 센터(KDC), 암호화, 카테고리 엔티티, 키 트리
Description
본 발명은 정보 처리 시스템, 정보 처리 방법, 및 프로그램 기록 매체에 관한 것으로, 특히, 콘텐츠 등 각종 데이터를 특정의 정당한 사용자에게 제공하는 암호 처리를 수반하는 배신(配信) 시스템 및 방법에 관한 것이다. 특히, 나무(트리) 구조의 계층적 키 배신 방식을 이용하고, 배신 디바이스에 따라 생성한 키 블록을 이용하여, 예를 들면 콘텐츠의 암호화 키로서의 콘텐츠 키 배신, 혹은 기타 각종 안전성을 유지하는 것을 가능하게 하는 정보 처리 시스템, 정보 처리 방법, 및 프로그램 기록 매체에 관한 것이다.
최근, 게임 프로그램, 음성 데이터, 화상 데이터 등, 다양한 소프트웨어 데이터(이하, 이들을 콘텐츠(Content)라 함)를, 인터넷 등의 네트워크, 혹은 DVD, CD 등의 유통 가능한 기억 매체를 통한 유통이 활발해지고 있다. 이들 유통 콘텐츠는, 사용자가 소유하는 PC(Personal Computer), 게임 기기에 의해 데이터 수신, 혹은 기억 매체의 장착이 이루어져 재생되거나, 혹은 PC 등에 부속되는 기록 재생 기기 내의 기록 디바이스, 예를 들면 메모리 카드, 하드디스크 등에 저장되고, 저장 매체로부터의 새로운 재생에 의해 이용된다.
비디오 게임 기기, PC 등의 정보 기기는 유통 콘텐츠를 네트워크로부터 수신 하기 위해서, 혹은 DVD, CD 등에 액세스하기 위한 인터페이스를 갖고, 또한 콘텐츠의 재생에 필요로 하는 제어 수단, 프로그램, 데이터의 메모리 영역으로서 사용되는 RAM, ROM 등을 구비한다.
음악 데이터, 화상 데이터, 혹은 프로그램 등의 다양한 콘텐츠는, 재생 기기로서 이용되는 게임 기기, PC 등의 정보 기기 본체로부터의 사용자 지시, 혹은 접속된 입력 수단을 통한 사용자의 지시에 의해 기억 매체로부터 호출되어, 정보 기기 본체, 혹은 접속된 디스플레이, 스피커 등을 통하여 재생된다.
게임 프로그램, 음악 데이터, 화상 데이터 등, 많은 소프트웨어 콘텐츠는 일반적으로 그 작성자 및 판매자에게 반포권 등이 보유되어 있다. 따라서, 이들 콘텐츠의 배포 시에는 일정한 이용 제한, 즉 정규 사용자에 대해서만 소프트웨어의 사용을 허락하고, 허가가 없는 복제 등이 행하여지지 않도록 하는, 즉 보안을 고려한 구성을 취하는 것이 일반적으로 되어 있다.
사용자에 대한 이용 제한을 실현하는 하나의 기법이 배포 콘텐츠의 암호화 처리이다. 즉, 예를 들면 인터넷 등을 통해서 암호화된 음성 데이터, 화상 데이터, 게임 프로그램 등의 각종 콘텐츠를 배포함과 함께, 정규 사용자로 확인된 사람에 대해서만, 배포된 암호화 콘텐츠를 복호하는 수단, 즉 복호키를 부여하는 구성이다.
암호화 데이터는 소정의 수속에 의한 복호화 처리에 의해 이용 가능한 복호 데이터(평문)로 복귀할 수 있다. 이러한 정보의 암호화 처리에 암호화 키를 이용하고, 복호화 처리에 복호화 키를 이용하는 데이터 암호화, 복호화 방법은 종래부 터 잘 알려져 있다.
암호화 키와 복호화 키를 이용하는 데이터 암호화 및 복호화 방법의 형태에는 다양한 종류가 있는데, 그 하나의 예로서 소위 공통 키 암호화 방식이라 불리는 방식이 있다. 공통 키 암호화 방식은 데이터의 암호화 처리에 이용하는 암호화 키와 데이터의 복호화에 이용하는 복호화 키를 공통의 것으로 하고, 정규 사용자에게 이들 암호화 처리, 복호화에 이용하는 공통 키를 부여하여, 키를 갖지 않은 부정 사용자에 의한 데이터 액세스를 배제하는 것이다. 이 방식의 대표적인 방식으로 DES(데이터 암호 표준: Data Encryption Standard)가 있다.
상술한 암호화 처리와 복호화에 이용되는 암호화 키 및 복호화 키는, 예를 들면 임의의 패스워드 등에 기초하여 해시 함수 등의 일방향성 함수를 적용하여 얻을 수 있다. 일방향성 함수란 그 출력으로부터 반대로 입력을 구하는 것이 매우 곤란하게 되는 함수이다. 예를 들면 사용자가 정한 패스워드를 입력으로 하여 일방향성 함수를 적용하고, 그 출력에 기초하여 암호화 키, 복호화 키를 생성하는 것이다. 이렇게 해서 얻어진 암호화 키 및 복호화 키로부터, 반대로 그 원래의 데이터인 패스워드를 구하는 것은 실질적으로 불가능하게 된다.
또한, 암호화할 때 사용하는 암호화 키에 의한 처리와 복호할 때 사용하는 복호화 키의 처리를 서로 다른 알고리즘으로 한 방식이 소위 공개 키 암호화 방식이라 불리는 방식이다. 공개 키 암호화 방식은 불특정 사용자가 사용 가능한 공개 키를 사용하는 방법으로, 특정 개인에 대한 암호화 문서를, 그 특정 개인이 발행한 공개 키를 이용하여 암호화 처리를 실행한다. 공개 키에 의해 암호화된 문서는 그 암호화 처리에 사용된 공개 키에 대응하는 비밀 키에 의해서만 복호 처리가 가능해진다. 비밀 키는 공개 키를 발행한 개인만이 소유하기 때문에, 그 공개 키에 의해 암호화된 문서는 비밀 키를 갖는 개인만이 복호할 수 있다. 공개 키 암호화 방식의 대표적인 것에는 RSA(Rivest-Shamir-Adleman) 암호가 있다. 이러한 암호화 방식을 이용함으로써, 암호화 콘텐츠를 정규 사용자에 대해서만 복호 가능한 시스템이 가능해진다.
상기한 바와 같은 콘텐츠 배신 시스템에서는, 콘텐츠를 암호화하여 사용자에게 네트워크 혹은 DVD, CD 등의 기록 매체에 저장하여 제공하고, 암호화 콘텐츠를 복호하는 콘텐츠 키를 정당한 사용자에게만 제공하는 구성이 많이 채용되고 있다. 콘텐츠 키 자체의 부정한 복사 등을 방지하기 위해, 콘텐츠 키를 암호화하여 정당한 사용자에게 제공하고, 정당한 사용자만이 갖는 복호 키를 이용하여 암호화 콘텐츠 키를 복호하여 콘텐츠 키를 사용 가능하게 하는 구성이 제안되어 있다.
정당한 사용자인지에 대한 판정은, 일반적으로는 예를 들면 콘텐츠의 송신자인 콘텐츠 프로바이더와 사용자 디바이스 사이에서, 콘텐츠 혹은 콘텐츠 키의 배신 전에 인증 처리를 실행함으로써 가능해진다. 일반적인 인증 처리에서는 상대를 확인함과 함께, 그 통신에서만 유효한 세션 키를 생성하여, 인증이 성립한 경우에, 생성한 세션 키를 이용하여 데이터, 예를 들면 콘텐츠 혹은 콘텐츠 키를 암호화하여 통신을 한다. 인증 방식에는 공통 키 암호 방식을 이용한 상호 인증과, 공개 키 방식을 사용한 인증 방식이 있는데, 공통 키를 사용한 인증에서는 시스템 와이드에서 공통하는 키가 필요하게 되어, 갱신 처리 등의 경우에 불편하다. 또, 공개 키 방식에서는 계산 부하가 크고 또한 필요한 메모리량도 커져, 각 디바이스에 이와 같은 처리 수단을 설정하는 것은 바람직한 구성이라고는 말할 수 없다.
〈발명의 개시〉
본 발명에서는 상술한 바와 같이 데이터의 송신자, 수신자 사이의 상호 인증 처리에 의지하지 않고, 정당한 사용자에 대해서만 안전하게 데이터를 송신하는 것을 가능하게 함과 함께, 계층적 키 배신 트리를 카테고리 단위로 한 서브 트리, 즉 카테고리 트리를 형성하고, 복수의 카테고리 트리 내에서 적용(복호 처리) 가능한 암호화 키 블록을 사용하는 구성을 제안한다.
또한, 1 이상의 선택된 카테고리 트리에서 복호 가능한 암호화 키 데이터 블록인 유효화 키 블록(EKB)을 생성하여 각 카테고리 트리에 속하는 디바이스에서 공통으로 사용 가능하게 함과 함께, 어떠한 카테고리 트리에서 처리 가능한지, 즉 복호 가능한지를 나타내는 EKB 타입 정의 리스트를 사용함으로써, EKB 생성, 관리 처리의 효율화를 가능하게 한 정보 처리 시스템, 및 정보 처리 방법과 프로그램 기록 매체를 제공하는 것을 목적으로 한다.
또한, EKB 타입 정의 리스트에 정의된 EKB의 처리 가능한 카테고리 트리에 서의 상태 변화 발생에 관한 통지 처리를, EKB의 이용 엔티티에 대하여 실행함으로써, 최신의 EKB 타입 정의 정보에 기초한 처리를 가능하게 한 정보 처리 시스템, 정보 처리 방법, 및 프로그램 기록 매체를 제공하는 것을 목적으로 한다.
본 발명의 제1 양상은, 복수의 디바이스를 리프로서 구성한 트리의 루트로부터 리프까지의 패스 상의 루트, 노드 및 리프에 각각 키를 대응시킨 키 트리를 구 성하고, 그 키 트리를 구성하는 패스를 선택하여 선택 패스 상의 하위 키에 의한 상위 키의 암호화 처리 데이터를 갖고, 상기 선택 패스에 대응하는 노드 키 세트를 이용 가능한 디바이스에서만 복호 가능한 유효화 키 블록(EKB)을 디바이스에 제공하는 구성을 갖는 정보 처리 시스템으로서, 상기 키 트리는, 카테고리에 기초하여 구분되고, 카테고리 엔티티에 의해 관리되는 서브 트리로서의 카테고리 트리를 복수개 갖는 구성이며, 카테고리 트리에서 공통으로 복호 처리 가능한 EKB를 생성하여 발행하는 키 발행 센터(KDC)는, EKB 타입 식별자와, EKB 처리 가능한 카테고리 트리의 식별 데이터를 대응시킨 EKB 타입 정의 리스트를 갖고, 상기 EKB 타입 정의 리스트에 정의된 EKB의 처리 가능한 카테고리 트리에서의 상태 변화 발생에 관한 통지 처리를, 적어도 상기 상태 변화 발생 카테고리 트리를 처리 가능 카테 고리 트리로서 설정한 EKB의 이용 엔티티에 대하여 실행하는 구성을 갖는 것을 특징으로 하는 정보 처리 시스템이다.
또한, 본 발명의 정보 처리 시스템의 일 실시 형태에서, 상기 카테고리 트리에서의 상태 변화는, 그 카테고리 트리에서의 리보크(기기 배제) 발생에 수반되는 상태 변화인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 시스템의 일 실시 형태에서, 상기 카테고리 트리에서의 상태 변화는, 그 카테고리 트리에 속하는 디바이스의 디바이스 저장 키의 변경에 수반되는 상태 변화인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 시스템의 일 실시 형태에서, 상기 EKB의 이용 엔티티는, 상기 키 발행 센터(KDC)에 대한 EKB 생성 요구 엔티티로서의 EKB 요청자를 포함하는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 시스템의 일 실시 형태에서, 상기 EKB의 이용 엔티티는, 상기 EKB 타입 정의 리스트 내에 정의된 EKB 처리 가능한 카테고리 트리의 관리 엔티티로서의 카테고리 엔티티를 포함하는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 시스템의 일 실시 형태에서, 상기 키 발행 센터(KDC)는, 상기 상태 변화 발생에 관한 통지 처리를, 상기 EKB 타입 정의 리스트의 이용 엔티티인 상기 키 발행 센터(KDC)에 대한 EKB 생성 요구 엔티티로서의 EKB 요청자, 및 카테고리 트리의 관리 엔티티로서의 카테고리 엔티티 전체에 대하여 실행하는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 시스템의 일 실시 형태에서, 상기 키 발행 센터(KDC)는, 카테고리 트리에서의 상태 변화 발생 정보를, 그 카테고리 트리의 관리 엔티티인 카테고리 엔티티로부터 수신하고, 그 카테고리 엔티티로부터의 상태 변화 발생 정보 수신에 기초하여, 상태 변화 발생에 관한 통지 처리를 실행하는 구성을 갖는 것을 특징으로 한다.
또한, 본 발명의 제2 양상은, 카테고리에 기초하여 구분되며, 카테고리 엔티티에 의해 관리되는 서브 트리로서의 카테고리 트리를 복수개 갖고, 디바이스를 리프로서 구성한 트리의 루트에서 리프까지의 패스 상의 루트, 노드, 및 리프에 각각 키를 대응시킨 키 트리를 구성하며, 해당 키트리를 구성하는 패스를 선택하여 선택 패스 상의 하위 키에 의한 상위 키의 암호화 처리 데이터를 갖고, 상기 선택 패스에 대응하는 노드 키 세트를 이용 가능한 디바이스에서만 복호 가능한 유효화 키 블록(EKB)을 디바이스에 제공하는 구성을 갖는 시스템에서의 정보 처리 방법으로서, 카테고리 트리에서 공통으로 복호 처리 가능한 EKB를 생성하여 발행하는 키 발행 센터(KDC)는, EKB 타입 식별자와 EKB 처리 가능한 카테고리 트리의 식별 데이터를 대응시킨 EKB 타입 정의 리스트에 정의된 EKB의 처리 가능한 카테고리 트리에서의 상태 변화 발생에 관한 통지 처리를, 적어도 상기 상태 변화 발생 카테고리 트리를 처리 가능 카테고리 트리로서 설정한 EKB의 이용 엔티티에 대하여 실행하는 것을 특징으로 하는 정보 처리 방법이다.
또한, 본 발명의 정보 처리 방법의 일 실시 형태에서, 상기 카테고리 트리에서의 상태 변화는, 그 카테고리 트리에서의 리보크(기기 배제) 발생에 수반되는 상태 변화인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 방법의 일 실시 형태에서, 상기 카테고리 트리에서의 상태 변화는, 그 카테고리 트리에 속하는 디바이스의 디바이스 저장 키의 변경에 수반되는 상태 변화인 것을 특징으로 한다.
또한, 본 발명의 정보 처리 방법의 일 실시 형태에서, 상기 EKB의 이용 엔티티는, 상기 키 발행 센터(KDC)에 대한 EKB 생성 요구 엔티티로서의 EKB 요청자를 포함하는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 방법의 일 실시 형태에서, 상기 EKB의 이용 엔티티는, 상기 EKB 타입 정의 리스트 내에 정의된 EKB 처리 가능한 카테고리 트리의 관리 엔티티로서의 카테고리 엔티티를 포함하는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 방법의 일 실시 형태에서, 상기 키 발행 센터(KDC)는, 상기 상태 변화 발생에 관한 통지 처리를, 상기 EKB 타입 정의 리스트의 이용 엔티티인 상기 키 발행 센터(KDC)에 대한 EKB 생성 요구 엔티티로서의 EKB 요청자, 및 카테고리 트리의 관리 엔티티로서의 카테고리 엔티티 전체에 대하여 실행하는 것을 특징으로 한다.
또한, 본 발명의 정보 처리 방법의 일 실시 형태에서, 상기 키 발행 센터(KDC)는, 카테고리 트리에서의 상태 변화 발생 정보를, 그 카테고리 트리의 관리 엔티티인 카테고리 엔티티로부터 수신하고, 그 카테고리 엔티티로부터의 상태 변화 발생 정보 수신에 기초하여, 상태 변화 발생에 관한 통지 처리를 실행하는 구성을 갖는 것을 특징으로 한다.
또한, 본 발명의 제3 양상은, 카테고리에 기초하여 구분되며, 카테고리 엔티티에 의해 관리되는 서브 트리로서의 카테고리 트리를 복수개 갖고, 디바이스를 리프로서 구성한 트리의 루트로부터 리프까지의 패스 상의 루트, 노드, 및 리프에 각각 키를 대응시킨 키 트리를 구성하며, 그 키 트리를 구성하는 패스를 선택하여 선택 패스 상의 하위 키에 의한 상위 키의 암호화 처리 데이터를 갖고, 상기 선택 패스에 대응하는 노드 키 세트를 이용 가능한 디바이스에서만 복호 가능한 유효화 키 블록(EKB)을 디바이스에 제공하는 구성을 갖는 시스템에서의 정보 처리를 컴퓨터 시스템 상에서 실행시키는 컴퓨터 프로그램을 기록한 프로그램 기록 매체로서, 상기 컴퓨터 프로그램은, 카테고리 트리에서의 상태 변화 발생 정보를, 그 카테고리 트리의 관리 엔티티인 카테고리 엔티티로부터 수신하는 단계와, 그 카테고리 엔티티로부터의 상태 변화 발생 정보 수신에 기초하여, 상태 변화 발생에 관한 통지 처 리를 적어도 상기 상태 변화 발생 카테고리 트리를 처리 가능 카테고리 트리로서 설정한 EKB의 이용 엔티티에 대하여 실행하는 단계를 포함하는 것을 특징으로 하는 프로그램 기록 매체이다.
본 발명의 구성에서는 트리(나무) 구조의 계층적 구조의 암호화 키 배신 구성을 이용하여, 각 기기를 n개분의 각 잎(리프)에 배치한 구성의 키 배신 방법을 이용하여, 기록 매체 또는 통신 회선을 통하여, 예를 들면 콘텐츠 데이터의 암호키인 콘텐츠 키 또는 인증 처리에 이용하는 인증 키, 혹은 프로그램 코드 등을 유효화 키 블록과 함께 배신하는 구성으로 하고 있다.
또한, 유효화 키 블록을 암호화 키 데이터부와, 암호화 키의 위치를 나타내는 태그부에 의해 구성하고, 데이터량을 적게 하여, 디바이스에서의 복호 처리를 준비하고 또한 신속하게 실행하는 것을 가능하게 하고 있다. 본 구성에 의해 정당한 디바이스만이 복호 가능한 데이터를 안전하게 배신하는 것이 가능해진다.
또한, 1 이상의 선택된 카테고리 트리에서 복호 가능한 암호화 키 데이터 블록인 유효화 키 블록(EKB)을 생성하여 각 카테고리 트리에 속하는 디바이스에 공통으로 사용 가능하게 함과 함께, 어떤 카테고리 트리에서 처리 가능한지, 즉 복호 가능한지를 나타내는 EKB 타입 정의 리스트를 사용함으로써, EKB의 생성 관리 처리의 효율화를 가능하게 하고 있다.
또, 본 발명의 프로그램 기록 매체는, 예를 들면 다양한 프로그램 코드를 실행 가능한 범용 컴퓨터 시스템에 대하여 컴퓨터 프로그램을 컴퓨터 판독 가능한 형식으로 제공하는 매체이다. 매체는 CD나 FD, MO 등의 기록 매체, 혹은 네트워크 등의 전송 매체 등, 그 형태는 특별히 한정되지 않는다.
이러한 프로그램 기록 매체는 컴퓨터 시스템 상에서 소정의 컴퓨터 프로그램의 기능을 실현하기 위한, 컴퓨터 프로그램과 기록 매체의 구조상 또는 기능상의 협동적 관계를 정의한 것이다. 다시 말하면, 그 기록 매체를 통해서 컴퓨터 프로그램을 컴퓨터 시스템에 인스톨함으로써, 컴퓨터 시스템 상에서는 협동적 작용이 발휘되어, 본 발명의 다른 양상과 같은 작용 효과를 얻을 수 있는 것이다.
또, 본 발명의 설명 중에서 시스템이란, 복수 장치의 논리적 집합 구성이며, 각 구성 장치가 동일 케이싱 내에 있는 것에 한정되지는 않는다.
본 발명의 또 다른 목적, 특징 및 이점은 후술하는 본 발명의 실시예와 첨부 도면에 기초하여 상세한 설명에 의해 명백해질 것이다.
도 1은 본 발명에 따른 정보 처리 시스템의 구성예를 설명하는 도면.
도 2는 본 발명에 따른 정보 처리 시스템에서 적용 가능한 기록 재생 장치의 구성예를 도시한 블록도.
도 3은 본 발명에 따른 정보 처리 시스템에서의 각종 키, 데이터의 암호화 처리에 대하여 설명하는 트리 구성도.
도 4는 본 발명에 따른 정보 처리 시스템에서의 각종 키, 데이터의 배포에 사용되는 유효화 키 블록(EKB)의 예를 나타내는 도면.
도 5는 본 발명에 따른 정보 처리 시스템에서의 콘텐츠 키의 유효화 키 블록(EKB)을 사용한 배포 예와 복호 처리예를 도시한 도면.
도 6은 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)의 포맷 예를 도시한 도면.
도 7은 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)의 태그 구성을 설명하는 도면.
도 8은 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)과, 콘텐츠 키, 콘텐츠를 함께 배신하는 데이터 구성예를 도시한 도면.
도 9는 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)과, 콘텐츠 키, 콘텐츠를 함께 배신한 경우의 디바이스에서의 처리예를 도시한 도면.
도 10은 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)과 콘텐츠를 기록 매체에 저장한 경우의 대응에 대하여 설명하는 도면.
도 11은 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)과, 콘텐츠 키를 송부하는 처리를 종래의 송부 처리와 비교한 도면.
도 12는 본 발명에 따른 정보 처리 시스템에서 적용 가능한 공통 키 암호 방식에 의한 인증 처리 시퀀스를 도시한 도면.
도 13은 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)과, 인증 키를 함께 배신하는 데이터 구성과, 디바이스에서의 처리예를 도시한 도면(그 1).
도 14는 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)과, 인증 키를 함께 배신하는 데이터 구성과, 디바이스에서의 처리예를 도시한 도면(그 2).
도 15는 본 발명에 따른 정보 처리 시스템에서 적용 가능한 공개 키 암호 방식에 의한 인증 처리 시퀀스를 도시한 도면.
도 16은 본 발명에 따른 정보 처리 시스템에서 공개 키 암호 방식에 의한 인증 처리를 이용하여 유효화 키 블록(EKB)과 콘텐츠 키를 함께 배신하는 처리를 도시한 도면.
도 17은 본 발명에 따른 정보 처리 시스템에서 유효화 키 블록(EKB)과, 암호화 프로그램 데이터를 함께 배신하는 처리를 도시한 도면.
도 18은 본 발명에 따른 정보 처리 시스템에서 적용 가능한 콘텐츠 인테그리티 체크값(ICV)의 생성에 사용하는 MAC값 생성예를 도시한 도면.
도 19는 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)과, ICV 생성 키를 함께 배신하는 데이터 구성과, 디바이스에서의 처리예를 도시한 도면(그 1).
도 20은 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)과, ICV 생성 키를 함께 배신하는 데이터 구성과, 디바이스에서의 처리예를 도시한 도면(그 2).
도 21은 본 발명에 따른 정보 처리 시스템에서 적용 가능한 콘텐츠 인테그리티 체크값(ICV)을 미디어에 저장한 경우의 복사 방지 기능을 설명하는 도면.
도 22는 본 발명에 따른 정보 처리 시스템에서 적용 가능한 콘텐츠 인테그리티 체크값(ICV)을 콘텐츠 저장 매체와 별도로 관리하는 구성을 설명하는 도면.
도 23은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 분류의 예를 설명하는 도면.
도 24는 본 발명에 따른 정보 처리 시스템에서의 간략화 유효화 키 블록(EKB)의 생성 과정을 설명하는 도면.
도 25는 본 발명에 따른 정보 처리 시스템에서의 유효화 키 블록(EKB)의 생성 과정을 설명하는 도면.
도 26은 본 발명에 따른 정보 처리 시스템에서의 간략화 유효화 키 블록(EKB)(예 1)을 설명하는 도면.
도 27은 본 발명에 따른 정보 처리 시스템에서의 간략화 유효화 키 블록(EKB)(예 2)을 설명하는 도면.
도 28은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에 대하여 설명하는 도면.
도 29는 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성의 상세에 대하여 설명하는 도면.
도 30은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에 대하여 설명하는 도면.
도 31은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 리저브 노드에 대하여 설명하는 도면.
도 32는 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 신규 카테고리 트리 등록 처리 시퀀스에 대하여 설명하는 도면.
도 33은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 신규 카테고리 트리와 상위 카테고리 트리의 관계에 대하여 설명하는 도면.
도 34는 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서 이용하는 서브 EKB에 대하여 설명하는 도면.
도 35는 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 디바이스 리보크 처리에 대하여 설명하는 도면.
도 36은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 디바이스 리보크 처리 시퀀스에 대하여 설명하는 도면.
도 37은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 디바이스 리보크 시의 갱신 서브 EKB에 대하여 설명하는 도면.
도 38은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 카테고리 트리 리보크 처리에 대하여 설명하는 도면.
도 39는 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 카테고리 트리 리보크 처리 시퀀스에 대하여 설명하는 도면.
도 40은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 리보크 카테고리 트리와 상위 카테고리 트리의 관계에 대하여 설명하는 도면.
도 41은 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 캐이퍼빌리티 설정에 대하여 설명하는 도면.
도 42는 본 발명에 따른 정보 처리 시스템에서의 계층 트리 구조의 카테고리 트리 관리 구성에서의 캐이퍼빌리티 설정에 대하여 설명하는 도면.
도 43은 본 발명에 따른 정보 처리 시스템에서의 키 발행 센터(KDC)가 관리하는 캐이퍼빌리티 관리 테이블 구성을 설명하는 도면.
도 44는 본 발명에 따른 정보 처리 시스템에서의 키 발행 센터(KDC)가 관리하는 캐이퍼빌리티 관리 테이블에 기초한 EKB 생성 처리 흐름도.
도 45는 본 발명에 따른 정보 처리 시스템에서의 신규 카테고리 트리 등록 시의 캐이퍼빌리티 통지 처리를 설명하는 도면.
도 46은 본 발명에 따른 정보 처리 시스템에서의 카테고리 트리의 구성을 설명하는 도면.
도 47은 본 발명에 따른 정보 처리 시스템에서의 EKB 요청자, 키 발행 센터, 톱 레벨 카테고리 엔티티(TLCE)와의 관계, 처리예를 설명하는 도면.
도 48은 본 발명에 따른 정보 처리 시스템에서의 EKB 요청자, 키 발행 센터, 톱 레벨 카테고리 엔티티(TLCE)의 하드웨어 구성예를 설명하는 도면.
도 49는 본 발명에 따른 정보 처리 시스템에서의 디바이스가 보유하는 디바이스 노드 키(DNK)에 대하여 설명하는 도면.
도 50은 본 발명에 따른 정보 처리 시스템에서의 EKB 타입 정의 리스트의 데이터 구성을 설명하는 도면.
도 51은 본 발명에 따른 정보 처리 시스템에서의 EKB 타입 등록 처리 흐름을 설명하는 도면.
도 52는 본 발명에 따른 정보 처리 시스템에서의 EKB 타입 무효화 처리 흐름을 설명하는 도면.
도 53은 본 발명에 따른 정보 처리 시스템에서의 트리 변경 통지 처리 흐름을 설명하는 도면.
도 54는 본 발명에 따른 정보 처리 시스템에서의 EKB 타입 리스트 요구 처리 흐름을 설명하는 도면.
도 55는 본 발명에 따른 정보 처리 시스템에서의 서브 EKB의 생성 처리를 설명하는 도면.
도 56은 본 발명에 따른 정보 처리 시스템에서의 서브 EKB의 생성 처리를 설명하는 도면.
도 57은 본 발명에 따른 정보 처리 시스템에서의 서브 EKB로부터 합성한 EKB를 생성하는 처리를 설명하는 도면.
도 58은 본 발명에 따른 정보 처리 시스템에서의 리보크 디바이스가 있는 경우의 서브 EKB의 생성 처리를 설명하는 도면.
도 59는 본 발명에 따른 정보 처리 시스템에서의 리보크 디바이스가 있는 경우의 서브 EKB로부터 합성한 EKB를 생성하는 처리를 설명하는 도면.
도 60은 본 발명에 따른 정보 처리 시스템에서의 서브 EKB로부터 합성한 EKB의 데이터 구성을 설명하는 도면.
도 61은 본 발명에 따른 정보 처리 시스템에서의 서브 EKB로부터 합성한 EKB 의 데이터 구성을 설명하는 도면.
도 62는 본 발명에 따른 정보 처리 시스템에서의 리보크 디바이스가 있는 경우의 서브 EKB로부터 합성한 EKB의 데이터 구성을 설명하는 도면.
도 63은 본 발명에 따른 정보 처리 시스템에서의 데이터 배신형의 시스템에서의 리보크 처리를 설명하는 도면.
도 64는 본 발명에 따른 정보 처리 시스템에서의 자기 기록형 시스템에서의 리보크 처리를 설명하는 도면.
〈발명을 실시하기 위한 최량의 형태〉
[시스템 개요]
도 1은 본 발명의 정보 처리 시스템이 적용 가능한 콘텐츠 배신 시스템 예를 도시한 것이다. 콘텐츠의 배신측(10)은 콘텐츠 수신측(20)이 갖는 다양한 콘텐츠 재생 가능한 기기에 대하여 콘텐츠 혹은 콘텐츠 키를 암호화하여 송신한다. 수신측(20) 기기에서는 수신한 암호화 콘텐츠 혹은 암호화 콘텐츠 키 등을 복호하여 콘텐츠 혹은 콘텐츠 키를 취득하여, 화상 데이터, 음성 데이터의 재생 혹은 각종 프로그램의 실행 등을 행한다. 콘텐츠의 배신측(10)과 콘텐츠 수신측(20) 사이의 데이터 교환은, 인터넷 등의 네트워크를 통해서 혹은 DVD, CD 등의 유통 가능한 기억 매체를 통해 실행된다.
콘텐츠 배신측(10)의 데이터 배신 수단으로는 인터넷(11), 위성 방송(12), 전화 회선(13), DVD, CD 등의 미디어(14) 등이 있고, 한편, 콘텐츠 수신측(20)의 디바이스로는 퍼스널 컴퓨터(PC)(21), 포터블 디바이스(PD)(22), 휴대 전화, PDA(Personal Digital Assistants) 등의 휴대 기기(23), DVD, CD 플레이어 등의 기록 재생기(24), 게임 단말 등의 재생 전용기(25) 등이 있다. 이들 콘텐츠 수신측(20)의 각 디바이스는 콘텐츠 배신측(10)에서 제공된 콘텐츠를 네트워크 등의 통신 수단 혹은 미디어(30)로부터 취득한다.
[디바이스 구성]
도 2는 도 1에 도시한 콘텐츠 수신측(20) 디바이스의 일례로서 기록 재생 장치(100)의 구성 블록도를 도시한다. 기록 재생 장치(100)는 입출력 I/F(Interface)(120), MPEG(Moving Picture Experts Group) 코덱(130), A/D, D/A 컨버터(141)를 구비한 입출력 I/F(Interface)(140), 암호 처리 수단(150), ROM(Read Only Memory)(160), CPU(Central Processing Unit)(170), 메모리(180), 기록 매체(195)의 드라이브(190)를 갖고, 이들은 패스(110)에 의해 서로 접속되어 있다.
입출력 I/F(120)는 외부로부터 공급되는 화상, 음성, 프로그램 등의 각종 콘텐츠를 구성하는 디지털 신호를 수신하여 패스(110) 상으로 출력함과 함께, 패스(110) 상의 디지털 신호를 수신하여 외부로 출력한다. MPEG 코덱(130)은 패스(110)를 통해 공급되는 MPEG 부호화된 데이터를 MPEG 디코드하여 입출력 I/F(140)에 출력함과 함께, 입출력 I/F(140)로부터 공급되는 디지털 신호를 MPEG 인코드하여 패스(110) 상으로 출력한다. 입출력 I/F(140)는 A/D, D/A 컨버터(141)를 내장하고 있다. 입출력 I/F(140)는 외부에서 공급되는 콘텐츠로서의 아날로그 신호를 수신하고, A/D, D/A 컨버터(141)에서 A/D(Analog Digital) 변환함으로써, 디지털 신호로서 MPEG 코덱(130)으로 출력함과 함께, MPEG 코덱(130)으로부터의 디지털 신호를 A/D, D/A 컨버터(141)에서 D/A(Digital Analog) 변환함으로써, 아날로그 신호로서 외부로 출력한다.
암호 처리 수단(150)은 예를 들면 1칩의 LSI(Large Scale Integrated Curcuit)로 구성되고, 패스(11O)를 통해 공급되는 컨텐츠로서의 디지털 신호의 암호화, 복호 처리 혹은 인증 처리를 실행하고, 암호 데이터, 복호 데이터 등을 패스(110) 상으로 출력하는 구성을 갖는다. 또, 암호 처리 수단(150)은 1칩 LSI에 한정되지 않고, 각종 소프트웨어 또는 하드웨어를 조합시킨 구성에 의해 실현하는 것도 가능하다. 소프트웨어 구성에 의한 처리 수단으로서의 구성에 대해서는 후술한다.
ROM(160)은 기록 재생 장치에 의해 처리되는 프로그램 데이터를 저장한다. CPU(170)는 ROM(160) 및 메모리(180)에 기억된 프로그램을 실행함으로써, MPEG 코덱(130)이나 암호 처리 수단(150) 등을 제어한다. 메모리(180)는 예를 들면 불휘발성 메모리로, CPU(170)가 실행하는 프로그램이나, CPU(170)의 동작상 필요한 데이터, 나아가서는 디바이스에 의해 실행되는 암호 처리에 사용되는 키 세트를 기억한다. 키 세트에 대해서는 후술한다. 드라이브(190)는 디지털 데이터를 기록 재생 가능한 기록 매체(195)를 구동함으로써, 기록 매체(195)로부터 디지털 데이터를 판독(재생)하여 패스(110) 상으로 출력함과 함께, 패스(110)를 통해 공급되는 디지털 데이터를 기록 매체(195)에 공급하여 기록시킨다.
기록 매체(195)는 예를 들면 DVD, CD 등의 광 디스크, 광 자기 디스크, 자기 디스크, 자기 테이프, 혹은 RAM 등의 반도체 메모리 등의 디지털 데이터의 기억 가능한 매체로서, 본 실시예에서는 드라이브(190)에 대하여 착탈 가능한 구성으로 한다. 단, 기록 매체(195)는 기록 재생 장치(100)에 내장하는 구성으로 하여도 된다.
또, 도 2에 도시한 암호 처리 수단(150)은 하나의 원 칩 LSI로서 구성하여도 되며, 또한 소프트웨어, 하드웨어를 조합시킨 구성에 의해 실현하는 구성으로 하여도 된다.
[키 배신 구성으로서의 트리(나무) 구조에 대하여]
다음에, 도 1에 도시한 콘텐츠 배신측(10)으로부터 콘텐츠 수신측(20)의 각 디바이스에 암호 데이터를 배신하는 경우의 각 디바이스에서의 암호 처리 키의 보유 구성 및 데이터 배신 구성을 도 3을 참조하여 설명한다.
도 3의 최하단에 나타내는 번호 0∼15가 컨텐츠 수신측(20)의 개개의 디바이스이다. 즉 도 3에 도시한 계층 트리(나무) 구조의 각 잎(리프: leaf)이 각각의 디바이스에 상당한다.
각 디바이스 0∼15는 제조 시 또는 출하 시, 혹은 그 후에, 도 3에 도시한 계층 트리(나무) 구조에서의, 자기 리프로부터 루트에 이르기까지의 노드에 할당된 키(노드 키) 및 각 리프의 리프 키로 이루어지는 키 세트를 메모리에 저장한다. 도 3의 최하단에 나타내는 K0000∼K1111은 각 디바이스 0∼15에 각각 할당된 리프 키이며, 최상단의 KR(루트 키)로부터, 최하단으로부터 2번째 절(노드)에 기재된 키: KR∼K111를 노드 키로 한다.
도 3에 도시한 트리 구성에서, 예를 들면 디바이스 0은 리프 키 K0000와, 노드 키: K000, K00, K0, KR를 소유한다. 디바이스 5는 K0101, K010, K01, K0, KR을 소유한다. 디바이스(15)는 K1111, K111, K11, K1, KR을 소유한다. 또, 도 3의 트리에는 디바이스가 0∼15의 16개만 기재되고, 트리 구조도 4단 구성의 균형이 취해진 좌우 대칭 구성으로서 나타내고 있지만, 더 많은 디바이스가 트리 내에 구성되며, 또한 트리의 각부에서 서로 다른 단수 구성을 갖을 수 있다.
또한, 도 3의 트리 구조에 포함되는 각 디바이스에는, 다양한 기록 매체, 예를 들면 디바이스 매립형 혹은 디바이스에 착탈 가능하게 구성된 DVD, CD, MD, 플래시 메모리 등을 사용하는 다양한 타입의 디바이스가 포함되어 있다. 또한, 다양한 어플리케이션 서비스가 공존 가능하다. 이러한 서로 다른 디바이스, 서로 다른 어플리케이션의 공존 구성 상에 도 3에 도시한 콘텐츠 혹은 키 배포 구성인 계층 트리 구조가 적용된다.
이들 다양한 디바이스, 어플리케이션이 공존하는 시스템에서, 예를 들면 도 3의 점선으로 둘러싼 부분, 즉 디바이스 0, 1, 2, 3을 동일한 기록 매체를 이용하는 하나의 그룹으로서 설정한다. 예를 들면, 이 점선으로 둘러싼 그룹 내에 포함되는 디바이스에 대해서는 일괄하여, 공통의 콘텐츠를 암호화하여 프로바이더로부터 송부하거나, 각 디바이스 공통으로 사용하는 콘텐츠 키를 송부하거나, 혹은 각 디바이스로부터 프로바이더 혹은 결제 기관 등에 콘텐츠 요금의 지불 데이터를 또한 암호화하여 출력하는 등의 처리가 실행된다. 콘텐츠 프로바이더 혹은 결제 처리 기관 등, 각 디바이스와의 데이터 송수신을 실행하는 기관은 도 3의 점선으로 둘러싼 부분, 즉 디바이스 0, 1, 2, 3을 하나의 그룹으로서 일괄하여 데이터를 송부하는 처리를 실행한다. 이러한 그룹은 도 3의 트리 중에 복수개 존재한다. 콘텐츠 프로바이더 혹은 결제 처리 기관 등 각 디바이스와의 데이터 송수신을 실행하는 기관은, 메시지 데이터 배신 수단으로서 기능한다.
또, 노드 키와 리프 키를 임의의 하나의 키 관리 센터에 의해서 통괄하여 관리하여도 되고, 각 그룹에 대한 다양한 데이터 송수신을 실행하는 프로바이더, 결제 기관 등의 메시지 데이터 배신 수단에 의해 그룹별로 관리하는 구성으로 하여도 된다. 이들 노드 키, 리프 키는 예를 들면 키의 누설 등의 경우에 갱신 처리가 실행되고, 이 갱신 처리는 키 관리 센터, 프로바이더, 결제 기관 등이 실행한다.
이 트리 구조에서, 도 3으로부터 명백한 바와 같이, 하나의 그룹에 포함되는 3개의 디바이스 0, 1, 2, 3은 노드 키로서 공통의 키 K00, K0, KR을 보유한다. 이 노드 키 공유 구성을 이용함으로써, 예를 들면 공통의 콘텐츠 키를 디바이스 0, 1, 2, 3에만 제공하는 것이 가능해진다. 예를 들면, 공통으로 보유하는 노드 키 K00 자체를 콘텐츠 키로서 설정하면, 새로운 키 송부를 실행하지 않고 디바이스 0, 1, 2, 3 만이 공통의 콘텐츠 키 설정이 가능하다. 또한, 새로운 콘텐츠 키 Kcon을 노드 키 K00으로 암호화한 값 Enc(K00, Kcon)을 네트워크를 통하거나 혹은 기록 매체에 저장하여 디바이스 0, 1, 2, 3에 배포하면, 디바이스 0, 1, 2, 3만이 각각의 디바이스에서 보유하는 공유 노드 키 K00을 이용하여 암호 Enc(K00, Kcon)를 해독하여 콘텐츠 키: Kcon를 얻는 것이 가능해진다. 또, Enc(Ka, KB)는 Kb를 Ka에 의해서 암호화한 데이터임을 나타낸다.
또한, 임의의 시점 t에서, 디바이스 3이 소유하는 키: K0011, K001, K00, K0, KR가 공격자(해커)에 의해 해석되어 노출되었음이 발각된 경우, 그 이후, 시스템(디바이스 0, 1, 2, 3의 그룹)에서 송수신되는 데이터를 지키기 위해, 디바이스 3을 시스템으로부터 분리할 필요가 있다. 이를 위해서는 노드 키: K001, K00, K0, KR를 각각 새로운 키 K(t)001, K(t)00, K(t)0, K(t)R로 갱신하고, 디바이스 0, 1, 2에 그 갱신 키를 전달할 필요가 있다. 여기서, K(t)aaa는 키 Kaaa의 세대(Generation): t의 갱신 키임을 나타낸다.
갱신 키의 배포 처리에 대하여 설명한다. 키의 갱신은 예를 들면, 도 4의 (A)에 도시한 유효화 키 블록(EKB: Enabling Key Block)이라 불리는 블록 데이터에 의해 구성되는 테이블을 예를 들면 네트워크, 혹은 기록 매체에 저장하여 디바이스 0, 1, 2에 공급함으로써 실행된다. 또, 유효화 키 블록(EKB)은 도 3에 도시한 트리 구조를 구성하는 각 리프에 대응하는 디바이스에 새롭게 갱신된 키를 배포하기 위한 암호화 키에 의해 구성된다. 유효화 키 블록(EKB)은 키 갱신 블록(KRB: Key Renewal Block)이라 불리기도 한다.
도 4의 (A)에 도시한 유효화 키 블록(EKB)에는 노드 키의 갱신이 필요한 디바이스만이 갱신 가능한 데이터 구성을 갖는 블록 데이터로서 구성된다. 도 4의 예는 도 3에 도시한 트리 구조 중의 디바이스 0, 1, 2에서, 세대 t의 갱신 노드 키를 배포하는 것을 목적으로 형성된 블록 데이터이다. 도 3으로부터 명백한 바와 같이, 디바이스 0과 디바이스 1은 갱신 노드 키로서 K(t)00, K(t)0, K(t)R이 필요하며, 디바이스 2는 갱신 노드 키로서 K(t)001, K(t)00, K(t)0, K(t)R이 필요하다.
도 4의 (A)의 EKB에 도시한 바와 같이 EKB에는 복수의 암호화 키가 포함된다. 최하단의 암호화 키는 Enc(K0010, K(t)001)이다. 이것은 디바이스(2)가 갖는 리프 키 K0010에 의해 암호화된 갱신 노드 키 K(t)001이고, 디바이스(2)는 자신이갖는 리프 키에 의해 이 암호화 키를 복호하여 K(t)001을 얻을 수 있다. 또한, 복호에 의해 얻은 K(t)001을 이용하여, 도 4의 (A)의 아래로부터 2단째의 암호화 키 Enc(K(t)001, K(t)00)를 복호 가능하게 되어, 갱신 노드 키 K(t)00를 얻을 수 있다. 이하 순차적으로, 도 4의 (A)의 위로부터 2단째의 암호화 키 Enc(K(t)00, K(t)0)를 복호하여 갱신 노드 키 K(t)0, 도 4의 (A)의 위로부터 1단째의 암호화 키 Enc(K(t)0, K(t)R)를 복호하여 K(t)R을 얻는다. 한편, 디바이스 K0000.K0001은 노드 키 K000이 갱신할 대상에 포함되어 있지 않으며, 갱신 노드 키로서 필요한 것은 K(t)00, K(t)0, K(t)R이다. 디바이스 K0000. K0001는 도 4의 (A)의 위로부터 3단째의 암호화 키 Enc(K000, K(t)00)를 복호하여 K(t)00을 취득하고, 이하, 도 4의 (A)의 위로부터 2단째의 암호화 키 Enc(K(t)00, K(t)0)를 복호하여 갱신 노드 키 K(t)0, 도 4의 (A)의 위로부터 1단째의 암호화 키 Enc(K(t)0, K(t)R)를 복호하여 K(t)R을 얻는다. 이렇게 하여, 디바이스 0, 1, 2는 갱신한 키 K(t)R를 얻을 수 있다. 또, 도 4의 (A)의 인덱스는 복호 키로서 사용하는 노드 키, 리프 키의 절대 번지를 나타낸다.
도 3에 도시한 트리 구조의 상위단의 노드 키: K(t)0, K(t)R의 갱신이 불필요하며, 노드 키 K00만의 갱신 처리가 필요한 경우에는, 도 4의 (B)의 유효화 키 블록(EKB)을 이용함으로써 갱신 노드 키 K(t)00를 디바이스 0, 1, 2에 배포할 수 있다.
도 4의 (B)에 도시한 EKB는, 예를 들면 특정한 그룹에서 공유하는 새로운 콘텐츠 키를 배포하는 경우에 이용 가능하다. 구체예로서, 도 3에 점선으로 나타낸 그룹 내의 디바이스 0, 1, 2, 3이 있는 기록 매체를 이용하고 있으며, 새로운 공통의 콘텐츠 키 K(t)con가 필요하다고 하자. 이 때, 디바이스 0, 1, 2, 3의 공통 노드 키 K00를 갱신한 K(t)00를 이용하여 새로운 공통의 갱신 콘텐츠 키: K(t)con를 암호화한 데이터 Enc(K(t), K(t)con)를 도 4의 (B)에 도시한 EKB와 함께 배포한다. 이 배포에 의해, 디바이스 4 등 그 밖의 그룹의 기기에서는 복호되지 않는 데이터로서의 배포가 가능해진다.
즉, 디바이스 0, 1, 2는 EKB를 처리하여 얻은 K(t)00을 이용하여 상기 암호문을 복호하면, t 시점에서의 콘텐츠 키 K(t)con를 얻는 것이 가능하게 된다.
[EKB를 사용한 콘텐츠 키의 배포]
도 5는 t 시점에서의 콘텐츠 키 K(t)con를 얻는 처리예로서, K(t)00을 이용하여 새로운 공통의 콘텐츠 키 K(t)con를 암호화한 데이터 Enc(K(t)00, K(t)con)와 도 4의 (B)에 도시한 EKB를 기록 매체를 통해 수령한 디바이스 0의 처리를 도시한다. 즉, EKB에 의한 암호화 메시지 데이터를 콘텐츠 키 K(t)con로 한 예이다.
도 5에 도시한 바와 같이, 디바이스 0은 기록 매체에 저장되어 있는 세대: t 시점의 EKB와 자신이 사전에 저장하고 있는 노드 키 K000를 이용하여 상술한 바와 같은 EKB 처리에 의해 노드 키 K(t)00를 생성한다. 또한, 복호한 갱신 노드 키 K(t)00를 이용하여 갱신 콘텐츠 키 K(t)con를 복호하여, 후에 그것을 사용하기 위 해 자신만이 지닌 리프 키 K0000로 암호화하여 저장한다.
[EKB의 포맷]
도 6은 유효화 키 블록(EKB)의 포맷예를 도시한다. 버전(601)은 유효화 키 블록(EKB)의 버전을 나타내는 식별자이다. 또, 버전은 최신의 EKB를 식별하는 기능과 콘텐츠의 대응 관계를 나타내는 기능을 가진다. 깊이(depth)는 유효화 키 블록(EKB)의 배포처인 디바이스에 대한 계층 트리의 계층 수를 나타낸다. 데이터 포인터(603)는 유효화 키 블록(EKB) 내의 데이터부의 위치를 나타내는 포인터이며, 태그 포인터(604)는 태그부의 위치, 서명 포인터(605)는 서명 위치를 나타내는 포인터이다.
데이터부(606)는 예를 들면 갱신하는 노드 키를 암호화한 데이터를 저장한다. 예를 들면 도 5에 도시한 바와 같은 갱신된 노드 키에 관한 각 암호화 키 등을 저장한다.
태그부(607)는 데이터부에 저장된 암호화된 노드 키, 리프 키의 위치 관계를 나타내는 태그이다. 이 태그의 부여 룰을 도 7을 참조하여 설명한다. 도 7에서는 데이터로서 먼저 도 4의 (A)에서 설명한 유효화 키 블록(EKB)을 송부하는 예를 도시하고 있다. 이 때의 데이터는 도 7의 표 (b)에 나타낸 바와 같이 된다. 이 때의 암호화 키에 포함되는 톱 노드의 어드레스를 톱 노드 어드레스로 한다. 이 경우에는 루트 키의 갱신 키 K(t)R가 포함되어 있기 때문에, 톱 노드 어드레스는 KR로 된다. 이 때, 예를 들면 최상단의 데이터 Enc(K(t)0, K(t)R)는 도 7의 (a)에 도시한 계층 트리에 도시한 위치에 있다. 여기서, 다음 데이터는 Enc(K(t)00, K(t)0)이며, 트리 상에서는 앞의 데이터의 좌측 하부 위치에 있다. 데이터가 있는 경우에는, 태그가 0, 없는 경우에는 1이 설정된다. 태그는 {좌측(L) 태그, 우측(R) 태그}로서 설정된다. 최상단의 데이터 Enc(K(t)0, K(t)R)의 좌측에는 데이터가 있으므로, L태그=0, 우측에는 데이터가 없으므로, R태그=1로 된다. 이하, 모든 데이터에 태그가 설정되고, 도 7의 (c)에 도시한 데이터 열 및 태그 열이 구성된다.
태그는 데이터 Enc(Kxxx, Kyyy)가 트리 구조의 어디에 위치하고 있는지를 나타내기 위해 설정되는 것이다. 데이터부에 저장되는 키 데이터 Enc(Kxxx, Kyyy)…는, 단순히 암호화된 키의 나열 데이터에 불과하므로, 상술한 태그에 의해 데이터로서 저장된 암호화 키의 트리 상의 위치를 판별 가능하게 한 것이다. 상술한 태그를 이용하지 않고, 앞의 도 4에서 설명한 구성과 같이 암호화 데이터에 대응시킨 노드 인덱스를 이용하여, 예를 들면,
0 : Enc(K(t)0, K(t)root)
00 : Enc(K(t)00, K(t)0)
000 : Enc(K((t)000, K(T)O0)
…과 같은 데이터 구성으로 하는 것도 가능하지만, 이러한 인덱스를 이용한 구성으로 하면 용장 데이터로 되어 데이터량이 증대하여, 네트워크를 통한 배신 등에서는 바람직하지 못하다. 이에 대하여, 상술한 태그를 키 위치를 나타내는 색인 데이터로서 이용함으로써, 적은 데이터량으로 키 위치의 판별이 가능해진다.
도 6으로 되돌아가 EKB 포맷에 대하여 더 설명한다. 서명(Signature)은 유 효화 키 블록(EKB)을 발행한, 예를 들면 키 관리 센터, 컨텐츠 프로바이더, 결제 기관 등이 실행하는 전자 서명이다. EKB를 수령한 디바이스는 서명 검증에 의해 정당한 유효화 키 블록(EKB) 발행자가 발행한 유효화 키 블록(EKB)임을 확인한다.
[EKB를 사용한 콘텐츠 키 및 콘텐츠의 배신]
상술한 예에서는, 콘텐츠 키만을 EKB와 함께 송부하는 예에 대하여 설명하였지만, 콘텐츠 키로 암호화한 콘텐츠와, 콘텐츠 키 암호 키로 암호화한 콘텐츠 키와, EKB에 의해 암호화한 콘텐츠 키 암호 키를 함께 송부하는 구성에 대하여 이하 설명한다.
도 8에 이 데이터 구성을 도시한다. 도 8의 (a)에 도시한 구성에서, Enc(Kcon, content)(801)는 콘텐츠(Content)를 콘텐츠 키(Kcon)로 암호화한 데이터이고, Enc(KEK, Kcon)(802)는 콘텐츠 키(Kcon)를 콘텐츠 키 암호 키(KEK: Key Encryption Key)로 암호화한 데이터이며, Enc(EKB, KEK)(803)는 콘텐츠 키 암호 키 KEK를 유효화 키 블록(EKB)에 의해 암호화한 데이터인 것을 나타낸다.
여기서, 콘텐츠 키 암호 키 KEK는 도 3에 도시한 노드 키(K000, K00…), 혹은 루트 키(KR) 자체여도 되고, 또한 노드 키(K000, K00…) 혹은 루트 키(KR)에 의해 암호화된 키이더라도 무방하다.
도 8의 (b)는 복수의 콘텐츠가 미디어에 기록되고, 각각이 동일한 Enc(EKB, KEK)(805)를 이용하고 있는 경우의 구성예를 나타낸다. 이러한 구성에서는 각 데이터에 동일 Enc(EKB, KEK)를 부가하지 않고, Enc(EKB, KEK)에 링크되는 링크처를 나타내는 데이터를 각 데이터에 부가하는 구성으로 할 수 있다.
도 9에 콘텐츠 키 암호 키 KEK를, 도 3에 도시한 노드 키 K00를 갱신한 갱신 노드 키 K(t)00로서 구성한 경우의 예를 나타낸다. 이 경우, 도 3의 점선으로 둘러싼 그룹에서 디바이스 3이, 예를 들면 키의 누설에 의해 리보크(배제)되어 있는 것으로 하고, 다른 그룹의 멤버, 즉 디바이스 0, 1, 2에 대하여 도 9에 도시한 (a)유효화 키 블록(EKB)과, (b) 콘텐츠 키(Kcon)를 콘텐츠 키 암호 키(KEK= K(t)00)로 암호화한 데이터와, (c) 콘텐츠(content)를 콘텐츠 키(Kcon)로 암호화한 데이터를 배신함으로써, 디바이스 0, 1, 2는 콘텐츠를 얻을 수 있다.
도 9의 우측에는 디바이스 0에서의 복호 순서가 도시되어 있다. 디바이스 0은 먼저, 수령한 유효화 키 블록으로부터 자신이 보유하는 리프 키 K000를 이용한 복호 처리에 의해 콘텐츠 키 암호 키(KEK=K(t)00)를 취득한다. 다음에, K(t)00에 의한 복호에 의해 콘텐츠 키 Kcon를 취득하고, 또한 콘텐츠 키 Kcon에 의해 콘텐츠의 복호를 실행한다. 이들 처리에 의해, 디바이스 0은 콘텐츠를 이용 가능하게 된다. 디바이스 1, 2에서도 각각 다른 처리 순서로 EKB를 처리함으로써, 콘텐츠 키 암호 키(KEK=K(t)00)를 취득하는 것이 가능해지며, 마찬가지로 콘텐츠를 이용하는 것도 가능해진다.
도 3에 도시한 다른 그룹의 디바이스 4, 5, 6…은 이 동일 데이터(EKB)를 수신하였다고 하여도, 자신이 보유하는 리프 키와 노드 키를 이용하여 콘텐츠 키 암호 키(KEK=K(t)00)를 취득할 수 없다. 마찬가지로 리보크된 디바이스(3)에서도 자신이 보유한 리프 키와 노드 키로는 콘텐츠 키 암호 키(KEK=K(t)00)를 취득할 수 없으며, 정당한 권리를 갖는 디바이스만이 콘텐츠를 복호하여 이용하는 것이 가능 해진다.
이와 같이, EKB를 이용한 콘텐츠 키의 배송을 이용하면, 데이터량을 적게 하면서도 안전하게 정당한 권리자만이 복호 가능한 암호화 콘텐츠를 배신할 수 있게 된다.
또, 유효화 키 블록(EKB), 콘텐츠 키, 암호화 콘텐츠 등은 네트워크를 통해 안전하게 배신하는 것이 가능한 구성이지만, 유효화 키 블록(EKB), 콘텐츠 키, 암호화 콘텐츠를 DVD, CD 등의 기록 매체에 저장하여 사용자에게 제공하는 것도 가능하다. 이 경우, 기록 매체에 저장된 암호화 콘텐츠의 복호에는, 동일 기록 매체에 저장된 유효화 키 블록(EKB)의 복호에 의해 얻어지는 콘텐츠 키를 사용하도록 구성하면, 사전에 정당한 권리자만이 보유하는 리프 키와 노드 키에 의해서만 이용 가능한 암호화 콘텐츠의 배포 처리, 즉 이용 가능한 사용자 디바이스를 한정한 콘텐츠 배포가 간단한 구성으로 실현 가능하게 된다.
도 10은 기록 매체에 암호화 콘텐츠와 함께 유효화 키 블록(EKB)을 저장한 구성예를 도시한다. 도 10에 도시한 예에서는 기록 매체에 콘텐츠 C1∼C4가 저장되고, 또한 각 저장 콘텐츠에 대응하는 유효화 키 블록(EKB)을 대응시킨 데이터가 저장되며, 또한 버전 M의 유효화 키 블록(EKB_M)이 저장되어 있다. 예를 들면 EKB_1은 콘텐츠 C1를 암호화한 콘텐츠 키 Kcon1를 생성하는 데 사용되고, 예를 들면 EKB_2는 콘텐츠 C2를 암호화한 콘텐츠 키 Kcon2를 생성하는 데 사용된다. 이 예에서는 버전 M의 유효화 키 블록(EKB_M)이 기록 매체에 저장되어 있으며, 콘텐츠 C3, C4는 유효화 키 블록(EKB_M)에 대응되어 있으므로, 유효화 키 블록(EKB_M)의 복호에 의해 콘텐츠 C3, C4의 콘텐츠 키를 취득할 수 있다. EKB_1, EKB_2는 디스크에 저장되어 있지 않으므로, 새로운 제공 수단, 예를 들면 네트워크 배신 혹은 기록 매체에 의한 배신에 의해 각각의 콘텐츠 키를 복호하기 위해 필요한 EKB_1, EKB_2를 취득할 필요가 있다.
도 11은 복수의 디바이스 간에서 콘텐츠 키가 유통되는 경우의 EKB를 이용한 콘텐츠 키의 배신과, 종래의 콘텐츠 키 배신 처리의 비교예를 도시한다. 상단 (a)가 종래 구성이며, 하단 (b)가 본 발명의 유효화 키 블록(EKB)을 이용한 예이다. 또, 도 11에서 Ka(Kb)는 Kb를 Ka도 암호화한 데이터임을 나타낸다.
(a)에 도시한 바와 같이, 종래에는 데이터 송수신자의 정당성을 확인하고, 또한 데이터 송신의 암호화 처리에 사용하는 세션 키 Kses를 공유하기 위해 각 디바이스 간에서, 인증 처리 및 키 교환 처리(AKE: Authentication and Key Exchange)를 실행하고, 인증이 성립되었음을 조건으로 하여 세션 키 Kses로 콘텐츠 키 Kcon를 암호화하여 송신하는 처리를 실행하고 있었다.
예를 들면 도 11의 (a)의 PC에서는 수신한 세션 키로 암호화한 콘텐츠 키 Kses(Kcon)를 세션 키로 복호하여 Kcon을 얻는 것이 가능하며, 또한 취득한 Kcon을 PC 자체가 보유하는 보존 키 Kstr로 암호화하여 자신의 메모리에 보존하는 것이 가능해진다.
도 11의 (a)에서, 콘텐츠 프로바이더는 도 11의 (a)의 기록 매체(1101)에만 데이터를 이용 가능한 형태로 배신하고자 하는 경우에도, 사이에 PC, 재생 장치가 존재하는 경우에는 도 11의 (a)에 도시한 바와 같이 인증 처리를 실행하고, 각각의 세션 키로 콘텐츠 키를 암호화하여 배신하는 등의 처리가 필요하게 된다. 또한, 사이에 개재하는 PC, 재생 장치에서도 인증 처리에서 생성하여 공유하게 된 세션 키를 이용함으로써 암호화 콘텐츠 키를 복호하여 콘텐츠 키를 취득 가능하게 된다.
한편, 도 11의 (b)의 하단에 도시한 유효화 키 블록(EKB)을 이용한 예에서는, 콘텐츠 프로바이더로부터 유효화 키 블록(EKB)과, 유효화 키 블록(EKB)의 처리에 의해 얻어지는 노드 키, 또는 루트 키에 의해 콘텐츠 키 Kcon를 암호화한 데이터(도면의 예에서는 Kroot(Kcon))를 배신함으로써, 배신한 EKB의 처리가 가능한 기기에서만 콘텐츠 키 Kcon을 복호하여 취득하는 것이 가능하게 된다.
따라서, 예를 들면 도 11의 (b)의 우단에만 이용 가능한 유효화 키 블록(EKB)을 생성하고, 그 유효화 키 블록(EKB)과, 그 EKB 처리에 의해 얻어지는 노드 키, 또는 루트 키에 의해 콘텐츠 키 Kcon를 암호화한 데이터를 함께 전송함으로써, 사이에 존재하는 PC, 재생 기기 등은, 자신이 갖는 리프 키, 노드 키에 따라서는 EKB의 처리를 실행할 수가 없다. 따라서, 데이터 송수신 디바이스 간의 인증 처리, 세션 키의 생성, 세션 키에 의한 콘텐츠 키 Kcon의 암호화 처리 등의 처리를 실행하지 않고, 안전하게 정당한 디바이스에 대해서만 이용 가능한 콘텐츠 키를 배신할 수 있게 된다.
PC, 기록 재생기에도 이용 가능한 콘텐츠 키를 배신하고자 하는 경우에는, 각각에서 처리 가능한 유효화 키 블록(EKB)을 생성하고 배신함으로써, 공통의 콘텐츠 키를 취득하는 것이 가능해진다.
[유효화 키 블록(EKB)을 사용한 인증 키의 배신(공통 키 방식)]
상술한 유효화 키 블록(EKB)을 사용한 데이터 혹은 키의 배신에서, 디바이스 간에서 전송되는 유효화 키 블록(EKB) 및 콘텐츠 혹은 콘텐츠 키는 항상 동일한 암호화 형태를 유지하고 있기 때문에, 데이터 전송로를 훔쳐내어 기록하고 다시 후에 전송하는, 소위 리플레이 어택(Replay Attack)에 의해 부정 복사(카피)가 생성될 가능성이 있다. 이를 방지하는 구성으로서는, 데이터 전송 디바이스 간에서 종래와 같은 인증 처리 및 키 교환 처리를 실행하는 것이 유효한 수단이다. 여기서는, 이 인증 처리 및 키 교환 처리를 실행할 때 사용하는 인증 키 Kake를 상술한 유효화 키 블록(EKB)을 사용하여 디바이스에 배신함으로써, 안전한 비밀 키로서 공유하는 인증 키를 갖고, 공통 키 방식에 따른 인증 처리를 실행하는 구성에 대하여 설명한다. 즉, EKB에 의한 암호화 메시지 데이터를 인증 키로 한 예이다.
도 12는 공통 키 암호 방식을 이용한 상호 인증 방법(IS0/IEC 9798-2)을 도시한다. 도 12에서는 공통 키 암호 방식으로서 DES를 이용하고 있지만, 공통 키 암호 방식이면 다른 방식도 가능하다. 도 12에서 먼저, B가 64비트의 난수 Rb를 생성하고, Rb 및 자신의 ID인 ID(b)를 A로 송신한다. 이것을 수신한 A는 새롭게 64비트의 난수 Ra를 생성하고, Ra, Rb, ID(b)의 순으로 DES의 CBC 모드로 키 Kab를 이용하여 데이터를 암호화하여 B로 반송한다. 또, 키 Kab는 A 및 B에 공통의 비밀 키로서 각각의 기록 소자 내에 저장하는 키이다. DES의 CBC 모드를 이용한 키 Kab에 의한 암호화 처리는, 예를 들면 DES를 이용한 처리에서는, 초기값과 Ra를 배타적 논리합하고, DES 암호화부에서 키 Kab를 이용하여 암호화해서 암호문 E1을 생성하고, 계속해서 암호문 E1과 Rb를 배타적 논리합하고, DES 암호화부에서 키 Kab를 이용하여 암호화하여 암호문 E2를 생성하며, 또한 암호문 E2와 ID(b)를 배타적 논리합하고, DES 암호화부에서 키 Kab를 이용하여 암호화하여 생성한 암호문 E3에 의해 송신 데이터(Token-AB)를 생성한다.
이것을 수신한 B는 수신 데이터를 역시 공통의 비밀 키로서 각각의 기록 소자 내에 저장하는 키 Kab(인증 키)로 복호화한다. 수신 데이터의 복호화 방법은 먼저, 암호문 E1을 인증 키 Kab로 복호화하여 난수 Ra를 얻는다. 다음에, 암호문 E2를 인증 키 Kab로 복호화하고, 그 결과와 E1을 배타적 논리합하여 Rb를 얻는다. 마지막으로, 암호문 E3을 인증 키 Kab로 복호화하고, 그 결과와 E2를 배타적 논리합하여 ID(b)를 얻는다. 이렇게 하여 얻어진 Ra, Rb, ID(b) 중 Rb 및 ID(b)가, B가 송신한 것과 일치하는지를 검증한다. 이 검증을 통과한 경우, B는 A를 정당한 것으로서 인증한다.
다음에 B는 인증 후에 사용하는 세션 키(Kses)를 생성한다(생성 방법은 난수를 이용함). 그리고, Rb, Ra, Kses의 순으로, DES의 CBC 모드로 인증 키 Kab를 이용하여 암호화하여 A로 반송한다.
이것을 수신한 A는 수신 데이터를 인증 키 Kab로 복호화한다. 수신 데이터의 복호화 방법은 B의 복호화 처리와 마찬가지이므로, 여기서는 상세한 설명을 생략한다. 이렇게 하여 얻어진 Rb, Ra, Kses 중 Rb 및 Ra가, A가 송신한 것과 일치하는지를 검증한다. 이 검증을 통과한 경우, A는 B를 정당한 것으로서 인증한다. 서로 상대를 인증한 후에는, 세션 키 Kses는 인증 후의 비밀 통신을 위한 공통 키로서 이용된다.
또, 수신 데이터의 검증 시에 부정이나 불일치가 발견된 경우에는, 상호 인증이 실패한 것으로 하여 처리를 중단한다.
상술한 인증 처리에서 A와 B는 공통의 인증 키 Kab를 공유한다. 이 공통 키 Kab를 상술한 유효화 키 블록(EKB)을 사용하여 디바이스로 배신한다.
예를 들면, 도 12의 예에서는 A 또는 B 중 어느 하나가 다른 쪽이 복호 가능한 유효화 키 블록(EKB)을 생성하여 생성한 유효화 키 블록(EKB)에 의해 인증 키 Kab를 암호화하여, 다른 쪽에 송신하는 구성으로 하여도 되며, 혹은 제3자가 디바이스 A, B에 대하여 쌍방이 이용 가능한 유효화 키 블록(EKB)을 생성하여 디바이스 A, B에 대하여 생성한 유효화 키 블록(EKB)에 의해 인증 키 Kab를 암호화하여 배신하는 구성으로 하여도 된다.
도 13 및 도 14는 복수의 디바이스에 공통의 인증 키 Kake를 유효화 키 블록(EKB)에 의해 배신하는 구성예를 도시한다. 도 13은 디바이스 0, 1, 2, 3에 대하여 복호 가능한 인증 키 Kake를 배신하는 예, 도 14는 디바이스 0, 1, 2, 3 중의 디바이스 3을 리보크(배제)하여 디바이스 0, 1, 2에 대해서만 복호 가능한 인증 키를 배신하는 예를 도시한다.
도 13의 예에서는 갱신 노드 키 K(t)00에 의해 인증 키 Kake를 암호화한 데이터 (b)와 함께, 디바이스 0, 1, 2, 3에서 각각이 갖는 노드 키와 리프 키를 이용하여 갱신된 노드 키 K(t)00를 복호 가능한 유효화 키 블록(EKB)을 생성하여 배신한다. 각각의 디바이스는 도 13의 우측에 도시한 바와 같이 먼저 EKB를 처리(복호)함으로써, 갱신된 노드 키 K(t)00를 취득하고, 다음에, 취득한 노드 키 K(t)00 를 이용하여 암호화된 인증 키: Enc(K(t)00, Kake)를 복호하여 인증 키 Kake를 얻는 것이 가능해진다.
그 밖의 디바이스 4, 5, 6, 7, …은 동일한 유효화 키 블록(EKB)을 수신하더라도 자신이 보유한 노드 키와 리프 키로는, EKB를 처리하여 갱신된 노드 키 K(t)00를 취득할 수 없으므로, 안전하게 정당한 디바이스에 대해서만 인증 키를 송부할 수 있다.
한편, 도 14의 예는 도 3의 점선으로 둘러싼 그룹에서 디바이스 3이, 예를 들면 키의 누설에 의해 리보크(배제)되어 있는 것으로 하고, 다른 그룹의 멤버, 즉 디바이스 0, 1, 2에 대해서만 복호 가능한 유효화 키 블록(EKB)을 생성하여 배신한 예이다. 도 14에 도시한 (a) 유효화 키 블록(EKB)과, (b) 인증 키(Kake)를 노드 키(K(t)00)로 암호화한 데이터를 배신한다.
도 14의 우측에는 복호 순서가 도시되어 있다. 디바이스 O, 1, 2는 먼저, 수령한 유효화 키 블록으로부터 자신이 보유하는 리프 키 또는 노드 키를 이용한 복호 처리에 의해 갱신 노드 키(K(t)00)를 취득한다. 다음에, K(t)00에 의한 복호에 의해 인증 키 Kake를 취득한다.
도 3에 도시한 다른 그룹의 디바이스 4, 5, 6, …은 이 동일 데이터(EKB)를 수신한다고 하여도, 자신이 보유한 리프 키와 노드 키를 이용하여 갱신 노드 키(K(t)00)를 취득할 수 없다. 마찬가지로 리보크된 디바이스 3에서도 자신이 보유하는 리프 키와 노드 키로는 갱신 노드 키(K(t)00)를 취득할 수 없어, 정당한 권리를 갖는 디바이스만이 인증 키를 복호하여 이용하는 것이 가능해진다.
이와 같이, EKB를 이용한 인증 키의 배송을 이용하면, 데이터량을 적게 하면서도 안전하게 정당 권리자만이 복호 가능한 인증 키를 배신할 수 있게 된다.
[공개 키 인증과 유효화 키 블록(EKB)을 사용한 콘텐츠 키의 배신]
다음에, 공개 키 인증과 유효화 키 블록(EKB)을 사용한 콘텐츠 키의 배신 처리에 대하여 설명한다. 먼저, 공개 키 암호 방식인 160비트 길이의 타원 곡선 암호를 이용한 상호 인증 방법을 도 15를 참조하여 설명한다. 도 15에서, 공개 키 암호 방식으로서 ECC를 이용하고 있지만, 마찬가지의 공개 키 암호 방식이면 어느 것이라도 무방하다. 또한, 키 사이즈도 160비트가 아니어도 된다. 도 15에서, 먼저 B가 64비트의 난수 Rb를 생성하여 A로 송신한다. 이것을 수신한 A는 새롭게 64 비트의 난수 Ra 및 소수 p보다 작은 난수 Ak를 생성한다. 그리고, 베이스 포인트 G를 Ak배한 점 Av=Ak×G를 구하고, Ra, Rb, Av(X 좌표와 Y 좌표)에 대한 전자 서명 A.Sig를 생성하여, A의 공개 키 증명서와 함께 B로 반송한다. 여기서, Ra 및 Rb는 각각 64 비트, Av의 X 좌표와 Y 좌표가 각각 160비트이기 때문에, 합계 448비트에 대한 전자 서명을 생성한다.
A의 공개 키 증명서, Ra, Rb, Av, 전자 서명 A.Sig를 수신한 B는, A가 송신해 온 RB가, B가 생성한 것과 일치하는지를 검증한다. 그 결과, 일치한 경우에는 A의 공개 키 증명서 내의 전자 서명을 인증국의 공개 키로 검증하고, A의 공개 키를 추출한다. 그리고, 추출한 A의 공개 키를 이용하여 전자 서명 A.Sig를 검증한다.
다음에, B는 소수 p보다 작은 난수 Bk를 생성한다. 그리고, 베이스 포인트 G를 Bk배한 점 Bv=Bk×G를 구하고, Rb, Ra, Bv(X 좌표와 Y 좌표)에 대한 전자 서명 B.Sig를 생성하여, B의 공개 키 증명서와 함께 A로 반송한다.
B의 공개 키 증명서, Rb, Ra, Av, 전자 서명 B.Sig를 수신한 A는, B가 송신하여 온 Ra가, A가 생성한 것과 일치하는지를 검증한다. 그 결과, 일치한 경우에는, B의 공개 키 증명서 내의 전자 서명을 인증국의 공개 키로 검증하여, B의 공개 키를 추출한다. 그리고, 추출한 B의 공개 키를 이용하여 전자 서명 B.Sig를 검증한다. 전자 서명의 검증에 성공한 후, A는 B를 정당한 것으로서 인증한다.
양자가 인증에 성공한 경우에는, B는 Bk×Av(Bk는 난수지만, Av는 타원 곡선 상의 점이기 때문에, 타원 곡선 상의 점의 스칼라배 계산이 필요)를 계산하고, A는 Ak×Bv를 계산하여, 이들 점의 X 좌표의 하위 64 비트를 세션 키로서 이후의 통신에 사용한다(공통 키 암호를 64비트 키 길이의 공통 키 암호로 한 경우). 물론, Y 좌표로부터 세션키를 생성하여도 되며, 하위 64비트가 아니어도 된다. 또, 상호 인증 후의 비밀 통신에서는 송신 데이터는 세션 키로 암호화될뿐만 아니라, 전자 서명도 부여되는 경우가 있다.
전자 서명의 검증이나 수신 데이터의 검증 시에, 부정 및 불일치가 발견된 경우에는 상호 인증이 실패한 것으로 하여 처리를 중단한다.
도 16은 공개 키 인증과 유효화 키 블록(EKB)을 사용한 콘텐츠 키의 배신 처리예를 도시한다. 먼저 콘텐츠 프로바이더와 PC 간에서 도 15에서 설명한 공개 키 방식에 의한 인증 처리가 실행된다. 콘텐츠 프로바이더는 콘텐츠 키가 배신되는 재생 장치, 기록 매체가 갖는 노드 키, 리프 키에 의해 복호 가능한 EKB를 생성하 고, 갱신 노드 키에 의한 암호화를 실행한 콘텐츠 키 E(Kcon)와, 유효화 키 블록(EKB)을 PC 간의 인증 처리에서 생성한 세션 키 Kses로 암호화하여 PC로 송신한다.
PC는 세션 키로 암호화된 [갱신 노드 키에 의한 암호화를 실행한 콘텐츠 키 E(Kcon)와, 유효화 키 블록(EKB)]을 세션 키로 복호한 후, 재생 장치 및 기록 매체로 송신한다.
재생 장치와 기록 매체는 자신이 보유한 노드 키 또는 리프 키에 의해 [갱신 노드 키에 의한 암호화를 실행한 콘텐츠 키 E(Kcon)와, 유효화 키 블록(EKB)]을 복호함으로써 콘텐츠 키 Kcon를 취득한다.
이 구성에 의하면, 콘텐츠 프로바이더와 PC 사이에서의 인증을 조건으로서 「갱신 노드 키에 의한 암호화를 실행한 콘텐츠 키 E(Kcon)와, 유효화 키 블록(EKB)]이 송신되기 때문에, 예를 들면 노드 키의 누설이 있었던 경우에도 확실한 상대에 대한 데이터 송신이 가능해진다.
[프로그램 코드의 유효화 키 블록(EKB)을 사용한 배신]
상술한 예에서는 콘텐츠 키와 인증 키 등을 유효화 키 블록(EKB)을 이용하여 암호화하여 배신하는 방법을 설명하였지만, 다양한 프로그램 코드를 유효화 키 블록(EKB)을 이용하여 배신하는 구성도 가능하다. 즉 EKB에 의한 암호화 메시지 데이터를 프로그램 코드로 한 예이다. 이하, 이 구성에 대하여 설명한다.
도 17은 프로그램 코드를 유효화 키 블록(EKB)의, 예를 들면 갱신 노드 키에 의해 암호화하여 디바이스 간에서 송신하는 예를 도시한다. 디바이스(1701)는 디 바이스(1702)가 갖는 노드 키와 리프 키에 의해 복호 가능한 유효화 키 블록(EKB)과, 유효화 키 블록(EKB)에 포함되는 갱신 노드 키로 암호 처리한 프로그램 코드를 디바이스(1702)로 송신한다. 디바이스(1702)는 수신한 EKB를 처리하여 갱신 노드 키를 취득하고, 또한 취득한 갱신 노드 키에 의해서 프로그램 코드의 복호를 실행하여 프로그램 코드를 얻는다.
도 17에 도시한 예에서는 또한, 디바이스(1702)에서 취득한 프로그램 코드에 의한 처리를 실행하고, 그 결과를 디바이스(1701)에 돌려주고, 디바이스(1701)가 그 결과에 기초하여 처리를 더욱 속행하는 예를 나타내고 있다.
이와 같이 유효화 키 블록(EKB)과, 유효화 키 블록(EKB)에 포함되는 갱신 노드 키로 암호 처리한 프로그램 코드를 배신함으로써, 특정 디바이스에서 해독 가능한 프로그램 코드를 전술한 도 3에 도시한 특정 디바이스 혹은 그룹에 대하여 배신하는 것이 가능해진다.
[송신 콘텐츠에 대한 체크값(ICV: Integrity Check Value)을 대응시키는 구성]
다음에, 콘텐츠의 개찬을 방지하기 위해 콘텐츠의 인테그리티 체크값(ICV)을 생성하고, 콘텐츠에 대응시켜서, ICV의 계산에 의해 콘텐츠 개찬 유무를 판정하는 처리 구성에 대하여 설명한다.
콘텐츠의 인테그리티 체크값(ICV)은 예를 들면 콘텐츠에 대한 해시 함수를 이용하여 계산되고, ICV=hash(Kicv, C1, C2, …)에 의해 계산된다. Kicv는 ICV 생성 키이다. C1과 C2는 콘텐츠의 정보이며, 콘텐츠의 중요 정보의 메시지 인증 부호(MAC: Message Authentication Code)가 사용된다.
DES 암호 처리 구성을 이용한 MAC값 생성예를 도 18에 도시한다. 도 18의 구성에 도시한 바와 같이 대상이 되는 메시지를 8바이트 단위로 분할하고(이하, 분할된 메시지를 M1, M2, …, MN으로 함), 먼저 초기값(Initial Value(이하, IV로 함))과 M1을 배타적 논리합한다(그 결과를 I1로 함). 다음에, I1을 DES 암호화부에 넣고, 키(이하, K1로 함)를 이용하여 암호화한다(출력을 E1로 함). 계속해서, E1 및 M2를 배타적 논리합하여 그 출력 I2를 DES 암호화부에 넣고, 키 K1를 이용하여 암호화한다(출력 E2). 이하, 이것을 반복하여 모든 메시지에 대하여 암호화 처리를 실시한다. 최후에 나온 EN이 메시지 인증 부호(MAC(Message Authentication Code))로 된다.
이러한 콘텐츠의 MAC값과 ICV 생성 키에 해시 함수를 적용 이용하여 콘텐츠의 인테그리티 체크값(ICV)이 생성된다. 개찬이 없음이 보증된 예를 들면 콘텐츠 생성 시에 생성한 ICV와, 새롭게 콘텐츠에 기초하여 생성한 ICV를 비교하여 동일 ICV가 얻어지면 콘텐츠에 개찬이 없음이 보증되고, ICV가 서로 다르면 개찬이 있다고 판정된다.
[체크값(ICV)의 생성 키 Kicv를 EKB에 의해서 배포하는 구성]
다음에, 콘텐츠의 인테그리티 체크값(ICV) 생성 키인 Kicv를 상술한 유효화 키 블록에 의해 송부하는 구성에 대하여 설명한다. 즉, EKB에 의한 암호화 메시지 데이터를 콘텐츠의 인테그리티 체크값(ICV) 생성 키로 한 예이다.
도 19 및 도 20에 복수의 디바이스에 공통 콘텐츠를 송부한 경우, 그들 콘텐츠의 개찬 유무를 검증하기 위한 인테그리티 체크값 생성 키 Kicv를 유효화 키 블 록(EKB)에 의해 배신하는 구성예를 도시한다. 도 19는 디바이스 0, 1, 2, 3에 대하여 복호 가능한 체크값 생성 키 Kicv를 배신하는 예, 도 20은 디바이스 0, 1, 2, 3 중 디바이스 3을 리보크(배제)하여 디바이스 0, 1, 2에 대해서만 복호 가능한 체크값 생성 키 Kicv를 배신하는 예를 도시한다.
도 19의 예에서는 갱신 노드 키 K(t)00에 의해 체크값 생성 키 Kicv를 암호화한 데이터 (b)와 함께, 디바이스 0, 1, 2, 3에서 각각이 갖는 노드 키와 리프 키를 이용하여 갱신된 노드 키 K(t)00을 복호 가능한 유효화 키 블록(EKB)을 생성하여 배신한다. 각각의 디바이스는 도 19의 우측에 도시한 바와 같이 먼저, EKB를 처리(복호)함으로써, 갱신된 노드 키 K(t)00를 취득하고, 다음에, 취득한 노드 키 K(t)00를 이용하여 암호화된 체크값 생성 키: Enc(K(t)00, Kicv)를 복호하여 체크값 생성 키 Kicv를 얻는 것이 가능해진다.
그 밖의 디바이스 4, 5, 6, 7, …은 동일한 유효화 키 블록(EKB)을 수신하더라도 자신이 보유하는 노드 키와 리프 키로는, EKB를 처리하여 갱신된 노드 키 K(t)00를 취득할 수 없기 때문에, 안전하게 정당한 디바이스에 대해서만 체크값 생성 키를 송부할 수 있다.
한편, 도 20의 예는 도 3의 점선으로 둘러싼 그룹에서 디바이스(3)가, 예를 들면 키의 누설에 의해 리보크(배제)되어 있다고 하고, 다른 그룹의 멤버, 즉 디바이스 0, 1, 2에 대해서만 복호 가능한 유효화 키 블록(EKB)을 생성하여 배신하는 예이다. 도 20에 도시한 (a) 유효화 키 블록(EKB)과, (b) 체크값 생성 키(Kicv)를 노드 키(K(t)00)로 암호화한 데이터를 배신한다.
도 20의 우측에는 복호 순서가 도시되어 있다. 디바이스 0, 1, 2는 먼저, 수령한 유효화 키 블록으로부터 자신이 보유하는 리프 키 또는 노드 키를 이용한 복호 처리에 의해 갱신 노드 키(K(t)00)를 취득한다. 다음에, K(t)00에 의한 복호에 의해 체크값 생성 키 Kicv를 취득한다.
도 3에 도시한 다른 그룹의 디바이스 4, 5, 6…은, 이 마찬가지 데이터(EKB)를 수신한다고 하여도, 자신이 보유한 리프 키와 노드 키를 이용하여 갱신 노드 키(K(t)00)를 취득할 수 없다. 마찬가지로 리보크된 디바이스(3)에서도, 자신이 보유한 리프 키와 노드 키로는 갱신 노드 키(K(t)00)를 취득할 수 없고, 정당한 권리를 갖는 디바이스만이 체크값 생성 키를 복호하여 이용하는 것이 가능해진다.
이와 같이, EKB를 이용한 체크값 생성 키의 배송을 이용하면, 데이터량을 적게 하면서 안전하게 정당 권리자만이 복호 가능한 체크값 생성 키를 배신할 수 있게 된다.
이러한 콘텐츠의 인테그리티 체크값(ICV)을 이용함으로써, EKB와 암호화 콘텐츠의 부정 복사를 배제할 수 있다. 예를 들면 도 21에 도시한 바와 같이 콘텐츠 C1과 콘텐츠 C2를 각각의 콘텐츠 키를 취득 가능한 유효화 키 블록(EKB)과 함께 저장한 미디어 1이 있고, 이것을 그대로 미디어 2에 복사한 경우를 상정한다. EKB와 암호화 콘텐츠의 복사는 가능하며, 이것을 EKB를 복호 가능한 디바이스에서 이용할 수 있게 된다.
도 21의 (b)에 도시한 바와 같이 각 미디어에 정당하게 저장된 콘텐츠에 대응시켜 인테그리티 체크값(ICV(C1, C2))을 저장하는 구성으로 한다. 또, (ICV(C1, C2))는 콘텐츠 C1과 콘텐츠 C2에 해시 함수를 이용하여 계산되는 콘텐츠의 인테그리티 체크값인 ICV=hash(Kicv, C1, C2)를 나타내고 있다. 도 21의 (b)의 구성에서, 미디어 1에는 정당하게 콘텐츠 1과 콘텐츠 2가 저장되고, 콘텐츠 C1과 콘텐츠 C2에 기초하여 생성된 인테그리티 체크값(ICV(C1, C2))이 저장된다. 또한, 미디어 2에는 정당하게 콘텐츠 1이 저장되고, 콘텐츠 C1에 기초하여 생성된 인테그리티 체크값(ICV(C1))이 저장된다. 이 구성에서, 미디어 1에 저장된 {EKB, 콘텐츠 2}를 미디어 2에 복사하였다고 하면, 미디어 2에서, 콘텐츠 체크값을 새롭게 생성하면 ICV(C1, C2)가 생성되게 되어, 미디어에 저장되어 있는 Kicv(C1)와 달리, 콘텐츠의 개찬 혹은 부정한 복사에 의한 새로운 콘텐츠의 저장이 실행되었음이 명백해진다. 미디어를 재생하는 디바이스에서, 재생 단계의 이전 단계에 ICV 체크를 실행하고, 생성 ICV와 저장 ICV의 일치를 판별하고, 일치되지 않은 경우에는 재생을 실행하지 않은 구성으로 함으로써, 부정 복사의 콘텐츠 재생을 방지하는 것이 가능해진다.
그리고 또한, 안전성을 높이기 위해, 콘텐츠의 인테그리티 체크값(ICV)을 재기입 카운터를 포함한 데이터에 기초하여 생성하는 구성으로 하여도 된다. 즉, ICV=hash(Kicv, counter+1, C1, C2, …)에 의해 계산하는 구성으로 한다. 여기서, 카운터(counter+1)는 ICV의 재기입마다 하나씩 증가되는 값으로 설정한다. 또, 카운터값은 안전한 메모리에 저장하는 구성으로 할 필요가 있다.
또한, 콘텐츠의 인테그리티 체크값(ICV)을 컨텐츠와 동일 미디어에 저장할 수 없는 구성에서는, 콘텐츠의 인테그리티 체크값(ICV)을 콘텐츠와는 별도의 미디어 상에 저장하는 구성으로 하여도 된다.
예를 들면, 판독 전용 미디어나 통상의 MO 등의 복사 방지책이 취해져 있지 않은 미디어에 콘텐츠를 저장하는 경우, 동일 미디어에 인테그리티 체크값(ICV)을 저장하면 ICV의 재기입이 부정한 사용자에 의해 이루어질 가능성이 있어, ICV의 안전성을 유지할 수 없는 우려가 있다. 이러한 경우, 호스트 머신 상의 안전한 미디어에 ICV를 저장하고, 콘텐츠의 복사 제어(예를 들면 check-in/check-out, move)에 ICV를 사용하는 구성으로 함으로써, ICV의 안전한 관리 및 콘텐츠의 개찬 체크가 가능해진다.
이 구성예를 도 22에 도시한다. 도 22에서는 판독 전용 미디어나 통상의 MO 등의 복사 방지책이 취해져 있지 않은 미디어(2201)에 콘텐츠가 저장되고, 이들 콘텐츠에 관한 인테그리티 체크값(ICV)을, 사용자가 자유롭게 액세스하는 것이 허가되지 않는 호스트 머신 상의 안전한 미디어(2202)에 저장하고, 사용자에 의한 부정한 인테그리티 체크값(ICV)의 재기입을 방지한 예이다. 이러한 구성으로서, 예를 들면 미디어(2201)를 장착한 디바이스가 미디어(2201)의 재생을 실행할 때 호스트 머신인 PC, 서버에서 ICV의 체크를 실행하여 재생 가부를 판정하는 구성으로 하면, 부정한 복사 콘텐츠 혹은 개찬 콘텐츠의 재생을 방지할 수 있다.
[계층 트리 구조의 카테고리 분류]
암호 키를 루트 키, 노드 키, 리프 키 등, 도 3의 계층 트리 구조로서 구성하고, 콘텐츠 키, 인증 키, ICV 생성 키, 혹은 프로그램 코드, 데이터 등을 유효화 키 블록(EKB)과 함께 암호화하여 배신하는 구성에 대하여 설명하여 왔는데, 노드 키 등을 정의하고 있는 계층 트리 구조를 각 디바이스의 카테고리별로 분류하여 효 율적인 키 갱신 처리, 암호화 키 배신, 데이터 배신을 실행하는 구성에 대하여 이하 설명한다.
도 23에 계층 트리 구조의 카테고리의 분류 일례를 도시한다. 도 23에서, 계층 트리 구조의 최상단에는 루트 키 Kroot(2301)가 설정되고, 이하의 중간단에는 노드 키(2302)가 설정되며, 최하단에는 리프 키(2303)가 설정된다. 각 디바이스는 개개의 리프 키와, 리프 키로부터 루트 키에 이르는 일련의 노드 키, 루트 키를 보유한다.
여기서, 일례로서 최상단으로부터 제 M단째에 있는 노드를 카테고리 노드(2304)로서 설정한다. 즉 제 M단째의 노드 각각을 특정 카테고리의 디바이스설정 노드로 한다. 제 M단의 하나의 노드를 정점으로 하여 이하, M+1단 이하의 노드, 리프는 그 카테고리에 포함되는 디바이스에 관한 노드 및 리프로 한다.
예를 들면 도 23의 제 M단째의 하나의 노드(2305)에는 카테고리 [메모리 스틱(상표)]이 설정되고, 이 노드 이하에 연결되는 노드, 리프는 메모리 스틱을 사용한 다양한 디바이스를 포함하는 카테고리 전용의 노드 또는 리프로서 설정된다. 즉, 노드(2305) 이하를, 메모리 스틱의 카테고리에 정의되는 디바이스의 관련 노드 및 리프의 집합으로서 정의한다.
또한, M단으로부터 수단분 하위의 단을 서브 카테고리 노드(2306)로서 설정할 수 있다. 예를 들면 도면에 도시한 바와 같이 카테고리 [메모리 스틱] 노드(2305)의 2단 하위 노드에, 메모리 스틱을 사용한 디바이스의 카테고리에 포함되는 서브 카테고리 노드로서, [재생 전용기]의 노드를 설정한다. 또한, 서브 카 테고리 노드인 재생 전용기의 노드(2306) 이하에, 재생 전용기의 카테고리에 포함되는 음악 재생 기능이 부가된 전화의 노드(2307)가 설정되고, 또한 그 하위에, 음악 재생 기능 부가 전화의 카테고리에 포함되는 [PHS] 노드(2308)와 [휴대 전화] 노드(2309)를 설정할 수 있다.
또한, 카테고리와 서브 카테고리는 디바이스의 종류뿐만 아니라, 예를 들면 임의의 메이커, 콘텐츠 프로바이더, 결제 기관 등이 독자적으로 관리하는 노드, 즉 처리 단위, 관할 단위, 혹은 제공 서비스 단위 등, 임의의 단위(이들을 총칭하여 이하, 엔티티라 함)로 설정하는 것이 가능하다. 예를 들면 하나의 카테고리 노드를 게임 기기 메이커가 판매하는 게임 기기 XYZ 전용의 정점 노드로서 설정하면, 메이커가 판매하는 게임 기기 XYZ에 그 정점 노드 이하의 하단의 노드 키, 리프 키를 저장하여 판매하는 것이 가능해지고, 그 후, 암호화 콘텐츠의 배신, 혹은 각종 키의 배신, 갱신 처리를, 그 정점 노드 키 이하의 노드 키, 리프 키에 의해 구성되는 유효화 키 블록(EKB)을 생성 배신하고, 정점 노드 이하의 디바이스에 대해서만 이용 가능한 데이터가 배신 가능해진다.
이와 같이, 하나의 노드를 정점으로 하여, 이하의 노드를 그 정점 노드에 정의된 카테고리, 혹은 서브 카테고리의 관련 노드로서 설정하는 구성으로 함으로써, 카테고리 단, 혹은 서브 카테고리 단의 하나의 정점 노드를 관리하는 메이커, 콘텐츠 프로바이더 등이 그 노드를 정점으로 하는 유효화 키 블록(EKB)을 독자적으로 생성하여, 정점 노드 이하에 속하는 디바이스에 배신하는 구성이 가능해져서, 정점 노드에 속하지 않는 다른 카테고리의 노드에 속하는 디바이스에는 전혀 영향을 미 치지 않고서 키 갱신을 실행할 수 있다.
[간략 EKB에 의한 키 배신 구성(1)]
앞서 설명한 예를 들면 도 3의 트리 구성에서, 키, 예를 들면 콘텐츠 키를 소정 디바이스(리프) 쪽으로 송부하는 경우, 키 배포처 디바이스가 소유하고 있는 리프 키, 노드 키를 이용하여 복호 가능한 유효화 키 블록(EKB)을 생성하여 제공한다. 예를 들면 도 24의 (a)에 도시한 트리 구성에서, 리프를 구성하는 디바이스 a, g, j에 대하여 키, 예를 들면 콘텐츠 키를 송신하는 경우, a, g, j의 각 노드에서 복호 가능한 유효화 키 블록(EKB)을 생성하여 배신한다.
예를 들면 갱신 루트 키 K(t)root로 콘텐츠 키 K(t)con을 암호화 처리하고, EKB와 함께 배신하는 경우를 생각한다. 이 경우, 디바이스 a, g, j는 각각이 도 24의 (b)에 도시한 리프 및 노드 키를 이용하여 EKB의 처리를 실행하여 K(t)root를 취득하고, 취득한 갱신 루트 키 K(t)root에 의해 콘텐츠 키 K(t)con의 복호 처리를 이행하여 콘텐츠 키를 얻는다.
이 경우에 제공되는 유효화 키 블록(EKB)의 구성은 도 25에 도시한 바와 같이 된다. 도 25에 도시한 유효화 키 블록(EKB)은, 앞의 도 6에서 설명한 유효화 키 블록(EKB)의 포맷에 따라서 구성된 것으로, 데이터(암호화 키)와 대응하는 태그를 갖는다. 태그는 앞서 도 7을 참조하여 설명한 바와 같이 좌측(L), 우측(R), 각각의 방향에 데이터가 있으면 0, 없으면 1을 나타낸다.
유효화 키 블록(EKB)을 수령한 디바이스는 유효화 키 블록(EKB)의 암호화 키와 태그에 기초하여, 순차적으로 암호화 키의 복호 처리를 실행하여 상위 노드의 갱신 키를 취득해 나간다. 도 25에 도시한 바와 같이 유효화 키 블록(EKB)은 루트에서 리프까지의 단수(깊이)가 많을수록, 그 데이터량은 증가해 나간다. 단수(깊이)는 디바이스(리프) 수에 따라 증대하는 것으로, 키가 배신되는 디바이스 수가 많은 경우에는 EKB의 데이터량이 더욱 증대하게 된다.
이와 같은 유효화 키 블록(EKB)의 데이터량 삭감을 가능하게 한 구성에 대하여 설명한다. 도 26은 유효화 키 블록(EKB)을 키 배신 디바이스에 따라 간략화하여 구성한 예를 도시한 것이다.
도 25와 마찬가지로, 리프를 구성하는 디바이스 a, g, j에 대하여 키, 예를 들면 콘텐츠 키를 송신하는 경우를 상정한다. 도 26의 (a)에 도시한 바와 같이 키 배신 디바이스에 의해서만 구성되는 트리를 구축한다. 이 경우, 도 24의 (b)에 도시한 구성에 기초하여 새로운 트리 구성으로서 도 26의 (b)의 트리 구성이 구축된다. Kroot로부터 Kj까지는 전혀 분기가 없이 하나의 가지만이 존재하면 되며, Kroot로부터 Ka 및 Kg에 이르기 위해서는 K0에 분기점을 구성하는 것만으로, 2분기 구성의 도 26의 (a)의 트리가 구축된다.
도 26의 (a)에 도시한 바와 같이 노드로서 K0만을 갖는 간략화한 트리가 생성된다. 갱신 키 배신을 위한 유효화 키 블록(EKB)은 이들 간략 트리에 기초하여 생성한다. 도 26의 (a)에 도시한 트리는 유효화 키 블록(EKB)을 복호 가능한 말단 노드 또는 리프를 최하단으로 한 2분기형 트리를 구성하는 패스를 선택하여 불필요 노드를 생략함으로써 재구축되는 재구축 계층 트리이다. 갱신 키 배신을 위한 유효화 키 블록(EKB)은, 이 재구축 계층 트리의 노드 또는 리프에 대응하는 키에만 기초하여 구성된다.
앞의 도 25에서 설명한 유효화 키 블록(EKB)은 각 리프 a, g, j로부터 Kroot에 이르기까지의 모든 키를 암호화한 데이터를 저장하고 있었지만, 간략화 EKB는 간략화한 트리를 구성하는 노드에 대해서만의 암호화 데이터를 저장한다. 도 26의 (b)에 도시한 바와 같이 태그는 3비트 구성을 갖는다. 제2 비트 및 제3 비트는 도 25의 예와 마찬가지 의미를 갖고, 좌측(L), 우측(R), 각각의 방향에 데이터가 있으면 0, 없으면 1을 나타낸다. 제1 번째의 비트는 EKB 내에 암호화 키가 저장되어 있는지 여부를 나타내기 위한 비트이며, 데이터가 저장되어 있는 경우에는 1, 데이터가 없는 경우에는 0으로서 설정된다.
데이터 통신망 혹은 기억 매체에 저장되어 디바이스(리프)에 제공되는 유효화 키 블록(EKB)은, 도 26의 (b)에 도시한 바와 같이 도 25에 도시한 구성에 비하면, 데이터량이 대폭 삭감된 것으로 된다. 도 26에 도시한 유효화 키 블록(EKB)을 수령한 각 디바이스는, 태그의 제1 비트에 1이 저장된 부분의 데이터만을 순차적으로 복호함으로써 소정 암호화 키의 복호를 실현할 수 있다. 예를 들면 디바이스 a는 암호화 데이터 Enc(Ka, K(t)0)를 리프 키 Ka로 복호하여 노드 키 K(t)0를 취득하고, 노드 키 K(t)0에 의해 암호화 데이터 Enc(K(t)0, K(t)root)를 복호하여 K(t)root를 취득한다. 디바이스 j는 암호화 데이터 Enc(Kj, K(t)root)를 리프 키 Kj로 복호하여 K(t)root를 취득한다.
이와 같이, 배신 대상인 디바이스에 의해서만 구성되는 간략화한 새로운 트리 구성을 구축하고, 구축된 트리를 구성하는 리프 및 노드의 키만을 이용하여 유 효화 키 블록(EKB)을 생성함으로써, 적은 데이터량의 유효화 키 블록(EKB)을 생성하는 것이 가능해져서, 유효화 키 블록(EKB)의 데이터 배신을 효율적으로 실행할 수 있게 되다.
[간략 EKB에 의한 키 배신 구성(2)]
도 26에 도시한 간략화한 트리에 기초하여 생성되는 유효화 키 블록(EKB)을 더욱 간략화하여 데이터량을 삭감하여 효율적인 처리를 가능하게 하는 구성에 대하여 설명한다.
도 26을 참조하여 설명한 구성은 유효화 키 블록(EKB)을 복호 가능한 말단 노드 또는 리프를 최하단으로 한 2분기형 트리를 구성하는 패스를 선택하여 불필요 노드를 생략함으로써 재구축되는 재구축 계층 트리였다. 갱신 키 배신을 위한 유효화 키 블록(EKB)은 이 재구축 계층 트리의 노드 또는 리프에 대응하는 키에만 기초하여 구성된다.
도 26의 (a)에 도시한 재구축 계층 트리는 리프 a, g, j에서 갱신 루트 키 K(t)root를 취득 가능하게 하기 위해, 도 26의 (b)에 도시한 유효화 키 블록(EKB)을 배신한다. 도 26의 (b)의 유효화 키 블록(EKB)의 처리에서, 리프 j는 Enc(Kj, K(t)root)의 한 번의 복호 처리에 의해 루트 키: K(t)root를 취득할 수 있다. 그러나, 리프 a, g는 Enc(Ka, K(t)0) 또는 Enc(Kg, K(t)0)의 복호 처리에 의해 K(t)0를 얻은 후, 또한 Enc(K(t)0, K(t)root)의 복호 처리를 실행하여 루트 키: K(t)root를 취득한다. 즉, 리프 a, g는 2회의 복호 처리를 실행할 필요가 있다.
도 26의 간략화한 재구축 계층 트리는 노드 K0가 그 하위 리프 a, g의 관리 노드로서 독자 관리를 실행하고 있는 경우, 예를 들면 후술하는 서브 루트 노드로서 하위 리프의 관리를 실행하고 있는 경우에는, 리프 a, g가 갱신 키를 취득하였음을 확인하는 의미로 유효하지만, 노드 K0가 하위 리프의 관리를 실행하고 있지 않은 경우, 혹은 실행하고 있다고 하여도, 상위 노드로부터의 갱신 키 배신을 허용하고 있는 경우에는, 도 26의 (a)에 도시한 재구축 계층 트리를 더욱 간략화하여, 노드 K0의 키를 생략하고 유효화 키 블록(EKB)을 생성하여 배신하여도 무방하다.
도 27에 이와 같은 유효화 키 블록(EKB)의 구성을 나타낸다. 도 26과 마찬가지로, 리프를 구성하는 디바이스 a, g, j에 대하여 키, 예를 들면 콘텐츠 키를 송신하는 경우를 상정한다. 도 27의 (a)에 도시한 바와 같이 루트 Kroot와 각 리프 a, g, j를 직접 접속하는 트리를 구축한다.
도 27의 (a)에 도시한 바와 같이 도 26의 (a)에 도시한 재구축 계층 트리로부터 노드 K0가 생략된 간략화한 트리가 생성된다. 갱신 키 배신을 위한 유효화 키 블록(EKB)은 이들 간략 트리에 기초하여 생성한다. 도 27의 (a)에 도시한 트리는 유효화 키 블록(EKB)을 복호 가능한 리프와 루트를 직접 연결하는 패스만에 의해 재구축되는 재구축 계층 트리이다. 갱신 키 배신을 위한 유효화 키 블록(EKB)은 이 재구축 계층 트리의 리프에 대응하는 키에만 기초하여 구성된다.
또, 도 27의 (a)의 예는, 말단을 리프로 한 구성예이지만, 예를 들면 최상위 노드가 복수의 중위, 하위 노드에 대하여 키를 배신하는 경우에도, 최상위 노드와 중위, 하위 노드를 직접 접속한 간략화 트리에 기초하여 유효화 키 블록(EKB)을 생성하여 키 배신을 실행하는 것이 가능하다. 이와 같이, 재구축 계층 트리는 간략 화한 트리를 구성하는 정점 노드와, 간략화한 트리를 구성하는 말단 노드 또는 리프를 직접 접속한 구성을 갖는다. 이 간략화 트리로서는 정점 노드로부터의 분기는 2에 한정되지 않고, 배신 노드 또는 리프 수에 따라 3 이상의 다분기를 갖는 트리로서 구성하는 것이 가능하다.
앞의 도 25에서 설명한 유효화 키 블록(EKB)은 각 리프 a, g, j로부터 Kroot에 이르기까지의 모든 키를 암호화한 데이터를 저장하고, 도 26에서 설명한 유효화 키 블록(EKB)은 리프 a, g, j의 리프 키, a, g의 공통 노드로서의 K0, 또한, 루트 키를 저장한 구성이었지만, 도 27의 (a)에 도시한 간략화 계층 트리에 기초한 유효화 키 블록(EKB)은 노드 K0의 키를 생략하였기 때문에, 도 27의 (b)에 도시한 바와 같이 데이터량이 더욱 적은 유효화 키 블록(EKB)으로 된다.
도 27의 (b)의 유효화 키 블록(EKB)은 도 26의 (b)의 유효화 키 블록(EKB)과 마찬가지로 3비트 구성의 태그를 갖는다. 제2 및 제3 비트는 도 26에서 설명한 바와 마찬가지로, 좌측(L), 우측(R), 각각의 방향에 데이터가 있으면 0, 없으면 1을 나타낸다. 제1 번째의 비트는 EKB 내에 암호화 키가 저장되어 있는지 여부를 나타내기 위한 비트이며, 데이터가 저장되어 있는 경우에는 1, 데이터가 없는 경우에는 0으로서 설정된다.
도 27의 (b)의 유효화 키 블록(EKB)에서, 각 리프 a, g, j는 Enc(Ka, K(t)root) 또는 Enc(Kg, K(t)root) Enc(Kj, K(t)root)의 한 번의 복호 처리에 의해 루트 키: K(t)root를 취득할 수 있다.
이와 같이 간략화된 재구축 트리의 최상위 노드와, 트리를 구성하는 말단 노 드 또는 리프를 직접 접속한 구성을 갖는 트리에 기초하여 생성되는 유효화 키 블록(EKB)은, 도 27의 (b)에 도시한 바와 같이 재구축 계층 트리의 정점 노드 및 말단 노드 또는 리프에 대응하는 키만에 기초하여 구성된다.
도 26 또는 도 27에서 설명한 유효화 키 블록(EKB)과 같이, 배신 대상인 디바이스에 의해서만 구성되는 간략화한 새로운 트리 구성을 구축하여, 구축된 트리를 구성하는 리프만, 혹은 리프와 공통 노드의 키만을 이용하여 유효화 키 블록(EKB)을 생성함으로써, 적은 데이터량의 유효화 키 블록(EKB)을 생성하는 것이 가능해져서, 유효화 키 블록(EKB)의 데이터 배신이 효율적으로 실행 가능해진다.
또, 간략화한 계층 트리 구성은 후에 설명하는 서브 트리로서 설정되는 카테고리 트리 단위의 EKB 관리 구성에서 특히 유효하게 활용 가능하다. 카테고리 트리는 키 배신 구성으로서의 트리 구성을 구성하는 노드 혹은 리프로부터 선택한 복수의 노드 혹은 리프의 집합체 블록이다. 카테고리 트리는 디바이스의 종류에 따라 설정되는 집합이거나, 혹은 디바이스 제공 메이커, 콘텐츠 프로바이더, 결제기관 등의 관리 단위 등, 임의의 공통점을 갖는 처리 단위, 관할 단위 혹은 제공 서비스 단위 등, 다양한 형태의 집합으로서 설정된다. 하나의 카테고리 트리에는 임의의 공통의 카테고리로 분류되는 디바이스가 모여 있으며, 예를 들면 복수의 카테고리 트리의 정점 노드(서브 루트)에 의해서 상술한 바와 같은 간략화한 트리를 재구축하여 EKB를 생성함으로써, 선택된 카테고리 트리에 속하는 디바이스에서 복호 가능한 간략화된 유효화 키 블록(EKB)의 생성 및 배신이 가능해진다. 카테고리 트리 단위의 관리 구성에 대해서는 후에 상세히 설명한다.
또, 이러한 유효화 키 블록(EKB)은 광 디스크, DVD 등의 정보 기록 매체에 저장한 구성으로 하는 것이 가능하다. 예를 들면, 상술한 암호화 키 데이터에 의해 구성되는 데이터부와, 암호화 키 데이터의 계층 트리 구조에서의 위치 식별 데이터로서의 태그부를 포함하는 유효화 키 블록(EKB)에 또한, 갱신 노드 키에 의해서 암호화한 콘텐츠 등의 메시지 데이터를 저장한 정보 기록 매체를 각 디바이스에 제공하는 구성이 가능하다. 디바이스는 유효화 키 블록(EKB)에 포함되는 암호화 키 데이터를 태그부의 식별 데이터에 따라서 순차적으로 추출하여 복호하고, 콘텐츠의 복호에 필요한 키를 취득하여 콘텐츠의 이용을 실행하는 것이 가능해진다. 물론, 유효화 키 블록(EKB)을 인터넷 등의 네트워크를 통해 배신하는 구성으로 하여도 된다.
[카테고리 트리 단위의 EKB 관리 구성]
다음에, 키 배신 구성으로서의 트리 구성을 구성하는 노드 혹은 리프를, 복수의 노드 혹은 리프의 집합으로서의 블록으로 관리하는 구성에 대하여 설명한다. 또, 복수의 노드 혹은 리프의 집합으로서의 블록을 이하 카테고리라 한다. 카테고리 트리는 디바이스의 종류에 따라 설정되는 집합이거나, 혹은 디바이스 제공 메이커, 컨텐츠 프로바이더, 결제 기관 등의 관리 단위 등, 임의의 공통점을 갖는 처리 단위, 관할 단위, 혹은 제공 서비스 단위 등, 다양한 형태의 집합으로서 설정된다.
카테고리 트리에 대하여 도 28을 참조하여 설명한다. 도 28의 (a)는 트리의 카테고리 트리 단위에서의 관리 구성을 설명하는 도면이다. 하나의 카테고리 트리는 도면에는 삼각형으로서 나타내며, 예를 들면 1 카테고리 트리(2701) 내에는 복 수의 노드가 포함된다. 1 카테고리 트리 내의 노드 구성을 나타낸 것이 (b)이다. 하나의 카테고리 트리는 하나의 노드를 정점으로 한 복수단의 2분기형 트리에 의해 구성된다. 이하, 카테고리 트리의 정점 노드(2702)를 서브 루트라 한다.
트리의 말단은 (c)에 도시한 바와 같이 리프, 즉 디바이스에 의해 구성된다. 디바이스는 복수 디바이스를 리프로 하고, 서브 루트인 정점 노드(2702)를 갖는 트리에 의해 구성되는 어느 하나의 카테고리 트리에 속한다.
도 28의 (a)로부터 이해되는 바와 같이, 카테고리 트리는 계층 구조를 갖는다. 이 계층 구조에 대하여 도 29를 참조하여 설명한다.
도 29의 (a)는 계층 구조를 간략화하여 설명하기 위한 도면으로, Kroot부터 수단 아래의 단에 카테고리 트리 A01∼Ann이 구성되고, 카테고리 트리 A1∼An의 하위에는 또한, 카테고리 트리 B01∼Bnk, 또한 그 하위에 카테고리 트리 C1∼Cnq가 설정되어 있다. 각 카테고리 트리는 도 29의 (b), (c)에 도시한 바와 같이, 복수단의 노드, 리프에 의해 구성되는 트리 형상을 갖는다.
예를 들면 카테고리 트리 Bnk의 구성은, (b)에 도시한 바와 같이 서브 루트(2811)를 정점 노드로 하여 말단 노드(2812)에 이르기까지의 복수 노드를 갖는다. 이 카테고리 트리는 식별자 Bnk를 갖고, 카테고리 트리 Bnk 내의 노드에 대응하는 노드 키 관리를 카테고리 트리 Bnk 독자적으로 실행함으로써, 말단 노드(2812)를 정점으로 하여 설정되는 하위(자) 카테고리 트리의 관리를 실행한다. 그리고 한편, 카테고리 트리 Bnk는, 서브 루트(2811)를 말단 노드로서 갖는 상위(모) 카테고리 트리 Ann의 관리 하에 있다.
카테고리 트리 Cn3의 구성은 (c)에 도시한 바와 같이, 서브 루트(2851)를 정점 노드로 하여, 각 디바이스인 말단 노드(2852), 이 경우에는 리프에 이를 때까지 복수 노드, 리프를 갖는다. 이 카테고리 트리는 식별자 Cn3를 갖고, 카테고리 트리 Cn3 내의 노드, 리프에 대응하는 노드 키, 리프 키 관리를 카테고리 트리 Cn3 독자적으로 실행함으로써, 말단 노드(2852)에 대응하는 리프(디바이스)의 관리를 실행한다. 또 한편, 카테고리 트리 Cn3은 서브 루트(2851)를 말단 노드로서 갖는 상위(모) 카테고리 트리 Bn2의 관리 하에 있다. 각 카테고리 트리에서의 키 관리란, 예를 들면 키 갱신 처리, 리보크 처리 등이지만, 이들은 후에 상세히 설명한다.
최하단 카테고리 트리의 리프인 디바이스에는 디바이스가 속하는 카테고리 트리의 리프 키로부터, 자기가 속하는 카테고리 트리의 정점 노드인 서브 루트 노드에 이르는 패스에 위치하는 각 노드의 노드 키 및 리프 키가 저장된다. 예를 들면 말단 노드(2852)의 디바이스는 말단 노드(리프)(2852)로부터 서브 루트 노드(2851)까지의 각 키를 저장한다.
도 30을 참조하여 카테고리 트리의 구성에 대하여 더욱 설명한다. 카테고리 트리는 다양한 단수에 의해 구성되는 트리 구조를 갖는 것이 가능하다. 단수, 즉 깊이(depth)는 카테고리 트리로 관리하는 말단 노드에 대응하는 하위(자) 카테고리 트리의 수, 혹은 리프로서의 디바이스 수에 따라 설정 가능하다.
도 30의 (a)에 도시한 바와 같은 상하 카테고리 트리 구성을 구체화하면, (b)에 도시한 형태로 된다. 루트 트리는 루트 키를 갖는 최상단의 트리이다. 루 트 트리의 말단 노드에 복수의 하위 카테고리 트리로서 카테고리 트리 A, B, C가 설정되며, 또한 카테고리 트리 C의 하위 카테고리 트리로서 카테고리 D가 설정된다. 카테고리 트리 C(2901)는 그 말단 노드의 하나 이상의 노드를 리저브 노드(2950)로서 보유하고, 자신이 관리하는 카테고리 트리를 증가시키는 경우, 또한 복수단의 트리 구성을 갖는 카테고리 트리 C'(2902)를 리저브 노드(2950)를 정점 노드로서 신설함으로써, 관리 말단 노드(2970)를 증가시켜, 관리 말단 노드에 증가된 하위 카테고리 트리를 추가할 수 있다.
리저브 노드에 대하여 도 31을 참조하여 더욱 설명한다. 카테고리 트리 A(3011)는, 관리하는 하위 카테고리 트리 B, C, D, …를 갖고, 하나의 리저브 노드(3021)를 갖는다. 카테고리 트리는 관리 대상의 하위 카테고리 트리를 더욱 증가시키고자 하는 경우, 리저브 노드(3021)에 자기 관리의 하위 카테고리 트리 A'(3012)를 설정하고, 하위 카테고리 트리 A'(3012)의 말단 노드에 관리 대상의 하위 카테고리 트리 F, G를 더 설정할 수 있다. 자기 관리의 하위 카테고리 트리 A'(3012)도, 그 말단 노드의 적어도 하나를 리저브 노드(3022)로서 설정함으로써, 하위 카테고리 트리 A" (3013)를 더 설정하여 관리 카테고리 트리를 더욱 증가시킬 수 있다. 하위 카테고리 트리 A" (3013)의 말단 노드에도 1 이상의 리저브 노드를 확보한다. 이러한 리저브 노드 보유 구성을 취함으로써, 임의의 카테고리 트리가 관리하는 하위 카테고리 트리를 제한없이 증가시킬 수 있게 된다. 또, 리저브 카테고리는 말단 노드의 하나만이 아니라 복수개로 설정하는 구성으로 하여도 된다.
각각의 카테고리 트리에서는 카테고리 트리 단위로 유효화 키 블록(EKB)이 구성되며, 카테고리 트리 단위에서의 키 갱신 및 리보크 처리를 실행하게 된다. 도 31과 같이 복수의 카테고리 트리 A, A', A"에는 각 카테고리 트리 개개의 유효화 키 블록(EKB)이 설정되게 되지만, 이들은 카테고리 트리 A, A', A" 를 공통으로 관리하는 예를 들면 임의의 디바이스 메이커가 일괄하여 관리하는 것이 가능하다.
[신규 카테고리 트리의 등록 처리]
다음에, 신규 카테고리 트리의 등록 처리에 대하여 설명한다. 등록 처리 시퀀스를 도 32에 도시한다. 도 32의 시퀀스에 따라 설명한다. 새롭게 트리 구성 내에 추가되는 신규(자) 카테고리 트리(N-En)는, 상위(모) 카테고리 트리(P-En)에 대하여 신규 등록 요구를 실행한다. 또, 각 카테고리 트리는 공개 키 암호 방식에 따른 공개 키를 보유하고, 신규 카테고리 트리는 자기의 공개 키를 등록 요구 시에 상위 카테고리 트리(P-En)에 송부한다.
등록 요구를 수령한 상위 카테고리 트리(P-En)는 수령한 신규(자) 카테고리 트리(N-En)의 공개 키를 증명서 발행국(CA: Certificate Authority)으로 전송하고, CA의 서명을 부가한 신규(자) 카테고리 트리(N-En)의 공개 키를 수령한다. 이들 수속은 상위 카테고리 트리(P-En)와 신규(자) 카테고리 트리(N-En)의 상호 인증 수속으로서 행해진다.
이들 처리에 의해, 신규 등록 요구 카테고리 트리의 인증이 종료하면, 상위 카테고리 트리(P-En)는 신규(자) 카테고리 트리(N-En)의 등록을 허가하고, 신규(자) 카테고리 트리(N-En)의 노드 키를 신규(자) 카테고리 트리(N-En)에 송신한다. 노드 키는 상위 카테고리 트리(P-En)의 말단 노드의 하나의 노드 키이며, 또한 신 규(자) 카테고리 트리(N-En)의 정점 노드, 즉 서브 루트 키에 대응한다.
이 노드 키 송신이 종료하면, 신규(자) 카테고리 트리(N-En)는 신규(자) 카테고리 트리(N-En)의 트리 구성을 구축하고, 구축한 트리의 정점에 수신한 정점 노드의 서브 루트 키를 설정하며, 각 노드, 리프의 키를 설정하여, 카테고리 트리 내의 유효화 키 블록(EKB)을 생성한다. 하나의 카테고리 트리 내의 유효화 키 블록(EKB)을 서브 EKB라 한다.
한편, 상위 카테고리 트리(P-En)는 신규(자) 카테고리 트리(N-En)의 추가에 의해, 유효화하는 말단 노드를 추가한 상위 카테고리 트리(P-En) 내의 서브 EKB를 생성한다.
신규(자) 카테고리 트리(N-En)는 신규(자) 카테고리 트리(N-En) 내의 노드 키, 리프 키에 의해 구성되는 서브 EKB를 생성하면, 이것을 상위 카테고리 트리(P-En)에 송신한다.
신규(자) 카테고리 트리(N-En)로부터 서브 EKB를 수신한 상위 카테고리 트리(P-En)는, 수신한 서브 EKB와, 상위 카테고리 트리(P-En)가 갱신한 서브 EKB를 키 발행 센터(KDC: Key Distribute Center)에 송신한다.
키 발행 센터(KDC)는 모든 카테고리 트리의 서브 EKB에 기초하여, 다양한 형태의 EKB, 즉 특정한 카테고리 트리 혹은 디바이스만이 복호 가능한 EKB를 생성할 수 있다. 이와 같이 복호 가능한 카테고리 혹은 디바이스를 설정한 EKB를 예를 들면 콘텐츠 프로바이더에 제공하고, 콘텐츠 프로바이더가 EKB에 기초하여 컨텐츠 키를 암호화하여, 네트워크를 통하거나 혹은 기록 매체에 저장하여 제공함으로써, 특 정 디바이스에서만 이용할 수 있는 컨텐츠를 제공하는 것이 가능해진다.
또, 신규 카테고리의 서브 EKB의 키 발행 센터(KDC)에 대한 등록 처리는, 서브 EKB를 상위 카테고리 트리를 통해 순차적으로 전송하여 실행하는 방법에 한정되는 것이 아니라, 상위 카테고리 트리를 통하지 않고서, 신규 등록 카테고리 트리로부터 직접 키 발행 센터(KDC)에 등록하는 처리를 실행하는 구성으로 하여도 된다.
상위 카테고리 트리와, 상위 카테고리 트리에 신규 추가하는 하위 카테고리 트리의 대응에 대하여 도 33을 참조하여 설명한다. 상위 카테고리 트리의 말단 노드의 하나(3201)를 신규 추가 카테고리 트리의 정점 노드로서 하위 카테고리 트리에 제공함으로써,하위 카테고리 트리는 상위 카테고리 트리의 관리 하의 카테고리 트리로서 추가된다. 상위 카테고리 트리의 관리하의 카테고리 트리는, 후에 상세히 설명하겠지만, 하위 카테고리 트리의 리보크(배제) 처리를 상위 카테고리 트리가 실행할 수 있는 구성이라는 의미를 포함하는 것이다.
도 33에 도시한 바와 같이, 상위 카테고리 트리에 신규 카테고리 트리가 설정되면, 상위 카테고리 트리의 리프인 말단 노드 중 하나의 노드(3201)와 신규 추가 카테고리 트리의 정점 노드(3202)가 동등한 노드로서 설정된다. 즉, 상위 노드의 하나의 리프인 하나의 말단 노드가, 신규 추가 카테고리 트리의 서브 루트로서 설정된다. 이와 같이 설정됨으로써, 신규 추가 카테고리 트리가 전체 트리 구성하에서 유효화된다.
도 34는 신규 추가 카테고리 트리를 설정했을 때 상위 카테고리 트리가 생성하는 신규 EKB의 예를 도시한다. 도 34는 (a)에 도시한 구성, 즉 이미 유효하게 존재하는 말단 노드(node000)(3301)와 말단 노드(node001)(3302)가 있고, 여기에 신규 추가 카테고리 트리에 신규 카테고리 트리 추가 말단 노드(node100)(3303)를 부여했을 때 상위 카테고리 트리가 생성하는 서브 EKB의 예를 나타낸 것이다.
서브 EKB는 도 34의 (b)에 도시한 바와 같은 구성을 갖는다. 각각 유효하게 존재하는 말단 노드 키에 의해 암호화된 상위 노드 키, 상위 노드 키로 암호화된 또 다른 상위 노드 키, … 상위로 더욱 진행하여 서브 필드 키에 이르는 구성으로 되어 있다. 이 구성에 의해 서브 EKB가 생성된다. 각 카테고리 트리는 도 34의 (b)에 도시한 바와 마찬가지로, 유효한 말단 노드 혹은 리프 키에 의해 암호화된 상위 노드 키, 상위 노드 키로 더 상위의 노드 키를 암호화하고, 순차적으로 상위로 진행하여 서브 필드에 이르는 암호화 데이터에 의해 구성되는 EKB를 갖고, 이것을 관리한다.
[카테고리 트리 관리 하에서의 리보크 처리]
다음에, 키 배신 트리 구성을 카테고리 트리 단위로서 관리하는 구성에서의 디바이스 혹은 카테고리 트리의 리보크(배제) 처리에 대하여 설명한다. 앞의 도 3, 4에서는 트리 구성 전체 내에서 특정 디바이스만 복호 가능하고, 리보크된 디바이스는 복호 불가능한 유효화 키 블록(EKB)을 배신하는 처리에 대하여 설명하였다. 도 3, 4에서 설명한 리보크 처리는 트리 전체 내에서 특정한 리프인 디바이스를 리보크하는 처리였지만, 트리의 카테고리 트리 관리에 의한 구성에서는 카테고리 트리별로 리보크 처리가 실행 가능해진다.
도 35 이하의 도면을 참조하여 카테고리 트리 관리 하의 트리 구성에서의 리 보크 처리에 대하여 설명한다. 도 35는 트리를 구성하는 카테고리 트리 중 최하단의 카테고리 트리, 즉 개개의 디바이스를 관리하고 있는 카테고리 트리에 의한 디바이스의 리보크 처리를 설명하는 도면이다.
도 35의 (a)는 카테고리 트리 관리에 의한 키 배신 트리 구조를 도시하고 있다. 트리 최상위에는 루트 노드가 설정되고, 그 몇단 아래에 카테고리 트리 A01∼Ann, 또한 그 하위단에 B01∼Bnk의 카테고리 트리, 또한 그 하위단에 C1∼cn의 카테고리 트리가 구성되어 있다. 가장 아래의 카테고리 트리는 말단 노드(리프)가 개개의 디바이스, 예를 들면 기록 재생기, 재생 전용기 등이라고 한다.
여기서, 리보크 처리는 각 카테고리 트리에서 독자적으로 실행된다. 예를 들면, 최하단의 카테고리 트리 C1∼Cn에서는 리프 디바이스의 리보크 처리가 실행된다. 도 35의 (b)에는 최하단의 카테고리 트리의 하나인 카테고리 트리 Cn(3430)의 트리 구성을 도시하고 있다. 카테고리 트리 Cn(3430)는 정점 노드(3431)를 갖고, 말단 노드인 리프에 복수의 디바이스를 갖는 구성이다.
이 말단 노드인 리프 중에 리보크 대상이 되는 디바이스, 예를 들면 디바이스(3432)가 있다고 하면, 카테고리 트리 Cn(3430)는 독자적으로 갱신한 카테고리 트리 Cn 내의 노드 키, 리프 키에 의해 구성되는 유효화 키 블록(서브 EKB)을 생성한다. 이 유효화 키 블록은 리보크 디바이스(3432)에서는 복호할 수 없고, 다른 리프를 구성하는 디바이스에서만 복호 가능한 암호화 키에 의해 구성되는 키 블록이다. 카테고리 Cn의 관리자는 이것을 갱신된 서브 EKB로서 생성한다. 구체적으로는, 서브 루트로부터 리보크 디바이스(3432)에 연결되는 패스를 구성하는 각 노 드(3431, 3434, 3435)의 노드 키를 갱신하고, 이 갱신 노드 키를 리보크 디바이스(3432) 이외의 리프 디바이스에서만 복호 가능한 암호화 키로서 구성한 블록을 갱신 서브 EKB로 한다. 이 처리는 앞의 도 3, 4에서 설명한 리보크 처리 구성에서, 루트 키를 카테고리의 정점 키인 서브 루트 키로 치환한 처리에 대응한다.
이와 같이 카테고리 트리 Cn(3430)가 리보크 처리에 의해 갱신된 유효화 키 블록(서브 EKB)은 상위 카테고리 트리에 송신된다. 이 경우, 상위 카테고리 트리는 카테고리 트리 Bnk(3420)이며, 카테고리 트리 Cn(3430)의 정점 노드(3431)를 말단 노드로서 갖는 카테고리이다.
카테고리 트리 Bnk(3420)은 하위 카테고리 트리 Cn(3430)로부터 유효화 키 블록(서브 EKB)을 수령하면, 그 키 블록에 포함되는 카테고리 트리 Cnk(3430)의 정점 노드(3431)에 대응하는 카테고리 트리 Bnk(3420)의 말단 노드(3431)를, 하위 카테고리 트리 Cn(3430)에서 갱신된 키로 설정하고, 자신의 카테고리 트리 Bnk(3420)의 서브 EKB의 갱신 처리를 실행한다. 도 35의 (c)에 카테고리 트리 Bnk(3420)의 트리 구성을 도시한다. 카테고리 트리 Bnk(3420)에서, 갱신 대상이 되는 노드 키는, 도 35의 (c)의 서브 루트(3421)로부터 리보크 디바이스를 포함하는 카테고리 트리를 구성하는 말단 노드(3431)에 이르는 패스 상의 노드 키이다. 즉, 갱신 서브 EKB를 송신하여 온 카테고리 트리의 노드(3431)에 연결되는 패스를 구성하는 각 노드(3421, 3424, 3425)의 노드 키가 갱신 대상이 된다. 이들 각 노드의 노드 키를 갱신하여 카테고리 트리 Bnk(3420)가 새로운 갱신 서브 EKB를 생성한다.
또한, 카테고리 트리 Bnk(3420)가 갱신한 유효화 키 블록(서브 EKB)은 상위 카테고리 트리에 송신된다. 이 경우, 상위 카테고리 트리는 카테고리 트리 Ann(3410)이며, 카테고리 트리 Bnk(3420)의 정점 노드(3421)를 말단 노드로서 갖는 카테고리 트리이다.
카테고리 트리 Ann(3410)는 하위 카테고리 트리 Bnk(3420)로부터 유효화 키 블록(서브 EKB)을 수령하면, 그 키 블록에 포함되는 카테고리 트리 Bnk(3420)의 정점 노드(3421)에 대응하는 카테고리 트리 Ann(3410)의 말단 노드(3421)를, 하위 카테고리 트리 Bnk(3420)에서 갱신된 키로 설정하고, 자신의 카테고리 트리 Ann(3410)의 서브 EKB의 갱신 처리를 실행한다. 도 35의 (d)에 카테고리 트리 Ann(3410)의 트리 구성을 도시한다. 카테고리 트리 Ann(3410)에서, 갱신 대상이 되는 노드 키는, 도 35의 (d)의 서브 루트(3411)로부터 갱신 서브 EKB를 송신받은 카테고리 트리의 노드(3421)에 연결되는 패스를 구성하는 각 노드(3411, 3414, 3415)의 노드 키이다. 이들 각 노드의 노드 키를 갱신하여 카테고리 트리 Ann(3410)가 새로운 갱신 서브 EKB를 생성한다.
이들 처리를 순차적으로 상위의 카테고리 트리에서 실행하고, 도 30의 (b)에서 설명한 루트 카테고리 트리까지 실행한다. 이 일련의 처리에 의해 디바이스의 리보크 처리가 완결된다. 또, 각각의 카테고리에서 갱신된 서브 EKB는 최종적으로 키 발행 센터(KDC)에 송신되어 보관된다. 키 발행 센터(KDC)는 모든 카테고리 트리의 갱신 서브 EKB에 기초하여 다양한 EKB를 생성한다. 갱신 EKB는 리보크된 디바이스에서의 복호가 불가능한 암호화 키 블록으로 된다.
디바이스의 리보크 처리의 시퀀스도를 도 36에 도시한다. 처리 순서를 도 36의 시퀀스도에 따라서 설명한다. 먼저, 트리 구성의 최하단에 있는 디바이스 관리 카테고리 트리(D-En)는, 디바이스 관리 카테고리 트리(D-En) 내의 리보크 대상의 리프를 배제하기 위해 필요한 키 갱신을 행하고, 디바이스 관리 카테고리 트리(D-En)의 새로운 서브 EKB(D)를 생성한다. 갱신 서브 EKB(D)는 상위 카테고리 트리에 송부된다. 갱신 서브 EKB(D)를 수령한 상위(모) 카테고리 트리(P1-En)는, 갱신 서브 EKB(D)의 갱신 정점 노드에 대응한 말단 노드 키의 갱신 및 그 말단 노드로부터 서브 루트에 이르는 패스 상의 노드 키를 갱신한 갱신 서브 EKB(P1)를 생성한다. 이들 처리를 순차적으로 상위 카테고리 트리에서 실행하여, 최종적으로 갱신된 모든 서브 EKB가 키 발행 센터(KDC)에 저장되어 관리된다.
도 37은 디바이스의 리보크 처리에 의해 상위 카테고리 트리가 갱신 처리를 실행하여 생성하는 유효화 키 블록(EKB)의 예를 도시한다.
도 37은, (a)에 도시한 구성에서, 리보크 디바이스를 포함하는 하위 카테고리 트리로부터 갱신 서브 EKB를 수신한 상위 카테고리 트리에서 생성하는 EKB의 예를 설명하는 도면이다. 리보크 디바이스를 포함하는 하위 카테고리 트리의 정점 노드는 상위 카테고리 트리의 말단 노드(node100)(3601)에 대응한다.
상위 카테고리 트리는 상위 카테고리 트리의 서브 루트로부터 말단 노드(node100)(3601)까지의 패스에 존재하는 노드 키를 갱신하여 새로운 갱신 서브 EKB를 생성한다. 갱신 서브 EKB는 도 37의 (b)과 같이 된다. 갱신된 키는 밑줄 및 [']을 부기하여 나타내고 있다. 이와 같이 갱신된 말단 노드에서 서브 루트까지의 패스 상의 노드 키를 갱신하여 그 카테고리 트리에서의 갱신 서브 EKB로 한 다.
다음에, 리보크할 대상을 카테고리 트리로 한 경우의 처리, 즉 카테고리 트리의 리보크 처리에 대하여 설명한다.
도 38의 (a)는 카테고리 트리 관리에 의한 키 배신 트리 구조를 도시하고 있다. 트리 최상위에는 루트 노드가 설정되고, 그 몇단 아래에 카테고리 트리 A01∼Ann, 또한 그 하위단에 B01∼Bnk의 카테고리 트리, 또한 그 하위단에 C1∼cn의 카테고리 트리가 구성되어 있다. 가장 하위의 카테고리 트리는 말단 노드(리프)가 개개의 디바이스, 예를 들면 기록 재생기, 재생 전용기 등이라고 한다.
여기서, 리보크 처리를 카테고리 트리 Cn(3730)에 대하여 실행하는 경우에 대하여 설명한다. 최하단의 카테고리 트리 Cn(3730)는 도 38의 (b)에 도시한 바와 같이 정점 노드(3431)를 갖고, 말단 노드인 리프에 복수의 디바이스를 갖는 구성이다.
카테고리 트리 Cn(3730)를 리보크함으로써, 카테고리 트리 Cn(3730)에 속하는 모든 디바이스의 트리 구조로부터의 일괄 배제가 가능해진다. 카테고리 트리 Cn(3730)의 리보크 처리는 카테고리 트리 Cn(3730)의 상위 카테고리 트리인 카테고리 트리 Bnk(3720)에서 실행된다. 카테고리 트리 Bnk(3720)는 카테고리 트리 Cn(3730)의 정점 노드(3731)를 말단 노드로서 갖는 카테고리 트리이다.
카테고리 트리 Bnk(3720)는 하위 카테고리 트리 Cn(3730)의 리보크를 실행하는 경우, 카테고리 트리 Cnk(3730)의 정점 노드(3731)에 대응하는 카테고리 트리 Bnk(3720)의 말단 노드(3731)를 갱신하고, 또한 그 리보크 카테고리 트리(3730)로 부터 카테고리 트리 Bnk(3720)의 서브 루트까지의 패스 상의 노드 키의 갱신을 행하고 유효화 키 블록을 생성하여 갱신 서브 EKB를 생성한다. 갱신 대상이 되는 노드 키는 도 38의 (c)의 서브 루트(3721)로부터 리보크 카테고리 트리의 정점 노드를 구성하는 말단 노드(3731)에 이르는 패스 상의 노드 키이다. 즉, 노드(3721, 3724, 3725, 3731)의 노드 키가 갱신 대상이 된다. 이들 각 노드의 노드 키를 갱신하여 카테고리 트리 Bnk(3720)가 새로운 갱신 서브 EKB를 생성한다.
혹은, 카테고리 트리 Bnk(3720)는 하위 카테고리 트리 Cn(3730)의 리보크를 실행하는 경우, 카테고리 트리 Cnk(3730)의 정점 노드(3731)에 대응하는 카테고리 트리 Bnk(3720)의 말단 노드(3731)는 갱신하지 않고, 그 리보크 카테고리 트리(3730)로부터 카테고리 트리 Bnk(3720)의 서브 루트까지의 패스 상의 말단 노드(3731)를 제외한 노드 키의 갱신을 행하여 유효화 키 블록을 생성하고 갱신 서브 EKB를 생성하여도 무방하다.
또한, 카테고리 트리 Bnk(3720)가 갱신한 유효화 키 블록(서브 EKB)은 상위 카테고리 트리에 송신된다. 이 경우, 상위 카테고리 트리는 카테고리 트리 Ann(3710)이며, 카테고리 트리 Bnk(3720)의 정점 노드(3721)를 말단 노드로서 갖는 카테고리 트리이다.
카테고리 트리 Ann(3710)는 하위 카테고리 트리 Bnk(3720)로부터 유효화 키 블록(서브 EKB)을 수령하면, 그 키 블록에 포함되는 카테고리 트리 Bnk(3720)의 정점 노드(3721)에 대응하는 카테고리 트리 Ann(3710)의 말단 노드(3721)를, 하위 카테고리 트리 Bnk(3720)에서 갱신된 키로 설정하여, 자신의 카테고리 트리 Ann(3710)의 서브 EKB의 갱신 처리를 실행한다. 도 38의 (d)에 카테고리 트리 Ann(3710)의 트리 구성을 나타낸다. 카테고리 트리 Ann(3710)에서, 갱신 대상이 되는 노드 키는, 도 38의 (d)의 서브 루트(3711)로부터 갱신 서브 EKB를 송신하여 온 카테고리 트리의 노드(3721)에 연결되는 패스를 구성하는 각 노드(3711, 3714, 3715)의 노드 키이다. 이들 각 노드의 노드 키를 갱신하여 카테고리 트리 Ann(3710)가 새로운 갱신 서브 EKB를 생성한다.
이들 처리를 순차적으로 상위의 카테고리 트리에서 실행하고, 도 30의 (b)에서 설명한 루트 카테고리 트리까지 실행한다. 이 일련의 처리에 의해, 카테고리 트리의 리보크 처리가 완결된다. 또, 각각의 카테고리에서 갱신된 서브 EKB는 최종적으로 키 발행 센터(KDC)에 송신되어 보관된다. 키 발행 센터(KDC)는 모든 카테고리 트리의 갱신 서브 EKB에 기초하여 다양한 EKB를 생성한다. 갱신 EKB는 리보크된 카테고리 트리에 속하는 디바이스에서의 복호가 불가능한 암호화 키 블록이 된다.
카테고리 트리의 리보크 처리의 시퀀스도를 도 39에 도시한다. 처리 순서를 도 39의 시퀀스도에 따라서 설명한다. 먼저, 카테고리 트리를 리보크하고자 하는 카테고리 트리 관리 카테고리 트리(E-En)는, 카테고리 트리 관리 카테고리 트리(E-En) 내의 리보크 대상의 말단 노드를 배제하기 위해 필요한 키 갱신을 행하고, 카테고리 트리 관리 카테고리 트리(E-En)의 새로운 서브 EKB(E)를 생성한다. 갱신 서브 EKB(E)는 상위 카테고리 트리에 송부된다. 갱신 서브 EKB(E)를 수령한 상위(모) 카테고리 트리(P1-En)는 갱신 서브 EKB(E)의 갱신 정점 노드에 대응한 말단 노 드 키의 갱신 및, 그 말단 노드로부터 서브 루트에 이르는 패스 상의 노드 키를 갱신한 갱신 서브 EKB(P1)를 생성한다. 이들 처리를 순차적으로, 상위 카테고리 트리에서 실행하고, 최종적으로 갱신된 모든 서브 EKB가 키 발행 센터(KDC)에 저장되어 관리된다. 키 발행 센터(KDC)는 모든 카테고리 트리의 갱신 서브 EKB에 기초하여 다양한 EKB를 생성한다. 갱신 EKB는 리보크된 카테고리 트리에 속하는 디바이스에서의 복호가 불가능한 암호화 키 블록이 된다.
도 4O은 리보크된 하위 카테고리 트리와, 리보크를 실행한 상위 카테고리 트리의 대응을 설명하는 도면이다. 상위 카테고리 트리의 말단 노드(3901)는 카테고리 트리의 리보크에 의해 갱신되고, 상위 카테고리 트리의 트리에서의 말단 노드(3901)로부터 서브 루트까지의 패스에 존재하는 노드 키의 갱신에 의해 새로운 서브 EKB가 생성된다. 그 결과, 리보크된 하위 카테고리 트리의 정점 노드(3902)의 노드 키와, 상위 카테고리 트리의 말단 노드(3901)의 노드 키는 불일치로 된다. 카테고리 트리의 리보크 후에 키 발행 센터(KDC)에 의해 생성되는 EKB는, 상위 카테고리 트리에서 갱신된 말단 노드(3901)의 키에 기초하여 생성되게 되기 때문에, 그 갱신 키를 보유하지 않는 하위 카테고리 트리의 리프에 대응하는 디바이스는, 키 발행 센터(KDC)에 의해 생성되는 EKB의 복호가 불가능하게 된다.
또, 상술한 설명에서는 디바이스를 관리하는 최하단의 카테고리 트리의 리보크 처리에 대하여 설명하였지만, 트리의 중단에 있는 카테고리 트리 관리 카테고리 트리를 그 상위 카테고리 트리가 리보크하는 처리도 상기와 마찬가지의 프로세스에 의해 가능하다. 중단의 엔티티 관리 카테고리 트리를 리보크함으로써, 리보크된 카테고리 트리 관리 카테고리 트리의 하위에 속하는 모든 복수 카테고리 트리 및 디바이스를 일괄하여 리보크 가능해진다.
이와 같이, 카테고리 트리 단위에서의 리보크를 실행함으로써, 하나 하나의 디바이스 단위로 실행하는 리보크 처리에 비하여 간단한 프로세스에서의 리보크 처리가 가능해진다.
[카테고리 트리의 캐이퍼빌리티 관리]
다음에, 카테고리 트리 단위에서의 키 배신 트리 구성에서, 각 엔티티가 허용하는 캐이퍼빌리티(Capability)를 관리하여, 캐이퍼빌리티에 따른 콘텐츠 배신을 실행하는 처리 구성에 대하여 설명한다. 여기서 캐이퍼빌리티란, 예를 들면 특정한 압축 음성 데이터의 복호가 가능하다든가, 특정한 음성 재생 방식을 허용한다든가, 혹은 특정한 화상 처리 프로그램을 처리할 수 있는 등, 디바이스가 어떠한 콘텐츠 혹은 프로그램 등을 처리할 수 있는 디바이스인지, 즉 디바이스의 데이터 처리 능력을 정의한 정의 정보이다.
도 41은 캐이퍼빌리티를 정의한 카테고리 트리 구성예를 도시한다. 키 배신 트리 구성의 최정점에 루트 노드가 위치하고, 하층에 복수의 카테고리 트리가 접속되어 각 노드가 2분기를 갖는 트리 구성이다. 여기서, 예를 들면 카테고리 트리(4001)는 음성 재생 방식 A, B, C 중 어느 하나를 허용하는 캐이퍼빌리티를 갖는 카테고리 트리로서 정의된다. 구체적으로는, 예를 들면 어떤 음성 압축 프로그램-A, B, 또는 C 방식으로 압축한 음악 데이터를 배신하는 경우에, 카테고리 트리(4001) 이하에 구성된 카테고리 트리에 속하는 디바이스는 압축 데이터를 신장 하는 처리가 가능하다.
마찬가지로 카테고리 트리(4002)는 음성 재생 방식 B 또는 C, 카테고리 트리(4003)는 음성 재생 방식 A 또는 B, 카테고리 트리(4004)는 음성 재생 방식 B, 카테고리 트리(4005)는 음성 재생 방식 C를 처리하는 것이 가능한 캐이퍼빌리티를 갖는 카테고리 트리로서 정의된다.
한편, 카테고리 트리(4021)는 화상 재생 방식 p, q, r을 허용하는 카테고리 트리로서 정의되고, 카테고리 트리(4022)는 방식 p, q의 화상 재생 방식, 카테고리 트리(4023)는 방식 p의 화상 재생이 가능한 캐이퍼빌리티를 갖는 카테고리 트리로서 정의된다.
이러한 각 카테고리 트리의 캐이퍼빌리티 정보는 키 발행 센터(KDC)에서 관리된다. 키 발행 센터(KDC)는 예를 들면 어떤 콘텐츠 프로바이더가 특정한 압축 프로그램으로 압축한 음악 데이터를 다양한 디바이스에 배신하고자 하는 경우, 그 특정한 압축 프로그램을 재생 가능한 디바이스에 대해서만 복호 가능한 유효화 키 블록(EKB)을 각 카테고리 트리의 캐이퍼빌리티 정보에 기초하여 생성할 수 있다. 콘텐츠를 제공하는 콘텐츠 프로바이더는 캐이퍼빌리티 정보에 기초하여 생성한 유효화 키 블록(EKB)에 의해 암호화한 콘텐츠 키를 배신하고, 그 콘텐츠 키로 암호화한 압축 음성 데이터를 각 디바이스에 제공한다. 이 구성에 의해, 데이터의 처리가 가능한 디바이스에 대해서만 특정한 처리 프로그램을 확실히 제공하는 것이 가능해진다.
또, 도 41에서는 모든 카테고리 트리에 대하여 캐이퍼빌리티 정보를 정의하 고 있는 구성이지만, 도 41의 구성과 같이 모든 카테고리 트리에 캐이퍼빌리티 정보를 정의하는 것은 반드시 필요하지는 않으며, 예를 들면 도 42에 도시한 바와 같이 디바이스가 속하는 최하단의 카테고리 트리에 대해서만 캐이퍼빌리티를 정의하고, 최하단의 카테고리 트리에 속하는 디바이스의 캐이퍼빌리티를 키 발행 센터(KDC)에서 관리하고, 콘텐츠 프로바이더가 원하는 처리가 가능한 디바이스에만 복호 가능한 유효화 키 블록(EKB)을 최하단 카테고리 트리에 정의된 캐이퍼빌리티 정보에 기초하여 생성하는 구성으로 하여도 된다. 도 42에서는 말단 노드에 디바이스가 정의된 카테고리 트리(4101=4105)에서의 캐이퍼빌리티가 정의되고, 이들 카테고리 트리에 대한 캐이퍼빌리티를 키 발행 센터(KDC)에서 관리하는 구성이다. 예를 들면 카테고리 트리(4101)에는 음성 재생에 관해서는 방식 B, 화상 재생에 관해서는 방식 r의 처리가 가능한 디바이스가 속해 있다. 카테고리 트리(4102)에는 음성 재생에 관해서는 방식 A, 화상 재생에 관해서는 방식 q의 처리가 가능한 디바이스 등이 속해 있다.
도 43은 키 발행 센터(KDC)에서 관리하는 캐이퍼빌리티 관리 테이블의 구성예를 도시한다. 캐이퍼빌리티 관리 테이블은 도 43의 (a)와 같은 데이터 구성을 갖는다. 즉, 각 카테고리 트리를 식별하는 식별자로서의 카테고리 트리 ID, 그 카테고리 트리에 정의된 캐이퍼빌리티를 나타내는 캐이퍼빌리티 리스트, 이 캐이퍼빌리티 리스트는 도 43의 (b)에 도시한 바와 같이 예를 들면 음성 데이터 재생 처리 방식 (A)가 처리 가능하면 [1], 처리 불가능하면 [0], 음성 데이터 재생 처리 방식 (B)가 처리 가능하면 [1], 처리 불가능하면 [0]… 등, 다양한 형태의 데이터 처리 에 대한 가부를 1비트씩 [1] 또는 [0]을 설정하여 구성되어 있다. 또, 이 캐이퍼빌리티 정보의 설정 방법은 이러한 형식에 한정되지 않고, 카테고리 트리의 관리 디바이스에 대한 캐이퍼빌리티를 식별 가능하면 다른 구성으로 하여도 무방하다.
캐이퍼빌리티 관리 테이블에는 또한, 각 카테고리 트리의 서브 EKB, 혹은 서브 EKB가 별도의 데이터 베이스에 저장되어 있는 경우에는, 서브 EKB의 식별 정보가 저장되고, 또한 각 카테고리 트리의 서브 루트 노드 식별 데이터가 저장된다.
키 발행 센터(KDC)는 캐이퍼빌리티 관리 테이블에 기초하여, 예를 들면 특정 콘텐츠가 재생 가능한 디바이스만이 복호 가능한 유효화 키 블록(EKB)을 생성한다. 도 44를 참조하여 캐이퍼빌리티 정보에 기초한 유효화 키 블록의 생성 처리에 대하여 설명한다.
먼저, 단계 S4301에서, 키 발행 센터(KDC)는 캐이퍼빌리티 관리 테이블로부터, 지정된 캐이퍼빌리티를 갖는 카테고리 트리를 선택한다. 구체적으로는, 예를 들면 콘텐츠 프로바이더와 음성 데이터 재생 처리 방식 A에 기초한 재생 가능한 데이터를 배신하고자 하는 경우에는, 도 43의 (a)의 캐이퍼빌리티 리스트로부터, 예를 들면 음성 데이터 재생 처리(방식 A)의 항목이 [1]로 설정된 카테고리 트리를 선택한다.
다음에, 단계 S4302에서, 선택된 카테고리 트리에 의해 구성되는 선택 카테고리 트리 ID의 리스트를 생성한다. 다음에, 단계 S4303에서, 선택 카테고리 트리 ID에 의해 구성되는 트리에 필요한 패스(키 배신 트리 구성의 패스)를 선택한다. 단계 S4304에서는, 선택 카테고리 트리 ID의 리스트에 포함되는 모든 패스 선택이 완료되었는지 여부를 판정하고, 완료할 때까지 단계 S4303에서 패스를 생성한다. 이것은 복수의 카테고리 트리가 선택된 경우에, 각각의 패스를 순차적으로 선택하는 처리를 의미한다.
선택 카테고리 트리 ID의 리스트에 포함되는 모든 패스 선택이 완료되면, 단계 S4305로 진행하여, 선택한 패스와 선택 카테고리 트리에 의해서만 구성되는 키 배신 트리 구조를 구축한다.
다음에, 단계 S4306에서, 단계 S4305에서 생성한 트리 구조의 노드 키의 갱신 처리를 행하여 갱신 노드 키를 생성한다. 또한, 트리를 구성하는 선택 카테고리 트리의 서브 EKB를 캐이퍼빌리티 관리 테이블로부터 추출하고, 서브 EKB와, 단계 S4306에서 생성한 갱신 노드 키에 기초하여 선택 카테고리 트리의 디바이스에서만 복호 가능한 유효화 키 블록(EKB)을 생성한다. 이렇게 하여 생성한 유효화 키 블록(EKB)은 특정한 캐이퍼빌리티를 갖는 디바이스에서만 이용, 즉 복호 가능한 유효화 키 블록(EKB)으로 된다. 이 유효화 키 블록(EKB)으로 예를 들면 콘텐츠 키를 암호화하고, 그 콘텐츠 키로 특정 프로그램에 기초하여 압축한 콘텐츠를 암호화하여 디바이스에 제공함으로써, 키 발행 센터(KDC)에 의해 선택된 특정의 처리 가능한 디바이스에서만 콘텐츠가 이용된다.
이와 같이 키 발행 센터(KDC)는 캐이퍼빌리티 관리 테이블에 기초하여, 예를 들면 특정 콘텐츠를 재생 가능한 디바이스만이 복호 가능한 유효화 키 블록(EKB)을 생성한다. 따라서, 새로운 카테고리 트리가 등록되는 경우에는, 그 신규 등록 카테고리 트리의 캐이퍼빌리티를 사전에 취득할 필요가 있다. 이 카테고리 트리 신 규 등록에 따른 캐이퍼빌리티 통지 처리에 대하여 도 45를 참조하여 설명한다.
도 45는 신규 카테고리 트리가 키 배신 트리 구성에 참가하는 경우의 캐이퍼빌리티 통지 처리 시퀀스를 도시한 도면이다.
새롭게 트리 구성 내에 추가되는 신규(자) 카테고리 트리(N-En)는, 상위(모) 카테고리 트리(P-En)에 대하여 신규 등록 요구를 실행한다. 또, 각 카테고리 트리는 공개 키 암호 방식에 따른 공개 키를 보유하고, 신규 카테고리 트리는 자기의 공개 키를 등록 요구 시에 상위 카테고리 트리(P-En)에 송부한다.
등록 요구를 수령한 상위 카테고리 트리(P-En)는 수령한 신규(자) 카테고리 트리(N-En)의 공개 키를 증명서 발행국(CA: Certificate Authority)으로 전송하고, CA의 서명을 부가한 신규(자) 카테고리 트리(N-En)의 공개 키를 수령한다. 이들 수속은 상위 카테고리 트리(P-En)와 신규(자) 카테고리 트리(N-En)의 상호 인증 수속으로서 행해진다.
이들 처리에 의해, 신규 등록 요구 카테고리 트리의 인증이 종료하면, 상위 카테고리 트리(P-En)는 신규(자) 카테고리 트리(N-En)의 등록을 허가하고, 신규(자) 카테고리 트리(N-En)의 노드 키를 신규(자) 카테고리 트리(N-En)에 송신한다. 이 노드 키는 상위 카테고리 트리(P-En)의 말단 노드의 하나의 노드 키이며, 또한 신규(자) 카테고리 트리(N-En)의 정점 노드, 즉 서브 루트 키에 대응한다.
이 노드 키 송신이 종료하면, 신규(자) 카테고리 트리(N-En)는 신규(자) 카테고리 트리(N-En)의 트리 구성을 구축하고, 구축한 트리의 정점에 수신한 정점 노드의 서브 루트 키를 설정하여, 각 노드, 리프의 키를 설정하고, 카테고리 트리 내 의 유효화 키 블록(서브 EKB)을 생성한다. 한편, 상위 카테고리 트리(P-En)도 신규(자) 카테고리 트리(N-En)의 추가에 의해, 유효화하는 말단 노드를 추가한 상위 카테고리 트리(P-En) 내의 서브 EKB를 생성한다.
신규(자) 카테고리 트리(N-En)는, 신규(자) 카테고리 트리(N-En) 내의 노드 키, 리프 키에 의해 구성되는 서브 EKB를 생성하면, 이것을 상위 카테고리 트리(P-En)에 송신하고, 또한 자기의 카테고리 트리에서 관리하는 디바이스에 관한 캐이퍼빌리티 정보를 상위 카테고리 트리에 통지한다.
신규(자) 카테고리 트리(N-En)부터 서브 EKB 및 캐이퍼빌리티 정보를 수신한 상위 카테고리 트리(P-En)는, 수신한 서브 EKB와 캐이퍼빌리티 정보와, 상위 카테고리 트리(P-En)가 갱신한 서브 EKB를 키 발행 센터(KDC: Key Distribute Center)에 송신한다.
키 발행 센터(KDC)는 수령한 카테고리 트리의 서브 EKB 및 캐이퍼빌리티 정보를 도 43에서 설명한 캐이퍼빌리티 관리 테이블에 등록하고, 캐이퍼빌리티 관리 테이블을 갱신한다. 키 발행 센터(KDC)는 갱신한 캐이퍼빌리티 관리 테이블에 기초하여 다양한 형태의 EKB, 즉 특정한 캐이퍼빌리티를 갖는 카테고리 트리 혹은 디바이스만이 복호 가능한 EKB를 생성하는 것이 가능해진다.
[EKB 타입 정의 리스트를 사용한 EKB 관리 구성]
다음에, 1 이상의 선택된 카테고리 트리에서 복호 가능한 EKB를 생성하여 각 카테고리 트리에 속하는 디바이스에 공통으로 사용 가능한 EKB를 제공하는 구성에서, 어느 카테고리 트리에서 처리 가능, 즉 복호 가능한지를 나타내는 EKB 타입 정 의 리스트를 사용한 구성에 대하여 설명한다.
본 구성에서는, 키 발행 센터(KDC)는 콘텐츠 프로바이더 등의 EKB의 사용, 발행 처리를 원하는 EKB 요청자로부터 EKB 발행 요구를 수령한다. EKB 발행 요구에는 EKB 타입 정의 리스트에 정의된 EKB 타입을 나타내는 EKB 타입 식별 번호가 포함되고, 키 발행 센터(KDC)는 EKB 타입 식별 번호에 따라서 1 또는 복수의 카테고리 트리에서 처리(복호) 가능한 EKB를 생성한다.
EKB의 생성 시에는, 키 발행 센터(KDC)는 EKB 타입 정의 리스트의 EKB 타입 식별 번호에 대응하여 설정된 각 카테고리 트리의 톱 노드 식별자에 기초하여, 카테고리 트리 관리자로서의 톱 레벨 카테고리 엔티티(TLCE: Top Level Category Entity)에 서브 EKB의 생성을 요구하고, 각 TLCE가 생성한 서브 EKB를 수령하고, 복수의 서브 EKB의 합성 처리를 실행하여 복수의 카테고리 트리에서 처리 가능한 EKB를 생성한다.
본 구성에서는, 콘텐츠 프로바이더(CP) 등의 EKB의 발행 요구자는, EKB 타입 정의 리스트에 기초하여 특정한 카테고리 트리의 선택을 실행하는 것이 가능해진다. 콘텐츠 프로바이더(CP) 등의 EKB의 발행 요구자는 EKB 타입 정의 리스트를 참조하여 특정 카테고리 트리에서 처리 가능한 EKB의 발행을 키 발행 센터(KDC)에 의뢰한다. 키 발행 센터(KDC)는 EKB 발행 요구에 기초하여, 선택된 카테고리 트리의 관리 엔티티에 대하여 서브 EKB 발행 요구를 행하고, 각 선택된 카테고리 트리의 관리 엔티티는 관리 엔티티가 리보크되어 있지 않은 정당한 디바이스에서만 처리 가능한 서브 EKB를 생성하여 키 발행 센터(KDC)에 송신한다. 키 발행 센터(KDC)는 1 이상의 서브 EKB를 조합시켜 EKB의 발행 요구자가 요구한 선택 카테고리 트리에만 처리 가능한 EKB를 생성하여 EKB 발행 요구자에 제공한다. EKB 발행 요구자는 키 발행 센터(KDC)로부터 EKB를 수령하여, EKB의 처리에 의해 취득 가능한 키로만 복호 가능한 암호화 키, 또는 암호화 콘텐츠의 배신을 실행한다.
먼저, 이하의 설명에서의 구성 엔티티에 대하여 간단히 설명한다.
·키 발행 센터(KDC: Key Distribution Center)
유효화 키 블록(EKB)을 발행하고, 발행한 EKB에 관한 EKB 타입 정의 리스트를 관리한다.
·톱 레벨 카테고리 엔티티(TLCE: Top Level Category Entity)
임의의 카테고리 트리를 관리하는 엔티티. 예를 들면, 기록 디바이스의 포맷 홀더. 카테고리 트리를 관리하고, 관리 하의 카테고리 트리 내의 디바이스에서 처리(복호) 가능한 EKB인 서브 EKB를 생성하여, 키 발행 센터(KDC)에 제출한다.
·EKB 요청자(EKB requester)
예를 들면, 전자 콘텐츠 제공(ECD: Electronic Content Distribution) 서비스를 실행하는 콘텐츠 프로바이더(CP) 등, 화상, 음성, 프로그램 등 다양한 콘텐츠를 사용자 디바이스에 제공하는 엔티티, 혹은 기록 미디어의 포맷 홀더이며, 제공 컨텐츠의 암호화 키 등에 EKB 처리에 의해 취득 가능한 키를 이용하는 설정으로서 콘텐츠, 미디어를 제공한다. 이 때 이용되는 EKB의 발행 요구를 키 발행 센터(KDC)에 요구한다.
예를 들면, 콘텐츠 프로바이더(CP)는 키 발행 센터(KDC)가 생성한 EKB의 루 트 키(Root Key)를 이용하여 자신의 콘텐츠를 암호화하여 배신한다. 기록 미디어의 포맷 홀더는 EKB를 기록 미디어의 제조 시에 기록하여 배포하고, 기록되는 콘텐츠가 그 EKB의 루트 키(Root Key)를 이용하여 암호화되도록 한다.
(TLCE와 카테고리 베이스의 트리 관리)
카테고리 베이스의 트리 관리에 대해서는, 전술하였지만, 톱 레벨 카테고리 엔티티(TLCE)와 카테고리 트리의 관계에 대하여 도 46을 참조하여 설명한다.
먼저, 카테고리는 전술한 바와 같이 동일한 성질을 갖는 디바이스의 집합이며, 구체적으로는 동일 메이커가 제조한 디바이스, 혹은 동일 인코드 포맷을 취급할 수 있는 디바이스 등이다. 도 46에서 A, B, C, D는 각각 카테고리 트리를 나타낸다.
도 46에서, 최상단의 루트 트리는 예를 들면 8단 구성(노드 단수)이며, 루트 트리의 최하단에 카테고리 트리의 톱 노드가 설정된다. 카테고리 트리는 복수가 상위, 하위의 관계로 되는 것이 가능하며, 도 46에서, 카테고리 트리 C는 카테고리 트리 D의 상위에 대응한다.
최상단의 루트 트리에 직접 연결되는 카테고리 트리를 톱 레벨 카테고리 트리라 하고, 톱 레벨 카테고리 트리를 관리하는 엔티티를 톱 레벨 카테고리 엔티티(TLCE)라 한다. 도 46에서 A, B, C는 톱 레벨 카테고리이며, 이들을 관리하는 엔티티가 톱 레벨 카테고리 엔티티(TLCE)이다. 톱 레벨 카테고리 엔티티(TLCE)는 기본적으로, 자신의 트리 이하 전체를 관리할 책임이 있다. 즉, 도 46의 트리 C를 관리하는 TLCE는 트리 C와 마찬가지로 트리 D에 관한 관리도 실행한다. D 이 하에 더 하층의 카테고리 트리가 존재하면 그 하층 카테고리 트리 관리도 실행한다. 단, 예를 들면 하층의 카테고리 트리 D를 관리하는 카테고리 엔티티(Sub Category Entity)를 두고, 그 책임과 권리를 위양하는 것도 가능하다.
콘텐츠의 이용을 실행하는 기록 재생 장치 등의 각 디바이스는, 톱 레벨 카테고리 엔티티(TLCE)에 의해 임의의 트리의 리프에 할당되고, 그 리프에서 루트에 이르는 패스 사이의 몇개의 노드 키를 소유한다. 하나의 디바이스가 갖는 노드 키의 조를 디바이스 노드 키(DNK: Device Node Key)라 부른다. 각 디바이스가 몇 개의 키를 갖는지(DNK에 몇 개의 키가 포함되는지)는 톱 레벨 카테고리 엔티티(TLCE)가 결정한다.
도 47은 키 발행 센터(KDC), 톱 레벨 카테고리 엔티티(TLCE), EKB 요청자 각 엔티티의 대응 및 처리의 개요를 설명하는 도면이다.
키 발행 센터(KDC)(4511)는 트리 구성을 이용한 EKB 배신 시스템의 관리 엔티티(4510)로서 위치 부여된다. 관리 엔티티(4510)에는 또한 EKB에 대한 서명 처리를 실행하는 인증국(CA)(4512)이 있다.
키 발행 센터(KDC)(4511)는 톱 레벨 카테고리 트리 등의 서브 트리의 키 관리를 행하고, 후술하는 EKB 타입 정의 리스트의 관리, EKB의 생성을 실행한다. 인증국(CA)(4512)은 키 발행 센터(KDC)가 생성한 EKB에 서명을 실행함과 함께, 서명을 실시한 비밀 키에 대응하는 공개 키를 서명 검증용 키로서 발행한다.
키 발행 센터(KDC)(4511)에 대하여 EKB의 발행 요구를 실행하는 것이 EKB 요청자(4520)이다. EKB 요청자는 예를 들면 콘텐츠를 저장한 CD, DVD 등의 미디어를 제공하는 컨텐츠 저장 미디어에 관한 콘텐츠 프로바이더(CP), 전자 콘텐츠의 배신을 실행하는 콘텐츠 프로바이더(CP), 플래시 메모리 등의 스토리지 시스템의 포맷에 관한 라이센스를 제공하는 스토리지 시스템 라이센서 등이다.
이들 EKB 요청자(4520)는 각각이 제공하는 미디어, 콘텐츠, 라이센스의 사용 시에, 필요로 하는 키를 EKB 처리에 의해 얻어지는 키로서 설정한 EKB를 콘텐츠, 미디어, 라이센스 포맷 등에 대응시켜 제공한다. EKB는 EKB 요청자(4520)로부터 키 발행 센터(KDC)(4511)에 대한 EKB 발행 요구에 따라서 키 발행 센터((KDC)(4511)가 생성한다.
EKB 요청자(4520)는 키 발행 센터(KDC)(4511)에 대한 발행 요구의 결과로서 수령한 EKB를 미디어 제조자(4540), 디바이스 제조자(4550)에 제공하고, EKB를 저장한 미디어 또는 디바이스를 사용자에 공급하는 처리가 가능하다. 이들 EKB는 예를 들면 하나 또는 복수의 카테고리 트리에서 처리 가능한 EKB로서 생성된다.
본 시스템에서는 복수, 예를 들면 2 혹은 3 이상의 카테고리 트리에서 공통으로 처리 가능한 EKB나, 유일한 카테고리 트리에서만 처리 가능한 EKB 등, 다양한 타입의 EKB가 생성되어 사용되는 상황으로 된다. 이러한 다양한 타입의 EKB에 대하여 리스트화한 것이 EKB 타입 정의 리스트이다. EKB 타입 정의 리스트는 키 발행 센터(KDC)가 관리한다. EKB 타입 정의 리스트에 대해서는 후에 상세히 설명한다. EKB 요청자(4520)는 EKB 타입 정의 리스트의 요구를 키 발행 센터(KDC)(4511)에 요구하여 리스트를 취득 가능하며, 또한 리스트의 데이터 변경이 있는 경우에는, 키 발행 센터(KDC)(4511)로부터 EKB 요청자(4520)에 통지된다.
톱 레벨 카테고리 엔티티(TLCE)(4530)는 전술한 바와 같이 루트 트리에 연결되는 카테고리 트리의 관리 엔티티이며, 서브 트리의 키 관리, 관리 디바이스 ID와 각 디바이스에 저장되는 EKB 처리를 위한 노드 키 세트인 디바이스 노드 키(DNK)와의 대응 리스트를 관리한다. 또한, 관리 하의 디바이스에 대응하는 디바이스를 제조하는 디바이스 제조자(4550)에 대하여, 디바이스 저장용의 디바이스 노드 키(DNK)의 생성, 제공 처리를 실행한다.
키 발행 센터(KDC)(4511)가 EKB 요청자(4520)로부터 EKB 발행 요구를 수신하면, 키 발행 센터(KDC)(4511)는 발행 요구에 따른 EKB를 생성한다. 생성하는 EKB가 예를 들면 2개의 톱 레벨 카테고리 트리에서 처리 가능한 EKB인 경우에는, 그 2개의 톱 레벨 카테고리 엔티티(TLCE)(4530)에 서브 EKB의 발행 요구를 송신하고, 서브 EKB의 발행 요구를 수신한 톱 레벨 카테고리 엔티티(TLCE)(4530)는 각각의 카테고리 트리 내의 정당 디바이스가 루트 키 취득 가능한 서브 EKB를 생성하여 키 발행 센터(KDC)(4511)에 송신한다. 키 발행 센터(KDC)(4511)는 TLCE로부터 수신한 하나 또는 복수의 서브 EKB에 기초하여 EKB를 생성한다. 서브 EKB에 기초한 EKB 생성 처리에 대해서는 후에 더 설명한다.
톱 레벨 카테고리 엔티티(TLCE)(4530)는 EKB 요청자(4520)와 마찬가지로 EKB 타입 정의 리스트의 요구를 키 발행 센터(KDC)(4511)에 요구하여 리스트를 취득 가능하다.
톱 레벨 카테고리 엔티티(TLCE)(4530)는 또한, EKB 타입 정의 리스트의 자신의 트리에 대하여 정의된 타입의 삭제 요구를 키 발행 센터(KDC)(4511)에 요구할 수 있다. 예를 들면 다른 카테고리 트리와의 공유 EKB로서 정의된 EKB 타입을 리스트로부터 삭제하는 요구이다. 톱 레벨 카테고리 엔티티(TLCE)(4530)는 또한, 자신이 관리하는 트리에 관한 변경이 있는 경우에는, 변경 정보를 키 발행 센터(KDC)(4511)에 통지한다. 이들 처리에 대해서는 흐름을 참조하여 후에 설명한다.
디바이스 제조자(4550)는 2가지 종류의 디바이스 제조자로 구분된다. 하나는, 제조하는 디바이스에 디바이스 노드 키(DNK)와, EKB의 양 데이터를 저장한 디바이스를 제조하는 DNKE 디바이스 제조자(4551)이며, 다른 하나는, 디바이스에 디바이스 노드 키(DNK)만을 저장한 디바이스를 제조하는 DNK 디바이스 제조자(4552)이다.
도 48은 도 47에 도시한 키 발행 센터(KDC), EKB 요청자, 톱 레벨 카테고리 엔티티(TLCE) 각각의 구성예를 블록도로서 도시한다. 키 발행 센터(KDC)는 EKB 발행 정보 처리 장치, EKB 요청자는 EKB 요구 정보 처리 장치, 톱 레벨 카테고리 엔티티(TLCE)는 카테고리 트리 관리 정보 처리 장치로서, 기본적으로 암호 통신 가능한 데이터 처리 장치로서 구성된다.
각 엔티티를 구성하는 정보 처리 장치는, 각각 다른 엔티티와의 상호 인증, 데이터 통신 시에서의 암호 처리 전반을 담당하는 암호 처리부를 갖는다. 암호 처리부 내의 제어부는 인증 처리, 암호화/복호화 처리 등의 암호 처리 전반에 관한 제어를 실행하는 제어부이다. 내부 메모리는 상호 인증 처리, 암호화, 복호화 처리 등, 각종 처리에서 필요로 하는 키 데이터, 식별 데이터 등을 저장한다. 식별 데이터는 예를 들면 다른 엔티티와의 상호 인증 처리 등에서 이용된다.
암호/복호화부는 내부 메모리에 저장된 키 데이터 등을 사용한 데이터 전송 시의 인증 처리, 암호화 처리, 복호화 처리, 데이터 검증, 난수 발생 등의 처리를 실행한다.
단, EKB 요청자로서의 정보 처리 장치에서는 키의 생성 처리를 자신의 장치 내에서는 실행하지 않는 구성도 가능하다. 이 경우에는, 키의 생성에 필요한 구성 요소, 예를 들면 난수 발생 장치 등을 생략할 수 있게 된다. 구체적으로는, EKB에 포함시키는 루트 키를 스스로 생성하고 생성한 루트 키를 포함하는 EKB의 생성을 키 발행 센터에 요구하는 EKB 요청자로서의 정보 처리 장치는 루트 키를 생성하기 위한 수단을 필요로 하지만, EKB에 포함시키는 루트 키를 스스로 생성하지 않고, 키 발행 센터에 루트 키의 생성 처리를 요구하고, 키 발행 센터(KDC)에서 생성한 루트 키를 포함하는 EKB 생성을 키 발행 센터에 요구하는 EKB 요청자로서의 정보 처리 장치는 난수 발생 장치 등의 키 생성 처리에 따른 구성 요소를 생략할 수 있다.
암호 처리부의 내부 메모리는 암호 키 등의 중요한 정보를 보유하고 있기 때문에, 외부로부터 부정하게 판독하기 어려운 구조로 해 놓을 필요가 있다. 따라서, 암호 처리부는 외부로부터 액세스하기 어려운 구조를 갖는, 예를 들면 반도체 칩으로 구성된 내 탬퍼 메모리로서 구성된다.
각 엔티티는 이들 암호 처리 기능 외에, 중앙 연산 처리 장치(CPU: Central Processing Unit), RAM(Random Access Memory), ROM(Read Only Memory), 입력부, 표시부, 데이터 베이스 I/F, 데이터 베이스를 구비하고 있다.
중앙 연산 처리 장치(CPU: Central Processing Unit), RAM(Random Access Memory), ROM(Read Only Memory)은, 각 엔티티 본체의 제어계로서 기능하는 구성부이다. RAM은 CPU에서의 각종 처리용 주기억 메모리로서 사용되고, CPU에 의한 처리를 위한 작업 영역으로서 사용된다. ROM은 CPU에서의 기동 프로그램 등은 저장한다.
각 엔티티를 구성하는 정보 처리 장치의 데이터 베이스 또는 그 밖의 기억 수단에는, 각각 각 엔티티가 관리하는 데이터, 예를 들면 키 발행 센터(KDC)이면, 발행한 EKB에 관한 관리 데이터, 또한 EKB 타입 정의 리스트 등이 저장되고, 또한 톱 레벨 카테고리 엔티티(TLCE)의 데이터 베이스에는, 관리 디바이스와 디바이스 노드 키(DNK)의 대응 등, 카테고리 트리에 속하는 디바이스의 관리 데이터가 저장되고, EKB 요청자의 데이터 베이스에는, 제공 콘텐츠와 콘텐츠에 대하여 사용되고 있는 EKB와의 관계를 대응시킨 관리 데이터, 콘텐츠의 제공 대상인 디바이스에 관한 관리 데이터 등이 저장된다. 또, EKB 타입 정의 리스트는 EKB 요청자, 톱 레벨 카테고리 엔티티(TLCE)를 구성하는 정보 처리 장치 내에도 저장하여 참조 가능한 상태로 하는 구성이 바람직하다. 혹은, EKB 요청자, 톱 레벨 카테고리 엔티티(TLCE)의 액세스 가능한 키 발행 센터(KDC)가 관리하는 웹(Web) 사이트에 두는 구성으로 하여도 된다.
전술한 바와 같이 디바이스는 EKB 처리(복호)를 위해 디바이스 노드 키(DNK: Device Node Key)를 사용한다. 하나의 디바이스가 갖는 디바이스 노드 키(DNK)에 대하여 도 49를 참조하여 설명한다. 도 49에 도시한 트리는 하나의 카테고리 트리를 나타내고, 최하단이 디바이스가 대응된 리프이며, 예를 들면 톱 레벨 카테고리 엔티티(TLCE)의 관리 트리에 상당한다. 또한, 상단에는 루트 트리(ex. 8단 구성)가 연결되어 있다. 여기서 디바이스는 도 49에 도시한 바와 같이 디바이스로부터 상단에 이르는 패스 상의 노드 키를 갖는다. 이들 키 세트를 디바이스 노드 키(DNK)로서 보유하고, 디바이스 노드 키(DNK)를 이용하여 EKB의 복호를 실행한다.
기본적으로, 하나의 디바이스가 하나의 리프에 겹치지 않도록 할당된다. 예외로서, 예를 들면 PC 소프트 등의 소프트웨어를 리프에 대응시키는 경우에는, 하나의 버전의 소프트웨어 패키지가 전부 하나의 리프에 할당되는 경우도 있다. 이것도 TLCE가 정한다. 즉, 디바이스를 어떻게 리프에 할당하고, 어느 노드 키를 갖게 할지는 TLCE가 정한다.
톱 레벨 카테고리 엔티티(TLCE)는 디바이스 자체의 제공업자(메이커)인 경우도 있고, 제조 디바이스에 대하여 사전에 디바이스 노드 키(DNK)를 저장하여 사용자에게 제공(판매)하는 것이 가능하다. 즉, 기록 재생 장치 등의 디바이스에 대하여 사전에, 임의의 특정한 카테고리의 노드 키의 세트를 디바이스 노드 키(DNK)로서 메모리에 저장하여 사용자에게 제공(판매)하는 것이 가능하다.
(EKB 타입 정의 리스트)
카테고리 단위로의 EKB 배신에 대해서는 이미 설명한 바와 같지만, 복수의 카테고리에 공통의 EKB, 즉 서로 다른 카테고리 트리에 속하는 디바이스에서 처리 가능한 EKB를 생성하여 발행한 경우에는, 몇 가지 문제점이 발생하는 경우가 있다.
예를 들면, 어떤 재기입 가능한 미디어(기록 매체) 예를 들면, 휴대형 플래시 메모리의 포맷의 라이센시(라이센스 수령자)로서, A사와 B사의 서로 다른 2사가 존재하고, 미디어(휴대형 플래시 메모리)의 라이센서(라이센스 허락자)인 메이커가 톱 레벨 카테고리로서 존재하며, 그 아래에 A사가 관리하는 카테고리 트리와 B사가 관리하는 카테고리 트리가 있는 구성에서, A사와 B사는 상호 디바이스에 호환성을 갖게 하고, 다양한 배포 콘텐츠를 공통으로 이용하는 것을 가능하게 하기 위해, A사의 카테고리 트리와 B사의 카테고리 트리의 2개의 카테고리 트리의 소속 디바이스에서 처리(복호) 가능한 EKB를 키 발행 센터(KDC)에서 생성하여 발행한다.
이러한 상황에서 A사가 관리하는 카테고리 트리에 속하는 하나의 디바이스의 디바이스 노드 키(DNK)가 누설되면, 그 디바이스 노드 키(DNK)를 이용하여 A사, B사의 상호 디바이스에서 이용 가능하게 한 배포 콘텐츠가 전부 부정하게 이용될 가능성이 발생한다. 이용을 배제하기 위해서는 리보크 처리로서의 EKB 갱신 처리가 필요하지만, 이 경우, A사의 카테고리 트리에 관한 리보크 처리가 아니라, A사 및 B사의 2개의 카테고리 트리에 공통 EKB가 존재하기 때문에, EKB 갱신 처리는 A사 및 B사의 2개의 카테고리 트리에 대하여 실행할 필요가 있다.
이와 같이, 복수의 카테고리 트리에 공통의 EKB를 생성하여 제공한 경우, 하나의 카테고리 트리 내에서의 리보크 처리, EKB 갱신 처리뿐만 아니라, 공통하는 EKB를 사용하는 모든 다른 카테고리 트리에서 리보크에 따른 EKB 갱신 처리를 실행할 필요가 있다. 이것은 B사에서는 자신이 관리하는 디바이스와 상이한 다른 관리 카테고리 트리의 영향을 받게 되어 처리 부하가 높아지게 된다.
이러한 상황을 해결하기 위해, 복수의 카테고리에서 공통으로 사용 가능한 EKB의 발행 허가 권한을, 각각의 카테고리를 관리하는 카테고리 엔티티가 갖는 구성으로 한다. 즉, 호환성을 취하기 위해서, 상대 카테고리에 속하는 디바이스의 불량에 의해 야기되는 자신의 카테고리 내 디바이스에의 리스크를 허용할 수 있는 경우에만, 호환성을 취하는 EKB의 발행을 인정하고, 리스크를 허용할 수 없는 경우에는, 공통으로 사용 가능한 EKB의 발행 또는 사용을 인정하지 않는 것으로 한다.
이러한 처리를 실행하고자 하면, 복수 예를 들면 2 혹은 3 이상의 카테고리트리에서 공통으로 처리 가능한 EKB나, 유일한 카테고리 트리에서만 처리 가능한 EKB 등, 다양한 타입의 EKB가 생성되어 사용되는 상황으로 된다. 이러한 다양한 타입의 EKB에 대하여 리스트화한 것이 EKB 타입 정의 리스트이다. 도 50에 EKB 타입 정의 리스트의 예를 도시한다. EKB 타입 정의 리스트는 키 발행 센터(KDC)가 기록 매체에 기록하여 관리한다. 또한, EKB 요청자, TLCE에 대해서도 필요에 따라 제공 또는 열람 가능한 상태에 놓인다.
도 50에 도시한 바와 같이, EKB 타입 정의 리스트는 「EKB 타입 식별 번호」,「노드」,「설명」의 각 필드를 갖고, 「EKB 타입 식별 번호」는 EKB 타입 정의 리스트에 리스트업된 다양한 형태의 EKB를 식별하는 번호이며, 식별 번호가 서로 다르면, 그 EKB를 처리 가능한 카테고리 트리 또는 그 조합이 서로 다른 구성으로 되어 있다.
「노드」 필드는 EKB를 적용 가능한 카테고리 트리의 톱 노드 ID를 기록하는 필드이다. 예를 들면 EKB 타입 식별 번호: 1인 EKB는 MS(MemoryStick: 메모리 스 틱)의 카테고리 트리의 톱 노드 ID가 기록된다. 또한, EKB 타입 식별 번호: 3인 EKB는 MS(MemoryStic: 메모리 스틱)의 카테고리 트리의 톱 노드 ID와 PHS의 카테고리 트리의 톱 노드 ID가 기록된다.
「설명」 필드는 EKB 타입 정의 리스트에 리스트업된 다양한 형태의 EKB의 설명을 기록하는 필드이며, 예를 들면 EKB 타입 식별 번호: 1인 EKB는 MS(MemoryStick: 메모리 스틱)용 EKB임을 나타내고 있다. 또한, EKB 타입 식별 번호: 3인 EKB는 MS(MemoryStick: 메모리 스틱)와 PHS의 카테고리 트리의 디바이스에 공통으로 사용 가능한 EKB임을 나타내고 있다.
도 50에 도시한 EKB 타입 정의 리스트는 키 발행 센터(KDC)가 관리한다. 또한, EKB의 처리에 의해 취득 가능한 키에 의해서 암호화한 암호화 키 또는 암호화 콘텐츠 등의 암호화 데이터 배신을 실행하고자 하는 엔티티, 예를 들면 콘텐츠 프로바이더는, 도 50에 도시한 EKB 타입 정의 리스트를 참조하여, 콘텐츠의 제공 대상이 되는 디바이스를 포함하는 카테고리 트리에 의해 처리 가능한 EKB 타입을 선택하고, 그 EKB 타입 식별 번호를 지정하여, 키 발행 센터(KDC)에 EKB 생성 처리를 의뢰한다.
단, EKB 타입 정의 리스트에 대한 다양한 타입의 EKB 등록 처리에서는, 등록 대상이 되는 카테고리 트리의 톱 레벨 카테고리 엔티티(TLCE)의 승인이 필요하게 된다. 예를 들면 카테고리 트리 A의 TLCE-A가 다른 카테고리 트리와 공유하는 EKB의 발행을 거부하면, 카테고리 트리 A와 다른 카테고리 트리의 공유로 되는 EKB의 타입은 EKB 타입 정의 리스트에 등록되지 않는다.
예를 들면 카테고리 트리 A의 TLCE-A, 카테고리 트리 B의 TLCE-B, 카테고리 트리 C의 TLCE-C의 각각이 공유 EKB의 발행을 승인하면, 이들 3개의 카테고리 트리에서 처리 가능한 공통 EKB의 타입이 EKB 타입 정의 리스트에 등록되고, 예를 들면 콘텐츠 프로바이더가 그 등록 타입을 나타내는 EKB 타입 식별 번호를 지정하여 키 발행 센터(KDC)에 EKB 생성 처리를 의뢰하는 것이 가능해진다.
즉, EKB 타입 정의 리스트에 새로운 EKB 타입을 등록하고, 그 EKB 타입에 대응하는 EKB 타입 식별 번호를 정의하기 위해서는 하기의 처리가 필요하다.
(1) 정의하고자 하는 EKB 타입 식별 번호에 대응하는 EKB의 적용 대상이 되는 카테고리를 관리하는 모든 TLCE가 EKB 타입 등록 요구를 키 발행 센터(KDC)로 보낸다.
(2) 키 발행 센터(KDC)는 요구에 어떤 등록 대상이 되는 EKB를 처리 가능한 1 이상의 카테고리 트리의 톱 레벨 카테고리 엔티티(TLCE)의 전부가 상기의 EKB 타입 등록 요구를 전송하여 왔음을 확인한 후에, 새로운 EKB 타입 식별 번호를 정의하여 EKB 타입 정의 리스트에 부가한다.
(3) 키 발행 센터(KDC)는 EKB 타입 정의 리스트에 변경이 있음을 알리기 위해, EKB 타입 정의 리스트 변경 통지를 전체 TLCE 및 EKB 요청자에 보낸다.
또, EKB 타입 정의 리스트는 전체 TLCE 및 EKB 요청자에 보내지고, 또한 웹(Web) 사이트에 놓여지는 등으로 하여 전체 TLCE 및 EKB 요청자에 공개된다. 따라서, TLCE 및 EKB 요청자는 항상 최신의 EKB 타입 정의 리스트에 등록된 EKB 타입 정보를 취득하는 것이 가능해진다.
(EKB 타입 등록 처리)
EKB 타입 정의 리스트에 새로운 EKB 타입을 등록할 때, 키 발행 센터(KDC)가 실행하는 처리를 설명하는 처리 흐름을 도 51에 도시한다. 먼저, 키 발행 센터(KDC)는 새로운 EKB 타입의 등록 요구를 실행하는 TLCE로부터의 EKB 타입 등록 요구를 수신(S101)한다. TLCE로부터의 EKB 타입 등록 요구에는, 등록 요구 EKB가 공통으로 사용 가능하게 하는 카테고리 수가 포함된다. 키 발행 센터(KDC)는 요구 내의 카테고리 수와 일치하는 수의 카테고리에 대응하는 TLCE로부터 같은 EKB 타입 등록 요구를 수령했는지 여부를 판정(S102)하고, 요구 내의 카테고리 수와 일치하는 수의 카테고리에 대응하는 TLCE로부터의 요구를 수리하였음을 조건으로, EKB 타입 정의 리스트에 대하여 요구에 따른 새로운 EKB 타입을 등록하고, 리스트의 갱신 처리, 리스트의 갱신 통지 처리(S103)를 실행한다. 갱신 통지 처리는 TLCE 및 EKB 요청자에 대하여 행해진다.
이와 같이, 키 발행 센터(KDC)는 EKB 타입 정의 리스트에 대한 EKB 타입 식별자의 신규 등록 처리에서, 등록 예정의 EKB 타입의 처리 가능한 카테고리 트리로서 선택된 1 이상의 카테고리 트리를 관리하는 모든 카테고리 엔티티의 승인을 조건으로 등록을 실행한다.
또, 이들 처리에서, 키 발행 센터(KDC)와 TLCE, EKB 요청자 간의 통신에서는 필요에 따라서 상호 인증 처리, 송신 데이터의 암호화 처리가 행해진다. 또한, 그 밖의 메시지 암호화 처리, 디지탈 서명 생성, 검증 처리를 실행하는 구성으로 하여도 된다. 또, 공개 키 암호 방식에 기초하는 인증 혹은 암호 통신을 실행하는 경 우에는, 각 엔티티 간에서 사전에 공개 키를 서로 보유하는 수속을 실행해 둔다.
(EKB 타입 무효화 처리)
예를 들면, 임의의 카테고리에 속하는 모든 기기를 리보크하지 않으면 안될 때에는, 톱 레벨 카테고리 엔티티(TLCE)는 그 카테고리가 요소로 되어 있는 EKB 타입을 무효화하는 요구를 키 배신 센터(KDC)로 보낼 필요가 있다. 또한, 톱 레벨 카테고리 엔티티(TLCE)는 예를 들면 임의의 서비스를 정지하는 등의 이유로, 현재 등록되어 있는 EKB 타입을 무효화하는 요구를 KDC로 내보낼 수 있다.
이 EKB 타입 무효화 처리의 흐름을 도 52의 처리 흐름에 따라 설명한다. 키 발행 센터(KDC)는 EKB 타입의 무효화 요구를 실행하는 TLCE로부터의 EKB 타입 무효화 요구를 수신(S201)한다. TLCE로부터의 EKB 타입 무효화 요구를 수신하면, 키 발행 센터(KDC)는 그 요구에 의해 무효화되는 EKB 타입의 요소로 되어 있는 카테고리를 관리하는 TLCE가 그 요구의 발신자임을 확인한 다음에, EKB 타입 정의 리스트 내의 무효화 요구에서 지정된 타입에 대응하는 EKB 타입 식별 번호를 무효화하고 EKB 타입 정의 리스트를 갱신하고, 리스트의 갱신 통지 처리(S202)를 실행한다. 갱신 통지 처리는 TLCE 및 EKB 요청자에 대하여 행해진다.
이와 같이, 키 발행 센터(KDC)는 EKB 타입 정의 리스트에 등록된 EKB 타입 식별자의 무효화 처리에서, 무효화 예정의 EKB 타입의 처리 가능한 카테고리 트리로서 선택된 1 이상의 카테고리 트리를 관리하는 적어도 하나의 카테고리 엔티티의 무효화 요구를 조건으로 무효화 처리를 행한다. 이 경우, 다른 카테고리 엔티티의 승인은 필요로 하지 않는다.
또, 이들 처리에서, 키 발행 센터(KDC)와 TLCE, EKB 요청자 간의 통신에서는 필요에 따라서 상호 인증 처리, 송신 데이터의 암호화 처리가 행해진다. 또한, 그 밖의 메시지 암호화 처리, 디지탈 서명 생성, 검증 처리를 실행하는 구성으로 하여도 된다. 또, 공개 키 암호 방식에 기초하는 인증 혹은 암호 통신을 실행하는 경우에는, 각 엔티티 간에서 사전에 공개 키를 서로 보유하는 수속을 실행해 둔다.
(EKB 타입 정의 리스트 변경 통지 처리)
예를 들면 임의의 카테고리 트리 내에서, 디바이스 리보케이션(디바이스 배제)이나, 임의의 디바이스가 저장한 DNK를 새로운 것으로 교환하는 디바이스 노드 키(DNK)의 갱신 등의 트리 내의 상태를 변화시키는 처리를 그 카테고리 트리를 관리하는 TLCE가 행한 경우, 그들 디바이스를 대상으로 하는 EKB를 사용하고 있는 EKB 요청자 또는 관련 TLCE에, 이들 처리가 일어났음을 알릴 필요가 있다.
왜냐하면, 디바이스 리보케이션이 일어났는데도 그것을 알리지 않고, 콘텐츠 프로바이더(CP)가 오래된 EKB를 계속 사용하여 콘텐츠를 암호화하여 배신하였다고하면, 오래된 EKB에서는 리보크된 디바이스에서도 EKB 처리(복호)가 가능하며, 콘텐츠의 부정 이용이 계속될 가능성이 있기 때문이다. 또한, 디바이스 노드 키(DNK)의 갱신을 실행한 경우, 통상은 치환된 오래된 DNK는 버려지고, 디바이스는 새로운 DNK를 갖게 되지만, 이 새로운 DNK에 대응한 EKB를 콘텐츠 프로바이더가 사용하지 않으면, 새로운 DNK를 갖는 디바이스는 EKB를 처리(복호)할 수 없게 되어, 콘텐츠에 액세스할 수 없게 되기 때문이다.
이러한 폐해를 방지하기 위해서,
* 디바이스 리보케이션 등의 결과로서, EKB의 태그 파트에 변경이 생긴 경우,
* 디바이스 노드 키(DNK)의 갱신 등의 결과로서 적어도 하나의 기기가 갖는 DNK의 값에 변경이 생긴 경우,
이들 경우에는 TLCE는 트리 변경 통지(Tree Change Notification)를 키 발행 센터(KDC)로 보낼 필요가 있다. 트리 변경 통지(Tree Change Notification)에는 변경이 필요한 EKB 타입 정의 리스트에 등록이 완료된 EKB 타입 식별 번호, EKB 타입 식별 번호에 대응하여 등록되어 있는 어느 카테고리에서 일어났는지를 나타내는 정보와, 리보케이션, DNK 갱신의 무엇이 일어났는지를 나타내는 정보가 포함된다.
EKB 타입 정의 리스트 변경 통지 처리의 흐름을 도 53의 처리 흐름에 따라 설명한다. 키 발행 센터(KDC)는 TLCE로부터 트리 변경 통지를 수신(S301)한다. TLCE로부터의 트리 변경 통지를 수신하면, 키 발행 센터(KDC)는 EKB 타입 정의 리스트로부터, 그 카테고리를 요소로 갖는 EKB 타입 식별 번호를 추출하고, 어느 EKB 타입 식별 번호에, 어떠한 변화(ex. 리보케이션인지, DNK 갱신(replacement)인지)가 일어났는지의 정보를 갖는 EKB 타입 정의 리스트 변경 통지를 모든 TLCE 및 EKB 요청자에 대하여 실행한다. 또, 이들 처리에서, 키 발행 센터(KDC)와 TLCE, EKB 요청자 간의 통신에서는 필요에 따라서 상호 인증 처리, 송신 데이터의 암호화 처리가 행해진다. 또한, 그 밖의 메시지 암호화 처리, 디지탈 서명 생성, 검증 처리를 실행하는 구성으로 하여도 된다. 또, 공개 키 암호 방식에 기초하는 인증 혹은 암호 통신을 실행하는 경우에는, 각 엔티티 간에서 사전에 공개 키를 서로 보유하 는 수속을 실행해 둔다.
(EKB 타입 정의 리스트 요구)
톱 레벨 카테고리 엔티티(TLCE)나 TLCE 이외의 서브 카테고리 엔티티(SCE), 혹은 콘텐츠 프로바이더 등의 EKB 요청자는, 최신판의 EKB 타입 정의 리스트를 알기 위해, EKB 타입 정의 리스트의 송부를 키 발행 센터(KDC)에 요구할 수 있다. 키 발행 센터(KDC)는 이 요구에 대하여, 최신판의 EKB 타입 정의 리스트를 요구자에 돌려보낸다.
EKB 타입 정의 리스트 요구 처리의 흐름을 도 54의 처리 흐름에 따라 설명한다. 키 발행 센터(KDC)는 TLCE, 서브 카테고리 엔티티, 또는 EKB 요청자 중 어느 하나로부터 EKB 타입 정의 리스트 요구를 수신(S401)한다. EKB 타입 정의 리스트 요구를 수신하면, 키 발행 센터(KDC)는 최신의 EKB 타입 정의 리스트를 추출하고, 요구 처리를 행한 엔티티에 대하여 최신의 EKB 타입 정의 리스트를 송신(S402)한다. 또, 이들 처리에 있어서, 키 발행 센터(KDC)와 TLCE, 서브 카테고리 엔티티, EKB 요청자 간의 통신에서는 필요에 따라서 상호 인증 처리, 송신 데이터의 암호화 처리가 행해진다. 또한, 그 밖의 메시지 암호화 처리, 디지탈 서명 생성, 검증 처리를 실행하는 구성으로 하여도 된다. 또, 공개 키 암호 방식에 기초한 인증 혹은 암호 통신을 실행하는 경우에는, 각 엔티티 간에서 미리 공개 키를 서로 보유하는 수속을 실행해 둔다.
(EKB 발행 처리)
EKB의 발행 처리는 EKB 요청자에 의한 EKB 발행 요구에 기초하여 행해진다. EKB 요청자는,
[a] CD, DVD 등의, 콘텐츠 저장 미디어를 제공하는 콘텐츠 프로바이더(CP),
[b] 전자 정보 배신(ECD: Electronic Content Distribution) 서비스를 제공하는 콘텐츠 프로바이더,
[c] 기록 시스템의 포맷 홀더,
등, EKB의 복호에 의해 취득되는 키를 이용하여 콘텐츠의 이용, 포맷의 사용을 가능하게 하는 서비스, 미디어, 디바이스를 제공하는 엔티티이다.
상기 [c] 기록 시스템의 포맷 홀더에는,
[c1] 예를 들면 제조 시에 기록 매체에 EKB를 저장하는 포맷에서, 기록 매체의 제조업체에서 취득한 EKB를 부여하는 포맷 홀더,
[c2] 예를 들면 제조 시에 기록 디바이스에 EKB를 저장하는 포맷에서, 기록 디바이스의 제조업체에서 취득한 EKB를 부여하는 포맷 홀더,
의 2종류의 포맷 홀더가 있다.
EKB 발행 처리의 순서에 대하여 이하에 설명한다.
(1) 콘텐츠 키의 작성
먼저, 콘텐츠 프로바이더 등의 EKB 요청자는, 자기가 제공하는 콘텐츠, 디바이스, 미디어에 대응하여 사용되는 콘텐츠 키를 생성한다.
예를 들면 EKB 요청자가,
[a] CD, DVD 등의, 콘텐츠 저장 미디어를 제공하는 콘텐츠 프로바이더(CP),
[b] 전자 정보 배신(ECD: Electronic Content Distribution) 서비스를 제공 하는 콘텐츠 프로바이더,
인 경우,
생성하는 콘텐츠 키는 미디어 상이나 전자 정보 배신(ECD) 서비스에서, 콘텐츠를 보호하는(암호화하는) 키로서 사용된다.
또한, EKB 요청자가,
[c1] 제조 시에 기록 매체에 EKB를 저장하는 포맷에서, 기록 매체의 제조업체에 취득한 EKB를 부여하는 포맷 홀더,
인 경우, 콘텐츠 키는 그 기록 매체 상에 기록되는 콘텐츠를 보호하는(암호화하는) 키로서 사용된다.
또한, EKB 요청자가,
[c2] 제조 시에 기록 디바이스에 EKB를 저장하는 포맷에서, 기록 디바이스의 제조업체에 취득한 EKR을 부여하는 포맷 홀더,
인 경우, 콘텐츠 키는 그 기록 디바이스를 이용하여 기록되는 콘텐츠를 보호하는(암호화하는) 키로서 사용된다.
또, 콘텐츠 키를 이용하여 콘텐츠를 보호하기 위한 암호 알고리즘 등의 메카니즘은 각 포맷별로 임의로 정할 수 있다.
(2) 루트 키의 생성
EKB 요청자는 EKB의 복호 처리에 의해 취득 가능한 루트 키를 생성한다. 또, EKB 요청자는 스스로 루트 키를 생성하지 않고, 키 발행 센터(KDC)에 생성을 의뢰하여도 된다. 루트 키는 콘텐츠 키를 보호(암호화)하기 위해 사용된다. 또 루트 키를 이용하여 콘텐츠 키를 보호하기 위한 암호 알고리즘 등의 메카니즘은 각 포맷별로 임의로 정할 수 있다.
(3) EKB 발행 요구
EKB 요청자는 EKB의 발행 요구를 키 발행 센터(KDC)로 보낸다.
이 요청에는 상기의 루트 키 및, EKB에 의해 루트 키를 어느 카테고리의 기기에 보낼 것인가 라는, EKB 타입 정의 리스트에 등록되어 있는 EKB 타입 식별 번호의 하나가 포함된다. EKB 요청자는 자신의 장치의 기억 수단에 저장한 EKB 타입 정의 리스트, 혹은 네트워크 상의 열람 가능 사이트로부터 취득한 EKB 타입 정의 리스트에 기초하여 콘텐츠 제공 등의 서비스를 제공하는 대상이 되는 디바이스를 포함하는 카테고리로 이루어지는 EKB 타입을 선택하여, 선택한 EKB 타입을 나타내는 EKB 타입 식별 번호를 EKB 발행 요구 중에 포함시켜 키 발행 센터(KDC)로 송신한다.
(4) EKB 발행 처리
키 발행 센터(KDC)는 EKB 요청자로부터의 EKB 발행 요구에 기초하여, EKB 발행 요구 중에 루트 키가 포함되어 있는 경우에는, 그 루트 키를 포함하는 EKB의 생성을 행하고, EKB 발행 요구 중에 루트 키가 포함되지 않고, 루트 키 생성 처리 의뢰가 이루어진 경우에는, KDC가 루트 키를 생성하고, 생성 루트 키를 포함하는 EKB를 생성하여 EKB 요청자에 송신한다.
키 발행 센터가 생성하는 EKB는 단일 카테고리 트리에서 처리 가능한 EKB인 경우와, 복수의 카테고리 트리에서 공통으로 처리 가능한 EKB인 경우가 있다. 키 발행 센터(KDC)는 EKB 발행 요구에 포함되는 EKB 타입 식별 번호에 기초하여, 그 EKB 타입 식별 번호의 구성 요소로 되어 있는 카테고리, 즉 EKB 타입 정의 리스트에 있어서, 지정된 EKB 타입 식별 번호의 노드 필드에 기록된 노드를 추출한다. 노드 필드에는 카테고리 트리의 톱 노드 ID가 기록되어 있다. 이것은 그 카테고리 트리의 관리 엔티티에 대응하는 노드 ID이다. 이 노드 ID에 기초하여, 카테고리 트리의 관리 엔티티인 톱 레벨 카테고리 엔티티(TLCE)에 대하여 서브 EKB의 발행 요구를 한다. 서브 EKB의 발행 요구에는 루트 키와, 각 카테고리를 나타내는 정보가 포함된다.
키 발행 센터(KDC)로부터 서브 EKB 발행 요구를 받은 TLCE는, 지정된 하나 이상의 카테고리 내의 (리보크되어 있지 않는) 각 기기로부터, 최종적으로 루트 키를 얻을 수 있는 구성을 갖는 서브 EKB를 생성하여 키 발행 센터(KDC)에 송신한다.
톱 레벨 카테고리 엔티티(TLCE)가 생성하는 서브 EKB는 버전 번호나 그 검증용의 정보(Version Check Value)를 갖지 않는 것 외에는, 통상의 EKB(도 6참조)와 동일 구조를 갖는 정보의 조이다. 여기서, 서브 EKB에서의 리프 키나 노드 키를 이용하여 상위의 노드 키나 루트 키를 암호화하는 알고리즘이나 키 길이, 모드는 서브 EKB를 생성하는 각 TLCE(포맷 홀더)마다 임의로 정할 수 있다. 이것에 의해, 다른 포맷과는 별개의 독자적인 보안 방식을 이용할 수 있다. 또한, 디폴트로서 예를 들면 암호 알고리즘을 FIPS46-2의 트리플 DES(Triple-DES)로 정해 놓고, 이것에 이의가 없는 TLCE는 트리플 DES 알고리즘을 적용하는 구성으로 하여도 된다. TLCE가 임의로 암호 알고리즘이나 키 길이를 정하는 경우에도, 별도의 TLCE가 만든 서브 EKB와 합성된 EKB를, 다른 TLCE의 지배 하에 있는 기기로도 처리할 수 있도록, 하나 하나의 (암호화된) 키는 소정 길이, 예를 들면 16바이트(16Byte)의 데이터로 나타낸다고 정한다. 이와 같이 복수의 카테고리 트리로 공통의 EKB를 생성하는 경우에 소정의 룰에 따라 데이터를 설정함으로써, 서로 다른 카테고리 트리의 각 기기는 EKB의 태그를 검색하여 자신이 몇 번째의 키 데이터가 필요한지를 판단 가능하게 된다. 즉 EKB 내에 포함되는 키 데이터의 각각이 16바이트이면, 자 디바이스에서 처리 가능한 키 데이터를 순차적으로 추출하여 처리하는 것이 가능해져, 최종적으로 루트 키를 취득하는 것이 가능해진다.
즉, 서브 EKB에 기초하여 생성되는 합성 EKB는 복수의 키 데이터의 각각이 고정 길이의 데이터 필드 내에 저장된 구성을 갖는다. 따라서, 각각 독자의 알고리즘, 독자의 키 데이터 길이를 갖는 서브 유효화 키 블록(서브 EKB)에 기초하여 생성되는 합성 EKB는, 서브 EKB 내의 복수의 암호화 키 데이터를 키 트리에서의 노드 또는 리프 위치에 따라 재배열하여 생성되더라도, EKB의 태그를 검색하여 필요한 키 데이터를 순차적으로 취득 가능하게 된다. 이러한 합성 EKB는 네트워크를 통하거나 혹은 다양한 기록 매체에 저장하여, 사용자(디바이스)에게 배신 또는 제공된다.
키 발행 센터(KDC)는 TLCE로부터 전송된 서브 EKB를 필요에 따라 재조립, 합성하고, 버전 번호와 그 검증용의 정보를 부가하여 합성한 합성 EKB를 완성시켜 EKB 요청자에 송신한다. 다만, 공개 키 암호 기술을 이용한 디지탈 서명은 키 발행 센터(KDC)와는 별도의 인증국(CA: Certificate Authority)에 의뢰하는 경우도 있다.
서브 EKB의 생성, 서브 EKB로부터 합성 EKB의 생성에 대하여 도면을 참조하여 설명한다. 도 55는 카테고리 트리 A(5100)와 카테고리 트리 B(5200)에 공통인 합성 EKB를 생성하는 처리에서, 카테고리 트리 A(5100)의 TLCE가 생성하는 서브 EKB-(A)의 구성을 설명하는 도면이다. 서브 EKB-(A)는 카테고리 트리 A(5100)의 각 디바이스가 루트 키를 취득 가능한 EKB로서 생성된다. 또, 도면에서 루트 트리 영역(5300)은 상술한 설명에서는 8단 구성으로 하여 설명하였지만, 여기서는 설명을 간략화하기 위해 2단 구성으로 하고 있다.
도 55에서, 트리 구성 내에 기재된 밑줄을 친 3자릿수의 수치[XXX]는 EKB 내의 태그(e, l, r)를 나타내고, 전술(도 26, 도 27 참조)한 바와 같이, e=1은 데이터 있음, e=0은 데이터 없음을 나타내고, l=1은 좌측에 가지 없음, l=O은 좌측에 가지 있음을 나타내며, r=1은 우측에 가지 없음, r=0은 우측에 가지 있음을 나타내고 있다.
도 55의 카테고리 트리 A(5100)의 각 디바이스(리프)가 루트 키를 취득하기 위해서는, 각 리프가 공통으로 저장하고 있는 노드 키에 의해 루트 키를 암호화한 데이터를 저장한 EKB를 생성하면 된다. 각 디바이스는 도 55의 카테고리 트리 A(5100)의 디바이스 노드 키(DNK) 영역(5120)의 트리의 각 패스의 노드 키를 보유하고 있기 때문에, DNK 영역(5120)의 최상단 노드 키로 루트 키를 암호화한 EKB를 생성하면 된다.
따라서, 카테고리 트리 A(5100)의 TLCE가 생성하는 서브 EKB-(A)는, 태그 파 트: 101, 010, 000, 111, 111, 키 파트: Enc(K010, Kroot), Enc(K011, Kroot)로 되는 서브 EKB-(A)가 된다. 카테고리 트리 A(5100)의 TLCE는 이 서브 EKB-(A)를 키 발행 센터(KDC)에 송신한다.
다음에, 카테고리 트리 B(5200)가 생성하는 서브 EKB-(B)에 대하여 도 56을 참조하여 설명한다. 카테고리 트리 B(5200)의 각 디바이스(리프)가 루트 키를 취득하기 위해서는, 각 리프가 공통으로 저장하고 있는 노드 키에 의해 루트 키를 암호화한 데이터를 저장한 EKB를 생성하면 된다. 각 디바이스는 도 56의 카테고리 트리 B(5200)의 디바이스 노드 키(DNK) 영역(5220)의 트리의 각 패스의 노드 키를 보유하고 있기 때문에, DNK 영역(5220)의 최상단 노드 키로 루트 키를 암호화한 EKB를 생성하면 된다.
따라서, 카테고리 트리 B(5200)의 TLCE가 생성하는 서브 EKB-(B)는, 태그 파트: 110, 010, 000, 111, 111, 키 파트: Enc(K110, Kroot), Enc(K111, Kroot)로 되는 서브 EKB-(B)가 된다. 카테고리 트리 B(5200)의 TLCE는 이 서브 EKB-(B)를 키 발행 센터(KDC)에 송신한다.
키 발행 센터는 각 TLCE가 생성한 서브 EKB-(A)와 서브 EKB-(B)로부터 합성 EKB를 생성한다. 합성 EKB의 생성에 대하여 도 57을 참조하여 설명한다. 합성 EKB는 카테고리 트리 A(5100), 및 카테고리 트리 B(5200)의 각 트리에 속하는 디바이스가 루트 키를 취득 가능하게 한 EKB로서 구성된다. 기본적으로는, 수령한 복수의 서브 EKB의 키 데이터 배열을 혼합하여 트리 상단부터 맞추는 작업에 의해 합성 EKB가 생성된다. 또, 동일 단에서는 좌측을 선두로 하는 데이터 배열을 실행한 다.
이 결과, 합성 EKB는 태그 파트: 100, 010, 010, 000, 000, 111, 111, 111, 111, 키 파트: Enc(K010, Kroot), Enc(K011, Kroot), Enc(K110, Kroot), Enc(K111, Kroot)를 갖는 EKB로서 생성된다. 각 키 파트의 키 데이터는 전술한 바와 같이 각각 예를 들면 16바이트로서 설정함으로써, 각 카테고리 트리 내의 디바이스는 자디바이스에서 처리 가능한 키 데이터 위치를 검출 가능하기 때문에, 합성 EKB로부터 루트 키를 취득하는 것이 가능해진다.
이상은, 어떠한 카테고리 트리에도 리보크된 디바이스가 없는 경우의 서브 EKB의 생성 및 합성 EKB의 생성 처리 구성이지만, 다음에, 리보크 디바이스가 있는 경우의 서브 EKB의 생성 및 합성 EKB의 생성에 대하여 설명한다.
도 58은 카테고리 트리 A(5100)에 리보크 디바이스(01101)(5150)가 존재하는 경우의 서브 EKB의 생성에 대하여 설명하는 도면이다. 이 경우의 서브 EKB는 리보크 디바이스(01101)(5150)만을 처리할 수 없는 EKB-(A')로서 생성된다.
이 경우, 도면에서 굵은 선으로 나타낸 패스를 접속한 키 데이터 구성을 갖는 서브 EKB를 생성하게 된다. 따라서, 카테고리 트리 A(5100)의 TLCE가 생성하는 서브 EKB-(A')는, 태그 파트: 101, 010, 000, 111, 000, 001, 111, 111, 키 파트: Enc(K010, Kroot), Enc(K0111, Kroot), Enc(K01100, Kroot)로 되는 서브 EKB-(A')가 된다. 카테고리 트리 A(5100)의 TLCE는 이 서브 EKB-(A')를 키 발행 센터(KDC)에 송신한다.
키 발행 센터는 각 TLCE가 생성한 서브 EKB-(A')와, 리보트 디바이스가 없는 카테고리 트리 B(5200)의 TLCE로부터 수령한 서브 EKB-(B)(도 56 참조)로부터 합성 EKB를 생성한다. 합성 EKB의 생성에 대하여 도 59를 참조하여 설명한다. 합성 EKB는 카테고리 트리 A(5100)의 리보크 디바이스(01101)(5150)를 제외한 디바이스, 및 카테고리 트리 B(5200)의 트리에 속하는 디바이스가 루트 키를 취득 가능하게 한 EKB로서 구성된다. 기본적으로는, 수령한 복수의 서브 EKB의 키 데이터 배열을 혼합하여 트리 상단부터 맞추는 작업에 의해 합성 EKB가 생성된다. 또, 동일 단에서는 좌측을 선두로 하는 데이터 배열을 행한다.
이 결과, 합성 EKB는 태그 파트: 100, 010, 010, 000, 000, 111, 000, 111, 111, 001, 111, 111, 키 파트: Enc(K010, Kroot), Enc(K110, Kroot), Enc(K111, Kroot), Enc(K0111, Kroot), Enc(K01100, Kroot)를 갖는 EKB로서 생성된다. 이 합성 EKB는 카테고리 트리 A(5100)의 리보크 디바이스(01101)(5150)를 제외한 디바이스, 및 카테고리 트리 B(5200)의 트리에 속하는 디바이스가 루트 키를 취득 가능한 EKB이다.
(5) EKB의 이용
상술한 바와 같이 처리에 의해 키 발행 센터(KDC)가 생성한 EKB는 EKB 요청자에 송신된다.
예를 들면 EKB 요청자가,
[a] CD, DVD 등의, 콘텐츠 저장 미디어를 제공하는 콘텐츠 프로바이더(CP),
[b] 전자 정보 배신(ECD: Electronic Content Distribution) 서비스를 제공하는 콘텐츠 프로바이더,
인 경우,
EKB에 의해 취득 가능한 루트 키로 콘텐츠 키를 암호화하고, 콘텐츠 키로 사용자 디바이스에 제공하는 콘텐츠를 암호화하여 컨텐츠를 유통시키게 된다. 이 구성에 의해, EKB가 처리 가능한 특정 카테고리 트리에 속하는 디바이스만이 컨텐츠 이용이 가능해진다.
또한, EKB 요청자가,
[c1] 제조 시에 기록 매체에 EKB를 저장하도록 하는 포맷에서, 기록 매체의 제조업체에서 취득한 EKB를 부여하는 포맷 홀더,
인 경우, 생성한 EKB, 루트 키로 암호화한 콘텐츠 키를 기록 매체 제조업체에 제공하고, EKB 및 루트 키로 암호화한 콘텐츠 키를 저장한 기록 매체를 제조, 혹은 스스로 기록 매체를 제조하여 유통시킨다. 이 구성에 의해, EKB가 처리 가능한 특정 카테고리 트리에 속하는 디바이스만이 기록 매체의 EKB를 이용한 콘텐츠 기록 재생 시의 암호화 처리, 복호 처리가 가능해진다.
또한, EKB 요청자가,
[c2] 제조 시에 기록 디바이스에 EKB를 저장하도록 하는 포맷에서, 기록 디바이스의 제조업체에 취득한 EKB를 부여하는 포맷 홀더,
인 경우, 생성한 EKB, 루트 키로 암호화한 콘텐츠 키를 기록 디바이스 제조업자에 제공하고, EKB 및 루트 키로 암호화한 콘텐츠 키를 저장한 기록 디바이스를 제조, 혹은 스스로 기록 디바이스를 제조하여 유통시킨다. 이 구성에 의해, EKB가 처리 가능한 특정 카테고리 트리에 속하는 디바이스만이 EKB를 이용한 콘텐츠 기록 재생 시의 암호화 처리, 복호 처리가 가능해진다.
이상과 같은 처리에 의해 EKB가 발행되게 된다. 또, EKB 발행 처리 프로세스에서의 각 엔티티, EKB 요청자, 키 발행 센터(KDC), TLCE 간의 통신에서는 필요에 따라 상호 인증 처리, 송신 데이터의 암호화 처리가 행해진다. 또한, 그 밖의 메시지 암호화 처리, 디지탈 서명 생성, 검증 처리를 실행하는 구성으로 하여도 된다. 또, 공개 키 암호 방식에 기초한 인증 혹은 암호 통신을 실행하는 경우에는, 각 엔티티 간에서 미리 공개 키를 서로 보유하는 수속을 실행하여 둔다.
(서브 EKB의 단순 집합을 합성 EKB로 하는 구성예)
상술한 서브 EKB로부터 합성 EKB를 생성하는 처리에서는, 개개의 서브 EKB에 포함되는 암호화 키 데이터의 배열을 전체 트리의 상단으로부터 하단에 이르도록 재배열하는 처리를 실행하였다. 다음에, 이러한 재배열 처리를 실행하지 않고, 각 카테고리 트리의 TLCE가 생성한 서브 EKB를 그대로 합성 EKB에 순차적으로 저장하여 합성 EKB를 생성하는 구성에 대하여 설명한다.
도 60은 복수의 카테고리 트리의 TLCE가 생성한 서브 EKB를 그대로의 형태로 복수 저장한 합성 EKB(6000)의 예를 도시한 도면이다.
EKB의 발행 처리에서, 키 발행 센터(KDC)는 EKB 요청자에 의해 지정된 EKB 타입 식별 번호에 대응하여 EKB 타입 정의 리스트에 기록된 카테고리 트리의 관리 엔티티인 TLCE에 대하여 서브 EKB의 생성 요구를 발행하고, 각 TLCE로부터 제출된 서브 EKB(6110, 6120, …)를 단순히 모아서 합성 EKB 내에 저장한다. 단지 각 카테고리에 속하는 기기가 그 합성 EKB 중에서 그 기기가 처리 가능한 자 디바이스가 속하는 카테고리에 대응하는 서브 EKB를 선택할 수 있도록, 각 서브 EKB 부분의 크기(ex. 데이터 길이)(6111), 그 서브 EKB가 어느 카테고리용의 것인지를 나타내는 데이터(ex. 노드 ID)(6112)를 부가한다.
즉, 저장 대상으로서 선택된 서브 EKB의 각각에는, 서브 EKB 저장 영역의 데이터 길이를 나타내는 길이, 및 서브 EKB 식별 데이터로서의 각 서브 EKB의 대응 카테고리 트리의 노드 식별자로서의 노드 ID가 대응되어 저장된다. 또한 합성 EKB에 포함되는 서브 EKB의 수가 헤더 정보(6200)로서 부가된다. 합성 EKB의 전체 데이터에 기초하여 서명(ex. 인증국(CA)의 서명)(6300)이 생성되어 부가된다.
본 방식에 따라서, 전술한 도 57을 참조한 설명에 대응하는 합성 EKB를 생성하면, 도 61에 도시한 바와 같은 합성 EKB가 생성되게 된다. 서브 EKB(6110)의 저장 EKB는 도 55에서 설명한 카테고리 트리 A의 TLCE가 생성한 서브 EKB-(A) 그 자체이며, 태그 파트: 101, 010, 000, 111, 111, 키 파트: Enc(K010, Kroot), Enc(K011, Kroot)로 된다. 또한, 서브 EKB(6120)의 저장 EKB는 도 56에서 설명한 카테고리 트리 B의 TLCE가 생성한 서브 EKB-(B) 그 자체이며, 태그 파트: 110, 010, 000, 111, 111, 키 파트: Enc(K110, Kroot), Enc(K111, Kroot)로 된다.
또한, 전술한 도 58, 도 59를 참조하여 설명한 리보크 디바이스가 있는 경우의 합성 EKB는 도 62에 도시한 데이터 구성이 된다. 서브 EKB(6110)의 저장 EKB는 도 58에서 설명한 카테고리 트리 A의 TLCE가 생성한 서브 EKB-(A') 그 자체이며, 서브 EKB-(A')는 태그 파트: 101, 010, 000, 111, 000, 001, 111, 111, 키 파트: Enc(K010, Kroot), Enc(K0111, Kroot), Enc(K01100, Kroot)로 된다. 또한, 리보크 디바이스가 발생하지 않은 서브 EKB(6120)의 저장 EKB는, 도 56에서 설명한 카테고리 트리 B의 TLCE가 생성한 서브 EKB-(B) 그 자체이며, 태그 파트: 110, 010, 000, 111, 111, 키 파트: Enc(K110, Kroot), Enc(K111, Kroot)로 된다.
이러한 구성을 취함으로써, 각 카테고리에 속하는 디바이스는 자기의 디바이스가 속하는 카테고리에 대응하는 서브 EKB를 선택하여 처리(복호)하는 것이 가능해진다. 따라서, 각 카테고리(TLCE)마다 완전히 임의의 암호 알고리즘이나 키 길이를 이용하여 서브 EKB를 생성할 수 있다. 즉, 다른 카테고리에 좌우되지 않고, TLCE가 암호 알고리즘이나 키 길이를 정할 수 있다.
키 발행 센터(KDC)에서는 각 TLCE로부터 모은 서브 EKB의 태그, 및 키 데이터 부분을 분해, 재구성하지 않아도 되어 부하가 경감된다.
이러한 방식에 따른 EKB를 입수한 기기는 자신이 속하는 카테고리의 서브 EKB를 발견하고, 그것을, 자 디바이스를 관리하는 TLCE가 정하는 독자의 방법으로 처리함으로써 루트 키를 얻을 수 있다. 다른 서브 EKB를 처리하기 위한, 다른 카테고리의 TLCE가 정한 방법은 알 필요가 없으며, 또한 서브 EKB에서 개개의 키를 고정 길이로 나타내는 등의 연구가 불필요하기 때문에, 이론적으로는 어떤 크기의 키이더라도 이용할 수 있게 된다.
(리보케이션 처리-(1))
복수 카테고리에서 공통으로 사용 가능한 EKB를 이용한 처리에서의 리보크 발생 시에 실행되는 처리에 대하여 이하에 설명한다. 암호화 콘텐츠를 네트워크 또는 미디어에 의해 외부로부터 수령하여 EKB에 의해 취득한 키를 이용하여 콘텐츠 키를 취득하여 콘텐츠 이용을 실행하는 경우의 리보크 처리에 대하여 먼저 설명한다.
도 63을 참조하면서 설명한다. 카테고리 트리 A(7100)와 카테고리 트리 B(7200)에서 공통으로 사용되는 EKB(7000)가 이용되고 있는 상황을 상정한다. 또한, 카테고리 트리 A(7100)와 카테고리 트리 B(7200)에서 공통으로 사용되는 EKB(7000)는 EKB 타입 정의 리스트에서는, EKB 타입 식별 번호가 #1로 정의되어 있는 것으로 한다.
이러한 상황에서, 콘텐츠 프로바이더는 네트워크 또는 미디어에 의해 콘텐츠 키로 암호화한 콘텐츠를 제공하고, 카테고리 트리 A(7100)와 카테고리 트리 B(7200)에 속하는 디바이스는, EKB(7000)를 이용하여 루트 키의 취득, 루트 키에 의한 복호 처리에 의한 콘텐츠 키의 취득, 콘텐츠 키에 의한 암호화 콘텐츠의 취득을 실행하여 콘텐츠를 이용하고 있다.
이 상황에서 카테고리 트리 A(7100)에 속하는 디바이스 A1(7120)의 키 데이터의 누설 등 부정 처리 가능한 상황이 발각되어, 디바이스 A1(7120)의 리보크를 실행하는 것으로 한다.
이 경우, 카테고리 트리 A(7100)의 TLCE는 키 발행 센터(KDC)에 대하여 트리 변경 통지(도 53참조)를 실행하고, 키 발행 센터(KDC)는 수신한 트리 변경 통지에 기초하여 관리하의 각 TLCE, EKB 요청자에 통지한다. 이 시점의 통지는 트리 변경 통지를 수령한 것을 알릴 뿐이며, EKB 타입 정의 리스트의 갱신 처리는 실행되지 않는다.
또, 리보크 발생에 기초한 트리 변경 통지는, 리보크가 발생한 카테고리 트리에서 처리 가능한 EKB를 이용하고 있는 엔티티로서의 EKB 요청자에 대해서만, 혹은 리보크가 발생한 카테고리 트리와 공유 EKB가 적용되어 있는 다른 카테고리 트리를 관리하는 카테고리 엔티티에 대해서만 실행하는 구성으로 하여도 된다. 이 처리를 실행하기 위해, 키 발행 센터(KDC)는 발행된 EKB의 이용자 리스트로서, EKB 타입 식별 번호와 그 EKB 타입을 이용하고 있는 EKB 요청자를 대응시킨 리스트를 보유한다.
리보크 처리를 실행한 카테고리 트리의 디바이스를 대상으로 하여 컨텐츠의 배신을 실행하고 있는 EKB 요청자로서의 콘텐츠 프로바이더는, 리보크 처리 대상 이외의 디바이스에서만 처리 가능한 갱신된 EKB를 생성하도록 키 발행 센터(KDC)에 대하여 EKB 발행 요구를 실행한다. 이 경우, EKB 요청자로서의 콘텐츠 프로바이더는, 카테고리 트리 A(7100)와 카테고리 트리 B(7200)에서 공통으로 사용되는 EKB의 타입으로서 정의되어 있는 EKB 타입 식별 번호 #1을 지정한다. 또한, 새로운 루트 키를 EKB 요청자 스스로 생성하여 KDC에 송부한다든가, 혹은 새로운 루트 키의 생성을 KDC에 의뢰한다.
키 발행 센터(KDC)는 지정된 EKB 타입 식별 번호 #1에 기초하여 EKB 타입 정의 리스트를 참조하고, 대응하는 카테고리 트리의 노드에 기초하여 카테고리 트리 A(7100)와 카테고리 트리 B(7200)의 TLCE에 대하여 새로운 루트 키를 정당한 디바이스에서 취득 가능한 서브 EKB의 생성을 의뢰한다.
카테고리 트리 A(7100)와 카테고리 트리 B(7200)의 TLCE의 각각은 의뢰에 기 초하여 서브 EKB를 생성한다. 이 경우, 카테고리 트리 A(7100)에서는 리보크된 디바이스 A1(7120)를 배제한 다른 디바이스에서만 신규의 루트 키를 취득 가능한 서브 EKB-(A)가 생성된다. 카테고리 트리 B(7200)에서는 리보크된 디바이스가 존재하지 않으면, 카테고리에 속하는 모든 디바이스에서 신규 루트 키를 취득 가능한 서브 EKB-(B)를 생성하여 키 발행 센터(KDC)로 송신한다.
키 발행 센터(KDC)는 각 TLCE로부터 수신한 서브 EKB에 기초하여 합성 EKB를 전술한 방법에 따라서 생성하고, 생성한 EKB를 EKB 요청자(ex. 콘텐츠 프로바이더)에 송신한다.
EKB 요청자(ex. 콘텐츠 프로바이더)는 키 발행 센터(KDC)로부터 수령한 새로운 EKB를 적용하여 콘텐츠 배신을 실행한다. 구체적으로는 콘텐츠 키로 암호화한 콘텐츠를 제공하고, EKB의 복호에 의해 얻어지는 루트 키로 콘텐츠 키를 암호화하여 제공한다. 카테고리 트리 A(7100)와 카테고리 트리 B(7200)에 속하는 디바이스는, EKB를 이용하여 루트 키의 취득, 루트 키에 의한 복호 처리에 의한 콘텐츠 키의 취득, 콘텐츠 키에 의한 암호화 콘텐츠의 취득을 실행하여 콘텐츠를 이용할 수 있다. 단, 카테고리 트리 A(7100)의 리보크 디바이스 A1(7120)는 갱신된 EKB를 처리할 수 없으므로 콘텐츠를 이용할 수 없게 된다.
또, 상술한 설명에서는, 키 발행 센터(KDC)는 TLCE로부터의 트리 변경 통지를 수령한 경우, 그 시점에서는 EKB 타입 정의 리스트의 갱신 처리를 실행하지 않는 예를 설명했지만, KDC가 트리 변경 통지를 수령한 시점에서, 키 발행 센터(KDC)가 트리 변경 정보에 기초하여 EKB 타입 정의 리스트의 갱신 처리, EKB 갱신 처리 를 실행하고, 각 EKB 요청자, TLCE에 갱신된 EKB 타입 정의 리스트를 송부하는 구성으로 하여도 된다.
(리보케이션 처리-(2))
다음에, 예를 들면 기록 디바이스 혹은 기록 매체에 EKB를 저장한 구성으로, 기록 매체에 대하여 사용자가 다양한 콘텐츠를 암호화하여 기록하고 암호화 처리, 복호 처리에 필요한 키를 기록 디바이스 혹은 기록 매체에 저장한 EKB로부터 취득되는 루트 키를 이용한 것으로 하는 소위 자기 기록형 형태에서의 리보크 처리에 수반한 처리에 대하여 설명한다.
도 64를 참조하면서 설명한다. 카테고리 트리 A(8100)와 카테고리 트리 B(8200)에서 공통으로 사용되는 EKB(8000)가 이용되고 있는 상황을 상정한다. 즉, 카테고리 트리 A(8100)와 카테고리 트리 B(8200)에서 공통으로 사용되는 기록 디바이스 혹은 기록 매체에는 공통의 EKB가 저장되고, 사용자는 EKB를 이용한 콘텐츠 암호화, 복호 처리에 의한 콘텐츠 기록 재생을 실행하고 있는 것으로 한다. 또, 카테고리 트리 A(8100)와 카테고리 트리 B(8200)에서 공통으로 사용되는 EKB(8000)는 EKB 타입 정의 리스트에서는, EKB 타입 식별 번호가 #1로 정의되어 있는 것으로 한다.
이 상황에서 카테고리 트리 A(8100)에 속하는 디바이스 A1(8120)의 키 데이터의 누설 등 부정 처리 가능한 상황이 발각되어, 디바이스 A1(8120)의 리보크를 실행하는 것으로 한다.
이 경우, 카테고리 트리 A(8100)의 TLCE는 키 발행 센터(KDC)에 대하여 트리 변경 통지(도 53참조)를 실행하고, 키 발행 센터(KDC)는 수신한 트리 변경 통지에 기초하여 관리 하에 있는 각 TLCE, 관련 EKB 요청자에 통지한다. 이 시점의 통지는 트리 변경 통지를 수령한 것을 알릴 뿐이며, EKB 타입 정의 리스트의 갱신 처리는 실행되지 않는다.
리보크 처리를 실행한 카테고리 트리의 TLCE는, 리보크 디바이스 A1(8120)에서의 장래에서의 EKB를 이용한 새로운 콘텐츠 처리를 정지시키기 위해, 스스로 EKB 요청자로서, 리보크 처리 대상 이외의 디바이스에서만 처리 가능한 갱신된 EKB를 생성하도록 키 발행 센터(KDC)에 대하여 EKB 발행 요구를 행한다. 이 경우, EKB 요청자로서의 TLCE는 카테고리 트리 A(8100)와 카테고리 트리 B(8200)에서 공통으로 사용되는 EKB의 타입으로서 정의되어 있는 EKB 타입 식별 번호 #1을 지정한다. 또한, 새로운 루트 키를 EKB 요청자 스스로 생성하여 KDC에 송부한다든가, 혹은 새로운 루트 키의 생성을 KDC에 의뢰한다.
키 발행 센터(KDC)는 지정된 EKB 타입 식별 번호 #1에 기초하여, EKB 타입 정의 리스트를 참조하고, 대응하는 카테고리 트리의 노드에 기초하여 카테고리 트리 A(8100)와 카테고리 트리 B(8200)의 TLCE에 대하여 새로운 루트 키를 정당한 디바이스에서 취득 가능한 서브 EKB의 생성을 의뢰한다.
카테고리 트리 A(8100)와 카테고리 트리 B(8200)의 TLCE의 각각은 의뢰에 기초하여 서브 EKB를 생성한다. 이 경우, 카테고리 트리 A(8100)에서는 리보크된 디바이스 A1(8120)를 배제한 다른 디바이스에서만 신규 루트 키를 취득 가능한 서브 EKB-(A)가 생성된다. 카테고리 트리 B(8200)에서는 리보크된 디바이스가 존재하지 않으면, 카테고리에 속하는 모든 디바이스에서 신규 루트 키를 취득 가능한 서브 EKB-(B)를 생성하여 키 발행 센터(KDC)로 송신한다.
키 발행 센터(KDC)는 각 TLCE로부터 수신한 서브 EKB에 기초하여 합성 EKB를 전술한 방법에 따라서 생성하고, 생성한 EKB를 각 TLCE(ex. 포맷 홀더)에 송신한다.
각 TLCE(ex. 포맷 홀더)는 키 발행 센터(KDC)로부터 수령한 새로운 EKB를 각 디바이스에 배신하여 EKB의 갱신을 실행시킨다. 카테고리 트리 A(8100)와 카테고리 트리 B(8200)에 속하는 디바이스는, 새로운 컨텐츠의 기록 디바이스에 대한 기록을 갱신한 EKB를 이용하여 취득한 루트 키를 적용한 암호화 처리로서 실행한다. 새로운 EKB를 이용하여 암호화 기록된 콘텐츠는 대응하는 EKB를 적용한 경우에만 복호 가능해지기 때문에, 리보크된 디바이스에서는 이용 불가능하게 된다.
이상, 특정한 실시예를 참조하면서 본 발명에 대하여 상세히 설명하였다. 그러나, 본 발명의 요지를 일탈하지 않는 범위에서 당업자가 해당 실시예의 수정이나 대용을 할 수 있음은 자명하다. 즉, 예시라는 형태로 본 발명을 개시한 것이며, 한정적으로 해석되어서는 안된다. 본 발명의 요지를 판단하기 위해서는 청구의 범위 란을 참작하여야 한다.
이상, 설명한 바와 같이, 본 발명의 정보 처리 시스템 및 방법에 따르면, 카테고리에 기초하여 구분되고, 카테고리 엔티티에 의해 관리되는 서브 트리를 복수 갖는 키 트리를 구성하고, 키 트리를 구성하는 패스를 선택하여 선택 패스 상의 하 위 키에 의한 상위 키의 암호화 처리 데이터로 이루어지는 EKB를 생성하여 디바이스에 제공하는 구성에서, EKB 타입 식별자와, EKB 처리 가능한 1 이상의 카테고리 트리의 식별 데이터를 대응시킨 EKB 타입 정의 리스트에 기초하여 EKB의 발행 관리를 실행하도록 구성하여, EKB 생성 요구자로서의 EKB 요청자가 적용 대상이 되는 카테고리를 용이하게 선택할 수 있다.
또한, 본 발명의 정보 처리 시스템 및 방법에 따르면, EKB 타입 정의 리스트에 정의된 EKB의 처리 가능한 카테고리 트리에서의 리보크 등에 의한 상태 변화 발생에 관한 통지 처리를, EKB의 이용 엔티티에 대하여 실행하는 구성으로 하여, EKB 요청자 외의 엔티티는 통상적으로 최신의 EKB 타입 정의 정보에 기초하여 처리가 가능해진다.
Claims (15)
- 복수의 디바이스를 리프로서 구성한 트리의 루트로부터 리프까지의 패스 상의 루트, 노드, 및 리프에 각각 키를 대응시킨 키 트리를 구성하고, 그 키 트리를 구성하는 패스를 선택하여 선택 패스 상의 하위 키에 의한 상위 키의 암호화 처리 데이터를 갖고, 상기 선택 패스에 대응하는 노드 키 세트를 이용 가능한 디바이스에서만 복호 가능한 유효화 키 블록(EKB)을 디바이스에 제공하는 구성을 갖는 정보 처리 시스템으로서,상기 키 트리는, 카테고리에 기초하여 구분되며, 카테고리 엔티티에 의해 관리되는 서브트리로서의 카테고리 트리를 복수개 갖는 구성이며,카테고리 트리에서 공통으로 복호 처리 가능한 EKB를 생성하여 발행하는 키 발행 센터(KDC)는, EKB 타입 식별자와, EKB 처리 가능한 카테고리 트리의 식별 데이터를 대응시킨 EKB 타입 정의 리스트를 갖고,상기 EKB 타입 정의 리스트에 정의된 EKB 처리 가능한 카테고리 트리에 있어서 상태 변화가 발생할 경우, 적어도 상기 상태 변화가 발생한 카테고리 트리를 처리 가능 카테고리 트리로서 설정한 EKB의 이용 엔티티에 대하여, 상기 상태 변화 발생에 관한 통지 처리를 실행하는 구성을 갖는 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서,상기 카테고리 트리에서의 상태 변화는, 그 카테고리 트리에서의 리보크( 기기 배제) 발생에 수반되는 상태 변화인 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서,상기 카테고리 트리에서의 상태 변화는, 그 카테고리 트리에 속하는 디바이스의 디바이스 저장 키의 변경에 수반되는 상태 변화인 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서,상기 EKB의 이용 엔티티는, 상기 키 발행 센터(KDC)에 대한 EKB 생성 요구 엔티티로서의 EKB 요청자를 포함하는 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서,상기 EKB의 이용 엔티티는, 상기 EKB 타입 정의 리스트 중에 정의된 EKB 처리 가능한 카테고리 트리의 관리 엔티티로서의 카테고리 엔티티를 포함하는 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서,상기 키 발행 센터(KDC)는, 상기 상태 변화 발생에 관한 통지 처리를, 상기 EKB 타입 정의 리스트의 이용 엔티티인 상기 키 발행 센터(KDC)에 대한 EKB 생성 요구 엔티티로서의 EKB 요청자, 및 카테고리 트리의 관리 엔티티로서의 카테고리 엔티티 전체에 대하여 실행하는 것을 특징으로 하는 정보 처리 시스템.
- 제1항에 있어서,상기 키 발행 센터(KDC)는, 카테고리 트리에서의 상태 변화 발생 정보를, 그 카테고리 트리의 관리 엔티티인 카테고리 엔티티로부터 수신하고,그 카테고리 엔티티로부터의 상태 변화 발생 정보 수신에 기초하여, 상태 변화 발생에 관한 통지 처리를 실행하는 구성을 갖는 것을 특징으로 하는 정보 처리 시스템.
- 카테고리에 기초하여 구분되며, 카테고리 엔티티에 의해 관리되는 서브트리로서의 카테고리 트리를 복수개 갖고, 디바이스를 리프로서 구성한 트리의 루트로부터 리프까지의 패스 상의 루트, 노드, 및 리프에 각각 키를 대응시킨 키 트리를 구성하고, 그 키 트리를 구성하는 패스를 선택하여 선택 패스 상의 하위 키에 의한 상위 키의 암호화 처리 데이터를 갖고, 상기 선택 패스에 대응하는 노드 키 세트를 이용 가능한 디바이스에서만 복호 가능한 유효화 키 블록(EKB)을 디바이스에 제공하는 구성을 갖는 시스템에서의 정보 처리 방법으로서,카테고리 트리에서 공통으로 복호 처리 가능한 EKB를 생성하여 발행하는 키 발행 센터(KDC)는,EKB 타입 식별자와, EKB 처리 가능한 카테고리 트리의 식별 데이터를 대응시킨 EKB 타입 정의 리스트에 정의된 EKB 처리 가능한 카테고리 트리에 있어서 상태 변화가 발생할 경우, 적어도 상기 상태 변화가 발생한 카테고리 트리를 처리 가능 카테고리 트리로서 설정한 EKB의 이용 엔티티에 대하여, 상기 상태 변화 발생에 관한 통지 처리를 실행하는 것을 특징으로 하는 정보 처리 방법.
- 제8항에 있어서,상기 카테고리 트리에서의 상태 변화는, 그 카테고리 트리에서의 리보크( 기기 배제) 발생에 수반되는 상태 변화인 것을 특징으로 하는 정보 처리 방법.
- 제8항에 있어서,상기 카테고리 트리에서의 상태 변화는, 그 카테고리 트리에 속하는 디바이스의 디바이스 저장 키의 변경에 수반되는 상태 변화인 것을 특징으로 하는 정보 처리 방법.
- 제8항에 있어서,상기 EKB의 이용 엔티티는, 상기 키 발행 센터(KDC)에 대한 EKB 생성 요구 엔티티로서의 EKB 요청자를 포함하는 것을 특징으로 하는 정보 처리 방법.
- 제8항에 있어서,상기 EKB의 이용 엔티티는, 상기 EKB 타입 정의 리스트 중에 정의된 EKB 처리 가능한 카테고리 트리의 관리 엔티티로서의 카테고리 엔티티를 포함하는 것을 특징으로 하는 정보 처리 방법.
- 제8항에 있어서,상기 키 발행 센터(KDC)는, 상기 상태 변화 발생에 관한 통지 처리를, 상기 EKB 타입 정의 리스트의 이용 엔티티인 상기 키 발행 센터(KDC)에 대한 EKB 생성 요구 엔티티로서의 EKB 요청자, 및 카테고리 트리의 관리 엔티티로서의 카테고리 엔티티 전체에 대하여 실행하는 것을 특징으로 하는 정보 처리 방법.
- 제8항에 있어서,상기 키 발행 센터(KDC)는, 카테고리 트리에서의 상태 변화 발생 정보를, 그 카테고리 트리의 관리 엔티티인 카테고리 엔티티로부터 수신하고, 그 카테고리 엔티티로부터의 상태 변화 발생 정보 수신에 기초하여, 상태 변화 발생에 관한 통지 처리를 실행하는 구성을 갖는 것을 특징으로 하는 정보 처리 방법.
- 카테고리에 기초하여 구분되며, 카테고리 엔티티에 의해 관리되는 서브트리로서의 카테고리 트리를 복수개 갖고, 디바이스를 리프로서 구성한 트리의 루트로부터 리프까지의 패스 상의 루트, 노드, 및 리프에 각각 키를 대응시킨 키 트리를 구성하며, 그 키 트리를 구성하는 패스를 선택하여 선택 패스 상의 하위 키에 의한 상위 키의 암호화 처리 데이터를 갖고, 상기 선택 패스에 대응하는 노드 키 세트를 이용 가능한 디바이스에서만 복호 가능한 유효화 키 블록(EKB)을 디바이스에 제공하는 구성을 갖는 시스템에서의 정보 처리를 컴퓨터 시스템 상에서 실행시키는 컴퓨터 프로그램을 기록한 프로그램 기록 매체로서,상기 컴퓨터 프로그램은,카테고리 트리에서의 상태 변화 발생 정보를, 그 카테고리 트리의 관리 엔티티인 카테고리 엔티티로부터 수신하는 단계와,그 카테고리 엔티티로부터의 상태 변화 발생 정보 수신에 기초하여, 적어도 상기 상태 변화가 발생한 카테고리 트리를 처리 가능 카테고리 트리로서 설정한 EKB의 이용 엔티티에 대하여, 상기 상태 변화 발생에 관한 통지 처리를 실행하는 단계를 포함하는 것을 특징으로 하는 프로그램 기록 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2000-00396098 | 2000-12-26 | ||
JP2000396098A JP4710132B2 (ja) | 2000-12-26 | 2000-12-26 | 情報処理システム、および情報処理方法、並びにプログラム記録媒体 |
PCT/JP2001/011237 WO2002052781A1 (fr) | 2000-12-26 | 2001-12-21 | Systeme de traitement de l'information et procede |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030019315A KR20030019315A (ko) | 2003-03-06 |
KR100852305B1 true KR100852305B1 (ko) | 2008-08-18 |
Family
ID=18861456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027011163A KR100852305B1 (ko) | 2000-12-26 | 2001-12-21 | 정보 처리 시스템 및 방법 |
Country Status (9)
Country | Link |
---|---|
US (2) | US7167564B2 (ko) |
EP (2) | EP1253739B1 (ko) |
JP (1) | JP4710132B2 (ko) |
KR (1) | KR100852305B1 (ko) |
CN (1) | CN1211975C (ko) |
AT (2) | ATE419691T1 (ko) |
DE (2) | DE60137270D1 (ko) |
HK (1) | HK1058269A1 (ko) |
WO (1) | WO2002052781A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11170778B2 (en) | 2019-01-04 | 2021-11-09 | Samsung Electronics Co., Ltd. | Conversational control system and method for registering external device |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7188176B1 (en) | 2000-01-20 | 2007-03-06 | Priceline.Com Incorporated | Apparatus, system, and method for maintaining a persistent data state on a communications network |
JP4710132B2 (ja) * | 2000-12-26 | 2011-06-29 | ソニー株式会社 | 情報処理システム、および情報処理方法、並びにプログラム記録媒体 |
JP4581246B2 (ja) * | 2000-12-26 | 2010-11-17 | ソニー株式会社 | 情報処理システム、および情報処理方法、並びにプログラム記録媒体 |
EP2104051B1 (en) | 2001-03-29 | 2019-11-20 | Panasonic Intellectual Property Management Co., Ltd. | Data protection system that protects data by encrypting the data |
KR100904572B1 (ko) * | 2001-03-29 | 2009-06-25 | 소니 가부시끼 가이샤 | 정보 처리 장치 |
GB0129065D0 (en) * | 2001-12-05 | 2002-01-23 | Philips Electronics Uk Ltd | Method and apparatus for verifying the integrity of system data |
US7340603B2 (en) | 2002-01-30 | 2008-03-04 | Sony Corporation | Efficient revocation of receivers |
JP2004054834A (ja) * | 2002-07-24 | 2004-02-19 | Matsushita Electric Ind Co Ltd | プログラム開発方法、プログラム開発支援装置およびプログラム実装方法 |
KR100924773B1 (ko) * | 2002-09-16 | 2009-11-03 | 삼성전자주식회사 | 메타데이터 암호화 및 복호화 방법과 암호화된 메타데이터관리 방법 및 그 시스템 |
JP3821086B2 (ja) * | 2002-11-01 | 2006-09-13 | ソニー株式会社 | ストリーミングシステム及びストリーミング方法、クライアント端末及びデータ復号方法、並びにプログラム |
US7296158B2 (en) * | 2002-11-08 | 2007-11-13 | Palo Alto Research Center Incorporated | Methods, apparatus, and program products for inferring service usage |
JP4099039B2 (ja) * | 2002-11-15 | 2008-06-11 | 松下電器産業株式会社 | プログラム更新方法 |
DE602004029555D1 (de) * | 2003-01-15 | 2010-11-25 | Panasonic Corp | Inhaltsschutzsystem, endgerät, endgerätmethode und speichermedium |
JP4284497B2 (ja) * | 2003-01-29 | 2009-06-24 | 日本電気株式会社 | 情報共有方法、装置、およびプログラム |
US7835520B2 (en) * | 2003-02-20 | 2010-11-16 | Zoran Corporation | Unique identifier per chip for digital audio/video data encryption/decryption in personal video recorders |
US8132024B2 (en) * | 2003-03-11 | 2012-03-06 | Panasonic Corporation | Digital work protection system, recording apparatus, reproduction apparatus, and recording medium |
US7426637B2 (en) * | 2003-05-21 | 2008-09-16 | Music Public Broadcasting, Inc. | Method and system for controlled media sharing in a network |
US7165238B2 (en) * | 2003-06-06 | 2007-01-16 | Intentional Software Corporation | Method and system for organizing and manipulating nodes by category in a program tree |
US7620993B2 (en) * | 2003-08-05 | 2009-11-17 | Panasonic Corporation | Copyright protection system, key generation apparatus, recording apparatus, reproduction apparatus, read-out apparatus, decryption apparatus, recording medium, recording method and program |
US20050049886A1 (en) * | 2003-08-28 | 2005-03-03 | Sbc Knowledge Ventures, L.P. | System and method for managing digital rights and content assets |
US8015301B2 (en) * | 2003-09-30 | 2011-09-06 | Novell, Inc. | Policy and attribute based access to a resource |
US7299493B1 (en) * | 2003-09-30 | 2007-11-20 | Novell, Inc. | Techniques for dynamically establishing and managing authentication and trust relationships |
US7467415B2 (en) * | 2003-09-30 | 2008-12-16 | Novell, Inc. | Distributed dynamic security for document collaboration |
US7412603B2 (en) * | 2003-12-05 | 2008-08-12 | Microsoft Corporation | Methods and systems for enabling secure storage of sensitive data |
US8037314B2 (en) * | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US7802095B2 (en) | 2004-02-03 | 2010-09-21 | Music Public Broadcasting, Inc. | Method and system for preventing unauthorized recording of media content on a Macintosh operating system |
JP4725070B2 (ja) * | 2004-10-13 | 2011-07-13 | パナソニック株式会社 | 正規コンテンツ確認方法、コンテンツ送受信システム、送信機、および受信機 |
JP3814620B2 (ja) * | 2004-10-15 | 2006-08-30 | 株式会社東芝 | 情報処理装置および情報処理方法 |
US7386128B2 (en) * | 2004-12-29 | 2008-06-10 | General Instrument Corporation | Conditional access system providing access to multiple programs or services |
US7971070B2 (en) * | 2005-01-11 | 2011-06-28 | International Business Machines Corporation | Read/write media key block |
KR20060131536A (ko) | 2005-06-16 | 2006-12-20 | 삼성전자주식회사 | BE 시스템에서의 홈 디바이스의 통합적 키(key) 관리방법 및 그 시스템 |
JP4596256B2 (ja) * | 2005-08-02 | 2010-12-08 | ソニー株式会社 | 送受信システムおよび方法、送信装置および方法、受信装置および方法、並びにプログラム |
WO2007059807A1 (en) * | 2005-11-22 | 2007-05-31 | Nero Ag | Apparatus and method for retrieving a decryption key, license server and media player |
US20080025504A1 (en) * | 2005-11-23 | 2008-01-31 | Robert Rapp | Computer or digital device data encryption/decryption performed by using a random analog source |
WO2007093946A1 (en) * | 2006-02-14 | 2007-08-23 | Koninklijke Philips Electronics N.V. | Improved method of content protection |
WO2007093925A1 (en) * | 2006-02-14 | 2007-08-23 | Koninklijke Philips Electronics N.V. | Improved method of content protection |
JP4837463B2 (ja) * | 2006-07-11 | 2011-12-14 | Kddi株式会社 | 鍵管理システム、鍵管理方法およびプログラム |
US20100251381A1 (en) * | 2007-08-17 | 2010-09-30 | Seong-Oun Hwang | System renewability message providing method and system renewability message using method and apparatus thereof |
US8761402B2 (en) * | 2007-09-28 | 2014-06-24 | Sandisk Technologies Inc. | System and methods for digital content distribution |
US9083685B2 (en) * | 2009-06-04 | 2015-07-14 | Sandisk Technologies Inc. | Method and system for content replication control |
JP5178839B2 (ja) | 2009-11-27 | 2013-04-10 | 株式会社東芝 | メモリチップ |
EP2507708B1 (en) * | 2009-12-04 | 2019-03-27 | Cryptography Research, Inc. | Verifiable, leak-resistant encryption and decryption |
CN101882197B (zh) * | 2010-05-31 | 2012-07-04 | 北京航空航天大学 | 一种基于分级密钥的rfid询问-应答安全认证方法 |
JP2012084071A (ja) * | 2010-10-14 | 2012-04-26 | Toshiba Corp | デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置 |
JP5670272B2 (ja) * | 2011-07-19 | 2015-02-18 | 株式会社東芝 | 情報処理装置、サーバ装置およびプログラム |
US8661527B2 (en) | 2011-08-31 | 2014-02-25 | Kabushiki Kaisha Toshiba | Authenticator, authenticatee and authentication method |
WO2013053393A1 (en) * | 2011-10-13 | 2013-04-18 | Evolium Management, S. L. | Multi-repository key storage and selection |
EP2815345B1 (en) * | 2012-02-17 | 2022-08-03 | Irdeto B.V. | Digital rights management |
US9008316B2 (en) * | 2012-03-29 | 2015-04-14 | Microsoft Technology Licensing, Llc | Role-based distributed key management |
KR20150067215A (ko) * | 2012-10-10 | 2015-06-17 | 레드.컴 인코포레이티드 | 비디오 분배 및 플레이백 |
JP5992295B2 (ja) * | 2012-11-02 | 2016-09-14 | 株式会社東芝 | 通信制御装置、通信装置およびプログラム |
US10237073B2 (en) | 2015-01-19 | 2019-03-19 | InAuth, Inc. | Systems and methods for trusted path secure communication |
US20160246582A1 (en) * | 2015-02-25 | 2016-08-25 | Red Hat, Inc. | Generic Semantic Configuration Service |
US9774610B2 (en) * | 2015-07-28 | 2017-09-26 | Futurewei Technologies, Inc. | Certificateless data verification with revocable signatures |
US11128452B2 (en) * | 2017-03-25 | 2021-09-21 | AVAST Software s.r.o. | Encrypted data sharing with a hierarchical key structure |
US11303632B1 (en) * | 2018-06-08 | 2022-04-12 | Wells Fargo Bank, N.A. | Two-way authentication system and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748736A (en) | 1996-06-14 | 1998-05-05 | Mittra; Suvo | System and method for secure group communications via multicast or broadcast |
US6049878A (en) | 1998-01-20 | 2000-04-11 | Sun Microsystems, Inc. | Efficient, secure multicasting with global knowledge |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999947A (en) * | 1997-05-27 | 1999-12-07 | Arkona, Llc | Distributing database differences corresponding to database change events made to a database table located on a server computer |
JPH11187013A (ja) * | 1997-12-24 | 1999-07-09 | Ibm Japan Ltd | 暗号鍵配信システム |
DE19928848A1 (de) | 1999-06-24 | 2000-12-28 | Sator Laser Gmbh | Vorrichtung zum Schneiden von Materialbahnen aus Papier oder Kunststoff |
US6263435B1 (en) * | 1999-07-06 | 2001-07-17 | Matsushita Electric Industrial Co., Ltd. | Dual encryption protocol for scalable secure group communication |
US6240188B1 (en) * | 1999-07-06 | 2001-05-29 | Matsushita Electric Industrial Co., Ltd. | Distributed group key management scheme for secure many-to-many communication |
IL130963A (en) * | 1999-07-15 | 2006-04-10 | Nds Ltd | Key management for content protection |
JP4710132B2 (ja) * | 2000-12-26 | 2011-06-29 | ソニー株式会社 | 情報処理システム、および情報処理方法、並びにプログラム記録媒体 |
-
2000
- 2000-12-26 JP JP2000396098A patent/JP4710132B2/ja not_active Expired - Fee Related
-
2001
- 2001-12-21 CN CNB018086713A patent/CN1211975C/zh not_active Expired - Fee Related
- 2001-12-21 DE DE60137270T patent/DE60137270D1/de not_active Expired - Lifetime
- 2001-12-21 EP EP01272281A patent/EP1253739B1/en not_active Expired - Lifetime
- 2001-12-21 DE DE60127096T patent/DE60127096T2/de not_active Expired - Lifetime
- 2001-12-21 US US10/204,775 patent/US7167564B2/en not_active Expired - Fee Related
- 2001-12-21 AT AT06076195T patent/ATE419691T1/de active
- 2001-12-21 AT AT01272281T patent/ATE356484T1/de active
- 2001-12-21 EP EP06076195A patent/EP1710947B1/en not_active Expired - Lifetime
- 2001-12-21 WO PCT/JP2001/011237 patent/WO2002052781A1/ja active IP Right Grant
- 2001-12-21 KR KR1020027011163A patent/KR100852305B1/ko not_active IP Right Cessation
-
2003
- 2003-12-23 HK HK03109357A patent/HK1058269A1/xx not_active IP Right Cessation
-
2006
- 2006-12-15 US US11/639,711 patent/US7738662B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748736A (en) | 1996-06-14 | 1998-05-05 | Mittra; Suvo | System and method for secure group communications via multicast or broadcast |
US6049878A (en) | 1998-01-20 | 2000-04-11 | Sun Microsystems, Inc. | Efficient, secure multicasting with global knowledge |
Non-Patent Citations (1)
Title |
---|
Dondeti, L. R. 외 2명, A dual encryption protocol for scalable secure multicasting, Computers and Communications, 1999, pp.2-8 (1999.07.06.) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11170778B2 (en) | 2019-01-04 | 2021-11-09 | Samsung Electronics Co., Ltd. | Conversational control system and method for registering external device |
Also Published As
Publication number | Publication date |
---|---|
CN1426644A (zh) | 2003-06-25 |
EP1253739B1 (en) | 2007-03-07 |
DE60127096D1 (de) | 2007-04-19 |
EP1710947B1 (en) | 2008-12-31 |
DE60137270D1 (de) | 2009-02-12 |
EP1710947A1 (en) | 2006-10-11 |
EP1253739A4 (en) | 2005-02-02 |
CN1211975C (zh) | 2005-07-20 |
US7167564B2 (en) | 2007-01-23 |
KR20030019315A (ko) | 2003-03-06 |
US7738662B2 (en) | 2010-06-15 |
HK1058269A1 (en) | 2004-05-07 |
US20030142824A1 (en) | 2003-07-31 |
EP1253739A1 (en) | 2002-10-30 |
ATE356484T1 (de) | 2007-03-15 |
US20070098177A1 (en) | 2007-05-03 |
JP4710132B2 (ja) | 2011-06-29 |
JP2002198952A (ja) | 2002-07-12 |
ATE419691T1 (de) | 2009-01-15 |
DE60127096T2 (de) | 2007-11-08 |
WO2002052781A1 (fr) | 2002-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100852305B1 (ko) | 정보 처리 시스템 및 방법 | |
KR100859623B1 (ko) | 정보 처리 시스템 및 방법 | |
KR100859622B1 (ko) | 정보 처리 시스템 및 방법 | |
KR100840823B1 (ko) | 암호 키 블록을 이용한 정보 처리 시스템 및 방법 | |
KR100777906B1 (ko) | 정보 처리 시스템 및 방법 | |
WO2001078298A1 (fr) | Systeme et procede de traitement d'informations | |
JP2001358707A (ja) | 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体 | |
JP4120135B2 (ja) | 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体 | |
JP4806847B2 (ja) | 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム記録媒体 | |
JP3988385B2 (ja) | 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム記録媒体 | |
JP2010288291A (ja) | 情報処理システム、および情報処理方法、並びにプログラム記録媒体 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20120730 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20130726 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140725 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |