KR20010007044A - 해시 함수 및 프로그램 식별자를 이용하여 전송 프로그램내용으로의 액세스를 제한하는 암호화 방법 및 장치 - Google Patents

해시 함수 및 프로그램 식별자를 이용하여 전송 프로그램내용으로의 액세스를 제한하는 암호화 방법 및 장치 Download PDF

Info

Publication number
KR20010007044A
KR20010007044A KR1020000023887A KR20000023887A KR20010007044A KR 20010007044 A KR20010007044 A KR 20010007044A KR 1020000023887 A KR1020000023887 A KR 1020000023887A KR 20000023887 A KR20000023887 A KR 20000023887A KR 20010007044 A KR20010007044 A KR 20010007044A
Authority
KR
South Korea
Prior art keywords
program
key
identifier
encrypted
end user
Prior art date
Application number
KR1020000023887A
Other languages
English (en)
Other versions
KR100651336B1 (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 KR20010007044A publication Critical patent/KR20010007044A/ko
Application granted granted Critical
Publication of KR100651336B1 publication Critical patent/KR100651336B1/ko

Links

Classifications

    • 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
    • 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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 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/60Digital content management, e.g. content distribution

Landscapes

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

Abstract

전송 프로그램 내용으로의 액세스를 제한하는 시스템이 개시된다. 이 시스템은 암호화된 프로그램 내용과 함께 프로그램 식별자를 전송한다. 셋탑 단말기 또는 유사한 메커니즘이 저장된 암호 키를 이용하여 전송된 멀티미디어 정보로의 액세스를 제한한다. 셋탑 단말기는 소정 주기동안 고객이 이용할 권한이 있는 하나 이상의 프로그램 패키지에 대응하는 권한부여 정보를 헤드 엔드로 부터 주기적으로 수신한다. 각 프로그램은 전송에 앞서 프로그램이 고유한 프로그램 키(Kp)를 이용하여 헤드 엔드 서버에 의해 암호화된다. 셋탑 단말기는 저장된 권한부여 정보와 함께 수신된 프로그램 식별자(p)를 이용하여 프로그램을 암호 해독하는데 필요한 암호해독 키를 유도한다. 전송된 프로그램을 암호화하는데 이용되는 k-비트의 프로그램 키들(Kp) 각각은 길이를 두배로 하는 해시 함수(H)와 같은 그러한 하나 이상의 의사 랜덤 해시 함수를 마스터 키(m)에 적용함으로써 얻어진다. 예시적인 해시 함수(H)는 k-비트 2진 값을 취하며 2k의 길이를 갖는 2진 값을 생성한다. H0은 해시 함수의 출력의 좌측 절반이며, H1은 해시 함수의 출력의 우측 절반이다. 프로그램 키(Kp)는 프로그램 식별자(p)의 각 비트 위치의 대응 2진 값에 따라 해시 함수 H0또는 H1을 마스터 키(m)에 반복적으로 적용함으로써 얻어진다. 해시 동작은 키 트리로 일컬어지는 n-레벨 2진 트리(T)로 표현되며, 마스터 키(m)가 트리의 루트에 놓인다. 이 트리는 원하는 수의 트리 레벨(n)이 생성될 때까지 해시 함수(H0및 H1)을 적용함으로써 발생된다. 프로그램 키(Kp)는 트리의 하부 레벨에 있는 리프 노드에 대응한다. 각 프로그램 키(kp)와 관련된 프로그램 식별자(p)는 키 트리르 통해 루트로부터 원하는 리프 노드에 이르는 경로에 대응한다.

Description

해시 함수 및 프로그램 식별자를 이용하여 전송 프로그램 내용으로의 액세스를 제한하는 암호화 방법 및 장치{CRYPTOGRAPHIC METHOD AND APPARATUS FOR RESTRICTING ACCESS TO TRANSMITTED PROGRAMMING CONTENT USING HASH FUNCTIONS AND PROGRAM IDENTIFIERS}
본 발명은 일반적으로 전송 프로그램 내용으로의 액세스를 제한하는 시스템에 관한 것으로, 보다 특별하게는 암호화된 프로그램을 암호 해독하는데 필요한 암호해독 키를 유도할 수 있도록, 저장된 권한부여 정보와 함께 셋탑 단말기에 의해 이용되는 프로그램 식별자와 더불어 그 암호화된 프로그램을 전송하는 시스템에 관한 것이다.
텔레비젼 시청자들이 이용할 수 있는 채널의 수가 증가되고 아울러 그러한 채널에서 이용할 수 있는 프로그램 내용이 다양화됨에 따라, 케이블 텔레비젼 운영자 및 디지털 서비스 운영자와 같은 그러한 서비스 제공자들에게 있어 텔레비젼 시청자들 대다수를 만족시켜주는 채널 및 프로그램의 패키지를 제공하는 일은 더욱 해결해야할 도전 과제가 되고 있다. 고객들에게 제공될 패키지의 개발은 일반적으로 마케팅차원에서 상관관계를 가지고 있다. 일반적으로, 서비스 제공자는 단일 프로그램으로부터 모든 프로그램에 이르는 다양한 크기의 패키지들 및 이들의 다양한 결합을 제공할 수 있기를 갈망한다.
서비스 제공자들은 전형적으로 흔히 "헤드 엔드(head-end)"라 불리는 전송기로부터의 텔레비젼 프로그램을 대다수의 고객들에게 방송한다. 각 고객은 전형적으로 그가 구매한 패키지와 관련된 수신 프로그램의 서브 세트만을 이용할 자격을 갖는다. 예컨대, 무선방송 환경에서, 전송 프로그램은 안테나 또는 위성접시 안테나와 같은 그러한 적절한 수신기를 가지고 있으면 누구나 수신할 수 있다. 따라서, 필요한 패키지를 구매한, 이용 자격을 가진 고객에게만 상기 전송 프로그램으로의 액세스를 제한하기 위해, 서비스 제공자는 전형적으로 상기 전송 프로그램을 암호화하고, 그 고객에게 프로그램을 암호해독 하는데 이용되는 하나 이상의 암호해독 키를 포함하고 있는 셋탑 단말기(STT)를 제공한다. 이러한 방식으로, 셋탑 단말기는 암호화된 전송을 수신하여 이용 자격이 있는 고객을 위해 그 프로그램을 암호해독 해준다.
저장된 암호 해독 키를 비롯한 셋탑 단말기에 저장된 고도로 민감한 정보의 해적행위를 최소화하기 위해, 셋탑 단말기들은 전형적으로 암호 해독키를 저장하기 위한 수 킬로비트 정도의 용량을 갖는 보안 프로세서 및 보안 메모리를 포함하고 있다. 이 보안 메모리는 일반적으로 비휘발성이며 저장된 내용을 변경할 수 없도록 되어있다. 또한 보안 메모리는 기록이 가능하여, 예컨대 매 빌링 주기에 대해 원하는 데로 재프로그램될 수 있다. 통상적인 셋탑 단말기의 한정된 보안 메모리 용량은 저장할 수 있는 키의 수를 제한하며, 그럼으로써 서비스 제공자가 제공하는 패키지의 수를 제한한다. 월간 빌링 주기 동안 서비스 제공자에 의해 전형적으로 방송되는 프로그램의 수는 200.000정도로 될 수 있다.
한 변형에서, 통상적인 셋탑 단말기들은 서비스 제공자에 의해 제공되는 프로그램의 각 패키지에 대응하는 비트 엔트리를 갖는 비트 벡터를 포함한다. 만일 어떤 고객이 패키지를 이용할 자격이 있으면, 셋탑 단말기에 저장된 비트 벡터에서의 대응 비트 엔트리는 "l"로 설정된다. 그 후 서비스 제공자에 의해 전송된 모든 프로그램은 단일키로 암호화된다. 소정 프로그램의 수신 하에서, 셋탑 단말기는 대응 비트 엔트리가 설정되었는지 여부를 결정하기 위해 비트 벡터에 액세스한다. 만일 비트 엔트리가 설정되었으면, 셋탑 단말기는 저장된 단일 암호 해독키를 이용하여 그 프로그램을 암호 해독한다. 이론적으로는 각 패키지(팩키지는 일반적으로 1개의 프로그램으로 구성된다)에 대해 비트 엔트리를 제공함으로써 비트 벡터방식에서 유연성(flexibility)을 얻을 수 있지만은 비트 벡터의 길이는 단일 빌링 주기에 많은 프로그램을 전송하는 시스템에서는 실용적이지 못하다. 또한, 그러한 시스템에서의 액세스 제어는 비트 벡터에 있는 엔트리들에 의해서만 배타적으로 제공되며, 암호화되지 못한다. 따라서, 만일 고객이 비트 벡터를 오버라이트(overwrite)할 수 있고 그리고 모든 비트를 "l"로 설정할 수 있다면, 그 고객은 모든 프로그램들에 액세스를 행할 수 있게 된다.
다른 변형에서, 프로그램들은 패키지로 분할되며 소정 패키지에 있는 모든 프로그램들은 동일키를 이용하여 암호화된다. 다시, 각 패키지는 전형적으로 하나의 텔레비젼 채널에 대응한다. 셋탑 채널은 이용 권한이 있는 고객을 위한 각 패키지에 대한 암호 해독키를 저장한다. 따라서, 만일 프로그램이 복수의 패키지에 포함되면, 이 프로그램은 각각의 관련 패키지에 대해 재전송 되어야 하며, 각 전송은 특정 패키지에 대응하는 암호키로 암호화된다. 비록 그 액세스 키는 암호화 될 수 있지만은 소정 프로그램을 다수번 재전송하는 데 관련되는 오버헤드는 서비스 제공자들이 동일 프로그램들을 복수의 패키지에 적용하는 것을 억제함으로써 프로그램의 패키지를 설계하는데 있어 유연성을 제한하게 된다.
프로그램 내용을 암호화하여 전송하는 그러한 종래의 시스템은 이용 권한이 있는 고객들에만 액세스를 제한시키는데 있어 비교적 성공적인 것으로 판단 되지만은 그러나 이는 셋탑 단말기의 제한된 보안 메모리 용량을 확장하거나 또는 그 오버헤드를 상당히 증대시키지 않고서는 텔레비젼 네트워크와 같은 그러한 서비스 제공자들이 고객으로의 다양한 수의 프로그램을 포함하는 많은 서로 다른 패키지들을 제공하지 못하게 한다. 1997년 8월 15일자로 출원되었으며 본 출원인에게 양도된 미국 특허 출원번호 제 081912,186호 (이하 “V스페이스 시스템”으로 칭하기로 한다)는 전송된 프로그램 내용에만 액세스를 제한시키는 암호화 방법 및 장치를 개시하고 있다.
V스페이스 시스템에 있는 각 프로그램은 전송에 앞서 프로그램 키(kp)를 이용하여 헤드 엔드 서버에 의해 암호화된다. 각 프로그램 키는 정의된 세트의 마스터 키(m)의 선형 결합이다. 프로그램을 식별하는 프로그램 식별자에는 암호화 된 프로그램 내용이 전송된다. 고객의 셋탑 단말기는 그 수신된 프로그램 식별자(p) 및 이전에 저장된 권한부여 정보만으로 부터 암호 해독키를 유도할 수 있다. V스페이스 시스템은 암호 액세스 제어 메커니즘을 제공하며,(이는 프로그램이 각각의 관련 패키지에 대해 재전송 될 필요가 없기 때문이다)프로그램 헤더를 크게 확장시키지 않고도(단지 프로그램 식별자에만 프로그램이 전송됨)유연한 패키지를 얻을 수 있다.
일반적으로, 암호화 된 프로그램 내용은 전송기, 즉 헤드 엔드 서버를 이용하여 서비스 제공자에 의해 한명 이상의 고객에 전송된다. 본 발명의 한 양상에 따르면, 프로그램을 식별하는데 이용되는 프로그램 식별자(p)는 프로그램 내용과 함께 고객에 전송된다. 각 고객은 암호 해독키를 이용하여 상기 전송된 멀티미디어 정보로의 액세스를 제한시키기 위한 셋탑 단말기 또는 다른 메커니즘을 갖는다. 이 셋탑 단말기는 헤드 엔드로부터 소정 기간동안 이용 권한을 가진 고객을 위한 하나이상의 프로그램 패키지에 대응하는 권한부여 정보를 수신한다.
각 프로그램은 이 프로그램에 고유한 프로그램키(kp)를 이용하여 전송에 앞서 헤드 엔드 서버에 의해 암호화된다. 암호화된 프로그램을 전송하는 것에 추가로 헤드 엔드 서버는 프로그램 식별자(p)를 셋탑 단말기에 전송한다. 이 셋탑 단말기는 저장된 권한부여 정보와 함께 상기 수신된 프로그램 식별자(p)를 이용하여 그 프로그램을 암호해독 하는데 필요한 암호 해독키를 유도한다. 이러한 방식으로, 만일 고객이 특정 프로그램을 이용할 권한이 있으면, 셋탑 박스는 저장 및 수신된 정보를 이용하여 그 암호화된 프로그램키(kp)를 암호해독 할 수 있게 될 것이다. 다양한 실시예에서, 프로그램 식별자(p)는 프로그램 부와 인터리브 되거나 또는 개별적인 전용제어 채널을 통해 전송된다.
본 발명의 한 양상에 따르면, 전송된 프로그램들을 암호화하는데 이용되는 각각의 k 비트 프로그램 키(kp)는 하나 이상의 의사 랜덤 해시 함수를 마스터 키(m)에 적용함으로써 얻어진다. 한 실시예에서, 길이를 두배로 하는 해시함수(H)가 이용된다. 따라서, 해시함수(H)는 k-비트를 2진 값을 취하며 길이 2k를 갖는 2진 값을 생성한다. 해시함수(H)의 값은 한 쌍의 k-비트 2진 값(H0,H1)으로 표시할 수 있는데, 여기서 H0,는 해시 함수의 출력을 좌측 절반으로서 표시되며, H1은 해시함수의 출력의 우측 절반으로 표시된다.
예시적인 실시예에서, 프로그램 키(kp)는 프로그램 식별자(p)의 각각의 비트 위치의 대응 2진 값에 따라 H0또는 H1을 마스터 키(m)에 반복적으로 적용함으로써 얻어진다.
따라서 만일 프로그램 식별자(p)가 n비트로 구성되는 경우, 해시 함수중 하나(H0또는 H1)는 프로그램 식별자(p)의 n비트 위치 각각에 대해 적용된다. 초기에 해시 함수중 하나(H0또는 H1)가 프로그램 식별자(p)의 최상위 비트의 2진 값에 따라 마스터 키(m)에 적용된다. 그 후, 나머지(n-1)비트의 위치들 각각에 대해 해시 함수중 하나 (H0또는H1)가 대응 비트의 2진 값에 따라 이전 해시 동작의 결과에 적용된다. 프로그램 키(kp)의 계산은 다음과 같이 나타내질 수 있다.
kp=Hpn(...Hp2(Hp1(m))...)
해시 동작은 트리의 루트에 놓여지는 마스터 키(m)를 갖는 키 트리로서 언급되는 n-레벨 2진 트리(T)로 표현될 수 있다. 트리는 원하는 수의 트리 레벨(n)이 생성될 때까지 해시 함수 (H0또는 H1)를 각 노드에 적용하므로 써 발생된다. 프로그램 키(kp)는 트리의 하부 레벨이 있는 리프 노드에 대응한다. 각각의 프로그램 키(kp)와 관련되는 2진 인덱스(및 마찬가지로 프로그램 식별자(p))는 키 트리를 통해 루트로부터 원하는 리프 노드에 이르는 경로에 대응한다. 따라서, 소정 노드(u) 인덱스 또는 라벨은 루트로부터 노드(u)에 이르는 경로상의 에지들에서의 라벨들의 연속이다. T(u)는 노드(u)에서 루트 되는 서브 트리, 즉 노드(u)의 서브 트리에서 리프들에 대응하는 프로그램 식별자(p)의 세트를 표시한다. 내부 노드(u)에 관하여 키 트리에서의 깊이(r)에서 부분적인 프로그램 식별자(p),(u1...,ur)와 함께, 서브트리 T(u)에서의 어떤 프로그램의 키는 해시 함수를 n-r번 작동시킴으로써 계산될 수 있다.
도 1은 본 발명의 한 실시예에 따른 암호화 된 프로그램 내용을 전송하는 시스템을 예시하는 개략 블록선도.
도 2는 본 발명에 따른 예시적인 키 트리의 개념도.
도 3은 도 1의 예시적인 헤드 엔드 서버의 개략 블록선도.
도 4는 도 1의 예시적인 셋탑 단말기의 개략 블록선도.
도 5는 도 3의 프로그램 데이터 베이스로부터의 샘플표.
도 6은 도 4의 권한부여 데이터 베이스로부터의 샘플표.
도 7은 도 3의 헤드 엔드 서버에 의해 실행되는 예시적인 권한부여 정보 분산 처리를 설명하는 흐름도.
도 8은 도 3의 헤드 엔드 서버에 의해 실행되는 예시적인 프로그램 분산 처리를 설명하는 흐름도.
도 9는 도 4의 셋탑 단말기에 의해 실행되는 예시적인 디코드 처리를 설명하는 흐름도.
도면의 주요 부분에 대한 부호의 설명
110 : 분산 네트워크 300 : 헤드 엔드 서버
310 : 프로세서 330 : 통신 포트
400 : 셋탑 단말기(STT) 1 401 : 셋탑 단말기(STT) N
본 발명의 보다 완전한 이해 및 본 발명의 추가적인 특징 및 장점들이 다음의 상세한 설명 및 도면을 참조하므로써 명확해질 것이다.
도 1은 비디오, 오디오 및 데이터와 같은 그러한 암호화 된 멀티미디어 정보 헤드 엔드 서버(300)와 같은 그러한 전송기(도 3과 관련하여 하기에 추가로 설명함)를 이용하여 하나 이상의 분산 네트워크(110)를 통해 셋탑 단말기(400)와 같은 그러한 셋탑 단말기(400-401)(도4와 관련하여 하기에 추가로 설명함)를 갖는 한명 이상의 고객에게 전송하는 예시적인 네트워크 환경을 보인 것이다. 여기서 이용되는 바와 같이, 셋탑 단말기는 예컨대 컴퓨터 구성 또는 통신장치를 비롯한 암호 해독키를 이용하는 전송된 멀티미디어 정보에만 액세스를 제한시키기 위한 어떤 메커니즘을 포함한다. 셋탑 단말기에 의해 실행되는 소프트웨어를 서비스 제공자가 다운로드 하도록 할 수 있다. 분산 네트워크(10)는 디지털 위상 서비스("DSSTM")와 같은 그러한 프로그램 내용 분산을 위한 무선 방송 네트워크 또는 케이블 텔레비젼 네트워크("CATV")와 같은 통상적인 유선 네트워크, 공중 교환 전화 네트워크("PSTN"), 광 네트워크, 광대역 통합 서비스 디지털 네트워크("ISDN") 또는 인터넷으로 될 수 있다.
본 발명의 특징에 따르면, 셋탑 단말기(400)는 빌링 주기와 같은 주어진 시간동안 고객이 권한을 부여받은 프로그램으로 액세스하는 것을 허용하는 헤드 엔드 서버(300)로부터 권한부여 정보를 간헐적으로 수신한다. 본 출원에서 이용되는 패키지는 미리 설정된 프로그램들의 세트이며, 소정 프로그램은 하나 이상의 패키지에 속할 수 있다. 프로그램은 텔레비젼 에피소드 혹은 영화와 같은 임의의 특정 길이를 갖는 연속적인 멀티미디어의 전송이다. 권한부여 정보는 어떠한 안전한 단 방향 혹은 양방향 프로토콜을 이용하여 헤드 엔드 서버(300)로부터 셋탑 단말기(400)로 다운로드 받을 수 있다는 것은 당업자에게 있어 자명하다.
프로그램 키 및 프로그램 식별자
하기에서 설명되는 바와 같이, 각각의 전송된 프로그램은 프로그램에 고유한 프로그램 키(Kp)를 이용하여 헤드 엔드 서버(300)에 의해 암호화된다. 적절한 암호화 및 보호 기술들은 비. 슈네어(B. Schneier)의 암호 기법의 적용(Applied Cryptography)(2판, 1997)에서 보다 상세하게 설명된다. 암호화된 프로그램 전송에 부가적으로, 헤드 엔드 서버(300)는 셋탑 단말기(400)로 n-비트 프로그램 식별자(p)를 또한 전송하며, 이는 암호화된 프로그램에 필요한 암호해독 키를 유도하기 위하여 셋탑 단말기(400)에 의해 저장된 권한부여 정보를 함께 이용한다. 이러한 방법은 이후에 설명된다. 프로그램에 프로그램 식별자의 할당(Assigning Program Identifier to Programs)이라는 제목의 섹션에서 하기에 설명되는 바와 같이, 프로그램 식별자들(p)은 임의로 정해지는 것이 아니다. 바람직한 일 실시예에서, 프로그램 식별자(p)는 예를 들어 MPEG-2 표준으로 정의된 ECM 필드에서 전송될 수 있는 32비트 값으로 구성된다. 이러한 방식에 있어서, 만일 이용자가 특정 프로그램에 대한 권한을 가지고 있다면, 셋탑 단말기(400)는 저장되어 수신된 정보로부터 프로그램 키(Kp)를 유도한 다음, 프로그램 키(Kp)를 이용하여 암호화된 프로그램을 암호해독 한다.
본 발명의 다른 특징에 따르면, 전송된 프로그램을 암호화하기 위해 사용되는 각각의 k-비트 프로그램 키(Kp)는 하나 이상의 의사 랜덤 해시 함수들을 마스터 키(m)에 적용함으로써 얻어진다. 적당한 의사 랜덤 해시 함수들에 대한 상세한 설명을 위해서는 본 출원의 참조로서 인용된, J, ACM33, 792-807(1986)에 개시된 오. 골드라이크(Goldreich) 등의 "랜덤 함수들을 구성하는 방법(How to Construct Random Functions)"을 참조하길 바란다.
일 실시예에서, 암호화되어 안전하며 두 배의 길이를 갖는 해시 함수는 다음과 같이 이용된다.
H : {0,1}k→ {0,1}2k
여기서, k는 프로그램 키(Kp)의 길이이다. 따라서, 해시 함수(H)는 k-비트의 2진 값을 취하여 2k의 길이를 갖는 2진 값을 생성한다. 해시 함수(H)의 출력은 한 쌍의 k-비트 2진 값들(H0과 H1)로 표현된다. 여기서 H0은 해시 함수(H)(최상위 비트) 출력의 좌측 절반을 표시하고, H1은 해시 함수(H)(최상위 비트) 출력의 우측 절반을 표시한다. H0과 H1은 분리된 해시 함수로도 일컬어질 수 있다. 예시적인 일 실시예에서, k가 160인 경우, H는 본 출원의 참조로써 인용되는 미국 상무국, 미국립 표준 기술 연구소, NIST FIPS PUB 180-1에서 안전 해시 표준으로 정의된 것으로서, 숨겨진 해시 표준(SHA-1)을 이용하여 정의될 수 있다. 다시 말해, H0는 SHA-1(x∥0)과 동일하고, 그리고 H1은 SHA-1(x∥1)과 동일하며, 여기서 0과 1은 각각 모두 0이거나 1인 비트 스트링들이다.
본 발명의 다른 특징에 따르면, 프로그램 키(Kp)는 프로그램 식별자(p)의 2진 값에 따라 하나 이상의 해시 함수들을 마스터 키(m)에 반복적으로 적용함으로써 얻어진다. 일 실시예에서, 프로그램 키(Kp)는 프로그램 식별자(p)의 각 비트 위치의 2진 값에 따라 해시 함수 중 하나 (H0또는 H1)를 마스터 키(m)에 반복적으로 적용함으로써 얻어진다. 일반적으로, 만일 프로그램 식별자(p)가 n 비트로 이루어진다면, 해시 함수중 하나(H0또는 H1)는 프로그램 식별자(p)의 해당 비트 값에 따라 프로그램 식별자(p)의 각 n 비트 위치들에 (최상위 비트에서부터) 적용된다. 먼저, 해시 함수중 하나(H0또는 H1)는 최상위 비트의 값에 따라서 마스터 키(m)에 적용된다. 그런 다음, 나머지 (n-1) 비트 위치들 각각에 대해서, 해시 함수 중 하나 (H0또는 H1)는 해당 비트의 2진 값에 따라 해시 연산의 결과에 적용된다. 하기에서 키 트리라는 명칭으로 하기 표시되는 섹션에서 설명되는 바와 같이, 해시 연산은 다음과 같이 나타낼 수도 있다.
Kp = Hpn(...Hp2(Hp1(m))...)
상기 설명한 바와 같이, 헤드 엔드 서버(300)는 프로그램 식별자(p)를 암호화된 프로그램과 함께 전송한다. 따라서, 주어진 프로그램 식별자(p), 셋탑 단말기(400)는 수신된 프로그램을 암호 해독하는 데에 이용되는 프로그램 키(Kp)를 얻어야만 한다. 상기 설명한 바와 같이, 프로그램 키(Kp)는 프로그램 식별자(p)의 2진 값에 따라 하나 이상의 해시 함수들을 마스터 키(m)로 반복적으로 적용함으로써 얻어진다. 프로그램 키(Kp)는 하기에서 설명되는 저장된 권한부여 정보 및 전송받은 프로그램 식별자(p)를 이용하여 간접적으로 이용자의 셋탑 단말기(400)에 의해 얻어져야만 한다.
키 트리
상기 설명한 바와 같이, 프로그램 키(Kp)는 프로그램 식별자(p)의 2진 값에 따라 하나 이상의 해시 함수들을 마스터 키(m)로 반복적으로 적용함으로써 얻어진다. 단일 k-비트 마스터 키(m)가 이용된다. 프로그램 식별자(p)의 비트들은 p=(p1,...,pn)으로 나타내는데, 여기서 p1은 최상위 비트이고, pn은 최하위 비트이다. 본 발명의 특징에 따르면, 프로그램 식별자(P)를 갖는 프로그램에 대하여 암호화 키(Kp)는 다음과 같이 정의된다.
Kp = Hpn(...Hp2(Hp1(m))...)
해시 연산은 또한 도 2에서 키 트리(200)로 나타낸 바와 같이, 전체 n-레벨 2진 트리(T)로 나타낼 수 있다. 도 2에 나타낸 바와 같이, 예시적인 키 트리(200)는 3비트로 구성된 프로그램 식별자들(p)을 갖는 실시예에 해당한다. 도 2에 나타낸 바와 같이, 마스터 키(m)는 트리(200)의 루트(200)에 위치한다. 프로그램 키(Kp)는 리프 노드들(240-247)과 같은 리프 노드들에 해당한다. 도 2에 나타낸 바와 같이, 예컨대 리프 노드(243)의 프로그램 키(KP)와 관련된 인덱스(011)와 같이, 도 2에 나타낸 각 프로그램 키(KP)에 관련된 인덱스는 루트(210)로부터 키 트리(200)를 통해 리프 노드(243)로의 경로를 나타낸다. 예를 들어, 리프 노드(243)의 프로그램 키(Kp)는 루트(210)에 좌측 에지(H0)가, 노드(220)에 우측 에지(H1)가 그리고 노드(232)에 우측 에지(H1)가 따르도록 함으로써 얻어진다. 다시 말해, H0가 먼저 마스터 키(m)에 적용된 다음, H1이 제 1 해시 결과에 적용되며, H1이 제 2 해시 결과에 다시 적용된다. 그 결과 값이 프로그램 키(Kp)이다.
따라서, 노드(243)와 같은 주어진 노드(u)의 라벨은 루트(210)에서 노드(u)까지의 경로 위의 에지들 상에서의 라벨들의 연속이다. 각 노드의 라벨은 프로그램 식별자(p)에 의해 식별될 수 있다. T(u)는 노드(u)를 루트로 하는 서브 트리를 나타내는 데에 이용되거나, 또는 노드(u) 서브 트리의 리프들에 해당하는 프로그램 식별자(p)의 세트를 나타내는 데에 이용된다. 키 트리(200)내의 깊이(r)에서의 내부 노드(u)에 있어서, 서브 트리 T(u) 내의 모든 프로그램 키들은 부분 프로그램 식별자(p)(u1,...,u0)에 의해 계산될 수 있다. 노드(u) 서브 트리의 임의의 프로그램 키는 해시 함수를 n-r번 실행시킴으로써 계산된다. 좀 더 명확하게 설명하면, 적절한 해시 함수(H0또는 H1)는 프로그램 식별자(p)의 각 n-r 하위 비트들의 값에 의해 명령되어 이용된다. 따라서, 노드(u)에 해당하는 프로그램 키(KP)는 노드(u)의 서브 트리 내의 모든 프로그램에 대한 권한부여로서 작용할 수 있다.
만일 함수(H)가 의사 랜덤 발생기라면, 마스터 키(m)에 의해 파라미터가 정해지는 프로그램 키들의 맵핑 Kp {0,1}n→{0,1}k은 의사 랜덤 함수이다. 예를 들어, 상기에서 본 출원의 참조로서 인용된 J, ACM33, 792-807(1986)에 개시된 오. 골드라이크(O. Goldreich) 등의 "랜덤 함수들을 구성하는 방법(How to Construct Random Functions)"을 참조하길 바란다.
시스템 구성
도 3은 예시적인 헤드 엔드 서버(300)의 구성을 보여주는 블록도이다. 헤드 엔드는 텔레비전 네트워크, 케이블 운영자, 디지털 위성 서비스 운영자, 또는 어떠한 암호화된 프로그램 내용을 전송하는 서비스 제공자와 관련된다. 헤드 엔드 서버(300)는 예를 들어 IBM사에 의해 제조된 RS 6000 서버로서 구현될 수도 있는데, 이는 본 출원에서 본 발명의 기능들 및 동작들을 실행시키도록 변경된다. 헤드 엔드 서버(300)는 프로세서(310)와, 예컨대 데이터 저장 장치(320)와 같은 관련 메모리를 포함한다. 프로세서(310)는 단일 프로세서로서, 또는 병렬로 작동하는 다수의 프로세서들로서 구현될 수도 있다. 데이터 저장 장치(320) 및/또는 판독 전용 메모리(ROM)는, 프로세서(310)로 하여금 검색, 해석, 및 실행을 수행하게 하는 하나 또는 그 이상의 명령들을 저장하도록 동작한다.
상기 설명한 바와 같이, 데이터 저장 장치(320)는 마스터 키(m)를 저장하는 마스터 키 데이터베이스(350)를 포함한다. 마스터 키(m)는, 예를 들어 빌링 주기마다 한 번씩 갱신될 수도 있다. 또한, 도 5와 관련하여 하기에서 설명되는 바와 같이, 데이터 저장 장치(320)는 프로그램 데이터베이스(500)를 포함한다. 프로그램 데이터베이스(500)는 프로그램 식별자(p) 및 각 프로그램에 해당하는 관련 패키지들을 나타낸다. 또한, 도 7 및 도 8과 관련하여 하기에서 설명되는 바와 같이, 데이터 저장 장치(320)는 권한부여 정보 분산 처리(700) 및 프로그램 분산 처리(800)를 포함한다. 일반적으로, 권한부여 정보 분산 처리(700)는 각 고객이 권한을 부여받은 프로그램들을 액세스하는 데에 필요한 권한부여 정보를 발생 및 분산시킨다. 또한, 프로그램 분산 처리(800)는 프로그램 식별자(p)에 의해 프로그램을 암호화 및 전송시키기 위하여, 프로그램에 할당된 프로그램 식별자(p)를 근거로 하여 프로그램 키(Kp)를 유도한다.
통신 포트(330)는 헤드 엔드 서버(300)를 분산 네트워크(110)에 접속시키며, 이로써 헤드 엔드 서버(300)와, 예컨대 도 1에 나타낸 셋탑 단말기(400)와 같은 개별 접속 수신기와의 접속이 이루어진다.
도 4는 예시적인 셋탑 단말기(400)의 구조를 보여주는 블록도이다. 예컨대 본 출원에서 본 발명의 기능들 및 동작들을 실행시키도록 변경된 제너럴 인스트루먼트사에 의해 제조된 텔레비젼에 결합된 셋탑 단말기(STT)로서 구현될 수도 있다. 셋탑 단말기(400)는 프로세서(410) 및 예컨대 데이터 저장 장치(420)와 같은 관련 메모리 뿐 아니라, 도 3에 관련하여 상기에서 설명된 하드웨어와 유사한 방식으로 작동하는 통신 포트(430)를 포함한다.
도 6과 관련하여 하기에서 설명되는 바와 같이, 데이터 저장 장치(420)는 데이터 저장 장치(420)의 보안 부분에 저장될 수도 있는 권한부여 데이터베이스(600)를 포함한다. 권한부여 데이터베이스(600)는 고객이 권한을 부여받은 프로그램들에 대한 프로그램 키들(Kp)을 유도하는 데에 필요한 키 트리(200) 부분들을 포함한다. 또한, 데이터 저장 장치(420)는 해시 함수들(H0및 H1)(440)을 포함한다. 또한, 도 9와 관련하여 하기에서 설명되는 바와 같이, 데이터 저장 장치(420)는 암호해독 처리(900)를 포함한다. 일반적으로, 암호해독 처리(900)는 수신된 프로그램 식별자(p)와 저장된 권한부여 정보(600)를 이용하여, 고객이 권한을 부여받은 프로그램을 암호해독하여 프로그램 키(Kp)를 유도한 다음, 이 프로그램 키(Kp)를 이용하여 프로그램을 암호해독한다.
도 5는 주어진 빌링 주기 동안 예를 들어 프로그램이 속해있는 패키지들 및 해당하는 프로그램 식별자(P)를 포함하는 헤드 엔드 서버(300)에 의해 전송될 각 프로그램(P)에 정보를 저장하는 예시적인 프로그램 데이터베이스(500)를 나타낸다. 프로그램 데이터베이스(500)는 각각 다른 프로그램과 관련된 레코드들(505-520)과 같은 다수의 레코드들을 보유한다. 필드(525) 내에서 프로그램 이름으로 확인되는 각 프로그램에 대하여, 프로그램 데이터베이스(500)는 필드(530)내에는 프로그램이 속하는 해당 패키지의 표시를, 필드(535) 내에는 해당하는 프로그램 식별자(p)를 포함한다.
도 6은 고객이 권한을 부여받은 프로그램들에 대하여 프로그램 키들(Kp)을 유도하는 데에 필요한 키 트리(200) 부분들을 포함한다. 상기 설명한 바와 같이, T(u)는 노드(u)에 루트된 서브트리를 나타내거나, 또는 노드(u)의 서브트리 내의 리프 노드들(240-247)에 해당하는 프로그램 식별자들(p)의 세트를 나타내는 데에 이용된다. 예를 들어, 만일 고객이 리프 노드들(240-243)에 해당하는 네 개의 프로그램들을 수신할 수 있는 권한을 부여받는 다면, 권한부여 정보는 노드(220)에 관련된 중간 키(intermediate key)로 구성될 것이다. 이러한 방식에 있어서, 필요할 경우 노드(220)의 서브트리 내의 각 노드(230, 232, 240-243)에 대한 프로그램 키들(Kp)을 유도하는 데에 적절한 해시 함수들(H0및 H1)(440)이 이용될 수 있다.
도 6에 나타낸 예시적인 권한부여 데이터베이스(600)는 리프 노드들(240-243)에 해당하는 네 개의 프로그램들 뿐 아니라 리프 노드들(246-247)에 해당하는 두 개의 프로그램들을 수신하도록 권한을 부여받은 고객에 해당한다. 따라서, 권한부여 데이터베이스(600) 내에 기록된 권한부여 정보는 노드(220) 및 노드(236)와 관련된 중간 키들로 구성된다. 각 노드(220 및 236)에 대하여, 권한부여 데이터베이스(600) 내에 기록된 권한부여 정보는 각각의 중간 키의 값(K10및 K11) 및 해당하는 부분 프로그램 식별자(p)의 표시를 포함한다. 권한부여 정보(600)가 고객에 의해 선택된 프로그램들의 패키지를 근거로 하여 권한부여 정보 분산 처리(700)에 의해 발생되는 방법은 도 7에 관련하여 하기에서 설명된다.
프로그램 패키징
본 발명의 트리 구성을 이용하여 가변 크기를 갖는 많은 프로그램들의 세트에 대한 작은 권한부여가 설정될 수 있다. 목표 세트(S)는 패키지된 프로그램들의 세트을 이용하여 설정된다. 서브트리들이 목표 세트(S)를 하기와 같이 정확하게 포함하는 트리 노드들의 최소 세트가 얻어진다:
패키지(S)에 대한 권한부여 정보는 T(S)의 노드들에서 보유되는 중간 키(K1)의 세트이다. 상기에서 나타낸 바와 같이, 이러한 키들의 세트는 셋탑 단말기(400)가 S 내의 프로그램들을 정확하게 암호해독하고 다른 것들은 암호해독하지 않을 수 있게 한다. 본 발명의 트리 구성은 원칙적으로 모든 임의 목표 세트(S)에 대하여 권한부여 정보를 생성할 수 있다. 그러나, 만일 프로그램 식별자들(p)이 임의로 할당된다면, 권한부여 정보는 셋탑 단말기(400)의 한정된 보안 메모리에 대하여 상당히 커질 수도 있다.
처리
상기 설명한 바와 같이, 헤드 엔드 서버(300)는 도 7에 나타낸 권한부여 정보 분산 처리(700)를 실행하여, 각 고객이 권한을 부여받은 프로그램들을 액세스하는 데에 요구되는 권한부여 정보(600)를 발생 및 분산시킨다. 상기 설명한 바와 같이, 권한부여 정보(600)는 중간 키의 값(K1), 및 고객이 권한을 부여받은 프로그램들에 대하여 프로그램 키들(Kp)을 유도하는 데에 필요한 키 트리(200)의 각 노드에 대한 해당하는 부분 프로그램 식별자(p)의 표시로 구성된다.
따라서, 권한부여 정보 분산 처리(700)는 먼저 단계(710)에서 고객에 의해 선택된 프로그램을 확인한다. 이후, 권한부여 정보 분산 처리(700)는 서브트리들이 목표 세트(S)를 정확하게 포함하는 트리 노드들 T(S)의 최소 세트를 구한다. 목표 세트(S)는 단계(720) 동안 연속적인 프로그램 식별자들(p)의 최대 분리 간격들로 분해된다. 2진 표현에 해당하는 정수들이 연속적일 경우 두 개의 프로그램 식별자들(p)은 연속적인 것으로 간주된다. 이렇게 되면, 단계(730) 동안 각 간격에 대한 커버 T(S)가 발견된다. 중간 키들(K)의 세트, 및 각 간격에 대한 커버 T(S)의 노드들에서 보유되는 해당하는 부분 프로그램 식별자들(p)이 단계(740)에서 발생된다. 마지막으로, 발생된 권한부여 정보는, 단계(760) 동안 프로그램 제어가 종료되기 전에, 단계(750) 동안 헤드 엔드 서버(300)에 의해 셋탑 단말기(400)로 다운로드 된다.
목표 세트(S) 내의 간격들의 수는 I(S)로서 언급된다. 프로그램 식별자들(p)의 단일 간격에 대하여 커버 T(S)를 계산하기 위해서는, n개의 트리 노드들이 순서대로 깊이(n)의 키 트리(200) 내에서 조사되어야 한다. 따라서, 권한부여 정보 분산 처리(700)의 시간 복잡성(time complexity)은 I(S)n의 정도이다. 마찬가지로, 최소 커버 T(S)의 크기는 I(S)n 정도이다. 관련된 내용을 갖는 프로그램들에는 이들이 효율적으로 패키지될 수 있도록 하는 프로그램 식별자들(p)이 할당되어야 한다. 어떠한 실행에 있어서, 기본적인 패키지들은 비트 접두사(μ)를 갖는 모든 프로그램 식별자들(p)로 구성된다. 이러한 단일 주제 패키지에 대한 권한부여는 키 트리(200) 내의 단일키이다. 또한, 다중 주제 패키지들은 어떠한 부작용 없이 조립된다. 권한부여 정보는 다중 주제 패키지를 구성하는 개별적인 주제들에 대한 키들의 세트를 단순화한다. 본 발명에 따르면, 접두사(μ)에 의해 규정되는 패키지는 셋탑 단말기(400)가 동일한 길이를 갖는 접두사 0을 갖는 프로그램들을 암호해독할 수 없게 한다.
상기 설명한 바와 같이, 헤드 엔드 서버(300)는 도 8에 나타낸 프로그램 분산 처리(800)을 실행시켜, 프로그램에 할당된 프로그램 식별자(p)에 근거 하여 프로그램 키(Kp)와, 그리고 프로그램 식별자(p)에 의해 그 프로그램을 암호화하여 전송하기 위하여 마스터 키(m)를 유도한다. 실질적인 전송 단계 이외의 프로그램 분산 처리(800)는 오프라인으로 또는 실시간으로 실행될 수 있다. 도 8에 예시한 바와 같이, 프로그램 분산 처리(800)는 전송된 프로그램을 확인함으로써 단계(810) 동안 본 발명의 원리를 구현하는 처리로 시작된다.
이후, 프로그램 분산 처리(800)는 단계(820) 동안 프로그램 데이터베이스(500)로부터 그 프로그램에 해당하는 프로그램 식별자(p)를 검색한 다음, 단계(830) 동안 그 프로그램에 해당하는 프로그램 키(Kp)를 계산한다. 이후, 이전 단계 동안 계산된 프로그램 키(Kp)를 이용하여 단계(840) 동안 프로그램이 암호화될 것이다. 마지막으로, 프로그램 분산 처리(800)는 단계(860) 동안 프로그램 제어가 종료되기 전에, 프로그램 식별자(p)와 함께 암호화된 프로그램을 전송할 것이다. 프로그램 식별자(p)는 프로그램 정보의 전송 내내 주기적으로 전송되어 인터리브될 수 있으며, 이에 따라 고객은 그 프로그램 동안에 채널들을 변경할 수 있고 프로그램을 암호해독하는 데에 필요한 프로그램 키(Kp)를 유도할 수 있음을 주목하자. 변형 실시예에서, 프로그램 식별자(p)는 예컨대 바커(Barker) 채널과 같은 개별적인 제어 채널에 연속적으로 전송될 수 있다.
상기 설명한 바와 같이, 셋탑 단말기(400)는 도 9에 나타낸 바와 같이 암호해독 처리(900)을 실행하는데, 수신된 프로그램 식별자(p) 및 저장된 권한부여 정보(600)를 이용하여 고객이 권한을 부여받은 프로그램을 암호해독하기 위하여 프로그램 키(Kp)를 유도한 다음, 이 프로그램 키(Kp)를 이용하여 프로그램을 암호해독한다. 도 9에 예시한 바와 같이, 암호해독 처리(900)는 특정한 채널에 동조시키는 고객의 명령을 수신하게 되면, 단계(910) 동안 본 발명의 원리를 구현하는 처리가 시작된다.
이후, 셋탑 단말기(400)는 단계(920) 동안, 암호화된 프로그램 및 전송된 프로그램 식별자(p)를 포함하는 적절한 신호를 수신할 것이다. 이후, 암호해독 처리(900)는 단계(930) 동안 권한부여 데이터베이스(600)로부터 저장된 권한부여 정보를 검색한다. 단계(940) 동안에는 전송된 프로그램에 관련된 결정을 하는 테스트가 수행된다. 만일 단계(940) 동안, 수신된 프로그램 식별자(p)의 최상위 비트들과 일치하는 부분 프로그램 식별자(p)를 갖는 엔트리가 권한부여 데이터베이스(600) 내에 존재하지 않는 것으로 결정된다면, 고객은 선택된 프로그램에 대하여 권한을 부여받지 못하게 되며 단계(980) 동안 프로그램 제어는 종료된다.
그러나, 만일 수신된 프로그램 식별자(p)의 최상위 비트들과 일치하는 부분 프로그램 식별자(p)를 갖는 엔트리가 권한부여 데이터베이스(600) 내에 존재한다면, 고객은 선택된 프로그램에 대하여 권한을 부여받게 된다. 따라서, 권한부여 데이터베이스(600)의 엔트리로부터 검색된 중간 키(K1)를 이용하여 단계(960) 동안 프로그램 키(Kp)가 계산된다. 좀 더 상세하게 설명하면, 프로그램 키(Kp)는 다음과 같은 프로그램 식별자(p)의 n-r 하위 비트들 각각의 값에 의해 명령되는 적절한 해시 함수(H0및 H1)를 작동시킴으로써 계산된다.
Kp=Hpn(...Hpr+1(Hpr(KI))...)
마지막으로, 단계(980) 동안 프로그램 제어가 종료되기 전에, 단계(970) 동안 유도된 프로그램 키(Kp)를 이용하여 프로그램이 암호해독된다. 만일 검색된 프로그램이 고객의 권한이 부여된 부분이 아니라면, 권한부여 데이터베이스(600) 내에는 전송된 프로그램에 의해 수신된 프로그램 식별자(p)의 하위 비트들과 일치하는 부분 프로그램 식별자(p)를 갖는 어떠한 권한부여 정보도 없다는 것을 주목하자.
또한, 암호해독 처리(900)은 고객이 암호해독 키들을 유도하고자 시도하기 전에 특정한 채널을 요구하는 것을 기다린 다음, 상기 설명한 바 대로 요구된 채널에 대하여 그 고객이 권을 부여받았는 지를 결정할 수 있거나, 또는 암호해독 처리(900)은 모든 채널들을 주기적으로 스캔하여 전송된 프로그램 식별자(p)를 얻게 되며, 이에 따라 데이터 저장 장치(420) 내에 저장하기 위한 암호해독 키들을 유도하고 고객의 권한부여를 미리결정한다는 것을 주목하자.
적당한 해시 함수
상기 설명한 바와 같이, 만일 해시 함수(H)가 의사 랜덤 비트 발생기라면, p→Kp 맵핑은 증명가능한 의사 랜덤의 함수이다. 따라서, 만일 실제 해시 함수(H)가 암호기법적으로 강력하다면, 암호화 키들은 예측이 불가능해질 것이다. 이에 따라, 만일 침해자가 단지 암호화된 프로그램 방송을 액세스하였다면, 본 발명의 트리 구성을 이용하여 키들이 발생된 정보는 암호를 푸는데에 도움이 되지 못할 것 같다. 따라서, 본질적으로 유일한 관심사는 비디오 암호화 알고리즘이 알려진 평문 공격을 견딜 수 있음을 보장하는 것이다.
해시 함수(H)는 두 가지의 특성을 가져야 한다. 첫 번째로, 해시 함수(H)에 대한 이미지 H0(x) 또는 H1(x)의 절반인 주어진 입력(x)을 계산하기가 어려워야 한다. 이는 이미지의 두 개의 절반들이 알려져있을 때 조차도 반전시키기가 어려운 모든 해시 함수(H)에 대하여 확실하게 유지된다. 또한, H1(x)가 알려져있을 때 조차도 H0(x)을 계산하기가 어려워야 하며, H0(x)가 알려져있을 때 조차도 H1(x)을 계산하기가 어려워야 한다. 원칙적으로, 해시 함수(H)가 반전되기 어려울지라도, 나머지 절반이 알려져있을 때 잃어버린 절반 키를 계산하는 것은 더 쉬울 수도 있다. 만일 그렇다면, 노드(u)에 대한 프로그램 키(Kp)를 알고있는 침입자는 형제 노드(v)에 대한 키를 계산한 다음, 노드(v)의 서브트리 내의 모든 프로그램들에 대한 키를 계산할 수도 있다.
본 발명에 따른 트리 구성의 한 장점은 합쳐져 침입된 권한부여들을 비효율적으로 한다는 것이다. 한 쌍의 형제 프로그램들(p1 및 p2) 및 그들의 부모 노드(u)를 고려하자. 침입자가 H(KP(u))의 두 개의 절반인 프로그램들(p1 및 p2)에 해당하는 프로그램 키(Kp)를 알고있다고 가정하자. 침입자는 여전히 H를 반전시키지 못하고 Kp(u)를 계산하지 못하는데, 이는 H가 암호화된 해시 함수이기 때문이다. 따라서, 합쳐져 침입된 권한부여들은 좀 더 치밀한 Kp(u) 보다는 Kp(p1) 및 Kp(p2)를 포함해야 할 것이다. 따라서, 값싼 (하지만 다른) 권한부여를 이용하여 다중의 셋탑 단말기들(400)로 분해시키는 것은 침입자를 위한 좋은 방법이 될 수 없는데, 이는 결합된 권한부여가 매우 커질 것이기 때문이다.
상기 설명한 바와 같이, 적절한 의사 랜덤 해시 함수들은 예를 들어 J, ACM33, 792-807(1986)에 개시된 오. 골드라이크(O. Goldreich) 등의 "랜덤 함수들을 구성하는 방법(How to Construct Random Functions)"에서 설명되며, 이는 상기에서 참조로서 인용되었다.
본 원에서 설명된 실시예들 및 변형들은 단지 본 발명의 원리를 설명하기 위한 것들이며, 당업자에게 있어 본 발명의 범위 및 원리를 벗어나지 않으면서 다양한 변경들이 이루어질 수 있음은 자명하다.
본 발명에 따르면, 정보의 보안성을 증진시킬 수 있다.

Claims (29)

  1. 엔드 유저로의 액세스를 제한하는 프로그램 전송 방법으로서,
    상기 프로그램에 2진 값을 갖는 프로그램 식별자를 할당하는 단계와;
    적어도 하나의 마스터 키를 정의하는 단계와;
    프로그램 키를 이용하여 상기 프로그램을 암호화하는 단계와, 여기서 상기 프로그램 키는 상기 프로그램 식별자의 2진 값에 근거하여 적어도 하나의 해시 함수를 상기 마스터 키에 적용함으로써 얻어지며; 그리고
    상기 암호화된 프로그램을 상기 프로그램 식별자와 함께 상기 엔드 유저에 전송하는 단계로 구성되는 것을 특징으로 하는 프로그램 전송 방법.
  2. 제 1 항에 있어서,
    상기 프로그램 식별자는 n 비트로 구성되고, 상기 해시 함수들중 하나는 상기 프로그램 식별자의 대응 비트 값에 따라 상기 프로그램 식별자의 n 비트 위치들 각각에 대해 적용되는 것을 특징으로 하는 프로그램 전송 방법.
  3. 제 1 항에 있어서,
    상기 엔드 유저가 수신한 상기 프로그램 세트에 근거하여, 권한 부여 정보를 상기 엔드 유저에 제공하는 단계를 더 포함하는 것을 특징으로 하는 프로그램 전송 방법.
  4. 제 3 항에 있어서,
    상기 권한부여 정보는 상기 엔드 유저가 수신한 상기 프로그램 세트에 근거하여 키 트리의 부분을 포함하는 것을 특징으로 하는 프로그램 전송 방법.
  5. 제 3 항에 있어서,
    상기 엔드 유저는 상기 수신된 프로그램 식별자를 이용하여, 상기 저장된 권한부여 정보로부터 상기 프로그램 키를 유도하는 것을 특징으로 하는 프로그램 전송 방법.
  6. 제 1 항에 있어서,
    상기 프로그램 식별자는 상기 암호화된 프로그램의 전송과 인터리브되는 것을 특징으로 하는 프로그램 전송 방법.
  7. 제 1 항에 있어서,
    상기 프로그램 식별자가 제어 채널을 통해 전송되는 것을 특징으로 하는 프로그램 전송 방법.
  8. 복수의 엔드 유저에 프로그램을 전송하는 방법으로서,
    프로그램 키를 이용하여 상기 프로그램을 암호화하는 단계와, 여기서 상기 프로그램은 프로그램 식별자를 갖고 그리고 상기 프로그램 키는 상기 프로그램 식별자의 각 비트 위치의 2진 값에 근거하여 마스터 키에 해시 함수를 반복적으로 적용함으로써 얻어지며; 그리고
    상기 암호화된 프로그램 및 상기 프로그램 식별자를 상기 엔드 유저에 전송하는 단계로 구성되는 것을 특징으로 하는 프로그램 전송 방법.
  9. 제 8 항에 있어서,
    상기 프로그램 식별자는 n 비트로 구성되고, 해시 함수가 상기 프로그램 식별자의 대응 비트 값에 따라 상기 프로그램 식별자의 n 비트 위치들 각각에 대해 적용되는 것을 특징으로 하는 프로그램 전송 방법.
  10. 제 8 항에 있어서,
    상기 엔드 유저가 수신한 프로그램 세트에 근거하여, 권한부여 정보를 상기 엔드 유저에 제공하는 단계를 더 포함하는 것을 특징으로 하는 프로그램 전송 방법.
  11. 제 10 항에 있어서,
    상기 권한부여 정보는 상기 엔드 유저가 수신한 프로그램 세트에 근거하여 키 트리의 부분을 포함하는 것을 특징으로 하는 프로그램 전송 방법.
  12. 제 10 항에 있어서,
    상기 엔드 유저는 상기 수신된 프로그램 식별자를 이용하여, 상기 저장된 권한부여 정보로부터 상기 프로그램 키를 유도하는 것을 특징으로 하는 프로그램 전송 방법.
  13. 제 8 항에 있어서,
    상기 프로그램 식별자가 상기 암호화된 프로그램의 전송과 인터리브되는 것을 특징으로 하는 프로그램 전송 방법.
  14. 제 8 항에 있어서,
    상기 프로그램 식별자는 제어 채널을 통해 전송되는 것을 특징으로 하는 프로그램 전송 방법.
  15. 적어도 하나의 프로그램 패키지와 관련된 프로그램을 복수의 엔드 유저에 전송하는 방법으로서,
    상기 엔드 유저가 수신한 프로그램 세트에 근거하여, 권한부여 정보를 상기 엔드 유저에 전송하는 단계와;
    프로그램 키를 이용하여 상기 프로그램을 암호화하는 단계와, 여기서 상기 프로그램은 프로그램 식별자를 갖고 그리고 상기 프로그램 키는 상기 프로그램 식별자의 각 비트 위치의 2진 값에 근거하여 마스터 키에 해시 함수를 반복적으로 적용함으로써 얻어지며; 그리고
    상기 암호화된 프로그램과 함께 상기 프로그램 식별자를 상기 엔드 유저에 전송하는 단계로 구성되며, 상기 엔드 유저는 만일 상기 엔드 유저가 상기 프로그램을 사용할 권한이 있으면 상기 저장된 권한부여 정보로 부터 상기 프로그램 키를 유도하는 것을 특징으로 하는 프로그램 전송 방법.
  16. 제 15 항에 있어서,
    상기 프로그램 식별자는 n 비트로 구성되고, 상기 해시 함수들중 하나가 상기 프로그램 식별자의 대응 비트 값에 따라 상기 프로그램 식별자의 n 비트 위치들 각각에 대해 적용되는 것을 특징으로 하는 프로그램 전송 방법.
  17. 제 15 항에 있어서,
    상기 권한부여 정보는 상기 엔드 유저가 수신한 프로그램 세트에 근거하여 키 트리의 부분을 포함하는 것을 특징으로 하는 프로그램 전송 방법.
  18. 제 15 항에 있어서,
    상기 엔드 유저는 상기 수신된 프로그램 식별자를 이용하여, 상기 저장된 권한부여 정보로부터 상기 프로그램 키를 유도하는 것을 특징으로 하는 프로그램 전송 방법.
  19. 제 15 항에 있어서,
    상기 프로그램 식별자가 상기 암호화된 프로그램의 전송과 인터리브되는 것을 특징으로 하는 프로그램 전송 방법.
  20. 제 15 항에 있어서,
    상기 프로그램 식별자는 제어 채널을 통해 전송되는 것을 특징으로 하는 프로그램 전송 방법.
  21. 암호화된 프로그램을 디코딩하는 방법으로서,
    상기 프로그램의 제공자로부터 권한부여 정보를 수신하는 단계와, 여기서 상기 권한부여 정보는 고객에 의해 수신된 프로그램 세트에 근거하여 키 트리의 부분을 포함하며;
    상기 암호화된 프로그램 및 프로그램 식별자를 수신하는 단계와, 여기서 상기 암호화된 프로그램은 프로그램 키로 암호화된 것이며;
    상기 프로그램 식별자 및 상기 키 트리의 상기 저장된 부분으로 부터 상기 프로그램 키를 유도하는 단계와;
    상기 프로그램 키를 이용하여 상기 암호화된 프로그램을 암호해독 하는 단계로 구성되는 것을 특징으로 하는 암호화된 프로그램의 디코딩 방법.
  22. 제 21 항에 있어서,
    상기 프로그램 식별자는 n 비트로 구성되고, 상기 마스터 키는 상기 키 트리의 루트에 놓이며, 상기 키 트리는 n개의 트리 레벨이 생성될 때까지 해시 함수를 각 노드에 적용함으로써 발생되는 것을 특징으로 하는 암호화된 프로그램의 디코딩 방법.
  23. 암호화된 프로그램을 디코딩하는 방법으로서
    상기 프로그램의 제공자로부터 권한부여 정보를 수신하는 단계와, 여기서 상기 권한부여 정보는 고객에 의해 수신된 프로그램 세트에 근거하여 키 트리의 부분으로 부터 적어도 하나의 중간 키를 포함하며;
    상기 암호화된 프로그램 및 프로그램 식별자를 수신하는 단계와, 여기서 상기 암호화된 프로그램은 프로그램 키로 암호화된 것이며;
    상기 프로그램 식별자의 2진 값에 근거하여 해시 함수를 상기 중간 키에 반복적으로 적용함으로써 상기 프로그램 식별자 및 상기 저장된 중간 키로 부터 상기 프로그램 키를 유도하는 단계와; 그리고
    상기 프로그램 키를 이용하여 상기 암호화된 프로그램을 암호해독하는 단계로 구성되는 것을 특징으로 하는 암호화된 프로그램의 디코딩 방법.
  24. 제 23 항에 있어서,
    상기 프로그램 식별자는 n 비트로 구성되고, 상기 중간 키는 상기 키 트리의 레벨 r 에 있는 중간 노드에 대응하며, 상기 해시 함수가 상기 중간 키에 n-r 번 적용되는 되는 것을 특징으로 하는 암호화된 프로그램의 디코딩 방법.
  25. 엔드 유저로의 액세스를 제한하는 프로그램을 전송하는 시스템으로서,
    마스터 키와 컴퓨터 판독가능 코드를 저장하는 메모리와; 그리고 동작시 상기 메모리에 연결되는 프로세서로 구성되며,
    상기 프로세서는
    상기 프로그램에 2진 값을 갖는 프로그램 식별자를 할당하고;
    적어도 하나의 마스터 키를 정의하고;
    프로그램 키를 이용하여 상기 프로그램을 암호화하고, 여기서 상기 프로그램 키는 상기 프로그램 식별자의 2진 값에 근거하여 적어도 하나의 해시 함수를 상기 마스터 키에 적용함으로써 얻어지며; 그리고
    상기 암호화된 프로그램을 상기 프로그램 식별자와 함께 상기 엔드 유저에 전송하도록 된 것을 특징으로 하는 프로그램 전송 시스템.
  26. 엔드 유저로의 액세스를 제한하는 프로그램을 전송하는 시스템으로서,
    마스터 키와 컴퓨터 판독가능 코드를 저장하는 메모리와; 그리고 동작시 상기 메모리에 연결되는 프로세서로 구성되며,
    상기 프로세서는,
    상기 프로그램에 2진 값을 갖는 프로그램 식별자를 할당하고;
    적어도 하나의 마스터 키를 정의하고;
    프로그램 키를 이용하여 상기 프로그램을 암호화하고, 여기서 상기 프로그램은 프로그램 식별자를 갖고, 상기 프로그램 키는 상기 프로그램 식별자의 각 비트 위치의 2진 값에 근거하여 해시 함수를 마스터 키에 반복적으로 적용함으로써 얻어지며; 그리고
    상기 암호화된 프로그램 및 상기 프로그램 식별자를 상기 엔드 유저에 전송하도록 된 것을 특징으로 하는 프로그램 전송 시스템.
  27. 암호화된 프로그램을 디코딩하는 시스템으로서,
    마스터 키와 컴퓨터 판독가능 코드를 저장하는 메모리와; 그리고 동작시 상기 메모리에 연결되는 프로세서로 구성되며,
    상기 프로세서는
    상기 프로그램의 제공자로부터 권한부여 정보를 수신하고, 여기서 상기 권한부여 정보는 고객에 의해 수신된 프로그램 세트에 근거하여 키 트리의 부분을 포함하며;
    상기 암호화된 프로그램 및 프로그램 식별자를 수신하고, 여기서 상기 암호화된 프로그램은 프로그램 키로 암호화된 것이며;
    상기 프로그램 식별자 및 상기 키 트리의 상기 저장된 부분으로 부터 상기 프로그램 키를 유도하고; 그리고
    상기 프로그램 키를 이용하여 상기 암호화된 프로그램을 암호해독 하도록 된 것을 특징으로 하는 암호화된 프로그램의 디코딩 시스템.
  28. 컴퓨터 판독가능 코드 수단이 수록된 컴퓨터 판독가능 매체를 포함하며,
    상기 컴퓨터 판독가능 프로그램 코드 수단이
    프로그램에 2진 값을 갖는 프로그램 식별자를 할당하는 단계와;
    적어도 하나의 마스터 키를 정의하는 단계와;
    프로그램 키를 이용하여 상기 프로그램을 암호화하는 단계와, 여기서 상기 프로그램 키는 상기 프로그램 식별자의 2진 값에 근거하여 적어도 하나의 해시 함수를 상기 마스터 키에 적용함으로써 얻어지며; 그리고
    상기 암호화된 프로그램을 상기 프로그램 식별자와 함께 상기 엔드 유저에 전송하는 단계로 구성되는 것을 특징으로 하는 제조물.
  29. 컴퓨터 판독가능 코드 수단이 수록된 컴퓨터 판독가능 매체를 포함하며,
    상기 컴퓨터 판독가능 프로그램 코드 수단이
    프로그램의 제공자로부터 권한부여 정보를 수신하는 단계와, 여기서 상기 권한부여 정보는 고객에 의해 수신된 프로그램 세트에 근거하여 키 트리의 부분을 포함하며;
    상기 암호화된 프로그램 및 프로그램 식별자를 수신하는 단계와, 여기서 상기 암호화된 프로그램은 프로그램 키로 암호화된 것이며;
    상기 프로그램 식별자 및 상기 키 트리의 상기 저장된 부분으로 부터 상기 프로그램 키를 유도하는 단계와;
    상기 프로그램 키를 이용하여 상기 암호화된 프로그램을 암호해독 하는 단계로 구성되는 것을 특징으로 하는 제조물.
KR1020000023887A 1999-05-07 2000-05-04 프로그램 전송 시스템 및 방법, 암호화된 프로그램의 디코딩 시스템 및 방법, 제조물 KR100651336B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/307,643 US6735313B1 (en) 1999-05-07 1999-05-07 Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers
US09/307,643 1999-05-07

Publications (2)

Publication Number Publication Date
KR20010007044A true KR20010007044A (ko) 2001-01-26
KR100651336B1 KR100651336B1 (ko) 2006-11-28

Family

ID=23190607

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000023887A KR100651336B1 (ko) 1999-05-07 2000-05-04 프로그램 전송 시스템 및 방법, 암호화된 프로그램의 디코딩 시스템 및 방법, 제조물

Country Status (9)

Country Link
US (1) US6735313B1 (ko)
EP (1) EP1051036B1 (ko)
JP (1) JP2001036517A (ko)
KR (1) KR100651336B1 (ko)
CN (1) CN1273490A (ko)
AU (1) AU3024400A (ko)
BR (1) BR0007333A (ko)
CA (1) CA2307157A1 (ko)
DE (1) DE60045060D1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100430147B1 (ko) * 2000-03-15 2004-05-03 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터 액세스 제어
KR100465950B1 (ko) * 2001-02-09 2005-01-13 캐논 가부시끼가이샤 정보 처리 장치 및 그 제어 방법, 컴퓨터 프로그램을 저장한 저장 매체
KR100924773B1 (ko) * 2002-09-16 2009-11-03 삼성전자주식회사 메타데이터 암호화 및 복호화 방법과 암호화된 메타데이터관리 방법 및 그 시스템
KR101133988B1 (ko) * 2010-04-23 2012-04-05 한국과학기술원 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템
KR101313869B1 (ko) * 2004-08-12 2013-10-01 씨엠엘에이 엘엘씨 보안성을 향상시키는 순열 데이터 변환
US8737608B2 (en) 2004-08-12 2014-05-27 Cmla, Llc Exponential data transform to enhance security

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3659791B2 (ja) * 1998-03-23 2005-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 小時間鍵生成の方法及びシステム
DE69935913T2 (de) * 1998-07-02 2008-01-10 Cryptography Research Inc., San Francisco Leckresistente aktualisierung eines indexierten kryptographischen schlüssels
US6760441B1 (en) * 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
JP2001352321A (ja) 2000-04-06 2001-12-21 Sony Corp 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム提供媒体
US20020025045A1 (en) * 2000-07-26 2002-02-28 Raike William Michael Encryption processing for streaming media
US20020071565A1 (en) * 2000-12-11 2002-06-13 Kurn David Michael Software process pre-authorization scheme for applications on a computer system
AU1547402A (en) 2001-02-09 2002-08-15 Sony Corporation Information processing method/apparatus and program
JP3957978B2 (ja) * 2001-02-09 2007-08-15 株式会社東芝 暗号化システム、データ利用デバイス、及び、暗号化システムのデータ再生制御方法
US7395425B2 (en) * 2001-03-29 2008-07-01 Matsushita Electric Industrial Co., Ltd. Data protection system that protects data by encrypting the data
JP2002319932A (ja) * 2001-04-19 2002-10-31 Sony Corp 情報記録装置、情報再生装置、および情報記録方法、情報再生方法、並びにプログラム
FR2825877B1 (fr) 2001-06-12 2003-09-19 Canal Plus Technologies Procede de controle d'acces a un programme crypte
US20030002668A1 (en) * 2001-06-30 2003-01-02 Gary Graunke Multi-level, multi-dimensional content protections
JP4934923B2 (ja) * 2001-08-09 2012-05-23 ソニー株式会社 情報記録装置、情報再生装置、および情報記録方法、情報再生方法、並びにコンピュータ・プログラム
US6889210B1 (en) * 2001-12-12 2005-05-03 Pss Systems, Inc. Method and system for managing security tiers
US8065713B1 (en) 2001-12-12 2011-11-22 Klimenty Vainstein System and method for providing multi-location access management to secured items
US7921284B1 (en) 2001-12-12 2011-04-05 Gary Mark Kinghorn Method and system for protecting electronic data in enterprise environment
US7921450B1 (en) 2001-12-12 2011-04-05 Klimenty Vainstein Security system using indirect key generation from access rules and methods therefor
US10033700B2 (en) 2001-12-12 2018-07-24 Intellectual Ventures I Llc Dynamic evaluation of access rights
US7260555B2 (en) 2001-12-12 2007-08-21 Guardian Data Storage, Llc Method and architecture for providing pervasive security to digital assets
US7783765B2 (en) 2001-12-12 2010-08-24 Hildebrand Hal S System and method for providing distributed access control to secured documents
US7921288B1 (en) 2001-12-12 2011-04-05 Hildebrand Hal S System and method for providing different levels of key security for controlling access to secured items
US10360545B2 (en) 2001-12-12 2019-07-23 Guardian Data Storage, Llc Method and apparatus for accessing secured electronic data off-line
US7565683B1 (en) 2001-12-12 2009-07-21 Weiqing Huang Method and system for implementing changes to security policies in a distributed security system
USRE41546E1 (en) 2001-12-12 2010-08-17 Klimenty Vainstein Method and system for managing security tiers
US7178033B1 (en) 2001-12-12 2007-02-13 Pss Systems, Inc. Method and apparatus for securing digital assets
US8006280B1 (en) 2001-12-12 2011-08-23 Hildebrand Hal S Security system for generating keys from access rules in a decentralized manner and methods therefor
US7930756B1 (en) 2001-12-12 2011-04-19 Crocker Steven Toye Multi-level cryptographic transformations for securing digital assets
US7380120B1 (en) 2001-12-12 2008-05-27 Guardian Data Storage, Llc Secured data format for access control
US7681034B1 (en) 2001-12-12 2010-03-16 Chang-Ping Lee Method and apparatus for securing electronic data
US7950066B1 (en) 2001-12-21 2011-05-24 Guardian Data Storage, Llc Method and system for restricting use of a clipboard application
US7340603B2 (en) 2002-01-30 2008-03-04 Sony Corporation Efficient revocation of receivers
US8176334B2 (en) 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
US7353395B2 (en) 2002-03-21 2008-04-01 Ntt Docomo Inc. Authenticated ID-based cryptosystem with no key escrow
US7349538B2 (en) * 2002-03-21 2008-03-25 Ntt Docomo Inc. Hierarchical identity-based encryption and signature schemes
CN1633776A (zh) 2002-04-15 2005-06-29 美国多科摩通讯研究所股份有限公司 利用双线性映射的签名方案
US8613102B2 (en) 2004-03-30 2013-12-17 Intellectual Ventures I Llc Method and system for providing document retention using cryptography
WO2004021638A1 (en) 2002-08-28 2004-03-11 Docomo Communications Laboratories Usa, Inc. Certificate-based encryption and public key infrastructure
US7512810B1 (en) 2002-09-11 2009-03-31 Guardian Data Storage Llc Method and system for protecting encrypted files transmitted over a network
US20040073954A1 (en) * 2002-10-09 2004-04-15 General Instrument Corporation Method of protecting recorded multimedia content against unauthorized duplication
US7836310B1 (en) 2002-11-01 2010-11-16 Yevgeniy Gutnik Security system that uses indirect password-based encryption
US7890990B1 (en) 2002-12-20 2011-02-15 Klimenty Vainstein Security system with staging capabilities
JP2004265194A (ja) * 2003-03-03 2004-09-24 Matsushita Electric Ind Co Ltd 情報処理装置、および情報処理方法
CN100442839C (zh) * 2003-05-09 2008-12-10 华为技术有限公司 一种交互数字广播电视系统的信息传输方法及装置
KR100487208B1 (ko) * 2003-05-20 2005-05-04 삼성전자주식회사 방송통신 융합 시스템에서 스크램블화된 다수의 디지털방송 스트림에 대한 복합 스크램블 해제 장치 및 상기장치가 적용된 광가입자망
US8707034B1 (en) 2003-05-30 2014-04-22 Intellectual Ventures I Llc Method and system for using remote headers to secure electronic files
CN100378749C (zh) * 2003-06-23 2008-04-02 索尼电影娱乐公司 为数据加指纹的方法及装置
US7703140B2 (en) 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
US8127366B2 (en) 2003-09-30 2012-02-28 Guardian Data Storage, Llc Method and apparatus for transitioning between states of security policies used to secure electronic documents
US8103004B2 (en) * 2003-10-03 2012-01-24 Sony Corporation Method, apparatus and system for use in distributed and parallel decryption
US7694335B1 (en) * 2004-03-09 2010-04-06 Cisco Technology, Inc. Server preventing attacks by generating a challenge having a computational request and a secure cookie for processing by a client
US7707427B1 (en) 2004-07-19 2010-04-27 Michael Frederick Kenrich Multi-level file digests
KR101092543B1 (ko) * 2004-11-12 2011-12-14 삼성전자주식회사 브로드캐스트 암호화를 위한 사용자 키 관리 방법
US8316416B2 (en) * 2005-04-04 2012-11-20 Research In Motion Limited Securely using a display to exchange information
US9143323B2 (en) 2005-04-04 2015-09-22 Blackberry Limited Securing a link between two devices
EP1875655B1 (en) * 2005-04-25 2017-08-16 Nokia Technologies Oy Improved broadcast key-derivation
WO2007073766A1 (en) * 2005-12-29 2007-07-05 Telecom Italia S.P.A. A method for communicating entitlement data from a server, related server, client systems and computer program product
CN1859086B (zh) * 2005-12-31 2010-06-09 华为技术有限公司 一种内容分级访问控制系统和方法
WO2007087363A2 (en) * 2006-01-24 2007-08-02 Brown University Efficient content authentication in peer-to-peer networks
US7706534B2 (en) * 2006-02-28 2010-04-27 Nokia Corporation Pay per minute for DVB-H services
US7970138B2 (en) * 2006-05-26 2011-06-28 Syphermedia International Method and apparatus for supporting broadcast efficiency and security enhancements
KR20080010906A (ko) * 2006-07-28 2008-01-31 삼성전자주식회사 라이센스 관리 방법 및 그 장치
US7900252B2 (en) * 2006-08-28 2011-03-01 Lenovo (Singapore) Pte. Ltd. Method and apparatus for managing shared passwords on a multi-user computer
CN101150708B (zh) * 2007-10-23 2011-09-14 华为终端有限公司 实现节目隐藏的方法、系统以及装置
GB0915596D0 (en) * 2009-09-07 2009-10-07 St Microelectronics Res & Dev Encryption keys
CN101662659B (zh) * 2009-09-08 2011-07-13 中兴通讯股份有限公司 交互式网络电视童锁控制方法及电子节目菜单服务器
JP5552541B2 (ja) * 2009-12-04 2014-07-16 クリプトグラフィ リサーチ, インコーポレイテッド 検証可能な耐漏洩性暗号化および復号化
EP2373018B1 (en) * 2010-03-05 2012-05-09 Nagravision S.A. A method for controlling access to a plurality of channels by a receiver/decoder
US8788842B2 (en) * 2010-04-07 2014-07-22 Apple Inc. System and method for content protection based on a combination of a user PIN and a device specific identifier
US8510552B2 (en) 2010-04-07 2013-08-13 Apple Inc. System and method for file-level data protection
CN102971738A (zh) * 2010-05-06 2013-03-13 水宙责任有限公司 用于配置文件利用系统中的安全性的系统、方法和计算机可读介质
JP5670272B2 (ja) * 2011-07-19 2015-02-18 株式会社東芝 情報処理装置、サーバ装置およびプログラム
JP5992295B2 (ja) * 2012-11-02 2016-09-14 株式会社東芝 通信制御装置、通信装置およびプログラム
EP2775656A1 (en) 2013-03-04 2014-09-10 Thomson Licensing Device for generating an encrypted key and method for providing an encrypted key to a receiver
US9425967B2 (en) * 2013-03-20 2016-08-23 Industrial Technology Research Institute Method for certificate generation and revocation with privacy preservation
WO2015097834A1 (ja) * 2013-12-26 2015-07-02 株式会社東芝 通信制御装置、通信制御方法およびプログラム
WO2016112338A1 (en) * 2015-01-08 2016-07-14 Intertrust Technologies Corporation Cryptographic systems and methods
US20160316247A1 (en) * 2015-04-27 2016-10-27 Ericsson Ab Program and device class entitlements in a media platform
EP3304405A4 (en) * 2015-06-02 2019-01-09 K2View Ltd. SYSTEM AND METHOD FOR MANAGING A CLASSIFIED DATABASE
CN106846232B (zh) * 2017-01-05 2020-01-10 天津大学 基于完全三叉树结构的多幅彩色图像加密方法
EP3656081A1 (en) * 2017-07-18 2020-05-27 Legic Identsystems Ag Method and devices for communicating securely between devices
US20220006791A1 (en) * 2021-07-15 2022-01-06 Mohammed Mujib Alshahrani Secured Node Authentication and Access Control Model for IoT Smart City
CN113541948B (zh) * 2021-09-17 2021-12-21 深圳佳力拓科技有限公司 一种基于缺位密钥的数字电视节目播放方法和装置
WO2023067952A1 (ja) * 2021-10-22 2023-04-27 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、記録媒体

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309569A (en) * 1979-09-05 1982-01-05 The Board Of Trustees Of The Leland Stanford Junior University Method of providing digital signatures
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
NL8700930A (nl) * 1987-04-17 1988-11-16 Hollandse Signaalapparaten Bv Systeem van orthogonaal werkende codegeneratoren, radio's voorzien van een codegenerator en codegeneratoren van zo'n systeem.
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
US5282249A (en) 1989-11-14 1994-01-25 Michael Cohen System for controlling access to broadcast transmissions
EP0450841B1 (en) 1990-03-29 1996-08-21 Gte Laboratories Incorporated Video control system
US5418947A (en) * 1992-12-23 1995-05-23 At&T Corp. Locating information in an unsorted database utilizing a B-tree
US5381481A (en) * 1993-08-04 1995-01-10 Scientific-Atlanta, Inc. Method and apparatus for uniquely encrypting a plurality of services at a transmission site
US5432852A (en) 1993-09-29 1995-07-11 Leighton; Frank T. Large provably fast and secure digital signature schemes based on secure hash functions
US5434919A (en) * 1994-01-11 1995-07-18 Chaum; David Compact endorsement signature systems
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.
US5502767A (en) * 1994-05-27 1996-03-26 Sasuta; Michael Method for maintaining secure information synchronization on a control channel
US5485577A (en) * 1994-12-16 1996-01-16 General Instrument Corporation Of Delaware Method and apparatus for incremental delivery of access rights
US5761669A (en) 1995-06-06 1998-06-02 Microsoft Corporation Controlling access to objects on multiple operating systems
US6097811A (en) * 1995-11-02 2000-08-01 Micali; Silvio Tree-based certificate revocation system
DE19538385A1 (de) * 1995-10-14 1997-04-17 Deutsche Telekom Ag Verfahren zur Etablierung eines gemeinsamen Schlüssels für autorisierte Personen durch eine Zentrale
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
DE19649292A1 (de) * 1996-11-28 1998-06-04 Deutsche Telekom Ag Verfahren zum Sichern eines durch eine Schlüsselhierarchie geschützten Systems
JP3988172B2 (ja) * 1997-04-23 2007-10-10 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US6373948B1 (en) * 1997-08-15 2002-04-16 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using program identifiers
US6073122A (en) * 1997-08-15 2000-06-06 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using extended headers
JP3465813B2 (ja) * 1997-10-29 2003-11-10 日本ビクター株式会社 ディジタル放送受信装置及びディジタル情報記録再生装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100430147B1 (ko) * 2000-03-15 2004-05-03 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터 액세스 제어
KR100465950B1 (ko) * 2001-02-09 2005-01-13 캐논 가부시끼가이샤 정보 처리 장치 및 그 제어 방법, 컴퓨터 프로그램을 저장한 저장 매체
KR100924773B1 (ko) * 2002-09-16 2009-11-03 삼성전자주식회사 메타데이터 암호화 및 복호화 방법과 암호화된 메타데이터관리 방법 및 그 시스템
US7668316B2 (en) 2002-09-16 2010-02-23 Samsung Electronics Co., Ltd. Method for encrypting and decrypting metadata
KR101313869B1 (ko) * 2004-08-12 2013-10-01 씨엠엘에이 엘엘씨 보안성을 향상시키는 순열 데이터 변환
KR101328618B1 (ko) * 2004-08-12 2013-11-13 씨엠엘에이 엘엘씨 보안성을 향상시키는 순열 데이터 변환
US8737608B2 (en) 2004-08-12 2014-05-27 Cmla, Llc Exponential data transform to enhance security
KR101133988B1 (ko) * 2010-04-23 2012-04-05 한국과학기술원 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템

Also Published As

Publication number Publication date
CA2307157A1 (en) 2000-11-07
KR100651336B1 (ko) 2006-11-28
AU3024400A (en) 2000-11-09
CN1273490A (zh) 2000-11-15
EP1051036B1 (en) 2010-10-06
JP2001036517A (ja) 2001-02-09
DE60045060D1 (de) 2010-11-18
EP1051036A3 (en) 2002-08-21
BR0007333A (pt) 2001-08-07
US6735313B1 (en) 2004-05-11
EP1051036A2 (en) 2000-11-08

Similar Documents

Publication Publication Date Title
KR100651336B1 (ko) 프로그램 전송 시스템 및 방법, 암호화된 프로그램의 디코딩 시스템 및 방법, 제조물
JP3631617B2 (ja) アクセスが制限された番組を送信する方法
KR100317394B1 (ko) 암호화된프로그램송신및수신방법,복호화방법및제조물품
KR100424786B1 (ko) 해쉬키를이용한암호화서명의생성방법과재생방법및장치
Chor et al. Tracing traitors
US7480385B2 (en) Hierarchical encryption key system for securing digital media
US7260215B2 (en) Method for encryption in an un-trusted environment
US6507907B1 (en) Protecting information in a system
US20040190721A1 (en) Renewable conditional access system
US11785315B2 (en) Secure provisioning, by a client device, cryptographic keys for exploiting services provided by an operator
JP2003502719A (ja) 懐柔されたセキュリティ・デバイスを発見するシステムおよび方法
US20190268145A1 (en) Systems and Methods for Authenticating Communications Using a Single Message Exchange and Symmetric Key
Wool Key management for encrypted broadcast
KR100977969B1 (ko) 네트워크에서의 데이터 전송 및 수신 방법
Champagne et al. Forward-secure content distribution to reconfigurable hardware

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: 20121109

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131115

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141118

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee