해결해야 하는 과제는, 동일한 IPMP 시스템 구조를 정의하여 상이한 IPMP 시스템이 동일한 보호 콘텐츠를 소비 가능하게 하는 것, 및 IPMP 시스템 실시자에 대하여 표준 방법을 제공해서 안전한 방법으로써, 인코더, 채널 제공에서 단말까지의 전(全) 시스템을 구축하는 것이다.
본 발명에 의하면, 유연 및 공통 IPMP 시스템(지적소유권 관리 및 보호) 장치는, 콘텐츠 스트림에 포함된, 또는 URL 위치로부터 다운로드된 완전한 IPMP 툴 리스트를 도입함으로써, 유연성 및 상호 운용성을 부여한다.
전처리(前處理) 모듈로서의 기능을 하는 준거 IPMP 단말의 IPMP 툴 매니저에 의해서, IPMP 툴 리스트를 구문(構文) 해석하고, IPMP 툴 ID, 이것에 관련되는 위치 식별자, 및 IPMP 툴 포맷 ID에 근거해서 IPMP 툴을 취득한다.
IPMP 툴을, 2진 포맷으로 프리컴파일(precompile)해서 IPMP 단말에 전송 또는 다운로드할 수 있도록, IPMP 단말의 상이한 플랫폼상의 대상에 대하여 상이한 2진 포맷을 콘텐츠 제공자가 준비한다.
3종류의 주요하고 또한 일반적인 인터페이스는, 매우 유용하고 또한 전형적인 용도 요건에 따라서, 데이터 암호 해독, 투과 정보(watermark) 매입(埋入), 및 투과 정보 및 데이터 암호 해독의 방법용으로 지정된다.
본 발명의 하나의 실시예에서는 최소 2층 구조를 제안하여, 이용자 인증 출력 메시지를 지정하고, 상이한 IPMP 시스템에 관해서 더욱 높은 보안 및 단말 호환성을 부여한다.
단말 복잡성 및 IPMP 툴 다양성은, IPMP 툴을 취득해서 사용하는 경우에 상이한 프로파일(profile)을 지정함으로써, 처리된다.
우선 제1로, IPMP 툴 리스트를, 콘텐츠 스트림 내에 위치하는 어떠한 특정한 패킷(packet)으로서 정의하고, 하기의 내용을 나타낸다.
IPMP 툴 리스트 플래그(flag)는, 상기 패킷의 앞에 헤더(header)로서 위치하고 있다.
IPMP 툴 매니저는, 콘텐츠 디코더의 앞에 위치하는 어떠한 모듈로서 설계되어서, 콘텐츠 스트림에 포함된, 또는 어딘가에 저장된 IPMP 툴 리스트를 구문 해석하여, 콘텐츠 스트림으로부터 보호를 해제하기 위한 IPMP 툴을 취득한다.
범용의 인터페이스가, 다운로드된 IPMP 툴을 IPMP 단말에서 사용할 수 있도록 IPMP 단말용으로 지정된다. 이 인터페이스는 어느 종류의 툴에 의한 대부분의 상이한 알고리즘을 취급할 수 있도록 정의된다.
2층의 보안 구조를 도입하여, 더욱 높은 보안성을 부여하는 동시에, 단말 호환성을 위해서 임의의 상이한 이용자 인증 방법에 관한 출력 요건을 결정한다.
IPMP 툴 ID는 미리 결정한 테이블로서 정의되어서, 상기 테이블을 사전 부호화, 또는 단말에 다운로드해 두어도 좋다. 콘텐츠 제공자측과 단말측의 양쪽은, 동일한 테이블을 참조해서 동일한 IPMP 툴에 동일한 IPMP 툴 ID를 사용할 필요가 있다.
단말은, 표준 IPMP 툴이라고 생각되는 IPMP 툴을 사전에 실장해도 좋고, 상기 단말이 다운로드 기능을 가지고 있는 경우, 콘텐츠 스트림에 포함된 IPMP 툴 리스트에 따라서 독자적인 IPMP 툴을 다운로드해도 좋다.
암호화 키는, 상기 2층 보안 구조에 따라서 추가로 암호화해서 IPMP 정보에 삽입되어서, 콘텐츠 스트림과 함께 단말에 전송된다.
콘텐츠 제공자측에서는, 미디어 콘텐츠는, MPEG-2 또는 MPEG-4와 같은 부호화 기술을 이용해서 부호화되어서, DES 또는 AES와 같은 IPMP 툴을 이용해서 암호화된다. 상기 콘텐츠는, 부호화전에 투과 정보를 매입해도 좋다.
동시에, 콘텐츠 ID는, 콘텐츠 저작권 정보, 콘텐츠 작성 정보 등에 따라서 생성된다. 또한, IPMP 툴 리스트는, 콘텐츠를 보호할 때에 사용되는 IPMP 툴에 따라서 생성된다. 상기 IPMP 툴 리스트는, IPMP 툴 ID, IPMP 툴 포맷 ID, 위치 타입, IPMP 툴의 위치 및 예약 필드를 포함한다. 위치 식별자는, 위치 타입 및 위치 상세가 특정한 IPMP 툴 ID를 따르므로, 특정한 IPMP 툴과 밀접하게 관련이 있다.
IPMP 툴 리스트 플래그는, 그 후에 후속하는 것이 IPMP 툴 리스트인 것을 나타낸다.
임의의 단말은, 이러한 콘텐츠를 취득 또는 검색할 수 있지만, 적절한 사용 라이선스, 및 대응하는 또는 올바른 IPMP 툴 없이는 재생은 할 수 없다.
단말측에서는, IPMP 툴 리스트를 IPMP 툴 매니저 모듈에 인도하여, IPMP 툴을 취득한다.
취득된 IPMP 툴은, 단말에서 사용 가능한 것이고, IPMP 단말에 저장되어서 미리 결정한 인터페이스용으로 준비된다.
콘텐츠 스트림이, 콘텐츠 디코더를 통과하기 시작하면, IPMP 시스템은, 이용자 인증 모듈을 기동하여, 이용자 단말 ID, 콘텐츠 ID 및 그 밖의 관련 정보를 부여함으로써, 콘텐츠 제공자 또는 제공 에이전트에게 센스(sense) 요구를 송신한다. 라이선스는, 이용자 인증이 잘 실행된 후, 단말에 발행된다.
최후로, 암호화된 키는 암호 해독되고, 암호화된 콘텐츠도 암호 해독되어서, 콘텐츠는 단말에서 복호 및 재생 가능하게 된다.
도 1은, 현재의 전형적인 IPMP(지적소유권 관리 보호) 시스템을 나타낸다.
유닛(1.0)의 콘텐츠 소유자는, 유닛(1.1, 1.5, 및 1.9)의 상이한 콘텐츠 제공자 A, B 및 C를 통하여 콘텐츠를 제공한다. 상이한 IPMP 시스템은, 3조의 IPMP시스템으로써 실시되고 있다.
각각의 프로토콜이 상이한 IPMP 툴(예를 들면 암호화 툴) 및 상이한 이용자 인증 툴 등을 사용하고 있으므로, IPMP 툴을 취득해서 검사하는 방법은 그것들 자체의 프로토콜에 의거한다. 상이한 이용자 인증 방법은, 유닛(1.2, 1.6, 및 1.10)에 나타나 있고, IPMP 툴을 취득하는 상이한 방법은, 유닛(1.3, 1.7, 및 1.11)에 나타나 있다. 따라서, 유닛(1.4, 1.8, 및 1.12)에 나타내는 바와 같이, 콘텐츠 복호 또는 콘텐츠 소비 단말도 서로 상이하다. 단말 A가 콘텐츠 제공자 B에 의해서 제공되는 보호 콘텐츠를 재생할 수는 없다는 것이 명확하다.
이하의 내용에 대해서는, 본 출원의 발명자에 의한 전번의 출원(특원2001-058236)에서 해결되었다.
1) IPMP 툴 정보를 스트림에 포함시켜서, 콘텐츠 제공자 및 콘텐츠 디스트리뷰터(distributor)에 따라서 어떠한 IPMP 툴을 사용할 것인가를 표시하는 것.
2) 준거 IPMP 단말에서 IPMP 툴 관리를 이용해서 IPMP 정보를 처리하는 것.
3) 상이한 처리 능력을 갖는 IPMP 단말에 관한 프로파일을 정의하여, IPMP 시스템을 실현하는 것.
그러나 전번의 출원에서는 미해결인 문제점이 2가지가 있고, 다음과 같다.
1) 단말 OS 및 플랫폼에 의존하는 다운로드 툴 포맷의 문제.
2) IPMP 단말에서 사용되어야 하는 IPMP 툴용의 인터페이스의 문제.
본 출원에서는, 추가로, 전번의 출원에서 제시된 IPMP 시스템을 더욱 상세하고 또한 더욱 완전한 형태로 설명하고, 2가지의 문제점을 상세히 취급하여 설명한다.
도 2는, MPEG-n의 IPMP 시스템을 나타낸다.
서버(server)는, 모듈(2.1)로써 나타내고, 콘텐츠 제공자나 콘텐츠 디스트리뷰터의 어느 하나로서 기능을 하고, 또는 상이한 용도 시나리오의 경우에는 양쪽의 기능을 실행한다.
네트워크층은, 모듈(2.3)로써 나타내고, 준거 IPMP 단말과 서버와의 사이의 통신, 및 상기 서버로부터 상기 단말로의 콘텐츠 스트림의 전송을 실행한다.
처음에는, 모듈(2.4)의 권리 인증이, 상기 서버와 대화하기 시작하여, 권리 인증 모듈의 출력 메시지 등의 상세한 사용 규칙과 함께 콘텐츠 액세스 및 소비 권리를 얻는다. 미리 결정된 포맷의 이들 메시지는, 이후에 사용되기 위해서 상기 단말의 메모리에 저장된다. 출력 메시지 란을 지정하는 상세에 대해서는, 이후에 설명한다.
모듈(2.4)에 의해서 콘텐츠 액세스용 권리가 허가되면, 상기 서버는, 상기 네트워크층을 통해서 요구된 콘텐츠 스트림을 상기 단말에 송신한다.
모듈(2.2)에서는, 기타의 전용 플랫폼 및 OS용의 기타의 포맷 이외에 JBC(Java 바이트 코드), DLL(다이내믹 링크 라이브러리) 등의 상이한 포맷의 2진 툴에 추가하여, 툴 ID, 툴 위치 ID, 툴 포맷 ID를 포함하는 툴 리스트 정보와 함께 콘텐츠 스트림을 전송한다. 툴 리스트 정보를 지정하는 상세에 대해서는, 이후에 설명한다.
모듈(2.5)에 나타내는 IPMP 툴 매니저에서는, 툴 리스트 정보를 구문 해석(解析)/해석(解釋)하는 동시에, 툴 위치 ID 및 툴 포맷 ID 정보에 따라서 IPMP 툴을 검색한다. 모듈(2.5)로부터의 출력 메시지는, 툴의 내용을 나타내는 기술자(記述子; descriptor)용 툴 ID를 갖는 적절한 IPMP 툴이다. IPMP 툴 자체는, IPMP 기준으로 미리 결정된 공통 툴 포맷 ID에 따른 단말 플랫폼용으로 선택 검색하여 적합한 2진 포맷이다.
라이선스/키 및 사용 규칙은, 추가적인 처리를 위해서 모듈(2.6) 형태로서 상기 단말의 메모리에 저장된다. 대응하는 툴 ID를 갖는 2진 IPMP 툴은, 모듈(2.7) 형태로서 상기 단말의 메모리에 저장된다. 상기 툴의 각각은, 일반적인 표준화 인터페이스에 따라서 구축되고, 플랫폼에 적합시키기 위해서 컴파일러를 이용해서 프리컴파일된다. 예를 들면, 데이터 암호화 및 암호 해독 툴은, 1개의 범용 지정 인터페이스에 의해서 구축 가능하다. 예를 들면, Java 가상(假想) 컴퓨터로써 전 플랫폼/단말용의 Java 바이트 코드(JBC)로 프리컴파일 가능하고, 또한 Windows에 의한 플랫폼/단말용의 다이내믹 링크 라이브러리(DLL)로 프리컴파일 가능이다.
2진 형식의 툴은, zip형식 등의 압축 형식으로 전송 가능하다. 상기 툴은, 부정 변경 방지 소프트웨어를 이용함으로써, 부정 변경 가능하거나, 또는, 2진 코드가 깨어지거나 또는 해킹 되는 것을 방지하는 서명(署名) 기법을 이용하여 서명 가능하다.
모듈(2.8)은, IPMP 툴 제공자 및 단말 실시자가 미리 결정되어 따르는 것이 필요한 IPMP 툴용의 인터페이스를 나타낸다.
베이스층은, 모듈(2.9)에 나타내는 콘텐츠 디코더 및 프리젠터이다. 이 층은, 상기 베이스층의 기타의 구성 요소에 위치하여 상기 구성 요소와 함께 원활하게 동작하는, 2진 형식으로서 IPMP 툴용의 훅(hook) 인터페이스를 이용해서 구축된다.
범용 인터페이스는, 3종류의 IPMP 툴(암호 해독용 인터페이스, 투과 정보 매입용 인터페이스, 투과 정보 기능과 암호 해독용 인터페이스)에 대해서 이후에 명기한다. 권리 인증용 인터페이스는, 용도에 크게 좌우되므로 미리 정의할 수 없고, 이 때문에, 여기에서 정의 및 고정되는 것이 아니고 파라메트릭(parametric) 툴에 의해서 처리된다.
상세한 설명을 여기에서 4개의 부분으로 나누어서, 설명한다.
1. IPMP 툴 리스트 및 IPMP 툴 매니저
1.1 IPMP 툴 리스트 및 IPMP 툴 매니저의 정의
IPMP의 개요에 있어서, IPMP 정보는, 소정의 IPMP 툴이 소정의 보호 콘텐츠를 요구하여 올바르게 처리하는 정보로 정의되어 있다.
IPMP 툴은, 미리 결정된 방법으로써 인증, 암호화, 투과 정보 등의 IPMP 기능을 실행하는 모듈인 것으로 정의되어 있다.
이 발명에 있어서, IPMP 툴 리스트의 정의를 도입한다.
IPMP 툴 리스트는, IPMP 툴 매니저가 IPMP 툴을 식별해서 상기 IPMP 툴을 검색할 필요가 있는 정보를 포함한다. 이것은, IPMP 툴의 고유의 식별, IPMP 툴의 위치 식별자, 및 IPMP 툴 ID와 콘텐츠 ID와의 사이의 관계 정의를 포함한다.
또한, IPMP 툴 매니저를 다음과 같이 정의한다.
IPMP 툴 매니저는, 그 유일한 역할이 IPMP 툴 리스트를 처리해서 콘텐츠 스트림 전체를 소비하는 데에 필요한 IPMP 툴을 검색하는 엔티티(entity)이다.
1.2 IPMP 툴 리스트
이 IPMP 툴 리스트 패킷의 상세 구조는, 다음과 같은 도 3에 가장 잘 나타내어져 있다.
상기 IPMP 툴 리스트 패킷은, 보호 콘텐츠를 소비하는 데에 필요한 전 IPMP 툴의 정보를 포함한다. 상기 콘텐츠가 2종류 이상의 콘텐츠를 포함하는 경우, 예를 들면, 상기 콘텐츠의 제1의 부분은 콘텐츠 제공자 A로부터이고, 제2의 부분은 콘텐츠 제공자 B로부터 온 경우, 각각의 IPMP 툴에 관련되는 정보는, 각각 관련되는 콘텐츠 ID마다 분류된다.
이어서, 각각의 콘텐츠 ID용의 IPMP 툴 리스트는, 각각의 IPMP 툴 정보로써 구성되면 좋고, 이들 각각의 IPMP 툴 정보의 순서는 중요하지 않다.
각각의 IPMP 툴 정보는, 3개의 주요한 부분, 즉 IPMP 툴 ID, IPMP 툴 위치 식별자 및 IPMP 포맷 ID로 구성되어 있다.
상기 IPMP 툴 ID는, 소정의 방법으로써 툴을 식별하고, 적어도 2개의 부분, 툴 타입 ID 및 툴 서브 ID를 가지고 있다.
툴 타입 ID는, 이 특정한 IPMP 툴이(툴 기능의 점에서) 어떠한 카테고리, 예를 들면 암호 해독, 투과 정보 추출, 투과 정보 검출, 권리 추출 등에 속하는가를 지정한다. 하기의 표는, IPMP 툴의 16카테고리를 취급할 수 있는 4비트로써 툴 타입 ID의 길이를 가상으로 설정한다.
또한, 툴 서브 ID는 어느 특정한 IPMP 툴을 식별하고, 상기 서브 ID는, 하기의 표와 같이, 1툴 타입간의 4096의 상이한 툴을 식별할 수 있는 길이 12비트로써 가상으로 설정된다.
(표 1)
IPMP 툴 ID 리스트
툴 기능 |
IPMP 툴 ID |
IPMP 툴 명칭 |
주 |
암호 해독 툴 |
... 0001 000000000000 ... |
DESDecrypt |
12비트로써 4096의 상이한 툴이 가능하게 된다. |
... 0001 000000000001 ... |
AESDecrypt |
... 0001 000000000010 ... |
SC2000Decrypt |
... 0001 000000000011 ... |
CamelliaDecrypt |
... 0001 000000000100 ... |
Xxxx |
... 0001 000000000101 ... |
Xxxx |
... 0001 000000000110 ... |
Xxxx |
... 0001 000000000111 ... |
Xxxx |
... 0001 000000001000 ... |
Xxxx |
... 0001 00000000xxxx ... |
Xxxx |
... 0001 00000000xxxx ... |
Xxxx |
... 0001 100000000000 ... |
예약 |
금후/독점 툴에 예약 |
... 0001 100000000001 ... |
예약 |
|
|
|
|
투과 정보 매입 툴 |
... 0010 000000000000 ... |
투과 정보 툴 1 |
12비트로써 4096의 상이한 툴이 가능하게 된다. |
... 0010 000000000001 ... |
투과 정보 툴 2 |
... 0010 000000000010 ... |
투과 정보 툴 3 |
... 0010 000000000011 ... |
Xxxx |
... 0010 000000000100 ... |
Xxxx |
... 0010 00000000xxxx ... |
|
|
|
금후/독점 툴에 예약 |
|
예약 |
|
예약 |
주: 상기의 최초의 4비트는 툴 타입 ID이다.
이 표는 단말에 사전 로드(load)되어야 하고, 또는, 단말은 상기에 나타내는표준화 툴 ID표에 따라서 구축된다.
위치 식별자는 전송(轉送) 기구를 암시하고, 1개의 IPMP 툴에 관해서 2개 이상의 위치 식별자가 가능하다. IPMP 툴 매니저는, 상기 식별자의 각각을 이용해서 상기 툴을 검색하려고 시도한다. IPMP 툴 A의 제1의 위치 식별자가 성공한 경우, 이하의 위치 식별자가 스킵되고, 그렇지 않으면, 제2의 위치 식별자에 이어진다.
예를 들면, 위치 식별자는 하기와 같이 기술된다.
1. 로컬(local): 단말 시스템의 내부 또는 주변장치
2. 외부: 지정된 단말 시스템의 외부(http:, ftp:)
IPMP 툴 식별자는, 2개의 부분(위치 타입 및 위치 상세)으로 이루어진다. 위치 타입은, 다음 중, 1개가 아니면 안된다. 위치 타입과 위치 상세와의 사이의 대응은, 표 2에 나타내어져 있다.
(표 2)
가능한 위치 타입과 그 상세
위치 타입 ID |
위치 타입 |
위치 상세 |
0000 |
"로컬" |
N/A |
0001 |
"주변장치" |
N/A |
0010 |
"원격 다운로드 가능" |
Website(http, ftp...) |
0011 |
"원격 다운로드 불가능" |
Java servelet 등의 원격 위치 |
0100 |
"콘텐츠 스트림 내부" |
이 부분은 IPMP 툴 자체를 포함해야 한다. |
... |
... |
... |
1*** |
예약 |
예약 |
툴 포맷 ID는, IPMP 툴 ID 및 툴 위치 ID와 함께 전송되고, 통지하는 데에 8비트를 이용하고 있으며 표 3에 명기되어 있다.
제공된 IPMP 툴이 어떠한 2진 포맷인가를 IPMP 단말은, DLL, JBC, 또는 기타 등의 툴 포맷 ID로부터 인지하고, 상기 IPMP 단말은, 그 OS와 합치하는 적절한 포맷으로서 상기 툴을 다운로드 또는 검색할 수 있다.
(표 3)
다운로드된 IPMP 툴의 포맷 ID
8비트 |
다운로드된 포맷 |
대상 플랫폼 |
컴파일러 |
IPMP 단말 |
00000000 |
JBC(Java 바이트 코드) |
JVM 인터프리터 매입 머신 |
JAVA 컴파일러 |
대부분의 휴대전화 및 STBs |
00000001 |
DLL1 |
Windows 머신 |
Microsoft C 컴파일러 |
Windows상에 실행중인 전 PC |
00000010 |
DLL2 |
Unix 머신 |
gcc 및 기타의 컴파일러 |
전 Unix, Linux OS |
00000011 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
예약 |
DLL-AM33 |
파나소닉 칩 |
AM33 컴파일러 |
칩 의존 제조에 예약, 및 특정 컴파일러를 필요로 한다. |
예약 |
|
|
|
|
예약 |
|
|
|
|
예약 |
|
|
|
|
|
|
|
|
|
다운로드되는 IPMP 툴의 툴 포맷 ID를 정의해서 단말 상호 운용성을 달성하는 목적은, 이하와 같다.
1 최근, 대부분의 휴대전화 및 DTV STB(desk-top video set-top box)는, Java 가상 컴퓨터(JVM)로써 구축되어 있고, 스트림 내에 포함 또는 URL로부터의 다운로드를 통해서 IPMP 툴을 Java 바이트 코드로 컴파일해서 단말에 다운로드할 수 있다.
2 DLL은, PC 또는 Unix에서 사용되는 많이 보급되어 있는 포맷이다. 상이한 비트 수의 플래그를 사용하여, 이용자의 단말이 어떠한 DLL 포맷을 다운로드할 필요가 있는가를 통지한다.
3 JVM(Java Virtual Machine)도 표준 C/C++ 컴파일러도 구비하지 않은 기타의 단말에 관해서, 예를 들면, 어떠한 DTV STB에, IPMP 툴을, 그것들의 컴파일러를 이용해서 프리컴파일하여 브로드캐스트 스트림 또는 백 채널(back channel)을 통해서 다운로드할 수 있다. 이것은, 방송업자 또는 제조업자가 그것들의 소프트웨어를 갱신하고 싶을 때에 현재 DTV STB가 실행하고 있는 것이다.
이 경우, 상기 표의 동일한 예약 비트 플래그를, 방송업자와 제조업자 양쪽에서 선택 및 참조하여, 상기 업자가 IPMP 툴의 어떠한 포맷을 검색해서 사용할 수 있는가를 DTV STB에 통지한다.
IPMP 툴 리스트용 구문은, 이하와 같이 정의된다.
(수식 1)
class IPMP_Tool_List
{
bit(128)IPMP_Tool_ID;
//whether this IPMP Tool is a parametric tool or normal tool is
implicitly
// indicated by the IPMP_Tool_ID.
if (parametricRepresentation)
{
//...detailed syntax of parametric representation.
}
else
{
bit(1) hasAlternativeToolLocation;
while (hasAlternativeToolLocation)
{
bit(1) hasAlternativeToolLocation;
bit(7) Tool_Location_ID;
if (Tool_Location_ID == 0b0000000) //tool carried in
bitstream.
{
}
else if (Tool_Location_ID == 0b0000001) //remote method
call
{
bit(8) Remote_Call_Mechanism; //CORBA, DCOM, RMI,
//SOAP ...
bit(1) Client_In-Bitstream;
}
else if (Tool_Location_ID == 0b0000001 ||
Tool_Location_ID=0b0000011)
// Remote Downloadable, http protocol or ftp
protocol
{
bit(8) Tool_Format_ID;
unsigned int(16) serverAddressLen;
bit(8) serverAddress[serverLen];
unsigned int(16) fullPathLen;
bit(8) fullPath[fullPathLen];
bit(1) isCompressed;
if (isCompressed)
{
bit(7) compressionMethod;
}
}
else if (Tool_Location_ID == 0b0000100 .. 0b1000000)
//ISO reserved
{
}
else // user defined.
{
}
}
}
}
의미
IPMP_Tool_ID는, 유니버설 레벨로서 툴을 반드시 식별한다. 최초의 16비트는 특정의 IPMP 툴의 타입 카테고리를 식별하는 것에 대해서, 다음 112비트는 상기 IPMP 툴을 상세하게 식별한다. 하기의 표에, 상기 IPMP_Tool_ID를 설명한다. 등록 당국이, 이러한 표를 보수하는 책임을 가지고 있다.
몇 개의 통상 이용되는 IPMP 툴을 표준화할 필요가 있고, 이러한 기본적인 IPMP 툴을 포함하는 테이블을 정의할 필요가 있으며, 이 테이블을 모든 IPMP 단말에 사전 로드해야 한다. 하기의 표는 이러한 개념을 설명한다. 표준화되어야 하는 기본 툴의 내용에 관해서, 그것은 IPMP 위원회에서 또한 논의하는 사항이다.
Tool_Location_ID는, 전송 기구를 암시하고, 툴이 콘텐츠 스트림에 포함될 것인가, 원격 위치로부터 다운로드할 필요가 있는가, 또는 IPMP 툴이 원격 위치에서 실행 가능한 것인가 아닌가를 나타낸다.
1개의 IPMP 툴에 관해서 2개 이상의 위치 식별자가 가능하다.hasAlternativeToolLocation은, IPMP 툴이 별도의 검색 대상을 가지고 있는가 아닌가를 나타낸다. IPMP 툴 매니저는, 상기 식별자의 각각을 이용해서 상기 툴을 검색하고자 시도한다. IPMP 툴 A의 제1의 위치 식별자가 성공한 경우, 다음 위치 식별자가 스킵되고, 그렇지 않으면, 제2의 위치 식별자를 조사한다.
(표 4)
IPMP 툴 위치 식별자(IPMP Tool_Location_ID)
Tool_Location_ID |
위치 타입 |
000 0000 |
콘텐츠 스트림 내부에 포함된 툴 |
000 0001 |
원격 위치에서 실행되는 툴 |
000 0010 |
http 프로토콜에 의한 다운로드 |
000 0011 |
ftp 프로토콜에 의한 다운로드 |
000 0100 -- 100 0000 |
ISO 예약 |
100 0001 -- 111 1111 |
예약 |
Tool_Location_ID가 ObOOOOOOO인 경우, 이것은, IPMP 툴이 콘텐츠 스트림에 포함되어 있는 것을 의미한다. Mpeg4 데이터에 있어서, 본 발명에서는, IOD와 관련이 있는 제안된 IPMP 툴 ES 내에 2진 IPMP 툴이 포함되어 있다. 그 상세한 것은, 이후에 설명한다.
Tool_Location_ID가 ObOOOOOOl인 경우, 이것은, 이 IPMP 툴이 원격측에서 실행되는 것이라는 것을 의미하고, IPMP 단말은, RPC(remote procedure call; 원격 절차 호출)을 통해서 이 IPMP 툴을 호출한다. 8비트 원격 호출 방법은, 이 IPMP 툴이 어떠한 RPC 기구, 예를 들면 CORBA, RMI, XML-RPC, DCOM에 대응하고 있는가를 나타낸다. 이 Remote_Call_Mechanism에 관한 상세한 것은, 하기의 표에서 정의된다. IPMP 툴 매니저는, 상기 단말이 상기 RPC 기구에 대응하고 있는가 아닌가를 검사한다.
(표 5)
IPMP Remote_Call_Mechanism
Remote_Call_Mechanism |
RPC 기구 |
0000 0000 |
DCOM |
0000 0001 |
RMI |
0000 0010 |
CORBA |
0000 0011 |
XML-RPC |
0000 0100 |
SOAP |
... ... |
... ... |
0000 1000 -- 1000 0000 |
ISO 예약 |
1000 0001 -- 1111 1111 |
예약 |
상기 IPMP 툴이 원격에서 실행되는 것인 경우, IPMP 단말은, 원격 IPMP 툴과 인터페이스를 취해서 통신하는 클라이언트와 같은 경량(輕量) 코드를 필요로 한다. 예를 들면, 상기 원격 IPMP 툴이 CORBA만을 통해서 호출될 수 있는 경우, 상기 IPMP 단말은, IIOP(인터넷 ORB간 프로토콜)를 통해서 상기 원격 IPMP 툴에 적절하게 파라미터를 일괄하여 전달하는 방법을 알고 있는 스터브(stub)를 필요로 한다. 본 발명에서는, 이 경량 2진 코드를 IPMP 툴 클라이언트로서 호출한다. IPMP 툴 클라이언트는 경량이라고 간주되고 있으므로, 그것은 가능하고, 콘텐츠 스트림 내에 포함된다. 이 IPMP 툴 클라이언트를 콘텐츠 스트림 내에 포함시키는 방법은, 이후에 설명한다.
원격에서 실행되는 IPMP 툴과 통신하는 IPMP 툴 클라이언트를 갖는 것만으로서는, IPMP 단말이 이 원격 IPMP 툴을 이용하는 것을 가능하게 하는 데에 충분하지 않다. IPMP 단말은, 상기 IPMP 툴 클라이언트를 초기 설정해서 이것과 대화하는 방법을 필요로 한다. 이것을 처리하는 방법은, 이 제안의 범위를 벗어나 있다. 이 면에서, IPMP 툴 클라이언트는 기타의 통상의 IPMP 툴과 동일하게 보인다. 따라서, 상기 IPMP 툴을 정확히 가타의 IPMP 툴과 같이 초기 설정해서 호출해야 하고, 예를 들면, IPMP 툴 클라이언트와 IPMP 단말과의 사이의 인터페이스 정의는, 이 IPMP 툴 클라이언트가 동작하게 되어 있는 OD 또는 ESD 사이의 IPMP 기술자에 포함되어도 좋다.
Tool_Location_ID가 ObOOOOOlO인 경우, 이것은, IPMP 툴 매니저가 http 프로토콜에 의해서 특정의 IPMP 툴을 다운로드해야 하는 것을 의미한다. ObOOOOOll은, ftp 프로토콜을 사용해야 하는 것을 의미한다. ServerAddress(예를 들면, www.panasonic.com) 및 fullpath(예를 들면, /ipmptools/encryption/tool1.zip)은, 이 특정의 IPMP 툴을 검색하는 장소를 확실하게 정의한다. IPMP 툴 매니저가 http 또는 ftp 프로토콜을 실시해서 필요한 IPMP 툴을 검색하는 방법은, 본 발명의 응용 과제이다. 특정의 IPMP 툴을 검색하는 데에 사용 가능한 복수 종류의 프로토콜(https, ssl)이 있는 경우도 있다. ISO 예약 비트 범위 0000100--1000000은, 복수 종류의 프로토콜을 포함하도록 설계되어 있다.
IPMP 툴 제공자가 그 자체의 독점 프로토콜을 사용하고 싶은 경우에는, 비트 범위 1000001-1111111을 사용하면 좋다.
IsCompressed 비트는, 지정 툴이 압축되어 있는 것인가 아닌가의 플래그를 설정한다. 압축되어 있는 경우, IPMP 툴 매니저는, compressionMethod 란에 명시된 압축 방법에 따라서 상기 툴을 신장(伸張)할 필요가 있다. PC용 압축 방법은 다수있고, 특히 PKZip, LHArc, ARJ, 및 ZOO가 있다. 매킨토시에서는, StuffIt, CompactPro 및 기타가 있다. 복수의 압축 방법을 IPMP에서 사용할 수 있도록 할 수도 있고, 또는 1개의 압축 방법을 디폴트로서 지정할 수도 있다.
IPMP_ToolES
Mpeg4 시스템의 데이터에 있어서, 본 발명에서는, 기본 스트림 간에(상기에서 제안한 IPMP 툴 클라이언트를 포함하는) 2진 IPMP 툴을 포함한다. 그 목적을 달성하기 위해서, 본 발명에서는, 기본 스트림에 대응하는 디코더 구성 기술자에 새로운 스트림 타입을 정의한다.
스트림 타입 "IPMPToolStream"을 이하와 같이, 제안한다. 0xOA-0x1F가 ISO 사용을 위해서 예약되어 있으므로, 이 스트림 타입에 할당되는 값을 0xOA로 설정한다. 따라서, Mpeg4 시스템 규격의 현재의 버전에서 정의된 스트림 타입 표를, 하기와 같이 변경한다.
(표 6)
IPMP Remote_Call_Mechanism
스트림 타입 값 |
스트림 타입 기술(記述) |
0x00 |
금지 |
0x01 |
ObjectDescriptorStream (ISO/IEC 14496-1 참조) |
0x02 |
ClockReferenceStream (ISO/IEC 14496-1 참조) |
0x03 |
SceneDescriptionStream (ISO/IEC 14496-1 참조) |
0x04 |
VisualStream |
0x05 |
AudioStream |
0x06 |
MPEG7Stream |
0x07 |
IPMPStream (ISO/IEC 14496-1 참조) |
0x08 |
ObjectContentInfoStream (ISO/IEC 14496-1 참조) |
0x09 |
MPEGJStream |
0x0A |
IPMPToolStream |
0x0B - 0x1F |
ISO 사용에 예약 |
0x20 - 0X3F |
이용자 전용 |
상기 IPMPToolStream을 복호하는 디코더는, IPMP 툴 매니저이다. 0x0A의 스트림 타입을 참조하는 경우에, IPMP 단말은, 구문 해석하는 IPMP 툴 매니저에 상기 기본 스트림을 인도한다. IPMPToolStream은, 초기 오브젝트ㆍ디스크립터 OD에 통상 배치되어 있다.
IPMP_ToolES의 구문(構文)
(수식 2)
class IPMP_ToolES
{
IPMP_Tool ipmp_tools[0 .. 255];
}
class IPMP_Tool
{
bit(128)IPMP_Tool_ID;
bit(8) Tool_Format_ID;
bit(1) isCompressed;
if (isCompressed)
{
bit(7) compressionMethod;
}
bit(1) isSigned;
if (isSigned)
{
bit(8) signature_Algorithm[];
bit(8) signature_Parameters[];
bit(1) IPMP_Tool_List_Signature[];
}
bit(16) Tool_Size;
bit(Tool_Size) Tool_Body;
}
IPMP_ToolES의 의미
IPMP_Too1_ID, Tool_Format_ID는, 상기에서 정의되어 있는 내용과 동일한 의미를 갖는다.
상기 기본 스트림에 포함된 IPMP_Tool은, IPMP_Tool의 보전성을 보증하는 데에 어떠한 특정의 서명 알고리즘을 이용해서 서명 가능하다.
상기 서명의 확인 후, IPMP 툴 매니저는, Tool_Size에 의해서 지정된 크기의 Tool_Body를 하드디스크 또는 물리적인 메모리에 적절하게 저장한다. 상기 단말 또는 메시지 라우터(router)는, 그것을 인식하고 있다.
상기 IPMPToolStream에 포함 가능한 IPMP 툴은, 제안한 IPMP 툴 클라이언트를 포함한다. 기본 스트림으로부터의 검색 및 IPMP 단말에 의한 초기 설정 후에,IPMP 툴 클라이언트는, 원격 IPMP 툴과 대화한다. 그러나 상기 단말에 있어서, 상기 IPMP 툴 클라이언트는, 고유한 IPMP_Tool_ID를 갖는 통상의 IPMP 툴과 별로 다르지 않다.
1.3 IPMP 툴 매니저
IPMP 툴 매니저는, 시스템의 디멀티플렉서의 전 또는 후에 위치할 수 있다. 그 기능성은, 콘텐츠 스트림 내에 있는 IPMP 툴 리스트를 구문 해석하는 것이다.
도 4에 나타내는 선도(線圖)는, IPMP 툴 매니저가 Mpeg4-IPMP 시스템에 구성된 예를 나타낸다.
IPMP 툴 매니저는, 다음 4개의 단계를 실행한다.
ㆍ단계 1: 입력 IPMP 데이터를, IPMP 툴 리스트를 취득하여 구문 해석한다. 상기 리스트가 없는 경우, 단계 4로 진행하고, 기타의 경우, 정규의 구문에 따라서 상기 IPMP 툴 리스트간의 IPMP 툴 정보를 구문 해석한다.
ㆍ단계 2: 모든 요구 IPMP 툴이 단말에 입수되는 경우, 단계 4로 진행한다.
ㆍ단계 3: IPMP 툴 정보에 의해서 지정된 필요한 IPMP 툴을 검색하고, 검색이 성공하지 않은 경우, 중지하고, 기타의 경우, 단계 4로 진행한다.
ㆍ단계 4: 전 IPMP 툴을 양호하게 취득한 후, 액세스 허가가 있는 경우, 이용 가능한 콘텐츠는, 데이터 버퍼에 흐르기 시작할 수 있게 된다.
콘텐츠 스트림을 수신할 때에, IPMP 툴 매니저는, 모든 콘텐츠 스트림에 관한 고유의 헤더인 IPMP 툴 리스트 패킷 플래그를 탐색함으로써, 상기 콘텐츠 스트림을 우선 조사한다. IPMP 툴 정보 패킷의 상기 플래그가 발견되지 않는 경우, 단계 4로 점프한다.
제3의 단계에 있어서, IPMP 툴 매니저는, 위치 식별자 타입 ID 및 위치 식별자 상세를 조사함으로써, 각각의 IPMP 툴을 검색하고자 시도한다. 1개의 IPMP 툴에 대응하는 2개 이상의 위치 식별자가 있는 경우, 상기 IPMP 툴 매니저는, 우선 위치 식별자(1)를 이용해서 상기 IPMP 툴을 검색하려고 시도하고, 그것이 실패한 경우, 이어서 위치 식별자(2)를 이용해서 검색하고자 시도한다.
위치 식별자 타입이 「로컬」인 경우, IPMP 툴 매니저는, 지정된 IPMP 툴 명칭 또는 IPMP 툴 ID에 따라서 단말 자체 내를 탐색한다.
위치 식별자 타입이 「주변장치」인 경우, IPMP 툴 매니저는, 지정된 IPMP 툴 명칭 또는 IPMP 툴 ID에 따라서 모든 주변장치를 탐색한다.
위치 식별자 타입이 「원격-다운로드 가능」인 경우, IPMP 툴 매니저는, 지정된 원격 어드레스에 접속하고, 필요하면, 서로 수신 가능한 통신 채널을 IPMP 툴 매니저와 툴 제공자와의 사이에 설정한다.
위치 식별자 타입이 「원격-다운로드 불가능」인 경우, IPMP 툴 매니저는, 상기 원격 어드레스를 IPMP 시스템에 인도하는 것 뿐이다.
위치 식별자 타입이 「콘텐츠 스트림 내부」인 경우, IPMP 툴 매니저는, 툴 포맷 ID를 검사함으로써, 단말에 적합한 2진 포맷으로 상기 툴을 로드하고, 툴 기술자로서 저장된 툴 엔티티에 IPMP 툴 ID를 할당한다.
디멀티플렉서 인터페이스(304)의 다음에, 음성 디코더 버퍼(306), 영상 디코더 버퍼(307), IPMP 톨 디코더 버퍼(301), 오브젝트 디스크립터 디코더 버퍼(308),2진 데이터 포 신(binary data for scene)(BIFS) 디코더 버퍼(309), IPMP 디코더 버퍼(310)가 포함된다. 2진 데이터 포 신은, 세그먼트화된 신(scene)의 배치 장소를 나타내는 데이터가 포함된다. 306, 307, 309의 출력인, 음성 신호, 영상 신호, BIFS 신호는 아직 암호화된 그대로의 상태이다. 메모리(302)에는 툴 A(하나, 또는 복수)가 각각의 단말에 미리 설치되어 있다.
음성 디코더 버퍼(306)는 제어 포인트(331)를 통해서 음성 복호(311)에 접속되고, 영상 디코더 버퍼(307)는 제어 포인트(332)를 통해서 영상 복호(312)에 접속되고, 오브젝트 디스크립터 디코더 버퍼(308)는, 그대로 오브젝트 디스크립터 복호 (313)에 접속되고, 2진 데이터 포 신(binary data for scene)(BIFS) 디코더 버퍼 (309)는 제어 포인트(333)를 통해서 BISF 복호(314)에 접속된다. 또한, IPMP 디코더 버퍼(310)는, IPMP 메시지 라우터(324)의 IPMP 엘리멘터리 스트림(325)에 접속된다. IPMP 엘리멘터리 스트림(325)에는 암호화된 스크램블 키가 포함되어 있다.
도면에서, 흑색 동그라미로 나타낸 제어 포인트(331∼339)는, IPMP 제어 포인트이고, 제어 포인트를 통과하는 데이터는, IPMP 시스템(324)에 있는 툴을 이용하여, 필요한 처리(디스크램블, 투과 정보 검출, 카피 가드 등)가 부가된다.
이 실시형태에서는, 제어 포인트(331, 332, 333)에서는 디스크램블이 실행된다. 디스크램블에 필요한 툴(소프트)은, IPMP 메시지 라우터(324), 단말-툴 메시지 인터페이스(321)를 통해서 IPMP 툴(1, 2, 또는 3)로부터 취득한다.
음성 복호(311)는, 제어 포인트(334)를 통해서 음성 콤포지터 버퍼(315)에 접속되고, 영상 복호(312)는, 제어 포인트(335)를 통해서 영상 콤포지터 버퍼(316)에 접속되고, BIFS 복호(314)는, 제어 포인트(336)를 통해서 복호 BIFS(317)에 접속된다.
제어 포인트(334, 335, 336)에서는 투과 정보 검출이 실행된다. 투과 정보 검출에 필요한 툴(소프트)은, IPMP 메시지 라우터(324), 단말-툴 메시지 인터페이스(321)를 통해서 IPMP 툴(1, 2, 또는 3)로부터 취득한다. 예를 들면, IPMP 툴(2)은, 디스크램블에 필요한 툴이 포함되어 있고, IPMP 툴(3)은, 투과 정보 검출에 필요한 툴이 포함되어 있다.
음성 콤포지터 버퍼(315)는, 제어 포인트(337)를 통해서 합성기(318)에 접속되고, 영상 콤포지터 버퍼(316)는, 제어 포인트(338)를 통해서 합성기(318)에 접속되고, 복호 BIFS(317)는, 제어 포인트(339)와 BIFS 트리(319)를 통해서 합성기 (318)에 접속된다. 합성기(318)는 또한 출력인 렌더링(rendering)(320)에 접속된다.
제어 포인트(337, 338, 339)에서는 별개의 투과 정보 검출이나, 카피 가드 처리가 실행된다. 투과 정보 검출이나 카피 가드 처리에 필요한 툴(소프트)은, IPMP 메시지 라우터(324), 단말-툴 메시지 인터페이스(321)를 통해서 IPMP 툴(1, 2, 또는 3)로부터 취득한다.
IPMP 툴 매니저(300)는, IPMP 툴 리스트를 해석하는 해석부(350)와, IPMP 툴을 검색하는 검색부(351)가 있다. 오브젝트 디스크립터 디코더 버퍼(308)는, 그대로 오브젝트 디스크립터 복호(313)에 접속되고, 콘텐츠 스트림에 포함되는 오브젝트 디스크립터를 복호한다. 복호된 오브젝트 디스크립터는, IPMP 툴 매니저(300)에보내어지고, 필요로 되는 툴이 존재하는 위치에 대해서 특정되어서, 그 툴을 취득하기 위한 데이터가 IPMP 툴 매니저(300)로부터 툴 메시지 인터페이스(321)에 전송된다. 툴 메시지 인터페이스(321)는, 특정된 툴이 메모리(302)에 있으면 그 툴을 IPMP 툴(2 또는 3)에 이동하여, 필요한 처리를 실행한다. 특정된 툴이 메모리(302)에 없는 경우는, 인터넷 등의 전송로를 통하여, 리모트(remote) 툴(360)에 액세스하여, 필요한 툴을 IPMP 툴(1)에 다운로드한다. 또한, 필요한 툴이 원격 IPMP 툴 B(362)에만 있고, 다운로드를 할 수 없는 경우는, 암호화된 데이터를 그대로, IPMP 툴 B의 로컬 클라이언트(364)를 통해서 원격 IPMP 툴 B(362)에 보내고, 원격 IPMP 툴 B(362)에서 해독한 데이터를 되돌려 보내도록 동작한다.
IPMP 툴 매니저 및 IPMP 툴 리스트를 포함하는 이 아키텍처는, 임의의 MPEG-n 시스템에 적용할 수 있고, 도 5는, IPMP 툴 매니저가 MPEG2-IPMP 시스템에 포함되는 경우를 나타낸다. 여기에 나타내는 예에서는, 오브젝트가 포함되지 않는다. PES로 표시된 흑색 동그라미로 나타내는 제어 포인트에서 디스크램블이나, 투과 정보 정보의 해독이 실행된다.
콘텐츠의 동일 부분에 대해서는, MPEG-n의 IPMP 시스템에 관한 일반적인 구문은, 다음과 같은 흐름으로 정의 가능하다.
(수식 3)
Class UserAuthentication( )
{
Class ReceivingContentStream( )
{
Class DemuxContent( )
{
Class IPMPToolsManagenent( )
{
Class ParseIPMPToolsInformation( ); //IPMP Tool
Management module, see 2.3 for details;
Class RetrieveIPMPTools( ); //IPMP
Tool Management module, see 2.3 for
details;
{
Class ContentConsumptionStart( );
}
}
}
}
}
2. 이용자 권리 인증으로 지정되어야 하는 출력 메시지
이용자 권리 인증(RA) 방법을 표준화하는 것은 권장되고 있지 않지만, 인증 결과 또는 RA용 출력 메시지는, 기준을 정하거나, 또는 미리 정할 필요가 있다. 이메시지는, 보호 콘텐츠의 허가 사용을 위해서 MPEG-n의 IPMP 시스템을 통과할 필요가 있다.
우리는, 인증 출력 메시지를 표준 규격으로서 설정할 것을 제안하며, 그 표준은, 하기와 같이 적어도 3개의 필드로 구성되어야 한다.
(표 7)
유효성(진(眞)/위(僞)) |
라이선스 |
이용 룰(rule) |
공백 |
이용자 권리 인증(RA)의 기능에 관한 구문은, 다음과 같이 리스트된다.
(수식 4)
Class RightAuthenticationMessages( )
{
bit(1) Valid;
if(valid)
{
Class RetrieveLicence( );
Bit(16) Licence;
Class UsageRule( );
Bit(length) UsageRule;
}
}
타당성은, 이용자(단말)가 정당한가 아닌가를 나타내고, 그 결과는 단순한 진위(眞僞)의 표시라도 좋다. 사용 규칙은, 콘텐츠에 액세스하는 이용자 권리의 상세를 포함해야 한다(예를 들면, 1회 또는 복수회의 플레이). 라이선스는, 이하에 설명한다.
IPMP 데이터에 나타내는 바와 같이(예를 들면, Mpeg4-IPMP의 IPMP-ES), 콘텐츠에 스크램블이 걸리고, 그 스크램블 키를 콘텐츠 스트림 내에 전송하는 것이 공지되어 있다. 예를 들면, IPMP-ES에는 암호화된 스크램블 키가 들어 있다. 더욱 높은 보안을 확보하기 위해서, 상기 스크램블 키는, 2층의 보안을 달성하도록 추가로 암호화 가능하다. 스크램블이 걸려 있는 콘텐츠용의 스크램블 키를 암호 해독하는 데에 사용되는 제2층의 키는, 「라이선스」라고 한다. 「라이선스」는, 보호 콘텐츠를 소비하는 최소 요건이다. 라이선스는, 비기준 이용자 인증 처리 동안에 안전한 채널을 통해서 라이선스 서버로부터 검색되어야 한다.
상기 인증 출력 메시지는, 예로서 IPMP 단말이 어떠한 종류의 이용자 인증 방법을 사용해도, 이용자 인증 중에 제공되어서 출력되어야 한다.
여기서 사용 규칙은, 소비 타입 및 규칙용의 2진 포맷에 관한 표 4에서 또한 정의 가능하다. 대신에, 상기 사용 규칙을, 2진 포맷이 아니고 XML 포맷으로서 정의해서 대화할 수도 있다.
(표 8)
2진 포맷으로써 정의된 소비 타입 및 규칙
소비 타입 |
8비트 |
소비 규칙 타입4비트+변수 |
주 |
액세스 |
00000000 |
|
액세스 콘텐츠 |
플레이(스트리밍) |
00000001 |
|
스트리밍 방식 재생 |
저장 및 플레이 |
00000010 |
|
저장 및 재생 |
0001 + 플레이 카운트 |
|
0010 + 플레이 시간 |
|
0011 + 플레이 기간 |
|
0100 + 카피 카운트 |
|
0101 + 이동 카운트 |
|
예약 |
|
신 그래프(scene graph) 편집 |
00000010 |
|
|
시간 라인 편집 |
00000100 |
|
|
텍스트 또는 기타의 추가 |
|
|
|
|
예약 |
|
|
|
|
|
|
도 6에 나타내는 선도는, MPEG-4의 IPMP 시스템과 함께 작동하는 이용자 인증 모듈을 나타내고, 이용자 인증 실행 후에 콘텐츠 에이전트를 요구해서 라이선스를 이용자에게 발행한다. 이용자 ID 정보는, IPMP 시스템 내에 포함되어 있다. 이 이용자 ID 정보가 표준에서는 정의하지 않는 이용자 인증에 있어서 이용자 ID의 조회(照會)가 실행된다. 이 조회에는 예를 들면 난수(亂數)가 이용된다. 조회가 성립하면, 올바른 이용자로서 서버에 대하여 이용자 등록을 실행한다.
도 7의 선도에 나타내는 바와 같이, 2중 보안 구조는, MPEG-n의 IPMP에 관해서 실현 가능하다. 서버로부터 전송되어 온 라이선스 키는, IPMP 툴 보존부에 전송된다. 또한, 콘텐츠 스트림에 포함되는 암호화된 스크램블 키가 점선으로서 나타내는 경로를 거쳐서, IPMP 툴 보존부에 보내어진다. IPMP 툴 보존부에서는, 라이선스 키를 이용해서 스크램블 키의 해독을 실행한다. 해독된 스크램블 키는, 스크램블 키 보존부에서 보존되어서, IPMP 툴의 동작에 사용된다. 이와 같이, IPMP 툴은, 스크램블 키와 라이선스 키에 의한 2중의 보안이 걸려져 있다.
3. IPMP 툴용의 일반적인 인터페이스
데이터 암호화/암호 해독, 투과 정보, 및 결합 투과 정보 및 암호 해독을 사용하는 전형적인 용도 시나리오를 우리가 설정한 경우, 범용의 인터페이스를 정의할 수 있다.
데이터 검출 인터페이스
블록 베이스 데이터 암호화/암호 해독 툴은, 독자적인 IPMP 시스템에 있어서 더욱 중요하게 더욱 널리 사용되고, 특히 그 알고리즘은 어떠한 종류의 수렴성을 갖는 것이 공지되어 있다. 따라서, 그 인터페이스를 잘 지정해서 데이터 암호화 및 암호 해독 기법의 대부분을 나타낼 수 있고, 상기 기법의 일부는 알려져 있지 않지만, 그 인터페이스는 예측 범위 내에 있다.
데이터 암호화/암호 해독의 대칭 알고리즘용의 NESSIE 인터페이스
모든 액세스 유닛의 블록 베이스 데이터 암호화/암호 해독용의 범용 인터페이스는, IPMP 시스템으로써 정의 가능하다. IPMP 툴 제공자와 IPMP 단말 실시자의 양쪽은, 동일한 인터페이스에 따라서, 툴 제공자측에서 툴을 2진 포맷으로 컴파일하여, IPMP 단말측에 올바른 2진 툴을 전달할 수 있다. 하기의 인터페이스는, NESSIE(서명, 보전성 및 암호화에 관한 신 유럽 방식)에 의해서 정의되어 있고, 우리는, 블록 데이터 암호화/암호 해독용으로 우리가 정의한 IPMP 시스템으로써 상기 인터페이스에 적합시킬 수 있다. 상기 인터페이스는, 하기와 같이 나타내어지고, 3종류, NESSIEkeysetup( ), NESSIEencrypt( ) 및 NESSIEdecrypt( )로 구성된다.
void NESSIEkeysetup(const unsigned char*const key, struct NESSIEstruct
*const structpointer);
void NESSIEencrypt(const struct NESSIEstruct*const structpointer,
const unsigned char*const plaintext, unsigned char*const
ciphertext);
void NESSIEdecrypt(const struct NESSIEstruct*const structpointer,
const unsigned char*const ciphertext, unsigned char*const
plaintext);
투과 정보 인터페이스
투과 정보를 사용하는 목적에 관해서, 4개의 주요 분야가 있다.
ㆍ저작권 보호--미디어 데이터의 정당한 소유권을 결정한다.
ㆍ위법 카피 추적--위법 제조 카피를 감시하여 추적한다.
ㆍ카피 보호--미디어의 허가되지 않은 카피를 금지한다.
ㆍ화상 인증--데이터의 개조를 검출한다.
상기 분야의 각각을 분석함으로써, 다음과 같은 것을 알 수 있다. 저작권 보호의 경우, 부호화측에서 매입(埋入)을 실행하고, 오프 라인으로 검출을 실행한다. 여기서는, 기타의 실시간 암호 해독 및 복호 모듈과 함께 IPMP 단말에서 실시간 실시될 필요는 없다.
카피 보호의 경우에는, 투과 정보의 사용보다도 권리 인증 툴쪽이 훨씬 복잡한 사용 규칙을 제공할 수 있으므로, 더욱 잘 처리할 수 있다.
콘텐츠 암호화 및 복호를 제어하는 투과 정보를 사용하는 경우, 투과 정보 검출기는, IPMP 단말에서 지정해서 실장할 필요가 있다.
예로서 투과 정보 카피 제어 매입 및 검출에 어떠한 알고리즘을 사용해도, 투과 정보 검출용의 범용 인터페이스는, 다음과 같이 준거 IPMP 단말에 관해서 지정 가능하다.
PSL 투과 정보 검출(Unsigned Char* Input, Unsigned Char* WatermarkInfor)
카피 제어를 콘텐츠 제공자/디스트리뷰터측에서 채워 넣고, 암호화 및 복호 후에 카피 제어 검출을 실행하므로, 상기 인터페이스를, IPMP 단말에서 지정해서 실장함으로써, 상이한 투과 정보 검출 기법도 IPMP 단말에서 사용 가능하게 할 필요가 있다.
화상 인증에 관해서, 이 경우는 저작권 보호와 마찬가지이다. 이것은, 오프 라인으로 실행할 수 있다.
위법 카피 추적용에는, 기타의 시스템에서 널리 제안되어 사용되고 있는 콘텐츠 추적의 목적으로 이용자 ID 또는 단말 ID를 매입하는 투과 정보 매입은 우수한 기능이다. 또한, 기본적인 특징으로서 투과 정보 매입을 사용하는 것을 여기서 제안하여, IPMP 시스템에 저장되거나 재생 용도로서 콘텐츠가 위법으로 복사되는 것을 또한 방지한다. 여기서 IPMP 시스템에서는, 널리 알려져 있는 바와 같이, 처음에는 보호가 데이터 암호화/암호 해독을 통해서 실행되고, 위법 카피에 관한 추적이 투과 정보 매입을 통해서 실행된다.
예로서 투과 정보 매입, 공간 정의 영역 또는 주파수 정의 영역에 어떠한 기술을 사용해도, 예로서 이것들을 어떠한 분야, 영상 또는 음성에 사용해도, 입력 메시지 및 출력 메시지는 동일해야 하고, 그것은 다음과 같다.
PSLWatermarkEmbedding (Unsigned Char* Input, Unsigned Char*
WatermarkInfor, Unsigned Char* Output)
이 경우, 투과 정보의 검출을 오프 라인으로 실행할 수 있다.
어떠한 종류의 알고리즘이 이용자 ID 또는 단말 ID의 투과 정보 매입에 사용되는가에 관해서는, IPMP 단말 실시자의 책임이다. 이 경우, 준거 IPMP 단말이 투과 정보 매입 기능을 실시하여 ID 또는 단말 ID를 매입하고 위법 카피를 추적할 필요가 있는 IPMP 시스템에서 요건을 설정하는 한, 상기 인터페이스는, IPMP 시스템에서 지정할 필요조차도 없다.
IPMP 단말에서 사용된 독립형 투과 정보에 관한 결론에서는, 범용 인터페이스는 투과 정보를 이용한 카피 제어 검출의 경우에만 정의된다.
결합 투과 정보 검출 및 데이터 암호 해독
콘텐츠에 매입되는 암호 해독용 키는, 키 자체를 처리함으로써 콘텐츠를 보호하는 우수한 방법이다. 이러한 경우, 2개의 인터페이스를 다음과 같이 지정 가능하다.
PSLWatermarkExtraction(Unsigned Char* Input, Unsigned Char* Key)
PSLDecryption(Unsigned Char* Input, Unsigned Char* Key, Unsigned Char*
Output)
처리는, 하기와 같다.
AU용 콘텐츠 복호 →키 추출 →상기의 AU에서 추출된 키를 이용한 다음의 AU 암호 해독, 순환 규칙으로써 실행 가능하다.
4. 부분적 데이터 암호 해독
도 8에서는, 데이터 암호화 및 암호 해독을 비트 스트림 전체가 아니고 비트에 적용해서 선택할 수 있는 것을 나타내고 있다.
도 8(a)에서는, 인코더를 갖는 부분적 암호화를 나타내고 있고, 콘텐츠 제공자측에서 부호화 처리중에 중요한 비트에 관해서 암호화를 선택적으로 실행할 수 있는 것을 설명한다.
도 8(a)에 있어서, 모듈(8.1)은, MPEG2, MPEG4 등에 따라서 음성 또는 영상 등의 원래의 입력원을 스트림으로 부호화하는 인코더이다. 모듈(8.2)에서는, 선택된 비트 또는 정보가 기타의 비트 중에서 필수 또는 중요하기 때문에, 이들 비트 또는 정보를 암호화하여 콘텐츠를 보호한다. 8.0은 스위치이고, 8.8은 스위치(8.0)를 절환하는 선택기이다. 도 8(a)에서는, 선택기(8.8)는 미리 결정된 주기 또는 시간 구분에 의해서 절환 신호를 출력한다. 이에 따라서, 인코더의 출력은 결정된 시간 구분에 있어서 암호화가 실행되고, 기타의 시간은 암호화가 되지 않는다.
도 8(b)에서는, 인코더에서 인코드된 데이터 중, 암호화를 중요한 비트에 관해서 선택적으로 실행할 수 있는 예를 나타낸다. 또한, 인코더(8.1)는 콘텐츠 디스트리뷰터 중에 있는 경우만이 아니고, 콘텐츠 디스트리뷰터의 밖에 있는 경우도 포함한다. 후자의 경우이면, 콘텐츠 디스트리뷰터는, 인코드된 스트림을 수신하여, 그것을 배신(配信)한다. 이것은, 콘텐츠 디스트리뷰터가 기존 또는 그것들 자체의암호화 툴을 이용해서 부호화 콘텐츠를 보호하고 싶은 경우이다.
도 8(b)에 있어서, 모듈(8.3)은, 모듈(8.4)에서 실행되는 암호화용의 중요한 비트를 구문 해석해서 선택하는 선택기를 갖는 부분적 디코더이다. 인코드된 스트림은, 그대로 스위치(8.0)에 보내어지는 동시에, 부분적 디코더 및 선택기(8.3)에도 보내어진다. 부분적 디코더 및 선택기(8.3)는, 인코드된 데이터를 디코드하고, 중요한 데이터 부분, 예를 들면 영상 신호의 경우, I-픽처 부분이나 P-픽처 부분을 검출한다. 그리고, 중요한 데이터 부분이 검출되었을 때에, 그 부분에 대응하는 인코드 스트림의 구분을 암호기(8.4)에 보내도록 스위치(8.0)를 동작시킨다. 이 때문에, 인코더(8.1)로부터의 분기점과 스위치(8.0)와의 사이에 필요한 지연부(遲延部)를 설치해도 좋다. 부분적 디코더 및 선택기(8.3)는, 입력되는 인코드된 신호를 부분적으로 디코드해도 좋고, 전체를 디코드해도 좋다.
도 8(c)은, 디코드측의 구성을 나타낸다. 여기에는, 부분적 암호 해독을 나타내고 있다. IPMP 단말측에서 생성되는, 부분적 암호화 스트림의 암호 해독을 선택적으로 실행하는 실시형태를 나타낸다.
도 8(c)에서, 모듈(8.5)은, 모듈(8.6)에서 실행되는 암호 해독용의 비트를 구문 해석해서 검출하는 검출기를 갖는 부분적 디코더이다. 동시에, 복호된 음 또는 화상은, 모듈(8.7)로부터 출력된다. 검출기(8.5)는, 디코드를 시도함으로써, 디코드가 가능한 부분과 불가능한 부분을 검출한다. 불가능한 부분에 대해서는, 그 부분에 상당하는 스트림은 암호화되어 있는 구분이라고 판단하고, 암호화되어 있는 구분을 검출한다. 스트림 내, 암호화되어 있는 구분은 암호 해독기(8.6)에 보내져서, 암호가 해독된다.
5. IPMP 시스템용의 가능한 프로파일
상이한 애플리케이션, 상이한 단말, 상이한 벤더는, IPMP 시스템에 관한 상이한 요건을 구비하여, 다만 1개의 기준으로써 전부를 취급하는 것은 곤란하다. 기본적으로, 이 과제는, IPMP 툴이 사전 로드될 것인가, 또는 다운로드 가능한 것인가에 의존한다. 단순한 하드웨어 실현에 관해서는, 많은 경우가 Java 가상 컴퓨터를 구비하고 있으므로 어느 특정의 툴이 다운로드 가능한 세트 톱 박스의 새로운 플랫폼이나 모바일 장치에 의해서 조차도 많은 경우, 대부분의 툴은 사전 로드되거나, 또는 포함된다.
복잡함이 적은 실시를 요구하는 경우에는, 어느 모바일 또는 포터블 단말은 사전 부호화 IPMP 툴을 가질 필요가 있다. PC 애플리케이션은 매우 융통성이 있고, 툴은, 다운로드 가능 또는 사전 부호화되어 있어도 좋다.
IPMP 툴을 다운로드할 수 있는 경우, 다운로드된 IPMP 툴의 인터페이스도, 정의될 필요가 있다. 메시지 인터페이스는, 미지(未知) 또는 전용 IPMP 툴을 처리하는 IPMP 단말에 높은 유연 구조를 부여하는 우수한 해결책이지만, IPMP 단말에 대하여 더욱 복잡한 실장을 요구한다.
3개의 프로파일을 지정하는 경우, 표 5에 나타내는 바와 같이 단말 기능에 따라서 3개의 경우를 취급한다. 즉, 고정 IPMP 툴용의 단순 프로파일, 유연 IPMP 툴 및 고정 인터페이스용의 코어 프로파일, 및 유연 IPMP 툴 및 유연 인터페이스용의 고 프로파일의 3개이다.
(표 9)
상이한 단말용의 3개의 프로파일
프로파일 |
IPMP 툴 취득 |
사전 부호화 |
다운로드 완료 |
단순 프로파일고정 IPMP 툴 |
있음 |
없음 |
코어 프로파일유연 IPMP 툴 및 고정 인터페이스 |
있음 |
있음 |
고 프로파일유연 IPMP 툴 및 인터페이스 |
있음 |
있음, 더욱 많은 툴을 지원할 수 있다. |
툴이 고정되는 경우는, 표준 방법으로서 권장되는 IPMP 툴의 종류를 정의해서 제조자가 단말에 실장 가능하게 할 필요가 있다. 이 경우, 인터페이스는, IPMP 단말 실장자에 의해서 결정된다.
툴은 고정되지 않지만 인터페이스가 고정되는 경우에 관해서, 표준 방법으로서 이종(異種)의 IPMP 툴에 관한 몇 개의 범용 인터페이스를 지정할 필요가 있다.
툴과 인터페이스의 양쪽이 고정되지 않는 경우에 관해서, 메시지 인터페이스를 상세히 지정해서 표준 방법으로서 동작을 통지할 필요가 있다.
이 발명은, IPMP 툴 리스트를 구문 해석해서 IPMP 툴을 취득하는 IPMP 툴 매니저 모듈과 함께 콘텐츠 스트림 전의 IPMP 툴 리스트 패킷을 도입함으로써, 이종의 IPMP 시스템에 의해서 동일한 보호 콘텐츠를 재생하는 과제를 해결한다. IPMP 툴 포맷 ID를 지정함으로써, 상이한 포맷의 IPMP 툴을 다운로드해서 IPMP 단말에 일치시킬 수 있다. 또한, 3개의 주요한 IPMP 툴용의 일반적인 툴 인터페이스도, 이 발명에서 지정해서 IPMP 시스템을 완전하게 한다.
2층 구조는, 더욱 높은 보안을 부여할 뿐만 아니라, 상이한 이용자 인증 방법용의 출력 구조도 고정해서, 단말 호환성을 갖게 한다. 이러한 구조에서는, 이용자 인증을 상이한 벤더에 관해서 상이한 방법으로써 실시하여, 상호 운용성을 확보할 수 있다.
상이한 프로파일은, IPMP 툴을 취득해서 사용하는 단말 복잡성 및 유연성을 고려하여 정의되고, 상이한 단말 및 상이한 IPMP 툴 벤더에 관해서 광범위한 적용을 부여하면서 동일한 규준(規準)을 사용하는 것을 가능하게 한다.
도 9는, 상이한 실시의 일례에 있어서의 저작권 보호 시스템의 구성도이다. 도 9에 있어서, 1은 제공자, 2는 이용자 단말, 3은 네트워크이고, 제공자(1)와 이용자 단말(2)을 접속하고 있다. 제공자(1)는, 암호화 콘텐츠(11)와, 그 해독 키(12), 및, 저작권 보호 툴의 하나인 해독 모듈(13)과, 저작권 보호 정보의 하나인 콘텐츠의 이용 규칙(14)과, 그 이용 규칙을 관리하는 저작권 보호 툴의 하나인 이용 규칙 관리 모듈(15)을 구비하고, 이용자 단말(2)은, 초기 상태로서 아무 것도 구비하고 있지 않다.
이상과 같이 구성된 본 발명의 하나의 실시예에 있어서의 저작권 보호(IPMP) 시스템에 있어서, 저작권 보호 시스템을 갱신하고, 암호화 콘텐츠를 이용 규칙에 따라서 해독, 재생하는 방법을 이하에 설명한다.
도 10은, 본 발명의 실시예의 저작권 보호 시스템에 있어서, 제공자와 이용자 단말의 사이에서 교환하는 메시지의 흐름을 나타내는 도면이다.
도 11은, 메시지의 구체예이고, 각각의 메시지는, 「=」 기호의 좌변에 나타내는 미리 등록되어 있는 메시지 항목 이름과, 「=」에 후속하는 메시지 항목의 값(데이터)의 조합으로서 구성된다.
우선, 이용자 단말(2)은, 시청하고 싶은 콘텐츠를 보유한 제공자에 이용자 등록을 해서 필요한 저작권 보호(IPMP) 툴을 입수하기 위하여, 메시지 1을 제공자 (1)에게 보낸다. 메시지 1은, 메시지 항목으로서, 메시지 ID(식별자), 이용자 이름, 지불 방법, 및 이용자 단말 정보로 구성된다. 각각의 메시지 항목의 값은 이하와 같다. 메시지 1의 목적은, 이용자 등록이므로, 메시지 ID의 값은 「이용자 등록」을 나타내는 값이고, 등록에 필요한 이용자 이름의 값은, 「마츠시타 타로」이다. 또한, 시청하는 콘텐츠의 대가의 지불 방법의 값은, 이용자의 크레디트 카드의 종류, 번호, 유효 기한을 포함하는 암호화된 「크레디트 카드 번호」이다. 이용자 단말 정보의 값은, Windows OS 상에서 동작하는 컴퓨터이므로 「Windows OS」이다.
이들 정보는, 네트워크(3)의 입구에서 또한 암호화되고, 출구에서 그 암호가 해독된다.
암호의 방법은, 공개 키 암호 방식이나 공통 키 암호 방식이 이용되지만, 이 내용은, 예를 들면, "오카모토외 「현대 암호」 산업도서, 1997년"에 상세히 기재되어 있다.
메시지 1을 수신한 제공자는, 이용자 이름, 해독된 크레디트 번호를 기록하고, 이용자 ID 「XYZ」을 이용자 단말(2)에 할당하여, 이용자 단말(2)에 메시지 2를 다시 보낸다. 메시지 2는, 이용자가 콘텐츠를 시청하기 위해서 필요한 초기 설정을 실행하는 것으로서, 메시지 ID의 값은, 「초기 설정」이고, 이용자 ID의 값「XYZ」과, 제공자가 보유하고 있는 콘텐츠의 일람표인 「콘텐츠 리스트」를 IPMP 정보의 값으로서 포함하고, 또한, 암호화 콘텐츠를 해독하기 위한 해독 모듈의 식별자(해독 모듈 ID)와, 그 존재하는 장소(로케이션)를, IPMP 툴 정보의 값으로서 포함한다. 또한, 콘텐츠를 이용 규칙에 따라서 시청하게 하기 위해서, 이용 규칙 관리 모듈의 식별자(이용 규칙 관리 모듈 ID)와 그 존재하는 장소(로케이션)를 IPMP 툴 정보의 값으로서 포함한다. 이 때, 해독 모듈과 이용 규칙 관리 모듈은, Windows 컴퓨터인 이용자 단말에 직접 구성되는 것이 선택된다. 메시지 2도, 이후의 메시지도, 네트워크(3)를 통과할 때에 암호화되는 것은, 말할 필요도 없다.
메시지 2를 수신한 이용자 단말은, 해독 모듈 ID와 그 로케이션에서 지정되는 해독 모듈과, 마찬가지로 이용 규칙 관리 모듈 ID와 그 로케이션에서 지정되는 이용 규칙 관리 모듈을, 파일 전송 등의 수단으로서 입수하고, 자체에 저작권 보호 툴(IPMP 툴)로서 포함한다. 이 파일 전송도 또한, 암호화된 파일 전송이고, 기타의 이용자 단말은 암호 해독의 키를 가지고 있지 않기 때문에, 모듈을 방수(傍受)했다고 해도 해독할 수 없다.
이어서, 이용자 단말(2)은, 콘텐츠 리스트로부터 시청을 희망하는 콘텐츠 1을 선택하고, 콘텐츠 요구를 메시지 ID로서 갖는 메시지 3을 제공자에게 전송한다. 메시지 3은, 또한, 이용자 ID로서 값 「XYZ」을 포함하고, 콘텐츠 정보로서 요구하는 콘텐츠 1의 ID를 포함한다.
이것을 수신한 제공자(1)는, 요구된 콘텐츠 1의 대가를, 이용자의 크레디트 카드 번호를 사용하여 크레디트 카드 회사에 청구한 후, 암호화 콘텐츠 1을 이용자단말(2)에 보내기 위해서, 메시지 4를 다시 보낸다. 메시지 4는, 메시지 ID와, 2개의 저작권 보호(IPMP) 정보, 및 콘텐츠 정보로 구성된다. 메시지 ID의 값은 「콘텐츠 배신(配信)」이고, IPMP 정보의 값은, 요구된 콘텐츠 1의 이용 규칙 1과, 암호화된 콘텐츠 1의 암호를 해독하기 위한 해독 키 1이다. 콘텐츠 정보는, 요구된 암호화 콘텐츠 1 그 자체이다. 해독 키 1은, 공개 키 암호 방식으로 암호화되어서 이용자 단말(2)에 전송되므로, 이 메시지 4를 제3자가 방수해도 해독 키의 암호를 해독할 수 없고, 콘텐츠의 누설은 일어나지 않는다.
메시지 4를 수신한 이용자 단말(2)에서는, 조금 전에 구성한 이용 규칙 관리 모듈(25)이, 이용 규칙 1을 확인하면서, 해독 모듈(23)을 제어하고, 해독 모듈(23)은, 해독 키 1을 사용하여, 암호화 콘텐츠 1을 해독하고, 해독된 콘텐츠 1을 표시 출력한다. 해독 모듈(23)이 암호화 콘텐츠 1의 암호를 해독하는 동작은, 공통 키 암호 방식이고, 상기의 문헌에 상세하게 설명되어 있다.
이어서, 도 12에 나타내는 이용 규칙 1의 하나의 실시예에 따라서, 암호화 콘텐츠 1의 해독을 실행하는 해독 모듈(23)을 제어하는 이용 규칙 관리 모듈(25)의 동작을, 도 13의 흐름도를 이용해서 이하에 설명한다.
우선, 이용 규칙 관리 모듈(25)은, 이용 규칙 1의 제1행을 조사하여, 이 콘텐츠가 이용 가능 기간 내에 들어 있는가 아닌가를, 이용자 단말이 구비하고 있는 시계로써 확인하고, 들어 있지 않으면, 처리를 종료한다.
들어 있으면 이어서, 이용자에게 이 콘텐츠를 별도의 메모리에 이동할 것인가 아닌가를 확인하고, 이동하는 경우는, 이용 규칙 1 내의 이동 가능 회수를 조사하여, 이 값이 0보다 크면, 이용자가 지정하는 메모리에 콘텐츠를 이동하고, 이동 가능 회수를 1만큼 감한다.
이어서, 이용자에게 이 콘텐츠의 카피를 만들 것인가 아닌가를 확인하고, 만드는 경우는, 이용 규칙 1 내의 카피 가능 회수를 조사하여, 이 값이 0보다 크면, 이용자가 지정하는 메모리에 콘텐츠와 그 이용 규칙을 복사하고, 카피 가능 회수를 1만큼 감한다. 카피 대상 콘텐츠의 카피 가능 회수는, 처리의 간단화를 위해서 0으로 하지만, 총 카피 회수가 초기의 카피 가능 회수를 초과하지 않도록 제어해도 좋다.
이어서, 이용자에게 이 콘텐츠를 재생할 것인가 아닌가를 확인하고, 재생하는 경우는, 이용 규칙 1 내의 재생 가능 회수를 조사하여, 이 값이 0보다 크면, 해독 모듈(23)에 콘텐츠의 해독ㆍ표시 출력을 지령한다.
지령을 받은 해독 모듈(23)은, 콘텐츠 1의 암호 해독을 실행하여 그 결과를 표시 출력하는 것은 상기와 같다.
이어서, 이용 규칙 관리 모듈(25)은, 재생 종료를 검출하고, 그때까지 재생한 시간이 무료 재생 시간을 초과했는가 아닌가를 조사하여, 초과한 경우는, 재생 가능 회수를 1만큼 감하고 종료한다.
이상 설명한 이용 규칙 관리 모듈(25)에 의한 이용 규칙 1의 관리에 따라서, 제공자(1)가 의도한 회수의 재생만이 실행된다. 동시에, 카피 회수나, 이동 회수도 제공자의 의도대로 관리된다.
또한, 본 실시예에서는, 메시지는, 미리 결정된 메시지 항목과 「=」로써 연결된 그 항목의 값(데이터)과의 조합으로서 구성되어 있지만, 메시지의 값의 의미를 알 수 있는 방법이면 무엇이라도 좋고, 예를 들면, 메시지 중의 비트의 위치에 미리 결정된 의미를 할당하는 방법이라도 좋다.
이상과 같은 구성 및 방법에 의해서, 본 발명의 갱신 가능한 저작권 보호 시스템에서는, 제공자로부터 이용자 단말에 전송되는 메시지를 이용자 단말이 해독함으로써, 저작권 보호 모듈의 갱신과, 제공자가 부여하는 이용 규칙에 따른 콘텐츠의 시청이 가능하게 된다.
즉, 메시지 중에 모듈 ID가 존재하는가 아닌가로써, 모듈의 갱신을 실행할 것인가 아닌가를 판정할 수 있고, 모듈 ID가 존재하는 경우는 로케이션의 값으로써, 어디에 모듈이 있는가를 알 수 있고, 모듈의 다운로드가 가능하게 된다.
또한, 메시지 항목 이름이 미리 결정되어 있으므로, 이 메시지 항목 이름을 탐색함으로써, 메시지 항목의 값을 얻을 수 있으므로, 메시지 항목과 그 값의 조합은 메시지 중에 어떠한 순서로 들어가 있어도 좋다.
또한, 상기와 같이, 제공자(1)는, 메시지 1에 의해서 이용자 단말(2)의 OS의 종류를 알고, 그 이용자 단말(2)에 적합한 저작권 보호 모듈(1)을 선택하여, 이용자 단말(2)에 다운로드함으로써, 이용자 단말(2)은, 가상 컴퓨터를 실장할 필요는 없다.