KR19990023603A - 암호화된 프로그램 송신 및 수신 방법, 복호화 방법 및 제조 물품 - Google Patents

암호화된 프로그램 송신 및 수신 방법, 복호화 방법 및 제조 물품 Download PDF

Info

Publication number
KR19990023603A
KR19990023603A KR1019980033036A KR19980033036A KR19990023603A KR 19990023603 A KR19990023603 A KR 19990023603A KR 1019980033036 A KR1019980033036 A KR 1019980033036A KR 19980033036 A KR19980033036 A KR 19980033036A KR 19990023603 A KR19990023603 A KR 19990023603A
Authority
KR
South Korea
Prior art keywords
program
key
end user
identifier
entitlement information
Prior art date
Application number
KR1019980033036A
Other languages
English (en)
Other versions
KR100317395B1 (ko
Inventor
아비샤이 우드
Original Assignee
루센트 테크놀러지스 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 루센트 테크놀러지스 인크 filed Critical 루센트 테크놀러지스 인크
Publication of KR19990023603A publication Critical patent/KR19990023603A/ko
Application granted granted Critical
Publication of KR100317395B1 publication Critical patent/KR100317395B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/09Arrangements for device control with a direct linkage to broadcast information or to broadcast space-time; Arrangements for control of broadcast-related services
    • H04H60/14Arrangements for conditional access to broadcast information or to broadcast-related services
    • H04H60/23Arrangements for conditional access to broadcast information or to broadcast-related services using cryptography, e.g. encryption, authentication, key distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26606Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing entitlement messages, e.g. Entitlement Control Message [ECM] or Entitlement Management Message [EMM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4623Processing of entitlement messages, e.g. ECM [Entitlement Control Message] or EMM [Entitlement Management Message]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 암호화된 프로그램 내용과 함께 프로그램 식별자를 송신하고, 송신된 프로그램의 내용에 액세스하는 것을 제한하는 시스템을 개시한다. 셋탑 터미널(set-top terminal) 또는 유사한 메커니즘은 저장된 암호 해독 키(decryption keys)를 이용하여 송신된 멀티미디어 정보에 액세스하는 것을 제한한다. 셋탑 터미널은 주어진 주기 동안 고객에게 권한이 주어진 프로그램의 하나 또는 그 이상의 패키지에 대응하는 인타이틀먼트 정보(entitlement information)를 헤드엔드(head-end)로부터 주기적으로 수신한다. 각각의 프로그램은 프로그램에 대해 유일할 수도 있는 프로그램 키 KP를 이용하여, 송신하기 전에 헤드엔드 서버에 의해 암호화되는 것이 바람직하다. 셋탑 터미널은 프로그램을 암호 해독하는데 필요한 암호 해독 키를 유도해 내기 위하여 저장된 인타이틀먼트 정보와 함께 수신된 프로그램 식별자 p를 이용한다. 송신된 프로그램을 암호화하기 위해 이용된 k 비트 프로그램 키 KP는 규정된 세트의 k 비트 마스터 키 m1, . . . , mn의 선형 조합이다. 헤드엔드 서버는 매 빌링 주기(billing period)당 한 번씩 매트릭스용 마스터 키(master keys)의 새로운 세트 M을 생성하는 것이 바람직하다. 각각의 프로그램 키 KP가 마스터 키의 세트 M의 선형 조합이기 때문에, r 프로그램을 원하는 고객은 r 프로그램을 포함하는 프로그램의 최소 선형 서브스페이스(linear subspace) U에 액세스할 수 있다. 또한, 패키지는 i가 n보다 적을 경우 (2i-1) 프로그램 식별자로 구성되며, (2i-1) 프로그램 식별자 모두가 프로그램에 할당될 필요는 없다. 선택적 검사 매트릭스(optional check matrix) C는 수신된 프로그램이 권한이 부여된 서브스페이스 U에 있는가의 여부를 셋탑 터미널이 앞서 결정할 수 있게 한다.

Description

암호화된 프로그램 송신 및 수신 방법, 복호화 방법 및 제조 물품
본 발명은 전반적으로 송신된 프로그래밍 내용에 액세스하는 것을 제한하는 시스템에 관한 것으로, 보다 구체적으로는, 프로그램을 암호 해독하는데 필요한 암호 해독 키를 유도해 내기 위하여 저장된 인타이틀먼트 정보(entitlement information)와 더불어, 셋탑 터미널(set-top terminal)에 의해 이용되는 프로그램 식별자(program identifier)와 암호화된 프로그램을 함께 송신하는 시스템에 관한 것이다.
텔레비젼 시청자가 이용할 수 있는 채널의 수가 그러한 채널상에서 이용할 수 있는 프로그래밍 내용의 다양성과 함께 증가함에 따라, 케이블 텔레비젼 조작자 및 디지털 위성 서비스 조작자와 같은 서비스 제공자가 텔레비젼 시청자들의 대다수를 만족시키는 채널 및 프로그램의 패키지(packages)를 제공하는 것이 점증적으로 요구되었다. 고객에게 제공될 수 있는 패키지의 개발은 일반적으로 마케팅 기능이다. 일반적으로, 서비스 제공자는 단일 프로그램에서부터 모든 프로그램까지의 여러 크기의 패키지와, 이들 사이의 여러 조합을 제공하기를 원한다.
서비스 제공자는 대체로, 종종 헤드엔드(head-end)라고 하는 송신기로부터 다수의 고객에게 텔레비젼 프로그램을 방송한다. 각각의 고객에게는 대체로, 구입된 패키지와 관련된 수신된 프로그래밍의 서브셋에만 권리가 부여된다. 무선 방송 환경에서, 예를 들면, 송신된 프로그래밍은 안테나 또는 위성 접시형 안테나와 같은 적절한 수신기를 이용하여 누구든지 수신할 수 있다. 따라서, 송신된 프로그램에 액세스하는 것을, 필요한 패키지를 구입한 허가된 고객에 한정하기 위하여, 서비스 제공자는 대체로 송신된 프로그램을 암호화하고, 고객에게 권한이 부여된 프로그램을 암호 해독하는데 이용될 수도 있는 하나 또는 그 이상의 암호 해독 키를 포함하는 셋탑 터미널(STT; set-top terminal)을 고객에게 제공한다. 이러한 방식으로, 셋탑 터미널은 암호화된 송신을 수신하고, 고객에게는 권한이 부여되지만 그 외에는 권한이 부여되지 않는 프로그램을 암호 해독한다.
저장된 암호 해독 키를 포함하여, 셋탑 터미널에 저장된 고감도 정보의 저작권 침해를 최소화하기 위하여, 셋탑 터미널은 대체로 보안 프로세서와, 암호 해독 키를 저장하기 위해 수 킬로 비트 정도의 용량을 갖는 보안 메모리를 포함한다. 보안 메모리는 보통 비휘발성이며 함부로 조작할 수 없다. 또한, 예를 들면, 각각의 빌링 주기(billing period) 동안 키를 원하는 대로 재프로그래밍 할 수 있도록, 보안 메모리는 기록 가능한 것이 바람직하다. 종래의 셋탑 터미널의 보안 메모리 용량이 제한됨으로써, 저장될 수 있는 키의 수가 제한되어, 서비스 제공자에 의해 제공될 수 있는 패키지의 수가 제한된다. 대체로 월간 빌링 주기 동안 서비스 제공자에 의해 방송되는 프로그램의 수는 200,000 개 정도일 수 있음을 알 수 있다.
한 가지 변형에서, 종래의 셋탑 터미널은 서비스 제공자에 의해 제공되는 프로그램의 각각의 패키지(package)에 대응하는 비트 엔트리(bit entry)를 갖는 비트 벡터(bit vector)를 포함한다. 대체로, 각각의 패키지는 하나의 텔레비젼 채널과 대응한다. 특정 고객이 하나의 패키지에 대해 권한을 부여받을 경우, 셋탑 터미널에 저장된 비트 벡터에 있어서의 대응 비트 엔트리는 1로 세팅된다. 그 후, 서비스 제공자에 의해 송신된 모든 프로그램은 단일 키를 이용하여 암호화된다. 소정의 프로그램을 수신하면, 셋탑 터미널은 대응 비트 엔트리가 세팅되었는가를 결정하기 위하여 비트 벡터에 액세스 한다. 비트 엔트리가 세팅되었을 경우, 셋탑 터미널은 프로그램을 암호 해독하기 위하여 저장된 단일 암호 해독 키를 이용한다.
이론상으로, 각각의 프로그램용 비트 엔트리를 제공함으로써 비트 벡터 방식(bit vector scheme)에서 융통성이 생기는 반면, 단일 빌링 주기에서 많은 프로그램을 송신하는 시스템에서는 비트 벡터의 길이가 비실용적일 것이다. 또한, 그러한 시스템에서의 액세스 제어는 비트 벡터에서의 엔트리에 의해 배타적으로(exclusively) 제공되며 암호화에 의한 것이 아니다. 따라서, 고객이 비트 벡터를 오버라이트(overwrite)할 수 있고 모든 비트를 1로 세팅할 경우, 고객은 모든 프로그램에 액세스 할 수 있다.
다른 변경에 있어서, 프로그램은 패키지로 분할되고, 주어진 패키지에서 모든 프로그램은 동일한 키를 이용하여 암호화된다. 또한, 각각의 패키지는 대체로 하나의 텔레비젼 채널에 대응한다. 셋탑 터미널은 고객에게 권한이 부여되는 각각의 패키지에 대한 암호 해독 키를 저장한다. 따라서, 하나의 프로그램이 다수의 패키지에 포함될 경우, 프로그램은 각각의 관련 패키지에 대하여 재송신되어야 하며, 각각의 송신은 특수 패키지에 대응하는 암호화 키를 이용하여 암호화된다. 액세스 제어가 암호화에 의한 것일지라도, 주어진 프로그램을 여러 번 재송신하는 것과 관련된 오버헤드는 서비스 제공자가 동일한 프로그램을 다수의 패키지에 배치하는 것을 방해하여, 프로그램의 패키지를 설계시 융통성을 제한한다.
프로그래밍 내용을 암호화하여 송신하는 이전의 시스템이 권한이 부여된 고객에게 액세스하는 것을 제한함에 있어서는 비교적 성공적이었지만, 그와 같은 이전의 시스템으로는 셋탑 터미널의 보안 메모리의 제한된 용량을 초과하지 않거나 또는 오버헤드를 크게 증가시키지 않으면서, 텔레비젼 네트워크와 같은 서비스 제공자가 다수의 프로그램을 포함하는 상이한 여러 패키지를 고객에게 제공할 수 없다. 암호화된 프로그래밍 내용을 송신하기 위한 종래의 시스템에 관하여 위에서 기술된 단점에서 명백한 바와 같이, 프로그램을 암호 해독하는데 필요한 암호 해독 키를 유도해 내기 위해서는, 저장된 인타이틀먼트 정보와 더불어, 셋탑 터미널에 의해 이용되는 프로그램 식별자와, 키를 이용하여 암호화된 프로그램을 함께 송신하는 시스템이 필요하다. 서비스 제공자가 각각의 패키지에 대한 프로그램을 재송신할 필요없이, 다수의 패키지에 하나의 프로그램을 포함시킬 수 있는 시스템이 더 필요하다. 송신된 프로그래밍 내용과 관련된 오버헤드를 크게 증가시키지 않으면서 셋탑 터미널의 보안 메모리에 제한을 받지 않는 액세스 제어 시스템이 더 필요하다.
일반적으로, 암호화된 프로그래밍 내용은 송신기 또는 헤드엔드 서버(head-end server)를 이용하여 서비스 제공자에 의해 하나 또는 그 이상의 고객에게 송신된다. 본 발명의 한가지 양상에 따르면, 프로그램을 식별하는데 이용된 프로그램 식별자 p는 프로그래밍 내용과 함께 고객에게 송신된다. 각각의 고객은 암호 해독 키를 이용하여, 송신된 멀티미디어 정보에 액세스하는 것을 제한하는 셋탑 터미널 또는 다른 메커니즘을 갖는 것이 바람직하다. 셋탑 터미널은 고객에게 주어진 주기 동안 권한이 부여된 프로그램의 하나 또는 그 이상의 패키지에 대응하는 인타이틀먼트 정보를 헤드엔드로부터 주기적으로 수신하는 것이 바람직하다.
각각의 프로그램은 프로그램에 대해 유일할 수도 있는 프로그램 키 KP를 이용하여, 송신하기 전에 헤드엔드 서버에 의해 암호화되는 것이 바람직하다. 헤드엔드 서버는 암호화된 프로그램을 송신할 뿐만 아니라, 프로그램 식별자 p를 셋탑 터미널에 송신하는 것이 바람직하다. 셋탑 터미널은 프로그램을 암호 해독하는데 필요한 암호 해독 키를 유도해 내기 위하여, 저장된 인타이틀먼트 정보와 함께 수신된 프로그램 식별자 p를 이용한다. 이러한 방식으로, 고객이 특정 프로그램에 대해 권한을 부여받을 경우, 셋탑 터미널은 저장 및 수신된 정보를 이용하여 암호 해독된 프로그램 키 KP를 유도해 낼 수 있으며, 그 후 암호화된 프로그램을 암호 해독하기 위하여 프로그램 키 KP를 이용할 수 있을 것이다. 여러 실시예에서, 프로그램 식별자 p는 프로그램 부분과 인터리빙 되거나(interleaved) 또는 개별 전용 제어 채널상에서 송신될 수 있다.
본 발명의 또다른 양상에 따르면, 송신된 프로그램을 암호화하는데 이용되는 k 비트의 프로그램 키 KP 각각은 규정된 세트의 k 비트의 마스터 키 m1, . . . , mn의 선형 조합이며, 각각의 마스터 키 mi는 바람직하게 헤드엔드 서버에 의해 k x n 매트릭스 M의 열에 저장된다. 프로그램 키 KP의 비트 길이 k는 프로그램 식별자 p의 비트 길이 n보다 더 커야 한다. 프로그램 식별자 p는 마스터 키 매트릭스 M에서의 어느 키가 프로그램 키 KP를 생성할 때 이용되는가를 나타냄으로써 프로그램 키 마스크로서 역할을 한다. 헤드엔드 서버는 매트릭스 M에 대한 새로운 마스터 키 세트를 빌링 주기마다 한 번씩 생성하는 것이 바람직하다. 한가지 실시예에서, 마스터 키 mi가 선형으로 독립적일 경우, 마스터 키 매트릭스 M이 임의로 생성되어, 생성된 프로그램 키 KP가 예기치 않게 0으로 되지 않도록 할 수 있다.
고객은 r 프로그램을 함께 포함하는 하나 또는 그 이상의 패키지를 구입한다. 프로그램을 암호화하는데 이용된 각각의 프로그램 키 KP가 마스터 키의 세트 M의 선형 조합이기 때문에, 일단 권한을 부여받은 r 프로그램 각각에 대한 프로그램 키 KP를 고객이 획득하면, 고객은 2r 프로그램에 대한 프로그램 키 KP를 쉽게 유도해 낼 수도 있다. 따라서, 본 발명의 또다른 양상에 따르면, r 프로그램을 원하는 고객은 실제로 프로그램의 최소 선형 서브스페이스 U에 액세스할 수 있으며, 최소 선형 서브스페이스는 그들 r 프로그램을 포함한다. 프로그램은 관련된 내용을 갖는 프로그램이 낮은 차원의 선형 서브스페이스에 맞도록 하는 방식으로 구성되는 것이 바람직하다. 또한, 각각의 프로그램 키 KP가 마스터 키 M의 선형 조합이기 때문에, 주어진 패키지는 임의의 수의 프로그램을 가질 수 없다. 특히, 패키지는 n보다 작은 i의 몇몇 값에 대해 (2i-1) 프로그램 식별자로 구성되며, (2i-1) 프로그램 식별자가 모두 프로그램에 할당될 필요는 없다.
셋탑 터미널은 권한을 부여받은 고객의 서브스페이스 U에 속하는 어떠한 프로그램 p도 암호 해독할 필요가 있으며, 다른 프로그램을 암호 해독할 필요는 없다. 서브스페이스 U는 기저 매트릭스(a basis matrix) B로 나타내질 수 있다. 프로그램 식별자 p에 의해 각각 식별된 프로그램의 서브스페이스 U를 암호 해독하기 위하여, 셋탑 터미널은 마스터 키 매트릭스 M에서 유도해 낸 마스터 키의 대응 서브셋을 필요로 한다. 따라서, 셋탑 터미널은 고객에게 권한이 부여된 마스터 키의 유도된 부분을 포함하는 고객 키 매트릭스 K를 포함한다. 또한, 셋탑 터미널에 의해 저장된 인타이틀먼트 정보는 기저 매트릭스 B로부터 규칙적인 매트릭스 B( 및 규칙적인 기저 매트릭스의 역 (B()-1을 생성하기 위하여 헤드엔드 서버에 의해 이용되는 실행중인 행 색인의 세트 i1, . . . , ir을 포함한다.
바람직한 일실시예에서, 셋탑 터미널은 또한 수신된 프로그램이 전체 암호 해독 절차를 통과하지 않고서도 권한이 부여된 서브스페이스 U에 있는가의 여부를 셋탑 터미널이 미리 결정할 수 있게 하기 위하여, 검사 매트릭스(check matrix) C를 인타이틀먼트 정보의 일부로서 저장한다. 이러한 방식으로, 셋탑 터미널은 송신 에러로 인하여 암호 해독되지 않는 프로그램과 프로그램이 서브스페이스 U의 멤버가 아니기 때문에 암호 해독되지 않는 프로그램을 명확히 구별할 수 있다.
이하의 상세한 설명 및 도면을 참조함으로써, 본 발명의 또다른 특징 및 이점을 알 수 있을 뿐만 아니라, 본 발명을 보다 완전하게 이해할 수 있을 것이다.
도 1은 본 발명의 일실시예에 따라 암호화된 프로그래밍 내용을 송신하기 위한 시스템을 도시하는 개략적 블럭도.
도 2는 도 1의 전형적인 헤드엔드 서버에 대한 개략적 블럭도.
도 3은 도 1의 전형적 셋탑 터미널에 대한 개략적 블럭도.
도 4a 및 4b는 도 3의 셋탑 터미널에 의해 저장된 인타이틀먼트 정보를 획득하는데 이용되는 선형 방정식 시스템을 도시한 도면.
도 5는 도 2의 프로그램 데이터베이스로부터의 샘플 테이블을 도시한 도면.
도 6은 관련된 내용을 갖춘 프로그램이 낮은 차원의 선형 서브스페이스에 맞도록 하는 방식으로 프로그램을 구성하기 위하여, 도 2의 헤드엔드 서버에 의해 이용된 대표적 토픽 계층을 도시하는 도면.
도 7은 도 3의 인타이틀먼트 데이터베이스로부터의 샘플 테이블을 도시하는 도면.
도 8a는 도 2의 헤드엔드 서버에 의해 구현되는 전형적인 인타이틀먼트 정보 분배 프로세스를 설명하는 흐름도.
도 8b는 m 비트 프리픽스 마스크를 구비하는 도 6의 토픽에 대해 도 8a의 인타이틀먼트 정보 분배 프로세스에 의해 계산된 바이어스 벡터의 세트 B(를 도시하는 도면.
도 9는 도 2의 헤드엔드 서버에 의해 구현되는 전형적인 프로그램 분배 프로세스를 설명하는 흐름도.
도 10은 도 3의 셋탑 터미널에 의해 구현되는 전형적인 복호화 처리를 설명하는 흐름도.
도면의 주요 부분에 대한 부호의 설명
110 : 분배 네트워크 200 : 헤드엔드 서버
210, 310 : 프로세서 220, 320 : 데이터 저장 디바이스
230, 330 : 통신 포트 240 : 마스터 키 매트릭스
300 : 셋탑 터미널 500 : 프로그램 데이터베이스
600 : 토픽 계층 700 : 인타이틀먼트 데이터베이스
800 : 인타이틀먼트 정보 분배 프로세스
900 : 프로그램 분배 프로세스 1000 : 복호화 프로세스
도 1은 도 2와 함께 이하에 더 기술된 헤드엔드 서버(200)와 같은 송신기를 이용하는 서비스 제공자로부터 하나 또는 그 이상의 분배 네트워크(110)를 통하여 도 3과 함께 이하에 더 기술된 셋탑 터미널(300)과 같은 셋탑 터미널(300-301)을 구비하는 하나 또는 그 이상의 고객에게 비디오, 오디오 및 데이터와 같은 암호화된 멀티미디어 정보를 송신하는 예시적인 네트워크 환경을 도시한다. 본 명세서에서 이용된 바와 같이, 셋탑 터미널은 예를 들면, 컴퓨터 구성 또는 원격 통신 디바이스를 포함하는, 암호 해독 키를 이용하여 송신된 멀티미디어 정보에 액세스하는 것을 제한하는 어떠한 메커니즘도 포함한다. 셋탑 터미널에 의해 실행되는 소프트웨어가 서비스 제공자에 의해 다운로드될 수 있다. 분배 네트워크(110)는 디지털 위성 서비스(DSS□SYMBOL 212\fSymbol□)와 같은 프로그래밍 내용의 분배를 위한 무선 방송 네트워크나 또는, 케이블 텔레비젼 네트워크(CATV), 공중 회선 교환 전화망(PSTN; Public Switched Telephone Network), 광 네트워크, 광대역 종합 정보 통신망(ISDN; integrated services digital network) 또는 인터넷과 같은 종래의 배선식 네트워크(wired network)일 수 있다.
본 발명의 특성에 따라, 셋탑 터미널(300)은 헤드엔드 서버(200)로부터 인타이틀먼트 정보를 간헐적으로 수신하며, 인타이틀먼트 정보는 빌링 주기와 같은 주어진 시간 간격 동안 고객에게 권한이 부여된 프로그램에 고객이 액세스할 수 있게 한다. 본 명세서에서 이용된 바와 같이, 패키지는 미리 정해진 프로그램 세트이며, 주어진 프로그램이 하나 또는 그 이상의 패키지에 속할 수 있다. 프로그램은 텔레비젼 에피소드(television episode) 또는 영화와 같은 특정 길이의 어떠한 연속 멀티미디어 송신일 수도 있다. 인타이틀먼트 정보는 통상의 기술을 가진 자에 의해 명백한 바와 같이, 어떠한 적절한 보안 단방향 또는 양방향의 프로토콜이라도 이용하여 헤드엔드 서버(200)로부터 셋탑 터미널(300)로 다운로드될 수 있다.
프로그램 키 및 프로그램 식별자
이하에 더 기술된 바와 같이, 송신된 프로그램 각각은 프로그램에 대해 유일할 수도 있는 프로그램 키 KP를 이용하여 헤드엔드 서버(200)에 의해 암호화된다. 적절한 암호화 및 보안 기술에 대한 상세한 검토를 위하여, 본 명세서에서 인용된 B. Schneier, Applied Cryptography(2d ed. 1997)를 참조하자. 헤드엔드 서버(200)는 또한 암호화된 프로그램을 송신할 뿐만 아니라, n 비트 프로그램 식별자 p를 셋탑 터미널(300)에 송신하며, n 비트 프로그램 식별자 p는 이하에 더 기술된 방식으로 프로그램을 암호 해독하는데 필요한 암호 해독 키를 유도해 내기 위하여, 저장된 인타이틀먼트 정보와 함께 셋탑 터미널(300)에 의해 이용될 수도 있다. 이하의 프로그램 식별자를 프로그램에 할당으로 명명된 부분에서 더 기술된 바와 같이, 프로그램 식별자 p는 임의로 선택되지는 않는다. 바람직한 일실시예에서, 프로그램 식별자 p는 예를 들면, MPEG-2 표준에서 한정된 ECM 필드에서 송신될 수 있는 32 비트 값으로 구성된다. 이러한 방식으로, 고객이 특정 프로그램에 대해 권한을 부여받을 경우, 셋탑 터미널(300)은 저장 및 수신된 정보로부터 프로그램 키 KP를 유도해 낼 수 있을 것이며, 그 후 암호화된 프로그램을 암호 해독하기 위하여 프로그램 키 KP를 이용할 수 있을 것이다.
본 발명의 다른 특징에 따라서, 송신된 프로그램을 암호화하는데 이용된 k 비트 프로그램 키 KP 각각은 규정된 세트의 k 비트 마스터 키 m1, . . . , mn의 선형 조합이며, 각각의 마스터 키 mi는 헤드엔드 서버(200)에 의해 k x n 매트릭스 M의 열에 저장되는 것이 바람직하다. 프로그램 키 KP의 비트 길이 k는 프로그램 식별자 p의 비트 길이 n보다 더 커야한다. 바람직한 일실시예에서, 프로그램 키 KP는 64 비트 또는 128 비트의 비트 길이를 갖는다. 따라서, 프로그램 키 KP는 마스터 키의 세트 M의 선형 조합으로, 다음의 수학식과 같다.
이러한 방식으로, 프로그램 식별자 p는 프로그램 키 KP를 생성할 때 마스터 키 매트릭스 M에서 어느 키가 이용되는가를 나타냄으로써 프로그램 키 마스크로서 역할을 한다. 특정 프로그램 식별자 p에서 비트 엔트리 i가 (1)로 세팅될 경우, 마스터 키 매트릭스 M으로부터의 대응 마스터 키 mi가 대응 프로그램에 대한 프로그램 키 KP를 생성할 때 이용될 것이다.
헤드엔드 서버(200)는 매트릭스 M에 대한 새로운 마스터 키 세트를 빌링 주기마다 한 번씩 생성하는 것이 바람직하다. 마스터 키 mi가 선형으로 독립적인 경우, 마스터 키 매트릭스 M은 임의로 생성되어, 생성된 프로그램 키 KP가 예기치 않게 0이 되지 않도록 할 수 있다. 달리 말하면, 어떤 마스터 키 mi도 0의 값을 가질 수 없거나 또는 다른 마스터 키 mi의 선형 조합일 수 없다. 종래의 많은 암호화 알고리즘은 프로그램 키 KP가 0일 때 암호화되지 않고 평문과 일치하는 암호문을 생성함을 알 수 있다. 따라서, 마스터 키 mi가 선형으로 독립적인 경우, 생성된 프로그램 키 KP는 우연히 0이 아닐 것이며, 프로그램은 프로그램에 할당된 프로그램 식별자 p가 예를 들면, 디렉토리 리스팅(directory listing) 또는 텔레비젼 네트워크 방송 동안 의도적으로 0으로 세트될 경우에만 평문 포맷으로 송신될 것이다. k가 n보다 크기 때문에 n개의 선형 독립 k 비트 마스터 키 mi를 항상 얻을 수 있음을 알 수 있다.
그러나, 어떤 응용을 위하여, 해커가 적절한 인타이틀먼트 없이 프로그램 p를 암호 해독하려고 시도하는 경우, 테스트되어야 하는 가능한 시행 암호 해독 회수를 줄이기 위해 이러한 지식을 이용할 수도 있기 때문에, 마스터 키 mi가 선형으로 독립적인 것은 바람직하지 않을 수도 있다. 이러한 경우, 부주의로 인하여 프로그램을 평문 포맷으로 송신할 약간의 가능성을 수용하는 것이 바람직할 것이다.
고객이 r 프로그램을 함께 포함하는 하나 또는 그 이상의 원하는 패키지를 구입한다. 프로그램을 암호화하는데 이용된 각각의 프로그램 키 KP가 마스터 키의 세트 M의 선형 조합이기 때문에, 일단 고객이 권한이 부여된 r 프로그램 각각에 대한 프로그램 키 KP를 획득하면, 고객은 2r 프로그램에 대한 프로그램 키 KP를 쉽게 유도해 낼 수도 있다. 따라서, r 프로그램에 대한 프로그램 키를 가짐으로써 (평문 프로그램에 대응하는 0인 프로그램 식별자 p를 구비하는 프로그램을 포함하는) 2r 프로그램의 프로그램 키를 유도해 낼 능력이 고객에게 부여되기 때문에, 시스템은 정보를 누출하는 것이라 할 수 있다. 달리 말하면, 고객이 r 프로그램을 구입할 때, 고객은 실제로 그 r 프로그램을 포함하는 프로그램의 최소 서브셋 U를 사실상 얻는다. 따라서, 본 발명의 또다른 특성에 따라, 고객이 얻을 수 있는 유일한 타입의 패키지는 프로그램 식별자의 선형 서브스페이스의 형태이다. 또한, 프로그램 키 KP가 마스터 키 M의 선형 조합이기 때문에, 주어진 패키지가 임의의 수의 프로그램을 가질 수 없다. 특히, 패키지가 n 이하의 몇몇 i에 대해 (2i-1)의 프로그램으로 구성되어야 한다. 물론, 패키지와 관련된 (2i-1) 프로그램 식별자 p 모두가 할당될 필요는 없다.
셋탑 터미널 인타이틀먼트 정보
따라서, 고객의 셋탑 터미널(300)은 서브스페이스 U에 속하는 어떠한 프로그램 p라도 암호 해독할 필요가 있으며, 다른 프로그램을 암호 해독할 필요는 없다. 전술한 바와 같이, 고객이 프로그램의 패키지를 구입할 때, 고객은 프로그램의 r 차원의 서브스페이스 U를 얻는다. 서브스페이스 U는 n x r 기저 매트릭스 B로 표시될 수 있으며, 기저 매트릭스 B의 열 b1, . . . , br은 서브스페이스 U를 채우고, 여기서 U는 B의 열의 모든 선형 조합의 세트이며, B는 차원 r로 이루어진다. 각각 프로그램 식별자 p에 의해 식별되는 프로그램의 서브스페이스 U를 암호 해독하기 위하여, 셋탑 터미널(300)은 마스터 키 매트릭스 M에서 유도된 마스터 키의 대응 서브셋을 필요로 한다. 따라서, 셋탑 터미널(300)에는 고객에게 권한이 부여된 마스터 키의 유도된 부분을 포함하는 고객 키 매트릭스 K가 제공된다. 고객 키 매트릭스 K는 프로그램의 고객의 서브스페이스 U를 나타내는 기저 매트릭스 B로 마스터 키 매트릭스 M을 승산함으로써 얻어질 수도 있으며, 고객 키 매트릭스 K는 다음과 같이 표시된다.
고객 키 매트릭스 K는 도 8과 함께 이하에 기술된 방식으로 헤드엔드 서버(200)에 의해 생성될 것이며, 예를 들면, 매 빌링 주기마다 한 번씩 저장을 위해 셋탑 터미널(300)에 다운로딩된다.
전술한 바와 같이, 헤드엔드 서버(200)는 암호화된 프로그램과 함께 프로그램 식별자 p를 송신할 것이다. 따라서, 프로그램 식별자 p가 주어지면, 셋탑 터미널(300)은 수신된 프로그램을 암호 해독하는데 이용된 프로그램 키 KP를 얻어야 한다. 전술한 바와 같이, 프로그램 키 KP는 수학식 1에 따른 마스터 키 M의 선형 조합이다. 물론, 셋탑 터미널(300)은 마스터 키 매트릭스 M에 액세스되지 않는다. 따라서, 프로그램 키 KP는 고객 키 매트릭스 K와 수신된 프로그램 식별자 p를 이용하여 간접적으로 얻어져야 한다.
수학식 1 및 수학식 2를 풀기 위하여, 프로그램 키 KP의 경우, 프로그램 식별자 p 및 기저 매트릭스 B 사이의 관계가 식별되어야 한다. B가 U에 대한 기저이고 프로그램 식별자 p는 U의 한 멤버이기 때문에, 프로그램 식별자 p는 기저 벡터의 선형 조합으로서 기록될 수 있다. 달리 말하면, r 차원의 벡터 x가 존재하며, 다음의 수학식과 같다.
이하에 기술된 바와 같이, 수학식 3은 r 차원의 벡터 x에 관하여 풀 수 있다. 따라서, 수학식 3을 수학식 1에 대입함으로써, 프로그램 키 KP가 다음의 수학식과 같이 표현될 수 있다.
마찬가지로, 수학식 2를 수학식 4에 대입함으로써, 프로그램 키 KP가 다음의 수학식과 같이 표현될 수 있다.
따라서, 저장된 고객 키 매트릭스 K가 주어지고, 이하에 기술된 방식으로 저장 및 수신된 정보로부터 r 차원의 벡터 x를 유도해 낼 경우, 셋탑 터미널(300)은 프로그램 키 KP를 계산할 수 있다.
전술한 바와 같이, 수학식 3은 r 차원의 벡터 x에 관하여 풀 수 있다. 도 4a는 수학식 3에 대응하는 일차 방정식 시스템(linear equation system)을 도시한다. 따라서, 저장된 기저 매트릭스 B와 수신된 프로그램 식별자 p가 주어진다면, 수학식 3은 r 차원의 벡터 x에 관하여 풀려야 한다. 서브스페이스 U가 모든 프로그램의 스페이스보다 적을 때마다, 차원 r은 n보다 적을 것이고, 수학식 3은 n 개의 수학식과 r 개의 변수를 이용하여 완전히 정의됨을 알 수 있다. 그러나, 프로그램 식별자 p가 서브스페이스 U의 멤버이기 때문에 수학식 3의 해법이 존재해야 한다.
기저 매트릭스 B가 규칙적인 r x r 서브매트릭스 B(를 형성하는 기저 매트릭스 B의 행 i1, . . . , ir로 한정되고 프로그램 식별자 p가 도 4a의 음영 부분에서 도시된 바와 같은 r 차원의 벡터 p(를 형성하는 p의 대응 엔트리로 한정될 경우, 더 적은 시스템에 대응하는 수학식 3은 다음의 수학식과 같이 표현될 수 있다.
따라서, x에 관하여 풀면, 수학식 6은 다음과 같이 표현될 수 있다.
여기서 (B()-1은 서브매트릭스 B(의 r x r 역이다. 역 매트릭스 (B()-1은 헤드엔드 서버(200)에 의해 매 빌링 주기 동안 한 번씩 셋탑 터미널(300)에 다운로딩될 수 있는 것이 바람직함을 알 수 있다. 또한, 기저 매트릭스 B로부터 역 매트릭스 (B()-1을 생성하는데 필요한 실행중인 행 색인 i1, . . . , ir은 또한, 수신된 프로그램 식별자 p로부터 r 차원의 벡터 p(를 생성하기 위하여 셋탑 터미널(300)이 필요로 할 수도 있다. 따라서, 실행중인 행 색인 i1, . . . , ir은 다른 인타이틀먼트 정보를 이용하여 헤드엔드 서버(200)에 의해 셋탑 터미널(300)에 다운로딩되는 것이 바람직하다.
따라서, 셋탑 터미널(300)은 저장된 역 매트릭스 (B()-1로부터, 그리고 수신된 프로그램 식별자 p로부터 r 차원의 벡터 p(를 유도하고, 저장된 실행중인 행 색인 i1, . . . , ir에 의해 표시되는 엔트리를 조사함으로써, r 차원의 벡터 x를 계산할 수 있다. 그 후, 셋탑 터미널(300)은 수학식 5에 따라, 저장된 고객 키 매트릭스 K 및 계산된 r 차원의 벡터 x를 이용하여, 프로그램 키 KP를 계산할 수 있다.
이하의 선택적 검사 매트릭스로 명명된 부분에서 기술된 바람직한 일실시예에서, 셋탑 터미널(300)은 또한 전체 암호 해독 절차를 거치지 않고서, 수신된 프로그램이 권한이 부여된 서브스페이스 U에 있는가의 여부를 셋탑 터미널(300)로 하여금 앞서 결정할 수 있게 하는 인타이틀먼트 정보의 일부로서 검사 매트릭스 C를 수신한다. 또한, 검사 매트릭스 C는 셋탑 터미널(300)로 하여금 송신 에러로 인하여 암호 해독되지 않은 프로그램과 서브스페이스 U의 멤버가 아니기 때문에 암호 해독되지 않은 프로그램을 명확히 구분할 수 있게 한다. 또한, 셋탑 터미널(300)이 수신된 프로그램이 서브스페이스 U의 멤버가 아님을 결정할 경우, 셋탑 터미널(300)은 고객에게 현재의 프로그램을 시청할 권한이 부여되지 않는다는 메시지를 표시할 수 있다.
시스템 구성 요소
도 2는 예시적인 헤드엔드 서버(200)의 구성을 도시하는 블럭도이다. 헤드엔드는 텔레비젼 네트워크, 케이블 조작자, 디지털 위성 서비스 조작자 또는 암호화된 프로그래밍 내용을 송신하는 어떠한 서비스 제공자와도 관련될 수도 있다. 헤드엔드 서버(200)는 예를 들면, 본 명세서에서 본 발명의 기능과 동작을 실행하도록 수정되고 IBM사에 의해 제조된 RS 6000 서버로서 구현될 수도 있다. 헤드엔드 서버(200)는 프로세서(210)와, 가령 데이터 저장 디바이스(220)와 같은 관련 메모리를 포함하는 것이 바람직하다. 프로세서(210)는 단일 프로세서나 또는 병렬로 동작하는 다수의 프로세서로서 구현될 수도 있다. 데이터 저장 디바이스(220) 및/또는 판독 전용 메모리(ROM)는 프로세서(210)가 검색하고 해석하여 실행하도록 동작할 수 있는 하나 또는 그 이상의 명령을 저장하도록 동작할 수 있다. 프로세서(210)는 알려진 방식으로 제어 장치, 산술 논리 연산 장치(ALU; arithmetic logic unit) 및 가령 예를 들면, 명령 캐시 또는 다수의 레지스터와 같은 국부 메모리 저장 디바이스를 포함하는 것이 바람직하다. 제어 장치는 데이터 저장 디바이스(220) 또는 ROM으로부터의 명령을 검색하도록 동작할 수 있다. ALU는 명령을 실행하는데 필요한 다수의 동작을 실행하도록 동작할 수 있다. 국부 메모리 저장 디바이스는 일시적 결과와 제어 정보를 저장하기 위해 이용된 고속 저장 장치를 제공하도록 동작할 수 있다.
전술한 바와 같이, 데이터 저장 디바이스(220)는 예를 들면, 매 빌링 주기마다 한 번 갱신될 수 있는 마스터 키 매트릭스 M을 포함하는 것이 바람직하다. 또한, 도 5 및 도 6과 함께 이하에 더 기술된 바와 같이, 데이터 저장 디바이스(220)는 프로그램 데이터베이스(500) 및 토픽 계층(600)을 포함하는 것이 바람직하다. 프로그램 데이터베이스(500)는 프로그램 식별자 p와, 각각의 프로그램과 대응하는 관련된 패키지를 나타내는 것이 바람직하다. 도 6에 도시된 대표적 토픽 계층(600)은 관련된 내용을 갖는 프로그램이 낮은 차원의 선형 서브스페이스에 맞도록 허용하는 방식으로 프로그램을 구성하도록 헤드엔드 서버(200)에 의해 이용되는 것이 바람직하다.
또한, 도 8 및 도 9와 함께 이하에 더 기술된 바와 같이, 데이터 저장 디바이스(220)는 인타이틀먼트 정보 분배 프로세스(800) 및 프로그램 분배 프로세스(900)를 포함하는 것이 바람직하다. 일반적으로, 인타이틀먼트 정보 분배 프로세스(800)는 각각의 고객에 의해 권한이 부여된 프로그램에 액세스하는데 필요한 인타이틀먼트 정보를 생성 및 분배한다. 또한, 프로그램 분배 프로세스(900)는 프로그램 식별자 p와 함께 프로그램을 암호화하여 송신하기 위하여, 프로그램과 마스터 키 세트 M에 할당된 프로그램 식별자 p를 기반으로 하여 프로그램 키 KP를 유도해 내는 것이 바람직하다.
통신 포트(230)는 헤드엔드 서버(200)를 분배 네트워크(110)에 접속함으로써, 헤드엔드 서버(200)를 도 1에 도시된 셋탑 터미널(300)과 같은 각각의 접속된 수신기에 연결한다.
도 3은 예시적인 셋탑 터미널(300)의 구조를 도시하는 블럭도이다. 셋탑 터미널(300)은 예를 들면, 본 발명의 기능과 동작을 실행하도록 본 명세서에서 수정되고 General Instruments사로부터 상업적으로 구입할 수 있는 셋탑 터미널과 같은 텔레비젼과 관련된 셋탑 터미널(STT; a set-top terminal)로서 구현될 수도 있다. 셋탑 터미널(300)은 도 2와 함께 위에서 기술된 하드웨어와 유사한 방식으로 동작하는 통신 포트(330) 뿐만 아니라, 프로세서(310)와, 데이터 저장 디바이스(320)와 같은 관련 메모리도 포함하는 것이 바람직하다.
도 7과 함께 이하에 더 기술된 바와 같이, 데이터 저장 디바이스(320)는 인타이틀먼트 데이터베이스(700)를 포함하는 것이 바람직하다. 인타이틀먼트 데이터베이스(700)는 데이터 저장 디바이스(320)의 보안 부분에 저장되는 것이 바람직하다. 인타이틀먼트 데이터베이스(700)는 고객 키 매트릭스 K, 역 매트릭스 (B()-1, 실행중인 행 색인 i1, . . . , ir 및 선택적으로 검사 매트릭스 C를 포함하는 것이 바람직하다. 또한, 도 10과 함께 이하에 더 기술된 바와 같이, 데이터 저장 디바이스(320)는 복호화 프로세스(1000)를 포함하는 것이 바람직하다. 일반적으로, 복호화 프로세스(1000)는 프로그램 키 KP를 유도해 내기 위하여 수신된 프로그램 식별자 p와 저장된 인타이틀먼트 정보(700)를 이용하고 프로그램을 암호 해독하기 위하여 프로그램 키 KP를 이용함으로써 고객에게 권한이 부여된 프로그램을 암호 해독한다.
도 5는 예를 들면, 프로그램이 속하는 패키지와 대응 프로그램 식별자 p를 포함하여, 주어진 빌링 주기 동안 헤드엔드 서버(200)에 의해 송신될 각각의 프로그램 p에 관한 정보를 저장하는 것이 바람직한 전형적인 프로그램 데이터베이스(500)를 도시한다. 프로그램 데이터베이스(500)는 각각 상이한 프로그램과 관련된 가령 레코드(505-520)와 같은 다수의 레코드를 유지한다. 필드(525)에서 프로그램 명칭에 의해 식별되는 각각의 프로그램의 경우, 프로그램 데이터베이스(500)는 필드(530)에서 프로그램이 속하는 대응 패키지의 표시와 필드(535)에서 대응 프로그램 식별자 p를 포함한다.
도 7은 고객 키 매트릭스 K, 역 매트릭스 (B()-1, 실행중인 행 색인 i1, . . . , ir 그리고 선택적으로 헤드엔드 서버(200)로부터 셋탑 터미널(300)에 의해 수신된 검사 매트릭스 C를 저장하는 것이 바람직한 전형적인 인타이틀먼트 데이터베이스(700)를 도시한다.
프로그램 식별자를 프로그램에 할당
전술한 바와 같이, 고객이 본 발명에 따른 프로그램의 패키지를 구입할 때, 고객은 프로그램의 서브스페이스 U를 얻는다. 따라서, 본 발명의 효용을 극대화하기 위하여, 관련 내용과 함께 프로그램에 할당된 프로그램 식별자 p가 낮은 차원의 선형 서브스페이스에 맞도록 보장하기 위하여 주의하여야 한다. 따라서, 프로그램 식별자 p는 임의로 선택되지 않는 것이 바람직하다. 예를 들면, 주어진 고객이 모든 스포츠 프로그램으로 구성된 패키지를 구입하기를 원할 경우, 프로그램 식별자 p가 무작위로 할당된다면 고객은 모든 프로그램에 액세스 할 수 있을 것이다. 이는 성인 내용과 같은 원하지 않는 프로그래밍을 고객에게 제공할 가능성이 있을 뿐만 아니라, 그러한 패키지의 비싼 원가로 인하여 바람직하지 않을 수도 있다.
일반적으로, 프로그램은 주제, 연령, 언어, 등급 또는 소스와 같은 속성에 따라 도 6에 도시된 토픽 계층(600)에서 구성될 수 있다. 토픽 계층(600)에서 상위 레벨은 개별 프로그램이 그 레벨에 이를 때까지, 한 레벨씩 세분되는 매우 넓은 토픽으로 구성된다. 계층(600)은 균형을 이룰 필요는 없다. 달리 말하면, 몇몇 토픽은 많은 서브토픽을 구비할 수도 있는 반면, 다른 토픽은 서브토픽을 거의 구비하지 않을 수도 있다. 따라서, 프로그램은 여러 토픽 계층 깊이에 배치될 수 있다.
프로그램 식별자 p는 프리픽스 마스크(prefix masks)의 개념을 이용하여 토픽 계층(600)에서 프로그램에 할당된다. 동일한 브랜치(branch)에 배치된 프로그램의 프로그램 식별자 p는 동일한 프리픽스(최상위 비트)를 공유하도록 할당된다. 도 6은 한가지 그러한 대표적 토픽 계층(600)을 도시한다. 프리픽스 마스크는 토픽을 뿌리(root)에서부터 잎(leaves)까지 레이블링(labeling)함으로써 토픽 계층(600)에서 노드에 반복적으로 할당된다. 모든 토픽의 프리픽스 마스크는 페어런트(parent)의 마스크와 연관된 그 자신의 레이블(label)이다. 도 6에 도시된 십진수는 마스크 값을 나타낸다. 또한, 토픽 계층의 각각의 레벨에 대한 마스크 길이는 도 6에서 꺾쇠 괄호에 표시된다. 예를 들면, 서브토픽 프로 농구 하에서 프로그램에 대한 프리픽스 마스크는 10 00010 01이다.
그러나, 10 00010 01과 동일한 프리픽스 마스크와 함께 프로그램 식별자 p를 구비하는 프로 농구 프로그램의 수집은 선형 서브스페이스가 아님을 알 수 있다. 선형 서브스페이스를 구비하기 위하여, 00 00000 00과 동일한 프리픽스 마스크가 포함되어야 한다. 따라서, 고객은 또한, 프리픽스 마스크 00 00000 00과 함께 프로그램 식별자 p를 구비하는 모든 보너스 프로그램에 액세스할 수 있다. 프리픽스 마스크가 l 비트 길이일 경우, 서브스페이스의 차원 r은 n-l+1임을 알아야 한다. 인타이틀먼트 정보(700)가 고객에 의해 선택된 프로그램의 패키지를 기반으로 하여 토픽 계층(600)으로부터 인타이틀먼트 정보 분배 프로세스(800)에 의해 생성되는 방식은 도 8a와 함께 이하에 기술된다.
선택된 프리픽스 마스크로부터 기저 매트릭스를 계산
전술한 바와 같이, 헤드엔드 서버(200)는 도 8a에 도시된 인타이틀먼트 정보 분배 프로세스(800)를 실행하여, 권한이 부여된 프로그램에 액세스하기 위하여 각각의 고객에 의해 요구되는 인타이틀먼트 정보(700)를 생성 및 분배하는 것이 바람직하다. 전술한 바와 같이, 인타이틀먼트 정보(700)는 고객 키 매트릭스 K, 역 매트릭스 (B()-1, 실행중인 행 색인 i1, . . . , ir 그리고 선택적으로 검사 매트릭스 C로 구성되는 것이 바람직하다. 인타이틀먼트 정보(700)의 각각의 구성 요소는 기저 매트릭스 B로부터 유도된다. 특히, 고객 키 매트릭스 K는 수학식 2에 따라 마스터 키 매트릭스 M과 기저 매트릭스 B를 이용하여 얻어지고, 역 매트릭스 (B()-1과 실행중인 행 색인 ir, . . . , ir은 기저 매트릭스 B에서 직접 얻어지며, 검사 매트릭스 C는 이하에 기술된 수학식 13에 따라 기저 매트릭스 B로부터 얻어진다. 따라서 인타이틀먼트 정보 분배 프로세스(800)는 토픽 계층(600)으로부터의 하나 또는 그 이상의 프로그램의 토픽으로 함께 구성되고 고객이 선택하는 패키지를 기반으로 하여, 기저 매트릭스 B를 먼저 계산해야 한다.
따라서, 초기에 단계(810) 동안, 인타이틀먼트 정보 분배 프로세스(800)는 고객에 의해 선택된 프로그램을 포함하는 프로그램의 하나 또는 그 이상의 토픽을 식별한다. 예를 들면, 고객이 토픽 계층(600)에서 특정 토픽으로 구성된 패키지를 선택할 경우, 선택된 프로그램은 토픽에 할당된 동일한 프리픽스 마스크를 공유한다. 전술한 바와 같이, l 비트 프리픽스 마스크를 공유하는 특정 토픽에서 프로그램의 수집은 선형 서브스페이스가 아니다. 선형 서브스페이스를 구비하기 위하여, 0인 l 비트 길이의 프리픽스 마스크가 포함되어야 한다. 따라서, 고객은 0인 l 비트 프리픽스 마스크와 함께 프로그램 식별자 p를 구비하는 모든 보너스 프로그램에 액세스할 수 있다. 이러한 방식으로, 고객은 보너스 확대 패키지에 액세스할 수 있다.
따라서, 일단 선택된 토픽이 식별되면, 인타이틀먼트 정보 분배 프로세스(800)는 단계(820) 동안 각각의 토픽에 대한 프리픽스 마스크 (와, 각각의 프리픽스 마스크의 길이 l을 식별한다. 각각의 0이 아닌 m 비트 마스크의 경우, 기저 벡터의 대응 세트 B(는 다음의 수학식에 따라 단계(830) 동안 계산된다.
여기서, el+1 . . . en은 표준 기저를 나타내고, 여기서 ei는 위치 i에서 l 비트를 가지며, 인에이블링 벡터 z는 프리픽스로서 마스크 (를 구비하고, (n-l) 0비트가 뒤따른다. 프로 농구 토픽에 대해 단계(830) 동안 계산된 기저 벡터의 세트 B(는 도 8b에 도시된다.
선택된 토픽 모두에 대한 기저 벡터의 복합 세트 B는 선형 수학식의 세트를 이용하여 기저 벡터의 복합 세트 B에서 이미 모든 벡터와 관계없는 기저 벡터의 개별 세트의 합집합 B(으로부터 다음 벡터를 반복적으로 포함함으로써 단계(840) 동안 생성된다. 이러한 방식으로 생성된 기저 벡터의 복합 세트 B는 요구된 토픽에 속하는 프로그램 모두에 명확히 이른다.
기저 벡터의 복합 세트 B는 각각의 벡터 z, el+1, . . . , en을 그 열로서 이용하여 단계(850) 동안 대응 (n-l+1) 기저 매트릭스 B로 변환된다. 그 후, 단계(860) 동안, 인타이틀먼트 정보 분배 프로세스(800)는 고객 키 매트릭스 K, 역 매트릭스 (B()-1, 실행중인 행 색인 i1, . . . , ir, 그리고 선택적으로 고객이 권한이 부여된 프로그램을 암호 해독하는데 필요한 검사 매트릭스 C를 포함하는 인타이틀먼트 정보(700)를 생성한다. 끝으로, 생성된 인타이틀먼트 정보는 프로그램 제어가 단계(880) 동안 끝나기 전에 단계(870) 동안 헤드엔드 서버(200)에 의해 셋탑 터미널(300)로 다운로딩된다.
일반적으로, 선형 서브스페이스의 합집합은 선형 서브스페이스가 아님을 알 수 있다. 따라서, 기저 벡터의 계산된 복합 세트 B는 토픽 계층의 다른 요구되지 않은 부분 뿐만 아니라, 요구된 토픽 모두와 보너스 계층의 일부를 포함하는 선형 서브스페이스의 기저이다. 따라서, 시스템은 모든 부작용에 의거하여 사실상 액세스할 수 있는 프로그램의 서브스페이스를 계산하는 것이 바람직하다.
전술한 바와 같이, 헤드엔드 서버(200)는 프로그램 식별자 p와 함께 프로그램을 암호화해 송신하기 위하여, 프로그램과 마스터 키의 세트 M에 할당된 프로그램 식별자 p를 기반으로 하여 프로그램 키 KP를 유도해 내기 위하여 도 9에 도시된 프로그램 분배 프로세스(900)를 실행하는 것이 바람직하다. 실제 송신 단계와는 다른 프로그램 분배 프로세스(900)는 오프라인(offline)으로 실행되거나 또는 실시간에 실행될 수 있다. 도 9에 도시된 바와 같이, 프로그램 분배 프로세스(900)는 송신될 프로그램을 식별함으로써 단계(910) 동안 본 발명의 원리를 구현하는 프로세스를 시작한다.
그 후, 프로그램 분배 프로세스(900)는 단계(920) 동안 프로그램 데이터베이스(500)로부터 프로그램에 대응하는 프로그램 식별자 p를 검색하고, 수학식 1에 따라 단계(930) 동안 프로그램에 대응하는 프로그램 키 KP를 계산한다. 프로그램은 앞선 단계 동안 계산된 프로그램 키 KP에 의거하여 단계(940) 동안 암호화될 것이다. 끝으로, 프로그램 분배 프로세스(900)는 프로그램 제어가 단계(960) 동안 종료하기 전에 단계(950) 동안 프로그램 식별자 p와 함께 암호화된 프로그램을 송신할 것이다. 프로그램 식별자 p는 프로그램 정보의 송신을 통하여 주기적으로 인터리빙된 상태로 송신되어, 고객이 프로그램 동안 채널을 변경할 수 있고 프로그램을 암호 해독하는데 필요한 프로그램 키 KP를 유도해 낼 수 있는 것이 바람직하다. 대안적인 실시예에서, 프로그램 식별자 p는 가령 바커 채널(Barker channel)과 같은 별개의 제어 채널상에 연속적으로 송신될 수 있다.
전술한 바와 같이, 셋탑 터미널(300)은 도 10에 도시된 복호화 프로세스(1000)를 실행하여, 프로그램 키 KP를 유도해 내기 위하여 수신된 프로그램 식별자 p와 저장된 인타이틀먼트 정보(700)를 이용하고 프로그램을 암호 해독하기 위하여 프로그램 키 KP를 이용함으로써 고객에게 권한이 부여된 프로그램을 암호 해독한다. 도 10에 도시된 바와 같이, 복호화 프로세스(1000)는 특정 채널로 돌리기 위한 고객 명령을 수신하자마자 단계(1010) 동안 본 발명의 원리를 구현하는 프로세스를 시작한다.
그 후, 셋탑 터미널(300)은 암호화된 프로그램과 송신된 프로그램 식별자 p를 포함하여 단계(1020) 동안 적절한 신호를 수신할 것이다. 복호화 프로세스(1000)는 그 다음에 단계(1030) 동안 인타이틀먼트 데이터베이스(700)로부터 저장된 인타이틀먼트 정보를 검색한다. 실행중인 색인은 단계(1040) 동안 이용되어, 수신된 프로그램 식별자 p로부터 p'을 생성할 것이다. 벡터 x는 수학식 7에 따라서 단계(1050) 동안 계산되고, 프로그램 키 KP는 수학식 5에 따라서 단계(1060) 동안 계산된다.
끝으로, 프로그램은 프로그램 제어가 단계(1080) 동안 종료하기 전에 단계(1070) 동안 유도된 프로그램 키 KP를 이용하여 암호 해독된다. 수신된 프로그램이 권한이 부여된 서브스페이스 U의 일부가 아닐 경우, 단계(1050)에 대한 해법이 존재하지 않으며, 단계(1050) 동안 계산된 x 벡터는 유효한 해법이 아님을 알 수 있다. 복호화 프로세스(1000)는, 수신된 프로그램용으로는 정확하지 않지만 고객의 서브스페이스 U에서 다른 프로그램에 대한 프로그램 키 KP와 사실상 대응하는 프로그램 키 KP를 생성하므로, 고객에게 권한이 부여되지 않은 프로그램 키 KP를 생성하지 않게 된다.
복호화 프로세스(1000)는 암호 해독 키를 유도하고 요구된 채널에 대해 고객에게 권한이 부여되는가의 여부를 결정하도록 시도하기 전에, 고객이 특정 채널을 요구하도록 대기하거나, 또는 데이터 저장 디바이스(320)에 저장하기 위한 암호 해독 키를 유도해 내고 고객의 인타이틀먼트를 결정하기 위하여, 송신된 프로그램 식별자 p를 얻도록 모든 채널을 교번적으로 주기적으로 주사할 수 있다.
대안의 인타이틀먼트 정보
대안적인 구현에서, 헤드엔드 서버(200)는 인타이틀먼트 정보를 셋탑 터미널(300)에 단일 매트릭스 D의 형태로 제공하며, 인타이틀먼트 정보는 수정된 기저 매트릭스 B((를 도입함으로써 고객 키 매트릭스 K, 역 매트릭스 (B()-1 및 실행중인 행 색인 i1, . . . , ir을 결합한다. 도 4b에 도시된 매트릭스 B((는 r x n 매트릭스인 것으로 정의되며, 이 매트릭스의 실행중인 색인 열 i1, . . . , ir은 역 매트릭스 (B()-1의 열을 포함하고, 모든 다른 위치에 0을 포함한다. B((의 0이 아닌 위치와 p에서 대응 엔트리는 도 4b에서 음영으로 표시된다. 이 대안의 구현에서, 매트릭스 D는 다음과 같이 정의된다.
또한, 벡터 x는 다음과 같이 표현될 수 있다.
매트릭스 D는 프로그램 키 KP를 계산하기 위하여 복호화 프로세스(1000)에 의해 요구되는 유일한 인타이틀먼트 정보이다. 매트릭스 D를 생성하기 위하여, 헤드엔드 서버(200)는 고객에 의해 선택된 패키지를 기반으로 한 기저 매트릭스 B를 이용하여 역 매트릭스 (B()-1을 계산하고, 역 매트릭스를 확대하여 B((를 형성하며, 수학식 9에 따라 마스터 키 매트릭스 M을 이용한다.
수학식 10을 수학식 4에 대입함으로써 프로그램 키 KP는 다음과 같이 표현될 수 있다.
단계(1060) 동안 복호화 프로세스(1000)에 의해 실행되는 프로그램 키 KP 계산은 수학식 9를 이용하여 다음과 같이 더 단순화될 수 있다.
선택적 검사 매트릭스
전술한 바와 같이, 셋탑 터미널(300)은 전체 복호화 프로세스(1000)를 거치지 않고서도, 수신된 프로그램이 권한이 부여된 서브스페이스 U에 있는가의 여부를 셋탑 터미널(300)이 앞서 결정할 수 있도록 하기 위하여 인타이틀먼트 정보(700)의 일부로서 검사 매트릭스 C를 선택적으로 수신한다. 또한, 검사 매트릭스 C는 셋탑 터미널(300)로 하여금 송신 에러로 인하여 암호 해독되지 않는 프로그램과 서브스페이스 U의 멤버가 아니기 때문에 암호 해독되지 않는 프로그램을 명확히 구별할 수 있게 한다. 또한, 셋탑 터미널(300)이 수신된 프로그램이 서브스페이스 U의 멤버가 아님을 결정할 경우, 셋탑 터미널(300)은 메시지를 표시하거나 또는, 고객에게 현재의 프로그램을 시청하도록 권한이 부여되지 않음을 나타내는 다른 피드백을 제공할 수 있다. n x n 검사 매트릭스 C는 다음과 같이 정의된다.
여기서 I는 n 차원의 단위 매트릭스이다.
따라서, 프로그램 식별자 p를 구비하는 주어진 수신 프로그램은 Cp = 0일 경우에만 고객의 서브스페이스 U의 멤버이다. 고객의 권한이 부여된 서브스페이스 U가 모든 프로그램의 세트일 경우, 어떠한 기저 매트릭스라도 그 자체로서 n 차원의 규칙적인 매트릭스이므로, B(( = B-1이고 BB(( = I임을 알 수 있다. 따라서, 검사 매트릭스 C는 0이 되고, 상기 테스트는 항상 성공한다.
본 명세서에서 도시되고 기술된 실시예 및 변경은 단지 본 발명의 원리를 예시하는 것이며, 본 발명의 영역과 정신을 벗어나지 않고서도, 당업자에 의해 여러 가지 수정이 구현될 수 있음을 알아야 한다.
본 발명에 따른 암호화된 프로그램 송신 및 수신 방법, 복호화 방법 및 제조 물품에 의하면, 프로그램을 암호 해독하는데 필요한 암호 해독 키를 유도해 내기 위하여 저장된 인타이틀먼트 정보와 더불어, 셋탑 터미널에 의해 이용되는 프로그램 식별자와 암호화된 프로그램을 함께 송신하는 시스템이 제공된다.

Claims (52)

  1. 최종 사용자에게 제한적으로 액세스할 수 있는 프로그램을 송신하는 방법에 있어서,
    ① 프로그램 식별자를 상기 프로그램에 할당하는 단계와,
    ② 복수의 마스터 키(master keys)를 규정하는 단계와,
    ③ 프로그램 키―상기 프로그램 키는 상기 마스터 키의 선형 조합임―를 이용하여 상기 프로그램을 암호화하는 단계와,
    ④ 상기 프로그램 식별자와 함께 상기 암호화된 프로그램을 상기 최종 사용자에게 송신하는 단계
    를 포함하는 프로그램 송신 방법.
  2. 제 1 항에 있어서,
    상기 프로그램은 상기 최종 사용자에 의해 획득된 프로그램의 선형 서브스페이스의(linear subspace) 일부인 프로그램 송신 방법.
  3. 제 1 항에 있어서,
    상기 프로그램은 관련된 내용을 갖는 프로그램이 낮은 차원의 선형 서브스페이스에 맞게 하는 방식으로 구성되는 프로그램 송신 방법.
  4. 제 1 항에 있어서,
    상기 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 한 상기 마스터 키로부터 유도된 인타이틀먼트 정보(entitlement information)를 상기 최종 사용자에게 제공하는 단계를 더 포함하는 프로그램 송신 방법.
  5. 제 4 항에 있어서,
    상기 인타이틀먼트 정보는 상기 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 한 상기 마스터 키로부터 유도된 키의 세트를 포함하는 프로그램 송신 방법.
  6. 제 4 항에 있어서,
    상기 인타이틀먼트 정보는 상기 최종 사용자에 의해 획득된 프로그램의 선형 서브스페이스를 나타내는 기저 매트릭스(basis matrix)를 포함하는 프로그램 송신 방법.
  7. 제 4 항에 있어서,
    상기 최종 사용자는 상기 저장된 인타이틀먼트 정보로부터 상기 프로그램 키를 유도해 내기 위하여 상기 수신된 프로그램 식별자를 이용하는 프로그램 송신 방법.
  8. 제 1 항에 있어서,
    상기 복수의 마스터 키는 선형으로 독립적인 프로그램 송신 방법.
  9. 제 1 항에 있어서,
    상기 프로그램에 대한 상기 프로그램 키는 상기 복수의 마스터 키를 상기 프로그램 식별자로 승산함으로써 획득되는 프로그램 송신 방법.
  10. 제 1 항에 있어서,
    상기 프로그램 식별자는 상기 암호화된 프로그램의 송신에 의해 인터리빙되는 프로그램 송신 방법.
  11. 제 1 항에 있어서,
    상기 프로그램 식별자는 제어 채널상에서 송신되는 프로그램 송신 방법.
  12. 제 1 항에 있어서,
    상기 최종 사용자에게 상기 프로그램에 대해 권한이 부여되는가의 여부를 상기 최종 사용자로 하여금 결정할 수 있게 하는 검사 매트릭스를 상기 최종 사용자에게 제공하는 단계를 더 포함하는 프로그램 송신 방법.
  13. 복수의 최종 사용자에게 프로그램을 송신하는 방법에 있어서,
    ① 프로그램 키를 이용하여 상기 프로그램을 암호화하는 단계―상기 프로그램은 프로그램 식별자를 구비하며, 상기 프로그램 키는 복수의 마스터 키의 선형 조합임―와,
    ② 상기 프로그램 식별자와 함께 상기 암호화된 프로그램―상기 프로그램은 상기 최종 사용자에 의해 획득된 프로그램의 선형 서브스페이스의 일부임―을 상기 최종 사용자에게 송신하는 단계
    를 포함하는 프로그램 송신 방법.
  14. 제 13 항에 있어서,
    상기 프로그램은 관련 내용을 갖는 프로그램이 낮은 차원의 선형 서브스페이스에 맞게 하는 방식으로 구성되는 프로그램 송신 방법.
  15. 제 13 항에 있어서,
    상기 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 한 상기 마스터 키로부터 유도된 인타이틀먼트 정보를 상기 최종 사용자에게 제공하는 단계를 더 포함하는 프로그램 송신 방법.
  16. 제 15 항에 있어서,
    상기 인타이틀먼트 정보는 상기 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 한 상기 마스터 키로부터 유도된 키의 세트를 포함하는 프로그램 송신 방법.
  17. 제 15 항에 있어서,
    상기 인타이틀먼트 정보는 상기 최종 사용자에 의해 획득된 프로그램의 선형 서브스페이스를 나타내는 기저 매트릭스를 포함하는 프로그램 송신 방법.
  18. 제 15 항에 있어서,
    상기 최종 사용자는 상기 저장된 인타이틀먼트 정보로부터 상기 프로그램 키를 유도해 내기 위하여 상기 수신된 프로그램 식별자를 이용하는 프로그램 송신 방법.
  19. 제 13 항에 있어서,
    상기 복수의 마스터 키는 선형으로 독립적인 프로그램 송신 방법.
  20. 제 13 항에 있어서,
    상기 프로그램의 상기 프로그램 키는 상기 복수의 마스터 키를 상기 프로그램 식별자로 승산함으로써 획득되는 프로그램 송신 방법.
  21. 제 13 항에 있어서,
    상기 최종 사용자에게 상기 프로그램에 대해 권한이 부여되는가의 여부를 상기 최종 사용자가 결정할 수 있게 하는 검사 매트릭스를 상기 최종 사용자에게 제공하는 단계를 더 포함하는 프로그램 송신 방법.
  22. 프로그램의 적어도 하나의 패키지와 관련된 프로그램을 복수의 최종 사용자에게 송신하는 방법에 있어서,
    ① 상기 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 하여 인타이틀먼트 정보를 상기 최종 사용자에게 제공하는 단계와,
    ② 프로그램 키를 이용하여 상기 프로그램을 암호화하는 단계―상기 프로그램은 프로그램 식별자를 구비하고, 상기 프로그램 키는 복수의 마스터 키의 선형 조합임―와,
    ③ 상기 암호화된 프로그램과 함께 상기 프로그램 식별자를 상기 최종 사용자―상기 최종 사용자에게 상기 프로그램에 대한 권한이 부여될 경우 상기 최종 사용자는 상기 저장된 인타이틀먼트 정보로부터 상기 프로그램 키를 유도해 냄―에게 송신하는 단계
    를 포함하는 프로그램 송신 방법.
  23. 제 22 항에 있어서,
    상기 프로그램은 상기 최종 사용자에 의해 획득된 프로그램의 선형 스페이스의 일부인 프로그램 송신 방법.
  24. 제 22 항에 있어서,
    상기 프로그램은 관련 내용을 갖는 프로그램이 낮은 차원의 선형 서브스페이스에 맞게 하는 방식으로 구성되는 프로그램 송신 방법.
  25. 제 22 항에 있어서,
    상기 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 한 상기 마스터 키로부터 유도된 인타이틀먼트 정보를 상기 최종 사용자에게 제공하는 단계를 더 포함하는 프로그램 송신 방법.
  26. 제 25 항에 있어서,
    상기 인타이틀먼트 정보는 상기 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 한 상기 마스터 키로부터 유도된 키의 세트를 포함하는 프로그램 송신 방법.
  27. 제 25 항에 있어서,
    상기 인타이틀먼트 정보는 상기 최종 사용자에 의해 획득된 프로그램의 선형 서브스페이스를 나타내는 기저 매트릭스를 포함하는 프로그램 송신 방법.
  28. 제 25 항에 있어서,
    상기 최종 사용자는 상기 저장된 인타이틀먼트 정보로부터 상기 프로그램 키를 유도해 내기 위하여 상기 수신된 프로그램 식별자를 이용하는 프로그램 송신 방법.
  29. 제 22 항에 있어서,
    상기 복수의 마스터 키는 선형으로 독립적인 프로그램 송신 방법.
  30. 제 22 항에 있어서,
    상기 프로그램에 대한 상기 프로그램 키는 상기 복수의 마스터 키를 상기 프로그램 식별자로 승산함으로써 획득되는 프로그램 송신 방법.
  31. 제 22 항에 있어서,
    상기 최종 사용자에게 상기 프로그램에 대한 권한이 부여되는가의 여부를 상기 최종 사용자로 하여금 결정할 수 있게 하는 검사 매트릭스를 상기 최종 사용자에게 제공하는 단계를 더 포함하는 프로그램 송신 방법.
  32. 암호화된 프로그램을 복호화 하는 방법에 있어서,
    ① 상기 프로그램의 제공자로부터 인타이틀먼트 정보―상기 인타이틀먼트 정보는 상기 고객에 의해 획득된 프로그램의 세트를 기반으로 함―를 수신하는 단계와,
    ② 프로그램 식별자와 함께 상기 암호화된 프로그램―상기 암호화된 프로그램은 프로그램 키를 이용하여 암호화되고, 상기 프로그램 키는 마스터 키의 선형 조합임―을 수신하는 단계와,
    ③ 상기 프로그램 식별자와 상기 저장된 인타이틀먼트 정보로부터 상기 프로그램 키를 유도해 내는 단계와,
    ④ 상기 프로그램 키를 이용하여 상기 암호화된 프로그램을 암호 해독하는 단계
    를 포함하는 프로그램 복호화 방법.
  33. 제 32 항에 있어서,
    상기 프로그램은 최종 사용자에 의해 획득된 프로그램의 선형 서브스페이스의 일부인 프로그램 복호화 방법.
  34. 제 32 항에 있어서,
    상기 인타이틀먼트 정보는 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 한 상기 마스터 키로부터 유도된 키의 세트를 포함하는 프로그램 복호화 방법.
  35. 제 32 항에 있어서,
    상기 인타이틀먼트 정보는 최종 사용자에 의해 획득된 프로그램의 선형 서브스페이스를 나타내는 기저 매트릭스를 포함하는 프로그램 복호화 방법.
  36. 제 32 항에 있어서,
    상기 복수의 마스터 키는 선형으로 독립적인 프로그램 복호화 방법.
  37. 제 32 항에 있어서,
    상기 프로그램 식별자는 상기 암호화된 프로그램의 송신에 의해 인터리빙되는 프로그램 복호화 방법.
  38. 제 32 항에 있어서,
    상기 프로그램 식별자는 제어 채널상에서 송신되는 프로그램 복호화 방법.
  39. 제 32 항에 있어서,
    상기 최종 사용자에게 상기 프로그램에 대한 권한이 부여되는가의 여부를 최종 사용자로 하여금 결정할 수 있게 하는 검사 매트릭스를 수신하는 단계를 더 포함하는 프로그램 복호화 방법.
  40. 제 32 항에 있어서,
    상기 프로그램 식별자는 상기 프로그램에 대한 시청 요구시 평가되는 프로그램 복호화 방법.
  41. 제 32 항에 있어서,
    상기 프로그램 식별자는 상기 프로그램에 대한 시청 요구에 앞서 평가되는 프로그램 복호화 방법.
  42. 제한적으로 액세스할 수 있는 암호화된 프로그램을 수신하기 위한 방법에 있어서,
    ① 프로그램 식별자와 함께 상기 프로그램―상기 프로그램은 프로그램 키를 이용하여 암호화되고, 상기 프로그램 키는 복수의 마스터 키의 선형 조합임―을 수신하는 단계와,
    ② 상기 프로그램 식별자와 저장된 인타이틀먼트 정보―상기 인타이틀먼트 정보는 상기 고객에 의해 획득된 프로그램의 선형 서브스페이스를 기반으로 한 상기 마스터 키로부터 유도됨―로부터 상기 프로그램 키를 유도해 내는 단계와,
    ③ 상기 프로그램 키를 이용하여 상기 암호화된 프로그램을 암호 해독하는 단계
    를 포함하는 프로그램 수신 방법.
  43. 제 42 항에 있어서,
    상기 인타이틀먼트 정보는 최종 사용자에 의해 획득된 프로그램의 세트를 기반으로 한 상기 마스터 키로부터 유도된 키의 세트를 포함하는 프로그램 수신 방법.
  44. 제 42 항에 있어서,
    상기 인타이틀먼트 정보는 최종 사용자에 의해 획득된 프로그램의 선형 서브스페이스를 나타내는 기저 매트릭스를 포함하는 프로그램 수신 방법.
  45. 제 42 항에 있어서,
    상기 복수의 마스터 키는 선형으로 독립적인 프로그램 수신 방법.
  46. 제 42 항에 있어서,
    상기 프로그램 식별자는 상기 암호화된 프로그램의 송신에 의해 인터리빙되는 프로그램 수신 방법.
  47. 제 42 항에 있어서,
    상기 프로그램 식별자는 제어 채널상에서 송신되는 프로그램 수신 방법.
  48. 제 42 항에 있어서,
    상기 최종 사용자에게 상기 프로그램에 대해 권한이 부여되는가의 여부를 최종 사용자로 하여금 결정할 수 있게 하는 검사 매트릭스를 수신하는 단계를 더 포함하는 프로그램 수신 방법.
  49. 제 42 항에 있어서,
    상기 프로그램 식별자는 상기 프로그램에 대한 시청 요구시 평가되는 프로그램 수신 방법.
  50. 제 42 항에 있어서,
    상기 프로그램 식별자는 상기 프로그램에 대한 시청 요구에 앞서 평가되는 프로그램 수신 방법.
  51. 제조 물품에 있어서,
    컴퓨터 판독 가능한 매체(computer readable medium)상에 구현된 컴퓨터 판독 가능한 코드 수단을 구비하는 컴퓨터 판독 가능한 매체를 포함하되,
    상기 컴퓨터 판독 가능한 프로그램 코드 수단은
    ⓐ 프로그램 식별자를 상기 프로그램에 할당하는 단계와,
    ⓑ 복수의 마스터 키를 규정하는 단계와,
    ⓒ 프로그램 키―상기 프로그램 키는 상기 마스터 키의 선형 조합임―를 이용하여 상기 프로그램을 암호화하는 단계와,
    ⓓ 상기 프로그램 식별자와 함께 상기 암호화된 프로그램을 상기 최종 사용자에게 송신하는 단계
    를 포함하는 제조 물품.
  52. 제조 물품에 있어서,
    컴퓨터 판독 가능한 매체상에 구현된 컴퓨터 판독 가능한 코드 수단을 구비하는 컴퓨터 판독 가능한 매체를 포함하되,
    상기 컴퓨터 판독 가능한 프로그램 코드 수단은
    ⓐ 프로그램 식별자와 함께 상기 프로그램―상기 프로그램은 프로그램 키를 이용하여 암호화되고, 상기 프로그램 키는 복수의 마스터 키의 선형 조합임―을 수신하는 단계와,
    ⓑ 상기 프로그램 식별자와 저장된 인타이틀먼트 정보―상기 인타이틀먼트 정보는 상기 고객에 의해 획득된 프로그램의 선형 서브스페이스를 기반으로 한 상기 마스터 키로부터 유도됨―로부터 상기 프로그램 키를 유도해 내는 단계와,
    ⓒ 상기 프로그램 키를 이용하여 상기 암호화된 프로그램을 복호화 하는 단계
    를 포함하는 제조 물품.
KR1019980033036A 1997-08-15 1998-08-14 암호화된프로그램송신및수신방법,복호화방법및제조물품 KR100317395B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/912,186 1997-08-15
US08/912,186 US6373948B1 (en) 1997-08-15 1997-08-15 Cryptographic method and apparatus for restricting access to transmitted programming content using program identifiers
US08/912,186 1997-08-15

Publications (2)

Publication Number Publication Date
KR19990023603A true KR19990023603A (ko) 1999-03-25
KR100317395B1 KR100317395B1 (ko) 2002-01-16

Family

ID=25431501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980033036A KR100317395B1 (ko) 1997-08-15 1998-08-14 암호화된프로그램송신및수신방법,복호화방법및제조물품

Country Status (8)

Country Link
US (1) US6373948B1 (ko)
EP (1) EP0899956B1 (ko)
JP (1) JP3631617B2 (ko)
KR (1) KR100317395B1 (ko)
CN (1) CN1145307C (ko)
CA (1) CA2244013C (ko)
DE (1) DE69836178T2 (ko)
HK (1) HK1018994A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100695953B1 (ko) * 2005-07-05 2007-03-15 주식회사 알티캐스트 셋탑박스와 사용자정보관리 헤드엔드서버 사이의사용자정보 상호교환에 의한 사용자정보 관리시스템 및방법

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6034533A (en) * 1997-06-10 2000-03-07 Tervo; Paul A. Low-current pogo probe card
US6118873A (en) * 1998-04-24 2000-09-12 International Business Machines Corporation System for encrypting broadcast programs in the presence of compromised receiver devices
US8584255B2 (en) * 1999-05-05 2013-11-12 Sony United Kingdom Limited Networked conditional access module
ATE360866T1 (de) * 1998-07-02 2007-05-15 Cryptography Res Inc Leckresistente aktualisierung eines indexierten kryptographischen schlüssels
US6735313B1 (en) * 1999-05-07 2004-05-11 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers
US20030149986A1 (en) * 1999-08-10 2003-08-07 Mayfield William W. Security system for defeating satellite television piracy
EP1534011A1 (en) * 1999-08-24 2005-05-25 General Instrument Corporation System and method for securing on-demand delivery of pre-encrypted content using ECM suppression
JP2003507974A (ja) * 1999-08-24 2003-02-25 ゼネラル インスツルメント コーポレーション Ecm抑制を使用した予め暗号化されたコンテンツのオン・デマンド配信の安全を確保するためのシステム及びメソッド
EP1134670A4 (en) * 1999-08-27 2006-04-26 Sony Corp INFORMATION TRANSMITTING SYSTEM, TRANSMITTER AND RECEIVER, INFORMATION TRANSMITTING METHOD, INFORMATION RECEIVING METHOD
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
JP3649694B2 (ja) 1999-11-22 2005-05-18 エヌ・ティ・ティ・アドバンステクノロジ株式会社 情報配信システム、移動通信端末、情報配信装置及び情報配信方法
KR100601630B1 (ko) * 2000-01-27 2006-07-14 삼성전자주식회사 암호화된 컨텐트를 제공하는 인터넷 사이트의 운영 방법
US6937730B1 (en) * 2000-02-16 2005-08-30 Intel Corporation Method and system for providing content-specific conditional access to digital content
US20020071565A1 (en) * 2000-12-11 2002-06-13 Kurn David Michael Software process pre-authorization scheme for applications on a computer system
CN100499799C (zh) * 2000-12-22 2009-06-10 爱迪德艾恩德霍芬公司 提供对被传送数据的有条件访问的传输系统
US9520993B2 (en) 2001-01-26 2016-12-13 International Business Machines Corporation Renewable traitor tracing
US7003108B2 (en) * 2001-02-02 2006-02-21 Asier Technology Corporation Data encryption methodology
JP4850351B2 (ja) * 2001-06-04 2012-01-11 哲也 高橋 暗号化データ生成装置、暗号化データ生成方法
DE10148415C2 (de) 2001-09-29 2003-07-31 Univ Braunschweig Tech Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
US7042879B2 (en) 2001-11-02 2006-05-09 General Instrument Corporation Method and apparatus for transferring a communication session
JP2003333024A (ja) * 2002-05-09 2003-11-21 Nec Corp 暗号化/復号化システム及びその暗号解読防止/改竄防止方法
KR100924773B1 (ko) * 2002-09-16 2009-11-03 삼성전자주식회사 메타데이터 암호화 및 복호화 방법과 암호화된 메타데이터관리 방법 및 그 시스템
US7062048B2 (en) 2003-01-27 2006-06-13 Wegener Communications, Inc. Apparatus and method for single encryption with multiple authorization of distributed content data
JP2004294474A (ja) * 2003-03-25 2004-10-21 Pioneer Electronic Corp コンテンツ提供システム、方法およびプログラム
US7206411B2 (en) 2003-06-25 2007-04-17 Wegener Communications, Inc. Rapid decryption of data by key synchronization and indexing
DE10330089B4 (de) * 2003-07-03 2014-02-27 Bt Ignite Gmbh & Co. Verfahren und Vorrichtung zum Übermitteln von Entschlüsselungscodes für frei übertragene, verschlüsselte Programminhalte an eindeutig identifizierbare Empfänger
US20060259436A1 (en) * 2003-11-21 2006-11-16 Hug Joshua D System and method for relicensing content
US8738537B2 (en) * 2003-11-21 2014-05-27 Intel Corporation System and method for relicensing content
US8996420B2 (en) 2003-11-21 2015-03-31 Intel Corporation System and method for caching data
US20060265329A1 (en) * 2003-11-21 2006-11-23 Realnetworks System and method for automatically transferring dynamically changing content
US20060031873A1 (en) * 2004-08-09 2006-02-09 Comcast Cable Holdings, Llc System and method for reduced hierarchy key management
US8516093B2 (en) 2005-04-22 2013-08-20 Intel Corporation Playlist compilation system and method
US8145262B2 (en) * 2005-05-17 2012-03-27 Pine Valley Investments, Inc. Multimode land mobile radio
WO2007019480A2 (en) 2005-08-05 2007-02-15 Realnetworks, Inc. System and computer program product for chronologically presenting data
US8893179B2 (en) 2005-09-12 2014-11-18 Qualcomm Incorporated Apparatus and methods for providing and presenting customized channel information
US8528029B2 (en) * 2005-09-12 2013-09-03 Qualcomm Incorporated Apparatus and methods of open and closed package subscription
US20070115929A1 (en) * 2005-11-08 2007-05-24 Bruce Collins Flexible system for distributing content to a device
US7970138B2 (en) * 2006-05-26 2011-06-28 Syphermedia International Method and apparatus for supporting broadcast efficiency and security enhancements
EP2227015B1 (en) 2009-03-02 2018-01-10 Irdeto B.V. Conditional entitlement processing for obtaining a control word
FR2953085A1 (fr) * 2009-11-20 2011-05-27 France Telecom Controle d'acces a un contenu numerique
CA2785047C (en) * 2009-12-21 2017-12-19 Bce Inc Methods and systems for re-securing a compromised channel in a satellite signal distribution environment
FR2961650B1 (fr) * 2010-06-22 2012-07-27 Viaccess Sa Procede de protection, procede de dechiffrement, support d'enregistrement et terminal pour ce procede de protection
JP7331714B2 (ja) * 2020-01-27 2023-08-23 富士通株式会社 情報処理装置、情報処理方法及びプログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4388643A (en) * 1981-04-06 1983-06-14 Northern Telecom Limited Method of controlling scrambling and unscrambling in a pay TV system
US4887296A (en) 1984-10-26 1989-12-12 Ricoh Co., Ltd. Cryptographic system for direct broadcast satellite system
JPS62132451A (ja) * 1985-12-05 1987-06-15 Toshiba Corp 公開鍵暗号方式
JPS62226785A (ja) * 1986-03-28 1987-10-05 Hitachi Ltd デイジタル画像デ−タの暗号化方式
US4864615A (en) 1988-05-27 1989-09-05 General Instrument Corporation Reproduction of secure keys by using distributed key generation data
EP0383985A1 (de) * 1989-02-24 1990-08-29 Claus Peter Prof. Dr. Schnorr Verfahren zur Identifikation von Teilnehmern sowie zur Generierung und Verifikation von elektronischen Unterschriften in einem Datenaustauschsystem
US4932056A (en) * 1989-03-16 1990-06-05 Yeda Research And Development Company Limited Method and apparatus for user identification based on permuted kernels
JPH0675265B2 (ja) * 1989-09-20 1994-09-21 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 情報検索方法及びシステム
US5282249A (en) * 1989-11-14 1994-01-25 Michael Cohen System for controlling access to broadcast transmissions
DE69121444T2 (de) * 1990-03-29 1997-03-13 Gte Laboratories Inc Überwachungssystem für die Übertragung von Videosignalen
JPH03179841A (ja) * 1990-10-19 1991-08-05 Matsushita Electric Ind Co Ltd 暗号デジタル放送受信装置
US5295188A (en) 1991-04-04 1994-03-15 Wilson William J Public key encryption and decryption circuitry and method
US5473693A (en) 1993-12-21 1995-12-05 Gi Corporation Apparatus for avoiding complementarity in an encryption algorithm
FR2715256B1 (fr) * 1994-01-19 1996-02-16 France Telecom Procédés d'émission et de réception de programmes à accès conditionnel gérés par un même opérateur.
US5787172A (en) 1994-02-24 1998-07-28 The Merdan Group, Inc. Apparatus and method for establishing a cryptographic link between elements of a system
US5502767A (en) * 1994-05-27 1996-03-26 Sasuta; Michael Method for maintaining secure information synchronization on a control channel
JP3512878B2 (ja) * 1994-12-08 2004-03-31 日本放送協会 パケット信号のスクランブルまたはデスクランブル方法、およびスクランブルまたはデスクランブル装置
US5761669A (en) * 1995-06-06 1998-06-02 Microsoft Corporation Controlling access to objects on multiple operating systems
JPH0946631A (ja) * 1995-07-25 1997-02-14 Matsushita Electric Ind Co Ltd 有料放送送受信システム及び方法、及び有料放送送信、受信装置
US5608801A (en) * 1995-11-16 1997-03-04 Bell Communications Research, Inc. Efficient cryptographic hash functions and methods for amplifying the security of hash functions and pseudo-random functions
US5740250A (en) 1995-12-15 1998-04-14 Moh; Tzuong-Tsieng Tame automorphism public key system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100695953B1 (ko) * 2005-07-05 2007-03-15 주식회사 알티캐스트 셋탑박스와 사용자정보관리 헤드엔드서버 사이의사용자정보 상호교환에 의한 사용자정보 관리시스템 및방법

Also Published As

Publication number Publication date
CA2244013A1 (en) 1999-02-15
CN1145307C (zh) 2004-04-07
DE69836178T2 (de) 2007-08-23
EP0899956B1 (en) 2006-10-18
HK1018994A1 (en) 2000-01-14
EP0899956A2 (en) 1999-03-03
EP0899956A3 (en) 2000-01-12
CN1209017A (zh) 1999-02-24
KR100317395B1 (ko) 2002-01-16
CA2244013C (en) 2002-01-08
JPH11155138A (ja) 1999-06-08
DE69836178D1 (de) 2006-11-30
US6373948B1 (en) 2002-04-16
JP3631617B2 (ja) 2005-03-23

Similar Documents

Publication Publication Date Title
KR100317395B1 (ko) 암호화된프로그램송신및수신방법,복호화방법및제조물품
KR100317394B1 (ko) 암호화된프로그램송신및수신방법,복호화방법및제조물품
US6735313B1 (en) Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers
EP0950319B2 (en) Preventing replay attacks on digital information distributed by network service providers
KR100424786B1 (ko) 해쉬키를이용한암호화서명의생성방법과재생방법및장치
US5796829A (en) Conditional access system
EP2197172B1 (en) Content delivery network having downloadable conditional access system with personalization servers for personalizing client devices
JP3798031B2 (ja) 個人用プログラムの送受信方法
EP2160028A2 (en) A DRM key management system using multi-dimensional grouping techniques
US20080209570A1 (en) Systems, Methods, And A Storage Medium For Storing and Securely Transmitting Digital Media Data
WO2005059776A2 (en) Key assignment method for content distribution
KR100872171B1 (ko) 수신 제한 동작을 지원하기 위한 복수개 채널들의 계층적그룹핑 방법 및 이를 위한 장치
KR20050007924A (ko) 암호화된 데이터 전송방법 및 재생방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121123

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20131122

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20141125

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20151120

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee