KR20070056133A - 개인 디지털 네트워크 환경에서의 컨텐츠 보호 방법 및장치 - Google Patents

개인 디지털 네트워크 환경에서의 컨텐츠 보호 방법 및장치 Download PDF

Info

Publication number
KR20070056133A
KR20070056133A KR1020077007140A KR20077007140A KR20070056133A KR 20070056133 A KR20070056133 A KR 20070056133A KR 1020077007140 A KR1020077007140 A KR 1020077007140A KR 20077007140 A KR20077007140 A KR 20077007140A KR 20070056133 A KR20070056133 A KR 20070056133A
Authority
KR
South Korea
Prior art keywords
content
lockbox
node
digital network
hardware
Prior art date
Application number
KR1020077007140A
Other languages
English (en)
Other versions
KR100921586B1 (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 KR20070056133A publication Critical patent/KR20070056133A/ko
Application granted granted Critical
Publication of KR100921586B1 publication Critical patent/KR100921586B1/ko

Links

Images

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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/254Management at additional data server, e.g. shopping server, rights management server
    • H04N21/2541Rights Management
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4367Establishing a secure communication between the client and a peripheral device or smart card
    • 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/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/4408Processing 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 encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network
    • 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/4627Rights management associated to the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • H04N2005/91357Television signal processing therefor for scrambling ; for copy protection by modifying the video signal
    • H04N2005/91364Television signal processing therefor for scrambling ; for copy protection by modifying the video signal the video signal being scrambled
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
    • H04N7/087Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
    • H04N7/088Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital

Landscapes

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

Abstract

어떤 실시예에서, 본 발명은 개인 디지털 네트워크("PDN")에 들어오는 암호화된 컨텐츠를 전사하도록 구성되어 있는 하드웨어(때때로 인그레스(Ingress) 회로라고 함)를 포함하는 개인 디지털 네트워크("PDN")이다. 일반적으로, 전사(복호화에 뒤이은 재암호화)는 인그레스 회로 내에서 하드웨어적으로 수행되고, 재암호화는 복호화된 컨텐츠가 인그레스 회로 외부의 하드웨어 또는 소프트웨어에 의해 액세스가능하게 되기 이전에 행해진다. 일반적으로, 인그레스 회로에서 빠져나오는 전사된 컨텐츠는, PDN으로부터 디스플레이, 재생 또는 출력하기 위해 하드웨어(때때로 이그레스(Egress) 회로라고 함) 내에서 복호화될 때까지, 집적 회로들 간에 전송될 때마다 PDN 내에서 재암호화된 형태로 있으며, 그렇지 않은 경우 소프트웨어에 의해 용이하게 액세스될 수 있다. 일반적으로, PDN은 인그레스 또는 이그레스 회로 내의 비밀(인그레스 또는 이그레스 회로에 의해 사용 또는 전송됨)이 PDN 내부의 소프트웨어 또는 펌웨어에 의해 또는 PDN 외부의 임의의 개체에 의해 비암호화된 형태로 액세스될 수 없도록 구현된다. 본 발명의 다른 측면은 PDN(예를 들어, 개방형 컴퓨팅 시스템)에서 컨텐츠를 보호하는 방법 및 PDN에서 사용하기 위한 장치(예를 들어, 멀티미디어 그래픽 카드, 셋톱 박스, 또는 비디오 프로세서)이다.
컨텐츠 보호, 저작권 관리, 개인 디지털 네트워크, 사용자 제한 세트

Description

개인 디지털 네트워크 환경에서의 컨텐츠 보호 방법 및 장치{METHOD AND APPARATUS FOR CONTENT PROTECTION IN A PERSONAL DIGITAL NETWORK ENVIRONMENT}
본 출원은 2003년 10월 3일자로 출원된 계류 중인 발명의 명칭이 "개방형 아키텍처 시스템에서의 컨텐츠 보호 방법 및 장치(Method and Apparatus for Content Protection Within an Open Architecture System)"인 미국 특허 출원 제10/679,055호의 일부 계속 출원으로서, 2003년 1월 13일자로 출원된 발명의 명칭이 "개방형 아키텍처 시스템에서의 컨텐츠 보호 방법 및 장치(Method and Apparatus for Content Protection Within an Open Architecture System)"인 미국 가특허 출원 제60/439,903호를 우선권 주장한다.
본 발명은 개인 디지털 네트워크("PDN") 환경에서의 컨텐츠 보호 방법 및 장치에 관한 것이다. PDN의 일례는, 디지털 비디오(및 오디오) 저장, 재생 및 처리 장치와 이들 장치와 통신하거나 그를 제어하기 위한 퍼스널 컴퓨터를 포함하는, 사용자의 가정에 설치된 네트워크이다. 본 발명에 따르면, PDN에 들어오는 암호화된 컨텐츠(예를 들어, 고선명 디지털 비디오)는 (그 컨텐츠가 PDN에 들어올 때 이미 원하는 포맷으로 암호화되어 있지 않는 한) 하드웨어적으로 보안 방식으로 전사(transcript)(복호화 및 재암호화)된다. 이 컨텐츠는 이어서, 그 컨텐츠가 PDN의 외부에서 사용하기 위해 렌더링(즉, 디스플레이 및/또는 재생)을 위해 하드웨어 적으로 보안 방식으로 다시 복호화(선택적으로 하드웨어에서 추가의 처리를 거침)될 때까지, (예를 들어, 이 컨텐츠가 집적 회로들 간에 전송될 때마다, 그렇지 않은 경우 소프트웨어에 의해 또는 무허가 개체에 의해 용이하게 액세스될 수 있음) PDN 내부에서 이 전사된 형태로 있다. 일반적인 실시예에서, 수신된 컨텐츠의 전사 또는 암호화된 컨텐츠의 복호화를 위해 사용되는 비밀(예를 들어, 키 데이터 또는 인증서)는 PDN 내부에서 또는 그 외부에서 소프트웨어에 의해 (평문 형식으로) 액세스될 수 없다. 이것은 PDN의 컴포넌트들 내의 임의의 형태의 소프트웨어에 의한 비밀 정보에의 액세스를 명백하게 허용하지 않는다.
표현 "사용 제한 세트(user restriction set)"는, 본 명세서에서, (특정 유형의) 컨텐츠가 적용을 받는 모든 사용 제한의 세트를 나타낸다. 특정의 컨텐츠에 대한 사용 제한 세트는 임의의 수의 사용 제한(예를 들어, 하나의 사용 제한 또는 다수의 사용 제한)을 포함할 수 있다. 예를 들어, 영화를 정의하는 비디오 및 오디오 데이터에 대한 사용 제한 세트는, 그 장소 내에서의 데이터의 임의의 사용을 금지하지 않고, 지정된 장소(예를 들어, 단일의 장치 또는 네트워크) 밖으로의 데이터의 전송을 금지할 수 있다. 다른 예로서, 영화를 정의하는 비디오 및 오디오 데이터에 대한 사용 제한 세트는 지정된 장소(예를 들어, 특정의 장치 또는 지정된 유형의 장치에 의한 한번 보기(single viewing) 및 재생, 또는 지정된 네트워크의 임의의 장치에 의한 한번 보기 및 재생)에서의 영화의 한번 보기(비디오 데이터의 한번 보기 및 대응하는 오디오 데이트의 재생)을 제외한 데이터의 모든 사용을 금 지할 수 있다.
본 발명은 개인 디지털 네트워크 환경에서의 컨텐츠 보호 방법 및 장치에 관한 것이며, 여기서 "개인 디지털 네트워크 환경"("PDNE")은 "개인 디지털 네트워크"에 의해 정의되는 환경을 나타낸다. 표현 "개인 디지털 네트워크"("PDN")는, 본 명세서에서, 사용 제한 세트의 적용을 받는 컨텐츠(예를 들어, 디지털 이미지 데이터, 비디오 데이터, 또는 오디오 데이터)를 수신할 수 있고 또 사용 제한 세트에 의해 금지되지 않은 적어도 하나의 방식으로(선택적으로는, 많은 방식 또는 모든 방식으로) 컨텐츠를 사용하도록 구성되어 있는 (컴포넌트들의) 네트워크(각각의 컴포넌트는 하드웨어(선택적으로는 소프트웨어 또는 펌웨어도 포함됨)의 어떤 조합으로 이루어짐)를 나타낸다. PDN의 예는, 디지털 비디오(및 오디오) 저장, 렌더링(즉, 디스플레이 또는 재생) 및 처리 장치와, 이러한 장치들과 통신하거나 그를 제어할 수 있는 퍼스널 컴퓨터(또는 개방형 아키텍처를 갖는 다른 컴퓨팅 시스템)을 포함하는, 네트워크 사용자의 가정에 설치된 네트워크이다. 간단한 PDN의 예는, (예를 들어, 고선명 DVD 또는 다른 디스크로부터 컨텐츠를 판독함으로써) 암호화된 비디오 및 오디오 컨텐츠를 수신하고 상기 컨텐츠의 비디오 부분을 디스플레이하고 상기 컨텐츠의 오디오 부분을 재생하도록 구성되어 있는, 개방형 아키텍처를 갖는 컴퓨팅 시스템(예를 들어, 주변 장치를 갖는 퍼스널 컴퓨터)이다. PDNE에 들어오는 컨텐츠는 비디오 또는 오디오 데이터일 수 있지만 그럴 필요는 없으며, 디지털적으로 저장될 수 있는 임의의 정보(사진, 텍스트, 게임, 재무 기록, 및 개인 정보 등(그렇지만 이에 한정되지 않음))를 나타내는 데이터이거나 그 데이터를 포함할 수 있다.
PDN은 홈 엔터테인먼트 네트워크일 수 있거나 그를 포함할 수 있다(그렇지만 그럴 필요는 없다). 예를 들어, PDN은, 재무 데이터 또는 디지털 비디오나 디지털 오디오 어느 것도 아닌 다른 컨텐츠를 보호하기 위해, 비지니스 환경 또는 다른 곳에서 구현될 수 있다.
PDN이 퍼스널 컴퓨터를 포함할 수 있지만, 퍼스널 컴퓨터가 필요하지는 않다. 예를 들어, PDN은 퍼스널 컴퓨터가 아니지만 기본적으로 피어-레벨 가전 기기(peer-level consumer appliance)(예를 들어, 오디오/비디오 수신기, 디스크 플레이어, 및/또는 기록/재생 유닛)인 장치들의 집합체일 수 있고, 네트워크 관리 기능은, 중앙집중된 마스터 컨트롤러를 필요로 하지 않고, 이러한 장치들 간에 분산되어 있을 수 있다. (예를 들어) PDN의 임의의 장치(다수의 장치 중 임의의 것)으로부터 기본적인 네트워크 관리 기능을 수행하는 것이 필요하거나 바람직한 경우 등에, 네트워크 관리 기능의 분산이 종종 바람직하다.
개방형 아키텍처를 갖는 컴퓨팅 시스템(때때로, 본 명세서에서 "개방형 아키텍처 시스템" 또는 "개방형 시스템"이라고 함)은 최종 사용자가 하드웨어 컴포넌트 및/또는 소프트웨어 모듈을 부가 또는 제거할 수 있게 해주도록 구성되어 있는 컴퓨팅 시스템이다. 유의할 점은 가전 기기는 퍼스널 컴퓨터와 설계 및 구현 특징을 공유할 수 있으며, 2가지 부류의 장치 간의 구별은 사용자가 볼 수 있는 그의 인터페이스 및 기능에 의해 정의된다는 것이다.
표현 "오디오 비디오 서브시스템"(또는 "오디오 비디오 시스템")은, 본 명세 서에서, 때때로 비디오 데이터에 응답하여 이미지를 디스플레이하고 및/또는 오디오 데이터에 응답하여 사운드를 방출할 수 있는 시스템 또는 장치를 나타내는 데 사용된다. 오디오 비디오 서브시스템은 통상적으로 어떤 형태의 직렬 링크에 의해 PDN에 연결되어 있다. 오디오 비디오 서브시스템은, HDTV 모니터(HDMI 링크를 통해 수신된 HDCP-암호화된 비디오 및 오디오 데이터를 복호화할 수 있는 HDMI 수신기를 포함함), 스피커, DVR(Digital Video Recorder), 및 오디오/비디오 프로세서를 포함한다.
본 발명의 일반적인 실시예들에서, PDN에 들어오는 컨텐츠는 그 컨텐츠에 관한 지적 재산권의 소유자(또는 라이센서)에 의해 그에 부과된 제한과 모순되지 않는 임의의 방식으로(또는 컨텐츠가 PDN의 사용자 또는 소유자에 의해 적법하게 획득된 근거인 계약 조건을 위반하지 않은 임의의 방식으로) PDN 내에서 사용될 수 있다. 예를 들어, PDN은 영화를 정의하는 암호화된 비디오 및 오디오 데이터의 위성 전송을 수신할 수 있으며, 그 데이터에 대한 사용 제한 세트는, 데이터의 복호화를 제외한 데이터의 모든 사용, 및 지정된 기간(예를 들어, 지정된 날 또는 주간) 내의 PDN의 임의의 장치 또는 장치들에 의한 영화의 임의의 횟수의 보기(즉, 비디오 데이터 및/또는 대응하는 오디오 데이터의 임의의 횟수의 재생) 또는 (PDN의 임의의 장치 또는 장치들에 의한) 최대 허용가능 횟수의 보기까지 영화의 임의의 횟수의 보기를 금지할 수 있다. 본 발명의 양호한 실시예는, 컨텐츠에 대한 사용 제한 세트가 이러한 사용을 금지하지 않는다면, PDNE에 들어오는 컨텐츠가 PDN의 장치들에 의해 복호화, 복사, 저장, 디스플레이 및/또는 재생될 수 있게 해준 다.
본 발명의 일반적인 실시예에 따르면, PDN에 의해 수신되는 컨텐츠에 대한 사용 제한 세트는 PDNE에 들어올 때 컨텐츠와 연관되어 있는 데이터("권한 데이터" 또는 "사용 허용 데이터" 또는 "사용 허용 플래그")에 의해 나타내어지고, 이 연관은, 사용 제한 세트에 매핑되는 기본 규칙 세트에 따라, 컨텐츠가 존재하는 전체 기간에 걸쳐 PDNE 내에 보안 방식으로 유지된다.
암호화된 데이터(제1 프로토콜에 따라 암호화된 데이터)의 "전사(transcryption)"라는 표현은, 본 명세서에서, 데이터가 비암호화된 형태로 장치 밖에서 결코 액세스될 수 없도록, 암호화된 데이터의 복호화 및 그에 뒤이은 제2 프로토콜에 따른 복호화된 데이터의 재암호화(이들 모두는 물리적 보안 장치 또는 시스템(예를 들어, PDN의 물리적 보안 서브시스템) 내에서 수행됨)를 나타낸다. 제2 프로토콜은 일반적으로 제1 프로토콜과 다르지만, 제1 프로토콜과 동일할 수 있다(예를 들어, 최초의 암호화를 수행하는 데 사용되었던 것과 다른 키가 재암호화를 수행하는 데 사용되는 경우). 전사는, 본 발명에 따르면, 컨텐츠가 PDNE에 들어올 때 원하는 포맷으로 이미 암호화되어 있지 않는 한, 암호화된 컨텐츠가 다른 도메인으로부터(예를 들어, 케이블 또는 위성 전달 시스템 등의 보안 전송 도메인으로부터 또는 DVD와 같은 디스크 배포 메카니즘으로부터) PDNE에 들어올 때마다 수행된다.
최신의 퍼스널 컴퓨터(PC)는 엄격하게 말하면 컴퓨팅 장치로부터 통신 및 엔터테인먼트 장치로 진화하였다. 그 결과, 사용자는 자신의 PC에서 장편 영 화(feature length movie)를 비롯한 녹화된 비디오 엔터테인먼트를 볼 수 있기를 기대하고 있다. 게다가, 프로세서의 성능 향상은 예를 들어 DVD 영화를 디코딩 및 재생하기 위해 PC의 프로세서 상에서 소프트웨어를 사용하는 것이 유익한 것처럼 보이게 한다. 그렇지만, 엔터테인먼트 지적 재산권(예를 들어, 영화의 저작권)의 소유자는 당연히, 관련 컨텐츠가 이러한 PC에 들어갈 때, 그의 재산권의 불법 사용 및 복제를 걱정하고 있다.
컨텐츠의 소비자가 PDN(각각의 PDN은 적어도 하나의 PC를 포함할 수 있지만, 종종은 포함하지 않음)을 구성하는 것 및 컨텐츠 제공자가 각각의 PDN에 들어오는 컨텐츠가, 지적 재산권의 소유자(또는 라이센서)에 의해 그 컨텐츠에 금지되어 있지 않은 임의의 방식으로, 그 PDN 내에서 사용될 것임을 알고서, PDN에 컨텐츠를 제공하는 것이 생각된다. 그렇지만, 이러한 지적 재산권의 소유자는 당연히 관련 컨텐츠가 PDN에 들어갈 때 그의 재산권의 불법 사용 및 복제를 걱정한다. 이러한 이유는 PC의 개방형-시스템 특성이 아주 귀중한 컨텐츠(음악 또는 영화 등)를 가져다가 그 컨텐츠에 액세스하기 위해 관련된 아주 귀중한 지적 재산권의 소유자(들)의 허락을 받지 않은 수백만의 막대한 사용자에게 복사본을 배포하는 것을 별것 아닌 것으로 만들기 때문이다.
불행히도, (개방형이나 폐쇄형 시스템 장치 구현 중 어느 하나에서) 소프트웨어 디코드의 바로 그 특성으로 인해, 컨텐츠를 복호화하는 데 소프트웨어를 이용하는 종래의 PDNE에서는 컨텐츠가 효과적으로 보호될 수 없다. 소프트웨어 디코드 프로세스 동안의 어떤 시점에서, 키 및 복호화된 컨텐츠(예를 들어, 평문 비디오 및 오디오 데이터) 둘다가 장치의 레지스터 및/또는 메모리 내에서 이용가능하며, 따라서 키 또는 컨텐츠의 불법 복제가 만들어져 관련 지적 재산권의 소유자(들)의 허가없이 배포될 수 있다.
영화 또는 다른 작품의 고품질 복제품이 만들어지고, 예를 들어, 인터넷을 통해 널리 배포될 수 있는 경우, 이러한 컨텐츠의 지적 재산권은 소유자에 대한 그의 가치를 빠르게 잃게 된다. 어떤 이러한 컨텐츠를 보호하기 위해, DVD에 대한 비디오 컨텐츠를 암호화하기 위해 CSS(Content Scrambling System)이 창안되었다. CSS는 원래의 원시 비디오 데이터의 MPEG 압축된 버전의 상부에서 사용되는 암호 스크램블링 메카니즘이다. DVD 컨텐츠를 재생할 수 있는 각각의 장치는, 컨텐츠가 디스크램블링(즉, 복호화)될 수 있게 해주는, 하나 이상의 암호키를 가져야만 한다.
폐쇄형 시스템(예를 들어, 독립형 DVD 플레이어 또는 다른 독립형 가전 기기 제품)은, 키 및 복호화된 컨텐츠가 폐쇄형 시스템 내에 계속하여 있도록 구성되어 있는 경우, 상당한 컨텐츠 보호를 제공할 수 있다. 키 및 복호화된 컨텐츠 둘다가 폐쇄형 시스템 내에 계속하여 있는 경우, 컨텐츠 보호 방법을 "크래킹"하는 간단한 방법이 없다. "폐쇄형" 시스템(예를 들어, 독립형 DVD 플레이어)은 사용자가 하드웨어 또는 소프트웨어를 추가 또는 제거할 방법을 제공하지 않는다. 따라서, 폐쇄형 시스템 외부에 키를 노출시키지 않는 방식으로 폐쇄형 시스템 내에서 키가 저장되고 사용되도록 보장하는 것이 비교적 간단하다. 목적한 폐쇄형 시스템조차도 개방형 시스템과 동일한 취약점을 가질 수 있다는 것은 주목할 만한 가치가 있다. 예를 들어, 케이블 또는 위성 셋톱 박스(STB)가 PC의 아키텍처(소프트웨어가 비밀키를 처리함)와 유사한 아키텍처를 사용하여 구현되는 경우, 이 비밀 자료가 손상되도록 소프트웨어가 수정되는 것이 가능하다.
그렇지만, 폐쇄형 시스템 내에서의 컨텐츠의 보호는 다른 문제점을 제공한다. 예를 들어, 키 및 컨텐츠가 어떻게 안전하게 폐쇄형 시스템으로 전달되는가? 키 및 컨텐츠 둘다가 동일한 경로를 따라가는 경우, 양호한 인증 방법의 사용을 방해하는 폐쇄형 시스템으로의 내재적인 단방향 정보 흐름이 있다. 본 발명의 양호한 실시예의 중요한 측면은 이러한 실시예가 키 및 컨텐츠로 하여금 PDN 내에서 또한 PDN 내의 컨텐츠-처리 집적 회로(예를 들어, 본 발명의 인그레스 또는 이그레스 노드의 집적 회로 구현) 내에서조차 서로 다른 경로를 따라갈 수 있게 해준다(그렇지만, 꼭 그럴 필요는 없다)는 것이다. 본 발명의 이들 실시예는, 비밀 키잉 자료를 소프트웨어가 직접 볼 수 없도록 보장해줌으로써, 종래의 폐쇄형 또는 개방형 시스템에서보다 키 배포 및 관리를 훨씬 더 안전하게 해줄 수 있다. 이것은 집적 회로가, 그의 패키징에 본질적인 물리적 보안, 그로부터 정보를 추출하는 데 희귀하고 고가인 장비에의 훨씬 더 많은 투자가 필요함, 및 비밀 정보를 보호하기 위해 취해질 수 있는 조치들로 인해, 소프트웨어 구현에서 달성가능한 것보다 훨씬 더 높은 정도의 보안을 제공한다는 사실에 기인한다. 게다가, 이 방법이 더욱 안전한 이유는 장치(예를 들어, PDN의 폐쇄형 서브시스템)가 컨텐츠(컨텐츠에 대한 사용 제한 세트의 적용을 받음)를 사용하도록 적절히 라이센싱 및 허용되어 있는지를 확인하기 위한 더 나은 방법의 구현을 가능하게 해주기 때문이다. 본 발명은 폐쇄형 및 개방형 시스템 둘다에서의 컨텐츠 보호를 위한 현재 기술을 개선시킨다.
현재의 표준 화질 DVD 컨텐츠는 폐쇄형 시스템보다는 개방형 시스템인 PC 상에서 소프트웨어적으로 디코딩될 수 있다. 소프트웨어 디코드 프로세스 동안의 어떤 시점에서, CSS 키 및 복호화된 비디오 컨텐츠 둘다가 PC의 레지스터 및/또는 메모리 내에서 이용가능하다. PC에서, 사용자가 의도적으로 또는 무심결에 악의적인 프로그램 또는 드라이버를 로드할 수 있고 이러한 모듈이 키 및/또는 컨텐츠에 액세스할 수 있기 때문에, CSS 보호가 용이하게 회피된다. 실제로, 2가지 널리 알려진 공격이 행해졌다. 첫째, Xing 소프트웨어 디코더에 대한 CSS 키가 소프트웨어 모듈을 리버스 엔지니어링함으로써 찾아내어졌고, 이 키가 해커들간에 교환되었다. 게다가, DeCSS라고 하는 CSS 복호화 프로그램이 작성되어 배포되었다.
지금까지, 컨텐츠 보호 시스템의 이들 침해의 경제적 손상이 제한된 이유는 표준 화질 비디오의 이미지 품질이 극장 품질보다 훨씬 더 낮기 때문이다. 즉, 고선명 원본으로부터 표준 TV 품질로의 변환에서 원래의 영화의 내재 가치의 많은 부분이 손실된다. 게다가, 최근까지는 사용자들 간에 복호화된 영화와 같은 큰 파일을 전송하는 것이 실용적이지 않았다.
현재, 고선명 TV(HDTV)가 점점 더 보급되고 있고, 수년 후에는 표준 화질 TV를 대체할 것으로 예상된다. 소비자에게 충분한 품질의 녹화 자료를 제공하기 위해, HDTV DVD(HD-DVD)가 설계되고 있다. 표준 DVD 플레이어의 경우에서와 같이, CSS와 유사한 무언가를 갖는 HD-DVD의 독립형 플레이어는 강력한 컨텐츠 보호를 제공해야만 한다.
그렇지만, 종래의 개방형 시스템 또는 다른 종래의 PDN 내에서 컨텐츠(예를 들어, HD-DVD 컨텐츠)를 디코딩하는 것은 취약성을 야기한다. 이 취약성은 종종 컨텐츠 보호 시스템에서의 "소프트웨어 구멍"이라고 한다. "소프트웨어 구멍" 취약성의 본질은, 개방형 시스템(또는 PDN의 다른 구성요소) 내의 소프트웨어가 비암호화된 키 또는 평문 컨텐츠 중 어느 하나를 처리하는 경우, 그 키 또는 컨텐츠가 불법 사용자에 대해 용이하게 노출된다는 것이다. 예를 들어, 소프트웨어로 프로그램된 개방형 컴퓨팅 시스템이 컨텐츠를 복호화하기 위해 사용되는 경우, 키 및 복호화 프로그램 둘다가 프로세서에 보여야만 하며, 따라서 시스템 내에 로드된 다른, 아마도 악의적인 소프트웨어에 보여야만 한다. 소프트웨어 구멍은 심각한 문제인데, 그 이유는 (오디오 비디오 컨텐츠를 나타내는) 이진 데이터의 불법 복사본이 만들어질 수 있는 경우, 그 복사본은 원래의 극장 개봉 영화와 본질적으로 동일한 품질을 갖는 컨텐츠의 디스플레이 및 재생을 가능하게 해주기 때문이다. 게다가, 최근의 네트워크 기술은 용이하게 Napster와 같은 영화 복사본의 거래를 가능하게 해준다. 그 결과, 지적 재산권의 소유자는 그 재산권이 가치없게 된다는 것을 쉽게 알게 된다.
표준 DVD의 소프트웨어 복호화가 처음으로 배포되었을 때, "소프트웨어 구멍"은 완전히 이해되지 않았다. 복호화 소프트웨어 내의 키가 모호하게 되어 있고 안전한 것으로 생각되었다. Xing 키가 추출되었을 때, 이 "모호함을 통한 보안"이 착각이라는 것이 곧 밝혀졌다. 그 이후로, 컴퓨터 산업의 많은 노력은 복호화 키를 저장하는 안전한 방법을 연구하게 되었다(예를 들어, Microsoft Palladium Initiative, 나중에 Next Generation Secure Computing Base로 개명함). 그렇지만, 이것이 키를 훔치는 것을 더 어렵게 만들었지만, 이것이 키의 보안을 그다지 개선하지 않으며 컨텐츠를 보호하는 데 아무것도 하지 않는다. 유의할 점은, 허가받은 플레이어가 수동 개입(예를 들어, 사용자가 컨텐츠 보호 키를 복호화하는 데 필요한 패스워드를 입력하는 일)없이 키를 획득할 수 있는 경우, 동일한 절차 또는 알고리즘을 사용하는 임의의 다른 프로그램도 또한 그 키를 획득할 수 있다는 것이다. 이러한 프로그램이 악의적인 방식으로 작성된 경우, 그 키는, 예를 들어, 수초만에 인터넷을 통해 수백만의 다른 사람들에게 전송될 수 있다. 이와 유사하게, 소프트웨어 디코더가 키 및 복호화 프로세스 또는 알고리즘을 프로세서가 볼 수 있을 것을 필요로 하기 때문에, 그 키 및 복호화 프로세스 또는 알고리즘이 공격자에 의해 관찰 및 에뮬레이트될 수 있고, 그 결과 컨텐츠의 불법 복호화가 있게 된다.
상기한 미국 특허 출원 제10/679,055호는 개방형 시스템 내의 폐쇄형 서브시스템에서 컨텐츠 및 키 둘다를 보호함으로써 (개방형 시스템에서의) 소프트웨어 구멍 문제를 회피하는 방법 및 장치를 기술하고 있으며, 여기서 "폐쇄형 서브시스템"은 사용자에게, 하드웨어 또는 소프트웨어를 그에 추가하거나 하드웨어 또는 소프트웨어를 그로부터 제거하는 편리한 방법을 제공하지 않는 서브시스템(예를 들어, 단일의 집적 회로)을 나타낸다. 미국 특허 출원 제10/679,055호는 폐쇄형 서브시스템이 폐쇄형 서브시스템에서의 (폐쇄형 서브시스템에 의해 사용되는) 키 데이터 및 비암호화된 컨텐츠가 폐쇄형 서브시스템 외부에 공개되지 않도록 설계되어 있어야만 함을 개시하고 있다.
미국 특허 출원 제10/679,055호의 폐쇄형 서브시스템은 개방형 시스템 내에 "내장"되어 있는 것으로 말해질 수 있으며, 일반적으로 들어오는 컨텐츠를 하드웨어적으로 복호화하여 원시 컨텐츠를 발생하고 이어서 이 원시 컨텐츠를 다른 컨텐츠 보호 프로토콜을 사용하여 (역시, 하드웨어적으로 또한 원시 컨텐츠가 발생되는 동일 칩 내에서), 이 원시 컨텐츠를 폐쇄형 서브시스템 외부의 개방형 시스템의 임의의 구성요소에 노출시키지 않고, 재암호화함으로써 보호된 컨텐츠를 발생하도록 구성되어 있다. 원시 컨텐츠나 이 원시 컨텐츠를 발생 또는 재암호화하는 데 사용되는 키 데이터 어느 것도 폐쇄형 서브시스템 외부의 개방형 시스템의 임의의 구성요소에 노출되지 않는다. 폐쇄형 서브시스템은 재암호화된 컨텐츠를 외부 시스템(개방형 시스템 외부의 시스템)에 직접 어써트하도록 구성될 수 있다. 이 외부 시스템은 암호 장치를 포함할 수 있으며, 폐쇄형 서브시스템은 (예를 들어, 검증 동작의 일부로서), 암호 장치가 재암호화된 컨텐츠를 복호화할 수 있게 해주기 위해 필요에 따라, 키 데이터를 이 암호 장치에 공개하도록 구성될 수 있다. 다른 대안으로서, 재암호화된 컨텐츠는 폐쇄형 서브시스템으로부터 개방형 시스템의 적어도 하나의 다른 구성요소를 통해 외부 시스템으로 어써트된다(예를 들어, 재암호화된 컨텐츠는 개방형 시스템을 통해 외부 시스템으로 "터널링"된다).
비디오 컨텐츠를 디스플레이 장치로 전송하기 위한 업계의 동향은 그 컨텐츠를 디지털 형태로 직렬 링크를 통해 전달하는 것이다.
암호화된 또는 비암호화된 데이터를 전송하는 여러가지 직렬 링크가 공지되어 있다. 가전 기기에서(예를 들어, 셋톱 박스로부터 텔레비전 세트로 비디오 데 이터의 고속 전송을 위해) 또는 호스트 프로세서(예를 들어, 퍼스널 컴퓨터)로부터 모니터로의 비디오 데이터의 고속 전송을 위해 주로 사용되는 한가지 종래의 직렬 링크는 "TMDS"(transition minimized differential signaling interface)라고 한다. TMDS 링크의 특징은 다음과 같다.
1. 비디오 데이터는 인코딩되고 이어서 인코딩된 워드로서 전송된다(디지털 비디오 데이터의 각각의 8-비트 워드는 전송 이전에 인코딩된 10-비트 워드로 변환된다).
a. 이 인코딩은 일련의 "대역내(in-band)" 워드 및 일련의 "대역외(out-of-band)" 워드를 결정한다(인코더가 제어 또는 동기 신호에 응답하여 "대역외" 신호를 발생할 수 있지만, 인코더는 비디오 데이터에 응답하여 "대역내" 워드만을 발생할 수 있다. 각각의 대역내 워드는 하나의 입력 비디오 데이터 워드의 인코딩으로부터 얻어지는 인코딩된 워드이다. 대역내 워드가 아닌, 링크를 통해 전송되는 모든 워드는 "대역외" 워드이다).
b. 비디오 데이터의 인코딩은, 대역내 워드가 천이 최소화되도록(대역내 워드 시퀀스가 감소된 또는 최소화된 수의 천이를 갖도록) 수행된다.
c. 비디오 데이터의 인코딩은, 대역내 워드가 DC 평형되어 있도록 수행된다(이 인코딩은 대역내 워드 시퀀스를 전송하는 데 이용되는 각각의 전송된 전압 파형이 기준 전위로부터 미리 정해진 문턱값보다 많이 벗어나지 않도록 한다. 구체적으로는, 각각의 "대역내" 워드의 10번째 비트는, 이전에 인코딩된 데이터 비트의 스트림에서 1과 0의 현재 수(running count) 사이의 불균형을 정정하기 위해, 그의 나머지 9개 비트 중 8개가 인코딩 프로세스 동안 반전되었는지 여부를 나타낸다.).
2. 인코딩된 비디오 데이터 및 비디오 클럭 신호는 차동 신호로서 전송된다(비디오 클럭 및 인코딩된 비디오 데이터는 도체쌍을 통해 차동 신호로서 전송된다).
3. 인코딩된 비디오를 전송하는 데 3개의 도체쌍이 이용되고, 4번째 도체쌍은 비디오 클럭 신호를 전송하는 데 이용된다.
4. 신호 전송은 한쪽 방향으로, 즉 송신기(일반적으로 데스크톱 또는 휴대용 컴퓨터, 또는 다른 호스트와 연관되어 있음)에서 수신기(일반적으로 모니터 또는 다른 디스플레이 장치의 구성요소임)로 일어난다.
TMDS 직렬 링크의 사용은 Digital Display Working Group에 의해 채택된 "DVI(Digital Visual Interface)" 인터페이스("DVI" 링크)이다. DVI 링크는 2개의 TMDS 링크(비디오 클럭 신호를 전송하기 위해 공통의 도체쌍을 공유함) 또는 하나의 TMDS 링크는 물론, 송신기와 수신기 사이의 부가의 제어선을 포함하도록 구현될 수 있다. DVI 링크는 송신기, 수신기, 및 송신기와 수신기 사이의 이하의 도체, 즉 4개의 도체쌍(채널 0, 채널 1, 비디오 데이터를 위한 채널 2, 및 비디오 클럭 신호를 위한 채널 C), 종래의 DDC(Display Data Channel) 표준(Video Electronics Standard Association의 "Display Data Channel Standard", Version 2, Rev. 0(1996년 4월 9일))에 따른, 송신기 및 수신기와 연관된 모니터 간의 양방향 통신을 위한 디스플레이 데이터 채널(Display Data Channel, "DDC")선, 핫 플러그 검출(Hot Plug Detect, HPD)선(이 선을 통해, 모니터는 송신기와 연관된 프로세서가 모니터의 존재를 식별할 수 있게 해주는 신호를 전송함), 아날로그선(아날로그 비디오를 수신기로 전송하기 위한 것), 및 전원선(수신기 및 수신기와 연관된 모너티에 DC 전원을 제공하기 위한 것)을 포함한다. DDC(Display Data Channel) 표준은 송신기 및 수신기와 연관된 모니터 간의 양방향 통신(모니터의 여러가지 특성을 규정하는 EDID(Extended Display Identification) 메시지의 모니터에 의한 전송 및 모니터에 대한 제어 신호의 송신기에 의한 전송을 포함함)을 위한 프로토콜을 규정한다.
다른 직렬 링크는, Silicon Image, Inc., Matsushita Electric, Royal Philips Electronics, Sony Corporation, Thomson Multimedia, Toshiba Corporation 및 Hitachi에 의해 개발된, "고선명 멀티미디어 인터페이스(High Definition Multimedia Interface)" 인터페이스(때때로, "HDMI" 링크 또는 인터페이스라고 함)이다.
현재, DVI 또는 HDMI 링크를 통해 전송되는 디지털 비디오를 암호화하고 DVI(또는 HDMI) 수신기에서 그 데이터를 복호화하는 데 "HDCP(High-bandwidth Digital Content Protection)" 프로토콜이라고 하는 암호 프로토콜을 사용하는 것이 통상적인 관례이다. HDCP 프로토콜은 Intel Corporation의 문서 "High-bandwidth Digital Content Protection System", Revision 1.0(2000년 2월 17일) 및 Intel Corporation의 문서 "High-bandwidth Digital Content Protection System Revision 1.0 Erratum"(2001년 3월 19일)에 기술되어 있다. 이들 문서 둘다는 여기에 인용함으로써 그의 전체 내용이 본 명세서에 포함된다.
HDCP 프로토콜을 구현하는 DVI-호환(또는 HDMI-호환) 송신기는 각각의 활성 기간 동안에(즉, DE가 하이일 때), cout[23:0]라고 하는, 의사-랜덤하게 발생된 24-비트 워드의 스트림을 어써트한다. DVI-호환 시스템에서, 각각의 활성 기간은 활성 비디오 기간이다. HDMI-호환 시스템에서, 각각의 활성 기간은 비디오, 오디오, 또는 기타 데이터가 전송되는 기간이다. cout 데이터의 각각의 24-비트 워드는, 비디오 데이터를 암호화하기 위해, 송신기에 입력되는 RGB 비디오 데이터의 24-비트 워드와 (송신기 내의 논리 회로에서) "배타적-OR"된다. 이어서, 이 암호화된 데이터는 (TMDS 표준에 따라) 전송을 위해 인코딩된다. cout 워드의 동일한 시퀀스가 또한 수신기에서 발생된다. 수신기에 수신되는 인코딩되고 암호화된 데이터가 TMDS 디코딩을 거친 후에, cout 데이터는, 디코딩된 데이터를 복호화하고 원래의 입력 비디오 데이터를 복원하기 위해, 논리 회로에서 디코딩된 비디오와 함께 처리된다.
송신기가 HDCP 암호화되고 인코딩된 비디오 데이터를 전송하기 시작하기 이전에, 송신기 및 수신기는, 인증 프로토콜을 실행하기 위해(수신기가 보호된 컨텐츠를 수신하고 또 입력 데이터의 암호화 및 전송된 암호화된 데이터의 복호화에 사용하기 위한 공유 비밀값을 설정하도록 허가되어 있는지를 확인하기 위해), 서로 양방향으로 통신을 한다. 보다 구체적으로는, 송신기 및 수신기 각각은 (예를 들어, 공장에서) 키 선택 벡터(key selection vector)라고 알려진 40-비트 워드 및 40개의 56-비트 비밀키의 어레이로 사전 프로그램되어 있다. 송신기와 수신기 간의 인증 교환의 제1 부분을 개시하기 위해, 송신기는 그의 키 선택 벡터("AKSV"라 고 함) 및 의사-랜덤하게 발생된 세션 값("An")을 수신기로 어써트한다. 그에 응답하여, 수신기는 그의 키 선택 벡터("BKSV"라고 함) 및 리피터 비트(repeater bit)(수신기가 리피터인지 여부를 나타냄)를 송신기로 전송하고, 수신기는 또한, 비밀값("Km")을 계산하기 위해, "AKSV" 및 수신기의 40개 비밀키의 어레이를 사용하여 미리 정해진 알고리즘을 구현한다. 수신기로부터의 값 "BKSV"에 응답하여, 송신기는, 수신기가 하는 것처럼 동일한 비밀키("Km")를 계산하기 위해, 값 "BKSV" 및 송신기의 40개의 비밀키의 어레이를 사용하여 동일한 알고리즘을 구현한다.
이어서, 송신기 및 수신기 각각은 공유값 "Km", 세션값 "An" 및 리피터 비트를 사용하여, 공유 비밀값(세션키 "Ks"), 인증이 성공적인지 여부를 판정하는 데 사용되는 값("R0"), 및 인증 교환의 제2 부분 동안에 사용하기 위한 값("M0")을 계산한다. 인증 교환의 제2 부분은, 수신기가 리피터임을 리피터 비트가 나타내는 경우에만, 리피터에 연결된 하나 이상의 다운스트림 장치의 상태가 수신기의 인증의 취소를 요구하는지 여부를 판정하기 위해 수행된다.
인증 교환의 제1 부분 이후에, (인증 교환의 제2 부분이 수행된 경우) 수신기의 키 선택 벡터가 인증 교환의 제2 부분의 결과로서 취소되지 않는다면, 송신기 및 수신기 각각은 56-비트 프레임 키(Ki)(한 프레임의 비디오 데이터의 암호화 또는 복호화를 개시하기 위한 것임), 초기화값(Mi), 및 링크 무결성 검증을 위해 사용되는 값(Ri)를 발생한다. Ki, Mi 및 Ri 값은, 송신기 내의 적절한 회로에서 수신되고 또한, DE가 로우일 때 각각의 수직 블랭킹 기간 동안, 송신기에 의해 수신기로 전송되는, 제어 신호(도 1에서 "ctl3"으로 표시됨)에 응답하여 발생된다. 도 1의 타이밍 다이어그램에 나타낸 바와 같이, 제어 신호 "ctl3"는 단일의 하이로 되는 펄스이다. Ki, Mi 및 Ri 값에 응답하여, 송신기 및 수신기 각각은 의사-랜덤하게 발생된 24-비트 워드 cout[23:0]의 시퀀스를 발생한다. 송신기에 의해 발생된 cout 데이터의 각각의 24-비트 워드는 (비디오 데이터를 암호화하기 위해) 한 프레임의 비디오 데이터의 24-비트 워드와 (송신기 내의 논리 회로에서) "배타적 OR"된다. 수신기에 의해 발생된 cout 데이터의 각각의 24-비트 워드는 (이 암호화된 비디오 데이터를 복호화하기 위해) 첫번째 수신된 프레임의 암호화된 비디오 데이터의 24-비트와 (수신기 내의 논리 회로에서) "배타적 OR"된다. 송신기에 의해 발생된 24-비트 워드 cout[23:0]는 컨텐츠 암호화 키(한 라인의 입력 비디오 데이터를 암호화하기 위한 것임)이고, 수신기에 의해 발생된 24-비트 워드 cout[23:0]는 컨텐츠 복호화 키(수신된 디코딩된 한 라인의 암호화된 비디오 데이터를 복호화하기 위한 것임)이다.
제어 신호 clt3의 어써트 이후의 (데이터 인에이블 신호 DE의 각각의 하강 엣지에 응답하는) 각각의 수평 블랭킹 구간 동안에, 송신기는 키재생성(rekeying) 동작을 수행하고, 수신기는 그 다음 활성 비디오 기간 동안에 어써트될 cout 데이터를 (미리 정해진 방식으로) 변경하기 위해 동일한 키재생성 동작을 수행한다. 이것은 그 다음 수직 블랭킹 기간까지, 즉 송신기 및 수신기 각각이 Ki 및 Mi 값(여기서, 인덱스 "i"는 제어 신호 ctl3의 각각의 어써트에 응답하여 증가됨)의 새로운 세트를 계산하게 하기 위해 제어 신호 ctl3가 다시 어써트될 때까지, 계속된다. Ri 값은 매 128개 프레임마다 한번씩 갱신된다. 입력 비디오 데이터의 실제 암호화 또는 수신된 디코딩된 비디오 데이터의 복호화(또는 HDMI-호환 시스템의 경우에, 입력 비디오, 오디오 또는 기타 데이터의 암호화, 또는 수신된 디코딩된 비디오, 오디오 또는 기타 데이터의 복호화)는, DE가 하이일 때에만(수평 또는 수직 블랭킹 구간 동안은 아님), Ks, Ki 및 Mi 값의 가장 최근의 세트에 응답하여 발생되는 cout 데이터를 사용하여 수행된다.
송신기 및 수신기 각각은 도 2에 나타낸 유형의 HDCP 암호 회로(때때로, 본 명세서에서 "HDCP 암호"라고 함)를 포함한다. HDCP 암호는 LFSR(linear feedback shift register) 모듈(80), LFSR 모듈(80)의 출력에 연결된 블록 모듈(81), 및 블록 모듈(81)의 출력에 연결된 출력 모듈(82)을 포함한다. LFSR 모듈(80)은 인에이블 신호(도 2에 나타낸 신호 "ReKey")의 각각의 어써트에 응답하여, 세션 키(Ks) 및 현재 프레임 키(Ki)를 사용하여, 블록 모듈(81)의 키재생성을 위해 사용된다. 블록 모듈(81)은, 세션의 시작에서, 키(Ks)를 발생하고(또한 모듈(80)에 제공하고), 각각의 프레임의 비디오 데이터의 시작에서, (프레임의 첫번째 수직 블랭킹 구간에서 일어나는 제어 신호 "ctl3"의 상승 엣지에 응답하여) 키(Ki)의 새로운 값을 발생한다(그리고 모듈(80)에 적용한다). 신호 "ReKey"는 DE 신호의 각각의 하강 엣지에서(즉, 각각의 수직 및 각각의 수평 블랭킹 구간의 시작에서) 또한 신호 "ctl3"의 각각의 상승 엣지 이후의 짧은 초기화 기간(이 기간 동안에, 모듈(81)은 프레임 키 Ki의 갱신된 값을 발생함)의 끝에서 도 2의 회로로 어써트된다.
모듈(80)은 4개의 선형 피드백 시프트 레지스터(서로 다른 길이를 가짐), 및 시프트 레지스터에 연결되어, DE가 로우일 때(즉, 각각의 라인의 비디오 데이터의 수평 블랭킹 기간에) 신호 "ReKey"의 각각의 어써트 시에 시작하는 고정된 수의 클럭 사이클(예를 들어, 56개 사이클) 각각 동안에, 클럭 구간마다 단일의 출력 비트를 블록 모듈(81)에 어써트하도록 구성되어 있는 조합 회로로 이루어져 있다. 이 출력 비트 스트림은 각각의 라인의 비디오 데이터의 전송 또는 수신의 시작 직전에 블록 모듈(81)에 의해 그 자신의 키재생성을 위해 이용된다.
블록 모듈(81)은, 도 3에 나타낸 바와 같이, 2개의 부분, "라운드 함수(Round Function) K" 및 "라운드 함수 B"으로 이루어져 있다. 라운드 함수 K는, 동 도면에 도시되어 있는 바와 같이 연결된, 28-비트 레지스터(Kx, Ky, Kz), 7개의 S-박스(각각의 4 입력 비트 x 4 출력 비트 S-박스는 룩업 테이블을 포함함)(도 3에서 총괄하여 "S-박스 K"로 나타냄), 및 선형 변환 유닛(K)을 포함한다. 라운드 함수 B는, 동 도면에 도시되어 있는 바와 같이 연결된, 28-비트 레지스터(Bx, By, Bz), 7개의 S-박스(각각의 4 입력 비트 x 4 출력 비트 S-박스는 룩업 테이블을 포함함)(도 3에서 총괄하여 "S-박스 B"로 나타냄), 및 선형 변환 유닛(B)을 포함한다. 라운드 함수 K 및 라운드 함수 B는 설계가 유사하지만, 라운드 함수 K는, LFSR 모듈(80)의 출력에 응답하여, 매 클럭 사이클마다 서로 다른 28-비트 라운드 키 쌍(Ky, Kz)을 어써트하기 위해 클럭 사이클당 1 라운드(round)의 블록 암호를 수행하고, 라운드 함수 B는, 라운드 함수 K로부터의 각각의 28-비트 라운드 키(Ky) 및 LFSR 모듈(80)의 출력에 응답하여, 매 클럭 사이클마다 서로 다른 28-비트 라운드 키 쌍(By, Bz)을 어써트하기 위해 클럭 사이클당 1 라운드의 블록 암호를 수행한다. 송신기는 인증 프로토콜의 시작에서 값 An을 발생하고, 수신기는 인증 절차 동안에 그에 응답한다. 값 An은 세션 키를 랜덤화하는 데 사용된다. 블록 모듈(81)은 인증값(An), 및 각각의 프레임의 시작에서(제어 신호 "ctl3"의 각각의 상승 엣지에서) 출력 모듈(82)에 의해 갱신되는 초기화값(Mi)에 응답하여 동작한다.
선형 변환 유닛(K, B) 각각은 클럭 사이클마다 56 비트를 출력한다. 이들 출력 비트는 각각의 변환 유닛 내의 8개의 확산 네트워크(diffusion network)의 결합된 출력이다. 선형 변환 유닛(K)의 각각의 확산 네트워크는 레지스터(Ky, Kz)의 현재의 출력 비트 중 7개에 응답하여 7개의 출력 비트를 생성한다. 선형 변환 유닛(B)의 확산 네트워크 중 4개 각각은 레지스터(By, Bz, Ky)의 현재의 출력 비트 중 7개에 응답하여 7개의 출력 비트를 생성하고, 선형 변환 유닛(B)의 4개의 다른 확산 네트워크 각각은 레지스터(By, Bz)의 현재의 출력 비트 중 7개에 응답하여 7개의 출력 비트를 생성한다.
라운드 함수 K에서, 레지스터(Ky)의 1 비트는 ReKey 신호가 어써트될 때 모듈(80)에 의해 어써트되는 비트 스트림으로부터 그의 입력을 받는다. 라운드 함수 B에서, 레지스터(By)의 1 비트는 ReKey 신호가 어써트될 때 모듈(80)에 의해 어써트되는 비트 스트림으로부터 그의 입력을 받는다.
출력 모듈(82)은, 클럭 사이클당 하나의 24-비트 블록의 의사-랜덤 비트 cout[23:0]를 생성하기 위해, 각각의 클럭 사이클 동안에 모듈(81)에 의해 그에게로 어써트되는 28-비트 키(By, Bz, Ky, Kz)(총 112 비트)에 대해 압축 동작을 수행한다. 모듈(82)의 24개 출력 비트 각각은 다음과 같이 9개 항의 배타적 OR("XOR")로 이루어진다.
(B0*K0) + (B1*K1) + (B2*K2) + (B3*K3) + (B4*K4) + (B5*K5) + (B6*K6) + (B7) + (K7).
여기서, "*"는 논리적 AND 연산을 나타내고, "+"는 논리적 XOR 연산을 나타낸다.
송신기에서, 논리 회로(83)(도 2에 나타냄)는 cout 데이터의 각각의 24-비트 워드 및 각각의 입력된 24-비트 RGB 비디오 데이터 워드를 수신하고, 비디오 데이터를 암호화하기 위해 그에 대해 비트별 XOR 연산을 수행하여, 도 2에 나타낸 "data_encrypted" 데이터의 워드를 발생한다. 일반적으로, 암호화된 데이터는, 수신기로 전송되기 이전에, 뒤이어서 TMDS 인코딩을 거친다. 수신기에서, 논리 회로(83)(도 2에 나타냄)는 (복원된 데이터가 TMDS 디코딩을 거친 후에) cout 데이터의 각각의 24-비트 블록 및 각각의 복원된 24-비트 RGB 비디오 데이터 워드를 수신하고, 이 복원된 비디오 데이터를 복호화하기 위해 그에 대해 비트별 XOR 연산을 수행한다.
본 명세서 전반에 걸쳐, 표현 "TMDS 유사 링크"는, 송신기로부터 수신기로, 인코딩된 데이터(예를 들어, 인코딩된 디지털 비디오 데이터), 및 선택적으로 인코딩된 데이터의 클럭도 전송할 수 있고 또한 선택적으로, 송신기와 수신기 사이에서, 하나 이상의 부가적인 신호(예를 들어, 인코딩된 디지털 오디오 데이터 또는 다른 인코딩된 데이터)를 (양방향으로 또는 단방향으로) 전송할 수 있는 직렬 링크를 나타내거나, TMDS 링크 또는 TMDS 링크의 특성 중 일부(그렇지만 그 전부는 아님)를 갖는 링크를 포함한다. TMDS 유사 링크의 예는 데이터를 N-비트 코드 워드 로 인코딩하는 것만 TMDS 링크와 다른 링크(단, N은 10과 같지 않으며, 따라서 코드 워드는 10-비트 TMDS 코드 워드가 아님), 및 4개 이상 또는 2개 이하의 도체쌍을 통해 인코딩된 비디오를 전송하는 것만 TMDS 링크와 다른 링크를 포함한다. 어떤 TMDS 링크는 전송될 입력 비디오 데이터(및 기타 데이터)를, TMDS 링크에서 사용되는 특정의 알고리즘 이외의 코딩 알고리즘을 사용하여, 들어오는 데이터보다 많은 비트를 포함하는 인코딩된 워드로 인코딩하고, 인코딩된 비디오 데이터를 대역내 문자(in-band character)로서 전송하고 나머지 인코딩된 데이터를 대역외 문자(out-of-band character)로서 전송한다(HDMI-호환 시스템은 비디오 데이터에 대해 사용된 인코딩 방식과 다른 인코딩 방식에 따라 전송을 위해 오디오 데이터를 인코딩한다). 문자가 전송 최소화 및 DC 평형 기준을 만족시키는지 여부에 따라, 문자가 대역내 및 대역외 문자로 분류될 필요는 없다. 오히려, 다른 분류 기준이 사용될 수 있다. TMDS 링크에서 사용되지만 TMDS 유사 링크에서 사용될 수 있는 것 이외의, 다른 인코딩 알고리즘의 예는 IBM 8b10b 코딩이다. 이 (대역내와 대역외 문자 간의) 분류는 단지 천이가 많거나 적음에 기초할 필요는 없다. 예를 들어, 대역내 및 대역외 문자 각각의 천이의 수는 (어떤 실시예에서) 단일의 범위(예를 들어, 천이의 최소수 및 최대수로 정의되는 중간 범위) 내에 있다.
용어 "송신기"는, 본 명세서에서, 링크를 통해 데이터를 전송할 수 있고 또한 선택적으로 전송될 데이터를 인코딩 및/또는 암호화할 수 있는 임의의 유닛을 나타내기 위해 광의적으로 사용된다. 용어 "수신기"는, 본 명세서에서, 링크를 통해 전송된 데이터를 수신할 수 있는(또한 선택적으로 수신된 데이터를 디코딩 및/ 또는 복호화할 수 있는) 임의의 유닛을 나타내기 위해 광의적으로 사용된다. 달리 언급하지 않는 한, 링크는 TMDS 유사 링크 또는 다른 직렬 링크일 수 있지만 꼭 그럴 필요는 없다. 용어 '송신기'는 송신기의 기능 뿐만 아니라 수신기의 기능을 수행하는 송수신기를 나타낼 수 있다.
표현 "컨텐츠 키"는, 본 명세서에서, 컨텐츠(예를 들어, 비디오, 오디오, 또는 기타 컨텐츠)를 암호화하기 위해 암호 장치에 의해 사용될 수 있는 데이터를 나타내거나, 암호화된 컨텐츠를 복호화하기 위해 암호 장치에 의해 사용될 수 있는 데이터를 나타낸다.
용어 "키"는, 본 명세서에서, 컨텐츠 키, 또는 컨텐츠 키를 (컨텐츠 보호 프로토콜에 따라) 발생 또는 다른 방식으로 획득하기 위해 암호 장치에 의해 사용될 수 있는 데이터를 나타내는 데 사용된다. 표현 "키" 및 "키 데이터"는, 본 명세서에서, 상호 교환가능하게 사용된다.
용어 데이터의 "스트림"은, 본 명세서에서 사용되는 바와 같이, 모든 데이터가 동일한 유형이고 소스로부터 목적지 장치로 전송되는 것을 나타낸다. 데이터의 "스트림"의 데이터의 전부 또는 그 일부는 단일의 논리적 개체(예를 들어, 영화, 노래, 또는 그의 일부분)를 구성할 수 있다.
용어 "HDCP 프로토콜"은, 본 명세서에서, 종래의 HDCP 프로토콜, 및 종래의 HDCP 프로토콜과 유사하지만 하나 이상의 측면에서 그와 다른 수정된 HDCP 프로토콜 둘다를 나타내기 위해 광의적으로 사용된다. 본 발명의 실시예들 중 일부(그렇지만, 전부는 아님)는 HDCP 프로토콜을 구현한다. 종래의 HDCP 프로토콜은 활성 비디오 기간 동안에 데이터를 암호화(또는 복호화)하지만, 활성 비디오 기간들 사이의 블랭킹 구간 동안에는 그렇지 않다. 수정된 HDCP 프로토콜의 예는 활성 비디오 기간들 간에 전송되는 데이터의 복호화를(이 뿐만 아니라, 활성 비디오 기간 동안에 전송되는 비디오 데이터의 복호화도) 달성하기 위해 또는 활성 비디오 기간들 간에 전송되는 데이터의 암호화를(이 뿐만 아니라, 활성 비디오 기간 동안에 전송되는 비디오 데이터의 암호화도) 달성하기 위해 필요한 정도로만 종래의 HDCP 프로토콜과 다른 컨텐츠 보호 프로토콜이다.
종래의 HDCP 프로토콜의 수정된 버전인 HDCP 프로토콜의 예는 종래의 HDCP 프로토콜에 대한 "업스트림" 변형("업스트림" 프로토콜이라고 함)이다. 한 버전의 업스트림 프로토콜은 Intel Corporation의 Upstream Link of High-bandwidth Digital Content Protection, Revision 1.00(2001년 1월 26일)(이후부터, "업스트림 규격"이라고 함)에 기술되어 있다. 업스트림 프로토콜에서, "송신기"는 그래픽 컨트롤러(그래픽 컨트롤러는 "수신기"로서 기능함)와 통신하도록 업스트림 프로토콜을 구현하기 위한 소프트웨어로 프로그램된 프로세서이다. 이러한 프로세서는, "업스트림" 프로토콜에 따라 인증 교환을 실행한 후에, 비디오 데이터를 그래픽 컨트롤러로 전송할 수 있다. 프로세서 및 그래픽 컨트롤러는 암호화된 비디오 데이터를 그래픽 컨트롤러로부터 디스플레이 장치로 전송하도록 구성되어 있는 퍼스널 컴퓨터의 구성요소일 수 있다. 그래픽 컨트롤러 및 디스플레이 장치는, 그래픽 컨트롤러(이 때, "송신기"로서 기능함)가 비디오 데이터를 암호화하고 이 암호화된 비디오를 디스플레이 장치로 전송할 수 있게 해주고 또 디스플레이 장치("수신기" 로서 기능함)가 이 암호화된 비디오를 복호화할 수 있게 해주는, 또하나의 암호화 프로토콜(예를 들어, 상기한 종래의 HDCP 프로토콜)(이와 관련하여 "다운스트림" HDCP 프로토콜이라고 할 수 있음)을 실행하도록 구성될 수 있다.
그렇지만, 본 발명과는 달리, 그래픽 컨트롤러(이 때, "송신기"로서 기능함)가 원시 컨텐츠를 암호화하고 그 결과 얻어지는 암호화된 컨텐츠를 ("다운스트림" HDCP 프로토콜에 따라) 개방형 시스템 외부의 장치(예를 들어, 디스플레이 장치)로 전송할 수 있도록 해주기 위해, 프로세서(이 프로세서가 "송신기"로서 기능함)가 "수신기"로서 기능하는 그래픽 컨트롤러와 통신하도록(또한 원시 컨텐츠를 그래픽 컨트롤러로 전송하도록) 업스트림 프로토콜을 구현하기 위한 소프트웨어로 프로그램되어 있는 경우, 업스트림 프로토콜은 퍼스널 컴퓨터 또는 PDN의 프로세서에 존재하는 원시 컨텐츠에 적절한 보호를 제공하지 않는다.
업스트림 프로토콜에 다수의 구조적 결함이 있으며, 업스트림 프로토콜을 구현하는 퍼스널 컴퓨터 또는 PDN은, 공격자가 퍼스널 컴퓨터 또는 PDN 내에 존재하는 원시 컨텐츠에 액세스할 수 있는, 적어도 하나의 공격을 받게 된다. 이러한 공격의 일례는, (그래픽 컨트롤러로부터의) 업스트림 인증 요청이 가로채기되고 (그래픽 컨트롤러로의) 대응하는 응답이 위조되는, "중간자(man-in-the-middle)" 공격이다. 업스트림 프로토콜을 구현하는 퍼스널 컴퓨터는 한가지 기본적인 이유, 즉 시스템 구성요소 중 적어도 2개(애플리케이션 및 비디오 드라이버)가 소프트웨어로 되어 있다는 이유로 용이하게 공격받는다. 이들은 디버그(debug), 디컴파일(de-compile), 변경(alter) 및 복사될 수 있으며, 그 결과 발생하는 임의의 "해킹"이 아마도 인터넷을 통해 빠르고 용이하게 배포된다. 따라서, 업스트림 프로토콜은 기본적으로 결함이 있고 당업자가 (특수 하드웨어 또는 툴이 없이도) 목적한 HDCP 보호를 우회할 수 있게 해준다. 게다가, 이것은 대규모로 일어날 수 있으며, 용이하게 검출 또는 대응할 수 없다.
본 발명의 측면들은 상기한 미국 특허 출원 제10/679,055호의 개시 내용의 일반화이다. 본 발명의 이들 및 어떤 다른 측면은, 상기한 소프트웨어 구멍 문제를 회피하는 등에 의해, PDN에서 컨텐츠를 보호하는 방법 및 장치이다. 본 발명의 어떤 측면들에 따르면, 평문 컨텐츠 및 컨텐츠의 복호화를 달성하는 데 사용되는 비밀이 PDN 내의 하드웨어(예를 들어, 하나 이상의 집적 회로) 내부에 보호되고, PDN 내의 이러한 하드웨어 밖에 존재할 때마다 암호화된다.
한 부류의 실시예들에서, 본 발명은, (컨텐츠가 PDN에 들어올 때 이미 원하는 포맷으로 암호화되어 있지 않는 한) PDN에 들어오는 모든 디지털 컨텐츠(예를 들어, 고선명 디지털 비디오 또는 다른 비디오 데이터 및/또는 오디오 데이터)를 전사하도록 구성되어 있는 "인그레스" 회로(때로는 인그레스 "유닛"이라고 함)를 포함하는, 개인 디지털 네트워크("PDN")이다. 이 전사(transcryption)(즉, 입력 포맷으로부터의 복호화 및 그에 뒤이은 내부 PDN 포맷으로의 재암호화)는 인그레스 회로 내에서 하드웨어적으로 보안 방식으로 수행되며, 재암호화는 복호화된 컨텐츠가 인그레스 회로 외부의 하드웨어 또는 소프트웨어에 의해 액세스가능하거나 공격을 받기 쉽게 되기 이전에 행해진다. 인그레스 회로는 PDN에 들어올 때 이미 원하는 암호화 포맷으로 되어 있는 컨텐츠에 대해 전사를 수행하지 않는다(예를 들어, 컨텐츠 배포 소스가 본 발명의 PDN에 의해 구현되는 동일한 컨텐츠 보호 방식을 사용하는 경우).
표현 "제어된 컨텐츠(controlled content)"는, 본 명세서에서, 때때로 "전사된 컨텐츠" 및 PDN에서의(예를 들어, PDN의 인그레스 회로에서의) 전사를 거치지 않았지만 PDN의 회로에 의해 발생되는 전사된 컨텐츠와 동일한 암호화 포맷으로 되어 있는 PDN 내의 암호화된 컨텐츠(예를 들어, PDN에 들어올 때 이미 원하는 암호화 포맷으로 되어 있는 PDN 내의 암호화된 컨텐츠) 둘다를 포함하는 부류 내의 암호화된 컨텐츠를 나타내는 데 사용된다. 표현 "PDN 암호화 포맷"은 PDN의 인그레스 회로에 의해 발생된(또한 그로부터 출력된) 전사된 컨텐츠의 암호화 포맷을 나타내는 데 사용된다. 본 발명의 PDN의 일반적인 실시예의 동작을 설명하면, PDN의 인그레스 회로는 컨텐츠에 대해 전사를 수행하여 PDN 암호화 포맷을 갖는 전사된 컨텐츠를 발생한다. 본 발명의 PDN의 어떤 실시예들에서, PDN의 이그레스(Egress) 회로(이하에서 기술함)는 PDN 암호화 포맷을 가질 수 있는(그렇지만 꼭 그럴 필요는 없음) 전사된 컨텐츠를 발생하기 위해 컨텐츠에 대해 전사를 수행한다.
한 부류의 실시예들에서, PDN 내의 제어된 컨텐츠(예를 들어, PDN의 인그레스 회로에서 발생된 전사된 컨텐츠, 또는 PDN에 들어올 때 이미 PDN 암호화 포맷으로 되어 있는 암호화된 컨텐츠)는, PDN 내부에서 소비(예를 들어, 디스플레이 및/또는 재생)하기 위해 및/또는 PDN으로부터 출력하기 위해 PDN 내의 "이그레스" 회로(때때로, 이그레스 "유닛"이라고 함) 내부에서 하드웨어적으로 보안 방식으로 복호화될 때까지, 집적 회로들 간에 전송될 때마다, PDN 내부에서 PDN 암호화 포맷으로 있으며, 그렇지 않은 경우 소프트웨어에 의해 또는 임의의 다른 불법 개체에 의해 용이하게 액세스될 수 있다. 선택적으로, 이그레스 회로는 컨텐츠를 평문 형태로 만들기 위해 제어된 컨텐츠에 대해 하드웨어 복호화를 수행할 뿐만 아니라, (압축된 데이터일 수 있는) 평문 컨텐츠에 대해 부가적인 처리를 수행한다. 예를 들어, 이그레스 회로는 평문 컨텐츠를, PDN 내부에서 소비하기 위해 또는 PDN으로부터 (예를 들어, 외부 오디오 비디오 시스템으로) 출력하기 위해, 하드웨어적으로 포맷화 및 재암호화할 수 있다. 예를 들어, 이그레스 회로는, 컨텐츠가 PDN으로부터 외부의 기록 및 재생 장치로 내보내기될 수 있도록 하기 위해, DTCP 암호화로 평문 컨텐츠를 종래의 IEEE 1394 포맷으로 변환할 수 있다. 다른 예로서, 이그레스 회로는, 압축된 평문 컨텐츠로부터 원시 오디오 및 비디오 데이터를 발생하기 위한 MPEG 오디오 및 비디오 압축 해제 하드웨어, 및 HDMI 링크를 통해 수신기로 보안 방식으로 전송될 수 있는 HDCP-암호화된, HDMI-포맷의 데이터를 발생하기 위해 원시 오디오 및 비디오 데이터에 대해 HDCP 암호화를 수행하기 위한 회로를 포함할 수 있다. 일반적으로, 본 발명의 PDN은, 인그레스 또는 이그레스 회로에 의해 사용 또는 전송하기 위한 인그레스 또는 이그레스 회로에 존재하는 비밀(예를 들어, PDN에 의해 수신되는 컨텐츠의 전사를 위해 인그레스 회로에서 또는 제어된 컨텐츠의 복호화를 위해 이그레스 회로에서 사용되는 키 데이터)이 PDN 내부의 소프트웨어에 의해 또는 PDN 외부의 임의의 개체에 의해 비암호화된 형태로 액세스가능하지 않도록, 구현된다.
한 부류의 실시예들에서, 본 발명의 PDN은 로크박스 회로(Lockbox circuitry)(본 명세서에서, 때때로 "로크박스"라고 함)를 포함하는 적어도 하나의 장치를 포함한다. 각각의 이러한 장치(PDN의 "노드"라고 함)는 하드웨어(또한 선택적으로 소프트웨어 또는 펌웨어)를 포함하며, 집적 회로이거나 집적 회로를 포함할 수 있다. PDN은 일반적으로 적어도 2개의 노드(예를 들어, 비디오 또는 오디오 저장, 재생 및 처리 기능을 구현하는 노드)를 포함한다. 각각의 노드는 인그레스 회로 및 이그레스 회로 중 하나 또는 그 둘다는 물론 로크박스 회로도 포함할 수 있다(그렇지만, 꼭 그럴 필요는 없다). 인그레스 회로(인그레스 회로는 본 명세서에서 때때로 인그레스 유닛이라고 함) 및 로크박스 회로를 포함하는 노드는 "인그레스 노드"라고 말해진다. 이그레스 회로(이그레스 회로는 본 명세서에서 때때로 이그레스 유닛이라고 함) 및 로크박스 회로를 포함하는 노드는 "이그레스 노드"라고 말해진다. 인그레스 노드 및 이그레스 노드 각각은 사용 제한 세트(Use Restriction Set)의 적용을 받는 컨텐츠(예를 들어, 디지털 비디오 데이터 및 디지털 오디오 데이터 중 하나 또는 그 둘다)를 수신할 수 있고, 사용 제한 세트에 의해 금지되지 않은 적어도 하나의 방식으로(선택적으로, 많은 또는 모든 방식으로) 컨텐츠를 사용하도록 구성되어 있다.
본 발명의 PDN의 어떤 실시예들에서, 각각의 노드 내의 로크박스, 각각의 인그레스 노드 내의 인그레스 회로, 및 각각의 이그레스 노드 내의 이그레스 회로는 하드웨어로 구현되어 있다. 본 발명의 PDN의 한 부류의 실시예들에서, 각각의 로크박스, 각각의 인그레스 노드 내의 인그레스 회로, 및 각각의 이그레스 노드 내의 이그레스 회로는 집적 회로 또는 멀티-칩 셋(펌웨어로 프로그램된 마이크로프로세서를 포함할 수 있음)으로서 구현되어 있지만, 소프트웨어로 프로그램된 외부 CPU를 포함하지 않는다. 어떤 실시예들에서, 본 발명을 구현하는 PDN의 각각의 노드는 또한 선택적으로, (비암호화된 형태로 된) 비밀들이, 그 비밀들 중 어느 것도 노드 내의 소프트웨어 또는 펌웨어에 노출시키지 않고, 노드 내부에서 하드웨어적으로만 처리될 수 있도록 각각의 노드가 구성되어야 한다는 제한을 받는, 펌웨어 또는 소프트웨어로 프로그램된 적어도 하나의 구성요소를 포함한다. 암호화된 비밀(예를 들어, 본 발명에 따라 노드에서 하드웨어적으로 암호화된 비밀)은 (암호화된 형태로) 노드 내부의 소프트웨어 또는 펌웨어에 또는 노드 외부의 개체들에 노출될 수 있다. 따라서, 각각의 인그레스 노드 내의 인그레스 회로 및 각각의 이그레스 노드 내의 이그레스 회로는 보안 하드웨어를 포함하고, 또한 선택적으로 펌웨어 또는 소프트웨어로 프로그램된 적어도 하나의 구성요소를 포함하지만, 각각의 노드 내의 인그레스 회로 및/또는 이그레스 회로는 (비암호화된 형태의) 비밀을, (비암호화된 형태의) 그 비밀 중 어느 것도 노드 외부의 임의의 개체에 또는 노드 내의 소프트웨어 또는 펌웨어에 노출시키지 않고, 하드웨어적으로만 처리하도록 구성되어 있다. 노드 내의 로크박스는 일반적으로 보안 하드웨어를 포함하며(그렇지만, 꼭 그럴 필요는 없음), 펌웨어 또는 소프트웨어로 프로그램된 적어도 하나의 구성요소를 포함할 수 있다(그렇지만, 꼭 그럴 필요는 없음)(예를 들어, 로크박스는 펌웨어 또는 소프트웨어로 프로그램된 프로세서일 수 있다). 그렇지만, 각각의 노드(및 노드 내의 각각의 로크박스)는 비밀(노드를 포함하는 PDN에서 컨텐츠 보호를 위해 사용하기 위한 것임) 중 어느 것도 (비암호화된 형태로) 노드 외부의 임의의 개체에(또는 노드 내의 소프트웨어 또는 펌웨어에) 노출되지 않는 방식으로만 비밀을 처리하도록 구성되어 있다. 노드(및/또는 노드 내의 로크박스)는, 이것이 비밀 중 어느 것도 노드 외부의 임의의 개체에(또는 노드 내의 소프트웨어 또는 펌웨어에) (비암호화된 형태로) 노출되지 않도록 하는 방식으로 달성되는 경우, 보안 하드웨어에서 (비암호화된 형태로) 비밀을 처리하도록 구성될 수 있다.
(PDN의 인그레스 노드 내의) 각각의 인그레스 유닛은 PDN에 들어오는 암호화된 컨텐츠를 (하드웨어적으로) 복호화 및 재암호화하도록 구성되어 있다. 일반적으로, 복호화 및 재암호화(즉, 전사(transcryption))는 인그레스 유닛 내에서 하드웨어적으로 보안 방식으로 수행되고, 재암호화는 복호화된 컨텐츠가 인그레스 유닛 외부의 임의의 개체(하드웨어 또는 소프트웨어)에 의해 액세스가능하거나 공격을 받게 되기 이전에 행해진다. 인그레스 유닛에서 빠져나오는 재암호화된 컨텐츠는 PDN 내부에서, 집적 회로들 간에 전송될 때마다, 재암호화된 형태로 있으며, 그렇지 않은 경우 소프트웨어에 의해 또는 불법 개체에 의해 용이하게 액세스될 수 있다. (PDN의 이그레스 노드 내의) 각각의 이그레스 유닛은 재암호화된 컨텐츠를 PDN에 의해 디스플레이(및/또는 재생)하기 위해 및/또는 그로부터 출력하기 위해 (하드웨어적으로) 보안 방식으로 복호화하도록 구성되어 있다. 각각의 노드 내부의 로크박스 회로("로크박스")는 일반적으로 허가된 동작을 수행하기 위해 적어도 하나의 인그레스 및/또는 이그레스 유닛이 필요로 하는 비밀을 저장할 수 있으며, 일반적으로 저장하고 있다. 인그레스 노드 또는 이그레스 노드 내부의 로크박스가 다른 노드 내부의 로크박스와 (예를 들어, 후자의 노드로부터 컨텐츠 키를 획득하기 위해) 통신을 할 때, 그 로크박스는 로크박스들 간에 설정된 보안 통신 채널을 통해서만 그렇게 한다. "컨텐츠 키"는 PDN 내부에서 컨텐츠를 복호화 또는 암호화하는 데 사용되고 PDN 내의 노드들에 의해 안전하게 보관되는 키(양호하게는, 암호적으로 양호한 랜덤성의 소스(source of randomness)를 사용하여 보안 방식으로 발생된 키)이다. 노드 내부에서의(예를 들어, 로크박스와 인그레스 노드 내부의 인그레스 회로 간의 통신) 통신은 임의의 보안 방식으로(예를 들어, 노드들 간의 통신이 달성되는 동일한 방식으로 또는 다른 방식으로) 달성될 수 있다. 노드 내부의 로크박스, 인그레스 및 이그레스 회로 중 임의의 것에 의해 사용되는(또는 그에게로 전송되는) PDN의 노드 내에 존재하는 비밀은 PDN의 다른 노드로 비암호화된 형태로 전송되지 않으며, 일반적으로 이러한 비밀은 PDN 내부의 소프트웨어 또는 펌웨어에 의해 또는 PDN 외부의 임의의 개체에 의해 비암호화된 형태로 액세스가능하지 않다(그렇지만, 노드 내부의 하드웨어에 의해서는 액세스가능할 수 있다). 일반적인 실시예에서, PDN은, 공격자가 노드를 에뮬레이트하려고 시도하는, 컨텐츠에의 불법 액세스를 하려는 시도를 격퇴시키기 위해 효과적인 인증 메카니즘을 이용한다(예를 들어, 인증 교환은, 노드들 중 어느 한쪽이 아마도 공격자에게 유용한 임의의 비밀을 상대편 노드에 전송하기 이전에, 인그레스(또는 이그레스) 노드와 다른 노드 간에 성공적으로 완료되어야만 하고, 공격자는 이러한 교환을 성공적으로 완료하기 위한 능력이 부족하다). 본 발명의 PDN의 이러한 실시예에 의해 제공되는 보호를 우회하기 위해서는, 노드 내부의 로크박스, 인그레스 및 이그레스 중 하나 이상에 침투하고 각각의 열린 하드웨어 유닛 내부의 회로를 수정(또는 본질적으로 수정)하는 아주 어려운(일반적으로 실행불가능한) 동작을 실행할 필요가 있다. 게다가, 이 동작은 공격받게 되는 각각의 물리적 시스템에 대해 수행되어야만 하며, (소프트웨어로 할 수 있는 것처럼) 인터넷을 통해 간단히 배포 및 다운로드될 수 없다.
본 발명의 PDN의 일반적인 실시예들에서, 인그레스 노드가 인그레스 동작을 수행하기 위해(예를 들어, 컨텐츠 키를 사용하여 컨텐츠를 전사하기 위해), 노드의 로크박스는 컨텐츠 키를 그 안에 저장하고 있거나(또는, 이와 동등하게, 외부에 안전하게 저장하고 있어야만 하거나(이 경우 그 키를 로컬적으로 캐쉬하고 그 키를 이러한 캐쉬로부터 검색할 수 있음)), 로크박스는 다른 노드의 로크박스로부터 컨텐츠 키를 안전하게 요청 및 획득해야만 한다. 노드 내부의 회로 및 통신(예를 들어, 로크박스와 노드 내의 인그레스 회로 간의 통신)이 어떻게든 구현될 수 있지만, 가능한 한 간단하게 구현하는 것이 양호하다. PDN 내의 노드들 간에 통신하는 데 어느 메카니즘이 사용되는지에 상관없이, 보안 방식으로, 즉 정보가 2개의 인증된 노드들 간에만 교환될 수 있고 제3자가 그 통신을 판독, 수정 또는 재생할 수 없도록 보장해주는 방식으로 노드들 간에 통신을 하는 것이 가능해야만 한다. 노드가 단일 칩으로서 구현되어 있는 경우, 그 칩의 패키지는 노드의 구성요소들 간의 통신에 충분한 보안을 제공할 수 있으며, 따라서 칩 내부의 구성요소들 간의 통신을 위해 추가의 보안 대책이 필요하지 않게 된다. 노드의 구성요소들이 동일한 PC 보드 상에 또는 동일한 박스나 캐비넷 내에 구현되어 있는 경우, 이들 구성요소들 간의 보안 통신은 충분한 안정성의 간단한 암호 메카니즘을 사용하여(예를 들어, 세션 키를 안전하게 생성하고 그에 관해 상호 합의함으로서) 달성될 수 있다. 이와 달리, 노드들 간의 통신은 항상 표준화된 방식으로 수행된다(예를 들어, 종단점을 인증하고 노드들 간에 보안 채널을 설정하기 위해 초기 교환이 수행되고, 노드들 간에 전송되는 임의의 비밀이 이어서 점대점 보안 채널을 통해 암호화된 형태로 전송된다). 예를 들어, 2개의 노드를 포함하는 PDN에서, 노드들 중 한쪽의 제조업자에 독점적인 암호 메카니즘이 그 노드의 구성요소들 간의 노드내 통신에 사용될 수 있고, 상대편 노드 내부에서의 노드내 통신을 위해 다른 메카니즘이 사용될 수 있지만, 양쪽 노드는 표준화된 방식으로 서로 통신하도록 구성되어 있다. 한 부류의 실시예들에서, 노드는 다른 노드들과 통신하기 위해 대칭 암호화 메카니즘을 사용하고 그의 구성요소들 간의 노드내 통신을 위해 동일한 메카니즘을 사용하도록 구성되어 있으며, 따라서 노드내 통신 및 노드간 통신을 위해 하드웨어를 공유하는 것을 가능하게 해준다(보다 구체적으로는, 노드는 일반적으로 비대칭 메카니즘을 사용하여 서로를 인증하고 차후의 대칭 암호화를 위해 사용될 키를 교환하도록 구성되어진다. 이러한 인증 및 키 교환 이후에, 대칭키를 교체하는 것이 필요하게 될 때까지(이 시점에서 노드들은 대칭키의 교환을 달성하기 위해 비대칭 메카니즘을 다시 사용함) 대칭 메카니즘이 사용된다. 어떤 유형의 키 확장/스케쥴링 방법도 역시 원하는 간격으로 대칭키를 갱신된 키로 교체하는 데 사용될 수 있다). 다른 노드와의 통신을 위해 또한 노드내 통신을 위해 동일한 대칭 메카니즘을 사용하는 노드의 제조 시에, (예를 들어, 집적 회로 제조 기술의 결과로서) 노드의 로크박스 내에 또한 로크박스와의 노드내 통신에 참가할 수 있는 노드의 모든 다른 구성요소들 내에 동일한 대칭 키가 저장될 수 있다(이 대칭키는 키 자료의 재사용을 줄이기 위해 다른, 보다 일시적인 대칭키를 전송하는 데 사용될 수 있다).
본 발명의 PDN의 어떤 실시예들에서, PDN의 어떤 장치들은 노드이고(각각의 노드는 로크박스를 포함하며, 또한 선택적으로 인그레스 및/또는 이그레스 회로를 포함함), PDN의 다른 장치들은 로크박스를 포함하지 않으며 따라서 노드가 아니다. 본 발명의 PDN의 일반적인 실시예의 다른 구성요소들(예를 들어, 다른 노드들)이 개별적이고 독립적인 공급업자에 의해 제조 및 제공될 것으로 예상되지만, 이것이 꼭 그럴 필요는 없다.
본 발명의 PDN의 일반적인 구현에서, 각각의 인그레스(또는 이그레스) 노드 내부의 인그레스(또는 이그레스) 회로는 허가된 동작만을 수행하도록 구성되어 있으며, 컨텐츠에 대해 임의의 허가된 동작(예를 들어, 임의의 허가된 복호화 동작)을 수행하기 이전에 로크박스로부터 적어도 하나의 비밀을 획득해야만 한다. 그렇지만, 각각의 로크박스는, 상대편 노드가 그 비밀이 상대편 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는지를 먼저 판정하지 않고는, 어떤 이러한 비밀도 다른 노드에 제공하지 않도록 구성되어 있다. 또한, 노드가 적용가능한 컨텐츠 사용 제한 세트에 관한 정보를 교환할 필요가 있을 수 있다. 이그레스(인그레스) 회로가 컨텐츠에 대해 동작을 수행하기 위해, 2개의 노드는 협상할 필요가 있고 및/또는 노드들 중 하나가 상대편에 상태 정보를 제공할 필요가 있을 수 있고 및/또는 (예를 들어, 다른 노드가 그 컨텐츠에 대해 특정의 동작을 수행할 수 있게 해주기 위해) 노드들 중 하나가 컨텐츠에 대한 그 자신의 권리를 포기할 필요가 있을 수 있다. 예를 들어, 제1 노드 내의 로크박스는, 이그레스 노드가 미리 정해진 시간 윈도우 내에 제1 노드에 특정의 상태 정보를 제공하지 않는 한, (키 또는 다른 비밀을 이그레스 노드에 제공한 이후에) 이그레스 노드로부터의 허가를 취소할 수 있다. 예를 들어, 이그레스 노드는, 이그레스 노드 내의 이그레스 회로가 실제로 특정의 컨텐츠를 렌더링하였거나(하지 않았거나) 또는 다른 방식으로 컨텐츠를 다른 장소에서 사용하기 위한 포맷으로 변환하였음을, 제1 노드 내의 로크박스에 알려줄 필요가 있을 수 있다. 물론, 보안 및 비용 둘다로 인해, 노드들 간의 교환의 복잡도를 제한하는 것이 바람직하다. 어떤 실시예들에서, 허가 취소를 달성하기 위한 가장 덜 복잡한(따라서 양호한) 기술은 이그레스 또는 인그레스 노드가 규칙적인 간격으로 계속 허용하도록 제2 (허가 부여) 노드에 요청을 어써트하게 하는 것(각각의 요청은 현재 상태 데이터(예를 들어, 일련의 동작들 중 얼마나 이그레스 또는 인그레스 노드에 의해 완료되었는지를 나타내는 데이터)를 포함함), 및 미리 정해진 요청 및/또는 상태 데이터를 수신하지 않는 한, (이그레스 또는 인그레스 노드가 수행하기를 원하는 동작을 수행하기 위해 이그레스 또는 인그레스 노드가 필요로 하는 적어도 하나의 비밀을 이그레스 또는 인그레스에 허용하지 않는다는 의미에서) 이그레스 또는 인그레스 노드에 부여된 허가를 (자동적으로) 취소하도록 제2 노드의 로크박스를 구성하는 것일 수 있다. 예를 들어, 이그레스 노드는 요청된 동작을 수행하기 위해 일련의 키를 필요로 할 수 있고, 제2 노드의 로크박스는, 일련의 키 중 하나의 키를 이그레스 노드에 제공한 후에, 이그레스 노드로부터 미리 정해진 유형의 상태 데이터를 수신한 후에만, 일련의 키 중 그 다음 키를 이그레스에 제공하도록, 구성될 수 있다. 다른 실시예들에서, 이들 목적은 이그레스 노드로 하여금 그 자신의 상태를 모니터링하게 하고 사용 제한 세트 조건이 충족되도록 더 이상 보장할 수 없는 경우 컨텐츠 키를 폐기하게 함으로써 충족될 수 있다.
이전의 단락에 설명한 유형의 기술을 사용하여, PDN 내의 모든 이그레스 및 인그레스 회로는 허가된 방식 및 허가된 포맷이 아니면 컨텐츠를 발생(또는 출력)할 수 없다. 예를 들어, PDN이 HDMI 링크를 통해 HDCP-암호화된 포맷으로 컨텐츠를 출력하도록 허가되어 있는 경우, PDN의 이그레스 회로는, (PDN의 인그레스 회로에 의해 발생된) 재암호화된 컨텐츠를 복호화하고 그 컨텐츠를 HDCP 프로토콜을 사용하여 재암호화하며 이 HDCP-암호화된 컨텐츠를 HDMI 링크를 통해 전송하기 위해 포맷하는 데 또한 (예를 들어, 고선명 모니터 내의) 허가된 HDMI 수신기만이 전송된 컨텐츠를 복호화 및 디스플레이할 수 있도록 포맷된 컨텐츠를 HDMI 링크를 통해 PDN 외부의 HDMI 수신기로 전송하는 데, 로크박스로부터 획득된 하나 이상의 비밀을 사용하도록 구성될 수 있다. 예를 들어, 이그레스 노드는 비디오 스트림을 계속하여 복호화할 수 있으며(또한 압축 해제되도록 할 수 있으며), 이 비디오 스트림은 차례로 HDMI 링크를 통해 전송하기 위해 HDCP로 재암호화된다. HDCP 연결이 더 이상 유효하지 않은 것으로 HDMI 링크가 보고하는 경우, 이그레스 노드는 스트림의 복호화를 중단하고, 컨텐츠 키를 폐기하며, 또 예외를 보고할 수 있다. 다른 예로서, 본 발명의 PDN의 실시예가 평문 컨텐츠의 다운-스케일링된 아날로그 버전을 출력하도록 허가되어 있는 경우, 그의 이그레스 회로는, (PDN의 인그레스 회로에 의해 발생된 재암호화된 컨텐츠를 나타내는 디지털 데이터에 응답하여) 평문 컨텐츠를 나타내는 아날로그 신호의 발생을 가능하게 해주고 또 이 아날로그 신호를 PDN으로부터 수신기(예를 들어, 아날로그 디스플레이 장치)로 출력하기 위해, 로크박스로부터 획득된 하나 이상의 비밀을 사용하도록 구성될 수 있다. 이들 예 둘다에서, 로크박스는, 본 발명에 따르면, 이그레스 유닛이 그 비밀이 이그레스 유닛으로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있음을 (예를 들어, 인증 교환의 결과로서) 먼저 판정하지 않고서는, 어떤 이러한 비밀도 이그레스 유닛에 제공하지 않도록 구성된다. 게다가, 이그레스 노드가 컨텐츠를 사용하려고 하는 용도를 정확하게 보고하기 위해 이그레스 노드에 의존할 수 있으며, 로크박스는 그 선언된 용도가 컨텐츠와 연관된 사용 제한 세트를 위반하게 되는 이그레스 노드에 컨텐츠 키를 제공하지 않는다.
(본 발명에 따른 PDN의 노드에서 사용하기 위한) 로크박스는 일반적으로, 상대편 노드가 그 비밀이 그 상대편 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있음을 (예를 들어, 인증 교환의 결과로서) 먼저 판정하지 않고서는, 어떤 비밀도 다른 노드에 제공하지 않도록, 구성되어 있다. 로크박스가 로크박스와 동일한 노드 내에 영구적으로 설치된 이그레스(또는 인그레스) 회로에 비밀을 제공할 때(예를 들어, 로크박스 및 이그레스 회로가 하나의 셋톱 박스 내에 영구적으로 설치된 서로 다른 칩에 구현되어 있는 경우), 이러한 인증 교환은 묵시적일 수 있다(그럴 가능성이 있다). 묵시적인 인증 교환은, 장치의 제조 동안에 로크박스 및 이그레스(또는 인그레스) 회로 각각에 공유 비밀이 (예를 들어, 공유 비밀을 이그레스 또는 인그레스 회로 및 로크박스 각각의 실리콘에 구워 넣거나 또는 다른 방식으로 그 각각에 기록함으로써) 영구적으로 저장되는 경우, (노드로서 사용가능한) 공통의 장치에 영구적으로 설치되어 있는 로크박스와 이그레스(또는 인그레스) 회로 사이에서 수행될 수 있다. 이러한 공유 비밀은 이어서 서로를 인증하고 또 키 자료를 로크박스로부터 이그레스 또는 인그레스 회로로 배포하기 위해(예를 들어, 키 재사용을 제한하기 위해 컨텐츠에 대해 동작하는 이그레스 또는 인그레스 회로에 의해 사용되는 키를 주기적으로 갱신하고 그에 의해 다양한 공격에 대한 장치의 취약성을 감소시키기 위해) 로크박스 및 이그레스(또는 인그레스) 회로에 의해 사용될 수 있다.
한 부류의 실시예들에서, PDN에 들어오는 컨텐츠는 (예를 들어, 칩 내부의 인그레스 회로에서) 하드웨어적으로 복호화되고, 이 복호화된 (평문) 컨텐츠는, 본 발명에 따르면, 이 평문 컨텐츠가 하드웨어 외부에 노출되기 이전에(예를 들어, 복호화된 컨텐츠가 인그레스 회로를 포함하는 칩을 빠져나가기 이전에) (예를 들어, 256 비트 AES, CTR 모드, 프로토콜을 사용하여) 하드웨어에서 재암호화된다. 이와 같이, (컨텐츠의 평문 버전이 아니라) 재암호화된 컨텐츠만이 보안 복호화 하드웨어(이 하드웨어도 역시 재암호화를 수행함) 외부에 노출되고, 이 컨텐츠는 하드웨어에서의 초기 복호화 이후에도 PDN 내부에서 잘 보호된다. 재암호화된 컨텐츠가 PDN을 빠져나가기 직전에 또는 PDN 내부에서 소비(예를 들어, 디스플레이)되기 직전에, 본 발명에 따르면, 이는 이러한 하드웨어 외부에 복호화된 (평문) 컨텐츠를 노출시키지 않고 하드웨어적으로(예를 들어, 칩 내부의 이그레스 회로에서) 복호화된다.
다른 부류의 실시예들에서, 본 발명은 PDN에 들어오는 컨텐츠에 대해 하드웨어적으로 복호화 및 재암호화(전사)를 수행하고 그 컨텐츠가 전사 하드웨어(예를 들어, 칩 내부의 인그레스 회로)를 빠져 나온 후에 다른 하드웨어 유닛(예를 들어, 다른 칩 내부의 이그레스 회로)(여기에서 이 컨텐츠가 PDN에 의해 디스플레이 및/또는 재생(및/또는 그로부터 출력)되기 위해 복호화됨(또한 선택적으로 부가적인 처리를 거침))에 들어가기 이전에 PDN 내부에서 그 컨텐츠를 재암호화된 형태로 유지시키는 방법 및 장치이다. 제어된 컨텐츠의 컨텐츠 전사 또는 복호화를 달성하기 위해 PDN에서 사용되는 어떤 비밀(예를 들어, 키 데이터 또는 인증서)도 PDN 내부의 소프트웨어 또는 펌웨어에 의해 또는 PDN 외부의 임의의 개체에 의해 비암호화된 형태로 액세스될 수 없다. 본 발명의 PDN의 많은 실시예들에서 로크박스, 인그레스, 및 이그레스 회로에 의해 사용되는 인증서가 비밀로 유지될 필요가 없다는 것을 잘 알 것이다. 실제로, 이러한 인증서는, 이 인증서가 암호적으로 검증가능(디지털 서명을 통해 신뢰의 근원(root of trust)까지 추적가능)하기만 하다면, 종종 PDN 내부에서 (비밀로 처리되기 보다는 오히려) 공공연히 또한 자유롭게 공유된다.
어떤 실시예들에서, 본 발명의 PDN은 개방형 시스템 아키텍처를 갖는 컴퓨팅 시스템(예를 들어, PC)이다. 예를 들어, 종래의 개방형 컴퓨팅 시스템은 본 발명에 따라 제1 노드, 인그레스 노드, 및 이그레스를 포함하도록 수정될 수 있고(각각의 노드는 일반적으로 별도의 칩으로 구현되어 있지만, 꼭 그럴 필요는 없음), 인그레스 노드는 그 시스템에 들어오는 컨텐츠가, 본 발명에 따라 그 시스템 내부에서 컨텐츠를 보호하기 위해, 인그레스 노드의 인그레스 회로에서 전사되도록 연결 및 구성되어 있다.
본 발명의 다른 측면은 PDN(예를 들어, 개방형 컴퓨팅 시스템)에서 컨텐츠를 보호하는 방법, 본 발명의 PDN의 임의의 실시예(또는 로크박스 회로, 인그레스 회로 및 이그레스 회로 중 하나 이상)에 의해 구현될 수 있는 방법, PDN에서 사용하기 위한 로크박스 회로(예를 들어, 칩), PDN에서 사용하기 위한 인그레스 회로(예를 들어, 칩), PDN에서 사용하기 위한 이그레스 회로(예를 들어, 칩), 퍼스널 컴퓨터에서 사용하기 위한 버스(예를 들어, PCI 버스)를 따라 연결되어 있는 인그레스, 로크박스 및 이그레스 칩을 포함하는 카드(예를 들어, 멀티미디어 그래픽 카드), 및 PDN에서 사용하도록 구성되어 있고 또 로크박스 회로, 인그레스 회로, 및 이그레스 회로 중 적어도 하나를 포함하는 장치(예를 들어, 셋톱 박스 또는 비디오 수신기 또는 프로세서)이다.
한 부류의 실시예들에서, 본 발명은 PDN에서 사용하도록 구성되어 있는 장치(예를 들어, 원격 소스로부터 컨텐츠를 수신하는 셋톱 박스, 또는 비디오 수신기 또는 프로세서)이다. 이 장치는 본 발명의 PDN의 적어도 하나의 실시예에서 사용하도록 구성되어 있는 임의의 유형일 수 있는 인그레스(또는 이그레스) 회로 및 로크박스 회로를 포함한다. 이러한 장치의 한가지 유형은 N개의 서로 다른 포맷 중 임의의 것을 갖는 컨텐츠(예를 들어, N개의 서로 다른 컨텐츠 보호 프로토콜 중 임의의 것에 따라 암호화된 컨텐츠)를 수신 및 복호화하고 또 단일의 포맷만을 갖는(예를 들어, 단일의 컨텐츠 보호 프로토콜에 따라 보호되는) 컨텐츠의 전사된 버전을 출력하기 위해 인그레스 회로를 사용하도록 구성되어 있다. 이러한 장치의 다른 유형은 하나의 포맷만을 갖는 제어된 컨텐츠(예를 들어, 전사된 컨텐츠)를 수신 및 복호화하기 위해 이그레스 회로를 사용하도록 구성되어 있으며, M개의 서로 다른 포맷 중 임의의 것을 갖는 출력 컨텐츠(예를 들어, M개의 서로 다른 컨텐츠 보호 프로토콜 중 임의의 것에 따라 암호화된 출력 컨텐츠)를 발생하기 위해 복호화된 컨텐츠를 처리할 수 있다. 이들 2가지 유형의 장치 각각이 본 발명에 따라 구성되어 있기 때문에(즉, 단일의 컨텐츠 보호 프로토콜에 따라 암호화된 제어된 컨텐츠를, 그 장치의 각각의 인그레스 유닛이 출력하고 그 장치의 각각의 이그레스 유닛이 수신하기 때문에), 2가지 이러한 장치는 N개의 서로 다른 포맷 중 임의의 것을 갖는 컨텐츠를 수신하고, 그에 응답하여 M개의 서로 다른 포맷 중 임의의 것을 갖는 출력 컨텐츠를 발생하며 또 보안 하드웨어 외부에(예를 들어, 한쪽 장치 내부의 인그레스 칩 또는 상대편 장치 내부의 이그레스 칩 외부에) 컨텐츠의 평문 버전을 결코 노출시키지 않음으로써 그 컨텐츠를 보호할 수 있는 장치쌍을 생성하기 위해 서로 연결될 수 있다. 이러한 장치쌍의 각각의 장치는, 단지 N배의 복잡도(단일의 포맷을 갖는 입력에 응답하여 N개의 포맷 중 임의의 것을 갖는 출력을 발생하거나 N개의 포맷 중 임의의 것을 갖는 입력에 응답하여 단일의 포맷을 갖는 출력을 발생할 수 있음) 또는 M배의 복잡도(단일의 포맷을 갖는 입력에 응답하여 M개의 포맷 중 임의의 것을 갖는 출력을 발생하거나 M개의 포맷 중 임의의 것을 갖는 입력에 응답하여 단일의 포맷을 갖는 출력을 발생할 수 있음)를 갖는다는 의미에서, 간단한 방식으로 구현될 수 있다. 이와 반대로, 장치 외부에 컨텐츠의 평문 버전을 결코 노출시키지 않음으로써 컨텐츠를 보호하면서 N개의 서로 다른 포맷 중 임의의 것을 갖는 컨텐츠를 수신하고 그에 응답하여 M개의 서로 다른 포맷 중 임의의 것을 갖는 출력 컨텐츠를 발생할 수 있는 종래의 장치는 더 큰 복잡도(즉, (N*M)배 복잡도)를 갖는다. N 및 M 각각이 1보다 크고 또한 N 및 M 중 적어도 하나가 2보다 크다고 가정하면, 이 종래의 장치는 종래의 장치와 동일한 능력을 갖는 본 발명의 장치 2개(같이 고려됨)보다 더 많이 복잡하다. N 및 M 각각이 2보다 훨씬 더 클 때, 종래의 장치는 본 발명의 장치의 이러한 쌍(같이 고려됨)보다 훨씬 더 복잡하다.
어떤 실시예들에서, 본 발명의 로크박스는, 비밀이 미리 정해진 만료 시간을 갖도록 비밀의 사용이 지정된 시간 동안에만 허가되는 제한이 있는 경우, 컨텐츠 제공자 또는 다른 외부 소스로부터 수신되는 각각의 비밀(예를 들어, 키 데이터 세트)를 적절한 때에 액세스할 수 없게 만들도록(예를 들어, 삭제하도록) 구성되어 있다. 양호하게는, 로크박스는 비용 효과적인 방식으로(예를 들어, N-초 구간(단, N은 1보다 큰 작은 수임)의 가장 가까운 정수로 반올림된 미리 정해진 만료 시간을 넘어 비밀의 불법 사용을 방지하는 간단하고 저렴한 회로를 사용하여, 정확한 미리 정해진 만료 시간을 넘어 비밀의 불법 사용을 방지하기 위해서는 훨씬 더 고가의 회로가 로크박스에 포함될 필요가 있음) 이 기능을 수행하도록 구성되어 있다. 예를 들어, 로크박스가 수일 정도의 허가된 사용 기간의 만료를 넘어 단지 수초동안의 비밀의 불법 사용을 방지하는 간단하고 저렴한 회로를 포함하는 것이 양호할 수 있으며, 이 경우 허가된 사용 기간의 만료를 넘어 단지 수분의 1초 동안의 비밀의 불법 사용을 방지하기 위해서는 훨씬 더 고가의 회로가 필요하게 된다. 어떤 실시예들에서, 로크박스는, 만료 시간을 갖는 키를 언제 삭제할지(또는 다른 방식으로 액세스가능하지 않게 만들지)를 결정하는 데 사용하기 위한, 단조 증가 카운터(로크박스의 전원 차단 시에 그의 카운트가 0으로 복귀하지 않음) 또는 위조 방지 클럭(로크박스의 전원 차단 시에 리셋되지 않음)를 포함한다. 다른 대안으로서, 로크박스는 만료 시간을 갖는 키를 언제 삭제할지(또는 다른 방식으로 액세스가능하지 않게 만들지)를 결정하는 데 사용하기 위한 현재 시간 데이터를 획득하기 위해 외부의 위조 방지 클럭에 주기적으로(또는 전원을 켤 때) 액세스하도록 구성되어 있다.
일반적인 실시예들에서, 본 발명의 로크박스는 PDN 내부의 다른 장치(노드)와 통신하도록 및/또는 인터넷을 통해(또는 다른 방식으로) PDN 외부의 개체와 통신하도록 구성되어 있다. 예를 들어, 로크박스의 집적 회로 구현은 PCI 버스(이 버스를 따라 로크박스 칩과 다른 칩들이 연결되어 있음)를 거쳐 소프트웨어를 통해 칩대칩 통신을 수행하도록 구성될 수 있다. 다른 예로서, 로크박스는 (인터넷 및 PDN 소프트웨어를 거쳐) 원격 장치와 통신하기 위한 SSL 종단 회로를 포함할 수 있다. 예를 들어, 로크박스 내부의 SSL 종단 회로를 사용하여, 로크박스는 PDN의 소프트웨어로 하여금 (예를 들어, PDN의 PC의 TCP/IP 기능을 사용하여) 인터넷에 로그온하고 (인터넷으로부터 수신되거나 인터넷을 통해 전송될) 암호화된 메시지를 SSL 종단 회로로 또는 그로부터 중계하게 할 수 있다. 원격 장치는 또한 PDN의 PC 상에서 실행되는 소프트웨어로 하여금 장치가 암호화된 메시지를 인터넷을 통해 로크박스 내부의 SSL 종단 회로로 전송하는 데 필요한 TCP 계층 기능을 수행하게 할 수 있다. SSL 종단 회로는 메시지를 복호화하고 로크박스의 응답(PDN 소프트웨어를 통해 인터넷을 거쳐 전송됨)을 암호화하는 데 필요한 SSL 계층 기능을 수행할 수 있다. 다른 대안으로서, 로크박스는 PDN 내부의 (노드 이외의) 장치들과 통신하도록 및/또는 PDN 내부의 노드들 간의 통신을 위해 사용되는 프로토콜의 확장을 사용하여 (예를 들어, 인터넷을 거쳐) PDN 외부의 장치들과 통신하도록 구성될 수 있다. 이 프로토콜은 일반적으로 (서명 및 어떤 암호화를 위한) 공개키 암호 및 인증서를 사용하는 어떤 형태의 간단한 도전-응답 프로토콜이다.
본 발명의 양호한 실시예들에서, 평문 컨텐츠나 (인그레스 유닛 내에서의) 재암호화 또는 (이그레스 유닛 내에서의) 재암호화된 컨텐츠의 복호화, 또는 다른 기능을 위해 사용되는 임의의 비밀 어느 것도 그에의 불법 액세스를 하려고 시도하는 사용자 또는 개체가 액세스가능한(또는 적어도 즉시 액세스가능한) PDN의 임의의 노드, 링크 또는 인터페이스에 존재하지 않는다. 이들 실시예들 중 전형적인 실시예에서, PDN 내부의 장치 상에서 실행되는 소프트웨어 또는 펌웨어는 평문 컨텐츠 또는 임의의 이러한 비밀에 액세스하지 못한다. 예를 들어, 소프트웨어가 이그레스 노드에 PDN 내의 저장장치로부터 특정의 컨텐츠(인그레스 유닛에 의해 이전에 전사되었음)를 검색하고, 검색된 컨텐츠를 특정의 키를 사용하여 복호화하며 또 복호화된 컨텐츠를 출력을 위해 특정의 포맷으로 재암호화하도록 지시할 수 있지만, 그 소프트웨어는 (아마도 암호화된 형태로 되어 있는 경우를 제외하고는) 결코 키를 알 수 없으며 컨텐츠의 평문 버전을 알 수 없다. 오히려, 이그레스 노드는 이그레스 노드의 로크박스 내부에 저장된 비밀을 사용하여 또는 다른 노드로부터 지정된 동작을 수행하는 데 필요한 모든 허가 및 비밀(키를 포함함)을 탐색함으로써 그 지시에 응답하게 된다. 제2 노드는, 이그레스 노드가 그 동작들을 수행하도록 허가되어 있는 것으로 제2 노드가 판정하는 경우에만, 이들 항목을 이그레스 노드에만 제공하고, 또 제2 노드는 그 항목들을 암호화된 형태로만 이그레스 노드에 제공한다(따라서 이그레스 노드만이 이들 항목을 복호화할 수 있다). 어떤 실시예들에서, PDN의 노드 내부의 내장된 프로세서(예를 들어, 마이크로컨트롤러) 상에서 실행되는 펌웨어는 평문 컨텐츠 및/또는 (인그레스 유닛 내에서의) 컨텐츠의 재암호화 또는 (이그레스 유닛 내에서의) 재암호화된 컨텐츠의 복호화를 위해 사용되는 비밀에 액세스할 수 있지만, 평문 컨텐츠나 임의의 이러한 비밀 어느 것도 그에의 불법 액세스를 하려고 하는 사용자 또는 개체가 액세스할 수 있는(또는 적어도 즉시 액세스할 수 있는) PDN의 임의의 노드, 링크 또는 인터페이스에 존재하지 않는다. 각각의 노드 내부의 로크박스 회로는, 소프트웨어가 지정된 개체로 전달할 메시지가 (로크박스 회로의 보낸 편지함에) 있음을 나타내기 위해 소프트웨어에 플래그를 어써트할 수 있다는 점을 제외하고는, 수동 개체일 수 있다. 다른 대안으로서, 노드 내부의 로크박스 회로는 다른 개체들(예를 들어, 다른 노드들)로 메시지를 전달하기 위해 어떤 다른 기술(DMA 엔진 또는 전용 마이크로컨트롤러를 사용하는 기술(그렇지만 이에 한정되지 않음) 등)을 구현할 수 있다. 플래그가 로크박스 회로의 보낸 편지함 내의 메시지가 전달되어야만 함을 나타내는 것에 응답하여, 소프트웨어는 그 메시지를 보낸 편지함으로부터 지정된 수신자의 받은 편지함으로 전달할 수 있다(예를 들어, 소프트웨어가 그 메시지를 복호화할 수 없도록 그 메시지가 암호화된다). 다른 실시예들에서, 노드 내부의 로크박스 회로는 (예를 들어, 다른 노드들로 메시지를 능동적으로 전송할 수 있고, 또 선택적으로 키 관리 동작 및 다른 동작을 능동적으로 수행할 수 있다는 점에서) 능동 개체일 수 있다. 비밀 자료를 포함하는 그 메시지만(로크박스들 간에 전송됨)이 암호화되어야만 하지만, (본 발명의 양호한 실시예들에서) 로크박스들 간에 전송되는 모든 메시지는 (그의 출처를 식별하고 또 이들이 변경이나 재생되지 않도록 보장하기 위해) 적어도 디지털적으로 서명되어 있다.
본 발명의 다른 측면은 시스템(이 시스템은 하드웨어 및 소프트웨어 둘다를 포함함)의 하드웨어 서브시스템에서 보안 방식으로 컨텐츠의 암호화 및 복호화를 수행하는 컨텐츠 보호 방법 및 장치이지만, 하드웨어 서브시스템들 사이에서 메시지(일반적으로, 암호화되거나 서명된 메시지임)를 전달하지만 그 메시지를 이해하지는 못하는(또는 그 메시지들 중 암호화된 것을 이해하지 못하는) 무해한 개체("중간자")로서 시스템의 소프트웨어를 사용한다. 예를 들어, 메시지가 암호화된 비밀(예를 들어, 하드웨어 서브시스템 중 하나 이상에서 사용하기 위한 컨텐츠 키)을 나타내는 암호화된 메시지일 때, 소프트웨어는, 메시지가 그를 복호화하는 데 필요한 키를 갖지 않고 또 다른 방식으로 그 메시지를 복호화할 수 없는 경우, 그 메시지를 이해하지 못한다. 소프트웨어는 전체 시스템의 보안 하드웨어 서브시스템들 간에 보안 채널을 구현하는 데 사용될 수 있으며, 이들 보안 채널은 보호될 컨텐츠에 대한 "중간자" 공격에 영향을 받지 않는다. 그렇지만, 이 시스템은 메시지를 전달하기 위해 중간자로서 소프트웨어를 사용한다.
하드웨어 및 소프트웨어 둘다를 포함하고 본 발명을 구현하는 어떤 시스템에서, 시스템의 하드웨어 서브시스템들 간에 메시지를 전달하는 소프트웨어는 어떤 유형의 메시지를 이해할 수 있다(양호하게는 이해한다). 예를 들어, 소프트웨어는, 특정의 키 또는 다른 특정의 항목들이 메시지의 송신자로 전송되도록 요청하기 위해, 시스템의 많은(또는 모든) 구성요소들로 브로드캐스트되는 각각의 메시지를 이해할 수 있다. 이러한 브로드캐스트 메시지(또는 다른 유형의 메시지)는 디지털 서명을 사용하여 보호될 수 있고 또, 그 메시지를 암호화하는 것이 불필요하거나 바람직하지 않고 또 (예를 들어, 그 메시지를 브로드캐스트하기 위해 또는 그 메시지를 보다 효과적으로 라우팅하기 위해) 소프트웨어가 그 메시지를 이해하는 것이 필요할 때, 비암호화된 형태로 소프트웨어가 액세스할 수 있다.
본 발명의 한 부류의 실시예들에서, 보호될 컨텐츠는 제1 컨텐츠 보호 프로토콜을 사용하여 암호화된 비디오 데이터(예를 들어, 고선명 디지털 비디오 데이터)이거나 이 비디오 데이터를 포함한다. 컨텐츠가 인그레스 유닛에 들어올 때, 그 컨텐츠는 인그레스 유닛 내에서 하드웨어적으로 복호화되고(평문 형태로 되고), 평문 컨텐츠는, 인그레스 유닛을 빠져나오기 이전에, 다른 컨텐츠 보호 프로토콜을 사용하여 재암호화된다. 재암호화 컨텐츠(본 명세서에서, 때때로 "제어된" 컨텐츠 또는 "전사된" 컨텐츠)는, 이그레스 유닛에 들어갈 때까지, PDN의 구성요소들 간에 전송되고 및/또는 그 내부에 저장될 수 있다. 이그레스 유닛에서, 재암호화된 컨텐츠는 다시 복호화되고(평문 형태로 되고), 평문 컨텐츠는 또한 선택적으로 추가적으로 처리되며, 평문 컨텐츠(또는 그의 처리된 버전)는 이어서 재암호화되고 이그레스 유닛으로부터 출력하기 위해 다른 방식으로 포맷된다. 예를 들어, 이그레스 유닛은 HDCP 프로토콜에 따라 평문 컨텐츠를 재암호화하고, 이그레스 유닛으로부터 HDMI 링크(또는 DVI 링크)를 거쳐 외부 오디오 비디오 시스템으로 출력하기 위해, HDMI 표준(또는 DVI 표준)에 따라 HDCP-암호화된 컨텐츠를 포맷한다. 다른 대안으로서, 이그레스 유닛은 HDMI 또는 DVI 링크 이외의 TMDS 유사 링크를 통해, TMDS 유사 링크 이외의 직렬 링크를 통해, 또는 어떤 다른 디지털 또는 아날로그 링크를 통해 전송하기 위한 포맷으로 컨텐츠를 출력한다.
본 발명에 따라 보호되는 컨텐츠는 비디오 또는 오디오 데이터일 수 있지만, 꼭 그럴 필요는 없다. 이러한 컨텐츠는 디지털적으로 저장될 수 있는 임의의 정보(사진, 텍스트, 및 개인 정보(이에 한정되지 않음) 등)를 나타내는 데이터일 수 있거나 그 데이터를 포함할 수 있다.
양호하게는, 본 발명의 로크박스는, 가격 효과적으로 구현하기 위해, 원하는 컨텐츠 보호 기능을 구현하기 위한 최소 세트의 하드웨어 특징만을 포함하도록 구현된다. 예를 들어, 로크박스가 제한된 시간 동안에만 유효한 어떤 비밀도 수신 및 저장하지 않는 응용에서, 로크박스는 미리 정해진 시간 구간의 끝에서 로크박스에 저장된 비밀을 삭제하기 위한 하드웨어(예를 들어, 단조 증가하는 카운터 또는 위조 방지 클럭을 포함하는 하드웨어)없이 구현될 수 있다.
한 부류의 실시예들에서, 퍼스널 컴퓨터는 본 발명에 따라 시스템 버스(예를 들어, PCI 버스)를 따라 연결되어 있는 3개의 개별적인 집적 회로(하나는 인그레스 노드를 구현하고, 또하나는 이그레스 노드를 구현하며, 세번째 것은 또다른 노드를 구현함)를 포함하도록 수정된다. 이 3개의 칩은 퍼스널 컴퓨터에 용이하게 설치하도록 구성되어 있는 카드(예를 들어, 멀티미디어 그래픽 카드) 상에 구현될 수 있다. 다른 대안으로서, 3개의 칩은 개별적인 카드 상에 구현될 수 있으며, 그 각각은 퍼스널 컴퓨터에 용이하게 설치되도록 구성되어 있다(예를 들어, 이들 칩이 보안 채널(이 채널을 통해 이들은 보안 방식으로 서로 통신할 수 있음)을 설정하기 위해 서로 명시적인 인증 교환을 수행하도록 구성되어 있는 경우). 본 발명의 다른 측면들은 퍼스널 컴퓨터에서 사용하기 위한 인그레스 노드, 로크박스, 및 이그레스 노드 칩이다.
다른 부류의 실시예들에서, 퍼스널 컴퓨터는 본 발명에 따라, 이전의 단락에서의 예에서와 같이 3개의 개별적인 노드가 아니라, 하나의 노드만을 포함하도록 수정된다. 이 노드는 인그레스 노드, 또는 이그레스 노드, 또는 인그레스 노드도 이그레스 노드도 아닌 노드일 수 있다. 본 발명의 다른 실시예들에서, 퍼스널 컴퓨터 자체는 PDN의 노드로서 기능한다.
본 발명의 PDN의 전형적인 실시예들에서, 인그레스 유닛에 의해 발생되는 재암호화된 컨텐츠는 분리형 디스크 상에 저장되거나 PDN으로부터 용이하게 분리가능하게 되도록 하는 방식으로 PDN 내에 다른 방식으로 저장될 수 있다. 이러한 실시예에서, 노드에 의해(예를 들어, 노드 내부의 인그레스 및 이그레스 회로에 의해) 사용되는 비밀은 또한 분리형 디스크 상에 (암호화된 형태로) 저장되거나 또는 PDN으로부터 용이하게 분리될 수 있는 방식으로 PDN 내에 다른 방식으로 저장될 수 있다. 예를 들어, 로크박스는, 로크박스 내부에 영구적으로 또한 안전하게 저장된 키(예를 들어, 로크박스의 실리콘 내에 구워져 있음)를 사용하여, 저장을 위해 이러한 비밀을 암호화할 수 있다. PDN으로부터 제거된 경우에도, 재암호화된 컨텐츠(또는 비밀)가 불법적 방식으로 사용될 수 없는데, 그 이유는 PDN의 허가된 하드웨어(예를 들어, 이그레스 노드의 로크박스)만이, 컨텐츠의 평문 버전을 발생하기 위해, 재암호화된 컨텐츠를 복호화하는 데 필요한 비밀(들)을 가지고 있거나 그를 획득할 수 있고 또한 PDN의 허가된 하드웨어(즉, 로크박스)만이 암호화된 비밀을 복호화하는 데 필요한 키(들)를 가지고 있기 때문이다. 컨텐츠의 재암호화(및/또는 저장될 비밀의 암호화)는 PDN에 고유한 방식으로 달성되며, 따라서 재암호화된 컨텐츠는 보안 방식으로 저장될 필요가 없고, 암호화된 비밀은 보안 방식으로 저장될 필요가 없다. 오히려, 재암호화된 컨텐츠(및/또는 암호화된 비밀)는 PDN에 비보안 방식으로 (예를 들어, 디스크 상에) 저장될 수 있고 및/또는 비보안 방식으로 PDN을 통해 인그레스 유닛으로부터 이그레스 유닛으로 전송될 수 있다. 이와 반대로, 다른 것들은 PDN의 각각의 장치 내부에서 컨텐츠를 보안 방식으로 로크하고 또 PDN의 장치들 간의 모든 링크를 보호함으로써 PDN 내부에서 컨텐츠를 보호하도록 제안한다.
PDN에 들어오는 사전 암호화된 컨텐츠가, 인그레스 노드에서 복호화(및 재암호화)되기 이전에, PDN으로부터 제거되는 경우, (디지털 저작권 관리 시스템과의 또는 어떤 다른 방식으로 컨텐츠 소유자와의) 인증 트랜잭션이 먼저 수행되지 않는 한, 그 컨텐츠는 사용될 수 없다. 이러한 트랜잭션은 종종 부가적인 요금의 지불을 포함하게 된다.
본 발명의 일반적인 실시예에 따르면, 컨텐츠 제공자(예를 들어, 위성을 통해 PDN의 셋톱 박스로 컨텐츠를 전송하는 개체) 또는 PDN 외부의 다른 개체가 (로크박스가 그 비밀을 수신하도록 허가되게 설정한 후에) PDN의 로크박스로 비밀을 로드할 수 있고 로크박스는 나중에 그 비밀을 (로크박스를 포함하는 노드 내부의) 이그레스 또는 인그레스 회로에 또는 적절한 경우에 다른 노드에 제공할 수 있다. 다른 대안으로서, 비밀이 필요할 때, 로크박스가 비밀을 그 안에 저장하지 않고 있을 수 있다. 후자의 경우에, 로크박스는 (예를 들어, 이그레스 또는 인그레스 노드로부터의 요청에 응답하여) PDN 내의 다른 로크박스("피어" 로크박스)로부터의 요청된 비밀을 탐색할 수 있고 및/또는 (예를 들어, 로크박스가 피어 로크박스로부터 비밀을 획득하지 않은 경우) PDN 외부의 개체(예를 들어, 컨텐츠 제공자, 서비스 제공자, 또는 디지털 저작권 관리 서비스)로부터 비밀을 탐색할 수 있다. 모든 경우에, 관련 컨텐츠에 적용되는 사용 제한 세트는 언제 어떻게 비밀이 변경될 수 있는지를 결정한다. 예를 들어, 인그레스 노드가 외부 소스로부터 컨텐츠를 수신할 준비가 되어 있고 또 인그레스 노드의 로크박스가, 인그레스 노드가 이 컨텐츠에 대해 특정의 복호화 및 재암호화(전사) 동작을 수행할 수 있는지 여부를, (예를 들어, 전원을 켤 때 노드들 간에 수행되는 인증 교환의 결과로서, 노드들 간에 설정된 보안 채널을 통해) 제2 노드의 로크박스에 질문을 하는 것으로 가정하자. 제2 노드의 로크박스가 (예를 들어, 인그레스 노드 내에 사전 저장된 인증서가 인그레스 노드의 로크박스에 의해 제2 노드에 제공되는 2개의 노드 간의 교환의 결과로서) 그 대답이 예인 것으로 판정하는 경우, 제2 노드의 로크박스는 인그레스 노드의 로크박스에 지정된 전사 동작을 수행하는 데 필요한 비밀을 제공한다. 제2 노드의 로크박스는, 인그레스 노드의 로크박스가, 인그레스 노드가 허가된 장치임을, 제2 노드의 로크박스에 입증한 후에만 또 제2 노드의 로크박스가, 제2 노드가 허가된 장치임을, 인그레스의 로크박스에 입증한 후에, PDN 내부의 보안 링크를 통한 인증 교환을 통해 비밀을 인그레스 노드로 전송한다. 이러한 교환은 또한, 이그레스 노드의 로크박스가 PDN 내부로부터 재암호화된 컨텐츠를 수신하고 그 컨텐츠에 대해 특정의 동작(예를 들어, 복호화 및 그에 뒤이은 다른 종류의 암호화, 그리고 PDN으로부터 출력하기 위한 컨텐츠의 포맷팅)을 수행하기 위한 허가를 요청할 때, 이그레스 노드와 제2 노드의 로크박스 사이에서도 일어난다. 인그레스 유닛이 지정된 전사 동작을 수행하는 데 필요한 비밀을 로크박스로부터 수신했을 때, 컨텐츠 제공자는 컨텐츠를 인그레스 유닛으로 전송할 수 있고, 인그레스 유닛은 그 비밀을 사용하여 컨텐츠를 수신 및 전사하고 재암호화된 컨텐츠를 PDN에 (예를 들어, 디스크 상에) 저장할 수 있다. 나중에, 이그레스 유닛은 (로크박스로부터 획득된) 비밀을 사용하여 저장된 재암호화된 컨텐츠에 액세스하고 그에 대해 허가된 동작을 수행할 수 있다.
본 발명의 PDN에 들어오는 컨텐츠는, (앞서 정의한 바와 같이) 컨텐츠가 적용을 받는 모든 사용 제한의 세트인, 사용 제한 세트를 사용한다. 전형적인 실시예들에서, PDN의 로크박스는 (예를 들어, 사용 제한 세트에 의해 금지되지 않은 컨텐츠에 대한 동작을 나타냄으로써) 사용 제한 세트를 나타내는 프리미티브(primitive)(예를 들어, 본 명세서에서, "저작권 데이터"라고 하는 데이터)를 그 안에 사전 저장하고 있다. 사용 제한 세트를 나타내는 프리미티브가 로크박스에 사전 저장될 수 있지만, 사용 제한 세트는 시간에 따라 변할 수 있다(예를 들어, 그 세트는 미리 정해진 사건의 발생 등에 응답하여 더 제한적으로 될 수 있거나, 사용자가 컨텐츠에의 향상된 액세스를 위한 요금을 지불하는 등과 같은 경우에 덜 제한적으로 될 수 있다). 사용 제한 세트의 각각의 변동에 응답하여, 로크박스에 저장된 대응하는 프리미티브도 역시 변경된다(예를 들어, 갱신된 프리미티브가 저장되고 쓸모없는 프리미티브가 제거된다). PDN의 로크박스는 또한 사용 제한 세트에 의해 금지되지 않은 적어도 하나의 동작(예를 들어, 복호화)을 컨텐츠에 대해 수행하는 데 필요한 적어도 하나의 비밀(예를 들어, 키 데이터)을 그 안에 사전 저장하고 있다. 일반적으로, (사용 제한 세트를 나타내는) 프리미티브 및 (컨텐츠에 대한 적어도 하나의 동작을 수행하는 데 필요한) 비밀은 로크박스 내의 메모리(예를 들어, 비휘발성 메모리)에 저장된다. 다른 대안으로서, 프리미티브 및 비밀은, 저장된 프리미티브 및 비밀이 로크박스에 의해서만 평문 형태로 액세스가능하도록, 로크박스 외부의 메모리(예를 들어, 비휘발성 메모리)에 저장된다. 일반적인 실시예에서, PDN의 인그레스(또는 이그레스) 노드가 컨텐츠를 수신할 준비가 되어 있을 때, 인그레스(또는 이그레스) 노드는, 하나 이상의 지정된 동작(예를 들어, 전사 또는 복호화 및 그에 뒤이은 디스플레이를 위한 재포맷)을 수행하기 위한 허가를 위해, 제2 노드의 로크박스에 요청을 어써트한다. 로크박스가 (예를 들어, 요청된 동작(들)을 나타내는 데이터를 로크박스에 사전 저장된 저작권 데이터와 비교한 후에) 요청을 허가하기로 결정하는 경우, 로크박스는, 인그레스(또는 이그레스) 노드로 하여금 각각의 요청된 동작을 수행할 수 있게 해주기 위해, 적어도 하나의 비밀을 인그레스(또는 이그레스) 노드에 어써트한다. 인그레스(또는 이그레스) 노드는 임의의 이러한 비밀을 영속적으로 저장하지 않으며, 따라서 각각의 이러한 비밀은 세션 키와 유사하다. 일 실시예에서, 노드들은 그들 간의 통신을 보호하기 위해 또한, 로크박스 노드에 저장되어 있고 또 컨텐츠가 (컨텐츠의 사용 제한 세트에 따라) 사용되기 위해 이그레스 노드로 안전하게 전송되어야만 하는, 컨텐츠 키의 보안을 보장하기 위해 실제의 세션 키를 사용한다. 일반적으로, 인그레스(또는 이그레스) 노드 내에서 이러한 비밀을 사용하는 인그레스(또는 이그레스) 회로는 비밀을 영속적으로 저장하는 메모리를 갖지 않지만, 그 메모리는 그 비밀을 (예를 들어, 그 비밀이 그 비밀의 갱신된 버전으로 용이하게 대체될 수 있게 해주기 위해) 더블 버퍼링하는 적은 양의 버퍼 메모리를 가질 수 있다. 일반적으로, PDN의 노드들 간에 전송되는 비밀(들) 및 때때로 노드들 간에 전송되는 요청 또는 다른 비밀이 아닌 데이터도, 노드들 간의 예비적인 인증 교환의 결과로서, 노드들 간에 설정된 보안 채널을 통해 암호화된 형태로 전송되며, 각각의 노드는 인증 교환 동안에 그의 정체를 상대편 노드에 제공해야만 한다. 노드들은 (예를 들어, 이렇게 하는 것이 통신 프로토콜을 단순화하는 경우) 서로에게 전송하는 모든 메시지를 암호화하도록 구성될 수 있지만, 이들 노드는 다른 대안으로서 비밀 정보를 포함하는 그 메시지들만을 암호화하도록 구성될 수 있다(예를 들어, 인그레스 노드는 다른 노드로 전송하는 세션 키에 대한 요청을 암호화하지 않을 수 있으며, 이 경우 이러한 요청은 공격자가 컨텐츠에의 불법 액세스를 획득하는 데 도움이 될 수 있는 아무런 정보도 포함하지 않으며, 요청의 암호화는 그 자체가 그 요청을 암호화하는 데 사용되는 키에 관한 정보를 공격자에게 노출시킬 수 있다).
인그레스(또는 이그레스) 회로가 로크박스로부터 컨텐츠 키를 수신한 후에도, 일반적으로 인그레스(또는 이그레스) 회로가 컨텐츠 키를 사용하여 할 수 있는 것에 관한 제한이 있으며, 인그레스(또는 이그레스) 회로는 그 제한에 부합하지 않게 동작할 수 없도록 구성되어야만 한다. 예를 들어, 컨텐츠 키가 이그레스 유닛이 컨텐츠를 복호화하도록 허가하는 경우에 대처하고, HDCP 프로토콜을 사용하여 컨텐츠를 재암호화하며 또 HDCP 보안을 모니터링하면서 HDMI 링크를 통해 그 컨텐츠를 전송하기 위해, HDCP 보안이 침해되었는지를 판정할 시에(즉, 이그레스 유닛이 HDMI 수신기가 허가되지 않은 것으로 판정할 때) 이그레스 유닛이 HDCP-암호화 및 HDMI 전송을 중단해야만 하는 것으로 하면, 이그레스 유닛은 엄밀하게 허가된 방식으로 동작하도록 구성되어야만 한다(예를 들어, 이그레스 유닛이, HDCP 보안의 어떤 확인을 주기적으로 수신 또는 발생하지 않는 한, HDCP-암호화 및 HDMI 전송 동작을 계속할 수 없어야만 한다).
양호한 실시예에서, 본 발명의 PDN 및 그의 각각의 로크박스는 인그레스 및/또는 이그레스 회로를 포함하는 장치가 외부 기관에 의존하거나 그에 의존하지 않고 PDN 내에 연관될 수 있도록 구현된다. 어떤 실시예에서, PDN의 로크박스는 특정의 장치 또는 기능을 PDN에 추가하기 위해 컨텐츠 소유자의 승인을 필요로 하도록 구성되고 동작된다. 양호하게는, 사용자가 PDN 내에 포함하고자 할 수 있는 각각의 장치의 로크박스는, 로크박스(따라서 이 로크박스가 포함되어 있는 장치)가 PDN의 허가된 구성요소(노드)인지를 나타내기 위해 비밀이 영속적으로 또한 안전하게 그렇지만 취소가능하게 저장될 수 있도록, 구성된다. 일반적으로, 이 비밀은 인증서이거나 인증서를 포함하며, 따라서 이 비밀은 때때로 본 명세서에서 "결혼 증명서(marriage certificate)"라고 한다. 그렇지만, 결혼 증명서가 정본 증명서가 아니거나 그를 포함하지 않을 수 있다는 것을 잘 알 것이다(예를 들어, 결혼 증명서는 정본 증명서라기 보다는 공개키일 수 있다). 로크박스는, 결혼 증명서가 PDN과 연관될 때, 결혼 증명서를 (적어도 일시적으로) 그 안에 저장할 수 있도록 구성될 수 있다. 각각의 로크박스는 결혼 증명서 및 다른 노드들이 PDN의 허가된 멤버인지 여부를 판정하는 데(즉, 다른 노드가 유효한 결혼 증명서를 소유하고 있는지 따라서 PDN과 "결혼"하고 있는지를 판정하는 데) 필요한 기타 데이터(예를 들어, 인증서)를 저장하기 위한 프로그램가능(예를 들어, 일회 프로그램가능) 메모리를 포함하도록 구성될 수 있다. 각각의 이러한 프로그램가능 메모리는 로크박스 내부의 플래쉬 메모리 또는 EEPROM(기타 등등)으로 구현될 수 있지만, 양호하게는 로크박스 내부의 플래쉬 메모리 또는 EEPROM보다 덜 고가인 구성요소로서 구현된다. 어떤 실시예들에서, 프로그램가능 메모리는 노드 외부에 있는(또는 노드의 로크박스 외부에 있지만 노드의 내부에 있는), 그렇지만 노드의 로크박스에 의해 보안 방식으로 액세스가능한 비휘발성 메모리이다(예를 들어, 로크박스는 필요한 데이터를, 저장을 위해, 암호화된 형태로 외부의 비휘발성 메모리로 전송할 수 있고, 메모리는 저장된 데이터를 판독하라는 로크박스로부터의 요청에 응답하여 암호화된 형태로 그 데이터를 다시 로크박스로 전송할 수 있다). 다른 실시예들에서, 각각의 프로그램가능 메모리는, 더 이상 필요하지 않을 때 폐기될 수 있고(더 이상 사용될 수 없고) 또 특정의 상태로 영구적으로 프로그램되어 있다면 수정될 수 없는, 일회 프로그램가능한 퓨즈 세트이다. 예를 들어, 로크박스에 16개(또는 어떤 다른 수)의 퓨즈 세트가 있을 수 있으며, 각각의 퓨즈 세트는 결혼 증명서를 저장하기 위해 일회 프로그램될 수 있고, 또 로크박스는, 그의 결혼 증명서에 액세스할 필요가 있을 때, 가장 최근에 프로그램된 퓨즈 세트만을 사용하도록(즉, 각각의 다른 퓨즈를 무시하도록) 구성될 수 있다. 제1 노드의 로크박스에 저장된 결혼 증명서, 및 제2 노드의 로크박스에 저장된 관련 데이터(예를 들어, 후자의 로크박스로 하여금 다른 노드가 유효한 결혼 증명서를 소유하고 있는지 여부를 판정할 수 있게 해주는 데이터)는, 제1 노드가 PDN의 구성요소로서 동작하기 이전에 노드들 간에 보안 채널을 설정하기 위해, 노드들 간의 간단한 인증 교환에서 사용될 수 있다.
한 부류의 실시예들에서, 본 발명은 PDN에서의 컨텐츠 보호 방법이며, 이 방법은, PDN의 인그레스 하드웨어(ingress hardware)에서 PDN에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠(controlled content)를 발생하는 단계, 및 PDN의 이그레스 하드웨어(egress hardware)에서 제어된 컨텐츠를, 평문 형태의 컨텐츠나 이 컨텐츠 및 제어된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 인그레스 하드웨어 및 이그레스 하드웨어 중 적어도 하나에 의해 사용되는 임의의 비밀(secret) 중 어느 것도 PDN의 임의의 구성요소 상에서 실행되는 소프트웨어 또는 펌웨어에 의해 액세스가능하지 않도록 또한 이 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 PDN 내부에서 결코 평문 형태로 존재하지 않도록 복호화하여, 복호화된 컨텐츠를 발생하는 단계를 포함하며, 그에 의해, 제어된 컨텐츠가 PDN의 구성요소들 간에 자유롭게 전송될 수 있고 또 PDN 내에 저장될 수 있다. 어떤 이러한 실시예들에서, 인그레스 하드웨어는 집적 회로이고, 이그레스 하드웨어는 또하나의 집적 회로이며, 컨텐츠는, 그 컨텐츠가 집적 회로 내부에서를 제외하고는 PDN 내부에서 결코 평문 형태로 존재하지 않도록, PDN 내부에 유지된다.
다른 부류의 실시예들에서, 본 발명은 컨텐츠 보호 방법이며, 이 방법은, 개인 디지털 네트워크의 인그레스 노드(ingress node)에서 개인 디지털 네트워크에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠(controlled content)를 발생하는 단계, 및 개인 디지털 네트워크의 이그레스 노드(egress node)에서 제어된 컨텐츠를, 그 컨텐츠나 그 컨텐츠의 임의의 버전에 대해 허가된 동작을 수행하기 위해 인그레스 노드 및 이그레스 노드 중 적어도 하나에 의해 사용되는 비밀(secret) 중 어느 것도 개인 디지털 네트워크의 보안 서브시스템 내부에서를 제외하고는 개인 디지털 네트워크 내부에서 평문 형태로 존재하지 않도록 복호화하는 단계를 포함한다. 예를 들어, 이러한 비밀(또는 평문 형태의 컨텐츠)은 인그레스 노드 또는 이그레스 노드의 보안 서브시스템 내부의 내장된 프로세서 상에서 실행되는 펌웨어(예를 들어, 인그레스 또는 이그레스 노드의 보안 서브시스템 내부의 마이크로컨트롤러 상에서 실행되는 펌웨어)에 의해 액세스될 수 있지만, 평문 컨텐츠나 임의의 이러한 비밀 어느 것도 그에의 불법 액세스를 획득하려고 시도하는 개인 또는 개체에 의해 액세스가능한(또는 적어도 즉시 액세스가능한) 개인 디지털 네트워크의 임의의 노드, 링크 또는 인터페이스에 존재하지 않는다.
다른 부류의 실시예들에서, 본 발명은 컨텐츠 보호 방법이며, 이 방법은 PDN의 인그레스 하드웨어(ingress hardware)에서 PDN에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠(controlled content)를 발생하는 단계, PDN의 이그레스 하드웨어(egress hardware)에서 제어된 컨텐츠를 복호화하여 복호화된 컨텐츠를 발생하는 단계, 및 복호화된 컨텐츠나 그 컨텐츠 및 제어된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 인그레스 하드웨어 및 이그레스 하드웨어 중 어느 하나에 의해 사용되는 비밀(secret) 중 어느 것도 PDN의 임의의 구성요소 상에서 실행되는 소프트웨어 또는 펌웨어에 의해 액세스가능하지 않도록, 상기 복호화된 컨텐츠 및 상기 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를, 이그레스 하드웨어로부터 PDN 외부의 개체로 어써트(assert)하는 단계를 포함한다. 일반적으로, 인그레스 하드웨어는 집적 회로이고, 이그레스 하드웨어는 또하나의 집적 회로이다.
다른 부류의 실시예에서, 본 발명은 컨텐츠 보호 방법이며, PDN의 로크박스(lockbox)로부터 (이그레스 하드웨어에 의해) 획득된 적어도 하나의 비밀을 PDN의 이그레스 노드의 이그레스 하드웨어에서 컨텐츠를 복호화하여, 복호화된 컨텐츠를 발생하는 단계를 포함한다. 이 로크박스는 이그레스 노드 내부에 있지만, 로크박스는 PDN의 또하나의 노드 내부에 포함된 또하나의 로크박스로부터(또는 PDN 외부의 소스로부터) 비밀을 획득할 수 있다. 선택적으로, 이 방법은 또한 복호화된 컨텐츠 및 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를, 이그레스 노드로부터 PDN 외부의 개체(예를 들어, 장치 또는 시스템)로, 어써트하는 단계를 포함한다.
어떤 실시예들에서, 본 발명의 PDN에 들어오는 컨텐츠는 암호화된 비디오(예를 들어, HD-DVD로부터 판독되고 CSS 또는 CSS와 유사한 컨텐츠 보호 방식에 의해 보호된 고선명 비디오)이거나 그 비디오를 포함하고, PDN의 이그레스 유닛은, 복호화된, 압축된 비디오(예를 들어, MPEG 또는 MPEG-2 압축된 비디오)를 발생하도록, 압축된 비디오에 대해 압축 해제를 수행하여 복호화된, 압축 해제된 비디오("원시" 비디오)를 발생하도록, 또한 그 원시 데이터를 재암호화하도록 구성되어 있다. 어떤 실시예들에서, 이그레스 유닛은 HDCP 프로토콜에 따라 재암호화를 수행하고 재암호화된 원시 데이터를 하나 이상의 HDMI 링크를 통해 외부 오디오 비디오 시스템으로 전송한다. 다른 실시예들에서, 이그레스 유닛은 HDCP 이외의 컨텐츠 보호 프로토콜에 따라 원시 (복호화된) 데이터를 재암호화하고, HDMI 링크 이외의 링크를 거쳐 재암호화된 데이터를 외부 장치로 어써트한다. 다른 실시예들에서, 이그레스 유닛은 하나 이상의 DVI 링크를 거쳐 재암호화된 데이터를 외부 장치로 어써트한다. 다른 실시예들에서, 이그레스 유닛은 하나 이상의 TMDS 유사 링크(이들 중 어느 것도 HDMI나 DVI 링크가 아님)를 거쳐 또는 하나 이상의 직렬 링크(이들 중 어느 것도 TMDS 유사 링크가 아님)를 거쳐 재암호화된 데이터를 어써트한다.
다른 실시예들에서, PDN에 들어오는 컨텐츠는 전사되고 적절한 사용 제한 세트로 표시되어 있고(또는 PDN에 들어올 때 이미 PDN 암호화 포맷으로 되어 있는 컨텐츠는, 이 컨텐츠가 사용 제한 세트로 이미 표시되어 있지 않은 한, 적절한 사용 제한 세트로 표시되어 있음), 제어된 컨텐츠(예를 들어, 새로 전사된 컨텐츠)는 외부 하드 디스크 드라이브(HDD) 어레이에 저장된다. 이 경우에, PDN은 컨텐츠에 대해 더 이상 제어를 유지할 수 없다(예를 들어, HDD는 그의 인클로저(enclosure)로부터 분리되고 범용 PC에 부착되어, 저장된 컨텐츠를 다양한 공격에 노출시킬 수 있다). 그렇지만, 컨텐츠가 (본 발명의 전형적인 실시예에 따르면) 저장되기 이전에 암호화되기 때문에, 저장된 컨텐츠(심지어 저장된 컨텐츠의 상당량)는 장시간(예를 들어, 몇년)에 걸쳐 결정된 공격으로부터 안전하게 있게 된다. 본 발명의 전형적인 실시예에 따르면, 제어된 컨텐츠가 PDN에 존재하면(예를 들어, PDN에 들어오는 컨텐츠가 인그레스 회로에서 전사된 경우), 그 컨텐츠가 사용(즉, 렌더링)될 수 있는 유일한 방법은 그의 연관된 컨텐츠 키가 이용가능한 경우이다. 따라서, 제어된 컨텐츠의 보안은 전적으로 로크박스 및 이그레스 노드(제어된 컨텐츠를 평문 형태로 두기 위해 제어된 컨텐츠를 복호화하는 데 필요한 컨텐츠 키의 비암호화된 버전을 포함할 수 있음)의 보안의 함수이며, 따라서 제어된 컨텐츠는, 컨텐츠의 사용 제한 세트가 침해될지 모른다는 걱정없이, 임의의 방식으로 전송 또는 저장될 수 있다.
도 1은 종래의 HDCP(High-bandwidth Digital Content Protection) 프로토콜을 사용하여 DVI 링크를 거쳐 전송될 디지털 비디오 데이터를 암호화하기 위해 종래 방식으로 발생된 신호의 타이밍도.
도 2는 DVI 링크를 거쳐 전송될 디지털 비디오 데이터를 암호화하는 종래의 회로의 블록도.
도 3은 도 2의 모듈(81)의 간략 블록도.
도 4는 본 발명을 구현할 수 있는 개인 디지털 네트워크("PDN")의 블록도로서, 도 4의 PDN은 퍼스널 컴퓨터(1)(개방형 컴퓨팅 시스템), 모니터(2), 및 스피커(3)를 포함함.
도 5는 본 발명을 구현할 수 있는 또하나의 시스템의 블록도.
도 6은 도 4 또는 도 5의 디스크 드라이브(4)의 실시예의 구성요소의 블록도.
도 7은 도 4의 카드(10)의 실시예의 블록도.
도 8은 도 4의 카드(10)의 대체물의 블록도.
도 9는 도 4의 카드(10)의 대체물의 블록도.
도 10은 도 5 시스템에 대한 변형에서의 카드(20)의 대체물의 블록도.
도 11은 본 발명을 구현할 수 있는 다른 시스템의 블록도.
도 12는 본 발명을 구현할 수 있는 다른 시스템의 블록도.
도 13은 도 12의 디스크 드라이브(104)의 일 실시예의 구성요소들의 블록도.
도 14는 본 발명을 구현할 수 있는 개인 디지털 네트워크("PDN"), 및 PDN에 연결된 여러가지 장치 및 시스템의 블록도.
도 15는 본 발명을 구현하고 PCI 버스를 따라 연결되어 있는 장치를 포함하는 개방형 아키텍처 컴퓨팅 시스템의 블록도.
도 16은 본 발명을 구현하는 개인 디지털 네트워크(PDN)(168)의 몇몇 구성요 소들(예를 들어, 인그레스 노드(160), 노드(161), 및 이그레스 노드(162)), PDN에 연결된 저장 유닛(178), 및 PDN과 통신할 수 있는 컨텐츠 제공자(163)의 블록도.
도 17은, PDN(168)이 도 16에 나타낸 것과 다른 상태에 있는, 도 16의 PDN(168) 및 저장 유닛(178)의 블록도.
도 18은 로크박스와 인그레스 회로 사이에 또한 로크박스와 이그레스 회로 사이에 보안 통신 채널을 설정하기 위해 이용되는 (본 발명의 PDN의 실시예의) 구성요소들을 나타낸 도면.
도 19는 로크박스와 인그레스 회로 사이에 또한 로크박스와 이그레스 회로 사이에 보안 채널을 갖는 도 18의 PDN 구성요소들을 나타낸 도면.
도 20은 본 발명의 인그레스 노드의 실시예의 블록도.
도 21은 본 발명의 이그레스 노드의 실시예의 블록도.
도 22는 (인그레스 노드나 이그레스 노드 어느 것도 아닌) 본 발명의 노드의 실시예의 블록도.
도 23은 N개의 서로 다른 포맷 중 임의의 것을 갖는 컨텐츠를 전사하고 단일의 포맷을 갖는 전사된 컨텐츠를 출력하도록 구성되어 있는 인그레스 회로를 포함하는 장치(예를 들어, 셋톱 박스)의 블록도.
도 24는 단일의 포맷을 갖는 제어된 컨텐츠를 수신하고 제어된 컨텐츠의 복호화된(평문) 버전을 발생하며 또한 이 평문 컨텐츠를 처리(예를 들어, 재암호화하고 또한 선택적으로 부가적으로 처리)하여 M개의 서로 다른 포맷 중 임의의 것을 갖는 처리된 컨텐츠를 생성하도록 구성되어 있는 이그레스 회로를 포함하는 장치 (예를 들어, 비디오 프로세서)의 블록도.
먼저, 상기한 미국 특허 출원 제10/679,055호의 개시 내용에 대해 도 4 내지 도 13을 참조하여 요약한다.
이하의 설명에서, 표현 "비보호된" 데이터는, 지적 재산권 보호를 받거나 받지 않을 수 있는, 장치(예를 들어, HD-DVD 드라이브)에 의해 수신된 데이터를 말하며, 이 장치는 상기 데이터를 개방형 컴퓨팅 시스템에 비암호화된 형태로 어써트가능한 것으로 인식하도록 구성되어 있다.
표현 "SATA 인터페이스"는, 본 명세서에서, SATA 표준에 부합하게 적어도 하나의 직렬 링크를 거쳐 통신하도록 구성된 인터페이스를 말한다. 표현 "SATA 표준"은, 본 명세서에서, 하나 이상의 직렬 링크를 거쳐 호스트와 하나 이상의 저장 장치 간에 통신하기 위한, Serial ATA Working Group에 의해 2001년 8월 29일자로 채택된 Serial ATA, Revision 1.0이라고 하는 표준을 말한다.
미국 특허 출원 제10/679,055호에 기술된 개방형 컴퓨팅 시스템의 전형적인 실시예에서, 개방형 시스템의 폐쇄형 서브시스템은 (예를 들어, 개방형 시스템 외부의 소스로부터) 암호화된 컨텐츠를 수신하고, 수신된 컨텐츠에 대해 복호화 및 임의의 요구되는 압축 해제를 수행하여 원시 컨텐츠를 발생하며, 또 이 원시 데이터를 재암호화하는 폐쇄형 유닛(때때로, "DDR" 유닛이라고 함)을 포함한다. 수신된 컨텐츠는 암호화된 비디오(예를 들어, HD-DVD로부터 판독되고 CSS 또는 CSS에 유사한 컨텐츠 보호 방식에 의해 보호되는 고선명 비디오)이거나 이 비디오를 포함 할 수 있다. DDR 유닛은 암호화된 비디오의 복호화를 수행하여 복호화된, 압축된 비디오(예를 들어, MPEG 또는 MPEG-2 압축된 비디오)를 발생하고, 압축된 비디오에 대해 압축 해제를 수행하여 복호화된, 압축 해제된 비디오("원시" 비디오)를 발생하며, 또한 개방형 시스템으로부터 (예를 들어, 외부의 오디오 비디오 시스템으로) 출력하기 위해 이 원시 데이터를 재암호화하도록 구성될 수 있다.
도 4 및 도 5를 참조하여 이하에 기술되는 각각의 시스템의 측면은 DDR 유닛의 출력을 개방형 시스템의 표준 (비보호된) 그래픽 및 오디오 출력과 결합시키는 회로이다. 일반적으로, 최신의 PC는 2가지 유형의 그래픽 시스템 중 하나를 가지고 있다. 저사양의 PC(low end PC)는 그의 칩셋 내에(예를 들어, 도 4의 GMCH 칩(6) 내에) 통합된 그래픽 컨트롤러를 가지며, 디지털 비디오 연결을 벌크헤드 HDMI/DVI 커넥터로 라우팅하는 AGP 디지털 디스플레이 카드(예를 들어, 도 4의 카드(10)와 유사하거나 그와 동일한 ADD 카드)를 사용한다. 고사양의 PC(higher end PC)는 일반적으로 AGP 또는 PCI-Express 그래픽 카드(예를 들어, 도 5의 카드(20)과 유사한 미디어/그래픽 카드) 상에 직접 보다 복잡한 그래픽 컨트롤러를 사용한다. 종래의 PC는 AGP, PCI, 또는 ISA 버스 중 어느 하나 상에 그래픽 컨트롤러를 사용한다. 어느 경우든지, 일반적으로 시스템 내에 시스템에 대한 비디오 출력을 제공하는 단일의 보드가 있다. 우리는 이 보드를, 그 카드의 유형에 상관없이, "그래픽 카드"라고 한다.
도 4에서, 퍼스널 컴퓨터(PC)는 HDTV 모니터(2)(HDMI 수신기를 포함함) 및 HDTV 모니터(2)에 의해 구동되는 스피커(3)를 포함하는 외부의 오디오 비디오 시스 템에 연결된 개방형 시스템이다. PC(1)는 HD-DVD 드라이브(4)를 포함한다. 디스크 드라이브(4)의 도 6 구현에서, 드라이버 컨트롤러(30)는 HD-DVD 디스크(도시 생략)으로부터 판독되는 데이터를 멀티플렉서(31)로 어써트한다. 멀티플렉서(31)는 컨트롤러(30)로부터의 데이터가 비보호된 데이터(예를 들어, 비보호된 메뉴 정보, 기타 등등)인지 여부를 검출하는 회로를 포함할 수 있다. 멀티플렉서(31)가 컨트롤러(30)로부터의 데이터가 비보호된 데이터임을 검출할 때, 멀티플렉서(31)는 데이터를 SATA 인터페이스(34)로 어써트한다. 그렇지 않은 경우(예를 들어, 컨트롤러(30)로부터의 데이터가 저작권 보호된 컨텐츠, 예를 들어 저작권 보호된 고선명 비디오임을 검출할 때), 멀티플렉서(31)는 그 데이터를 컨트롤러(30)로부터 DVD 디코더(32)로 어써트한다.
일반적으로, HD-DVD 드라이브(4)는 비보호된 데이터를 판독 및 기록하는 데 사용되는 데이터 인터페이스(예를 들어, 커넥터(34A)를 갖는 도 6의 SATA 인터페이스(34) 또는 적절한 커넥터를 갖는 ATA 또는 SCSI 인터페이스)에 부가하여 HDMI 인터페이스(예를 들어, HDMI 송신기(33) 및 송신기(33)를 HDMI 케이블에 연결하는 커넥터(33A)를 포함하는 도 6의 HDMI 인터페이스)를 포함한다. HDMI 인터페이스는, PC의 사운드 카드에 CD 오디오를 제공하기 위해 CD-ROM이 사용하는 별도의 아날로그 오디오 연결과 유사하게, 데이터 인터페이스에 의해 제공되는 것과 별개인 연결을 제공한다.
그렇지만, 드라이브(4)와 카드(10) 간의 별도의 HDMI 연결(비보호된 데이터를 판독 및 기록하기 위한 드라이브(4)의 데이터 인터페이스와 별개임)이 필요하지 않다. 어떤 실시예들(예를 들어, 도 12를 참조하여 기술되는 실시예)에서, HDCP-암호화된 데이터는 DDR(개방형 컴퓨팅 시스템의 폐쇄형 서브시스템)로부터 개방형 컴퓨팅 시스템을 통해 비보호된 데이터를 판독 및 기록하는 데 사용되는 동일한 데이터 인터페이스를 거쳐 "터널링"된다. 후자의 실시예에서, HDMI 인터페이스는 보호된 컨텐츠를 암호화(예를 들어, 재암호화)하여, 그에 의해 HDCP-암호화된 데이터를 발생하며, HDCP-암호화된 데이터는 개방형 컴퓨팅 시스템을 통해 폐쇄형 시스템 내의 HDMI 수신기(예를 들어, HDTV 모니터 또는 다른 디스플레이 장치 내의 HDMI 수신기)로 전파한다. 개방형 컴퓨팅 시스템이 HDCP-암호화된 컨텐츠에 액세스하지만, 그 시스템은 이러한 암호화된 컨텐츠를 복호화할 수 없고, 그 대신에 단지 이를 폐쇄형 시스템 내의 HDMI 수신기로 통과시키기만 한다.
PC(1)는 또한 SATA 인터페이스(34)로부터 데이터를 수신하기 위해 연결되어 있는 I/O 컨트롤러 허브(ICH) 칩(5)을 포함한다. ICH 칩(5)은 PC(1)의 I/O 기능(예를 들어, USB 기능)을 제어한다. ICH 칩(5)은 그래픽 및 메모리 컨트롤러 허브(GMCH) 칩(6)을 거쳐 CPU(7)에 연결되어 있다. GMCH 칩(6)은 PCI(peripheral communications interconnect) 버스 기능, 2차 캐쉬 활동, 및 AGP(accelerated graphics port) 활동 등의 기능을 처리한다. 메모리(9) 및 AGP 디지털 디스플레이(ADD) 카드(10)가 GMCH 칩(6)에 연결되어 있다.
디스크 드라이브(4)의 SATA 인터페이스(34)로부터의 데이터는 ICH 칩(5) 및 GMCH 칩(6)을 통해 메모리(9)로 흘러가고, CPU(7)에 의해 처리되며, 아마도 그 결과 그래픽 데이터 또는 비복사 방지된 비디오 데이터가 ADD 카드(10) 및 모니터(2) 로 출력된다. 구성요소(5, 6, 7, 9)는 따라서 개방형 시스템 아키텍처를 갖는 PC(1)의 컴퓨팅 서브시스템을 포함하며, ADD 카드(10)를 거쳐 모니터(2)로 어써트하기 위해 데이터를 발생하도록 구성되어 있다.
카드(10)는 칩(6)으로부터의 디지털 비디오 및 오디오 데이터에 대해 HDCP 암호화를 수행하는 HDCP 송신기(예를 들어, 도 7의 송신기(40))를 포함한다. 카드(10)는 그 결과 얻어지는 HDCP-암호화된 디지털 비디오 및 오디오를 HDMI 링크를 거쳐 모니터(2)로 어써트하도록 구성되어 있다. GMCH 칩(6)으로부터 ADD 카드(10)로 어써트된 데이터는 DVO(digital video output) 포맷으로 되어 있을 수 있다.
디스크 드라이브(4)가 도 6에 나타낸 바와 같이 구현될 때, DVD 디코더(32)는 (HD DVD 디스크로부터의) 고선명 비디오 데이터의 복호화 및 압축 해제를 수행하고, HDMI 송신기(33)는 그 결과 얻어지는 원시 비디오 데이터를 (HDCP 프로토콜에 따라) 재암호화하며 재암호화된 비디오 데이터를 HDMI 링크(HDMI 커넥터(33A)를 포함함)를 거쳐 직접 ADD 카드(10)로 전송한다. 카드(10)는 일반적으로 재암호화된 비디오 데이터를 또하나의 HDMI 링크를 거쳐 모니터(2)로 재전송하기 위해 HDMI 리피터로서 기능한다. 디스크 드라이브(4)는 또한 재암호화된 비디오 데이터를 복호화하기 위해 모니터(2)가 필요로 하는 임의의 키 데이터(예를 들어, HDCP 인증 교환 동안에 이용되는 키 데이터)를 (모니터(2)로 포워드하기 위해) HDMI 링크를 거쳐 카드(10)로 직접 전송한다. PC(1) 내에 내장된 폐쇄형 서브시스템 이외의 PC(1)의 구성요소(디스크 드라이브(4), 폐쇄형 서브시스템에 속하는 ADD 카드(10)의 각각의 구성요소, 및 드라이브(4)와 카드(10) 사이의 HDMI 링크)는 재암호화된 비디오 데이터 또는 키 데이터에 액세스하지 않는다.
도 5는 도 4의 시스템에 대한 변형예의 블록도이다. 도 4의 구성요소와 동일한 도 5의 구성요소들은 양 도면에서 동일한 번호가 부여되어 있다. 도 5에서, ADD 카드(10)는 미디어/그래픽 카드(20)로 대체되어 있고, GMCH 칩(6)(통합된 그래픽 회로를 포함함)은 GMCH 칩(16)으로 대체되어 있다. 칩(16)은 AGP 포맷 데이터를 카드(20)로 어써트하도록 구성되어 있다. 카드(20)는 HDCP-암호화된 디지털 비디오를 HDMI 링크를 거쳐 모니터(2)로 어써트하고 또 아날로그 오디오 데이터(카드(20) 내의 DAC에서 발생됨)를 직접 스피커(3)로 어써트하도록 구성되어 있다. 미디어/그래픽 카드(20)는 또한 HDCP-암호화된 비디오 데이터(제1 HDMI 링크를 거쳐 드라이브(4)로부터 수신됨)를 제2 HDMI 링크를 거쳐 모니터(2)로 재전송하는 HDMI 송수신기로서 기능하며, 제1 HDMI 링크를 거쳐 수신된 데이터로부터 HDCP-암호화된 오디오를 추출하고, 이 오디오를 복호화하여 그에 대해 디지털-아날로그 변환을 수행하며, 그 결과 얻은 아날로그 오디오를 직접 스피커(3)로 어써트한다.
도 12는 도 4의 시스템에 대한 또하나의 변형예의 블록도이다. 도 4의 구성요소와 동일한 도 12의 구성요소들은 양 도면에서 동일하게 번호가 부여되어 있다. 도 12의 PC(101)는, ADD 카드(110)가 ADD 카드(10)(도 4)를 대체하고, HD-DVD 드라이브(104)가 HD-DVD 드라이브(4)(도 4)를 대체한다는 점에서, 도 4의 PC(1)와 다르다.
디스크 드라이브(104)는 도13에 도시한 바와 같이 구현될 수 있다. 도 6의 구성요소와 동일한 도 13의 구성요소들은 양 도면에서 동일하게 번호가 부여되어 있으며, 디스크 드라이브(104)의 도 13 구현은 이하의 점들에서 디스크 드라이브(4)의 도 6 구현과 다르다. 디스크 드라이브(104)의 도 13 구현에서, HDMI 커넥터(33A)가 생략되어 있고, SATA 인터페이스(34)가 SATA 인터페이스(36)(커넥터(36A)를 가짐)로 대체되어 있으며, HDMI 송신기(33)는 HDCP 암호화 유닛(35)(그 출력은 SATA 인터페이스(36)의 제2 입력에 연결되어 있음)으로 대체되어 있다. SATA 인터페이스(36)는, (멀티플렉서(31)를 거쳐)드라이브 컨트롤러(30)로부터 인터페이스(36)에 의해 수신되는 데이터를 나타내거나 암호화 유닛(35)로부터 인터페이스(36)에 의해 수신되는 HDCP-암호화된 데이터를 나타내는, SATA 포맷을 갖는 데이터를 (커넥터(36A)로) 어써트하도록 구성되어 있다. 디스크 드라이브(104)의 멀티플렉서(31)가 컨트롤러(30)로부터의 데이터가 저작권있는 고선명 비디오 데이터(및/또는 저작권있는 오디오 데이터)임을 검출할 때, 멀티플렉서(31)는 그 데이터를 DVD 디코더(32)로 어써트한다. 그에 응답하여, 디코더(32)는 디코딩(복호화)를 행하고 그 데이터에 대해 임의의 필요한 압축 해제를 수행하며, 그 결과 얻어지는 원시(디코딩되거나, 디코딩되거 압축 해제된) 고선명 비디오(및/또는 오디오) 데이터를 HDCP 암호화 유닛(35)의 입력으로 어써트한다. 그에 응답하여, 암호화 유닛(35)은 원시 고선명 비디오(및/또는 오디오) 데이터의 HDCP-암호화된 버전을 SATA 인터페이스(36)의 입력에 어써트한다. HDCP-암호화된 데이터는 (SATA 포맷을 갖는 데이터 스트림으로) SATA 인터페이스(36)를 통해 ICH 칩(5)으로, 또 ICH 칩(5)으로부터 GMCH 칩(6) 및 ADD 카드(110)를 거쳐 모니터(2)로 "터널링"된다. (디스크 드라이브(104)의) 멀티플렉서(31)가 컨트롤러(30)로부터의 데이터가 비보 호된 데이터임을 검출할 때, 멀티플렉서(31)는 그 데이터를 SATA 인터페이스(36)의 다른쪽 입력에 어써트한다. 비보호된 데이터를 나타내는, SATA 포맷을 갖는 데이터 스트림은 인터페이스(36)에 의해 ICH 칩(5)으로, 또 ICH 칩(5)으로부터 GMCH 칩(6) 및 ADD 카드(110)를 거쳐 모니터(2)로 어써트된다.
도 12의 ADD 카드(110)는 칩(6)으로부터의 디지털 비디오 및/또는 오디오 데이터에 대해 HDCP 암호화를 수행하고 이 암호화된 비디오 및 오디오를 HDMI 링크를 거쳐 모니터(2)로 어써트하는 HDCP 송신기를 포함한다. 카드(110) 내부의 HDCP 송신기의 암호화 회로는, 칩(6)이 HDCP-암호화된 데이터를 디스크 드라이브(104)로부터 카드(110)로 포워드하는 모드에서, 디스에이블 또는 우회된다. 도 12의 카드는, 카드(110)가 디스크 드라이브(104)에 직접 연결되어 있지 않다(반면에 카드(10)는 디스크 드라이브(4)에 직접 연결되어 있음)는 점에서, 도 4의 ADD 카드(10)와 다르다. 카드(110)는, 그 출력이 카드(110)와 모니터(2) 사이에서 HDMI 링크에 연결되어 있는 스위치를 포함할 필요가 없다. 이와 반대로, 도 4의 카드(10)는, 그의 내부 HDCP 송신기(예를 들어, 도 7의 송신기(40))로부터의 데이터 또는 디스크 드라이브(4)로부터 직접 수신된 HDMI-포맷의 HDCP-암호화된 데이터를 모니터(2)로 선택적으로 어써트하기 위한, 스위치(예를 들어, 도 7의 스위치(41))를 포함한다.
HDTV 모니터(2)는 일반적으로 폐쇄형 시스템으로 구현된다. 도 12에 나타낸 바와 같이, 모니터(2)는 일반적으로 HDMI 수신기(112), 및 수신기(112)에 연결된 디스플레이 장치(114)(예를 들어, CRT 또는 LED 디스플레이)를 포함한다. 장 치(114)는 수신기(112)에서 생성된 복호화된 비디오 데이터를 디스플레이하도록 구성되어 있다. 수신기(112)는 카드(10)로부터 수신되는 암호화된 오디오 및 비디오 데이터를 복호화하도록 구성되어 있는 HDCP 복호화 회로를 포함하며, 복호화된 오디오를 (일반적으로, 재포맷화 등 그에 대해 부가적인 처리를 수행한 후에) 스피커(3)에 어써트하고 또 복호화된 비디오를 (일반적으로, 재포맷화 등 그에 대해 부가적인 처리를 수행한 후에) 디스플레이 장치(114)에 어써트하도록 구성되어 있다.
도 12에서, 디스크 드라이브(104) 내부의 HDCP 암호화 회로는 디스크 드라이브(104)에 의해 수신되는(예를 들어, 디스크 드라이브(104)에 의해 디스크로부터 판독되는) 보호된 컨텐츠의 디코딩된 버전을 암호화(재암호화)하고, 그에 의해 HDCP-암호화된 데이터를 발생한다. HDCP-암호화된 데이터는 PC(101)(개방형 컴퓨팅 시스템)를 통해 외부 장치(HDTV 모니터(2)) 내부의 HDMI 수신기(112)로 전파한다. PC(101)가 HDCP-암호화된 컨텐츠에 액세스하더라도, PC(101)는 HDCP-암호화된 컨텐츠를 복호화할 수 없는데, 그 이유는 그렇게 하기 위한 키가 없기 때문이며, 그 대신에 PC(101)는 HDCP-암호화된 컨텐츠를 모니터(2) 내의 HDMI 수신기(112)로 통과시킬 뿐이다.
대체 실시예들에서, 개방형 시스템 내의 DDR 유닛은 별개의 것이며 디스크 드라이브와 독립적이다. 예를 들어, DDR 유닛은 인터넷 또는 본 발명의 개방형 시스템 외부의 다른 소스로부터 보호된 컨텐츠를 수신하고, 복호화 및 압축 해제하며 또 재암호화하도록 구성될 수 있다.
DDR 유닛이 개방형 시스템에 내장되어 있는 경우, 일반적으로, DDR 유닛의 출력을 개방형 시스템의 표준(비보호된) 그래픽 및 오디오 출력과 결합시키는 회로가 제공된다. 예를 들어, PC의 그래픽 카드(예를 들어, 도 4의 카드(10) 또는 도 5의 카드(20))는 보호된 컨텐츠를 처리하기 위한 또하나의 폐쇄형 서브시스템으로(DDR 유닛의 출력을 PC의 표준 그래픽 및/또는 오디오 출력과 합성시키는 것 등에 의해) 보강될 수 있다. 이러한 폐쇄형 서브시스템은 양호하게는 DDR 유닛(일반적으로 HD-DVD 드라이브에 통합되어 있음)으로부터 제공되는 재암호화된 데이터를 수신하기 위해 HDMI 커넥터, 및 재암호화된 데이터를 개방형 시스템의 표준 그래픽 및/또는 오디오 출력을 결합시키는(예를 들어, 시분할 멀티플렉싱하거나 픽처-인-픽처 포맷으로 결합시키는) 메카니즘를 포함한다. 양호하게는, 보강된 그래픽 카드의 출력은, 그 자체가, HDCP 복사 방지 기능을 갖는 HDMI 연결이며, 보강된 그래픽 카드는, 그래픽 카드의 출력이 HDCP도 역시 지원하는 외부 장치(예를 들어, HD 모니터)에 연결되어 있는 경우에만, HDCP 암호화된 데이터를 DDR 유닛으로부터 외부 장치로 포워드하도록 구성되어 있다. 이것은, 외부 장치(종단 장치)가 HDCP 보호 메카니즘을 지원하지 않는 한, 보호된 컨텐츠가 보강된 그래픽 카드를 통해 지나가지 못하게 한다.
보강된 그래픽 카드에서 가능한 가장 간단한 결합 메카니즘("결합기 회로")는 DVD 비디오 또는 시스템 그래픽 출력 중 하나를 선택하도록 구성되어 있는 스위치(예를 들어, 도 7의 스위치(41))이다. 스위치는, 사용자가 화면 상에서 보호된 컨텐츠(예를 들어, 디스크 드라이브(4)로부터 온 것인, 도 7에서 "HDMIin"이라고 표시된 신호)를 보거나 PC 그래픽의 출력(도 7에서 "(S)DVO"라고 표시됨)을 보기 위해 선택을 할 수 있도록, 사용자-조작될 수 있다. 도 7 실시예에서, ADD 카드(10)는, 도시된 바와 같이 연결되어 있는, HDMI 송신기(40) 및 스위치(41)를 포함한다. 송신기(40)는 도 4의 GMCH 칩(6)의 출력을 수신하고, 그에 대해 HDCP 암호화를 수행하며, HDCP-암호화된 데이터를 HDMI 링크를 거쳐 스위치(41)로 어써트한다. 스위치(41)는 송신기(40)의 출력 또는 DDR 유닛의 출력(예를 들어, 도 6의 디스크 드라이브(4)의 HDMI 송신기(33)의 출력) 중 어느 하나를 (또하나의 HDMI 링크를 거쳐) 모니터(2)로 포워드하는 HDMI 리피터로서 기능한다. 본 발명의 폐쇄형 서브시스템의 일례는 드라이브(4) 내의 DDR 유닛(예를 들어, 도 6의 드라이브(4)의 구성요소(31, 32, 33)) 및 (도 7의 ADD 카드(10) 내부의) 스위치(41)이다.
어떤 실시예들에서, 보강된 그래픽 카드는 HDCP 규격에 따른 "HDCP 리피터"로서 역할한다. 이러한 리피터는 협상에 관여하지 않고 원래의 소스(DDR 유닛)와 목적지(예를 들어, 모니터) 사이에서 HDCP 허가 메시지를 전달하기만 한다.
(예를 들어, 카드(10) 내에) 보다 정교한 결합기 회로도 역시 가능하다. 예를 들어, 결합기 회로는 스크린의 일부에 비디오 디스플레이를 임베딩(embed)하도록(예를 들어, 그래픽 윈도우가 위치하고 있는 경우) 또는 심지어 보호된 컨텐츠를 다른 해상도로 재스케일링하여 이를 비보호된 컨텐츠에 의해 결정되는 디스플레이에 임베딩하도록(종래의 TV 세트에서의 픽처-인-픽처 디스플레이와 유사하거나 동일한 외관을 갖는 결합된 디스플레이를 생성하도록) 구성되어 있다.
보강된 그래픽 카드 내의 폐쇄형 서브시스템은, 출력이 HDCP 지원 장치에 부착되는 경우, 보호된 컨텐츠(즉, HDCP-암호화된 컨텐츠)가 출력 상으로 제공되기만 하도록 구성될 수 있다. 이러한 유형의 어떤 실시예들에서, 보강된 그래픽 카드는 보강된 그래픽 카드로 하여금 DDR 유닛으로부터의 스트림을 복호화하고 이 복호화된 데이터를 허용된 방식으로 수정하며(예를 들어, 이를 리스케일링(rescale)하며) 이어서 수정된 데이터를, 출력으로 전송하기 이전에, 재암호화할 수 있게 해주는 HDCP 인증 메카니즘을 포함한다. 이러한 실시예는 일반적으로 복호화를 수행하는 컴포넌트, 데이터를 보유하기 위한 하나 이상의 메모리, 선택적인 스케일링 모듈, 재타이밍 및 배치 메카니즘, 및 재암호화 메카니즘의 추가를 필요로 한다. 이들 컴포넌트 모두는 보강된 그래픽 카드의 폐쇄형 서브시스템(및 본 발명의 개방형 시스템의 폐쇄형 서브시스템)의 일부로 간주되며, 이들은 복호화된 데이터가, 그 데이터에 대해 HDCP 암호화가 적용되지 않은 상태에서, 폐쇄형 서브시스템 외부에서 관찰되거나 그 외부로 라우팅되지 않도록 설계된다.
예를 들어, 도 8의 ADD 카드(50)(이는 도 4 시스템에서의 도 7의 카드(10)를 대체할 수 있음)는, 도시되어 있는 바와 같이 연결되어 있는, HDCP 로직(53), HDMI 수신기(54), 스케일러(55), 스위치(51), 및 HDMI 송신기(52)를 포함한다. 스위치(51)의 한 입력은 도 4의 GMCH 칩(6)의 출력을 수신한다. 스위치(51)가 이 데이터를 통과시킬 때, HDMI 송신기(52)는 그에 대해 HDCP 암호화를 수행하고, 이 HDCP-암호화된 데이터를 HDMI 링크를 거쳐 모니터(2)로 어써트할 수 있다. HDMI 수신기(54)는 DDR 유닛의 출력(예를 들어, 도 6의 디스크 드라이브(4)의 HDMI 송신기(33)의 출력)을 수신하고 이 데이터를 복호화한다. HDCP 로직(53)은 수신기(54) 및 송신기(52)에 대해 동작하여, 수신기(54)로 하여금 DDR 유닛과의 HDCP 인증 교 환을 실행할 수 있게 해주고 송신기(52)로 하여금 모니터(2) 내의 HDMI 수신기와의 HDCP 인증 교환을 실행할 수 있도록 해준다. 수신기(54)로부터의 복호화된 컨텐츠 출력은 스위치(51)의 제2 입력으로 직접 어써트될 수 있거나 스케일러(55)에서 스케일링될 수 있으며, 이어서 스케일러(55)의 출력은 스위치(51)의 제3 입력으로 어써트될 수 있다. 스위치(51)는 그의 입력들 중 임의의 하나에 있는 데이터를 HDMI 송신기(52)로 전달하도록 제어될 수 있다. HDMI 송신기(52)는 스위치(51)에 의해 전달된 데이터에 대해 HDCP 암호화를 수행하고, 이 HDCP-암호화된 데이터를 HDMI 링크를 거쳐 모니터(2)로 어써트한다.
송신기(52)는, HDCP-암호화된 데이터를 DDR 유닛으로부터 HDMI 수신기(54)로 포워딩하고 이러한 HDCP-암호화된 데이터의 복호화된 버전을 수신기(54)에 의해 스위치(51)로(또는 수신기(54)에 의해 스케일러(55)로, 및 스케일러(55)로부터 스위치(51)로) 어써트한 결과로서 데이터가 스위치(51)에 도달한 경우, 스위치(51)에 의해 전달된 데이터에 대해 HDCP 암호화를 수행하기만 하면 된다. 송신기(52)는 도 4의 GMCH 칩(6)으로부터 스위치(51)로 어써트되고 스위치(51)에 의해 송신기(52)로 전달된 데이터의 HDCP 암호화를 수행할 필요가 없다(그 대신에, 송신기(52)는 이 데이터의 비암호화된 버전을 HDMI 링크를 거쳐 모니터(2)로 전송할 수 있다).
다른 예로서, 도 9의 ADD 카드(60)(이는 도 4 시스템에서의 도 7의 카드(10)를 대체할 수 있음)는, 도시된 바와 같이 연결되어 있는, HDCP 로직(53), HDMI 수신기(54), 스케일러(55), 오디오 코덱(70), 스위치(71), 및 HDMI 송신기(52)를 포 함한다. 스위치(71)의 한 입력은 코덱(70)으로부터 출력되는 오디오 데이터(도 4의 GMCH 칩(6)으로부터의 데이터에 응답하여 코덱(70)에 의해 발생될 수 있음)를 수신한다. 스위치(71)의 제2 입력은 도 4의 GMCH 칩(6)으로부터 출력되는 비디오 데이터를 수신한다. 스위치(71)에 의해 HDMI 송신기(52)로 전달되는 데이터는 송신기(52)에서 HDCP 암호화를 거치며, 이 HDCP-암호화된 데이터는 HDMI 링크를 거쳐 모니터(2)로 어써트된다. HDMI 수신기(54)는 DDR 유닛의 출력(예를 들어, 도 6의 디스크 드라이브(4)의 HDMI 송신기(33)의 출력)을 수신하고 이 데이터를 복호화한다. HDCP 로직(53)은 수신기(54) 및 송신기(52)에 대해 동작하여, 수신기(54)로 하여금 DDR 유닛과의 HDCP 인증 교환을 실행할 수 있게 해주고 송신기(52)로 하여금 모니터(2) 내의 HDMI 수신기와의 HDCP 인증 교환을 실행할 수 있게 해준다. 수신기(54)로부터 출력되는 복호화된 컨텐츠는 스위치(71)의 제3 입력으로 직접 어써트될 수 있거나 스케일러(55)에서 스케일링될 수 있고, 스케일러(55)의 출력은 이어서 스위치(71)의 제4 입력으로 어써트될 수 있다. 스위치(71)는 그의 입력들 중 임의의 하나에 있는 데이터를 HDMI 송신기(52)로 전달할 수 있다.
다른 예로서, 도 10의 미디어/그래픽 카드(80)(이는 디지털 오디오 데이터가 디지털 비디오와 함께 모니터로 전송되는 도 5 시스템에 대한 변형예에서의 카드(20)를 대체할 수 있음, 그렇지만 이 미디어/그래픽 카드로부터 아날로그 오디오는 출력되지 않음)는, 도시되어 있는 바와 같이 연결되어 있는, HDCP 로직(53), HDMI 수신기(54), 스케일러(55), 오디오 코덱(84), 그래픽 가속기(82), 프레임 버퍼(83), 스위치(71), 및 HDMI 송신기(52)를 포함한다. 스위치(71)의 한 입력은 코 덱(84)으로부터 출력되는 오디오 데이터(도 5의 GMCH 칩(16)으로부터의 데이터에 응답하여 코덱(84)에 의해 발생될 수 있음)를 수신한다. 스위치(71)의 제2 입력은 그래픽 가속기(82)로부터 출력되는 비디오 데이터를 수신한다. 이러한 비디오 데이터는 일반적으로 도 5의 GMCH 칩(16)으로부터의 데이터에 응답하여 가속기(82)에서 발생되고, 프레임 버퍼(83)에 기록되며, 이어서 프레임 버퍼(83)로부터 스위치(71)로 어써트된다. 스위치(71)에 의해 HDMI 송신기(52)로 전달되는 데이터는 송신기(52)에서 HDCP 암호화를 거치며, 이 HDCP-암호화된 데이터는 HDMI 링크를 거쳐 모니터(2)로 어써트된다. HDMI 수신기(54)는 DDR 유닛의 출력(예를 들어, 도 6의 디스크 드라이브(4)의 HDMI 송신기(33)의 출력)을 수신하여, 이 데이터를 복호화한다. HDCP 로직(53)은 수신기(54) 및 송신기(52)에 동작하여, 수신기(54)로 하여금 DDR 유닛과의 HDCP 인증 교환을 실행할 수 있게 해주고 송신기(52)로 하여금 모니터(2) 내의 HDMI 수신기와의 HDCP 인증 교환을 실행할 수 있게 해준다. 수신기(54)로부터 출력되는 복호화된 컨텐츠는 스위치(71)의 제3 입력으로 직접 어써트될 수 있거나, 스케일러(55)에 의해 스케일링되고 이어서 스케일러(55)의 출력이 스위치(71)의 제4 입력으로 어써트될 수 있다. 스위치(71)는 그의 입력들 중 임의의 하나에 있는 데이터를 HDMI 송신기(52)로 전달할 수 있다.
다른 부류의 실시예들에서, 도 6의 멀티플렉서(31), 디코더(32), HDMI 송신기(33), 및 SATA 인터페이스(34)는, DVD 드라이브와 별도로 있고 그와 독립적인, PC의 폐쇄형 서브시스템으로서 구현된다(PC는 심지어 DVD 드라이브를 포함하지 않을 수도 있다). 예를 들어, 멀티플렉서(31)는 인터넷으로부터 PC(1)로 어써트된 데이터를 수신하도록 연결될 수 있다. 이러한 데이터가 비보호된 데이터임을 멀티플렉서(31)가 검출하는 경우, 멀티플렉서(31)는 그 데이터를 SATA 인터페이스(34)로 어써트한다. 그렇지 않은 경우(예를 들어, 컨트롤러(30)로부터의 데이터가 저작권있는 컨텐츠임을 멀티플렉서(31)가 검출하는 경우), 멀티플렉서(31)는 그 데이터를 컨트롤러(30)로부터 디코더(32)로 어써트한다. 디코더(32)는 그 데이터(예를 들어, 고선명 비디오 데이터 또는 다른 비디오 데이터일 수 있음)의 복호화 및 압축 해제를 수행하도록 구성되어 있다. HDMI 송신기(33)는 그 결과 얻은 원시 데이터(예를 들어, 원시 비디오 데이터)를 HDCP 프로토콜에 따라 재암호화하고, 이 재암호화된 데이터를 HDMI 링크를 거쳐, 예를 들어 ADD 카드(10)(또는 그에 대한 변형예)로 직접 또는 미디어/그래픽 카드(20)(또는 그에 대한 변형예)로 전송한다. DDR 유닛은 양호하게는 보안 키 교환, 만료, 및 취소 메카니즘을 구현한다(예를 들어, 이러한 메카니즘은 HDMI 송신기(33) 내부에 구현될 수 있다).
이전의 단락에 제공된 예에 대한 변형예에서, SATA 인터페이스(34)는 어떤 다른 유형의 데이터 인터페이스(예를 들어, PCI, ATA 또는 SCSI 인터페이스)로 대체된다. 보다 일반적으로, 미국 특허 출원 제10/679,055호의 개시 내용을 구현하는 많은 유형의 개방형 시스템 중 임의의 것에서 또한 미국 특허 출원 제10/679,055호의 개시 내용에 따라 개방형 시스템에 구현되도록 구성되어 있는 많은 생각되는 폐쇄형 시스템 중 임의의 것에서 광범위한 데이터 전송 인터페이스가 이용될 수 있음이 생각된다. 어떤 경우(예를 들어, 도 4 및 도 6을 참조하여 기술된 실시예들 및 도 5, 도 12 및 도 13을 참조하여 이하에 기술되는 실시예들에 대한 변형예)에, 개방형 시스템은 그의 구성요소들 사이에서(예를 들어, HD-DVD 드라이브 또는 다른 디스크 드라이브로부터 PC의 I/O 컨트롤러 허브 칩으로, 여기서 개방형 시스템은 PC임) 비보호된 데이터(또는 보호된 데이터 및 비보호된 데이터 둘다)를 전송하기 위해 SATA 인터페이스 이외의 데이터 인터페이스를 사용한다. 예를 들어, 어떤 실시예들에서, 개방형 시스템은, 비보호된 데이터를 그의 구성요소들 사이에서 전송하기 위해, SATA 인터페이스(예를 들어, 도 6에 도시된 바와 같이 커넥터(34A)를 갖는 SATA 인터페이스 또는 도 13에 도시한 바와 같이 커넥터(36A)를 갖는 SATA 인터페이스)보다는 오히려 PCI, ATA, 또는 SCSI 인터페이스(적절한 커넥터를 가짐)를 이용한다.
상기 두번째 단락에서 기술된 실시예들에서, 디코더(32)는 양호하게는 (본 발명의 개방형 시스템의 폐쇄형 서브시스템의 DDR 유닛 내부에) 보안 디코더로서 구현되며, 따라서 DDR 유닛은 로컬 HD-DVD 디스크와 동일한 정도의 보호를 갖는 인터넷 기반 컨텐츠를 전달하는 데 사용될 수 있다. 이러한 실시예들에 대한 변형예에서, 암호화되고 압축된 데이터가 DDR 유닛의 SATA 포트를 통해 (예를 들어, 인터넷으로부터) DDR 유닛(PC 또는 다른 개방형 시스템의 폐쇄형 서브시스템에 구현됨, 그렇지만 DVD 드라이브 내에 있지 않음)에 제공되고, DDR 유닛은 (예를 들어, HDMI 링크를 거쳐) HDMI 재암호화된 데이터만을 출력한다.
예를 들어, 고객이 최신 유행 영화를 보고자 한 경우(여기서, "영화"는, 본 명세서에서, 때때로 "타이틀"이라고 함), (고객의 개방형 시스템의 DDR 유닛 내부의) 고객의 디코더 유닛은 한번만 사용되는, 제한된 시간 동안 유효한, 키를 제공 받을 수 있다. 이어서, 영화의 복사본이 인터넷을 거쳐 전송되고, 동작 중에 그 키로 암호화된다. 그 사용자만이 또한 제한된 시간 동안에만 그 타이틀을 볼 수 있게 된다. 그 영화 데이터가 다른 어떤 사람에 의해 가로채기되거나 디스크에 저장되더라도, 그 데이터는 임의의 다른 디코더에서 또는 키의 만료 이후의 시간에는 무용지물로 된다.
대체예는 배포자가 타이틀마다 제한된 기간 동안 유효한 키(예를 들어, 일별 키(daily key))를 가지며 매일(또는 다른 적당한 기간마다) 새로운 키로 각각의 타이틀의 하나의 복사본을 인코딩하는 것이다. 그 날짜에 영화를 보도록 허가된 임의의 사용자는 그 타이틀 및 적절한 키를, 그 키에 대한 만료 시간과 함께, 제공받게 된다. 그 시간이 경과하면, 영화의 그 인스턴스의 임의의 복사본은 재생할 수 없게 된다. 그 다음 날에는, 그 날짜의 고객들에 대해 새로운 버전이 암호화된다.
개방형 시스템의 폐쇄형 서브시스템의 DDR 유닛은 (예를 들어, 사용자의 가정에 설치된 PDN 내부에서) 디지털 저작권 관리 허브로서 사용될 수 있다. 예를 들어, 도 11에서, DDR 유닛(92)은 개방형 컴퓨팅 시스템(95)의 폐쇄형 서브시스템 내에 포함되어 있다. 개방형 시스템(95)은 또한 HD-DVD 드라이브(90)를 포함한다. 폐쇄형 서브시스템은 또한 인터페이스 회로(93)를 포함한다. DDR 유닛(92) 내부에서, 드라이브(90)로부터의 암호화 및 압축된 고선명 비디오가 (HDCP 프로토콜에 따라) 복호화, 압축 해제, 및 재암호화될 수 있다. 재암호화된 데이터는 이어서 개방형 시스템(95)으로부터 HDMI 링크를 거쳐 모니터(91)로 전송될 수 있다. 이와 유사하게, 암호화된 컨텐츠("CPPM" 데이터)는 인터넷으로부터 인터페이스(93)를 거 쳐 DDR 유닛(92)으로 어써트될 수 있다. DDR 유닛(92)은 (인터페이스(93)를 거쳐) CPPM 데이터의 복호화를 달성하는 데 필요한 임의의 키 교환 및 검증 동작을 구현하고, DDR 유닛(92)은 이어서 그 데이터를 복호화하고(또한 필요한 경우, 압축 해제하고), 이어서 그 결과 얻어지는 데이터를 (양호하게는, HDCP 프로토콜에 따라) 재암호화한다. 이 재암호화된 데이터는 이어서 개방형 시스템으로부터 HDMI 링크를 거쳐 모니터(91)로 전송될 수 있다. 본질적으로, DDR 유닛(92)은 광범위한 용도를 위한 키들을 안전하게 보유 및 사용할 수 있는 금고(vault)로서 기능한다. 그렇지만, 금고 이상으로서, DDR 유닛(92)은 허브 내부의 보호된 포맷들(예를 들어, HD-DVD 및 HDCP) 간에 변환하기 위한 자원들을 포함한다. 이 결과 이들 키나 임의의 비암호화된 컨텐츠 어느 것도 불법 사용에 이용가능하지 않게 된다.
일반적으로, 미디어 데이터의 소프트웨어 디코딩(복호화 및/또는 압축 해제)은, 광범위한 포맷이 있는 경우 또는 빠르게 변하는 일련의 포맷이 있는 경우, 하드웨어 디코딩보다 이점이 있다. 이러한 상황은 인터넷을 통해 가정용 PC에서 이용가능한 현재의 스트리밍 미디어 세계를 대표한다. 많은 경쟁하는 오디오 및 비디오 포맷이 있으며, 사용자는 일반적으로, 필요한 경우, 디코더 프로그램의 새로운 복사본을 다운로드한다.
소프트웨어 디코딩의 일반적인 단점은 소프트웨어 디코딩이 시스템의 처리 능력의 상당 부분을 소비할 수 있다는 것이다. 시스템들 간의 처리 속도 및 애플리케이션 부하의 변동으로 인해, 균일하게 양호한 표현이 항상 가능한 것은 아니다.
그렇지만, 포맷이 표준화되고 범용적인 경우(예를 들어, CD 및 DVD 포맷), 소프트웨어 디코딩의 이점은 극히 적다. 보통, 특수 목적의 디코더는 최신의 PC 프로세서보다 덜 고가이며, 표현 품질은 균일하게 양호하도록 보장될 수 있다. 이러한 이유는, PC 상에서와 달리, 특수 목적의 디코더 상에서 예기치 않은 애플리케이션이 실행되는 일이 있을 수 없기 때문이다.
하드웨어 디코딩이 유리한 다른 분야는 컨텐츠에 대한 지적 재산권 보호를 유지하는 것이다. 소프트웨어 디코딩이 사용되는 경우, 키 및 디코딩된 컨텐츠 둘다는 PC의 메모리 시스템에 평문으로 존재한다. 다른 애플리케이션들이 동시에 실행되고 있을 수 있기 때문에, 악의적인 프로그램이 보호 시스템을 손상시킬 수 있다. 게다가, 가정 사용자들은 보통 그의 시스템에 대한 관리자 권한을 가지고 있으며, 키 또는 컨텐츠에 액세스하기 위해 "트로이 목마" 장치 드라이버를 로드하거나 다른 백도어 공격을 사용할 수 있다. 대량 생산된 포맷에 대해 키가 손상된 경우, 컨텐츠 보호 전쟁은 본질적으로 지게 된다. 이와 반대로, 특수 목적의 하드웨어 디코더는 다른 프로그램들이 로드될 수 없게 하고 또 서명된 펌웨어 갱신만을 허용하기 때문에, 아주 교묘한 해커가 아니라면 액세스하는 것이 거의 불가능할 것이다.
특수 목적의 하드웨어의 사용은 비복사 방지된 컨텐츠의 소프트웨어 디코딩을 배제하지 않는다. 본 발명 및/또는 미국 특허 출원 제10/679,055호의 개시 내용을 구현하는 개방형 시스템은 컨텐츠 작성자의 중요한 지적 재산권을 비보호된 컨텐츠(예를 들어, 어떤 가정용 영화)와 다르게 취급할 수 있다. 또한, 본 발명 및/또는 (미국 특허 출원 제10/679,055호에 기술된 바와 같은) 개방형 시스템의 폐쇄형 서브시스템을 구현하는 보안 하드웨어(예를 들어, 인그레스 및 이그레스 회로)는 소프트웨어(예를 들어, 개방형 시스템에 의해 실행되는 소비자 비디오 편집 소프트웨어)가 복사 방지된 컨텐츠를 수정하지 못하도록 구현될 수 있다.
미국 특허 출원 제10/679,055호는 또한 개방형 시스템 아키텍처를 갖는 컴퓨팅 시스템에서 컨텐츠를 보호하고 외부 시스템에 컨텐츠를 제공하는 방법을 기술하고 있으며, 이 방법은 (a) 컴퓨팅 시스템의 폐쇄형 서브시스템에서, 암호화된 컨텐츠를 복호화하고 선택적으로 그에 대해 부가적인 처리를 수행함으로써 원시 컨텐츠를 발생하는 단계, (b) 상기 폐쇄형 서브시스템에서, 상기 원시 컨텐츠를 재암호화함으로써 보호된 컨텐츠를 발생하는 단계, 및 (c) 상기 컴퓨팅 서브시스템에 상기 보호된 컨텐츠에의 액세스를 제공하지 않고, 상기 보호된 컨텐츠를 상기 폐쇄형 서브시스템으로부터 상기 외부 시스템으로 어써트하는 단계를 포함한다. 이 암호화된 컨텐츠는 컴퓨팅 시스템 외부의 소스로부터 (예를 들어, 인터넷을 통해) 수신될 수 있다. 이 암호화된 컨텐츠는 디스크로부터 판독된 디지털 비디오 데이터일 수 있다. 단계 (a)는 상기 암호화된 컨텐츠를 복호화하여 복호화된 데이터를 발생하는 단계, 및 상기 복호화된 데이터에 대해 압축 해제를 수행하여 원시 컨텐츠를 발생하는 단계를 포함할 수 있다. 어떤 실시예들에서, 디지털 비디오 데이터는 디스크로부터 판독된 고선명 디지털 비디오 데이터이며, 단계 (a)는 고선명 디지털 비디오 데이터를 복호화하여 복호화된 데이터를 발생하는 단계, 및 이 복호화된 데이터에 대해 압축 해제를 수행하여 원시 데이터를 발생하는 단계를 포함한다.
본 발명의 측면들은 미국 특허 출원 제10/679,055호의 (상기한) 개시 내용의 일반화이다. 본 발명의 이들 및 어떤 다른 측면들은 PDN(도 4, 도 5, 도 11 및 도 12를 참조하여 기술된 유형들 중 임의의 것의 개방형 컴퓨팅 시스템일 수 있지만 꼭 그럴 필요는 없음)에서 컨텐츠를 보호하는 방법 및 장치이다. 본 발명의 어떤 측면들에 따르면, 평문 컨텐츠 및 컨텐츠의 복호화를 달성하는 데 사용되는 비밀은 개방형 컨텐츠 또는 다른 PDN 내의 하드웨어(예를 들어, 집적 회로) 내부에서 보호되고, PDN 내의 이러한 하드웨어 외부에 존재할 때마다 암호화된다.
이하의 설명으로부터 명백한 바와 같이, 도 4, 도 5, 도 11 및 도 12 중 임의의 것의 개방형 컴퓨팅 시스템은 본 발명을 구현할 수 있다. 예를 들어, 도 4, 도 5, 도 11 및 도 12 중 임의의 것의 개방형 컴퓨팅 시스템은, 컨텐츠 전사가 도 4 또는 도 5의 디스크 드라이브(4), 또는 도 12의 디스크 드라이브(104), 또는 도 11의 DDR 유닛(92) 내의 단일의 집적 회로(칩으로 구현된 "인그레스 노드")에서 하드웨어적으로 구현된다면 또한 인그레스 노드에 존재하는 비밀이 개방형 컴퓨팅 시스템의 소프트웨어에 의해 또는 인그레스 노드 외부의 임의의 다른 개체(하드웨어 또는 소프트웨어)에 의해 비암호화된 형태로 액세스가능하지 않다면(각각의 이러한 비밀은 인그레스 노드 내부에 있거나 인그레스 노드 외부에 있을 때마다 암호화됨), 본 발명을 구현할 수 있다. 예를 들어, 도 4의 디스크 드라이브(4)는, 본 발명에 따르면, 구성요소(32, 33)가 단일 칩 내에 통합되어 있는 하드웨어로서 구현되어 있는, 도 6에 도시된 장치에 대한 변형예로서 구현될 수 있다(따라서, 구성요소(32) 내부의 복호화 회로와 구성요소(33) 내부의 재암호화 회로 간에 통신하기 위한 보안 채널이 필요없다). 이러한 칩은 원하는 복호화 또는 재암호화 동작을 수행하는 데 필요한 칩 내에 아직 존재하지 않는 임의의 비밀을 (외부 소스로부터) 획득하도록 구성되어 있는 로크박스를 포함하는 인그레스 노드로서 구성될 수 있다. 선택적으로, 도 6의 디스크 드라이브에 대한 이러한 변형예는, 드라이브의 SATA 인터페이스(34)에서 수신되는 (외부 컨텐츠 제공자로부터의) 암호화된 컨텐츠가 드라이브로부터의 출력에 대한 칩 내부에서의 복호화 및 그에 뒤이은 재암호화를 위한 전사 칩(transcryption chip)(여기에, 구성요소(32, 33)가 통합되어 있고, 또 이는 인그레스 노드로서 구성되어 있음) 내부의 복호화 회로로 전송될 수 있도록, 구성되어 있다.
이어서, 본 발명을 구현할 수 있는 한 부류의 PDN에 대해 기술한다. 예를 들어, 도 14의 PDN(100)은 본 발명을 구현할 수 있다. PDN(100)은 위성으로부터 안테나(102)로 전송된 컨텐츠를 안테나(102)로부터 수신하도록 구성되어 있는 위성 수신기(120)(일반적으로, 셋톱 박스로서 구현됨), (디스크(103)로부터 컨텐츠를 판독할 수 있는) DVD 플레이어(122), 케이블(106)을 통해 전송되는 컨텐츠를 수신하도록 구성되어 있는 케이블 수신기(124)(일반적으로, 셋톱 박스로서 구현됨), 및 (안테나(108)로 브로드캐스트된 컨텐츠를 수신하고 그에 대한 임의의 필요한 복조를 할 수 있는) 튜너(126)를 포함한다. 선택적으로, 튜너(128)는 인터넷을 통해 원격 서버(111)와 양방향 통신을 하도록(예를 들어, 원격 서버(111)로 SSL-암호화된 데이터를 전송하고 그로부터 SSL-암호화된 데이터를 수신하도록) 구성되어 있다. 선택적으로, 수신기(124)는 디지털 비디오 레코딩 기능을 갖는다(예를 들어, 수신기(124)는 수신기(124)에 연결된 저장 유닛(131)에 컨텐츠를 기록하도록 구성되어 있다).
PDN(100)은 또한 구성요소(120, 122, 124) 중 임의의 것으로부터 오디오 및 비디오 컨텐츠를 수신하여 처리하고 이 처리된 컨텐츠를 비디오 프로세서(132) 및 모니터(116) 중 하나 또는 그 둘다로 어써트하도록 연결 및 구성되어 있는 오디오/비디오 수신기(128)를 포함한다. PDN(100)은 또한 튜너(126) 및 수신기(128) 중 하나 또는 그 둘다로부터 오디오 및 비디오 컨텐츠를 수신하고, 비디오 컨텐츠를 (예를 들어, 그에 대해 스케일링, 포맷 변환, 및/또는 디인터레이싱을 수행함으로써) 처리하며, 오디오 및 처리된 비디오를 모니터(118)(및 모니터(118)에 연결된 스피커)로 어써트도록 연결 및 구성되어 있는 비디오 프로세서(132)를 포함한다. 프로세서(132)는 또한 선택적으로 디지털 비디오 레코딩 기능을 갖는다(예를 들어, 프로세서(132)에 연결된 저장 유닛(133)에 상기 처리된 컨텐츠를 기록하도록 구성되어 있다).
모니터(118) 및 스피커는 HDMI 직렬 링크에 의해 비디오 프로세서(132)에 연결되어 있고, 모니터(116) 및 스피커(도시 생략)는 또하나의 HDMI 직렬 링크에 의해 수신기(128)에 연결되어 있다.
PDN(100)은 또한, 수신기(124)로부터 오디오 및 비디오 컨텐츠를 수신하고 이 오디오 및 비디오(또는 그의 처리된 버전)를 모니터(113), 모니터(113)에 연결된 스피커, 및 또한 선택적으로 다른 디스플레이 또는 재생 장치로 어써트하도록 연결 및 구성되어 있는, 퍼스널 컴퓨터("PC")를 포함한다. 모니터(113)(및 스피 커)는 DVI 링크, HDMI 링크, 또는 다른 링크에 의해 PC(130)에 연결될 수 있다.
PDN(100)의 구성요소는, 공지의 WiFi, 이더넷, HPNA, MOCA, USB, HomePlug 및 1334 링크 중 하나 이상에 의하는 등, 그의 특정의 구현에 적절한 임의의 방식으로 서로 연결된다.
PDN(100)이 본 발명의 전형적인 실시예들에 따라 구현되는 경우, 구성요소(120, 122, 124, 126, 128, 130, 132) 각각은 로크박스 회로 및 이하에서 기술되는 인그레스 회로 및 이그레스 회로 중 하나 또는 그 둘다를 구현하는 노드이다. 예를 들어, 퍼스널 컴퓨터(130)는 로크박스 칩을 포함할 수 있으며, 구성요소(120, 122, 124, 126) 각각은 로크박스 및 인그레스 회로를 포함하는 칩을 포함할 수 있고, 구성요소(128, 132) 각각은 로크박스 및 이그레스 회로를 포함하는 칩을 포함할 수 있으며, 구성요소(120, 122, 124, 126, 128, 130, 132) 각각의 로크박스 회로는 구성요소(120, 122, 124, 126, 128, 130, 132)의 각각의 다른 하나의 로크박스와 (PC(130) 상에서 실행 중인) 소프트웨어를 통해 통신하도록 연결 및 구성될 수 있다. 도 14가 PC(130)와 구성요소(120, 122, 124, 126, 128, 132) 각각 사이에서의 양방향 통신을 위한 링크를 나타내고 있지 않지만, PDN(100)이 본 발명의 전형적인 실시예에 따라 구현될 때 이러한 링크가 존재한다(예를 들어, 따라서 암호화된 메시지들이, PC(130) 내의 소프트웨어를 거쳐, PC(130) 내의 PCI 버스를 따라 연결된 로크박스 칩과 구성요소(120, 122, 124, 126) 중 임의의 것 내의 로크박스 및 인그레스 회로를 포함하는 칩 사이에서, 또는 PC(130) 내의 PCI 버스를 따라 연결된 로크박스 칩과 구성요소(128 또는 130) 내의 로크박스 및 이그레스 회로를 포함하는 칩 사이에서 교환될 수 있다).
PDN(100)이 본 발명의 실시예에 따라 구현되고 구성요소(128, 130, 132) 각각이 로크박스 회로 및 이그레스 회로를 포함하는 노드인 예를 생각해보자. 이 예에서, 구성요소(128, 130, 132) 각각 내의 이그레스 회로는 (필요한 키 데이터를 획득했다고 하면) PDN(100)의 다른 구성요소로부터의 제어된 컨텐츠(예를 들어, PDN(100)의 다른 구성요소로부터 수신된 전사된 컨텐츠 또는 PDN(100)에 들어올 때 이미 PDN 암호화 포맷으로 되어 있는 제어된 컨텐츠)를 복호화하여, 복호화된 컨텐츠를 발생하는 동작을 한다. 양호하게는, 복호화는, 평문 형태의 컨텐츠나 이 컨텐츠의 임의의 버전에 대해 허가된 동작을 수행하기 위해 이그레스 회로에 의해 사용되는 임의의 비밀 어느 것도 PDN(100)의 임의의 구성요소 상에서 실행 중인 소프트웨어에 의해 액세스가능하지 않도록 또한 이 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 PDN(100) 내부에서 평문으로 결코 존재하지 않도록, 달성된다. 이 예에서, 구성요소(128, 130, 132) 각각 내의 이그레스 회로는 또한 복호화된 컨텐츠(또는 그의 처리된 버전)를 PDN(100) 외부에 있는 개체(각각, 구성요소(116, 113 또는 118))로 어써트하는 동작을 한다. 이 예에 대한 변형예에서, 구성요소(128, 130, 132) 각각 내의 이그레스 회로는, 어떤 목적을 위해서는 PDN(100) 내부에 있는(예를 들어, PDN 내부에 있는 서브시스템을 포함함), 그렇지만 다른 목적을 위해서는 PDN(100) 외부에 있는(예를 들어, PDN 내부에 있는 서브시스템을 포함함) 개체(예를 들어, 구성요소(116, 113 또는 118)에 대한 변형예)로 복호화된 컨텐츠(또는 그의 처리된 버전)를 어써트하는 동작을 한다. 일반적으로, 본 발명에 따라 PDN의 이그레스 회로에서 발생되는 복호화된 컨텐츠(또는 이러한 복호화된 컨텐츠의 처리된 버전)는, 어떤 경우에는 PDN 내부에 디스플레이되고(또는 다른 방식으로 "소비"되고), 다른 경우에는 PDN 외부에서 소비된다.
물론, 도 14의 PDN(100)(예를 들어, PDN(100)보다 더 간단하거나 더 복잡한 PDN) 이외의 많은 유형의 개인 디지털 네트워크가 본 발명을 구현할 수 있다. 예를 들어, 한 부류의 실시예에서, 본 발명은 개방형 아키텍처를 가지며 또 CPU(소프트웨어로 프로그램됨) 및 (예를 들어, 고선명 DVD 또는 다른 디스크로부터 컨텐츠를 판독함으로써) 비디오 및 오디오 컨텐츠를 수신하고 그 컨텐츠의 비디오 부분을 디스플레이하며 또 그 컨텐츠의 오디오 부분의 재생을 달성하도록 구성된 적어도 하나의 주변 장치를 포함하는 컴퓨팅 시스템이다. 또한, 상기한 바와 같이, 도 4 또는 도 5의 PC(1)도 본 발명을 구현할 수 있다.
전형적인 실시예에서, 본 발명의 PDN은 장치 또는 컴포넌트(본 명세서에서, 때때로 PDN의 "노드" 또는 "멤버"라고 함)를 포함하며, 각각의 장치 또는 컴포넌트는 PDN의 적어도 하나의 다른 노드의 로크박스 회로와 양방향 통신을 하도록 연결 및 구성되어 있는 로크박스 회로를 포함한다. 각각의 노드는 선택적으로 인그레스 및/또는 이그레스 하드웨어(이하에 기술됨)는 물론, 로크박스 하드웨어를 포함할 수 있다. 각각의 노드는, 그 자체로서, 본 발명의 다른 측면이다.
인그레스 회로(인그레스 회로는, 본 명세서에서, 때때로 인그레스 유닛이라고 함) 및 로크박스 회로를 포함하는 노드는 "인그레스 노드"라고 한다. 이그레스 회로(이그레스 회로는, 본 명세서에서, 때때로 이그레스 유닛이라고 함) 및 로크박 스 회로를 포함하는 노드는 "이그레스 노드"라고 한다. 인그레스 노드 및 이그레스 노드 각각은 사용 제한 세트의 적용을 받는 컨텐츠(예를 들어, 디지털 비디오 데이터 및 디지털 오디오 데이터 중 하나 또는 그 둘다)를 수신할 수 있고 또 사용 제한 세트에 의해 금지되지 않은 적어도 하나의 방식으로(선택적으로 다수의 또는 모든 방식으로) 그 컨텐츠를 사용하도록 구성되어 있다.
본 발명의 PDN의 어떤 실시예들에서, 각각의 노드 내의 로크박스, 각각의 인그레스 노 내의 인그레스 회로, 각각의 이그레스 노드 내의 이그레스 회로는 하드웨어로 구현된다. 본 발명의 PDN의 한 부류의 실시예들에서, 각각의 로크박스, 각각의 인그레스 노드 내의 인그레스 회로, 및 각각의 이그레스 노드 내의 이그레스 회로는 집적 회로 또는 멀티-칩 셋(펌웨어로 프로그램된 마이크로프로세서를 포함할 수 있음)으로 구현되지만, 소프트웨어로 프로그램된 CPU를 포함하지 않는다. 다른 실시예들에서, 본 발명을 구현하는 PDN의 각각의 노드는 또한 선택적으로, (비암호화된 형태로 되어 있는) 비밀이, 임의의 비암호화된 비밀을 노드 내의 소프트웨어 또는 펌웨어에 노출시키지 않고, 노드 내부에서 하드웨어적으로만 처리될 수 있도록 각각의 노드가 구성되어야 한다는 제한을 받는, 펌웨어 또는 소프트웨어로 프로그램된 적어도 하나의 구성요소를 포함한다. 다른 실시예들에서, PDN의 노드 내부에 안전하게 내장된 프로세서 상에서 실행되는 펌웨어는 평문 컨텐츠 및/또는 (인그레스 유닛에서의) 컨텐츠의 재암호화 또는 (이그레스 유닛에서의) 재암호화된 컨텐츠의 복호화에 사용되는 비밀에 액세스할 수 있지만, 평문 컨텐츠나 임의의 이러한 비밀 어느 것도 그에의 불법 액세스를 획득하려고 시도하는 사용자 또는 개체에 의해 액세스될 수 있는(또는 적어도 즉시 액세스될 수 있는) PDN의 임의의 노드, 링크 또는 인터페이스에 존재하지 않는다. 암호화된 비밀(예를 들어, 본 발명에 따라 노드에서 하드웨어적으로 암호화된 비밀)은 노드 내부의 소프트웨어 또는 펌웨어에 또는 노드 외부의 개체들에 (암호화된 형태로) 노출될 수 있다. 각각의 인그레스 노드 내부의 인그레스 회로, 및 각각의 이그레스 노드 내부의 이그레스 회로는 보안 하드웨어를 포함하며, 또한 선택적으로 펌웨어 또는 소프트웨어로 프로그램된 적어도 하나의 구성요소를 포함하지만, 각각의 노드 내의 인그레스 회로 및/또는 이그레스 회로는, 노드 외부의 임의의 개체에 또는 노드 내의 소프트웨어 또는 펌웨어에 임의의 이러한 비밀을 (비암호화된 형태로) 노출시키지 않고, 하드웨어적으로만 비밀을 처리하도록 구성되어 있다.
노드 내부의 로크박스는 일반적으로 보안 하드웨어를 포함하며(그렇지만, 꼭 포함할 필요는 없음), 펌웨어 또는 소프트웨어로 프로그램된 적어도 하나의 구성요소를 포함할 수 있지만 꼭 그럴 필요는 없다. 어떤 실시예에서, 로크박스(예를 들어, 구성요소(120, 122, 124, 126, 128, 130,132) 중 임의의 것 내의 로크박스)는 전적으로 하드웨어(또는 펌웨어로 프로그램된 마이크로프로세서를 포함하는 하드웨어)로 구성되어 있다. 다른 실시예들에서, 로크박스(예를 들어, 구성요소(120, 122, 124, 126, 128, 130,132) 중 임의의 것 내의 로크박스)는 펌웨어 또는 소프트웨어로 프로그램된 프로세서 또는 컴퓨팅 시스템이거나 이를 포함한다(예를 들어, 도 14의 어떤 구현예의 PC(130)의 CPU는 구성요소(120, 122, 124, 126, 128, 130,132) 중 하나에 대해 로크박스로 기능하는 소프트웨어로 프로그램될 수 있으 며, 따라서 PC(130) 및 구성요소(120, 122, 124, 126, 128, 130,132) 중 관련된 것은 함께 PDN의 노드로서 기능한다). 로크박스는 키 라이브러리를 관리하거나 로크박스 및 또하나의 로크박스로 또는 이들로부터의 메시지를 이동시키도록 소프트웨어로 프로그램될 수 있다. 어떤 실시예들에서, PC(예를 들어, 도 14의 어떤 구현예의 PC(130)) 자체는, 예를 들어, PC가 전적으로 하드웨어로 이루어진 로크박스를 포함하는 경우에 또한 PC의 CPU가 로크박스로서 기능하는 소프트웨어로 프로그램되는 경우에, PDN의 노드로서 기능한다. 그렇지만, 보다 일반적으로, 각각의 노드(및 노드 내의 각각의 로크박스)는 (노드를 포함하는 PDN에서의 컨텐츠 보호에 사용하기 위한) 비밀을, 이 비밀이 노드 외부의 임의의 개체에(또는 노드 내부의 소프트웨어 또는 펌웨어에) 노출되지 않도록 하는 방식으로, 처리하도록 구성되어 있다. 로크박스가 소프트웨어로 구현되는 경우, 로크박스 소프트웨어는 반드시 엄격한 방식으로(적어도 소프트웨어가 암호화된 비밀에 액세스할 때, 그 소프트웨어가 비밀을 암호화할 수 없도록 또한 소프트웨어가 로크박스를 포함하는 PDN에 의해 보호될 컨텐츠에 대해 임의의 사용 제한 세트를 실질적으로 변경할 수 없도록) 제한되어야 한다. 한 부류의 실시예에서, 노드(및/또는 노드 내의 로크박스)는 비밀들 중 어느 것도 노드 외부의 임의의 개체에(또는, 노드 내에 소프트웨어 또는 펌웨어가 존재하는 경우, 노드 내의 소프트웨어 또는 펌웨어에) (비암호화된 형태로) 노출되지 않도록 하는 방식으로 보안 하드웨어에서 (노드를 포함하는 PDN에서의 컨텐츠 보호에 사용하기 위한) 비밀의 비암호화된 버전을 처리하도록 구성되어 있다.
본 발명의 한 부류의 실시예에 대해 도 15를 참조하여 기술한다. 이들 실시 예에서, 본 발명은 개방형 아키텍처를 가지며 또 버스(예를 들어, PCI 버스)를 따라 연결된 장치들을 포함하는 컴퓨팅 시스템이다. 이 시스템은 (예를 들어, 고선명 DVD 또는 다른 디스크로부터 컨텐츠를 판독하거나 방송된 컨텐츠 또는 케이블을 통해 전송된 컨텐츠를 수신함으로써) 암호화된 비디오 및 오디오 컨텐츠를 수신하도록 구성되어 있으며, 그 컨텐츠의 비디오 부분을 디스플레이하고 오디오 부분을 재생할 수 있다. 도 15는 PCI(peripheral communications interconnect) 버스, CPU(147), PCI 버스에 연결된 I/O 컨트롤러(예를 들어, "사우스브리지" 칩 또는 "I/O 컨트롤러 허브")(145), 및 컨트롤러(145)와 CPU(147) 사이에 연결되어 있는 그래픽 및 메모리 컨트롤러(예를 들어, "노쓰브리지" 칩셋 또는 "그래픽 및 메모리 컨트롤러 허브")를 포함하는 이러한 시스템의 일부분의 블록도이다. 메모리(149) 및 그래픽 프로세싱 유닛("GPU")(150)은 컨트롤러(146)에 연결되어 있다.
GPU(150)는, 일반적으로 모니터(HDMI 수신기를 포함하는 HDTV 모니터) 및 모니터에 의해 구동되는 스피커를 포함하는, 외부 오디오 비디오 시스템에 연결되어 있다.
3개의 부가적인 칩(또는 칩셋), 즉 튜너 및 복조 회로(143) 및 회로(144)(인그레스 및 로크박스 회로를 포함함)를 포함하는 칩(또는 칩셋)(140), 로크박스 회로(151) 및 저장 회로(152)를 포함하는 칩(또는 칩셋)(142), 및 회로(154)(이그레스 및 로크박스 회로를 포함함) 및 디코더 회로(155)를 포함하는 칩(또는 칩셋)(148)은 PCI 버스를 따라 연결되어 있다. 간단함을 위해, 회로(140, 1424, 148)는 "칩"이라고 할 것이지만, 이들은 멀티-칩 셋 또는 단일 칩일 수 있다. 회 로(140, 142, 148) 중 임의의 것이 멀티-칩 셋으로 구현되는 경우, 이 칩셋은, 그 안의 평문 컨텐츠나 그 안의 비암호화된 비밀(예를 들어, 비암호화 키 데이터 및/또는 인증서) 어느 것도 칩셋의 개개의 칩 외부에 노출되지 않도록 또는 칩셋 외부의 임의의 개체에 의한 (비암호화된 형태로) 액세스에 대해 다른 방식으로 보호되도록, 구현되어야만 한다. 선택적으로, 외부 저장 유닛(153)은 저장 회로(152)에 연결되어 있다. 일반적으로, 칩(140, 142, 148)은 퍼스널 컴퓨터에 편리하게 삽입되도록 구성된 카드(예를 들어, "멀티미디어 그래픽 카드")로서 구현된다.
편의상, 로크박스 회로(151)는, 본 명세서에서, 때때로 "로크박스"(151)이라고 한다. 또한, 블록(144) 내부의 인그레스 회로는 때때로 인그레스 유닛이라고하며, 블록(154) 내의 이그레스 회로는 때때로 이그레스 유닛이라고 한다.
전형적인 구현예에서, 회로(143)는 방송 비디오를 수신 및 복조하고 또 디지털 비디오 및 오디오(수신된 컨텐츠를 나타냄)를 회로(144) 내부의 인그레스 유닛으로 어써트하도록 구성된다. 일반적으로, 인그레스 유닛으로 어써트된 디지털 컨텐츠는 암호화되고, 인그레스 유닛은 이를 복호화하고(평문 형태로 하고), 평문 컨텐츠가 인그레스 유닛 외부에 노출되기 이전에, 평문 컨텐츠를 암호화(즉, 인그레스 유닛에 의해 수신될 때 암호화되어 있었던 것으로 가정하면, 그를 재암호화)하도록 구성되어 있다. 재암호화된 컨텐츠는 이어서 PCI 버스를 통해 시스템의 다른 구성요소로 어써트된다. 이하에서 보다 상세히 설명하는 바와 같이, (회로(144) 내부의) 인그레스 유닛은 중간자 공격에 영향을 받지 않는 암호화 프로토콜을 사용하여 컨텐츠를 재암호화한다. 일반적인 구현에서, 유닛(144)은 종래의 256 비트 AES(Advanced Encryption Standard) 프로토콜의 공지의 카운터("CTR") 모드 변형을 사용하여 컨텐츠를 재암호화한다. 컨텐츠가 (회로(144)에서) 하드웨어적으로 평문 형태로 복호화되고 이어서 본 발명에 따라 컨텐츠가 복호화 하드웨어에서 빠져나오기 이전에 재암호화되기 때문에, 이 컨텐츠는 도 15 시스템 내에서 잘 보호된다.
본 발명의 모든 실시예들에서, (인그레스 유닛에서) 재암호화를 위해 사용되는 암호 프로토콜은 중간자 공격에 영향을 받아서는 안된다. 일반적인 실시예에서, 암호 프로토콜은 또한 재암호화된 컨텐츠가, 재암호화된 컨텐츠가 발생되는 인그레스 노드와 직접("실시간"으로) 통신하지 않는 이그레스 노드에 의해, 복호화될 수 있게 해주어야 한다. 이들 기준 중 첫번째 것 및 또한 양호하게는 두번째 것을 만족시키는 많은 서로 다른 암호 프로토콜 중 임의의 것이 특정의 응용에 따라 적합할 수 있다. 예를 들어, 적어도 어떤 응용에서 AES 프로토콜의 더 강력한 변형들 중 임의의 것에 따라 재암호화를 수행하도록 인그레스 노드가 구현될 수 있다. 256 비트 AES 프로토콜의 CTR 모드 변형은 많은 응용에서 적합할 수 있는데, 그 이유는 그것이 더 강력한 AES 변형들 중 하나이고, 집적 회로 내의 하드웨어(예를 들어, 파이프라인 회로)에서 구현하는 것이 용이하며, 또 검증가능한 보안 특성을 갖기 때문이다. AES 프로토콜의 다른 동작 모드 중에는, "출력 피드백"(OFB) 모드, "암호 피드백"(CFB) 모드, "전자 코드 북"(ECB) 모드, 및 "암호 블록 체인화"(CBC) 모드가 있으며, 이들 중 임의의 것은 또한 본 발명의 어떤 실시예들에서 인그레스 노드를 구현하는 데도 적합할 수 있다. 본 발명을 구현하는 노드는 다른 노드들과 공유될 컨텐츠를 재암호화하는 데 적어도 2개의 서로 다른 암호 프로토콜 중 임의 의 선택된 하나를 이용하도록 구현될 수 있다. 양호하게는, 노드는 노드들 간에 공유될 컨텐츠를 재암호화하고 각각의 노드를 구현하는 비용을 절감하며 또 상호 운영성을 최대화하는 데 단지 적은 수의 서로 다른 프로토콜을 이용하도록 구현된다.
(칩(140)을 거쳐) 도 15 시스템에 들어오는 컨텐츠는 사용 제한 세트(앞서 정의됨)와 함께 온다. 사용 제한 세트를 나타내는 프리미티브(primitive)(및 각각의 이러한 세트와 연관된 적어도 하나의 비밀)는 칩(142) 내부의 로크박스(151)에(또는 로크박스(151)와 연관된 저장 유닛(153)에) 영속적으로 사전 저장되어 있다. 일반적으로, 칩(140)이 컨텐츠를 수신, 복호화 및 재암호화를 시작하기 이전에, 로크박스(151)는 칩(140)이 이들 동작을 수행하도록 허가받았는지를 확인하고 그 동작을 수행하는 데 필요한 임의의 비밀(예를 들어, 컨텐츠 키)을 칩(140)에 제공한다. 로크박스(151)에 의해 사용되는 프리미티브 및 비밀은 로크박스(151) 내부의 비휘발성 메모리(또는 휘발성 메모리)에 또는 로크박스(151)로부터 원격지에 있지만 로크박스(151)에 의해서만 비암호화된 형태로 (예를 들어, 저장 회로(152)를 통해 보안 방식으로) 액세스될 수 있는 메모리(예를 들어, 저장 유닛(153))에 저장될 수 있다. 예를 들어, 위성 제공자는 프리미티브 및 비밀을 (로크박스(151)가 이들을 수신하도록 허가되어 있음을 확인한 후에) 로크박스(151)에 로드할 수 있고, 로크박스(151)는, 로크박스가 (일반적으로 보안 채널을 통해 회로(144 또는 154) 내부의 로크박스 회로와의 교환의 결과로서) 그렇게 하는 것이 적절한 것으로 판정할 때, 비밀들 중 관련 비밀을 컨텐츠 키로서 회로(144) 내부의 로크박스 회로에(및/ 또는 회로(154) 내부의 로크박스 회로에) 제공할 수 있다.
어떤 응용에서, 도 15 시스템으로부터 구성요소(152, 153)를 생략하고 그 대신에 로크박스(151)의 영속적인 저장 요구 모두를 만족시키기에 충분한 비휘발성 메모리를 로크박스(151) 내에 포함하는 것이 바람직할 수 있다. 다른 응용에서, 더 적은 비휘발성 메모리를 갖는(또는 비휘발성 메모리를 전혀 갖지 않는) 로크박스(151)를 구현하고 또한 저장 회로(152)(PCI 버스를 따라 연결되어 있음) 및 저장 회로(153)(회로(152)에 연결되어 있음)를 제공하여 로크박스(151)가 (회로(152)를 통해) 유닛(153)으로부터 데이터를 판독하고 그 데이터를 필요에 따라 보안 방식으로 (로크박스(151) 내부의 메모리에) 캐싱할 수 있게 해주는 것이 양호할 수 있다. 예를 들어, (회로(152)를 통해 로크박스(151)에 의해 액세스될 수 있도록) 유닛(153)에 저장된 모든 데이터는 암호화된 데이터일 수 있다. 이 암호화된 데이터는 로크박스(151) 내부에 캐싱되거나 그에 의해 사용되기 이전에 (로크박스(151) 내부에서) 복호화될 수 있다. 이러한 데이터는, 로크박스(151)가 유닛(153)으로부터 데이터에 액세스하기 위해 판독 동작을 개시할 때, 회로(152)를 거쳐 유닛(153)으로부터 로크박스(151)로 암호화된 형태로 전송되어진다.
저장 유닛(153)은 일반적으로 비휘발성 저장 유닛이지만, (어떤 실시예들에서) 휘발성 메모리일 수 있다. 어떤 실시예들에서, 로크박스(151)는 휘발성 메모리는 포함하지만 비휘발성 메모리는 포함하지 않는다.
일반적으로, 전원을 켤 때, 표준의 암호 수단을 사용하여, 회로(144) 내부의 로크박스 회로는 로크박스(151)와의 보안 채널을 설정하고, 회로(154) 내부의 로크 박스 회로는 로크박스(151)와의 보안 채널을 설정하며, 따라서 각각의 보안 채널을 설정하는 프로세스(및 그 채널이 설정된 경우 그 보안 채널을 사용하는 동작)는 공격(양호하게는, 중간자 공격, 무차별 공격, 차분 장애 분석 공격(differential fault analysis attack) 및 재생 공격(이에 한정되지 않음)을 비롯한 모든 공격)에 취약하다. 이 프로세스가 중간자 공격에 취약한 경우, (보안 채널을 설정하기 이전의 인증 교환 동안에) 회로(144)(또는 154)와 로크박스(151) 사이에 전송되는 메시지에 액세스하는 장치("사람")은 메시지를 판독하지도 의도된 수신자에게는 이해하기 쉬운 메시지의 수정된 버전을 발생하지도 못할 수 있다. 재생 공격은 표준의 암호 수단에 의해, 예를 들어 장치들 간에 보안 채널을 설정하기 위해 단지 한번만(한 세션 동안) 사용되는 랜덤 세션 키를 사용하도록 장치(회로(144) 및 로크박스(151), 또는 회로(154) 및 로크박스(151))를 구성함으로써 용이하게 방지될 수 있다. 중간자는 서비스를 거부(즉, 보안 채널의 설정을 방해)할 수 있지만, 이것이 중간자가 성공적으로 실시할 수 있는 유일한 공격이다.
회로(144)가 컨텐츠를 수신 및 처리할 준비가 된 경우, 회로(144) 내부의 로크박스 회로는 회로(144)가 컨텐츠를 복호화 및 재암호화하도록 허가되어 있는지 여부를 판정하기 위해 (이하에 기술하는 방식으로 설정된 보안 채널을 통해) 로크박스(151)에 요청을 전송할 수 있다. 로크박스(151)가 이 판정을 할 수 있는데, 그 이유는 회로(144)로부터의 요청이 컨텐츠의 사용 용도를 지정하기 때문이고 또 컨텐츠의 어느 용도가 사용 제한 세트에 의해 금지되어 있는지를 로크박스(151)가 알고 있고 또 로크박스(151)가 회로(144)의 정체 및 기능을 알고 있기 때문이며(회 로(144)가 로크박스(151)와 회로(144) 간에 보안 링크를 설정하는 교환 동안에 그의 정체를 로크박스(151)에 제공하기 때문이며) 또한 로크박스(151)가 요청에서의 관련 데이터를 사용 제한 세트에 의해 금지된 용도를 나타내는 데이터와 비교하도록 구성되어 있기 때문이다. 로크박스(151)가 회로(144)가 요청된 동작을 수행하도록(예를 들어, 컨텐츠를 복호화 및 재암호화하도록) 허가되어 있는 것으로 판정하는 경우, 로크박스(151)는 회로(144) 내부의 인그레스 회로가 이들 동작을 수행하기 위해 필요로 하는 비밀(즉, 컨텐츠 키)을 회로(144)에 제공한다. 회로(144) 내부의 인그레스 회로는 키를 영속적으로 저장하지 않으며(그렇게 하기 위한 메모리를 갖고 있지 않음), 비밀이 인그레스 회로로 하여금 수행할 수 있게 해주는 동작만을 컨텐트에 대해 수행할 수 있고, 키가 유효한 제한된 시간 동안에만(즉, 세션 동안에만) 이들 동작을 수행할 수 있다.
회로(144)(또는 이하에 설명하는 바와 같이, 회로(154))가 로크박스(151)로부터 컨텐츠 키를 수신한 경우, 일반적으로 회로(144)(또는 154)가 그 키를 사용하여 무엇을 할 수 있는지와 연관된 제한이 있다. 유닛(144, 154) 각각은, 각각이 이러한 제한에 부합하도록 구성된다. 예를 들어, 회로(154)가 HDCP 보안이 침해된 것으로 판정하는 경우(즉, 회로(154)가 HDMI 수신기가 허가되지 않은 것으로 판정하는 경우) HDCP-암호화 및 HDMI 전송 동작이 중단되어야만 하는 것으로 가정하면, 키는 회로(154)가 컨텐츠를 복호화하고, 이 복호화된(평문) 컨텐츠를 HDCP 프로토콜을 사용하여 재암호화하며, HDCP-암호화된 컨텐츠가 HDMI 링크를 통해 전송되도록 허가할 수 있다. 유닛(144, 154) 각각은 엄밀히 허가된 방식으로만 동작가능하 게 구성된다.
컨텐츠가 도 15 시스템에서 빠져나오기 위해, 컨텐츠는 칩(148) 내부에서의 복호화를 위해 (재암호화된 형태로) 회로(154) 내부의 이그레스 회로에 의해 PCI 버스를 통해 칩(148)으로 어써트되어야만 한다. 칩(148)은 또한 일반적으로 평문 컨텐츠를 칩(148) 외부에 노출시키지 않고 출력하기 위해 (예를 들어, HDCP 프로토콜을 사용하여) 평문 컨텐츠를 재암호화한다(예를 들어, 컨텐츠는 칩(148)에서 빠져나오기 이전에 도 15 시스템으로부터의 출력을 위해 재암호화된다). 칩(148) 내부의 회로(예를 들어, 디코더(155))는 또한 복호화된(평문) 컨텐츠에 대해 임의의 필요한 압축 해제를 수행하고, 또한 선택적으로 복호화되고 압축 해제된 평문 컨텐츠에 대해 부가적인 처리(예를 들어, 출력을 위한 포맷화 및/또는 재암호화)를 수행한다. 예를 들어, 어떤 구현에서, 칩(148)은 평문 컨텐츠를, 그래픽 프로세싱 유닛(150)으로 출력하고 또 유닛(150)으로부터 HDMI(또는 DVI) 링크를 통해 외부 장치 또는 시스템으로 출력하기 위해, (HDMI(또는 DVI) 링크를 통해 전송될 데이터를 암호화하기 위해 종래에 이용되는 HDCP 프로토콜을 사용하여 컨텐츠를 재암호화하는 등에 의해) HDMI(또는 DVI) 포맷으로 바꾼다. 이하에서 더 상세히 설명하는 바와 같이, 칩(148)은 허가된 방식으로만 또 허가된 포맷으로만 컨텐츠를 (GPU(150)로) 출력할 수 있다. 예를 들어, 도 15 시스템이 컨텐츠를 HDMI 링크를 통해 HDCP-암호화된 포맷으로 출력하도록 허가되어 있는 경우, 칩(148)은 HDCP 프로토콜을 사용하여 컨텐츠를 재암호화하고 이를 GPU(150)로부터 HDMI 링크를 거쳐 전송하기 위해 HDCP-암호화된 HDMI 포맷으로 GPU(150)로 어써트하며, 따라서 (예를 들어, 고선명 모니터 내의) 라이센싱된 HDMI 수신기만이 HDCP-암호화된 컨텐츠를 복호화 및 디스플레이할 수 있다. 다른 예로서, 도 15 시스템이 평문 컨텐츠의 아날로그 버전을 출력하도록 허가되어 있고 칩(148)이 DAC(디지털-아날로그 변환 회로)를 포함하는 경우, 칩(148)은 DAC를 사용하여 평문 컨텐츠를 나타내는 아날로그 신호를 발생하고 이 아날로그 신호를 GPU(150)로 또는 도 15 시스템 외부에 있는 장치나 시스템(예를 들어, 아날로그 디스플레이 장치)에 의해 액세스가능한 커넥터(도시 생략)로 출력할 수 있다. 도 15 시스템에 의해 제공되는 보호를 우회하기위해, 칩(140, 148) 중 하나 이상에 침투하여 각각의 개방된 하드웨어 유닛 내부의 회로를 변경하는(또는 본질적으로 변경하는) 아주 어려운(일반적으로 실행불가능한) 동작을 실행할 필요가 있다.
회로(154) 내의 이그레스 회로가 (PCI 버스를 따라 연결된 장치로부터) 재암호화된 컨텐츠를 수신 및 처리할 준비가 된 경우, 회로(154)는 회로(154)가 컨텐츠를 복호화하고 추가적으로 처리하도록 허가되어 있는지를 판정하기 위해 (이하에 기술하는 방식으로 설정되는 보안 채널을 통해) 로크박스(151)로 요청을 전송할 수 있다. 로크박스(151)는 이 판정을 행할 수 있는데, 그 이유는 회로(154)로부터의 요청이 컨텐츠에 대해 행해질 용도를 지정하기 때문이며, 로크박스(151)가 컨텐츠의 어느 용도가 사용 제한 세트에 의해 금지되어 있는지를 알고 있고 로크박스(151)가 회로(154)의 정체 및 기능을 알고 있기 때문이고(회로(154)가 로크박스(151)와 회로(154) 내부의 로크박스 사이에 보안 링크를 설정한 교환 동안에 로크박스(151)에 그의 정체를 증명하였기 때문이고), 로크박스(151)가 요청에서의 관 련 데이터를 사용 제한 세트에 의해 금지된 용도를 나타내는 데이터와 비교하도록 구성되어 있기 때문이다. 회로(154)가 요청된 동작을 수행하도록(예를 들어, 재암호화된 컨텐츠를 복호화 및 재암호화하도록) 허가되어 있는 것으로 로크박스(151)가 판정하는 경우, 로크박스(151)는 회로(154)가 이들 동작을 수행하기 위해 필요로 하는 비밀(즉, 컨텐츠 키)을 회로(154)에 제공한다. 회로(154) 내부의 이그레스 회로는 키를 영속적으로 저장하지 않으며(그렇게 하기 위한 메모리를 가지고 있지 않음), 비밀이 이그레스 회로로 하여금 수행할 수 있게 해주는 동작만을 컨텐츠에 대해 수행할 수 있고, 키가 유효한 제한된 시간에만(즉, 세션 동안에만) 이들 동작을 수행할 수 있다.
로크박스(151)와 회로(144)(또는 회로(154)) 내부의 로크박스 회로 간의 양방향 통신을 위한 보안 채널이, 도 18 및 도 19를 참조하여 이하에 기술되는 도 18의 로크박스들 간에 보안 채널이 설정되는 방식을 비롯하여, 다양한 서로 다른 방식 중 임의의 방식으로 설정될 수 있다.
도 15 실시예에 대한 변형예에서, 칩(또는 칩셋)(142)이 생략되어 있다. 이러한 대체 실시예에서, 칩(140, 148) 각각(이들 각각은 칩셋일 수 있음)은, 필요에 따라, 예를 들어, 다른 로크박스 회로로부터 필요한 키를 획득하기 위해, 그 자신의 로크박스 회로를 이용하게 된다.
일반적으로, 2가지 서로 다른 종류의 인증 프로토콜 중 어느 하나가 본 발명의 PDN의 장치들(예를 들어, 로크박스들) 간의 통신, 명시적인(예를 들어, 2 단계) 인증, 및 암시적(예를 들어, 1 단계) 인증을 위해 이용될 수 있다. 명시적인 인증 은, 장치가 서로 전혀 모를 수 있는 경우마다, 사용되어야만 하고, 일반적으로 공개키 암호 및 전체 인증 교환(인증서를 포함함)을 이용한다. 암시적인 인증은, 장치가 반드시 서로를 알고 있어야만 할 때마다(예를 들어, 장치를 제조하는 프로세스 동안에 영구적으로 설정되어 있는 기본적인 관계로 인해), 사용될 수 있다. 명시적인 인증 프로토콜은 기본적으로 블랙 박스들 간에 있게 되며, 따라서 이들은 ((단일 칩 내에 구현된 노드 및 또한 아마도 단일의 폐쇄형 시스템 내부에 구현된 노드를 제외한) PDN의 모든 노드 및 잠재적으로 PDN의 노드가 될 수 있는 모든 장치가, 이들이 서로 통신할 때, 동일한 (표준의) 명시적인 인증 프로토콜을 이용하도록 구성되어 있다는 의미에서) 잘 표준화될 필요가 있다. 암시적인 인증 프로토콜은 일반적으로 칩 내부에서(또는 아마도 PDN의 단일의 폐쇄형 서브시스템 내부의 장치들 간에) 사용되며, 비표준화되고 애플리케이션 의존적일 수 있다. 예를 들어, 로크박스 및 인그레스 회로가 동일 칩 내부에 있는 경우, 이들 간의 통신은 어떤 특수 프로토콜도 전혀 필요로 하지 않는다. 또는, 2개의 장치가 동일 제조업자에 의해 제작된 서로 다른 칩에 구현되어 있고 함께 동작하도록 구체적으로 설계되어 있는 경우, 전용 프로토콜이 비밀을 충분히 잘 숨기는 한, 이들 간의 통신을 위해 그 전용 프로토콜이 사용될 수 있다.
한 부류의 실시예들에서, 본 발명의 PDN은 PDN 내부의 컨텐츠가, 그 컨텐츠가 PDN 외부에서 허가받지 않은 방식으로 사용될 수 있는 형태로, PDN으로부터 제거되는 것을 방지하도록 또한 컨텐츠가 허가받지 않은 방식으로 PDN 내부에서 사용되는 것을 방지하도록 구성되어 있다. 이러한 PDN에 들어오는 컨텐츠는, 이 컨텐 츠가 이러한 전사 동작의 재암호화 단계에 사용되는 동일한 프로토콜에 따라 이미 암호화되어 있지 않고 또 평문 컨텐츠나 이 복호화 및 재암호화를 수행하기 위해 PDN에 의해 사용되는 임의의 비암호화된 비밀 어느 것도 PDN의 집적 회로의 외부에서 액세스될 수 없지 않는 한, 인그레스 하드웨어(일반적으로, 집적 회로로 구현되어 있음)에 의해 즉각 전사(복호화 및 재암호화)된다. 인그레스 회로로부터 출력되는 재암호화 컨텐츠는 PDN 내부의 장치들 간에 자유롭게 (심지어 비보안 방식으로) 전송될 수 있고, PDN 내부의 소프트웨어에 의해 또는 심지어 PDN 외부의 하드웨어 또는 소프트웨어에 의해 액세스될 수 있으며, PDN의 장치들에(예를 들어, PDN의 디스크 드라이브 내의 디스크 상에) 비보안 방식으로 저장될 수 있다. PDN 내부의 이그레스 회로만이 재암호화된 컨텐츠를 복호화하여 컨텐츠의 평문 버전을 발생하는 데 필요한 비밀(들)을 갖게 된다. 이그레스 회로는, 이그레스 회로가 그의 정체를 로크박스에 제공하고 이그레스 회로가 컨텐츠에 대해 지정된 동작을 수행하도록 허가되어 있음을 로크박스에게 증명한 이후에만 또 그 비밀(들)을 로크박스로부터 이그레스 회로로 전송하기 위해 로크박스와 이그레스 회로 간에 보안 채널이 설정된 후에, PDN 내부의 로크박스로부터만 이들 비밀(들)을 획득할 수 있다. 따라서, 재암호화된 컨텐츠가 PDN으로부터 제거되더라도(예를 들어, 재암호화된 데이터를 포함하는 디스크가 PDN으로부터 제거되는 경우), 재암호화된 컨텐츠는 (실무적 문제로서) 허가받지 않은 방식으로 복호화 또는 사용될 수 없다. 재암호화된 컨텐츠는 PDN에 고유한 형태로 암호화되며, 따라서 PDN은 재암호화된 컨텐츠를 보호하려고 신경쓸 필요가 없다. 이와 반대로, PDN의 각각의 구성요소 내부에서 컨 텐츠를 안전하게 로크하려고 시도하고 또 PDN의 구성요소들 간의 모든 링크를 보호하려고 시도함으로써 PDN 내부에서 컨텐츠를 보호하는 것이 기술 분야에 제안되었다.
본 발명의 개인 디지털 네트워크(PDN)의 한 부류의 실시예들에 대해 도 16 및 도 17을 참조하여 기술할 것이다. 도 16의 PDN(168)은 본 발명을 구현하며, 도시되어 있는 바와 같이 연결되어 있는, 인그레스 노드(160)(집적 회로로 구현되며, 로크박스 및 인그레스 회로를 포함함), 노드(161)(또하나의 집적 회로로 구현되며, 로크박스 회로를 포함함), 이그레스(162)(제3 집적 회로로 구현되며, 로크박스 및 이그레스 회로를 포함함), 비디오 프로세서(175), 저장 장치 컨트롤러(176), 및 비디오 프로세서(177)를 포함한다. 저장 유닛(178)은 컨트롤러(176)에 연결되어 그에 의해 제어되고, PDN(168) 외부에 있다. 컨텐츠 제공자(163) 및 노드(161) 내부의 로크박스 회로는 서로 간의 보안 통신 채널(164)을 설정하고 이 보안 채널을 통해 서로 통신하도록 구성되어 있다. 컨텐츠 제공자(163)는 도 17에 도시되어 있지 않은데, 그 이유는 도 17이 컨텐츠 제공자(163)가 저작권 데이터(190) 및 키 데이터(191)를 노드(161)에 제공하였고, 데이터(190, 191)가 노드(161) 내부의 로크박스 회로 내의 비휘발성 메모리에 저장되어 있으며, 또 컨텐츠 제공자(163)와 노드(161) 간의 통신이 종료된 것으로 가정하기 때문이다.
본 발명에 따라 복호화된(평문) 컨텐츠를 암호화하기 위해 인그레스 회로에 의해(예를 들어, 도 15의 회로(144) 또는 도 16의 노드(160) 내부에서) 사용되고 또 재암호화된 컨텐츠를 복호화하기 위해 이그레스 회로에 의해(예를 들어, 도 15 의 회로(154) 또는 도 16의 노드(162) 내부에서) 사용되는 재암호화 프로토콜은 중간자 공격에 영향을 받지 않아야 한다. 일반적으로, 재암호화 프로토콜은, 암호화된 데이터의 송신기 및 수신기(데이터를 수신하여 복호화하는 장치) 둘다가 송신기와 수신기 간의 인증 교환, 세션 동안에 사용될 키 데이터의 결정(예를 들어, 송신기 및 수신기에서 키 데이터의 발생 또는 키 제공자로부터 키 데이터를 필요로 하는 각각의 장치로의 키 데이터의 제공), 및 암호화된 데이터의 수신기로의 전송을 포함하는 세션에서 서로 직접 통신할 것을 요구하는, 링크 보호 프로토콜(예를 들어, HDCP 프로토콜)이 아니다. 오히려, 재암호화 프로토콜은 일반적으로, 키 제공자, 전사 회로 및 컨텐츠 제공자가 서로 직접(예를 들어, 단일의 세션 동안에 "실시간"으로) 통신할 것을 요구하지 않고, 컨텐츠 전사가 시작될 때 전사 회로가 재암호화를 수행하는 데 필요로 하는 키 데이터를 획득하고 있을 것만을 요구하는 유형의 프로토콜(예를 들어, CTR 모드에서의 256 비트 AES 프로토콜)이다. 본 발명의 PDN의 양호한 실시예들에서, 서로 다른 노드들의 로크박스 간에 보안 링크를 설정하는 데 필요한 인증서가 로크박스에 사전 저장되어 있다. 다른 대안으로서, 자체 인증 유형의 비대칭 암호화가 로크박스들 간에 보안 링크를 설정하는 데 사용되는 경우, 이 보안 링크를 설정하는 데 사용되는 인증서는 링크-설정 교환 동안에 로크박스에 의해 수행되는 수학적 계산에 있어서 암시적이며, 따라서 이러한 교환에서 사용하기 위해 로크박스에 인증서가 사전 저장될 필요가 없다. 보안 링크가 설정된 경우, 하나의 로크박스는 보안 링크를 거쳐 다른 로크박스로 컨텐츠를 전송한다. 컨텐츠 키는 인그레스 회로에 컨텐츠를 수신, 복호화, 및 재암호화하기 시 작하라는 지시(또는 이그레스 회로에 재암호화된 컨텐츠를 수신 및 복호화하라는 지시)로서 또한 허가된 암호 동작을 수행하기 위해 인그레스(또는 이그레스) 회로에서 필요로 하는 키로서 기능할 수 있다. 각각의 인그레스 노드(정의에 의해 인그레스 회로를 포함함)는, 먼저 로크박스로부터 그렇게 하라는 지시를 (예를 들어, 키의 형태로) 받지 않고는 컨텐츠를 수신 및 전사하는 동작을 할 수 없도록, 구성되어 있다. 각각의 이그레스 노드(정의에 의해 이그레스 회로를 포함함)는, 먼저 로크박스로부터 그렇게 하라는 지시를 (예를 들어, 키의 형태로) 받지 않고는 재암호화된 컨텐츠를 수신 및 복호화하는 동작을 할 수 없도록, 구성되어 있다. 본 발명은 로크박스들 간의 또한 로크박스들과 컨텐츠 제공자 간의 신뢰 사슬(a chain of trust)에 의존하지만, (일반적인 구현에서) 로크박스 및 컨텐츠 제공자 전부가 서로 직접(예를 들어, 단일 세션 동안 "실시간"으로) 통신할 것을 요구하지는 않는다. 오히려, 본 발명의 PDN의 양호한 실시예들에서, 로크박스 및 컨텐츠 제공자는, 사실상, 서로 간접적으로(단일 세션 동안 실시간이 아님) 통신할 수 있다.
도 16의 예에서, 인증서 데이터(170)는 인그레스 노드(160)에 저장되고, 인증서 데이터(171)는 노드(161) 내부의 로크박스 회로에 저장되며, 인증서 데이터(172)는 노드(162) 내부의 로크박스 회로에 저장된다. 인증서 데이터(171)는 제조 시에 노드(161)에 저장될 수 있다. 인증서 데이터(170, 172)는 노드(160, 162)의 제조 시에 노드(160, 162)에 각각 저장되는데이터를 포함할 수 있으며, 또한 노드(160, 162)(또는 이들 각각을 포함하는 장치)가 PDN(168)의 구성요소로서 인식되어지는 (이하에 기술되는 유형의) "결혼" 동작 동안에 노드(161)에 의해 (제조 이 후에) 노드(160, 162) 내에 각각 저장되는 데이터(예를 들어, 이하에 기술하는 유형의 "결혼 증명서"를 결정하는 데이터)를 포함할 수 있다. 노드(161) 내부의 로크박스 회로가 인그레스 노드(160)로부터의 (노드(160) 내부의 인그레스 회로가 수신될 컨텐츠에 대해 전사 동작을 수행하는 데 필요한) 키에 대한 요청에 응답하기 이전에, 인그레스 노드(160) 및 노드(161)는 노드(161)로부터 인그레스 노드(160)로 키가 전송될 수 있는 (이들 간의) 보안 채널(165)을 설정하기 위해 사전 저장된 인증서 데이터(170, 171)를 사용하여 인증 교환을 수행했어야만 한다. 이어서, 인그레스 노드(160)가 컨텐츠를 수신, 복호화 및 재암호화하고자 할 때, 인그레스 노드(160) 내부의 로크박스 회로는 보안 채널을 통해 노드(161) 내부의 로크박스 회로로 키 요청을 어써트한다. 이 키 요청은 컨텐츠에 대해 수행될 동작을 나타낸다(예를 들어, 이 키 요청은 컨텐츠에 대해 수행될 동작들을 나타내는 저작권 데이터(180)를 포함한다). 로크박스는 이어서, 예를 들어, 노드(160)로부터의 저작권 데이터(180)(도 17의 노드(161) 내부에서 물음표와 함께 표시된 별표로 식별됨)을 인그레스 노드(160)가 수행하도록 허가된 동작을 나타내는 저작권 데이터(190)(노드(161)에 사전 저장됨)와 비교함으로써, 키 요청을 허용할지 여부를 결정한다. 노드(161)가 키 요청을 허용하기로 결정하는 경우, 노드(161)는 보안 채널(165)을 거쳐 인그레스 노드(160)로 키(예를 들어, 도 17의 키 데이터(181))를 전송한다. 노드(160) 내부의 인그레스 회로는 키를 저장할 비휘발성 메모리를 갖지 않으며, 따라서, 노드(160)의 전원이 켜지기 이전에(전원이 꺼진 후에) 인그레스 회로에 의해 사용될 수 없다.
본 발명의 PDN의 어떤 실시예의 동작을 설명하면, 외부 장치(예를 들어, 컨텐츠 제공자에 의해 동작되는 장치)는 (PDN의 어느 구성요소가 컨텐츠의 전사를 수행하도록 허가되는지를 설정하기 위해 PDN이 필요로 하는) 저작권 데이터 및 컨텐츠에 대해 전사를 수행하기 위해 PDN의 구성요소가 필요로 하는 키 데이터를 (PDN의) 로크박스로 전송한다. 로크박스는 저작권 데이터 및 키 데이터를 나중에 사용하기 위해 (예를 들어, 로크박스 내부의 비휘발성 메모리에) 영속적으로 저장한다. 예를 들어, 도 16에 나타낸 바와 같이, 컨텐츠 제공자(163)는 저작권 데이터(190) 및 키 데이터(191)를 노드(161) 내부의 로크박스 회로로 전송할 수 있으며, 이어서, 로크박스 회로는, 도 17에 나타낸 바와 같이, 데이터(190, 191)를 영속적으로 저장할 수 있다. 보다 구체적으로는, 도 16 및 도 17의 예에서, 컨텐츠 제공자(163) 및 노드(161) 내부의 로크박스 회로는 (신뢰 관계를 설정하기 위해 인증 교환을 수행하고 노드(161)가 키 데이터 및 저작권 데이터를 수신하도록 허가되게 설정한 후에) 보안 채널(164)을 설정한다. 이어서, 컨텐츠 제공자(163)는 채널(164)를 통해 저작권 데이터(190) 및 키 데이터(191)를 노드(161)로 전송한다. 노드(161) 내부의 로크박스 회로는 데이터(190, 191)를 노드(161) 내부의 비휘발성 메모리에 저장한다. 이어서, 인그레스 노드(160) 내부의 인그레스 회로가 외부 소스로부터(예를 들어, 컨텐츠 제공자(163) 또는 컨텐츠 제공자(163)에 의해 허가된 소스로부터) 컨텐츠를 수신할 준비가 된 경우에, 인그레스 노드(160)는 인그레스 노드(160)가 인그레스 노드(160)에 제공될 컨텐츠에 대해 수행하게 될 것으로 컨텐츠 제공자가 가정하고 있는 동작(들)을 나타내는 저작권 데이터(180)를 (컨텐츠 제 공자로부터) 획득한다. 인그레스 노드(160) 내부의 로크박스 회로는 이어서 보안 채널(165)(노드(160)의 전원을 켤 때 노드(160, 161) 간에 설정됨)을 통해 요청을 노드(161) 내부의 로크박스 회로로 어써트한다. 이 요청은 저작권 데이터(180)를 포함한다. 이 요청에 응답하여, 로크박스는 저작권 데이터(180)를 저작권 데이터(190)(노드(161)에 사전 저장됨)와 비교한다. 저작권 데이터(190)는 인그레스 노드(160)가 수행하도록 허가된(또는 허가되지 않은) 동작들을 나타낸다. 노드(161) 내의 로크박스 회로가 데이터(180)를 데이터(190)와 비교한 결과로서 키 요청을 허용하기로 결정하는 경우, 노드(161)는 보안 채널(165)을 통해 키 데이터(181)(컨텐츠 키를 나타냄)를 인그레스 노드(160)로 전송한다. 인그레스 노드(160)가 키 데이터(181)를 획득한 후에, 그의 인그레스 회로는 컨텐츠 제공자로부터 암호화된 컨텐츠를 수신하기 시작하고 이 암호화된 컨텐츠를 키 데이터(181)를 사용하여 전사하고, 이 전사된 컨텐츠(일반적으로 비디오 및 오디오 컨텐츠를 포함함)를 비디오 프로세서(175)로 어써트한다. 프로세서(175)는 전사된 컨텐츠를 비디오 프로세서(177)를 거쳐 이그레스 노드(162)로 어써트할 수 있거나, 전사된 컨텐츠를 저장 장치 컨트롤러(176)로 어써트할 수 있으며, 이는 전사된 컨텐츠가 (예를 들어, 후속하는 판독 및 프로세서(177)를 통한 이그레스 노드(162)로의 어써트를 위해) 저장 유닛(178)에 저장되게 해줄 수 있다. 노드(160) 내부의 인그레스 회로는 키 데이터(181)를 저장할 비휘발성 메모리를 갖지 않으며, 따라서 키 데이터(181)는 인그레스 노드(160)의 전원이 켜진 후에(전원이 꺼진 후에) 인그레스 회로에 의해 사용될 수 없다.
노드(162) 내부의 이그레스 회로가 컨텐츠를 도메인(168) 외부의 장치로 어써트할 준비가 되어 있을 때(또는 그 이전에), 이그레스 노드(162)는 이그레스 노드(162)에 의해 컨텐츠에 대해 수행될 동작(들)을 나타내는 저작권 데이터(195)를 획득하며, 노드(162) 내부의 로크박스 회로는 보안 채널(166)(이는 노드(162)의 전원을 켤 때 노드(162, 161) 사이에 설정됨)을 통해 노드(161) 내부의 로크박스 회로로 요청을 어써트한다. 이 요청은 저작권 데이터(195)를 포함한다. 이 요청에 응답하여, 로크박스는 저작권 데이터(195)를 저작권 데이터(190)(노드(161)에 사전 저장됨)와 비교한다. 저작권 데이터(190)는 이그레스 노드(162)가 수행하도록 허가된(또는 허가되지 않은) 동작들을 나타낸다. 노드(161) 내부의 로크박스 회로가 데이터(195)를 데이터(190)와 비교한 결과로서 키 요청을 허용하기로 결정한 경우, 노드(161)는 보안 채널(166)을 통해 키 데이터(194)(키를 나타냄)를 이그레스 노드(162)로 전송한다. 가능할 때마다(즉, 사용 권한에 의해 허용될 때마다), 저작권 데이터, 요청, 및 키 데이터는, (예를 들어, 노드(162)가 PDN에 가끔씩만 연결되는 모바일 MP3 또는 비디오 플레이어 또는 다른 장치이거나 그 내부에 구현되어 있는 경우) 사용자 경험을 용이하게 해주기 위해, 노드(162) 내의 이그레스 회로가 컨텐츠를 외부장치로 어써트할 준비가 되기 이전에 로크박스들 간에 교환될 수 있다. 이그레스 노드(162)가 키 데이터(194)를 획득한 후에, 이는 PDN(178)의 구성요소로부터(예를 들어, 프로세서(177)로부터) 제어된 컨텐츠를 수신하기 시작하고, 이 컨텐츠를 키 데이터(194)를 사용하여 복호화하며(또한 선택적으로 그에 대해 부가적인 프로세싱을 수행하며), 의도한 목적지로의 출력하기 위해 이 복호화된 컨텐 츠를 포맷(및/또는 재암호화)한다. 예를 들어, 노드(162) 내부의 이그레스 회로는 HDMI 링크를 거쳐 PDN(168) 외부의 모니터와 연관된 HDMI 수신기로 전송하기 위해 복호화된 비디오 및 오디오 컨텐츠를 포맷할 수 있다. 노드(162) 내부의 이그레스 회로는 키 데이터(194)를 저장할 비휘발성 메모리를 갖지 않으며, 따라서 키 데이터(194)는, 이그레스 노드(162)의 전원이 켜진 후에(전원이 꺼진 후에), 이그레스 회로에 의해 사용될 수 없다.
이상의 예로부터, 인그레스 회로(160)가 컨텐츠에 대해 지정된 동작들을 수행하도록 허가되어 있음을 인그레스 노드(160)가 노드(161)에 "증명"한 후에만(예를 들어, 인그레스 노드(160)가 허가된 장치임을 인그레스 노드(160)가 노드(161)에 증명한 후에만) 또한 노드(161)가 허가된 장치임을 (예를 들어, 보안 채널(165)을 설정하기 위한 인증 교환 동안에) 노드(161)가 인그레스 노드(160)에 증명한 후에만, 키 데이터(181)가 인그레스 노드(160)에 제공된다는 것을 잘 알 것이다. 이와 유사하게, 이그레스 노드(162)가 컨텐츠에 대해 지정된 동작을 수행하도록 허가되어 있음을 이그레스 노드(162)가 노드(161)에 "증명"한 후에만(예를 들어, 이그레스 회로(162)가 허가된 장치임을 이그레스 노드(162)가 노드(161)에 증명한 후에만) 또한 노드(161)가 허가된 장치임을 (예를 들어, 보안 채널(166)을 설정하기 위한 인증 교환 동안에) 노드(161)가 이그레스 노드(162)에 증명한 후에만, 키 데이터(194)가 이그레스 노드(162)에 제공된다.
그 다음에, 도 18 및 도 19를 참조하여, 로크박스들 간에 보안 채널(예를 들어, 도 16 및 도 17의 채널(165, 166))을 설정하기 위해 본 발명의 어떤 실시예들 에 따라 수행되는 단계들의 일례에 대해 설명한다. 이 예는 단지 예시적인 것이며, 본 발명의 PDN의 실시예들의 로크박스들 및/또는 다른 구성요소들 간에 보안 채널이 설정될 수 있는 유일한 방법을 나타내기 위한 것이 아니다. 도 18 및 도 19 각각은 구성요소(200)가 본 발명의 PDN의 실시예의 소프트웨어(예를 들어, 도 15의 CPU(147)를 프로그램하는 소프트웨어)를 나타내는 논리적 소프트웨어 뷰이고, 소프트웨어(200)와 PDN의 3개의 노드(인그레스 노드, 이그레스 노드, 및 제3 노드) 간의 하드웨어 인터페이스는 파선으로 나타내어져 있다. 노드들 각각은 하드웨어(일반적으로 도 20, 도 21 및 도 22의 마이크로프로세서(240, 260, 또는 280) 등의 펌웨어를 실행하는 마이크로프로세서를 포함함)를 포함하지만, 프로그램가능한 범용 CPU 또는 소프트웨어를 포함하지 않는다. 노드들 각각은 로크박스 회로를 포함하지만, 인그레스 노드만이 인그레스 회로(도시 생략)를 포함하고 이그레스 노드만이 이그레스 회로(도시 생략)를 포함한다. 제3 노드는 "로크박스" 노드라고 하는데, 그 이유는 로크박스 회로를 포함하지만 인그레스 또는 이그레스 회로를 포함하지 않기 때문이다.
보다 일반적으로, 본 발명의 PDN의 한 부류의 양호한 실시예들에서, 적어도 하나의 노드의 로크박스 회로는 보안 방식으로 노드의 하드웨어에(양호하게는 집적 회로 내부에) 내장된 의사 결정 로직 또는 노드에 보안 방식으로 내장된 프로세서 상에서 실행되는 의사 결정 펌웨어를 포함할 수 있다. 이러한 노드에서, 로크박스 회로는 노드 내부에 보안 방식으로 내장된 프로세서를 포함할 수 있고, 프로세서 상에서 실행되는 펌웨어는 컨텐츠에 대한 허가된 동작을 지원하거나 그 동작을 수 행하기 위해 노드 내부에서 사용되는 키 데이터 또는 다른 비밀들에 액세스할 수 있지만, 이러한 비밀이 그에 액세스하려고 시도하는 사용자 또는 개체에 의해 액세스가능하도록(또는 적어도 즉시 액세스가능하도록) 노드에 존재해서는 안된다.
도 18 및 도 19를 참조하면, 소프트웨어(200)는 3개의 노드 각각 내부의 로크박스 회로의 레지스터와 상호작용할 수 있다. 이러한 레지스터는 인그레스 노드 내의 편지함("착신" 섹션(201) 및 "발신" 섹션(202)을 가짐), 이그레스 노드 내의 편지함("착신" 섹션(205) 및 "발신" 섹션(206)을 가짐), 로크박스 노드 내의 편지함("착신" 섹션(203) 및 "발신" 섹션(204)을 가짐), 및 로크박스 노드의 로크박스 회로의 능력 테이블(207)을 포함한다. 인터럽트 라인은 레지스터와 연관되어 있다.
인그레스 노드는, 전원이 켜질 때마다 로크박스 노드와의 통신을 위해 보안 채널을 자동적으로 설정하도록 시도하도록, (펌웨어에 의해) 프로그램될 수 있다. 다른 대안으로서, 인그레스 노드는, 인그레스 노드가 인그레스 노드의 로크박스에 아직 존재하지 않는 비밀을 필요로 할 때에만, 로크박스 노드와의 이러한 보안 채널을 설정하려고 시도한다. 이러한 동작에서의 초기 단계로서, 인그레스 노드는 암호화된 메시지를 그의 편지함의 "발신" 섹션(202)에 배치하고, 인터럽트가 어써트되게 한다. 그에 응답하여, 소프트웨어(200)는 로크박스 노드의 편지함의 "착신" 섹션(203)으로 메시지를 전달한다. 그에 응답하여, 로크박스 노드는 암호화된 메시지를 그의 편지함의 "발신" 섹션(204)에 배치하고, 인터럽트가 어써트되게 한다. 그에 응답하여, 소프트웨어(200)는 이 메시지를 인그레스 노드의 편지함의 " 착신" 섹션(201)으로 전달한다. 이와 같이 계속하여, 인그레스 노드 및 로크박스 노드는 (도 16에 나타낸 바와 같이, 그 안에 사전 저장된 인증 데이터(170, 171)를 사용하여) 소프트웨어(200)를 통해 인증 교환을 수행한다. 인증 교환의 성공적인 완료 시에, 인그레스 노드 및 로크박스 노드는 이들 사이에 보안 채널(도 19에서 "보안 채널 0"으로 나타냄)이 존재하는 것처럼 이들이 동작하는 상태에 들어간다. 이러한 상태에서, 인그레스 및 로크박스 노드는, 이 정보를 판정하기 위해 추가의 인증 동작을 수행하지 않고, 서로의 정체를 알고 또 이들 각각이 허가된 장치임을 알고 있는 상태에서, 서로 통신을 한다. 그렇지만, 인그레스 노드와 로크박스 노드 간에 소프트웨어(200)를 통해 전송되는 모든 메시지(또는 비밀 또는 "중요"한 것으로 간주되는 모든 메시지)는 (인그레스 노드와 로크박스 노드 간에 보안 채널을 설정하는 교환 동안에 또한 이러한 보안 채널이 설정된 이후에) 암호화되어 있다. 따라서, 소프트웨어(200)가 이러한 암호화된 메시지로 어느 것이나 할 수 있지만(예를 들어, 이들 메시지를 저장하고 나중에 그 메시지를 재생하거나, 그 메시지를 수정하거나, 또는 그 메시지를 의도한 목적지 이외의 장치로 전송하려고 시도하지만), 유용한 결과를 갖게 될, 소프트웨어(200)가 그 메시지에 대해 수행할 수 있는 유일한 동작은 그들 각각을 (수정 없이) 그의 의도된 목적지로 전달하는 것이다. 예를 들어, 소프트웨어(200)가 로크박스 노드로 보낼 목적인 메시지를 다른 장치로 전달하거나 그 메시지를 로크박스 노드로 전달하기 이전에 수정하는 경우, 수신자는 이들을 복호화할 수 없으며, 따라서 이러한 전달 오류(또는 손상된 메시지의 전달)은 전송측 노드와 로크박스 노드 간의 성공적인 통신을 방지하는 것 이 외에 아무런 효과가 없다.
이와 유사하게, 이그레스 노드는, 전원이 켜질 때마다 로크박스 노드와의 통신을 위한 보안 채널을 설정하려고 자동적으로 시도하도록, 프로그램될 수 있다. 다른 대안으로서, 이그레스 노드는, 이그레스 노드가 이그레스 노드의 로크박스에 아직 존재하지 않는 비밀을 필요로 할 때에만, 로크박스 노드와의 이러한 보안 채널을 설정하려고 시도한다. 이러한 동작의 초기 단계로서, 이그레스 노드는 암호화된 메시지를 그의 편지함의 "발신" 섹션(206)에 배치하고, 인터럽트가 어써트되게 한다. 그에 응답하여, 소프트웨어(200)는 로크박스 노드의 편지함의 "착신" 섹션(203)으로 메시지를 전달한다. 그에 응답하여, 로크박스 노드는 암호화된 메시지를 그의 편지함의 "발신" 섹션(204)에 배치하고, 인터럽트가 어써트되게 한다. 그에 응답하여, 소프트웨어(200)는 이 메시지를 이그레스 노드의 편지함의 "착신" 섹션(205)으로 전달한다. 이와 같이 계속하여, 이그레스 노드 및 로크박스 노드는 (도 16에 나타낸 바와 같이, 그 안에 사전 저장된 인증 데이터(172, 171)를 사용하여) 소프트웨어(200)를 통해 인증 교환을 수행한다. 인증 교환의 성공적인 완료 시에, 이그레스 노드 및 로크박스 노드는 이들 사이에 보안 채널(도 19에서 "보안 채널 1"로 나타냄)이 존재하는 것처럼 이들이 동작하는 상태에 들어간다. 이러한 상태에서, 이그레스 노드 및 로크박스 노드는, 이 정보를 판정하기 위해 추가의 인증 동작을 수행하지 않고, 서로의 정체를 알고 또 이들 각각이 허가된 장치임을 알고 있는 상태에서, 서로 통신을 한다. 그렇지만, 이그레스 노드와 로크박스 노드 간에 소프트웨어(200)를 통해 전송되는 모든 메시지(또는 비밀 또는 "중요"한 것으 로 간주되는 모든 메시지)는 (이그레스 노드와 로크박스 노드 간에 보안 채널을 설정하는 교환 동안에 또한 이러한 보안 채널이 설정된 이후에) 암호화되어 있다. 따라서, 소프트웨어(200)가 이러한 암호화된 메시지로 어느 것이나 하려고 시도할 수 있지만(예를 들어, 이들 메시지를 저장하고 나중에 그 메시지를 재생하거나, 그 메시지를 수정하거나, 또는 그 메시지를 의도한 목적지 이외의 장치로 전송하려고 시도하지만), 유용한 결과를 갖게 될, 소프트웨어(200)가 그 메시지에 대해 수행할 수 있는 유일한 동작은 그들 각각을 (수정 없이) 그의 의도된 목적지로 전달하는 것이다. 예를 들어, 소프트웨어(200)가 (로크박스 노드로 보낼 목적인) 메시지를 이그레스 노드로부터 로크박스 노드 이외의 다른 장치로 전달하거나 그 메시지를 로크박스 노드로 전달하기 이전에 수정하는 경우, 수신자는 이들을 복호화할 수 없으며, 따라서 이러한 전달 오류(또는 손상된 메시지의 전달)은 이그레스 노드와 로크박스 노드 간의 성공적인 통신을 방지하는 것 이외에 아무런 효과가 없다.
본 발명의 PDN의 전형적인 실시예에서, PDN의 임의의 노드 쌍의 로크박스 회로 간에 보안 채널이 설정될 수 있다. 예를 들어, 소프트웨어는 편지함에 이그레스 노드에 대한 메시지를 배치할 수 있고, (예를 들어, 소프트웨어에 의해) 이그레스 노드로 전달될 때, 그 메시지는 이그레스 노드로 하여금 PDN의 지정된 하드웨어를 거쳐 인그레스 노드에 의해 이그레스 노드로(예를 들어, 도 16의 프로세서(177)를 거쳐 인그레스 노드(160)로부터 이그레스 노드(162)로) 어써트될 재암호화된 컨텐츠를 수신 및 처리할 준비를 하게 한다. 이 예에서, 이그레스 노드는, 보안 채널을 설정하고 그 메시지에 의해 지정된 동작(들)을 수행하는 데 필요한 키를 (상 대편 노드로부터) 획득하기 위해 어떤 다른 노드와 보안 교환을 수행하는 것으로, 그 메시지에 응답할 수 있다.
전형적인 실시예에서, 본 발명의 로크박스 회로(또는 "로크박스")는 컨텐츠에 관련한 일련의 저작권을 나타내는(및/또는 그와 상관된) 데이터를 저장한다. 예를 들어, 로크박스는 이러한 데이터(예를 들어, 도 18 및 도 19의 능력 테이블(207))를 저장하는 레지스터(또는 다른 메모리)를 포함하는 능력 테이블을 포함할 수 있다. 능력 테이블 내의 개개의 저장 장소는 인그레스 또는 이그레스 회로가 특정의 유형의 컨텐츠에 대해 특정의 동작(또는 일련의 동작)을 수행할 수 있게 해주는 키 데이터를 저장할 수 있다. 예를 들어, 테이블(207)에서 "N번째" 저장 장소는 특정의 컨텐츠 제공자로부터의 재암호화된 비디오를 복호화하고 또 HDMI 링크를 거쳐 전송하기 위해 복호화된 비디오를 재암호화(및 재포맷)하기 위해 이그레스 회로가 필요로 하는 키 데이터를 저장할 수 있다. 예를 들어, PDN의 인그레스 노드는 테이블(207)에서 N번째 저장 장소의 컨텐츠를 특정의 이그레스 노드로 전송하라고 로크박스 노드에 요청하는 메시지를 (소프트웨어(200)를 통해) 도 18의 로크박스 노드로 전송할 수 있다. 소프트웨어(200)는 이 메시지를 로크박스 노드로 중계할 수 있지만, 테이블(207)의 이 저장 장소의 컨텐츠에 액세스하지 않는다. 이 메시지에 응답하여, 로크박스 노드는 관련 키 데이터(테이블(207)에서 N번째 저장 장소의 컨텐츠)를 암호화하고 소프트웨어(200)로 하여금 이 암호화된 키 데이터를 적절한 이그레스 노드로 전달하게 할 수 있다. 소프트웨어(예를 들어, 도 18의 소프트웨어(200))는 암호화된 키 데이터를 전달할 수는 있지만, 원시(비암호화된) 키 데이터에 액세스하지 않는데, 그 이유는 전달될 암호화된 데이터를 복호화할 수 없기 때문이다. 소프트웨어(200)가 암호화된 키 데이터를 의도한 이그레스 노드 이외의 장치로 전달하거나 의도된 이그레스 노드로의 전달 이전에 암호화된 키 데이터를 수정하는 경우, 수신자는 잘못 전달된(또는 수정된) 암호화된 키 데이터를 복호화할 수 없게 되며, 따라서 소프트웨어(200)에 의한 이러한 전달 오류(또는 수정된 메시지의 전달)는 로크박스와 의도된 수신자 노드 간의 성공적인 통신을 방지하는 것 이외의 아무런 효과가 없다.
다른 예로서, 시스템 사용자는 허가되지 않은 동작을 수행하고, 소프트웨어(예를 들어, 도 18의 소프트웨어(200))를 이용하여 그 메시지를 인그레스 또는 이그레스 노드로 전달하며, 또 수신자로 하여금 허가되지 않은 동작을 수행하게 하라고 인그레스 노드 또는 이그레스 노드에 지시하는 메시지를 발신할 수 없다. 오히려, 수신자 노드는, 그에 응답하여 임의의 다른 조치를 취하기 이전에, (수신자와 보안 채널이 설정되어 있는 노드에 의해 메시지가 발생되고 암호화된 것으로 가정할 때) 이러한 메시지를 복호화한다. 이 복호화 동작은 메시지의 컨텐츠를 사실상 파괴하게 되는데, 그 이유는 시스템 사용자가, (메시지를 수신하는 노드의 로크박스 회로에 의해 발생되는) 메시지의 복호화된 버전이 수신자 노드에 의해 인식가능한 지시가 되도록, 메시지를 암호화하는 데 필요하게 되는 키 데이터(시스템의 노드 내의 하드웨어에 안전하게 저장되어 있음)에 액세스하지 않기 때문이다.
그 다음에, 도 20을 참조하여, 단일의 집적 회로일 수 있고 일반적으로 단일의 집적 회로로 구현되는 본 발명의 인그레스 노드의 실시예에 대해 설명한다. 도 20의 인그레스 노드(258)는 버스(246)를 따라 연결되어 있는 마이크로프로세서(240), 및 마이크로프로세서(240)에 연결된 명령어 메모리(241) 및 데이터 메모리(242)를 포함한다. 메모리(241)는 마이크로프로세서(240)에 의해 실행가능한 펌웨어를 저장하고, 데이터 메모리(242)는 마이크로프로세서(240)가 처리하는 데이터를 저장한다. 마이크로프로세서(240)는 범용 CPU가 아니며, 소프트웨어(200)로 프로그램가능하지 않다. 그 대신에, 마이크로프로세서(240)는 일반적으로 간단한 상태 머신을 구현하는 간단한 마이크로프로세서(예를 들어, 컨트롤러)이다. 도 20의 실시예에 대한 변형예는 다른 유형의 및/또는 다른 아키텍처를 갖는 마이크로프로세서 회로(예를 들어, 데이터 및 펌웨어 둘다를 저장하는 공통 메모리와 연결된 마이크로프로세서) 또는 소프트웨어로 프로그램되는 프로세서를 포함한다. 마이크로프로세서(240)(또는 노드(258) 내부의 로크박스 회로의 다른 구성요소)는 노드(258) 외부로 전송될 메시지를 암호화하고 또 노드(258) 외부의 개체(예를 들어, 다른 로크박스)로부터 수신되는 암호화된 메시지(예를 들어, 암호화된 컨텐츠 키 데이터 또는 다른 암호화된 비밀 데이터를 포함하는 메시지)를 복호화하도록 구성될 수 있다.
인그레스 노드(258)는 또한 (인증서 데이터 및/또는 기타 데이터를 저장하기 위한) 비휘발성 메모리(243), 편지함(245), 입력 인터페이스(247), 암호화 엔진(249), 재암호화 엔진(251), 및 출력 인터페이스(253)(이들 모두 도시된 바와 같이 버스(246)을 따라 연결되어 있음)를 포함한다.
구성요소(240, 241, 242, 243, 245)(및 선택적으로 도시되지 않은 다른 구성 요소)는 인그레스 노드(258)의 로크박스 회로를 구성하고, 구성요소(247, 249, 251, 253)(및 선택적으로 도시되지 않은 다른 구성요소)는 인그레스 노드(258)의 인그레스 회로를 구성한다.
편지함(245)는 "착신" 섹션(201) 및 "발신" 섹션(202)을 갖는 도 18의 편지함의 예이다. 편지함(245)은 인그레스 노드(258)와 PDN의 다른 노드의 로크박스 회로 간의 (PDN의 소프트웨어를 통한) 상기한 유형의 통신을 위해 사용된다.
메모리(243)는 인그레스 노드(258)의 동작을 위해 필요한 모든 인증서를 저장한다. 인증서 데이터는, 예를 들어 노드(258)와 연관되려고 시도하는 PDN(즉, 노드(258)가 허가된 멤버가 되려고 시도하는, 또는 환언하면 노드(258)가 "결혼된" 상태로 되기를 시도하는 PDN)의 노드의 로크박스 회로와의 인증 교환에서 사용하기 위해, 도 20 회로의 제조 시에 메모리(243)에 저장될 수 있다. 이러한 교환에서, 인그레스 노드(258)는 (메모리(243)에 저장된 인증서 데이터를 사용하여) 상대방 노드에 그의 정체를 증명하고, 인그레스 노드(258)가 PDN의 멤버가 되도록 허가되어 있는 허가된 장치인 것으로 상대방 노드의 로크박스 회로가 판정하는 경우, 상대방 노드로부터 "결혼 증명서" 데이터를 획득하게 된다. 결혼 증명서 데이터(인그레스 노드(258)가 PDN의 허가된 멤버임을 나타냄)는 또한 일반적으로 PDN의 다른 노드의 로크박스 회로와의 차후의 인증 교환(각각은, 예를 들어, 노드(258)가 PDN과 연관되어 있는 경우에 노드(258)의 전원을 켤 때, 수행됨)에서 사용하기 위해 메모리(243)에 저장되며, 이 교환에서 인그레스 노드(258)는, 상대방 노드와의 보안 링크를 설정하고 필요한 경우 상기한 바와 같이 상대방 노드로부터 (보안 링크 를 통해) 컨텐츠 키를 수신하기 위해, 또다시 상대방 노드에 그의 정체를 증명한다.
보다 일반적으로, 본 발명의 양호한 실시예들에 따르면, PDN 및 그의 노드는 로크박스 회로 및 인그레스(또는 이그레스) 회로를 포함하는 장치로 하여금, 외부 기관에 의지하지 않고, PDN 내에 참가될 수 있게 해주도록 구현된다. 예를 들어, 도 14의 장치(120, 122, 124, 126, 128, 132) 중 임의의 것은, 각각의 이러한 장치가 적절히 구성된 로크박스 회로를 포함하는 경우, 이러한 PDN 내에 참가될 수 있다. 어떤 실시예들에서, PDN의 노드는, 특정의 장치(따라서 적어도 하나의 특정의 기능)를 PDN에 추가하기 위해, 컨텐츠 소유자의 승인을 필요로 하도록 구성 및 동작된다. 양호하게는, 사용자가 PDN에 포함시키고자 할 수 있는 인그레스 또는 이그레스 회로를 포함하는 각각의 장치의 로크박스 회로는, 장치가 PDN의 허가된 멤버(노드)임을 나타내기 위해 비밀이 영속적으로(또한 안전하게) 그렇지만 취소가능하게 그 안에 저장될 수 있도록, 구성되어야만 한다. 일반적으로, 이러한 비밀은 인증서이며, 따라서 이러한 비밀을 나타내는 데이터는, 본 명세서에서, 결혼 증명서 데이터라고 한다. 다른 노드(예를 들어, 인그레스 노드 또는 이그레스 노드)로 결혼 증명서 데이터를 전송할 수 있거나 전송하는 로크박스 회로는 일반적으로 그와 통신하는 각각의 노드가 PDN의 허가된 멤버인지 여부(즉, 노드가 유효한 결혼 증명서 소유하고 따라서 PDN과 "결혼"한 상태에 있는지 여부)를 판정하는 데 필요한 데이터(예를 들어, 인증서 데이터)를 저장하기 위한 그 자신의 프로그램가능(예를 들어, 일회 프로그램가능) 메모리를 포함한다.
인그레스 노드(258)의 메모리(243)(도 20)는 인그레스 노드(258)가 PDN과 연관될 때 결혼 증명서 데이터가 저장되는 프로그램가능(예를 들어, 일회 프로그램가능) 메모리(즉, 메모리(243)의 일부분(243A))를 포함할 수 있다. 그러한 경우, 메모리(243)는 또한, 노드(258)가 제조될 때 노드(258)를 식별해주는 인증서 데이터가 저장되는, 판독-전용 비휘발성 메모리 부분을 포함하게 된다. 메모리(243)의 프로그램가능 부분(243A)는 프로그램가능 플래쉬 메모리 또는 EEPROM(기타 등등)일 수 있다. 그렇지만, 메모리(243)의 프로그램가능 부분(243A)은 양호하게는 플래쉬 메모리 또는 EEPROM을 구현하는 데 필요하게 되는 것보다 비용이 덜 드는 방식으로 구현된다. 예를 들어, 메모리(243)의 부분(243A)은, 더 이상 필요하지 않을 때 더 이상 사용되지 않지만 특정의 상태로 영구적으로 프로그램된 경우 수정될 수 없는, 일회 프로그램가능 퓨즈 세트일 수 있다. 예를 들어, 프로그램가능 메모리 부분(243A)은 이러한 퓨즈 세트를 16개(또는 어떤 다른 수) 포함할 수 있으며, 그 퓨즈 세트 각각은 일련의 결혼 증명서 데이터를 저장하기 위해 일회 프로그램될 수 있다. 인그레스 노드(258)(즉, 그의 마이크로프로세서(240))는 양호하게는, 예를 들어, 노드(258)에 대한 현재 유효한 결혼 증명서를 나타내는 데이터를 편지함(245)에 배치할 때, 메모리 부분(243A)의 가장 최근에 프로그램된 퓨즈 세트만을 사용하도록(즉, 각각의 다른 퓨즈를 무시하도록) 구성되어 있다. 노드(258)가 PDN으로부터 제거되고(즉, PDN과 "이혼"하고) 또 새로운 PDN과 연관되는(즉, 새로운 PDN과 "재혼"하는) 경우, 새로운 PDN의 로크박스는 메모리 부분(243A) 내의 다른 퓨즈 세트가, 노드(258)의 새로운 PDN과의 연관을 나타내는 새로운 일련의 결혼 증 명서 데이터로 프로그램되게 한다.
보다 일반적으로, 본 발명의 PDN의 전형적인 실시예와 연관되어진 모든 장치는 그 도메인에 고유한 데이터(인증서 또는 인증서와 같은 데이터)를 포함한다. 이러한 데이터는, 본 명세서에서, 때때로 "결혼 증명서 데이터"라고 한다. 이러한 PDN에 포함될 수 있는 각각의 허가된 장치는, 실제로 PDN과 연관되어 있는지에 상관없이, 그 장치가 허가된 장치임을 나타내기 위해, 인증서 데이터를 그의 적어도 하나의 집적 회로(예를 들어, 로크박스 칩)에 (제조 동안에) 영구적으로 저장한다. 이러한 후자의 유형의 인증서 데이터는 상기한 "결혼 증명서 데이터"와 다르다. 제1 PDN과 연관된 장치가 제1 PDN으로부터 제거될 때(즉, 제1 PDN과 "이혼"할 때), 그의 결혼 증명서 데이터는, 다른 PDN(제2 PDN)과 연관되기("재혼"하기) 이전에, 사실상 삭제되어야만 하며, 따라서 제1 PDN과 결혼한 것으로 인해 액세스하였던 모든 비밀에 액세스하지 못한다. (PDN의 노드가 될 수 있는) 본 발명의 장치의 양호한 실시예는, (제1 PDN과의 이전의 연관의 결과로서) 그 안에 저장된 임의의 결혼 증명서 데이터가 그 장치의 제2 PDN과의 연관 시에 사실상 삭제되도록(또한 제2 PDN에 대한 새로운 결혼 증명서 데이터가 그 안에 저장되도록), 구현될 수 있다. 본 발명의 장치의 양호한 실시예는 또한, 각각의 이러한 장치가 단지 미리 정해진 최대 수의 PDN과 연관될 수 있도록, 구현될 수 있다. 선택적으로, 특정의 PDN과 연관되기 위한 그의 자격을 제한하기 위해, 다른 제한이 본 발명의 장치에(예를 들어, 그의 로크박스 회로 내에) 설정될 수 있다.
본 발명의 로크박스 회로의 양호한 실시예는 또한, 다른 노드의 PDN과의 연 관이 언제 취소되어야만 하는지를 로크박스 회로가 효율적으로(예를 들어, 비용 효과적인 방식으로) 판정할 수 있도록 또한 이러한 취소가 효율적으로 구현될 수 있게 해주도록, 구성될 수 있다.
노드(258)가 PDN과 연관되고자(즉, PDN의 허가된 멤버가 되고자) 할 때 (PDN의)로크박스와 인그레스 노드 간에 전체 인증 교환(예를 들어, 공개키 인증서 서명, 즉 "PKCS" 교환)이 수행되는 것이 생각된다. 따라서, 노드(258)의 메모리(243)에 영속적으로 저장된 인증서 데이터는 이러한 전체 인증 교환을 수행하기에 적합한 유형이어야만 한다. 노드(258)가 PDN과 연관된 후에, 노드(258)가 상대방 노드로부터 컨텐츠 키를 획득할 수 있는 보안 채널을 설정하려고 시도할 때마다, 노드(258)와 PDN의 임의의 다른 노드의 로크박스 회로 간에 훨씬 더 간단한 인증 교환이 수행될 수 있다. 메모리(243)(예를 들어, 메모리(243)의 프로그램가능 부분(243A))는 또한 이러한 보다 간단한 인증 교환을 수행하기에 적합한 적은 양의 인증서 데이터를 포함할 수 있다. 예를 들어, 보안 채널(이를 통해 컨텐츠 키가 전송될 수 있음)을 설정하기 위한 이러한 "보다 간단한" 인증 교환은 종래의 공개키 인증서 서명("PKCS") 교환을 수행하기 위해 일반적으로 사용되는 산업 표준 PKCS 인증서보다 더 경량급인 인증서를 사용하여 수행될 수 있다. 그러한 경우, 메모리(243)의 프로그램가능 부분(243A)가 보다 복잡한 PKCS 인증서 데이터를 저장할 수 있도록 하는 데 필요한 것보다 더 간단하고 저렴하게 구현될 수 있다. 다른 대안으로서, 노드들 간에 어떤 인증서도 교환하지 않고, PDN의 2개의 노드 간에 보안 채널을 설정하기 위해 인증 교환이 수행될 수 있다.
여전히 도 20을 참조하면, 컨텐츠(예를 들어, 비디오 및/또는 오디오 데이터)는 인터페이스(247)에서 인그레스 노드(258)에 들어가고, 인그레스 노드(258) 내부에서 입력 인터페이스(247)로부터 복호화 엔진(249)으로, 복호화 엔진(249)으로부터 재암호화 엔진(251)으로, 또 재암호화 엔진(251)으로부터 출력 인터페이스(253)로 지나간다. 컨텐츠는 구성요소(247, 249, 251, 253) 중 임의의 하나와 마이크로프로세서(240), 메모리(243) 및 편지함(265) 중 임의의 하나 사이를 지나갈 수 없다. 마이크로프로세서(240)는 구성요소(247, 249, 251, 253)의 동작을 제어한다. 인터페이스(247)는 컨텐츠를 요구되는 형태로 노드(258) 내로 가져오기 위해 컨텐츠 소스와의 모든 필요한 핸드쉐이킹을 수행하도록 구성된 스트림 핸들러이다. 인터페이스(247)는 (마이크로프로세서(240)의 제어 하에서 필요한 정도까지) 모든 요구되는 컨텐츠 흐름 제어를 수행하고, 임의의 요구되는 확인 응답, 기타 등등을 컨텐츠 소스로 어써트한다. 어떤 실시예들에서, 인터페이스(247)는 한 포맷으로만 된 컨텐츠(예를 들어, USB 링크, 1394 링크, 무선 링크, 또는 임의의 다른 링크를 통해 수신되는 컨텐츠)를 수신하도록 구성되어 있다. 다른 실시예들에서, 인터페이스(247)는 2개 이상의 서로 다른 포맷 중 임의의 것으로 된 컨텐츠를 수신하도록 구성되어 있다. 일반적으로, 인터페이스(247)에 의해 수신되는(또한 복호화 엔진(249)에의 인터페이스(247)에 의해 어써트되는) 컨텐츠는 압축 및 암호화된 컨텐츠이고, 컨텐츠 제공자에 의해 사용되고 있는 전송 및 암호화 방식이 무엇이든지 간에 그 방식에 따라 암호화된다.
복호화 엔진(249)은, 일반적으로 로크박스(예를 들어, 도 22의 로크박스 노 드(298))로부터 인그레스 노드(258)에 의해 이전에 획득된 컨텐츠 키를 사용하여, 그에게로 어써트된 컨텐츠를 복호화한다. 로크박스 및 인그레스 노드(258)는 일반적으로 별도의 칩으로 구현되며, 컨텐츠 키는 일반적으로 로크박스로부터 (소프트웨어를 통해) 노드(258)의 편지함(245)으로 암호화된 형태로 전송되고, 이어서 엔진(249)에 의해 사용될 수 있는 형태로 바꾸기 위해 노드(258) 내부의 적절한 회로에 의해 복호화된다. 복호화 엔진(249)은 일반적으로 컨텐츠의 압축된 평문 버전을 출력하지만, 압축된 컨텐츠에 대해 압축 해제를 수행하지 않는다. 이어서, 재암호화 엔진(251)은, 일반적으로 로크박스(예를 들어, 도 2의 로크박스 노드(298))로부터 인그레스 노드(258)에 의해 이전에 획득된 컨텐츠 키를 사용하여, 평문 컨텐츠를 암호화한다. 엔진(251)에 의해 발생되는 재암호화된(전사된) 컨텐츠는 출력 인터페이스(253)로, 또한 인터페이스(253)로부터 PDN의 임의의 구성요소로 어써트된다. 인터페이스(253)는 전사된 컨텐츠를 수신하는 장치와의 모든 필요한 핸드쉐이킹을 수행하도록 구성되어 있는 스트림 핸들러이다.
그 다음에, 도 21을 참조하여, 단일의 집적 회로일 수 있고 일반적으로 단일의 집적 회로로 구현되는 본 발명의 이그레스 노드의 실시예에 대해 설명한다. 도 21의 이그레스 노드(278)는 버스(266)를 따라 연결되어 있는 마이크로프로세서(260), 및 마이크로프로세서(260)에 연결되어 있는 명령어 메모리(261) 및 데이터 메모리(262)를 포함한다. 메모리(261)는 마이크로프로세서(260)에 의해 실행가능한 펌웨어를 저장하고, 데이터 메모리(262)는 마이크로프로세서(260)가 처리하는 데이터를 저장한다. 마이크로프로세서(260)는 범용 CPU가 아니며, 소프트웨어로 프로그램가능하지 않다. 그 대신에, 마이크로프로세서(260)는 일반적으로 간단한 상태 머신을 구현하는 간단한 마이크로프로세서(예를 들어, 컨트롤러)이다. 도 21의 실시예에 대한 변형예는 다른 유형의 및/또는 다른 아키텍처를 갖는 마이크로프로세서 회로(예를 들어, 데이터 및 펌웨어 둘다를 저장하기 위해 공통 메모리에 연결된 마이크로프로세서) 또는 소프트웨어로 프로그램되는 프로세서를 포함한다. 마이크로프로세서(260)(또는 노드(278) 내부의 로크박스 회로의 다른 구성요소)는 노드(278) 외부로 전송되는 메시지를 암호화하고 노드(278) 외부의 개체(예를 들어, 다른 로크박스)로부터 수신되는 암호화된 메시지(예를 들어, 암호화된 컨텐츠 키 데이터 또는 다른 암호화된 비밀 데이터를 포함하는 메시지)를 복호화하도록 구성될 수 있다.
이그레스 노드(278)는 또한 (인증서 데이터 및/또는 기타 데이터를 저장하기 위한) 비휘발성 메모리(263), 편지함(265), 입력 인터페이스(267), 복호화 엔진(269), 디코딩 회로(271), 디멀티플렉서(273), HDMI 송신기(277)(이들 모두는 도시된 바와 같이 버스(266)를 따라 연결되어 있음)를 포함한다. 디멀티플렉서(273)의 한 출력은 HDMI 송신기(277)의 입력에 연결되어 있다. 디멀티플렉서(273)의 다른쪽 입력은 스케일러(275)의 입력에 연결되어 있고, 스케일러(275)의 출력은 인코딩 및 DAC 회로(279)의 입력에 연결되어 있다.
구성요소(260, 261, 262, 263, 265)(또한 선택적으로 도시되지 않은 다른 구성요소)는 이그레스 노드(278)의 로크박스 회로를 구성하고, 구성요소(267, 269, 271, 273, 275, 277, 279)(또한 도시되지 않은 다른 구성요소)는 이그레스 노 드(278)의 이그레스 회로를 구성한다.
편지함(265)은 "착신" 섹션(205) 및 "발신" 섹션(206)을 갖는 도 18의 편지함의 예이다. 편지함(265)은 PDN의 소프트웨어를 통해 이그레스 노드(278)와 로크박스(PDN에서의 노드(278)에 포함됨) 간의 상기한 유형의 통신을 위해 사용된다.
메모리(263)는 이그레스 노드(278)의 동작을 위해 필요한 모든 인증서를 저장한다. 인증서 데이터는, 예를 들어, 노드(278)와 연관되고자 하는(환언하면, 노드(278)가 "결혼"하고자 하는) PDN의 노드의 로크박스 회로와의 인증 교환에서 사용하기 위한, 도 21 회로의 제조 시에 메모리(263)에 저장될 수 있다. 이러한 교환에서, 이그레스 노드(278)는 (메모리(263)에 저장된 인증서 데이터를 사용하여) 그의 정체를 상대방 노드에 증명하고, 이그레스 노드(278)가 PDN의 멤버가 되도록 허가되어 있는 허가된 장치인 것으로 상대방 노드의 로크박스 회로가 판정하는 경우, 상대방 노드로부터 "결혼 증명서" 데이터를 획득하게 된다. 결혼 증명서 데이터(이그레스 노드(278)가 PDN의 허가된 멤버임을 나타냄)는 또한 일반적으로, 노드(278)와 PDN의 다른 노드들 간의 차후의 인증 교환(각각의 교환은, 예를 들어, 노드(278)가 PDN과 연관되어 있는 경우에 노드(278)의 전원을 켤 때)에서 사용하기 위해, 메모리(273)에 저장되며, 이 교환에서 이그레스 노드(278)는, 상대방 노드와의 보안 링크를 설정하고 필요한 경우 상기한 바와 같이 상대방 노드로부터 (보안 링크를 통해) 컨텐츠 키를 수신하기 위해, 또다시 상대방 노드에 그의 정체를 증명한다.
메모리(263)는 이그레스 노드(278)가 PDN과 연관될 때 결혼 증명서 데이터가 저장되는 프로그램가능(예를 들어, 일회 프로그램가능) 메모리(즉, 메모리(263)의 일부분(263A))를 포함할 수 있다. 그러한 경우, 메모리(263)는 또한, 노드(278)가 제조될 때 노드(278)를 식별해주는 인증서 데이터가 저장되는, 판독-전용 비휘발성 메모리 부분을 포함하게 된다. 메모리(263)의 프로그램가능 부분(263A)는 프로그램가능 플래쉬 메모리 또는 EEPROM(기타 등등)일 수 있다. 그렇지만, 메모리(263)의 프로그램가능 부분(263A)은 양호하게는 플래쉬 메모리 또는 EEPROM을 구현하는 데 필요하게 되는 것보다 비용이 덜 드는 방식으로 구현된다. 예를 들어, 메모리(263)의 부분(263A)은, 더 이상 필요하지 않을 때 더 이상 사용되지 않지만 특정의 상태로 영구적으로 프로그램된 경우 수정될 수 없는, 일회 프로그램가능 퓨즈 세트일 수 있다. 예를 들어, 프로그램가능 메모리 부분(263A)은 이러한 퓨즈 세트를 16개(또는 어떤 다른 수) 포함할 수 있으며, 그 퓨즈 세트 각각은 일련의 결혼 증명서 데이터를 저장하기 위해 일회 프로그램될 수 있다. 이그레스 노드(278)(즉, 그의 마이크로프로세서(260))는 양호하게는, 예를 들어, 노드(278)에 대한 현재 유효한 결혼 증명서를 나타내는 데이터를 편지함(265)에 배치할 때, 메모리 부분(263A)의 가장 최근에 프로그램된 퓨즈 세트만을 사용하도록(즉, 각각의 다른 퓨즈를 무시하도록) 구성되어 있다. 노드(278)가 PDN으로부터 제거되고(즉, PDN과 "이혼"하고) 또 새로운 PDN과 연관되는(즉, 새로운 PDN과 "재혼"하는) 경우, 새로운 PDN의 다른 노드의 로크박스는 메모리 부분(263A) 내의 다른 퓨즈 세트가, 노드(278)의 새로운 PDN과의 연관을 나타내는 새로운 일련의 결혼 증명서 데이터로 프로그램되게 한다.
노드(278)가 PDN의 허가된 멤버가 되고자 할 때 PDN의 노드의 로크박스 회로와 이그레스 노드(278) 간에 전체 인증 교환(예를 들어, 공개키 인증서 서명 교환)이 수행되는 것이 생각된다. 따라서, 노드(278)의 메모리(263)에 영속적으로 저장된 인증서 데이터는 이러한 전체 인증 교환을 수행하기에 적합한 유형이어야만 한다. 노드(278)가 PDN과 연관된 후에, 노드(278)가 상대방 노드와의 보안 채널(예를 들어, 노드(278)가 컨텐츠 키를 획득할 수 있는 보안 채널)을 설정하려고 시도할 때마다, 노드(278)와 PDN의 다른 노드 간에 훨씬 더 간단한 인증 교환이 수행될 수 있다. 메모리(263)(예를 들어, 메모리(263)의 프로그램가능 부분(263A))는 또한 이러한 보다 간단한 인증 교환을 수행하기에 적합한 적은 양의 인증서 데이터를 포함할 수 있다. 예를 들어, 보안 채널(이를 통해 컨텐츠 키가 전송될 수 있음)을 설정하기 위한 이러한 "보다 간단한" 인증 교환은 종래의 공개키 인증서 서명("PKCS") 교환을 수행하기 위해 일반적으로 사용되는 산업 표준 PKCS 인증서보다 더 경량급인 인증서를 사용하여 수행될 수 있다. 그러한 경우, 메모리(263)의 프로그램가능 부분(263A)가 보다 복잡한 PKCS 인증서 데이터를 저장할 수 있도록 하는 데 필요한 것보다 더 간단하고 저렴하게 구현될 수 있다.
여전히 도 21을 참조하면, 이그레스 노드(278)는, 컨텐츠(예를 들어, 비디오 및/또는 오디오 데이터)가 인터페이스(267)에서 이그레스 노드(278)에 들어가고, 입력 인터페이스(267)로부터 복호화 엔진(269)으로, 복호화 엔진(246)으로부터 디코딩 회로(271)로, 또 디코딩 회로(271)로부터 디멀티플렉서(273)로 지나간다. 컨텐츠는 구성요소(267, 269, 271, 273) 중 임의의 하나와 마이크로프로세서(260), 메모리(263) 및 편지함(265) 중 임의의 하나 사이를 지나갈 수 없다. 마이크로프로세서(260)는 구성요소(267, 269, 271, 273)의 동작을 제어한다. 인터페이스(267)는 컨텐츠를 요구되는 형태로 노드(278) 내로 가져오기 위해 컨텐츠 소스와의 모든 필요한 핸드쉐이킹을 수행하도록 구성된 스트림 핸들러이다. 인터페이스(267)는 (마이크로프로세서(260)의 제어 하에서 필요한 정도까지) 모든 요구되는 컨텐츠 흐름 제어를 수행하고, 임의의 요구되는 확인 응답, 기타 등등을 컨텐츠 소스로 어써트한다. 어떤 실시예들에서, 인터페이스(267)는 PDN의 구성요소로부터 (한 포맷으로만 된) 컨텐츠를 수신하도록 구성되어 있다. 다른 실시예들에서, 인터페이스(267)는 PDN의 하나 이상의 구성요소로부터 2개 이상의 서로 다른 포맷 중 임의의 것으로 된 컨텐츠를 수신하도록 구성되어 있다. 일반적으로, 인터페이스(267)에 의해 수신되고 복호화 엔진(269)에의 인터페이스(267)에 의해 어써트되는 컨텐츠는 이그레스 노드(278)가 속하는 PDN의 이그레스 노드에서 전사된 압축 및 전사된 컨텐츠이다.
복호화 엔진(269)은, 일반적으로 다른 노드의 로크박스(예를 들어, 도 22의 로크박스(298))로부터 이그레스 노드(278)에 의해 이전에 획득된 컨텐츠 키를 사용하여, 그에게로 어써트된 컨텐츠를 복호화한다. 다른 노드의 로크박스 및 이그레스 노드(278)는 일반적으로 별도의 칩으로 구현되며, 컨텐츠 키는 일반적으로 상대방 노드의 로크박스로부터 (소프트웨어를 통해) 노드(278)의 편지함(265)으로 암호화된 형태로 전송되고, 이어서 엔진(269)에 의해 사용될 수 있는 형태로 바꾸기 위해 노드(278) 내부의 적절한 회로에 의해 복호화된다. 복호화 엔진(269)은 일반적 으로 컨텐츠의 압축된 평문 버전을 출력하도록 구성되어 있다. 디코딩 회로(271)는 압축된 컨텐츠에 대해 임의의 요구되는 압축 해제를 수행하고, 원시(압축 해제된) 평문 컨텐츠를 디멀티플렉서(273)로 어써트한다.
마이크로프로세서(260)로 디멀티플렉서(273)를 제1 상태에 둔 경우, 원시 평문 컨텐츠는 디멀티플렉서(273)로부터 HDMI 송신기(277)로 어써트된다. 송신기(277)는 (HDCP 프로토콜에 따라) 원시 평문 컨텐츠를 재암호화하고 이 재암호화된 컨텐츠를 HDMI 링크를 거쳐 (예를 들어, 디스플레이 장치를 포함하는 오디오 비디오 시스템 내의) HDMI 수신기로 전송한다. 마이크로프로세서(260)가 디멀티플렉서(273)를 제2 상태에 둘 때, 디멀티플렉서(273)는 원시 평문 컨텐츠를 스케일러(275)로 어써트한다. 스케일러(275)는 컨텐츠에 대해 임의의 필요한 스케일링을 수행한다(예를 들어, 비디오 컨텐츠를 다른 해상도로 리스케일링한다). 이어서, 이 컨텐츠(일반적으로 스케일러(275) 내부에서 스케일링을 거침)는 인코딩 및 DAC 회로(279)로 어써트되고, 이 회로(279)에서 이 컨텐츠는 (출력을 위해) 필요에 따라 인코딩 및 포맷되고 이그레스 노드(278)로부터의 출력하기 위해 아날로그 형태로 변환된다.
유의할 점은, 마이크로프로세서(260)가 그의 내부 펌웨어 및 로크박스로부터 수신한 임의의 컨텐츠 키(및/또는 퍼미션 데이터, 기타 등등)가 마이크로프로세서(260)로 하여금 수행할 수 있게 해주는 동작만을 수행할 수 있다는 점에서, 마이크로프로세서(260)(따라서 이그레스 노드(278))가 허가된 방식으로만 동작하도록 구성되어 있다는 것이다. 이그레스 노드(278)는, (예를 들어, 메모리(263)에 저장 된 인증서 데이터를 사용하여) 컨텐츠 키(및/또는 퍼미션 데이터)가 그로 하여금 수행할 수 있게 해주는 동작들을 수행하도록 허가되어 있음을 상대방 노드에 증명한 후에만, 다른 노드의 로크박스 회로로부터 보안 채널을 통해 이러한 컨텐츠 키(및/또는 퍼미션 데이터)를 수신하게 된다. 예를 들어, 다른 노드의 로크박스 회로로부터 보안 채널을 통해 수신된 퍼미션 데이터가 마이크로프로세서(260)로 하여금 (HDMI 링크를 통해 송신기(277)로부터 외부 수신기로 컨텐츠의 HDCP-인코딩된 버전의 전송을 가능하게 해주기 위해) 디멀티플렉서(273)를, 원시 평문 컨텐츠를 HDMI 송신기(277)로 라우팅하는 상태에 두게 하는 경우, 외부 개체는 마이크로프로세서(260)로 하여금 그 대신에 디멀티플렉서(273)를, 원시 평문 컨텐츠를 스케일러(275)로 라우팅하는 상태에 두게 하지 못할 수 있다. 따라서, 외부 개체는 이그레스 노드(278)로 하여금 인코딩 및 DAC 회로(279)를 사용하여 컨텐츠의 평문 아날로그 버전의 허가받지 않은 출력을 수행하게 하지 못할 수 있다.
도 21의 이그레스 노드의 구조에 대한 많은 변형예가 생각된다. 예를 들어, 어떤 이러한 변형예에서, 이그레스 노드는 복호화 엔진(269)으로부터 출력되는 압축된 평문 컨텐츠가 이그레스 노드의 디코더로 어써트되게 하기 보다는 (예를 들어, MPEG 비디오 데이터로서 이그레스 유닛 외부의 메모리에) 저장되게 할 수 있다.
그 다음에, 도 22를 참조하여, 단일의 집적 회로로 구현될 수 있고(또한 일반적으로 단일의 집적 회로로 구현되고) 또 PDN의 노드(본 명세서에서, 때때로 "로크박스 노드"라고 함)일 수 있는 본 발명의 로크박스 회로의 실시예에 대해 설명한 다. 도 22의 로크박스 회로("로크박스")(298)는 버스(286)를 따라 연결되어 있는 마이크로프로세서(280), 및 마이크로프로세서(280)에 연결되어 있는 명령어 메모리(281) 및 데이터 메모리(282)를 포함한다. 메모리(281)는 마이크로프로세서(280)에 실행가능한 펌웨어를 저장하고, 데이터 메모리(282)는 마이크로프로세서(280)가 처리하는 데이터를 저장한다. 마이크로프로세서(280)는 범용 CPU가 아니며, 소프트웨어로 프로그램가능하지 않다. 그 대신에, 마이크로프로세서(280)는 일반적으로 간단한 상태 머신을 구현하는 간단한 마이크로프로세서(예를 들어, 컨텐츠)이다. 도 22의 실시예에 대한 변형예는 다른 유형의 및/또는 다른 아키텍처를 갖는 마이크로프로세서 회로(예를 들어, 데이터 및 펌웨어 둘다를 저장하기 위한 공통 메모리에 연결된 마이크로프로세서) 또는 소프트웨어로 프로그램되는 프로세서를 포함한다. 마이크로프로세서(280)(또는 로크박스(298)의 다른 구성요소)는 로크박스(298) 외부로 전송될 메시지를 암호화하고 로크박스(298) 외부의 개체(예를 들어, 다른 로크박스)로부터 수신되는 암호화된 메시지(예를 들어, 암호화된 비밀 데이터를 포함하는 메시지)를 복호화하도록 구성되어 있을 수 있다.
로크박스(298)는 또한 난수 발생기(283), (인증서 데이터를 저장하기 위한) 비휘발성 메모리(285), (키 데이터를 저장하기 위한) 비휘발성 메모리(284), 부가의 비휘발성 메모리(289), 편지함(287), 비감소 카운터(또는 타이머)(291), SSL 종단 회로(293), 및 인터페이스 회로(295)(이들 모두는 도시된 바와 같이 버스(286)를 따라 연결되어 있음)를 포함한다.
편지함(287)은 "착신" 섹션(203) 및 "발신" 섹션(204)을 갖는 도 18의 편지 함의 일례이다. 편지함(287)은 (PDN의 소프트웨어를 통해) 로크박스(298)와 PDN의 인그레스 또는 이그레스 노드 간의 상기한 유형의 통신을 위해 사용된다.
메모리(289)는 컨텐츠와 관련있는 일련의 저작권을 나타내는(및/또는 그와 상관되어 있는) 데이터를 저장하고, 또한 선택적으로 로크박스(298)에서 사용하기 위한 부가의 데이터를 저장한다. 예를 들어, 메모리(289) 내의 개개의 저장 장소는 이러한 다른 노드의 인그레스 또는 이그레스 회로가 특정의 유형의 컨텐츠에 대해 특정의 동작(또는 일련의 동작)을 수행할 수 있도록 해주기 위해 (암호화된 형태로) 다른 노드로 전송될 수 있는 키 데이터를 저장할 수 있다. 예를 들어, 메모리(289) 내의 "N번째" 저장 장소는 특정의 컨텐츠 제공자로부터의 재암호화된 비디오를 복호화하고 HDMI 링크를 통해 전송하기 위한 복호화된 비디오를 재암호화(및 재포맷)하기 위해 이그레스 회로가 필요로 하는 키 데이터를 저장할 수 있다.
메모리(285)는 로크박스(298)의 동작에 필요한 인증서를 저장한다. 인증서 데이터는, 도 21의 회로의 제조 시에, 예를 들어, 로크박스(298)를 포함하는 PDN과 연관되고자(그와 "결혼"하고자) 하는 인그레스 또는 이그레스 노드와의 인증 교환에서 사용하기 위해, 메모리(285)에 저장될 수 있다. 이러한 교환에서, 로크박스(298)는 인그레스 또는 이그레스 노드에 그의 정체를 증명하고, (메모리(285) 및/또는 메모리(289)에 저장된 인증서 데이터를 사용하여) 인그레스 또는 이그레스 노드가 PDN의 멤버가 되도록 허가되어 있는 허가된 장치인지를 판정하고, 또, 인그레스 또는 이그레스 노드가 PDN의 멤버가 되도록 허가되어 있는 허가된 장치인 것으로 판정할 때, 인그레스 또는 이그레스 노드에 결혼 증명서 데이터(메모리(285) 및/또는 메모리(289)에 사전 저장될 수 있음)를 제공하게 된다. 메모리(285)(및/또는 메모리(289))는 또한 (PDN과 연관된) 인그레스 또는 이그레스 노드와의 인증 교환에서 사용하기 위한 인증서 데이터도 저장할 수 있으며, 이 교환에서 인그레스(이그레스) 노드는 로크박스(298)가 인그레스(이그레스) 노드로 컨텐츠 키를 전송할 수 있는 로크박스(298)와의 보안 링크를 설정하려고 시도한다.
메모리(284)는 로크박스(298)에 고유한 비밀인 장치 키를 저장한다. 로크박스(298)는 장치 키를 사용하여, 로크박스(298)만이 비밀을 검색 및 복호화할 수 있도록 하는 방식으로, 로크박스(298) 외부에 저장하기 위한 비밀을 암호화하도록 구성되어 있다. 장치 키를 사용하여, 로크박스(298)는 그의 내부 비휘발성 저장 용량을 확장할 수 있다. 로크박스(298) 외부에 암호화된 형태로 저장된 비밀(메모리(284)에 저장된 장치 키를 사용하여 암호화됨)은 안정하게 유지된다. 따라서, 외부 저장 장치는 기능상 로크박스 내부의 비휘발성 저장 장치와 동등하다. 로크박스(298)에 의해 액세스가능한 외부 저장 장치의 예는 도 15의 저장 유닛(153)이며, 로크박스(298)는 암호화된 비밀을 (저장 회로(152)를 통해) 그에 저장할 수 있고, 로크박스(298)는 암호화 비밀을 (역시, 저장 회로(152)를 통해) 그로부터 판독할 수 있다. 도 22 실시예에 대한 변형예에서, 본 발명의 로크박스는 메모리(284)를 포함하지 않으며 모든 비밀을 저장하기 위해 내부 메모리에 의존한다.
어떤 실시예들에서, 본 발명의 로크박스(예를 들어, 도 22의 로크박스의 구현예)는, 제조 시에, 결코 공유나 노출되지 않는 비밀키, 자유롭게 공유 및 노출되는 짝을 이루는 공개키, 신뢰된 인증 기관에 대한 하나 이상의 공개키, 장치 유형 (예를 들어, PDN의 노드로서 사용될 수 있고 로크박스가 포함되어 있는 장치의 유형) 및 이러한 장치의 기본적인 속성을 정의하는 정보, 공인된 인증 기관(예를 들어, 로크박스가 포함되어질 PDN에 대한 공인된 인증 기관)에 의해 발생된 인증서, 장치(로크박스가 포함되어 있고 또 PDN의 노드로서 사용될 수 있음)의 다른 구성요소를 식별하고 그와 보안 방식으로 통신하는 데 필요한 모든 암호 정보, 및 다른 로크박스를 식별하고 또 그와 통신하는 데 필요한 모든 암호 정보를 포함하도록(예를 들어, 영속적으로 저장하도록) 초기화된다.
로크박스(298)는, 예를 들어, 인증 교환을 수행하기 위해 필요로 하는 임의의 랜덤한 또는 의사 랜덤 키 데이터(또는 다른 랜덤 또는 의사 랜덤 데이터)를 발생하는 난수 발생 회로(283)를 사용한다. 양호하게는, 회로(283)는 통계적으로 양호한 랜덤성 소스이며, 공격자에 의해(예를 들어, 회로가 동작하는 온도 또는 전압 조건을 제어함으로써) 회로가 무력화될 수 없도록(예를 들어, 그 회로로 하여금 난수가 아니라 예측가능한 수를 발생하게 할 수 없도록) 구성되어 있다. 회로(283)는, 예를 들어, 그의 출력에 의해 표시되는 난수 또는 의사 난수가 많은 서로 다른 길이 중 임의의 것을 가질 수 있도록, 많은 서로 다른 방식 중 임의의 것으로 구현될 수 있다. 예를 들어, 회로(283)의 한가지 구현예는 N-비트(여기서, N은 작은 수임) 난수 또는 의사 난수를 나타내는 데이터를 출력할 수 있으며,, 회로(283)의 다른 구현예는 M-바이트(여기서, M은 큰 수임) 난수 또는 의사 난수를 나타내는 데이터를 출력할 수 있다.
다른 대안으로서, 회로(283)는 시퀀스로 대체될 수 있거나, 로크박스(298)는 회로(283) 및 시퀀서 둘다를 포함할 수 있다. 시퀀서는 랜덤화기(randomizer)와 유사하며, 본질적으로 동일한 기능을 제공한다. 그렇지만, 시퀀서는 랜덤 또는 의사 랜덤 방식으로 동작하지 않으며, 그 대신에 미리 정해진 시퀀스를 따른다. 간단한 카운터는 시퀀서의 한 예이다. 로크박스에 의해 구현되는 암호화 프로토콜에 내재된 확산은 본질적으로 시퀀서의 영향을 랜덤화시킬 수 있으며, 재생 및 기지 텍스트 공격(replay and known-text attack)에 대해 원하는 보호를 제공할 수 있다. 이러한 보호는, 시퀀스가 충분히 길 때 또한 시퀀스에서의 위치가 비밀인 채로 있고 공격자에 의해 재설정 또는 재초기화될 수 없을 때, 아주 효과적이다. 시퀀서는 블록 및/키의 순서화 또는 동기화에 관련된 정보를 전달하는 데 사용될 수 있다. 시퀀서는 또한, 키가 저장되어 있지 않지만 필요에 따라 도출될 수 있는, 여러가지 롤링-코드 메카니즘을 구현하는 데 사용될 수 있다.
로크박스(298)에 대한 재생 공격을 방지하기 위해 또한, (컨텐츠에의 액세스를 위해 필요한) 키가 만료할 것으로 예정된 이후에, 공격자가 컨텐츠에의 불법 액세스를 획득하려고 시도하여 적절한 타이밍에서 로크박스(298)의 전원을 끄는(또한 켜는) 다른 공격을 방지하기 위해 비감소(즉, 단조 증가) 카운터(291)가 제공된다. 시도된 재생 공격에서, PDN 내부의 소프트웨어는 소프트웨어가 로크박스(298)로 전달한 메시지(예를 들어, 인그레스 또는 이그레스 노드로부터의 적법한 서명된 메시지)를 저장할 수 있으며, 인그레스 또는 이그레스 노드를 에뮬레이트하기 위해 나중에 그 메시지를 로크박스(298)로 전달한다. 비감소 카운터(291)(다른 대안으로서, 위조 방지 클럭 또는 다른 타이머에 의해 대체될 수 있음)는, 이러한 재생 공 격을 방지하기 위해, 표준의 암호 수단에 따라 사용될 수 있다.
비감소 카운터(291)(또는 그 대신의 위조 방지 클럭 또는 다른 타이머)도 역시, 예를 들어, 그의 사용이 지정된 시간 동안에만 허가되고 따라서 비밀이 미리 정해진 만료 시간을 갖는 제한이 있는 외부 소스(예를 들어, 컨텐츠 제공자)로부터 로크박스(298)가 비밀을 수신한 경우에, 미리 정해진 시간에 비밀(예를 들어, 키 데이터)을 삭제하기 위해, 로크박스(298)에 의해(예를 들어, 로크박스(298)의 마이크로프로세서(280)에 의해) 사용될 수 있다. 양호하게는, 카운터(291)는, 로크박스(298)가 이러한 기능을 비용-효과적인 방식으로 달성할 수 있게 해주기 위해, 가능한 한 간단하게 구성된다. 예를 들어, 카운터(291)는, 로크박스(298)가 가장 가까운 정수의 다중-초(예를 들어, 10초) 구간으로 반올림된 미리 정해진 만료 시간을 넘어 비밀의 불법 사용을 방지할 수 있게 해주는, 간단하고 저렴한 회로를 사용하여 구현될 수 있으며, 여기서 카운터(291)는, 로크박스(298)가 정확한 미리 정해진 만료 시간을 넘어 수분의 1초까지 비밀의 불법 사용을 방지할 수 있게 해주기 위해, 훨씬 더 복잡하고 고비용의 방식으로 구현될 필요가 있다. 다른 예로서, 카운터(291)는, 로크박스(298)가 며칠 정도의 허가된 사용 기간의 만료를 넘어 수초 이하 동안의 비밀의 불법 사용을 방지할 수 있게 해주는, 간단하고 저렴한 회로로서 구현될 수 있으며, 여기서 카운터(291)는 허가된 사용 기간의 만료를 넘어 단지 수분의 1초 동안의 비밀의 불법 사용을 방지하기 위해 훨씬 더 고비용의 회로로 구현될 필요가 있다. 카운터(291)는 기술된 유형의 공격에 대한 단지 제한된 보호만을 제공하도록 구현될 수 있다. 예를 들어, 카운터(291)는 전원을 켤 때(또는 전 원을 차단할 때) 리셋되지 않는 최상위 숫자(most significant digit) 및 전원을 켤 때 또는 전원을 차단할 때 리셋되는 최하위 숫자(least significant digit)를 가질 수 있으며, 따라서 공격자가 적절한 타이밍으로 로크박스의 전원을 켜고 또 전원을 차단함으로써 컨텐츠에의 짧은 양의(예를 들어, 몇초 분량의) 부가적인, 불법 액세스를 획득할 수 있게 된다.
카운터(291)는 로크박스의 전원을 끌 때 카운트가 0으로 복귀하지 않는 단조 증가 카운터일 수 있다. 다른 대안으로서, 로크박스(298)는 카운터(291)의 대체물로서 위조 방지 클럭(로크박스의 전원 차단 시에 리셋되지 않음)을 포함할 수 있다.
다른 대안으로서, 로크박스(298)는 카운터(291)나 타이머 어느 것도 포함하지 않으며, 그 대신에, 예를 들어, 만료 시간을 갖는 키를 언제 삭제할지를 결정하는 데 또는 재생 공격을 방지하는 데 사용하기 위한, 현재의 시간 데이터를 획득하기 위해 외부의 위조 방지 클럭에 주기적으로(또는 전원을 켤 때) 액세스하도록 구성되어 있다. 예를 들어, 로크박스(298)는, 로크박스(298)의 전원이 켜질 때마다 PDN의 소프트웨어로 하여금 인터넷에 로그온하여 정확한 시간에 액세스하게 하고 소프트웨어에 의해 인터넷으로부터 로크박스(298)로 중계되는 원하는 "시간 데이터"를 수신 및 복호화하기 위해, SSL 종단 회로(293)를 사용하도록 구성될 수 있다.
SSL 종단 회로(293)는, PDN 내부에 있든지 외부에 있든지 상관없이, 다른 장치와 통신하는 기능을 로크박스(298)에 제공한다. 회로(293)의 전형적인 구현예는 로크박스(298)가 PDN 소프트웨어를 통해(예를 들어, 소프트웨어를 실행하는 PC 및 로크박스(298)가 버스를 따라 연결되어 있는 경우, PCI 버스를 통해) 통신을 할 수 있게 해준다. 예를 들어, 로크박스(298)는 PDN 소프트웨어가, 로크박스(298) 외부의 PDN 기능(예를 들어, PDN의 PC의 TCP/IP 기능)을 사용하여, 인터넷에 로그온하고 인터넷을 통해 로크박스(298)에 메시지를 전송하게 하기 위해 SSL 종단 회로(293)를 사용할 수 있다. 또는, 로크박스(298)는, PDN 소프트웨어로 하여금 다른 방식으로 로크박스(298)와 PDN 내부 또는 외부의 하나 이상의 장치 간에 통신을 중계하게 하기 위해, SSL 종단 회로(293)를 사용할 수 있다. 로크박스(298)는, PDN 소프트웨어로 하여금 로크박스(298)와 PDN 내의 다른 로크박스 간의 통신을 중계하게 하기 위해, SSL 종단 회로(293)를 사용할 수 있다. PDN의 퍼스널 컴퓨터는, 통신을 달성하기 위해 필요에 따라 통신을 설정하는 데 TCP 계층을 사용하고 암호 기능(예를 들어, 임의의 필요한 인증)을 수행하는 데 SSL 계층을 사용하여, 인터넷을 통해 통신하기 위해 종래의 방식으로 구성될 수 있다. 로크박스(298) 외부의 장치는 (PDN의) PC 상에서 실행되는 운영 체제 소프트웨어(예를 들어, Windows 운영 체제)로 하여금, 그 장치가 암호화된 메시지를 인터넷을 통해 로크박스(298)의 SSL 종단 회로(293)로 전송하는 데 필요한 TCP 계층 기능을 수행하게 할 수 있다. 회로(293)는 메시지를 복호화 및 로크박스(298)의 응답(인터넷을 거쳐 운영 체제 소프트웨어를 통해 전송됨)을 암호화하는 데 필요한 SSL 계층 기능을 수행하게 된다. 회로(293)는 TCP/IP 계층을 구현하도록 구성될 필요가 없다. 오히려, PDN 소프트웨어는 필요에 따라 TCP 스택을 실행하고 TCP 스택 외부의 페이로드 를 회로(293)로 포워드할 수 있으며, 그에 따라 회로(293)는 최상위 레벨 SSL 프로토콜만을 구현하면 된다. 인터페이스 회로(295)는 회로(293) 및 PDN 소프트웨어를 통한 로크박스(298) 외부의 장치들과의 통신을 개시하도록 구성될 수 있다.
인터페이스 회로(295)는 로크박스(298)와 다른 장치들(PDN 내부에 있든 외부에 있든 상관없음) 간의 통신을 위한 기능을 제공한다. 예를 들어, 인터페이스 회로(295)는 단일의 링크(예를 들어, USB 링크, 1394 링크, WiFi 또는 다른 무선 링크, 및 이더넷 링크 중 하나)를 통해 로크박스(298)와 외부 장치 간의 통신을 가능하게 해주도록 구성될 수 있다. 다른 실시예들에서, 인터페이스 회로(295)는 2개 이상의 서로 다른 링크(예를 들어, USB 링크, 1394 링크, WiFi 링크, 및 이더넷 링크) 중 임의의 것을 통해 로크박스(298)와 외부 장치 간의 통신을 가능하게 해주도록 구성되어 있다.
도 22의 로크박스의 구조에 대한 많은 변형예가 생각된다. 예를 들어, 어떤 이러한 변형예에서, 구성요소(283, 284, 291, 293, 295) 중 하나 이상이 생략된다.
한 부류의 실시예들에서, 본 발명은 PDN에서(예를 들어, PDN의 노드로서) 사용하도록 구성되어 있는 장치(예를 들어, 원격 소스로부터 컨텐츠를 수신하는 셋톱 박스, 또는 비디오 수신기나 프로세서)이다. 각각의 이러한 장치는 본 발명의 PDN의 적어도 하나의 실시예에서 사용하도록 구성되어 있는 로크박스 회로 또한 인그레스(또는 이그레스) 회로를 포함한다. 도 23의 장치(300)는 이러한 장치의 예이다. N개까지의 서로 다른 원격 소스로부터 컨텐츠를 수신하는 셋톱 박스일 수 있는(그렇지만, 꼭 그럴 필요는 없음) 장치(300)는, 도시된 바와 같이 연결되어 있 는, 인터페이스 회로(301) 및 회로(302)를 포함한다. 회로(302)는 로크박스 회로 및 인그레스 회로(때때로 인그레스 유닛(302)이라고 함)를 포함한다. 장치(300)는 또한 선택적으로 다른 컴포넌트(도시 생략)를 포함한다. 인터페이스 회로(301)는 N개의 입력 컨텐츠 스트림(I1, I2,.., IN) 중 임의의 것을 수신하여 선택적으로 그에 대해 초기 프로세싱을 수행하며 또 입력 컨텐츠 스트림 중 수신된 것에 응답하여 컨텐츠 스트림(PI1, PI2,.., PIN) 중 하나를 유닛(302) 내부의 인그레스 회로로 어써트하도록 구성되어 있다. 회로(301)는 입력 컨텐츠 스트림의 "m"번째 것("Im")에 응답하여 "m"번째 컨텐츠 스트림("PIm")을 인그레스 유닛(302)의 입력으로 어써트한다. 입력 컨텐츠 스트림 각각은 서로 다른 포맷을 가지며, 각각은 서로 다른 컨텐츠 보호 프로토콜에 따라 암호화될 수 있다. 예를 들어, 하나의 입력 컨텐츠 스트림은 위성으로부터 수신되는 디지털 비디오일 수 있고, 다른 하나는 HDMI 링크를 통해 수신되는 HDMI 포맷 컨텐츠로 되어 있는 컨텐츠일 수 있으며, 기타 등등이 있다. 인그레스 유닛(392)으로 어써트되는 각각의 컨텐츠 스트림 "PIm"은 대응하는 입력 컨텐츠 스트림("Im")과 동일할 수 있거나, 대응하는 입력 컨텐츠 스트림의 처리된 버전일 수 있다. 인그레스 유닛(302) 내부의 입력 인터페이스(예를 들어, 도 20의 인터페이스(247)의 구현예)는 회로(301)로부터 인그레스 유닛(302)로 어써트되는 컨텐츠 스트림 중 임의의 것을 수신하고 또 각각의 수신된 컨텐츠 스트림을 인그레스 유닛(302) 내부의 전사 회로로 어써트하도록 구성되어 있다. 유닛(302) 내의 전사 회로는, 컨텐츠 스트림 PIm 중 임의의 것에 응답하여, 단일의 포맷을 갖는 전사된 컨텐츠 스트림("OUTPUT")을 출력하도록 구성되어 있다. 전사된 컨텐츠 스트림은, N개의 서로 다른 컨텐츠 스트림 PIm 중 어느 것이 인그레스 유닛(302)에 의해 전사되는지에 상관없이, 동일한 포맷을 갖는다.
도 24의 장치(310)는 이전의 단락에서 기술된 부류에 속하는 또하나의 예시적인 장치이다. 비디오 프로세서일 수 있는(그렇지만 꼭 그럴 필요는 없음) 장치(310)는, 도시된 바와 같이 연결되어 있는, 회로(311) 및 인터페이스 회로(312)를 포함한다. 회로(311)는 로크박스 회로 및 이그레스 회로(때로는, 이그레스 유닛(311)이라고 함)를 포함한다. 장치(310)는 또한 다른 컴포넌트(도시 생략)를 포함할 수 있다. 이그레스 유닛(311)은 단일의 제어된 컨텐츠 스트림("INPUT")을 수신 및 복호화하여 이러한 컨텐츠 스트림의 평문 버전을 생성하도록 구성되어 있다. 유닛(311)으로 어써트되는 제어된 컨텐츠 스트림은 도 23의 인그레스 유닛(302)으로부터 출력되는 전사된 컨텐츠 스트림일 수 있다. 이그레스 유닛(311)은 장치(310)에 의해 수신되는 단일의 입력 스트림에 응답하여 M개의 컨텐츠 스트림(O1, O2,...,OM)을 출력하도록 구성되어 있는 회로를 포함한다. 일반적으로, M개의 출력 스트림(O1, O2,...,OM) 각각은 서로 다른 포맷을 가지며, 이그레스 유닛(311)은 출력 스트림(O1, O2,...,OM)을 생성하기 위해 복호화 및 포맷화에 부가하여 동작(예를 들어, 재암호화)을 수행하도록 구성되어 있다. 인터페이스 회로(312)는 이그레스 유닛(311)으로부터 수신하는 컨텐츠 스트림(O1, O2,...,OM) 각각을 수신하여 이를 처리(예를 들어, 재포맷화 및/또는 증폭)하고 또 유닛(311)으로부터 수신하는 컨텐츠 스트림에 응답하여 M개의 처리된 출력 스트림(PO1, PO2,...,POM)을 출력하도록 구성되어 있다. 회로(312)는 유닛(311)으로부터의 "m"번째 컨텐츠 스트 림("Om")에 응답하여 "m"번째 컨텐츠 스트림 "POm"을 어써트한다. "m"번째 컨텐츠 스트림 "POm"은 대응하는 입력 스트림("Om")과 동일할 수 있거나 대응하는 입력 스트림("Om")의 처리된 버전일 수 있다. 일반적으로, 출력 스트림(PO1, PO2,...,POM) 각각은 서로 다른 포맷을 가지며(예를 들어, 한가지 이러한 출력 스트림은 DVI 링크를 통해 전송하기 위한 DVI 포맷으로 된 컨텐츠일 수 있으며, 다른 하나는 HDMI 링크를 통해 수신되는 HDMI 포맷 컨텐츠로 된 컨텐츠일 수 있고, 기타 등등이 있음), 출력 스트림 각각은 서로 다른 컨텐츠 보호 프로토콜에 따라 암호화될 수 있다. 따라서, 장치(310)는 단일의 포맷을 갖는 제어된 컨텐츠를 수신하고, 제어된 컨텐츠의 복호화된(평문) 버전을 발생하며, 또 평문 컨텐츠에 대해 부가의 동작(예를 들어, 포맷화 또한 선택적으로 재암호화)을 수행하여 M개의 출력 컨텐츠 스트림을 생성하도록 구성되어 있는 이그레스 회로를 포함한다. M개의 출력 컨텐츠 스트림 각각은 서로 다른 포맷을 가질 수 있으며, 서로 다른 컨텐츠 보호 프로토콜에 따라 암호화될 수 있다.
장치(300, 310) 각각이 본 발명에 따라 구성되어 있기 때문에(따라서, 단일의 컨텐츠 보호 프로토콜에 따라 암호화된 제어된 컨텐츠를, 그의 각각의 인그레스 유닛은 출력하고, 그의 각각의 이그레스 유닛은 수신함), 이들 장치는 서로 연결되어(장치(300)에 의해 발생된 출력 스트림이 장치(310)의 입력으로 어써트됨), N개의 서로 다른 포맷 중 임의의 것을 갖는 컨텐츠를 수신하고, 그에 응답하여 M개의 서로 다른 포맷 중 임의의 것을 갖는 출력 컨텐츠를 발생하며, 또 컨텐츠의 평문 버전을 보안 하드웨어 외부에(예를 들어, 한 장치 내부의 통합된 인그레스 회로 또 는 상대방 장치 내부의 통합된 이그레스 회로 외부에) 결코 노출시키지 않음으로써 컨텐츠를 보호할 수 있는 장치 쌍을 생성할 수 있다. 이러한 장치 쌍의 각각의 장치는, 단지 N배의 복잡도(단일의 포맷을 갖는 입력에 응답하여 N개의 포맷 중 임의의 것을 갖는 출력을 발생할 수 있거나 N개의 포맷 중 임의의 것을 갖는 입력에 응답하여 단일의 포맷을 갖는 출력을 발생할 수 있음) 또는 M배의 복잡도(단일의 포맷을 갖는 입력에 응답하여 M개의 포맷 중 임의의 것을 갖는 출력을 발생하거나 M개의 포맷 중 임의의 것을 갖는 입력에 응답하여 단일의 포맷을 갖는 출력을 발생할 수 있음)를 갖는다는 의미에서, 간단한 방식으로 구현될 수 있다. 이와 반대로, 장치 외부에 컨텐츠의 평문 버전을 결코 노출시키지 않음으로써 컨텐츠를 보호하면서 N개의 서로 다른 포맷 중 임의의 것을 갖는 컨텐츠를 수신하고 그에 응답하여 M개의 서로 다른 포맷 중 임의의 것을 갖는 출력 컨텐츠를 발생할 수 있는 종래의 장치는 더 큰 복잡도(즉, (N*M)배 복잡도)를 갖는다. 따라서, N 및 M 각각이 1보다 크고 또한 N 및 M 중 적어도 하나가 2보다 크다고 가정하면, 이 종래의 장치는 종래의 장치와 동일한 전체 능력을 갖는 본 발명의 장치 2개(같이 고려됨)보다 더 복잡하다. N 및 M 각각이 2보다 훨씬 더 클 때, 종래의 장치는 본 발명의 장치의 이러한 쌍(같이 고려됨)보다 훨씬 더 복잡하다.
PDN이 본 발명에 따라 구현되는 경우, PDN에서 보호될 컨텐츠의 평문 버전은 PDN의 임의의 외부에서 보이는 (액세스가능한) 링크, 인터페이스 또는 노드에 결코 존재하지 않는다. PDN은 또한 양호하게는, 인그레스 또는 이그레스 회로에 의해 사용하거나 전송하기 위한, 그의 인그레스 또는 이그레스 회로에 존재하는 비밀(예 를 들어, PDN에 의해 수신되는 컨텐츠의 전사를 위해 인그레스 회로에서 또는 제어된 컨텐츠의 복호화를 위해 이그레스 회로에서 사용되는 키 데이터)이 PDN 내부의 소프트웨어 또는 펌웨어에 의해 또는 PDN 외부의 임의의 개체에 의해 비암호화된 형태로 액세스가능하지 않도록 구현된다. 그렇지 않은 경우, PDN은 공격에 취약하게 된다. 양호한 실시예에서, PDN의 임의의 장치 상에서 실행되는 소프트웨어는 보호될 컨텐츠의 평문 버전에 또는 PDN 내부에서 컨텐츠를 보호하기 위해 이용되는 키 데이터의 평문 버전에 결코 액세스할 수 없다.
본 발명의 다른 측면은 시스템(이 시스템은 하드웨어 및 소프트웨어 둘다를 포함함)의 하드웨어 서브시스템에서 보안 방식으로 컨텐츠의 암호화 및 복호화를 수행하는 컨텐츠 보호 방법 및 장치이며, 시스템의 소프트웨어를, 하드웨어 서브시스템들 간에 메시지(일반적으로, 암호화된 메시지일 수 있음)를 전달하지만 메시지를 이해하지는 못하는 무해한 개체("중간자")로서 사용한다. 이들 메시지는 암호화된 비밀(예를 들어, 하드웨어 서브시스템 중 하나 이상에서 사용하기 위한 컨텐츠 키)을 나타내는 암호화된 메시지일 수 있지만, 이 소프트웨어는 메시지를 복호화하는 데 필요한 키를 갖지 않으며 다른 방식으로 메시지를 복호화할 수 없다. 소프트웨어는 전체 시스템의 보안 하드웨어 서브시스템들 간에 보안 채널을 구현하는 데 사용될 수 있으며, 이들 보안 채널은 보호될 컨텐츠에 대한 "중간자" 공격에 영향을 받지 않는다. 그렇지만, 시스템은 메시지를 전달하기 위해 중간자로서 소프트웨어를 사용한다.
한 부류의 실시예에서, 본 발명은 PDN에서의 컨텐츠 보호 방법이며, 이 방법 은, PDN의 인그레스 하드웨어(ingress hardware)에서 PDN에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠(controlled content)를 발생하는 단계, 및 PDN의 이그레스 하드웨어(egress hardware)에서 제어된 컨텐츠를, 평문 형태의 컨텐츠나 컨텐츠 및 제어된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 인그레스 하드웨어 및 이그레스 하드웨어 중 적어도 하나에 의해 사용되는 비밀(secret) 중 어느 것도 PDN의 임의의 구성요소 상에서 실행되는 소프트웨어 또는 펌웨어에 의해 액세스가능하지 않도록 또한 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 PDN 내부에서 결코 평문 형태로 존재하지 않도록 복호화하여, 복호화된 컨텐츠를 발생하는 단계를 포함하며, 그에 의해, 제어된 컨텐츠가 PDN의 구성요소들 간에 자유롭게 전송될 수 있고 또 PDN 내에 저장될 수 있다. 어떤 이러한 실시예에서, 인그레스 하드웨어는 집적 회로이고, 이그레스 하드웨어는 또하나의 집적 회로이며, 컨텐츠는, 컨텐츠가 집적 회로 내부에서를 제외하고는 PDN 내부에 결코 평문 형태로 존재하지 않도록, PDN 내부에 유지된다.
다른 부류의 실시예들에서, 본 발명은 컨텐츠 보호 방법으로서, 이 방법은 PDN의 인그레스 하드웨어(ingress hardware)에서 PDN에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠(controlled content)를 발생하는 단계, PDN의 이그레스 하드웨어(egress hardware)에서 제어된 컨텐츠를 복호화하여 복호화된 컨텐츠를 발생하는 단계, 및 복호화된 컨텐츠나 컨텐츠 및 제어된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 인그레스 하드웨어 및 이그레스 하드웨어 중 어느 하나에 의해 사용되는 비밀(secret) 중 어느 것도 (이러한 비밀의 암호화된 버전이 소프트웨 어 또는 펌웨어에 의해 액세스가능할 수 있는 경우를 제외하고는) 소프트웨어 또는 펌웨어에 의해 액세스가능하지 않도록, 복호화된 컨텐츠 및 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를, 이그레스 하드웨어로부터 PDN 외부의 개체(예를 들어, 장치 또는 시스템)로 어써트(assert)하는 단계를 포함한다. 일반적으로, 인그레스 하드웨어는 집적 회로이고, 이그레스 하드웨어는 또하나의 집적 회로이다.
본 발명의 다른 측면은 PDN에서의 컨텐츠 보호 방법, 본 발명의 PDN의 임의의 실시예에 의해 구현될 수 있는 방법(또는 로크박스 회로, 인그레스 회로 및 이그레스 회로 중 하나 이상), PDN에서 사용하기 위한 로크박스 회로(예를 들어, 로크박스 칩), PDN에서 사용하기 위한 인그레스 회로(예를 들어, 인그레스 칩), PDN에서 사용하기 위한 이그레스 회로(예를 들어, 이그레스 칩), 퍼스널 컴퓨터에서 사용하기 위한 버스(예를 들어, PCI 버스)를 따라 연결되어 있는 인그레스, 로크박스 및 이그레스 칩을 포함하는 카드(예를 들어, 멀티미디어 그래픽 카드), 및 PDN에서 사용하도록 구성되어 있고 로크박스 회로, 인그레스 회로 및 이그레스 회로 중 적어도 하나를 포함하는 장치(예를 들어, 셋톱 박스, 비디오 수신기, 또는 비디오 프로세서)이다.
그 다음에, 본 발명에 따라 (예를 들어, 이들 간에 보안 채널을 설정하기 위해) 로크박스들 간에 수행될 수 있는 교환의 특정의 예에 대해 설명한다. 로크박스는 (예를 들어, 로크박스를 포함하는 노드들을 상호 인증하기 위해 또한 데이터를 교환하기 위해) 그 자신들 간의 링크, 채널, 또는 연결을 형성할 수 있다. 이러한 링크, 채널 또는 연결("관계")가 원하는 목표를 달성하기 위해 필요에 따라 형성, 변경, 파괴, 및 재형성된다.
이하의 표기법이 예들 중 몇개에서 사용된다.
"PuKi[text]"는 텍스트가 개시자의 공개키로 암호화되어 있음을 나타낸다.
"PrKi[text]"는 텍스트가 개시자의 비밀키로 암호화되어 있음을 나타낸다.
"PuKr[text]"는 텍스트가 응답자의 공개키로 암호화되어 있음을 나타낸다.
"PrKr[text]"는 텍스트가 응답자의 비밀키로 암호화되어 있음을 나타낸다.
"SHA-1[text]"는 텍스트의 SHA-1 다이제스트가 형성되어 있음을 나타낸다.
어떤 실시예들에서, 메시지 다이제스트는 (SHA-1 모드보다는) CBS-MAC-AES 모드의 어떤 변형을 사용하여 발생된다. 이러한 실시예에서, 메시지(예를 들어, 노드들 간에 전송되는 메시지)를 암호화하는 데 사용되는 AES 암호화기는 또한 각각의 메시지의 "메시지 인증 코드"(다이제스트)를 생성하는 데 사용된다. 표현 "CBC-MAC-AES"에서, "CBC"는 한 블록의 암호 출력이 그 다음 블록에 대한 키로서 사용되는 것을 생각하는 "암호 블록 체인화"를 말한다.
어떤 실시예에서, 로크박스는, 하나의 로크박스가 또하나의 로크박스와 통신하려고 시도할 때, 초기의 "상호 소개" 교환을 수행한다. 이러한 교환은 공개 단계(publication phase), 그에 뒤이은 개시 단계(initiation phase), 및 응답 단계(response phase)를 포함할 수 있다.
이러한 공개 단계에서, 하나의 로크박스는 그 자신에 관한 어떤 정보를, 그 정보를 사용할 필요가 있을 수 있는 (PDN의 다른 노드들 내부의) 다른 로크박스들에 액세스가능한 방식으로, "공개"한다. 이 정보는 로크박스를 포함하는 노드의 " 공개"키 및 네트워크 주소 정보(예를 들어, IP 주소, 포트, 프록시 정보, 기타 등등)를 포함할 수 있다. 공개된 정보는 이하의 방식으로 서명될 수 있다.
[PuKi + 정보 + PrKi[SHA-1[정보]]]
공개된 정보 중 어느 것도 비밀로 유지될 필요가 없기 때문에, 이 정보는 양호하게는 프라이버시 및 보안을 이유로 뒤죽박죽으로 공유되어서는 안된다. 따라서, 어떤 실시예들에서, 정보의 "공개"는 구체적으로는 일반 세계에 대한 공개를 의미하지 않으며, 그 대신에 제1 노드가, 제1 노드가 통신하고자 하는 적어도 하나의 다른 노드에 대해 공개하는 것을 의미한다. 이것은, 동작을 검증하기 위해 필요에 따라 버튼을 누르거나 키를 돌리거나 패스워드를 타이핑할 수 있는, 제어하는 사용자의 요청으로 일어날 수 있다.
공개 이후에, 하나의 노드는 개시 메시지를 전송함으로써 다른 노드와의 관계를 개시할 수 있다. 이 개시 메시지는 양호하게는 이하의 정보를 포함한다.
개시자 노드의 공개키.
선택적으로, 개시자 노드의 인증서(개시 단계가 이전의 관계의 회복인 것으로 알려져 있지 않은 한, 이 인증서는 포함되어 있어야만 한다).
개시자 노드의 능력.
원하는 관계의 유형(예를 들어, 정보 교환, "가입 네트워크" 관계, 이전 관계의 회복(예를 들어, 새로운 키 데이터를 교환, 상태를 갱신 또는 기간을 갱신하기 위한 것임), 또는 이전 관계의 취소).
요청된 기간(예를 들어, 일회(이 교환에 대해서만), 일시적(짧은 구간 또는 기간 동안), 또는 계속(취소될 때까지)).
개시 메시지에서, 공개키 및 인증서(포함되어 있는 경우)는 암호화되지 않는다. 데이터의 나머지는 비대칭적으로 암호화될 수 있다. 따라서, 마지막 형태는 다음과 같을 수 있다.
[PuKi + PrKi[PuKr[PuKi + 메시지]] + 인증서(포함되어 있는 경우)]
개시 메시지를 수신할 시에, 응답자 노드는 그 메시지를 복호화하고 (예상된 형태를 검사함으로써) 컨텐츠를 검증한다. 요청이 적절한 형태를 갖는 것으로 만족된 경우, 응답자는 요청을 분석하고 이하의 결과 중 임의의 것을 반환할 수 있다.
예(연결이 수락되었음을 알려줌)
아니오(연결이 거부되었음)
재시도(이 때 일시적인 이유로 연결이 수락될 수 없음, 예를 들어, 인증서가 검증될 필요가 있기 때문에, 또는 제어하는 사용자가 안내를 위해 요청될 필요가 있기 때문에)
이러한 "예" 응답은 차후의 통신에서 사용하기 위한 세션 키, 세션 키의 범위를 제한하는 구간 코드, 및 (선택적으로) 응답자의 인증서를 포함할 수 있다. 이 인증서는, 응답이 이전의 관계의 회복인 것으로 알려지지 않는 한, 포함되어 있어야만 한다.
"아니오" 응답은 설명 코드를 포함할 수 있고, 및/또는 연결이 수락가능할 수 있는 대안적인 상태/능력을 나타낼 수 있다.
"재시도" 응답은 설명 코드 및/또는 제안된 구간 코드를 포함할 수 있다.
각각의 응답("예","아니오" 및 "재시도" 응답 어느 것이든)은 다음과 같이 서명 및 암호화될 수 있다.
[PuKr + PrKr[PuKi[PuKr + 메시지]] + 인증서(포함되어 있는 경우)]
로크박스들 간의 다른 유형의 교환에서, 인증서가 요청되거나 적어도 하나의 인증서가 교환된다. 이러한 교환은 계층적 방식으로 구현될 수 있다(예를 들어, 하나의 로크박스가 제2 로크박스에 인증서를 요청할 수 있고, 제2 로크박스가 그 요청을 제3 로크박스로 중계하고 또 다시 제3 로크박스의 응답을 중계할 수 있다). 예를 들어, (본질적으로 칩에 하드-코딩될 수 있는 최종 인증서(ultimate certificate)를 제외하고는) 모든 인증서에 만료일을 부착함으로써 PDN에서 취소를 구현하는 방법을 단순화하기 위해 인증서 요청/교환 유형의 교환이 수행될 수 있다. 이러한 최종 인증서는 인증 기관의 공개키일 수 있고, 2개 이상의 최종 인증서가 있을 수 있다.
로크박스에 의해 사용되는 인증서는 이하의 정보를 포함할 수 있다.
인증된 개체의 공개키
인증된 개체의 장치 유형을 식별해주는 정보
만료일자 및 시간
인증 기관의 공개키
인증 기관에 의해 생성된, 각각의 인증서에 대한 디지털 서명
로크박스들 간의 다른 유형의 교환에서, 정보가 요청 또는 교환된다. PDN에 가입하는 임의의 노드는 일반적으로, 컨텐츠 및 키를 효율적으로 또는 높은 보안으로 공유하는 것을 용이하게 해주기 위해, PDN의 나머지 멤버들에 관하여 더 많이 알 필요가 있다. 이 프로세스는 "부트스트래핑"이라고 할 수 있으며, (허용된 경우) 각각의 노드가 PDN의 나머지 노드들에 소개될 때 행해지며, 각각의 노드쌍은 인증 교환을 수행하도록 허용되어 있다. 노드를 정의하는 정보는 양호하게는 그 자체가 PDN 내부의 (보호될) 컨텐츠와 동일한 방식으로 처리된다(예를 들어, 이 정보는 컨텐츠를 전사하는 데 사용된 것과 동일한 프로토콜에 따라 암호화될 수 있고, 컨텐츠에 적용하는 동일한 용도 규칙에 의해 보호될 수 있다).
PDN의 로크박스들에 의해 요청되거나 이들 간에 교환될 수 있는 특정 유형의 정보의 예는 이하의 것을 포함한다.
네트워크 트리 구조 정보(예를 들어, PDN 내의 노드들의 수 및 종류, 그리고 그의 지리적 위치)
노드 식별자 및 주소 정보(예를 들어, IP 주소, 프록시, 이메일 및 도메인, 장치 이름 및 설명, 그리고 지리적 위치)
사용자 식별자 및 개인 정보(예를 들어, "부모" 통제 또는 다른 액세스 제어를 구현하기 위한 정보, 및/또는 개인 보기 이력)
사용자 ID 및 주소 정보를 제어하기 위한 정보(예를 들어, 현장 거래를 위해 결재하는 데 사용하기 위한 신용 카드 번호)
본 발명의 실시예들이 많은 서로 다른 유형 중 하나 이상의 컨텐츠를 전사하 도록 구성될 수 있는 것, 및 전사된 컨텐츠가 많은 서로 다른 포맷 중 임의의 것을 가질 수 있는 것이 생각된다. 본 발명의 실시예들이 공통적으로 사용되는 포맷(들)을 갖는 컨텐츠를 처리하도록 구성될 수 있지만, 예를 들어, 새로운 형태의 컨텐츠를 보호하고 및/또는 컨텐츠에 새로운 유형의 지적 재산권 보호를 제공하는 것이 필요하게 되기 때문에, (시간의 경과에 따라) 이러한 실시예들이 다른 포맷의 컨텐츠를 처리하고 또 컨텐츠 포맷들 간의 더 많은 변환을 실시하도록 수정 또는 보완될 수 있는 것이 생각된다.
제1 항목이 제2 항목을 "포함한다"는 표현은, 본 명세서(청구 범위를 포함함)에서, 제1 항목이 제2 항목이거나 그를 포함하는 것을 나타내는 데 사용된다.
본 발명의 어떤 실시예들이 본 명세서에 예시되고 기술되어 있지만, 본 발명이 청구항에 의해 정의되고 도시되고 기술된 특정의 실시예로 한정되지 않는다는 것을 잘 알 것이다.

Claims (117)

  1. 개인 디지털 네트워크에서의 컨텐츠 보호 방법으로서,
    상기 개인 디지털 네트워크의 인그레스 하드웨어(ingress hardware)에서 상기 개인 디지털 네트워크에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠(controlled content)를 발생하는 단계, 및
    평문 형태의 컨텐츠나 상기 컨텐츠의 임의의 버전에 대해 허가된 동작을 수행하기 위해 상기 인그레스 하드웨어 및 상기 이그레스 하드웨어(egress hardware) 중 적어도 하나에 의해 사용되는 임의의 비밀(secret) 중 어느 것도 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어에 의해 액세스가능하지 않도록 또한 상기 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 상기 개인 디지털 네트워크의 이그레스 하드웨어에서 상기 제어된 컨텐츠를 복호화하여, 복호화된 컨텐츠를 발생하는 단계를 포함하며,
    그에 의해, 상기 제어된 컨텐츠가 상기 개인 디지털 네트워크의 구성요소들 간에 자유롭게 전송될 수 있고 또 상기 개인 디지털 네트워크 내에 저장될 수 있는 것인 개인 디지털 네트워크에서의 컨텐츠 보호 방법.
  2. 제1항에 있어서, 상기 복호화된 컨텐츠 및 상기 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를, 상기 이그레스 하드웨어로부터 상기 개인 디지털 네트워크 외부의 개체로 어써트(assert)하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 복호화된 컨텐츠 및 상기 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를 상기 개인 디지털 네트워크 내에서 소비하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서, 상기 소비하는 단계는 상기 복호화된 컨텐츠 및 상기 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를, 상기 개인 디지털 네트워크 내의 장치 상에 디스플레이하는 단계를 포함하는 것인 방법.
  5. 제1항에 있어서, 상기 인그레스 하드웨어는 집적 회로이고,
    상기 이그레스 하드웨어는 또하나의 집적 회로이며,
    상기 컨텐츠는, 상기 컨텐츠가 집적 회로 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 상기 개인 디지털 네트워크 내에 유지되는 것인 방법.
  6. 제1항에 있어서, 상기 컨텐츠는 디지털 비디오 데이터를 포함하는 것인 방법.
  7. 제1항에 있어서, 상기 전사하는 단계 및 상기 복호화하는 단계는, 상기 비밀 이 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되고 있는 펌웨어에 의해 액세스가능하지 않도록 또한 상기 비밀이 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 평문 형태로 존재하지 않도록, 수행되는 것인 방법.
  8. 개인 디지털 네트워크에서의 컨텐츠 보호 방법으로서,
    상기 개인 디지털 네트워크의 인그레스 노드(ingress node)에서 상기 개인 디지털 네트워크에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하는 단계, 및
    상기 컨텐츠나 상기 컨텐츠의 임의의 버전에 대해 허가된 동작을 수행하기 위해 상기 인그레스 노드 및 상기 이그레스 노드 중 적어도 하나에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 보안 서브시스템 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 평문 형태로 존재하지 않도록, 상기 개인 디지털 네트워크의 이그레스 노드(egress node)에서 상기 제어된 컨텐츠를 복호화하여, 복호화된 컨텐츠를 발생하는 단계를 포함하는 개인 디지털 네트워크에서의 컨텐츠 보호 방법.
  9. 제8항에 있어서, 상기 평문 형태의 컨텐츠는 상기 인그레스 노드 및 상기 이그레스 노드 중 하나 내부에 안전하게 내장된 프로세서 상에서 실행되는 펌웨어가 액세스할 수 있게 되어 있는 것인 방법.
  10. 제8항에 있어서, 적어도 하나의 상기 비밀은 상기 인그레스 노드 및 상기 이그레스 노드 중 하나 내부에 안전하게 내장된 프로세서 상에서 실행되는 펌웨어가 액세스할 수 있게 되어 있는 것인 방법.
  11. 제8항에 있어서, 상기 컨텐츠를 전사하는 단계 및 상기 제어된 컨텐츠를 복호화하는 단계는, 상기 컨텐츠나 상기 컨텐츠에 대해 허가된 동작을 수행하기 위해 상기 인그레스 하드웨어 및 상기 이그레스 하드웨어 중 적어도 하나에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어에 의해 평문 형태로 액세스가능하지 않도록 또한 상기 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 수행되는 것인 방법.
  12. 컨텐츠 보호 방법으로서,
    상기 개인 디지털 네트워크의 인그레스 하드웨어에서 개인 디지털 네트워크에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하는 단계,
    상기 개인 디지털 네트워크의 이그레스 하드웨어에서 상기 제어된 컨텐츠를 복호화하여 복호화된 컨텐츠를 발생하는 단계, 및
    상기 복호화된 컨텐츠나 상기 컨텐츠 및 상기 제어된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 상기 인그레스 하드웨어 및 상기 이그레스 하드 웨어 중 어느 하나에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어에 의해 액세스가능하지 않도록, 상기 복호화된 컨텐츠 및 상기 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를, 상기 이그레스 하드웨어로부터 상기 개인 디지털 네트워크 외부의 개체로 어써트하는 단계를 포함하는 컨텐츠 보호 방법.
  13. 제12항에 있어서, 상기 인그레스 하드웨어는 집적 회로이고,
    상기 이그레스 하드웨어는 또하나의 집적 회로이며,
    상기 컨텐츠는, 상기 컨텐츠가 집적 회로 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 상기 개인 디지털 네트워크 내에 유지되는 것인 방법.
  14. 제12항에 있어서, 상기 컨텐츠는 디지털 비디오 데이터를 포함하는 것인 방법.
  15. 제12항에 있어서, 상기 전사하는 단계 및 상기 복호화하는 단계는, 상기 비밀이 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되고 있는 펌웨어에 의해 액세스가능하지 않도록 또한 상기 비밀이 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 평문 형태로 존재하지 않도록, 수행되는 것인 방법.
  16. 컨텐츠 보호 방법으로서,
    개인 디지털 네트워크의 로크박스(lockbox)로부터, 이그레스 하드웨어에 의해, 획득된 적어도 하나의 비밀을 사용하여 상기 개인 디지털 네트워크의 이그레스 노드의 이그레스 하드웨어에서 컨텐츠를 복호화하여, 복호화된 컨텐츠를 발생하는 단계를 포함하는 컨텐츠 보호 방법.
  17. 제16항에 있어서, 상기 복호화된 컨텐츠 및 상기 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를, 상기 이그레스 노드로부터 상기 개인 디지털 네트워크 외부의 개체로 어써트하는 단계를 더 포함하는 방법.
  18. 제16항에 있어서, 상기 개인 디지털 네트워크는 상기 이그레스 노드와 별개인 제2 노드를 포함하고,
    상기 제2 노드는 상기 로크박스를 포함하며,
    상기 방법은,
    상기 비밀이 상기 이그레스 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 상기 이그레스 노드가 수행하도록 허가되어 있는 것으로 판정한 후에, 상기 로크 박스가 상기 비밀을 상기 이그레스 노드로 전송하는, 상기 로크박스와 상기 이그레스 노드 간의 교환을 수행하는 단계를 더 포함하는 것인 방법.
  19. 개인 디지털 네트워크에서의 컨텐츠 보호 방법으로서,
    (a) 상기 개인 디지털 네트워크에 들어오는 컨텐츠를, 상기 컨텐츠가 상기 네트워크의 보안 서브시스템 내부에서를 제외하고는 상기 네트워크 내부에서 평문 형태로 결코 존재하지 않도록 또한 상기 네트워크의 구성요소가 상기 네트워크의 로크박스 유닛으로부터 상기 컨텐츠의 평문 버전을 발생하는 데 필요한 비밀을 먼저 획득하지 않고서는 상기 평문 버전을 발생하지 않게 구성되도록, 암호화된 형태로 유지하는 단계, 및
    (b) 상기 단계 (a) 이후에, 상기 네트워크의 이그레스 하드웨어에서 상기 컨텐츠의 평문 버전을 발생하는 단계를 포함하며,
    상기 단계 (b)는, 상기 컨텐츠나 상기 컨텐츠의 임의의 버전에 대해 허가된 동작을 수행하기 위해 상기 이그레스 하드웨어에 의해 사용되는 임의의 비밀 중 어느 것도 상기 네트워크의 보안 서브시스템 내부에서를 제외하고는 상기 네트워크 내부에서 평문 형태로 존재하지 않도록, 수행되는 것인 개인 디지털 네트워크에서의 컨텐츠 보호 방법.
  20. 제19항에 있어서, 상기 단계 (a) 및 (b)는, 상기 컨텐츠나 상기 컨텐츠의 임의의 버전에 대해 허가된 동작을 수행하기 위해 상기 이그레스 하드웨어에 의해 사용되는 임의의 비밀 중 어느 것도 상기 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어에 의해 평문 형태로 액세스가능하지 않도록 또한 상기 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 네트워크 내부에서 결코 평문 형태로 존 재하지 않도록, 수행되는 것인 방법.
  21. 개인 디지털 네트워크에서의 컨텐츠 보호 방법으로서,
    (a) 상기 개인 디지털 네트워크에 들어오는 컨텐츠를, 상기 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 평문 형태로 결코 존재하지 않도록 또한 상기 개인 디지털 네트워크의 구성요소가 상기 개인 디지털 네트워크의 로크박스 유닛으로부터 상기 암호화된 컨텐츠의 평문 버전을 발생하는 데 필요한 비밀을 먼저 획득하지 않고서는 상기 평문 버전을 발생하지 않게 구성되도록, 암호화된 형태로 유지하는 단계, 및
    (b) 상기 단계 (a) 이후에, 상기 개인 디지털 네트워크의 이그레스 하드웨어에서 상기 암호화된 컨텐츠를, 평문 형태의 컨텐츠나 상기 복호화된 컨텐츠 및 상기 암호화된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 상기 이그레스 하드웨어에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어에 의해 액세스가능하지 않도록, 복호화하여 복호화된 컨텐츠를 발생하는 단계를 포함하며,
    상기 단계 (a) 및 (b)는, 상기 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 수행되는 것인 개인 디지털 네트워크에서의 컨텐츠 보호 방법.
  22. 제21항에 있어서, 상기 이그레스 하드웨어는 집적 회로이고,
    상기 단계 (a)는, 상기 컨텐츠가 상기 개인 디지털 네트워크의 집적 회로 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 수행되는 것인 방법.
  23. 제21항에 있어서, 상기 복호화된 컨텐츠 및 상기 복호화된 컨텐츠의 처리된 버전 중 적어도 하나를, 상기 이그레스 하드웨어로부터 상기 개인 디지털 네트워크 외부의 개체로 어써트하는 단계를 더 포함하는 방법.
  24. 제21항에 있어서, 상기 컨텐츠는 디지털 비디오 데이터를 포함하는 것인 방법.
  25. 개인 디지털 네트워크로서,
    로크박스,
    상기 개인 디지털 네트워크에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있는 인그레스 하드웨어, 및
    상기 로크박스로부터 획득된 적어도 하나의 비밀을 사용하여 상기 제어된 컨텐츠를 복호화하여, 상기 컨텐츠의 평문 버전을 발생하도록 구성되어 있는 이그레스 하드웨어를 포함하는 개인 디지털 네트워크.
  26. 제25항에 있어서, 상기 이그레스 하드웨어는 상기 컨텐츠의 상기 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어도 하나를 상기 개인 디지털 네트워크 외부의 개체, 디스플레이 장치, 및 재생 장치 중 적어도 하나로 어써트하도록 구성되어 있는 것인 개인 디지털 네트워크.
  27. 제25항에 있어서, 상기 개인 디지털 네트워크는, 상기 컨텐츠나 상기 컨텐츠의 임의의 버전에 대해 허가된 동작을 수행하기 위해 상기 인그레스 하드웨어 및 상기 이그레스 하드웨어 중 적어도 하나에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 보안 서브시스템 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 평문 형태로 존재하지 않도록, 구성되어 있는 것인 개인 디지털 네트워크.
  28. 제25항에 있어서, 상기 개인 디지털 네트워크는, 평문 형태의 상기 컨텐츠나 상기 컨텐츠 및 상기 제어된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 상기 인그레스 하드웨어 및 상기 이그레스 하드웨어 중 적어도 하나에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어가 액세스할 수 없도록 또한 상기 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 구성되어 있는 것인 개인 디지털 네트워크.
  29. 제28항에 있어서, 상기 개인 디지털 네트워크는, 상기 비밀이 상기 개인 디 지털 네트워크의 임의의 구성요소 상에서 실행되는 펌웨어에 의해 액세스가능하지 않도록 또한 상기 비밀이 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 평문 형태로 존재하지 않도록, 구성되어 있는 것인 개인 디지털 네트워크.
  30. 제25항에 있어서, 상기 인그레스 하드웨어는 집적 회로이고,
    상기 이그레스 하드웨어는 또하나의 집적 회로이며,
    상기 인그레스 하드웨어나 상기 이그레스 하드웨어 중 어느 것도 소프트웨어를 실행하도록 구성된 프로그램가능 프로세서를 포함하는 것인 개인 디지털 네트워크.
  31. 제25항에 있어서, 상기 인그레스 하드웨어는 펌웨어를 실행하는 적어도 하나의 마이크로프로세서를 포함하는 집적 회로이고,
    상기 이그레스 하드웨어는 펌웨어를 실행하는 적어도 하나의 마이크로프로세서를 포함하는 또하나의 집적 회로이며,
    상기 인그레스 하드웨어나 상기 이그레스 하드웨어 어느 것도 소프트웨어를 실행하도록 구성된 프로그램가능 프로세서를 포함하지 않는 것인 개인 디지털 네트워크.
  32. 제25항에 있어서, 상기 로크박스는 상기 인그레스 하드웨어에 연결되어 상기 인그레스 하드웨어에 키를 제공하도록 구성되어 있으며,
    상기 인그레스 하드웨어는, 상기 키를 사용하지만 상기 키를 영속적으로 저장하지는 않고, 상기 암호화된 컨텐츠를 전사하도록 구성되어 있는 것인 개인 디지털 네트워크.
  33. 제25항에 있어서, 상기 제어된 컨텐츠를 수신하고 또 상기 제어된 컨텐츠 및 상기 제어된 컨텐츠의 처리된 버전 중 적어도 하나를 상기 이그레스 하드웨어로 어써트하기 위해 연결되어 있는 적어도 하나의 장치를 더 포함하는 개인 디지털 네트워크.
  34. 제33항에 있어서, 상기 장치는 데이터 저장 유닛인 것인 개인 디지털 네트워크.
  35. 제33항에 있어서, 상기 장치는 비디오 프로세서인 것인 개인 디지털 네트워크.
  36. 개인 디지털 네트워크로서,
    인그레스 노드 내의 하드웨어에서 보안 방식으로 상기 개인 디지털 네트워크에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있는 적어도 하나의 인그레스 노드,
    이그레스 노드 내의 하드웨어에서 보안 방식으로 상기 제어된 컨텐츠를 복호화하여, 상기 컨텐츠의 평문 버전을 발생하고 또한 상기 컨텐츠의 상기 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어도 하나를 상기 개인 디지털 네트워크 외부의 개체, 디스플레이 장치, 및 재생 장치 중 적어도 하나로 어써트하도록 구성되어 있는 적어도 하나의 이그레스 노드, 및
    로크박스를 포함하는 제3 노드를 포함하며,
    상기 로크박스는 상기 허가된 동작을 수행하기 위해 적어도 하나의 상기 인그레스 노드가 필요로 하는 적어도 하나의 비밀을 저장하도록 구성되어 있고,
    상기 로크박스 및 각각의 상기 인그레스 노드는 적어도 하나의 보안 채널을 통해 그들 간에 비밀을 교환하도록 구성되어 있으며,
    상기 로크박스 및 각각의 상기 이그레스 노드는 적어도 하나의 보안 채널을 통해 그들 간에 비밀을 교환하도록 구성되어 있는 것인 개인 디지털 네트워크.
  37. 제36항에 있어서, 상기 인그레스 노드는 펌웨어를 실행하는 적어도 하나의 마이크로프로세서를 포함하는 집적 회로이고,
    상기 이그레스 노드는 펌웨어를 실행하는 적어도 하나의 마이크로프로세서를 포함하는 또하나의 집적 회로이며,
    상기 인그레스 노드나 상기 이그레스 노드 또는 상기 로크 박스 중 어느 것도 소프트웨어를 실행하도록 구성되어 있는 프로그램가능 프로세서를 포함하지 않는 것인 개인 디지털 네트워크.
  38. 제36항에 있어서, 상기 인그레스 노드는, 평문 형태의 상기 컨텐츠가 상기 인그레스 노드 외부의 하드웨어 또는 소프트웨어에 의해 액세스가능하지 않도록, 상기 개인 디지털 네트워크에 들어오는 상기 암호화된 컨텐츠를 전사하도록 구성되어 있는 것인 개인 디지털 네트워크.
  39. 제36항에 있어서, 상기 제어된 컨텐츠를 수신하고 상기 제어된 컨텐츠 및 상기 제어된 컨텐츠의 처리된 버전 중 적어도 하나를 상기 이그레스 노드로 어써트하도록 연결되어 있는 적어도 하나의 장치를 더 포함하는 개인 디지털 네트워크.
  40. 제39항에 있어서, 상기 장치는 데이터 저장 유닛인 것인 개인 디지털 네트워크.
  41. 제39항에 있어서, 상기 장치는 비디오 프로세서인 것인 개인 디지털 네트워크.
  42. 제36항에 있어서, 상기 개인 디지털 네트워크는, 상기 로크박스, 상기 인그레스 노드 및 상기 이그레스 노드 중 임의의 것에 의해 사용되거나 그로 전송하기 위한 상기 로크박스, 상기 인그레스 노드 및 상기 이그레스 노드 중 임의의 것에 존재하는 비밀이 상기 로크박스, 상기 인그레스 노드 및 상기 이그레스 노드 중 임 의의 것 사이에서 비암호화된 형태로 전송되지 않도록 또한 이러한 비밀이 상기 개인 디지털 네트워크 또는 상기 개인 디지털 네트워크 외부의 임의의 개체 내의 소프트웨어에 의해 비암호화된 형태로 액세스될 수 없도록, 구성되어 있는 것인 개인 디지털 네트워크.
  43. 제42항에 있어서, 상기 개인 디지털 네트워크는, 상기 비밀이 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 펌웨어에 의해 액세스될 수 없도록 또한 상기 비밀이 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 평문 형태로 존재하지 않도록, 구성되어 있는 것인 개인 디지털 네트워크.
  44. 제36항에 있어서, 각각의 상기 인그레스 노드는 상기 컨텐츠에 대해 허가된 동작만을 수행하도록 구성되어 있고,
    각각의 상기 이그레스 노드는 상기 제어된 컨텐츠에 대해 허가된 동작만을 수행하도록 구성되어 있으며,
    각각의 상기 인그레스 노드 및 각각의 상기 이그레스 노드는 상기 허가된 동작 중 임의의 것을 수행하기 이전에 상기 로크박스로부터의 적어도 하나의 비밀을 필요로 하는 것인 개인 디지털 네트워크.
  45. 제44항에 있어서, 상기 로크박스는, 상기 이그레스 노드가 상기 비밀이 상기 이그레스 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 상기 로크박스가 판정하지 않는 한, 상기 이그레스 노드에 상기 비밀을 제공하지 않도록, 구성되어 있는 것인 개인 디지털 네트워크.
  46. 제44항에 있어서, 상기 로크박스는, 상기 이그레스 노드와의 인증 교환(authentication exchange)의 결과로서, 상기 이그레스 노드가 상기 비밀이 상기 이그레스 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 상기 로크박스가 판정하지 않는 한, 상기 이그레스 노드에 상기 비밀을 제공하지 않도록, 구성되어 있는 것인 개인 디지털 네트워크.
  47. 제44항에 있어서, 상기 로크박스는, 상기 인그레스 노드가 상기 비밀이 상기 인그레스 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 상기 로크박스가 판정하지 않는 한, 상기 인그레스 노드에 상기 비밀을 제공하지 않도록, 구성되어 있는 것인 개인 디지털 네트워크.
  48. 제44항에 있어서, 상기 인그레스 노드와의 인증 교환의 결과로서, 상기 인그레스 노드가 상기 비밀이 상기 인그레스 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 상기 로크박스가 판정하지 않는 한, 상기 인그레스 노드에 상기 비밀을 제공하지 않도록, 구성되어 있는 것인 개인 디지털 네트워크.
  49. 제36항에 있어서, 상기 인그레스 노드는 상기 인그레스 노드와 상기 로크박스 사이의 적어도 하나의 보안 채널을 통해 상기 로크박스와 비밀을 교환하도록 구성되어 있는 로크박스 회로를 포함하고,
    상기 이그레스 노드는 상기 이그레스 노드와 상기 로크박스 사이의 적어도 하나의 보안 채널을 통해 상기 로크박스와 비밀을 교환하도록 구성되어 있는 로크박스 회로를 포함하는 것인 개인 디지털 네트워크.
  50. (a) 전사 하드웨어(transcryption hardware)에서, 개인 디지털 네트워크에 들어오는 컨텐츠에 대해 전사를 수행하여, 네트워크 암호화 포맷을 갖는 제어된 컨텐츠를 발생하는 단계, 및
    (b) 상기 컨텐츠가 상기 전사 하드웨어를 빠져나온 이후 상기 컨텐츠가 이그레스 하드웨어에 들어가기 이전에 상기 개인 디지털 네트워크 내에 상기 네트워크 암호화 포맷으로 상기 컨텐츠를 보유하는 단계를 포함하는 방법.
  51. 제50항에 있어서, (c) 상기 이그레스 하드웨어에서, 상기 컨텐츠의 상기 평문 버전이나 상기 컨텐츠 및 상기 제어된 컨텐츠 중 어느 하나에 대한 허가된 동작을 수행하기 위해 상기 전사 하드웨어 및 상기 이그레스 하드웨어 중 적어도 하나에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어에 의해 액세스가능하지 않도록 또한 상기 컨 텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 상기 컨텐츠의 평문 버전을 발생하기 위해 상기 제어된 컨텐츠를 복호화하는 단계를 더 포함하는 방법.
  52. 개인 디지털 네트워크로서,
    상기 개인 디지털 네트워크에 들어오는 컨텐츠에 대해 전사를 수행하여, 네트워크 암호화 포맷를 갖는 제어된 컨텐츠를 발생하도록 구성되어 있는 전사 하드웨어,
    이그레스 하드웨어, 및
    상기 컨텐츠가 상기 전사 하드웨어를 빠져나온 이후 상기 컨텐츠가 상기 이그레스 하드웨어에 들어가기 이전에 상기 네트워크 암호화 포맷으로 상기 컨텐츠를 보유하도록 연결 및 구성되어 있는 적어도 하나의 장치를 포함하며,
    상기 이그레스 하드웨어는 상기 제어된 컨텐츠를 복호화하여 상기 컨텐츠의 평문 버전을 발생하도록 구성되어 있고,
    상기 개인 디지털 네트워크는, 상기 컨텐츠의 상기 평문 버전이나 상기 컨텐츠 및 상기 제어된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 상기 전사 하드웨어 및 상기 이그레스 하드웨어 중 적어도 하나에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어가 액세스할 수 없도록 또한 상기 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도 록, 구성되어 있는 것인 개인 디지털 네트워크.
  53. 암호화된 형태로 컨텐츠를 수신하도록 구성되어 있는 개인 디지털 네트워크로서,
    제1 로크박스 회로를 포함하는 제1 노드,
    제2 로크박스 회로 및 이그레스 하드웨어를 포함하는 이그레스 노드 - 상기 제2 로크박스 회로는 상기 제1 로크박스 회로에 연결되어 그와 통신하도록 구성되어 있고, 상기 이그레스 하드웨어는 상기 컨텐츠를 복호화하여 상기 컨텐츠의 평문 버전을 발생하도록 연결 및 구성되어 있음 -, 및
    상기 컨텐츠를 상기 이그레스 하드웨어에 어써트하도록 연결 및 구성되어 있는 적어도 하나의 장치를 포함하며,
    상기 네트워크는, 상기 컨텐츠가 상기 네트워크의 보안 하드웨어 내부에서를 제외하고는 상기 네트워크 내부에서 평문 형태로 존재하지 않도록, 구성되어 있고,
    상기 이그레스 노드는, 상기 이그레스 노드가 상기 비밀이 상기 이그레스 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 상기 제1 로크박스 회로가 판정하는 상기 제1 로크박스 회로와의 교환의 결과로서, 상기 이그레스 노드가 먼저 상기 평문 버전을 발생하는 데 필요한 적어도 하나의 비밀을 상기 제1 로크박스 회로로부터 획득하지 않는 한, 상기 이그레스 하드웨어가 상기 컨텐츠의 평문 버전을 발생할 수 없도록, 구성되어 있는 것인 암호화된 형태로 컨텐츠를 수신하도록 구성되어 있는 개인 디지털 네트워크.
  54. 제53항에 있어서, 상기 네트워크는, 상기 컨텐츠 및 상기 컨텐츠의 상기 평문 버전 중 어느 하나에 대한 허가된 동작을 수행하기 위해 상기 이그레스 하드웨어에 의해 사용되는 비밀이 상기 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어가 액세스할 수 없도록, 구성되어 있는 것인 개인 디지털 네트워크.
  55. 제53항에 있어서, 상기 제2 로크박스 회로 및 상기 이그레스 하드웨어는 집적 회로로서 구현되어 있는 것인 개인 디지털 네트워크.
  56. 개인 디지털 네트워크로서,
    제1 로크박스 회로를 포함하는 제1 노드,
    제2 로크박스 회로 및 인그레스 회로를 포함하는 제2 노드, 및
    제3 로크박스 회로 및 이그레스 회로를 포함하는 제3 노드를 포함하며,
    상기 인그레스 회로는 상기 인그레스 회로 내부의 하드웨어에서 보안 방식으로 상기 제2 노드에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있고,
    상기 제2 로크박스 회로는 상기 제2 노드가 상기 개인 디지털 네트워크의 허가된 구성요소임을 나타내는 데이터를 저장하도록 구성되어 있으며,
    상기 제2 로크박스 회로는, 상기 제2 로크박스 회로가 상기 데이터를 상기 제1 로크박스 회로로부터 획득하는, 상기 제1 로크박스 회로와의 교환을 수행하도 록 구성되어 있고,
    상기 이그레스 회로는, 상기 이그레스 회로 내부의 하드웨어에서 보안 방식으로 상기 제어된 컨텐츠를 복호화하여, 상기 컨텐츠의 평문 버전을 발생하고 또 상기 컨텐츠의 상기 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어도 하나를 출력하도록 구성되어 있으며,
    상기 제3 로크박스 회로는 상기 제3 노드가 상기 개인 디지털 네트워크의 허가된 구성요소임을 나타내는 부가적인 데이터를 저장하도록 구성되어 있고,
    상기 제3 로크박스 회로는, 상기 제3 로크박스 회로가 상기 제1 로크박스 회로로부터 부가적인 데이터를 획득하는, 상기 제1 로크박스 회로와의 교환을 수행하도록 구성되어 있는 것인 개인 디지털 네트워크.
  57. 제56항에 있어서, 상기 제2 노드는 N개의 서로 다른 포맷 중 임의의 포맷을 갖는 컨텐츠를 수신하도록 구성되어 있고,
    상기 인그레스 회로는, 상기 컨텐츠가 상기 N개의 서로 다른 포맷 중 임의의 포맷을 갖는 것에 응답하여 상기 제어된 컨텐츠가 단일의 공통 포맷을 갖도록, 상기 컨텐츠가 상기 N개의 서로 다른 포맷 중 임의의 포맷을 갖는 것에 응답하여 상기 제어된 컨텐츠를 발생하도록 구성되어 있는 것인 개인 디지털 네트워크.
  58. 제57항에 있어서, 상기 제3 노드는 상기 제어된 컨텐츠의 단일의 포맷만을 수신하여 복호화하도록 구성되어 있고,
    상기 제3 노드는 상기 제어된 컨텐츠에 응답하여 M개의 서로 다른 포맷 중 임의의 것을 갖는 처리된 컨텐츠를 발생하고 이 처리된 컨텐츠를 상기 M개의 서로 다른 포맷 중 임의의 포맷으로 출력하도록 구성되어 있는 것인 개인 디지털 네트워크.
  59. 개인 디지털 네트워크에서 사용하도록 구성된 장치로서,
    로크박스 회로, 및
    제어된 컨텐츠를 복호화하여, 상기 컨텐츠의 평문 버전을 발생하고 상기 컨텐츠의 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어도 하나를 출력하도록 구성되어 있는 이그레스 하드웨어를 포함하며,
    상기 장치는 상기 장치가 상기 개인 디지털 네트워크의 허가된 요소임을 나타내는 데이터를 저장하도록 구성되어 있고,
    상기 로크박스 회로는, 상기 로크박스 회로가 외부 로크박스 회로로부터 상기 데이터를 획득하는, 상기 외부 로크박스 회로와의 교환을 수행하도록 구성되어 있는 것인 개인 디지털 네트워크에서 사용하도록 구성된 장치.
  60. 제59항에 있어서, 상기 이그레스 하드웨어는 상기 제어된 컨텐츠의 단일의 포맷만을 수신 및 복호화하도록 구성되어 있고,
    상기 장치는 상기 제어된 컨텐츠에 응답하여 M개의 서로 다른 포맷 중 임의의 포맷을 갖는 처리된 컨텐츠를 발생하고 이 처리된 컨텐츠를 상기 M개의 서로 다 른 포맷 중 임의의 포맷으로 출력하도록 구성되어 있는 것인 장치.
  61. 개인 디지털 네트워크에서 사용하도록 구성되어 있는 장치로서,
    로크박스 회로, 및
    상기 장치에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있는 인그레스 하드웨어를 포함하며,
    상기 장치는 상기 장치가 상기 개인 디지털 네트워크의 허가된 구성요소임을 나타내는 데이터를 저장하도록 구성되어 있고,
    상기 로크박스 회로는 상기 로크박스 회로가 외부 로크박스 회로로부터 상기 데이터를 획득하는 상기 외부 로크박스 회로와의 교환을 수행하도록 구성되어 있는 것인 개인 디지털 네트워크에서 사용하도록 구성되어 있는 장치.
  62. 제61항에 있어서, 상기 장치는 N개의 서로 다른 포맷 중 임의의 포맷을 갖는 컨텐츠를 수신하도록 구성되어 있고,
    상기 인그레스 하드웨어는, 상기 컨텐츠가 상기 N개의 서로 다른 포맷 중 임의의 포맷을 갖는 것에 응답하여 상기 제어된 컨텐츠가 단일의 공통 포맷을 갖도록, 상기 컨텐츠가 상기 N개의 서로 다른 포맷 중 임의의 포맷을 갖는 것에 응답하여 상기 제어된 컨텐츠를 발생하도록 구성되어 있는 것인 장치.
  63. 개인 디지털 네트워크에서 사용하기 위한 것으로, 상기 개인 디지털 네트워 크 외부의 소스로부터 적어도 하나의 비밀을 수신하도록 구성되어 있는 로크박스로서,
    상기 비밀은 미리 정해진 만료 시간을 가지며,
    상기 로크박스는,
    상기 개인 디지털 네트워크 내부에 있지만 상기 로크박스 외부에 있는 하드웨어에의 보안 링크를 통해, 상기 하드웨어와의 인증 교환의 결과로서 상기 하드웨어가 상기 비밀이 상기 하드웨어로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 판정한 후에, 상기 비밀을 어써트하도록 구성되어 있는 회로, 및
    상기 소스로부터 상기 로크박스가 상기 비밀을 수신하고 나서 미리 정해진 시간 이후에, 상기 로크박스가 상기 비밀을 상기 하드웨어에 어써트하지 못하도록 구성되어 있는 부가적인 회로를 포함하는 것인 개인 디지털 네트워크에서 사용하기 위한 것으로, 상기 개인 디지털 네트워크 외부의 소스로부터 적어도 하나의 비밀을 수신하도록 구성되어 있는 로크박스.
  64. 제63항에 있어서, 상기 부가적인 회로는, 상기 로크박스의 전원 차단 시에 카운트가 리셋되지 않는, 단조 증가 카운터를 포함하는 것인 로크박스.
  65. 제63항에 있어서, 상기 부가적인 회로는 상기 로크박스의 전원 차단 시에 리셋되지 않는 위조 방지 클럭(tamper resistant clock)을 포함하는 것인 로크박스.
  66. 제63항에 있어서, 상기 부가적인 회로는 상기 로크박스 외부에 있는 위조 방지 클럭에 액세스하도록 구성되어 있는 것인 로크박스.
  67. 제66항에 있어서, 상기 부가적인 회로는 현재 시간 데이터를 획득하기 위해 상기 위조 방지 클럭에 액세스하고 또 언제 상기 로크박스가 상기 하드웨어에 상기 비밀을 어써트하지 못하도록 해야 하는지를 판정하기 위해 상기 현재 시간 데이터를 사용하도록 구성되어 있는 것인 로크박스.
  68. 적어도 하나의 노드를 포함하는 개인 디지털 네트워크에서 사용하기 위한 로크박스로서,
    컨텐츠에 대해 허가된 동작을 수행하기 위해 상기 노드가 사용하기 위한 비밀을 상기 로크박스가 상기 노드로 전송하게 하는 상기 개인 디지털 네트워크의 상기 노드와의 교환을, 상기 노드가 상기 비밀이 상기 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 판정한 이후에, 수행하도록 구성되어 있는 회로를 포함하는 적어도 하나의 노드를 포함하는 개인 디지털 네트워크에서 사용하기 위한 로크박스.
  69. 제68항에 있어서, 상기 로크박스는 메모리를 더 포함하고,
    상기 비밀은 상기 메모리에 저장되며,
    상기 회로는 상기 메모리에 연결되어 있고 또, 상기 노드가 상기 비밀이 상기 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 판정한 이후에, 상기 비밀을 상기 노드로 전송하도록 구성되어 있는 로크박스.
  70. 제68항에 있어서, 상기 비밀은 상기 로크박스 외부에 있지만 상기 로크박스에 의해 액세스가능한 메모리에 저장되어 있고,
    상기 회로는, 상기 노드가 상기 비밀이 상기 노드로 하여금 수행할 수 있게 해주는 각각의 동작을 수행하도록 허가되어 있는 것으로 판정한 이후에, 상기 비밀을 상기 노드로 전송하게 하도록 구성되어 있는 것인 로크박스.
  71. 제68항에 있어서, 상기 개인 디지털 네트워크는 소프트웨어로 프로그램되어 있는 적어도 하나의 프로세서를 더 포함하고,
    상기 회로는 상기 소프트웨어를 통해 상기 로크박스와 상기 노드 간의 통신을 구현하도록 구성되어 있는 것인 로크박스.
  72. 제71항에 있어서, SSL 종단 회로를 더 포함하며,
    상기 로크박스는 상기 소프트웨어로 하여금 인터넷으로부터 상기 개인 디지털 네트워크에 의해 수신되는 암호화된 메시지를 상기 SSL 종단 회로로 중계하게 하도록 구성되어 있는 것인 로크박스.
  73. 이그레스 노드 및 인그레스 노드 중 적어도 하나를 포함하는 개인 디지털 네트워크에서 사용하기 위한 로크박스로서,
    버스,
    상기 버스에 연결된 비휘발성 메모리, 및
    상기 버스에 연결되어 있고 또 상기 로크박스 외부에 있는 상기 개인 디지털 네트워크의 구성요소 상에서 실행되는 소프트웨어를 통해 상기 이그레스 노드 및 상기 인그레스 노드 중 하나로 어써트될 적어도 하나의 암호화된 발신 메시지(outgoing message)를 포함하도록 구성되어 있는 편지함을 포함하며,
    상기 편지함은 또한 상기 이그레스 노드 및 상기 인그레스 노드 중 상기 하나로부터 적어도 하나의 암호화된 착신 메시지(incoming message)를 수신하도록 구성되어 있는 것인 이그레스 노드 및 인그레스 노드 중 적어도 하나를 포함하는 개인 디지털 네트워크에서 사용하기 위한 로크박스.
  74. 개인 디지털 네트워크에서 인그레스 노드로서 사용하기 위한 장치로서,
    로크박스 회로, 및
    적어도 하나의 키를 사용하여 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있는 인그레스 하드웨어를 포함하며,
    상기 로크박스 회로는 외부의 로크박스로부터 상기 키를 획득하고 상기 키를 상기 인그레스 하드웨어에 제공하도록 구성되어 있는 것인 개인 디지털 네트워크에 서 인그레스 노드로서 사용하기 위한 장치.
  75. 제74항에 있어서, 상기 장치는 버스를 더 포함하고,
    상기 로크박스 회로는 상기 버스에 연결되어 있고 또 상기 개인 디지털 네트워크의 구성요소 상에서 실행되는 소프트웨어를 통해 상기 외부 로크박스로 어써트될 적어도 하나의 암호화된 발신 메시지를 포함하도록 구성되어 있으며,
    상기 인그레스 하드웨어는 상기 버스에 연결된 적어도 하나의 구성요소를 포함하는 것인 장치.
  76. 개인 디지털 네트워크에서 이그레스 노드로서 사용하기 위한 장치로서,
    로크박스 회로, 및
    적어도 하나의 키를 사용하여 제어된 컨텐츠를 복호화하여 상기 컨텐츠의 평문 버전을 발생하고 또 상기 컨텐츠의 상기 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어도 하나를 상기 개인 디지털 네트워크 외부에 있는 개체, 디스플레이 장치, 및 재생 장치 중 적어도 하나로 어써트하도록 구성되어 있는 이그레스 하드웨어를 포함하고,
    상기 로크박스 회로는 외부 로크박스로부터 상기 키를 획득하고 상기 키를 상기 이그레스 하드웨어에 제공하도록 구성되어 있는 것인 개인 디지털 네트워크에서 이그레스 노드로서 사용하기 위한 장치.
  77. 제76항에 있어서, 상기 장치는 버스를 더 포함하고,
    상기 로크박스 회로는 상기 버스에 연결되어 있고 또 상기 개인 디지털 네트워크의 구성요소 상에서 실행되는 소프트웨어를 거쳐 상기 외부 로크박스에 어써트될 적어도 하나의 암호화된 발신 메시지를 포함하도록 구성되어 있는 편지함을 포함하며,
    상기 이그레스 하드웨어는 상기 버스에 연결된 적어도 하나의 구성요소를 포함하는 것인 장치.
  78. 하드웨어 서브시스템 및 소프트웨어 서브시스템 둘다를 포함하는 개인 디지털 네트워크에서 컨텐츠를 보호하는 방법으로서,
    상기 개인 디지털 네트워크의 제2 하드웨어 서브시스템으로부터 획득되는 적어도 하나의 비밀을 사용하여, 상기 개인 디지털 네트워크의 제1 하드웨어 서브시스템에서 보안 방식으로 상기 개인 디지털 네트워크에 들어오는 컨텐츠를 전사하는 단계, 및
    상기 소프트웨어가 상기 비밀의 평문 버전에 액세스하지 못하도록 또한 상기 소프트웨어가 임의의 상기 메시지의 평문 버전에 액세스하지 못하도록, 상기 개인 디지털 네트워크의 소프트웨어를 사용하여 상기 비밀 및 적어도 하나의 다른 메시지를 상기 제1 하드웨어 서브시스템과 상기 제2 하드웨어 서브시스템 간에 전달하는 단계를 포함하는 하드웨어 서브시스템 및 소프트웨어 서브시스템 둘다를 포함하는 개인 디지털 네트워크에서 컨텐츠를 보호하는 방법.
  79. 개인 디지털 네트워크에서 컨텐츠를 보호하는 방법으로서,
    상기 개인 디지털 네트워크의 로크박스가 비밀을 수신하도록 허가되어 있는지 여부를 판정하기 위해 상기 로크박스와 상기 개인 디지털 네트워크 외부의 개체 사이의 교환을 수행하고 또, 상기 교환의 결과로서, 상기 로크박스가 상기 비밀을 수신하도록 허가되어 있는 것으로 판정할 시에, 상기 로크박스로 상기 비밀을 로드하는 단계, 및
    상기 개인 디지털 네트워크의 인그레스 노드가 상기 비밀을 수신하도록 허가되어 있는지 여부를 판정하기 위해 상기 인그레스 노드와 상기 로크박스 간의 제2 교환을 수행하고 또, 상기 제2 교환의 결과로서, 상기 인그레스 노드가 상기 비밀을 수신하도록 허가되어 있는 것으로 판정할 시에, 보안 채널을 통해 상기 로크박스로부터 상기 인그레스 노드로 상기 비밀을 어써트하는 단계를 포함하는 개인 디지털 네트워크에서 컨텐츠를 보호하는 방법.
  80. 제79항에 있어서, 상기 비밀을 사용하여 하드웨어적으로 상기 개인 디지털 네트워크에 들어오는 컨텐츠를 전사하도록 상기 인그레스 노드를 동작시켜, 네트워크 암호화 포맷을 갖는 제어된 컨텐츠를 발생하는 단계를 더 포함하는 방법.
  81. 제80항에 있어서, 상기 컨텐츠가 상기 인그레스 노드에서 빠져나온 이후 상기 컨텐츠가 이그레스 노드에 들어가기 이전에 상기 컨텐츠를 상기 네트워크 암호 화 포맷으로 상기 개인 디지털 네트워크 내부에 보유하는 단계를 더 포함하는 방법.
  82. 제81항에 있어서, 상기 이그레스 노드에서, 상기 컨텐츠의 상기 평문 버전이나 상기 컨텐츠 및 상기 제어된 컨텐츠 중 어느 하나에 대해 허가된 동작을 수행하기 위해 상기 인그레스 노드 및 상기 이그레스 노드 중 어느 하나에 의해 사용되는 임의의 비밀 중 어느 것도 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 소프트웨어가 액세스할 수 없도록 또한 상기 컨텐츠가 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에서 결코 평문 형태로 존재하지 않도록, 상기 제어된 컨텐츠를 복호화하여, 상기 컨텐츠의 평문 버전을 발생하는 단계를 더 포함하는 방법.
  83. 제82항에 있어서, 상기 비밀이 상기 개인 디지털 네트워크의 임의의 구성요소 상에서 실행되는 펌웨어에 의해 액세스가능하지 않으며,
    상기 비밀이 보안 하드웨어 내부에서를 제외하고는 상기 개인 디지털 네트워크 내부에 평문 형태로 존재하지 않는 것인 방법.
  84. 개인 디지털 네트워크에서 컨텐츠를 보호하는 방법으로서,
    상기 개인 디지털 네트워크의 로크박스가 비밀을 수신하도록 허가되어 있는지 여부를 판정하기 위해 상기 로크박스와 상기 개인 디지털 네트워크 외부의 개체 사이의 교환을 수행하고 또, 상기 교환의 결과로서, 상기 로크박스가 상기 비밀을 수신하도록 허가되어 있는 것으로 판정할 시에, 상기 로크박스로 상기 비밀을 로드하는 단계,
    상기 개인 디지털 네트워크의 이그레스 노드가 상기 비밀을 수신하도록 허가되어 있는지 여부를 판정하기 위해 상기 이그레스 노드와 상기 로크박스 간의 제2 교환을 수행하고 또, 상기 제2 교환의 결과로서, 상기 이그레스 노드가 상기 비밀을 수신하도록 허가되어 있는 것으로 판정할 시에, 보안 채널을 통해 상기 로크박스로부터 상기 이그레스 노드로 상기 비밀을 어써트하는 단계, 및
    상기 비밀을 사용하여 암호화된 컨텐츠를 하드웨어적으로 복호화하도록 상기 이그레스 노드를 동작시키는 단계를 포함하는 개인 디지털 네트워크에서 컨텐츠를 보호하는 방법.
  85. 사용 제한 세트(use restriction set)의 적용을 받는 컨텐츠를 보호하도록 구성되어 있는 개인 디지털 네트워크로서,
    상기 컨텐츠가 상기 네트워크에 들어올 때 인그레스 노드 내에서 하드웨어적으로 상기 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있는 적어도 하나의 인그레스 노드, 및
    상기 사용 제한 세트를 나타내는 데이터 및 상기 사용 제한 세트에 의해 규정되지 않은 상기 컨텐츠에 대한 적어도 하나의 동작을 수행하는 데 필요한 적어도 하나의 비밀에 액세스하는 로크박스를 포함하며,
    상기 로크박스 및 상기 인그레스 노드는, 상기 인그레스 노드가 상기 컨텐츠에 대해 특정의 동작을 수행하는 것을 상기 사용 제한 세트가 금지하고 있는지 여부를 판정하기 위해 상기 로크박스가 상기 인그레스 노드로부터의 데이터 및 상기 사용 제한 세트를 나타내는 상기 데이터의 적어도 일부를 사용하는 동안인 보안 채널을 통한 교환을 수행하도록 구성되어 있으며,
    상기 로크박스는, 상기 인그레스 노드가 상기 특정의 동작을 수행하는 것을 상기 사용 제한 세트가 금지하고 있지 않은 것으로 판정할 시에, 상기 특정의 동작을 수행하기 위해 상기 인그레스 노드가 필요로 하는 각각의 상기 비밀을 상기 보안 채널을 통해 상기 인그레스 노드로 전송하도록 구성되어 있고,
    상기 로크박스는 상기 인그레스 노드가 수행하는 것을 상기 사용 제한 세트가 금지하고 있는 동작을 상기 인그레스 노드로 하여금 수행할 수 있게 해주는 임의의 비밀을 상기 인그레스 회로로 전송하지 않도록 구성되어 있는 것인 사용 제한 세트의 적용을 받는 컨텐츠를 보호하도록 구성되어 있는 개인 디지털 네트워크.
  86. 제85항에 있어서, 상기 로크박스는 상기 사용 제한 세트를 나타내는 데이터 및 각각의 상기 비밀이 저장되어 있는 비휘발성 메모리를 포함하는 것인 개인 디지털 네트워크.
  87. 제85항에 있어서, 상기 사용 제한 세트를 나타내는 데이터 및 각각의 상기 비밀이 저장되어 있는 비휘발성 메모리를 더 포함하고,
    상기 사용 제한 세트를 나타내는 데이터 및 각각의 상기 비밀은, 상기 사용 제한 세트를 나타내는 상기 데이터 및 각각의 상기 비밀이 상기 로크박스에 의해 액세스가능하고 또 상기 로크박스에 의해서만 평문 형태로 액세스가능하도록, 상기 비휘발성 메모리에 저장되어 있는 것인 개인 디지털 네트워크.
  88. 제85항에 있어서, 이그레스 노드 내에서 하드웨어적으로 상기 제어된 컨텐츠를 복호화하여, 상기 컨텐츠의 평문 버전을 발생하도록 구성되어 있는 적어도 하나의 이그레스 노드를 더 포함하며,
    상기 이그레스 노드는 상기 컨텐츠의 상기 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어도 하나를 상기 개인 디지털 네트워크 외부의 개체, 디스플레이 장치, 및 재생 장치 중 적어도 하나로 어써트하도록 구성되어 있는 것인 개인 디지털 네트워크.
  89. 제85항에 있어서, 적어도 하나의 상기 비밀은 키이고,
    상기 로크박스는 상기 키를 상기 보안 채널을 통해 상기 인그레스 노드로 전송하도록 구성되어 있으며,
    상기 인그레스 노드는 상기 인그레스 노드가 상기 특정의 동작을 수행하는 세션 동안에 상기 키를 사용하도록 구성되어 있고,
    상기 인그레스 노드는 상기 세션 동안에만 상기 키를 저장하고 상기 세션 이후에는 저장하지 않도록 구성되어 있는 것인 개인 디지털 네트워크.
  90. 사용 제한 세트의 적용을 받는 컨텐츠를 보호하도록 구성되어 있는 개인 디지털 네트워크로서,
    상기 컨텐츠가 상기 네트워크에 들어올 때 인그레스 노드 내에서 하드웨어적으로 상기 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있는 적어도 하나의 인그레스 노드,
    이그레스 노드 내에서 하드웨어적으로 상기 제어된 컨텐츠를 복호화하여, 상기 컨텐츠의 평문 버전을 발생하도록 구성되어 있는 적어도 하나의 이그레스 노드, 및
    상기 사용 제한 세트를 나타내는 데이터 및 상기 사용 제한 세트에 의해 규정되지 않은 상기 컨텐츠에 대한 적어도 하나의 동작을 수행하는 데 필요한 적어도 하나의 비밀에 액세스하는 로크박스를 포함하며,
    상기 로크박스 및 상기 이그레스 노드는, 상기 이그레스 노드가 상기 컨텐츠에 대해 특정의 동작을 수행하는 것을 상기 사용 제한 세트가 금지하고 있는지 여부를 판정하기 위해 상기 로크박스가 상기 이그레스 노드로부터의 데이터 및 상기 사용 제한 세트를 나타내는 상기 데이터의 적어도 일부를 사용하는 동안인 보안 채널을 통한 교환을 수행하도록 구성되어 있으며,
    상기 로크박스는, 상기 이그레스 노드가 상기 특정의 동작을 수행하는 것을 상기 사용 제한 세트가 금지하고 있지 않은 것으로 판정할 시에, 상기 특정의 동작을 수행하기 위해 상기 이그레스 노드가 필요로 하는 각각의 상기 비밀을 상기 보 안 채널을 통해 상기 이그레스 노드로 전송하도록 구성되어 있고,
    상기 로크박스는 상기 이그레스 노드가 수행하는 것을 상기 사용 제한 세트가 금지하고 있는 동작을 상기 이그레스 노드로 하여금 수행할 수 있게 해주는 임의의 비밀을 상기 이그레스 회로로 전송하지 않도록 구성되어 있는 것인 사용 제한 세트의 적용을 받는 컨텐츠를 보호하도록 구성되어 있는 개인 디지털 네트워크.
  91. 제90항에 있어서, 상기 로크박스는 상기 사용 제한 세트를 나타내는 데이터 및 각각의 상기 비밀이 저장되어 있는 비휘발성 메모리를 포함하는 것인 개인 디지털 네트워크.
  92. 제90항에 있어서, 상기 사용 제한 세트를 나타내는 데이터 및 각각의 상기 비밀이 저장되어 있는 비휘발성 메모리를 더 포함하고,
    상기 사용 제한 세트를 나타내는 데이터 및 각각의 상기 비밀은, 상기 사용 제한 세트를 나타내는 상기 데이터 및 각각의 상기 비밀이 상기 로크박스에 의해 액세스가능하고 또 상기 로크박스에 의해서만 평문 형태로 액세스가능하도록, 상기 비휘발성 메모리에 저장되어 있는 것인 개인 디지털 네트워크.
  93. 제90항에 있어서, 상기 이그레스 노드는 상기 컨텐츠의 상기 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어도 하나를 디스플레이 장치, 재생 장치 및 상기 개인 디지털 네트워크 외부의 개체 중 적어도 하나로 어써트하 도록 구성되어 있는 것인 개인 디지털 네트워크.
  94. 제90항에 있어서, 적어도 하나의 상기 비밀은 키이고,
    상기 로크박스는 상기 키를 상기 보안 채널을 통해 상기 이그레스 노드로 전송하도록 구성되어 있으며,
    상기 이그레스 노드는 상기 이그레스 노드가 상기 특정의 동작을 수행하는 세션 동안에 상기 키를 사용하도록 구성되어 있고,
    상기 이그레스 노드는 상기 세션 동안에만 상기 키를 저장하고 상기 세션 이후에는 저장하지 않도록 구성되어 있는 것인 개인 디지털 네트워크.
  95. 개인 디지털 네트워크에서 사용하도록 구성되어 있는 장치로서,
    외부 로크박스와 인증 교환을 수행하도록 구성되어 있는 로크박스 회로 - 상기 외부 로크박스는 상기 장치의 외부에 있음 -, 및
    상기 장치에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있는 인그레스 하드웨어를 포함하며,
    상기 인그레스 하드웨어는 상기 컨텐츠를 전사하기 위해 상기 인그레스 하드웨어가 사용하기 위한 키를 상기 로크박스 회로로부터 수신하도록 연결되어 있는 것인 개인 디지털 네트워크에서 사용하도록 구성되어 있는 장치.
  96. 제95항에 있어서, 상기 로크박스 회로는 상기 외부 로크박스로부터 보안 채 널을 통해 상기 키를 수신하고 또 상기 키를 상기 인그레스 하드웨어에 제공하도록 구성되어 있는 것인 장치.
  97. 개인 디지털 네트워크에서 사용하도록 구성되어 있는 장치로서,
    외부 로크박스와의 인증 교환을 수행하도록 구성되어 있는 로크박스 회로 - 상기 외부 로크박스는 상기 장치의 외부에 있음 -, 및
    제어된 컨텐츠를 복호화하여 상기 컨텐츠의 평문 버전을 발생하고 또 상기 컨텐츠의 상기 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어도 하나를 출력하도록 구성되어 있는 이그레스 하드웨어를 포함하며,
    상기 이그레스 하드웨어는 상기 제어된 컨텐츠를 복호화하기 위해 상기 이그레스 하드웨어가 사용하기 위한 키를 상기 로크박스 회로로부터 수신하도록 구성되어 있는 것인 개인 디지털 네트워크에서 사용하도록 구성되어 있는 장치.
  98. 제97항에 있어서, 상기 로크박스 회로는 보안 채널을 통해 상기 외부 로크박스로부터 상기 키를 수신하고, 상기 키를 상기 이그레스 하드웨어에 제공하도록 구성되어 있는 것인 장치.
  99. 개인 디지털 네트워크에서 사용하기 위한 로크박스로서,
    외부 장치를 상기 네트워크에 가입시킬지 여부를 결정하기 위해 상기 외부 장치와의 교환을 수행하는 회로를 포함하며,
    상기 로크박스는, 상기 외부 장치가 상기 네트워크에 가입되어야 하는 것으로 판정할 시에, 인증서 데이터를 상기 외부 장치로 어써트하도록 구성되어 있고,
    상기 로크박스는 또한, 상기 로크박스가 상기 인증서 데이터를 상기 외부 장치로 어써트한 후에, 보안 채널을 통해 상기 외부 장치의 로크박스 회로와 인증 교환을 수행하도록 구성되어 있으며,
    상기 인증 교환 동안에, 상기 외부 장치는 상기 인증서 데이터의 적어도 일부를 다시 상기 로크박스로 어써트하며, 상기 로크박스는, 상기 인증서 데이터의 상기 적어도 일부를 사용하여, 상기 외부 장치가 컨텐츠에 대해 특정의 동작을 수행하는 것을 사용 제한 세트가 금지하고 있는지를 판정하는 것인 개인 디지털 네트워크에서 사용하기 위한 로크박스.
  100. 로크박스를 포함하는 개인 디지털 네트워크에서 사용하기 위한 장치로서,
    로크박스 회로, 및
    상기 장치에 들어오는 컨텐츠를 전사하여, 제어된 컨텐츠를 발생하도록 구성되어 있는 인그레스 하드웨어를 포함하며,
    상기 장치는 상기 장치가 상기 개인 디지털 네트워크의 허가된 구성요소임을 나타내는 인증서 데이터를 저장하도록 구성되어 있고,
    상기 로크박스 회로는, 상기 로크박스 회로가 상기 로크박스로부터 상기 인증서 데이터를 획득하는, 상기 로크박스와의 교환을 수행하도록 구성되어 있는 것인 로크박스를 포함하는 개인 디지털 네트워크에서 사용하기 위한 장치.
  101. 제100항에 있어서, 상기 장치는 영속적으로 그렇지만 취소가능하게 상기 인증서 데이터를 저장하도록 구성되어 있는 것인 장치.
  102. 제100항에 있어서, 상기 로크박스 회로는 상기 인증서 데이터를 저장하는 프로그램가능 메모리를 포함하는 것인 장치.
  103. 제102항에 있어서, 상기 프로그램가능 메모리는 1회 프로그램가능 퓨즈의 세트를 포함하고,
    상기 퓨즈의 세트 각각은 하나의 상기 교환 동안에 수신되는 인증서 데이터를 저장하도록 한번 프로그램될 수 있으며,
    상기 로크박스 회로는 상기 퓨즈의 세트 중 가장 최근에 프로그램된 것에 의해 결정되는 인증서 데이터만을 사용하고 상기 퓨즈의 세트 중 각각의 다른 것에 의해 결정된 데이터를 무시하도록 구성되어 있는 것인 장치.
  104. 로크박스를 포함하는 개인 디지털 네트워크에서 사용하도록 구성되어 있는 장치로서,
    로크박스 회로, 및
    제어된 컨텐츠를 복호화하여 상기 컨텐츠의 평문 버전을 발생하고 또 상기 컨텐츠의 상기 평문 버전 및 상기 컨텐츠의 상기 평문 버전의 처리된 버전 중 적어 도 하나를 출력하도록 구성되어 있는 이그레스 하드웨어를 포함하며,
    상기 장치는 상기 장치가 상기 개인 디지털 네트워크의 허가된 구성요소임을 나타내는 인증서 데이터를 저장하도록 구성되어 있고,
    상기 로크박스 회로는, 상기 로크박스 회로가 상기 로크박스로부터 상기 인증서 데이터를 획득하는, 상기 로크박스와의 교환을 수행하도록 구성되어 있는 것인 로크박스를 포함하는 개인 디지털 네트워크에서 사용하도록 구성되어 있는 장치.
  105. 제104항에 있어서, 상기 장치는 영속적으로 그렇지만 취소가능하게 상기 인증서 데이터를 저장하도록 구성되어 있는 것인 장치.
  106. 제104항에 있어서, 상기 로크박스 회로는 상기 인증서 데이터를 저장하는 프로그램가능 메모리를 포함하는 것인 장치.
  107. 제106항에 있어서, 상기 프로그램가능 메모리는 1회 프로그램가능 퓨즈의 세트를 포함하고,
    상기 퓨즈의 세트 각각은 하나의 상기 교환 동안에 수신되는 인증서 데이터를 저장하도록 한번 프로그램될 수 있으며,
    상기 로크박스 회로는 상기 퓨즈의 세트 중 가장 최근에 프로그램된 것에 의해 결정되는 인증서 데이터만을 사용하고 상기 퓨즈의 세트 중 각각의 다른 것에 의해 결정된 데이터를 무시하도록 구성되어 있는 것인 장치.
  108. 개인 디지털 네트워크로서,
    로크박스를 포함하는 제1 노드, 및
    제2 노드를 포함하며,
    상기 제2 노드는 컨텐츠에 대한 전사 동작 및 제어된 컨텐츠에 대한 복호화 동작 중 적어도 하나를 수행하기 위해 컨텐츠 키를 사용하도록 구성되어 있고,
    상기 전사 동작은 상기 개인 디지털 네트워크에 들어오는 컨텐츠를 상기 컨텐츠 키를 사용하여 상기 제2 노드 내부에 보안 방식으로 전사하며,
    상기 복호화 동작은 상기 컨텐츠의 평문 버전을 발생하기 위해 상기 컨텐츠 키를 사용하여 상기 제2 노드 내부에서 보안 방식으로 상기 제어된 컨텐츠를 복호화하고,
    상기 제2 노드는, 상기 전사 동작 및 상기 복호화 동작 중 하나를 수행하는 데 상기 컨텐츠 키가 필요하다고 판정할 시에, 키 전송 동작을 개시하도록 구성되어 있고,
    상기 제1 노드 및 상기 제2 노드는 상기 키 전송 동작을 수행하도록 구성되어 있으며,
    상기 키 전송 동작은 상기 제1 노드와 상기 제2 노드 사이에 적어도 하나의 보안 채널을 설정하는 단계를 포함하는 것인 개인 디지털 네트워크.
  109. 제108항에 있어서, 상기 제1 노드는 상기 키 전송 동작 동안에 상기 보안 채널을 통해 상기 컨텐츠 키의 암호화된 버전을 상기 제2 노드로 전송하도록 구성되어 있는 것인 개인 디지털 네트워크.
  110. 제108항에 있어서, 상기 제1 노드는 상기 키 전송 동작 동안에 상기 보안 채널을 통해 상기 컨텐츠 키를 상기 제2 노드로 전송하도록 구성되어 있는 것인 개인 디지털 네트워크.
  111. 제108항에 있어서, 상기 제1 노드 및 상기 제2 노드는 세션 키를 사용하여 상기 보안 채널을 설정하도록 구성되어 있는 것인 개인 디지털 네트워크.
  112. 제111항에 있어서, 상기 제1 노드 및 상기 제2 노드 중 하나는, 상기 보안 채널을 설정하는 상기 단계 동안에, 상기 제1 노드 및 상기 제2 노드 중 다른 하나로 상기 세션 키를 전송하도록 구성되어 있는 것인 개인 디지털 네트워크.
  113. 개인 디지털 네트워크에서의 컨텐츠 보호 방법으로서,
    상기 개인 디지털 네트워크는 제1 노드 및 제2 노드를 포함하며,
    상기 제1 노드는 로크박스를 포함하고,
    상기 방법은,
    (a) 전사 동작 및 복호화 동작 중 하나를 수행하는 데 컨텐츠 키가 필요하다 고 판정할 시에, 상기 제2 노드로 하여금 키 전송 동작을 개시하게 하는 단계, 및
    (b) 상기 제1 노드와 상기 제2 노드 사이에 적어도 하나의 보안 채널을 설정하는 것 등에 의해, 상기 키 전송 동작을 수행하는 단계를 포함하는 것인 개인 디지털 네트워크에서의 컨텐츠 보호 방법.
  114. 제113항에 있어서, 상기 단계 (b)는 상기 키 전송 동작 동안에 상기 보안 채널을 통해 상기 제1 노드로부터 상기 제2 노드로 상기 컨텐츠 키의 암호화된 버전을 전송하는 단계를 포함하는 것인 방법.
  115. 제113항에 있어서, 상기 단계 (b)는 상기 키 전송 동작 동안에 상기 보안 채널을 통해 상기 제1 노드로부터 상기 제2 노드로 상기 컨텐츠 키를 전송하는 단계를 포함하는 것인 방법.
  116. 제113항에 있어서, 상기 단계 (b)는 세션 키를 사용하여 상기 보안 채널을 설정하는 단계를 포함하는 것인 방법.
  117. 제113항에 있어서, 상기 단계 (b)는, 상기 보안 채널의 설정 동안에, 상기 제1 노드 및 상기 제2 노드 중 하나로부터 상기 제1 노드 및 상기 제2 노드 중 다른 하나로 세션 키를 전송하는 단계를 포함하는 것인 방법.
KR1020077007140A 2004-10-19 2005-10-18 개인 디지털 네트워크 환경에서의 컨텐츠 보호 방법 및장치 KR100921586B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/968,741 2004-10-19
US10/968,741 US20050144468A1 (en) 2003-01-13 2004-10-19 Method and apparatus for content protection in a personal digital network environment

Publications (2)

Publication Number Publication Date
KR20070056133A true KR20070056133A (ko) 2007-05-31
KR100921586B1 KR100921586B1 (ko) 2009-10-13

Family

ID=36203597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077007140A KR100921586B1 (ko) 2004-10-19 2005-10-18 개인 디지털 네트워크 환경에서의 컨텐츠 보호 방법 및장치

Country Status (7)

Country Link
US (1) US20050144468A1 (ko)
EP (1) EP1817671A4 (ko)
JP (1) JP4651676B2 (ko)
KR (1) KR100921586B1 (ko)
CN (1) CN101040265B (ko)
TW (1) TWI308833B (ko)
WO (1) WO2006044749A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130118940A (ko) * 2011-01-05 2013-10-30 인텔 코오퍼레이션 하드웨어 신뢰 루트를 구축하고 보호 콘텐츠 처리를 개방 컴퓨팅 플랫폼 내에 제공하는 방법 및 장치
KR20140021684A (ko) * 2011-06-30 2014-02-20 인텔 코오퍼레이션 하드웨어 기반 신뢰 루트 내의 메타데이터에 기초한 동적 실시간 광고 삽입 방법 및 장치
KR20200021793A (ko) * 2018-08-21 2020-03-02 주식회사 아프리카티비 블록 체인 기반 방송 중계 장치 및 방법
US20230379340A1 (en) * 2016-08-22 2023-11-23 Paubox, Inc. Method for securely communicating email content between a sender and a recipient

Families Citing this family (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701528B1 (en) * 2000-01-26 2004-03-02 Hughes Electronics Corporation Virtual video on demand using multiple encrypted video segments
US8140859B1 (en) 2000-07-21 2012-03-20 The Directv Group, Inc. Secure storage and replay of media programs using a hard-paired receiver and storage device
US7457414B1 (en) 2000-07-21 2008-11-25 The Directv Group, Inc. Super encrypted storage and retrieval of media programs with smartcard generated keys
US7409562B2 (en) * 2001-09-21 2008-08-05 The Directv Group, Inc. Method and apparatus for encrypting media programs for later purchase and viewing
EP1436943B1 (en) 2001-09-21 2016-11-02 The DIRECTV Group, Inc. Method and apparatus for controlling paired operation of a conditional access module and an integrated receiver and decoder
US20050203959A1 (en) * 2003-04-25 2005-09-15 Apple Computer, Inc. Network-based purchase and distribution of digital media items
CN100507931C (zh) * 2003-05-15 2009-07-01 诺基亚公司 在数字权利管理系统之间转移内容的方法和设备
US7426637B2 (en) * 2003-05-21 2008-09-16 Music Public Broadcasting, Inc. Method and system for controlled media sharing in a network
US7383365B2 (en) * 2003-07-16 2008-06-03 Dell Products L.P. Method and system for PCI express audiovisual output
JP2005051558A (ja) * 2003-07-29 2005-02-24 Matsushita Electric Ind Co Ltd 送信装置、受信装置、及び送受信システム
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7562379B2 (en) * 2003-12-22 2009-07-14 Sony Corporation Method and system for wireless digital multimedia presentation
US7590243B2 (en) * 2004-05-04 2009-09-15 The Directv Group, Inc. Digital media conditional access system for handling digital media content
KR101092438B1 (ko) * 2004-08-05 2011-12-13 엘지전자 주식회사 케이블 방송 수신기 및 그의 진단 방법
US7664109B2 (en) * 2004-09-03 2010-02-16 Microsoft Corporation System and method for distributed streaming of scalable media
TWI252408B (en) * 2004-10-05 2006-04-01 Ali Corp Optical storage controller with serial ATA interface
US7228154B2 (en) * 2004-11-03 2007-06-05 Sony Corporation Method and system for processing wireless digital multimedia
US20060117122A1 (en) * 2004-11-04 2006-06-01 Intel Corporation Method and apparatus for conditionally obfuscating bus communications
US8015590B2 (en) * 2004-12-30 2011-09-06 Mondo Systems, Inc. Integrated multimedia signal processing system using centralized processing of signals
US7653447B2 (en) * 2004-12-30 2010-01-26 Mondo Systems, Inc. Integrated audio video signal processing system using centralized processing of signals
US8880205B2 (en) 2004-12-30 2014-11-04 Mondo Systems, Inc. Integrated multimedia signal processing system using centralized processing of signals
US8065707B1 (en) * 2005-01-03 2011-11-22 Matrox Electronic Systems Ltd. HDTV set-top box/PC client/server secure video system
JP2006190210A (ja) * 2005-01-07 2006-07-20 Fuji Xerox Co Ltd 非接触ic
US7272727B2 (en) * 2005-04-18 2007-09-18 Hitachi, Ltd. Method for managing external storage devices
CN101176329B (zh) * 2005-05-11 2014-12-10 Nxp股份有限公司 通信协议和电子通信系统--特别是认证控制系统--及相应的方法
KR100688981B1 (ko) * 2005-07-22 2007-03-08 삼성전자주식회사 미디어 재생장치와 그 제어방법 및 이를 포함하는미디어재생시스템
JP4935015B2 (ja) * 2005-07-29 2012-05-23 ソニー株式会社 コンテンツ配信システム,コンテンツ配信方法,コンテンツ送信端末およびコンテンツ受信端末
US9325944B2 (en) 2005-08-11 2016-04-26 The Directv Group, Inc. Secure delivery of program content via a removable storage medium
KR100662459B1 (ko) * 2005-08-30 2007-01-02 엘지전자 주식회사 Hdmi 수신기 및 전송기 개발 장치 및 그 방법
US7542534B2 (en) * 2005-09-27 2009-06-02 Intel Corporation Method and an apparatus to reduce electromagnetic interference
JP2007096604A (ja) * 2005-09-28 2007-04-12 Toshiba Corp 電子機器及び映像受信装置及びその制御方法
US8306918B2 (en) * 2005-10-11 2012-11-06 Apple Inc. Use of media storage structure with multiple pieces of content in a content-distribution system
US8407146B2 (en) * 2005-10-28 2013-03-26 Microsoft Corporation Secure storage
KR100803596B1 (ko) * 2005-11-25 2008-02-19 삼성전자주식회사 폐기 메커니즘 상에서 외부 디바이스 또는 서비스를이용하는 복호화 방법 및 장치, 이를 위한 복호화 지원방법 및 장치
US8433926B2 (en) * 2005-12-22 2013-04-30 General Instrument Corporation Method and apparatus for storing and retrieving encrypted programming content using an asymmetric key arrangement
US8406426B2 (en) * 2005-12-22 2013-03-26 General Instrument Corporation Method and apparatus for storing and retrieving encrypted programming content such that it is accessible to authorized users from multiple set top boxes
CN2854972Y (zh) * 2005-12-27 2007-01-03 启能国际科技有限公司 图像集成电路及其图像处理装置
KR100924777B1 (ko) * 2006-01-03 2009-11-03 삼성전자주식회사 라이센스를 생성하는 방법 및 장치
US20100217976A1 (en) * 2006-01-03 2010-08-26 Samsung Electronics Co., Ltd. Method and apparatus for importing content
US8139768B2 (en) * 2006-01-19 2012-03-20 Microsoft Corporation Encrypting content in a tuner device and analyzing content protection policy
US20070291939A1 (en) * 2006-02-15 2007-12-20 Samsung Electronics Co., Ltd. Method and system for transmission of uncompressed video over wireless channels
US7844762B2 (en) * 2006-02-24 2010-11-30 Silicon Image, Inc. Parallel interface bus to communicate video data encoded for serial data links
US20090133129A1 (en) * 2006-03-06 2009-05-21 Lg Electronics Inc. Data transferring method
US8429300B2 (en) 2006-03-06 2013-04-23 Lg Electronics Inc. Data transferring method
US20090063629A1 (en) 2006-03-06 2009-03-05 Lg Electronics Inc. Data transfer controlling method, content transfer controlling method, content processing information acquisition method and content transfer system
JP5200204B2 (ja) 2006-03-14 2013-06-05 ディブエックス リミテッド ライアビリティー カンパニー 高信頼性システムを含む連合型デジタル権限管理機構
US7428306B2 (en) * 2006-04-18 2008-09-23 International Business Machines Corporation Encryption apparatus and method for providing an encrypted file system
US8095466B2 (en) 2006-05-15 2012-01-10 The Directv Group, Inc. Methods and apparatus to conditionally authorize content delivery at content servers in pay delivery systems
US8775319B2 (en) 2006-05-15 2014-07-08 The Directv Group, Inc. Secure content transfer systems and methods to operate the same
US8996421B2 (en) 2006-05-15 2015-03-31 The Directv Group, Inc. Methods and apparatus to conditionally authorize content delivery at broadcast headends in pay delivery systems
US7992175B2 (en) 2006-05-15 2011-08-02 The Directv Group, Inc. Methods and apparatus to provide content on demand in content broadcast systems
US8001565B2 (en) 2006-05-15 2011-08-16 The Directv Group, Inc. Methods and apparatus to conditionally authorize content delivery at receivers in pay delivery systems
KR101366912B1 (ko) 2006-05-16 2014-02-24 소니 주식회사 통신 시스템, 송신 장치 및 수신 장치, 통신 방법, 및프로그램
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
JP4740796B2 (ja) * 2006-05-29 2011-08-03 パナソニック株式会社 画像記録再生装置
JP2007323699A (ja) * 2006-05-30 2007-12-13 Matsushita Electric Ind Co Ltd コンテンツ受信装置およびコンテンツ受信方法
US20070297609A1 (en) * 2006-06-23 2007-12-27 Research In Motion Limited Secure Wireless HeartBeat
US8176319B2 (en) * 2006-06-27 2012-05-08 Emc Corporation Identifying and enforcing strict file confidentiality in the presence of system and storage administrators in a NAS system
TW200809601A (en) * 2006-08-03 2008-02-16 Asustek Comp Inc An audio processing module and an audio-video card system using the same
US9178693B2 (en) 2006-08-04 2015-11-03 The Directv Group, Inc. Distributed media-protection systems and methods to operate the same
US9225761B2 (en) 2006-08-04 2015-12-29 The Directv Group, Inc. Distributed media-aggregation systems and methods to operate the same
US8079077B2 (en) * 2006-08-08 2011-12-13 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US8332925B2 (en) 2006-08-08 2012-12-11 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US20080036859A1 (en) * 2006-08-11 2008-02-14 Yuh-Chin Chang Digital surveillance camera
JP4182997B2 (ja) * 2006-08-15 2008-11-19 ソニー株式会社 伝送システム及び送受信装置
KR20080022476A (ko) 2006-09-06 2008-03-11 엘지전자 주식회사 논컴플라이언트 컨텐츠 처리 방법 및 디알엠 상호 호환시스템
US7917442B2 (en) * 2006-09-21 2011-03-29 Sony Corporation System and method for relaxing media access restrictions over time
US20080133414A1 (en) * 2006-12-04 2008-06-05 Samsung Electronics Co., Ltd. System and method for providing extended domain management when a primary device is unavailable
US8601555B2 (en) * 2006-12-04 2013-12-03 Samsung Electronics Co., Ltd. System and method of providing domain management for content protection and security
US8000474B1 (en) 2006-12-15 2011-08-16 Quiro Holdings, Inc. Client-side protection of broadcast or multicast content for non-real-time playback
TW200828934A (en) * 2006-12-21 2008-07-01 Realtek Semiconductor Corp Audio data transmission method for transmitting encrypted audio data and audio processing system and computer system thereof
CA2571891C (en) * 2006-12-21 2015-11-24 Bce Inc. Device authentication and secure channel management for peer-to-peer initiated communications
EP2122482B1 (en) 2007-01-05 2018-11-14 Sonic IP, Inc. Video distribution system including progressive playback
US8918508B2 (en) * 2007-01-05 2014-12-23 Lg Electronics Inc. Method for transferring resource and method for providing information
EP2119230B1 (en) 2007-01-11 2013-07-03 NDS Limited Processing video content
KR20080066506A (ko) * 2007-01-12 2008-07-16 삼성전자주식회사 디지털 컨텐츠 수신 장치 및 방법
US20080178252A1 (en) * 2007-01-18 2008-07-24 General Instrument Corporation Password Installation in Home Networks
EP2013771B1 (en) * 2007-02-16 2013-08-21 LG Electronics Inc. Method for managing domain using multi domain manager and domain system
US8135947B1 (en) * 2007-03-21 2012-03-13 Qurio Holdings, Inc. Interconnect device to enable compliance with rights management restrictions
US9191605B1 (en) 2007-03-26 2015-11-17 Qurio Holdings, Inc. Remote monitoring of media content that is associated with rights management restrictions
EP1975831A1 (en) * 2007-03-27 2008-10-01 Thomson Licensing, Inc. Device and method for digital processing management of content so as to enable an imposed work flow
CN101299875A (zh) 2007-04-30 2008-11-05 世意法(北京)半导体研发有限责任公司 查询数据库以解决与受保护服务冲突的盲基站操作的问题
WO2008139335A1 (en) * 2007-05-13 2008-11-20 Nds Limited Transferring digital data
US8423789B1 (en) 2007-05-22 2013-04-16 Marvell International Ltd. Key generation techniques
CN101287076A (zh) * 2007-05-30 2008-10-15 盛乐信息技术(上海)有限公司 用ip网络连接电视和电脑进行互动娱乐的方法和系统
JP2008306232A (ja) * 2007-06-05 2008-12-18 Funai Electric Co Ltd 映像受信装置及び放送受信装置
US7895442B1 (en) * 2007-06-18 2011-02-22 Qurio Holdings, Inc. Interconnect device to enable compliance with rights management restrictions
JP5240491B2 (ja) * 2007-06-26 2013-07-17 ソニー株式会社 送信装置および受信装置
US7966637B2 (en) 2007-07-24 2011-06-21 Sony Corporation Hardware module for adding functionality to television
US8233432B2 (en) * 2007-08-31 2012-07-31 Silicon Image, Inc. Ensuring physical locality of entities sharing data
US20090080665A1 (en) * 2007-09-25 2009-03-26 Aceurity, Inc. Method of Generating Secure Codes for a Randomized Scrambling Scheme for the Protection of Unprotected Transient Information
US8837722B2 (en) * 2007-10-16 2014-09-16 Microsoft Corporation Secure content distribution with distributed hardware
CN101861583B (zh) 2007-11-16 2014-06-04 索尼克Ip股份有限公司 用于多媒体文件的分级及简化索引结构
EP2223230B1 (en) 2007-11-16 2019-02-20 Sonic IP, Inc. Chunk header incorporating binary flags and correlated variable-length fields
US8605097B1 (en) * 2007-12-14 2013-12-10 Nvidia Corporation Method and system for determining the compliance encrypted and non-encrypted display outputs
US8104091B2 (en) 2008-03-07 2012-01-24 Samsung Electronics Co., Ltd. System and method for wireless communication network having proximity control based on authorization token
US8850498B1 (en) 2008-05-16 2014-09-30 Collideo LLC Media adaptive distribution system and method
US8510560B1 (en) 2008-08-20 2013-08-13 Marvell International Ltd. Efficient key establishment for wireless networks
US8201210B2 (en) 2008-09-04 2012-06-12 At&T Intellectual Property I, L.P. Method and system for a media processor
US8321906B2 (en) 2008-09-11 2012-11-27 At&T Intellectual Property I, Lp Method and system for a transcoder
KR101595043B1 (ko) 2008-09-18 2016-02-17 마벨 월드 트레이드 리미티드 적어도 부분적으로 부팅 동안에 어플리케이션들을 메모리에 프리로딩하는 방법
US8631145B2 (en) * 2008-10-31 2014-01-14 Sonic Ip, Inc. System and method for playing content on certified devices
US8321926B1 (en) * 2008-12-02 2012-11-27 Lockheed Martin Corporation System and method of protecting a system that includes unprotected computer devices
US8374346B2 (en) * 2009-01-09 2013-02-12 Silicon Image, Inc. Method, apparatus, and system for pre-authentication and keep-authentication of content protected ports
US8542837B2 (en) * 2009-02-23 2013-09-24 Sony Corporation Key selection vector, mobile device and method for processing the key selection vector, digital content output device, and revocation list
JP5201057B2 (ja) * 2009-03-31 2013-06-05 富士通株式会社 映像伝送装置、認証方法、認証プログラムおよび映像伝送システム
US8644334B2 (en) * 2009-09-30 2014-02-04 Silicon Image, Inc. Messaging to provide data link integrity
US8837726B2 (en) * 2009-10-16 2014-09-16 Cisco Technology, Inc. Content protection key encryptor for security providers
US8315506B2 (en) * 2009-11-02 2012-11-20 Verizon Patent And Licensing Inc. Home telepresence with content insertion
US8781122B2 (en) 2009-12-04 2014-07-15 Sonic Ip, Inc. Elementary bitstream cryptographic material transport systems and methods
CN102213974A (zh) * 2010-04-12 2011-10-12 鸿富锦精密工业(深圳)有限公司 电脑主板
US9654810B2 (en) * 2010-07-23 2017-05-16 Lattice Semiconductor Corporation Mechanism for partial encryption of data streams
US8930692B2 (en) 2010-07-23 2015-01-06 Silicon Image, Inc. Mechanism for internal processing of content through partial authentication on secondary channel
US8645716B1 (en) 2010-10-08 2014-02-04 Marvell International Ltd. Method and apparatus for overwriting an encryption key of a media drive
JP5556895B2 (ja) * 2010-10-14 2014-07-23 富士通株式会社 コンテンツデータ再生装置、更新管理方法、及び更新管理プログラム
US8863249B2 (en) * 2010-12-30 2014-10-14 Broadcom Corporation Push button configuration of multimedia over coax alliance (MoCA) devices
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9161081B2 (en) * 2011-02-09 2015-10-13 Arris Technology, Inc. HDCP link integrity checking with detection of enhanced link verification support
US9229489B2 (en) * 2011-05-03 2016-01-05 Facebook, Inc. Adjusting mobile device state based on user intentions and/or identity
US9131265B2 (en) * 2011-05-19 2015-09-08 Maxlinear, Inc. Method and system for providing satellite television service to a premises
US8812662B2 (en) 2011-06-29 2014-08-19 Sonic Ip, Inc. Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
CN103620617B (zh) * 2011-06-29 2016-08-17 英特尔公司 用于带有完整性检查和防止重放攻击的保护的存储器加密的方法和设备
US9721071B2 (en) * 2011-06-29 2017-08-01 Sonic Ip, Inc. Binding of cryptographic content using unique device characteristics with server heuristics
WO2013002821A1 (en) * 2011-06-30 2013-01-03 Intel Corporation System and method for controlling access to protected content
US9197407B2 (en) * 2011-07-19 2015-11-24 Cyberlink Corp. Method and system for providing secret-less application framework
US9767840B2 (en) * 2011-08-18 2017-09-19 Apple Inc. Securing protected content during video playback
KR101928910B1 (ko) 2011-08-30 2018-12-14 쏘닉 아이피, 아이엔씨. 복수의 최대 비트레이트 레벨들을 사용하여 인코딩된 비디오를 인코딩하고 스트리밍하기 위한 시스템들 및 방법들
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8806188B2 (en) 2011-08-31 2014-08-12 Sonic Ip, Inc. Systems and methods for performing adaptive bitrate streaming using automatically generated top level index files
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US8964979B2 (en) 2011-10-07 2015-02-24 Silicon Image, Inc. Identification and handling of data streams using coded preambles
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
US8918908B2 (en) 2012-01-06 2014-12-23 Sonic Ip, Inc. Systems and methods for accessing digital content using electronic tickets and ticket tokens
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US9596286B2 (en) 2012-05-25 2017-03-14 A10 Networks, Inc. Method to process HTTP header with hardware assistance
US9936267B2 (en) 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US9413985B2 (en) 2012-09-12 2016-08-09 Lattice Semiconductor Corporation Combining video and audio streams utilizing pixel repetition bandwidth
EP2901308B1 (en) 2012-09-25 2021-11-03 A10 Networks, Inc. Load distribution in data networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9100687B2 (en) 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
US9380099B2 (en) 2013-05-31 2016-06-28 Sonic Ip, Inc. Synchronizing multiple over the top streaming clients
US10142108B2 (en) * 2013-06-17 2018-11-27 Qube Cinema, Inc. Copy protection scheme for digital audio and video content authenticated HDCP receivers
EP2827601A1 (fr) * 2013-07-19 2015-01-21 Nagravision S.A. Méthode et dispositif pour la protection des clés de déchiffrement d'un décodeur
US9836306B2 (en) 2013-07-31 2017-12-05 Marvell World Trade Ltd. Parallelizing boot operations
US9462465B2 (en) * 2013-10-04 2016-10-04 Qualcomm Incorporated Apparatus and methods for separated security implementations in wireless communications
US9386067B2 (en) 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
CN104796446B (zh) * 2014-01-21 2019-02-26 腾讯科技(深圳)有限公司 一种基于音频技术的数据传输方法、装置及系统
KR102144509B1 (ko) * 2014-03-06 2020-08-14 삼성전자주식회사 근접 통신 방법 및 장치
US10474454B2 (en) 2014-03-20 2019-11-12 Oracle International Corporation System and method for updating a trusted application (TA) on a device
US9520994B2 (en) 2014-03-20 2016-12-13 Oracle International Corporation System and method for deriving secrets from a master key bound to an application on a device
US9331988B2 (en) * 2014-03-20 2016-05-03 Oracle International Corporation System and method for provisioning secrets to an application (TA) on a device
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US9955197B2 (en) * 2014-04-24 2018-04-24 Intel Corporation Encrypted screencasting
CA2952847A1 (en) 2014-08-07 2016-02-11 Sonic Ip, Inc. Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
CN104484185B (zh) * 2014-12-30 2018-03-20 深圳市大疆创新科技有限公司 固件生成系统及方法
EP3243130B1 (en) 2015-01-06 2019-08-14 Sonic IP, Inc. Systems and methods for encoding and sharing content between devices
TWI510952B (zh) * 2015-01-26 2015-12-01 Acer Inc 取回私密金鑰的方法及其系統
ES2768979T3 (es) 2015-02-27 2020-06-24 Divx Llc Sistema y método para la duplicación de fotogramas y la ampliación de fotogramas en codificación y envío por flujo continuo de vídeo en directo
WO2016145558A1 (en) * 2015-03-13 2016-09-22 Lattice Semiconductor Corporation Maintaining synchronization of encryption process across devices by sending frame numbers
US20170093572A1 (en) * 2015-09-25 2017-03-30 Mcafee, Inc. Systems and methods for utilizing hardware assisted protection for media content
CN105391738A (zh) * 2015-12-14 2016-03-09 讯美电子科技有限公司 硬盘录像机弱密码报警提示方法
CN105681882B (zh) * 2016-01-04 2019-04-19 华为技术有限公司 控制视频输出的方法及其装置、控制电路
WO2017168228A1 (en) 2016-03-08 2017-10-05 Marvell World Trade Ltd. Methods and apparatus for secure device authentication
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10231001B2 (en) 2016-05-24 2019-03-12 Divx, Llc Systems and methods for providing audio content during trick-play playback
US10129574B2 (en) 2016-05-24 2018-11-13 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
CN106656739A (zh) * 2016-09-22 2017-05-10 北京海泰方圆科技股份有限公司 电子邮件的传输方法、装置和系统
TWI610196B (zh) * 2016-12-05 2018-01-01 財團法人資訊工業策進會 網路攻擊模式之判斷裝置、判斷方法及其電腦程式產品
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10270586B2 (en) * 2017-04-25 2019-04-23 Seagate Technology Llc Random time generated interrupts in a cryptographic hardware pipeline circuit
CN109390000A (zh) * 2017-08-02 2019-02-26 学习王科技股份有限公司 具备数据保全系统的双接口硬盘盒
TWI626554B (zh) * 2017-08-02 2018-06-11 Dual interface hard disk case with data security system
GB2566043B (en) * 2017-08-31 2022-01-26 Yeo Messaging Ltd A method of displaying content on a screen of an electronic processing device
CN109101787B (zh) * 2018-07-18 2020-11-06 创新先进技术有限公司 一种基于区块链对版权使用者进行信用评价的方法及装置
US10969991B2 (en) * 2018-08-15 2021-04-06 Macronix International Co., Ltd. Multi-chip package, controlling method of multi-chip package and security chip
US10528709B1 (en) 2018-09-07 2020-01-07 Apple Inc. Notifying applications of screen recording
US10528754B1 (en) * 2018-10-09 2020-01-07 Q-Net Security, Inc. Enhanced securing of data at rest
US11216575B2 (en) * 2018-10-09 2022-01-04 Q-Net Security, Inc. Enhanced securing and secured processing of data at rest
ES2974683T3 (es) 2019-03-21 2024-07-01 Divx Llc Sistemas y métodos para enjambres multimedia
CN116910706A (zh) * 2019-05-17 2023-10-20 创新先进技术有限公司 一种基于区块链的版权保护方法、装置及电子设备
TWI709076B (zh) * 2019-05-31 2020-11-01 技嘉科技股份有限公司 可輸出影像資料的主機板及操作系統
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
US11809611B2 (en) * 2020-02-24 2023-11-07 Microsoft Technology Licensing, Llc Protecting device detachment with bus encryption
CA3223760A1 (en) * 2021-05-10 2022-11-17 Won So Audio encryption in a media playback system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JO2117B1 (en) * 1998-07-15 2000-05-21 كانال + تيكنولوجيز سوسيته انونيم A method and device for the secure communication of information between a group of audio-visual devices that operate with numbers
DE69836215T2 (de) * 1998-08-31 2007-08-23 Irdeto Access B.V. System um verschlüsselte Daten zu liefern, System um verschlüsselte Daten zu entschlüsseln und Verfahren um eine Kommunikationsschnittstelle in einem solchen System zur Verfügung zu stellen
US6834110B1 (en) * 1999-12-09 2004-12-21 International Business Machines Corporation Multi-tier digital TV programming for content distribution
US20020150248A1 (en) * 2001-03-06 2002-10-17 Kovacevic Branko D. System for digital stream reception via memory buffer and method thereof
US7046805B2 (en) * 2001-03-20 2006-05-16 Digeo, Inc. System and method for efficiently storing and processing multimedia content
EP1304844B1 (en) * 2001-10-19 2007-04-04 Sony Deutschland GmbH Content protection and copy management system for a network
US20050076304A1 (en) * 2002-04-02 2005-04-07 Intervideo, Inc. Method and system for remote playback of a DVD
WO2003085929A1 (en) * 2002-04-05 2003-10-16 Matsushita Electric Industrial Co., Ltd. Content using system
JP4485753B2 (ja) * 2002-04-05 2010-06-23 パナソニック株式会社 コンテンツ利用システム
WO2003098931A1 (en) * 2002-05-22 2003-11-27 Koninklijke Philips Electronics N.V. Digital rights management method and system
US7296154B2 (en) * 2002-06-24 2007-11-13 Microsoft Corporation Secure media path methods, systems, and architectures
JP3826100B2 (ja) * 2002-11-27 2006-09-27 株式会社東芝 通信中継装置、通信システム及び通信制御プログラム
KR100456076B1 (ko) * 2002-11-28 2004-11-06 한국전자통신연구원 디지털 콘텐츠의 보호 장치 및 보호 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130118940A (ko) * 2011-01-05 2013-10-30 인텔 코오퍼레이션 하드웨어 신뢰 루트를 구축하고 보호 콘텐츠 처리를 개방 컴퓨팅 플랫폼 내에 제공하는 방법 및 장치
KR20140021684A (ko) * 2011-06-30 2014-02-20 인텔 코오퍼레이션 하드웨어 기반 신뢰 루트 내의 메타데이터에 기초한 동적 실시간 광고 삽입 방법 및 장치
US11580570B2 (en) 2011-06-30 2023-02-14 Intel Corporation Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust
US20230379340A1 (en) * 2016-08-22 2023-11-23 Paubox, Inc. Method for securely communicating email content between a sender and a recipient
KR20200021793A (ko) * 2018-08-21 2020-03-02 주식회사 아프리카티비 블록 체인 기반 방송 중계 장치 및 방법

Also Published As

Publication number Publication date
JP4651676B2 (ja) 2011-03-16
JP2008517401A (ja) 2008-05-22
CN101040265B (zh) 2014-05-07
WO2006044749A2 (en) 2006-04-27
TWI308833B (en) 2009-04-11
EP1817671A2 (en) 2007-08-15
TW200618566A (en) 2006-06-01
EP1817671A4 (en) 2013-07-24
CN101040265A (zh) 2007-09-19
US20050144468A1 (en) 2005-06-30
WO2006044749A3 (en) 2007-02-01
KR100921586B1 (ko) 2009-10-13

Similar Documents

Publication Publication Date Title
KR100921586B1 (ko) 개인 디지털 네트워크 환경에서의 컨텐츠 보호 방법 및장치
US7702925B2 (en) Method and apparatus for content protection in a personal digital network environment
US10582256B2 (en) Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform
US7502470B2 (en) Method and apparatus for content protection within an open architecture system
KR101172093B1 (ko) 디지털 오디오/비디오 데이터 처리 장치 및 액세스 제어방법
US7242766B1 (en) Method and system for encrypting and decrypting data using an external agent
US6542610B2 (en) Content protection for digital transmission systems
US20080267411A1 (en) Method and Apparatus for Enhancing Security of a Device
MXPA01010347A (es) Metodo de y aparato para proporcionar la comunicacion segura de datos digitales entre dispositivos.
KR20070009983A (ko) 콘텐츠로의 액세스를 인증하는 방법
US20130275755A1 (en) Systems, methods and apparatuses for the secure transmission of media content
KR20060087459A (ko) 클라이언트 도메인 내에서의 디지털 콘텐츠의 이용을관리하기 위한 방법 및 이 방법을 실행하는 디바이스
US8417937B2 (en) System and method for securely transfering content from set-top box to personal media player
JPH11161165A (ja) 情報処理装置
EP1620993B1 (en) Class-based content transfer between devices
JP2007049759A (ja) 暗号化装置
JP2006512023A (ja) データコピー防止装置とシステム及びコピー防止方法
Iyare et al. Improved High Definition Multimedia Interface Authentication Mechanism
Rangefelt et al. An introduction to High-Bandwidth Digital Content Protection
KR20160108072A (ko) 콘텐츠 제공 시스템 및 방법
MXPA06008255A (en) Method of authorizing access to content

Legal Events

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

Payment date: 20120924

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141127

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161221

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee