KR20060125460A - 컨텐츠 암호화 및 복호화 키를 생성하기 위한 시스템 비밀파라미터군 및 암호화 중간키군 배송 장치 및 방법 - Google Patents

컨텐츠 암호화 및 복호화 키를 생성하기 위한 시스템 비밀파라미터군 및 암호화 중간키군 배송 장치 및 방법 Download PDF

Info

Publication number
KR20060125460A
KR20060125460A KR1020057020506A KR20057020506A KR20060125460A KR 20060125460 A KR20060125460 A KR 20060125460A KR 1020057020506 A KR1020057020506 A KR 1020057020506A KR 20057020506 A KR20057020506 A KR 20057020506A KR 20060125460 A KR20060125460 A KR 20060125460A
Authority
KR
South Korea
Prior art keywords
content
key
group
intermediate key
time
Prior art date
Application number
KR1020057020506A
Other languages
English (en)
Inventor
마사오 노나카
유이치 후타
모토지 오모리
시게루 야마다
데츠야 이노우에
요지 구마자키
Original Assignee
마쯔시다덴기산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마쯔시다덴기산교 가부시키가이샤 filed Critical 마쯔시다덴기산교 가부시키가이샤
Publication of KR20060125460A publication Critical patent/KR20060125460A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

키 발행센터(11)는 컨텐트를 암호화하는데 이용된 컨텐츠키를 생성하기 위해 필요한 정보인 시스템 비밀 파라미터군을 서버(12)에 배송하고, 컨텐트를 복호화하는데 이용된 컨텐츠키를 생성하기 위해 필요한 정보인 암호화 중간키군 세트는 출력장치(13a∼13n)에 배송한다. 서버(12)는 시스템 비밀 파라미터군 및 시변 파라미터군에 근거해서 컨텐츠키를 생성하고, 컨텐츠키에 근거해서 컨텐츠를 암호화하고, 암호화 컨텐츠 및 시변 파라미터군을 출력장치(13a∼13n)에 배송한다. 출력장치(13a∼13n)는 암호화 중간키군 세트 및 수신한 시변 파라미터군에 근거해서 컨텐츠키를 생성하고, 컨텐츠키에 근거해서 암호화 컨텐츠를 복호화해서, 외부에 출력한다.

Description

컨텐츠 암호화 및 복호화 키를 생성하기 위한 시스템 비밀 파라미터군 및 암호화 중간키군 배송 장치 및 방법{Methods And Apparatuses For Distributing System Secret Parameter Group And Encrypted Intermediate Key Group For Generating Content Encryption And Decryption Keys}
본 발명은, 영화나 음악 등의 디지털 컨텐츠를 복수의 컨텐츠 출력장치에 암호화해서 배송하는 컨텐츠 배송 시스템에 관한 것으로, 특히, 암호화 컨텐츠를 출력장치에서 복호화하는데 이용된 특수 키를 각각의 컨텐츠 출력장치에 할당하고, 컨텐츠 출력장치에 할당된 키가 누설되어도, 누설된 컨텐츠 출력장치가 추적가능한 기술에 관한 것이다.
고속 통신로, 특히 ADSL(Asymmetrical Digital Subscriber Line), 광섬유 등의 확산에 수반해서, 음악 및 영상 등의 디지털화된 컨텐츠를 통신로를 통해 제공하는 서비스가 활발히 도입되어 왔다. 이러한 서비스의 도입으로, 허가된 복사 등과 같이 컨텐츠 불법 이용을 방지하는 저작권 보호 방식이 필요해지고 있다. 일반적으로, 이 컨텐츠 부정 이용을 방지하는 저작권 보호 방식에는, 암호 기술이 이용된다. 즉, 디지털 컨텐츠가 컨텐츠 암호화키로 암호화되어 통신로를 통해 배포되고, 그 컨텐츠 암호화키에 대응하는 컨텐츠 복호화키를 갖는 출력장치만이 암호화 컨텐츠를 복호화하여, 원래의 디지털 컨텐츠를 재생할 수 있다.
그런데, 일반적으로, 각 출력장치에 할당된 컨텐츠 복호화키는 비밀로 저장된다. 그러나, 공격자가 전체 출력장치에 공통으로 할당된 컨텐츠 복호화키를 취득할 가능성이 있다. 출력장치에 할당된 컨텐츠 복호화키가 일단 누설되면, 누설원을 추적할 수 없는 컨텐츠 복호화키를 이용하여 디지털 컨텐츠를 복호화하는 부정한(unauthorized) 출력장치를 만들어, 컨텐츠의 부정 이용을 실시할 수 있다. 이 컨텐츠 부정 이용을 방지하는 수단으로서, 출력장치마다 키를 할당하여 누설원인 출력장치를 추적할 수 있는 시스템이 제안되고 있다. 방송국형의 컨텐츠 배송에 있어서, 컨텐츠 부정 이용을 방지하는 방법으로서, 예를 들면 비특허 문헌 1("디지털 방송국 시스템의 구조", 영상 구조 미디어 학회편, 오옴 사) 에 개시된 컨텐츠 배송 시스템이 있다.
도 91은, 문헌 1에 기재된 종래의 컨텐츠 배송 시스템을 나타내는 것이다.
도 91에 있어서, 통신로(90)는 키 발행 센터(91), 서버(92) 및 복수의 출력장치(93a~93n)를 서로 연결하고 있는 통신로이고, 인터넷 등의 네트워크로 실현되고 있다. 또, 키 발행 센터(91) 및 복수의 출력장치(93a~93n)의 전체 세트는, 미리 하나의 개별키(IKa …IKn)를 공유하고 있다. 예를 들면, 미리, 키 발행 센터(91) 및 출력장치(93a)는 개별키(IKa)를 공유하고, 키 발행 센터(91) 및 출력장치(93b)는 개별키(IKb)를 공유하고, 키 발행 센터(91) 및 출력장치(93n)는 개별키(IKn)를 공유하고 있다.
우선, 모든 출력장치(93a~93n)에서 중간키(MK)를 공유하는 방법을 설명한다. 키 발행 센터(91)는 중간키(MK)를 생성하고, 그 중간 키(MK)를 서버(92)에 송신한다. 다음에, 출력장치(93a~93n)와 각각 미리 공유하고 있는 개별키(IKa, IKb, …IKn)에 근거해서, 그 중간 키(MK)를 암호화하고, 각각의 암호문(Enc(IKa, MK), Enc (IKb, MK), …, Enc (IKn, MK))을 결합한 값을 암호화 중간키군(ENCMKG=Enc(IKa,MK)∥Enc(IKb,MK)∥…Enc(IKn, MK))으로서 복수의 출력장치(93a~93n)에 배송한다. 여기서," ∥"는 결합 기호를 나타내고, Enc(K, P)는 평문P이 암호화키(K)로 암호화된 암호문을 나타낸다. 비특허 문헌 1에 있어서, 암호화 중간키군(ENCMKG)은 EMM(Entitlement Management Message)로 칭해지고, 개별키(IKa~IKn)는 마스터키(Km)로 칭해지고, 중간키(MK)는 워크키(Kw)로 칭해진다. 암호화 중간키군(ENCMKG)를 수신한 복수의 출력장치(93a~93n)는, 암호화 중간키(ENCMKG)중에서 자신의 개별키에 대응하는 암호문을 추출하고, 개별키에 근거해 그 암호문을 복호화하여, 중간키(MK)를 취득한다. 따라서, 공통의 중간키(MK)는 전체 출력장치(93a~93n)에서 공유될 수 있다.
다음에, 모든 출력장치(93a~93n)에서 컨텐츠(CNT)를 복호화하기 위해 이용되는 컨텐츠키(CK)를 공유하는 방법에 대해 설명한다. 서버(92)는, 컨텐츠키(CK)를 생성하고, 출력장치(93a~93n)와 공유된 중간키(MK)에 근거해서, 그 컨텐츠키(CK)를 암호화하고, 그 암호문(Enc(MK, CK))을 암호화 컨텐츠키(ENCCK)로서 복수의 출력장치(93a~93n)에 배송한다. 암호화 컨텐츠키(ENCCK)를 수신한 복수의 출력장치(93a~93n)는, 중간키(MK)에 근거해 암호화 컨텐츠키(ENCCK)를 복호화하고, 컨텐츠키(CK)를 취득한다. 따라서, 공통의 컨텐츠키(CK)가 전체 출력장치(93a~93n)에서 공유될 수 있다.
마지막으로, 컨텐츠 배송 동작을 설명한다. 우선, 서버(92)는 외부로부터 컨텐츠(CNT)를 수신하고, 컨텐츠키(CK)에 근거해 컨텐츠(CNT)를 암호화하고, 암호화 컨텐츠(ENCCNT=Enc(MKCNT))를 복수의 출력장치(93a~93n)에 배송한다. 암호화 컨텐츠(ENCCNT)를 수신한 복수의 출력장치(93a~93n)는, 컨텐츠키(CK)에 근거해 암호화 컨텐츠(ENCCNT)의 복호화를 실시해서, 그 복호화 컨텐츠(DECCNT)를 외부에 출력한다.
여기서, 키 발행 센터(91)는 중간키(MK)를 갱신하는 것에 의해서, 어느 고유의 개별키를 갖는 출력장치를 무효화하여, 컨텐츠(CNT)를 복호화할 수 없게 한다. 여기에서, 출력장치(93a)의 개별키를 갖는 출력장치가 무효화되는 경우에 대해 설명한다. 우선, 키 발행 센터(91)는 중간키(MK)를 새롭게 생성하여, 그 중간 키(MK)를 서버(92)에 송신한다. 그 후, 출력장치(93a)와 개별키(IKa)가 미리 공유되고 있는 것을 제외한 각각의 개별키(IKb~IKn)를 이용하여, 그 중간 키(MK)를 암호화하고, 각각의 암호문(Enc(IKb, MK), …, Enc (IKn, MK))을 결합한 값을 암호화 중간키군(ENCMKG=Enc(IKb, MK)∥Enc(IKn, MK))으로서 복수의 출력장치(93a~93n)에 배송한다. 따라서, 출력장치(93a) 이외의 출력장치(93b~93n)는 중간키(MK)를 취득할 수 있다. 그러므로, 컨텐츠키(CK)가 취득되므로, 암호화 컨텐츠(ENCCNT=Enc (MKCNT))가 복호화될 수 있다. 그렇지만, 출력장치(93a)는 중간키(MK)를 취득할 수 없으므로, 컨텐츠키(CK)가 획득되지 않고, 암호화 컨텐츠(ENCCNT=Enc(MKCNT))는 복호화될 수 없다. 따라서, 키 발행 센터(91)는 출력장치를 무효화할 수 있다. 또한, 출력장 치(93a) 이외의 출력장치(93b~93n)가 무효화되는 경우에, 출력장치(93a)에서 유사한 동작이 취해지지만, 중간키(MK)를 암호화하기 위해 이용되는 개별키는 달라진다.
그래서, 이 시스템은, 공격자가 출력장치(93a~93n)의 하나에 내장된 개별키를 부정하게 취득하고, 그 개별키를 이용하여 출력장치를 만들었다고 해도, 대상 출력장치를 무효화하는 대책이 설립될 수 있도록, 그 출력장치에 내장된 개별키로부터 누설원인 출력장치를 추적할 수 있게 한다.
출력장치(93a~93n) 중 어느 하나에 내장된 개별키가 부정하게 취득되었을 때, 상기 서술된 방법에 부가하여, 공격자가 그 개별키를 이용해 중간키(MK)를 취득하고, 그 중간 키(MK)가 내장된 부정한 출력장치를 만드는 경우를 가정한다. 그러나, 종래의 구성에서, 중간키(MK)는 모든 출력장치(93a~93n)에 공통의 값이다. 그러므로, 부정한 출력장치에 내장된 중간키로부터 누설원인 출력장치가 추적될 수 없다고 하는 문제가 있다.
상기 과제를 해결하기 위해, 본 발명은 공격자가 중간키가 내장된 부정한 출력장치를 만들었다고 해도, 누설된 출력장치를 추적할 수 있는 컨텐츠 배송 시스템을 제공하는 것을 목적으로 한다.
본 발명은 적어도 하나의 중간키로 이루어진 중간키군에 근거해서 암호화 컨텐츠를 복호화해서 복호화 컨텐츠를 출력하고, 컨텐츠를 암호화하여 암호화 컨텐츠를 배송하는 컨텐츠 배송 서버에 네트워크를 통하여 연결된 컨텐츠 출력 장치로서, 암호화 컨텐츠를 수신하는 컨텐츠 수신부; 중간키군을 보유하는 중간키군 저장부; 컨텐츠 배송 서버와 미리 공유된 적어도 하나의 시변 파라미터로 구성된 시변 파라미터군을 네트워크를 통하여 수신하는 시변 파라미터군 수신부; 수신된 시변 파라미터군 및 중간키군에 근거해 컨텐츠 복호화키를 생성하는 컨텐츠 복호화키 생성부; 및 컨텐츠 복호화키에 근거해서 암호화 컨텐츠를 복호화하는 컨텐츠 복호화부를 포함한다.
본 발명에 따른 컨텐츠 출력장치는, 컨텐츠 출력장치에 포함된 기능을 갖는 각각의 컨텐츠 출력장치에 미리 주어진 개별키를 보유하는 개별키 저장부; 중간키군을 암호화하여 각각 얻어진 암호화 중간키군을 포함하는 암호화 중간키군 세트를 네트워크를 통하여 수신하는 암호화 중간키군 세트 수신부; 및 개별키에 근거해서 상기 암호화 중간키군 세트의 암호화 중간키군 중 하나를 복호화하고, 복호화 중간키군을 상기 중간키군 저장부에 보유하는 중간키군 복호화부를 더 포함한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 암호화 중간키군 세트는 제1 암호화 중간키군과 제2 암호화 중간키군을 포함하고, 상기 중간키군 복호화부는 상기 암호화 중간키군 세트의 제1 암호화 중간키군을 개별키에 근거해서 복호화해서 제1 중간키를 얻는다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 중간키군 복호화부는 상기 시변 파라미터군 수신부에 의해 수신된 시변 파라미터군에 근거해서 제1 중간키로부터 제2 중간키를 얻고, 상기 컨텐츠 복호화키 생성부는 제2 중간키에 근거해서 암호화 중간키군 세트의 제2 암호화 중간키군을 복호화해서, 컨텐츠 복호화키를 생성한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 제1 중간키는 각각의 컨텐츠 출력장치 및 컨텐츠 출력장치의 모델에 고유한 값이고, 상기 제2 중간키는 모든 컨텐츠 출력장치에 공통의 값이다.
본 발명에 따른 컨텐츠 출력장치는, 수신된 시변 파라미터군을 보유하는 시변 파라미터군 저장부; 및 수신된 중간키군을 네트워크를 통하여 상기 중간키군 저장부에 보유하는 중간키군 수신부를 더 포함한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 컨텐츠 복호화키 생성부는 중간키군에서 컨텐츠 복호화키를 생성하고, 적어도 하나의 미리 주어진 컨텐츠 복호화키 생성식에 따라서 시변 파라미터군을 생성하고, 컨텐츠 복호화키 생성식은 가산, 감산, 승산, 제산 중 적어도 하나를 포함한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 시변 파라미터군은 중간키중 하나를 식별하는 중간키군 식별자를 더 포함하고, 상기 컨텐츠 복호화키 생성부는 ⅰ) 중간키군 식별자에 근거해서 중간키군중에서 하나의 중간키군을 결정하고, 또한 ⅱ) 결정된 중간키군, 시변 파라미터군 및 컨텐츠 복호화키 생성식에 근거해서, 컨텐츠 복호화키를 생성한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 암호화 중간키군 세트 수신부는 암호화 중간키군이 기재되어 있는 암호화 테이블을 얻고, 상기 중간키군 복호화부는 개별키에 근거해서 암호화 테이블을 복호하여, 중간키군이 기재되어 있는 복호화 테이블을 얻고, 복호화 테이블에 요소를 식별하기 위한 요소 식별자 및 중간키군이 기재되어 있고, 복호화 테이블을 구성하는 요소 및 중간키군은 각각 요소 식별자에 대응하는 테이블 요소이다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 컨텐츠 복호화키 생성부는 대응하는 요소 식별자에 근거해서 테이블 요소의 하나인 중간키군을 선택하고, 중간키군에 근거해서 컨텐츠 복호화키를 생성한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 요소 식별자는 시변 파라미터이고, 상기 테이블 요소는 중간키군이다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 중간키군은 전체 컨텐츠 출력 장치에 공통인 중간키군 및 각각의 컨텐츠 출력장치에 고유한 중간키군으로 구성된다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 컨텐츠 복호화키 생성부는 중간키군 및 시변 파라미터군에 근거해서 시프트 레지스터를 이용하여 컨텐츠 복호화키를 계산한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 컨텐츠 복호화키 생성부는 상기 시프트 레지스터를 이용하여 좌측 시프트 연산을 행한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 중간키군 복호화부는 시변 파라미터군 및 제1 중간키를 이용하여 좌측 시프트 연산을 행하여 제2 중간키를 얻도록 하고, 상기 컨텐츠 복호화키 생성부는 제2 중간키에 근거해서 암호화 중간키군 세트의 제2 암호화 중간키군을 복호하여 컨텐츠 복호화키를 생성한다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 시변 파라미터군은 적어도 2개의 시변 파라미터로 이루어지고, 각각의 시변 파라미터는 모든 소정 항목에 따라서 변화하는 난수값 또는 시간 정보를 이용하여 생성된 값이다.
본 발명에 따른 컨텐츠 출력장치에 있어서, 상기 시변 파라미터군은 모든 컨텐츠 출력장치에 공통의 값이다.
본 발명은 암호화 컨텐츠를 생성하도록 컨텐츠를 암호화하고, 암호화 컨텐츠를 네트워크를 통하여, 암호화 컨텐츠를 복호하여 출력하는 각각의 컨텐츠 출력장치들에 배송하는 컨텐츠 배송서버로서, 적어도 하나의 미리 주어진 시스템 비밀 파라미터로 구성되는 시스템 비밀 파라미터군을 보유하는 시스템 비밀 파라미터군 저장부; 시스템 비밀 파라미터군에 근거해서, 적어도 하나의 시변 파라미터로 구성되는 시변 파라미터군을 생성하는 시변 파라미터 생성부; 시변 파라미터군을 보유하는 시변 파라미터군 저장부; 시변 파라미터군 및 시스템 비밀 파라미터군에 근거해서, 중간키군인 컨텐츠 암호화키를 생성하는 컨텐츠 암호화키 생성부; 컨텐츠 암호화키에 근거해서 컨텐츠를 암호화하는 컨텐츠 암호화부; 및 암호화 컨텐츠를 컨텐츠 출력 장치에 배송하는 컨텐츠 배송부를 포함한다.
본 발명에 따른 컨텐츠 배송서버는, 시변 파라미터군을 컨텐츠 출력장치에 배송하는 시변 파라미터군 배송부;및 컨텐츠 암호화키를 컨텐츠 출력 장치에 배송하는 컨텐츠 암호화키 배송부를 더 포함한다.
본 발명에 따른 컨텐츠 배송서버에 있어서, 상기 시스템 비밀 파라미터군은 적어도 3개 이상의 시스템 비밀 파라미터들로 이루어진다.
본 발명에 따른 컨텐츠 배송서버에 있어서, 상기 중간키군은 시스템 비밀 파라미터군 및 시변 파라미터군에 근거해서 생성된 적어도 2개 이상의 중간키들로 이루어진다.
본 발명은 네트워크를 통하여 암호화 컨텐츠를 복호화하여 출력하는 컨텐츠 출력장치 및 암호화 컨텐츠를 컨텐츠 출력장치에 배송하는 컨텐츠 배송서버에 연결되고, 각각의 컨텐츠 출력장치들에 의해 암호화 컨텐츠를 복호화하기 위한 중간키군을 발행하는 키발행센터로서, 적어도 하나의 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 생성하는 시스템 비밀 파라미터군 생성부; 시스템 비밀 파라미터군을 컨텐츠 배송서버에 송신하는 시스템 비밀 파라미터군 송신부; 시스템 비밀 파라미터군에 근거해서, 복수의 중간키군을 생성하는 중간키군 생성부; 각각의 컨텐츠 출력장치들에 주어진 개별키에 근거해서 중간키군중 하나를 암호화하는 중간키군 암호화부; 암호화 중간키군으로 이루어진 암호화 중간키군 세트를 배송하는 암호화 중간키군 세트 배송부를 포함한다.
본 발명에 따른 키발행센터에 있어서, 상기 시스템 비밀 파라미터군은 적어도 3개 이상의 시스템 비밀 파라미터들로 이루어진다.
본 발명에 따른 키발행센터에 있어서, 암호화 중간키군 세트의 암호화 중간키군중 하나를 컨텐츠 출력장치에 배송하는 중간키군 배송부; 시스템 비밀 파라미터군에 근거해서, 시변 파라미터군을 생성하는 시변 파라미터군 생성부; 시변 파라미터군을 컨텐츠 배송서버 및 컨텐츠 출력 장치에 배송하는 시변 파라미터군 배송부를 포함한다.
본 발명에 따른 키발행센터에 있어서, 상기 중간키군 생성부는 컨텐츠를 중간키군으로 복호화하는 컨텐츠 복호화 생성식의 계수를 생성한다.
본 발명은 적어도 하나의 중간키로 이루어진 중간키군에 근거해서 암호화 컨텐츠를 복호화하고, 복호화 컨텐츠를 출력하는 각각의 컨텐츠 출력 장치; 및 암호화 컨텐츠를 생성하도록 컨텐츠를 암호화하고, 암호화 컨텐츠를 컨텐츠 출력장치들에 배송하는 컨텐츠 배송서버를 포함하고, 상기 컨텐츠 출력장치 및 상기 컨텐츠 배송 서버는 네트워크를 통하여 서로 연결되고, 상기 컨텐츠 출력장치는 암호화 컨텐츠를 수신하는 컨텐츠 수신부; 중간키군을 보유하는 중간키군 저장부; 컨텐츠 배송 서버와 미리 공유된 적어도 하나의 시변 파라미터로 이루어진 시변 파라미터군을 네트워크를 통하여 수신하는 시변 파라미터군 수신부; 수신된 시변 파라미터군 및 중간키군에 근거해서 컨텐츠 복호화키를 생성하는 컨텐츠 복호화키 생성부; 및 컨텐츠 복호화키에 근거해서 암호화 컨텐츠를 복호화하는 컨텐츠 복호화부를 포함하고, 상기 컨텐츠 배송서버는 적어도 하나의 미리 주어진 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 보유하는 시스템 비밀 파라미터군 저장부; 적어도 하나의 시변 파라미터로 이루어진 시변 파라미터군을 생성하는 시변 파라미터 생성부; 시변 파라미터군을 보유하는 시변 파라미터군 저장부; 시변 파라미터군 및 시스템 비밀 파라미터군에 근거해서, 중간키군인 컨텐츠 암호화키를 생성하는 컨텐츠 암호화키 생성부; 컨텐츠 암호화키에 근거해서 컨텐츠를 암호화하는 컨텐츠 암호화부; 암호화 컨텐츠를 컨텐츠 출력 장치에 배송하는 컨텐츠 배송부를 포함한다.
본 발명은, 적어도 하나의 중간키로 이루어진 중간키군에 근거해서, 암호화 컨텐츠를 복호화해서 복호화 컨텐츠를 출력하고, 암호화 컨텐츠를 배송하는 컨텐츠 배송 서버에 네트워크를 통해서 연결된 복수의 컨텐츠 출력 장치용 프로그램으로서, 암호화 컨텐츠를 수신하고, 중간키군을 보유하고, 컨텐츠 배송 서버와 미리 공유된 적어도 하나의 시변 파라미터로 이루어진 시변 파라미터군을 네트워크를 통하여 수신하고, 수신된 시변 파라미터군 및 중간키군에 근거해서, 컨텐츠 복호화키를 생성하고, 컨텐츠 복호화키에 근거해서, 암호화 컨텐츠를 복호화한다.
본 발명은 암호화 컨텐츠를 생성하도록 컨텐츠를 암호화하고, 암호화 컨텐츠를 네트워크를 통하여, 암호화 컨텐츠를 복호화하여 출력하는 각각의 컨텐츠 출력장치들에 배송하는 컨텐츠 배송서버용 프로그램으로서, 적어도 하나의 미리 주어진 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 저장하고, 적어도 하나의 미리 주어진 시변 파라미터로 이루어진 시변 파라미터군을 생성하고, 시변 파라미터군을 저장하고, 시변 파라미터군 및 시스템 비밀 파라미터군에 근거해서, 중간키군인 컨텐츠 암호화키를 생성하고, 컨텐츠 암호화키에 근거해서 컨텐츠를 암호화하고, 암호화 컨텐츠를 컨텐츠 출력 장치에 배송한다.
본 발명은 네트워크를 통하여 컨텐츠 출력장치 및 컨텐츠 배송서버에 연결되고, 암호화 컨텐츠를 각각의 컨텐츠 출력장치들에 의해 복호화하기 위한 중간키군을 발행하는 키발행센터용 프로그램으로서, 적어도 하나의 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 생성하고, 시스템 비밀 파라미터군을 컨텐츠 배송서버에 송신하고, 시스템 비밀 파라미터군에 근거해서, 복수의 중간키군을 생성하고, 복수의 암호화 중간키군을 생성하도록 상기 각각의 컨텐츠 출력장치들에 주어진 개별키에 근거해서 복수의 중간키군중 하나를 암호화하고, 복수의 암호화 중간키군으로 이루어진 암호화 중간키군 세트를 컨텐츠 출력장치에 배송한다.
본 발명은 상기 서술된 프로그램중 하나에 따른 프로그램이 기록된 컴퓨터 판독가능 기록매체이다.
본 발명은 하나 이상의 중간키로 이루어진 중간키군에 근거해서, 암호화 컨텐츠를 복호화해서 복호화 컨텐츠를 출력하고, 암호화 컨텐츠를 배송하는 컨텐츠 배송 서버에 네트워크를 통하여 연결된 복수의 컨텐츠 출력 장치용 컨텐츠 출력 방법으로서, 암호화 컨텐츠를 수신하고, 중간키군을 유지하고, 서버와 미리 공유된 적어도 하나의 시변 파라미터로 이루어진 시변 파라미터군을 네트워크를 통하여 수신하고, 수신된 시변 파라미터군 및 중간키군에 근거해서 컨텐츠 복호화키를 생성하고, 컨텐츠 복호화키에 근거해서 암호화 컨텐츠를 복호화한다.
본 발명은 암호화 컨텐츠를 생성하도록 컨텐츠를 암호화하고, 암호화 컨텐츠를 네트워크를 통하여, 암호화 컨텐츠를 복호하여 출력하는 각각의 컨텐츠 출력장치들에 배송하는 컨텐츠 배송서버용 컨텐츠 배송 방법으로서, 적어도 하나의 미리 주어진 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 보유하고, 적어도 하나의 시변 파라미터로 이루어진 시변 파라미터군을 생성하고, 시변 파라미터군을 보유하고, 시변 파라미터군 및 시스템 비밀 파라미터군에 근거해서, 중간키군인 컨텐츠 암호화키를 생성하고, 컨텐츠 암호화키에 근거해서 컨텐츠를 암호화하고, 암호화 컨텐츠를 상기 컨텐츠 출력 장치에 배송한다.
본 발명은 네트워크를 통하여 컨텐츠 출력장치 및 컨텐츠 배송서버에 연결되고, 암호화 컨텐츠를 각각의 컨텐츠 출력장치들에 의해 복호화하기 위한 중간키군을 발행하는 키발행센터용 컨텐츠 배송 방법으로서, 적어도 하나의 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 생성하고, 시스템 비밀 파라미터군을 컨텐츠 배송서버에 송신하고, 시스템 비밀 파라미터군에 근거해서 복수의 중간키군을 생성하고, 각각의 컨텐츠 출력장치들에 주어진 개별키에 근거해서 복수의 중간키군중 하나를 암호화하고, 컨텐츠 출력장치에 복수의 암호화 중간키군으로 이루어진 암호화 중간키군 세트를 배송한다.
본 출원에 대한 기술적인 배경에 대한 더 많은 정보로서, 명세서, 도면 및 청구항을 포함하는 2003년 12월 17일에 출원된 일본 특허 출원 No.2003-419766이 참고로 완전히 본 명세서에 포함된다.
본 발명의 상기 및 그 외의 목적, 장점 및 특징은 본 발명의 구체적인 실시예를 나타내는 첨부 도면과 관련되어 이루어진 다음의 설명으로부터 분명해진다. 도면에서,
도 1은 본 발명의 제1 실시예의 컨텐츠 배송 시스템(1)을 나타내는 개요도이다.
도 2는 본 발명의 제1 실시예의 키 발행 센터(11)의 구성예를 나타내는 도이다.
도 3은 본 발명의 제1 실시예의 시스템 비밀 파라미터군(SPG)의 일 예를 나타내는 도이다.
도 4는 본 발명의 제1 실시예의 출력장치 대응 정보 저장부(114)의 구성예를 나타내는 도이다.
도 5는 본 발명의 제1 실시예의 중간키군(MKGa)의 일 예를 나타내는 도이다.
도 6은 본 발명의 제1 실시예의 암호화 중간키군 세트(ENCMKGS)의 일 예를 나타내는 도이다.
도 7은 본 발명의 제1 실시예에서 키 정보를 수신할 때의 키 발행 센터(11)의 처리를 나타내는 흐름도이다.
도 8은 본 발명의 제1 실시예의 키 발행 센터(11)의 출력장치(13a)를 무효화할 때의 키 발행 센터(11)의 처리의 흐름도이다.
도 9는 본 발명의 제1 실시예의 서버(12)의 구성예를 나타내는 도이다.
도 l0은 본 발명의 제1 실시예의 컨텐츠키 저장부(123)의 구성예를 나타내는 도이다.
도 11은 본 발명의 제1 실시예의 시변 파라미터군 저장부(125)의 구성예를 나타내는 도이다.
도 12는 본 발명의 제1 실시예의 시스템 비밀 파라미터군 저장부(127)의 구성예를 나타내는 도이다.
도 13은 본 발명의 제1 실시예의 시변 파라미터군(PRG)의 일 예를 나타내는 도이다.
도 14는 본 발명의 제1 실시예에서 컨텐츠를 배송할 때의 서버(12)의 처리를 나타내는 흐름도이다.
도 15는 본 발명의 제1 실시예에서 시스템 비밀 파라미터군을 수신할 때의 서버(12)의 처리를 나타내는 흐름도이다.
도 16은 본 발명의 제1 실시예에서 시변 파라미터군을 갱신할 때의 서버(12)의 처리를 나타내는 흐름도이다.
도 17은 본 발명의 제1 실시예의 출력장치(13a)의 구성예를 나타내는 도이다.
도 18은 본 발명의 제1 실시예의 컨텐츠키 저장부(133)의 구성예를 나타내는 도이다.
도 19는 본 발명의 제1 실시예의 중간키군 저장부(134a)의 구성예를 나타내는 도이다.
도 20은 본 발명의 제1 실시예의 개별키 저장부(139a)의 구성예를 나타내는 도이다.
도 21은 본 발명의 제1 실시예에서 암호화 컨텐츠를 수신할 때의 서버(12)의 처리를 나타내는 흐름도이다.
도 22는 본 발명의 제1 실시예에서 키를 수신할 때의 서버(12)의 처리를 나타내는 흐름도이다.
도 23은 본 발명의 제2 실시예의 컨텐츠 배송 시스템(2)의 개요도이다.
도 24는 본 발명의 제2 실시예의 키 발행 센터(21)의 구성예를 나타내는 도이다.
도 25는 본 발명의 제2 실시예의 시스템 비밀 파라미터군(SPG)의 일 예를 나타내는 도이다.
도 26은 본 발명의 제2 실시예의 중간키군(MKGa)의 일 예를 나타내는 도이다.
도 27은 본 발명의 제2 실시예에서 키를 배송할 때의 키 발행 센터(21)의 처리를 나타내는 흐름도이다.
도 28은 본 발명의 제2 실시예에서 출력장치(23a)를 무효화할 때의 키 발행 센터(21)의 처리를 나타내는 흐름도이다.
도 29는 본 발명의 제2 실시예의 서버(22)의 구성예를 나타내는 도이다.
도 30은 본 발명의 제2 실시예의 시변 파라미터군(PRG)의 일 예를 나타내는 도이다.
도 31은 본 발명의 제2 실시예에서 시변 파라미터군을 갱신할 때의 서버(22)처리를 나타내는 흐름도이다.
도 32는 본 발명의 제2 실시예의 출력장치(23a)의 구성예를 나타내는 도이다.
도 33은 본 발명의 제2 실시예에서 컨텐츠를 수신할 때의 출력장치(23a)의 처리를 나타내는 흐름도이다.
도 34는 본 발명의 제3 실시예의 컨텐츠 배송 시스템(3)의 개요도이다.
도 35는 본 발명의 제3 실시예의 키 발행 센터(31)의 구성예를 나타내는 도이다.
도 36은 본 발명의 제3 실시예의 시스템 비밀 파라미터군(SPG)의 일 예를 나타내는 도이다.
도 37은 본 발명의 제3 실시예의 중간키군(MKGa)의 일 예를 나타내는 도이다.
도 38은 본 발명의 제3 실시예에서 키를 수신할 때의 키 발행 센터(31)의 처리를 나타내는 흐름도이다.
도 39는 본 발명의 제3 실시예의 출력장치(33a)를 무효화할 때의 키 발행 센터(31)의 처리를 나타내는 흐름도이다.
도 40은 본 발명의 제3 실시예의 서버(32)의 구성예를 나타내는 도이다.
도 41은 본 발명의 제3 실시예의 시변 파라미터군(PRG)의 일 예를 나타내는 도이다.
도 42는 본 발명의 제3 실시예에서 시변 파라미터군을 갱신할 때의 서버(32a)의 처리를 나타내는 흐름도이다.
도 43은 본 발명의 제3 실시예에서 출력장치(33a)의 구성예를 나타내는 도이다.
도 44는 본 발명의 제3 실시예에서 컨텐츠를 수신할 때의 출력장치(33a)의 처리를 나타내는 흐름도이다.
도 45는 본 발명의 제3 실시예의 시스템 비밀 파라미터군(SPG)의 일 예를 나타내는 도이다.
도 46은 본 발명의 제3 실시예의 중간키군(MKGa)의 일 예를 나타내는 도이다.
도 47은 본 발명의 제3 실시예의 시스템 비밀 파라미터군(SPG)의 일 예를 나 타내는 도이다.
도 48은 본 발명의 제3 실시예의 중간키군(MKGa)의 일 예를 나타내는 도이다.
도 49는 본 발명의 제3 실시예의 시변 파라미터군(PRG)의 일 예를 나타내는 도이다.
도 50은 본 발명의 제4 실시예의 컨텐츠 배송 시스템(4)의 개요도이다.
도 51은 본 발명의 제4 실시예의 키 발행 센터(41)의 구성예를 나타내는 도이다.
도 52는 본 발명의 제4 실시예의 중간키군(MKGa)의 일 예를 나타내는 도이다.
도 53은 본 발명의 제4 실시예의 키 발행 센터(41)의 키 배송시의 처리의 흐름도이다.
도 54는 본 발명의 제4 실시예에서 출력장치(43a)를 무효화할 때의 키 발행 센터(41)의 처리를 나타내는 흐름도이다.
도 55은 본 발명의 제4 실시예의 출력장치(43a)의 구성예를 나타내는 도이다.
도 56은 본 발명의 제4 실시예에서 컨텐츠를 수신할 때의 출력장치(43a)의 처리를 나타내는 흐름도이다.
도 57은 본 발명의 제5 실시예의 컨텐츠 배송 시스템(5)의 개요도이다.
도 58은 본 발명의 제5 실시예에서 이용되는 시프트 레지스터의 예를 나타내 는 도이다.
도 59는 본 발명의 제5 실시예에서 이용하는 시프트 레지스터의 우측 시프트 연산의 동작예를 나타내는 도이다.
도 60은 본 발명의 제5 실시예에 대해 이용하는 시프트 레지스터의 좌측 시프트 연산의 동작예를 나타내는 도이다.
도 61은 본 발명의 제5 실시예의 키 발행 센터(51)의 구성예를 나타내는 도이다.
도 62는 본 발명의 제5 실시예에서 키 정보를 배송할 때의 키 발행 센터(51)의 처리의 흐름도이다.
도 63은 본 발명의 제5 실시예에서 출력장치(53a)를 무효화할 때의 키 발행 센터(51)의 처리의 흐름도이다.
도 64는 본 발명의 제5 실시예의 서버(52)의 구성예를 나타내는 도이다.
도 65는 본 발명의 제5 실시예의 중간키군 저장부(527)의 구성예를 나타내는 도이다.
도 66은 본 발명의 제5 실시예에서 시변 파라미터군(PRG)을 갱신할 때의 서버(52)의 처리를 나타내는 흐름도이다.
도 67은 본 발명의 제5 실시예의 출력장치(53a)의 구성예를 나타내는 도이다.
도 68은 본 발명의 제5 실시예에서 컨텐츠를 수신할 때의 출력장치(53a)의 처리를 나타내는 흐름도이다.
도 69는 본 발명의 제5 실시예에서 중간키군의 생성예이다.
도 70은 본 발명의 제5 실시예에서 컨텐츠키의 생성예이다.
도 71은 본 발명의 제6 실시예의 컨텐츠 배송 시스템(6)의 개요도이다.
도 72는 본 발명의 제6 실시예의 키 발행 센터(61)의 구성예를 나타내는 도이다.
도 73은 본 발명의 제6 실시예의 시스템 비밀 파라미터군(SPG)의 일 예를 나타내는 도이다.
도 74는 본 발명의 제6 실시예의 출력장치 대응 정보 저장부(614)의 구성예를 나타내는 도이다.
도 75는 본 발명의 제6 실시예의 중간키군(MKGa)의 일 예를 나타내는 도이다.
도 76은 본 발명의 제6 실시예의 암호화 중간키군 세트(ENCMKGS)의 일 예를 나타내는 도이다.
도 77은 본 발명의 제6 실시예에서 키 정보를 갱신할 때의 키 발행 센터(61)의 처리를 나타내는 흐름도이다.
도 78은 본 발명의 제6 실시예의 서버(62)의 구성예를 나타내는 도이다.
도 79는 본 발명의 제6 실시예의 시스템 비밀 파라미터군 저장부(622)의 구성예를 나타내는 도이다.
도 80은 본 발명의 제6 실시예의 시변 파라미터군(PRG)의 일 예를 나타내는 도이다.
도 81은 본 발명의 제6 실시예의 컨텐츠키 저장부(623)의 구성예를 나타내는 도이다.
도 82는 본 발명의 제6 실시예에서 시스템 비밀 파라미터군을 수신할 때의 서버(62)의 처리를 나타내는 흐름도이다.
도 83은 본 발명의 제6 실시예에서 시변 파라미터군을 갱신할 때의 서버(62)의 처리를 나타내는 흐름도이다.
도 84는 본 발명의 제6 실시예에서 컨텐츠를 배송할 때의 서버(62)의 처리를 나타내는 흐름도이다.
도 85는 본 발명의 제6 실시예의 출력장치(63a)의 구성예를 나타내는 도이다.
도 86은 본 발명의 제6 실시예의 개별키 저장부(633a)의 구성예를 나타내는 도이다.
도 87은 본 발명의 제6 실시예의 중간키군 저장부(634a)의 구성예를 나타내는 도이다.
도 88은 본 발명의 제6 실시예에서 암호화 중간키군 세트를 수신할 때의 수신장치(63a)의 처리를 나타내는 흐름도이다.
도 89는 본 발명의 제6 실시예에서 시변 파라미터군을 수신할 때의 수신장치(63a)의 처리를 나타내는 흐름도이다.
도 90은 본 발명의 제6 실시예에서 컨텐츠를 수신할 때의 수신장치(63a)의 처리를 나타내는 흐름도이다.
도 91은 종래의 컨텐츠 배송 시스템의 개요도이다.
이하 본 발명과 관련되는 컨텐츠 배송 시스템의 실시예 들에 대해서, 도면을 참조하여 설명한다.
(제1 실시예)
본 발명에 따르는 하나의 실시예로서 컨텐츠 배송 시스템(1)을 설명한다. 먼저, 도 1을 이용해 본 발명의 개요를 설명한다.
도 1에서, 통신로(10)는 키 발행 센터(11), 서버(12) 및 복수의 출력장치(13a~13n)를 연결하는 인터넷 등의 통신로이다. 이들 각각의 구성요소를 후술한다. 키 발행 센터(11)는 서버(12)와 복수의 출력장치(13a~13n) 사이에 컨텐츠키(CK)를 공유하는데 필요한 정보를 배송한다. 서버(12)는 컨텐츠(CNT)를 암호화해 배송한다. 복수의 출력장치(13a~13n)는 수신한 암호화 컨텐츠(ENCCNT)를 복호화하여 복호화 컨텐츠(DECCNT)를 외부에 출력한다. 여기서, 복수의 출력장치(13a~13n)를 갖는 키 발행 센터(11)의 모든 세트는, 각 세트의 쌍 사이에서 미리 공유된 각각 하나의 개별키를 갖는다. 예를 들면 키 발행 센터(11)와 출력장치(13a)는 개별키(IKa)를 미리 공유하고, 키 발행 센터(11)와 출력장치(13b)는 개별키(IKb)를 미리 공유하고, …, 키 발행 센터(11)와 출력장치(13n)는 개별키(IKn)를 미리 공유한다.
여기에서, 각 구성요소의 동작에 대해 더 상세하게 설명한다. 우선, 출력장치(13a~13n)에 각각 중간키군(MKGa~MKGn)을 배송하는 방법에 대해 설명한다. 처음에, 키 발행 센터(11)는, 컨텐츠키(CK)를 생성하는데 필요한 시스템 비밀 파라미터 군(SPG)을 미리 주어진 조건에 따라서 생성해, 그것을 서버(12)에 송신한다. 그리고, 그 시스템 비밀 파라미터군(SPG)에 근거해서, 출력장치(13)의 수만큼 중간키군(MKGa~MKn)을 생성한다. 다음에, 키 발생센터(11)는 각 중간키군(MKGa~MKGn)을 출력장치(13a~13n)에 대응시키고, 출력장치(13a~13n)가 갖는 개별키(IKa, IKb, …IKn)에 근거해서, 대응된 각 중간키군(MKGa~MKGn)을 암호화한다. 그 후, 결합된 암호문(Enc(IKa, MKGa), Enc(IKb, MKGb), …, Enc(IKn, MKGn))의 값이 암호화 중간키군 세트(ENCMKGS=Enc(IKa,MKGa) ∥ Enc(IKb,MKGb) ∥…Enc(IKn, MKGn))로서 복수의 출력장치(13a~13n)에 송신된다.
암호화 중간키군 세트(ENCMKGS)를 수신한 출력장치(13a)는, 할당된 개별키(IKa)를 이용하여, 암호화 중간키군 세트(ENCMKGS)의 자신의 개별키에 대응하는 암호문(Enc(IKa, MKGa))을 복호화하여, 출력장치(13a)에 대응된 중간키군(MKGa)을 취득한다. 여기서, 출력장치(13a) 이외의 출력장치(13b~13n)의 경우에서도 유사하게, 각 출력장치에 대응된 중간키는 각 출력장치가 갖는 개별키를 이용하여 취득된다.
다음에, 서버(12)가 컨텐츠를 배송할 때의 동작에 대해 설명한다. 우선, 서버(12)는, 미리 주어진 조건에 따라서 시변 파라미터군(PRG)을 생성하고, 시변 파라미터군(PRG) 및 시스템 비밀 파라미터군(SPG)에 근거해서, 컨텐츠(CNT)를 암호화하기 위해 이용된 컨텐츠키(CK)를 생성한다. 그리고, 서버(12)는 그 컨텐츠키(CK)에 근거해서, 컨텐츠(CNT)를 암호화하고, 그 암호화 컨텐츠(ENCCNT=Enc(CK, CNT)) 및 시변 파라미터군(PRG)을 복수의 출력장치(13a~13n)에 배송한다. 복수의 출력장치(13a~13n)는, 암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)를 수신하고, 시변 파라미터군(PRG)와 각 중간키군(MKGa~MKGn)에 근거해서, 암호화 컨텐츠(ENCCNT)를 복호화하기 위해 이용된 컨텐츠키(CK)를 생성한다. 그리고, 복수의 출력장치(13a~13n)는 그 컨텐츠키(CK)에 근거해 암호화 컨텐츠(ENCCNT)를 복호화하고, 그 복호화 컨텐츠(DECCNT)를 외부에 출력한다.
다음에, 출력장치(13a)에 대해 컨텐츠(CNT)를 복호화하는 것이 허가되지 않은 경우에 대해 설명한다. 우선, 키 발행 센터(1l)는, 외부로부터 출력장치(13a)를 식별하는 출력장치 식별자(AIDa)를 받아, 시스템 비밀 파라미터군(SPG)을 새롭게 생성하고, 생성된 SPG를 서버(12)에 송신한다. 그 후, 그 새롭게 생성된 시스템 비밀 파라미터군(SPG)에 근거해서, 출력장치(13a) 이외의 전체 출력장치(13b~13n)의 수만큼 중간키군(MKGb~MKGn)을 생성한다. 그리고, 출력장치 식별자(AIDa)에 대응하는 출력장치(13a) 이외의 각 출력장치(13b~13n)가 갖는 개별키(IKb~IKn)에 근거해서, 키 발행센터(11)는 각 중간키군(MKGb~MKGn)을 암호화하고, 결합된 암호문(Enc(IKb, MKGb), …, Enc (Kn, MKGn))의 값을 암호화 중간키군 세트(ENCMKGS=Enc(IKb, MKb)∥…Enc(IKn, MKn))로서 복수의 출력장치(13a~13n)에 배송한다. 따라서, 출력장치(13a)는 새롭게 생성된 중간키군을 취득할 수 없으므로, 암호화 컨텐츠(ENCCNT)를 복호화할 수 없다. 여기서, 출력장치(13a) 이외의 출력장치(13b~13n)의 경우는 출력장치(13a)의 경우와 유사하다. 그렇지만, 각 중간키군을 암호화하기 위해 이용되는 개별키가 서로 다른 점이 출력장치(13a)의 경우와 다르다.
이상이, 본 실시예의 개요이다. 이하에, 본 발명의 컨텐츠 배송 시스템의 실 시예의 컨텐츠 배송 시스템(1)에 대하여 상세하게 설명한다. 여기서, 이러한 구성요소에 대해 상세하게 설명한다.
<컨텐츠 배송 시스템(1)의 구성>
도 1에 나타낸 것같이, 컨텐츠 배송 시스템(1)은, 통신로(10), 키 발행 센터(11), 서버(12) 및 복수의 출력장치(13a~13n)로 구성된다.
키 발행 센터(11)는 컨텐츠를 암호화하기 위해 이용된 컨텐츠키(CK)를 공유하는데 필요한 정보인 시스템 비밀 파라미터군(SPG)을 서버(12)에 배송하고, 암호화 컨텐츠를 복호화하기 위해 이용된 컨텐츠키(CK)를 공유하는데 필요한 정보인 암호화 중간키군 세트(ENCMKGS)를 복수의 출력장치(13a~13n)에 배송한다. 서버(12)는 시스템 비밀 파라미터군(SPG)과 시변 파라미터군(PRG)에 근거해 컨텐츠키(CK)를 생성하고, 그 컨텐츠키(CK)로 컨텐츠(CNT)를 암호화하고, 암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)을 복수의 출력장치(13a~l3n)에 배송한다. 각각의 복수의 출력장치(13a~l3n)는 암호화 중간키군 세트(ENCMKGS) 및 수신된 시변 파라미터군(PRG)에 근거해 컨텐츠키(CK)를 생성하고, 수신된 암호화 컨텐츠(ENCCNT)를 컨텐츠키(CK)로 복호화하고, 그 복호화 컨텐츠(DECCNT)를 외부에 출력한다.
이하에, 이들 구성요소에 대해 상세하게 설명한다. 도면을 참조하여 다음의 순서로 설명한다: ⅰ) 통신로(10)의 구성, ⅱ) 키 발행 센터(11)의 구성 및 동작, ⅲ) 서버(12)의 구성 및 동작, ⅳ) 출력장치(13a~13n)의 구성 및 동작.
<통신로(10)의 구성>
통신로는 예를 들면 인터넷, 전화 회선 및 전용선 등의 네트워크이다
<키 발행 센터(11)의 구성>
도 2에 나타낸 것같이, 키 발행 센터(11)는 시스템 비밀 파라미터군 생성부(111), 시스템 비밀 파라미터군 송신부(112), 중간키군 생성부(113), 출력장치 대응 정보 저장부(114), 중간키군 암호화부(115), 암호화 중간키군 세트 배송부(116), 입력부(117), 대응 정보 갱신부(118)로 구성된다.
(1) 시스템 비밀 파라미터군 생성부(111)
시스템 비밀 파라미터군 생성부(111)는 후술하는 대응 정보 갱신부(l18)로부터 비밀 파라미터군 생성요구(REQ1)를 수신할 때, 시스템 비밀 파라미터(s)를 생성한다. 시스템 비밀 파라미터(s)를 생성하는 방법으로서, 예를 들면, 난수를 이용해 시스템 비밀 파라미터(s)를 랜덤하게 생성하는 방법이 있다. 난수를 생성하는 방법은 비특허 문헌 3에 상세하게 설명되어 있다(Knuth, DonaldE, "THE ART OF COMPUTER PROGRAMMING Vo1.2 ~ SEMINUMERICAL ALGORITHMS", ISBN 0-2-1-03822-6). 또한, 시스템 비밀 파라미터군 생성부(111)는 미리 주어진 시스템 비밀 파라미터 생성식 "a*a-b*b=0 mod N"을 만족하도록, 시스템 비밀 파라미터(a 및 b)를 생성한다. 여기서, 시스템 비밀 파라미터(a 및 b)를 생성하는 방법으로서, 시스템 비밀 파라미터(s)의 경우와 유사하게, 예를 들면, 난수를 이용해 시스템 비밀 파라미터(a 및 b)를 랜덤하게 생성하는 방법이 있다. 시스템 비밀 파라미터(s, a 및 b, a modulus N)는 예를 들면 128비트의 자연수이다. 여기서, modulus N의 값은 후술하는 중간키군 생성부(113), 시변 파라미터군 생성부(128) 및 컨텐츠 암호화키 생성부(129), 출력장치(13a~13n)의 컨텐츠 복호화키 생성부(132)에 있는 modulus N과 같은 값이다. 예를 들면, 그 값은 2^ {128} 등이다. 여기서," ^"은 승연산을 나타낸다. 예를 들면, 2^ {4}는 16을 나타낸다. 이후 같은 의미로 이용된다. 그 후, 도 3에 설명된 시스템 비밀 파라미터(s, a 및 b)로 형성된 시스템 비밀 파라미터군(SPG)을 생성하고, 생성된 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 송신부(112) 및 중간키군 생성부(113)에 출력한다. 또한, 키 발행 센터가 동작을 개시했을 때, 시스템 비밀 파라미터군 생성부(111)가 비밀 파라미터군 생성요구(REQ1)를 수신한 경우와 유사하게, 시스템 비밀 파라미터군(SPG)을 생성해서, 시스템 비밀 파라미터군 송신부(112) 및 중간키군 생성부(113)에 출력한다.
(2) 시스템 비밀 파라미터군 송신부(112)
시스템 비밀 파라미터군 송신부(112)는, 시스템 비밀 파라미터군 생성부(111)로부터 받은 시스템 비밀 파라미터군(SPG)을 통신로(10)를 통해 서버(12)에 송신한다.
(3) 중간키군 생성부(113)
중간키군 생성부(113)는, 시스템 비밀 파라미터군 생성부(111)로부터 시스템 비밀 파라미터군(SPG)을 수신했을 때, 도 4에 나타낸 것같이 출력장치 대응 정보 저장부(114)에 저장된 전체 중간키군(MKGa~MKGn)을 모두 소거한다. 그 후, 수신한 시스템 비밀 파라미터군(SPG)으로부터 비밀 파라미터(a 및 b)를 추출한다. 그리고, 미리 주어진 개별화 파라미터 생성식 "x*a-y*b=1 mod N"을 만족하도록 개별화 파라미터(x 및 y)를 생성한다. 여기서, 개별화 파라미터(x 및 y)를 생성하는 방법으로서, 예를 들면, 난수를 이용해 개별화 파라미터를 랜덤하게 생성하는 방법이 있다. 개별화 파라미터(x 및 y)는 예를 들면 128비트의 자연수이다. 또한, "*"는 승연산을 나타낸다. 예를 들면, 2*5은 10을 나타낸다. 이후 같은 의미로 이용된다. 개별화 파라미터(x 및 y)를 구하는 방법으로서, 예를 들면, 개별화 파라미터(x)를 랜덤한 자연수로서 생성하고, 개별화 파라미터 생성식 "x*a-y*b=1 mod N"에 그 개별화 파라미터(x)를 대입하여, 개별화 파라미터(y)를 생성한다. 랜덤한 개별화 파라미터(x)가 하나 선택되면, 반드시 하나의 개별화 파라미터(y)가 존재한다. 그 후, 개별화 파라미터(x 및 y)를 이용하여, 중간키군 생성부(113)는 미리 주어진 2개의 중간키 생성식 "D=s*x mod N","E=s*y mod N"에 근거해 2개의 중간키(D 및 E)를 생성한다. 여기서, " /"는 제산 연산을 나타낸다. 예를 들면, 10/2은 5를 나타낸다. 이후 같은 의미로 이용된다. 그리고, 중간키군(MKGa)과 출력장치 식별자(AIDa)를 대응시키고, 출력장치 대응 정보 저장부(114)에 저장한다. 다음에, 출력장치 대응 정보 저장부(114)에 저장된 출력장치 식별자(AIDa) 이외의 출력장치 식별자(AIDb~AIDn)에 대해서 각각 중간키군(MKGb~MKGn)을 유사하게 생성한다. 여기서, 중간키군(MKGb~MKGn)의 구성은 도 5에 나타내는 중간키군(MKGa)의 구성과 같다. 그렇지만, 각 중간키군(MKGa~MKGn)은 각각 개별적이다. 그러므로, 각 중간키군(MKGa~MKGn)을 생성하기 위해 이용되는 개별화 파라미터(x 및 y)가 서로 다른 값이 될 수 있다. 중간키군 생성부(113)가 모든 출력장치 식별자(AIDa~AIDn)에 대해서 중간키군(MKGa~MKGn)을 할당하면, 암호화 중간키군생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다.
(4) 출력장치 대응 정보 저장부(114)
출력장치 대응 정보 저장부(114)는, 도 4에 나타낸 것같이, 복수의 출력장치(13a~13n)를 식별하는 출력장치 식별자(AIDa~AIDn), 각 출력장치(13a~13n)에 미리 주어지고 있는 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)을 보유한다. 예를 들면, 도 4에서, 출력장치 식별자(AIDa)에 대응된 출력장치(13a)는 개별키(IKa)와 중간키군(MKGa)을 보유한다. 출력장치 식별자(AIDb)에 대응된 출력장치(13b)는 개별키(IKb) 및 중간키군(MKGb)을 보유한다. 출력장치 식별자(AIDn)에 대응된 출력장치(13n)는 개별키(IKn) 및 중간키군(MKGn)을 보유한다. 중간키군 생성부(113), 중간키군 암호화부(115) 및 대응 정보 갱신부(118)는 출력장치 대응 정보 저장부(114)에 액세스 가능하다.
(5) 중간키군 암호화부(115)
중간키군 암호화부(115)는, 중간키군 생성부(113)로부터 암호화 중간키군생성요구(REQ2)를 받을 때, 출력장치 대응 정보 저장부 114에 접속하고, 출력장치 식별자(AIDa~AIDn), 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)을 모두 취득한다. 그리고, 중간키군 암호화부(115)는, 우선 출력장치 식별자(AIDa)에 대해서, 대응하는 개별키(IKa)에 근거해 중간키군(MKGa)을 암호화하고, 그 암호문을 암호화 중간키군(ENCMKGa=Enc(IKa, MKGa))으로서 출력장치 식별자(AIDa)에 대응시킨다. 그리고, 다른 출력장치 식별자(AlDb~AIDn)에 대해서도 유사하게, 대응하고 있는 개별키에 근거해 중간키군을 암호화하고, 그 암호문(Enc(IKb, MKGb), …, Enc(IKn, MKGn))을 (ENCMKGb, …, ENCMKGn)로서, 각각의 출력장치 식별자(AIDb~AIDn)에 대응시킨다. 중간키군 암호화부(115)는, 도 6에 나타내는 것같이 장치 식별자(AIDa~AIDn) 및 암 호화 중간키군(ENCMKGa~ENCMKGn)으로 구성된 암호화 중간키군 세트(ENCMKGS={AIDa, ENCMKGa}∥{AIDb,ENCMKGb} …∥{AIDn, ENCMKGn}})를 생성해, 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 세트 배송부(116)에 출력한다. 여기서, 중간키군을 암호화하는데 사용되는 암호화 알고리즘은, 예를 들면 비특허 문헌 2에 기재된 블록 암호인 DES 암호 방식 등이다(Shinichi Ikeno and Kezo Koyama, The Institue of Electronics, Information and Communication Engineers ed., "Gendal Ango Riron (Modern Cryptography Theory)"). 출력장치(13a~13n)의 각 암호화 중간키군복호화부(l38)에서 이용되는 복호화 알고리즘과 같은 방식이 이용된다.
(6) 암호화 중간키군 세트 배송부(116)
암호화 중간키군 세트 배송부(116)는, 중간키군 암호화부(115)로부터 암호화 중간키군 세트(ENCMKGS)를 수신했을 때, 수신한 암호화 중간키군 세트(ENCMKGS)를 통신로(10)를 통하여 복수의 출력장치(13a~13n)에 배송한다.
(7) 입력부(117)
입력부(117)는, 외부로부터 출력장치(13a~13n)를 각각 식별하는 출력장치 식별자(AIDa~AIDn)중 하나를 입력할 수 있다. 외부로부터 출력장치 식별자(AIDa~AIDn)중 하나를 수신했을 때, 대응 정보 갱신부(118)에 수신한 출력장치 식별자를 출력한다. 또한, 입력부(117)는, 출력장치(13a~13n)중 하나를 무효화하기 위해서만 필요하다. 그러므로, 출력장치를 무효화하지 않을 때, 입력부(117)는 불필요할 수 있다.
(8) 대응 정보 갱신부(118)
대응 정보 갱신부(118)는, 입력부(117)로부터 출력장치 식별자(AIDa~AIDn)중 하나를 수신했을 때, 도 4에 나타내는 것같이 출력장치 대응 정보 저장부(114)에 액세스하고, 출력장치 대응 정보 저장부(114)에서, 수신한 출력장치 식별자, 출력장치 식별자에 대응하고 있는 개별키 및 중간키군을 삭제한다. 예를 들면, 도 4에 나타낸 것같이 출력장치 대응 정보 저장부(114)에서, 대응 정보 갱신부(118)가 출력장치 식별자(AIDa)를 수신했을 때, 대응하는 출력장치 식별자(AIDa), 개별키(IKa) 및 중간키군(MKGa)이 출력장치 대응 정보 저장부(114)에서 삭제된다. 삭제후, 대응 정보 갱신부(118)는 시스템 비밀 파라미터군 생성부(111)에 비밀 파라미터군 생성요구(REQ1)를 출력한다. 여기서, 대응 정보 갱신부(118)는, 입력부(117)와 유사하게, 출력장치(13a~13n)중 하나를 무효화하기 위해 필요하다. 그러므로, 출력장치가 무효화되지 않을 때, 대응 정보 갱신부(118)는 불필요할 수 있다.
<키 발행 센터(11)의 동작>
이상으로, 키 발행 센터(11)의 구성을 설명했다. 여기서, 키 발행 센터(11)의 동작을 설명한다. 우선, 컨텐츠키를 공유하는데 필요한 키 정보를 서버(12) 및 복수의 출력장치(13a~13n)에 배송할 때의 동작을 도 7에 나타낸 흐름도를 이용하여 설명한다. 그 후, 출력장치를 무효화하는 예로서, 출력장치(13a)를 무효화하는 동작을 도 8에 나타낸 흐름도를 이용하여 설명한다.
<키 정보 배송시의 동작>
시스템 비밀 파라미터군 생성부(111)는, 비밀 파라미터(s)를 생성한다(S1101).
시스템 비밀 파라미터군 생성부(111)는, 미리 주어진 비밀 파라미터 생성식 "a*a-b*b=0 mod N"을 만족하도록, 비밀 파라미터(a 및 b)를 생성한다(S1102).
생성된 파라미터(s, a 및 b)로 구성되는 시스템 비밀 파라미터군(SPG)를 생성해, 그 시스템 비밀 파라미터군(SPG)를 시스템 비밀 파라미터군 송신부(112) 및 중간키군 생성부(113)에 출력한다(S1103).
시스템 비밀 파라미터군 송신부(112)는 수신한 시스템 비밀 파라미터군(SPG)을 서버(12)에 송신한다(S1104).
중간키군 생성부(113)는 출력장치 대응 정보 저장부(114)에 저장되어 있는 중간키군(MKGa~MKGn)을 모두 삭제한다(S1105).
중간키군 생성부(113)는 미리 주어진 개별화 파라미터 생성식 "x*a-y*b=1 mod N"을 만족하는 개별화 파라미터(x 및 y)를 생성한다. 여기에서, 생성된 개별화 파라미터(x 및 y)는 동일한 값이 아니어야 한다. 예를 들면, 미리 생성한 개별화 파라미터를 저장하고, 미리 생성한 개별화 파라미터가 새롭게 생성한 개별화 파라미터와 일치하지 않는 것을 확인함으로써 실현할 수 있다.
개별화 파라미터(x 및 y)를 이용하여, 미리 주어진 중간키 생성식 "D=s*x mod N", "E=s*y mod N"을 각각 만족하는 중간키(D 및 E)를 생성한다(S1106).
중간키군 생성부(113)는 중간키(D 및 E)로 구성되는 중간키군을 생성하고, 중간키군이 할당되지 않은 출력장치 식별자(AIDa~AIDn)중 임의의 하나를 대응시킴으로써 중간키군을 출력장치 대응정보 저장부(114)에 저장한다(S1107).
중간키군(MKGa~MKGn)이 출력장치 대응 정보 저장부(114)에 저장된 모든 출 력장치 식별자(AIDa~AIDn)에 각각 할당되면, 동작은 단계(S1109)로 진행한다. 만약, 몇개의 출력장치 식별자(AIDa~AIDn)가 할당되지 않고 남아 있으면, 단계(S1106)로 돌아온다(S1108).
중간키군 생성부(113)는 암호화 중간키군 세트 생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다(S1109).
암호화 중간키군 세트 생성요구(REQ2)를 수신한 중간키군 암호화부(115)는 출력장치 대응 정보 저장부(114)에 액세스하고, 출력장치 식별자(AIDa~AIDn), 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)을 모두 취득한다(Sl110).
중간키군 암호화부(115)는 각 개별키(IKa~IKn)에 근거해 각각의 중간키군(MKGa~MKGn)을 암호화해서, 그 암호화 중간키군(ENCMKGa~ENCMKGn) 및 암호화에 이용된 개별키(IKa~IKn)에 각각 대응하는 출력장치 식별자(AIDa~AIDn)로 구성된 암호화 중간키군 세트(ENCMKGS)를 생성한다(S1111).
중간키군 암호화부(115)는 생성된 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 세트 배송부(116)에 출력한다(S1112).
암호화 중간키군 세트 배송부(116)는 암호화 중간키군 세트(ENCMKGS)를 수신하고, 수신한 암호화 중간키군 세트(ENCMKGS)를 복수의 출력장치(13a~13n)에 배송하고, 동작을 종료한다(S1113).
<출력장치(13a)의 무효화 동작>
입력부(117)는 수신한 출력장치 식별자(AIDa)를 대응 정보 갱신부(118)에 출력한다(S1151).
대응 정보 갱신부(l18)는 입력부(117)로부터 수신한 출력장치 식별자(AIDa) 및 출력장치 식별자(AIDa)에 대응하는 개별키(IKa) 및 중간키군(MKGa)을 출력장치 대응 정보 저장부(114)로부터 삭제한다(S1152).
대응 정보 갱신부(118)는 시스템 비밀 파라미터군 생성부(111)에 비밀 파라미터군 생성요구(REQ1)를 출력하고, 단계(S1101)로 진행한다(S1153).
또한, 출력장치(13a) 이외의 각각의 출력장치(13b~13n)를 무효화하는 동작은 출력장치(13a)의 경우와 거의 동일하다. 그렇지만, 대응 정보 갱신부(118)에 있어서, 출력장치 대응 정보 저장부(114)로부터 삭제되는 출력장치 식별자, 개별키 및 중간키군이 무효화되는 출력장치(13b~13n)에 의존해 변화하는 점이 다르다.
이상이 키 발행 센터(11)의 구성과 동작의 설명이다. 다음은 서버(12)의 구성과 동작에 대해서 설명한다.
<서버(12)의 구성>
도 9에 나타낸 것같이, 서버(12)는 입력부(121), 컨텐츠 암호화부(122), 컨텐츠키 저장부(123), 컨텐츠 배송부(124), 시변 파라미터군 저장부(125), 시스템 비밀 파라미터군 수신부(126), 시스템 비밀 파라미터군 저장부(127), 시변 파라미터군 생성부(128) 및 컨텐츠 암호키 생성부(129)로 구성된다.
(1) 입력부(121)
입력부(121)는 외부로부터 컨텐츠(CNT)를 입력할 수 있다. 외부로부터 입력되는 컨텐츠(CNT)는 출력장치(13a~13n)에 출력 가능한 포맷 형식이다. 예를 들면, MPEG 포맷의 비디오 데이터, MP3 포맷의 음성 데이터 등이다. 입력부(121)는, 외부 로부터 컨텐츠(CNT)를 수신했을 경우, 수신한 컨텐츠(CNT)를 컨텐츠 암호화부(122)에 출력한다.
(2) 컨텐츠 암호화부(122)
컨텐츠 암호화부(122)는 입력부(121)로부터 컨텐츠(CNT)를 수신했을 경우, 도 10에 나타낸 것같이 컨텐츠키 저장부(123)에 액세스해서, 컨텐츠키(CK)를 취득하고, 취득한 컨텐츠키(CK)에 근거해서 순서대로 입력부(121)로부터 입력된 컨텐츠(CNT)를 암호화한다. 여기서, 컨텐츠(CNT)를 암호화하는데 사용된 암호화 알고리즘은, 예를 들면, 블록 암호의 DES 암호 방식 등이고, 후술하는 각 출력장치(13a~13n)의 컨텐츠 복호화부(135)에서 암호화 컨텐츠(ENCCNT)를 복호화하는데 이용된 복호화 알고리즘과 같은 방법을 이용한다. 그 후, 암호화 컨텐츠(ENCCNT)를 컨텐츠 배송부(l24)에 출력한다.
(3) 컨텐츠키 저장부(123)
컨텐츠키 저장부(123)는 도 10에 나타낸 것같이 컨텐츠키(CK)를 저장하고 있다. 컨텐츠키(CK)는 컨텐츠(CNT)의 암호화키이며, 컨텐츠 암호화부(122)에서 이용되는 암호 알고리즘의 암호화키이다.
(4) 컨텐츠 배송부(124)
컨텐츠 배송부(124)는 후술하는 시변 파라미터군 저장부(125)에 저장된 시변 파라미터군(PRG)을 도 11에 나타내는 것같이 순서대로 취득하고, 컨텐츠 암호화부(122)로부터 수신된 암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)을 통신로(10)를 통하여 복수의 출력장치(13a~13n)에 배송한다.
(5) 시변 파라미터군 저장부(125)
시변 파라미터군 저장부(125)는 도 11에 나타내는 것같이 시변 파라미터군(PRG)을 보유한다.
(6) 시스템 비밀 파라미터군 수신부(126)
시스템 비밀 파라미터군 수신부(126)는 키 발행 센터(11)로부터 시스템 비밀 파라미터군(SPG)을 수신했을 때, 수신된 시스템 비밀 파라미터군(SPG)을 도 12에 나타내는 것같이 시스템 비밀 파라미터군 저장부(127)에 저장한다.
(7) 시스템 비밀 파라미터군 저장부(127)
시스템 비밀 파라미터군 저장부(127)는 도 12에 나타낸 것같이 시스템 비밀 키 군(SPG)을 보유한다. 시스템 비밀 파라미터군 수신부(126), 시변 파라미터군 생성부(128) 및 컨텐츠 암호화키 생성부(129)는 시스템 비밀 파라미터군 저장부(127)에 액세스할 수 있다.
(8) 시변 파라미터군 생성부(128)
시변 파라미터군 갱신조건이 시변 파라미터군 생성부(128)에 미리 주어지고, 그 조건이 만족된 경우, 2개의 난수(z 및 w)를 생성한다. 여기서, 난수(z 및 w)는 예를 들면 각각 128비트의 자연수이다. 또, 시변 파라미터군 생성부(128)는 시스템 비밀 파라미터군 저장부(127)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득하고, 그 중에서 비밀 파라미터(a 및 b)를 추출한다. 그리고, 미리 주어진 2개의 시변 파라미터 생성식 "Q=z*a+w*b mod N"," R=z*b+w*a mod N"에 근거해서, 2개의 시변 파라미터(Q 및 R)를 생성한다. 그 후, 도 13에 나타낸 것같이 시변 파라미터 군(PRG)을 생성해서, 시변 파라미터군(PRG)을 시변 파라미터군 저장부(125)에 저장한다. 마지막으로, 컨텐츠 암호화키 생성부(129)에 난수(z 및 w)를 출력한다. 예를 들면, 시변 파라미터군 갱신조건은 "1시간 마다", "1일 마다" 등이다. 이 조건은 시변 파라미터군 생성부(128) 등에 카운터를 설정하여 실현될 수 있다. 여기서, 시변 파라미터군 생성부(128)는 외부로부터 시변 파라미터 갱신 요구 신호를 수신할 수 있고, 시변 파라미터 갱신 요구 신호를 수신했을 때, 시변 파라미터군(PRG)을 생성할 수 있다.
(9) 컨텐츠 암호화키 생성부(129)
컨텐츠 암호화키 생성부(129)는 시변 파라미터군 생성부(128)로부터 난수(z 및 w)를 수신한 경우, 우선, 시스템 비밀 파라미터군 저장부(127)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득하고, 거기에서 비밀 파라미터(s)를 추출한다. 그 후, 미리 주어진 컨텐츠 암호화키 생성식 "CK=s*z+s*w*a/b mod N"에 근거해 컨텐츠키(CK)를 생성하고, 생성된 컨텐츠키(CK)를 컨텐츠키 저장부(123)에 저장한다.
<서버(12)의 동작>
이상으로, 서버(12)의 구성을 설명했다. 여기서 서버(12)의 동작에 대해 설명한다. 우선, 서버(12)가 출력장치(13a~13n)에 컨텐츠(CNT)를 배송하는 동작에 대해 도 14에 나타낸 흐름도를 이용해 설명한다. 그리고, 서버(12)가 키 발행 센터(11)로부터 컨텐츠키(CK)를 공유하는데 이용된 시스템 비밀 파라미터군(SPG)을 수신했을 때의 동작에 대해 도 15에 나타낸 흐름도를 이용해 설명한다. 마지막으로, 시변 파라미터군(PRG)을 갱신하는 동작을 도 16에 나타낸 흐름도를 이용해 설명한 다.
<출력장치(13a~13n)에 컨텐츠 배송시의 동작>
수신부(121)가, 외부로부터 컨텐츠(CNT)를 수신했을 때, 동작은 단계(S1202)로 진행된다. 컨텐츠(CNT)를 수신하고 있지 않는 경우, 동작은 종료된다(S1201).
수신부(121)는 수신한 컨텐츠(CNT)를 컨텐츠 암호화부(122)에 출력한다(S1202).
다음에, 그 컨텐츠(CNT)를 수신한 컨텐츠 암호화부(122)는 암호화 저장부(113)에 액세스해서, 컨텐츠키(CK)를 취득한다(S1203).
컨텐츠 암호화부(122)는 그 컨텐츠키(CK)에 근거해 컨텐츠(CNT)를 암호화하고, 암호화 컨텐츠(ENCCNT)를 컨텐츠 배송부(124)에 출력한다(S1204).
암호화 컨텐츠(ENCCNT)를 수신한 컨텐츠 배송부(124)는 시변 파라미터 저장부(125)에 액세스해서, 시변 파라미터군(PRG)을 취득한다(S1205).
컨텐츠 배송부(124)는 시변 파라미터군(PRG)과 암호화 컨텐츠(ENCCNT)를 출력장치(13a~13n)에 배송하고, 동작을 종료한다(S1206).
<키 발행 센터(11)로부터 시스템 비밀 파라미터군(SPG) 수신시의 동작>
시스템 비밀 파라미터군 수신부(126)가 키 발행 센터(11)로부터 시스템 비밀 파라미터군(SPG)을 수신할 때, 동작은 단계(S1232)로 진행된다. 시스템 비밀 파라미터군(SPG)을 수신하고 있지 않을 때, 동작은 종료한다(S1231).
시스템 비밀 파라미터군 수신부(126)는 수신한 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 저장부(127)에 저장하고서, 동작은 종료한다(S1232).
<시변 파라미터군(PRG) 갱신시의 동작>
시변 파라미터군 생성부(128)가 미리 주어진 시변 파라미터군 갱신조건을 만족할 때, 동작은 단계(S1262)로 진행된다. 시변 파라미터군 갱신조건을 만족하지 않을 때, 동작은 종료한다(S1261).
시변 파라미터군 생성부(128)는 시스템 비밀 파라미터군 저장부(127)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득하고, 거기에서 제2 비밀 파라미터(a) 및 제3 비밀 파라미터(b)를 추출한다(S1262).
시변 파라미터군 생성부(128)는 난수(z 및 w)를 생성한다(S1263).
시변 파라미터군 생성부(128)는 미리 주어진 시변 파라미터 생성식 "Q=a*z+b*w mod N", "R=b*z+a*w mod N"에 근거해 각각 시변 파라미터(Q 및 R)를 생성하고, 생성한 시변 파라미터(Q 및 R)로 구성된 시변 파라미터군(PRG)을 생성한다(S1264).
시변 파라미터군 생성부(128)는 시변 파라미터군(PRG)을 시변 파라미터군 저장부(125)에 저장한다(S1265).
시변 파라미터군 생성부(128)는 컨텐츠 암호화키 생성부(129)에 난수(z 및 w)를 출력한다(S1266).
난수(z 및 w)를 수신한 컨텐츠 암호화키 생성부(129)는 우선 시스템 비밀 파라미터군 저장부(127)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득하고, 거기에서 비밀 파라미터(s)를 추출한다(S1267).
컨텐츠 암호화키 생성부(129)는 미리 주어진 컨텐츠 암호화키 생성식 "CK=s*z+s*w*a/b mod N"에 근거해 컨텐츠키(CK)를 생성한다(S1268).
컨텐츠 암호화키 생성부(129)는 취득한 컨텐츠키(CK)를 컨텐츠키 저장부(123)에 저장하고, 동작은 종료한다(S1269).
이상이, 컨텐츠 배송 시스템(1)의 구성요소인 서버(12)의 구성과 동작이다. 계속해서, 출력장치(13a~13n)의 구성과 동작을 설명한다. 우선, 출력장치(13a)와 다른 출력장치(13b~13n)의 차이점에 대해서 설명한 뒤, 출력장치(13a)의 구성과 동작을 설명한다.
<출력장치(13a)의 구성>
도 17에 나타낸 것같이, 출력장치(13a)는 컨텐츠 수신부(131), 컨텐츠 복호화키 생성부(132a), 컨텐츠키 저장부(133), 중간키군 저장부(134a), 컨텐츠 복호화부(135), 출력부(136), 암호화 중간키군 세트수신부(137), 암호화 중간키군복호화부(138a) 및 개별키 저장부(139a)로 구성된다. 여기서, 컨텐츠 수신부(131), 컨텐츠키 저장부(133), 컨텐츠 복호화부(135), 출력부(136), 암호화 중간키군 세트수신부(137)는 출력장치(13a~13n)에 대해 공통의 구성요소이다. 한편, 컨텐츠 복호화키 생성부(132a), 중간키군 저장부(134a), 암호화 중간키군복호화부(138a), 개별키 저장부(139a)는 출력장치(13a)고유의 구성요소이다.
(1) 컨텐츠 수신부(131)
서버(12)로부터 암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)을 수신한 경우, 컨텐츠 수신부(131)는 수신한 시변 파라미터군(PRG)을 컨텐츠 복호화키 생성부(132a)에 출력하고, 그다음 암호화 컨텐츠(ENCCNT)를 컨텐츠 복호화부(135)에 출 력한다.
(2) 컨텐츠 복호화키 생성부(132a)
컨텐츠 수신부(131)로부터 시변 파라미터군(PRG)을 수신한 경우, 컨텐츠 복호화키 생성부(132a)는 먼저 도 18에 나타내는 것같이 컨텐츠키 저장부(133)에 액세스해서, 컨텐츠키 저장부(133)에 저장된 사용시변 파라미터군(UPRG)이 수신한 시변 파라미터군(PRG)과 일치하는지 확인한다. 여기서, 서로 일치하고 있으면, 컨텐츠 복호화키 생성부(132a)는 컨텐츠키 저장부(133)에 액세스하고, 저장된 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다. 만약 서로 일치하고 있지 않으면, 도 19에 나타내는 것같이 중간키군 저장부(134a)에 액세스하고, 중간키군(MKGa)을 취득한다. 그리고, 중간키군(MKGa)으로부터 중간키(D 및 E)를 추출한다. 그 후, 미리 주어진 컨텐츠 복호화키 생성식 "CK=D*Q-E*R mod N"에 근거해 컨텐츠키(CK)를 생성하고, 생성한 컨텐츠키(CK)를 컨텐츠키 저장부(133)에 저장하고, 시변 파라미터군(PRG)을 사용 시변 파라미터(UPR)로서 컨텐츠키 저장부(133)에 저장하고, 마지막으로 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다.
(3) 컨텐츠키 저장부(133)
컨텐츠키 저장부(133)는 도 18에 나타내는 것같이 컨텐츠키(CK) 및 사용 시변 파라미터군(UPRG)을 저장한다. 컨텐츠 복호화키 생성부(132a)는 컨텐츠키 저장부(133)에 액세스할 수 있다.
(4) 중간키군 저장부(134a)
도 19에 나타내는 것같이, 중간키군 저장부(134a)는 중간키군(MKGa)을 저장 한다. 컨텐츠 복호화키 생성부(132a) 및 암호화 중간키군 복호화부(138a)는 중간키군 저장부(134a)에 액세스 가능하다.
(5) 컨텐츠 복호화부(135)
컨텐츠 복호화부(135)는 컨텐츠 수신부(131)로부터 암호화 컨텐츠(ENCCNT)를 수신하고, 컨텐츠 복호화키 생성부(132a)로부터 컨텐츠키(CK)를 수신한 경우, 컨텐츠키(CK)에 근거해서 암호화 컨텐츠(ENCCNT)를 복호화한다. 복호화에 사용된 복호화 알고리즘은, 예를 들면, 블록 암호의 DES 방식 등이고, 서버(12)의 컨텐츠 암호화부(122)에서 이용된 암호화 알고리즘과 같은 방법을 이용한다. 컨텐츠 복호화부(135)는 복호화한 복호화 컨텐츠(DECCNT=Dec(CK, ENCCNT))를 출력부(136)에 출력한다. 여기서, Dec(K, C)는 복호화키(K)에 근거해 암호문(C)이 복호화될 때의 복호문이다.
(6) 출력부(136)
출력부(136)는 컨텐츠 복호화부(135)로부터 복호화 컨텐츠(DECCNT)를 수신했을 경우, 수신한 복호화 컨텐츠(DECCNT)를 외부에 출력한다.
(7) 암호화 중간키군 세트수신부(137)
암호화 중간키군 세트 수신부(137)는, 서버(12)로부터 도 6에 나타내는 것같이 암호화 중간키군 세트(ENCMKGS={AIDa, ENCMKGa} ∥…∥ {AIDn, ENCMKGn})를 수신했을 경우, 수신한 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 복호화부(138a)에 출력한다.
(8) 암호화 중간키군복호화부(138a)
암호화 중간키군 복호화부(138a)는, 암호화 중간키군 세트수신부(137)로부터 암호화 중간키군 세트(ENCMKGS)={AIDa, ENCMKGa} ∥…∥ {AIDn, ENCMKGn}를 수신했을 경우, 우선 도 20에 나타내는 것같이 개별키 저장부(139a)로부터 출력장치 식별자(AlDa) 및 개별키(lKa)를 취득하고, 수신한 암호화 중간키군 세트(ENCMKGS)로부터 그 출력장치 식별자(AIDa)에 대응하는 암호화 중간키군(ENCMKGa)을 취득한다. 그리고, 개별키 저장부(139a)에 저장된 개별키(IKa)에 근거해 대응하는 암호화 중간키군(ENCMKGa=Enc(IKa, MKGa))을 복호화한다. 복호화한 중간키군(MKGa)을 중간키군 저장부(134a)에 저장한다.
(9) 개별키 저장부(139a)
도 20에 나타내는 것같이, 개별키 저장부(139a)는 출력장치 식별자(AIDa) 및 개별키(IKa)를 보유한다. 암호화 중간키군복호화부(138a)는 개별키 저장부(139)에 액세스할 수 있다.
<출력장치(13a)의 동작>
이상으로, 출력장치(13a)의 구성을 설명했다. 여기서 출력장치(13a)의 동작에 대해 설명한다. 우선, 출력장치(13a)가 암호화 컨텐츠(ENCCNT)를 서버(12)로부터 수신했을 경우의 동작을 도 2l에 나타낸 흐름도를 이용하여 설명한다. 다음에, 출력장치(13a)가 암호화 컨텐츠(ENCCNT)의 컨텐츠키(CK)를 공유하는데 이용된 중간키군(MKGa)에 관한 정보를 포함하는 암호화 중간키군 세트(ENCMKGS)를 수신했을 경우의 동작을 도 22에 나타낸 흐름도를 이용해 설명한다.
<<서버(12)로부터 암호화 컨텐츠를 수신했을 때의 동작>>
컨텐츠 수신부(131)가 암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)을 수신한 경우, 동작은 단계(S1302)로 진행한다. 수신하고 있지 않으면, 동작은 종료된다(S1301).
컨텐츠 수신부(131)는 수신한 시변 파라미터군(PRG)을 컨텐츠 복호화키 생성부(132a)에 출력한다(S1302).
시변 파라미터군(PRG)을 수신한 컨텐츠 복호화키 생성부(132a)는 컨텐츠키 저장부(133)에 액세스하고, 수신한 시변 파라미터군(PRG)과 사용 시변 파라미터군(UPRG)이 같은 값인지 확인한다. 만약 그 값이 같으면, 동작은 단계(S1307)로 진행한다. 만약 다르면, 동작은 단계(S1304)로 진행한다(S1303).
컨텐츠 복호화키 생성부(132a)는 중간키군 저장부(134a)에 액세스하고, 중간키군(MKGa)을 취득한다(S1304).
컨텐츠 복호화키 생성부(132a)는 중간키군(MKGa)으로부터 중간키(D와 E)를 추출하고, 시변 파라미터군(PRG)으로부터 시변 파라미터(Q와 R)를 추출하고, 컨텐츠키(CK)를 미리 주어진 컨텐츠 복호화키 생성식"CK=(D*Q)-(E*R) mod N"에 근거해 생성한다(S1305).
컨텐츠 복호화키 생성부(132a)는 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력하고, 동작은 단계(S1308)로 진행된다(S1306).
컨텐츠 복호화키 생성부(132a)는 중간키군 저장부(134a)에 액세스하고, 컨텐츠키(CK)를 취득하고, 그 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다(S1307).
컨텐츠 복호화부(135)는 수신한 컨텐츠키(CK)에 근거해 암호화 컨텐츠(ENCCNT)를 복호화하고, 복호화 컨텐츠(DECCNT)를 취득한다(S1308).
컨텐츠 복호화부(135)는 그 복호화 컨텐츠(DECCNT)를 출력부(136)에 출력한다(S1309).
출력부(136)는 컨텐츠 복호화부(135)로부터 복호화 컨텐츠(DECCNT)를 수신하고, 수신한 복호화 컨텐츠(DECCNT)를 외부에 출력하고, 동작은 종료한다(Sl310).
<<암호화 중간키군 세트(ENCMKGS) 수신시의 동작>>
암호화 중간키군 세트수신부(137)가 암호화 중간키군 세트(ENCMKGS)를 수신했을 경우, 동작은 단계(S1352)로 진행된다. 암호화 중간키군 세트(ENCMKGS)를 수신하고 있지 않을 때, 동작은 종료한다(S1351).
암호화 중간키군 세트수신부(137)는 수신한 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군복호화부(138a)에 출력한다(S1352).
암호화 중간키군복호화부(138a)는 개별키 저장부(l39a)로부터 출력장치 식별자(AIDa) 및 개별키(IKa)를 취득한다(S1353).
암호화 중간키군복호화부(138a)는 수신한 암호화 중간키군 세트(ENCMKGS)로부터 출력장치 식별자(AIDa)에 대응하는 암호화 중간키군(ENCMKGa=Enc(IKa, MKGa))을 취득한다(S1354).
암호화 중간키군복호화부(138a)는 개별키(IKa)에 근거해 그 암호화 중간키군(ENCMKGa)을 복호화해서, 중간키군(MKGa)을 취득한다(S1355).
암호화 중간키군복호화부(138a)는 그 중간키군(MKGa)을 중간키군 저장부 (134a)에 저장하고, 동작은 종료한다(S1356).
이상이 컨텐츠 배송 시스템(1)의 구성요소인 출력장치(13a)의 구성과 동작이다. 여기서, 출력장치(13a)와 다른 출력장치(13b~13n)와의 차이점은, ⅰ) 출력장치(13a~13n)에 각각 고유한 중간키군(MKGa~MKGn)이 중간키군 저장부(134a)에 저장되고, ⅱ) 출력장치(13a~13n)에 각각 고유한 출력장치 식별자(AIDa~AIDn) 및 개별키(IKa~IKn)가 개별키 저장부(139a)에 저장되고, ⅲ) 컨텐츠 복호화키 생성부(132a)는 출력장치(13a~13n)에 각각 고유한 중간키군(MKGa~MKGn)을 이용하고, ⅳ) 암호화 중간키군복호화부(138a)는 출력장치(13a~13n)에 각각 고유한 개별키(IKa~IKn)를 이용한다.
<제1 실시예의 동작 검증>
제1 실시예에 있어서, 다른 중간키군(MKGa~MKGn)이 각각의 출력장치(13a~13n)에 각각 할당되어 있는 것에도 불구하고, 동일한 컨텐츠키(CK)가 전체 출력장치(13a~13n)로부터 어떻게 도출될 수 있는지 그 이유에 대해 설명한다. 우선, 각각의 중간키군(MKGa~MKGn)은 미리 주어진 중간키 생성식 "D=s*x mod N", "E=s*y mod N"을 만족하는 중간키(D 및 E)로 구성되어 있다. 또, 시변 파라미터군(PRG)은, 시변 파라미터 생성식 "Q=a*z+b*w mod N", "R=b*z+a*w mod N"을 만족하도록 생성된다. 따라서, 컨텐츠 복호화키 생성식 "CK=(D*Q)- (E*R) mod N"은
CK= (D*Q)- (E*R)
= (s*x)*(a*z+b*w)-(s*y)*(b*z+a*w)
= s*z*(x*a-y*b)+s*w*(x*b-y*a)
로 변경된다.
여기서, "x*a-y*b=1"의 조건 및 그 조건으로부터 구해진 식 "y=(x*a-1)/b"을 대입하면,
…= s*z*1+s*w*(x*b-((x*a-1)/b)*a)
= s*z+s*w*(x*(b*b-a*a)+a)/b
이다.
여기서, 비밀 파라미터 생성식 "a*a-b*b=O mod"을 만족하도록 비밀 파라미터(a 및 b)가 미리 생성된다. 그러므로,
…=s*z+s*w*a/b
이다.
이것은 전체 출력장치(13a~13n)에 대한 공통 파라미터만으로 구성된다. 그러므로, 전체 출력장치(13a~13n)는 암호화키(CK)의 공통의 값을 도출한다. 또한, 이것은 컨텐츠 암호화키 생성식 "CK=s*z+s*w*a/b"과 일치한다.
<제1 실시예의 효과>
본 발명의 제1 실시예에서, 컨텐츠(CNT)를 복호화하기 위해 이용되는 컨텐츠키(CK)는, 중간키군 및 시변 파라미터군(PRG)으로부터 생성된다. 따라서, 컨텐츠키(CK)만이 내장된 부정한 출력장치는, 시변 파라미터군(PRG)을 수신해도, 다음의 컨텐츠키를 갱신할 수 없다. 또, 중간키군이 내장된 부정한 출력장치에 대해서, 키 발행 센터(11)의 출력장치 대응 정보 저장부(114)에 포함되는 중간키군과 출력장치 식별자의 대응 정보에 근거해서, 하나의 출력장치(13a~13n)에 내장된 개별키 (KIa~KIn)중에서 어느 개별키가 중간키군의 기본이 되는지를 특정할 수 있다. 상기 두개의 사항에 따라서, 부정한 출력장치가 특정되어 무효화될 수 있다.
<제1 실시예의 변형예>
상기에 설명한 실시예는, 본 발명의 실시의 일 예이다. 본 발명은 이 실시예에 한정되지 않으므로, 문맥내의 범위에서 주요 조건이 구체화될 수 있다. 본 발명은 또한 다음의 경우를 포함한다.
(1) 통신로(10)는 지상파 또는 위성 등의 방송망이어도 좋다.
(2) 각 중간키(MKGa~MKGn)는 2개의 중간키(D, E)로 구성되어 있지만, 3 종류 이상으로 구성되어도 좋다.
(3) 시변 파라미터군(PRG)은 2개의 시변 파라미터(Q 및 R)로 구성되어 있지만, 3 종류 이상으로 구성되어 있어도 좋다.
(4) 시스템 비밀 파라미터군 생성부(111)에 있어서, 다음이 적용될 수 있다: 비밀 파라미터(s, a, b, c)가 예를 들면 128비트의 자연수로서 생성되고;
중간키군 생성부(113)의 미리 주어진 개별화 파라미터 생성식은 "x*a+y*b=1 mod N"로 정의되고; 3개의 중간키 생성식은 "D=s-x mod N", "E=s-y mod N", 및 " F=b*x+a*y+c"로 정의되고, 중간키군은 D, E, F로 구성되고; 시변 파라미터군 생성부(128)에 미리 주어진 2개의 시변 파라미터 생성식은 "Q=a*z+b mod N","R=b*z+a mod N"로 정의되고, 시변 파라미터군 생성부(129)에 미리 주어진 컨텐츠 암호화키 생성식은 "CK=s*(z+1)*(a+b)-z+c mod N"으로 정의되고, 컨텐츠 복호화키 생성부(132)에 미리 주어진 컨텐츠 복호화키 생성식은 "CK=D*Q+E*R+F mod N"으로 정의된 다.
(5) 시스템 비밀 파라미터군 생성부(111)에 있어서, 다음이 적용된다:
비밀 파라미터(s, a, b)가 예를 들면 128비트의 자연수로서 생성되고;
중간키군 생성부(113), 시변 파라미터군 생성부(128), 컨텐츠 암호화키 생성부(129), 컨텐츠 복호화키 생성부(132)에 있는 modulus N은 128비트의 소수로서;
또한, 예를 들면 128비트의 자연수(g)가 중간키군 생성부(113), 시변 파라미터군 생성부(128), 컨텐츠 암호화키 생성부(129), 컨텐츠 복호화키 생성부(132)에 공통으로 주어지고; 또한, 중간키군 생성부(113)에 미리 주어진 개별화 파라미터 생성식은 "x*a+y*b=1 mod (N-1)"일 수 있고; 2개의 중간키 생성식은 "D=s*x mod (N-1)", "E=s*y mod (N-1)"로 가능하고; 시변 파라미터군 생성부(128)에 미리 주어진 2개의 시변 파라미터 생성식은 "Q=g^{z*a} mod N", "R=g^{z*b} mod N"로 가능하고; 컨텐츠 암호화키 생성부(129)의 컨텐츠 암호화키 생성식은 "CK=g^{s*z} mod N"로 가능하고; 컨텐츠 복호화키 생성부(132)의 컨텐츠 복호화키 생성식은 "CK=Q^ {D}*R^ {E} mod N"로 가능하다.
다른 중간키군(MKGa~MKGn)이 각 출력장치(13a~13n)에 할당되어도, 동일한 컨텐츠키(CK)가 모든 출력장치(13a~13n)로부터 도출될 수 있다. 왜냐하면, 중간키 생성식 및 시변 파라미터 생성식이 컨텐츠 복호화키 생성식에 대입될 때, 그 결과는 전체 출력장치(13a~13n)의 공통 파라미터만으로 구성된 컨텐츠 암호화키 생성식에 일치하기 때문이다.
(6) 키 발행 센터(11)는 시스템 비밀 파라미터군(SPG) 대신에 중간키군을 서 버(12)에 송신할 수 있다.
(7) 서버(12)는 키 발행 센터(11)의 역할을 행할수 있다. 즉, 서버(12)가 출력장치 식별자(AIDa~AlDn)의 임의의 하나를 수신하고, 그 출력장치 식별자(AIDa~AIDn)의 임의의 하나에 근거해서 암호화 중간키군 세트(ENCMKGS)를 복수의 출력장치(13a~13n)에 배송할 수 있다.
(8) 키 발행 센터(l1)의 중간키군 생성부(113)는 외부에서 중간키군생성요구 정보(REQ3)를 수신하고, 그 중간 키 군생성요구 정보(REQ3)에 근거해서, 복수의 중간키군(MKGa~MKGn)을 생성할 수 있다.
(9) 서버(12)의 시변 파라미터군 생성부(128)는 외부로부터 시변 파라미터군 생성요구 정보(REQ4)를 수신하고, 시변 파라미터군 생성요구 정보(REQ4)에 근거해서, 시변 파라미터군(PRG)을 생성할 수 있다.
(10) 서버(12)의 컨텐츠 배송부(124)는, 전에 송신된 시변 파라미터군(PRG)의 변화가 없는 경우, 암호화 컨텐츠(ENCCNT)만을 출력장치(13a~13n)에 송신한다. 암호화 컨텐츠(ENCCNT)만을 수신한 출력장치(13a~13n)는, 컨텐츠키 저장부(133)에 저장된 컨텐츠키(CK)에 근거해 암호화 컨텐츠(ENCCNT) 복호화할 수 있다.
(11) 출력장치(13a~13n)의 컨텐츠키 저장부(133)가 사용시변 파라미터군(UPRG)을 포함하지 않고, 복호화 생성부(132a)가 시변 파라미터군(PRG)을 수신한 경우, 복호화 생성부(132a)는 반드시 중간키군 및 시변 파라미터군(PRG)으로부터 컨텐츠키(CK)를 생성하고, 그 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력할 수 있다.
(12) 제1 실시예에서, 출력장치의 수는 14(13a~13n)이지만, 출력장치의 수는 15 이상, 13 이하일 수 있다.
(12) 키 발행 센터(11)가 암호화 중간키군 세트(ENCMKG)를 배송하는 경우, 키 발행 센터(11)는 동시에 배송하거나, 각 출력장치(13a~13n)에 개별적으로 배송할 수 있다.
(14) 본 발명은 상기에 기술된 방법일 수 있다. 또, 이 방법들을 컴퓨터가 실현하도록 하는 컴퓨터 프로그램일 수 있고, 상기 컴퓨터 프로그램으로 형성된 디지털 신호일 수 있다. 또, 본 발명은, 컴퓨터 프로그램 또는 디지털 신호를 컴퓨터가 읽을 수 있는 기록 매체일 수 있다. 예를 들면, 플렉서블 디스크(flexible disk), 하드 디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD(Blu-ray Disc), 반도체 메모리 등에 저장될 수 있다. 또, 본 발명은 이들 기록 매체에 저장된 컴퓨터 프로그램 또는 디지털 신호일 수 있다. 또한, 본 발명은, 컴퓨터 프로그램 또는 디지탈 신호를 통신회선, 무선 또는 유선 통신회선, 인터넷을 대표로 하는 네트워크등을 통해 송신할 수 있다. 또, 본 발명은, 마이크로 프로세서 및 메모리를 갖춘 컴퓨터 시스템이다. 메모리는 컴퓨터 프로그램을 저장하고 있고, 마이크로 프로세서는 컴퓨터 프로그램에 따라서 동작한다. 또한, 본 발명은 프로그램 및 디지털 신호를 기록 매체에 기록해 송신하거나 또는 네트워크를 통해 송신함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시된다.
(15) 상기 실시예 및 변형예는 각각 서로 결합될 수 있다.
(제2 실시예)
본 발명에 따른 실시예로서 컨텐츠 배송 시스템(2)에 대해 설명한다. 제1 실시예의 컨텐츠 배송 시스템(1)에서, 각 출력장치(13a~13n)는 한쌍의 중간키(D 및 E)에 근거해 컨텐츠키(CK)를 생성한다. 그렇지만, 제2 실시예의 컨텐츠 배송 시스템(2)은 각 출력장치가 복수 세트의 중간키에 근거해 컨텐츠키를 생성하는 것이 제1 실시예와 다르다.
이하에, 본 발명의 컨텐츠 배송 시스템의 일 실시예인 컨텐츠 배송 시스템(2)에 대해서 상세히 설명한다.
<컨텐츠 배송 시스템(2)의 구성>
도 23에 나타낸 것같이, 컨텐츠 배송 시스템(2)은 제1 실시예와 같은 통신로(10), 제1 실시예와 다른 구성요소인 키 발행 센터(21), 서버(22) 및 출력장치(22a~22n)로 구성된다. 구성요소의 역할은 제1 실시예의 컨텐츠 배송 시스템(1)의 키 발행 센터(11), 서버(12) 및 출력장치(13a~13n)와 같다.
이후, 컨텐츠 배송 시스템(1)과의 차이점을 중심으로 이들 구성요소에 대해 설명한다. 통신로(10)의 구성은 컨텐츠 배송 시스템(1)의 것과 같은 구성이다. 그러므로 설명이 생략된다. 여기서, 키 발행 센터(21), 서버(22) 및 복수의 출력장치(23a~23n)의 구성과 동작에 대해서 도면을 참조해 설명한다.
<키 발행 센터(21)의 구성>
도 24에 나타낸 것같이, 키 발행 센터(21)는 비밀 파라미터군 생성부(211), 시스템 비밀 파라미터군 송신부(112), 중간키군 생성부(213), 출력장치 대응 정보 저장부(114), 중간키군 암호화부(115), 암호화 중간키군 세트 배송부(116), 입력부 (117), 및 대응 정보 갱신부(118)로 구성된다. 도 24에서, 도 2에서의 동일한 구성요소에는 동일한 부호가 할당되고, 그 동일한 구성요소에 대해서는 설명을 생략한다.
(1) 비밀 파라미터군 생성부(211)
비밀 파라미터군 생성부(211)는, 대응 정보 갱신부(118)로부터 비밀 파라미터군 생성요구(REQ1)를 수신했을 때, k세트의 시스템 비밀 파라미터{s1, al, b1} {s2, a2, b2} … {sk, ak, bk}를 생성한다. 여기서, k세트의 시스템 비밀 파라미터를 생성하는 방법으로서, 예를 들면, 난수를 이용해 랜덤하게 생성하는 방법이 있다. 예를 들면, s1~sk, a1~ak, b1~bk는 128비트의 자연수 등이다. 여기서, 미리 주어진 시스템 비밀 파라미터 생성식 "ai*ai-bi*bi=0 mod N (i는 1~k)"을 만족하도록 k개의 시스템 비밀 파라미터가 생성된다. 키 식별자(KID1~KIDk)는 k세트의 시스템 비밀 파라미터{s1, al, b1} {s2, a2, b2} … {sk, ak, bk}에 각각 대응된다. 그리고, 비밀 파라미터군 생성부(211)는, 도 25에 나타내는 것같이 k개의 키 식별자와 시스템 비밀 파라미터로 형성된 시스템 비밀 파라미터군 SPG={{KID1, s1, al, b1} {KID2, s2, a2, b2} … {KIDk, ck, ak, bk}}을 생성한다. 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 송신부(112)및 중간키군 생성부(213)에 출력한다. 또한, 키 발행 센터가 동작 개시했을 때, 시스템 비밀 파라미터군 생성요구(REQ1)가 수신된 경우와 같이, 비밀 파라미터군 생성부(211)는 시스템 비밀 파라미터군(SPG)을 생성해서, 시스템 비밀 파라미터군 송신부(1l2) 및 중간키군 생성부(213)에 출력한다.
(2) 중간키군 생성부(213)
중간키군 생성부(213)는, 시스템 비밀 파라미터군 생성부(211)로부터 시스템 비밀 파라미터군(SPG)을 수신한 경우, 출력장치 대응 정보 저장부(113)에서 모든 중간키군(MKGa~MKGn)을 먼저 소거한다. 그리고, 수신한 시스템 비밀 파라미터군(SPG)으로부터 k세트의 키 식별자와 시스템 비밀 파라미터{KID1, s1, al, b1} {KID2, s2, a2, b2} … {KIDk, sk, ak, bk}를 추출한다. 그리고, 미리 주어진 개별화 파라미터 생성식 "xi*ai-yi*bi=1 mod N"(i는 1~k)을 만족하는 k개의 개별화 파라미터, {KID1, x1, y1} {KID2, x2, y2} … {KIDk, xk, yk}가 생성된다. 그 후, k개의 개별화 파라미터{x1, y1} {x2, y2} … {xk, yk}를 이용하여, 중간키군 생성부(213)는 미리 주어진 두 개의 중간키 생성식 "Di=si*xi mod N (i는 1~k)","Ei=si*yi mod N (i는 1~k)"에 근거해 k세트의 중간키{KID1, D1, E1} {KID2, D2, E2} … {KIDk, Dk, Ek}를 생성하고, 도 26에 나타낸 것같이 k세트의 키 식별자 및 중간키로 구성된 중간키군(MKGa)을 생성한다. 그리고, 중간키군 생성부(213)는 중간키군(MKGa)을 출력장치 대응 정보 저장부(113)의 출력장치 식별자(AIDa)에 대응시켜서 저장한다. 출력장치 대응 정보 저장부(113)에 있는 출력장치 식별자(AIDa) 이외의 출력장치 식별자(AIDb~AIDn)에 중간키(MKGb~MKGn)를 각각 중간키군(MKGa)과 유사하게 생성해서 할당한다. 여기서, 중간키(MKGb~MKGn)의 구성은, 도 26에 나타낸 중간키군(MKGa)의 구성과 같다. 그렇지만, 각각의 중간키군(MKGa~MKGn)은 고유의 값을 갖는다. 모든 출력장치 식별자(AIDa~AIDn)에 중간키군(MKGa~MKGn)을 각각 할당한 후, 중간키군 생성부(213)는 암호화 중간키군생성요구 (REQ2)를 중간키군 암호화부(115)에 출력한다.
<키 발행 센터(21)의 동작>
이상으로, 키 발행 센터(21)의 구성을 설명했다. 여기에서, 키 발행 센터(21)의 동작에 대해 설명한다. 우선, 컨텐츠키를 공유하는데 필요한 키 정보를 서버(22)및 복수의 출력장치(23a~23n)에 배송할 때의 동작에 대해, 도 27의 흐름도를 이용해 설명한다. 그 후, 출력장치를 무효화하는 예로서, 출력장치(23a)를 무효화하는 동작을 도 28의 흐름도를 이용해 설명한다.
<<키 정보 배송시의 동작>>
시스템 비밀 파라미터군 생성부(211)는 k개의 시스템 비밀 파라미터 {s1, al, b1} {s2,a2,b2} … {sk,ak,bk}를 생성한다. 여기서,"ai*ai+bi*bi=0 mod N(i는 1~k)"를 만족하도록 선택된다. 시스템 비밀 파라미터군 생성부(211)는 키 식별자(KID1~KIDk)를 k세트의 시스템 비밀 파라미터{s1, al, b1} {s2, a2, b2} … {sk, ak, bk}와 대응시키고, 그것에 의해 형성된 시스템 비밀 파라미터군(SPG)을 생성하고, 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 송신부(112)및 중간키군 생성부(113)에 출력한다(S2103).
시스템 비밀 파라미터군 송신부(112)는 수신한 시스템 비밀 파라미터군(SPG)을 서버(22)에 송신한다(S2104).
중간키군 생성부(112)는 출력장치 대응 정보 저장부(114)에 저장되고 있는 중간키군(MKGa~MKGn)을 모두 삭제한다(S2105).
중간키군 생성부(213)는, 시스템 비밀 파라미터군(SPG)으로부터 k세트의 키 식별자와 시스템 비밀 파라미터{KID1, s1, al, bl} {KID2, s2, a2, b2} …{KIDk, sk, ak, bk}를 추출한다. 그 후, 개별화 파라미터 생성식 "xi*ai-yi*bi=1 mod N (i는 1~k)"를 만족하도록 k세트의 2개의 개별화 파라미터{KlDl, x1, y1}, {KID2, x2, y2}, … 및 {KIDk, xk, yk}를 생성한다. 여기서, 개별화 파라미터{x1, x2, ··xk}, {yl, y2, ··yk}의 각 값은 서로 일치하지 않는다.
중간키군 생성부(213)는, k세트의 개별화 파라미터{KID1, x1, y1}, {KID2, x2, y2}, … {KIDk, xn, yk}를 이용하여, 중간키 생성식 "Di=si*xi mod N (i는 1~k)", "Ei=si*yi mod N (i는 1~k)"를 만족하도록 k세트의 중간키(Di 및 Ei){KID1, Dl, E1} {KID2, D2, E2}… {KIDk, Dk, Ek}를 생성한다(S2106).
중간키군 생성부(213)는, k세트의 키 식별자와 중간키{KID1, Dl, E1}, {KID2, D2, E2}, … {KIDk, Dk, Ek}로 형성된 중간키군을 생성하고, 그 중간키군을, 출력장치 대응 정보 저장부(ll4)에 중간키군이 할당되지 않은 장치 식별자에 대응시켜서 저장한다(S2107).
만약 중간키군(MKGa~MKGn)이 출력장치 대응 정보 저장부(114)의 모든 출력장치 식별자(AIDa~AIDn)에 각각 할당되어 있으면, 동작은 단계(S2109)에 진행한다. 만약, 중간키군이 아직 할당되지 않은 출력장치 식별자가 있으면, 동작은 단계 S2106로 돌아온다(S2108).
중간키군 생성부(213)는, 암호화 중간키군 세트 생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다(S2109).
암호화 중간키군생성요구(REQ2)를 받은 중간키군 암호화부(115)는 출력장치 대응정보 저장부(114)에 액세스하고, 출력장치 식별자(AIDa~AIDn), 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)의 전체 세트를 취득한다(S2110).
중간키군 암호화부(115)는, 각각의 개별키(IKa~IKn)에 근거해 각각의 중간키군(MKGa~MKGn)을 암호화하고, 암호화 중간키군(ENCMKGa=Enc(IKa, MKGa), …, ENCMKGn=Enc(IKn, MKGn)) 및 암호화에 이용된 개별키에 대응하는 장치 식별자(AIDa~AIDn)로 형성되는 암호화 중간키군 세트(ENCMKGS={AIDa, ENCMKGa}, …, {AIDn, ENCMKGn})를 생성한다(S2111).
중간키군 암호화부(115)는, 생성한 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 세트 배송부(116)에 출력한다(S2112).
암호화 중간키군 세트 배송부(116)는, 암호화 중간키군 세트(ENCMKGS)를 수신하고, 그 수신한 암호화 중간키군 세트(ENCMKGS)를 출력장치(23)에 배송해서, 처리를 종료한다(S2113).
<<출력장치(23a) 무효화시의 동작>>
입력부(117)는 수신한 출력장치 식별자(AIDa)를 대응 정보 갱신부(118)에 출력한다(S2151).
대응 정보 갱신부(118)는 입력부(117)로부터 수신한 출력장치 식별자(AIDa)에 대응하는 개별키(IKa)와 중간키군(MKGa)을 출력장치 대응 정보 저장부(114)로부터 삭제한다(S2152).
대응 정보 갱신부(118)는, 시스템 비밀 파라미터군 생성요구(REQ1)를 시스템 비밀 파라미터군 생성부(111)에 출력하고, 동작은 단계(S2101)로 진행된다(S2153).
또한, 출력장치(23a) 이외의 출력장치(23b~23n)를 무효화할 때의 동작은 출력장치(13a)의 동작과 거의 유사하다. 그렇지만, 대응 정보 갱신부(118)에서, 출력장치 대응 정보 저장부(114)로부터 삭제되는 출력장치 식별자, 개별키 및 중간키군이, 무효화되는 출력장치(23b~23n)에 의존해 바뀌는 점이, 출력장치(23a)의 동작과 다르다.
이상은 컨텐츠 배송 시스템(2)의 구성요소인 키 발행 센터(21)의 구성과 동작이다. 다음에, 서버(22)의 구성과 동작에 대해 설명한다.
<서버(22)의 구성>
도 29에 나타낸 것같이, 서버 22는 입력부(121), 컨텐츠 암호화부(122), 컨텐츠키 저장부(123), 컨텐츠 배송부(124), 시변 파라미터군 저장부(125), 시스템 비밀 파라미터군 수신부(126), 시스템 비밀 파라미터군 저장부(127), 시변 파라미터군 생성부(228), 암호키 생성부(229)로 구성된다. 도 29에서, 도 9와 동일한 구성요소에는 동일한 부호가 할당되고, 동일 구성 요소에 대한 설명은 생략한다.
(1) 시변 파라미터군 생성부(228)
시변 파라미터군 갱신조건이 시변 파라미터군 생성부(228)에 미리 주어진다. 시변 파라미터군 생성부(228)가 그 조건을 만족할 때, 우선 시스템 비밀 파라미터군 저장부(127)에 액세스하고, 저장된 시스템 비밀 파라미터군(SPG)을 취득한다. 그리고, 시스템 비밀 파라미터군(SPG)에 저장된 k개의 키 식별자{KID1, KID2, …KIDk}로부터 하나를 선택한다. 여기서, k개의 키 식별자{KID1, KID2, …KIDk}로부터 하나를 선택하는 방법으로서, 예를 들면, 난수를 이용해 랜덤하게 선택하는 방 법 등이 있다. 이후, 선택된 키 식별자는 KIDi(KIDi는 KID1~KIDk의 하나)로 표기되고, 시스템 비밀 파라미터(si, ai, bi)가 시스템 비밀 파라미터군(SPG)의 키 식별자(KIDi)와 대응된다. 그리고, 시변 파라미터군 생성부(228)는 시스템 비밀 파라미터군(SPG)로부터 그 키 식별자(KIDi)에 대응하는 시스템 비밀 파라미터(ai 및 bi)를 취득한다. 그 후, 난수(z 및 w)를 생성한다. 그리고, 미리 주어진 시변 파라미터 생성식 "Q=z*ai+bi*w mod N", "R=z*bi+ai*w mod N"에 근거해 시변 파라미터(Q 및 R)를 생성한다. 그 후, 키 식별자(KIDi) 및 생성된 시변 파라미터(Q 및 R)로부터, 도 30에 나타낸 것같이 시변 파라미터군(PRG)을 생성하고, 시변 파라미터군 저장부(125)에 저장한다. 마지막으로, 키 식별자(KIDi) 및 제1 난수(z) 및 제2 난수(w)를 컨텐츠 암호화키 생성부(l29)에 출력한다.
(2) 컨텐츠 암호화키 생성부(229)
컨텐츠 암호화키 생성부(229)는, 시변 파라미터군 생성부(228)로부터 키 식별자(KIDi) 및 난수(z 및 w)를 수신한 경우, 우선, 시스템 비밀 파라미터군 저장부(127)에 액세스해서, 키 식별자(KIDi)에 대응하는 시스템 비밀 파라미터(si)를 취득한다. 그 후, 컨텐츠 암호화키 생성부(229)는 컨텐츠 암호화키 생성식"CK=si*z+si*w*a/b mod N"에 근거해 컨텐츠키(CK)를 생성하고, 생성한 컨텐츠키(CK)를 컨텐츠키 저장부(123)에 저장한다.
<서버(22)의 동작>
이상으로, 서버(22)의 구성에 대해서 설명했다. 여기서, 서버(22)의 동작에 대해 설명한다. 우선, 컨텐츠 배송시 및 시스템 비밀 파라미터군 수신시의 동작은 제1 실시예의 컨텐츠 배송 시스템(1)의 서버(12)의 동작과 동일하므로, 그 설명을 생략한다. 여기에서, 시변 파라미터군(PRG) 갱신시의 동작에 대해 도 31에 나타낸 흐름도를 이용해 설명한다.
<<시변파라미터군(PRG) 갱신시의 동작>
시변 파라미터군 생성부(228)가 미리 주어진 시변 파라미터군 갱신조건을 만족할 때, 동작은 단계(S2262)에 진행한다. 시변 파라미터군 갱신조건을 만족하지 않을 때, 동작은 종료한다(S2261).
시변 파라미터군 생성부(228)는, 시스템 비밀 파라미터군 저장부(127)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득한다(S2262).
시변 파라미터군 생성부(228)는, 시스템 비밀 파라미터군(SPG)중에서, 하나의 키 식별자(KIDi)를 선택해서, 그 키 식별자(KIDi)에 관련되어 있는 시스템 비밀 파라미터(si, ai, bi)를 취득하고, 난수(z 및 w)를 생성한다(S2263).
시변 파라미터군 생성부(228)는, 미리 주어진 키 식별자(KIDi)에 대응하는 시변 파라미터 생성식"Q=z*ai+bi*w mod N","R=z*bi+ai*w mod N"에 근거해 시변 파라미터(Q 및 R)를 생성하고, 생성한 시변 파라미터(Q 및 R)로 형성된 시변 파라미터군(PRG)을 생성한다(S2264).
시변 파라미터군 생성부(228)는 시변 파라미터군(PRG)를 시변 파라미터군 저장부(125)에 저장한다(S2265).
시변 파라미터군 생성부(228)는 키 식별자(KIDi), 난수(z 및 w)를 컨텐츠 암호화키 생성부(229)에 출력한다(S2266).
키 식별자(KIDi) 및 난수(z 및 w)를 수신한 컨텐츠 암호화키 생성부(229)는, 우선, 시스템 비밀 파라미터군 저장부(127)에 액세스하고, 키 식별자(KIDi)에 대응하는 시스템 비밀 파라미터(si)를 취득한다(S2267).
컨텐츠 암호화키 생성부(229)는, 미리 주어진 키 식별자(KIDi)에 대응하는 컨텐츠 암호화키 생성식 "CK=si*z+si*w*a/b mod N"에 근거해 컨텐츠키(CK)를 생성한다(S2268).
컨텐츠 암호화키 생성부(229)는 생성한 컨텐츠키(CK)를 컨텐츠키 저장부(123)에 저장하고, 동작은 종료한다(S2269).
이상이, 컨텐츠 배송 시스템(2)의 구성요소인 서버(22)의 구성과 동작이다. 다음에, 출력장치(23a)의 구성과 동작에 대해서 설명한다.
<출력장치(23a)의 구성>
도 32에 나타낸 것같이, 출력장치(23a)는 컨텐츠 수신부(131), 컨텐츠 복호화키 생성부(232a), 컨텐츠키 저장부(l33), 중간키군 저장부(134a), 컨텐츠 복호화부(135), 출력부(136), 암호화 중간키군 세트수신부(137), 암호화 중간키군복호화부(138a), 개별키 저장부(139a)로 구성된다. 도 32에서, 도 17에서 동일한 구성요소에는 동일한 부호를 할당하고, 동일한 구성요소에 대한 설명은 생략한다.
(1) 컨텐츠 복호화키 생성부(232a)
컨텐츠 수신부(131)로부터 시변 파라미터군(PRG)를 수신한 경우, 컨텐츠 복호화키 생성부(232a)는 우선 컨텐츠키 저장부(133)에 저장된 사용시변 파라미터군(UPRG)이 수신한 시변 파라미터군(PRG)과 일치하는지 확인한다. 여기서 서로 일치 하면, 컨텐츠 복호화키 생성부(232a)는 컨텐츠키 저장부(133)에 액세스하고, 저장된 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다. 서로 일치하고 있지 않으면, 중간키군 저장부(134a)에 액세스하고, 중간키군(MKGa)을 취득한다. 그리고, 시변 파라미터군(PRG)으로부터 키 식별자(KIDi)를 취득하고, 그 키 식별자(KIDi)에 대응된 중간키를 취득한다. 여기에서, 키 식별자(KIDi)에 대응된 중간키들은 Di와 Ei (Di는 D1~Dk중 어느 하나이고, Ei는 E1~Ek중 어느 하나이다)로 정의된다. 그 후, 미리 주어진 컨텐츠 복호화키 생성식 "CK=Di*Q-Ei*R mod N"에 근거해 컨텐츠키(CK)를 계산하고, 계산한 컨텐츠키(CK)를 컨텐츠키 저장부(133)에 저장하고, 시변 파라미터군(PRG)을 사용시변 파라미터군(UPRG)으로서 컨텐츠키 저장부(133)에 저장하고, 컨텐츠키(CK)를 제1 복호화부(133)에 출력한다.
<출력장치(23a)의 동작>
이상으로, 출력장치(23a)의 구성을 설명했다. 여기서, 출력장치(23a)의 동작을 설명한다. 우선, 컨텐츠키를 공유하는데 필요한 키 정보의 갱신시의 동작에 대한 설명은, 출력장치(13a)에서의 키 갱신시의 동작과 동일하므로, 그 설명을 생략 한다. 그리고, 암호화 컨텐츠 수신시의 동작을 도 33에 나타낸 흐름도를 이용해 설명한다.
<<컨텐츠 수신시의 동작>>
컨텐츠 수신부(131)가 암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)을 수신했을 때, 동작은 단계(S2302)로 진행된다. 수신하고 있지 않을 때, 처리는 종료한다(S2301).
컨텐츠 수신부(131)가 수신한 시변 파라미터군(PRG)을 컨텐츠 복호화키 생성부(232)에 출력한다(S2302).
시변 파라미터군(PRG)을 수신한 컨텐츠 복호화키 생성부(232)는, 컨텐츠키 저장부(133)에 액세스하고, 수신한 시변 파라미터군(PRG)과 사용시변 파라미터군(UPRG)이 같으면, 단계(S2307)로 진행한다. 만약 다르면, 단계(S2304)로 진행된다(S2303).
컨텐츠 복호화키 생성부(232)가 시변 파라미터군(PRG)을 키 식별자(KIDi)와 시변 파라미터(Q와 R)로 나누어서, 중간키군 저장부(134)에 액세스하고, 중간키(MKi)를 취득한다(S2304).
키 식별자(KIDi)에 대응하는, 중간키(Di와 Ei)를 취득해, 키 식별자(KIDi)에 대응하는 컨텐츠 복호화키 생성식 "CK=Di*Q-Ei*R mod N"에 근거해 컨텐츠키(CK)를 생성한다(S2305).
컨텐츠 복호화키 생성부(232)는 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력하고, 단계(S2308)로 이동한다(S2306).
컨텐츠 복호화키 생성부(232)는, 중간키군 저장부(134a)에 액세스해서, 컨텐츠키(CK)를 취득하고, 그 컨텐츠키(CK)를 컨텐츠 복호화부(l35)에 출력한다(S2307).
컨텐츠 복호화부(135)는 컨텐츠키(CK)에 근거해 암호화 컨텐츠(ENCCNT)를 복호화한다(S2308).
컨텐츠 복호화부(135)는 그 복호화 컨텐츠(DECCNT)를 출력부(l36)에 출력한 다(S2309).
출력부(136)는 제1 복호화부(136)로부터 복호화 컨텐츠(DECCNT)를 수신하고, 수신한 복호화 컨텐츠(DECCNT)를 외부에 출력한다. 그리고 동작은 종료한다(S2310).
이상이 컨텐츠 배송 시스템(2)의 구성요소인 출력장치(23a)의 구성과 동작이다. 여기서, 출력장치(23a)와 다른 출력장치(23b~23n) 사이의 차이는, 출력장치(23a~23n)에 각각 고유한 중간키군(MKGa~MKGn)이 중간키군 저장부(134a)에 저장되고; 출력장치(23a~23n)에 각각 고유한 개별키(IKa~IKn)가 개별키 저장부(139a)에 저장되고; 컨텐츠 복호화키 생성부(232a)는 각 출력장치(23a~23n)에 대해 고유한 중간키를 이용하고; 암호화 중간키군복호화부(138a)는 각 출력장치(23a~23n)에 대해 고유의 출력장치 식별자(AIDa~AIDn) 및 개별키(IKa~IKn)를 이용하는 것이다.
<제2 실시예의 동작 검증>
제2 실시예에 있어서, 각 중간키군(MKGa~MKGn)에 고유한 값이 각각의 출력장치(23a~23n)에 각각 할당되는 사실에도 불구하고, 동일한 컨텐츠키(CK)가 전체 출력장치(23a~23n)로부터 생성될 수 있는 이유는 제1 실시예에서 설명한 것과 같다.
<제2 실시예의 효과>
제2 실시예는 기본적으로 제1 실시예와 동일한 효과를 가지지만, 제2 실시예는, 암호화 중간키군에 중간키군 세트를 내장함으로써, 키 발행 센터(21)가 복수의 출력장치(22a~22n)에 암호화 중간키군 세트(ENCMKGS)를 배송하는 빈도를 줄일 수 있는 효과를 갖는다.
<제2 실시예의 변형예>
상기에 설명한 실시예는, 본 발명의 실시예중 일 예이다. 그래서, 본 발명은 이 실시예에 한정되지 않으므로, 실시예의 문맥내에서 주요 조건이 구체화될 수 있다. 이하도 본 발명에 포함된다.
(1) 통신로(10)는 지상파 또는 위성 등의 방송망이어도 좋다.
(2) 서버(22)가 키 발행 센터(21)의 역할을 할 수도 있다. 즉, 서버(22)는 출력장치 식별자(AIDa~AIDn)중 하나를 수신해서, 그 출력장치 식별자에 근거해 암호화 중간키군 세트(ENCMKGS)를 복수의 출력장치(23a~23n)에 송신할 수도 있다.
(3) 키 발행 센터(21)는 시스템 비밀 파라미터군(SPG) 대신에 중간키군을 서버(22)에 송신해서, 그 중간키군과 시변 파라미터군에 근거해 컨텐츠키를 생성할 수도 있다.
(4) 키 발행 센터(21)의 중간키군 생성부(213)는, 외부에서 중간키군생성요구 정보(REQ3)를 수신해서, 그 중간 키 군생성요구 정보(REQ3)에 근거해 중간키군을 생성할 수 있다.
(5) 서버(22)의 시변 파라미터군 생성부(128)는, 외부로부터 시변 파라미터군 생성요구 정보(REQ4)를 수신해서, 시변 파라미터군 생성요구 정보(REQ4)에 근거해서, 시변 파라미터군(PRG)을 생성할 수 있다.
(6) 제2 실시예에서, 출력장치의 수는 14(23a~23n)이지만, 출력장치의 수는 15 이상, 13 이하일 수 있다.
(7) 키 발행 센터(21)가 암호화 중간키군 세트(ENCMKG)를 배송할 때, 동시에 배송하거나, 각 출력장치(23a~23n)에 개별적으로 배송할 수 있다. 또한, 서버(22)가 시변 파라미터군(PRG) 및 암호화 컨텐츠(ENCCNT)를 배송하는 경우와 유사하게, 동시에 배송하거나, 각 출력장치(23a~23n)에 개별적으로 배송할 수 있다.
(8) 본 발명은 상기에 기술된 방법일 수 있다. 또, 이 방법들을 컴퓨터가 실현하도록 하는 컴퓨터 프로그램일 수 있고, 상기 컴퓨터 프로그램으로 형성된 디지털 신호일 수 있다. 또, 본 발명은, 컴퓨터 프로그램 또는 디지털 신호를 컴퓨터가 읽을 수 있는 기록 매체일 수 있다. 예를 들면, 플렉서블 디스크(flexible disk), 하드 디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD(Blu-ray Disc), 반도체 메모리 등에 저장될 수 있다. 또, 본 발명은 이들 기록 매체에 저장된 컴퓨터 프로그램 또는 디지털 신호일 수 있다. 또한, 본 발명은, 컴퓨터 프로그램 또는 디지탈 신호를 통신회선, 무선 또는 유선 통신회선, 인터넷을 대표로 하는 네트워크등을 통해 송신할 수 있다. 또, 본 발명은, 마이크로 프로세서 및 메모리를 갖춘 컴퓨터 시스템이다. 메모리는 컴퓨터 프로그램을 저장하고 있고, 마이크로 프로세서는 컴퓨터 프로그램에 따라서 동작한다. 또한, 본 발명은 프로그램 및 디지털 신호를 기록 매체에 기록해 송신하거나 또는 네트워크를 통해 송신함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시된다.
(9) 본 실시예 및 변형예는 서로 결합될 수 있다.
(제3 실시예)
본 발명에 따르는 하나의 실시예로서의 컨텐츠 배송 시스템(3)에 대해 설명 한다. 제1 실시예에 있어서의 컨텐츠 배송 시스템(1)에서, 각 출력장치(13a~13n)는 미리 주어진 컨텐츠 복호화키 생성식에 근거해 컨텐츠키를 생성한다. 제3 실시예에 서의 컨텐츠 배송 시스템(3)은, 각 출력장치(33a~33n)가 컨텐츠 복호화키 생성식이 아니라 각 출력장치(33a~33n)에 각각 할당된 테이블 고정치에 근거해 컨텐츠키를 생성하는 것이, 제1 실시예와 매우 다르다.
<컨텐츠 배송 시스템(3)의 구성>
도 34에 나타낸 것같이, 컨텐츠 배송 시스템(3)은, 제1 실시예와 같은 통신로(10), 및 제1 실시예와 다른 키 발행 센터(31), 서버(32), 및 복수의 출력장치(33a~33n)로 구성된다. 각각의 구성요소의 역할은, 제1 실시예의 컨텐츠 배송 시스템(1)에서의 키 발행 센터(11), 서버(12) 및 출력장치(13a~13n)와 같다.
이하에, 이들 구성요소에 대해서 상세하게 설명한다. 통신로(10)의 구성은 컨텐츠 배송 시스템(1)에서와 같은 구성이므로 그 구성에 대한 설명은 생략한다. 여기서, 키 발행 센터(31), 서버(32) 및 출력장치(33a)의 구성과 동작은 도면을 이용해 설명한다.
<키 발행 센터(31)의 구성>
도 35에 나타낸 것같이, 키 발행 센터(31)는 비밀 파라미터군 생성부(311), 시스템 비밀 파라미터군 송신부(112), 중간키군 생성부(313), 출력장치 대응 정보 저장부(114), 중간키군 암호화부(115), 암호화 중간키군 세트 배송부(116), 입력부(117), 및 대응 정보 갱신부(118)로 구성된다. 도 35에서, 도 2에서의 동일한 구성요소에는 동일한 부호가 할당되고, 그 동일한 구성요소에 대해서는 설명을 생략한 다.
(1)시스템 비밀 파라미터군 생성부(311)
시스템 비밀 파라미터군 생성부(311)는, 후술하는 대응 정보 갱신부(118)로부터 비밀 파라미터군 생성요구(REQ1)를 수신한 경우, 우선, k+m개의 키 식별자(KID1~KIDk+m)중에서, k개의 키 식별자를 선택한다. 그리고, 시스템 비밀 파라미터군 생성부(311)는, 그 선택된 k개의 키 식별자에 대해서 각각 컨텐츠키(CK1, CK2, …, CKk)를 생성한다. 여기서, k+m개의 키 식별자(KID1~KIDk+m)중에서, k개의 키 식별자를 선택하는 방법 및 컨텐츠키(CKl, CK2, …, CKk)를 생성하는 방법으로서는, 예를 들면, 난수를 이용해 컨텐츠키를 랜덤하게 생성하는 방법이 있다. 그리고, 시스템 비밀 파라미터군 생성부(311)는 도 36에 나타내는 것같이 k+m세트의 키 식별자 및 컨텐츠키로 구성된 시스템 비밀 파라미터군(SPG)을 생성하고, 그 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 송신부(112) 및 중간키군 생성부(113)에 출력한다. 또한, 키 발행 센터(31)가 동작을 개시했을 때 , 시스템 비밀 파라미터군 생성요구(REQ1)를 수신한 경우와 유사하게, 시스템 비밀 파라미터군(SPG)을 생성해서, 시스템 비밀 파라미터군 송신부(112) 및 중간키군 생성부(113)에 출력한다.
(2) 중간키군 생성부(313)
중간키군 생성부(313)는, 시스템 비밀 파라미터군 생성부(311)으로부터 시스템 비밀 파라미터군(SPG)을 수신한 경우, 출력장치 대응 정보 저장부(113)에서 모든 중간키군(MKGa~MKGn)을 먼저 소거한다. 그리고, 수신한 시스템 비밀 파라미터군 (SPG)으로부터 (k+m)세트의 키 식별자와 컨텐츠키를 취득한다.
다음에, 더미키(DMK1~DMKm)를 생성하고, 키 식별자(KID1~KIDk+m) 중에서 컨텐츠키(CK) 및 컨텐츠키(CK)에 할당되지 않은 m개의 키 식별자에 대해서 할당한다. 여기서, 더미키(DMK 1~DMKm)를 생성하는 방법으로서, 예를 들면, 난수를 이용해 랜덤하게 생성하는 방법이 있다. 그리고, 중간키군 생성부(313)는 중간키군(MKGa)을 출력장치 대응 정보 저장부(113)의 출력장치 식별자(AIDa)에 대응시키고 저장한다. 중간키군 생성부(313)는 출력장치 대응 정보 저장부(113)의 출력장치 식별자(AIDa) 이외의 출력장치 식별자(AIDb~AIDn) 모두에 대해서 동일한 동작을 행한다. 여기서, 다른 더미키(DMK1~DMKm)가 다른 출력장치 식별자(AIDa~AIDn)에 각각 할당된다. 중간키군(MKGa~MKGn)이 출력장치 대응 정보 저장부(113)의 모든 출력장치 식별자(AIDa~AIDn)에 대해서 각각 할당되면, 중간키군 생성부(313)는 암호화 중간키군생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다.
<키 발행 센터(21)의 동작>
이상으로, 키 발행 센터(31)의 구성을 설명했다. 여기에서, 키 발행 센터(31)의 동작에 대해 설명한다. 우선, 컨텐츠키를 공유하는데 필요한 키 정보를 배송할 때의 동작에 대해, 도 38에 나타낸 흐름도를 이용해 설명한다. 그 후, 출력장치를 무효화할 때의 동작을 도 39에 나타낸 흐름도를 이용해 설명한다.
<<키 정보 배송시의 동작>>
시스템 비밀 파라미터군 생성부(311)는, k개의 컨텐츠키(CK1,CK2, …, CKk)를 생성한다(S3101).
시스템 비밀 파라미터군 생성부(311)은 생성한 컨텐츠키를 (k+m) 개의 키 식별자(KIDa~KIDk+m)에 각각 할당한다(S3102).
시스템 비밀 파라미터군 생성부(311)는, 도 36에 나타내는 것같이 시스템 비밀 파라미터군(SPG)을 생성해, 그 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 송신부(112) 및 중간키군 생성부(313)에 출력한다(S3103).
시스템 비밀 파라미터군 송신부(112)는, 수신한 시스템 비밀 파라미터군(SPG)을 서버(32)에 송신한다(S3104).
중간키군 생성부(313)는, 출력장치 대응 정보 저장부(114)에 저장되고 있는 중간키군(MKGa~MKGn)을 모두 삭제한다(S3105).
중간키군 생성부(313)는 m개의 더미키(DMK1~DMKm)를 생성한다(S3106).
중간키군 생성부(313)는 생성한 m개의 더미키(DMK1~DMKm)를 키 식별자(KID1~KIDk+m) 중에서 컨텐츠키가 할당되지 않은 키 식별자에 대응시킨다. 그리고, k+m개의 키 식별자(KID1~KIDk+m) 및 그 키 식별자에 대응하는(k+m) 개의 컨텐츠키 혹은 더미키로 구성되는 중간키군을 생성한다.
중간키군 생성부(313)는 중간키군이 출력장치 대응 정보 저장부(114)에 할당되지 않은 출력장치 식별자에 각각 중간키군을 대응시키고 저장한다(S3107).
중간키군(MKGa~MKGn)이 출력장치 대응 정보 저장부(114)의 출력장치 식별자(AIDa~AIDn)에 각각 모두 할당되면, 중간키군 생성부(313)는 단계(S3109)로 이동한다. 중간키군이 할당되어 있지 않은 출력장치 식별자가 있으면, 단계(S3106)로 복귀한다(S3108).
중간키군 생성부(313)는 암호화 중간키군 세트 생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다(S3109).
암호화 중간키군생성요구(REQ2)를 받은 중간키군 암호화부(115)는 출력장치 대응 정보 저장부(114)에 액세스하고, 출력장치 식별자, 개별키 및 중간키군의 모든 그룹({AIDa, IKa, MKGa}, {AIDb, IKb, MKGb}, …, {AIDn, IKn, MKGn})을 취득한다(S3110).
중간키군 암호화부(115)는, 각각의 개별키(IKa~IKn)에 근거해 각각의 중간키군(MKGa~MKGn)을 암호화해서, 각 암호화된 중간키군 및 장치 식별자로 형성된 암호화 중간키군 세트(ENCMKGS={AIDa, ENCMKGn} ∥ {AIDb, ENCMKGb} ∥…∥{AIDn, ENCMKGn})를 생성한다(S3111).
중간키군 암호화부(115)는, 생성한 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 세트 배송부(116)에 출력한다(S3112).
암호화 중간키군 세트 배송부(116)는, 암호화 중간키군 세트(ENCMKGS)를 수신해서, 수신한 암호화 중간키군 세트(ENCMKGS)를 출력장치(33a~33n)에 배송하고, 종료한다(S3113).
<<출력장치(23a) 무효화시의 동작>>
입력부(117)는, 수신한 출력장치 식별자(AIDa)를 대응 정보 갱신부(118)에 출력한다(S3151).
대응 정보 갱신부(118)는, 입력부(117)으로부터 수신한 출력장치 식별자(AIDa), 상기 출력장치 식별자(AIDa)에 대응하는 개별키(IKa) 및 중간키군(MKGa)을 출력장치 대응 정보 저장부(114)로부터 삭제한다(S3152).
대응 정보 갱신부(118)는, 시스템 비밀 파라미터군 생성요구(REQ1)를 시스템 비밀 파라미터군 생성부(111)에 출력하고, 동작은 단계(S3101)로 진행된다(S3153).
여기서, 출력장치(33a) 이외의 출력장치(33b~33n)를 무효화할 때의 동작은 출력장치(33a)의 동작과 거의 유사하다. 그렇지만, 대응 정보 갱신부(118)에서, 출력장치 대응 정보 저장부(114)로부터 삭제되는 출력장치 식별자, 개별키 및 중간키군이, 무효화되는 출력장치(23b~23n)에 의존해 바뀌는 점이, 출력장치(23a)의 동작과 다르다.
이상은 컨텐츠 배송 시스템(3)의 구성요소인 키 발행 센터(31)의 구성과 동작이다. 다음에, 서버(32)의 구성과 동작에 대해 설명한다.
<서버(32)의 구성>
도 40에 나타낸 것같이, 서버(32)는 입력부(121), 컨텐츠 암호화부(122), 컨텐츠키 저장부(123), 컨텐츠 배송부(124), 시변 파라미터군 저장부(125), 시스템 비밀 파라미터군 수신부(126), 시스템 비밀 파라미터군 저장부(127), 시변 파라미터군 생성부(328)로 구성된다. 도 40에 있어서, 도 9에서 동일 부호가 동일 구성요소에 대해서 할당되므로 동일 구성 요소에 대한 설명은 생략한다.
(1) 시변 파라미터군 생성부(328)
시변 파라미터군 갱신조건은 시변 파라미터군 생성부(328)에 미리 주어진다. 조건이 만족될 때, 시변 파라미터군 생성부(328)는 시스템 비밀 파라미터군 저장부(127)에 액세스하고, 시스템 비밀 파라미터군(SPG)을 취득한다. 그리고, 시스템 비 밀 파라미터군(SPG)중에서 컨텐츠키가 할당된 하나의 키 식별자를 랜덤하게 선택한다. 여기에서, 키 식별자와 컨텐츠키로서 {KID, CK}가 선택된다고 가정한다. 그 후, 도 41에 나타내는 것같이 키 식별자(KID)로 형성된 시변 파라미터군(PRG)을 생성하고, 시변 파라미터군(PRG)을 시변 파라미터군 저장부(125)에 저장한다. 마지막으로, 컨텐츠키(CK)를 컨텐츠키 저장부(123)에 출력한다.
<서버(32)의 동작>
이상으로, 서버(32)의 구성에 대해서 설명했다. 여기서, 서버(32)의 동작에 대해 설명한다. 우선, 서버(12)에 있어서의 동작과 동일하므로, 컨텐츠 배송시의 동작 및 시스템 비밀 파라미터군 수신시의 동작은 생략한다. 여기에서, 시변 파라미터군갱신시의 동작은 도 42에 나타내는 흐름도를 이용해 설명한다.
<<시변 파라미터군(PRG) 갱신시의 동작>>
시변 파라미터군 생성부(328)는 미리 주어진 시변 파라미터군 갱신조건을 만족할 때, 동작은 단계(S3262)로 이동한다. 시변 파라미터군 갱신조건을 만족하지 않을 때, 동작은 종료한다(S3261).
시변 파라미터군 생성부(328)는 시스템 비밀 파라미터군 저장부(127)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득한다(S3262).
시변 파라미터군 생성부(328)는 시스템 비밀 파라미터군(SPG)중에서 컨텐츠키가 할당된 키 식별자를 하나 선택한다. 여기에서, {KID, CK}가 선택되었다고 가정한다. 키 식별자(KID)로 형성된 시변 파라미터군(PRG)을 생성한다(S3263).
시변 파라미터군 생성부(328)는 시변 파라미터군(PRG)을 시변 파라미터군 저 장부(125)에 저장한다(S3264).
컨텐츠키(CK)를 컨텐츠 암호화키 생성부(329)에 저장하고, 동작을 종료한다(S3365).
이상이 컨텐츠 배송 시스템(3)의 구성요소인 서버(32)의 구성과 동작이다. 다음은 출력장치(33a)의 구성과 동작에 대해서 설명한다.
<출력장치(33a)의 구성>
도 43에 나타낸 것같이, 출력장치(33a)는 컨텐츠 수신부(131), 컨텐츠 복호화키 생성부(332), 컨텐츠키 저장부(133), 중간키군 저장부(134), 컨텐츠 복호화부(135), 출력부(136), 암호화 중간키군 세트수신부(137), 암호화 중간키군복호화부(138) 및 개별키 저장부(139)로 구성된다. 도 43에서, 도 17의 동일한 구성요소에 대해서 동일한 부호가 할당되고, 동일한 구성요소에 대한 설명은 여기서 생략한다.
(1) 컨텐츠 복호화키 생성부(332a)
컨텐츠 복호화키 생성부(332a)가 컨텐츠 수신부(131)로부터 시변 파라미터군(PRG)를 수신했을 때, 컨텐츠 복호화키 생성부(332a)는 컨텐츠키 저장부(133)에 저장되어 있는 사용시변 파라미터군(UPRG)이 수신한 시변 파라미터군(PRG)과 일치하는지 확인한다. 여기서, 서로 일치하고 있으면, 컨텐츠 복호화키 생성부(332a)는 컨텐츠키 저장부(133)에 액세스해서, 저장되어 있는 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다. 만약 서로 일치하고 있지 않으면, 중간키군 저장부(134a)에 액세스해서, 중간키군(MKGa)를 취득한다. 그리고, 시변 파라미터군(PRG)으로부터 키 식별자(KID)를 추출해서, 중간키(MKa)로부터 키 식별자(KID)에 대응하는 키를 취득해서, 그것을 컨텐츠키(CK)로서 컨텐츠키 저장부(133)에 저장하고, 시변 파라미터군(PRG)을 사용시변 파라미터군(UPRG)으로서 컨텐츠키 저장부(133)에 저장하고, 저장된 시변 파라미터군(PRG)을 컨텐츠키(CK)로서 컨텐츠 복호화부(135)에 출력한다.
<출력장치(33a)의 동작>
이상으로, 출력장치(33a)의 구성에 대해서 설명했다. 여기서, 출력장치(33a)의 동작에 대해 설명한다. 우선, 출력장치(13a)에서의 동작과 같으므로, 키 갱신시의 동작에 대한 설명은 생략한다. 여기에서, 컨텐츠 수신시의 동작을 도 44에 나타내는 흐름도를 이용해 설명한다.
<컨텐츠 수신시의 동작>
컨텐츠 수신부(131)가 암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)을 수신할 때, 동작은 단계(S3302)로 이동한다. 수신하고 있지 않을 때, 동작은 종료한다(S3301).
컨텐츠 수신부(131)는 수신한 시변 파라미터군(PRG)을 컨텐츠 복호화키 생성부(332a)에 출력한다(S3302).
시변 파라미터군(PRG)을 수신한 컨텐츠 복호화키 생성부(332a)는 컨텐츠키 저장부(133)에 액세스하고, 수신한 시변 파라미터군(PRG)과 사용시변 파라미터군(UPRG)이 서로 일치할 때, 동작은 단계(S3307)로 이동한다. 서로 일치하지 않을 때, 동작은 단계(S3304)로 진행한다(S3303).
컨텐츠 복호화키 생성부(332a)는 중간키군 저장부(134a)에 액세스하고, 중간 키군(MKGa)을 취득한다(S3304).
시변 파라미터군(PRG)으로부터 키 식별자(KID)를 취득하고, 중간키군(MKGa)중에서 키 식별자(KID)에 대응하는 키를 컨텐츠키(CK)로서 취득한다(S3305).
컨텐츠 복호화키 생성부(332a)는 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력하고, 단계(S3308)로 이동한다(S3306).
컨텐츠 복호화키 생성부(332a)는 중간키군 저장부(134a)에 액세스하고, 컨텐츠키(CK)를 취득해서, 그 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다(S3307).
컨텐츠 복호화부(135)는 컨텐츠키(CK)에 근거해서 암호화 컨텐츠(ENCCNT)를 복호화한다(S3308).
컨텐츠 복호화부(135)는 복호화 컨텐츠(DECCNT)를 출력부(136)에 출력한다(S3309).
출력부(136)는 제1 복호화부(136)로부터 복호화 컨텐츠(DECCNT)를 수신하고, 수신한 복호화 컨텐츠(DECCNT)를 외부에 출력하고, 동작은 종료한다(S3310).
이상이, 컨텐츠 배송 시스템(3)의 구성요소인 출력장치(33)의 구성과 동작이다.
<제3 실시예의 동작 검증>
제3 실시예에서, 고유값의 중간키군(MKGa~MKGn)이 각각의 출력장치(33a~33n)에 각각 할당되어 있는 사실에도 불구하고, 동일한 컨텐츠키(CK)가 전체 출력장치(33a~33n)로부터 취득될 수 있는 이유에 대해 설명한다. 각 중간키군(MKGa~MKGn)은 모든 유형에 공통인 컨텐츠키의 부분과 출력장치마다 고유한 더미키의 부분으로 구성되어 있다. 서버(32)는 각 중간키군(MKGa~MKGn)의 어느 부분이 모든 유형에 공통인지를 알고 있으므로, 그 부분의 키만을 사용하도록 시변 파라미터군(PRG)이 생성될 수 있다. 그렇지만, 고유의 중간키만을 갖는 각 출력장치(33a~33n)는 어느 부분이 모든 유형에 공통인 컨텐츠키이고, 어느 부분이 출력장치마다 고유한 더미키인지 구별할 수 없다.
<제3 실시예의 효과>
제3 실시예는 기본적으로 제1 실시예와 유사한 효과를 갖는다. 그렇지만, 출력장치(33a~33n)가 대수식 처리를 이용하지 않고 테이블 고정치만을 참조하여 컨텐츠키(CK)를 생성하는 점에서 제1 실시예와 다르다. 따라서, 실시예 l와 비교하여, 키 발행 센터(31)가 출력장치(33a~33h)에 배송하는 암호화 중간키군 세트(ENCMKGS)의 사이즈는 커지지만, 각 출력장치(33a~33n)에 의한 연산 처리량을 삭감될 수 있다.
<제3 실시예의 변형예>
상기에 설명한 실시예는, 본 발명의 실시예중 일 예이다. 그러므로, 본 발명은 이 실시예에 한정되지 않는다. 본 실시예의 문맥내에서 주요 조건이 구체화될 수 있다. 이하의 경우들도 본 발명에 포함된다.
(1) 통신로(10)는 지상파 또는 위성 등의 방송망이어도 좋다.
(2) 서버(22)가 키 발행 센터(21)의 역할을 할 수도 있다. 즉, 서버(22)는 출력장치 식별자(AIDa~AIDn)중 하나를 수신해서, 출력장치 식별자(AIDa~AIDn)중 하 나에 근거해 암호화 중간키군 세트(ENCMKGS)를 복수의 출력장치(33a~33n)에 송신할 수도 있다.
(3) 키 발행 센터(31)의 중간키군 생성부(313)는, 외부에서 중간키군생성요구 정보(REQ3)를 수신하고, 중간 키 군생성요구 정보(REQ3)에 근거해서, 중간키군(MKGa~MKGn)을 생성할 수도 있다.
(4) 키 발행 센터(31)는 시스템 비밀 파라미터군(SPG) 대신에 중간키를 서버(32)에 송신할 수도 있다.
(5) 서버(32)의 시변 파라미터군 생성부(328)는, 외부로부터 시변 파라미터군 생성요구 정보(REQ4)를 수신해서, 시변 파라미터군 생성요구 정보(REQ4)에 근거해서, 시변 파라미터군(PRG)을 생성할 수도 있다.
(6) 시스템 비밀 파라미터군(SPG)은 도 45에 나타낸 공통키(SK)를 설정해도 좋고; 시스템 비밀 파라미터군 생성부(311)는 컨텐츠키(CK)에 부가하여 컨텐츠키 및 공통키(SK)를 생성해도 좋고, 도 46에 나타낸 것같이 중간키군(MKGa~MKGn)에 대해서 공통키(SK)를 설정해도 좋고; 시변 파라미터군 생성부(328)는 랜덤하게 선택된 키 식별자(KID)에 대응하는 키가 공통키(SK)에 연결되어 있는 컨텐츠키(CK)로서 암호화 저장부(l23)에 저장해도 좋고; 컨텐츠 복호화키 생성부(332)는 시변 파라미터군(PRG)의 키 식별자(KID)에 대응하는 키가 공통키(SK)에 연결되어 있는 것을 컨텐츠키(CK)로서 컨텐츠키 저장부(133)에 저장해서, 컨텐츠 복호화부(135)에 출력할 수도 있다.
(7) 도 47에 나타낸 것같이, 시스템 비밀 파라미터군(SPG)은 (k+m) 세트의 비트 식별자(BID1~BID) 및 k세트의 컨텐츠키 비트로 형성되어도 좋다. 도 48에 나타낸 것같이, 중간키군(MKGa~MKGn)은 비트 식별자(BID1~BID) 및 대응된 k+m 개의 비트로 형성되어도 좋다. 도 49에 나타낸 것같이, 시변 파라미터군(PRG)은 제1 비트 식별자(BITID1)로부터 제y 비트 식별자(BITIDy)로 형성되어도 좋다. 서버(32)의 시변 파라미터군 생성부(328)는 컨텐츠키 비트가 시스템 비밀 파라미터군(SPG)에 할당되어 있는 k개 중에서 y개의 비트 식별자를 선택해서, 선택된 비트 식별자로 형성된 시변 파라미터군(PRG)을 시변 파라미터군 저장부(125)에 저장하고, 선택된 y개의 비트 식별자에 대응하는 컨텐츠키 비트가 연결되어 있는 것을 컨텐츠키 저장부(123)에 저장할 수도 있다. 출력장치(332)의 복호화 생성부는 수신된 시변 파라미터군(PRG)의 y개의 비트 식별자(BITID1~BIDITy)에 대응하는 컨텐츠키 비트가 중간키군에 연결되어 있는 것을 컨텐츠키(CK)로서 컨텐츠 복호화부(135)에 출력할 수도 있다.
(8) 제3 실시예에서, 출력장치의 수는 14(33a~33n)이지만, 출력장치의 수는 15 이상, 13 이하이어도 좋다.
(9) 키 발행 센터(31)가 암호화 중간키군 세트(ENCMKG)를 배송할 때, 동시에 배송하거나, 각 출력장치(33a~33n)에 개별적으로 배송할 수 있다.
(10) 본 발명은, 상기에 기술된 방법일 수 있다. 또, 이 방법들을 컴퓨터가 실현하도록 하는 컴퓨터 프로그램일 수 있고, 상기 컴퓨터 프로그램으로 형성된 디지털 신호일 수 있다. 또, 본 발명은, 컴퓨터 프로그램 또는 디지털 신호를 컴퓨터가 읽을 수 있는 기록 매체일 수 있다. 예를 들면, 플렉서블 디스크(flexible disk), 하드 디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD(Blu-ray Disc), 반도체 메모리 등에 저장될 수 있다. 또, 본 발명은 이들 기록 매체에 저장된 컴퓨터 프로그램 또는 디지털 신호일 수 있다. 또한, 본 발명은, 컴퓨터 프로그램 또는 디지탈 신호를 통신회선, 무선 또는 유선 통신회선, 인터넷을 대표로 하는 네트워크등을 통해 송신할 수 있다. 또, 본 발명은, 마이크로 프로세서 및 메모리를 갖춘 컴퓨터 시스템이다. 메모리는 컴퓨터 프로그램을 저장하고 있고, 마이크로 프로세서는 컴퓨터 프로그램에 따라서 동작한다. 또한, 본 발명은 프로그램 및 디지털 신호를 기록 매체에 기록해 송신하거나 또는 네트워크를 통해 송신함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시된다.
(11) 본 실시예 및 변형예는 서로 결합될 수 있다.
(제4 실시예)
본 발명에 따르는 실시예로서 컨텐츠 배송 시스템(4)에 대해 설명한다. 제3 실시예의 컨텐츠 배송 시스템(3)에서, k개의 컨텐츠키와 m개의 더미키는 중간키군(MKGa~MKGn)에 포함되어 있다. 그렇지만, 제4 실시예의 컨텐츠 배송 시스템(4)은 개별 식(출력장치 컨텐츠키 생성식)에 관한 정보가 중간키군(MKGa~MKGn)에 포함되어 있고, 그 식에 근거해서 컨텐츠키가 취득되는 점이 컨텐츠 배송 시스템(3)과 크게 다르다.
이하에, 본 발명의 컨텐츠 배송 시스템의 일 실시예인 컨텐츠 배송 시스템(4)에 대해서 상세히 설명한다.
<컨텐츠 배송 시스템(4)의 구성>
도 50에 나타낸 것같이, 컨텐츠 배송 시스템(4)은 제1 실시예에서와 같은 통신로(10), 제1 실시예에서와 다른 키 발행 센터(41), 서버(32) 및 복수의 출력장치(42 a~42 n)로 구성된다. 각각의 구성요소의 역할은 컨텐츠 배송 시스템(1)과 같다.
이하에, 이들 구성요소에 대해서 상세하게 설명한다. 통신로(10)의 구성에 대한 설명은 컨텐츠 배송 시스템(1)에서와 동일하므로 생략한다. 서버(32)의 구성과 동작은 컨텐츠 배송 시스템(3)에서와 동일하므로, 서버(32)에 대한 설명은 생략한다. 여기서, 키 발행 센터(41) 및 출력장치(43)의 구성과 동작에 대해서 도면을 이용해 설명한다.
<키 발행 센터(41)의 구성>
도 51에 나타낸 것같이, 키 발행 센터(41)는 시스템 비밀 파라미터군 생성부(311), 시스템 비밀 파라미터군 송신부(112), 중간키군 생성부(413), 출력장치 대응 정보 저장부(114), 중간키군 암호화부(115), 암호화 중간키군 세트 배송부(116), 입력부(117), 및 대응 정보 갱신부(118)로 구성된다. 도 51에서, 동일한 부호가 도 2 또는 도 35에서 동일한 구성요소에 할당되므로, 동일한 구성요소에 대한 설명은 여기서 생략된다.
(1) 중간키군 생성부(413)
중간키군 생성부(413)는, 시스템 비밀 파라미터군 생성부(311)로부터 시스템 비밀 파라미터군(SPG)을 수신한 경우, 출력장치 대응 정보 저장부(113)에서 모든 중간키군(MKGa~MKGn)을 소거한다. 그리고, 수신한 시스템 비밀 파라미터군(SPG)으로부터 (k+m)세트의 키 식별자와 컨텐츠키를 취득한다. 다음에, 더미키(DMK1~DMKm)를 생성해서, 키 식별자(KID1~KIDk+m)에 컨텐츠키(CK)가 할당되어 있지 않은 m개의 키 식별자에 대해서 각각 할당한다. 그리고, 키 식별자의 값을 x축으로서, 키의 값을 y축으로서 이용하여, 2차원 좌표를 표현한다. 그리고, 이차원 좌표의 모든 점을 통과하는, 예를 들면 (k+m+1) 차식을 취득한다. 그 식의 계수를 {CEl, CE2, …CKk+m+2}로 결정하면, 도 52에 나타내는 것같이 식 계수(CEl~CKk+m+2)로 구성되는 중간키군(MKGa)를 생성한다. 그리고, 이 중간키군(MKGa)을 출력장치 대응 정보 저장부(l13)의 출력장치 식별자(AIDa)에 관련시켜 저장한다. 그 후, 이 동작은 출력장치 대응 정보 저장부(113)의 각각의 다른 출력장치 식별자(AIDb~AIDn)에서 행해진다. 여기서, 고유의 중간키군이 각각의 출력장치 식별자(AIDa~AIDn)에 각각 할당된다. 출력장치 대응 정보 저장부(113)의 출력장치 식별자(AIDa~AIDn)에 모든 중간키군(MKGa~MKGn)을 각각 할당한 후, 중간키군 생성부(413)는 암호화 중간키군생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다.
<키 발행 센터(41)의 동작>
이상으로, 키 발행 센터(41)의 구성에 대해서 설명했다. 여기에서, 키 발행 센터(41)의 동작에 대해 설명한다. 우선, 키 배송시의 키 발행 센터(41)의 동작을 도 53에 나타낸 흐름도를 이용해 설명한다. 그 후, 출력장치 무효화시의 동작에 대해 도 54를 이용해 설명한다.
<키 배송시의 동작>
시스템 비밀 파라미터군 생성부(311)는 k 세트의 컨텐츠키(CK1, CK2, …CKk)를 생성한다(S4101).
시스템 비밀 파라미터군 생성부(311)는 키 식별자(KID1~KIDk+m) 중에서 k세트를 선택해서, k 세트의 컨텐츠키를 k 세트의 컨텐츠키와 대응시킨다(S4102).
시스템 비밀 파라미터군 송신부(l12)는, 수신한 시스템 비밀 파라미터군(SPG)을 서버(42)에 송신한다(S4104).
중간키군 생성부(413)는 출력장치 대응 정보 저장부(114)에 저장되어 있는 중간키군(MKGa~MKGn)을 모두 삭제한다(S4105).
중간키군 생성부(413)는 시스템 비밀 파라미터군(SPG)에 저장되어 있는 키 식별자(KID1~KIDk+m) 중에서 컨텐츠키가 할당되지 않은 m개의 키 식별자에 더미키{DMKl, DMK2, …DMKm}를 생성해 할당한다. 여기서, 생성한 더미키의 값은 미리 생성된 더미키의 값과 동일하지 않아도 된다(S4106).
중간키군 생성부(413)는 키 식별자의 값을 x 축으로서, 대응하는 키의 값을 y 축으로서 사용하여 2차원 좌표의 점을 표현한다. 그리고, 이차원 좌표의 점을 모두 통과하는 예를 들면 k+m+ 차식을 계산한다. 그리고, 식 계수가 {CEl, CE2, …CK+m+2}로 구성되는 중간키군을 생성한다(S4106).
중간키군 생성부(413)은 중간키군을 출력장치 대응 정보 저장부(114)에서 중간키군이 할당되지 않은 출력장치 식별자에 대응시키고 저장한다(S4107).
출력장치 대응 정보 저장부(114)의 모든 출력장치 식별자(AIDa~AIDn)에 중간키군(MKGa~MKGn)이 각각 할당되어 있으면, 동작은 단계(S4109)으로 이동한다. 만약 할당되지 않은 출력장치 식별자가 있으면, 동작은 단계(S4106)으로 돌아온다(S4108).
중간키군 생성부(413)는 암호화 중간키군 세트 생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다(S4109).
암호화 중간키군 세트 생성요구(REQ2)를 수신한 중간키군 암호화부(115)는 출력장치 대응 정보 저장부(114)에 액세스해서, 모든 출력장치 식별자(AIDa~AIDn), 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)을 취득한다(S4110).
중간키군 암호화부(115)는 각각의 개별키(IKa~IKn)에 근거해 각각의 중간키군(MKGa~MKGn)을 암호화하고, 암호화 중간키군(ENCMKGa=Enc(IKa, MKGa)~ENCMKGn=Enc(IKn, MKGn)) 및 암호화에 이용된 개별키에 각각 대응하는 장치 식별자로 구성된 암호화 중간키군 세트(ENCMKGS={AIDa, ENCMKGa} ∥…∥ {AIDn, ENCMKGn})를 생성한다(S4111).
중간키군 암호화부(115)는 생성한 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 세트 배송부(116)에 출력한다(S4112).
암호화 중간키군 세트 배송부(116)는 암호화 중간키군 세트(ENCMKGS)를 받아, 그 수신한 암호화 중간키군 세트(ENCMKGS)를 출력장치(13a~13n)에 배송하고 동작을 종료한다 (S4113).
<출력장치(43a)무효화시의 동작>
입력부(117)는 수신한 출력장치 식별자(AIDa)를 대응 정보 갱신부(118)에 출력한다(S4151).
대응 정보 갱신부(118)는 수신한 출력장치 식별자(AIDa)에 대응하는 개별키(IKa) 및 중간키군(MKGa)을 출력장치 대응 정보 저장부(114)로부터 삭제한다(S4152).
대응 정보 갱신부(118)은, 시스템 비밀 파라미터군 생성부(111)에 시스템 비밀 파라미터군 생성요구(REQ1)를 출력하고, 단계(S4101)으로 이동한다(S4153).
이상이 컨텐츠 배송 시스템(4)의 구성요소인 키 발행 센터(41)의 구성과 동작이다. 다음은 출력장치(43)의 구성과 동작에 대해서 설명한다.
<출력장치(43a)의 구성>
도 55에 나타낸 것같이, 출력장치(43a)는 컨텐츠 수신부(131), 컨텐츠 복호화키 생성부(432a), 컨텐츠키 저장부(133), 중간키군 저장부(134a), 컨텐츠 복호화부(135), 출력부(136), 암호화 중간키군 세트수신부(137), 암호화 중간키군복호화부(138a), 및 개별키 저장부(139a)로 구성된다. 도 55에서, 동일한 부호가 도 17의 동일한 구성요소에 할당되고, 동일한 구성요소에 대한 설명은 생략한다.
(1) 컨텐츠 복호화키 생성부(432a)
컨텐츠 복호화키 생성부(432a)는 컨텐츠 수신부(131)로부터 시변 파라미터군(PRG)을 수신할 때, 컨텐츠키 저장부(133)에 저장된 사용시변 파라미터군(UPRG)이 수신한 시변 파라미터군(PRG)과 일치하는지 확인한다. 여기서, 서로 일치하고 있으면, 컨텐츠 복호화키 생성부(432a)는 컨텐츠키 저장부(133)에 액세스해서, 저장된 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다. 만약 일치하지 않으면, 중간키군 저장부(134a)에 액세스해서, 중간키군(MKGa)을 취득한다. 그리고, 중간키군 (MKGa)로부터 추출된 식 계수로부터 출력장치 컨텐츠키 생성식을 생성한다. 그 후, 시변 파라미터군(PRG)로부터 키 식별자를 취득하고, 키 식별자를 출력장치 컨텐츠키 생성식에 대입한다. 대입 결과의 값을 컨텐츠키(CK)로서 컨텐츠키 저장부(133)에 저장하고, 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다.
<출력장치(43a)의 동작>
이상으로, 출력장치(43a)의 구성을 설명했다. 여기서 출력장치(43a)의 동작에 대해 설명한다. 우선, 컨텐츠 수신시의 동작을 도 56에 나타낸 흐름도를 이용해 설명한다. 그리고, 키 갱신시의 동작을 도 57에 나타낸 흐름도를 이용해 설명한다.
<컨텐츠 수신시의 동작>
컨텐츠 수신부(131)가 암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)를 수신할 때, 처리는 단계(S4302)으로 이동한다. 그것을 수신하지 않을 때, 처리는 종료한다(S4301)
수신한 시변 파라미터군(PRG)은 컨텐츠 복호화키 생성부(432)에 출력된다(S4302).
시변 파라미터군(PRG)을 수신한 컨텐츠 복호화키 생성부(432)는 컨텐츠키 저장부(133)에 액세스하고, 수신한 시변 파라미터군(PRG)과 동일한 사용시변 파라미터군(UPRG)이 저장되어 있을 때 단계(S4307)으로 이동한다. 만약 다르면, 단계(S4305)로 이동한다(S4303).
컨텐츠 복호화키 생성부(432)는 중간키군 저장부(134)에 액세스해서 중간키군(MKGa)을 취득한다(S4304).
컨텐츠 복호화키 생성부(432)는 중간키군(MKGa)에 내장된 식 계수로부터, 출력장치 컨텐츠키 생성식을 생성한다. 그리고, 시변 파라미터군(PRG)으로부터 키 식별자를 취득해서, 그 키 식별자를 출력장치 컨텐츠키 생성식에 대입한다. 대입한 결과의 값은 컨텐츠키(CK)로 정의된다(S4305).
컨텐츠 복호화키 생성부(432)는 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력해서, 단계(S4308)로 이동한다(S4306).
컨텐츠 복호화키 생성부(432)는 중간키군 저장부(134a)에 액세스해서, 컨텐츠키(CK)를 취득하고, 그 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다(S4307).
컨텐츠 복호화부(135)는 컨텐츠키(CK)에 근거해서 암호화 컨텐츠(ENCCNT)를 복호화한다(S4308).
컨텐츠 복호화부(135)는 복호화 컨텐츠(DECCNT)를 출력부(l36)에 출력한다(S4309).
출력부(136)는 제 1복호화부(136)로부터 복호화 컨텐츠(DECCNT)를 수신해서, 수신한 복호화 컨텐츠(DECCNT)를 외부에 출력하고, 처리를 종료한다(S4310).
이상이 컨텐츠 배송 시스템(4)의 구성요소인 출력장치(43)의 구성과 동작이다
<제4 실시예의 동작 검증>
제4 실시예에서, 각각의 출력장치(33a~33n)에 중간키군(MKGa~MKGn)의 값이 각각 할당되어 있는 것에도 불구하고, 모든 출력장치(33a~33n)로부터 동일한 컨텐 츠키(CK)가 취득될 수 있는 이유는 제3 실시예에서 설명한 것과 같다.
<제4 실시예의 효과>
본 제4 실시예는 기본적으로 제3 실시예와 유사한 효과를 갖는다. 그렇지만, 제3 실시예에 비해, 제4 실시예에서, 각 출력장치(43a~43n)에서의 연산 처리량이 증가하지만, 키 발행 센터(41)가 출력장치(43a~43n)에 배송하는 암호화 중간키군 세트(ENCMKGS)의 크기가 줄어들 수 있다.
<제4 실시예의 변형예>
상기에 설명한 실시예는, 본 발명의 실시예중 일 예이다. 그러므로, 본 발명은 이 실시예에 한정되지 않는다. 본 실시예의 문맥을 초과하지 않는 범위내에서 주요 조건이 구체화될 수 있다. 이하의 경우들도 본 발명에 포함된다.
(1) 통신로(10)는 지상파 또는 위성 등의 방송망이어도 좋다.
(2) 서버(22)가 키 발행 센터(21)의 역할을 할 수도 있다. 즉, 서버(22)는 출력장치 식별자(AIDa~AIDn)를 수신해서, 출력장치 식별자(AIDa~AIDn)에 근거해 암호화 중간키군 세트(ENCMKGS)를 출력장치(43a~43n)에 송신할 수도 있다.
(3) 키 발행 센터(41)의 중간키군 생성부(413)는, 외부에서 중간키군생성요구 정보(REQ3)를 수신하고, 중간 키 군생성요구 정보(REQ3)에 근거해서, 중간키를 생성할 수도 있다.
(4) 키 발행 센터(41)는 시스템 비밀 파라미터군(SPG) 대신에 중간키를 서버(42)에 송신할 수도 있다.
(5) 서버(32)의 시변 파라미터군 생성부(428)는, 외부로부터 시변 파라미터 군 생성요구 정보(REQ4)를 수신해서, 시변 파라미터군 생성요구 정보(REQ4)에 근거해서, 시변 파라미터군(PRG)을 생성할 수도 있다.
(6) 제4 실시예에서, 출력장치의 수는 14(43a~43n)이지만, 출력장치의 수는 15 이상, 13 이하이어도 좋다.
(7) 키 발행 센터(31)가 암호화 중간키군 세트(ENCMKG)를 배송할 때, 동시에 출력장치(43 a~43 n)에 배송하거나, 각 출력장치(43 a~43 n)에 개별적으로 배송할 수 있다.
(8) 본 발명은, 상기에 기술된 방법일 수 있다. 또, 이 방법들을 컴퓨터가 실현하도록 하는 컴퓨터 프로그램일 수 있고, 상기 컴퓨터 프로그램으로 형성된 디지털 신호일 수 있다. 또, 본 발명은, 컴퓨터 프로그램 또는 디지털 신호를 컴퓨터가 읽을 수 있는 기록 매체일 수 있다. 예를 들면, 플렉서블 디스크(flexible disk), 하드 디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD(Blu-ray Disc), 반도체 메모리 등에 저장될 수 있다. 또, 본 발명은 이들 기록 매체에 저장된 컴퓨터 프로그램 또는 디지털 신호일 수 있다. 또한, 본 발명은, 컴퓨터 프로그램 또는 디지탈 신호를 통신회선, 무선 또는 유선 통신회선, 인터넷을 대표로 하는 네트워크등을 통해 송신할 수 있다. 또, 본 발명은, 마이크로 프로세서 및 메모리를 갖춘 컴퓨터 시스템이다. 메모리는 컴퓨터 프로그램을 저장하고 있고, 마이크로 프로세서는 컴퓨터 프로그램에 따라서 동작한다. 또한, 본 발명은 프로그램 및 디지털 신호를 기록 매체에 기록해 송신하거나 또는 네트워크를 통해 송신함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시된다.
(9) 본 실시예 및 변형예는 서로 결합될 수 있다.
(제5 실시예)
본 발명에 따른 제5 실시예로서 컨텐츠 배송 시스템(5)에 대해 설명한다. 제1 실시예에 있어서의 컨텐츠 배송 시스템(1)에서, 각 출력장치(13a~13n)는 대수 연산을 이용해 컨텐츠키(CK)를 생성한다. 제5 실시예에 있어서의 컨텐츠 배송 시스템(5)은 출력장치(53a~53n)가 시프트 레지스터를 이용해 컨텐츠키(CK)를 생성하는 점이, 제1 실시예와 크게 다르다.
이하, 본 발명의 컨텐츠 배송 시스템의 일 실시예인 컨텐츠 배송 시스템(5)에 대하여 상세히 설명한다.
<컨텐츠 배송 시스템(5)의 구성>
도 57에 나타낸 것같이, 컨텐츠 배송 시스템(5)은 제1 실시예에서와 같은 통신로(10), 및 제1 실시예와 다른 키 발행 센터(51), 서버(52) 및 복수의 출력장치(53a~53n)로 구성된다. 각 구성요소의 역할은 컨텐츠 배송 시스템(1)과 같다.
여기에서, 키 발행 센터(51), 서버(52) 및 출력장치(53a~53n)에 의해 공통으로 이용된 시프트 레지스터의 구성 및 동작에 대해 도 58∼도 60을 이용해 설명한다. 먼저 도 58을 이용해 시프트 레지스터의 구성에 대해 설명한다. 도 58은 제1 레지스터(R[1]), 제2 레지스터(R[2]), 제3 레지스터(R[3]), 제4 레지스터(R[4])의 4개의 레지스터, 및 제2 레지스터(R[2])와 제3 레지스터(R[3])의 사이의 1개의 탭으로 형성된 시프트 레지스터를 나타내고 있다. 여기서, 설명을 용이하게 하기 위 해서 레지스터수는 4개로 설정되어 있고, 탭수는 1개로 설정되어 있다. 그렇지만, 레지스터 및 탭의 수는 몇 개라도 될 수 있다. 탭을 연결하는 방법으로서, 예를 들면, 비특허 문헌 4(Eiji Okamoto, "암호 이론 입문(Ango Riron Nyumon))", Kyoritsu Publications)에 개시된 M계열과 유사하게 원시 다항식을 이용하는 방법이 있다. 0 또는 1의 바이너리 데이터가 각각의 레지스터에는 저장된다. 도 58에 있어서, 1은 제1 레지스터(R[1])에 저장되고, 1은 제2 레지스터(R[2])에 저장되고, 0은 제3 레지스터(R[3])에 저장되고, 1은 제4 레지스터(R[4])에 저장된다. 또, 탭은 배타적 OR 연산을 나타낸다.
다음에, 시프트 레지스터의 2개의 동작에 대해 설명한다. 그것은 우측 시프트 연산 및 좌측 시프트 연산이다. 우측 시프트 연산은 도 59를 이용하여 설명하고, 좌측 시프트 연산은 도 60을 이용해 설명한다.
우선, 시프트 레지스터에 있어서의 우측 시프트 연산에 대해 설명한다.
첫번째 우측 시프트 연산후, 시프트전의 제3 레지스터(R[3])의 값이 제4 레지스터 R[2]에 저장되고, 시프트전의 제1 레지스터(R[1])의 값이 제2 레지스터(R[2])에 저장되고, 시프트전의 제4 레지스터(R[4])의 값이 제1 레지스터(R[1])에 저장된다. 그리고, 시프트 전의 제4 레지스터(R[4])의 값과 시프트 전의 제2 레지스터(R[2])의 값 사이에 배타적 OR를 계산하여 얻어진 값이 제3 레지스터(R[3])에 저장된다. 그러므로, 도 59에 나타낸 것같이, 초기 상태에서, 1은 제1 레지스터(R[1])에 저장되고, 1은 제2 레지스터(R[2])에 저장되고, 0은 제3 레지스터(R[3])에 저장되고, 1은 제4 레지스터(R[4])에 저장되고, 초기상태에서 우측으로 한번 시 프트한 뒤에, 1은 제1 레지스터(R[1])에 저장되고, 1은 제2 레지스터(R[2])에 저장되고, 0은 제3 레지스터(R[3])에 저장되고, 0은 제4 레지스터(R[4])에 저장된다. 그리고, 우측으로 한번 더 시프트한 뒤에, 도 59에 나타낸 것같이, 0은 제1 레지스터(R[1])에 저장되고, 1은 제2 레지스터(R[2])에 저장되고, 1은 제3 레지스터(R[3])에 저장되고, 0은 제4 레지스터(R[4])에 저장된다.
우선, 시프트 레지스터에 있어서의 좌측 시프트 연산에 대해 설명한다.
첫번째 좌측 시프트 연산후, 시프트전의 제2 레지스터(R[2])의 값이 제1 레지스터(R[1])에 저장되고, 제4 레지스터(R[4])의 값이 제3 레지스터(R[3])에 저장된다. 그리고, 시프트전의 제3 레지스터(R[3])의 값과 시프트 전의 제1 레지스터(R[1])의 값 사이에 배타적 OR를 계산하여 얻어진 값이 제2 레지스터(R[2])에 저장된다. 또한, 시프트전의 제1 레지스터(R[1])의 값과 각각의 외부 입력(OI[1]∼OI[4])의 값 사이에 배타적 OR를 계산하여 얻어진 값이 제4 레지스터(R[4])에 저장된다. 그러므로, 도 60의 상부에 나타낸 것같이, 시프트 레지스터의 초기 상태에서, 제1 레지스터(R[1])에 0이 저장되어 있을 때, 0은 제2 레지스터(R[2])에 저장되고, 1은 제3 레지스터(R[3])에 저장되고, 1은 제4 레지스터(R[4])에 저장되고, 초기 상태로부터 외부 입력I[1]을 1로서 지정하여 좌측 시프트를 한 번 행한 후, 도 60에 나타내는 것같이, 0은 제1 레지스터(R[1])에 저장되고, 1은 제2 레지스터(R[2])에 저장되고, 1은 제3 레지스터(R[3])에 저장되고, 1은 제4 레지스터(R[4])에 저장된다. 그리고, 외부 입력(OI[2])을 1로서 지정하여 시프트된 조건에서 좌측으로 한번 더 시프트한 뒤에, 도 60의 하부에 나타낸 것같이, 1은 제1 레지스터 (R[1])에 저장되고, 1은 제2 레지스터(R[2])에 저장되고, 1은 제3 레지스터(R[3])에 저장되고, 1은 제4 레지스터(R[4])에 저장된다.
이상이 키 발행 센터(51), 서버(52) 및 출력장치(53)에 의해 이용된 시프트 레지스터의 구성 및 동작의 설명이다.
이하에, 컨텐츠 배송 시스템(5)의 구성요소에 대해서 상세하게 설명한다. 통신로(10)의 구성은 컨텐츠 배송 시스템(1)에서와 동일하므로, 통신로(10)에 대한 설명은 생략한다. 여기서, 키 발행 센터(51), 서버(52) 및 출력장치(53a~53n)의 구성과 동작을 도면을 이용해 설명한다.
<키 발행 센터(51)의 구성>
도 61에 나타낸 것같이, 키 발행 센터(51)는 시스템 비밀 파라미터군 생성부(511), 중간키군 생성부(513), 출력장치 대응 정보 저장부(l14), 중간키군 암호화부(115), 암호화 중간키군 세트 배송부(116), 입력부(117), 대응 정보 갱신부(118), 및 서버 중간키군송신부(519)로 구성된다. 도 61에서, 동일 부호는 도 2의 동일 구성요소에 할당되고, 동일 구성요소에 대한 설명은 생략한다.
(1) 시스템 비밀 파라미터군 생성부(511)
시스템 비밀 파라미터군 생성부(511)는 t비트의 새로운 시스템 비밀 파라미터군(SPG)을 생성하고, 시스템 비밀 파라미터군(SPG)을 중간키군 생성부(513)에 출력한다. 여기서, 시스템 비밀 파라미터군(SPG)을 생성하는 방법으로서, 예를 들면, 시스템 비밀 파라미터군(SPG)을 난수를 이용해 랜덤하게 생성하는 방법이 있다.
(2) 중간키군 생성부(513)
시스템 비밀 파라미터군 생성부(511)로부터 시스템 비밀 파라미터군(SPG)을 수신한 경우, 중간키군 생성부(513)는 우선, 출력장치 대응 정보 저장부(113)에서 모든 중간키군(MKGa~MKGn)을 소거한다. 중간키군 생성부(513)는 (t+r) 개의 레지스터 및 v개의 탭으로 형성된 시프트 레지스터(SR)를 보유하고 있다. 서버(52)의 컨텐츠 암호화키 생성부(529) 및 출력장치(53a~53n)의 각 컨텐츠 복호화키 생성부(532)는 이 동일한 시프트 레지스터(SR)를 보유하고 있다. 우선, t비트의 시스템 비밀 파라미터군(SPG)은 비트로 표현되고, 제1 레지스터(R[1])∼제t 레지스터R[t]에 대입된다. 그 후, 중간키군 생성부(513)는 r비트의 개별화 파라미터(x)를 생성하고, 비트로 표현된 개별화 파라미터(x)를 제(t+1) 레지스터R[t+1]∼제(t+r) 레지스터R[t+r]에 대입한다. 여기서, 개별화 파라미터(x)를 생성하는 방법으로서, 예를 들면, 개별화 파라미터(x)를 난수를 이용해 랜덤하게 생성하는 방법이 있다. 그리고, 그 상태에서 시프트 레지스터(SR)를 우측으로 u회 시프트한다. u회 우측 시프트 후, 제1 레지스터R1∼제(t+r) 레지스터 R[t+r]의 값을 비트 연결한 값을 중간키군(MKGa)로 정의하고, 그 중간키군(MKGa)을 출력장치 대응 정보 저장부(113)의 출력장치 식별자(AIDa)에 관련시켜 저장한다. 이 동작은 출력장치 대응 정보 저장부(113)의 출력장치 식별자(AIDa) 이외의 모든 출력장치 식별자(AIDb~AIDn)에 대해서 행해진다. 여기서, 고유의 중간키군이 각각의 출력장치 식별자에 할당되도록 한다. 중간키군(MKGa~MKGn)이 출력장치 대응 정보 저장부(113)의 각각의 출력장치 식별자(AIDa~AIDn)에 대해서 모두 할당되면, 중간키군 생성부(513)는 암호화 중간키군생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다. 마지막으로, 다른 중간키군 (MKGa~MKGn)과 유사하게, 하나 더 중간키군을 생성해서, 생성한 중간키군을 서버 중간키군(MGKs)으로서 서버 중간키군송신부(519)에 출력한다. 여기서, 예를 들면 t는 128, r은 32, u는 160이다.
(3) 서버 중간키군 송신부(519)
서버 중간키군송신부(519)는 중간키군 생성부(513)로부터 수신한 서버 중간키군(MKGs)을 통신로(10)를 통하여 서버(52)에 송신한다.
<키 발행 센터(51)의 동작>
이상으로, 키 발행 센터(51)의 구성을 설명했다. 여기에서, 키 발행 센터(51)의 동작에 대해 설명한다. 우선, 컨텐츠키를 공유하는데 필요한 키 정보 배송시의 동작은 도 62에 나타낸 흐름도를 이용해 설명한다. 그 후, 출력장치(53a)의 무효화시의 동작에 대해 도 63에 나타낸 흐름도를 이용해 설명한다.
<<키 정보 배송시의 동작>>
시스템 비밀 파라미터군 생성부(511)는 t비트의 시스템 비밀 파라미터군(SPG)을 생성한다(S5101).
시스템 비밀 파라미터군 생성부(511)는 시스템 비밀 파라미터군(SPG)을 중간키군 생성부(513)에 출력한다(S5102).
중간키군 생성부(513)는 출력장치 대응 정보 저장부(114)에 저장되어 있는 중간키군(MKGa~MKGn)을 모두 삭제한다(S5103).
시스템 비밀 파라미터군(SPG)을 수신한 중간키군 생성부(513)는 t비트의 시스템 비밀 파라미터군(SPG)을 비트로 표현하고, 이것을 제1 레지스터 R [1]∼제t 레지스터 R [t]에 대입한다. 그리고, r비트의 개별화 파라미터(x)를 생성해서, 생성한 개별화 파라미터(x)를 제(t+1) 레지스터R[t+1]∼제(t+r) 레지스터R[t+r]에 대입한다. 그 후, 그 상태에서 시프트 레지스터(SR)에 대해서 우측 시프트를 u회 실시한다. u회 우측 시프트 후 제1 레지스터(R[1])로부터 제(t+r) 레지스터 R[t+r]의 값을 중간키군으로서 취득한다(S5104).
중간키군 생성부(513)는 중간키군을, 중간키군이 아직 출력장치 대응 정보 저장부(113)에 할당되지 않은 출력장치 식별자에 관련시켜서 저장한다(S5105).
중간키군(MKGa~MKGn)이 출력장치 대응 정보 저장부(114)의 출력장치 식별자(AIDa~AIDn)에 대해서 전부 각각 할당되어 있을 때, 중간키군 생성부(513)는 단계(S5107)로 이동한다. 할당되지 않은 출력장치 식별자가 있으면, 단계(S5104)로 돌아온다(S5106).
중간키군 생성부(513)는, 중간키군(MKGa~MKGn)과 유사하게 하나 이상의 중간키군을 생성하고, 이것을 서버 중간키군(MKGs)으로 정의한다(S5107).
중간키군 생성부(513)는 서버 중간키군(MKGs)을 서버 중간키군송신부(519)에 출력한다(S5108).
서버 중간키군송신부(519)는 서버 중간키군(MKGs)을 출력장치(53a~53n)에 배송한다(S5109).
중간키군 생성부(513)는 암호화 중간키군 세트 생성요구(REQ2)를 중간키군 암호화부(115)에 출력한다(S5110).
암호화 중간키군생성요구(REQ2)를 받은 중간키군 암호화부(115)는, 출력장치 대응 정보 저장부(114)에 액세스해서, 각각의 출력장치 식별자(AIDa~AIDn), 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)로 형성된 군을 취득한다(S5111).
중간키군 암호화부(115)는 하나의 개별키(IKa~IKn)에 근거해 각각의 중간키군(MKGa~MKGn)를 암호화하고, 암호화 중간키 및 암호화에 이용된 개별키에 대응하는 장치 식별자로 형성된 암호화 중간키군 세트(ENCMKGS)를 생성한다(S5112).
중간키군 암호화부(115)는 암호화 중간키군 주 y호(ENCMKGS)를 암호화 중간키군 세트 배송부(116)에 출력한다(S5113).
암호화 중간키군 세트 배송부(116)는 암호화 중간키군 세트(ENCMKGS)를 받아, 그 수신한 암호화 중간키군 세트(ENCMKGS)를 출력장치(53)에 배송하고, 처리를 종료한다(S5114).
<출력장치(53a)무효화시의 동작>
입력부(117)는 수신한 출력장치 식별자(AIDa)를 대응 정보 갱신부(118)에 출력한다(S5151).
대응 정보 갱신부(118)는 수신한 출력장치 식별자(AIDa)에 대응하는 개별키(IKa) 및 중간키군(MKGa)을 출력장치 대응 정보 저장부(114)로부터 삭제한다(S5152).
대응 정보 갱신부(118)는 시스템 비밀 파라미터군 생성부(111)에 시스템 비밀 파라미터군 생성요구(REQ1)를 출력하고, 단계(S5101)로 이동한다(S5153).
이상이, 컨텐츠 배송 시스템(5)의 구성요소인 키 발행 센터(51)의 구성과 동작이다. 다음에, 서버(52)의 구성과 동작에 대해서 설명한다.
<서버(52)의 구성>
도 64에 나타낸 것같이, 서버(52)는 입력부(l21), 컨텐츠 암호화부(122), 컨텐츠키 저장부(123), 컨텐츠 배송부(124), 시변 파라미터군저장부(125), 서버 중간키군수신부(526), 중간키군 저장부(527), 시변 파라미터군 생성부(528), 컨텐츠 암호화키 생성부(529)로 구성된다. 도 62에서, 동일 부호가 도 9의 동일 구성요소에 대해서 할당된다. 여기서, 동일 구성요소에 대한 설명은 생략한다.
(1) 서버 중간키군수신부(526)
키 발행 센터(51)로부터 서버 중간키군(MKGs)을 수신한 경우, 서버 중간키군수신부(526)는 수신한 서버 중간키군(MKGs)을 도 65로 낸 것같이 중간키군 저장부(527)에 저장한다.
(2) 중간키군 저장부(527)
도 65에 나타낸 것같이, 중간키군 저장부(527)는 중간키군(MKGs)을 저장한다. 컨텐츠 암호화키 생성부(529)는 중간키군 저장부(527)에 액세스할 수 있다.
(3) 시변 파라미터군 생성부(528)
시변 파라미터군 생성부(528)가 미리 주어진 시변 파라미터군 갱신조건을 만족할 때, u비트의 시변 파라미터군(PRG)을 생성하고, 시변 파라미터군(PRG)을 시변 파라미터군저장부(l25)에 저장하고, 저장한 시변 파라미터군(PRG)을 컨텐츠 암호화키 생성부(529)에 출력한다. 여기서, u비트의 시변 파라미터군(PRG)을 생성하는 방법으로서, 난수를 이용해 랜덤하게 생성하는 방법이 있다. 여기서, 시변 파라미터군 생성부(528)에서 파라미터(u)는 중간키군 생성부(513)에서의 파라미터(u)와 같 은 값이다.
(4) 컨텐츠 암호화키 생성부(529)
시변 파라미터군 생성부(528)로부터 시변 파라미터군(PRG)을 수신한 경우, 컨텐츠 암호화키 생성부(529)는 우선 중간키군 저장부(527)로부터 서버 중간키군(MKGs)을 취득한다. 그리고, (t+r) 비트의 서버 중간키군(MKGs)을 시프트 레지스터(SR)의 레지스터에 대입하고, 외부로부터 입력된 u비트의 시변 파라미터군(PRG)을 이용하여 좌측 시프트를 u회 실행한다. u회 좌측 시프트 후의 시프트 레지스터(SR)의 값의, 제1 레지스터부R[1]로부터 제t 레지스터부R[t]를 추출한 것은 컨텐츠키(CK)로서 정의되고, 컨텐츠키 저장부(123)에 저장된다. 여기서, 시프트 레지스터(SR)는, 중간키군 생성부(513)에서 사용된 동일한 레지스터이다. 또한, 컨텐츠 암호화키 생성부(529)에서 파라미터(u)는 중간키군 생성부(513)에서 파라미터(u)와 같은 값이다.
<서버(52)의 동작>
이상으로, 서버(52)의 구성에 대해서 설명했다. 여기서, 서버(52)의 동작에 대해 설명한다. 컨텐츠 배송시의 동작 및 시스템 비밀 파라미터군 수신시의 동작은 서버(12)에서와 같은 동작이다. 그러므로, 동일한 설명은 생략한다. 여기에서, 시변 파라미터군 갱신시의 동작에 대해 도 66에 나타낸 흐름도를 참조해 설명한다.
<시변 파라미터군(PRG) 갱신시의 동작>
시변 파라미터군 생성부(528)가 미리 주어진 시변 파라미터군 갱신조건을 만족할 때, 동작은 단계(S5262)로 이동한다. 그 조건을 만족하지 않을 때, 동작은 종 료한다(S5261).
시변 파라미터군 생성부(528)는 t비트의 시변 파라미터군(PRG)을 생성한다(S5262).
시변 파라미터군 생성부(528)는 시변 파라미터군(PRG)을 시변 파라미터군저장부(125)에 저장한다(S5263).
시변 파라미터군 생성부(528)는 컨텐츠 암호화키 생성부(529)에 시변 파라미터군(PRG)을 출력한다(S5264).
시변 파라미터군(PRG)을 수신한 컨텐츠 암호화키 생성부(529)는 중간키군 저장부(527)에 우선 액세스해서, 서버 중간키군(MKGs)을 취득한다(S5265).
컨텐츠 암호화키 생성부(529)는 (t+r) 비트의 서버 중간키군(MKGs)을 시프트 레지스터(SR)의 레지스터에 대입하고, u비트의 시변 파라미터군(PRG)을 외부에서 입력해서, 좌측 시프트를 u회 실행한다. u회 좌측 시프트후 시프트 레지스터(SR)의 제1 레지스터(R[1])로부터 제t 레지스터R[t]를 추출하여 얻어진 값이 컨텐츠키(CK)로 정의된다(S5266).
컨텐츠 암호화키 생성부(529)는 취득한 컨텐츠키(CK)를 컨텐츠키 저장부(123)에 저장하고(S5267), 처리를 종료한다.
이상이, 컨텐츠 배송 시스템(5)의 구성요소인 서버(52)의 구성과 동작이다. 계속해서, 출력장치(53)의 구성과 동작에 대해서 설명한다.
<출력장치(53a)의 구성>
도 67에 나타낸 것같이, 출력장치(53a)는 컨텐츠 수신부(131), 컨텐츠 복호 화키 생성부(532a), 컨텐츠키 저장부(133), 중간키군 저장부(134a), 컨텐츠 복호화부(l35), 출력부(136), 암호화 중간키군 세트수신부(137), 암호화 중간키군복호화부(138a), 및 개별키 저장부(139a)로 구성된다. 도 66에서, 동일한 부호가 도 17에서의 동일한 구성 요소에 할당된다. 동일한 구성요소에 대한 설명은 여기에서는 생략한다.
(1) 컨텐츠 복호화키 생성부(532a)
컨텐츠 수신부(131)로부터 시변 파라미터군(PRG)을 수신한 경우, 컨텐츠 복호화키 생성부(532a)는 우선 컨텐츠키 저장부(133)에 저장된 시변 파라미터군(PRG)이 수신한 시변 파라미터군(PRG)과 일치하는지 확인한다. 여기서 일치하고 있으면, 컨텐츠 복호화키 생성부(532a)는 컨텐츠키 저장부(133)에 액세스해서, 저장된 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다. 만약 일치하고 있지 않으면, 중간키군 저장부(134a)에 액세스해서, 중간키군(MKGa)을 취득한다. 그리고, (t+r) 비트의 중간키군(MKGa)을 시프트 레지스터(SR)의 레지스터에 대입해서, u비트의 시변 파라미터군(PRG)을 외부 입력 OI[1]~OI[t+r]으로서 사용하고, 컨텐츠키(CK)를 컨텐츠키 복호화부(135)에 출력한다.
<출력장치(53a)의 동작>
이상으로, 출력장치(53a)의 구성에 대하고 설명했다. 여기서, 출력장치(53a)의 동작에 대해 설명한다. 키 갱신시의 동작은 출력장치(13a)에 의한 것과 같으므로, 그 동작의 설명은 생략한다. 여기에서, 컨텐츠 수신시의 동작을 도 68에 나타낸 흐름도를 이용해 설명한다
<<컨텐츠 수신시의 동작>>
암호화 컨텐츠(ENCCNT) 및 시변 파라미터군(PRG)를 수신할 때, 컨텐츠 수신부(131)는 단계(S5302)로 이동한다. 수신하고 있지 않을 때, 처리는 종료된다(S5301).
컨텐츠 수신부(131)는 수신한 시변 파라미터군(PRG)을 컨텐츠 복호화키 생성부(532)에 출력한다(S5302).
시변 파라미터군(PRG)을 수신한 컨텐츠 복호화키 생성부(532)는, 컨텐츠키 저장부(133)에 액세스하고, 수신한 시변 파라미터군(PRG)과 사용시변 파라미터군(UPR)이 동일할 때, 단계(S5307)로 이동한다. 만약 다르면, 단계(S5305)으로 이동한다(S5303).
컨텐츠 복호화키 생성부(532)는 중간키군 저장부(134)에 액세스해서, 중간키군을 취득한다(S5304).
컨텐츠 복호화키 생성부(532)는 중간키군을 시프트 레지스터(SR)의 레지스터에 대입하고, u비트의 시변 파라미터군을 외부 입력(OI[1]~OI[u])로서 사용하고, 좌측 시프트를 u회 실행한다. u회 좌측으로 시프트된 후의 레지스터의 값인 제1 레지스터(R[1])로부터 제t 레지스터(R[t])를 추출한 것을 컨텐츠키(CK)로 정의한다(S5305).
컨텐츠 복호화키 생성부(532)는 컨텐츠키(CK)를 컨텐츠키 저장부(133)에 저장해, 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다(S5306).
컨텐츠 복호화키 생성부(132)는 중간키군 저장부(134a)에 액세스해서, 컨텐 츠키(CK)를 취득하고, 컨텐츠키(CK)를 컨텐츠 복호화부(135)에 출력한다(S5307).
컨텐츠 복호화부(135)는 컨텐츠키(CK)에 근거해서 암호화 컨텐츠(ENCCNT)를 복호화한다(S5308). 컨텐츠 복호화부(135)는 복호화 컨텐츠(DECCNT)를 출력부(136)에 출력한다(S5309).
출력부(136)는 제1 복호화부(136)로부터 복호화 컨텐츠(DECCNT)를 수신해서, 수신한 복호화 컨텐츠(DECCNT)를 외부에 출력하고, 처리를 종료한다(S5310).
이상이, 컨텐츠 배송 시스템(5)의 구성요소인 출력장치(53)의 구성과 동작이다
<제5 실시예의 동작 검증>
여기서, 동작을 구체적인 값을 이용해 검증한다. 우선, 시프트 레지스터(SR)로서 도 58에 나타낸 시프트 레지스터가 이용된다. 그리고, 시스템 비밀 파라미터군(SPG)의 비트수를 2로서, 개별화 파라미터(x)의 비트수를 2로서, 제1 레지스터 R [1] 및 제2 레지스터(R[2])의 2비트를 시스템 비밀 파라미터(SR)로서, 제3 레지스터(R[3]) 및 제4 레지스터(R[4])를 개별화 파라미터(x)로서 결정한다. 즉, 제1 레지스터 R [1] 및 제2 레지스터(R[2])는 모든 출력장치에 대해서 공통의 값이고, 제3 레지스터(R[3]) 및 제4 레지스터(R[4])는 개별 출력장치에 대한 값이다. 여기서, 시스템 비밀 파라미터군(SPG)으로서 제 1레지스터R[1]을 1로서, 제2 레지스터(R[2])를 0으로 결정한다. 또한, 출력 장치(53b)의 개별화 파라미터(x)로서, 제 3레지스터R[3]을 1로서, 제4 레지스터(R[4])를 0으로 결정한다. 또한, 또, 우측 시프팅의 수(u)는 4로 결정된다.
이 경우, 중간키군(MKGa~MKGb)으로서, 출력 장치(53a)의 중간키군(MKGa)은 제1 레지스터(R[1])에 대해서 1, 제2 레지스터(R[2])에 대해서 0, 제3 레지스터(R[3])에 대해서 1, 제4 레지스터(R[4])에 대해서 0의 값을 갖는다. 출력 장치(53b)의 중간키군(MKGb)은 제1 레지스터(R[1])에 대해서 0, 제2 레지스터(R[2])에 대해서 0, 제3 레지스터(R[3])에 대해서 1, 제4 레지스터(R[4])에 대해서 0의 값을 갖는다.
그리고, 외부입력(OI[1]) ∼ 외부입력 OI[4]이 모두 각각의 중간키군(MKGa~MKGb)에 대해서 모두 0일 때, 출력 장치(53a)의 경우, 제1 레지스터(R[1])는 1, 제2 레지스터(R[2])는 0, 제3 레지스터(R[3])는 0, 제4 레지스터(R[4])는 0이다. 출력 장치(53b)의 경우, 제1 레지스터(R[1])는 1, 제2 레지스터(R[2])는 0, 제3 레지스터(R[3])는 1, 제4 레지스터(R[4])는 0이다. 즉, 출력장치(53a∼53b)는 공통 컨텐츠 키로서, 제1 레지스터(R[1])에 대해서 1, 제2 레지스터(R[2])에 대해서 0을 취득할 수 있다. 그리고, 외부입력의 값이 외부입력(OI[1])에 대해서 0, 외부입력(OI[2])에 대해서 1, 외부입력 OI[3]에 대해서 1, 외부입력 OI[4]에 대해서 0일 때, 출력 장치(53a)의 경우, 제1 레지스터(R[1])는 1, 제2 레지스터(R[2])는 1, 제3 레지스터(R[3])는 1, 제4 레지스터(R[4])는 0이다. 출력 장치(53b)의 경우, 제1 레지스터(R[1])는 1, 제2 레지스터(R[2])는 1, 제3 레지스터(R[3])는 1, 제4 레지스터(R[4])는 0이다. 즉, 유사하게, 공통 컨텐츠 키로서, 제1 레지스터(R[1])에 대해서 1, 제2 레지스터(R[2])에 대해서 0을 취득할 수 있다.
<제5 실시예의 효과>
5 실시예는 제1 실시예와 같은 효과를 갖는다. 그렇지만, 복수의 출력 장치(53a~53n)가 시프트 레지스터를 이용해 컨텐츠키(CK)를 생성하는 점에서 제1 실시예와 다르다.
<제5 실시예의 변형예>
상기에 설명한 실시예는, 본 발명의 실시예중 일 예이다. 그러므로, 본 발명은 이 실시예에 한정되지 않는다. 본 실시예의 문맥을 초과하지 않는 범위내에서 주요 조건이 구체화될 수 있다. 이하의 경우들도 본 발명에 포함된다.
(1) 통신로(10)는 지상파 또는 위성 등의 방송망이어도 좋다.
(2) 서버(52)가 키 발행 센터(51)의 역할을 할 수도 있다. 즉, 서버(52)는 출력장치 식별자에 근거해 암호화 중간키군 세트(ENCMKGS)를 출력장치(53a~53n)에 각각 송신할 수도 있다.
(3) 키 발행 센터(51)의 중간키군 생성부(513)는, 외부에서 중간키군생성요구 정보(REQ3)를 수신하고, 중간 키 군생성요구 정보(REQ3)에 근거해서, 중간키를 생성할 수도 있다.
(4) 서버(52)의 시변 파라미터군 생성부(528)는, 외부로부터 시변 파라미터군 생성요구 정보(REQ4)를 수신해서, 시변 파라미터군 생성요구 정보(REQ4)에 근거해서, 시변 파라미터군(PRG)을 생성할 수도 있다.
(5) 중간키군 생성부(513)에 의한 우측 시프트의 횟수와 컨텐츠 암호화키 생성부(529)및 컨텐츠 복호화키 생성부(532)에 의한 좌측 시프트의 횟수는 동일한 수일 필요는 없다.
(6) 제5 실시예에서, 출력장치의 수는 14(53a~53n)이지만, 출력장치의 수는 15 이상, 13 이하이어도 좋다.
(7) 키 발행 센터(51)가 암호화 중간키군 세트(ENCMKG)를 배송할 때, 동시에 출력장치(53 a~53 n)에 배송하거나, 각 출력장치(53 a~53 n)에 개별적으로 배송할 수 있다.
(8) 키 발행 센터(51), 서버(52) 및 출력장치(53a~53n)에 의해 보관 유지된 시프트 레지스터의 탭을 연결하는 방법은 예를 들면, 비특허 문헌(Eiji Okamoto, "Introduction to Encryption Theory", Kyoritsu Publications.)에 개시된 M계열과 같은 원시 다항식일 필요는 없다. 키 발행 센터(51), 서버(52)및 출력장치(53a~53n)는 공통의 탭 연결 방법을 가져도 좋다. 예를 들면, 난수를 이용해 랜덤하게 탭이 설치되어도 좋다.
(9) 본 발명은, 상기에 기술된 방법일 수 있다. 또, 이 방법들을 컴퓨터가 실현하도록 하는 컴퓨터 프로그램일 수 있고, 상기 컴퓨터 프로그램으로 형성된 디지털 신호일 수 있다. 또, 본 발명은, 컴퓨터 프로그램 또는 디지털 신호를 컴퓨터가 읽을 수 있는 기록 매체일 수 있다. 예를 들면, 플렉서블 디스크(flexible disk), 하드 디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD(Blu-ray Disc), 반도체 메모리 등에 저장될 수 있다. 또, 본 발명은 이들 기록 매체에 저장된 컴퓨터 프로그램 또는 디지털 신호일 수 있다. 또한, 본 발명은, 컴퓨터 프로그램 또는 디지탈 신호를 통신회선, 무선 또는 유선 통신회선, 인터넷을 대표로 하는 네트워크등을 통해 송신할 수 있다. 또, 본 발명은, 마이크로 프로세서 및 메모리를 갖춘 컴퓨터 시스템이다. 메모리는 컴퓨터 프로그램을 저장하고 있고, 마이크로 프로세서는 컴퓨터 프로그램에 따라서 동작한다. 또한, 본 발명은 프로그램 및 디지털 신호를 기록 매체에 기록해 송신하거나 또는 네트워크를 통해 송신함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시된다.
(10) 본 실시예 및 변형예는 서로 결합될 수 있다.
(제6 실시예)
본 발명에 따르는 하나의 실시예로서 컨텐츠 배송 시스템(6)에 대해 설명한다. 먼저, 본 실시예의 개요를 도 71을 이용하여 설명한다.
도 71에 나타낸 것같이, 통신로(10)는 제1 실시예에서와 같고, 제1 실시예와 다른 키 발행 센터(61), 서버(62) 및 출력장치(63a~63n)를 연결하는 통신로이고, 인터넷 및 방송 네트워크 등의 네트워크로 실현되고 있다. 키 발행 센터(61)는 컨텐츠를 암호화하기 위해 이용되는 컨텐츠키(CK)를 생성하는데 필요한 정보인 시스템 비밀 파라미터군(SPG)을 서버(62)에, 암호화 중간키군 세트(ENCMKGS)를 복수의 출력장치(63a~63n)에 배송한다. 서버(62)는 시스템 비밀 파라미터군(SPG)에 근거해서 컨텐츠(CNT)를 암호화해서, 복수의 출력장치(63a~63n)에 배송한다. 복수의 출력장치(63a~63n)는 암호화 중간키군 세트(ENCMKGS)에 근거해서, 수신한 암호화 컨텐츠(ENCCNT)를 복호화하고, 복호화한 컨텐츠(DECCNT)를 외부에 출력한다. 여기서, 키 발행 센터(61)으로 출력장치(63a~63n)의 모든 세트에는, 미리 각 쌍에 의해 공유된 개별키가 주어지고 있다고 가정한다. 예를 들면, 미리, 키 발행 센터(61)와 출력장치(63a)는 개별키(IKa)를, 키 발행 센터(61)와 출력장치(63b)는 개별키(IKb)를, …, 키 발행 센터(61)와 출력장치(63n)는 개별키(IKn)를 공유하고 있다고 가정한다.
여기에서, 각 구성요소의 동작에 대해 좀 더 상세하게 설명한다. 우선, 각 출력장치(63a~63n)에 중간키군(MKGa~MKGn)의 하나를 배송하는 방법에 대해 설명한다. 키 발행 센터(61)는 미리 주어진 조건에 따라서 시스템 비밀 파라미터군(SPG)를 먼저 생성하고, 그 시스템 비밀 파라미터군(SPG)을 서버(62)에 송신한다. 또, 미리 주어진 조건에 따라서, 시스템 비밀 파라미터군(SPG)을 사용하여, 출력장치 13의 수만큼 중간키군(MKGa~MKGn)을 생성한다. 그리고, 각 중간키군(MKGa~MKGn)을 각각의 출력장치(63a~63n)에 대응시키고, 각 대응된 중간키군(MKGa~MKGn)을 각 중간키군(MKGa~MKGn)에 의해 보유된 각 개별키(IKa, IKb, …IKn)에 근거해서 복호화한다. 그 후, 복수의 출력장치(63a~63n)에, 각 암호문(Enc(IKa, MKGa), Enc(IKb, MKGb), …, Enc(IKn, MKGn))을 결합한 값을 암호화 중간키군 세트(ENCMKGS)=Enc(IKa,MKa) ∥ Enc(IKb,MKb) ∥…Enc(IKn, MKGn)로서 송신한다. 암호화 중간키군 세트(ENCMKGS)를 수신한 출력장치(63a)는, 미리 주어진 개별키(IKa)를 이용하여, 암호화 중간키군 세트(ENCMKGS)에서 자신의 개별키에 대응하는 암호문 Enc(IKa, MKGa)를 복호화하고, 출력장치(63a)에 대응된 중간키군(MKGa)을 취득한다. 또한, 출력장치(63a) 이외의 출력장치(63b~63n)도 유사하게, 각 출력장치에 의해 보유된 개별키를 이용하여, 암호화 중간키군 세트(ENCMKGS)에서 자신의 개별키에 대응하는 암호문을 복호화하고, 각 출력장치에 대응된 중간키군을 취득한다. 따 라서, 각 출력장치(63a~63n)는 중간키군(MKGa~MKGn)중 하나를 각각 유지할 수 있다.
다음에, 서버(62)가 컨텐츠키(CK)를 갱신하는 경우의 동작에 대해 설명한다. 우선, 서버(62)는, 미리 주어진 조건에 따라서 시변 파라미터군(PRG)을 생성해서, 시변 파라미터군(PRG)을 복수의 출력장치(63a~63n)에 배송한다. 또, 시변 파라미터군(PRG)과 시스템 비밀 파라미터군(SPG)에 근거해서, 서버(62)는 컨텐츠(CNT)를 암호화하는데 이용된 컨텐츠키(CK)를 생성한다. 복수의 출력장치(63a~63n)는 시변 파라미터군(PRG)을 수신하고, 시변 파라미터군(PRG) 및 각 출력장치에 의해 각각 보유된 각 중간키군(MKGa~MKGn)에 근거해서, 암호화 컨텐츠(ENCCNT)를 복호화하는데 이용된 컨텐츠키(CK)를 생성한다. 따라서, 서버(62)는, 서버(62)및 출력장치(63a~63n)에 의해 보유된 컨텐츠키(CK)를 갱신한다.
마지막으로, 서버(62)가 복수의 출력장치(63a~63n)에 컨텐츠를 배송할 때의 동작에 대해 설명한다. 우선, 서버(62)는 컨텐츠키(CK)에 근거해 컨텐츠(CNT)를 암호화하고, 암호화 컨텐츠(ENCCNT)=Enc(CK, CNT)를 복수의 출력장치(63a~63n)에 배송한다. 복수의 출력장치(63a~63n)는 암호화 컨텐츠(ENCCNT)를 수신하고, 암호화 컨텐츠(ENCCNT)의 복호화하고, 복호화 컨텐츠(DECCNT)를 외부에 출력한다. 따라서, 서버(62)는 복수의 출력장치(63a~63n)에 컨텐츠를 배송한다.
또한, 본 실시예의 컨텐츠 배송 시스템(6)에서, 키 발행 센터(61)를 가지고, 특정 개별키를 갖는 출력장치는 무효화되므로, 컨텐츠(CNT)는 복호화될 수 없다. 키 발행 센터(61)가 시스템 비밀 파라미터군(SPG) 및 중간키군을 갱신할 때에, 무 효화되는 출력장치에 중간키군을 생성하지 않고, 또한 목표가 되는 출력장치에 의해 보유된 개별키를 이용하지 않음으로써, 키 발생 센터(6)에서 이것은 실현될 수 있다.
이상이, 본 실시예의 개요이다. 이하에, 본 발명의 컨텐츠 배송 시스템의 일실시예인 컨텐츠 배송 시스템(6)에 대해서 상세히 설명한다. 컨텐츠 배송 시스템(6)의 구성요소에 대해 상세하게 설명한다.
<컨텐츠 배송 시스템(6)의 구성>
도 71에 나타낸 것같이, 컨텐츠 배송 시스템(6)은 통신로(10), 키 발행 센터(61), 서버(62) 및 복수의 출력장치(63a~63n)로 구성된다.
키 발행 센터(61)는 컨텐츠키를 공유하는데 필요한 정보인 시스템 비밀 파라미터군(SPG)을 서버(12)에 배송하고, 암호화 중간키군 세트(ENCMKGS)를 복수의 출력장치(63 a~63 n)에 배송한다. 서버(62)는 시변 파라미터군(PRG)을 생성하고, 그 시변 파라미터군(PRG)을 복수의 출력장치(13a~l3n)에 배송한다. 또한, 서버(62)는 시스템 비밀 파라미터군(SPG) 및 시변 파라미터군(PRG)에 근거해 컨텐츠키(CK)를 생성한다. 출력장치(63 a~63 n)는 암호화 중간키군 세트(ENCMKGS)에서 취득한 중간키군(MKGa~MKGn)에 근거해 컨텐츠키(CK)를 취득한다. 그리고, 서버(62)는, 컨텐츠키(CK)에 근거해서 컨텐츠(CNT)를 암호화하고, 암호화 컨텐츠(ENCCNT)를 복수의 출력장치(63a~63n)에 배송한다. 복수의 출력장치(63a~63n)는, 컨텐츠키(CK)에 근거해서 수신한 암호화 컨텐츠(ENCCNT)를 복호화하고, 그 복호화 컨텐츠(DECCNT)를 외부에 출력한다.
이하에, 이들 구성요소에 대해 상세하게 설명한다. 우선, 통신로(10)에 대해서 설명하고 이어서 키 발행 센터(61), 서버(62) 및 출력장치(63 a~63 n)의 구성 및 동작에 대해 설명한다.
<통신로(10)의 구성>
통신로는, 예를 들면, 인터넷, 전화 회선 및 전용선 등의 네트워크이다
<키 발행 센터(61)의 구성>
도 72에 나타낸 것같이, 키 발행 센터(61)는 시스템 비밀 파라미터군 생성부(611), 시스템 비밀 파라미터군 송신부(612), 중간키군 생성부(613), 출력장치 대응 정보 저장부(614), 중간키군 암호화부(115) 및 암호화 중간키군 세트 배송부(616)로 구성된다.
(1) 시스템 비밀 파라미터군 생성부(611)
미리 주어진 시스템 비밀 파라미터 갱신 조건을 만족하고, 키 발행센터가 동자을 개시할 때, 시스템 비밀 파라미터군 생성부(611)는 시스템 비밀 파라미터(c)를 생성한다. 여기서, 시스템 비밀 파라미터(c)를 생성하는 방법으로서, 난수를 이용해 시스템 비밀 파라미터(c)를 랜덤하게 생성하는 방법이 있다. 그 후, 미리 주어진 시스템 비밀 파라미터 생성식 "s*t=u*v mod N"을 만족하도록, 시스템 비밀 파라미터(s, t, u 및 v)를 생성한다. 또한, 시스템 비밀 파라미터(s, t, u 및 v)를 생성하는 방법으로서, 예를 들면, 난수를 이용해 시스템 비밀 파라미터를 랜덤하게 생성하는 방법이 있다. 여기서, 시스템 비밀 파라미터(s, t, u, v, x 및 modulus N)는 예를 들면 128비트의 자연수이다. 여기서, modulus N의 값은, 후술하는 중간 키군 생성부(613), 서버(62)의 시변 파라미터군 생성부(623) 및 컨텐츠 암호화키 생성부(625), 출력장치(63a~63n)의 컨텐츠 복호화키 생성부(63a)에 공통인 값으로서 미리 주어진 값이다. 예를 들면, 그 값은 2^ {128} 등이다. 여기서," ^"은 승연산을 나타낸다. 예를 들면, 2^ {4}는 16을 나타낸다. 이후 같은 의미로 이용된다. 그 후, 시스템 비밀 파라미터군 생성부(611)는 도 73에 나타낸 시스템 비밀 파라미터(s, t, u, v 및 c)로 형성된 시스템 비밀 파라미터군(SPG)을 생성하고, 이 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 송신부(612) 및 중간키군 생성부(613)에 출력한다. 예를 들면, 비밀파라미터 갱신조건은 "매일", "매년" 등이다. 이것은 시스템 비밀 파라미터군 생성부(611)에 카운터를 설정하여 실행될 수 있다.
(2) 시스템 비밀 파라미터군 송신부(612)
시스템 비밀 파라미터군 송신부(612)는, 시스템 비밀 파라미터군 생성부(611)로부터 받은 시스템 비밀 파라미터군(SPG)을 통신로(10)를 통해 서버(62)에 송신한다.
(3) 중간키군 생성부(613)
중간키군 생성부(613)는, 시스템 비밀 파라미터군 생성부(611)로부터 시스템 비밀 파라미터군(SPG)을 수신했을 때, 도 74에 나타낸 것같이 출력장치 대응 정보 저장부(614)에 저장된 전체 중간키군(MKGa~MKGn)을 소거한다. 그 후, 수신한 시스템 비밀 파라미터군(SPG)로부터 시스템 비밀 파라미터(s, t, u, v 및 c)를 추출한다. 그리고, 미리 주어진 개별화 파라미터 생성식 "x*y=c mod N"을 만족하도록 개별화 파라미터(x 및 y)를 생성한다. 여기서, 개별화 파라미터(x 및 y)를 생성하는 방법으로서, 예를 들면, 난수를 이용해 개별화 파라미터를 랜덤하게 생성하는 방법이 있다. 또한, 개별화 파라미터(x 및 y)는 예를 들면 128비트의 자연수이다. 또한, "*"는 승연산을 나타낸다. 예를 들면, 2*5은 10을 나타낸다. 이후 동일한 것을 나타낸다. 개별화 파라미터(x 및 y)의 방법으로서, 예를 들면, 개별화 파라미터(x)를 랜덤한 자연수로서 생성하고, 개별화 파라미터 생성식 "x*y=c mod N"에 이 개별화 파라미터(x)를 대입하므로, 개별화 파라미터(y)가 취득된다. 하나의 랜덤한 개별화 파라미터(x)를 선택하면, 반드시 하나의 개별화 파라미터(y)가 존재한다. 다음, 개별화 파라미터(x 및 y)를 이용하여, 중간키군 생성부(613)는 미리 주어진 4개의 중간키 생성식 "D1=s*x mod N","E1=t*y mod N", "D2=-u*x mod N",및 "E2=-v*y mod N"에 근거해 4개의 중간키(D1, E1, D2 및 E2)를 생성한다. 그리고, 중간키(D1, E1, D2 및 E2)으로 형성된 중간키군(MKGa)을 도 75에 나타낸 것같이 생성한다. 그 후, 중간키군(MKGa)과 출력장치 식별자(AIDa)를 대응시키고, 출력장치 대응 정보 저장부(114)에 저장한다. 다음에, 출력장치 대응 정보 저장부(114)에서 출력장치 식별자(AIDa) 이외의 출력장치 식별자(AIDb~AIDn)에 대해서 각각 중간키군(MKGb~MKGn)을 유사하게 생성한다. 여기서, 중간키군(MKGb~MKGn)의 구성은 도 75에 나타내는 중간키군(MKGa)의 구성과 같다. 그렇지만, 각 중간키군(MKGa~MKGn)은 각각 개별적이다. 이를 위해, 각 중간키군(MKGa~MKGn)을 생성하기 위해 이용되는 개별화 파라미터(x 및 y)가 서로 다른 값이 될 수 있다. 중간키군(MKGa~MKGn)이 모든 출력장치 식별자(AIDa~AIDn)에 대해서 각각 할당되면, 키 갱신 요구정보(REG)를 중간키군 암호화부(615)에 출력한다.
(4) 출력장치 대응 정보 저장부(614)
도 74에 나타낸 것같이, 출력장치 대응 정보 저장부(614)는, 복수의 출력장치(63 a~63 n)를 식별하는 출력장치 식별자(AIDa~AIDn), 출력장치(63 a~63 n)에 각각 미리 주어진 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)을 보유한다. 예를 들면, 도 74에서, 출력장치 식별자(AIDa)에 대응된 출력장치(63a)는 개별키(IKa)와 중간키군(MKGa)을 보유하고, 출력장치 식별자(AIDb)에 대응된 출력장치(63b)는 개별키(IKb) 및 중간키군(MKGb)을 보유하고, 출력장치 식별자(AIDn)에 대응된 출력장치(63n)는 개별키(IKn) 및 중간키군(MKGn)을 보유한다. 중간키군 생성부(613), 중간키군 암호화부(615)는 출력장치 대응 정보 저장부(114)에 액세스 가능하다.
(5) 중간키군 암호화부(615)
중간키군 암호화부(615)는, 중간키군 생성부(613)로부터 키 갱신 요구정보(REQ)를 받은 경우, 출력장치 대응 정보 저장부(614)에 접속하고, 출력장치 식별자(AIDa~AIDn), 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)을 모두 취득한다. 그리고, 우선 출력장치 식별자(AIDa)에 대해서, 대응하는 개별키(IKa)에 근거해 중간키군(MKGa)을 암호화하고, 그 암호문을 암호화 중간키군 ENCMKGa=Enc(IKa, MKGa)로서 출력장치 식별자(AIDa)에 대응시킨다. 그리고, 다른 출력장치 식별자(AlDb~AIDn)에 대해서도 유사하게, 대응하는 개별키에 근거해 중간키군을 암호화하고, 각 암호문 Enc(IKb, MKGb), …, Enc(IKn, MKGn)을 암호화 중간키군(ENCMKGb, …, ENCMKGn)으로서, 각각의 출력장치 식별자(AIDb~AIDn)에 대응시킨다. 그 후, 도 76에 나타내는 것같이 장치 식별자(AIDa~AIDn) 및 암호화 중간키군(ENCMKGa~ENCMKGn)으로 형성된 암호화 중간키군 세트 ENCMKGS={AIDa, ENCMKGa}∥{AIDb,ENCMKGb} …∥{AIDn, ENCMKGn}}를 생성해서, 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 세트 배송부(116)에 출력한다. 여기서, 중간키군을 암호화하는데 사용되는 암호화 알고리즘은, 블록 암호인 DES 암호 방식 등이고, 출력장치(63 a~63 n)의 암호화 중간키군복호화부(632a)에 의해 이용되는 복호화 알고리즘과 같은 방식을 이용한다.
(6) 암호화 중간키군 세트 배송부(616)
암호화 중간키군 세트 배송부(616)는, 중간키군 암호화부(615)로부터 암호화 중간키군 세트(ENCMKGS)를 수신했을 때, 수신한 암호화 중간키군 세트(ENCMKGS)를 통신로(10)를 통하여 복수의 출력장치(63 a~63 n)에 배송한다.
<키 발행 센터(61)의 동작>
이상으로, 키 발행 센터(61)의 구성을 설명했다. 여기서, 키 발행 센터(61)의 동작을 설명한다. 우선, 컨텐츠키를 공유하는데 필요한 키 정보를 서버(62) 및 복수의 출력장치(63 a~63 n)에 배송할 때의 동작을 도 77에 나타낸 흐름도를 이용하여 설명한다.
<키 정보 배송시의 동작>
시스템 비밀 파라미터군 생성부(611)는, 비밀 파라미터(c)를 생성한다(S6101).
시스템 비밀 파라미터군 생성부(611)는, 미리 주어진 비밀 파라미터 생성식"s*t=u*v mod N"을 만족하도록, 시스템 비밀 파라미터(s, t, u 및 v)를 생성한다(S6102).
시스템 비밀 파라미터군 생성부(611)는 생성된 시스템 비밀 파라미터(s, t, u, v 및 c)로 형성되는 시스템 비밀 파라미터군(SPG)를 생성해서, 이 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 송신부(612) 및 중간키군 생성부(613)에 출력한다(S6103).
시스템 비밀 파라미터군 송신부(612)는, 수신한 시스템 비밀 파라미터군(SPG)을 서버(62)에 송신한다(S6104).
중간키군 생성부(613)는, 출력장치 대응 정보 저장부(614)에 저장되고 있는 중간키군(MKGa~MKGn)을 모두 삭제한다(S6105).
중간키군 생성부(613)는, 미리 주어진 개별화 파라미터 생성식 "x*y=c mod N"을 만족하는 개별화 파라미터(x 및 y)를 생성한다. 여기에서, 미리 생성된 개별화 파라미터(x 및 y)의 값은 생성된 개별화 파라미터(x 및 y)와 동일한 값이 아니어야 한다. 예를 들면, 개별화 파라미터(x 및 y)를 이용하여, 미리 주어진 4개의 중간키 생성식 "D1=s*x mod N","E1=t*y mod N", "D2=-u*x mod N",및 "E2=-v*y mod N"을 만족하는 4개의 중간키(D1, E1, D2 및 E2)를 생성한다(S6106).
중간키군 생성부(613)는, 중간키(D1, E1, D2 및 E2)로 구성되는 중간키군을 생성하고, 중간키군이 할당되지 않은 출력장치 식별자(AIDa~AIDn)의 하나를 중간키군과 관련시킴으로써 중간키군을 출력장치 대응정보 저장부(614)에 저장한다(S6107).
중간키군(MKGa~MKGn)이, 출력장치 대응 정보 저장부(114)에 저장된 출력장치 식별자(AIDa~AIDn)에 각각 할당되면, 처리는 단계(S6109)로 진행한다. 만약, 할당 되지 않은 출력장치가 있으면, 처리는 단계(S6109)로 돌아온다(S6108).
중간키군 생성부(613)는, 키갱신 요구정보(REQ)를 중간키군 암호화부(615)에 출력한다(S6109).
키갱신 요구정보(REQ)를 수신한 중간키군 암호화부(615)는, 출력장치 대응 정보 저장부(614)에 액세스하고, 출력장치 식별자(AIDa~AIDn), 개별키(IKa~IKn) 및 중간키군(MKGa~MKGn)을 모두 취득한다(S6110).
중간키군 암호화부(615)는 각 개별키(IKa~IKn)에 근거해 각각의 중간키군(MKGa~MKGn)을 암호화해서, 그 암호화 중간키군(ENCMKGa~ENCMKGn) 및 암호화에 이용된 개별키(IKa~IKn)에 각각 대응하는 출력장치 식별자(AIDa~AIDn)로 구성된 암호화 중간키군 세트(ENCMKGS)를 생성한다(S6111).
중간키군 암호화부(115)는, 생성된 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 세트 배송부(616)에 출력한다(S6112).
암호화 중간키군 세트 배송부(616)는, 암호화 중간키군 세트(ENCMKGS)를 수신하고, 수신한 암호화 중간키군 세트(ENCMKGS)를 복수의 출력장치(63 a~63 n)에 배송하고, 처리를 종료한다(S6113).
이상이 컨텐츠 배송 시스템(6)의 구성요소인 키 발행 센터(61)의 구성과 동작의 설명이다. 다음에, 서버(62)의 구성과 동작에 대해서 설명한다.
<서버(62)의 구성>
도 78에 나타낸 것같이, 서버(62)는 시스템 비밀 파라미터군 수신부(621), 시스템 비밀 파라미터군 저장부(622), 시변 파라미터군 생성부(623), 시변 파라미 터군 배송부(624), 컨텐츠 암호화키 생성부(625), 컨텐츠키 저장부(626), 입력부(627), 컨텐츠 암호화부(628) 및 컨텐츠 배송부(629)로 구성된다.
(1) 시스템 비밀 파라미터군 수신부(621)
시스템 비밀 파라미터군 수신부(621)는, 키 발행 센터(61)로부터 시스템 비밀 파라미터군(SPG)을 수신한 경우, 수신한 시스템 비밀 파라미터군(SPG)을 도 79에 나타내는 것같이 시스템 비밀 파라미터군 저장부(622)에 저장한다.
(2) 시스템 비밀 파라미터군 저장부(622)
시스템 비밀 파라미터군 저장부(622)는 도 79에 나타낸 것같이 시스템 비밀 키 군(SPG)을 저장한다. 시스템 비밀 파라미터군 수신부(621), 시변 파라미터군 생성부(623) 및 컨텐츠 암호화키 생성부(625)는 시스템 비밀 파라미터군 저장부(622)에 액세스할 수 있다.
(3) 시변 파라미터군 생성부(623)
시변 파라미터군 갱신조건은 시변 파라미터군 생성부(623)에 미리 주어지고, 그 조건이 만족될 때, 4개의 난수(z, w, m 및 n)를 생성한다. 여기서, 난수(z, w, m 및 n)는, 예를 들면 각각 128비트의 자연수이다. 또, 시변 파라미터군 생성부(623)는 시스템 비밀 파라미터군 저장부(622)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득해서, 취득한 시스템 비밀 파라미터군(SPG)중에서 비밀 파라미터(s, t, u 및 v)를 추출한다. 그리고, 미리 주어진 4개의 시변 파라미터 생성식: "Q1=s*z+v*m mod N", "R1=t*w+u*n mod N", "Q2=u*z+t*m mod N", "R2=v*w+s*n mod N"에 근거해서 4개의 시변 파라미터(Q1, R1, Q2, 및 R2)를 생성한다. 그 후, 도 80 에 나타낸 것같이, 시변 파라미터(Q1, R1, Q2, 및 R2)로 형성된 시변 파라미터군(PRG)을 생성해서, 생성한 시변 파라미터군(PRG)을 시변 파라미터군배송부(624)에 배송한다. 마지막으로, 컨텐츠 암호화키 생성부(129)에 난수(z, w, m 및 n)를 출력한다. 예를 들면, 시변 파라미터군 갱신조건은 "1시간 마다", "1일 마다" 등이다. 이 것은 시변 파라미터군 생성부(623)에 카운터를 설정하여 실현될 수 있다. 또한, 시변 파라미터군 생성부(623)는 외부로부터 시변 파라미터 갱신 요구 신호를 수신할 수 있고, 시변 파라미터 갱신 요구 신호를 수신한 경우, 시변 파라미터군(PRG)을 새롭게 생성할 수 있다.
(4) 시변 파라미터군 배송부(624)
시변 파라미터군 배송부(624)는, 시변 파라미터군 생성부(623)로부터 시변 파라미터군(PRG)를 취득해서, 이 시변 파라미터군(PRG)을 통신로(10)를 통해 복수의 출력장치(63a~63n)에 배송한다.
(5) 컨텐츠 암호화키 생성부(625)
컨텐츠 암호화키 생성부(625)는, 시변 파라미터군 생성부(623)로부터 난수(z, w, m 및 n)를 수신한 경우, 우선, 시스템 비밀 파라미터군저장부(622)에 액세스해서, 시스템 비밀 파라미터군(SPG)를 취득하고, 취득한 시스템 비밀 파라미터군(SPG) 중에서 비밀 파라미터(s, t, u, v 및 c)를 추출한다. 그 후, 미리 주어진 컨텐츠 암호화키 생성식"CK=2*s*t* (z+w+c+n*m)+2*(u*s*n*z+t*v*m*w) mod N"에 근거해서 컨텐츠키(CK)를 생성하고, 생성한 컨텐츠키(CK)를 컨텐츠키 저장부(626)에 저장한다.
(6) 컨텐츠키 저장부(626)
도 81에 나타낸 것같이, 컨텐츠키 저장부(626)는 컨텐츠키(CK)를 보유하고 있다. 컨텐츠키(CK)는 컨텐츠(CNT)의 암호화키 및 복호화키로서 이용된다.
(7) 입력부(627)
입력부(627)는 외부로부터 컨텐츠(CNT)를 입력할 수 있다. 외부로부터 입력된 컨텐츠(CNT)는, 출력장치(63a~63n)가 출력 가능한 포맷이다. 예를 들면, MPEG 포맷의 동영상 데이터, MP3 포맷의 음성 데이터 등이다. 입력부(627)는 외부로부터 컨텐츠(CNT)를 수신한 경우, 그 수신한 컨텐츠(CNT)를 컨텐츠 암호화부(628)에 출력한다.
(8) 컨텐츠 암호화부(628)
컨텐츠 암호화부(628)는 입력부(627)로부터 컨텐츠(CNT)를 수신한 경우, 컨텐츠키 저장부(626)에 액세스해서 컨텐츠키(CK)를 취득한다. 그리고, 취득한 컨텐츠키(CK)에 근거해서, 수신한 컨텐츠(CNT)를 순차적으로 암호화한다. 여기서, 컨텐츠(CNT)의 암호화에 이용되는 암호화 알고리즘은, 예를 들면, 블록 암호의 DES 암호 방식 등이다. 후술하는 출력장치(63a~63n)의 각 컨텐츠 복호화부(638)에서 암호화 컨텐츠(ENCCNT)를 복호화하는데 이용하는 복호화 알고리즘과 같은 방식이다. 그 후, 컨텐츠 암호화부(628)는 암호화 컨텐츠(ENCCNT)를 컨텐츠 배송부(629)에 출력한다.
(9) 컨텐츠 배송부(629)
컨텐츠 배송부(629)는 컨텐츠 암호화부(628)로부터 수신한 암호화 컨텐츠 (ENCCNT)를 통신로(10)를 통해 복수의 출력장치(63a~63n)에 순차적으로 배송한다.
<서버(62)의 동작>
이상으로, 서버(62)의 구성에 대해 설명했다. 여기서, 서버(62)의 동작에 대해 설명한다. 우선, 키 발행 센터(61)로부터 컨텐츠키(CK)를 공유하는데 이용된 시스템 비밀 파라미터군(SPG)을 수신했을 때의 동작을 도 82에 나타낸 흐름도를 이용해 설명한다. 다음에, 시변 파라미터군(PRG)을 갱신하는 서버(62)의 동작에 대해 도 83에 나타낸 흐름도를 이용해 설명한다. 마지막으로, 출력장치(63a~63n)에 컨텐츠(CNT)를 배송하는 서버(62)의 동작에 대해 도 84에 나타낸 흐름도를 이용해 설명한다.
<<키 발행 센터(61)로부터 시스템 비밀 파라미터군(SPG) 수신시의 동작>>
시스템 비밀 파라미터군 수신부(621)는 수신한 시스템 비밀 파라미터군(SPG)을 시스템 비밀 파라미터군 저장부(127)에 저장하고, 처리를 종료한다(S6201).
<<시변 파라미터군(PRG)을 갱신하는 서버의 동작>>
시변 파라미터군 생성부(623)가 미리 주어진 시변 파라미터군 갱신조건을 만족할 때, 동작은 단계(S6232)에 진행된다. 그 조건을 만족하지 않을 때, 처리를 종료한다(S6231).
시변 파라미터군 생성부(623)는 시스템 비밀 파라미터군 저장부(622)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득하고, 시스템 비밀 파라미터군(SPG)에서 비밀 파라미터(s, t, u 및 v)를 추출한다(S6232).
시변 파라미터군 생성부(623)는 난수(z, w, m 및 n)를 생성한다(S6233).
시변 파라미터군 생성부(623)는 미리 주어진 시변 파라미터 생성식 "A1=s*z+v*m mod N", "R1=t*w+u*n mod N", "Q2=u*z+t*m mod N", "R2=v*w+s*n mod N"에 근거해서 4개의 시변 파라미터(Q1, R1, Q2, 및 R2)를 생성하고, 생성한 시변 파라미터(Q1, R1, Q2, 및 R2)로 구성된 시변 파라미터군(PRG)을 생성한다(S6234).
시변 파라미터군 생성부(623)는 시변 파라미터군(PRG)을 시변 파라미터군배송부(624)에 출력하고, 컨텐츠 암호화키 생성부(625)에 난수(z, w, m 및 n)를 출력한다(S6235).
시변 파라미터군 생성부(624)는 시변 파라미터군(PRG)을 출력장치(63a~63n)에 배송한다(S6236).
난수(z, w, m 및 n)를 수신한 컨텐츠 암호화키 생성부(625)는 우선 시스템 비밀 파라미터군 저장부(622)에 액세스해서, 시스템 비밀 파라미터군(SPG)을 취득하고, 시스템 비밀 파라미터군(SPG)에서 비밀 파라미터(s, t, u, 및 v)를 추출한다(S6237).
컨텐츠 암호화키 생성부(625)는 미리 주어진 컨텐츠 암호화키 생성식 "CK = 2*s*t*(z*w*+c*n*m) + 2*(u*s*n*z+t*v*m*w) mod N"에 근거해 컨텐츠키(CK)를 생성한다(S6238).
컨텐츠 암호화키 생성부(625)는 생성한 컨텐츠키(CK)를 컨텐츠키 저장부(626)에 저장하고, 처리를 종료한다(S6239).
<출력장치(63 a~63 n)에 컨텐츠를 배송하는 서버(62)의 동작>
입력부(627)가 외부로부터 컨텐츠(CNT)를 수신했을 때, 단계(S1262)로 이동 한다. 컨텐츠(CNT)를 수신하지 않았을 때, 처리를 종료한다(S6261).
입력부(627)는 수신한 컨텐츠(CNT)를 컨텐츠 암호화부(628)에 출력한다(S6262).
컨텐츠(CNT)를 수신한 컨텐츠 암호화부(628)는 컨텐츠키 저장부(626)에 액세스해서 컨텐츠키(CK)를 취득한다(S6263).
컨텐츠 암호화부(628)는 컨텐츠키(CK)에 근거해서 컨텐츠(CNT)를 암호화하고, 암호화한 컨텐츠(ENCCNT)를 컨텐츠 배송부(629)에 출력한다(S6264).
암호화한 컨텐츠(ENCCNT)를 수신한 컨텐츠 배송부(629)는 암호화한 컨텐츠(ENCCNT)를 출력장치(63 a~63 n)에 배송하고, 처리를 종료한다(S6265).
이상이, 컨텐츠 배송 시스템(6)의 구성요소인 서버(62)의 구성과 동작이다. 계속해서, 출력장치(63 a~63 n)의 구성과 동작을 설명한다. 우선, 출력장치(63a)의 구성과 동작을 설명한다. 다음에, 출력장치(63a)와 다른 출력장치(63b~63n)의 차이점에 대해서 설명한다.
<출력장치(63a)의 구성>
도 85에 나타낸 것같이, 출력장치(63a)는 중간키군 수신부(631), 암호화 중간키군 복호화부(632a), 개별키 저장부(633a), 중간키군 저장부(634a), 시변 파라미터군 수신부(635), 컨텐츠 복호화키 생성부(636a), 컨텐츠키 저장부(623), 컨텐츠 수신부(637), 컨텐츠 복호화부(638), 및 출력부(639)로 구성된다. 여기서, 컨텐츠키 저장부(623)는 서버(62)의 구성요소인 컨텐츠키 저장부(623)과 동일한 동작을 행한다. 그러므로, 컨텐츠키 저장부(623)에 대한 설명은 생략한다. 또한, 중간키군 수신부(631), 시변 파라미터군 수신부(635), 컨텐츠키 저장부(623), 컨텐츠 수신부(637), 컨텐츠 복호화부(638), 및 출력부(639)는 출력장치(63 a~63 n)에 대해 공통의 구성요소이다. 한편, 암호화 중간키군 복호화부(632a), 개별키 저장부(633a), 중간키군 저장부(634a), 및 컨텐츠 복호화키 생성부(636a)는 출력장치(63a)고유의 구성요소이다.
(1) 중간키군 수신부(631)
중간키군 수신부(631)는, 서버(62)로부터 암호화 중간키군 세트(ENCMKGS)={AIDa, ENCMKGa} ∥…∥ {AIDn, ENCMKGn}를 수신했을 때, 수신한 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 복호화부(632a)에 출력한다.
(2) 암호화 중간키군복호화부(632a)
암호화 중간키군 복호화부(632a)는 암호화 중간키군 세트 ENCMKGS={AIDa, ENCMKGa} ∥…∥ {AIDn, ENCMKGn}를 수신했을 때, 도 86에 나타내는 것같이 개별키 저장부(633a)로부터 출력장치 식별자(AlDa) 및 개별키(lKa)를 우선 취득한다. 그리고, 수신한 암호화 중간키군 세트(ENCMKGS)로부터 출력장치 식별자(AIDa)에 대응하는 암호화 중간키군(ENCMKGa)을 취득한다. 그 후, 개별키 저장부(633a)에 저장된 개별키(IKa)에 근거해서, 대응하는 암호화 중간키군 ENCMKGa=Enc(IKa, MKGa)을 복호화한다. 복호화한 중간키군(MKGa)을 중간키군 저장부(634a)에 저장한다.
(3) 개별키 저장부(633a)
도 86에 나타내는 것같이, 개별키 저장부(633a)는 출력장치 식별자(AIDa) 및 개별키(IKa)를 보유한다. 암호화 중간키군복호화부(632a)는 개별키 저장부(633a)에 액세스할 수 있다.
(4) 중간키군 저장부(634a)
도 87에 나타내는 것같이, 중간키군 저장부(634a)는 중간키군(MKGa)을 저장한다. 암호화 중간키군 복호화부(632a) 및 컨텐츠 복호화키 생성부(636a)는 중간키군 저장부(634a)에 액세스 가능하다.
(5) 시변 파라미터군 수신부(635)
시변 파라미터군 수신부(635)는, 서버(62)로부터 시변 파라미터군(PRG)을 수신했을 때, 수신한 시변 파라미터군(PRG)을 컨텐츠 복호화키 생성부(636a)에 출력한다.
(6) 컨텐츠 복호화키 생성부(636a)
컨텐츠 복호화키 생성부(636a)는, 시변 파라미터군 수신부(635)로부터 시변 파라미터군(PRG)를 수신했을 때, 중간키군 저장부(634a)에 액세스해서, 중간키군(MKGa)을 취득한다. 그리고, 시변 파라미터군(PRG)으로부터, 시변 파라미터(Q1, R1, Q2 및 R2)를 추출하고, 중간키군(MKGa)으로부터 중간키(D1, E1, D2 및 E2)를 추출한다. 그 후, 미리 주어진 컨텐츠 복호화키 생성식" CK=(Q1+Dl)* (R1+El)+(Q2+D2)* (R2+E2) mod N"에 근거해서, 컨텐츠키(CK)를 생성하고, 생성한 컨텐츠키(CK)를 컨텐츠키 저장부(623)에 저장한다.
(7) 컨텐츠 수신부(637)
컨텐츠 수신부(637)는, 서버(62)로부터 암호화 컨텐츠(ENCCNT)를 수신했을 때, 암호화 컨텐츠(ENCCNT)를 컨텐츠 복호화부(638)에 출력한다.
(8) 컨텐츠 복호화부(638)
컨텐츠 복호화부(638)는 컨텐츠 수신부(637)로부터 암호화 컨텐츠(ENCCNT)를 수신하고, 컨텐츠키 저장부(623)로부터 컨텐츠키(CK)를 얻고, 컨텐츠키(CK)에 근거해서 암호화 컨텐츠(ENCCNT)를 복호화한다. 여기서, 복호화에 사용된 복호화 알고리즘은, 예를 들면, 블록 암호의 DES 방식 등이고, 서버(62)의 컨텐츠 암호화부(628)에서 이용된 암호화 알고리즘과 같은 방법을 이용한다. 복호화한 컨텐츠DECCNT=Dec(CK, ENCCNT)를 출력부(639)에 출력한다. 여기서, Dec(K, C)는 복호화키(K)에 근거해 암호문(C)이 복호화될 때의 복호문이다.
(9) 컨텐츠 출력부(639)
컨텐츠 출력부(639)는, 컨텐츠 복호화부(638)로부터 복호화 컨텐츠(DECCNT)를 수신했을 경우, 수신한 복호화 컨텐츠(DECCNT)를 외부에 출력한다.
<출력장치(63a)의 동작>
이상으로, 출력장치(63a)의 구성을 설명했다. 여기서 출력장치(63a)의 동작에 대해 설명한다. 우선, 출력장치(63a)가 암호화 중간키군 세트(ENCMKGS)를 수신했을 때 중간키군(MKGa)을 취득하는 동작을 도 88에 나타낸 흐름도를 이용하여 설명한다. 다음에, 출력장치(63a)가 시간 파라미터군(PRG)을 수신했을 때 중간키군(MKGa)을 이용하여 컨텐츠키(CK)를 생성하는 동작에 대해서 도 89에 나타낸 흐름도를 이용하여 설명한다. 마지막으로, 출력장치(63a)가 서버(62)로부터 암호화 컨텐츠(ENCCNT)를 수신했을 때 복호화 컨텐츠(DECCNT)를 외부에 출력하는 동작에 대해서 도 90에 나타낸 흐름도를 이용하여 설명한다.
<<키발행센터(61)로부터 암호화 중간키군 세트(ENCMKGS)를 수신할 때의 동작>>
중간키군 수신부(631)는 수신한 암호화 중간키군 세트(ENCMKGS)를 암호화 중간키군 복호화부(632a)에 출력한다(S6301).
암호화 중간키군 복호화부(632a)는 개별키 저장부(633a)로부터 출력장치 식별자(AIDa) 및 개별키(IKa)를 취득한다(S6302).
암호화 중간키군 복호화부(632a)는 수신한 암호화 중간키군 세트(ENCMKGS)로부터 출력장치 식별자(AlDa)에 대응된 암호화 중간키군 ENCMKGa=Enc(IKa, MKGa)을 취득한다(S6303).
암호화 중간키군 복호화부(632a)는 개별키(IKa)에 근거해서 암호화 중간키군 (ENCMKGa)를 복호화하고 중간키군(MKGa)을 취득한다(S6304).
암호화 중간키군복호화부(632a)는, 취득한 중간키군(MKGa)을 중간키군 저장부(634a)에 저장하고, 처리를 종료한다(S6305).
<서버(62)로부터 시변 파라미터군(PRG)을 수신했을 때의 동작>
시변 파라미터군 수신부(635)는, 수신한 시변 파라미터군(PRG)을 컨텐츠 복호화키 생성부(636a)에 출력한다(S6331).
컨텐츠 복호화키 생성부(636a)는 중간키군 저장부(634a)에 액세스해서, 중간키군(MKGa)을 취득한다(S6332).
컨텐츠 복호화키 생성부(636a)는 중간키군(MKGa)으로부터 중간키(D1, E1, D2 및 E2)를 추출하고, 시변 파라미터군(PRG)으로부터 시변 파라미터(Q1, R1, Q2 및 R2)를 추출한다. 그 후, 미리 주어진 컨텐츠 복호화키 생성식 "CK=(Q1+Dl)*(R1+El)+(Q2+D2)*(R2+E2) mod N" 에 근거해서 컨텐츠키(CK)를 생성한다(S6333).
컨텐츠 복호화키 생성부(636a)는 컨텐츠키(CK)를 컨텐츠키 저장부(623)에 저장하고, 처리를 종료한다(S6334).
<<서버(62)로부터 암호화 컨텐츠(ENCCNT)를 수신했을 때의 동작>>
컨텐츠 수신부(637)는 수신한 암호화 컨텐츠(ENCCNT)를 컨텐츠 복호화부(638)에 출력한다(S6361).
컨텐츠 복호화부(638)는 컨텐츠키 저장부(623)에 액세스해서, 컨텐츠키(CK)를 취득한다(S6362).
컨텐츠 복호화부(638)은, 취득한 컨텐츠키(CK)에 근거해서 암호화 컨텐츠(ENCCNT)를 복호화하고, 복호화 컨텐츠(DECCNT)를 취득한다(S6363).
컨텐츠 복호화부(638)는 복호화 컨텐츠(DECCNT)를 컨텐츠 출력부(639)에 출력한다(S6364).
컨텐츠 출력부(639)는 컨텐츠 복호화부(638)로부터 복호화 컨텐츠(DECCNT)를 수신하고, 수신한 복호화 컨텐츠(DECCNT)를 외부에 출력하고, 처리를 종료한다(S6365).
이상이, 컨텐츠 배송 시스템(6)의 구성요소인 출력장치(63a)의 구성과 동작이다. 또한, 출력장치(63a)와 다른 출력장치(63b~63n) 사이의 차이점은 이하와 같다.
(i) 암호화 중간키군복호화부(632a)에서 암호화 중간키군을 복호화하는데 이용되는 출력장치 식별자(AIDa~AIDn) 및 개별키(IKa~IKn)가 각각의 출력장치(63a~63n)마다 다르다.
(ii) 개별키 저장부(633a)에 저장되어 있는 출력장치 식별자(AIDa~AIDn) 및 개별키(IKa~IKn)는 각각의 출력장치(63a~63n)마다 다르다.
(iii) 중간키군 저장부(634a)에 저장되어 있는 중간키군(MKGa~MKGn)은 각각의 출력장치(63a~63n)마다 다르다.
(iv) 컨텐츠 복호화키 생성부(636a)에서 컨텐츠키(CK)를 생성하기 위해 이용된 중간키군(MKGa~MKGn)은 각각의 출력장치(63a~63n)마다 다르다.
<제6 실시예의 동작 검증>
제6 실시예에서, 다른 값의 중간키군(MKGa~MKGn)이 각각의 출력장치(63a~63n)에 할당되는 사실에도 불구하고, 전체 출력장치(63a~63n)에 동일한 컨텐츠키(CK)가 취득될 수 있는 이유에 대해 설명한다. 우선, 중간키군(MKGa~MKGn)은 중간키(D1, E1, D2, E2)으로 구성되어 있다. 또, 시변 파라미터 생성식을 만족하도록 시변 파라미터군(PRG)이 생성된다. 따라서, 컨텐츠 복호화키 생성식은 이하와 같이 변형될 수 있다.
CK= (Q1+Dl)*(R1+El)+(Q2+D2)*(R2+E2)
={s*(z+x)+v*m}*{t*(w+y)+u*n}+{u*(z-x)+t*m}*{v*(w-y)+s*n}
={s*(z+x)*t* (w+y)+u*(z-x)*v*(w-y)}+{u*n*s*(z+x)
+v*m*t*(w+y)+s*n*u*(z-x)+t*m*v*(w-y)}+u*v*m*n+s*t*m*n
여기서, "x*y=c"의 조건을 이용하여,
…=2*s*t*(z*w+c*n*m)+2*(u*s*n*z+t*v*m*w)
이것은 모든 출력장치(63a~63n)에 공통인 파라미터 만으로 형성된다(즉, 개별화 파라미터(x, y)를 포함하지 않는다). 그러므로, 공통의 컨텐츠키(CK)가 모든 출력장치(63a~63n)로부터 취득된다. 또한, 이것은 컨텐츠 암호화키 생성식 "CK=2*s*t*(z*w+c*n*m)+2*(u*s*n*z+t*v*m*w)와 일치한다
<제6 실시예의 효과>
제6 실시예에서, 컨텐츠(CNT)를 복호화하는데 사용된 컨텐츠키(CK)는 출력장치에 고유한 중간키로부터 생성된다. 그래서, 키발행센터의 출력장치 대응정보 저장부에 포함된 중간키군 및 중간키가 내장된 부정한 출력장치에 대해서도 출력장치 식별자의 대응 정보에 근거해서 누설원인 출력장치를 특정할 수 있게 된다.
<제6 실시예의 변형예>
상기에 설명한 실시예는, 본 발명의 실시의 일 예이다. 그러므로, 본 발명은 이 실시예에 한정되지 않는다. 실시예의 문맥을 초과하지 않는 범위에서 주요 조건이 구체화될 수 있다. 다음의 경우가 본 발명에 포함된다.
(1) 통신로(10)는 지상파 및 위성 등의 방송망이어도 좋다.
(2) 시스템 비밀 파라미터군 생성부(611)의 시스템 파라미터 생성식, 중간키군 생성부(613)의 개별화 파라미터 생성식 및 중간키 생성, 시변 파라미터군 생성부(623)의 시변 파라미터 생성식, 컨텐츠 암호화키 생성부(625)의 컨텐츠 암호화키 생성식, 및 컨텐츠 복호화키 생성부(636a)의 컨텐츠 복호화키 생성식은 제6 실시예 에 사용된 식에 한정되지 않는다. 개별화 파라미터 생성식 및 중간키 생성식, 시변 파라미터 생성식을 컨텐츠 복호화키 생성식에 대입하여 얻어진 식이 컨텐츠 암호화키 생성식에 일치하고, 중간키 생성식이 개별화 파라미터(x, y)를 포함하고, 더욱이 시변 파라미터 생성식 및 컨텐츠 암호화키 생성식이 개별화 파라미터(x, y)를 포함하지 않는다면, 어떠한 식도 사용될 수 있다.
(3) 제6 실시예에서 시스템 비밀 파라미터군 생성부(611)는 하나의 시스템 비밀 파라미터 생성식을 이용하여 시스템 비밀 파라미터군(SPG)을 생성한다. 그렇지만, 2개 이상의 시스템 비밀 파라미터 생성식을 이용하거나 시스템 비밀 파라미터 생성식을 이용하지 않고 시스템 비밀 파라미터군(SPG)을 생성한다. 예를 들면, 시스템 비밀 파라미터군(SPG)은 난수일 수도 있다.
(4) 제6 실시예에서 중간키군 생성부(613)는 하나의 개별화 파라미터 생성식을 이용하여 개별화 파라미터를 생성한다. 그렇지만, 2개 이상의 개별화 파라미터 생성식을 이용하거나 개별화 파라미터 생성식을 이용하지 않고 개별화 파라미터를 생성할 수도 있다. 예를 들면, 개별화 파라미터는 난수일 수도 있다.
(5) 제6 실시예에서 중간키군 생성부(613)는 4개의 중간키군 생성식을 이용하여 중간키를 생성한다. 그렇지만, 5개 이상의 중간키군 생성식을 이용하거나 3개 이하의 중간키군 생성식을 이용하여 중간키를 생성할 수도 있다.
(6) 제6 실시예에서 시변 파라미터군 생성부(623)는 4개의 시변 파라미터군 생성식을 이용하여 시변 파라미터군(PRG)을 생성한다. 그렇지만, 5개 이상의 시변 파라미터군 생성식을 이용하거나 3개 이하의 시변 파라미터군 생성식을 이용하여 시변 파라미터군(PRG)을 생성할 수도 있다. 또한, 시변 파라미터군 생성식을 이용하지 않고 시변 파라미터군(PRG)을 생성할 수도 있다. 예를 들면, 시변 파라미터군(PRG)은 난수일 수도 있다.
(7) 제6 실시예에서 컨텐츠 암호화키 생성부(625)는 1개의 컨텐츠 암호화키 생성식을 이용해 컨텐츠키(CK)를 계산한다. 그렇지만, 2 종류 이상의 컨텐츠 암호화키 생성식을 이용해 컨텐츠키(CK)를 계산할 수도 있다.
(8) 제6 실시예에서 컨텐츠 복호화키 생성부(636a)는 1개의 컨텐츠 복호화키 생성식을 이용해 컨텐츠키를 계산한다. 그렇지만, 2 종류 이상의 컨텐츠 복호화키 생성식을 이용해 컨텐츠키를 생성할 수도 있다.
(9) 컨텐츠 복호화키 생성부(636a)에서 이용되는 컨텐츠 복호화키 생성식은 모든 출력장치(63a~63n)에 공통인 생성식을 이용하지 않아도 좋다.
(10) 각 중간키군(MKGa~MKGn)는, 4개의 중간키(D1, E1, D2 및 E2)에 근거해서 형성된다. 그렇지만, 5이상의 중간키 또는 3이하의 중간키로 형성될 수도 있다.
(11) 시변 파라미터군(PRG)은 4개의 시변 파라미터로 형성되어 있다. 그렇지만, 5이상의 시변 파라미터 또는 3이하의 시변 파라미터로 형성될 수도 있다.
(12) 동일한 개별키나 중간키가 몇개의 복수의 출력장치에 할당될 수도 있다.
(13) 키 발행 센터(61)는 시스템 비밀 파라미터군(SPG) 대신에 중간키군을 서버(62)에 송신할 수도 있고, 서버(62)는 시변 파라미터군(PRG) 및 중간키군으로부터 컨텐츠키를 생성할 수도 있다.
(14) 서버(62)가 키 발행 센터(61)로부터 시스템 비밀 파라미터군(SPG)을 수신했을 때, 시스템 비밀 파라미터군 수신부(621)는 시스템 비밀 파라미터군저장부(622)에 시스템 비밀 파라미터군(SPG)을 저장한다. 동시에, 시변 파라미터군 생성부(623)는 시변 파라미터군(PRG)을 새롭게 생성할 수도 있다.
(15) 제6 실시예의 컨텐츠 암호화키 생성부(625) 및 컨텐츠 복호화키 생성부(636a)는 동일한 컨텐츠키(CK)를 출력한다. 그렇지만, 컨텐츠 암호화키 생성부(625)는 컨텐츠 암호화키(CEK)를 출력하고, 컨텐츠 복호화키 생성부(636a)는 컨텐츠 복호화키(CDK)를 출력하므로, 컨텐츠 암호화키(CEK)와 컨텐츠 복호화키(CDK)가 서로 다를 수 있다. 이 경우, 컨텐츠 암호화부(628) 및 컨텐츠 복호화부(638)는, 예를 들면, RSA 암호 등의 공개키암호 방식을 이용한다. RSA 암호 방식에 관해서는, 비특허 문헌("현대 암호 이론", 이케노 신이치 코야마 켄조 공저, 전자 정보 통신 엔지니어 학회편)에 개시되어 있다.
(16) 제6 실시예에서, 서버(62)는, 컨텐츠키(CK)에 근거해서 컨텐츠(CNT)를 암호화한다. 그렇지만, 제2 컨텐츠키(CK2)를 새롭게 생성해, 컨텐츠키(CK)에 근거해서 제2 컨텐츠키(CK2)를 암호화하고, 또한 제2 컨텐츠키(CK2)에 근거해서 컨텐츠(CNT)를 암호화하고, 암호화 컨텐츠(ENCCNT) 및 암호화된 제2 컨텐츠키(CK2)를 출력장치(63a~63n)에 배송할 수도 있다. 또한, 제2 컨텐츠키(CK2) 및 제3 컨텐츠키(CK3)를 새롭게 생성해, 제2 컨텐츠키(CK2)에 근거해서 컨텐츠키(CK2)를 암호화하고, 제3 컨텐츠키(CK3)에 근거해서 제2 컨텐츠키(CK2)를 암호화하고, 제3 컨텐츠키(CK3)에 근거해서 컨텐츠(CNT)를 암호화하고, 암호화 컨텐츠(ENCCNT), 제2 컨텐츠 키(CK2) 및 제3 컨텐츠키(CK3)를 출력장치(63a~63n)에 배송할 수도 있다. 그 이상의 수의 컨텐츠키를 생성할 수도 있다.
(17) 제6 실시예에서, 출력장치의 수는 14(63 a~63n)이다. 그렇지만, 출력장치의 수는 15 이상 또는 13 이하일 수 있다.
(18) 키 발행 센터(61)가 암호화 중간키군 세트(ENCMKG)을 배송할 때 , 출력장치(63a~63n)에 동시에 배송해도 좋고, 각 출력장치(63a~63n)에 개별적으로 배송할 수도 있다. 또한, 서버(62)가 시변 파라미터군(PRG) 및 암호화 컨텐츠(ENCCNT)를 배송할 때와 유사하게, 서버(62)는 출력장치(63a~63n)에 동시에 배송해도 좋고, 각 출력장치(63a~63n)에 개별적으로 배송할 수도 있다.
(19) 제6 실시예에서, 서버(62)는 컨텐츠키(CK)에 근거해 컨텐츠(CNT)를 암호화하고 암호화 컨텐츠(ENCCNT)를 생성해, 암호화 컨텐츠(ENCCNT)를 출력장치(63a~63n)에 배송하고, 출력장치(63a~63n)는 암호화 컨텐츠(ENCCNT)를 컨텐츠키(CK)에 근거해 복호화하고, 복호화 컨텐츠(DECCNT)를 외부에 출력한다. 그렇지만, 서버(62)가 암호화 컨텐츠(ENCCNT)를 배송하지 않는 동안, 출력장치(63a~63n)는 외부에 컨텐츠키(CK)를 출력할 수도 있다. 여기서, 서버(62)는 컨텐츠키(CK)를 외부에 출력할 수도 있다.
(20) 제6 실시예에서는, 서버(62)가 출력장치(63a~63n)에 시변 파라미터군(PRG)를 송신한다. 그렇지만, 서버(62)와 출력 장치(63a~63n)가 미리 공통의 시변 파라미터군(PRG)과 시변 파라미터군 식별자의 복수의 세트를 보유할 수 있고, 서버(62)는 하나의 시변 파라미터군 식별자를 출력장치(63a~63n)에 배송할 수 있고, 출 력장치(63a~63n)는 수신한 시변 파라미터군식별자에 근거해서 대응하는 시변 파라미터군(PRG)을 취득할 수도 있다.
(21) 본 발명은, 상기에 기술된 방법일 수 있다. 또, 이 방법들을 컴퓨터가 실현하도록 하는 컴퓨터 프로그램일 수 있고, 상기 컴퓨터 프로그램으로 형성된 디지털 신호일 수 있다. 또, 본 발명은, 컴퓨터 프로그램 또는 디지털 신호를 컴퓨터가 읽을 수 있는 기록 매체일 수 있다. 예를 들면, 플렉서블 디스크(flexible disk), 하드 디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD(Blu-ray Disc), 반도체 메모리 등에 저장될 수 있다. 또, 본 발명은 이들 기록 매체에 저장된 컴퓨터 프로그램 또는 디지털 신호일 수 있다. 또한, 본 발명은, 컴퓨터 프로그램 또는 디지탈 신호를 통신회선, 무선 또는 유선 통신회선, 인터넷을 대표로 하는 네트워크등을 통해 송신할 수 있다. 또, 본 발명은, 마이크로 프로세서 및 메모리를 갖춘 컴퓨터 시스템이다. 메모리는 컴퓨터 프로그램을 저장하고 있고, 마이크로 프로세서는 컴퓨터 프로그램에 따라서 동작한다. 또한, 본 발명은 프로그램 및 디지털 신호를 기록 매체에 기록해 송신하거나 또는 네트워크를 통해 송신함으로써, 독립한 다른 컴퓨터 시스템에 의해 실시된다.
(22) 상기 실시예 및 변형예는 각각 서로 결합될 수 있다.
본 발명의 몇 개의 실시예들만을 상기 상세하게 설명했지만, 본 기술에서 숙련된자가 본 발명의 신규성과 효과를 벗어나지 않고 실시예를 변경할 수 있는 것으로 이해될 수 있다. 따라서, 이러한 모든 변경이 본 발명의 범위내에 포함되도록 의도된다.
본 발명에 따른 컨텐츠 배송 시스템은, 공격자에 의해서, 출력장치의 개별키가 불법으로 취득되고, 부정의 출력장치가 개별키를 이용하여 생성되어도, 부정한 출력장치를 추적 할 수 있는 효과를 갖는다. 인터넷 등의 통신 네트워크, 위성 방송 등의 지상파 방송을 이용하여, 컨텐츠를 안전하게 배송하는데 유용하다.

Claims (33)

  1. 적어도 하나의 중간키로 이루어진 중간키군에 근거해서 암호화 컨텐츠를 복호화해서 복호화 컨텐츠를 출력하고, 컨텐츠를 암호화하여 암호화 컨텐츠를 배송하는 컨텐츠 배송 서버에 네트워크를 통하여 연결된 컨텐츠 출력 장치로서,
    암호화 컨텐츠를 수신하는 컨텐츠 수신부;
    중간키군을 보유하는 중간키군 저장부;
    컨텐츠 배송 서버와 미리 공유된 적어도 하나의 시변 파라미터로 구성된 시변 파라미터군을 네트워크를 통하여 수신하는 시변 파라미터군 수신부;
    수신된 시변 파라미터군 및 중간키군에 근거해 컨텐츠 복호화키를 생성하는 컨텐츠 복호화키 생성부; 및
    컨텐츠 복호화키에 근거해서 암호화 컨텐츠를 복호화하는 컨텐츠 복호화부를 포함하는 컨텐츠 출력장치.
  2. 제1 항에 있어서,
    컨텐츠 출력장치에 포함된 기능을 갖는 각각의 컨텐츠 출력장치에 미리 주어진 개별키를 보유하는 개별키 저장부;
    중간키군을 암호화하여 각각 얻어진 암호화 중간키군을 포함하는 암호화 중간키군 세트를 네트워크를 통하여 수신하는 암호화 중간키군 세트 수신부; 및
    개별키에 근거해서 상기 암호화 중간키군 세트의 암호화 중간키군 중 하나를 복호화하고, 복호화 중간키군을 상기 중간키군 저장부에 저장하는 중간키군 복호화부를 더 포함하는 컨텐츠 출력장치.
  3. 제2 항에 있어서,
    상기 암호화 중간키군 세트는 제1 암호화 중간키군과 제2 암호화 중간키군을 포함하고,
    상기 중간키군 복호화부는 상기 암호화 중간키군 세트의 제1 암호화 중간키군을 개별키에 근거해서 복호화해서 제1 중간키를 얻는 컨텐츠 출력장치.
  4. 제3 항에 있어서,
    상기 중간키군 복호화부는 상기 시변 파라미터군 수신부에 의해 수신된 시변 파라미터군에 근거해서 제1 중간키로부터 제2 중간키를 얻고,
    상기 컨텐츠 복호화키 생성부는 제2 중간키에 근거해서 암호화 중간키군 세트의 제2 암호화 중간키군을 복호화해서, 컨텐츠 복호화키를 생성하는 컨텐츠 출력장치.
  5. 제4 항에 있어서,
    상기 제1 중간키는 각각의 컨텐츠 출력장치 및 컨텐츠 출력장치의 모델에 고유한 값이고,
    상기 제2 중간키는 모든 컨텐츠 출력장치에 공통의 값인 컨텐츠 출력장치.
  6. 제1 항에 있어서,
    수신된 시변 파라미터군을 보유하는 시변 파라미터군 저장부; 및
    네트워크를 통하여 수신된 중간키군을 상기 중간키군 저장부에 저장하는 중간키군 수신부를 더 포함하는 컨텐츠 출력장치.
  7. 제6 항에 있어서,
    상기 컨텐츠 복호화키 생성부는, 적어도 하나의 미리 주어진 컨텐츠 복호화키 생성식에 따라서 중간키군 및 시변 파라미터군으로부터 컨텐츠 복호화키를 생성하고,
    컨텐츠 복호화키 생성식은 가산, 감산, 승산, 제산 중 적어도 하나를 포함하는 컨텐츠 출력장치.
  8. 제1 항에 있어서,
    상기 시변 파라미터군은 중간키군중 하나를 식별하는 중간키군 식별자를 더 포함하고,
    상기 컨텐츠 복호화키 생성부는 ⅰ) 중간키군 식별자에 근거해서 중간키군중에서 하나의 중간키군을 결정하고, 또한 ⅱ) 결정된 중간키군, 시변 파라미터군 및 컨텐츠 복호화키 생성식에 근거해서, 컨텐츠 복호화키를 생성하는 컨텐츠 출력장치.
  9. 제2 항에 있어서,
    상기 암호화 중간키군 세트 수신부는 암호화 중간키군이 기재되어 있는 암호화 테이블을 얻고,
    상기 중간키군 복호화부는 개별키에 근거해서 암호화 테이블을 복호하여, 중간키군이 기재되어 있는 복호화 테이블을 얻고,
    복호화 테이블에는, 요소를 식별하기 위한 요소 식별자 및 중간키군이 기재되어 있고, 복호화 테이블을 구성하는 요소 및 중간키군은 각각 요소 식별자에 대응하는 테이블 요소인 컨텐츠 출력장치.
  10. 제9 항에 있어서,
    상기 컨텐츠 복호화키 생성부는 대응하는 요소 식별자에 근거해서 테이블 요소의 하나인 중간키군을 선택하고, 중간키군에 근거해서 컨텐츠 복호화키를 생성하는 컨텐츠 출력장치.
  11. 제9 항에 있어서,
    상기 요소 식별자는 시변 파라미터이고, 상기 테이블 요소는 중간키군인 컨텐츠 출력장치.
  12. 제9 항에 있어서,
    상기 중간키군은 전체 컨텐츠 출력 장치에 공통인 중간키군 및 각각의 컨텐츠 출력장치에 고유한 중간키군으로 구성되는 컨텐츠 출력장치.
  13. 제1 항에 있어서,
    상기 컨텐츠 복호화키 생성부는 중간키군 및 시변 파라미터군에 근거해서 시프트 레지스터를 이용하여 컨텐츠 복호화키를 계산하는 컨텐츠 출력장치.
  14. 제13 항에 있어서,
    상기 컨텐츠 복호화키 생성부는 상기 시프트 레지스터를 이용하여 좌측 시프트 연산을 행하는 컨텐츠 출력장치.
  15. 제14 항에 있어서,
    상기 중간키군 복호화부는 시변 파라미터군 및 제1 중간키를 이용하여 좌측 시프트 연산을 행하여 제2 중간키를 얻고,
    상기 컨텐츠 복호화키 생성부는, 제2 중간키에 근거해서, 암호화 중간키군 세트의 제2 암호화 중간키군중 하나를 복호하여 컨텐츠 복호화키를 생성하는 컨텐츠 출력장치.
  16. 제1 항에 있어서,
    상기 시변 파라미터군은 적어도 2개의 시변 파라미터로 이루어지고,
    각각의 시변 파라미터는 모든 소정 항(term)에 따라서 변화하는 난수값 또는 시간 정보를 이용하여 생성된 값인 컨텐츠 출력장치.
  17. 제1 항에 있어서,
    상기 시변 파라미터군은 모든 컨텐츠 출력장치에 공통의 값인 컨텐츠 출력장치.
  18. 컨텐츠를 암호화하여 암호화 컨텐츠를 생성하고, 암호화 컨텐츠를 네트워크를 통하여, 각각 암호화 컨텐츠를 복호하여 출력하는 컨텐츠 출력장치들에 배송하는 컨텐츠 배송서버로서,
    적어도 하나의 미리 주어진 시스템 비밀 파라미터로 구성되는 시스템 비밀 파라미터군을 보유하는 시스템 비밀 파라미터군 저장부;
    시스템 비밀 파라미터군에 근거해서, 적어도 하나의 시변 파라미터로 구성되는 시변 파라미터군을 생성하는 시변 파라미터 생성부;
    시변 파라미터군을 보유하는 시변 파라미터군 저장부;
    시변 파라미터군 및 시스템 비밀 파라미터군에 근거해서, 중간키군인 컨텐츠 암호화키를 생성하는 컨텐츠 암호화키 생성부;
    컨텐츠 암호화키에 근거해서 컨텐츠를 암호화하는 컨텐츠 암호화부;
    암호화 컨텐츠를 컨텐츠 출력 장치에 배송하는 컨텐츠 배송부를 포함하는 컨텐츠 배송서버.
  19. 제18 항에 있어서,
    시변 파라미터군을 컨텐츠 출력장치에 배송하는 시변 파라미터군 배송부;및
    컨텐츠 암호화키를 컨텐츠 출력 장치에 배송하는 컨텐츠 암호화키 배송부를 더 포함하는 컨텐츠 배송서버.
  20. 제18 항에 있어서,
    상기 시스템 비밀 파라미터군은 적어도 3개 이상의 상기 시스템 비밀 파라미터들로 구성되는 컨텐츠 배송서버.
  21. 제18 항에 있어서,
    상기 중간키군은 시스템 비밀 파라미터군 및 시변 파라미터군에 근거해서 생성된 적어도 2개 이상의 중간키들로 구성되는 컨텐츠 배송서버.
  22. 암호화 컨텐츠를 복호화하여 출력하는 컨텐츠 출력장치 및 암호화 컨텐츠를 컨텐츠 출력장치에 배송하는 컨텐츠 배송서버에 네트워크를 통하여 연결되고, 각각의 컨텐츠 출력장치들에 의해 암호화 컨텐츠를 복호화하기 위한 중간키군을 발행하는 키발행센터로서,
    적어도 하나의 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 생성하는 시스템 비밀 파라미터군 생성부;
    시스템 비밀 파라미터군을 컨텐츠 배송서버에 송신하는 시스템 비밀 파라미터군 송신부;
    시스템 비밀 파라미터군에 근거해서, 복수의 중간키군을 생성하는 중간키군 생성부;
    각각의 컨텐츠 출력장치들에 주어진 개별키에 근거해서 중간키군중 하나를 암호화하는 중간키군 암호화부;및
    암호화 중간키군으로 이루어진 암호화 중간키군 세트를 배송하는 암호화 중간키군 세트 배송부를 포함하는 키발행센터.
  23. 제22 항에 있어서,
    상기 시스템 비밀 파라미터군은 적어도 3개 이상의 시스템 비밀 파라미터들로 구성되는 키발행센터.
  24. 제22 항에 있어서,
    암호화 중간키군 세트의 암호화 중간키군중 하나를 컨텐츠 출력장치에 배송하는 중간키군 배송부;
    시스템 비밀 파라미터군에 근거해서, 시변 파라미터군을 생성하는 시변 파라미터군 생성부;및
    시변 파라미터군을 컨텐츠 배송서버 및 컨텐츠 출력 장치에 배송하는 시변 파라미터군 배송부를 더 포함하는 키발행센터.
  25. 제22 항에 있어서,
    상기 중간키군 생성부는 컨텐츠를 복호화하는 컨텐츠 복호화 생성식의 계수를 중간키군으로서 생성하는 키발행센터.
  26. 컨텐츠 배송 시스템에 있어서,
    각각 적어도 하나의 중간키로 이루어진 중간키군에 근거해서 암호화 컨텐츠를 복호화하고, 복호화 컨텐츠를 출력하는 컨텐츠 출력 장치; 및
    컨텐츠를 암호화하여 암호화 컨텐츠를 생성하고, 암호화 컨텐츠를 컨텐츠 출력장치들에 배송하는 컨텐츠 배송서버를 포함하고,
    상기 컨텐츠 출력장치 및 상기 컨텐츠 배송 서버는 네트워크를 통하여 서로 연결되고,
    상기 컨텐츠 출력장치는
    암호화 컨텐츠를 수신하는 컨텐츠 수신부;
    중간키군을 보유하는 중간키군 저장부;
    컨텐츠 배송 서버와 미리 공유된 적어도 하나의 시변 파라미터로 이루어진 시변 파라미터군을 네트워크를 통하여 수신하는 시변 파라미터군 수신부;
    수신된 시변 파라미터군 및 중간키군에 근거해서 컨텐츠 복호화키를 생성하는 컨텐츠 복호화키 생성부; 및
    컨텐츠 복호화키에 근거해서 암호화 컨텐츠를 복호화하는 컨텐츠 복호화부를 포함하고,
    상기 컨텐츠 배송서버는
    적어도 하나의 미리 주어진 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 보유하는 시스템 비밀 파라미터군 저장부;
    적어도 하나의 시변 파라미터로 이루어진 시변 파라미터군을 생성하는 시변 파라미터 생성부;
    시변 파라미터군을 보유하는 시변 파라미터군 저장부;
    시변 파라미터군 및 시스템 비밀 파라미터군에 근거해서, 중간키군인 컨텐츠 암호화키를 생성하는 컨텐츠 암호화키 생성부;
    컨텐츠 암호화키에 근거해서 컨텐츠를 암호화하는 컨텐츠 암호화부;
    암호화 컨텐츠를 컨텐츠 출력 장치에 배송하는 컨텐츠 배송부를 포함하는 컨텐츠 배송 시스템.
  27. 적어도 하나의 중간키로 이루어진 중간키군에 근거해서, 암호화 컨텐츠를 복호화해서 복호화 컨텐츠를 출력하고, 암호화 컨텐츠를 배송하는 컨텐츠 배송 서버에 네트워크를 통해서 연결된 복수의 컨텐츠 출력 장치용 프로그램으로서,
    암호화 컨텐츠를 수신하고,
    중간키군을 저장하고,
    컨텐츠 배송 서버와 미리 공유된 적어도 하나의 시변 파라미터로 이루어진 시변 파라미터군을 네트워크를 통하여 수신하고,
    수신된 시변 파라미터군 및 중간키군에 근거해서, 컨텐츠 복호화키를 생성하고,
    컨텐츠 복호화키에 근거해서, 암호화 컨텐츠를 복호화하는, 컨텐츠 출력 장치용 프로그램.
  28. 컨텐츠를 암호화하여 암호화 컨텐츠를 생성하고, 암호화 컨텐츠를 복호화하여 출력하는 컨텐츠 출력장치들에 네트워크를 통하여 암호화 컨텐츠를 배송하는 컨텐츠 배송서버용 프로그램으로서,
    적어도 하나의 미리 주어진 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 저장하고,
    적어도 하나의 미리 주어진 시변 파라미터로 이루어진 시변 파라미터군을 생성하고,
    시변 파라미터군을 저장하고,
    시변 파라미터군 및 시스템 비밀 파라미터군에 근거해서, 중간키군인 컨텐츠 암호화키를 생성하고,
    컨텐츠 암호화키에 근거해서 컨텐츠를 암호화하고,
    암호화 컨텐츠를 컨텐츠 출력 장치에 배송하는, 컨텐츠 배송서버용 프로그램.
  29. 네트워크를 통하여 컨텐츠 출력장치 및 컨텐츠 배송서버에 연결되고, 암호화 컨텐츠를 각각의 컨텐츠 출력장치들에 의해 복호화하기 위한 중간키군을 발행하는 키발행센터용 프로그램으로서,
    적어도 하나의 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 생성하고,
    시스템 비밀 파라미터군을 컨텐츠 배송서버에 송신하고,
    시스템 비밀 파라미터군에 근거해서, 복수의 중간키군을 생성하고,
    상기 각각의 컨텐츠 출력장치들에 주어진 개별키에 근거해서 복수의 중간키군중 하나를 암호화하여 복수의 암호화 중간키군을 생성하고,
    복수의 암호화 중간키군으로 이루어진 암호화 중간키군 세트를 컨텐츠 출력장치에 배송하는, 키발행센터용 프로그램.
  30. 제27 항 내지 제29 항중 어느 한 항에 따른 프로그램이 기록된 컴퓨터 판독가능 기록매체.
  31. 하나 이상의 중간키로 이루어진 중간키군에 근거해서, 암호화 컨텐츠를 복호화해서 복호화 컨텐츠를 출력하고, 암호화 컨텐츠를 배송하는 컨텐츠 배송 서버에 네트워크를 통하여 연결된 복수의 컨텐츠 출력 장치용 컨텐츠 배송 방법으로서,
    암호화 컨텐츠를 수신하고,
    중간키군을 저장하고,
    상기 서버와 미리 공유된 적어도 하나의 시변 파라미터로 이루어진 시변 파 라미터군을 네트워크를 통하여 수신하고,
    수신된 시변 파라미터군 및 중간키군에 근거해서 컨텐츠 복호화키를 생성하고,
    컨텐츠 복호화키에 근거해서 암호화 컨텐츠를 복호화하는, 컨텐츠 출력 장치용 컨텐츠 배송 방법.
  32. 컨텐츠를 암호화하여 암호화 컨텐츠를 생성하고, 암호화 컨텐츠를 복호화하여 출력하는 컨텐츠 출력장치들에 네트워크를 통하여 암호화 컨텐츠를 배송하는 컨텐츠 배송서버용 컨텐츠 배송 방법으로서,
    적어도 하나의 미리 주어진 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 보유하고,
    적어도 하나의 미리 주어진 시변 파라미터로 이루어진 시변 파라미터군을 생성하고,
    시변 파라미터군을 보유하고,
    시변 파라미터군 및 시스템 비밀 파라미터군에 근거해서, 중간키군인 컨텐츠 암호화키를 생성하고,
    컨텐츠 암호화키에 근거해서 컨텐츠를 암호화하고,
    암호화 컨텐츠를 상기 컨텐츠 출력 장치에 배송하는, 컨텐츠 배송서버용 컨텐츠 배송 방법.
  33. 네트워크를 통하여 컨텐츠 출력장치 및 컨텐츠 배송서버에 연결되고, 암호화 컨텐츠를 각각의 컨텐츠 출력장치들에 의해 복호화하기 위한 중간키군을 발행하는 키발행센터용 컨텐츠 배송 방법으로서,
    적어도 하나의 시스템 비밀 파라미터로 이루어진 시스템 비밀 파라미터군을 생성하고,
    시스템 비밀 파라미터군을 컨텐츠 배송서버에 송신하고,
    시스템 비밀 파라미터군에 근거해서 복수의 중간키군을 생성하고,
    각각의 컨텐츠 출력장치들에 주어진 개별키에 근거해서 복수의 중간키군중 하나를 암호화하고,
    컨텐츠 출력장치에 복수의 암호화 중간키군으로 이루어진 암호화 중간키군 세트를 배송하는, 키발행센터용 컨텐츠 배송 방법.
KR1020057020506A 2003-12-17 2004-12-15 컨텐츠 암호화 및 복호화 키를 생성하기 위한 시스템 비밀파라미터군 및 암호화 중간키군 배송 장치 및 방법 KR20060125460A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00419766 2003-12-17
JP2003419766 2003-12-17

Publications (1)

Publication Number Publication Date
KR20060125460A true KR20060125460A (ko) 2006-12-06

Family

ID=34697196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057020506A KR20060125460A (ko) 2003-12-17 2004-12-15 컨텐츠 암호화 및 복호화 키를 생성하기 위한 시스템 비밀파라미터군 및 암호화 중간키군 배송 장치 및 방법

Country Status (6)

Country Link
US (1) US20060165233A1 (ko)
EP (1) EP1695174A1 (ko)
KR (1) KR20060125460A (ko)
CN (1) CN1898621A (ko)
TW (1) TW200533142A (ko)
WO (1) WO2005059727A1 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7706540B2 (en) * 2002-12-16 2010-04-27 Entriq, Inc. Content distribution using set of session keys
JP4760101B2 (ja) * 2005-04-07 2011-08-31 ソニー株式会社 コンテンツ提供システム,コンテンツ再生装置,プログラム,およびコンテンツ再生方法
EP1876753B1 (en) * 2005-04-27 2016-03-02 Panasonic Intellectual Property Management Co., Ltd. Confidential information processing host device and confidential information processing method
DE102006006633A1 (de) * 2006-02-10 2007-08-16 Sia Syncrosoft Verfahren zur Verbreitung von Contents
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
US8601590B2 (en) * 2006-04-27 2013-12-03 Panasonic Corporation Content distribution system
US20080178010A1 (en) 2007-01-18 2008-07-24 Vaterlaus Robert K Cryptographic web service
KR100901970B1 (ko) * 2007-12-06 2009-06-10 한국전자통신연구원 분배키를 이용한 다운로더블 제한 수신 서비스 제공 장치및 그 방법
US9112862B2 (en) 2009-02-02 2015-08-18 Adobe Systems Incorporated System and method for parts-based digital rights management
US9633014B2 (en) * 2009-04-08 2017-04-25 Google Inc. Policy based video content syndication
JP5302083B2 (ja) * 2009-04-23 2013-10-02 株式会社メガチップス メモリ装置およびメモリ装置の制御方法
US8488793B2 (en) * 2009-07-31 2013-07-16 International Business Machines Corporation Efficient rebinding of partitioned content encrypted using broadcast encryption
EP2507995A4 (en) * 2009-12-04 2014-07-09 Sonic Ip Inc SYSTEMS AND METHODS FOR TRANSPORTING ELEMENTARY BIT TRAIN CRYPTOGRAPHIC MATERIAL
US20120272051A1 (en) * 2011-04-22 2012-10-25 International Business Machines Corporation Security key distribution in a cluster
CN102915414A (zh) 2011-08-02 2013-02-06 ***股份有限公司 用于安全性信息交互的数据存储***及方法
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8739308B1 (en) 2012-03-27 2014-05-27 Amazon Technologies, Inc. Source identification for unauthorized copies of content
US8892865B1 (en) 2012-03-27 2014-11-18 Amazon Technologies, Inc. Multiple authority key derivation
US9215076B1 (en) * 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US9008316B2 (en) * 2012-03-29 2015-04-14 Microsoft Technology Licensing, Llc Role-based distributed key management
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9882713B1 (en) 2013-01-30 2018-01-30 vIPtela Inc. Method and system for key generation, distribution and management
US10148430B1 (en) 2013-04-17 2018-12-04 Amazon Technologies, Inc Revocable stream ciphers for upgrading encryption in a shared resource environment
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9559840B2 (en) * 2013-10-18 2017-01-31 Globalfoundries Inc. Low-bandwidth time-embargoed content disclosure
US9467478B1 (en) 2013-12-18 2016-10-11 vIPtela Inc. Overlay management protocol for secure routing based on an overlay network
JP6265783B2 (ja) * 2014-03-06 2018-01-24 キヤノン株式会社 暗号化/復号化システム及びその制御方法、並びにプログラム
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US9800561B2 (en) * 2014-11-06 2017-10-24 Intel Corporation Secure sharing of user annotated subscription media with trusted devices
US9980303B2 (en) 2015-12-18 2018-05-22 Cisco Technology, Inc. Establishing a private network using multi-uplink capable network devices
US10320562B2 (en) 2016-06-01 2019-06-11 Nxp Usa, Inc. Application specific low-power secure key
US11032254B2 (en) * 2016-09-06 2021-06-08 Red Hat, Inc. Binding data to a network in the presence of an entity
CN107707514B (zh) 2017-02-08 2018-08-21 贵州白山云科技有限公司 一种用于cdn节点间加密的方法及***及装置
US11010485B1 (en) * 2017-03-02 2021-05-18 Apple Inc. Cloud messaging system
US10461929B2 (en) * 2017-09-25 2019-10-29 Hewlett Packard Enterprise Development Lp Updating login credentials of an iSCSI client in a storage area network
US10839060B1 (en) * 2019-08-27 2020-11-17 Capital One Services, Llc Techniques for multi-voice speech recognition commands
CN111432373B (zh) * 2020-02-24 2022-08-30 吉利汽车研究院(宁波)有限公司 一种安全认证方法、装置及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3306765A (en) * 1963-09-03 1967-02-28 Gen Dynamics Corp Method for fireproofing wood and the treated wood
GB2186894B (en) * 1985-11-15 1989-10-11 Matsushita Electric Works Ltd Method of manufacturing modified wood material
MY123388A (en) * 1999-03-15 2006-05-31 Sony Corp Processing method and apparatus for encrypted data transfer
US7136838B1 (en) * 1999-03-27 2006-11-14 Microsoft Corporation Digital license and method for obtaining/providing a digital license
WO2001054099A1 (fr) * 2000-01-21 2001-07-26 Sony Corporation Systeme d'authentification de donnees
EP1407360A4 (en) * 2000-06-16 2009-08-12 Entriq Inc METHODS AND SYSTEMS FOR DISTRIBUTING CONTENT VIA A NETWORK IMPLEMENTING DISTRIBUTED CONDITIONAL ACCESS AGENTS AND SECURE AGENTS TO PERFORM DIGITAL RIGHTS MANAGEMENT (DRM)
CN100435164C (zh) * 2001-05-29 2008-11-19 松下电器产业株式会社 权限管理设备

