DE69925466T2 - Streaming-media-abspielgerät mit fortdauernde kontrolle und schutz von medieninhalt - Google Patents

Streaming-media-abspielgerät mit fortdauernde kontrolle und schutz von medieninhalt Download PDF

Info

Publication number
DE69925466T2
DE69925466T2 DE69925466T DE69925466T DE69925466T2 DE 69925466 T2 DE69925466 T2 DE 69925466T2 DE 69925466 T DE69925466 T DE 69925466T DE 69925466 T DE69925466 T DE 69925466T DE 69925466 T2 DE69925466 T2 DE 69925466T2
Authority
DE
Germany
Prior art keywords
content
stream
information
cmps
die
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
DE69925466T
Other languages
English (en)
Other versions
DE69925466D1 (de
Inventor
G. Talal SHAMOON
D. Ralph HILL
D. Chris RADCLIFFE
P. John HWA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intertrust Technologies Corp
Original Assignee
Intertrust Technologies Corp
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22141634&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69925466(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Intertrust Technologies Corp filed Critical Intertrust Technologies Corp
Application granted granted Critical
Publication of DE69925466D1 publication Critical patent/DE69925466D1/de
Publication of DE69925466T2 publication Critical patent/DE69925466T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04HBROADCAST COMMUNICATION
    • H04H60/00Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
    • H04H60/09Arrangements for device control with a direct linkage to broadcast information or to broadcast space-time; Arrangements for control of broadcast-related services
    • H04H60/14Arrangements for conditional access to broadcast information or to broadcast-related services
    • H04H60/23Arrangements for conditional access to broadcast information or to broadcast-related services using cryptography, e.g. encryption, authentication, key distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/25Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with scene description coding, e.g. binary format for scenes [BIFS] compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption
    • H04N21/23476Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving video stream encryption by partially encrypting, e.g. encrypting the ending portion of a movie
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/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/2543Billing, e.g. for subscription services
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/654Transmission by server directed to the client
    • H04N21/6543Transmission by server directed to the client for forcing some client operations, e.g. recording
    • 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/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • 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
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Computer und/oder elektronische Sicherheit. Insbesondere betrifft die vorliegende Erfindung Systeme und Verfahren zum Schutz von Informationen im gestreamten Format.
  • HINTERGRUND
  • Streaming Digitalmedien bestehen im allgemeinen aus Sequenzen von digitalen Informationen, die in einem "Strom" (Stream) von Paketen empfangen werden und dazu bestimmt sind, angezeigt oder gerendert/wiedergegeben (engl.: to render) zu werden. Beispiele umfassen gestreamte Audio-Inhalte, gestreamte Videos, usw.
  • Digitale Medienströme werden zu einem zunehmend bedeutenderen Mittel der Inhaltsübermittlung und bilden die Grundlage für verschiedene angenommene, vorgeschlagene oder de-facto-Standards. Die Akzeptanz dieses Formats ist bisher jedoch durch die Leichtigkeit gehemmt worden, mit der digitale Medienströme kopiert und missbräuchlich verbreitet werden können, und durch die sich daraus ergebende Widewilligkeit der Inhaltseigentümer zu gestatten, dass bedeutendes Eigentum durch Streaming Digitalmedien verbreitet wird. Aus diesem Grunde besteht ein Bedarf an einer Methodik, mit der digitale Medienströme geschützt werden können.
  • Die EP-A-0714204 beschreibt ein digitales Videosystem mit Schutz vor illegalem Sehen und Kopieren. Das System enthält einen Decoder zum Descrambeln der Ausgabe eines Demodulators und einen Fehlerkorrektor, einen Kopierschutzprozessor zum Splitten des gescrambelten Aufzeichnungssignals in einen Bitstrom und einen Keystream und zum Verschlüsseln des Keystreams sowie eine SmartCard zum Entschlüsseln des gesplitteten und verschlüsselten Keystreams des Kopierschutzprozessors. Die SmartCard führt so genannte Pre-Rendering-Aspekte der Entschlüsselung durch, und das System hat keine Möglichkeiten zur Regelung der Inhaltsinformationen.
  • Die EP 0 763 936 beschreibt ein Verfahren zum Verhindern von unerlaubtem Sehen und Kopieren in einem digitalen Fernsehsystem. Das Verfahren umfasst das Übertragen von Audio/Video-Daten gemeinsam mit Zugriffsinformationen sowie Kopier- und Reproduktionskontrollinformationen an einen integrierten Empfänger/Decoder. Der Empfänger/Decoder decodiert und descrambelt den empfangenen Bitstrom und gibt anzuzeigende analoge Audio/Video-Daten aus, sowie verscrambelte digitale Audio/Video-Daten, die auf einen Videokassettenrecorder aufzuzeichnen sind.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird ein Streaming-Media-Player zur Verwendung mit einem Paketvermittlungsnetz und mit Bereitstellung eines Inhaltsschutzes sowie einer Verwaltung der digitalen Rechte vorgeschlagen, wobei der Media-Player umfasst:
    • (a) einen Anschluss (Port), der derart konfiguriert ist, dass er einen digitalen Bitstrom empfängt, der Pakete von Informationen aus einer Vielzahl von Teilströmen umfasst, die miteinander vermischt worden sind, wobei die Vielzahl von Teilströmen umfasst: einen Inhaltsstrom, der Inhaltspakete umfasst, die einen Inhalt enthalten, der komprimiert und zumindest teilweise verschlüsselt ist, einen Organisationsstrom, der Organisationspakete enthält, die Organisationsinformationen bezüglich des zu rendernden Werkes enthält, und einen Kontrollstrom, der Kontrollpakete umfasst, die einen sicheren Behälter haben, der Kontrollinformationen zum Kontrollieren der Benutzung des Inhalts enthält, einschließlich mindestens eines Schlüssels, der sich zur Entschlüsselung mindestens eines Teils des Inhalts eignet,
    • (b) einen Demultiplexer, der dafür sorgt, dass die Pakete getrennt und verteilt werden,
    • (c) eine Kontrolleinheit, die dafür sorgt, dass sichere Behälter geöffnet und kryptographische Schlüssel herausgezogen werden,
    • (d) eine Entschlüsselungseinheit, die dafür sorgt, dass die Inhaltspakete unter Verwendung eines kryptographischen Schlüssels entschlüsselt werden,
    • (e) eine Dekomprimierungseinheit, die dafür sorgt, dass die entschlüsselten Inhaltspakete dekomprimiert und dekomprimierte Objekte zum Rendering ausgegeben werden,
    • (f) eine Organisationseinheit, die dafür sorgt, dass Organisationspakete aus dem Demultiplexer empfangen und Organisationsinformationen, die die Organisation und die Beziehung von Objekten zum Rendering spezifiziert, ausgegeben werden,
    • (g) einen Composite-Block, der dafür sorgt, dass dekomprimierte Objekte, die aus der Dekomprimierungseinheit gemäß aus der Organisationseinheit ausgegeben Organisationsinformationen ausgegeben werden, organisiert werden, wobei die Informationen die Organisation und die Beziehung gerenderter Objekte spezifizieren, und dadurch dafür sorgt, dass die dekomprimierten Objekte zu einem Werk gerendert werden, und
    • (h) einen Rückkopplungspfad von dem Composite-Block zur Kontrolleinheit, um der Kontrolleinheit zu ermöglichen, Informationen aus dem Composite-Block bezüglich der dekomprimierten Inhaltsinformationen zu empfangen, was die Identifizierung von Objekten, die gerendert werden sollen oder gerendert worden sind, einschließt.
  • Erfindungsgemäß beschreibt die vorliegende Beschreibung eine neue Architektur zum Schutz von Informationen, die im gestreamten Format vorliegen. Diese Architektur wird im Zusammenhang mit einem allgemeinen System beschrieben, das einem System zum Rendern von Inhalt ähnelt, der gemäß der MPEG-4 Spezifikation (ISO/IEC 14496.1) kodiert wurde, obgleich mit gewissen Modifizierungen und mit der Vorgabe, dass das beschriebene System von dem MPEG-4 Standard in gewisser Hinsicht abweichen kann. Es ist eine Vielzahl verschiedener Ausführungsbeispiele beschrieben, einschließlich eines MPEG-4 Ausführungsbeispiels und eines Systems, das dazu bestimmt ist, einen Inhalt zu rendern, der gemäß der MP3 Spezifikation (ISO/IEC TR 11172) kodiert wurde.
  • Gemäß Aspekten der Erfindung umfasst diese Architektur Systemdesign-Aspekte und Informationsformat-Aspekte. Systemdesign-Aspekte umfassen die Aufnahme der Inhaltsschutz-Funktionalität, der Kontroll-Funktionalität sowie der Kontrollfunktionalität mittels Rückkopplung zur Überwachung der Aktivitäten des Systems. Die Informationsformat-Aspekte umfassen die Aufnahme von Regel-/Kontroll-Informationen in Informationsströme und den Schutz von Inhalt durch Mechanismen wie beispielsweise Verschlüsselung und das so genannte Watermarking (einem Einfügen von digitalen Wasserzeichen).
  • Systeme und Verfahren gemäß der vorliegenden Erfindung bieten einen Inhaltsschutz sowie eine Verwaltung digitaler Rechte. Ein Streaming-Media-Player gemäß der vorliegenden Erfindung umfasst einen Port, der dafür ausgelegt ist, einen digitalen Bitstrom zu empfangen. Der digitale Bitstrom enthält einen Inhalt, der zumindest teilweise verschlüsselt ist, sowie einen sicheren Behälter, der Kontrollinformationen enthält, die dazu bestimmt sind, die Verwendung des Inhalts zu kontrollieren, einschließlich mindestens eines Schlüssels, der sich zur Entschlüsselung mindestens eines Teiles des Inhalts eignet. Der Media-Player enthält ferner eine Kontrollanordnung, die Mittel zum Öffnen sicherer Behälter und zum Extrahieren kryptographischer Schlüssel enthält, sowie Mittel zum Entschlüsseln des verschlüsselten Teils des Inhalts.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die beigefügten Zeichnungen, die in die vorliegende Beschreibung aufgenommen sind und einen Teil derselben bilden, zeigen ein Ausführungsbeispiel der Erfindung und dienen zusammen mit der Beschreibung dazu, die Vorteile und Grundprinzipien der Erfindung zu erläutern. In den Zeichnungen zeigen:
  • 1 ein allgemeines System gemäß der vorliegenden Erfindung,
  • 2 einen beispielhaften Header 201 gemäß der vorliegenden Erfindung,
  • 3 ein allgemeines Kodierungsformat gemäß der vorliegenden Erfindung,
  • 4 eine Art zum Speichern einer Darstellung eines Werkes gemäß der vorliegenden Erfindung,
  • 5 ein Beispiel für ein Kontrollnachricht-Format,
  • 6 ein Flussdiagramm, das ein Ausführungsbeispiel der Schritte zeigt, die unter Verwendung der Funktionsblöcke der 1 ausgeführt werden,
  • 7 eine Form, in der die Kontrollnachrichten im Kontrollblock 13 gespeichert werden können,
  • 8 das MPEG-4 System 801 gemäß der vorliegenden Erfindung,
  • 9 ein Beispiel für ein Nachrichten-Format,
  • 10 eine IPMP-Tabelle gemäß der vorliegenden Erfindung,
  • 11 ein System gemäß der vorliegenden Erfindung,
  • 12 ein Ausführungsbeispiel des DigiBox-Formats,
  • 13 ein Beispiel für ein RealNetworks-Dateiformat (RMFF),
  • 14 zeigt ein RNPFF-Format gemäß der vorliegenden Erfindung,
  • 15 den Fluss von Veränderungen an Daten in dem RealNetworks-Dateiformat in einer Architektur gemäß der vorliegenden Erfindung,
  • 16 eine Standard-RealNetworks-Architektur,
  • 17 eine beispielhafte Architektur, in der ein "Trust Plug-in" innerhalb der gesamten RealNetworks-Architektur läuft,
  • 18 ein Bitstrom-Format gemäß den Grundprinzipien der vorliegenden Erfindung,
  • 19 ein Ausführungsbeispiel eines Schutzes, angewandt am MP3-Format,
  • 20 ein Ausführungsbeispiel eines MP3-Players, der dafür entwickelt ist, einen geschützten Inhalt zu verarbeiten und zu rendern,
  • 21 den Datenfluss in einem Ausführungsbeispiel, bei dem eine geschützte MPEG-4 Datei gemäß der vorliegenden Erfindung erstellt werden kann,
  • 22 den Datenfluss in einem Ausführungsbeispiel, bei dem die Kontrolle gemäß der vorliegenden Erfindung in einen bestehenden MPEG-4-Strom aufgenommen werden kann,
  • 23 ein System gemäß den Grundprinzipien der vorliegenden Erfindung,
  • 24 ein System gemäß den Grundprinzipien der vorliegenden Erfindung,
  • 25 ein Beispiel für einen Datenverbund-Strom (engl.: aggregate stream) gemäß der vorliegenden Erfindung,
  • 26 ein Header CMPO 2601 gemäß der vorliegenden Erfindung,
  • 27 beispielhafte Inhaltsverwaltungs- und schutz-Objekte (engl.: Content Management Protection Objects) gemäß den Grundprinzipien der vorliegenden Erfindung, und
  • 28 ein Beispiel für eine CMPO Datenstruktur 2801 gemäß der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • Im Folgenden wird auf Implementierungen gemäß den Grundprinzipien der vorliegenden Erfindung, wie sie in den beigefügten Zeichnungen dargestellt sind, im Detail Bezug genommen.
  • Die folgenden US-Patente und US-Anmeldungen, die jeweils dem Anmelder der vorliegenden Anmeldung übertragen wurden, werden hiermit unter Bezugnahme in ihrer Gesamtheit in die vorliegende Erfindung aufgenommen: Ginter, et al., "Systems and Methods for Secure Transaction Management and Electronic Rights Protection," U.S. Patentanmeldung Aktenzeichen 08/964,333, eingereicht am 4. November, 1997 ("Ginter '333"); Ginter, et al., "Trusted Infrastructure Support Systems, Methods and Techniques for Secure electronic commerce, Electronic Transactions, Commerce Process Control Automation, Distributed Computing, and Rights Management," U.S. Patentanmeldung Aktenzeichen 08/699,712, eingereicht am 12. August 1996 ("Ginter '712"); Van Wie, et al, "Steganographic Techniques for Securely Delivering Electronic Digital Rights Management Information Over Insecure Communications Channels," U.S. Patentanmeldung Aktenzeichen 08/689,606, eingereicht am 12. August 1996 ("Van Wie"); Ginter, et. al "Software Tamper Resistance and Secure Communication," U.S. Patentanmeldung Aktenzeichen 08/706,206, eingereicht am 30. August 1996 ("Ginter, '206"); Shear, et al, "Cryptographic Methods, Apparatus & Systems for Storage Media Electronic Rights Management in Closed & Connected Appliances," U.S. Patentanmeldung Aktenzeichen 08/848,077, eingereicht am 15. Mai 1997 ("Shear"); Collberg et al, "Obfuscation Techniques for Enhancing Software Security," U.S. Patentanmeldung Aktenzeichen 09/095,346, eingereicht am 9. Juni 1998 ("Collberg"); Shear, "Database Usage Metering and Protection System and Method," U.S. Patent Nr. 4,827,508, erteilt am 2. Mai 1989 ("Shear Patent").
  • Die 1 zeigt ein Media-System 1, das in der Lage ist, gestreamten Multimedia-Inhalt zu akzeptieren, zu decodieren und zu rendern. Es handelt sich um ein allgemeines System, obgleich es Elemente basierend auf der MPEG-4 Spezifikation enthält. Das Media-System 1 kann Software-Module, Hardware (einschließlich integrierter Schaltkreise) oder eine Kombination hiervor enthalten. Bei einem Ausführungsbeispiel kann das Media-System 1 eine sichere Verarbeitungsumgebung (Protected Processing Environment: PPE) einschließen, wie sie in der Anmeldung '333 von Ginter beschrieben ist.
  • In 1 stellt ein Bitstrom 2 eingegebene Informationen dar, die von dem System 1 empfangen werden. Der Bitstrom 2 kann über einen Anschluss zu einem externen Netzwerk (z. B. ein Internetanschluss, ein Kabelanschluss, eine Funkübertragung von einem Satellitensender usw.) oder aus einer tragbaren Speichervorrichtung, wie z. B. ein DVD-Player, empfangen werden.
  • Der Bitstrom 2 besteht aus einer Gruppe zusammengehöriger Informationsströme, einschließlich eines Organisations-Stroms 3, eines Audio-Stroms 4, eines Video- Stroms 5, eines Kontroll-Stroms 6 und eines Info-Stroms 31. Jeder dieser Ströme ist in den Gesamt-Bitstrom 2 hinein kodiert. Jeder von ihnen stellt eine Kategorie von Strömen dar, so dass beispielsweise der Video-Strom 5 aus einer Vielzahl separater Video-Ströme gebildet sein kann.
  • Diese Ströme entsprechen im allgemeinen Strömen, die im MPEG-4 Format wie folgt beschrieben sind:
    Der Organisations-Strom 3 entspricht im Allgemeinen dem BIFS-Strom und dem OD ("Objektdeskriptor" (engl.: Object Descriptor))-Strom.
  • Der Audio-Strom 4 und der Video-Strom 5 entsprechen im Allgemeinen den Audio- und Video-Strömen.
  • Der Kontroll-Strom 6 entspricht im Allgemeinen dem IPMP-Strom.
  • Der Audio-Strom 4 enthält komprimierte (und möglicherweise verschlüsselte) digitale Audio-Informationen. Diese Informationen werden dazu verwendet, den Ton zu erzeugen, der von dem Media-System 1 gerendert und ausgegeben wird. Der Audio-Strom 1 kann mehrfache Audio-Ströme darstellen. Diese Mehrfachströme können zusammen wirken, um die Audio-Ausgabe zu erzeugen, oder können alternative Audio-Ausgaben darstellen.
  • Der Video-Strom 5 enthält komprimierte (und möglicherweise verschlüsselte) digitale Video-Informationen. Diese Informationen werden dazu verwendet, die Bilder und Videos zu erzeugen, die von dem Media-System 1 gerendert und ausgegeben werden. Der Video-Strom 5 kann mehrfache Video-Ströme darstellen. Diese Mehrfachströme können zusammen wirken, um die Video-Ausgabe zu erzeugen, oder können alternative Video-Ausgaben darstellen.
  • Der Organisations-Strom 3 enthält organisatorische Informationen und Metadaten, die mit dem zu rendernden Werk in Beziehung stehen. Diese Informationen können einen Baum oder eine andere organisatorische Vorrichtung einschließen, die Audio- und Video-Ströme in Objekte gruppiert. Diese Informationen können auch Metadaten enthalten, die dem gesamten Werk, den Objekten oder den einzelnen Strömen zugeordnet sind.
  • Der Kontroll-Strom 6 enthält Kontrollinformationen, die im Allgemeinen in Header-Informationen und Nachrichten unterteilt sind. Die Header-Informationen umfassen einen Identifikator für jede einzelne Nachricht. Der Inhalt der Nachrichten, der weiter unten beschrieben werden wird, kann kryptographische Schlüssel und Regeln enthalten, die die Inhaltsverwendung regeln.
  • Der Info-Strom 31 führt zusätzliche Informationen mit sich, die dem Inhalt in anderen Komponenten des Bitstroms 2 zugeordnet sind, einschließlich, obgleich nicht darauf beschränkt, Graphiken, die Kunstobjekte für die Hülle darstellen, Texte für die Liedtexte, kodierte Notenblätter oder andere Notenschriften, unabhängige Werbeinhalte, Konzertinformationen, Fanclub-Informationen usw. Der Info-Strom 31 kann ferner Systemverwaltungs- und -kontrollinformationen und/oder andere Komponenten mit sich führen, wie z. B. Updates für Software oder Firmware im Media-System 1, Algorithmus-Implementierungen für inhaltsspezifische Funktionen, wie z. B. das so genannte Watermarking, etc.
  • Jeder dieser Ströme setzt sich aus Paketen mit Informationen zusammen. In einem Ausführungsbeispiel hat jedes Paket eine Länge von 32 Bytes. Da ein einziger Kommunikationskanal (z. B. ein Kabel, ein Bus, eine Infrarot- oder Funkverbindung) Pakete aus jedem der Ströme enthält, müssen die Pakete als zu einem bestimmten Strom gehörig identifiziert werden. In einem bevorzugten Ausführungsbeispiel erfolgt dies durch Aufnahme eines Headers, der einen bestimmten Strom identifiziert und die Anzahl der folgenden Pakete angibt, die Teil dieses Stroms sind. In einem anderen Ausführungsbeispiel kann jedes Paket individuelle Strom-Informationen enthalten.
  • Ein beispielhafter Header 201 ist in 2 gezeigt. Dieser Header kann im allgemeinen für den Organisations-Strom, den Audio-Strom und den Video-Strom verwendet werden. Ein Header für den Kontroll-Strom ist nachstehend beschrieben. Der Header 201 enthält ein Feld 202, das ein Bitmuster enthält, das den Header 201 als Header identifiziert. Das Feld 203 identifiziert die besondere Art von Strom (z. B. Audio-Strom, Organisations-Strom, Kontroll-Strom, usw.) Das Feld 204 enthält einen Elementary Stream-Identifikator (ES_ID), der dazu verwendet wird, den besonderen Strom zu identifizieren, und in solchen Fällen eingesetzt werden kann, in denen Mehrfachströme eines besonderen Strom-Typs gleichzeitig angetroffen werden können. Das Feld 207 enthält einen Zeitstempel, der von dem System dazu verwendet wird, die verschiedenen Ströme zu synchronisieren, ein schließlich dem Rendering der Ströme. Der Composite-Block 11 kann beispielsweise die verstrichene Zeit ab Beginn des Rendering verfolgen. Der Zeitstempel 207 kann von dem Composite-Block 11 verwendet werden, um zu bestimmen, wann jedes Objekt gerendert werden soll. Der Zeitstempel 207 kann deshalb eine ab Beginn des Renderings verstrichene Zeit spezifizieren, und der Composite-Block 11 kann diese verstrichene Zeit dazu nutzen zu bestimmen, wann das dazugehörige Objekt zu rendern ist.
  • Das Feld 205 enthält einen Regelungs-Indikator (engl.: governance indicator). Das Feld 206 identifiziert die Anzahl aufeinander folgender Pakete, die Teil des identifizierten Stroms sind. Jedes Mal ist die relevante Information in ein binäres Format kodiert. Beispielsweise kann das Feld 202 eine willkürliche Bitfolge enthalten, die als einen Header anzeigend erkannt wird, und das Feld 203 kann zwei Bits enthalten, wodurch ein Kodieren von vier verschiedenen Strom-Typen ermöglicht wird.
  • Unter erneuter Bezugnahme auf die 1 enthält das System 1 einen Demux 7, der als Eingabe den Bitstrom 2 akzeptiert und individuelle Ströme (gelegentlich als Elementary Streams oder "ESs" bezeichnet) auf geeignete Funktionsblöcke des Systems verteilt.
  • Der Bitstrom 2 kann in dem in 3 gezeigten Format kodiert sein. In dieser Figur trifft man auf den Header 301 in dem Bitstrom, auf den das Paket 302 folgt, und dies setzt sich fort bis zum Paket 308.
  • Wenn der Demux 7 auf den Header 301 trifft, identifiziert der Demux 7 den Header 301 als Header und verwendet die Header-Informationen, um die Pakete 302-305 als Pakete des Organisations-Stroms zu identifizieren. Der Demux 7 verwendet diese Informationen, um diese Pakete zum Organisations-Block 8 zu leiten. Der Demux 7 verarbeitet den Header 306 auf ähnliche Weise und verwendet die enthaltenen Informationen dazu, die Pakete 307 und 308 zum AV ("Audio Video")-Block 9 zu leiten.
  • Der AV-Block 9 enthält einen Dekomprimierer 10, der Elementary Streams aus dem Audio-Strom 4 und dem Video-Strom 5 akzeptiert und diese Ströme dekomprimiert. Im dekomprimierten Zustand wird die Strom-Information in ein Format gebracht, die dessen Handhabung und Ausgabe (über eine Video-Anzeige, Lautsprecher etc.) ermöglicht. Sind Mehrfachströme vorhanden (z. B. zwei Videoströme, die jeweils einen Aspekt einer Videosequenz beschreiben), verwendet der AV-Block 9 den ES_ID, um jedes Paket dem entsprechenden Strom zuzuordnen.
  • Der Organisations-Block 8 speichert Pointer-Informationen, die besondere Audio-Ströme und Video-Ströme, die in einem besonderen Objekt enthalten sind, identifizieren, sowie Metadaten-Informationen, die beispielsweise beschreiben, wo sich das Objekt befindet, wann es angezeigt werden soll (z. B. der dem Objekt zugeordnete Zeitstempel) und seine Beziehung zu anderen Objekten (z. B. befindet sich ein Video-Objekt vor oder hinter einem anderen Video-Objekt). Diese Organisation kann hierarchisch beibehalten werden, wobei einzelne Ströme auf der untersten Ebene, Gruppierungen von Strömen zu Objekten auf einer höheren Ebene, komplette Szenen auf einer noch höheren Ebene und das gesamte Werk auf der höchsten Ebene dargestellt werden.
  • Die 4 zeigt eine Art, auf die der Organisations-Block 8 eine Darstellung eines Werks speichern kann. In dieser Figur stellt ein Baum 401 ein gesamtes audiovisuelles Werk dar. Ein Zweig 402 stellt eine Organisation des Werkes auf hoher Ebene dar. Dieser kann beispielsweise das gesamte Video oder möglicherweise das Audio und das Video, das einer besonderen Szene zugeordnet ist, umfassen.
  • Der Unterzweig 403 stellt eine Gruppe verwandter Video-Objekte dar. Jedes dieser Objekte kann einen vollständigen Bildschirm oder ein einzelnes Element innerhalb des Bildschirms enthalten. Beispielsweise kann der Unterzweig 403 einen Hintergrund darstellen, der sich von einer Aufnahme zur nächsten nicht stark verändert. Wenn sich das Video zwischen zwei Referenzpunkten bewegt (z. B. eine Konversation, bei der der Kamera-Blickpunkt von einem Gesicht zum anderen wechselt), könnte der Unterzweig 404 einen zweiten Hintergrund darstellen, der bei dem zweiten Blickpunkt verwendet wird.
  • Die Knoten (engl.: nodes) 405 und 406 können besondere Video-Objekte darstellen, die in der verwandten Gruppe enthalten sind. Der Knoten 405 könnte beispielsweise einen entfernten Gebirgszug darstellen, während der Knoten 406 einen Baum darstellt, der sich unmittelbar hinter einer der Personen befindet.
  • Jeder der Knoten spezifiziert oder enthält einen besonderen ES_ID, der den Strom darstellt, der die Informationen enthält, die von diesem Knoten verwendet werden. Beispielsweise enthält der Knoten 405 den ES_ID 407, der einen bestimmten Video-Strom identifiziert, der komprimierte (und möglicherweise verschlüsselte) digitale Informationen enthält, die den Gebirgszug darstellen.
  • Der Composite-Block 11 akzeptiert Eingaben aus dem Organisations-Block 8 und dem AV-Block 9. Der Composite-Block 11 verwendet die Eingaben aus dem Organisations-Block 8, um zu bestimmen, welche spezifischen audiovisuellen Elemente zu einer beliebigen vorgegebenen Zeit gebraucht werden, und um die Organisation und die Beziehung dieser Elemente zu bestimmen. Der Composite-Block 11 akzeptiert dekomprimierte audiovisuelle Objekte aus dem AV-Block 9, und organisiert diese Objekte, wie dies durch Informationen aus dem Organisations-Block 8 spezifiziert ist. Dann leitet der Composite-Block 11 die organisierten Informationen weiter zur Rendering-Vorrichtung 12 (Wiedergabevorrichtung, engl.: rendering device) bei der es sich um einen Fernsehbildschirm, Stereo-Lautsprecher, etc. handeln kann.
  • Der Kontroll-Block 13 speichert Kontrollnachrichten, die durch den Kontroll-Strom 6 empfangen werden können und/oder in andere Ströme mittels Watermarking eingefügt oder steganographisch kodiert werden können, einschließlich des Audio-Stroms 4 und des Video-Stroms 5. Ein Kontrollnachricht-Format ist in 5 dargestellt, das die Kontroll-Nachricht 501 zeigt. Die Kontrollnachricht 501 besteht aus einem Header 502 und einer Nachricht 503. Der Header 502 besteht aus einem Feld 508, das ein Bitmuster enthält, das die folgenden Informationen als Header identifiziert, einem Stromtyp-Feld 509, das dieses als Header für den Organisationsstrom identifiziert, einem ID-Feld 504, das diese bestimmte Kontrollnachricht identifiziert, einem Pointer-Feld 505, das diejenigen ESs identifiziert, die von dieser Nachricht kontrolliert werden, einem Zeitstempel-Feld 507, das den bestimmten Abschnitt des Stroms identifiziert, der von dieser Kontrollnachricht kontrolliert wird (dies kann angeben, dass der gesamte Strom kontrolliert wird) und einem Längen-Feld 506, das die Länge (in Bytes) der Nachricht 503 spezifiziert. Die Nachricht 503 kann Pakete enthalten, die auf den Header 502 folgen, wobei das allgemeine, in 3 gezeigte Format verwendet wird. In dem gezeigten Beispiel trägt die Kontroll-Nachricht 501 die eindeutige ID 111000, kodiert im ID-Feld 504. Diese Kontrollnachricht kontrolliert die ESs 14 und 95, wie dies durch das Pointer-Feld 505 angezeigt wird. Die dazugehörige Nachricht umfasst 1024 Bytes, wie dies durch das Längen-Feld 506 angegeben wird.
  • In einem alternativen Ausführungsbeispiel kann die Zuordnung von Kontrolle zum Inhalt im Organisations-Block 8 stattfinden, der einen Pointer auf bestimmte Kontrollnachrichten speichern kann, zusammen mit den Metadaten, die den Strömen, Objekten etc. zugeordnet sind. Dies kann jedoch dahingehend nachteilig sein, dass es wünschenswert sein mag, diese Zuordnung vor einer Entdeckung oder Sabotage durch den Benutzer zu schützen. Da der Kontroll-Block 13 im allgemeinen auf jeden Fall geschützt werden muss, kann ein Speichern dieser Zuordnung in diesem Block die Sicherung des Organisationsblocks 8 weniger notwendig machen.
  • Der Kontroll-Block 13 übt die Kontrolle über das System 1 durch die Kontroll-Leitungen 14, 15 und 16 aus, die Aspekte des Organisations-Blocks 8, des AV-Blocks 9 bzw. des Composite-Blocks 11 kontrollieren. Jede dieser Kontroll-Leitungen kann eine Zwei-Wege-Kommunikation gestatten.
  • Die Kontroll-Leitungen 14 und 15 sind in Kommunikation mit einem so genannten AV-Block Stream Flow Controller 18 (Strom-Fluss-Steuerung) und einem so genannten Organisations-Block Stream Flow Controller 17 gezeigt. Diese Stream Flow Controller zum Kontrollieren der Ströme enthalten Funktionalitäten, die von dem Kontroll-Block 13 kontrolliert werden. In dem dargestellten Ausführungsbeispiel sind die Stream Flow Controller als die erste Stufe in einer zweistufigen Pipeline gezeigt, wobei die Informationen von dem Stream Flow Controller verarbeitet und dann zu dem dazugehörigen Funktionsblock weitergeleitet werden. Dies ermöglicht eine Isolierung der Kontrollfunktionalität von der Inhaltsverarbeitungs- und Anzeigefunktionalität des Systems und ermöglicht ein Zufügen einer Kontrolle ohne ein Ändern der den Blocks zugrunde liegenden Funktionalität. In einem alternativen Ausführungsbeispiel können die Stream Flow Controller direkt in die dazugehörigen Funktionsblöcke integriert sein.
  • Die Stream Flow Controller 17 und 18 enthalten kryptographische Engines 19 bzw. 20. Diese kryptographischen Engines arbeiten unter der Kontrolle des Kontroll-Blocks 13, um die aus dem Demux 7 empfangenen verschlüsselten Paketströme zu entschlüsseln und/oder kryptographisch zu validieren (z. B. eine sichere Hashwertbildung durchzuführen, ein Nachrichten-Authentifizierungscode, und/oder Digitalsignatur-Funktionen). Die Entschlüsselung und Validierung kann entsprechend den Schutzanforderungen des Stroms selektiv oder optional sein.
  • Die kryptographischen Engines 19 und 20 können relativ komplex sein und beispielsweise einen Validierungsrechner enthalten, der die kryptographische Hashwertbildung, die Nachrichten-Authentifizierungscode-Berechnung und/oder andere kryptographische Validierungsverfahren durchführt. Wie dies weiter unten beschrieben wird, können darüber hinaus auch zusätzliche Arten einer regelungsspezifischen Verarbeitung verwendet werden. In einem alternativen Ausführungsbeispiel kann ein einziger Stream Flow Controller sowohl für den Organisations-Strom 3 als auch für die Audio/Video-Ströme 4-5 verwendet werden. Dadurch können die Kosten des Systems 1 sowie der von ihm eingenommene Raumbedarf reduziert werden. Diese Reduzierungen können beträchtlich sein, da das System 1 mehrfache AV-Blöcke enthalten kann, die jeweils einen separaten Audio- oder Video-Strom parallel verarbeiten. Diese Alternative kann jedoch zu einer zusätzlichen Latenz führen, die in einem Echtzeit-System inakzeptabel ist.
  • Wenn die Stream Flow Controller in einem einzigen Block konzentriert sind, können sie direkt in den Demux 7 aufgenommen werden, der eine Regelungsverarbeitung (engl.: governance processing) durchführen kann, ehe er die Ströme zu den Funktionsblöcken leitet. Ein derartiges Ausführungsbeispiel würde eine geregelte Entschlüsselung oder Validierung des gesamten Bitstroms 2 ermöglichen und könnte vor dem Verteilen der Ströme auf die einzelnen Funktionsblöcke erfolgen. Die Verschlüsselung des gesamten Bitstroms 2 (im Gegensatz zur individuellen Entschlüsselung einzelner ESs) kann ohne die Aufnahme der Stream-Controller-Funktionalität in den Demux 7 schwierig oder unmöglich sein, da der Demux 7 andernfalls möglicherweise nicht in der Lage ist, die Header-Informationen zu erfassen oder zu lesen, die erforderlich sind, um die Ströme auf die Funktionsblöcke zu verteilen (wobei diese Header-Informationen wahrscheinlich verschlüsselt sind).
  • Wie oben erwähnt, kann jeder der einzelnen Ströme, die in dem Bitstrom 2 enthalten sind, einzeln verschlüsselt werden. Ein verschlüsselter Strom kann von einem bestimmten Indikator in dem Header des Stroms identifiziert werden, der in 2 als Regelungs-Indikator (engl.: Governance Indicator) 205 gezeigt ist.
  • Wenn ein Header von dem Demux 7 zu dem geeigneten Funktionsblock weitergeleitet wird, liest der diesem Block zugeordnete Stream Flow Controller den Header und bestimmt, ob die folgenden Pakete verschlüsselt sind oder anders geregelt werden müssen. Wenn der Header anzeigt, dass keine Regelung ver wendet wird, leitet der Stream Flow Controller den Header und die Pakete durch zu den Funktionsblöcken ohne irgendeine Veränderung. Der Regelungs-Indikator 205 kann so entwickelt sein, dass herkömmlich kodierter Inhalt (z. B. ungeschützter MPEG-4 Inhalt) als Inhalt erkannt wird, der keinen Regelungs-Indikator hat und von daher zur normalen Verarbeitung durchgeleitet wird.
  • Wenn ein Stream Flow Controller einen gesetzten Regelungs-Indikator erfasst, leitet er den ES_ID, der diesem Strom zugeordnet ist, und den diesen aktuellen Paketen zugeordneten Zeitstempel entlang der Kontrollleitungen 14 oder 15 zu dem Kontroll-Block 13. Der Kontroll-Block 13 verwendet dann den ES_ID und die Zeitstempel-Informationen dazu zu identifizieren, welche Kontrollnachrichten) diesem ES zugeordnet ist bzw. sind. Zugeordnete Nachrichten werden dann aufgerufen und möglicherweise verarbeitet, wie sie für Regelungszwecke verwendet werden können.
  • Ein einfacher Regelungsfall ist in 6 gezeigt, der Schritte zeigt, die unter Verwendung der Funktionsblöcke der 1 ausgeführt werden. Im Schritt 601 trifft der Demux 7 auf einen Header und bestimmt, dass der Header Teil des AV-Stroms ist. Im Schritt 602 leitet der Demux 7 den Header an den AV-Stream Controller 18. Im Schritt 603 liest der AV-Stream Controller 18 den Header und bestimmt, dass der Regelungs-Indikator gesetzt ist, wodurch eine weitere Verarbeitung entlang des Pfades 604 ausgelöst wird. Im Schritt 605 erhält der AV-Stream Controller 18 den ES_ID und den Zeitstempel aus dem Header und überträgt diese an den Kontroll-Block 13 entlang der Kontrollleitung 15. Im Schritt 606 sucht der Kontroll-Block 13 den ES_ID und bestimmt, dass der ES_ID einer bestimmten Kontrollnachricht zugeordnet ist. Im Schritt 611 verwendet der Kontroll-Block 13 die Zeitstempel-Information, um unter Kontrollnachrichten auszuwählen, für den Fall, dass einem bestimmten ES mehr als eine Kontrollnachricht zugeordnet ist. Im Schritt 607 greift der Kontroll-Block 13 auf die entsprechende Kontrollnachricht zu und erhält einen oder mehrere kryptographische Schlüssel zur Entschlüsselung und/oder Validierung. Im Schritt 608 leitet der Kontroll-Block 13 den bzw. die kryptographischen Schlüssel entlang der Kontrollleitung 15 zu dem AV-Stream Controller 18. Im Schritt 609 verwendet der AV-Stream Controller 18 den kryptographischen Schlüssel als eine Eingabe in die kryptographische Engine 20, die die auf den Header folgenden Pakete entschlüsselt und/oder validiert, wenn diese Pakete vom Demux 7 empfangen werden. Im Schritt 610 werden dann die entschlüsselten Pakete zum AV-Block 9 weitergeleitet, der diese auf herkömmliche Weise dekomprimiert und verarbeitet.
  • Die Zeitstempel-Informationen können sich als nützlich erweisen, wenn man wünscht, die Kontrollnachricht, die für einen bestimmten ES anwendbar ist, zu ändern. Beispielsweise kann es nützlich sein, verschiedene Abschnitte eines Stroms mit verschiedenen Schlüsseln zu kodieren, so dass ein Angreifer, der einen Schlüssel (oder auch eine Vielzahl von Schlüsseln) knackt, nicht in der Lage sein wird, den Inhalt zu verwenden. Dies kann dadurch erfolgen, dass man dem gleichen Strom eine Vielzahl von Kontrollnachrichten zuordnet, wobei jede Kontrollnachricht für einen bestimmten Zeitraum gültig ist. Die Zeitstempelinformationen würden dann dazu verwendet werden um auszuwählen, welche Kontrollnachrichten (und welcher Schlüssel) zu einer bestimmten Zeit zu benützen wäre. Alternativ dazu kann eine Kontrollnachricht verwendet werden, wobei jedoch aktualisierte Informationen durch den Kontrollstrom eingeführt werden, wobei diese Updates aus einem neuen Zeitstempel und einem neuen Schlüssel bestehen.
  • In einem alternativen Ausführungsbeispiel kann der Kontroll-Block 13 die entsprechenden Schlüssel an den entsprechenden Stream Flow Controller proaktiv senden, indem die Zeitstempel-Informationen verwendet werden, um zu bestimmen, wann ein Schlüssel notwendig sein wird. Dies kann die gesamte Latenz verringern.
  • Die Kontrollleitung 16 aus 1 kommt ins Spiel, sobald die Informationen vom Organisations-Block 8 und vom AV-Block 9 an den Composite-Block 11 gesendet wurden, und das fertige Werk für ein Rendering durch die Rendering-Vorrichtung 12 bereit ist. Wenn der Composite-Block 11 ein Objekt an die Rendering-Vorrichtung 12 sendet, sendet der Composite-Block 11 eine Start-Nachricht an den Kontroll-Block 13. Diese Nachricht identifiziert das Objekt (einschließlich aller zugehöriger ES_IDs) und spezifiziert die Startzeit der Anzeige (oder einer anderen Wiedergabe) dieses Objekts. Wird ein Objekt nicht mehr gerendert, sendet der Composite-Block 11 eine End-Nachricht an den Kontroll-Block 13 und spezifiziert, dass das Rendering des Objekts beendet wurde, sowie den Zeitpunkt, zu dem die Beendigung eintrat. Mehrfache Kopien eines bestimmten Objekts können gleichzeitig gerendert werden. Aus diesem Grund können die vom Composite-Block 11 gesendeten Start- und End-Nachrichten eine zugehörige Instanz-ID enthalten, die spezifiziert, welche Instanz gerendert wird.
  • Der Kontroll-Block 13 kann Informationen speichern, die sich auf Start- und End-Zeiten bestimmter Objekte beziehen, und/oder kann diese Informationen durch den Port 21 an externe Vorrichtungen (z. B. einen externen Server 30) weiterleiten. Diese Informationen ermöglichen dem Kontroll-Block 13 nicht nur zu verfolgen, welche Objekte entschlüsselt wurden, sondern welche Objekte tatsächlich verwendet wurden. Davon wird eventuell Gebrauch gemacht, da das System 1 viel mehr Objekte entschlüsseln, validieren und/oder dekomprimieren kann als tatsächlich verwendet werden. Der Kontroll-Block 13 kann auch die Verwendungsdauer der Objekte bestimmen und er kann bestimmen, welche Objekte zusammen verwendet wurden. Informationen dieser Art können für hochentwickelte Abrechnungs- und Prüfungssysteme verwendet werden, die weiter unten beschrieben werden.
  • Die Kontrollleitung 16 kann auch dazu verwendet werden, den Betrieb des Composite-Blocks 11 zu kontrollieren. Insbesondere kann der Kontroll-Block 13 Informationen speichern, die spezifizieren, wann das Rendering eines bestimmten Objekts gültig ist, und er kann verfolgen, wie oft ein Objekt gerendert wurde. Wenn der Kontroll-Block 13 bestimmt, dass ein Objekt illegal gerendert wurde (d.h. durch einen Verstoß gegen Regeln, die das Rendering kontrollieren), kann der Kontroll-Block 13 den Betrieb des Composite-Blocks 11 beenden oder die Löschung des illegalen Objekts erzwingen.
  • In einem alternativen Ausführungsbeispiel kann die Kontrollhöhe, die von der Kontrollleitung 16 vorgesehen wird, zumindest zum Teil bereitgestellt werden, ohne dass diese Leitung vorhanden ist. Der Kontroll-Block 13 kann stattdessen einen Hashwert der gegenwärtig für den Organisations-Block 8 gültigen Organisationsinformationen speichern. Dieser Hashwert kann durch den Kontroll-Strom 6 empfangen werden, oder alternativ dazu von dem Kontroll-Block 13 basierend auf den im Organisations-Block 8 enthaltenen Informationen erzeugt werden.
  • Der Kontroll-Block 13 kann periodisch einen Hashwert der gegenwärtig im Organisations-Block 8 vorhandenen Informationen erzeugen und diesen mit dem gespeicherten Hashwert vergleichen. Ein Unterschied kann anzeigen, dass eine unbefugte Änderung an den Informationen im Organisations-Block 8 vorgenommen wurde, und dadurch möglicherweise einem Benutzer erlaubt wird, Informationen in einer Weise zu rendern, die gegen die Regeln, die diesen Informationen zugeord net sind, verstößt. In einem solchen Fall kann der Kontroll-Block 13 entsprechende Schritte unternehmen, einschließlich eines Löschens der Informationen, die gegenwärtig im Organisations-Block 8 vorhanden sind.
  • Wenn das System 1 so entwickelt ist, dass der Organisations-Block 8 die Inhaltsverwendung durch den Composite-Block 11 kontrolliert, so dass der Inhalt nicht gerendert werden kann, außer dies ist durch die Organisationsinformationen spezifiziert, kann der Kontroll-Block 13 in der Lage sein, das Rendering von Informationen dadurch zu kontrollieren, dass er prüft, ob die gegenwärtigen Inhalte des Organisations-Blocks mit dem Hashwert übereinstimmen, der von dem Kontroll-Block 13 empfangen wurde, wodurch mindestens ein Grund für das Vorhandensein der Kontrollleitung 16 eliminiert wurde.
  • Der Kontroll-Block 13 kann auch dafür verantwortlich sein, den Ursprung, die Integrität, die Echtheit oder andere Eigenschaften des empfangenen Inhalts mittels kryptographischer Validierungsmittel, wie sichere Hashwertbildung, Nachrichten-Authentifizierungscodes, und oder Digitalsignatur-Funktionen sicher zu validieren.
  • Das System 1 kann auch einen so genannten Inter-Rights-Point umfassen, der als IRP 22 angegeben ist. Der IRP 22 ist eine geschützte Verarbeitungsumgebung (z. B. ein PPE), in der Regeln/Kontrollen verarbeitet werden können und die empfindliche Informationen speichern kann, wie z. B. kryptographische Schlüssel. Der IRP 22 kann im Kontroll-Block 13 aufgenommen sein, oder es kann sich um ein separates Modul handeln. Wie dargestellt, kann der IRP 22 eine CPU 23 (die jede Art von Verarbeitungseinheit sein kann), eine kryptographische Engine 24, einen Zufallsgenerator 25, eine Echtzeituhr 26 und einen Sicherheitsspeicher 27 umfassen. In besonderen Ausführungsbeispielen können einige dieser Elemente weggelassen und zusätzliche Funktionalitäten aufgenommen werden.
  • Regeln zur Regelung (engl.: Governance Rules)
  • Die vom Kontroll-Block 13 gespeicherten Kontrollnachrichten können sehr komplex sein. Die 7 zeigt die Form, in der die Kontrollnachrichten im Kontroll-Block 13 gespeichert werden können, bestehend aus einem Array 717. Die Spalte 701 besteht aus der Adresse, unter der die Kontrollnachrichten gespeichert sind. Die Spalte 702 besteht aus dem Identifikator für jede Kontrollnachricht. Diese Funktion kann mit der der Spalte 701 kombiniert werden, indem die Ortsinfor mationen der Spalte 701 als Identifikator verwendet werden oder indem die Nachricht an einer Stelle gespeichert wird, die dem Identifikator entspricht. Die Spalte 703 besteht aus den ES_IDs für jeden Strom, der von der Kontrollnachricht kontrolliert wird. Die Spalte 704 besteht aus der Nachricht selbst. Somit hat die an der Stelle 1 gespeicherte Kontrollnachricht die ID 15 und kontrolliert den Strom 903.
  • In einem einfachen Fall kann die Nachricht einen kryptographischen Schlüssel enthalten, der dazu verwendet wird, den Inhalt zu entschlüsseln, der dem bzw. den Strömen zugeordnet ist, die von der Nachricht kontrolliert werden. Dies ist durch den kryptographischen Schlüssel 705 aus 7 gezeigt. Kryptographische Schlüssel und/oder Validierungswerte können auch enthalten sein, um eine kryptographische Validierung der Integrität oder des Ursprungs des Stroms zu ermöglichen.
  • In einem komplexeren Fall kann die Nachricht eine oder mehrere Regeln enthalten, die dazu bestimmt sind, den Zugriff auf geregelten Inhalt bzw. dessen Verwendung zu regeln. Die Regeln können in eine Vielzahl von Kategorien fallen.
  • Die Regeln können erfordern, dass ein bestimmter Aspekt des Systems 1 oder ein Benutzer des Systems 1 vor der Entschlüsselung oder der Verwendung des geregelten Inhalts überprüft wird. Beispielsweise kann das System 1 eine System ID 28 enthalten, die einen einzigartigen Identifikator für das System speichert. Eine besondere, in einer Kontrollnachricht enthaltene Regel kann spezifizieren, dass ein bestimmter Strom nur auf einem System entschlüsselt werden kann, bei dem die System ID 28 einen bestimmten Wert hat. Dies ist in Zeile 2 der 7 gezeigt, in der die Nachricht als aus einer Regel und aus Befehlen bestehend dargestellt ist. Die Regel kann implizit und von daher nicht explizit in der Tabelle gespeichert sein (z. B. kann die Tabelle nur die Regel speichern, die regelspezifischen Funktionen (Befehle), die von der Regel aufgerufen werden, oder nur die Funktionen).
  • Wenn der Stream Controller 18 auf einen Header für den Strom 2031 trifft, der einen gesetzten Regelungs-Indikator enthält, wird der Stream Controller 18 in diesem Fall die dazugehörige ES_ID (2031) an den Kontroll-Block 13 weiterleiten. Der Kontroll-Block 13 verwendet dann die ES_ID, um die Kontroll-Nachricht 20 zu identifizieren, die den Strom 2031 regelt. Die Kontroll-Nachricht 20 enthält die Regel 706, die Befehle 707 enthält (oder aufruft), sowie eine autorisierte System-ID 708. Die autorisierte System ID 708 kann von dem System 1 entweder als Teil der Kontroll-Nachricht 20 oder als Teil einer anderen Kontroll-Nachricht (z. B. der Kontroll-Nachricht 9) empfangen worden sein, wobei die Kontroll-Nachricht 20 dann verweisen könnte, um Zugriff auf die autorisierte System ID zu bekommen. Ein solcher Fall kann beispielsweise vorliegen, wenn ein Kabelkunde sich für eine Premium-Show hat vorregistrieren lassen. Das Kabelsystem kann diese Registrierung erkennen und den Benutzer ermächtigen, diese Show anzusehen, indem es dem Benutzer eine der System-ID entsprechende ID sendet.
  • Wird die Regel 706 aufgerufen, greifen entsprechende Befehle 707 auf die System-ID 28 zu und erhalten die System-ID-Nummer. Dann vergleichen die Befehle diese Nummer mit der autorisierten System-ID 708, die von der Regel 706 spezifiziert wird. Stimmen die beiden Nummern überein, geben die Befehle 707 den kryptographischen Schlüssel 709 an den Stream Controller 18 frei, der den kryptographischen Schlüssel 709 verwendet, um den Strom, der der ES_ID 2031 entspricht, zu entschlüsseln. Stimmen die beiden Nummern nicht überein, werden die Befehle 707 den kryptographischen Schlüssel 709 nicht freigeben, so dass der Stream Controller 18 nicht in der Lage ist, den Strom zu entschlüsseln.
  • Um diese Funktionen auszuführen, enthält der Kontroll-Block 13 in einem Ausführungsbeispiel eine Verarbeitungseinheit und einen Speicher oder hat auf dieselben Zugriff. Die Verarbeitungseinheit ist vorzugsweise in der Lage, irgendeinen der Befehle auszuführen, die in einer der Regeln enthalten sein oder von denselben aufgerufen werden können. Der Speicher wird die Regeln und die dazugehörigen Informationen (ID der Kontrollnachricht und IDs irgendwelcher geregelter ESs) speichern.
  • Da die Funktionen, die vom Kontroll-Block 13 ausgeführt werden, empfindliche Funktionen sind und eine Regelung eines Inhalts beinhalten, der wertvoll sein kann, kann der Kontroll-Block 13 teilweise oder vollständig durch eine Barriere geschützt sein, die sich einem unautorisierten Eingriff und einer Beobachtung widersetzt. Wie oben beschrieben, können die Verarbeitungseinheit, der Sicherheitsspeicher und verschiedene andere regelungspezifische Elemente in dem IRP 22 enthalten sein, der entweder im Kontroll-Block 13 enthalten oder von demselben getrennt ist.
  • Der Kontroll-Block 13 kann auch etwas komplexere Operationen durchführen. In einem Beispiel kann eine Kontrollnachricht erfordern, dass auf Informationen aus dem System 1 nicht nur zugegriffen wird und dieselben mit erwarteten Informationen verglichen werden, sondern diese auch für eine zukünftige Verwendung gespeichert werden. Beispielsweise kann eine Kontrollnachricht die Entschlüsselung eines Stroms gestatten, jedoch erst nachdem die System ID 28 in den Kontroll-Block 13 geladen und dort gespeichert wurde. Dies würde einer Kontrollnachricht gestatten, die gespeicherte System ID mit der System ID 28 regelmäßig oder möglicherweise bei jedem versuchten erneuten Betrachten eines bestimmten Stroms zu vergleichen, wodurch die Kontrollnachricht sicherstellen kann, dass der Strom nur auf einem einzigen System gespielt wird.
  • Der Kontroll-Block 13 kann Informationen auch dynamisch erhalten. Das System 1 kann beispielsweise die Benutzerschnittstelle 29 enthalten, die jede Art von Benutzereingabefunktionalität (z. B. Hardware-Knöpfe, Informationen, die auf einem Video-Bildschirm angezeigt werden, usw.) umfassen kann. Eine bestimmte Regel aus einer Kontrollnachricht kann erfordern, dass der Benutzer vor der erlaubten Entschlüsselung oder Verwendung eines Stroms Informationen eingibt. Diese Informationen können beispielsweise ein Passwort sein, welches die Regel dann mit einem gespeicherten Passwort vergleichen kann, um sicherzustellen, dass der bestimmte Benutzer dazu autorisiert ist, den Strom zu rendern.
  • Die von dem Benutzer erhaltenen Informationen können komplizierter sein. Beispielsweise könnte eine Regel verlangen, dass der Benutzer Zahlungsinformationen oder persönliche Informationen eingibt, ehe die Freigabe eines kryptographischen Schlüssels gestattet wird. Bei den Zahlungsinformationen könnte es sich beispielsweise um eine Kreditkarten- oder Geldkartennummer handeln. Die persönlichen Informationen können den Namen, das Alter, die Adresse, die E-Mail-Adresse, die Telefonnummer usw. des Benutzers umfassen. Die eingegebenen Informationen können dann über den Port 21 an den externen Server 30 zur Überprüfung geschickt werden. Nach Empfang einer Verifikationsnachricht aus dem externen Server 30 könnte dann die Regel die Freigabe eines kryptographischen Schlüssels autorisieren. Alternativ dazu kann der Kontroll-Block 13 dafür ausgelegt sein, in einem "Off-line"-Modus zu arbeiten und die Informationen bis zu einem späteren Anschluss an eine externe Vorrichtung (oder ein Netzwerk) zu speichern. In einem solchen Fall kann der Kontroll-Block 13 verlangen, dass in regelmäßigen Zeitabschnitten eine Verbindung hergestellt wird, oder er kann die Anzahl der Autorisierungen beschränken, die bis zur Herstellung einer externen Verbindung erhalten werden.
  • In einem etwas komplexeren Szenario kann eine Kontrollnachricht konditionale Regeln enthalten. Ein besonderes Beispiel ist durch die Reihe 4 der in 7 gezeigten Tabelle dargestellt, in der die Kontroll-Nachricht 700 als die Ströme 49-53 kontrollierend gezeigt ist. Die Kontroll-Nachricht 700 besteht ferner aus der Regel 710, den Befehlen 711 und den kryptographischen Schlüsseln 712-716. Selbstverständlich könnte eine Vielzahl zusätzlicher kryptographischer Schlüssel mit der Nachricht gespeichert sein.
  • Im vorliegenden Fall spezifiziert die Regel 710, dass ein Benutzer, der der Bezahlung eines bestimmten Betrages (oder der Bereitstellung einer bestimmten Informationsmenge) zustimmt, den Strom 49 sehen darf, jedoch alle anderen Benutzer den Strom 50 oder eine Kombination aus den Strömen 49 und 50 sehen müssen. In diesem Fall kann der Strom 49 einen Film oder ein Fernsehprogramm darstellen, während der Strom 50 Werbespots darstellt. In einem Ausführungsbeispiel können verschiedene Abschnitte des Stroms 49 mit verschiedenen Schlüssel entschlüsselt werden, so dass beispielsweise ein erster Abschnitt mit dem Schlüssel 712 entschlüsselt wird, ein zweiter Abschnitt mit dem Schlüssel 713 entschlüsselt wird, ein vierter Abschnitt mit dem Schlüssel 714 entschlüsselt wird, usw. Die Regel 710 kann alle Schlüssel enthalten, die zum Entschlüsseln des gesamten Stroms 49 verwendet werden. Wenn der Benutzer anfänglich versucht, auf das im Strom 49 kodierte Video zuzugreifen, könnte die Regel 710 eine Nachricht vorbringen, in der gefragt wird, ob der Benutzer lieber den Pay-for-view-Modus (Gebührenfernseh-Modus) oder den Werbe-Modus benutzen möchte. Wenn der Benutzer den Pay-for-view-Modus auswählt, könnte die Regel 710 die Zahlungsinformationen speichern (oder übertragen) und den kryptographischen Schlüssel 712 an den Stream Controller 18 weiterleiten. Der Stream Controller 18 könnte den kryptographischen Schlüssel 712 verwenden, um den ersten Strom zu entschlüsseln, bis ein Header empfangen wird, der anzeigt, dass ein anderer Schlüssel notwendig ist, um den folgenden Paketsatz zu entschlüsseln. Auf Anfrage des Stream-Controllers 18 hin würde dann der Kontroll-Block 13 eine Prüfung durchführen, um festzustellen, ob die Zahlung erfolgte, und dann den kryptographischen Schlüssel 713 freigeben, der zum Entschlüsseln der folgenden Pakete verwendet werden würde, usw. Die Regel 710 könnte zusätzlich den kryp tographischen Schlüssel 716 freigeben, der dem Organisations-Strom 52 entspricht, der einem Video ohne Werbespots entspricht.
  • Wenn der Benutzer andererseits den Werbe-Modus gewählt hätte, könnte die Regel 710 den kryptographischen Schlüssel 712 an den Stream Controller 18 freigeben, um die Entschlüsselung des Stroms 49 zu gestatten. Die Regel 710 könnte auch die Entschlüsselung des Stroms 50 autorisieren, der die Werbespots enthält. Außerdem könnte die Regel 710 ferner den kryptographischen Schlüssel 715 an den Organisations-Block 8 freigeben. Der kryptographische Schlüssel 715 passt zum Organisations-Strom 51. Der Organisations-Strom 51 verweist auf das Video aus dem Strom 49, aber gleichzeitig verweist er auch auf Werbespots aus dem Strom 50. Die Regel 710 würde die Freigabe des kryptographischen Schlüssels 716 verweigern, der dem Organisations-Strom 52 entspricht, der wiederum dem Video ohne Werbespots entspricht.
  • Im Betrieb könnte der Kontroll-Block 13 Informationen aus dem Composite-Block 11 über die Kontrollleitung 16 überwachen. Diese Informationen könnten die Identität jedes tatsächlich gerenderten Objekts umfassen, sowie einen Start- und einen End-Zeitpunkt für das Rendering. Der Kontroll-Block 13 könnte diese Informationen verwenden, um zu bestimmen, dass ein Werbespot tatsächlich gerendert wurde, vor der Freigabe des kryptographischen Schlüssels 713 zur Entschlüsselung des zweiten Abschnittes des Videos aus dem Strom 49. Durch diese Rückkopplungsschleife kann der Kontroll-Block 13 sicher sein, dass die Werbespots nicht nur entschlüsselt, sondern auch angezeigt wurden. Dies kann erforderlich sein, da der Composite-Block 11 relativ ungesichert sein kann, wodurch es einem skrupellosen Benutzer möglich sein kann, die Werbespots vor dem Sehen zu entfernen.
  • Es sind eine Vielzahl zusätzlicher relativ komplexer Szenarien möglich. Beispielsweise könnten Regeln aus dem Kontroll-Block 13 die Programmgestaltung an einen bestimmten geographischen Ort oder eine bestimmte Art von Zuschauer anpassen, indem Informationen über den Ort oder den Zuschauer verwendet werden, um eine konditionale Entschlüsselung oder Verwendung zu kontrollieren. Diese Informationen könnten im System 1 gespeichert sein oder von dem Benutzer eingegeben werden.
  • In einem weiteren Beispiel, das in Reihe 5 des Arrays 717 gezeigt ist, kann die Regel 719 das Budget 718 spezifizieren, das Informationen über die Anzahl der dem Benutzer zur Verfügung stehenden Verwendungen, den Geldbetrag, den der Benutzer ausgeben muss, etc. enthalten kann. Im Betrieb kann die Regel 719 verlangen, dass das Budget 718 sicher gespeichert und dekrementiert wird, wann immer eine budgetierte Aktivität auftritt (z. B. jedes Mal, wenn das dazugehörige Werk gespielt wird). Sobald das Budget Null erreicht, kann die Regel 719 spezifizieren, dass das Werk nicht mehr gespielt wird, oder sie kann dem Benutzer eine Nachricht anzeigen, die angibt, dass der Benutzer zusätzliches Budget erhalten kann, indem er beispielsweise eine Kreditkartennummer oder ein Passwort eingibt oder einen externen Server kontaktiert.
  • In einem weiteren Beispiel kann eine Regel die Fähigkeit eines Benutzers, ein Werk an eine andere Vorrichtung zu kopieren, kontrollieren. Die Regel kann beispielsweise spezifizieren, dass der Benutzer autorisiert ist, das geregelte Werk auf mehr als einer Vorrichtung zu verwenden, wobei aber gleichzeitig jeweils nur eine Verwendung gültig ist. Die Regel kann spezifizieren, dass eine Anzeige darüber, ob der Benutzer das Werk "ausgelesen" (engl.: check out) hat, sicher gespeichert wird. Wenn der Benutzer das Werk (z. B. über den Port 21) an eine andere Vorrichtung kopiert hat, kann die Regel fordern, dass das Werk nur in verschlüsselter Form übertragen wird und dass die relevanten Kontrollnachrichten zusammen mit ihm übertragen werden. Ferner kann die Regel fordern, dass ein Indikator sicher gesetzt wird und dass der Indikator jedes Mal geprüft wird, wenn der Benutzer versucht, das Werk zu benutzen oder zu kopieren. Wenn der Indikator gesetzt ist, kann die Regel fordern, dass das Werk nicht entschlüsselt oder verwendet wird, da der Benutzer nur das Recht hat, das Werk gleichzeitig auf nur einer Vorrichtung zu verwenden, und der Indikator festsetzt, dass das Werk derzeit an eine andere Vorrichtung "ausgelesen" wurde und nicht wieder zurückgegeben wurde (engl.: checked back in).
  • Die empfangende Vorrichtung kann die gleiche Art von Indikator enthalten und dem Benutzer ermöglichen, das Werk nur solange zu benutzen, solange der Indikator nicht gesetzt ist. Wenn der Benutzer das Werk auf der ursprünglichen Vorrichtung nutzen will, können die beiden Vorrichtungen miteinander kommunizieren, wobei der Indikator in der zweiten Vorrichtung gesetzt und in der ersten zurückgesetzt wird. Dies ermöglicht, dass das Werk an zwei Orten gespeichert, aber nur an einem genutzt wird.
  • In einem anderen Ausführungsbeispiel kann das gleiche Ergebnis erzielt werden, indem man die relevante Kontrollnachricht von einer Vorrichtung in die andere kopiert und sie dann von der ursprünglichen Vorrichtung löscht. Da die Kontrollnachricht zur Entschlüsselung verwendete Schlüssel enthält, würde dies sicherstellen, dass das Werk gleichzeitig in nur einer Vorrichtung verwendet werden kann.
  • In einem Ausführungsbeispiel kann diese Technik dazu verwendet werden, um digitale Mediendateien (z. B. Musik, Videos, etc.) von einem PC auf eine Unterhaltungselektronikvorrichtung zu übertragen, ohne dem Benutzer zu gestatten, eine mehrfache Auswahl für eine gleichzeitige Benutzung zu treffen. So könnte eine größere, höherentwickelte Vorrichtung (z. B. ein PC) eine Datei herunterladen, dann die Datei an eine tragbare Vorrichtung "auslesen", der bestimmte Funktionen, die im PC vorhanden sind, fehlen (z. B. ein Musikabspielgerät für die Hand).
  • Regeln können auch eingesetzt werden, um zu spezifizieren, dass ein ursprünglicher Benutzer die Datei an einen anderen Benutzer übertragen kann, jedoch nur, wenn er die Kontrolle über die Datei aufgibt. Solche Regeln könnten ähnlich zu der oben beschriebenen Technik zur Übertragung einer Datei von einer Vorrichtung zur nächsten arbeiten oder könnten fordern, dass die ursprüngliche Datei nach der Übertragung vollständig von der ursprünglichen Vorrichtung gelöscht wird.
  • Die Regeln im Kontroll-Block 13 können über mindestens zwei Kanäle ergänzt oder aktualisiert werden. Neue Regeln können durch den Kontroll-Strom 6 erhalten werden. Wenn eine Kontrollnachricht einen Identifikator enthält, der einer Kontrollnachricht entspricht, die bereits im Kontroll-Block 13 vorhanden ist, kann diese Kontrollnachricht (einschließlich enthaltener Regeln) die ursprüngliche Kontrollnachricht überschreiben. Eine neue Regel kann beispielsweise identisch zu einer bestehenden Regel sein, jedoch einen neuen Zeitstempel und neue Schlüssel enthalten und dadurch die Entschlüsselung eines Stroms gestatten, der mit Mehrfachschlüsseln verschlüsselt wurde. Das System 1 kann so entwickelt sein, dass bestimmte Regeln nicht überschreibbar sind. Dies kann umgesetzt werden, indem bestimmte Positionen im Array 717 als nicht überschreibbar gekennzeichnet werden oder indem eine Flag oder ein anderer Indikator gesetzt wird, um zu zeigen, dass eine bestimmte Regel nicht geändert oder überschrieben werden kann. Dies würde bestimmte Arten von Überdistributionsmodellen gestatten, einschließlich des Gestattens eines stromabwärtigen Verteilers Regeln zuzufügen, ohne dass man diesem stromabwärtigen Verteiler gestattet, die von stromaufwärtigen Verteilern zugefügten Regeln zu entfernen oder zu verändern.
  • Zusätzlich können neue Regeln in den Organisations-Strom 3, den Audio-Strom 4 oder den Video-Strom 5 in Form eines Wasserzeichens oder einer steganographischen Kodierung kodiert werden.
  • Neue Regeln können auch durch den Port 21 erhalten werden. Der Port 21 kann sich an eine externe Vorrichtung (z. B. eine Smartcard, einen tragbaren Speicher etc.) oder an ein externes Netzwerk (z. B. den externen Server 30) anschließen. Die Regeln können durch den Port 21 entweder ad hoc oder als Ergebnis von Anfragen erhalten werden, die vom Kontroll-Block 13 gesendet werden. Beispielsweise kann die Kontroll-Nachricht 14 (7, Reihe 6) eine Regel enthalten, die spezifiziert, dass eine neue Regel aus einer bestimmten URL herunter geladen und zum Regeln des Stroms 1201 verwendet wird.
  • Die Kontrollnachrichten, einschließlich der Regeln, können unter Verwendung sicherer Übertragungsformate, wie z. B. DigiBoxen, kodiert werden. Eine DigiBox ist ein sicheres Behältermittel zum Liefern eines Satzes von Geschäftsregeln, Inhaltsbeschreibungsinformationen, Inhaltsentschlüsselungsinformationen und/oder Inhaltsvalidierungsinformationen. Eine oder mehrere DigiBoxen können in den Headern des Medieninhalts oder in den Datenströmen innerhalb der Medien angeordnet werden.
  • Die 12 zeigt ein Ausführungsbeispiel des DigiBox-Formats und der Art, in der das Format in eine Kontrollnachricht aufgenommen ist. Die Kontroll-Nachricht 1201 besteht aus dem Kontrollnachricht-Header 1202 und den Kontrollnachricht-Inhalten 1203. Wie an anderer Stelle beschrieben, kann der Kontrollnachricht-Header 1202 Informationen enthalten, die vom Demux 7 (1) verwendet werden, um die Nachricht richtig an den Kontroll-Block 13 zu leiten.
  • Die Kontrollnachricht-Inhalte 1203 der Kontroll-Nachricht 1201 bestehen aus der DigiBox 1204 und können ferner zusätzliche Informationen enthalten. Die DigiBox 1204 besteht aus einem DigiBox Header 1205, Regeln 1206 und Daten 1207. Die Regeln 1206 können eine oder mehrere Regeln enthalten. Die Daten 1207 können verschiedene Arten von Daten enthalten, einschließlich der ES_ID 1208, des kryptographischen Schlüssels 1209 und der Validierungsdaten 1210. Die Daten 1207 können auch kryptographische Informationen enthalten, wie z. B. eine Spezifikation des Verschlüsselungsalgorithmus, Verknüpfungsmoden, die mit dem Algorithmus verwendet werden, Schlüssel und Initialisierungsvektoren, die von der Verschlüsselung und der Verknüpfung verwendet werden.
  • Die Initialisierungsvektoren, die in den Daten 1207 enthalten sind, sind dahingehend ähnlich zu kryptographischen Schlüsseln, dass sie eine Eingabe an den ursprünglichen Verschlüsselungsprozess darstellen und von daher für die Entschlüsselung erforderlich sind. In einem allgemein bekannten Ausführungsbeispiel gemäß dem Stand der Technik können die Initialisierungsvektoren dadurch erzeugt werden, dass man mit einem Basis-Initialisierungsvektor (einer 64 Bit-Zufallszahl) startet und man eine XOR-Funktion in der Rahmennummer oder der Startzeit für den Inhaltsposten durchführt.
  • Die in den Daten 1207 enthaltenen Validierungsdaten 1210 können kryptographische Hash- oder Authentifizierungswerte, kryptrographische Schlüssel zum Berechnen von mit Schlüsseln versehenen Authentifizierungswerten (z. B. Nachrichten-Authentifizierungs-Codes), Digitalsignaturen und/oder Dechiffrierschlüssel-Zertifikate, die zum Validieren digitaler Zertifikate verwendet werden, umfassen.
  • So kann die DigiBox die oben beschriebenen Informationen als Teil der Kontrollnachricht aufnehmen, einschließlich der Regeln, der Strom-ID und der kryptographischen Schlüssel und Werte.
  • In einem alternativen Ausführungsbeispiel kann der DigiBox Header 1205 so entwickelt sein, dass er von dem Demux 7 gelesen und zum Kontroll-Block 13 geleitet werden kann. In einem solchen Ausführungsbeispiel würde die DigiBox 1204 selbst die gesamte Kontrollnachricht darstellen, wodurch sich ein Verschachteln der DigiBox 1204 in der Kontrollnachricht 1201 erübrigen würde.
  • Ein Teil oder der gesamte Inhalt der DigiBox 1204 wird im Allgemeinen verschlüsselt werden. Dies kann die Regeln 1206, die Daten 1207 und möglicherweise einen Teil oder den gesamten Header 1205 einschließen. Das System 1 kann so ausgelegt sein, dass eine DigiBox nur in einer gesicherten Umgebung, wie z. B. dem IRP 22, entschlüsselt (geöffnet) wird. In einem alternativen Ausführungsbeispiel kann der Kontroll-Block 13 die Funktionalität des IRP 22 direkt in sich tragen, so dass die DigiBox im Kontroll-Block 13 geöffnet werden kann, ohne dass es notwendig ist, die DigiBox zur Verarbeitung zum IRP 22 zu leiten. In einem Ausführungsbeispiel kann der zum Entschlüsseln der DigiBox 1204 verwendete Schlüssel in dem IRP 22 (oder Kontroll-Block 13) gespeichert sein, so dass die DigiBox nur in dieser gesicherten Umgebung geöffnet werden kann.
  • Die Regeln 1206 sind Regeln, die den Zugriff auf bzw. die Verwendung der Digi-Box-Daten 1207 regeln. In einem Ausführungsbeispiel kontrollieren diese Regeln die geregelten Ströme nicht direkt. Da auf den kryptographischen Schlüssel 1209 nur zugegriffen bzw. derselbe nur eingesetzt werden kann, wenn die Regeln 1206 eingehalten werden, kontrollieren jedoch die Regeln 1206 in der Tat die geregelten Ströme indirekt, da diese Ströme nur unter Verwendung des Schlüssels entschlüsselt werden können, der nur unter Einhaltung der Regeln erhalten werden kann. In einem anderen Ausführungsbeispiel können die Daten 1207 zusätzliche Regeln enthalten, die aus der DigiBox gewonnen und in einer Tabelle, wie z. B. dem Array 717 der 7, gespeichert werden können.
  • Die Regeln, die den Zugriff auf bzw. die Verwendung einer DigiBox regeln, können die DigiBox begleiten (wie in 12 gezeigt) oder getrennt übertragen werden, wobei in diesem Falle die Regeln 1206 einen Pointer oder einen Verweis auf die Regeln, die zum Zugriff auf die Daten 1207 verwendet werden, enthalten würden. Bei Empfang einer DigiBox kann der Kontroll-Block 13 Regeln getrennt durch den Kontroll-Strom 6 empfangen oder kann Regeln durch den Port 21 anfordern und empfangen.
  • Implementierung mit Pipeline-Struktur (engl.: Pipelined Implementation)
  • Ein möglicher Nachteil des in 1 gezeigten Systems besteht in der Tatsache, dass das System sowohl Komplexität als auch Rückkopplung in ein System mit Pipeline-Struktur einführt, das dazu ausgelegt ist, Inhalte in Echtzeit zu rendern. Die Rendering-Pipeline besteht im Allgemeinen aus dem Demux 7, dem Organisations-Block 8 und dem AV-Block 9, dem Composite-Block 11 und der Rendering-Vorrichtung 12. Da der Inhalt gestreamt empfangen wird und in Echtzeit gerendert werden muss, muss die zeitverschachtelte Verarbeitung auf hocheffiziente Weise unter strikten Zeitzwängen erfolgen. Erfolgt die Verarbeitung nicht innerhalb der zur Verfügung stehenden Zeit, bedeutet dies, dass die Ausgabe an die Rendering-Vorrichtung 12 unterbrochen sein kann oder dass der ankommende Bitstrom 2 einen Überlauf der zur Verfügung stehenden Puffer verursachen kann, wodurch es zu einem Verlust eines Teils der ankommenden Daten kommen kann.
  • Ein alternatives Ausführungsbeispiel des Systems 1 ist darauf ausgerichtet, diese Probleme zu lösen, obgleich auf mögliche Kosten der Fähigkeit, Standard-Systemkomponenten zu verwenden und gegebenenfalls auf Kosten der Sicherheit des gesamten Systems. Dieses alternative Ausführungsbeispiel ist in 11 dargestellt, die das System 1101 zeigt.
  • Das System 1101 ist in vielerlei Hinsicht ähnlich dem System 1 der 1. Es empfängt einen Bitstrom 1102, der aus einem Organisations-Strom 1103, einem Audio-Strom 1104, einem Video-Strom 1105 und einem Kontroll-Strom 1106 besteht. Diese Ströme werden von einem Demux 1107 empfangen, der den Organisations-Strom 1103 an den Organisations-Block und den Audio-Strom 1104 und den Video-Strom 1105 an einen AV-Block 1109 weiterleitet. Der Organisations-Block 1108 und der AV-Block 1109 arbeiten ähnlich zu ihren Gegenstücken in 1 und leiten Informationen an einen Composite-Block 1110, der die Informationen zu einem kohärenten Ganzen organisiert und sie an die Rendering-Vorrichtung 1111 weiterleitet. Die an den Organisations-Block 1108 gesendeten Ströme werden von einem Stream Flow Controller 1112 entschlüsselt und/oder validiert, und die an den AV-Block 1109 gesendeten Ströme werden von einem Stream Flow Controller 1113 entschlüsselt oder validiert.
  • Das System 1101 unterscheidet sich jedoch von dem System 1 dadurch, dass die Kontrolle und die Rückkopplung verteilt und direkt in die Verarbeitungs- und Rendering-Pipeline integriert sind. So fehlen dem System 1101 ein separater Kontroll-Block wie auch ein Rückkopplungspfad zurück vom Composite-Block 1110. Das Ausführungsbeispiel ohne Rückkopplungspfad ist nicht Teil der vorliegend beanspruchten Erfindung.
  • Im System 1101 erfolgt die Kontrolle direkt am Organisations-Block 1108 und am AV-Block 1109. Wie im System 1 werden die kryptographischen Schlüssel durch den Kontroll-Strom 1106 empfangen (in einem alternativen Ausführungsbeispiel könnten die Schlüssel direkt in den Header oder in andere Informationen im Or ganisations-Strom 1103 oder den Audio/Video-Strömen 1104 und 1105 aufgenommen werden). Derartige Schlüssel sind in einem Datenformat enthalten, das Informationen über den Stromtyp des verschlüsselten Inhalts und, für den Fall, dass mehrere Stromtypen möglich sind, einen Identifikator für den bestimmten kontrollierten Strom enthält.
  • Wenn der Demux 1107 im Kontroll-Strom 1106 auf einen Schlüssel trifft, liest er die Informationen hinsichtlich des Stromtyps und leitet den Schlüssel zu dem entsprechenden Stream Flow Controller. Wenn der Demux 1107 auf einen Schlüssel trifft, der zur Entschlüsselung oder Validierung beispielsweise des Organisations-Stroms 1103 bestimmt ist, leitet er diesen Schlüssel an den Stream Flow Controller 1112.
  • Der Stream Flow Controller 1112 speichert empfangene Schlüssel an einer Speicherstelle 1114. Die Speicherstelle 1114 speichert die Schlüssel sowie einen Indikator der kontrollierten Strom-ID.
  • Der Stream Flow Controller 1112 enthält die kryptographische Engine 1115, die die empfangenen Schlüssel dazu verwendet, verschlüsselte und/oder gesicherte Teile des Organisations-Stroms 1103 zu entschlüsseln und/oder zu validieren. Die Schlüssel selbst können verschlüsselt empfangen werden, um einen gewissen Grad an Sicherheit zu bieten. In einem solchen Fall kann der Stream Flow Controller eine Vielzahl von Verfahren verwenden, um den Schlüssel zu entschlüsseln, einschließlich der Verwendung von gespeicherten Informationen als Schlüssel oder als Schlüsselmaterial. Diese gespeicherten Informationen könnten beispielsweise einen "Meta-Schlüssel" darstellen, der zu einem früheren Zeitpunkt durch den Bitstrom 1102 oder durch einen getrennten Port zugeführt wurde.
  • Der Stream Flow Controller 1113, der dem AV-Block 1109 zugeordnet ist, enthält eine entsprechende Speicherstelle 1116 und eine kryptographische Engine 1117 und arbeitet auf ähnliche Weise, wie für den Stream Flow Controller 1112 beschrieben.
  • Diese Implementierung vermeidet den Nachteil der Latenz, der der Notwendigkeit einer Kommunikation zwischen Stream Flow Controllern und einem getrennten Kontroll-Block anhaften kann.
  • Diese alternative Implementierung kann ebenso den aus dem Composite-Block kommenden Rückkopplungskanal entbehrlich machen (1, Kontrollleitung 16). Dieser Rückkopplungskanal kann verwendet werden um sicherzustellen, dass der Inhalt, der vom Composite-Block 11 zur Rendering-Vorrichtung 12 geleitet wird, ein Inhalt ist, der zum Rendern autorisiert wurde. In dem in 11 gezeigten alternativen Ausführungsbeispiel ist dieser Rückkopplungskanal nicht vorhanden. Stattdessen beruht diese Implementierung auf der Tatsache, dass der Composite-Block 1110 von Informationen aus dem Organisations-Block 1108 abhängig ist, um die exakte Struktur der an die Rendering-Vorrichtung 1111 gesendeten Informationen zu bestimmen. Der Composite-Block 1110 kann die Informationen nicht auf eine Weise zusammensetzen, die im Gegensatz zur Organisation steht, die vom Organisations-Block 1108 vorgegeben wird.
  • In einem Ausführungsbeispiel kann diese Kontrolle durch den Organisations-Block 1108 ausreichen, um die Anforderung an irgendeine Art von Rückkopplung entbehrlich zu machen, da der Organisations-Block 1108 so ausgelegt sein kann, dass er Informationen nur durch den Stream Controller 1112 akzeptiert, und der Stream Controller 1112 so ausgelegt sein kann, dass er Informationen nur unter der Kontrolle von Regeln entschlüsselt oder validiert, die in der Speicherstelle 1114 gespeichert sind.
  • In einem solchen Ausführungsbeispiel kann die Sicherheit weiter erhöht werden, indem man einen Sicherheitsspeicher 1118 (engl.: secure memory) in den Organisations-Block 1108 aufnimmt. Der Sicherheitsspeicher 1118 kann eine Kopie oder einen Hashwert des Organisationsbaumes speichern, der von dem Stream Controller gültig entschlüsselt wurde und derzeit im Hauptorganisationsblockspeicher 1119 verwendet wird. Der Organisations-Block 1108 kann dazu verwendet werden, den im Hauptorganisationsblockspeicher 1119 gespeicherten Organisationsbaum mit dem im Sicherheitsspeicher 1118 gespeicherten Baum zu vergleichen. Stößt man auf eine Diskrepanz, kann dies anzeigen, dass ein Angreifer den im Hauptorganisationsblockspeicher 1119 gespeicherten Organisationsbaum verändert hat, wodurch möglicherweise ein Rendering des Inhalts unter Verstoß gegen die anwendbaren Regeln ermöglicht wird. Unter solchen Umständen kann der Organisations-Block 1108 dazu verwendet werden, schützende Maßnahmen zu ergreifen, einschließlich eines Ersetzens des Inhalts des Hauptorganisationsblockspeichers 1119 durch den Inhalt des Sicherheitsspeichers 1118.
  • MPEG-4 Implementierung
  • Das oben beschriebene allgemeine System kann in ein MPEG-4 System aufgenommen werden, wie es in 8 dargestellt ist, in dem das MPEG-4 System 801 gezeigt ist.
  • Das MPEG-4 System 801 akzeptiert einen MPEG-4 Bitstrom 802 als Eingabe. Der MPEG-4 Bitstrom 802 enthält einen BIFS-Strom 803, einen OD-Strom 804, einen Audio-Strom 805, einen Video-Strom 806 und einen IPMP-Strom 807. Diese Ströme werden an einen Demux 808 geleitet, der die Header-Informationen untersucht und Pakete entsprechend an BIFS 809, AVO 810, OD 811 bzw. das IPMP System 812 leitet.
  • Das IPMP System 812 empfängt IPMP-Nachrichten durch den IPMP-Strom 807. Diese Nachrichten können Header-Informationen enthalten, die die spezielle Nachricht identifizieren, sowie eine dazugehörige IPMP-Nachricht. Die IPMP-Nachricht kann Kontrollinformationen enthalten, die einen kryptographischen Schlüssel, Validierungsinformationen und/oder komplexe Regelungsregeln enthalten können, wie sie oben beschrieben wurden.
  • Stream Controller 813, 814 und 815 dienen dazu, die Ströme, die an das BIFS 809, das AVO 810 bzw. den OD geleitet werden, zu entschlüsseln, zu validieren und/oder zu regeln.
  • Der OD 811 enthält Objektdeskriptoren, die Metadaten enthalten, die bestimmte Objekte beschreiben. Diese Metadaten umfassen einen Identifikator des bestimmten Elementary Streams oder von Strömen, die das Objekt enthalten, und können auch einen Pointer auf eine bestimmte IPMP-Nachricht enthalten, die das Objekt regelt. Alternativ dazu kann die Beziehung zwischen den IPMP-Nachrichten und bestimmten Objekten oder Strömen in einer Tabelle oder einer anderen Form innerhalb des IPMP-Systems 812 gespeichert sein.
  • Das IPMP-System 812 kann eine Kontrolle über andere Funktionsblöcke über Kontrollleitungen 816, 817, 818 und 819 ausüben, die jeweils Kontroll/Regelungssignale aus dem IPMP-System 812 und Informationen oder Anfragen aus anderen Funktionsblöcken zum IPMP-System 812 übertragen können. Die Informationsanfragen können eine ES_ID und einen Zeitstempel enthalten, die das IPMP-System 812 verwenden kann, um zu bestimmen, welche bestimmte Nachricht (z. B. Schlüssel) verwendet werden sollte und wann.
  • In einem alternativen Ausführungsbeispiel kann das IPMP-System 812 eine Kontrolle über den "Composite und Render" 821 ausüben, indem er einen Hashwert des gegenwärtig gültigen BIFS-Baums (möglicherweise durch den IPMP Strom 807) empfängt und den Hashwert regelmäßig mit dem im BIFS 809 gespeicherten BIFS-Baum vergleicht. Da das BISF 809 die Art kontrolliert, in der der "Composite und Render" 821 die Informationen rendert, kann das IPMP-System 812, wenn das IPMP-System 812 bestätigt, dass der aktuelle BIFS Baum der gleiche ist, wie der autorisierte Baum, der durch den BIFS-Strom 803 empfangen wurde, bestätigen, dass der korrekte Inhalt gerendert wird, selbst wenn aus dem "Composite und Render" 821 direkt keine Rückkopplung empfangen wird. Dies kann notwendig sein, da das BIFS 809 mit dem Port 822 kommunizieren kann, was einem Benutzer gestatten kann, Informationen in das BIFS 809 einzugeben, wodurch eine Möglichkeit geschaffen wird, dass ein Benutzer einen unautorisierten BIFS-Baum eingeben und dadurch unautorisierten Zugriff auf den Inhalt erlangen könnte.
  • Wenn ein Stream Controller verschlüsselte oder anderweitig geregelte Informationen empfängt, kann er die ES_ID und den Zeitstempel direkt an das IPMP-System 812 senden. Alternativ dazu kann er diese Informationen an den OD 811 senden, der mit der ID der IPMP-Nachricht antworten kann, die dieses Objekt oder diesen Strom regelt. Der Stream Controller kann dann diese ID der IPMP-Nachricht verwenden, um die Entschlüsselung, die Validierung und/oder die Regelung aus dem IPMP-System 812 anzufordern. Alternativ dazu kann der OD 811 die IPMP-ID an das IPMP-System 812 weiterleiten, das den Kontakt mit dem entsprechenden Stream Controller einleiten kann.
  • Das IPMP-System 812 kann IPMP-Informationen über zwei andere Kanäle als den IPMP-Strom 807 erhalten. Der erste dieser Kanäle ist der Port 820, der direkt an eine Vorrichtung oder einen Speicher (z. B. eine Smartcard, eine DVD-Disk, usw.) oder an ein externes Netzwerk (z. B. das Internet) angeschlossen sein kann. Eine IPMP-Nachricht kann einen Pointer auf Informationen enthalten, die durch den Port 812 erhalten werden können, wie z. B. eine URL, eine Adresse auf einer DVD-Disk, usw. Diese URL kann spezifische Kontrollen enthalten, die von der IPMP-Nachricht benötigt werden, oder sie kann untergeordnete erforderliche Informationen enthalten, wie z. B. Informationen über das Budget eines bestimmten Benutzers.
  • Das IPMP-System 812 kann auch IPMP-Informationen über OD-Updates erhalten, die in dem OD-Strom 804 enthalten sind. Der OD-Strom 804 enthält Metadaten, die bestimmte Objekte identifizieren. Eine bestimmte OD-Nachricht kann das in 9 gezeigte Format haben. In dieser Figur enthält die OD-Nachricht 901 einen Header 902, der die folgenden Pakete als Teil des OD-Stroms identifiziert und die Anzahl der Pakete angibt. Die OD-Nachricht 901 besteht ferner aus der Nachricht 903, die eine Reihe von Pointern 904 und zugehörigen Metadaten 905 enthält. Jeder Pointer 904 identifiziert einen besonderen Elementary Stream und die dazugehörigen Metadaten sind auf diesen Strom anwendbar. Schließlich kann die OD-Nachricht 901 einen IPMP-Pointer 906 enthalten, der eine bestimmte IPMP-Nachricht identifiziert.
  • Insgesamt stellen die in der OD-Nachricht 901 enthaltenen Informationen einen Objektdeskriptor dar, da er jeden elementaren Strom, aus dem sich das Objekt zusammensetzt, identifiziert und beschreibt, und die IPMP-Nachricht identifiziert, die das Objekt regelt. Die OD-Nachricht 901 kann in dem OD 811 gespeichert sein, zusammen mit anderen Nachrichten, die jeweils einen Objektdeskriptor darstellen.
  • Die im OD 811 gespeicherten Objektdeskriptoren können durch den OD-Strom 804 aktualisiert werden, der einen neuen Objektdeskriptor weiterleiten kann, der dem gleichen Objekt entspricht. Der neue Objektdeskriptor überschreibt dann den vorhandenen Objektdeskriptor. Dieser Mechanismus kann verwendet werden, um die IPMP-Nachricht zu ändern, die ein bestimmtes Objekt kontrolliert, indem ein neuer Objektdeskriptor verwendet wird, der identisch zu dem vorhandenen Objekt-Deskriptor ist, mit Ausnahme des IPMP-Pointers.
  • Der OD-Strom 804 kann auch IPMP_DesciptorUpdate-Nachrichten mit sich führen. Jede solche Nachricht kann das gleiche Format wie die IPMP-Nachrichten haben, die der IPMP-Strom mit sich führt, einschließlich einer IPMP-ID und einer IPMP-Nachricht.
  • Die IPMP DescriptorUpdate-Nachrichten können in einer Tabelle oder einem Array in dem OD 811 gespeichert oder an das IPMP-System 812 weitergeleitet werden, wo sie vorhandene gespeicherte IPMP-Nachrichten überschreiben oder zu den gespeicherten Nachrichten hinzugefügt werden können.
  • Da die IPMP-Informationen getrennt durch den OD-Strom oder den IPMP-Strom geleitet werden können, kann das MPEG-4 System 801 so ausgelegt sein, dass es nur Informationen aus dem einen oder dem anderen dieser Kanäle akzeptiert.
  • In einem anderen Ausführungsbeispiel kann das Vorhandensein der beiden Kanäle dazu verwendet werden, eine mehrstufige Verteilung zu ermöglichen, wobei eine Regelung in späteren Stufen zugefügt wird, jedoch ohne das Risiko, dass spätere Änderungen eine in einer früheren Stufe zugefügte Regelung übersteuern können.
  • Ein derartiges System ist in 10 gezeigt. In dieser Figur enthält das IPMP-System 812 eine IPMP-Tabelle 1002, die Aufnahmen für 256 IPMP-Nachrichten hat. Diese Tabelle speichert die IPMP_ID implizit, als die Stelle, an der die Informationen gespeichert sind, gezeigt in Spalte 1003. Die der IPMP_ID 4 zugeordnete IPMP-Nachricht ist beispielsweise in der Aufnahme 4 der IPMP-Tabelle 1002 gespeichert.
  • Jede Stelle in der IPMP-Tabelle 1002 enthält einen Gültigkeitsindikator 1004 (engl.: Valid Indicator) und einen Quellen-Indikator 1005 (engl.: source indicator). Der Gültigkeitsindikator 1004 wird für eine bestimmte Stelle gesetzt, wenn eine IPMP Nachricht an dieser Stelle gespeichert ist. Dies ermöglicht dem IPMP-System 812, Aufnahmen zu identifizieren, die nicht gefüllt sind, was ansonsten schwierig sein könnte, da die Aufnahmen beim Start mit Zufallsinformationen gefüllt werden können. Ferner ermöglicht dies dem IPMP-System 812, Nachrichten zu identifizieren, die nicht mehr gültig sind und ersetzt werden können. Der Gültigkeitsindikator 1004 kann Zeitstempel-Informationen für die Zeitdauer speichern, für die die Nachricht gültig ist, wobei das IPMP-System 812 die Gültigkeit bestimmt, indem sie die gespeicherten Zeitstempel-Informationen mit der aktuell gültigen Zeit vergleicht.
  • Der Quellen-Indikator 1005 wird auf der Basis gesetzt, ob die dazugehörige IPMP-Nachricht aus dem IPMP-Strom 807 oder dem OD-Strom 804 empfangen wurde.
  • Diese Indikatoren ermöglichen dem IPMP-System 812, eine Hierarchie von Nachrichten aufzubauen und die Art und Weise zu kontrollieren, in der die Nachrichten zugefügt und aktualisiert werden. Das IPMP-System 812 kann so ausgelegt sein, dass es die Indikatoren auf eine bestimmte Stelle hin auswertet, sobald eine Nachricht empfangen wurde, die dieser Stelle entspricht. Wird der Gültigkeitsindikator auf ungültig gesetzt, kann das IPMP-System 812 so ausgelegt sein, dass es die IPMP-Nachricht automatisch in die Aufnahme schreibt. Wird der Gültigkeitsindikator auf gültig gesetzt, dann kann das IPMP-System 812 so ausgelegt sein, dass es den Quellen-Indikator prüft. Wenn der Quellen-Indikator anzeigt, dass die dazugehörige Nachricht durch den OD-Strom 804 empfangen wurde, kann das IPMP-System 1812 so ausgelegt sein, dass es die vorhandene Nachricht mit der neuen Nachricht überschreibt. Wenn jedoch der Quellen-Indikator anzeigt, dass die dazugehörige Nachricht über den IPMP-Strom 807 empfangen wurde, kann das IPMP-System 812 so ausgelegt sein, dass es die Quelle der neuen Nachricht prüft. Diese Prüfung kann dadurch erfolgen, dass man den Header, der dieser neuen Nachricht zugeordnet ist, untersucht, um zu bestimmen, ob die neue Nachricht Teil des OD-Stroms 804 oder Teil des IPMP-Stroms 807 war. Alternativ dazu kann das IPMP-System 812 diese Informationen herleiten, indem es bestimmt, ob die Nachricht direkt aus dem Demux 808 oder über den OD 811 empfangen wurde.
  • Wenn die neue Nachricht über den IPMP-Strom 807 ankam, kann das IPMP-System so ausgelegt sein, dass es die neue Nachricht in der Tabelle 1002 speichert und die vorhandene Nachricht überschreibt. Wenn die neue Nachricht im Gegensatz dazu über den OD-Strom 804 ankam, kann das IPMP-System 812 so ausgelegt sein, dass es die neue Nachricht zurückweist.
  • Diese Nachrichten-Hierarchie kann verwendet werden, um eine Hierarchie der Kontrolle zu ermöglichen. Ein Studio kann beispielsweise einen Film im MPEG-4 Format kodieren. Das Studio kann die IPMP-Nachrichten im IPMP-Strom speichern. Diese Nachrichten können eine Anforderung enthalten, dass das IPMP-System 812 verlangt, dass ein Trailer für einen anderen Film aus dem gleichen Studio vor der Anzeige des Hauptfilms gezeigt wird. Das IPMP-System 812 könnte verwendet werden, den Beginn und das Ende des Renderings des Trailers zu überwachen (unter Verwendung einer Rückkopplung über die Kontrollleitung 819), um sicherzustellen, dass der gesamte Trailer abgespielt wird und dass der Benutzer diesen nicht vorspielt.
  • Das Filmstudio könnte die verschiedenen elementaren Ströme, einschließlich des IPMP-Stroms verschlüsseln. Das Filmstudio könnte dann den Film einem Verteiler, wie z. B. einem Kabelkanal, bereitstellen. Das Filmstudio könnte den Verteiler mit einem Schlüssel versorgen, der es dem Verteiler ermöglicht, den OD-Strom zu entschlüsseln (oder es könnte den OD-Strom unverschlüsselt lassen), und mit der Möglichkeit, neue Nachrichten in diesen Strom einzufügen. Der Kabelkanal könnte beispielsweise eine Regel in den OD-Strom einfügen, die spezifiziert, dass das IPMP-System eine Prüfung durchführt, um zu bestimmen, ob ein Benutzer für das Premiumfernsehen bezahlt hat, den Film entschlüsseln, wenn das Premiumfernsehen bezahlt wurde, jedoch Werbespots einfügen (und fordern, dass diese gerendert werden), wenn für das Premiumfernsehen nicht bezahlt wurde.
  • Der Kabelkanal würde daher die Möglichkeit haben, seine eigenen Regeln in den MPEG-4 Bitstrom einzufügen, jedoch ohne ein Risiko, dass der Kabelkanal die von dem Filmstudio verwendeten Regeln entfernt oder ändert (z. B. durch Abändern des Trailers von einem Film, der von dem Studio gefördert wird, zu einem Konkurrenzfilm, der von dem Kabelkanal gefördert wird). Die Regeln des Studios könnten die Arten der neuen Regeln spezifizieren, die durch den OD-Strom zugelassen würden, wodurch dem Studio ein hoher Grad an Kontrolle zukommt.
  • Dieser gleiche Mechanismus könnte verwendet werden, um eine Überverteilung des Inhalts zu ermöglichen, möglicherweise von einem Benutzer zu einem anderen. Ein Benutzer könnte mit einer Programmierschnittstelle ausgestattet werden, die das Einfügen von Nachrichten in den OD-Strom ermöglicht. Ein Benutzer könnte beispielsweise eine Nachricht einfügen, die verlangt, dass eine Zahlung von $ 1,00 auf das Konto des Benutzers erfolgt, ehe der Film gesehen werden kann. Der Benutzer könnte dann den Film einem anderen Benutzer anbieten (oder ihn durch ein Medium verteilen, wodurch das Kopieren unkontrolliert ist, wie z. B. das Internet) und immer noch eine Zahlung erhalten. Da aber die Regeln des Benutzers die Regeln des Studios nicht übersteuern können, kann das Studio sicher sein, dass seine Regeln eingehalten werden. Darunter könnten Regeln sein, die die Arten von Regeln spezifizieren, die ein Benutzer hinzufügen darf (z. B. Beschränken des Preises für die Weiterverteilung).
  • Das MPEG-4 System 801 kann auch dafür ausgelegt sein, eine bestimmte Art von IPMP-System zu enthalten, das mit den IPMP-Systemen, die in anderen MPEG-4 Systemen ausgestaltet sind, inkompatibel sein kann. Dies kann möglich sein, da der MPEG-4 Standard das Format der in dem IPMP-Strom enthaltenen Informationen nicht spezifiziert, wodurch verschiedenen Inhaltsanbietern gestattet wird, Informationen unterschiedlich zu kodieren.
  • Das IPMP-System 812 im MPEG-4 System 801 kann für eine Umgebung ausgelegt sein, in der unterschiedliche IPMP-Formate existieren. Dieses System kann den IPMP-Strom auf Header hin abtasten, die mit dem IPMP-System 812 kompatibel sind. Alle anderen Header (und dazugehörigen Pakete) können aussortiert werden. Ein derartiger Mechanismus würde Inhaltsanbietern ermöglichen, dieselbe IPMP-Nachricht in mehreren Formaten aufzunehmen, ohne Sorge darüber, dass ein Antreffen eines unbekannten Formats zu einem Versagen des IPMP-Systems führen würde. Insbesondere können die IPMP-Header einen IPMP-Systemtyp-Identifikator aufnehmen. Diese Identifikatoren könnten von einer zentralen Behörde zugewiesen werden, um die Möglichkeit zu vermeiden, dass zwei inkompatible Systeme den gleichen Identifikator wählen.
  • Das IPMP-System 801 kann so ausgelegt sein, dass es mit mehreren Formaten kompatibel ist. In einem solchen Fall kann das IPMP-System 801 Header abtasten, um den ersten Header ausfindig zu machen, der einen IPMP-System-Identifikator enthält, der mit dem IPMP-System 801 kompatibel ist. Das IPMP-System 801 könnte dann nur solche Header auswählen, die diesem IPMP-System-Identifikator entsprechen, und alle anderen Header aussortieren, einschließlich Header, die alternative IPMP-System-Identifikatoren enthalten, die ebenfalls von dem IPMP-System erkannt wurden.
  • Eine derartige Ausgestaltung würde es einem Inhaltsanbieter ermöglichen, mehrere Formate bereitzustellen und sie von am meisten bis am wenigsten bevorzugt zu sortieren, indem das bevorzugteste Format an erster Stelle, das zweitbevorzugteste Format an zweiter Stelle usw. aufgenommen wird. Da sich das IPMP-System 801 an das erste kompatible Format hängt (engl.: lock onto), das es findet, würde diese Klassierung sicherstellen, dass das IPMP-System das vom Inhaltsanbieter am meisten gewünschte Format wählt.
  • Selbst wenn verschiedene IPMP-Formate verwendet werden, wird der Inhalt wahrscheinlich unter Verwendung eines einzigen Algorithmus kodiert (und verschlüsselt) werden, da das Senden mehrfacher Inhaltsversionen eine beträchtliche Bandbreitenlast darstellen würde. So wird es für gewöhnlich notwendig sein, dass der Inhalt unter Verwendung eines anerkannten und üblichen Verschlüsselungsschemas verschlüsselt wird. Ein derartiges Schema könnte den DES-Algorithmus im OFB-Modus (Output Feedback Mode) verwenden.
  • Dieses Verfahren zum Screenen von IPMP-Headern und zum Anhängen an ein bestimmtes Format kann auch dazu verwendet werden, einen MPEG-4 Bitstrom spezifisch an die Funktionskapazitäten eines bestimmten MPEG-4 Systems anzupassen. Systeme, die in der Lage sind, MPEG-4 Inhalte zu rendern, können einen beträchtlichen Funktionalitätsbereich abdecken, von Spitzenheimkinos bis hin zu Handgeräten. Regelungsoptionen, die sich für eine Art von System eignen, können im Falle anderer Systeme irrelevant sein.
  • Beispielsweise kann das MPEG-4 System 801 einen Anschluss ans Internet über den Port 820 enthalten, während bei einem zweiten MPEG-4 System (beispielsweise ein in der Hand zu haltendes Gerät, das einem Walkman ähnelt) ein solcher Anschluss nicht vorhanden ist. Ein Inhaltsanbieter möchte vielleicht einem Zuschauer eine Möglichkeit bieten, die es dem Zuschauer gestattet, einen Inhalt kostenfrei zu sehen, wenn er als Gegenleistung dafür Informationen über sich bereitstellt. Der Inhaltsanbieter könnte eine Regel einfügen, die den Benutzer fragt, ob er den Inhalt gegen Bezahlung sehen oder Identifizierungsinformationen eingeben möchte. Die Regel könnte dann die Informationen über einen Port ans Internet senden, an eine in der Regel spezifizierte URL. Eine Stelle an dieser URL könnte dann die Benutzerinformationen auswerten und Werbespots herunterladen, die an diesen bestimmten Benutzer gerichtet sind.
  • Obgleich dies für einen Inhaltsanbieter eine wertvolle Möglichkeit sein kann, macht sie im Falle einer Vorrichtung, die nicht zwangsweise ans Internet angeschlossen ist, eindeutig keinen Sinn. Es würde keinen Sinn machen, diese Möglichkeit einem Benutzer einer nicht-angeschlossenen Vorrichtung anzubieten, da selbst wenn dieser Benutzer die Informationen eingibt, die Regel keine Möglichkeit hätte, diese Informationen einer externen URL zuzuführen oder die Werbespots herunterzuladen. In einem solchen Fall wird es der Inhaltsanbieter mög licherweise vorziehen zu verlangen, dass der Benutzer vorausgewählte Werbeanzeigen sieht, die in dem ursprünglichen MPEG-4 Bitstrom enthalten sind.
  • Die Header-Informationen in dem IPMP-Strom könnten dazu verwendet werden, einen MPEG-4 Bitstrom an bestimmte Vorrichtungen anzupassen. Wie im Falle der IPMP-Systemtyp-Informationen könnten die IPMP-Header-Informationen MPEG-4 Systemtypen enthalten. Diese könnten 8 oder 16-Bit-Werte enthalten, wobei bestimmte Features durch Bitmaps dargestellt werden. Das Vorhandensein eines Bits an einer Stelle 2 könnte somit beispielsweise anzeigen, dass eine Vorrichtung einen ständigen Anschluss ans Internet hat.
  • Ein IPMP-System könnte dann die Header auswerten und sich an den ersten Header hängen, der eine Funktionalität beschreibt, die unter oder gleich der Funktionalität ist, die in der MPEG-4 Vorrichtung enthalten ist, in der das IPMP-System eingebettet ist. Wenn der Header eine vollständige Übereinstimmung mit der Funktionalität der MPEG-4 Vorrichtung darstellte, könnte dann das IPMP-System die Suche einstellen. Wenn der Header weniger als eine vollständige Übereinstimmung darstellt (z. B. ein Header für ein System, das einen Internetanschluss hat, dem aber ein digitaler Ausgabekanal fehlt, wenn das System beide enthält), kann sich das IPMP-System zwar an den Header hängen, jedoch nach höheren Übereinstimmungen suchen und sich an eine höhere Übereinstimmung hängen, wenn eine solche gefunden wird.
  • Die IPMP-Nachrichten, die von einem bestimmten Header identifiziert werden, wären solche, die sich für die bestimmte Funktionalität der MPEG-4 Vorrichtung eignen und eine Anpassung des MPEG-4 Bitstroms an diese Funktionalität gestatten würden. Im Zusammenhang mit dem oben angegebenen Beispiel würde sich das IPMP-System für eine MPEG-4 Vorrichtung mit einem Internetanschluss an einen bestimmten Header hängen und die IPMP-Nachrichten, die durch diesen Header gekennzeichnet sind, herunterladen. Diese Nachrichten würden den Benutzer um Informationen bitten, diese Informationen der URL bereitstellen und die Entschlüsselung und das Rendering des Films gestatten, wobei die Werbespots an der entsprechenden Stelle eingefügt werden würden.
  • Im Falle einer MPEG-4 Vorrichtung ohne Internetanschluss würde sich andererseits das IPMP-System an einen Satz Header hängen, denen das Bit fehlt, das den Internetanschluss anzeigt, und würde die diesem Header zugeordneten Re geln herunterladen. Diese Regeln geben dem Benutzer möglicherweise keine Optionen. Die Regeln könnten eine Entschlüsselung des Inhalts gestatten, würden aber ebenso die Entschlüsselung eines zusätzlichen ES aus dem MPEG-4 Strom bestimmen. Dieser zusätzliche ES würde die Werbespots enthalten, und das IPMP-System würde die Entschlüsselung und das Rendering der Werbespots fordern, wobei die Kontrollleitung 819 überprüft werden würde um sicherzustellen, dass dies erfolgte. Im Falle des Systems mit Internetanschluss würden jedoch die Regeln, die die Entschlüsselung gestatten und das Rendering des ES, der die Werbespots enthält, fordern, niemals geladen werden, da diese Regeln in Nachrichten enthalten wären, die von der falschen Art von Header identifiziert würden. Der Werbespot-ES würde von daher nie entschlüsselt werden und von der MPEG-4 Vorrichtung ignoriert werden.
  • Die 21 zeigt eine Art, in der eine gesicherte MPEG-4 Datei erzeugt werden kann. In dieser Figur stellt eine so genannte CreateBox 2101 ein DigiBox-Erzeugungswerkzeug dar, das Schlüssel und Regeln akzeptiert. In einem Ausführungsbeispiel kann die CreateBox 2101 diese Schlüssel und Regeln an den IRP 2102 weiterleiten und die DigiBox 2103 von dem IRP 2102 empfangen. In einem weiteren Ausführungsbeispiel kann der IRP 2102 in der CreateBox 2101 enthalten sein, die Schlüssel und Regeln akzeptiert und die DigiBox 2103 ausgibt.
  • Die DigiBox 2103 enthält Regelungsregeln (engl.: governance rules), Initialisierungsvektoren und Schlüssel. Die DigiBox 2103 wird von der CreateBox 2101 an den Bif-Kodierer 2104 weitergeleitet. Der Bif-Kodierer 2104 kann herkömmlicher Art sein, mit der Ausnahme, dass er dafür entwickelt ist, DigiBoxen, wie z. B. die DigiBox 2103, zu akzeptieren und zu verarbeiten. Der Bif-Kodierer 2104 akzeptiert auch eine .txt Datei, die einen Szenegraphen enthält, sowie ursprüngliche Objektdeskriptor-Befehle.
  • Der Bif-Kodierer 2104 gibt eine .bif-Datei aus, die den Szenegraphen-Strom (im komprimierten binären Format) enthält, und eine .od-Datei, die die ursprünglichen Objektdeskriptor-Befehle, den Objektdeskriptor-Strom und die DigiBox 2103 enthält.
  • Der Bif-Kodierer 2104 leitet die .bif-Datei und die .od-Datei an den Mux 2105. Der Mux 2105 akzeptiert auch komprimierte Audio- und Videodateien, sowie eine .scr-Datei, die die Strombeschreibung enthält. Der Mux 2105 erzeugt IPMP-Ströme, Deskriptoren und Nachrichten, verschlüsselt die Inhaltsströme, verschachtelt die empfangenen Ströme und gibt die gesicherte MPEG-4 Inhalts-Datei 2106 aus, die aus dem so genannten Initial Object Descriptor 2107 (initialer Objektdeskriptor) und dem verschlüsselten Inhalt 2108 besteht. Der Initial Object Descriptor 2107 enthält die DigiBox 2103 sowie andere Informationen. Der verschlüsselte Inhalt 2108 kann einen Szenegraphen-Strom (d.h. einen BIFS-Strom), einen Objektdeskriptor-Strom, IPMP-Ströme und verschlüsselte Inhaltsströme enthalten.
  • Wenn die DigiBox 2103 alle Schlüssel und Regeln enthält, die erforderlich sind, um den gesamten Inhalt zu rendern, kann es für den Mux 2105 unnötig sein, irgendwelche IPMP-Ströme zu erzeugen. Wenn zusätzliche Schlüssel oder Regeln für wenigstens einen Teil des Inhalts erforderlich sind, kann der Mux 2105 diese Regeln und Schlüssel in eine oder mehrere zusätzliche DigiBoxen aufnehmen und diese DigiBoxen entweder in den IPMP-Strom oder in den OD-Update-Strom aufnehmen.
  • Die 22 zeigt eine Art, auf die die Kontrolle in einen bestehenden MPEG-4 Strom aufgenommen werden kann. In dieser Figur enthält die ungesicherte MPEG-4 Inhalts-Datei 2201 einen Initial Object Descriptor 2202 und den Inhalt 2203. Der Inhalt kann einen Szenenbeschreibungs-Strom (oder BIF-Strom), einen Objektdeskriptor-Strom, einen Video-Strom, einen Audio-Strom und möglicherweise zusätzliche Inhaltsströme enthalten.
  • Die ungesicherte MPEG-4 Inhalts-Datei 2201 wird an den so genannten Repackager 2204 weitergeleitet, der auch Schlüssel und Regeln akzeptiert. Der Repackager 2204 leitet die Schlüssel und Regeln an den IRP 2205 und empfängt dafür die DigiBox 2206, die Schlüssel, Regeln und Initialisierungsvektoren enthält. In einem alternativen Ausführungsbeispiel kann der IRP 2205 direkt im Repackager 2204 enthalten sein.
  • Der Repackager 2204 demultiplext die ungesicherte MPEG-4 Inhalts-Datei 2201. Er setzt die DigiBox 2206 in den Initial Object Descriptor ein und verschüsselt die verschiedenen Inhaltsströme. Der Repackager 2204 fügt auch den IPMP-Strom hinzu, falls dies erforderlich ist (einschließlich falls zusätzliche DigiBoxen erforderlich sind).
  • Der Repackager 2204 gibt die gesicherte MPEG-4 Inhalts-Datei 2207 aus, die aus dem Initial Object Descriptor 2208 (einschließlich der DigiBox 2206) und dem verschlüsselten Inhalt 2209 (bestehend aus verschiedenen Strömen, einschließlich der IPMP-Ströme, falls erforderlich) besteht.
  • Real Networks-Implementierung
  • In einem Ausführungsbeispiel können die oben beschriebenen Elemente im Zusammenhang mit Informationen verwendet werden, die gemäß Formaten kodiert wurden, die von Real Networks, Inc. entwickelt wurden.
  • Das Real Networks-Dateiformat (RMFF) ist in 13 gezeigt. Dieses Format enthält einen Block von Headern am Anfang (Header 1301), gefolgt von einer Sammlung aus Inhaltspaketen (Inhalt 1302), gefolgt von einem Index, der für so genannte "suche und gehe nach"-Operationen (engl.: seek and go to) verwendet wird (Index 1303). Jede Datei kann mehrere Ströme verschiedener Typen enthalten. Für jeden Strom gibt es einen so genannten "Media Properties Header" (1304), der verwendet wird, um das Format des Medieninhalts (z. B. Komprimierungs-Format) zu beschreiben und stromspezifische Informationen (z. B. Parameter für den Dekomprimierer) bereitzustellen.
  • Die Real Networks-Ströme können dadurch geschützt werden, dass eine DigiBox in den Header 1301 eingefügt wird und die in dem Inhalt 1302 enthaltenen Datenpakete verschlüsselt werden. Das geänderte Format ist in 14 gezeigt, das einen Header 1401, einschließlich der Media Properties Header 1402 und 1403, die wiederum die DigiBoxen 1404 bzw. 1405 enthalten, zeigt. Das Format enthält ebenso verschlüsselten Inhalt 1406 und einen Index 1407.
  • In einem Ausführungsbeispiel wird der ausgewiesene Typ der Daten vom Standardformat von Real Networks auf einen neuen Typ umgeändert (z. B. RNWK_Protected). Der alte Typ wird dann gespeichert. Diese Veränderung des Typs zwingt den Real Networks Player dazu, ein "Trust Plug-in" zu laden, da dieses Plug-in als einziges Decoder-Modul registriert ist, das Ströme vom Typ "RNWK-Protected" verarbeiten kann. Das Trust Plug-in öffnet die DigiBox, erhält eine Zustimmung vom Benutzer, falls erforderlich, bestimmt den ursprünglichen Inhaltstyp, lädt ein Decoder-Plug-in für den ursprünglichen Inhalt und entschlüsselt und/oder validiert dann den Inhalt, indem es ihn an den Inhalts-De coder-Plug-in weiterleitet, um dekomprimiert und dem Benutzer vorgelegt zu werden.
  • In einem Ausführungsbeispiel sind die spezifischen Änderungen, die am Real Networks Dateiformat vorgenommen werden, wie folgt:
    • • Erhöhen der Vorlaufzeit, um größere Puffer auf Playback zu zwingen. In einem aktuellen Ausführungsbeispiel wird eine Erhöhung von drei Sekunden verwendet. Größere Puffer sind aufgrund der zusätzlichen Schritte erforderlich, die zum Entschlüsseln des Inhalts notwendig sind.
    • • Modifizieren jedes stromspezifischen Headers durch Ändern des MIME-Typs auf "RNWK-Protected", wobei der alte MIME-Typ in den decoderspezifischen Informationen gespeichert wird und ein Inhaltsidentifikator und eine DigiBox den decoderspezifischen Informationen zugefügt werden. Die DigiBox enthält den Schlüssel, den Initialisierungsvektor (IV), Versionsinformationen und Watermarking-Instruktionen. Der Schlüssel, der IV und der Inhaltsidentifikator werden automatisch erzeugt oder können als Befehlszeilen-Parameter vorgesehen werden. Für jeden Strom werden der gleiche Schlüssel, der gleiche IV und der gleiche Inhaltsidentifikator verwendet.
    • • Inhaltspakete werden selektiv verschlüsselt. In einem Ausführungsbeispiel werden Inhaltspakete, deren Startzeit in Millisekunden in der ersten Halbsekunde von jeweils fünf Sekunden liegt (d.h. Startzeit % 5000 < 500), verschlüsselt. Dies verschlüsselt ungefähr ein Zehntel des Inhalts, wodurch Ver- und Entschlüsselungskosten gesenkt werden, und beschädigt den Inhalt, ausreichend genug, um den Wiederverkauf zu verhindern. Der Verschlüsselungsalgorithmus kann DES unter Verwendung des Output-Feedback-Modus oder irgendein ähnlicher Algorithmus sein. Der Initialisierungsvektor wird für jedes Paket durch eine XOR-Funktion des IVs des Stroms mit der Startzeit des Pakets in Millisekunden berechnet. Einige Informationen, die einzigartig für den Strom sind, sollten ebenfalls durch eine XOR-Funktion in den IV aufgenommen werden. In einem Ausführungsbeispiel wird der gleiche IV für mehrfache Pakete verwendet, jedes Mal wenn zwei oder mehr Ströme Pakete mit gleicher Startzeit haben. Dies geschieht üblicherweise für das erste Paket in jedem Strom, da sie für gewöhnlich die Startzeit 0 haben. Außer dem ersten Paket findet man selten zwei Pakete, die die gleiche Startzeit haben.
  • In einem Ausführungsbeispiel werden diese Änderungen am Real Networks Dateiformat auf die Weise erreicht, wie sie in 15 gezeigt ist. Wie dargestellt, wird die RMFF-Datei 1501 in das Standard Real Networks RMFF-Format formatiert. Diese Datei wird an den Packager 1502 weitergeleitet. Ebenso an den Packager 1502 wird die Rechte-Datei 1503 (engl.: Rights File) geleitet. Der Packager 1503 erzeugt die gesicherte RMFF-Datei 1504, die verschiedene Änderungen enthält, wie sie oben beschrieben und in 15 aufgelistet sind, einschließlich der Aufnahme einer oder mehrerer DigiBoxen in den Header, der Verschlüsselung des Inhalts, der Modifizierung des MIME-Typs, usw.
  • In einem Ausführungsbeispiel ist der oben beschriebene Trust Plug-in in den 16 und 17 gezeigt. Die 16 zeigt die Standard-Real-Networks-Architektur. Die Datei 1601 (z. B. eine Streaming Audio-Datei im Real Networks-Format) wird dem Real Networks G2 Client Core 1602 bereitgestellt. Die Datei 1601 kann dem Real Networks G2 Client Core 1602 aus dem Server 1603 oder durch die direkte Verbindung 1604 bereitgestellt werden.
  • Bei Empfang der Datei 1601 greift der Real Networks G2 Client Core 1602 auf ein Rendering-Plug-in zu, das für die Datei 1601 geeignet ist, basierend auf Informationen, die aus dem Header erhalten werden, der der Datei 1601 zugeordnet ist. Die Rendering-Plug-ins 1605 und 1606 sind gezeigt. Wenn die Datei 1601 von einem Typ ist, der weder durch das Rendering Plug-in 1605 noch durch das Rendering Plug-in 1606 gerendert werden kann, kann der Real Networks G2 Client Core 1602 versuchen, auf ein geeignetes Plug-in zuzugreifen, indem er z. B. um die Unterstützung des Benutzers bittet oder indem er auf eine Stelle zugreift, die dem besonderen Dateityp zugeordnet ist.
  • Das Rendering Plug-in 1605 oder 1606 verarbeitet die Datei 1601 auf herkömmliche Weise. Diese Verarbeitung umfasst höchstwahrscheinlich die Dekomprimierung der Datei 1601 und kann andere Arten der Verarbeitung umfassen, die für das Rendering des Inhalts nützlich sind. Sobald diese Verarbeitung abgeschlossen ist (berücksichtigt man, dass der Inhalt gestreamt ist, so dass die Verarbeitung an einem Satz von Paketen erfolgen kann, während gleichzeitig ein weiterer Satz Pakete gerendert wird), wird die Datei 1601 zurück an den Real Networks G2 Client Core 1602 geleitet, der dann die Informationen an die Ren dering-Vorrichtung 1607 weiterleitet. Die Rendering-Vorrichtung 1607 kann beispielsweise ein Satz Stereolautsprecher, ein Fernsehempfänger usw. sein.
  • Die 17 zeigt die Art, auf die ein Trust Plug-in innerhalb der gesamten Real Networks Architektur arbeitet. Ein großer Teil der in 17 gezeigten Architektur ist gleich der, die in 16 gezeigt ist. So wird die Datei 1701 über den Server 1703 oder die direkte Verbindung 1704 dem Real Networks G2 Client Core 1702 zugeführt. Die Datei wird unter Verwendung von Plug-ins, einschließlich der Rendering Plug-ins 1705 und 1706, von dem Real Networks G2 Client Core 1702 verarbeitet und dann an die Rendering-Vorrichtung 1707 geleitet.
  • Die 17 unterscheidet sich von 16 in ihrer Aufnahme der Trust Plug-ins 1708 und 1709 und des IRP 1710. Wenn sie zum ersten Mal bei Real Networks G2 Client Core 1702 registriert werden, informieren die Trust Plug-ins 1708 und 1709 den Real Networks G2 Client Core 1702 darüber, dass sie Inhalt vom Typ RNWK-Protected verarbeiten können. Jedes Mal, wenn der Real Networks G2 Client Core 1702 auf einen Strom dieses Typs trifft, wird er dann ermächtigt, eine Instanz des Trust Plug-ins zu erzeugen, um den Strom zu verarbeiten, z. B. das Trust Plug-in 1708. Dann leitet er den Strom an das Trust Plug-in.
  • Der an das Trust Plug-in 1708 geleitete Strom kann in dem in 14 gezeigten Format vorliegen. In einem solchen Fall extrahiert das Trust Plug-in 1708 die DigiBox 1404 aus dem Media Properties Header 1402. Ferner extrahiert es die Inhalts-ID und den ursprünglichen MIME-Typ aus dem Media Properties Header 1402. Zunächst prüft das Trust Plug-in, ob irgendein anderer Strom mit dem gleichen Inhaltsidentifikator geöffnet wurde. Ist dies der Fall, wird die DigiBox 1404 nicht weiter verarbeitet. Stattdessen werden der Schlüssel und der IV aus der Box für diesen anderen Strom verwendet. Dies erspart den Zeitaufwand für das Öffnen einer zweiten Box. Ferner stellt dies sicher, dass ein Benutzer nur einmal aufgefordert wird zu zahlen, selbst wenn mehrfache geschützte Ströme vorhanden sind. Durch ein Teilen von Inhalts-IDs, Schlüsseln und IVs können mehrere Dateien gespielt werden, während der Benutzer nur einmal bezahlt. Dies ist nützlich, wenn SMIL verwendet wird, um mehrere RMFF-Dateien als eine einzige Darstellung zu spielen.
  • In einem alternativen und möglicherweise sichereren Ausführungsbeispiel wird diese Prüfung nicht durchgeführt und der Schlüssel und die IV aus der aktuellen DigiBox werden selbst dann verwendet, wenn ein anderer Strom mit diesem Inhaltsidentifikator bereits geöffnet wurde.
  • Wenn kein anderer Strom mit dem gleichen Inhaltsidentifikator identifiziert wurde, leitet das Trust Plug-in 1708 die DigiBox 1404 an den IRP 1710. Der IRP 1710 kann ein Software-Prozess sein, der auf dem gleichen Computer läuft wie der Real Networks G2 Client Core und das Trust Plug-in 1708. Der IRP 1710 kann in einer gesicherten Umgebung laufen oder Manipulationsschutzverfahren enthalten, die den IRP 1710 gegenüber einem Angriff widerstandsfähig machen sollen.
  • Der IRP 1710 kann die DigiBox 1404 verarbeiten und einen kryptographischen Schlüssel und einen IV extrahieren, die dann an das Trust Plug-in 1708 geleitet werden. Das Trust Plug-in 1708 kann dann diese Informationen verwenden, um die verschlüsselten Inhalte 1406 zu entschlüsseln.
  • Das Trust Plug-in 1708 verwendet die originalen MIME-Typ Informationen, die aus dem Media Properties Header 1402 extrahiert wurden, um eine Instanz des Rendering Plug-in, der für diesen Inhalt verwendet werden soll, zu erzeugen (z. B. das Rendering Plug-in 1705). Sobald dies erfolgte, verhält sich das Trust Plug-in 1708 gegenüber dem Real Networks G2 Client Core 1702 wie ein gewöhnliches Rendering Plug-in, indem der Real Networks G2 Client Core 1702 gestreamte Informationen an das Trust Plug-in 1708 leitet, das diese Informationen entschlüsselt und sie an das Rendering Plug-in 1705 weiterleitet. Aus Sicht des Real Networks G2 Client Cores 1702 stellt das Trust Plug-in 1708 das geeignete Rendering Plug-in dar, und der Core weiß nicht, dass die Informationen von dem Trust Plug-in 1708 an ein zweites Plug-in geleitet werden (z. B. das Rendering Plug-in 1705).
  • Ähnlich dazu verhält sich aus Sicht des Rendering Plug-ins 1705 das Trust Plug-in 1708 wie der Real Networks G2 Client Core 1702. Obgleich auch das Rendering Plug-in 1705 verschlüsselte Strom-Informationen aus dem Trust Plug-in 1708 empfängt, arbeitet das Rendering Plug-in 1705 genau so, wie wenn die Informationen direkt aus dem Real Networks G2 Client Core 1702 empfangen worden wären. Auf diese Weise kann für den Rendering Plug-in 1705 formatierter Inhalt stattdessen zuerst von dem Trust Plug-in 1708 verarbeitet werden, ohne dass irgendeine Änderung am Real Networks G2 Client Core 1702 oder dem Rendering Plug-in 1705 erforderlich wäre.
  • Das Trust Plug-in 1708 kann auch weitere Verarbeitungen durchführen, die für Sicherheitszwecke hilfreich sind. Beispielsweise kann das Trust Plug-in 1708 die entschlüsselte Datei vor deren Weiterleiten an das Rendering Plug-in 1705 mit einem Watermarking versehen, wobei zu berücksichtigen ist, dass der Watermark-Algorithmus derart sein muss, dass er die Dekomprimierung der Datei durch das Rendering Plug-in 1705 übersteht.
  • MP3-Ausführungsbeispiel
  • Die oben beschriebenen Verfahren können auch bei einem MP3 Streaming Inhalt angewandt werden.
  • Die MP3-Spezifikation definiert kein Standard-Dateiformat, sonder einen Bitstrom, der in 18 gezeigt ist. In 18 enthält der MP-3 Bitstrom 1801 einen Inhalt 1802. Der Inhalt 1802 ist in Rahmen unterteilt, die als Rahmen 1803, Rahmen 1804 und Rahmen 1805 gezeigt sind. Die Punkte zwischen den Rahmen 1804 und 1805 symbolisieren die Tatsache, dass der Inhalt 1802 eine große Anzahl von Rahmen enthalten kann.
  • Jeder Rahmen enthält seinen eigenen kleinen Header, die in 18 als Header 1806, 1807 und 1808 gezeigt sind.
  • Viele MP3-Player unterstützen einen kleinen Trailer, der von der ID3 V1 Spezifikation definiert und als Trailer 1809 gezeigt ist. Dies ist ein 128-Byte-Trailer zum Mitführen von Feldern wie Künstler, Titel und Jahr, die als Felder 1810, 1811 und 1812 gezeigt sind. Der ID3 V1 Trailer wird von solchen Playern ignoriert, die nicht zum Lesen solcher Trailer ausgelegt sind, es keine gültigen MP3-Daten zu sein scheinen.
  • Die 19 zeigt ein Ausführungsbeispiel eines Schutzes, angewendet am MP3-Format. Dieses geschützte Format bildet die Datei 1908 und enthält die folgenden Posten:
    • • Unverschlüsselter MP3-Inhalt 1912. Dies sind die ersten Informationen, auf die ein Player stößt, und sie werden von jedem Standard-MP3-Player gerendert werden. Sie können eine Nachricht für den Benutzer enthalten, die angibt, dass der Inhalt geschützt ist, und Instruktionen bereitstellen, wie auf den Inhalt zugegriffen werden kann (z. B. eine URL für ein Trust Plug-in, Instruktionen zu Zahlungsmechanismen, etc.). Unverschlüsselter MP3-Inhalt 1912 kann einen so genannten "Teaser" enthalten, der aus einem Anfangsabschnitt des Inhalts (z. B. 30 Sekunden) besteht und kostenfrei gerendert wird, wodurch einem Benutzer ermöglicht wird, den Inhalt vor dem Treffen einer Kaufentscheidung zur Probe zu sehen.
    • • Verschlüsselter MP3-Inhalt 1901, der Tausende von MP3-Rahmen enthalten kann. In einem Ausführungsbeispiel sind die ersten acht Rahmen von jeweils 32 Rahmen verschlüsselt. Somit sind ein Viertel der Rahmen nicht nutzbar, bis ein Player in der Lage ist, sie zu entschlüsseln. In der Praxis kann dies den Inhalt unverkäuflich oder unbrauchbar machen, ohne dass übermäßige Ver- oder Entschlüsselungskosten entstehen. Um die Ver- und Entschlüsselungskosten weiter zu senken, werden nur 32 Bytes in jedem Rahmen verschlüsselt. In einem derzeitigen Ausführungsbeispiel sind dies die ersten 32 Bytes nach dem Header und den CRC-Informationen. In einem anderen Ausführungsbeispiel können andere 32 Bytes in jedem Rahmen verschlüsselt werden. In einem aktuellen Ausführungsbeispiel wird der Inhalt mit dem DES-Algorithmus unter Verwendung des Output-Feedback-Modus verschlüsselt. Der Ausgangs-IV für die Datei wird zufällig erzeugt und dann mit der Rahmennummer einer XOR-Funktion unterzogen, um einen einzigartigen IV für jeden Rahmen zu erzeugen.
  • Es können viele alternative Ausführungsbeispiele existieren, einschließlich einer Verschlüsselung von mehr oder weniger Informationen und der Verwendung anderer Verschlüsselungsalgorithmen.
    • • ID3 V 1 Trailer 1902, mit 128 Bytes,
    • • Inhalts-ID 1903, mit 16 Bytes. Diese wird von der Player-Anwendung verwendet, um ein Öffnen einer DigiBox zu vermeiden, die sie bereits geöffnet hat.
    • • DigiBox 1904, die ungefähr 18K Bytes enthalten kann. Sie enthält einen Schlüssel 1909, einen IV 1910 und Watermarking-Instruktionen 1911. Die Watermarking-Instruktionen 1911 können in einem Prozess für ein Watermarking des dazugehörigen Inhalts verwendet werden.
    • • Adresse 1905, die die Adresse in der Datei der Inhalts-ID 1903 enthält und aus 4 Bytes besteht.
    • • Trust-ID 1906, welche diese vertrauenswürdige MP-3 Datei identifiziert und aus 16 Bytes besteht.
    • • ID3 V 1 Trailer 1907, der eine Kopie des Trailers 1902 ist.
  • Ein herkömmlicher MP3-Player, der auf die Datei 1908 trifft, wäre nicht in der Lage, den Inhalt 1901 zu rendern, da zumindest ein Teil dieses Inhalts verschlüsselt ist. Ein derartiger Player würde sich höchstwahrscheinlich bis zum Trailer 1902 durchlesen und an dieser Stelle mit der Verarbeitung aufhören. Ein herkömmlicher Player, der nach der ID3 Trailer-Information sucht, wird bis zum Ende suchen und sie finden.
  • Die 20 zeigt ein Ausführungsbeispiel eines MP3-Players, der dafür ausgelegt ist, geschützten Inhalt zu verarbeiten und zu rendern. Diese Figur zeigt den MP3-Player 2001, der einen Puffer 2006 und einen Dekomprimierer 2007 enthält, und Inhalt an die Rendering-Vorrichtung 2008 rendert. In einem Ausführungsbeispiel ist dies eine modifizierte Version eines von Sonique vertriebenen Players.
  • Der Player 2001 erhält die geschützte MP3-Datei 2002 über irgendeine Standardschnittstelle. Die geschützte MP3-Datei 2002 kann das in 19 gezeigte Format haben.
  • Wird der Player 2001 aufgefordert, die geschützte MP3-Datei 2002 zu spielen, ruft der Player 2001 zunächst das Trust Plug-in 2003 auf, der die Freigabe-Funktion 2009 (engl.: Approval Function) und die Entschlüsselungsfunktion 2005 enthält. Das Trust Plug-in 2003 ruft die Freigabe-Funktion 2009 auf, um zu bestimmen, ob die geschützte MP3-Datei 2002 geschützt ist und ob eine Berechtigung vorliegt, die Datei zu spielen. Der Freigabe-Funktion 2009 wird zunächst ein Pointer auf die geschützte MP3-Datei 2002 gegeben. Daraufhin überprüft sie die geschützte MP3-Datei 2002 auf das Vorhandensein der Trust-ID 1906. Wird die Trust-ID 1906 nicht gefunden, gibt die Freigabe-Funktion 2009 einen Indikator zurück, dass die Datei nicht geschützt ist. Der Player 2001 fährt dann fort, die Datei als normale MP3-Datei zu rendern.
  • Wird die Trust-ID 1906 gefunden, überprüft die Freigabe-Funktion 2009 die Inhalts-ID 1903, um zu sehen, ob sie der Inhalts-ID einer Datei entspricht, die bereits geöffnet wurde.
  • Wenn die geschützte MP3-Datei 2002 nicht zuvor geöffnet worden ist, wird die DigiBox 1904 von der Freigabe-Funktion 2009 aufgerufen und an den IRP 2004 weitergeleitet, der Software enthalten kann, die in einer gesicherten Umgebung läuft oder Manipulationsschutz enthält. Der IRP 2004 versucht die DigiBox 1904 gemäß den Regeln zu öffnen, die dieser DigiBox zugeordnet sind. Eine solche Regel kann beispielsweise erfordern, dass der Benutzer seine Zustimmung zur Bezahlung für die Benutzung des Inhalts gibt. Wenn die DigiBox 1904 nicht geöffnet werden kann (z. B. der Benutzer verweigert die Bezahlung), wird ein Wert an die Freigabe-Funktion 2009 zurückgesendet, der anzeigt, dass die Datei geschützt ist und nicht gespielt werden darf.
  • Wenn die DigiBox 1904 gemäß den anwendbaren Regeln geöffnet wird, werden der Schlüssel und der IV aufgerufen und an die Entschlüsselungsfunktion 2005 geleitet. Der Schlüssel und der IV werden zusammen mit der Inhalts-ID zur späteren Wiederbenutzung gespeichert, und die Entschlüsselungsfunktion 2005 wird initialisiert. Dies kann das gesamte Systemverhalten verbessern, da dadurch die Anzahl der Öffnungen einer DigiBox verringert werden kann. Jede solche Handlung kann eine beträchtliche Latenz einbringen.
  • Andererseits kann das Speichern dieser Informationen in einem ungeschützten Speicher die gesamte Systemsicherheit reduzieren. Die Sicherheit kann verbessert werden, indem man entweder diese Informationen nicht speichert (wodurch es erforderlich wird, dass jede DigiBox geöffnet wird, selbst wenn die entsprechende Datei bereits durch eine andere DigiBox geöffnet wurde), oder indem man diese Informationen in geschützter Form oder an einer sicheren Stelle speichert.
  • Auf den Schlüssel, die IV und die Inhalts-ID, die gespeichert sind, wird Bezug genommen, wenn die Freigabe-Funktion 2009 zunächst die Inhalts-ID 1903 prüft, um zu bestimmen, ob sie der Inhalts-ID einer bereits geöffneten Datei entspricht. Wenn die neue Inhalts-ID mit einer gespeicherten Inhalts-ID übereinstimmt, wird die Entschlüsselungsfunktion 2005 erneut initialisiert, wobei der Schlüssel und der IV, die gespeichert sind und dieser übereinstimmenden Inhalts-ID entsprechen, verwendet werden, wobei ein Wert, der anzeigt, dass dies eine geschützte Datei ist, deren Wiedergabe autorisiert ist, an die Freigabe-Funktion 2009 zurückgesendet wird.
  • Sobald die geschützte MP3-Datei 2002 geöffnet worden ist, liest der Player 2001, jedes Mal wenn er ein Paket benötigt, dieses in den Puffer 2006, zieht den Header und den CRC ab und leitet die verbleibenden Daten und eine Rahmennummer an die Entschlüsselungsfunktion 2005, die den Rahmen falls erforderlich entschlüsselt und ihn an den Player 2001 zurücksendet.
  • In einem derzeitigen Ausführungsbeispiel sind die Header oder Trailer nicht verschlüsselt, obgleich der Audio-Inhalt verschlüsselt ist. Dies ermöglicht dem Player 2001, ohne ein Eingreifen der Freigabe-Funktion 2009 oder der Entschlüsselungsfunktion 2005 Informationen in Headern oder Trailern zu verarbeiten. Dies ermöglicht dem Player 2001, Informationen wie z. B. Spielzeit, Künstler und Titel in eine Anzeige einer Playliste aufzunehmen und den Dekomprimierer 2007 zu initialisieren, ohne dass irgendein Eingriff vom Trust Plug-in 2003 erforderlich wäre.
  • Handelsgerät-Ausführungsbeispiel (engl.: Commerce Appliance Embodiment)
  • Dieser Abschnitt beschreibt ein Ausführungsbeispiel, das eine Handelsgerät-Architektur umfasst, die dafür ausgelegt ist, eine ständige Kontrolle digitaler Werke in Unterhaltungselektronikgeräten zu ermöglichen. Obgleich es als selbständiges Ausführungsbeispiel beschrieben wird, wird darauf hingewiesen, dass die Merkmale dieses Ausführungsbeispiels mit den Merkmalen irgendeines der an anderer Stelle in dieser Beschreibung angegebenen Ausführungsbeispiele kombiniert oder ausgetauscht werden kann.
  • In einem Ausführungsbeispiel wird dieser Abschnitt Modifizierungen am MPEG-4 Standard beschreiben, die dafür bestimmt sind, die Zuordnung persistenter Regeln und Kontrollen zu dem MPEG-4 Inhalt zu stützen, sowie Elemente, die für ein Handelsgerät zur Nutzung eines solchen Inhalts erforderlich sind. Dies ist jedoch rein beispielhaft anzusehen.
  • In einem Ausführungsbeispiel, das in 23 gezeigt ist, enthält jedes Handelsgerät 2301 ein CMPS ("Content Management and Protection System" Inhaltsverwaltungs- und schutzsystem) 2302. Jedes CMPS ist dafür verantwortlich, die Benutzung kontrollierten Inhalts zu regeln, einschließlich der Entschlüsselung des Inhalts und des Sicherstellens, dass der Inhalt nur so verwendet wird, wie dies von dazugehörigen Regeln gestattet wird.
  • Jedem geregelten digitalen Werk sind ein oder mehrere CMPOs (Content Management Protection Object) (Inhaltsverwaltungs- und -schutzobjekt) zugeordnet, z. B. die CMPOs 2303. Jedes CMPO kann Regeln spezifizieren, die die Benutzung des digitalen Werks regeln, und kann Schlüssel enthalten, die zum Entschlüsseln des Werks verwendet werden.
  • Die CMPOs können hierarchisch organisiert sein. In einem Ausführungsbeispiel kann ein Inhalts-Aggregator (z. B. ein Kabelkanal, eine Webseite, etc.) ein Kanal-CMPO (Channel CMPO "CCMPO") spezifizieren, das dazu verwendet wird, bestimmte globale Regeln dem gesamten, auf diesem Kanal vorhandenen Inhalt zuzuordnen. Jedes unabhängige Werk kann wiederum ein zugeordnetes MasterCMPO ("MCMPO") haben, das dazu verwendet wird, Regeln zuzuordnen, die auf das Werk als Ganzes anwendbar sind. Jedem Objekt (oder jedem Elementary Stream, im MPEG-4) kann ein CMPO zugeordnet sein, das Regeln enthält, die dieses bestimmte Objekt regeln.
  • Bei einer beispielhaften Anwendung kann das Handelsgerät 2301 ein MPEG-4 Player sein, der ein CMPS 2302 enthält. Bei Empfang eines Benutzerbefehls zum Spielen eines bestimmten Werkes, kann das CMPS 2302 ein MCMPO herunterladen, das dem Werk zugeordnet ist, und Regeln erhalten, die Bedingungen einschließen können, die zum Entschlüsseln und Betrachten des Werks erforderlich sind. Werden die Regeln erfüllt, kann das CMPS 2302 Schlüssel aus dem MCMPO verwenden, um jegliche Elementary Streams ("ES") zu entschlüsseln, und kann die entschlüsselten ESs in die Puffer weiterleiten. Composition (Zusammensetzung) und Rendering des MPEG-4 Werkes können anschließend gemäß dem MPEG-4 Standard erfolgen, mit der Ausnahme, dass jeder Speicherplatz oder Bus, der das Werk im Klartext enthalten kann, sicher sein muss, und das CMPS 2302 kann die Fähigkeit haben, eine stromabwärtige Verarbeitung zu regeln, sowie Informationen darüber zu erhalten, welche AVOs tatsächlich zum Sehen freigegeben wurden.
  • In einer Ausführungsvariante kann der Prozess des Erhaltens und Regelns des Werkes das Herunterladen eines CCMPO einschließen, das Regeln anwendet, die dieses und andere Werke regeln. Wenn in dem CCMPO enthaltene Regeln erfüllt werden, kann das CMPS 2302 einen Schlüssel erhalten, der dazu verwendet wird, das diesem bestimmten, zu sehenden Werk zugeordnete MCMPO zu entschlüsseln.
  • In einer weiteren Ausführungsvariante kann jedem ES ein CMPO zugeordnet sein. Bei dieser Variante liefert das MCMPO einen oder mehrere Schlüssel zur Entschlüsselung jedes CMPO, und jedes CMPO kann wiederum einen Schlüssel zur Entschlüsselung des dazugehörigen ES liefern.
  • Das Handelsgerät 2301 ist eine Inhaltsrendering-Vorrichtung, die die Fähigkeit hat, verteiltes Peer-Management von inhaltsspezifischen Rechten zu stützen, indem auf sichere Weise Regeln und Kontrollen angewendet werden, um die Inhaltsbenutzung zu regeln. Das Handelsgerät 2301 kann Universalfunktionen umfassen, die der Akquisition und dem gesteuerten Rendering des Inhalts gewidmet sind (z. B. ist ein DVD (und/oder jedes andere Bildplattenformat)-Player in der Lage, eine DVD (und/oder jedes andere Bildplattenformat)-Disk zu spielen und Inhalt an einen Fernseher auszugeben). Das Handelsgerät 2301 kann von irgendwelchen Mitteln zum Schutz und zur Verwendung digitalen Inhalts auf einer Bildplatte hoher Kapazität Gebrauch machen, in einem nicht ausschließlichen Beispiel einer DVD-Disk, wie in der vorgenannten Patentanmeldung von Shear beschrieben.
  • Das Handelsgerät 2301 enthält ferner Sonderfunktionen, die andere Inhaltsverwaltungs- und schutzfunktionen betreffen. Diese Sonderfunktionen können von einem oder mehreren eingebetteten oder anderweitig aufgenommenen CMPS 2302 in Form eines einzelnen CMPS oder einer kooperativen CMPS-Anordnung gestützt werden und eine Benutzerschnittstelle (z. B. die Benutzerschnittstelle 2304) umfassen, die dafür ausgelegt ist, dem Benutzer die kontrollspezifischen Informationen anzuzeigen und/oder die kontrollspezifischen Informationen und Anweisungen von dem Benutzer zu empfangen. Das Handelsgerät 2301 kann ferner so ausgelegt sein, dass es mit anderen Handelsgeräten (z. B. einer Set-Top-Box, die an einen DVD-Player und an einen digitalen Fernseher angeschlossen ist) und/oder mit anderen Vorrichtungen, wie z. B. eine Computer anordnung, die ebenfalls ein oder mehrere CMPSs enthalten kann, netzwerkfähig ist.
  • Eine wichtige Form von Handelsgerät sieht speziell die sichere Kopplung auf regelmäßige oder kontinuierliche Weise mit einer von einem Computer verwalteten Docking-Umgebung voraus (z. B. ein Einzelrechner oder eine andere von einem Computer verwaltete Vorrichtung, die selbst ein Handelsgerät sein kann), bei der das eine oder die mehreren CMPSs des Handelsgeräts mit der Docking-Umgebung zusammenarbeiten, um eine einzige Benutzeranordnung zu bilden, deren Durchführung bestimmter Funktionen und/oder bestimmter Inhaltsnutzungsvorgänge durch eine solche Zusammenarbeit über zumindest teilweise die Zusammenarbeit zwischen den CMPSs und den Inhaltsnutzungsmanagementinformationen des Handelsgerätes und den Fähigkeiten einer vertrauenswürdigen Umgebung der Docking-Umgebung ermöglicht wird (z. B. ein oder mehrere weitere CMPSs und Inhaltsnutzungsmanagementinformationen, wie z. B. die Informationen, die durch die Benutzung von CI bereitgestellt werden).
  • Ein beispielhaftes Handelsgerät kann dafür ausgelegt sein, dem neueren MPEG-4 Standard zur Formatierung, zum Multiplexen, zur Übertragung, zur Zusammensetzung und zum Rendern von Videos und anderen Arten von Informationen zu entsprechen.
  • Das Handelsgerät 2301 kann jedes Rechengerät sein und ein die Erfindung nicht einschränkendes Beispiel ist ein Personal Computer (PC), der eine MPEG-4 Software (und/oder Hardware) zum Rendern von Inhalt enthält. Gemäß der vorliegenden Erfindung kann der PC auch ein oder mehrere CMPSs, wie sie hier beschrieben sind, verwenden.
  • Die Handelsgerät-Funktion ist nicht auf gestreamten Kanalinhalt beschränkt, sondern kann verschiedene Browser-Typ-Anwendungen umfassen, die aus aggregiertem Composite-Inhalt bestehen, wie z. B. Standbilder, Text, synthetische und natürliche Video- und Audioinhalte und funktionelle Inhalte, wie z. B. Applets, Animationsmodelle usw., und diese Vorrichtungen umfassen Browser, Set-Top-Boxen, etc.
  • Inhaltsverwaltungs- und -schutzsystem (engl.: Content Management and Protection System (CMPS))
  • Jedes Handelsgerät umfasst ein oder mehrere CMPS (z. B. ein CMPS 2302). Das CMPS ist verantwortlich für den Aufruf und die Anwendung der Regeln und Kontrollen, einschließlich der Verwendung der Regeln und Kontrollen zur Regelung der Art und Weise, in der kontrollierter Inhalt verwendet wird.
  • Besondere Funktionen des CMPS 2302 schließen folgende ein:
    • (a) Identifizierung und Interpretation von Regeln. Das CMPS 2302 muss bestimmen, welche Regeln anzuwenden und wie diese Regeln angesichts vorhandener Zustandsinformationen zu interpretieren sind. In einem Ausführungsbeispiel erfordert dies, dass das CMPS 2302 ein oder mehrere CMPOs 2303, die einem Werk zugeordnet sind, erhält und entschlüsselt.
    • (b) Identifizierung von Inhalt, der bestimmten Regeln zugeordnet ist. Das CMPS 2302 muss bestimmen, welcher Inhalt von einer oder mehreren bestimmten Regeln kontrolliert wird. Dies kann dadurch erreicht werden, dass man Informationen aus einem oder mehreren CMPOs 2303 und/oder anderen CI erhält. In einem Ausführungsbeispiel kann ein CCMPO einen Satz Werke identifizieren, ein MCMPO kann ein bestimmtes Werk identifizieren und ein CMPO kann einen bestimmten ES oder ein audiovisuelles Objekt ("AVO") identifizieren.
    • (c) Entschlüsselung des Inhalts, wie durch die Regeln gestattet. Das CMPS 2302 kann so ausgelegt sein, dass der gesamte Inhalt durch das CMPS 2302 zur Entschlüsselung geleitet wird, ehe er in den Datenfluss, der von dem relevanten Standard gefordert wird, wieder eingesetzt wird. Im Falle von MPEG-4 kann beispielsweise die Ausgabe aus dem Demux 2305 in das CMPS 2302 eingegeben werden. Das CMPS 2302 kann dann den Inhalt entschlüsseln und, wenn relevante Regeln und Kontrollen erfüllt sind, den Inhalt in die MPEG-4 Puffer eingeben. Ab diesem Punkt kann der dem Inhalt zugeordnete Datenfluss so sein wie durch MPEG-4 beschrieben.
    • (d) Inhaltskontrolle auf Regelbasis. Das CMPS 2302 kann dazu verwendet werden, die Nutzung von Inhalt nach der ersten Entschlüsselung zu kontrollieren, beispielsweise durch die Nutzung sicherer Eventverwaltung, wie dies in der aufgenommenen Patentanmeldung '333 von Ginter beschrieben ist. Im Falle von MPEG-4 Systemen kann dies erfordern, dass das CMPS 2302 eine Kontrolle über die Hardware und/oder die Software ausübt, die die folgenden Funktionen erfüllt: Demultiplexen (ausgeführt durch den Demux 2305), Dekomprimierung/Puffern/Decodieren in AVOs (ausgeführt durch den Szenenbeschreibungsgraphen 2306, den AVO-Decode 2307 und die Objektdeskriptoren 2308), Szenen-Rendering (ausgeführt im Composite und Render 2309). Das CMPS 2302 kann auch dazu verwendet werden, die Nutzung und die Folgen zu kontrollieren gemäß: (1) allgemeinen Kopierschutzregeln, wie z. B. das CGMS und/oder die SGMS-Standards; (2) verschiedenen Kontrollmethoden zum Kontrollieren eines bedingten Zugriffs ("Conditional Access"), wie z. B. diejenigen, die von NDS vorgeschlagen und/oder implementiert wurden, wie im MPEG-4 Dokument M2959, DAVIC "Copyright Control Famework"-Dokument, und in anderen Publikationen beschrieben; (3) einer Sprache der Rechteverwaltung (engl.. Rights Management Language), wie diejenigen, die in der Patentanmeldung '333 von Ginter vorgeschlagen wurden und/oder wie sie im US-Patent Nr. 5,638,443 von Stefik, et al. beschrieben sind; (4) Nutzungsrichtlinien, die gemäß dem At&T's Policy Maker beschrieben wurden, wie von Blaze, Feigenbaum und Lacy beschrieben; (5) die CCI-Schicht Bits für die IEEE 1394 Serial-Bus-Übertragung, wie von der DTDG-Untergruppe der DVD Copy Protection Technical Working Group spezifiziert und/oder von dem von Hitachi, Intel, Matsushita, Sony und Toshiba vorgeschlagenen Standard implementiert (nachstehend "der "Fünf-Firmen-Vorschlag"); (6) Kontrollen, die unter Verwendung irgendeiner Technologie mit sicheren Behältern übertragen werden, wie z. B. der IBM Cryptolope; (7) irgendwelchen anderen Mittel zum Spezifizieren von Nutzungsregeln und -folgen.
    • (e) Überwachen der Inhaltsnutzung Das CMPS 2302 kann dazu verwendet werden, den Inhalt zu überwachen, um: (i) sicherzustellen, dass die Regeln eingehalten werden, (ii) sicherzustellen, dass keine Versuche unternommen werden, das System oder geschützten Inhalt zu manipulieren, und (iii) Informationen aufzuzeichnen, die von den Regeln verwendet werden, einschließlich Nutzungsinformationen, die für Zahlungszwecke erforderlich sind.
    • (f) Aktualisieren von Benutzer-Budgets Das CMPS 2302 kann dazu verwendet werden, Benutzer-Budgets oder andere Budgets zu aktualisieren, um die Nutzung zu reflektieren.
    • (g) So genannte "Exhaust Informationen" Das CMPS 2302 kann dazu verwendet werden, Zahlungs- und Nutzungsinformationen (engl.: "exhaust information") an externe Prozesse auszugeben, einschließlich eines oder mehrerer Handelsgebrauchssysteme (engl.: Commerce Utility Systems).
    • (h) Identifizierung und Konfigurierung der Hardware
    • (i) Erhalten neuer, zusätzlicher und/oder erweiterter Regeln aus einem externen Prozess, wobei ein nicht einschränkendes Beispiel hierfür ein so genanntes "Rights and Permission Clearinghouse" ist, wie es in der aufgenommenen Patentanmeldung von Shear beschrieben ist.
    • (j) Empfangen von Schlüsseln, digitalen Passwörtern, wie z. B. Zertifikate, und/oder administrative Informationen von zertifizierenden Behörden, Einsatzmanagern, Clearinghäusern, und/oder anderen vertrauenswürdigen Infrastrukturdiensten.
    • (k) Sicheres Senden und/oder Empfangen von Benutzer- und/oder Geräteprofilen und/oder Attributinformationen.
    • (l) Sicheres Identifizieren eines Benutzers oder eines Mitglieds einer Klasse von Benutzern, der/das eine Inhalts- und/oder CMPO- und/oder CMPS-Nutzung anfordert.
    • (m) Sicheres Zertifizieren oder anderweitiges Garantieren der Authenzität des Anwendungscodes, beispielsweise wird innerhalb des CMPO 2301 und/oder des CMPS 2302 zertifiziert, dass der Anwendungscode, der Regeln und/oder andere Anwendungsinformationen enthält, wie beispielsweise Informationen, die im Java Code für eine bedingte Ausführung innerhalb eines Handelsgeräts geschrieben wurden, und/oder zumindest teilweise außerhalb des CMPO 2301 und/oder des CMPS 2302 ausgeführt wird, nicht geändert wurde und/oder von einer garantierten (z. B. vertrauenswürdigen) Partei geliefert wurde.
    • (n) Sicheres Verarbeiten unabhängig gelieferter CI, wie dies in der aufgenommenen Patentanmeldung '333 von Ginter beschrieben wurde, um eine Inhaltsnutzungskontrolle durchzuführen, die die Rechte mehrerer, unabhängiger Parteien in einer Handelswertkette schützt.
    • (o) Sicheres Durchführen von Watermarking-Funktionen (einschließlich beispielsweise das Fingerprinting), wie sie beispielsweise in der Patentanmeldung '333 von Ginter beschrieben wurden und hier aufgenommen sind, z.B. einschließlich der Interpretation von Watermarking-Informationen zur Kontrolle der Inhaltsnutzung und/oder zur Ausgabe einer Eventnachricht, wobei eine solche Eventnachricht an eine entfernte Behörde, wie z. B. eine MCMPO-Rights-Clearinghouse-Verwaltungsstelle, berichtet werden kann.
  • Das CMPS 2302 kann dazu verwendet werden, die aktuelle Hardware-Konfiguration des Handelsgeräts und beliebiger angeschlossener Vorrichtungen zu identifizieren und aufzuzeichnen (z. B. welche Lautsprecher zur Verfügung stehen, die Identifizierung angeschlossener Monitore, einschließlich, ob bestimmte Monitore digitale Ausgabekanäle haben, etc.). Wenn angeschlossene Vorrichtungen (wie z. B. Lautsprecher) ebenfalls CMPSs enthalten, können die CMPSs zur Kommunikation für Zwecke der Koordinierung verwendet werden (z. B. kann ein CMPS in einer Set-Top-Box und/oder Lautsprecheranordnung mit einem CMPS in einem stromabwärtigen digitalen Fernseher oder einer anderen Anzeigevorrichtung kommunizieren, um festzustellen, welches CMPS für die Regelung oder die Art der kooperativen Regelung durch einen Prozess virtueller Rechte verantwortlich sein wird, wobei dieser Prozess optional einen sogenannten Rights Authority Server einschließt, der Prozesse über Rechte (engl.: rights processes) finden, lokalisieren, bereitstellen, aggregieren, verteilen und/oder verwalten kann, wie dies in der vorgenannten Patentanmeldung von Shear beschrieben ist, um beispielsweise mehrere CMPSs für eine einzige Nutzerinhaltsverarbeitung und Nutzungsanordnung zu verwenden).
  • Die vorliegende Erfindung umfasst Anordnungen, die mehrfache Handelsgeräte und/oder CMPSs an einer oder mehreren Benutzerorten umfassen, wobei nicht einschränkende Beispiele hierfür ein Haus, eine Wohnung, ein Loft, ein Büro und/oder ein Fahrzeug, wie z. B. ein Auto, ein Lastwagen, ein SUV, ein Boot, ein Schiff oder Flugzeug sind, die wenigstens gelegentlich miteinander kommunizieren und ein virtuelles Netzwerk umfassen können, das wenigstens durch die teilweise Verwendung von solchen CMPSs logisch arbeitet, um eine optimale kommerzielle Flexibilität und einen optimalen kommerziellen Wirkungsgrad und die Durchsetzung von Rechten der Handelswertkettenteilnehmer sicherzustellen, einschließlich finanzieller Rechte sowie Urheberrechte von Anbietern, Infrastrukturrechten von Geräteanbietern, sozialer Rechte von Regierungs- und/oder Gesellschaftskörpern und Privatrechte aller Parteien, einschließlich der Verbraucher. Informationen bezüglich der Wechselwirkung innerhalb eines solchen Netzwerks von Wertkettenteilnehmern, einschließlich der Inhaltsnutzungsprüfung, Inhaltsnutzungfolge und der CI-Spezifikation, können sicher und variabel an Parteien berichtet werden, die ein Recht auf solche Informationen haben, durch zumindest teilweise die Verwendung solcher CMPSs, wie dies beispielsweise in der vorgenannten Patentanmeldung '712 von Ginter hinsichtlich der Informationsberichtserstattungsfunktionen der VDE-Knoten beschrieben wurde.
  • In einem in 24 gezeigten Ausführungsbeispiel besteht das CMPS 2401 aus einer speziellen Hardware und einer residenten Software oder Firmware. Diese enthalten folgendes:
    • (a) Einen oder mehrere Prozessoren oder Mikrokontroller, z. B. eine CPU 2402. Die CPU 2402 kontrolliert die gesamte Verarbeitung des CMPS 2401, einschließlich der Ausführung jeglicher erforderlicher Software.
    • (b) Einen oder mehrere externe Kommunikationsports, z. B. der Port 2403. Der Port 2403 kommuniziert mit einem externen Netzwerk 2404, das LANs, WANs oder verteilte Netzwerke, wie das Internet, enthalten kann. Externe Kommunikationsports können auch einen oder mehrere IEEE 1394 serielle Busschnittstellen enthalten.
    • (c) Einen Speicher 2405. Arten von Speichern, die im Speicher 2405 aufgenommen werden können – und Beispiele für die Informationen, die sie speichern können – sind folgende: i. ROM 2406. Das ROM 2406 kann jegliche Informationen enthalten, die permanent im CMPS 2401 gespeichert sind, wie z. B. (1) ein CMPS Betriebssystem 2407 und/oder CMPS BIOS 2408, (2) Regeln/Kontrollen 2409, die permanent im CMPS gespeichert sind; (3) Kontrollgrundelemente 2410, die verwendet werden können, um Regeln oder Kontrollen zu erstellen; (4) Schlüssel 2411, die dem CMPS zugeordnet sind, einschließlich eines Öffentlichen/Privaten Schlüsselpaares; (5) ein oder mehrere Zertifikate 2412, die dafür ausgelegt sind, das CMPS 2401 und/oder die Vorrichtung zu identifizieren, einschließlich Versionsinformationen; (6) Hardware-Signatur-Informationen 2413, die zum Prüfen auf Manipulation verwendet werden (z. B. eine gehashte Signatur, die den erwarteten Hardware-Zustand der Vorrichtung reflektiert). ii. RAM 2414. Das RAM 2414 kann Informationen über den aktuellen Zustand enthalten, die von dem CMPS 2401 benötigt werden, sowie Informationen, die von dem CMPS 2401 zur späteren Verwendung temporär gespeichert werden. Informationen, die im RAM 2414 gespeichert sind, können folgende enthalten: (1) Software 2415, die aktuell in der CPU 2402 ausgeführt wird; (2) CMPOs 2416, die aktuell aktiv sind; (3) eine Inhaltsobjektidentifikation 2417 solcher Inhaltsobjekte, die aktuell aktiv sind (in einem MPEG-4 System würde dies beispielsweise eine Identifizierung aktiver AVOs darstellen); (4) Regeln 2418, die aktuell aktiv sind; (5) Zustandsinformationen 2419 über den aktuellen Inhaltsnutzungszustand, einschließlich einer Identifizierung irgendeiner Organisation höherer Ordnung (in einem MPEG-4 System würde dies eine Identifizierung des Szenenbeschreibungsbaums und des aktuellen Zustands von Composition und Rendering darstellen); (6) gespeicherte "Exhaust Informationen" 2420 über die Verwendung und/oder den Benutzer, ausgelegt für eine externe Übertragung; (7) Aktualisierte Budget-Informationen 2421; (8) Inhalt 2422; (9) Informationen über aktive Inhalts kassen 2423; und (10) Identifizierung aktiver Benutzer 2424, einschließlich identifizierungscharakteristische Informationen. iii. NVRAM 2425 (z. B. Flash-Speicher). Dieser Speichertyp kann Informationen aufnehmen, die zwar persistent, aber änderbar sind, einschließlich wenigstens einiger der folgenden: (1) Budget-Informationen 2426; (2) Benutzerinformationen 2427, wie z. B. Identifizierung, Kreditkartennummern; bevorzugte Clearinghäuser und andere Handelsgebrauchssysteme; (3) Benutzerpräferenzen 2428, wie z. B. Präferenzen, Profile und/oder Attributinformationen; und (4) Geräteinformationen 2429, wie z. B. Attributions- und/oder Zustandsinformationen.
  • Die oben beschriebenen und im CMPS-Speicher 2405 gespeicherten Arten von Informationen können in Alternativen zu den obigen Speicherarten gespeichert werden, beispielsweise können bestimmte Budget-Informationen im ROM untergebracht werden, Informationen über ein oder mehrere spezielle Clearinghäuser können im ROM gespeichert werden, bestimmte aktive Informationen können in das NVRAM bewegt werden, etc.
  • Budget-Informationen können gespeicherte Budgets enthalten, die beispielsweise bestehen aus:
    • (1) Electronic Cash
    • (2) vorautorisierte Benutzungen (z. B. basierend auf einer Vorauszahlung, hat der Benutzer das Recht, 12 Stunden Programm zu sehen).
    • (3) Sicherheitsbudgets, die mit Mustern in Bezug stehen, die eine unnormale und/oder unberechtigte Nutzung wie sie beispielsweise in dem aufgenommenen Shear-Patent beschrieben ist, wiederspiegeln, wobei solche Budgets ein bestimmtes kumulatives Nutzungsverhalten einschränken und/oder darüber Bericht erstatten.
    • (4) elektronischen Kredit, einschließlich eines Kredits, der sich aus Nutzungsevents ergibt, wie z. B. die Beachtung von Werbematerialien und/oder das Abspielen mehrerer Werke von einer oder mehreren Klassen von Werken (z. B. die Werke eines bestimmten Herausgebers) führen zu einem Kredit oder einer Rückerstattung und/oder einem Rabatt beim zukünftigen Abspielen eines oder mehrerer solcher Werke eines Herausgebers, wie z. B. andere von diesem Herausgeber angebotene Werke.
  • Benutzerinformationen können die folgenden Arten von Informationen für einen oder mehrere autorisierte Benutzer des Handelsgeräts umfassen:
    • (1) Name, Adresse, Telefonnummer, Sozialversicherungsnummer oder eine andere Identifikation
    • (2) Informationen, die zum Authentifizieren des Benutzers verwendet werden und ein vom Benutzer gewähltes Passwort und/oder biometrische Daten, wie z. B. Fingerabdrücke, Netzhautdaten, etc., enthalten können.
    • (3) Öffentliches/Privates Schlüsselpaar des Benutzers
    • (4) Benutzerattribut- und/oder Profilinformationen. iv. ein entfernbarer Speicher 2430. Darunter können alle Arten von Speichervorrichtungen mit entfernbaren Speichern fallen, wie z. B. Smartcards, Floppydisks oder DVD-Disks. Wenn das Handelsgerät dazu bestimmt ist, einen Inhalt abzuspielen, der auf Vorrichtungen mit entfernbaren Speichern empfangen wird (z. B. ein DVD-Player), kann diese Fähigkeit für Zwecke des CMPS verwendet werden.
  • Der Speicher 2405 kann eine geschützte Datenbank enthalten, in der bestimmte Kontroll-, Budget-, Prüfungs-, Sicherheits- und/oder kryptographische Informationen in einem Sicherheitsspeicher gespeichert sind, wobei die vollständigen Informationen auf verschlüsselte Weise in einem ungesicherten Speicher gespeichert sind.
    • (d) Verschlüsselungs-/Entschlüsselungsengine 2431. Das CMPS 2401 muss eine Möglichkeit zum Entschlüsseln empfangener Informationen enthalten, einschließlich Inhalt und CMPOs und/oder andere. Das CMPS 2401 kann ferner eine Möglichkeit zum Entschlüsseln von Informationen enthalten, wenn diese Informationen außerhalb der sicheren Grenzen des CMPS 2401 übertragen werden sollen. Dies kann so genannten Exhaust umfassen, der an Clearinghäuser oder andere externe Repositorien gesendet wird, und Inhalt, der über ungesicherte Busse zur Nutzung gesendet wird, wie z. B. ein Inhalt, der über den IEEE 1394 seriellen Bus 2432 an eine Zentralverarbeitungseinheit eines Computers oder an eine Sichtvorrichtung, wie z. B. einen Monitor, gesendet wird, wobei ein empfangendes CMPS verwendet werden kann, um die Nutzung dieses Inhalts zu kontrollieren, einschließlich beispielsweise der Ent schlüsselung dieses Inhalts je nach Eignung. Die Verschlüsselungs/Entschlüsselungsengine 2431 kann einen Zufallszahlgenerator 2433 enthalten, der zur Erzeugung von Schlüsseln oder Schlüsselpaaren verwendet wird, die zum Identifizieren und Sicherstellen der Einzigartigkeit der CMPSs verwendet werden können und die Öffnung sicherer Kommunikationskanäle zwischen solchen Anordnungen aus sicherer Inhaltskontrolle und sicherer Verschlüsselung/Entschlüsselung stützen.
    • (e) Sichere Uhr/sicherer Kalender (engl.: Secure Clock/Calendar) 2434. Das CMPS 2401 kann eine sichere Uhr/sicheren Kalender enthalten, die dafür ausgelegt sind, absolute Informationen über das Datum und die Tageszeit, Informationen über die verstrichene absolute Zeit und/oder relative Zeitgebungsinformationen zu liefern, die dazu verwendet werden, die verstrichene Zeit von Operationen zu bestimmen, die von dem System ausgeführt wurden. Das Element sichere Uhr/sicherer Kalender 2434 kann eine Stützbatterie 2435 enthalten. Ferner kann ein Synchronisationsmechanismus 2436 zur Synchronisation mit äußeren Zeitgebungsinformationen vorhanden sein, der dazu verwendet wird, im Falle eines Stromausfalls die korrekte Zeit wiederherzustellen und/oder auf einen unbefugten Eingriff hin zu überprüfen.
    • (f) eine Schnittstelle 2437 zu Blöcken, die zum Inhaltsrendering und zur Inhaltsanzeige verwendet werden. Diese Schnittstelle wird zur Kontrolle von Rendering und Anzeige auf der Basis von Regeln verwendet und zum Erhalten von Feedback-Informationen, die für Budgetierungszwecke oder zur Informationsbereitstellung an externe Server verwendet werden können (z. B. Informationen darüber, welcher Inhalt tatsächlich angezeigt wurde, welche Auswahl der Benutzer getroffen hat, etc.) Im Falle eines MPEG-4 Players, wie er in 23 gezeigt ist, kann diese eine Kontrolle über eine Handelsgerät-Schaltung umfassen, die beispielsweise die Pufferung, den Szenenbeschreibungsgraphen, den AVO-Decode, Objektdeskriptoren und Composite und Rendering steuert (z. B. Kontrollleitungen 2310, 2311 und 2312).
  • Der Rückkopplungspfad 2313 aus dem Composite-und-Render-Block 2309 kann dem CMPS 2302 ermöglichen, zu bestimmen, ob und wann der Inhalt tatsächlich für den Zuschauer freigegeben wurde. Beispielsweise kann der Composite-und-Render-Block 2309 ein Startevent an das CMPS 2302 ausgeben, wenn ein AVO- Objekt zum Sehen freigegeben wird, und kann ein Stoppevent an das CMPS 2302 ausgeben, wenn das AVO-Objekt nicht mehr gesehen wird.
  • Die Rückkopplung aus dem Composite-und-Render-Block 2309 kann auch dazu verwendet werden, um einen unbefugten Eingriff zu erfassen, indem man dem CMPS 2302 ermöglicht, die Identifizierung der Objekte, die tatsächlich zum Sehen freigegeben werden, mit der Identifizierung der Objekte, die zur Freigabe autorisiert sind, abzugleichen. Die Start- und die Endzeit können auch mit der erwarteten verstrichenen Zeit verglichen werden, wobei eine Nichtübereinstimmung möglicherweise das Auftreten eines nicht autorisierten Events anzeigt.
  • In einem Ausführungsbeispiel kann das folgende Protokoll für Rückkopplungsdaten verwendet werden:
    start <id>, T, <instance number><clock time><rendering options>
  • Wird gesendet, wenn der elementare Strom <id> in dem SD-Graphen zur Zeit T erreichbar ist, aber nicht zur Zeit T-1.
    end <id>, T, <instance number><clock time><rendering options>
  • "T" stellt die Präsentationszeit dar, "clock time" stellt die Echtzeit dar, einschließlich Informationen über Tag und Datum, und "rendering options" können solche Informationen wie QoS und Spielrate (z. B. schneller Vorlauf) enthalten.
  • Wird gesendet, wenn der elementare Strom <id> in dem SD-Graph zur Zeit T-1 erreichbar ist, aber nicht zur Zeit T. Ein SD-Graphen-Stream ist erreichbar, wenn während des Durchlaufens des SD-Graphen zwecks Display-Update der Renderer auf einen Knoten trifft, den der SD-Graph update stream <id> erzeugt oder modifiziert hat. Dies bedeutet, dass alle Knoten im Baum eine Update-History-Liste benötigen. Diese Liste muss nicht so groß wie die Anzahl der Ströme sein. Außerdem kann sie markiert sein, um anzuzeigen, ob das CMPS nach einem Strom sucht, ist sie nicht markiert, wird sie sie nicht aufzeichnen. Ein AV Elementary Stream ist erreichbar, wenn der Inhalt des Stroms gerendert wurde.
  • Bei SD-Graphen-Update Streams wird die Objekt-Instanz-Nummer ignoriert. Bei AV-Strömen kann die Instanznummer verwendet werden, um den Fall zu disam biguieren, bei dem die Anzeige gleichzeitig zwei oder mehr Instanzen des gleichen Datenstroms zeigt. Die Instanz-Nummern müssen nicht hochzählen. In diesem Fall sind sie eine einzigartige id, die dem CMPS ermöglicht, ein Startevent mit einem Endevent abzugleichen.
  • In einem zweiten Ausführungsbeispiel kann das CMPS 2302 spezielle Hardware in Kombination mit Universalhardware enthalten, die auch für andere Funktionen der Vorrichtung eingesetzt wird. In diesem Ausführungsbeispiel muss darauf geachtet werden, dass gewährleistet wird, dass kommerziell vertrauenswürdige CMPS-Funktionen trotz der Verwendung von Universalhardware sicher und manipulationsgeschützt ausgeführt werden. Jedes der oben genannten Elemente kann speziell zugeschnittene CMPS-Funktionen und Universalvorrichtungsfunktionen enthalten:
    • (a) CPU/Mikrokontroller. Dieser kann ein oder mehrere Vorrichtungen enthalten. Wenn mehr als eine Vorrichtung enthalten ist (z. B. eine CPU und eine DSP, ein mathematischer Koprozessor oder ein Handelskoprozessor), können diese Vorrichtungen innerhalb der gleichen Baugruppe enthalten sein, die manipulationssicher gemacht werden kann, oder die Vorrichtungen können auf einem sicheren Bus kommunizieren. Die CPU kann zwei Moden umfassen: einen sicheren CMPS-Modus und einen nicht sicheren Universalmodus. Der sichere CMPS-Modus kann die Adressierung sicherer Speicherstellen ermöglichen, die dem Prozessor im Universalmodus nicht zur Verfügung stehen. Dies kann beispielsweise durch eine Schaltung erreicht werden, die einen Teil des zur Verfügung stehenden Speicherplatzes neu zuordnet (engl.: remap), so dass die CPU im nicht sicheren Modus keine sicheren Speicherstellen adressieren kann.
    • (b) Externe Kommunikationsports. Wenn die Vorrichtung, beispielsweise ein Handelsgerät, in der Lage ist, Inhalt oder andere Informationen über einen Kommunikationsport zu empfangen (z. B. ein Kabelanschluss, ein Internetanschluss), kann dieser Kommunikationsport für CMPS-Zwecke verwendet werden. In einem solchen Fall ist der CMPS-Zugriff auf den externen Kommunikationsport vorzugsweise dafür ausgelegt, eine Interferenz mit der Nutzung eines solchen Ports für den Empfang von Inhalt zu vermeiden oder auf ein Minimum herabzusetzen.
    • (c) Speicher. Bei einigen Anwendungen und Ausführungsbeispielen ist es möglich, ein Handelsgerät ohne NVRAM zu betreiben, wobei Informationen, die für die CMPS-Operation erforderlich wären und das NVRAM verwenden würden, je nach Bedarf in das RAM geladen würden. Das ROM, das RAM und das NVRAM können zwischen CMPS-Nutzungen und allgemeinen Nutzungen aufgeteilt werden. Dies kann auf eine der folgenden Arten oder in einer Kombination dieser Arten erfolgen: (1) ein Teil des Speicherplatzes kann für allgemeine Nutzungszwecke gesperrt werden, beispielsweise durch neue Zuordnung (remapping); (2) der gesamte Speicher wird sicher gemacht, so dass selbst Teile des Speichers, die für nicht sichere Zwecke verwendet werden, nur auf sichere und autorisierte Weise beobachtet oder verändert werden können; (3) CMPS-Informationen können verschlüsselt gespeichert werden, obgleich dies erfordert, dass zumindest ein Teil des RAMs sicher ist, da das CMPS einen direkten Zugriff auf nicht verschlüsselte Informationen, die im RAM gespeichert sind, fordern wird.
    • (d) Verschlüsselungs-/Entschlüsselungsengine. Verschlüsselungs- und Entschlüsselungsfunktionen, einschließlich der Schlüsselerzeugung können durch Spezialsoftware gehandhabt werden, die auf einer Universalprozessoranordnung läuft, insbesondere beispielsweise ein Fließkommaprozessor oder eine DSP-Anordnung. Diese Prozessoranordnung kann auch für Zwecke der Dekomprimierung und der Anzeige von Inhalt und/oder zur Bearbeitung beim Einfügen und/oder Lesen von Watermarking/Fingerprinting verwendet werden. Alternativ dazu kann die Vorrichtung systemeigene Verschlüsselungs- und Entschlüsselungsfunktionen enthalten. Beispielsweise können verschiedene neuere Standards zumindest einen gewissen Grad an Verschlüsselung und Entschlüsselung des Inhalts erfordern, der dazu bestimmt ist, über nicht sichere Busse innerhalb der und zwischen den Vorrichtungen, wie z. B. DVD-Playern, geleitet zu werden, wie beispielsweise der "Fünf-Firmen-Vorschlag" und andere IEEE 1394 verwandte Initiativen. Schaltungen, die zum Durchführen solcher Ver- und Entschlüsselungen entworfen wurden, können auch für CMPS-Anwendungen nutzbar sein.
    • (e) Sichere Uhr/sicherer Kalender. Die zugrunde liegende Vorrichtung kann bereits zumindest einige Uhrzeit-Informationen erfordern. MPEG-4 erfordert beispielsweise die Nutzung von Uhrzeit-Informationen zur Synchronisierung der Elementary Streams. Eine sichere CMPS-Uhr kann ebenfalls für solche Zwecke verwendet werden.
  • In einem dritten Ausführungsbeispiel kann das CMPS 2302 hauptsächlich Software sein, die dafür entwickelt wurde, auf einer Universalvorrichtung zu laufen, die bestimmte minimale sicherheitsspezifische Merkmale enthalten kann. In einem solchen Fall kann das CMPS 2302 auf dem gleichen Kanal wie der Inhalt oder in einem Seitenband-Kanal empfangen werden. Ein I-CMPO und/oder andere CI können eine bestimmte Art von CMPS spezifizieren, das das Handelsgerät 2301 entweder haben oder erwerben muss (z. B. von einer Stelle herunterladen, die von dem I-CMPO spezifiziert wurde), oder das CMPS 2302 kann beispielsweise in einem I-CMPO enthalten sein.
  • Ein Software-CMPS läuft auf der CPU des Handelsgerätes. Dieser Ansatz kann von Natur aus weniger sicher sein als die Verwendung speziell zugeschnittener Hardware. Wenn das Handelsgerät sichere Hardware enthält, kann das Software-CMPS ein herunterladbares OS und/oder BIOS darstellen, das die Hardware an eine bestimmte Art von Handelsgerät anpasst.
  • In einem Ausführungsbeispiel kann ein Software-CMPS ein oder mehrere Software-Manipulationsschutzmittel verwenden, die die Software materiell "hart machen" (engl.: to harden) werden. Diese Mittel enthalten Software-Obfuskationsverfahren, die Algorithmusmittel verwenden, um es sehr schwer zu machen, mittels Reverse-Engineering-Methoden einen Teil oder das gesamte CMPS zu analysieren, und es ferner schwierig machen, aus einem oder mehreren CMPSs, an denen Reverse-Engineering-Methoden anwendet wurden, allgemeine Schlüsse zu ziehen. Eine solche Obfuskation ist vorzugsweise unabhängig vom Quellencode, und der Objektcode kann für verschiedene CMPSs und verschiedene Plattformen unterschiedlich sein, wodurch weitere Komplexitäten und eine Trennung der Rollen hinzukommen. Eine solche Obfuskation kann "unabhängig" sowohl bei CI, wie z. B. ein CMPO, als auch bei einigen oder allen der CMPSs selbst angewandt werden, wodurch sowohl die Verarbeitungsumgebung als auch der ausführbare Code für einen Prozess unverständlich gemacht werden. Der Ansatz kann auch bei den oben beschriebenen integrierten Software- und Hardware-Implementations-CMPS-Implementierungen angewendet werden. Andere Manipulationsschutzmittel können ebenso verwendet werden, einschließlich der Verwendung von so genannten "Hiding places" zum Speichern bestimmter Zustandsinformationen an obskuren und unerwarteten Stellen, wie z. B. Stellen im NV-Speicher, die für andere Zwecke verwendet werden, sowie andere Verfahren zum Verbergen von Daten, wie beispielsweise Watermarking/Fingerprinting.
  • Zuordnung eines CMPS zu einem Handelsgerät
  • Ein CMPS kann an eine bestimmte Vorrichtung permanent angehängt oder teilweise oder vollständig entfernbar sein. Ein entfernbares CMPS kann eine Software enthalten, die sicher in ein Handelsgerät geladen wird, und/oder entfernbare Hardware. Ein entfernbares CMPS kann für einen oder mehrere bestimmte Benutzer benutzerspezifisch ausgelegt sein, einschließlich Benutzerschlüssel, Budget-Informationen, Präferenzen, etc., und dadurch verschiedenen Benutzern ermöglichen, das gleiche Handelsgerät zu verwenden, ohne Budgets und/oder andere Rechte zu vermischen, etc.
  • Ein CMPS kann für den Betrieb mit bestimmten Arten von Inhalt und/oder für den Betrieb mit bestimmten Arten von Geschäftsmodellen ausgerichtet sein. Ein Handelsgerät kann mehr als eine Art von CMPS enthalten. Beispielsweise kann ein Handelsgerät, das dafür ausgelegt ist, Inhalt gemäß verschiedenen Standards zu akzeptieren und anzuzeigen, ein CMPS für jede Art von Format enthalten. Darüber hinaus kann ein Handelsgerät ein CMPS enthalten, das von einem bestimmter Anbieter bereitgestellt wird und dafür ausgelegt ist, vorzugsweise bestimmte Arten von Inhalt anzuzeigen und vorzugsweise für solchen Inhalt über einen bestimmten Kanal abzurechnen (z. B. Abrechnung auf eine oder mehrere bestimmte Kreditkarten und/oder die Verwendung eines oder mehrerer bestimmter Clearinghäuser).
  • Quelle der Regeln
  • Das CMPS muss diejenigen Regeln erkennen, die auf einen bestimmten Inhalt anzuwenden sind. Solche Regeln können von dem CMPS aus einer Vielzahl von Quellen empfangen werden, je nach dem besonderen Ausführungsbeispiel, das verwendet wird:
    • (a) CMPO. Die Regeln können in einem CMPO (z. B. dem CMPO 2303) und/oder anderen CI enthalten sein. Das CMPO und/oder andere CI können in einem Inhaltsobjekt oder -strom enthalten sein (wie beispielsweise ein Header auf einem MPEG-4 ES), und/oder können in einem speziellen Inhaltsobjekt oder -strom enthalten sein, der gemäß dem zugrunde liegenden Standard kodiert und empfangen wird (z. B. ein MPEG-4 CMPO ES), und/oder können außerhalb des normalen Inhaltsstroms empfangen werden, in welchem Fall sie nicht gemäß dem zugrunde liegenden Standard kodiert sein müssen (z. B. ein CMPS, das als verschlüsseltes Objekt über einen Seitenband-Kanal empfangen wurde).
    • (b) CMPS. Die Regeln können permanent und/oder persistent in einem CMPS gespeichert sein, z. B. die Regeln 2409. Ein CMPS kann Default-Regeln enthalten, die dafür ausgelegt sind, bestimmte Situationen handzuhaben, beispielsweise, wenn kein CMPO und/oder andere notwendige CI empfangen wird (z. B. Inhalt, der unter einer früheren Version des Standards kodiert wurde, der keine CMPOs enthielt, einschließlich MPEG-4 Version 1). Die kompletten Regeln, die im CMPS gespeichert sind, können direkt oder indirekt von einem CMPO und/oder anderen CI aufgerufen werden. Dies kann durch die CI erfolgen, die bestimmte Regeln durch einen Pointer identifizieren und/oder es kann durch die CI erfolgen, die sich selbst und die allgemeine Klasse der Kontrolle, die sie benötigt, identifiziert, wobei das CMPS dann besondere Regeln anwendet, die für dieses CMPS spezifisch sind. Regel-"Grundelemente" können ebenfalls in dem CMPS gespeichert werden (z. B. Kontrollgrundelemente 2410). Das CMPO und/oder andere CI können diese Grundelemente aufrufen, indem eine Sequenz aus makroartigen Befehlen aufgenommen wird, von denen jeder eine Sequenz von CMPS-Grundelementen auslöst.
    • (c) Benutzer. Der Benutzer kann die Möglichkeit erhalten, Regel zu erstellen, die sich auf die Präferenzen eines bestimmten Benutzers beziehen. Solche Regeln werden im allgemeinen zugelassen, um die Nutzung des Inhalts weiter zu beschränken, jedoch die Nutzung des Inhalts nicht über das hinaus, was andernfalls erlaubt wäre, auszudehnen. Beispiele umfassen: (a) Regeln, die dafür ausgelegt sind zu fordern, dass auf bestimmte Arten von Inhalt (z. B. Filme für Erwachsene) nur nach Eingabe eines Passwortes und/oder nur von bestimmten CMPS-Benutzer zugegriffen werden kann (z. B. Erwachsene, keine Kinder, wie beispielsweise von Eltern und/oder einer öffentlichen Anstalt, wie z. B. einer Behörde, spezifiziert); (b) Regeln, die dafür ausgelegt sind zu fordern, dass es nur bestimmten Benutzern gestattet ist, Operationen aufzurufen, die eine Zahlung über ein bestimmtes Limit hinaus und/oder eine Sammelzahlung über einen bestimmten Betrag erfordern. Dem Benutzer kann es erlaubt sein, Regelmuster zu erzeugen, wie dies in der vorgenannten Patentanmeldung '333 von Ginter beschrieben ist (und hier aufgenommen ist). Darüber hinaus kann eine CMPS-Anordnung und/oder ein bestimmtes CMPO und/oder andere CI die Regeln einschränken, die ein Benutzer spezifizieren darf. Beispielsweise kann ein CI spezifizieren, dass ein Benutzer zwar ein Werk kopieren, aber dem Werk keine Regeln hinzufügen kann, die die Möglichkeit eines Empfängers beschränken, zusätzliche Kopien herzustellen (oder sehen zu dürfen, aber erst nach erfolgter Zahlung an den ersten Benutzer). Eine oder mehrere vom Benutzer zugeführte Regeln können die Verwendung – einschließlich damit verbundener Datenschutzbeschränkungen – von Zahlungs-, Prüfungs-, Profilerstellungs-, Präferenz- und anderen Arten von Informationen steuern (z. B. Informationen, die sich als Konsequenz der Nutzung einer CMPS-Anordnung ergeben, einschließlich beispielsweise der Nutzung eines gesicherten Inhalts). Eine oder mehrere solche vom Benutzer zugeführte Regeln können dem Benutzer und/oder einem oder mehreren Handelsgeräten in einer Benutzeranordnung zugeordnet werden, ganz gleich ob die Informationen gemäß einem oder mehreren Kriterien aggregriert wurden oder nicht und ob die Benutzer- und/oder die Geräteidentifikationsinformationen während der Aggregation und/oder dem anschließenden Berichten, Verteilen oder irgendeiner anderen Art der Nutzung entfernt wurden oder nicht. Die Möglichkeit, dem Benutzer zu gestatten, Regeln zu spezifizieren, ermöglicht dem CMPS V-Chips einzuordnen (und dadurch zu ersetzen), da ein Elternteil Inhaltsbewertungsinformationen verwenden kann, um genau zu spezifizieren, welche Arten von Informationen jeder Zuschauer sehen darf (z. B. kann gewaltsamer Inhalt nur nach Eingabe eines bestimmten Passwortes und/oder eines anderen Identifikators angezeigt werden, einschließlich beispielsweise dem Einfügen einer entfernbaren Hardware-Karte (Smartcard oder Rechtekarte), die ein Benutzer besitzt).
    • (d) Externe Netzwerkquelle. Die Regeln können auf einem externen Server gespeichert werden. Die Regeln können bei Bedarf von dem CMPS adressiert und herunter geladen werden (z. B. enthält entweder das CMPO und/oder andere CI und/oder das CUTS einen Pointer auf eine bestimmte oder mehrere Regelorte, wie z. B. eine oder mehrere URLs). Darüber hinaus können Inhaltsanbieter und/oder Clearinghäuser Regeln übermitteln, die für eine allgemeine Anwendbarkeit ausgelegt sind. Beispielsweise kann ein Inhaltsanbieter einen Satz Regeln übermitteln, der jedem Benutzer einen Rabatt bietet, der an einem Werbeevent teilnimmt (z. B. durch Bereitstellen bestimmter Benutzerinformationen). Derartige Regeln könnten von allen angeschlossenen Vorrichtungen empfangen werden, könnten von bestimmten Vorrichtungen empfangen werden, die von dem Inhaltsanbieter als interessant identifiziert wurden (z. B. die letzten Zuschauer eines bestimmten Programms, wie dies durch Exhaust-Informationen, die von dem CMPS an ein Clearinghaus geliefert wurden, identifiziert wurde, und/oder alle Mitglieder, die bestimmte Identitätsmerkmale haben, wie die Mitglieder einer oder mehrerer Klassen) und/oder an zentralen Stellen bekannt gegeben werden.
  • Beispielhafte Ausführungsform
  • In einem Ausführungsbeispiel kann ein Werk aus einem Satz von MPEG-4 Elementary Streams bestehen. Die Elementary Streams können verschlüsselt und gemultiplext sein, um einen so genannten Datenverbund-Strom (engl.: Aggregate Stream) zu bilden. Ein oder mehrere CMPOs können in einem solchen Strom vorhanden oder diesem Strom anderweitig zugeordnet sein. Die Möglichkeiten sind wie folgt:
    • 1. Der Inhalt kann gestreamt sein oder kann in Form statischer Datenstrukturen empfangen werden.
    • 2. Ein Werk kann aus einem einzigen Strom oder einer einzigen Datenstruktur oder aus vielen einzeln adressierbaren Strömen oder Datenstrukturen, die jeweils ein Objekt darstellen können, bestehen.
    • 3. Wenn ein Werk aus einzeln adressierbaren Strömen oder Datenstrukturen besteht, können diese Ströme oder Datenströmen zu einem Datenverbund-Strom gemultiplext oder einzeln empfangen werden.
    • 4. Wenn Ströme oder Datenstrukturen zu einem Datenverbund-Strom gemultiplext werden, können die Ströme oder Datenstrukturen vor einem solchen Multiplexen verschlüsselt werden. Der Datenverbund-Strom selbst kann verschlüsselt werden, ganz gleich ob die zugrunde liegenden Ströme oder Datenstrukturen verschlüsselt werden. Es gibt daher folgende Möglichkeiten: (a) einzelne Ströme/Datenstrukturen sind nicht verschlüsselt (im Klartext), der Datenverbund-Strom ist unverschlüsselt; (b) einzelne Ströme/Datenstrukturen sind vor dem Multiplexen nicht verschlüsselt, der Datenverbund-Strom wird nach dem Multiplexen verschlüsselt, (c) einzelne Ströme/Datenstrukturen sind vor dem Multiplexen verschlüsselt, der Datenverbund-Strom wird nach dem Multiplexen nicht verschlüsselt, oder (d) einzelne Ströme/Datenstrukturen werden vor dem Multiplexen verschlüsselt, der Datenverbund-Strom wird nach dem Multiplexen verschlüsselt.
    • 5. Ein CMPO kann einem Kanal (CCMPO), einem Werk (MCMPO) oder einem einzelnen Objekt (CMPO) zugeordnet sein.
    • 6. Ein CMPO kann vor den kontrollierten Daten, gleichzeitig mit den Daten oder nach den Daten empfangen werden (wobei dann die Verwendung der Daten warten muss, bis das CMPO empfangen wurde).
    • 7. Ein CMPO kann als Teil eines Datenverbund-Stroms oder getrennt empfangen werden.
    • 8. Wird ein CMPO als Teil des Datenverbund-Stroms empfangen, kann er zusammen mit den einzelnen Strömen oder Datenstrukturen gemultiplext werden oder einen getrennten Strom bzw. eine getrennte Datenstruktur darstellen.
    • 9. Wenn ein CMPO innerhalb des Datenverbund-Stroms gemultiplext ist, kann es verschlüsselt oder nicht verschlüsselt werden. Falls es verschlüsselt wird, kann es vor dem Multiplexen verschlüsselt werden und/oder es kann nach dem Multiplexen verschlüsselt werden, wenn der gesamte Datenverbund-Strom verschlüsselt wird.
    • 10. Wenn ein CMPO als Teil des Datenverbund-Stroms empfangen wird, kann es (a) ein Teil des Stroms oder der Datenstruktur sein, die den Inhalt enthält (z. B. ein Header); (b) ein getrennter Strom bzw. eine getrennte Datenstruktur, die gemäß dem gleichen Format wie die Ströme oder Datenstrukturen, die den Inhalt enthalten, kodiert werden (z. B, ein MPEG-4 ES) oder (c) ein getrennter Strom bzw. eine getrennte Datenstruktur, die unter einem anderen Format, das für CMPOs entwickelt wurde, kodiert wurde.
    • 11. Wenn ein CMPO ein Teil des Stroms oder der Datenstruktur ist, die den Inhalt enthält, kann es (a) ein Header sein, der einmal empfangen wird und dann persistent zur Kontrolle des Inhalts gehalten wird, (b) ein Header, der in regelmäßigen Abständen innerhalb des Stroms oder der Datenstruktur empfangen wird, oder (c) Daten, die über den Strom oder die Datenstruktur verteilt sind.
  • Diese unterschiedlichen Szenarien führen zu verschiedenen Anforderungen an ein Demultiplexen und Entschlüsseln der CMPOs. Die 25 zeigt das folgende Ausführungsbeispiel:
    • 1. Der Datenverbund-Strom 2501 besteht aus gemultiplexten Elementary Streams (z. B. ES 2502 und 2503). Eine Kombination solcher ESs bildet ein einzelnes Werk. Der Datenverbund-Strom 2501 wird von einem Kabel-Aggregator erzeugt und von einer Set-Top-Box eines Benutzers als einer von vielen Kanälen empfangen.
    • 2. CCMPOs 2504, die jedem Kanal entsprechen, werden entlang des Kabels im Header 2505 in regelmäßigen Abständen (z. B. einmal pro Sekunde) gesendet. Wenn die Set-Top-Box eingeschaltet wird, ruft sie jeden Kanal auf und lädt alle aktuellen CCMPOs herunter. Diese werden persistent gespeichert und nur geändert, wenn ein neues CCMPO empfangen wird, das sich von den früheren CCMPOs unterscheidet.
    • 3. Wenn der Benutzer einen Kanal auswählt, adressiert die Set-Top-Box das dazugehörige CCMPO. Das CCMPO kann beispielsweise spezifizieren, dass auf einen Inhalt in diesem bestimmten Kanal nur von Teilnehmern dieses Kanals zugegriffen werden darf. Ein CMPS innerhalb der Set-Top-Box greift auf ein Benutzerprofil zu, das persistent im NVRAM gespeichert ist, und bestimmt, dass der Benutzer ein Teilnehmer ist. Das CMPS erachtet die CCMPO-Regel als erfüllt.
    • 4. Das CMPS erhält einen Identifikator für das MCMPO, das dem Werk (Video), das derzeit auf dem Kanal gestreamt wird, zugeordnet ist und einen Schlüssel für das MCMPO. Wenn Werke seriell auf dem Kanal empfangen werden (z. B. ein Fernsehkanal, in dem gleichzeitig immer ein Werk bereitgestellt wird), kann der empfangene MCMPO-Identifikator so genannte "Don't-Care-Bits" enthalten, so dass er jedes MCMPO adressieren kann, das derzeit auf dem Kanal ist.
    • 5. Das CMPS beginnt mit dem Demultiplexen des Datenverbund-Stroms 2501 (dies kann parallel zum vorherigen Schritt erfolgen) und erhält das MCMPO, das in einen ES kodiert ist, der in den Datenverbund-Strom gemultiplext ist (z. B. MCMPO 2506). Obgleich jeder ES innerhalb des Datenverbund-Stroms 2501 verschlüsselt wurde, wurde der Datenverbund-Strom 2501 nach dem Multiplexen nicht verschlüsselt. Dies ermöglicht dem CMPS, den Datenverbund-Strom 2501 zu demultiplexen, ohne dabei den gesamten Datenverbund-Strom zu entschlüsseln.
    • 6. Das CMPS identifiziert den ES, der das MCMPO darstellt (z. B. ES 2503). Das CMPS lädt eine komplette Instanz des MCMPO 2506 in einen internen Puffer und verwendet den aus dem CCMPO 2504 empfangenen Schlüssel zum Entschlüsseln des MCMPOs 2506.
    • 7. Das CMPS bestimmt, welche Regeln von dem MCMPO 2506 angewendet werden. Das MCMPO 2506 kann beispielsweise eine Regel enthalten, die angibt, dass der Benutzer das dazugehörige Werk mit Werbespots zu niedrigen Gebühren sehen darf, jedoch eine höhere Gebühr zahlen muss, um das Werk ohne Werbespots zu sehen.
    • 8. Das CMPS erzeugt ein Optionen-Menu und zeigt dieses Menu für den Benutzer auf dem Bildschirm an. Das Menu spezifiziert die Optionen, einschließlich der Gebühren für jede Option. Zusätzliche Optionen können spezifiziert werden, einschließlich Zahlungsarten.
    • 9. Der Benutzer verwendet ein ferngesteuertes Zeigegerät, um auszuwählen, dass er das Werk zu einer niedrigeren Gebühr jedoch mit Werbespots sehen möchte. Der Benutzer spezifiziert, dass die Zahlung von einem Electronic-Cash-Budget erfolgen kann, das in dem CMPS gespeichert ist.
    • 10. Das CMPS zieht den spezifizierten Betrag von dem persistent im NVRAM gespeicherten Budget ab und erzeugt und verschlüsselt eine Nachricht an einen Server, der dem Kabel zugeordnet ist. Die Nachricht überträgt das erforderliche Budget an den Server, entweder durch ein Übertragen von Electronic Cash oder durch Autorisieren eines Finanz-Clearinghauses, den Betrag vom Konto des Benutzers auf das Konto des Kabelanbieters zu übertragen. Diese Nachricht kann unmittelbar gesendet oder gepuffert werden, um später gesendet zu werden (z. B. wenn der Benutzer die Vorrichtung ans Internet anschließt). Dieser Schritt kann parallel zur Entschlüsselung des Inhalts erfolgen.
    • 11. Das CMPS erhält von dem MCMPO 2506 einen Satz Schlüssel, der zum Entschlüsseln der dem Werk zugeordneten Elementary Streams (z. B. ES 2502) verwendet wird. Das CMPS erhält ferner Identifikatoren für die spezifischen, zu verwendenden ESs. Da der Benutzer angegeben hat, dass Werbespots aufgenommen werden sollen, identifiziert das MCMPO ESs, die Werbespots zugeordnet sind, und identifiziert einen Szenenbeschreibungs-Graphen der Werbespots enthält. Ein Szenenbeschreibungs-Graph, der keine Werbespots enthält, wird nicht identifiziert und wird von dem CMPS nicht weitergeleitet.
    • 12. Das CMPS verteilt die entschlüsselten ESs an die MPEG-4 Puffer. Der normale Prozess von MPEG-4 Decodierung, Compositing und Rendering findet statt. Der Composite und Render-Block gibt Start- und Stoppevents für jedes Objekt aus, das zum Sehen freigegeben wurde. Das CMPS überwacht diese Informationen und vergleicht sie mit erwarteten Events. Insbesondere bestätigt das CMPS, dass die Werbespots zum Sehen freigegeben wurden und dass jede Operation ungefähr die erwarte Zeit in Anspruch genommen hat.
  • In einem anderen Ausführungsbeispiel kann eine Set-Top-Box, die ein CMPS (z. B. das CMPS 2302 aus 23) enthält, einen Kabeleingang haben (der z. B. M4 Bitströme 2314 und CMPOs mit sich führt). Das Kabel kann mehrfache Kanäle mit sich führen, die jeweils aus zwei Unterkanälen bestehen, wobei ein Unterkanal MPEG-4 ESs (z. B. die M4 Bitströme 2314) mit sich führt und der andere Unterkanal die CMPOs (z. B. die CMPOs 2303) trägt. Der die CMPOs 2303 mit sich führende Unterkanal kann direkt zum CMPS 2302 geleitet werden, wobei der ES-Kanal zu einem Enschlüsselungsblock geleitet wird (der unter der Kontrolle des CMPSs arbeitet, z. B. CR&D 2315) und dann zu den MPEG-4 Puffern (z. B. Puf fer, die dem Szenenbeschreibungs-Graphen 2306, dem AVO-Decode 2307 und den Objektdeskriptoren 2308 zugeordnet sind). Wenn die ESs nicht verschlüsselt sind, gelangen sie in diesem Fall unverändert durch den Entschlüsselungsblock und in die Puffer. Dies kann beispielsweise erfolgen, wenn die ESs kostenfrei übermittelt werden, ohne Beschränkungen, und/oder wenn es sich um öffentlich nutzbare Informationen handelt und/oder wenn sie vor der Aufnahme von CMPOs in den MPEG-4 Standard erzeugt wurden.
  • Ein solches Ausführungsbeispiel kann Synchronisierungsinformationen in dem CMPO-Unterkanal enthalten, so dass die CMPOs mit den zugehörigen ES synchronisiert werden können.
  • Das Konzept der Aufnahme von zwei getrennten Strömen, von denen einer aus Kontrollinformationen besteht und direkt an das CMPS angeschlossen ist, und der andere aus ESs besteht, kann einen hohen Grad an Modularisierung unterstützen, so dass die Formate der CMPOs und bestimmte Arten von CMPSs geändert werden können, ohne dass das zugrunde liegende ES-Format geändert wird. Es kann beispielsweise möglich sein, das CMPO-Format zu ändern, ohne dass es erforderlich wäre, die Inhalts-ESs neu zu formatieren. Als weiteres Beispiel kann es möglich sein, ein Handelsgerät aufzurüsten, indem man ein neues oder anderes CMPS aufnimmt, ohne dass es erforderlich wäre, irgendetwas an den Schaltungen zum Demultiplexen, Composition und Rendern der Inhalts-ESs zu ändern. Ein Benutzer kann ein CMPS auf einer Smartcard oder einer anderen entfernbaren Vorrichtung erhalten und diese Vorrichtung in ein Handelsgerät hineinstecken. Dies kann gemacht werden, um ein Handelsgerät an eine bestimmte Anwendung oder an einen bestimmten Inhalt anzupassen.
  • Eine CMPS-Schnittstelle zu einer Unterhaltungselektronik-Vorrichtung
  • Ein CMPS kann so entwickelt sein, dass es eine standardisierte Schnittstelle zwischen der Universalfunktionalität eines Unterhaltungselektronikgerätes und irgendwelchen relevanten CMPOs und/oder anderen CI und gesichertem Inhalt aufweist. Beispielsweise könnte ein CMPS so entwickelt sein, dass es CI und verschlüsselte ESs akzeptiert und entschlüsselte ESs in die Puffer der Vorrichtung ausgibt. In einem solchen Fall wäre der Hersteller des Gerätes in der Lage, das Gerät gemäß der Spezifikation (z. B. MPEG-4) zu entwickeln, ohne sich über handelsspezifische Erweiterungen gegenüber dem Standard zu sorgen, wobei sich diese Erweiterungen von Anbieter zu Anbieter unterscheiden können. Alle diese Erweiterungen würden von dem CMPS verarbeitet werden.
  • Initialisierung
  • 1. Initialisierung des CMPS.
  • Ein CMPS kann verwendet werden, um die Leistungsfähigkeiten des Handelsgerätes, in dem ein CMPS installiert ist, zu identifizieren. Ein CMPS, das einem bestimmten Handelsgerät permanent zugeordnet ist, kann solche Informationen installiert bekommen, wenn das CMPS erstmalig installiert wird (z. B. gespeichert in einem ROM 2406, das in 24 gezeigt ist). Ein entfernbares CMPS kann verwendet werden, um eine Initialisierungsoperation zu durchlaufen, um so Informationen über die Leistungsfähigkeiten der Vorrichtung zu erhalten. Solche Informationen können in einer Datenstruktur gespeichert werden, die im NVRAM 2425 gespeichert ist. Alternativ dazu können einige oder alle dieser Informationen jedes Mal gesammelt werden, wenn das Gerät eingeschaltet wird, und im RAM 2414 gespeichert werden.
  • Beispielsweise kann ein DVD-Player einen Anschluss an einen externen Server und/oder Prozess enthalten oder nicht. Ein CMPO und/oder andere CI, die auf einer DVD (und/oder einer Bildplatte eines anderen Formats) gespeichert sind, die in einen DVD (oder irgendeine Bildplatte anderen Formats)-Player eingefügt wird, können Regeln enthalten, die auf der Möglichkeit der Ausgabe von Informationen an einen Server basieren (z. B. Inhalt ist kostenfrei, wenn Benutzeridentifizierungsinformationen ausgegeben werden), oder können einen direkten Anschluss erfordern, um beispielsweise Schlüssel herunter zu laden, die zum Entschlüsseln von Inhalt verwendet werden. In einem solchen Fall kann die CMPS-Anordnung die Hardware-Funktionalität bestimmen, die von dem CMPO erwartet oder gefordert wird, und diese mit der tatsächlich vorhandenen Hardware vergleichen. Wenn das CMPS bestimmt, dass das CMPO und/oder andere CI einen Netzwerkanschluss benötigen und dass der DVD-Player diesen Anschluss nicht hat, kann das CMPS eine Vielzahl von Schritten unternehmen, einschließlich: (1) wenn der Netzwerkanschluss für einige Optionen zwar erforderlich ist, für andere jedoch nicht, werden nur solche Optionen veranlassen, die dem Benutzer angezeigt werden können, (2) Informieren des Benutzers, dass notwendige Hard ware fehlt, oder (3) Verursachen einer taktvollen Zurückweisung der Disk, einschließlich eines Informierens des Benutzers über die Gründe der Zurückweisung.
  • Als weiteres Beispiel kann ein CMPO und/oder andere CI ein Geschäftsmodell enthalten, das es dem Benutzer ermöglicht, unter Qualitätsstufen (oder anderen Formen von Variationen eines gegebenen Werkes, wie beispielsweise längere Länge und/oder höhere Optionen) zu wählen, wobei ein höherer Preis berechnet wird, wenn der Benutzer eine höhere Qualitätsstufe auswählt (z. B. Musik wird bei niedriger Auflösung kostenfrei gespielt, um jedoch bei einer höheren Auflösung gespielt zu werden, ist eine Bezahlung erforderlich). In einem solchen Fall kann es sein, dass das Handelsgerät keine Lautsprecher enthält, die in der Lage sind, Ton mit der höheren Auflösung auszugeben. Die CMPS-Anordnung identifiziert vorzugsweise diese Situation und eliminiert entweder die Ausgabe mit höherer Auflösung als Option für den Benutzer oder informiert den Benutzer darüber, dass diese Option mehr kostet, aber keinen zusätzlichen Nutzen bei der derzeitigen Funktionalität des Handelsgeräts vorsieht bzw. wenn das Handelsgerät nicht in einer Benutzeranordnung angedockt wird, die Lautsprecher höherer Qualität vorsieht.
  • Wenn das Handelsgerät an externe Vorrichtungen angeschlossen werden kann (z. B. Lautsprecher, Anzeige, etc.), wird das CMPS irgendeinen Mechanismus erfordern, um solche Vorrichtungen zu identifizieren oder zu registrieren. Jede Vorrichtung kann dazu verwendet werden, jederzeit Standard-ID-Informationen und Leistungsfähigkeitsinformationen zur Verfügung zu stellen und dadurch dem CMPS zu ermöglichen, alle angeschlossenen Vorrichtungen in regelmäßigen Zeitabständen abzurufen, einschließlich beispielsweise dem Authentifizieren von CMPS-Anordnungen in einer oder in mehreren dieser angeschlossenen Vorrichtungen. Bei Anwendung eines anderen Ansatzes könnten alle Vorrichtungen dazu verwendet werden, CMPS-Identifizierungsinformationen beim Einschalten auszugeben, wobei später angeschlossene Vorrichtungen dazu verwendet werden, solche Informationen beim Herstellen der Verbindung auszugeben. Solche Identifizierungsinformationen können beispielsweise die Form von Authentifizierungsinformationen haben, die unter der "Fünf-Firmen-Anordnung" bereitgestellt werden, wobei solche Authentifizierungsmethoden hiermit durch Bezugnahme in die vorliegende Beschreibung aufgenommen werden.
  • Wie weiter oben erläutert, kann ein Handelsgerät an mehrere Vorrichtungen angeschlossen werden, die jeweils ihre eigene CMPS-Anordnung enthalten (z. B. kann ein DVD-Player an einen Digitalfernseher angeschlossen werden). In solchen Fällen müssen die CMPSs in der Lage sein, eine sichere Kommunikation einzuleiten (z. B. unter Verwendung eines Schemas wie beispielsweise den "Fünf-Firmen-Vorschlag" für IEEE 1394 serieller Bus) und bestimmen, wie die CMPSs in Bezug auf Inhaltskommunikation zwischen den CMPSs interagieren werden und in bestimmten Ausführungsbeispielen hinsichtlich einer kooperativen Regelung eines solchen Inhalts, wie dies in der aufgenommenen Patentanmeldung von Shear beschrieben ist. In einem Ausführungsbeispiel kann die erste, Inhalt empfangende CMPS-Anordnung den Kontrollprozess durch Herunterladen eines ersten CMPO und/oder andere CI regeln und dem Benutzer eine oder mehrere der Regeln anzeigen, etc. Die zweite CMPS-Anordnung kann erkennen, dass sie keine weitere Rolle spielt, entweder als Ergebnis einer Kommunikation zwischen zwei CMPS-Anordnungen oder als Ergebnis von Veränderungen am Inhaltsstrom, die von der ersten CMPS-Anordnung erzeugt wurden (die den Inhalt entschlüsselte und möglicherweise das Demultiplexen, die Composition und das Rendering, etc. ermöglichte).
  • Die Beziehung zwischen stromaufwärtigen und stromabwärtigen CMPS-Anordnungen kann kompliziert sein, wenn eine Vorrichtung bestimmte Aspekte des MPEG-4 Rendering vornimmt und die andere andere Aspekte verarbeitet. Beispielsweise könnte ein DVD-Player das Demulitplexen und das Puffern und das Übertragen von rohen ESs an einen Digitalfernseher übernehmen, der dann die Composition und das Rendering sowie die Anzeige übernimmt. In einem solchen Fall kann es sein, dass kein Rückkanal von dem Composition-und-Render-Block zu der stromaufwärtigen CMPS-Anordnung vorhanden ist. Die CMPS-Anordnungen sind vorzugsweise dafür ausgelegt, selbständige Fälle (ein DVD (oder jede andere Bildplatte)-Player mit einer CMPS-Anordnung, die an einen "dummen" Fernseher ohne CMPS angeschlossen ist), Fälle mit mehreren CMPS-Anordnungen, in der eine CMPS-Anordnung die gesamte Verarbeitung übernimmt (ein DVD (oder eine andere Bildplatte)-Player, der alles bis hin zum Composition und Rendering übernimmt, mit einer Videostrom-Ausgabe an den Digitalfernseher (in einem nicht einschränkenden Beispiel über einen IEEE 1349 seriellen Bus) (wobei dieser Ausgabestrom gemäß dem "Fünf-Firmen-Vorschlag" zum Kopierschutz unter Verwendung einer 1394 serielle Busübertragung verschlüsselt wäre)) und/oder eine zwischen zwei oder mehr CMPS-Anordnungen aufgeteilte Verar beitung hinsichtlich eines Teils oder in bestimmten Fällen der gesamten Verarbeitung.
  • 2. Initialisierung eines bestimmten Inhaltsstroms.
  • Das CMPS kann so entwickelt sein, dass es Initialisierungsinformationen akzeptieren kann, die das CMPS für einen bestimmten Inhaltsstrom oder -kanal initialisieren. Dieser Header, der ein CMPO und/oder andere CI sein können, kann Informationen enthalten, die vom CMPS verwendet werden, um einen bestimmten Inhaltstrom sowie diesem Strom zugeordnete CI auszumachen und/oder zu interpretieren. Dieser erste Header kann über einen Seitenband-Kanal oder als CI ES, wie z. B. ein CMPO ES, empfangen werden.
  • In einem in 26 gezeigten Ausführungsbeispiel kann der Header CMPO 2601 die folgenden Informationen enthalten:
    • (a) Strom/Objekt/CMPO ID 2602, die die Inhaltsströme/-objekte identifiziert, die von dem Header CMPO 2601 geregelt werden, und/oder Identifizierung von CMPOs, die jedem derartigen Inhaltsstrom oder -objekt zugeordnet sind. In einem Ausführungsbeispiel identifiziert das Header CMPO 2601 andere CMPOs, die Regeln und Schlüssel enthalten, die besonderen Inhaltsströmen zugeordnet sind. In einem anderen Ausführungsbeispiel kontrolliert das Header CMPO 2601 direkt alle Inhaltsströme, indem es die Schlüssel und Regeln, die diesen Strömen zugeordnet sind, aufnimmt. Im letzteren Fall werden keine weiteren CMPOs verwendet. In einem Ausführungsbeispiel kann das Header CMPO 2601 ein oder mehrere CMPOs, CCMPOs, MCMPOs und/oder andere CI sein.
    • (b) Einen oder mehrere CMPO-Schlüssel 2603 zum Entschlüsseln jedes identifizierten CMPOs.
    • (c) Werk-Stufen-Kontrolle 2604, die aus grundlegenden Kontrollinformationen besteht, die dem Werk als Ganzen zugeordnet sind und daher möglicherweise auf alle Inhaltsströme anwendbar sind, aus denen das Werk besteht. Diese grundlegenden Kontrollinformationen können Regeln enthalten, die das Werk als Ganzes regeln, einschließlich Optionen, die dem Benutzer geboten werden.
    • (d) In einer Ausführungsform dieses Ausführungsbeispiels kann ein Header CMPO aktualisierbar sein, um Benutzer/Orts-Informationen 2605 über einen bestimmten Benutzer oder einen Ort, der derzeit autorisiert ist, einen bestimmten Inhalt zu benutzen, sowie einen oder mehrere Regelsätze zu enthalten, unter denen der Benutzer diese Autorisierung erhalten hat. Ein Header CMPO, das einem aktuell betrachteten Werk zugeordnet ist, kann im RAM oder NVRAM gespeichert werden. Dies kann aktualisierte Informationen umfassen. In einer Ausführungsform kann das CMPO auch Header CMPOs für bestimmte Werke speichern, die in der Vergangenheit gesehen wurden. In einer Ausführungsform können die Header CMPOs in einem nicht sicheren Speicher gespeichert werden, wobei die Informationen ausreichen, um zu identifizieren und zu authentifizieren, dass keines der Header CMPOs geändert wurde.
  • Bei einer solchen Ausführungsform eines Header CMPO dieses Ausführungsbeispiels arbeitet das Header CMPO wie folgt:
    • (a) Das Header CMPO wird von einer CMPS-Anordnung empfangen. Im Falle eines zuvor nicht empfangenen Inhalts, der nunmehr zur Verfügung steht, kann das Header CMPO an einem Eingabeport empfangen werden. Im Falle eines bereits zur Verfügung stehenden Inhalts, der aber derzeit nicht benutzt wird (z. B. eine Set-Top-Box mit 500 Kanälen, von denen entweder keiner oder einer zu einer bestimmten Zeit angezeigt wird) können die CCMPOs für jeden Kanal durch die CMPS-Anordnung für eine mögliche Verwendung gepuffert werden, wenn der Benutzer einen bestimmten Inhalt aufruft (z. B. auf einen bestimmten Kanal umschaltet). In beiden Fällen muss das Header CMPO Informationen enthalten, die es einer CMPS-Anordnung gestatten, sie als ein Header CMPO zu identifizieren.
    • (b) Die CMPS-Anordnung erhält Geschäftsmodell-Informationen, die im Klartext im Header CMPO aufgenommen werden. Die Geschäftsmodell-Informationen können beispielsweise eine Aussage enthalten, dass ein Inhalt kostenfrei gesehen werden darf, wenn Werbespots aufgenommen werden, oder, wenn der Benutzer Informationen vom Nielsontyp, beispielsweise Benutzer- und/oder Zu schauermessinformationen, autorisiert, kann Inhalt an einen Server ausgegeben oder andernfalls einmalig kopiert werden, jedoch nur gegen Gebühr.
    • (c) Die CMPS-Anordnung akzeptiert entweder das Geschäftsmodell, wenn der Benutzer sie berechtigt hat, bestimmte Arten von Modellen zu akzeptieren (wenn z. B. der Benutzer die CMPS-Anordnung so programmiert hat, dass sie Gratisabspielungen mit Werbespots immer akzeptiert), sie weist das Geschäftsmodell zurück, wenn der Benutzer angewiesen hat, dass das bestimmte Modell immer zurückgewiesen wird, oder sie zeigt dem Benutzer das Geschäftsmodell an (z. B. indem sie Optionen auf dem Bildschirm anbietet).
    • (d) Wenn ein Geschäftsmodell akzeptiert wurde, entschlüsselt die CMPS-Anordnung dann den restlichen Teil des Header CMPO. Wenn das Handelsgerät einen direkten Ausgabeanschluss an einen externen Server hat (z. B. einen Internetanschluss, einen Rückkanal an einer Set-Top-Box, etc) und wenn Latenzprobleme behandelt werden, kann die Entschlüsselung dieser Schlüssel durch Kommunikation mit dem externen Server vorgenommen werden, wobei jede Seite die andere authentifiziert, ein sicherer Kanal hergestellt wird und ein Schlüssel aus dem Server empfangen wird. Wenn das Handelsgerät nicht wenigstens gelegentlich an einen externen Server angeschlossen wird, muss die Entschlüsselung eventuell auf einen oder mehreren Schlüsseln basiert werden, die sicher in dem Handelsgerät gespeichert sind.
    • (e) Sobald ein Header CMPO entschlüsselt wurde, erlangt die CMPS-Anordnung Informationen, die zum Identifizieren und Lokalisieren der den Inhalt enthaltenden Ströme verwendet werden, sowie Schlüssel, die verwendet werden, um entweder die diesem Inhalt zugeordneten CMPOs oder direkt den Inhalt selbst zu entschlüsseln.
    • (f) Bei einer Ausführungsform dieses Header-Ausführungsbeispiels kann das Header CMPO eine Datenstruktur zur Speicherung von Informationen enthalten, die von der CMPS-Anordnung zugefügt wurden. Solche Informationen können die folgenden umfassen: (1) Identifizierung des Benutzers und/oder des Handelsgeräts und/oder der CMPS-Anordnung. Bei dieser Ausführungsform können solche Informationen in einem Header CMPO gespeichert werden, um einen Prüfpfad für den Fall vorzusehen, dass das Werk (einschließlich des Header CMPO) übertragen wird (dies funktioniert nur, wenn das Header CMPO in schreibbarer Form übertragen wird). Solche Informationen können verwendet werden, um einen Benutzer zu gestatten, das Werk auf ein anderes Handelsgerät, das dem Benutzer gehört, zu übertragen, ohne Zahlung zusätzlicher Gebühren, wenn solche Übertragungen von den Regel-Informationen, die dem Header CMPO zugeordnet sind, zugelassen werden. Beispielsweise kann ein Benutzer ein Abonnement für einen bestimmten Kabelservice haben, für das der Benutzer im voraus bezahlt hat. Wenn eine CMPS-Anordnung ein Header CMPO von diesem Kabelservice herunterlädt, kann die CMPS-Anordnung die Identifizierung des Benutzers in dem Header CMPO speichern. Die CMPS-Anordnung kann dann fordern, dass das aktualisierte Header CMPO aufgenommen wird, wenn der Inhalt kopiert oder übertragen wird. Das Header CMPO könnte eine Regel enthalten, die besagt, dass, sobald die Benutzerinformationen ausgefüllt wurden, der dazugehörige Inhalt nur von diesem Benutzer und/oder von diesem Benutzer zugeordneten Handelsgeräten gesehen werden kann. Dies würde dem Benutzer gestatten, mehrfache Kopien des Werks anzufertigen und das Werk auf mehreren Handelsgeräten anzuzeigen, jedoch könnten diese Kopien nicht von nicht autorisierten Benutzern und/oder auf nicht autorisierten Handelsgeräten angezeigt oder verwendet werden. Das Header CMPO kann ferner eine Regel enthalten, die angibt, dass die Benutzerinformationen nur von einem autorisierten Benutzer geändert werden können (z. B. wenn der Benutzer 1 das Werk an den Benutzer 2 überträgt, kann die CMPS-Anordnung des Benutzers 2 die Benutzerinformationen in dem Header CMPO aktualisieren, und dadurch dem Benutzer 2 erlauben, das Werk zu sehen, jedoch nur, wenn der Benutzer 2 ebenfalls ein Teilnehmer des Kabelkanals ist). (2) Die Identifizierung von bestimmten Regeloptionen, die die Nutzung regeln. Regelsätze, die in den Header CMPOs enthalten sind, können Optionen enthalten. In bestimmten Fällen kann das Ausüben einer bestimmten Option die spätere Ausübung einer anderen Option ausschließen. Beispielsweise kann einem Benutzer die Wahl gegeben werden, ein unverändertes Werk gegen eine bestimmte Gebühr zu sehen oder ein Werk zu verändern und das veränderte Werk gegen eine höhere Gebühr zu sehen. Sobald der Benutzer entscheidet, das Werk zu ändern und das geänderte Werk zu sehen, wird diese Wahl vorzugsweise in dem Header CPMO gespeichert, da die Option auf ein Sehen des nicht geänderten Originalwerks zum niedrigeren Preis nicht mehr zur Verfügung steht. Der Benutzer kann ferner das Recht erworben haben oder ihm wird jetzt die Option auf dieses Recht angeboten, das geänderte Werk mit einem Gewinnaufschlag weiter zu verteilen, was zu einem abgeleiteten Einkommen für Dritte führt und die Nutzungsinformationen fließen sowohl zum Benutzer als auch zu dem bzw. den Stakeholdern des ursprünglichen Werks. (3) Nutzungsinformationen aus der Vergangenheit. Das Header CMPO kann Informationen über die Anzahl und die Arten der Nutzungen enthalten. Wenn beispielsweise das zugrunde liegende Werk kopiert wird, kann das Header CMPO aktualisiert werden, um die Tatsache wiederzuspiegeln, dass eine Kopie erstellt wurde, da eine diesem Werk zugeordnete Regel eventuell nur eine einzige Kopie erlaubt (z. B. zur Datensicherung und/oder für ein zeitversetztes Fernsehen). Bei einem anderen Beispiel kann ein Benutzer das Recht erhalten, ein Werk einmal oder für eine bestimmte Anzahl zu sehen. Das Header CMPO würde dann aktualisiert werden, um jede derartige Benutzung wiederzuspiegeln.
  • Nutzungsinformationen können verwendet werden, um zu bestimmen, ob zusätzliche Nutzungen durch Regeln autorisiert sind, die dem Header CMPO zugeordnet sind. Solche Informationen können auch für Prüfzwecke verwendet werden. Solche Informationen können auch als Nutzungsinformations-Exhaust vorgesehen werden, der an einen externen Server berichtet wird. Beispielsweise kann eine Regel spezifizieren, dass ein Werk kostenfrei gesehen werden kann, jedoch nur wenn Nutzungsinformationen aus der Vergangenheit auf einen Server geladen werden.
  • Inhaltsverwaltungs-und -schutzobjekte (CMPO)
  • Das Inhaltsverwaltungs- und Schutzobjekt ("CMPO") ist eine Datenstruktur, die Informationen enthält, die von dem CMPS verwendet werden, um die Nutzung eines bestimmten Inhalts zu regeln. Ein CMPO kann als eine von einem bestimmten Standard (z. B. einem MPEG-4 ES) spezifizierte Datenstruktur oder als eine Datenstruktur formatiert sein, die nicht vom Standard definiert ist. Wenn das CMPO als eine vom Standard spezifizierte Datenstruktur formatiert ist, kann sie in dem vom Standard verwendeten Kanal empfangen werden (z. B. als Teil eines Composite-MPEG-4 Stroms) oder kann über ein anderes Seitenbandverfahren empfangen werden. Wenn das CMPO als eine Datenstruktur formatiert ist, die nicht von dem relevanten Standard spezifiziert ist, wird sie unter Verwendung irgendeines Seitenbandverfahrens bereitgestellt und decodiert, was den Empfang durch den gleichen Port wie formatierter Inhalt und/oder einen Empfang durch einen getrennten Port umfassen kann.
  • Der Inhalt kann auf nahezu jeder Stufe der Granularität kontrolliert werden. Drei beispielhafte Stufen werden hier erörtert werden: "Kanal", "Werk" und "Objekt".
  • Ein "Kanal" stellt eine Aggregation von Werken dar. Die Werke können zur Auswahl durch den Benutzer bereitstehen (z. B. eine Website oder eine Videothek) oder können seriell empfangen werden (z. B. ein Kabelfernsehkanal).
  • Ein "Werk" stellt ein einzelnes audiovisuelles Werk, ein Textwerk oder ein anderes Werk dar, das von einem Benutzer als ein integriertes Ganzes konsumiert (gesehen, gelesen, etc.) werden soll. Ein Werk kann beispielsweise ein Film, ein Lied, ein Zeitschriftenartikel, ein Multimedia-Produkt, wie beispielsweise ein hoch entwickeltes Videospiel, sein. Ein Werk kann andere Werke aufnehmen, wie beispielsweise bei einem Multimedia-Werk, das Lieder, Videos, Texte, etc. enthält. In einem solchen Fall können Rechte zugeordnet sein.
  • Ein "Objekt" stellt einen getrennt adressierbaren Abschnitt eines Werkes dar. Ein Objekt kann beispielsweise ein einzelner MPEG-4 AVO, ein Szenenbeschreibungs-Graph, ein Objektdeskriptor, der Soundtrack für einen Film, eine Waffe in einem Videospiel oder irgendein anderer logisch definierbarer Abschnitt sein.
  • Der Inhalt kann auf jeder dieser Stufen (ebenso wie auf hier nicht erörterten Zwischenstufen) kontrolliert werden. Der bevorzugte Ausführungsmechanismus für eine solche Kontrolle ist ein CMPO oder eine CMPO-Anordnung (die ein oder mehrere CMPOs umfasst, und im Falle mehrerer, dann mehrere zusammenarbeitende CMPOs). CMPOs und CMPO-Anordnungen können hierarchisch organisiert sein, wobei eine Kanal-CMPO-Anordnung Regeln aufstellt, die für alle enthaltenen Werke gelten, ein MCMPO oder ein SGCMPO Regeln aufstellt, die für alle Objekte innerhalb eines Werkes gelten, und eine CMPO-Anordnung Regeln aufstellt, die für ein bestimmtes Objekt gelten.
  • In einem in 27 gezeigten Ausführungsbeispiel kann ein CMPS ein CCMPO 2701 herunterladen. Das CCMPO 2701 kann eine oder mehrere Regeln 2702 enthalten, die für den gesamten Inhalt in dem Kanal gelten, sowie einen oder mehrere Schlüssel 2703, die zur Entschlüsselung eines oder mehrerer MCMPOs und/oder SGCMPOs verwendet werden. Das MCMPO 2704 kann die Regeln 2705 enthalten, die für ein einziges Werk und/oder Werke gelten, eine oder mehrere Klassen und/oder mehrere Benutzer und/oder Benutzerklassen, und kann auch die Schlüssel 2706 enthalten, die zum Entschlüsseln der CMPOs verwendet werden. Das CMPO 2707 kann die Regeln 2708 enthalten, die für ein einzelnes Objekt gelten, sowie den Schlüssel 2709, der zum Entschlüsseln des Objekts verwendet wird.
  • Solange alle Objekte auf irgendeiner Stufe einer Kontrolle unterliegen, besteht kein Bedarf, dass jedes Objekt einzeln kontrolliert wird. Beispielsweise kann das CCMPO 2701 eine einzelne Regel zum Sehen von Inhalt spezifizieren, der in seinem Kanal enthalten ist (z. B. kann der Inhalt nur von einem Teilnehmer gesehen werden, dem es dann eventuell freisteht, den Inhalt weiter zu verteilen, ohne weitere Verpflichtung gegenüber dem Inhaltsanbieter). In einem solchen Fall würden nicht zwangsweise Regeln für die MCMPOs (z. B. Regeln 2705), SGCMPOs oder CMPOs (z. B. Regeln 2708) verwendet werden. Bei einer Ausführungsform könnte man auf die MCMPOs, die SGCMPOs und die CMPOs verzichten, und das CCMPO 2701 könnte alle Schlüssel enthalten, die zum Entschlüsseln des gesamten Inhalts verwendet werden, oder es könnte eine Stelle spezifizieren, an der diese Schlüssel untergebracht sein könnten. In einer anderen Ausführungsform würde das CCMPO 2701 den Schlüssel 2703 liefern, der zum Entschlüsseln des MCMPO 2704 verwendet wird. Das MCMPO 2704 kann Schlüssel enthalten, die zum Entschlüsseln von CMPOs verwendet werden (z. B. Schlüssel 2706), enthält aber vielleicht keine zusätzlichen Regeln 2705. Das CMPO 2707 kann den Schlüssel 2709 enthalten, der zum Entschlüsseln eines Objektes verwendet wird, enthält aber vielleicht keine zusätzlichen Regeln 2708. Bei bestimmten Ausführungsformen sind keine SGCMPOs vorhanden.
  • Ein CMPO kann innerhalb einer Inhalts-Datenstruktur enthalten sein, die von einem relevanten Standard spezifiziert wird (beispielsweise kann das CMPO Teil eines Headers in einem MPEG-4 ES sein). Ein CMPO kann innerhalb seiner eigenen, speziell zugeschnittenen Datenstruktur enthalten sein, die von einem rele vanten Standard spezifiziert wird (z. B. ein CMPO ES). Ein CMPO kann in einer Datenstruktur enthalten sein, die nicht von irgendeinem Inhaltsstandard spezifiziert wird (z. B. ein in einer DigiBox enthaltenes CMPO).
  • Ein CCMPO kann die folgenden Elemente enthalten:
    • (a) ID 2710. Diese kann die folgende Form haben: <channel ID>< CMPO type><CMPO ID><version number>. Im Falle einer hierarchischen CMPO-Organisation (z. B. CCMPOs, die MCMPOs kontrollieren, die CMPOs kontrollieren), kann die CMPO ID 2711 ein Feld für jede Stufe der Hierarchie enthalten, und dadurch der CMPO ID 2711 ermöglichen, die Stelle irgendeines bestimmten CMPO in der Organisation zu spezifizieren. Die ID 2710 für ein CCMPO kann beispielsweise 123-000-000 sein. Die ID 2712 für ein MCMPO eines Werks innerhalb des Kanals kann beispielsweise 123-456-000 sein, und dadurch die Spezifikation von 1.000 MCMPOs gestatten, wie sie von dem CCMPO, identifiziert als "123", kontrolliert werden. Die CMPO ID 2711 für ein CMPO, das einem Objekt innerhalb eines bestimmten Werks zugeordnet ist, kann beispielsweise 123-456-789 sein, und dadurch die Spezifikation von 1000 CMPOs ermöglichen, wie sie jedem MCMPO zugeordnet sind. Dieses Verfahren des Spezifizierens von CMPO IDs übermittelt dadurch die exakte Stelle eines beliebigen CMPO innerhalb einer Hierarchie von CMPOs. Für Fälle, in denen keine höheren Stufen der Hierarchie vorhanden sind (z. B. ein MCMPO ohne zugeordnetes CCMPO), können die dieser Stufe der Hierarchie zugeordneten Zahlen als Nullen spezifiziert werden.
    • (b) Regeln 2702, die für den gesamten Inhalt in dem Kanal gelten. Diese können selbständige Regeln sein, oder können Pointer auf Regeln sein, die an anderer Stelle erhalten werden. Auf dieser Stufe sind die Regeln optional.
    • (c) Informationen 2713, die für eine Anzeige in dem Fall entwickelt wurden, in dem der Benutzer nicht in der Lage ist, die Regeln einzuhalten (z. B. eine Werbeanzeige, die den Benutzer informiert, dass ein Abonnement gegen eine bestimmte Gebühr erhältlich ist, und eine Liste mit Inhalt enthält, der auf dem Kanal zur Verfügung steht).
    • (d) Schlüssel 2703 zum Entschlüsseln jedes MCMPO, das von diesem CCMPO kontrolliert wird. Bei einer Ausführungsform enthält das CCMPO einen oder mehrere Schlüssel, die alle MCMPOs entschlüsseln. Bei einer alternativen Ausführungsform enthält das CCMPO einen oder mehrere spezifische Schlüssel für jedes MCMPO.
    • (e) Eine Spezifikation eines CMPS-Typs (2714) oder von Hardware/Software, die erforderlich oder wünschenswert für die Verwendung des diesem Kanal zugeordneten Inhalts ist.
  • Die Inhalte eines MCMPO können ähnlich den Inhalten eines CCMPO sein, außer dass das MCMPO Regeln enthalten kann, die für ein einzelnes Werk gelten, und CMPOs identifizieren kann, die jedem Objekt zugeordnet sind.
  • Die Inhalte jedes CMPO können ähnlich den Inhalten des MCMPO sein, außer dass das CMPO Regeln und Schlüssel enthalten kann, die für ein einzelnes Objekt gelten.
  • Die Inhalte eines SGCMPO können ähnlich den Inhalten des CCMPO sein, außer dass das MCMPO Regeln enthalten kann, die nur für eine bestimmte oder mehrere bestimmte Klassen von Rechten, eine bestimmte Klasse von Werken oder mehrere bestimmte Klassen von Werken und/oder eine oder mehrere bestimmte Klassen von Benutzern und/oder Benutzeranordnungen gelten (z. B. CMPO Anordnungen und/oder deren Vorrichtungen).
  • Bei einem anderen in 28 gezeigten Ausführungsbeispiel kann die CMPO Datenstruktur 2801 wie folgt definiert werden:
    Die CMPO Datenstruktur 2801 besteht aus Elementen. Jedes Element enthält eine selbständige Informationseinheit. Das CMPS zergliedert die CMPO Datenstruktur, in jeweils ein Element.
    Das Typ-Element 2802 identifiziert die Datenstruktur als CMPO, wodurch dem CMPS ermöglicht wird, es von einem Inhalts-ES zu unterscheiden. Bei einer beispielhaften Ausführungsform kann dieses Element 4 Bit enthalten, die jeweils auf "1" gesetzt sein können, um anzuzeigen, dass die Datenstruktur ein CMPO ist.
    Das zweite Element ist ein CMPO-Identifikator 2803, der dazu verwendet wird, dieses bestimmte CMPO zu identifizieren und mitzuteilen, ob das CMPO Teil einer hierarchischen Organisation von CMPOs ist, und falls ja, wo dieses CMPO in die Organisation passt.
    Der CMPO-Identifikator 2803 ist in vier Unterelemente von jeweils drei Bit unterteilt. Diese sind als Unterelemente A, B, C und D gezeigt. Das erste Unterelement (2803A) identifiziert den CMPO-Typ und gibt an, ob das CMPO von irgendeinem anderen CMPO geregelt oder kontrolliert wird:
    100: die ist ein CMPO oberer Stufe (einem Kanal oder einer Aggregation von Werken zugeordnet) und wird nicht von irgendeinem anderen CMPO kontrolliert.
    010: dies ist ein CMPO mittlerer Stufe (einem bestimmten Werk zugeordnet) und wird nicht von irgendeinem anderen CMPO kontrolliert.
    110: dies ist ein CMPO mittlerer Stufe und wird von einem CMPO oberer Stufe kontrolliert.
    001: dies ist ein CMPO niedriger Stufe (einem Objekt innerhalb eines Werks zugeordnet) und wird nicht von irgendeinem anderen CMPO kontrolliert. Dieser Fall wird selten sein, da ein CMPO niedriger Stufe für gewöhnlich von wenigstens einem CMPO einer nächst höheren Stufe kontrolliert wird.
    011: dies ist ein CMPO niedriger Stufe und wird zwar von einem CMPO mittlerer Stufe, jedoch nicht von einem CMPO oberer Stufe kontrolliert.
    111: dies ist ein CMPO niedriger Stufe und wird von einem CMPO oberer Stufe und einem CMPO mittlerer Stufe kontrolliert.
  • Das zweite Unterelement der CMPO ID 2803 (Unterelement B) identifiziert ein CMPO oberer Stufe. Im Falle eines CMPO oberer Stufe wird dieser Identifikator vom Creator des CMPO zugeordnet. Im Falle eines CMPO mittlerer oder niedriger Stufe, das von einem CMPO oberer Stufe kontrolliert wird, enthält dieses Unterelement die Identifizierung des CMPO oberer Stufe, das diese Kontrolle durchführt. Im Falle eines CMPO mittlerer oder niedriger Stufe, das nicht von einem CMPO oberer Stufe kontrolliert wird, enthält dieses Unterelement Nullen.
  • Das dritte Unterelement der CMPO ID 2803 (Unterelement C) identifiziert ein CMPO mittlerer Stufe. Im Falle eines CMPO oberer Stufe enthält diese Unterele ment Nullen. Im Falle eines CMPO mittlerer Stufe enthält dieses Unterelement die Identifizierung des bestimmten CMPO. Im Falle eines CMPO niedriger Stufe, das von einem CMPO mittlerer Stufe kontrolliert wird, enthält dieses Unterelement die Identifizierung des CMPO mittlerer Stufe, das diese Kontrolle ausführt. Im Falle eines CMPO niedriger Stufe, das nicht von einem CMPO mittlerer Stufe kontrolliert wird, enthält dieses Unterelement Nullen.
  • Das vierte Unterelement einer CMPO ID 2803 (Unterelement D) identifiziert ein CMPO niedriger Stufe. Im Falle eines CMPO oberer oder mittlerer Stufe enthält dieses Unterelement Nullen. Im Falle eines CMPO niedriger Stufe enthält dieses Unterelement die Identifizierung eines bestimmten CMPO.
  • Auf das Identifizierungselement folgt das Größenelement 2804, das die Größe der CMPO-Datenstruktur angibt. Dieses Element enthält die Anzahl der Elemente (oder Bytes) bis zum letzten Element in der Datenstruktur. Dieses Element kann überschrieben werden, wenn Änderungen am CMPO gemacht werden. Das CMPS kann diese Größeninformationen nutzen, um zu bestimmen, ob das Element ohne Erlaubnis geändert wurde, da eine solche Änderung zu einer anderen Größe führen könnte. Für diese Zwecke kann das CMPS die in diesem Element enthaltenen Informationen in einer geschützten Datenbank speichern. Diese Informationen können auch verwendet werden, um festzustellen, dass das gesamte CMPO empfangen worden ist und stehen zur Verfügung, ehe ein Versuch unternommen wird, mit der Verarbeitung fortzufahren.
  • Auf das Größenelement 2804 folgen ein oder mehrere Eigentümer/Kontroll-Elemente, die Eigentümer- und Kontrollketteninformationen enthalten (z. B. Eigentümer/Kontrollelemente 2805, 2806 und 2807). In dem ersten dieser Elemente (2805) kann der Creator des CMPO einen spezifischen Identifikator enthalten, der diesem Creator zugeordnet ist. Zusätzliche Teilnehmer können ebenfalls in den folgenden Elementen (z. B. 2806, 2807) identifiziert werden. Beispielsweise könnte das Element 2805 den Creator des CMPO identifizieren, das Element 2806 den Herausgeber des dazugehörigen Werks und das Element 2807 den Autor des Werks identifizieren.
  • Eine spezifische End-Element 2808-Folge (z. B. 0000) zeigt das Ende der Kette von Eigentümer-Elementen an. Wenn man auf diese Folge in dem ersten Element trifft, zeigt dies an, dass keine Kette von Eigentümer-Informationen vorhanden ist.
  • Eine Kette von Eigentümer-Informationen kann zugefügt werden, wenn dem CMPO 2801 zugeordnete Regeln solche Zufügungen gestatten. Wenn beispielsweise ein Benutzer das dem CMPO 2801 zugeordnete Werk kauft, kann die Identifizierung des Benutzers als neues Element in der Kette von Eigentümer-Informationen zugefügt werden (z. B. ein neues Element, das auf 2807 folgt, jedoch vor 2808). Dies kann an der Verkaufsstelle erfolgen oder von dem CMPS gemacht werden, sobald das CMPO 2801 angetroffen wurde, and das CMPS bestimmt, dass der Benutzer das dazugehörige Werk gekauft hat. In einem solchen Fall kann das CMPS den Benutzer-Identifikator aus einer Datenstruktur erhalten, die von dem CMPS im NVRAM gespeichert ist.
  • Auf die Eigentümerelement-Kette folgen ein oder mehrere Handhabungs-Elemente (engl.: handling elements) (z. B. 2809, 2810), die die Handhabungskette anzeigen. Diese Elemente können die Identifizierung irgendeines CMPS enthalten, das das CMPO 2801 herunter geladen und decodiert hat, und/oder können die Identifikation jedes Benutzers enthalten, der irgendeinem solchen CMPS zugeordnet ist. Solche Informationen können für Prüf-Zwecke verwendet werden, um ein Nachverfolgen der Handhabung zu ermöglichen, für den Fall, dass festgestellt wurde, dass sich ein Werk unsachgemäß im Umlauf befand. Solche Informationen können auch als Exhaust an ein Clearinghaus oder einen zentralen Server berichtet werden. Handhabungsketten-Informationen bleiben vorzugsweise solange persistent, bis sie berichtet werden. Wenn die Anzahl der Elemente, die für solche Informationen erforderlich ist, eine festgelegte Anzahl übersteigt (z. B. zwanzig getrennte Benutzeridentifikatoren), kann ein CMPS verweigern, jede weitere Verarbeitung des CMPO 2801 oder des dazugehörigen Werks zu gestatten, bis das CMPS an einen externen Server angeschlossen wurde und die Kette aus Handhabungsinformationen berichtet hat.
  • Das letzte Element in der Kette aus Handhabungselementen (z. B. 2811) zeigt das Ende dieser Gruppe von Elementen an. Die Inhalte dieses Elements können beispielsweise alle Nullen sein.
  • Auf die Kette aus Handhabungselementen können ein oder mehrere Zertifizierungselemente (z. B. 2812, 2813) folgen, die ein diesem CMPO zugeordnetes digitales Zertifikat enthalten oder darauf verweisen. Ein solches digitales Zertifikat kann von dem CMPS verwendet werden, um das CMPO zu authentifizieren. Das letzte Element in der Kette digitales Zertifikat besteht aus lauter Nullen (2814). Wenn kein digitales Zertifikat vorhanden ist, ist ein einziges Element aus lauter Nullen an dieser Stelle vorhanden.
  • Auf die Zertifikatselemente kann ein Satz Objektregelungs-Elemente (engl.: Governed Object Elements) (z. B. 2815, 2816, 2817, 2818) folgen, die ein oder mehrere Inhaltsobjekte und/oder CMPOs spezifizieren, die von dem CMPO 2801 geregelt oder diesem zugeordnet sein können. Jedes dieser geregelten Objekte oder CMPO wird von einem spezifischen Identifikator und/oder einer Stelle identifiziert, an der ein solches Objekt oder CMPO gefunden werden kann (z. B. können diese an den Stellen 2815 und 2817 gespeichert werden). Auf jeden solchen Identifikator können ein oder mehrere Schlüssel folgen, die zum Entschlüsseln eines solchen CMPO oder Objektes verwendet werden (z. B. gespeichert an den Stellen 2816 und 2818). Der Satz aus Identifikatoren/Schlüsseln endet mit einem Abschlusselement, das aus lauter Nullen besteht (2819).
  • Auf den Satz aus Elementen, die Identifikatoren und/oder Schlüssel spezifizieren, kann ein Satz aus Regel-Elementen (z. B. 2820, 2821, 2822) folgen, die Regeln/Kontrollen und Bedingungen spezifizieren, die der Benutzung der Inhaltsobjekte und/oder den CMPOs, die in der Kette aus geregelten Objekten identifiziert sind, zugeordnet sind (z. B. die Stellen 2815 und 2817). Beispielhafte Regeln sind nachstehend beschrieben. Elemente können explizite Regeln oder Verweise auf Regeln enthalten, die an anderer Stelle gespeichert sind. Bedingungen können bestimmte Hardware-Ressourcen enthalten, die notwendig sind, um dazugehörige Inhaltsobjekte zu nutzen oder um bestimmte Regeln zu erfüllen, oder bestimmte Arten von CMPS, die zur Benutzung der dazugehörigen Inhaltsobjekte erforderlich sind oder dafür bevorzugt werden.
  • Auf die Regel-/Kontroll- und Bedingungs-Elemente kann ein Satz von Informations-Elementen 2823 folgen, der Informationen enthält, die von dem Creator des CMPO spezifiziert werden. Neben anderen Inhalten können solche Informationen Inhalt oder Pointer auf Inhalte, Programmierungen oder Pointer auf Programmierungen enthalten.
  • Das CMPO endet mit dem Endabschluss-Element 2824.
  • In einem Ausführungsbeispiel können die in den Regel-Elementen 2820-2822 des CMPO 2801 enthaltenen Regeln beispielsweise die folgenden Operationen enthalten:
    • (1) Abspielen (Play). Diese Operation gestattet es dem Benutzer, den Inhalt ohne Beschränkung abzuspielen (obgleich er ihn nicht kopieren darf).
    • (2) Navigieren. Dies gestattet es dem Benutzer, bestimmte Arten von Navigationsfunktionen auszuführen, einschließlich schneller Vorlauf/Rücklauf, Stopp und Suche. Die Suche kann indexiert oder nicht indexiert sein.
    • (3) Kopieren. Kopieren kann einmalig erlaubt sein (z. B. zeitversetztes Sehen, Archivieren), kann für eine bestimmte Anzahl erlaubt sein und/oder für eine begrenzte Zeitspanne erlaubt sein, oder auch für eine unbegrenzte Zeitspanne erlaubt sein, solange andere Regeln, einschließlich relevanter Budgets, nicht verletzt oder überschritten werden. Eine CMPS-Anordnung kann so ausgelegt sein, dass eine Kopieroperation eine Aktualisierung an einem dazugehörigen CMPO verursachen kann (z. B. einschließlich einer Anzeige, dass der dazugehörige Inhalt kopiert wurde, wobei das Kopierdatum und die Stelle, die für das Erstellen der Kopie verantwortlich war, identifiziert werden), ohne dass irgendeine Veränderung an irgendeinem anwendbaren Inhaltsobjekt verursacht wird, und insbesondere ohne die Erfordernis, dass dazugehörige Inhaltsobjekte gedemultiplext, entschlüsselt oder dekomprimiert werden. Im Falle von MPEG-4 kann dies beispielsweise den folgenden mehrstufigen Dumultiplex-Prozess erfordern: (i) die CMPS-Anordnung empfängt eine Kopieranweisung von dem Benutzer oder von einem Header CMPO. (ii) die diesem MPEG-4 Strom, der kopiert werden soll, zugeordneten CMPO ESs werden von dem Inhaltsstrom in einer ersten Demultiplex-Stufe getrennt. (iii) die CMPOs werden von der CMPS-Anordnung entschlüsselt und aktualisiert.
  • Die CMPOs werden dann erneut mit den Inhalts-ESs gemultiplext (die niemals voneinander demultiplext wurden) und der gesamte Strom wird ohne weitere Änderung zum Ausgabeport geleitet.
  • Dieser Prozess gestattet das Stattfinden einer Kopieroperation, ohne ein Demultiplexen und Entschlüsseln der Inhaltsströme zu erfordern. Er erfordert, dass die CMPS-Anordnung zwei Ausgänge enthält: einen Ausgang, der an den digitalen Ausgangsport anschließt (z. B. 23, Leitung 2316, die sich an den digitalen Ausgangsport 2317 anschließt), und einen Ausgang, der an die MPEG-4 Puffer angeschlossen ist (z. B. 23, Leitungen 2310, 2311, 2312), wobei ein Schalter dafür ausgelegt ist, den Inhalt zu dem einen oder dem anderen Ausgang (oder zu beiden, wenn der Inhalt gleichzeitig gesehen und kopiert werden soll) zu senden (z. B. Schalter 2319). Der Schalter 2319 kann der einzige Pfad zum digitalen Ausgangsport 2317 sein, wodurch dem CMPS 2302 ermöglicht wird, eine direkte Kontrolle über diesen Port auszuüben und sicherzustellen, dass Inhalt niemals zu diesem Port gesendet wird, wenn er nicht durch eine Kontrolle autorisiert wurde. Wenn der digitale Ausgangsport 2317 auch das Verbindungselement zu einer digitalen Anzeigevorrichtung ist, wird das CMPS 2302 auch an diesen Port zu sendenden Inhalt autorisieren müssen, selbst wenn keine Kopieroperation autorisiert wurde.
  • Bei einer beispielhaften Ausführungsform kann die Empfangsvorrichtung, die die Informationen durch den digitalen Ausgangsport 2317 empfängt, eine Authentifizierung mit der Sendevorrichtung (z. B. CMPS 2302) vornehmen müssen. Eine Authentifizierung kann für jede Eigenschaft der Vorrichtung und/oder ein oder mehrere im Zusammenhang mit dieser Vorrichtung verwendete CMPS erfolgen. So wird beispielsweise eine Sendevorrichtung keinen Inhalt an eine Speichervorrichtung übertragen, der ein kompatibles CMPS fehlt.
  • In einem weiteren, nicht einschränkenden Beispiel kann das CMPS 2302 eine Session-Verschlüsselungs-Funktionalität haben (z. B. die "Fünf-Firmen-Anordnung"), die einen sicheren Kanal von einer Sende-Schnittstelle zu einer oder mehreren Schnittstellen externer Vorrichtungen (z. B. einem digitalen Monitor) herstellt, und vorausgesetzt, dass die empfangende Schnittstelle mit der sendenden Schnittstelle authentifiziert ist, den Inhalt verschlüsselt, so dass er nur von einem oder mehreren authentifizierten 1394 Vorrichtungsschnittstellen entschlüsselt werden kann. In diesem Fall würde das CMPS 2302 nach einer geeigneten IEEE 1394 seriellen Busschnittstelle suchen und nur dann ein Fließen des Inhalts vom digitalen Ausgangsport 2317 gestatten, wenn (a) eine autorisierte Abspiel-Operation aufgerufen wurde, ein sicherer Kanal mit der Vorrich tung hergestellt und der Inhalt einer Session-Verschlüsselung unterzogen wurde, oder (b) eine autorisierte Kopier- oder Rückübertragungs-Operation aufgerufen und der Inhalt gemäß der obigen Beschreibung behandelt wurde (d.h. das CMPO gedemultiplext, geändert und erneut gemultiplext wurde, der Inhalt niemals entschlüsselt oder gedemultiplext wurde).
  • Dies ist nur dann möglich, wenn die CMPOs getrennt in einer frühen Demultiplex-Stufe identifiziert werden können, was höchstwahrscheinlich erfordert, dass sie in getrennten CMPO ESs gespeichert werden. Wenn die CMPOs als Header in Inhalts-ESs gespeichert sind, kann es sein, dass es nicht möglich ist, die CMPOs vor einer vollständigen Demulitplex- und Entschlüsselungs-Operation des gesamten Stroms zu identifizieren.
    • (4) Ändern. Der Benutzer kann dazu autorisiert sein, den Inhalt zu ändern.
    • (5) Löschen. Dieser Befehl ermöglicht dem Benutzer, Inhalte zu löschen, die im Speicher des Handelsgeräts gespeichert sind. Diese Operation bearbeitet das gesamte Werk. Wenn der Benutzer einen Teil eines Werks löschen will, muss die Änderungs-Operation verwendet werden.
    • (6) Übertragen. Ein Benutzer kann dazu autorisiert sein, ein Werk an einen Dritten zu übertragen.
  • Dies unterscheidet sich von der Kopier-Operation dahingehend, dass der Benutzer keinen Inhalt oder irgendwelche Rechte am Inhalt zurückbehält. Die Übertragungs-Operation kann ausgeführt werden, indem man eine Kopier-Operation und eine Lösch-Operation kombiniert. Die Übertragung kann die Veränderung des Header CMPOs erfordern, das dem Werk zugeordnet ist (z. B. Zufügen oder Verändern eines Eigentümer/Kontroll-Elements, wie z. B. die Elemente 2805-2807 von 28), so dass dem Dritten Rechte am Werk zugeordnet werden.
  • Diese grundlegenden Operationen können Modifizierungen unterliegen, die umfassen können:
    • i. Bezahlung. Die Operationen können von einer bestimmten Art von Benutzer-Bezahlung abhängig gemacht werden. Die Bezahlung kann in Form einer Cash-Bezahlung an einen Anbieter erfolgen (z. B. Kreditkarte, Abzug von einem Budget), oder durch Senden spezifizierter Informationen an eine externe Stelle (z. B. Informationen vom Nielson-Typ).
    • ii. Qualität des Service (engl.: Quality of Service). Operationen können bestimmte Servicequalitätsparameter spezifizieren (z. B. durch Spezifizieren einer angeforderten QoS im MPEG-4), einschließlich: angeforderte Stufe der Dekomprimierung, angeforderte/benötigte Anzeigearten, Rendering-Vorrichtungen (z. B. Lautsprecher höherer Qualität, eine bestimmte Art von Spielekontroller).
    • iii. Zeit. Operationen können so bedingt sein, dass die Operation erst nach einer gewissen Zeit gestattet wird, oder derart, dass der Preis für die Operation an die Zeit gebunden ist (z. B. Echtzeit-Informationen zu einem Preis, verzögerte Informationen zu einem niedrigeren Preis oder kostenfrei, z. B. das Gestatten kontrollierter Kopien, aber erst nach einem bestimmten Datum).
    • iv. Anzeige bestimmter Arten von Inhalt. Operationen können davon abhängen, dass der Benutzer die Anzeige eines bestimmten Inhalts autorisiert (z. B. kann die Abspiel-Operation kostenfrei sein, wenn der Benutzer der Anzeige von Werbespots zustimmt).
  • In allen diesen Fällen kann eine Regel von einer oder mehreren anderen Regeln modifiziert werden. Eine Regel kann spezifizieren, dass sie von anderen Regeln modifiziert werden kann, oder aber spezifizieren, das sie unmodifizierbar ist. Wenn eine Regel modifizierbar ist, kann sie von Regeln modifiziert werden, die von anderen Quellen gesendet werden. Solche Regeln können vom Benutzer einzeln empfangen werden oder können aggregiert und vom Benutzer gemeinsam empfangen werden.
  • Datentypen, die in einer beispielhaften MPEG-4 Ausführungsform verwendet werden können, können folgendes enthalten:.
  • a. CMP-Datenstrom
  • Der CMP-ds ist ein neuer Typ eines elementarem Stroms, der alle Eigenschaften eines elementaren Stroms einschließlich seines eigenen CMPO und eines Verweises in den Objektdeskriptoren hat. Jeder CMP-ds-Strom hat eine Reihe von einer oder mehreren CMP-Nachrichten. Eine CMP Nachricht umfasst vier Teile:
    • 1. Count: [1...n] CMPS-Typen, die von diesem IP ES unterstützt werden. Es können mehrfache CMPS-Systeme unterstützt werden, die jeweils von einem einzigartigen Typ identifiziert werden. (Eventuell muss ein zentrales Typenregister vorhanden sein.)
    • 2. CMPS_type_identifiers: [1...n] Identifikatoren, jeder mit einem Versatz im Strom und einer Länge. Der Versatz verweist auf das Byte in dem CMPO, an dem die Daten für diesen CMPS-Typ gefunden werden. Die Länge ist die Länge dieser Daten in Byte.
    • 3. Data segments: Ein Segment für jeden der n CMPS-Typen, die in einem Format kodiert sind, das dem CMPS-Lieferer gehört.
    • 4. CMP_Message_URL: Dies verweist auf eine weitere CMP Nachricht. (Dies steht im Einklang mit dem Standard des Verwendens von URLs, um auf Ströme zu verweisen.)
  • b. CMPO.
  • Das CMPO ist eine Datenstruktur, die verwendet wird, um eine detaillierte CMP-Kontrolle an einzelne elementare Ströme anzuhängen. Jedes CMPO enthält:
    • 1. CMPO_ID: Ein Identifikator für den zu kontrollierenden Inhalt. Dieser Identifikator muss einen elementaren Strom einzigartig identifizieren.
    • 2. CMPO_count: [1...n] CMPS-Typen, die von diesem CMPO unterstützt werden.
    • 3. CMPS_type_identifiers: [1...n] Identifikatoren, jeder mit einem Versatz im Strom und mit einer Länge. Der Versatz verweist auf das Byte in dem CMPO, an dem die Daten für diesen CMPS-Typ gefunden werden. Die Länge ist die Länge dieser Daten in Byte.
    • 4. Data segments: n Datensegmente. Jedes Datensegment hat ein Format, das dem CMPS-Lieferer gehört.
    • 5. CMPO_URL: Eine optionale URL, die auf ein zusätzliches CMPO verweist, das Informationen zu den Informationen in diesem CMPO zufügt. (Dies ist ein Weg zum dynamischen Hinzufügen einer Unterstützung für neue CMPSs.)
  • c. Rückkopplungs-Event
  • Die Rückkopplungs-Events liegen in zwei Formen vor: Start und Ende. Jeder Rückkopplungs-Event enthält drei Informationseinheiten:
    • 1. Elementary_stream_ID
    • 2. Time: in Darstellungszeit
    • 3. Object_instance_number
  • Benutzerschnittstelle
  • Das Handelsgerät 2301 kann die Benutzerschnittstelle 2304 enthalten, die dafür ausgelegt ist, kontrollspezifische Informationen an den Benutzer mitzuteilen und vom Benutzer Befehle und Informationen zu empfangen. Diese Schnittstelle kann Spezialanzeigen enthalten (z. B. ein Licht, das aufleuchtet, wenn eine aktuelle Handlung eine Bezahlung erfordert), Spezialknöpfe (z. B. ein Knopf, der die Zahlung akzeptiert, oder andere Bedingungen, die für die Anzeige des Inhalts erforderlich sind) und/oder visuelle Informationen, die auf dem Bildschirm angezeigt werden.
  • Beispiel einer Operation in einem MPEG-4 Kontext
    • 1. Der Benutzer wählt ein bestimmtes Werk bzw. einen bestimmten Kanal aus. Beispielsweise verwendet der Benutzer eine Fernbedienung, um einen digitalen Fernseher auf einen bestimmten Kanal einzustellen.
    • 2. Die Wahl des Kanals wird an eine CMPS-Anordnung kommuniziert, welche die Informationen entweder zum Herunterladen eines CCMPO oder zum Identifizieren eines zuvor heruntergeladenen CCMPO verwendet (wenn die CMPS-Anordnung beispielsweise in einer Set-Top-Box enthalten ist, kann die Set-Top-Box CCMPOs für jeden Kanal, der möglicherweise von der Box erreichbar ist, automatisch herunterladen).
    • 3. Die CMPS-Anordnung verwendet das CCMPO, um Regeln zu identifizieren, die dem gesamten Inhalt zugeordnet sind, der auf dem Kanal gefunden wird. Beispielsweise kann das CCMPO spezifizieren, dass der Inhalt nur von Teilnehmern gesehen werden darf und dass, für den Fall, dass der Benutzer kein Teilnehmer ist, ein Werbebild angezeigt werden soll, auf dem der Benutzer zur Teilnahme aufgefordert wird.
    • 4. Sobald die von dem CCMPO spezifizierten Regeln erfüllt worden sind, spezifiziert das CCMPO die Stelle eines einem bestimmten Werk zugeordneten MCMPO, das auf dem Kanal zur Verfügung steht. Das Kanal-CMPO kann auch einen oder mehrere Schlüssel liefern, die zur Entschlüsselung des MCMPO verwendet werden.
    • 5. Die CMPS-Anordnung lädt das MCMPO herunter. Im Falle eines MPEG-4 Ausführungsbeispiels kann das MCMPO ein Elementary Stream sein. Dieser Elementary Stream muss in einer relativ frühen Stufe während des MPEG-4 Decoding-Prozesses identifiziert werden können.
    • 6. Die CMPS-Anordnung entschlüsselt das MCMPO und legt die Regeln fest, die für einen Zugriff auf bzw. die Verwendung des Inhalts verwendet werden. Die CMPS-Anordnung bietet dem Benutzer einen Satz von Optionen, einschließlich der Möglichkeit eines gebührenfreien Sehens mit Werbespots oder eines Sehens gegen Gebühr ohne Werbespots.
    • 7. Der Benutzer wählt gebührenfreies Sehen mit Werbespots, beispielsweise indem er unter Verwendung einer Fernbedienung eine Option auf dem Schirm hervorhebt und auswählt.
    • 8. Die CMPS-Anordnung erwirbt einen oder mehrere Schlüssel von dem MCMPO und verwendet diese Schlüssel, um die Elementary Streams, die diesem Video zugeordnet sind, zu entschlüsseln. Die CMPS-Anordnung identifiziert zwei mögliche Szenenbeschreibungs-Graphen, einen mit Werbespots und einen ohne Werbespots. Die CMPS-Anordnung gibt den Szenebeschreibungs-Graphen mit Werbespots weiter und blockiert den anderen Szenebeschreibungs-Graphen.
    • 9. Die CMPS-Anordnung überwacht den Composite- und Render-Block und prüft, um festzustellen, ob die Werbe-AVOs tatsächlich zum Sehen freigegeben wurden. Wenn die CMPS-Anordnung feststellt, dass diese AVOs nicht zum Sehen freigegeben worden sind, zeigt sie eine Fehler- oder Warnmeldung an und beendet die weitere Entschlüsselung.
  • CMPS Rechteverwaltung in Anbieter- und Verteilerketten
  • Zusätzlich zu Verbraucher-Anordnungen können in anderen Ausführungsbeispielen ein oder mehrere CMPSs zur Erzeugung, Erfassung, Modifizierung, Vergrößerung, Animierung, Aufbereitung, Exzerpierung, Extrahierung, Einbettung, Verbesserung, Korrektur, Fingerprinting, Watermarking und/oder Rendering von digitalen Informationen verwendet werden, um digitalen Informationen Regeln zuzuordnen und diese Regeln während der Erzeugungs-, Herstellungs-, Verteilungs-Anzeige- und/oder Performance-Prozesse anzuwenden.
  • In einem nicht einschränkenden Beispiel ist ein CMPS, von dem ein nicht erschöpfendes Beispiel mindestens einen sicheren Abschnitt eines VDE-Knotens enthalten kann, wie in der zuvor erwähnten Patentbeschreibung von Ginter et al. beschrieben, in Video- und Digitalkameras, Audiomikrophonen, Aufzeichnungs-, Wiedergabe-, Aufbereitungs- und/oder Rauschminderungsgeräten und/oder anderen digitalen Vorrichtungen aufgenommen. Bilder, Video und/oder Audio oder irgendwelche andere relevanten digitalen Informationen können unter Verwendung mindestens eines CMPS und/oder mindestens eines CMPO erfasst, aufgezeichnet und persistent geschützt werden. Die CMPSs können mit der Komprimierung/Dekomprimierung, Verschlüsselung/Entschlüsselung, DSP, Digital-Analog-Wandlern, Analog-Digital-Wandlern wie auch Kommunikationshardware- und/oder Softwarekomponenten dieser Vorrichtungen interagieren.
  • In einem weiteren nicht-erschöpfenden Beispiel können Computeranimationen, Spezialeffekte, Digitalaufbereitung, Farbkorrektur, Rauschminderung und jegliche andere Anwendungen, die digitale Informationen erzeugen und/oder verwenden, Rechte schützen und/oder verwalten, die digitalen Informationen zugeordnet sind, unter Verwendung mindestens eines CMPS und/oder eines CMPO.
  • Ein weiteres Beispiel umfasst die Verwendung von CMPSs und/oder CMPOs, um digitale Assets in mindestens einer digitalen Bibliothek, einem Asset-Store, Film- und/oder Audio-Bibliotheken, digitalen Tresoren und/oder irgendwelchen anderen Speicher- und Verwaltungsmitteln für digitalen Inhalt zu verwalten.
  • Gemäß den vorliegenden Anwendungen können CMPSs und/oder CMPOs verwendet werden, um Rechte im Zusammenhang mit der öffentlichen Anzeige und/oder Performance digitaler Werke zu verwalten. In einem nicht erschöpfenden Beispiel können Flachbildschirme, Anzeigen, Monitore, TV-Projektoren, LCD-Projektoren und/oder beliebige andere Mittel zur Anzeige digitaler Informationen mindestens eine Hardware und/oder Software CMPS-Instanz umfassen, die die Verwendung digitaler Werke kontrolliert. Ein CMPS wird die Verwendung möglicherweise nur in Verbindung mit einem oder mehreren digitalen Passwörtern gestatten, wobei ein Beispiel hierfür ein digitales Zertifikat ist, die garantieren, dass die Verwendung der digitalen Informationen nur in Umgebungen, an Orten und/oder anderen Kontexten zur öffentlichen Anzeige und/oder Performance stattfindet. Nicht einschränkende Beispiele für die Kontexte umfassen Theater, Bars, Clubs, elektronische Billboards, elektronische Anzeigen an öffentlichen Orten oder Fernseher in Flugzeugen, auf Schiffen, in Zügen und/oder anderen öffentlichen Transportmitteln. Diese Passwörter können von vertrauenswürdigen Dritten, wie z. B. Zertifizierungsbehörden, ausgegeben werden, wobei nicht erschöpfende Beispiele in der vorgenannten Patentanmeldung '712 von Ginter offenbart sind.
  • Zusätzliche MPEG-4 Ausführungsbeispiel-Informationen
  • Dieses Werk basiert auf der MPEG-4 Beschreibung in der Version 1 Systems Committee Draft (CD), die derzeit die vollständigste Beschreibung des sich entwickelnden MPEG-4 Standards ist.
  • Dieser Abschnitt stellt die strukturelle Modifizierungen an der MPEG-4 Player-Architektur dar und erörtert die Datenleitungen und die damit verbundenen funktionellen Änderungen. Die 23 zeigt die funktionellen Komponenten des originalen MPEG-4 Players. Der Inhalt kommt am Player 2301 gepackt in einen seriellen Strom an (z. B. der MPEG-4 Bitstrom 2314). Es wird über eine Sequenz aus drei Demultiplexing-Stufen (z. B. Demux 2305) in elementare Ströme gedemultiplext. Es gibt drei prinzipielle Arten von elementaren Strömen: AV Objekte (AVO), Szenebeschreibungs-Graph (SDG) und Objektdeskriptor (OD). Diese Ströme werden in entsprechende Verarbeitungselemente eingegeben (z. B. AVO-Decode 2307, Szenebeschreibungs-Graph 2306, Objektdeskriptoren 2308). Die AVOs sind die Multimedia-Inhaltsströme, wie z. B. Audio, Video, synthetische Graphen usw. Sie werden von den Komprimierungs-/Codierungs-Untersystemen des Players verarbeitet. Der Szenebeschreibungs-Graphen-Strom wird zum Aufbauen des Szenebeschreibungs-Graphen verwendet. Dies teilt dem Composite- und-Render 2309 mit, wie die Szene aufzubauen ist und kann als "Skript" angesehen werden. Die Objektdeskriptoren enthalten Deskriptionsinformationen über die AVOs und die SD-Graphen-Updates.
  • Um ein CMPS (z. B. CMPS 2302) aufzunehmen und den Inhalt effektiv zu schützen, muss die Player-Struktur auf mehrere Arten modifiziert werden:
    • • Bestimmte Datenwege müssen zu bzw. von den CMPS umgeleitet werden.
    • • Bestimmte Puffer in den SDG-, AVO-Decode- und Objektdeskriptor-Modulen müssen gesichert werden.
    • • Rückkopplungspfade von dem Benutzer und den Composite-und-Render-Einheiten zu dem CMPS müssen zugefügt werden.
  • Damit das CMPS 2302 mit der MPEG-4 Einheit kommunizieren und diese den Inhalt effektiv verwalten kann, müssen wir die CMPO-Struktur und Zuordnungsprotokolle spezifizieren und wir müssen die Kommunikationsprotokolle über die Rückkopplungssysteme definieren (von dem Kompositor und dem Benutzer).
  • Die strukturellen Modifizierungen am Player sind in 23 gezeigt. Die prinzipiellen Änderungen sind:
    • • Alle elementaren Ströme werden nunmehr durch das CMPS 2302 geleitet.
    • • direkter Kommunikationspfad zwischen Demux 2305 und CMPS 2302.
    • • ein erforderliches "Inhaltsfreigabe- und Entschlüsselungs"-Modul 2315 im CMPS 2302.
    • • Das Zufügen einer Rückkopplungsschleife (z. B. Leitung 2313) vom Composite und Render 2309 zum CMPS 2302.
    • • Bidirektionale Benutzerinteraktion direkt mit dem CMPS 2302 über die Leitung 2316.
  • Für M4v2P werden darüber hinaus CMP-Objekte vorzugsweise allen elementaren Strömen zugeordnet. Elementare Ströme, die der Autor als nicht zu schützen auswählt, sind immer noch von einem "ungeschützter Inhalt"-CMPO gekennzeichnet. Die CMPOs sind die primären Mittel, um an den Inhalt Regelinformationen anzuhängen. Inhalt bezieht sich hier nicht nur auf AVOs, sondern auch auf den Szenebeschreibungs-Graphen. Der Szenebeschreibungs-Graph kann einen großen Wert haben und wird von daher von dem CMPS 2302 geschützt und verwaltet werden müssen.
  • Der direkte Pfad vom Demux 2305 zum CMPS 2302 wird dazu verwendet, einen CUTS spezifischen Header weiterzuleiten, der möglicherweise Geschäftsmodellinformationen enthält, der Geschäftsmodellinformationen am Beginn einer Benutzersitzung kommuniziert. Dieser Header kann verwendet werden, um Benutzeridentifizierung und -authentifizierung einzuleiten, Regeln und Konsequenzen mitzuteilen, und eine Vorabinteraktion mit den Regeln einzuleiten (Auswahl von Qualität des Service (QoS), Abrechnung etc.) Die Kommunikation des Benutzers mit dem CMPS 2302 wird über einen nicht-standardisierten Kanal durchgeführt (z. B. Leitung 2316). Der CMPS Designer kann eine unabhängige API zum Framing dieser Interaktionen vorsehen.
  • Der Rückkopplungspfad 2313 aus dem Composite-und-Render-Block 2309 hat einen wichtigen Zweck. Der Pfad wird dazu verwendet, um zu überprüfen, dass das System dem Benutzer tatsächlich eine gegebene Szene dargestellt hat. Elementare Ströme, die von ihren entsprechenden Modulen verarbeitet werden, müssen dem Benutzer nicht zwangsweise gezeigt werden. Darüber hinaus gibt es mehrere Betrugsszenarien, bei denen ein Angreifer einmal bezahlen und mehrfach sehen könnte. Der Rückkopplungspfad ermöglicht hier dem CMPS 2302 das Rendering zu überprüfen und von daher eine genauere Abrechnung durchzuführen. Diese Rückkopplung wird ausgeführt, indem der Composite-und-Render-Block 2309 gezwungen wird, einen Start-Event auszugeben, der die Einleitung des Rendering eines gegebenen Objekts signalisiert, das von einem Stopp-Event bei Beendigung abgeschlossen wird. Die Rückkopplungs-Signalgebungs-Prozess kann optional erfolgen, indem ein CMP-Benachrichtigungsflag vorgesehen wird, das gekippt werden kann, um anzuzeigen, ob das CMPS 2302 benachrichtigt werden soll oder nicht. Alle CMPOs müssten diese Flag tragen.
  • Die letzte Modifizierung an der Struktur ist die Erfordernis, dass die Klartext-Puffer in den AVO-, SDG- und Objektdeskriptor-Prozessoren und in dem Composite-und-Render-Block gesichert werden. Dies soll verhindern, dass ein Raubkopierer in diesen Puffern vorhandenen Inhalt stiehlt. Praktisch gesehen kann dies schwierig sein, da ein Manipulieren an diesen Strukturen leicht die Synchronisation der Ströme zerstören kann. Ein höherer Sicherheitszustand würde sich jedoch aus einem Anordnen dieser Puffer in einer geschützten Verarbeitungsumgebung ergeben.
  • Das CMPS 2302 regelt das Funktionieren des Players 2301, im Einklang mit folgendem:
    • • Kommunikationsmechanismus zwischen CMPS 2302 und dem MPEG-4 Player (über CMPOs)
    • • ein Inhaltsfreigabe- und -entschlüsselungs-Untersystem
    • • ein Versionsauthentifizierungsuntersystem
    • • ausreichend Performance, um nicht mit der Stromverarbeitung in den MPEG-4 Komponenten zu interterieren
  • Das CMPS 2302 kann einen bidirektionalen Seitenkanal haben, der extern zum MPEG-4 Player ist und auch zum Austausch von CMP-Informationen genutzt werden kann. Darüber hinaus kann der CMPS-Designer wählen, eine Benutzerschnittstelle API vorzusehen, die dem Benutzer die Möglichkeit bietet, mit der Inhalts- und Rechteverwaltungsseite der Stromverwaltung zu kommunizieren (z. B. durch die Leitung 2316).
  • Verschlüsselter Inhalt wird von dem CMPS 2302 entschlüsselt und freigegeben als Funktion der Regeln, die dem geschützten Inhalt zugeordnet sind, und den Ergebnissen der Benutzerinteraktion mit dem CMPS 2302. Unverschlüsselter Inhalt wird durch das CMPS 2302 geleitet und von dazugehörigen Regeln und der Benutzerinteraktion mit dem CMPS 2302 geregelt. Als Folge dieser Regeln und der Benutzerinteraktion muss das CMPS 2302 mit den SDG und AVO Kodier-Modulen (z. B. 2310, 2311) handeln, um die Szenenstruktur und/oder den QoS-Grad zu ändern.
  • Schließlich kann der CMPS-Designer wählen, dass das CMPS 2302 Prüfweg-Informationen erzeugt, die an eine Clearinghaus-Behörde über einen CMPS-Seitenkanalport 2318 oder als verschlüsselter Inhalt, der in den MPEG-4 Bitstrom gepackt wurde, gesendet werden können.
  • Die MPEG-4 v1 Systems CD verwendet den Begriff "Objekt" locker. In diesem Dokument wird "Objekt" verwendet, um speziell eine Datenstruktur zu bezeichnen, die aus einem oder mehreren der Datenpfade in 23 fließt.
  • Die Verwendung mehrfacher SD-Graphen-Aktualisierungsströme, jeweils mit ihrem eigenen CMPO, ermöglicht dem Autor, an dem SD-Graphen willkürlich spezifische Kontrollen anzuwenden. Beispielsweise kann jeder Knoten in dem SD-Graphen von einem separaten SD-Graphen-Aktualisierungsstrom erzeugt oder modifiziert werden. Jeder dieser Ströme wird ein eigenes CMPO und eine eigene ID haben. So kann das CMPS die Erzeugung und Modifizierung jedes Knoten freigeben und entschlüsseln und Rückkopplungsinformationen für jeden Knoten einzeln empfangen. Die praktischen Implikationen zur Kontrolle der Freigabe und zum Implementieren von Konsequenzen sollten damit vergleichbar sein, auf jedem Knoten des SD-Graphen ein CMPO zu haben, ohne die Kosten für ein Vorhandensein eines CMPO auf jedem SD-Graphen-Knoten.
  • Grundprinzipien gemäß der vorliegenden Erfindung können anhand der folgenden Beispiele aufgezeigt werden:
    Im ersten Beispiel handelt es sich um ein zweisprachiges Video mit englischem oder französischem Soundtrack. Der Benutzer kann während der Wiedergabe auswählen, ob er Englisch oder Französisch hören möchte. Die Basisdarstellung kostet $1. Wenn der französische Soundtrack wiedergegeben wird, gibt es einen Aufschlag von $ 0,50. Wenn der Benutzer zwischen Französisch und Englisch hin- und herschaltet, während eines einzigen Sehens der Präsentation, wird der Aufschlag von $ 0.50 nur einmal berechnet.
  • In diesem Beispiel wird es vier elementare Ströme geben:
    Der Szenebeschreibungs-Graphen-Aktualisierungsstrom wird ein CMPO haben. Das CMPO bedeutet ein Gebühr von $ 1.00, die der Benutzung des Inhalts zugeordnet ist. Der Szene-Beschreibungs-Graph zeigt das Video, englisches Audio und sieht einen Knopf vor, der dem Benutzer ermöglicht, auf Französisch umzuschalten. Wenn der Benutzer auf diesen Knopf drückt, stoppt das Englisch, das Französisch fährt ab dieser Stelle fort, und der Knopf ändert sich zu einem Knopf zum Umschalten auf Englisch. (Optional kann ein kleiner Dialog am Beginn vorhanden sein, um den Benutzer zu gestatten, die ursprüngliche Sprache auszuwählen. Dies kann alles einfach im SD-Graphen gemacht werden.)
  • Der Video-Strom mit dem CMPO wird sagen, dass er nur freigegeben werden kann, wenn der obige Szene-Beschreibungs-Graphen-Aktualisierungsstrom freigegeben wird.
  • Der englische Audio-Strom wird ähnlich dem Video-Strom sein.
  • Der französische Audio-Strom wird ähnlich dem Video-Strom sein, aber es kommt zu einer Gebühr von $ 0.50, wenn er im Rückkopplungskanal gesehen wird. (Das CMPS darf nicht zweimal zählen, wenn der Benutzer zwischen den beiden in einer einzigen Wiedergabe der Darstellung hin- und herschaltet.)
  • Eine wichtige Voraussetzung ist, dass die ID für den SD-Graphen-Aktualisierungsstrom in dem Rückkopplungspfad auftaucht (z. B. Rückkopplungspfad 2313). Dadurch weiß das CMPS 2302, wann die Darstellung stoppt und endet, so dass das CMPS 2302 für das französische Audio korrekt abrechnen kann.
  • Die Regeln, die die Freigabe der Video- und Audio-Ströme regeln, können einige Variationen enthalten. Die Regeln für diese Ströme können beispielsweise etwas angeben wie "wenn sie nicht die ID für den Szene-Beschreibungs-Graphen-Aktualisierungsstrom X im Rückkopplungskanal sehen, stoppen sie die Freigabe dieses Stroms". Wenn die Hauptdarstellung nicht auf der Anzeige ist, dann sollte es das Video nicht sein. Dies bindet das Video an diese eine Darstellung. Die Verwendung des Videos in einer anderen Darstellung würde den Zugriff auf das originale Video und nicht nur auf diese geschützte Version desselben erfordern.
  • In einem zweiten Beispiel möchte ein Autor eine Darstellung mit einer gebührenfreien Eröffnungssequenz oder "Trailer". Wenn der Benutzer den richtigen Knopf drückt, bewegt sich das System in eine gebührenpflichtige Darstellung, die als ein Satz aus "Akten" organisiert ist.
  • Mehrfache SD-Graphen-Aktualisierungsströme können einen Szenengraphen aktualisieren. Mehrere SD-Graphen-Aktualisierungsströme können parallel geöffnet sein. Die Zeitstempel auf den ALUs in den Strömen werden zum Synchronisieren und Koordinieren verwendet.
  • Der Trailer und jeder Akt werden von einem separaten SD-Graphen-Aktualisierungsstrom mit einem separaten CMPO dargestellt. Wahrscheinlich ist ein zusätz licher SD-Graphen-Aktualisierungsstrom vorhanden, der einen einfachen Wurzelknoten erzeugt, der unsichtbar und leise ist. Dieser Knoten bringt je nach Bedarf die anderen Komponenten der Darstellung ein.
  • Die vorstehende Beschreibung von Ausführungen der Erfindung wurde zur Veranschaulichung und Beschreibung dargelegt. Sie ist nicht erschöpfend und schränkt die Erfindung nicht auf die genau offenbarte Form ein. Modifizierungen und Variationen sind angesichts der obigen Lehren möglich oder können sich aus der Umsetzung der Erfindung ergeben. Beispielsweise umfasst die beschriebene Ausführung Software, jedoch kann die vorliegende Erfindung als Kombination aus Hardware und Software und in Hardware allein umgesetzt werden. Die Erfindung kann mit objekt-orientierten und nicht-objekt-orientierten Programmiersystemen umgesetzt werden. Der Schutzumfang der Erfindung wird durch die Ansprüche und deren Äquivalente definiert.

Claims (19)

  1. Streaming-Media-Player zur Verwendung mit einem Paketvermittlungsnetz und mit Bereitstellung eines Inhaltsschutzes sowie einer Verwaltung der digitalen Rechte, wobei der Media-Player umfasst: (a) einen Anschluss, der derart konfiguriert ist, dass er einen digitalen Bitstrom (2) empfängt, der Pakete von Informationen aus einer Vielzahl von Teilströmen umfasst, die miteinander vermischt worden sind, wobei die Vielzahl von Teilströmen umfasst: einen Inhaltsstrom, der Inhaltspakete umfasst, die einen Inhalt enthalten, der komprimiert und zumindest teilweise verschlüsselt ist, einen Organisationsstrom, der Organisationspakete enthält, die Organisationsinformationen bezüglich des wiederzugebenden Werkes enthält, und einen Kontrollstrom, der Kontrollpakete umfasst, die einen sicheren Behälter haben, der Kontrollinformationen zum Kontrollieren der Benutzung des Inhalts enthält, einschließlich mindestens eines Schlüssels, der sich zur Entschlüsselung mindestens eines Teils des Inhalts eignet, (b) einen Demultiplexer (7), der dafür sorgt, dass die Pakete getrennt und verteilt werden, (c) eine Kontrolleinheit (13), die dafür sorgt, dass sichere Behälter geöffnet und kryptographische Schlüssel herausgezogen werden, (d) eine Entschlüsselungseinheit (20), die dafür sorgt, dass die Inhaltspakete unter Verwendung eines kryptographischen Schlüssels entschlüsselt werden, (e) eine Dekomprimierungseinheit (10), die dafür sorgt, dass die entschlüsselten Inhaltspakete dekomprimiert und dekomprimierte Objekte zur Wiedergabe ausgegeben werden, (f) eine Organisationseinheit (8), die dafür sorgt, dass Organisationspakete aus dem Demultiplexer empfangen und Organisationsinformationen, die die Organisation und die Beziehung von Objekten zur Wiedergabe spezifiziert, ausgegeben werden, (g) einen Composite-Block (11), der dafür sorgt, dass dekomprimierte Objekte, die aus der Dekomprimierungseinheit gemäß aus der Organisationseinheit ausgegeben Organisationsinformationen ausgegeben werden, organisiert werden, wobei die Informationen die Organisation und die Beziehung wiedergegebener Objekte spezifizieren, und dadurch dafür sorgt, dass die dekomprimierten Objekte als Werk wiedergegeben werden, und (h) einen Rückkopplungspfad (16) von dem Composite-Block (11) zur Kontrolleinheit (13), um der Kontrolleinheit zu ermöglichen, Informationen aus dem Composite-Block bezüglich der dekomprimierten Inhaltsinformationen zu empfangen, was die Identifizierung von Objekten, die wiedergegeben werden sollen oder wiedergegeben worden sind, einschließt.
  2. Player nach Anspruch 1, ferner umfassend: eine Stream-Steuerung (17), die betriebsfähig mit der Dekomprimierungseinheit verbunden ist, wobei die Stream-Steuerung die Entschlüsselungseinheit (20) enthält, und einen Pfad zwischen der Kontrollanordnung und der Stream-Steuerung (17), um der Kontrolleinheit (13) zu ermöglichen, mindestens einen Schlüssel an die Stream-Steuerung (17) zur Verwendung mit der Entschlüsselungsfunktion der Stream-Steuerung weiterzuleiten.
  3. Player nach Anspruch 1 oder 2, wobei der digitale Bitstrom (2) im MPEG4-Format verschlüsselt ist.
  4. Player nach Anspruch 1 oder 2, wobei der digitale Bitstrom (2) im MP3-Format verschlüsselt ist.
  5. Player nach einem der vorhergehenden Ansprüche, wobei die Kontrolleinheit (13) eine Regel oder einen Regelsatz enthält, die bzw. der derart strukturiert ist, dass sie bzw. er die Benutzung des Inhalts kontrolliert, in Verbindung mit der Regulierung eines Teils wenigstens eines Teilstroms oder Objekts.
  6. Player nach Anspruch 5, wobei die Regel oder der Regelsatz von einer externen Quelle zugeführt wird.
  7. Player nach Anspruch 6, wobei die Regel oder der Regelsatz als Teil des digitalen Bitstroms zugeführt wird.
  8. Player nach Anspruch 5, wobei die die Regel oder der Regelsatz Bedingungen festlegt, unter denen der regulierte Teilstrom oder das Objekt entschlüsselt werden können.
  9. Player nach Anspruch 5, wobei die Regel oder der Regelsatz mindestens einen Aspekt eines Zugriffs auf oder einer Benutzung des regulierten Teilstroms oder Objekts reguliert.
  10. Player nach Anspruch 9, wobei der regulierte Aspekt das Erstellen von Kopien des regulierten Teilstroms oder Objekts einschließt.
  11. Player nach Anspruch 9, wobei der regulierte Aspekt das Übermitteln des regulierten Teilstroms oder Objekts durch einen digitalen Ausgabeanschluss einschließt.
  12. Player nach Anspruch 11, wobei die Regel oder der Regelsatz festsetzt, dass der regulierte Teilstrom oder das Objekt an eine zweite Einrichtung übertragen werden kann, wobei jedoch die Wiedergabe des regulierten Teilstroms oder Objekts in der ersten Einrichtung vor oder während der Übertragung gesperrt werden muss.
  13. Player nach Anspruch 12, wobei die zweite Einrichtung eine Wiedergabemöglichkeit enthält, mindestens ein Leistungsmerkmal, das in dem Streaming-Media-Player vorhanden ist, nicht hat und zumindest etwas portabler als der Streaming-Media-Player ist.
  14. Player nach Anspruch 8, wobei die Kontrollanordnung mindestens zwei Regeln enthält, die einen Zugriff auf oder eine Benutzung des gleichen regulierten Teilstroms oder Objekts regulieren.
  15. Player nach Anspruch 14, wobei eine erste der beiden Regeln von einer ersten Entität bereitgestellt wurde und die zweite der beiden Regeln von einer zweiten Entität bereitgestellt wurde.
  16. Player nach Anspruch 15, wobei die erste Regel mindestens einen Systemdesign- oder Informationsformat-Operationsaspekt der zweiten Regel kontrolliert.
  17. Player nach Anspruch 9, wobei der regulierte Aspekt die Verwendung mindestens eines Budgets (718) einschließt.
  18. Player nach Anspruch 9, wobei der regulierte Aspekt eine Anforderung einschließt, dass ein Audit-Informations-Teilstrom vorgesehen wird.
  19. Player nach einem der vorhergehenden Ansprüche, wobei die Kontrollanordnung eine Manipulationsschutzeinheit enthält.
DE69925466T 1998-03-16 1999-03-16 Streaming-media-abspielgerät mit fortdauernde kontrolle und schutz von medieninhalt Expired - Lifetime DE69925466T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US7805398P 1998-03-16 1998-03-16
US78053P 1998-03-16
PCT/US1999/005734 WO1999048296A1 (en) 1998-03-16 1999-03-16 Methods and apparatus for continuous control and protection of media content

Publications (2)

Publication Number Publication Date
DE69925466D1 DE69925466D1 (de) 2005-06-30
DE69925466T2 true DE69925466T2 (de) 2006-02-02

Family

ID=22141634

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69925466T Expired - Lifetime DE69925466T2 (de) 1998-03-16 1999-03-16 Streaming-media-abspielgerät mit fortdauernde kontrolle und schutz von medieninhalt

Country Status (8)

Country Link
EP (3) EP1062812B1 (de)
JP (3) JP4511029B2 (de)
CN (3) CN100534180C (de)
AT (1) ATE296519T1 (de)
CA (2) CA2425741C (de)
DE (1) DE69925466T2 (de)
HK (1) HK1075716A1 (de)
WO (1) WO1999048296A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589124B2 (en) 2014-05-29 2017-03-07 Comcast Cable Communications, Llc Steganographic access controls

Families Citing this family (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US6963859B2 (en) 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
EP1555591B1 (de) 1995-02-13 2013-08-14 Intertrust Technologies Corp. Verfahren und Vorrichtung zur gesicherten Transaktionsverwaltung
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US6233684B1 (en) 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
JP4109772B2 (ja) 1998-12-03 2008-07-02 キヤノン株式会社 データ処理方法及びその装置
JP4227229B2 (ja) 1998-12-03 2009-02-18 キヤノン株式会社 画像処理装置及び方法及びシステム並びに記憶媒体
SG75189A1 (en) * 1998-12-04 2000-09-19 Canon Kk Image processing apparatus method therefor and recording medium storing image processing program
JP3976942B2 (ja) 1998-12-18 2007-09-19 キヤノン株式会社 画像処理装置及び方法、画像処理プログラムが記録されたコンピュータ可読記録媒体
US7624046B2 (en) 1998-12-24 2009-11-24 Universal Music Group, Inc. Electronic music/media distribution system
US6918059B1 (en) 1999-04-28 2005-07-12 Universal Music Group Method and system for handling errors in a distributed computer system
US6564253B1 (en) 1999-05-07 2003-05-13 Recording Industry Association Of America Content authorization system over networks including searching and reporting for unauthorized content locations
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
US6959384B1 (en) 1999-12-14 2005-10-25 Intertrust Technologies Corporation Systems and methods for authenticating and protecting the integrity of data streams and other data
WO2001006374A2 (en) 1999-07-16 2001-01-25 Intertrust Technologies Corp. System and method for securing an untrusted storage
US7152165B1 (en) 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
ATE306098T1 (de) 1999-07-30 2005-10-15 Intertrust Tech Corp Verfahren und systeme zur transaktionsaufzeichnungsübertragung unter anwendung von schwellen und einem mehrstufigen protokoll
EP1079627A1 (de) * 1999-08-27 2001-02-28 Canon Kabushiki Kaisha Kopierschutz für MPEG-4 mit digitalem Wasserzeichen
US7406603B1 (en) 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
US6985885B1 (en) 1999-09-21 2006-01-10 Intertrust Technologies Corp. Systems and methods for pricing and selling digital goods
JP4449125B2 (ja) * 1999-11-09 2010-04-14 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US6792113B1 (en) 1999-12-20 2004-09-14 Microsoft Corporation Adaptable security mechanism for preventing unauthorized access of digital data
US6832316B1 (en) 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
SG103829A1 (en) 2000-01-28 2004-05-26 Canon Kk Digital contents distribution system, digital contents distribution method, roaming server, information processor, and information processing method
EP1263229A4 (de) * 2000-01-31 2003-08-20 Canon Kk Datenverarbeitungseinrichtung, datenverarbeitungssystem, datenverarbeitungsverfahren und speichermedium
JP2001218204A (ja) * 2000-01-31 2001-08-10 Canon Inc データ処理方法及び装置並びに記憶媒体
KR100799090B1 (ko) * 2000-02-19 2008-01-29 디지맥 코포레이션 워터마크 인코더 및 디코더를 작동시키는 소프트웨어 및 장치들
US8463780B1 (en) 2000-03-08 2013-06-11 Music Choice System and method for providing a personalized media service
US7325043B1 (en) 2000-03-08 2008-01-29 Music Choice System and method for providing a personalized media service
US7783722B1 (en) 2000-03-08 2010-08-24 Music Choice Personalized audio system and method
US7275256B1 (en) 2001-08-28 2007-09-25 Music Choice System and method for providing an interactive, visual complement to an audio program
US7133924B1 (en) 2000-03-08 2006-11-07 Music Choice Personalized audio system and method
US7320025B1 (en) 2002-03-18 2008-01-15 Music Choice Systems and methods for providing a broadcast entertainment service and an on-demand entertainment service
US7856485B2 (en) 2000-03-08 2010-12-21 Music Choice Systems and methods for providing customized media channels
US6760441B1 (en) * 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
EP1273172A1 (de) * 2000-04-06 2003-01-08 Koninklijke Philips Electronics N.V. System für objektbezogenen-bedingten-zugang
US7085839B1 (en) 2000-04-07 2006-08-01 Intertrust Technologies Corporation Network content management
US6879963B1 (en) 2000-04-12 2005-04-12 Music Choice Cross channel delivery system and method
JP2001359069A (ja) * 2000-04-13 2001-12-26 Canon Inc 情報処理装置及びその方法並びにプログラムコード、記憶媒体
US7313692B2 (en) 2000-05-19 2007-12-25 Intertrust Technologies Corp. Trust management systems and methods
DE60126119T2 (de) 2000-05-26 2007-11-15 Canon K.K. Inhaltszeugungsverfahren, inhaltswiedergabeverfahren und -gerät
US7107448B1 (en) 2000-06-04 2006-09-12 Intertrust Technologies Corporation Systems and methods for governing content rendering, protection, and management applications
US7213266B1 (en) 2000-06-09 2007-05-01 Intertrust Technologies Corp. Systems and methods for managing and protecting electronic content and applications
US7315764B1 (en) 2000-06-14 2008-01-01 Marvell International Ltd Integrated circuit, method, and computer program product for recording and reproducing digital data
US7457676B1 (en) 2000-06-14 2008-11-25 Marvell International Ltd. Vehicle for recording and reproducing digital data
US7546172B1 (en) 2000-06-14 2009-06-09 Marvell International Ltd. Apparatus, method, and computer program product for recording and reproducing digital data
US7778736B2 (en) 2000-06-14 2010-08-17 Marvell International Ltd. Apparatus, method, and computer program for sprinkler control
US7577247B1 (en) 2000-06-14 2009-08-18 Marvell International Ltd. Apparatus and method for telephone, intercom, and clock
US7298252B1 (en) 2000-06-14 2007-11-20 Marvell International Ltd. Apparatus, method, and computer program for an alarm system
US7050586B1 (en) 2000-06-19 2006-05-23 Intertrust Technologies Corporation Systems and methods for retrofitting electronic appliances to accept different content formats
US7231043B2 (en) * 2000-06-20 2007-06-12 Canon Kabushiki Kaisha Data processing apparatus and method, and computer-readable storage medium on which program for executing data processing is stored
IT1316201B1 (it) * 2000-06-21 2003-04-03 Paolo Rinaldi Sistema on-line di accesso condizionato e controllo dell'audienceper servizi di comunicazione di tipo broadcast e multicast.
US6441765B1 (en) 2000-08-22 2002-08-27 Marvell International, Ltd. Analog to digital converter with enhanced differential non-linearity
US6400214B1 (en) 2000-08-28 2002-06-04 Marvell International, Ltd. Switched capacitor filter for reference voltages in analog to digital converter
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US6396334B1 (en) 2000-08-28 2002-05-28 Marvell International, Ltd. Charge pump for reference voltages in analog to digital converter
US6417725B1 (en) 2000-08-28 2002-07-09 Marvell International, Ltd. High speed reference buffer
US20030196092A1 (en) 2000-08-28 2003-10-16 Contentguard Holdings, Inc. Method and apparatus for sharing secure communications
US6369554B1 (en) 2000-09-01 2002-04-09 Marvell International, Ltd. Linear regulator which provides stabilized current flow
US6760042B2 (en) 2000-09-15 2004-07-06 International Business Machines Corporation System and method of processing MPEG streams for storyboard and rights metadata insertion
US20020042754A1 (en) 2000-10-10 2002-04-11 Del Beccaro David J. System and method for receiving broadcast audio/video works and for enabling a consumer to purchase the received audio/video works
US7277765B1 (en) 2000-10-12 2007-10-02 Bose Corporation Interactive sound reproducing
AU1090401A (en) * 2000-10-16 2002-04-29 Recording Ind Association America Content authorization system over networks including the internet and method fortransmitting same
US7343324B2 (en) 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
US7177857B2 (en) * 2000-11-24 2007-02-13 Matsushita Electric Industrial Co., Ltd. Apparatus and method for creating distribution content
JP4029569B2 (ja) 2000-12-13 2008-01-09 株式会社日立製作所 ディジタル情報記録再生装置、記録装置、受信装置および送信装置
US20020077984A1 (en) * 2000-12-19 2002-06-20 Mark Ireton Enabling protected digital media to be shared between playback devices
US6912294B2 (en) 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US8069116B2 (en) 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US7028009B2 (en) 2001-01-17 2006-04-11 Contentguardiholdings, Inc. Method and apparatus for distributing enforceable property rights
DE10109441A1 (de) * 2001-02-27 2002-09-12 Mayah Comm Gmbh Verfahren zum Erkennen audio-visueller Daten in Übertragungsnetzen, insbesondere dem Internet
JP4311899B2 (ja) 2001-03-02 2009-08-12 パナソニック株式会社 コンテンツの配信および保護を行なう方法および装置
JP2002290351A (ja) * 2001-03-22 2002-10-04 Dainippon Printing Co Ltd デジタルデータ放送システムの機能拡張方法
US7580988B2 (en) 2001-04-05 2009-08-25 Intertrust Technologies Corporation System and methods for managing the distribution of electronic content
US7136840B2 (en) 2001-04-20 2006-11-14 Intertrust Technologies Corp. Systems and methods for conducting transactions and communications using a trusted third party
US7725401B2 (en) 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8275709B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8099364B2 (en) 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US8001053B2 (en) 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US6895503B2 (en) 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
EP1398902A4 (de) * 2001-06-04 2007-02-28 Matsushita Electric Ind Co Ltd Vorrichtung und verfahren für ein flexibles und gemeinsames ipmp-system zum bereitstellen und schützen von inhalt
JP2004530222A (ja) 2001-06-07 2004-09-30 コンテントガード ホールディングズ インコーポレイテッド ディジタルライツ・マネジメント・システムで多数の信頼ゾーンをサポートする方法および装置
US7774280B2 (en) 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
US7581103B2 (en) 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
EP1417838A1 (de) * 2001-08-09 2004-05-12 Matsushita Electric Industrial Co., Ltd. Einheitliches verwalten von rechten für ein ipmp-system
EP1430720B1 (de) 2001-09-03 2006-09-27 Matsushita Electric Industrial Co., Ltd. Gerät für ein flexibles und gemeinsames ipmp-system für mpeg-2 inhaltsverteilung und -schutz
WO2003039155A2 (en) 2001-10-29 2003-05-08 Matsushita Electric Industrial Co., Ltd. Apparatus of a baseline dvb-cpcm
SE521906C2 (sv) * 2001-11-01 2003-12-16 Kreatel Comm Ab Metod och anordning för kryptering av multimediainnehåll
JP4136534B2 (ja) * 2001-11-02 2008-08-20 キヤノン株式会社 デジタルコンテンツ処理装置、デジタルコンテンツ処理方法、コンピュータプログラム及び記録媒体
EP1309181A1 (de) * 2001-11-06 2003-05-07 Thomson Licensing S.A. Gerät, Verfahren und System zur Anpassung von Multimediadaten
US7974923B2 (en) 2001-11-20 2011-07-05 Contentguard Holdings, Inc. Extensible rights expression processing system
US7840488B2 (en) 2001-11-20 2010-11-23 Contentguard Holdings, Inc. System and method for granting access to an item or permission to use an item based on configurable conditions
EP1456763A4 (de) 2001-11-20 2005-10-12 Contentguard Holdings Inc Systeme und verfahren zum erzeugen, manipulieren und verarbeiten von rechten und vertragsausdrücken unter verwendung von vorlagen mit token
DE60233822D1 (de) * 2001-12-11 2009-11-05 Ericsson Telefon Ab L M Methode des rechtmanagements für strömende media
GB0130041D0 (en) 2001-12-14 2002-02-06 Ibm Preparing multimedia content in a distributed data processing system
US20030126608A1 (en) * 2001-12-31 2003-07-03 General Instrument Corporation Methods and systems for providing streaming media content in existing video delivery systems
JP3925218B2 (ja) 2002-01-30 2007-06-06 ソニー株式会社 ストリーミングシステム及びストリーミング方法、ストリーミングサーバ及びデータ配信方法、クライアント端末及びデータ復号方法、並びにプログラム及び記録媒体
JP2003229843A (ja) * 2002-01-31 2003-08-15 Sony Corp ストリーミングシステム及びストリーミング方法、クライアント端末及びコンテンツデータ復号方法、ストリームサーバ及びストリーム配信方法、オーサリング装置及びオーサリング方法、並びにプログラム及び記録媒体
KR20040081162A (ko) * 2002-02-01 2004-09-20 코닌클리케 필립스 일렉트로닉스 엔.브이. 워터마크 기반 액세스 제어 방법 및 디바이스
EP1474897B1 (de) 2002-02-05 2011-12-21 Panasonic Corporation Verfahren zum verteilten ipmp-einrichtungsnachrichten verarbeitung und führen von rechten in mpeg-ipmp-inhalt
DE60318817T2 (de) * 2002-02-08 2009-01-22 Matsushita Electric Industrial Co., Ltd., Kadoma-shi Prozess zur ipmp-schema-beschreibung für einen digitalen artikel
KR20040090389A (ko) * 2002-03-05 2004-10-22 마츠시타 덴끼 산교 가부시키가이샤 Mpeg-21 ipmp 실행방법
KR100703521B1 (ko) 2002-03-14 2007-04-03 콘텐트가드 홀딩즈 인코포레이티드 사용권리 표현을 처리하기 위한 방법 및 장치
US7805371B2 (en) 2002-03-14 2010-09-28 Contentguard Holdings, Inc. Rights expression profile system and method
CN1647537A (zh) * 2002-04-18 2005-07-27 皇家飞利浦电子股份有限公司 在条件性访问系统中测试内容
US7149899B2 (en) 2002-04-25 2006-12-12 Intertrust Technologies Corp. Establishing a secure channel with a human user
US7383570B2 (en) 2002-04-25 2008-06-03 Intertrust Technologies, Corp. Secure authentication systems and methods
US8543511B2 (en) 2002-04-29 2013-09-24 Contentguard Holdings, Inc. System and method for specifying and processing legality expressions
AU2003242951A1 (en) * 2002-07-22 2004-02-09 Koninklijke Philips Electronics N.V. Regulating content usage in a device
US7653928B2 (en) * 2002-08-30 2010-01-26 Sony Corporation Remote user interface for media player
US7089429B2 (en) * 2002-11-25 2006-08-08 Nokia Corporation Creation of local usage rights voucher
EP1574057A1 (de) 2002-12-12 2005-09-14 Koninklijke Philips Electronics N.V. Vorrichtung und verfahren zur vermeidung der kanalumschaltung während der werbungswiedergabe
FR2849567B1 (fr) * 2002-12-31 2005-04-01 Medialive Dispositif securise pour la diffusion, l'acces, la copie, l'enregistrement, la visualisation a la demande et la gestion des droits des images photographiques de type jpeg
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7370212B2 (en) * 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
KR100930353B1 (ko) * 2003-03-06 2009-12-08 엘지전자 주식회사 디스크 플레이어의 접속요청 처리방법
US7626609B1 (en) 2003-03-07 2009-12-01 Music Choice Method and system for displaying content while reducing burn-in of a display
CN101895738B (zh) 2003-05-09 2012-05-02 松下电器产业株式会社 使用mpeg-4 ipmp扩展的isma媒体流的保护装置
JP4562417B2 (ja) * 2003-05-09 2010-10-13 パナソニック株式会社 Mpeg−4ipmp拡張されたisma媒体ストリームの送信装置
WO2004100441A1 (ja) * 2003-05-09 2004-11-18 Matsushita Electric Industrial Co., Ltd. Mpeg-4 ipmp拡張されたisma媒体ストリームの受信装置
CA2527668A1 (en) 2003-06-02 2004-12-16 Liquid Machines, Inc. Managing data objects in dynamic, distributed and collaborative contexts
KR101024237B1 (ko) 2003-06-05 2011-03-29 인터트러스트 테크놀로지즈 코포레이션 P2p 서비스 편성을 위한 상호운용 시스템 및 방법
JP2004361868A (ja) * 2003-06-09 2004-12-24 Sony Corp データ生成方法およびデータ生成装置、データ復元方法およびデータ復元装置、並びにプログラム
US7685642B2 (en) 2003-06-26 2010-03-23 Contentguard Holdings, Inc. System and method for controlling rights expressions by stakeholders of an item
KR100643278B1 (ko) * 2003-10-22 2006-11-10 삼성전자주식회사 휴대용 저장 장치의 디지털 저작권을 관리하는 방법 및 장치
JP2005204175A (ja) * 2004-01-16 2005-07-28 Ntt Communications Kk デジタルコンテンツ暗号化装置、デジタルコンテンツ暗号化方法およびデジタルコンテンツ暗号化プログラム、並びにデジタルコンテンツ復号化プログラム
US20050207569A1 (en) * 2004-03-16 2005-09-22 Exavio, Inc Methods and apparatus for preparing data for encrypted transmission
FR2870952B1 (fr) * 2004-05-25 2007-10-19 Lassad Toumi Procede de telechargement avec insertion publicitaire et player specifique
EP1617667A3 (de) * 2004-06-18 2008-11-05 Top Up TV Europe Limited Kontrolle über den Zugrif auf Rundfunkinhalt
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US7433473B2 (en) * 2004-09-10 2008-10-07 Nagracard S.A. Data transmission method between a broadcasting center and a multimedia unit
US20090063871A1 (en) * 2004-10-11 2009-03-05 Dirk Frijters Method and device for managing proprietary data format content
US8660961B2 (en) 2004-11-18 2014-02-25 Contentguard Holdings, Inc. Method, system, and device for license-centric content consumption
US7613383B2 (en) 2004-12-02 2009-11-03 Hitachi, Ltd. Editing method and recording and reproducing device
US8074056B1 (en) 2005-02-02 2011-12-06 Marvell International Ltd. Variable length pipeline processor architecture
US8195922B2 (en) 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US7630497B2 (en) * 2005-09-19 2009-12-08 International Business Machines Corporation System and method for assigning sequence keys to a media player to enable hybrid traitor tracing
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US9626667B2 (en) 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
KR101248296B1 (ko) 2005-10-18 2013-03-27 인터트러스트 테크놀로지즈 코포레이션 디지털 권리 관리를 위한 방법
US7720767B2 (en) 2005-10-24 2010-05-18 Contentguard Holdings, Inc. Method and system to support dynamic rights and resources sharing
KR101240053B1 (ko) * 2005-12-16 2013-03-06 엘지전자 주식회사 멀티 스트림 컨텐츠 복제 방지 방법 및 시스템
US7987514B2 (en) 2006-04-04 2011-07-26 Intertrust Technologies Corp. Systems and methods for retrofitting electronic appliances to accept different content formats
JP4781890B2 (ja) * 2006-04-11 2011-09-28 日本電信電話株式会社 通信方法及び通信システム
KR100976729B1 (ko) * 2006-10-17 2010-08-19 한국전자통신연구원 Dmb콘텐츠의 통합 파일 포맷과, 이러한 통합 파일포맷의 dmb 콘텐츠를 취급하는 방법 및 장치
BRPI0721448A2 (pt) * 2007-03-14 2013-01-15 M Biz Global Company Ltd mÉtodo para anéncio utilizando jogos de méltiplos jogadores màveis e sistema para o mesmo
EP2091254A1 (de) * 2008-02-15 2009-08-19 Jacopo Mangiavacchi Vorrichtung und Verfahren zum Schutz und zur Verteilung von Inhalten mithilfe alternativer Inhalte zur Bereitstellung eines Zugangs zu geschützten primären Inhalten
JP4764443B2 (ja) * 2008-03-14 2011-09-07 株式会社タイトー インターネット端末装置におけるプリペードカード処理方法
CN102144370B (zh) 2008-09-04 2015-04-15 富士通株式会社 发送装置、接收装置、发送方法及接收方法
GB2464120A (en) * 2008-10-03 2010-04-07 Sony Comp Entertainment Europe A method of crediting users for use of broadcast media
RU2448420C1 (ru) * 2010-09-30 2012-04-20 Государственное образовательное учреждение высшего профессионального образования "Пермский государственный технический университет" Способ потоковой стеганографической передачи двоичных данных
US9589110B2 (en) 2011-04-11 2017-03-07 Intertrust Technologies Corporation Information security systems and methods
US8892883B2 (en) 2011-05-02 2014-11-18 Crytek Ip Holding Llc Render service for remote access to applications
KR101221350B1 (ko) * 2011-05-06 2013-01-11 주식회사 네오위즈인터넷 콘텐츠 이용 방법, 콘텐츠 이용 장치, 모바일 단말기 및 기록매체
JP4996762B1 (ja) 2011-08-31 2012-08-08 株式会社東芝 電子機器およびコンテンツ転送方法
US9032494B2 (en) * 2011-11-10 2015-05-12 Sony Corporation Network-based revocation, compliance and keying of copy protection systems
EP2597883A1 (de) 2011-11-22 2013-05-29 Nagravision S.A. Verfahren, kryptographisches System und Sicherheitsmodul zum Entmischen von Inhaltspaketen eines digitalen Transportstroms
KR102157107B1 (ko) * 2011-11-29 2020-09-17 스포티파이 에이비 멀티 디바이스의 보안 애플리케이션 통합을 갖춘 컨텐츠 공급자
US8800004B2 (en) 2012-03-21 2014-08-05 Gary Martin SHANNON Computerized authorization system and method
US9197937B1 (en) 2012-04-26 2015-11-24 Music Choice Automatic on-demand navigation based on meta-data broadcast with media content
FR3024007B1 (fr) 2014-07-16 2016-08-26 Viaccess Sa Procede d'acces a un contenu multimedia protege par un terminal
US10219027B1 (en) 2014-10-24 2019-02-26 Music Choice System for providing music content to a user
US20160316247A1 (en) * 2015-04-27 2016-10-27 Ericsson Ab Program and device class entitlements in a media platform
CA3005476C (en) 2015-11-20 2024-03-05 Genetec Inc. Secure layered encryption of data streams
CA3005479A1 (en) 2015-11-20 2017-05-26 Genetec Inc. Media streaming
US10467405B2 (en) 2017-04-25 2019-11-05 Micro Focus Llc Format preserving encryption of floating point data
US10452564B2 (en) 2017-04-25 2019-10-22 Entit Software Llc Format preserving encryption of object code
FR3106685B1 (fr) * 2020-01-23 2022-05-06 Renault Sas Procédé et système de sécurisation des notifications audio d’un calculateur de véhicule
CN111339575B (zh) * 2020-02-28 2022-08-30 卡斯柯信号有限公司 适用于安全严苛系统的通用内嵌功能安全保障方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9322999D0 (en) * 1993-11-08 1994-01-05 Foley John P Terrestrial television standards converter
US5638443A (en) * 1994-11-23 1997-06-10 Xerox Corporation System for controlling the distribution and use of composite digital works
KR100332743B1 (ko) * 1994-11-26 2002-11-07 엘지전자주식회사 디지탈영상시스템의불법시청및복사방지방법및장치
KR0166923B1 (ko) * 1995-09-18 1999-03-20 구자홍 디지탈 방송 시스템의 불법 시청 및 복사 방지방법 및 장치
US6047103A (en) * 1995-10-09 2000-04-04 Matsushita Electric Industrial Co., Ltd. Data transmitter, data transmitting method, data receiver, information processor, and information recording medium
AU7662496A (en) * 1995-10-13 1997-04-30 Netrights, Llc System and methods for managing digital creative works
JP3173352B2 (ja) * 1995-11-15 2001-06-04 株式会社日立製作所 ディジタル著作物流通システム
KR19990076944A (ko) * 1996-01-03 1999-10-25 밀러 제리 에이 복제 보호 기록 및 재생 시스템
US5933500A (en) * 1996-05-31 1999-08-03 Thomson Consumer Electronics, Inc. Adaptive decoding system for processing encrypted and non-encrypted broadcast, cable or satellite video data
JPH104542A (ja) * 1996-06-18 1998-01-06 Matsushita Electric Ind Co Ltd スクランブル装置及びデータ多重方法
US6216152B1 (en) * 1997-10-27 2001-04-10 Sun Microsystems, Inc. Method and apparatus for providing plug in media decoders
JPH11250081A (ja) * 1998-02-27 1999-09-17 Toshiba Corp マルチメディア情報処理装置および記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589124B2 (en) 2014-05-29 2017-03-07 Comcast Cable Communications, Llc Steganographic access controls
US10467399B2 (en) 2014-05-29 2019-11-05 Comcast Cable Communications, Llc Steganographic access controls
US11372960B2 (en) 2014-05-29 2022-06-28 Comcast Cable Communications, Llc Steganographic access controls

Also Published As

Publication number Publication date
CN1277220C (zh) 2006-09-27
CN100534180C (zh) 2009-08-26
CN1145359C (zh) 2004-04-07
JP2006025436A (ja) 2006-01-26
ATE296519T1 (de) 2005-06-15
CA2425741C (en) 2006-05-23
EP1062812B1 (de) 2005-05-25
EP1343318A3 (de) 2005-04-13
CA2323781C (en) 2004-06-01
JP2002507868A (ja) 2002-03-12
CN1591364A (zh) 2005-03-09
JP2005318656A (ja) 2005-11-10
WO1999048296A1 (en) 1999-09-23
CA2323781A1 (en) 1999-09-23
CN1301459A (zh) 2001-06-27
CA2425741A1 (en) 1999-09-23
JP4598616B2 (ja) 2010-12-15
JP4616095B2 (ja) 2011-01-19
HK1075716A1 (en) 2006-02-03
DE69925466D1 (de) 2005-06-30
JP4511029B2 (ja) 2010-07-28
CN1874508A (zh) 2006-12-06
EP1521467A3 (de) 2005-04-13
EP1521467A2 (de) 2005-04-06
EP1343318A2 (de) 2003-09-10
EP1062812A1 (de) 2000-12-27

Similar Documents

Publication Publication Date Title
DE69925466T2 (de) Streaming-media-abspielgerät mit fortdauernde kontrolle und schutz von medieninhalt
US7822201B2 (en) Methods and apparatus for persistent control and protection of content
US7233948B1 (en) Methods and apparatus for persistent control and protection of content
DE60204227T2 (de) Verfahren und system zum verhindern von unberechtigtem aufzeichnen eines multimediainhalts
DE19906449C1 (de) Verfahren und Vorrichtung zum Erzeugen eines verschlüsselten Nutzdatenstroms und Verfahren und Vorrichtung zum Abspielen eines verschlüsselten Nutzdatenstroms
DE102006044299B4 (de) Vorrichtung und Verfahren zur gesicherten Verteilung von Inhalten in einem Telekommunikationsnetzwerk
DE19906432C1 (de) Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Abspielen eines Datenstroms
US6069952A (en) Data copyright management system
US20040078575A1 (en) Method and system for end to end securing of content for video on demand
US20060143133A1 (en) Flexible pricing model for persistent content
US11490161B2 (en) Content rights management for mobile devices
DE60114069T2 (de) System und Verfahren für den Schutz von Digitalwerken
US7636847B2 (en) Material distribution apparatus
Rump Can digital rights management be standardized?
US11166081B2 (en) Content rights management for mobile devices
Hua et al. Content protection for IPTV-current state of the art and challenges
US20020129280A1 (en) Method, apparatus, and system for distributing compressed digital media in a secured manner
Zhang et al. An Efficient Right-granting Model with Hierarchical Group Rights for Large-scale Content Distribution