Also Published As

Publication number Publication date
US20060165233A1 (en) 2006-07-27
EP1695174A1 (en) 2006-08-30
WO2005059727A1 (en) 2005-06-30
CN1898621A (zh) 2007-01-17
TW200533142A (en) 2005-10-01

Similar Documents

Publication Publication Date Title
KR20060125460A (ko) 컨텐츠 암호화 및 복호화 키를 생성하기 위한 시스템 비밀파라미터군 및 암호화 중간키군 배송 장치 및 방법
Chen et al. Secret sharing based reversible data hiding in encrypted images with multiple data-hiders
JP4855498B2 (ja) 公開鍵メディア鍵束
CN102016871B (zh) 密码***
JP2008518262A (ja) 暗号化関数を難読化するための方法及びシステム
US20080222695A1 (en) Key management for content protection
JP2002244929A (ja) ディジタルコピー方法及びディジタルコンテンツの記録装置
JP2008263645A (ja) 暗号化を施すことによりデータを保護するデータ保護システム
JP4460772B2 (ja) 同期ストリーム暗号
WO2001013571A1 (en) Systems and methods for compression of key sets having multiple keys
US20080025517A1 (en) Key management for content protection
CN109617682A (zh) 一种基于直方图左右移位的密文域可逆信息隐藏方法
RU2370897C2 (ru) Система блочной криптографической защиты, использующая преобразования для сокрытия основной функции криптографической защиты каждого цикла шифрования
KR20060121160A (ko) 키 배포 시스템
US9419952B2 (en) Memory encryption method compatible with a memory interleaved system and corresponding system
JP5269984B2 (ja) 暗号鍵生成装置
US20070143633A1 (en) Copyright information management method
JP2004007533A (ja) マルチメディア・ファイル・フォーマットのデータ構造、その暗号化方法並びに装置及びその暗号の復号化方法及び装置
JP2004120008A (ja) 鍵管理システム
JP4903028B2 (ja) コンテンツ送信装置、コンテンツ受信装置、コンテンツ送信方法及びコンテンツ送信プログラム
KR20060108619A (ko) 콘텐츠 배포 서버, 키 할당 방법, 콘텐츠 출력장치, 및 키발행 센터
JP2005204293A (ja) コンテンツ出力装置、コンテンツ配信サーバ及び鍵発行センタ
US7630498B2 (en) Engine, register and methods for the same
JP4638213B2 (ja) コンテンツ配信サーバ、鍵割当方法、コンテンツ出力装置、及び鍵発行センタ
JP2005260650A (ja) 復号情報生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid