FR2927209A1 - Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity - Google Patents

Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity Download PDF

Info

Publication number
FR2927209A1
FR2927209A1 FR0850727A FR0850727A FR2927209A1 FR 2927209 A1 FR2927209 A1 FR 2927209A1 FR 0850727 A FR0850727 A FR 0850727A FR 0850727 A FR0850727 A FR 0850727A FR 2927209 A1 FR2927209 A1 FR 2927209A1
Authority
FR
France
Prior art keywords
entity
program
identifier
content
computer
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.)
Pending
Application number
FR0850727A
Other languages
French (fr)
Inventor
Rouzic Jean Pierre Le
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.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Priority to FR0850727A priority Critical patent/FR2927209A1/en
Publication of FR2927209A1 publication Critical patent/FR2927209A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management

Abstract

The method involves merging a content (20) and a content player program in a single global program included in a file before communication with a computer entity. An identifier (22) of the entity is stored as data of the global program before communication, and a verification routine (23) of the identifier is added to the global program before communication. The global program leading to a content player (21) is executed before communication by executing the routine for controlling the identifier, and playing the content in case of positive control of the identifier. Independent claims are also included for the following: (1) a computer program comprising instructions to perform a method for communicating a computer entity to another computer entity (2) a computer entity comprising global program generation units (3) a computer entity comprising execution units.

Description

Protection d'un contenu, notamment multimédia La présente invention vise la protection d'un contenu, notamment multimédia, contre une reproduction illégale. The present invention aims at the protection of a content, in particular multimedia content, against an illegal reproduction.

Il a été observé que les systèmes de protection contre la reproduction non autorisée d'un contenu ont connu tout d'abord un grand succès (au cours des années 1990), pour susciter actuellement moins d'effort en développement. Cette observation peut s'expliquer notamment : - par le fait que beaucoup de systèmes de protection ont été successivement "cassés", c'est-à-dire désactivés par des indélicats pour avoir accès au contenu, - par le fait que la plupart des utilisateurs veulent pouvoir faire une duplication "raisonnable"(dans le cadre familiale ou pour un simple prêt à un tiers ou encore pour une restitution audiovisuelle sur un dispositif de leur choix), - par le fait que la gestion des droits numériques ou DRM (pour "Digital Rights Management") nécessite un budget plus grand que prévu (certains diffuseurs indiquant par exemple que trois appels sur quatre à leur plate-forme (ou "hotline") sont liés à des problèmes de DRM). It has been observed that systems for protection against unauthorized reproduction of content have first been very successful (during the 1990s), to bring about less development effort. This observation can be explained in particular by: - the fact that many protection systems have been successively "broken", that is to say disabled by indelicates to gain access to the content, - by the fact that most users want to be able to make a "reasonable" duplication (in the family context or for a simple loan to a third party or for an audiovisual reproduction on a device of their choice), - by the fact that digital rights management or DRM (for "Digital Rights Management") requires a budget larger than expected (some broadcasters say for example that three out of four calls to their platform (or "hotline") are related to DRM problems).

Beaucoup de systèmes de protection ont été cassés vraisemblablement pour la raison suivante : l'approche classique de protection consiste à prévoir une clé secrète à insérer dans un média supportant le contenu multimédia, cette clé secrète permettant à un dispositif de lecture du média de vérifier si le contenu est copié légalement. Elle représente donc un droit qui est fourni par le diffuseur, lequel peut normalement vérifier le nombre d'exemplaires en circulation. Many protection systems have probably been broken for the following reason: the conventional approach of protection is to provide a secret key to be inserted in a media supporting the multimedia content, this secret key allowing a device for reading the media to check whether the content is copied legally. It therefore represents a right that is provided by the broadcaster, who can normally check the number of copies in circulation.

En effet, un dispositif standard est dans l'incapacité de copier cette clé si elle est placée dans un réceptacle inaccessible (par exemple recourant à un système de fichier non standard où seraient stockées des informations propres à cette clé). Ce système est sécurisé par un accord commercial entre un fabriquant de dispositifs de lecture adaptés et un fabricant de médias (ou leur représentants). Il s'est avéré toutefois possible de contourner une telle protection, notamment dans le cas de disques DVD cryptés et pouvant être lus par exécution d'un programme nommé DeCSS . Une variante d'utilisation d'une clé secrète consiste à vérifier le droit de l'utilisateur à partir d'un site en ligne (par exemple tel que iTunes ). Dans cette réalisation, un serveur distant dispose d'un contenu protégé par droits d'auteur. Le client est le logiciel et/ou le périphérique qui permet de lire ce contenu (par exemple un lecteur multimédia ou un baladeur numérique). Lorsqu'un utilisateur souhaite télécharger un fichier, le client fournit un identifiant unique au serveur. Le serveur chiffre le fichier demandé spécifiquement pour ce client. Ce fichier chiffré est ensuite transféré du serveur vers le client, via un réseau étendu tel que l'Internet. Lorsque l'utilisateur souhaite jouer le contenu qu'il a ainsi téléchargé, sur un lecteur équipé du logiciel et/ou relié au périphérique autorisé(s), le lecteur établit d'abord une connexion avec le serveur, qui s'assure que l'utilisateur au nom de qui les droits sont enregistrés dispose bien d'une licence valide à cet instant. Si tel est le cas, le serveur transmet au client le code de déchiffrement du fichier, ainsi que la liste des droits de l'utilisateur vis-à-vis de ce fichier. La vérification du droit peut imposer à l'utilisateur de posséder une clé supplémentaire (par exemple une clé matérielle telle qu'un "dongle" à brancher sur un port d'ordinateur de type PC), ce qui limite fortement les possibilités de duplication et de restitution sur tout support. Cette technique n'est pas très répandue notamment à cause des coûts induits et de son manque de souplesse : il est en effet difficile de prêter un contenu et/ou d'utiliser cette technique en dehors du monde de l'ordinateur personnel. Indeed, a standard device is unable to copy this key if it is placed in an inaccessible receptacle (for example using a non-standard file system where information specific to this key would be stored). This system is secured by a commercial agreement between a manufacturer of suitable reading devices and a media manufacturer (or their representatives). However, it has proved possible to circumvent such protection, especially in the case of encrypted DVD discs that can be read by running a program called DeCSS. An alternative to using a secret key is to check the user's right from an online site (for example, such as iTunes). In this embodiment, a remote server has content protected by copyright. The client is the software and / or the device that can read this content (for example a media player or a digital music player). When a user wants to download a file, the client provides a unique identifier to the server. The server encrypts the requested file specifically for this client. This encrypted file is then transferred from the server to the client over a wide area network such as the Internet. When the user wishes to play the content that he has thus downloaded, on a player equipped with the software and / or connected to the authorized device (s), the reader first establishes a connection with the server, which ensures that the user on whose behalf the rights are registered has a valid license at this time. If this is the case, the server transmits to the client the decryption code of the file, as well as the list of rights of the user vis-à-vis this file. The verification of the right may require the user to possess an additional key (for example a hardware key such as a "dongle" to be connected to a PC-type computer port), which greatly limits the possibilities of duplication and of restitution on any support. This technique is not very widespread especially because of the costs involved and its lack of flexibility: it is indeed difficult to lend content and / or use this technique outside the world of the personal computer.

Des diffuseurs de contenus ont tenté d'installer et mettre en oeuvre des logiciels de lecture ad-hoc sur des ordinateurs PC personnels de leurs clients, modifiant profondément leur fonctionnement ( rootkit de la marque Sony ). Cette approche a suscité beaucoup de méfiance, voire une méfiance vis-à-vis de ces diffuseurs.30 Une autre possibilité consiste à rendre l'outil d'accès au contenu sensible à une politique de DRM (ce que permet très récemment par exemple Microsoft Vista). Content broadcasters have tried to install and implement ad-hoc reading software on personal PCs of their customers, profoundly modifying their operation (Sony brand rootkit). This approach has created a lot of mistrust or distrust of these broadcasters.30 Another possibility is to make the content access tool sensitive to a DRM policy (which is very recent for example Microsoft Vista).

Une autre possibilité consiste à rendre accessible sans condition une partie du contenu et soumettre à certaines conditions l'accès à une partie complémentaire. Là encore, le recours à un accès en ligne est nécessaire. Another possibility is to make unconditional access to some of the content and subject to certain conditions access to a complementary part. Again, the use of online access is necessary.

Une solution prometteuse est le tatouage de contenus numériques ou watermarking . Le contenu ne semble pas protégé, mais, en réalité, comporte des "marques" indécelables par nos sens. La valeur légale de ces marques semble toutefois difficile à établir dans la mesure où il est toujours possible, techniquement : - d'ajouter un watermarking, ou - de supprimer ou camoufler un watermarking. A promising solution is tattooing digital content or watermarking. The content does not seem protected, but, in reality, has "marks" that are undetectable by our senses. The legal value of these marks, however, seems difficult to establish insofar as it is always possible, technically: - to add a watermarking, or - to remove or conceal a watermarking.

La présente invention vient améliorer la situation. The present invention improves the situation.

Elle propose à cet effet de faire en sorte que les utilisateurs puissent faire une duplication "raisonnable" des contenus dont ils ont acquis régulièrement les droits. Un utilisateur titulaire légal d'un contenu doit pouvoir : - "prêter" le contenu à un tiers, - l'utiliser sur le dispositif de leur choix, sans être limité à du matériel propriétaire, - utiliser les DRM facilement sans qu'ils ne soient source de coûts supplémentaires. To this end, it proposes to ensure that users can make a "reasonable" duplication of the content they have regularly acquired. A lawful user of a content must be able to: - "lend" the content to a third party, - use it on the device of their choice, without being limited to proprietary hardware, - use the DRM easily without them are sources of additional costs.

Préférentiellement, l'acte de copie est et doit rester réglementé. A cet effet, une entité B (fournisseur de contenu) doit pouvoir identifier au moins une autre entité A (recevant une copie du contenu) de façon à comptabiliser le nombre de copies effectuées. Preferably, the act of copying is and must remain regulated. For this purpose, an entity B (content provider) must be able to identify at least one other entity A (receiving a copy of the content) in order to count the number of copies made.

Ainsi, la présente invention vise tout d'abord un procédé de communication d'une première entité informatique à une deuxième entité informatique d'un fichier comportant un contenu destiné à être lu par un programme prédéterminé, lecteur de ce contenu. Dans le procédé au sens de l'invention, avant communication à la deuxième entité : - le contenu et le programme lecteur du contenu sont fusionnés dans un même programme global, que comporte ledit fichier, l'exécution dudit programme global menant à la lecture du contenu, - un identifiant de la deuxième entité est enregistré en tant que donnée dudit programme global, et - une routine de vérification dudit identifiant est ajoutée audit programme global, Ainsi, l'exécution du programme global par la deuxième entité précitée comporte : - une exécution de la routine de vérification d'identifiant pour contrôler l'identifiant de la deuxième entité, - et, en cas de contrôle positif de l'identifiant, une lecture dudit contenu. Thus, the present invention firstly relates to a method of communicating a first computer entity to a second computer entity of a file comprising a content intended to be read by a predetermined program, reader of this content. In the method according to the invention, before communication with the second entity: the content and the program reader of the content are merged into the same global program, that includes said file, the execution of said overall program leading to the reading of the content, - an identifier of the second entity is registered as data of said global program, and - a verification routine of said identifier is added to said global program, Thus, the execution of the global program by the second aforementioned entity comprises: - a execution of the identifier verification routine to control the identifier of the second entity, and, in case of positive control of the identifier, a reading of said content.

Préférentiellement, il doit être possible aussi à l'utilisateur de bien différencier un contenu piraté d'un contenu "non piraté". Le but n'est pas d'empêcher un pirate déterminé de faire une copie d'un contenu semblable à l'original, mais plutôt de rendre difficile cette copie. Preferably, it must also be possible for the user to differentiate between pirated content and "non-pirated" content. The goal is not to prevent a particular hacker from making a copy of content similar to the original, but rather to make this copy difficult.

Ainsi, dans une réalisation, une routine de complication de la structure du programme global est en outre appliquée, et la deuxième entité exécute alors le programme global sous sa forme compliquée. Thus, in one embodiment, a complication routine of the overall program structure is further applied, and the second entity then executes the overall program in its complicated form.

On entend par "forme compliquée" le fait que la routine de vérification de l'identifiant, d'une part, et la routine de lecture du contenu dans le programme global, d'autre part, sont imbriquées et mélangées, de sorte qu'il est difficile pour un pirate d'accéder en un temps raisonnable : - à la routine de vérification de l'identifiant, - et/ou à la donnée de l'identifiant insérée dans le programme global, - et/ou aux données du contenu. The term "complicated form" means that the verification routine of the identifier, on the one hand, and the reading routine of the content in the overall program, on the other hand, are nested and mixed, so that it is difficult for an attacker to gain access in a reasonable time: - to the verification routine of the identifier, - and / or to the data of the identifier inserted in the global program, - and / or to the data of the content .

Le contenu, lui-même, peut être un contenu multimédia, un texte, ou autre, ou simplement un identifiant pour un contrôle d'accès sécurisé. The content, itself, can be multimedia content, text, or other, or simply an identifier for secure access control.

A titre d'exemple, une telle complication (ou une simplification) de la structure du programme global peut être menée par une technique informatique dite d"'obfuscation" (ou respectivement par "désobfuscation"), laquelle technique sera décrite plus loin dans un exemple illustratif. L'obfuscation vise à rendre une information difficile à comprendre. By way of example, such a complication (or simplification) of the overall program structure can be carried out by a computer technique known as "obfuscation" (or "deobfuscation"), which technique will be described later in a illustrative example. Obfuscation aims to make information difficult to understand.

Le programme global, sous sa forme initiale non compliquée, comporte alors les données numériques du contenu, ainsi qu'un programme lecteur (ou "player") de ces données, de telle sorte que son exécution (moyennant un contrôle positif de l'identifiant) revient à lire le contenu et jouer par exemple un film ou une musique, si la deuxième entité est reliée à un dispositif de restitution. On comprendra alors que la deuxième entité peut être un dispositif de restitution audio ou vidéo, ou plus généralement un terminal, relié éventuellement à un réseau étendu, par exemple pour télécharger de la première entité le programme global sous forme obfusquée. The overall program, in its initial uncomplicated form, then comprises the digital data of the content, as well as a reader program (or "player") of these data, so that its execution (with a positive control of the identifier ) is to read the content and play for example a movie or a music, if the second entity is connected to a rendering device. It will be understood that the second entity may be an audio or video rendering device, or more generally a terminal, possibly connected to a wide area network, for example to download from the first entity the global program in obfuscated form.

Ainsi, la première entité peut être, quant à elle, un serveur diffusant initialement le contenu, sous la forme d'un programme global obfusqué, pour des "deuxièmes" entités qui peuvent être des dispositifs de restitution et/ou des terminaux. Thus, the first entity may be, for its part, a server initially broadcasting the content, in the form of an obfuscated global program, for "second" entities that may be rendering devices and / or terminals.

La présente invention vise alors une entité informatique, telle qu'un serveur de diffusion du type précité, et comportant des moyens pour être capable de mettre en oeuvre le procédé ci-avant, en tant que "première entité informatique" intervenant dans le procédé. On relèvera que cette "première" entité informatique peut mettre en oeuvre un programme d'ordinateur comportant des instructions pour générer le programme global, pour la mise en oeuvre du procédé au sens de l'invention, lorsque ce programme d'ordinateur, est exécuté par un processeur d'une telle "première" entité informatique. The present invention thus aims at a computer entity, such as a broadcast server of the aforementioned type, and comprising means for being able to implement the above method, as "first computing entity" involved in the process. It will be noted that this "first" computer entity can implement a computer program comprising instructions for generating the overall program, for the implementation of the method in the sense of the invention, when this computer program is executed. by a processor of such a "first" computing entity.

A ce titre, l'invention vise aussi ce programme d'ordinateur. As such, the invention also aims at this computer program.

Toutefois, la première entité informatique précitée peut aussi être un terminal et/ou un dispositif de restitution communiquant le programme global à un autre terminal et/ou dispositif de restitution. Ainsi, en reprenant l'énoncé du procédé ci-avant, la deuxième entité (un terminal par exemple) peut décider de communiquer le contenu sous forme de programme global à une troisième entité informatique (un autre terminal par exemple). Dans ce cas, la deuxième entité, préférentiellement : -simplifie le programme global, - insère, en tant que donnée, un identifiant de la troisième entité dans le programme global simplifié, et - complique le programme global comportant l'identifiant de la troisième entité. However, the aforementioned first computer entity may also be a terminal and / or a rendering device communicating the overall program to another terminal and / or rendering device. Thus, by repeating the statement of the above method, the second entity (a terminal for example) can decide to communicate the content as a global program to a third computer entity (another terminal for example). In this case, the second entity, preferably: -simplifies the global program, -inserts, as data, an identifier of the third entity in the simplified global program, and -complicates the global program comprising the identifier of the third entity .

La présente invention vise alors aussi une entité informatique, telle qu'un terminal et/ou dispositif de restitution du type précité, et comportant des moyens pour mettre en oeuvre le procédé ci-avant, en tant que "deuxième entité informatique" intervenant dans le procédé. The present invention thus also relates to a computer entity, such as a terminal and / or restitution device of the aforementioned type, and comprising means for implementing the above method, as "second computer entity" involved in the process.

On relèvera ici que l'insertion de l'identifiant de la troisième entité en tant que donnée dans le programme global peut consister en l'ajout de cet identifiant à l'identifiant de la deuxième entité, ou, en variante, à une insertion par remplacement de l'identifiant de la deuxième entité par l'identifiant de la troisième entité. It will be noted here that the insertion of the identifier of the third entity as data in the global program may consist of the addition of this identifier to the identifier of the second entity, or, alternatively, to an insertion by replacing the identifier of the second entity with the identifier of the third entity.

On comprendra alors que l'insertion d'identifiant permet de contrôler la circulation des copies du contenu et, en particulier, de savoir exactement si un terminal, comportant son propre identifiant a eu accès ou non au contenu protégé au sens de l'invention. On peut d'ailleurs prévoir une autorité de gestion de la diffusion du contenu, distante, pour : -recevoir de la deuxième entité l'identifiant de la deuxième entité et l'identifiant de la troisième entité, et stocker en mémoire ces identifiants, et - communiquer à la deuxième entité : o une première clé pour lancer, auprès de la deuxième entité, une routine de simplification du programme global et d'insertion de l'identifiant de la troisième entité dans le programme global, o et une deuxième clé pour lancer ensuite, auprès de la deuxième entité, une routine de complication du programme global, avant communication du programme global sous forme compliquée à la troisième entité. It will then be understood that the insertion of identifier makes it possible to control the circulation of the copies of the content and, in particular, to know exactly if a terminal, having its own identifier has had access or not to the protected content within the meaning of the invention. It is also possible to provide a remote content distribution management authority to: -receive the second entity's identifier from the second entity and the third entity's identifier, and store these identifiers in memory, and communicating to the second entity: a first key for launching, with the second entity, a routine simplifying the overall program and inserting the identifier of the third entity in the global program, and a second key for then launch, at the second entity, a complication routine of the overall program, before communication of the overall program in complicated form to the third entity.

La présente invention vise, à ce titre, une entité informatique comportant des moyens pour mettre en oeuvre cette réalisation, en tant qu'autorité de gestion. A titre d'exemple, il peut s'agir à nouveau d'un serveur distant, gérant une liste des terminaux qui ont eu accès au contenu. En particulier, ce serveur peut être identique et remplir les mêmes fonctions que le serveur de diffusion initiale du contenu (qui peut être la "première" entité précitée). The present invention aims, as such, a computer entity having means for implementing this embodiment, as a management authority. For example, it may be again a remote server, managing a list of terminals that had access to the content. In particular, this server may be identical and perform the same functions as the initial broadcast server content (which can be the "first" entity above).

Dans la réalisation où à chaque copie du contenu à destination d'une nouvelle entité, on prévoit l'ajout par insertion de l'identifiant de cette nouvelle entité dans le programme global, le contenu peut alors être transféré plusieurs fois entre plusieurs entités, et un identifiant de chaque entité de cette pluralité d'entités est enregistré en tant que donnée du programme global, lequel comporte alors une liste des identifiants des terminaux ayant eu accès au contenu. Dans le cas où l'on prévoit une autorité de gestion, cette dernière tient à jour une liste homologue. In the embodiment where, with each copy of the content intended for a new entity, provision is made for inserting the identifier of this new entity by insertion in the global program, the content can then be transferred several times between several entities, and an identifier of each entity of this plurality of entities is registered as data of the global program, which then comprises a list of the identifiers of the terminals having accessed the content. In the case where a managing authority is foreseen, the latter will maintain a peer list.

A titre d'exemple, un identifiant d'entité informatique peut être le numéro de série de l'entité informatique, ou encore simplement un code confidentiel choisi par le propriétaire de l'entité informatique ou encore des données personnelles relatives au propriétaire. For example, a computer entity identifier may be the serial number of the computer entity, or simply a confidential code chosen by the owner of the computer entity or personal data relating to the owner.

Ainsi, la lecture du contenu dont les données sont des données du programme global ne s'exécute que si l'identifiant lu en tant que donnée supplémentaire du programme global correspond au numéro de série lu dans une mémoire de l'entité informatique, ou à un code confidentiel entré par le propriétaire. Thus, the reading of the content whose data is data of the global program only executes if the identifier read as additional data of the global program corresponds to the serial number read in a memory of the computing entity, or to a PIN entered by the owner.

On relèvera que le programme global possède une structure avantageuse dès lors qu'il comporte les données du contenu (et les données d'identifiants éventuels) en tant que données du programme global, ces données étant obfusquées (donc difficilement retrouvables dans la structure globale du programme) avant une communication à un terminal ou un dispositif de restitution. A ce titre, la présente invention vise aussi un programme d'ordinateur, stocké en mémoire d'une entité informatique ou téléchargeable via un site distant pour être stocké au moins temporairement en mémoire de ladite entité informatique, formant un tel programme global pour la mise en oeuvre du procédé au sens de l'invention, lorsque ce programme est exécuté par un processeur de l'entité informatique. Le programme global comporte ainsi des instructions pour : -mener un contrôle de vérification de l'identifiant de l'entité informatique, - et, en cas de contrôle positif de l'identifiant, lire le contenu dont les données sont des données du programme global. It should be noted that the overall program has an advantageous structure since it includes the data of the content (and the data of possible identifiers) as data of the global program, these data being obfuscated (therefore difficult to find in the overall structure of the program). program) before a communication to a terminal or a rendering device. As such, the present invention also provides a computer program, stored in memory of a computer entity or downloadable via a remote site to be stored at least temporarily in memory of said computer entity, forming such a global program for the implementation implementation of the method in the sense of the invention, when this program is executed by a processor of the computer entity. The global program thus comprises instructions for: - conducting a verification check of the identifier of the computer entity, - and, in case of a positive control of the identifier, reading the content whose data are data of the global program .

Ainsi, dans les systèmes classiques de protection, une utilisation classique des principes de cryptographie est mise en oeuvre où une entité B ( Bob ) communique un secret à une entité A ( Alice , où Alice et Bob sont tous deux habilités). Il est alors souhaité d'empêcher totalement une entité C ( Eve , non habilitée) d'accéder à leur communication. Tel n'est pas le but de l'invention qui, au contraire, autorise la copie contrôlée. Thus, in conventional protection systems, a conventional use of cryptographic principles is implemented where an entity B (Bob) communicates a secret to an entity A (Alice, where Alice and Bob are both enabled). It is then desired to totally prevent an entity C (Eve, unauthorized) from accessing their communication. This is not the purpose of the invention which, on the contrary, allows controlled copying.

De même, l'invention se distingue d'une utilisation classique des droits DRM : - il n'est pas nécessaire de protéger les échanges entre Alice et Bob mais simplement un seul échange initial, - dans l'exemple ci-avant, Alice et Eve seraient complices dès lors qu'Alice dupliquerait sans autorisation son contenu pour Eve. Similarly, the invention differs from a conventional use of DRM rights: - it is not necessary to protect exchanges between Alice and Bob but simply a single initial exchange, - in the example above, Alice and Eve would be complicit since Alice would unauthorizedly duplicate her content for Eve.

D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés sur lesquels : - la figure 1 illustre schématiquement une première diffusion de contenu protégé par la mise en oeuvre de l'invention, à partir d'un serveur S en tant que "première entité informatique", dans un exemple de réalisation de l'invention, - la figure 2 illustre les étapes mises en oeuvre par le serveur S pour générer le programme global comportant notamment les données de contenu et destiné à l'entité informatique Dl de la figure 1, - la figure 3 illustre les échanges entre l'entité informatique Dl et le serveur S pour pourvoir "copier le contenu" (c'est-à-dire adapter le programme global) pour une autre entité D2, - la figure 4 illustre schématiquement les opérations réalisées par l'entité Dl pour pouvoir adapter le programme global pour la deuxième entité D2, - la figure 5 illustre schématiquement les étapes d'exécution du programme global auprès d'une entité informatique Dl ou D2. Other features and advantages of the invention will appear on examining the detailed description below, and the accompanying drawings in which: - Figure 1 schematically illustrates a first diffusion of content protected by the implementation of the invention, from an S server as "first computing entity", in an exemplary embodiment of the invention, - Figure 2 illustrates the steps implemented by the server S to generate the overall program including the content data for the computing entity D1 of FIG. 1; FIG. 3 illustrates the exchanges between the computer entity D1 and the server S to provide "copy the content" (that is to say, adapt the overall program) for another entity D2, - Figure 4 schematically illustrates the operations performed by the entity D1 to be able to adapt the overall program for the second entity D2, - Figure 5 schematically illustrates the steps of execution of the overall program with a computer entity D1 or D2.

En référence à la figure 1, une entité informatique Dl (telle qu'un terminal ou un dispositif de restitution) envoie tout d'abord une requête à un serveur distant S, diffuseur de contenus, pour qu'il lui soit téléchargé un contenu prédéterminé. En particulier, la requête REQ (Id-l) comporte un identifiant (par exemple un numéro de série) de l'entité informatique Dl ou de son propriétaire (par exemple un code personnel). Le terminal Dl envoie aussi dans la requête un identifiant du contenu souhaité (non représenté). Dans la réalisation où l'identifiant est un numéro de série, il peut être prévu une routine automatique : - apte à lire dans une mémoire de l'entité Dl ce numéro de série - et à le communiquant au serveur S. With reference to FIG. 1, a computer entity D1 (such as a terminal or a rendering device) first sends a request to a remote server S, a content provider, for it to download a predetermined content. . In particular, the REQ request (Id-1) comprises an identifier (for example a serial number) of the IT entity D1 or of its owner (for example a personal code). The terminal D1 also sends in the request an identifier of the desired content (not shown). In the embodiment where the identifier is a serial number, it can be provided an automatic routine: - able to read in a memory of the entity D1 this serial number - and the communicating to the server S.

Le serveur S mémorise l'identifiant Id-1 de l'entité Dl (étape MEM Id-1 de la figure 1) dans une base de données. Ensuite, le serveur S constitue, en fonction de l'identifiant Id-1 de l'entité Dl, un programme global au sens de l'invention, en vue de la communication à l'entité Dl du contenu, sous la forme de ce programme global PG(Id-1). The server S stores the identifier Id-1 of the entity D1 (step MEM Id-1 of FIG. 1) in a database. Next, the server S constitutes, as a function of the identifier Id-1 of the entity D1, a global program in the sense of the invention, with a view to the communication to the entity D1 of the content, in the form of this PG global program (Id-1).

En référence à la figure 2, ce programme global est constitué comme suit. Les données de contenu 20 sont importées en tant que données d'un programme de lecture (un "player" portant la référence 21 dans la figure 2, avec éventuellement un programme additionnel de type "plugin" pour la vérification d'identifiant). Avantageusement, il est ajouté la routine de vérification de l'identifiant des entités informatiques à qui est destiné le contenu, portant la référence 23 dans le figure 2, et, en particulier, l'identifiant Id-1 de l'entité informatique Dl est ajouté en tant que donnée 22 du programme global, pour former à l'étape 24 le programme global contenant alors : - les données du contenu 20 ; - la routine de lecture de ces données 21 ; - l'identifiant Id-1 de l'entité Dl à qui est destiné le contenu, en tant que donnée 22 du programme ; et - une routine de vérification 23 de cette identifiant Id-l. With reference to FIG. 2, this overall program is constituted as follows. The content data 20 is imported as data of a reading program (a "player" with the reference 21 in FIG. 2, possibly with an additional "plugin" type program for the verification of identifier). Advantageously, the verification routine of the identifier of the computer entities to which the content is intended, bearing the reference 23 in FIG. 2, is added and, in particular, the identifier Id-1 of the computing entity D1 is added as data item 22 of the global program, to form in step 24 the global program then containing: the data of the content 20; the reading routine of these data 21; the identifier Id-1 of the entity D1 for which the content is intended as data item 22 of the program; and a verification routine 23 of this identifier Id-1.

Le programme global obtenu à l'étape 24 est de structure simple. Il est ensuite obfusqué à l'étape 25 pour former le programme global obfusqué PG(Id-1), à l'étape 26. The overall program obtained in step 24 is of simple structure. It is then obfuscated in step 25 to form the global obfuscated program PG (Id-1), at step 26.

Ce programme global obfusqué PG(Id-1) est ensuite communiqué alors directement du serveur à l'entité informatique Dl pour une restitution d'un contenu multimédia, par exemple, si cette entité informatique Dl est reliée à un dispositif de restitution. This global obfuscated program PG (Id-1) is then communicated directly from the server to the IT entity D1 for a reproduction of a multimedia content, for example, if this IT entity D1 is connected to a rendering device.

En référence maintenant à la figure 3, il est décrit une situation dans laquelle l'entité informatique Dl souhaite communiquer le contenu à une autre entité informatique D2 (un autre terminal ou un autre dispositif de restitution sonore ou vidéo). Les entités Dl, D2 sont, bien entendu, reliées au serveur S par un réseau étendu, par exemple via Internet, comme le sont l'entité Dl et le serveur S de la figure 1. Referring now to Figure 3, there is described a situation in which the computer entity D1 wishes to communicate the content to another computer entity D2 (another terminal or other sound or video playback device). The entities D1, D2 are, of course, connected to the server S by an extended network, for example via the Internet, as are the entity D1 and the server S of FIG.

Dans l'exemple décrit, le terminal Dl envoie une requête au serveur S comportant l'identifiant Id-1 du terminal Dl et l'identifiant Id-2 du terminal D2. Bien entendu, le terminal Dl envoie aussi un identifiant du contenu souhaité. Le serveur S, sur la base de cette requête, retrouve l'identifiant Id-1 du terminal Dl dans sa base de données et traite alors la requête du terminal Dl. Le serveur S mémorise ensuite dans sa base de données le nouvel identifiant Id-2 du terminal D2 et envoie au terminal Dl une clé de désobfuscation DES(Id-l) du programme global PG(Id-1) que possède actuellement le terminal Dl, ainsi qu'une clé d'obfuscation OBS(Id-2) du programme global de structure simplifiée pour ajouter l'identifiant Id-2 du deuxième terminal D2 et obfusquer le résultat pour constituer le programme global PG(Id-2). Le programme ainsi obfusqué PG(Id-2), que détient le terminal Dl, est finalement communiqué au deuxième terminal D2. In the example described, the terminal D1 sends a request to the server S having the identifier Id-1 of the terminal D1 and the identifier Id-2 of the terminal D2. Of course, the terminal D1 also sends an identifier of the desired content. The server S, on the basis of this request, finds the identifier Id-1 of the terminal D1 in its database and then processes the request of the terminal D1. The server S then stores in its database the new identifier Id-2 of the terminal D2 and sends the terminal D1 a deobfuscation key DES (Id-1) of the global program PG (Id-1) that currently has the terminal D1, and an obfuscation key OBS (Id-2) of the overall simplified structure program to add the identifier Id-2 of the second terminal D2 and obfuscate the result to form the global program PG (Id-2). The program thus obfuscated PG (Id-2), which holds the terminal D1, is finally communicated to the second terminal D2.

Plus précisément, en référence à la figure 4, le programme global initial PG(Id-1) que détient l'entité Dl est préférentiellement transformé comme suit. En partant de ce programme global PG(Id-1), à l'étape 40, que peut lire l'entité Dl puisque son numéro de série correspond à l'identifiant Id-1, subit d'abord une désobfuscation, à l'étape 41, grâce à la clé DES(Id-l) que transmet le serveur S. Le programme obtenu à l'étape 42 est alors de structure simplifiée : il correspond sensiblement au programme qui était obtenu à l'étape 24 de la figure 2. Il y est ajouté l'identifiant Id-2 (à l'étape 43) du terminal D2 et le programme global est obfusqué à l'étape 44 pour constituer ainsi le programme global PG(Id-2) qui est destiné au terminal D2, à l'étape 45. More specifically, with reference to FIG. 4, the initial global program PG (Id-1) held by the entity D1 is preferentially transformed as follows. Starting from this global program PG (Id-1), in step 40, which can read the entity D1 since its serial number corresponds to the identifier Id-1, first undergoes a deobfuscation, at the step 41, using the key DES (Id-1) that transmits the server S. The program obtained in step 42 is then simplified structure: it corresponds substantially to the program that was obtained in step 24 of Figure 2 There is added the identifier Id-2 (in step 43) of the terminal D2 and the global program is obfuscated in step 44 to thus constitute the global program PG (Id-2) which is intended for the terminal D2 at step 45.

On comprendra alors que, si le programme PG(Id-1) est de forme compliquée (par obfuscation), une routine qui se déclenche par vérification de l'identifiant Id-1 du terminal Dl vise à simplifier la structure de ce programme PG(Id-1) lors de l'étape de désobfuscation 41. A l'inverse, après insertion de l'identifiant Id-2 du deuxième terminal D2 (à l'étape 43), une routine d'obfuscation 44 est exécutée pour compliquer à nouveau la structure du programme PG(Id-2) qui est destinée au terminal D2. It will then be understood that, if the program PG (Id-1) is of complicated form (by obfuscation), a routine which is triggered by verification of the identifier Id-1 of the terminal D1 is intended to simplify the structure of this program PG ( Id-1) during the deobfuscation step 41. On the other hand, after inserting the identifier Id-2 of the second terminal D2 (in step 43), an obfuscation routine 44 is executed to make it more difficult to again the structure of the program PG (Id-2) which is intended for the terminal D2.

En référence à la figure 4, on comprendra en particulier que les opérations de désobfuscation 41 et d'obfuscation 44 sont préférentiellement menées sensiblement simultanément, à la volée. En tout état de cause, il sera évité d'offrir la possibilité à un utilisateur malveillant d'exécuter la routine de désobfuscation 41 et d'interrompre la routine d'obfuscation 44 à son début (par exemple par une mise hors tension), ce qui permettrait à cet utilisateur malveillant d'avoir accès aux données du contenu qui apparaîtraient sous forme simple. Il est donc préféré que les étapes 41 et 44 soient mises en oeuvre quasi-simultanément. With reference to FIG. 4, it will be understood in particular that the operations of deobfuscation 41 and obfuscation 44 are preferably conducted substantially simultaneously, on the fly. In any event, it will be avoided to provide the opportunity for a malicious user to perform the deobfuscation routine 41 and to interrupt the obfuscation routine 44 at its beginning (for example by powering off), which would allow this malicious user to have access to the content data that would appear in simple form. It is therefore preferred that steps 41 and 44 be implemented almost simultaneously.

Il convient d'indiquer que ces routines d'obfuscation et de désobfuscation sont connues en soi dans la technique des traitements informatiques. Une obfuscation n'empêche pas un programme d'être exécuté mais, en revanche, complique considérablement sa structure pour un intrus qui aurait accès au code et qui essaierait de le comprendre. Par exemple, les données du contenu et/ou de l'identifiant peuvent être obfusquées en premier lieu. Une routine d'obfuscation qu'il est possible de mettre en oeuvre dans le cadre de la présente invention sera décrite plus loin et elle consiste, dans l'exemple décrit, en une décomposition binaire des données et d'une complication de l'expression des exposants de la puissance 2, de cette décomposition binaire. It should be noted that these obfuscation and deobfuscation routines are known per se in the art of computer processing. An obfuscation does not prevent a program from being executed but, on the other hand, greatly complicates its structure for an intruder who would have access to the code and who would try to understand it. For example, the data of the content and / or the identifier can be obfuscated first. An obfuscation routine that can be implemented in the context of the present invention will be described later and it consists, in the example described, in a binary decomposition of the data and a complication of the expression. exponents of the power 2, of this binary decomposition.

Préférentiellement, l'obfuscation qu'effectue le serveur S à l'étape 25 de la figure 2 mène avantageusement à un programme global différent de celui obtenu par l'obfuscation qu'effectue le terminal Dl à l'étape 44 de la figure 4. Ainsi, on comprendra qu'un programme global est différent d'une copie PG(Id-1) à l'autre PG(Id-2). Preferably, the obfuscation effected by the server S in step 25 of FIG. 2 advantageously leads to a global program different from that obtained by the obfuscation performed by the terminal D1 in step 44 of FIG. 4. Thus, it will be understood that a global program is different from a copy PG (Id-1) to the other PG (Id-2).

On relèvera dans l'exemple des figures 1 et 3 que le serveur S qui diffuse le contenu, d'une part, et le serveur qui tient à jour la liste des identifiants des terminaux ayant eu accès au contenu, d'autre part, sont un même et unique serveur. Bien entendu, il peut être prévu deux serveurs distincts. It will be noted in the example of FIGS. 1 and 3 that the server S that broadcasts the content, on the one hand, and the server that keeps the list of identifiers of the terminals that have access to the content, on the other hand, are the same and only server. Of course, two separate servers can be provided.

On relèvera que le procédé illustré sur la figure 2 est mis en oeuvre par le serveur de diffusion des contenus S, tandis que le procédé illustré sur la figure 4 est mis en oeuvre par l'entité informatique Dl (telle qu'un terminal), laquelle est alors équipée d'un programme de copie approprié. A ce titre, la présente invention vise aussi un tel programme de copie. Comme vu précédemment en référence à la figure 4, chaque programme global PG(Id-2) qui est destiné à une entité D2, est généré spécifiquement pour cette entité D2 sous le contrôle du serveur S et au moyen du programme de copie précité. It will be noted that the method illustrated in FIG. 2 is implemented by the content distribution server S, while the method illustrated in FIG. 4 is implemented by the computer entity D1 (such as a terminal). which is then equipped with an appropriate copy program. As such, the present invention also aims at such a copy program. As seen previously with reference to FIG. 4, each global program PG (Id-2) which is intended for a entity D2, is generated specifically for this entity D2 under the control of the server S and by means of the aforementioned copy program.

Bien entendu, il peut être prévu de limiter le nombre de copies possibles, par exemple en imposant un nombre fini d'identifiants dans la liste tenue par le serveur S, ou encore dans la liste des identifiants ajoutés successivement en tant que données du programme global. On relèvera aussi que le serveur S, tenant une liste des identifiants des terminaux, peut refuser la communication d'un contenu si une requête fait apparaître un identifiant de terminal non autorisé. Of course, it may be provided to limit the number of possible copies, for example by imposing a finite number of identifiers in the list maintained by the server S, or in the list of identifiers successively added as data of the global program . It will also be noted that the server S, holding a list of the identifiers of the terminals, can refuse the communication of a content if a request reveals an unauthorized terminal identifier.

Il convient de noter que le terminal Dl, une fois que le programme global PG(Id-2) est transformé pour être destiné à l'entité D2, ne peut plus utiliser ce programme global PG(Id-2) puisque son exécution est conditionnée par la vérification de l'identifiant Id-2 (et non pas Id-l) auprès de l'entité Dl. Il peut alors être prévu plusieurs options. Selon une première option, le programme copieur de l'entité Dl peut librement copier autant de fois que souhaité le programme global PG(Id-1) et une version de ces copies peut être transformée pour une communication à l'entité D2, sous la forme du programme global PG(Id-2). Selon une autre option où il peut être préféré de "prêter" le contenu de l'entité Dl à l'entité D2, il peut être interdit la simple recopie du programme PG(Id-1) auprès de l'entité Dl, de sorte que la transformation de ce programme global en un programme adapté à l'entité D2 ne peut plus être utilisée par l'entité Dl. Dans ce cas, le propriétaire du terminal Dl réclamera au propriétaire du terminal D2 le contenu pour qu'il lui soit restitué. En tout état de cause, dans cette deuxième option, on comprendra qu'il n'est pas nécessaire de tenir à jour une liste d'identifiants, mais simplement de garder en mémoire l'identifiant du dernier terminal D2 à avoir eu accès au contenu (programme PG(Id-2)). It should be noted that the terminal D1, once the global program PG (Id-2) is transformed to be intended for the entity D2, can no longer use this global program PG (Id-2) since its execution is conditioned by checking the identifier Id-2 (and not Id-1) with the entity Dl. It can then be provided several options. According to a first option, the copying program of the entity D1 can freely copy the global program PG (Id-1) as many times as desired and a version of these copies can be transformed for a communication to the entity D2, under the form of the global program PG (Id-2). According to another option where it may be preferred to "lend" the content of the entity D1 to the entity D2, the simple copy of the program PG (Id-1) from the entity D1 may be prohibited, so that that the transformation of this global program into a program adapted to the entity D2 can no longer be used by the entity Dl. In this case, the owner of the terminal Dl will ask the owner of the terminal D2 the content for it to be returned. In any case, in this second option, it will be understood that it is not necessary to maintain a list of identifiers, but simply to keep in memory the identifier of the last terminal D2 to have access to the content (PG program (Id-2)).

Il convient aussi de noter que le programme global destiné à une entité informatique peut comporter d'autres routines, non décrites ci-avant. Par exemple, selon les informations que peut donner l'entité Dl au serveur S sur l'entité D2 (d'identifiant Id-2), le serveur S peut ajouter une donnée, dans la clé d'obfuscation OBF(Id-2), pour valider une routine de temporisation dans le programme global PG(Id-2), laquelle peut consister à autoriser l'exécution du programme global pendant une période choisie (par exemple de 7 jours). Au-delà de cette période, l'exécution du programme global PG(Id-2) peut être inhibée. It should also be noted that the overall program for an IT entity may include other routines, not described above. For example, according to the information that the entity D1 can give to the server S on the entity D2 (identifier Id-2), the server S can add a piece of data, in the obfuscation key OBF (Id-2) , to validate a timing routine in the global program PG (Id-2), which may consist of allowing the execution of the global program for a selected period (for example 7 days). Beyond this period, the execution of the global program PG (Id-2) can be inhibited.

On notera aussi que l'entité Dl, en référence à la figure 1, lorsqu'elle communique une requête pour obtenir un contenu, peut déclarer initialement plusieurs identifiants de terminaux, de manière à ce que le programme global PG(Id-1) soit lisible par un nombre restreint de terminaux dont le propriétaire de l'entité Dl est aussi propriétaire (par exemple plusieurs "lecteurs MP3"). It will also be noted that the entity D1, with reference to FIG. 1, when communicating a request to obtain a content, can initially declare several terminal identifiers, so that the global program PG (Id-1) is readable by a limited number of terminals whose owner of the Dl entity is also owner (for example several "MP3 players").

On comprendra alors que le programme global peut inclure en outre des routines définissant des règles de sa propre exécution (plusieurs identifiants autorisés en même temps, routine de temporisation, ou autre). It will be understood then that the global program may further include routines defining rules of its own execution (multiple identifiers allowed at the same time, timing routine, or other).

En référence à la figure 5, on a illustré, pour rappel, les opérations qui se déclenchent lorsqu'est exécuté le programme global auprès d'une entité informatique de type terminal ou dispositif de restitution. L'exécution du programme commence par la routine de vérification 50 de l'identifiant de l'entité informatique qui accueille le programme global. Si l'identifiant est conforme (par exemple au numéro de série de l'entité informatique), au test 51 (flèche O), alors, la lecture des données du contenu peut être lancée à l'étape 52. Sinon (flèche N en sortie du test 51), la lecture du contenu n'est pas exécutée et il peut être transmis au serveur S une information d'incident d'utilisation, par exemple, accompagnée du numéro de série effectivement lu par le programme global. On ajoute ici que l'identifiant d'une entité informatique peut être par exemple son adresse MAC, un identifiant de disque dur que comporte cette entité informatique, ou autre.30 Ainsi, la présente invention autorise la copie pour un prêt du contenu, alors que dans le cas classique d'une gestion DRM, il est impossible de copier un contenu quand bien même la copie de ce contenu resterait dans un cadre familial. Referring to Figure 5, there is illustrated, as a reminder, the operations that occur when the global program is executed from a terminal type computer entity or playback device. The execution of the program begins with the verification routine 50 of the identifier of the IT entity hosting the global program. If the identifier is in conformity (for example with the serial number of the IT entity), on the test 51 (arrow O), then the reading of the data of the content can be started in step 52. Otherwise (arrow N in test output 51), the reading of the content is not executed and it can be transmitted to the server S a user incident information, for example, accompanied by the serial number actually read by the global program. It is added here that the identifier of a computer entity may be for example its MAC address, a hard disk identifier that includes this computer entity, or other.30 Thus, the present invention authorizes the copy for a loan of the content, then that in the classic case of a DRM management, it is impossible to copy a content even if the copy of this content would remain in a family setting.

Par ailleurs, l'invention permet d'utiliser le contenu sur un dispositif au choix de son propriétaire. En effet, dès lors que le programme lecteur (ou "player") est fourni dans le programme global, ce programme global peut s'exécuter sur tout type de terminal ayant suffisamment de mémoire et un processeur suffisamment moderne, selon un autre avantage que procure la présente invention. Moreover, the invention makes it possible to use the content on a device at the choice of its owner. Indeed, since the reader program (or "player") is provided in the global program, this global program can run on any type of terminal having sufficient memory and a sufficiently modern processor, according to another advantage that provides the present invention.

On relèvera en outre qu'il n'est pas nécessaire pour une entité informatique Dl ou D2 de rester connectée au serveur S pour pouvoir lire le contenu. En effet, dès lors que le contenu a été transféré vers une entité informatique, celle-ci peut le lire autant de fois que souhaité, sans intervention nécessaire du serveur S. On décrit maintenant, ci-après, le mécanisme d'obfuscation qui peut être utilisé pour compliquer la structure du programme global au sens de l'invention. Note further that it is not necessary for a computer entity Dl or D2 to remain connected to the server S to read the content. Indeed, once the content has been transferred to a computer entity, it can read it as many times as desired, without the necessary intervention of the server S. We now describe, hereinafter, the obfuscation mechanism that can be used to complicate the structure of the overall program within the meaning of the invention.

Tout contenu numérique peut être représenté par un polynôme de la forme : 20 a*2^n + b*2^m+....+x*2^1+y*2^0 où a, b, x et y sont des constantes binaires et où n, m, ..., sont des nombres entiers positifs. Il s'agit d'une décomposition binaire. Any digital content can be represented by a polynomial of the form: 20 a * 2 ^ n + b * 2 ^ m + .... + x * 2 ^ 1 + y * 2 ^ 0 where a, b, x and y are binary constants and where n, m, ..., are positive integers. This is a binary decomposition.

Ce polynôme peut être implémenté sous une forme binaire habituelle en listant les coefficients a,b,x,y suivant un ordre arbitraire (exemple le bit de poids le plus fort à 25 gauche ou à droite). Ainsi, le chiffre 23 s'écrit par exemple 23 = 1 *2A4 + 0*2^3 + 1 *2^2 + 1 *2^1 + 1 *2^0 This polynomial can be implemented in a usual binary form by listing the coefficients a, b, x, y according to an arbitrary order (eg the most significant bit left or right). Thus, the number 23 is for example 23 = 1 * 2A4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0

Il est possible d'utiliser un programme qui va générer cette décomposition et lister ces coefficients précités. Un exemple de pseudo-code peut être celui illustré en annexe 1. 30 Dans ce pseudo-code, si la boucle "while" est réécrite plusieurs fois, sous la forme d'un grand nombre d'opérations séquentielles, alors le contenu numérique est totalement déstructuré de sorte que les tables "coeff' et "expos" de l'annexe 1 ne sont plus utilisées. On a représenté ce cas dans l'annexe 2 où l'opération "contenu" est reprise plusieurs fois dans le même exemple de la décomposition du chiffre 23. Le contenu, sans les coefficients apparents, est beaucoup plus difficile à retrouver que dans le cas d'un cryptage par une clé secrète. Il convient de rappeler que le programme global est différent pour chaque copie, alors qu'un contenu protégé par une clé secrète possède un format standardisé d'une copie à l'autre. Dans le cas d'un programme protégé par une clé secrète, le contenu de la clé doit être retrouvé. Or, comme le lecteur qui est autorisé à lire le contenu possède cette clé par définition, il "suffit" de retrouver cette clé et de l'utiliser pour décrypter le contenu et le distribuer sous forme non cryptée. It is possible to use a program that will generate this decomposition and list these aforementioned coefficients. An example of pseudo-code can be that illustrated in Appendix 1. In this pseudo-code, if the "while" loop is rewritten several times, in the form of a large number of sequential operations, then the digital content is completely unstructured so that the tables "coeff" and "expos" of appendix 1 are no longer used This case has been represented in appendix 2 where the operation "content" is repeated several times in the same example of the decomposition of the number 23. The content, without the apparent coefficients, is much more difficult to find than in the case of an encryption by a secret key.It should be remembered that the overall program is different for each copy, while content protected by a secret key has a standardized format from one copy to the other.In the case of a program protected by a secret key, the content of the key must be found.But as the reader who is authorized to read the content owns this By definition, it is "enough" to find this key and use it to decrypt the content and distribute it in unencrypted form.

On notera que la compréhension d'un programme est habituellement difficile à réaliser car : - non seulement il faut connaître les manipulations effectuées au niveau du langage binaire (désassemblage), ce qui peut toujours être faisable, - mais il faut aussi comprendre ce que ces manipulations signifient. En général, le lien entre le langage assembleur (ou "langage décompilé") et sa signification est très difficile à retrouver. It should be noted that the understanding of a program is usually difficult to achieve because: - not only do we need to know the manipulations performed at the level of the binary language (disassembly), which can always be feasible, - but we must also understand what these manipulations mean. In general, the link between assembly language (or "decompiled language") and its meaning is very difficult to find.

Ici, le programme en langage assembleur peut lui-même être "obfusqué", c'est-à-dire que la structure du programme est altérée pour rendre son désassemblage particulièrement difficile. Un exemple de complication est illustré en annexe 3 où il est posé initialement a =4 ; b=3 ; c=2 ; d = 1, toujours pour l'exemple de l'écriture de la donnée "contenu" = 23. Here, the program in assembly language can itself be "obfuscated", that is to say that the structure of the program is altered to make disassembly particularly difficult. An example of a complication is illustrated in Appendix 3 where it is initially set a = 4; b = 3; c = 2; d = 1, again for the example of writing the data "content" = 23.

Dans cet exemple, il est impossible pour un pirate (ou "hacker") de retrouver une donnée d'un contenu de grande taille dans un temps raisonnable. La tâche de désobfuscation quand elle est bien réalisée ne peut pas actuellement être automatisée pour tout programme, mais il faut avoir une clé de désobfuscation, en connaissance du programme initial. L'exemple de l'annexe 3 est trivialement compréhensible et simplement illustratif. Toutefois, il sera avantageux de compliquer ainsi tout ou partie des données du contenu et, en tout état de cause, les données d'identifiants des entités. In this example, it is impossible for a pirate (or "hacker") to retrieve data of a large content in a reasonable time. The task of deobfuscation when it is well done can not currently be automated for any program, but you must have a deobfuscation key, knowing the initial program. The example in Appendix 3 is trivially understandable and simply illustrative. However, it will be advantageous to complicate all or part of the content data and, in any case, the identifier data of the entities.

ANNEXE 1 int index = a lot - 1 ; Big Number contenu ; ANNEX 1 int index = a lot - 1; Big Number content;

large integer coeff[a lot], expos[a lot] ; while(index > -1) { contenu = contenu + (coeff [index] * (2^expos [index]) index ; Index-- ; } 15 ANNEXE 2 Big Number contenu ; large integer coeff [a lot], expos [a lot]; while (index> -1) {content = content + (coeff [index] * (2 ^ expos [index]) index; Index--;} 15 APPENDIX 2 Big Number Content;

contenu = (2^4) 4 ; contenu = contenu +(2^2) 2 ; 20 contenu = contenu +(2^1) 1 ; contenu = contenu +1 ; ANNEXE 3 25 Big Number contenu ; large integer a, b, c, d ; content = (2 ^ 4) 4; content = content + (2 ^ 2) 2; Content = content + (2 ^ 1) 1; content = content +1; APPENDIX 3 25 Big Number Content; broad integer a, b, c, d;

contenu = (2^ (b+d)) (2*c) ; contenu = contenu + ((a-4) ^a (b-d) ; 30 contenu = contenu -c * (d-d) ; contenu = contenu + (a-b) ; 10 content = (2 ^ (b + d)) (2 * c); content = content + ((a-4) ^ a (b-d); 30 content = content -c * (d-d); content = content + (a-b); 10

Claims (12)

REVENDICATIONS 1. Procédé de communication d'une première entité informatique à une deuxième entité informatique d'un fichier comportant un contenu destiné à être lu par un programme prédéterminé, lecteur dudit contenu, dans lequel, avant communication à la deuxième entité : - le contenu (20) et le programme lecteur du contenu (21) sont fusionnés dans un même programme global, que comporte ledit fichier, l'exécution dudit programme global menant à la lecture du contenu, - un identifiant de la deuxième entité (22) est enregistré en tant que donnée dudit programme global, et - une routine de vérification (23) dudit identifiant est ajoutée audit programme global, et dans lequel l'exécution du programme global par la deuxième entité comporte : - une exécution de la routine de vérification d'identifiant (50) pour contrôler l'identifiant de la deuxième entité, -et, en cas de contrôle positif de l'identifiant (51), une lecture (52) dudit contenu. A method of communicating a first computer entity to a second computer entity of a file comprising a content intended to be read by a predetermined program, a reader of said content, in which, before communication to the second entity: the content ( 20) and the content reader program (21) are merged into one and the same global program included in said file, the execution of said global program leading to the reading of the content, - an identifier of the second entity (22) is registered in as a given of said global program, and - a verification routine (23) of said identifier is added to said global program, and in which the execution of the global program by the second entity comprises: - an execution of the identifier verification routine (50) for controlling the identifier of the second entity, and, in the case of a positive control of the identifier (51), reading (52) said content. 2. Procédé selon la revendication 1, dans lequel une routine de complication (25) de la structure dudit programme global est en outre appliquée, et la deuxième entité exécute ledit programme global sous forme compliquée. The method of claim 1, wherein a complication routine (25) of the structure of said global program is further applied, and the second entity executes said global program in complicated form. 3. Procédé selon la revendication 2, dans lequel, pour une communication du contenu de la deuxième entité (Dl) à une troisième entité (D2), la deuxième entité : - simplifie le programme global (41), - insère, en tant que donnée, un identifiant (43) de la troisième entité dans le programme global simplifié, et - complique (44) le programme global comportant l'identifiant de la troisième entité. 19 3. Method according to claim 2, wherein, for a communication of the content of the second entity (D1) to a third entity (D2), the second entity: - simplifies the global program (41), - inserts, as given, an identifier (43) of the third entity in the simplified overall program, and - complicates (44) the global program comprising the identifier of the third entity. 19 4. Procédé selon la revendication 3, dans lequel on prévoit une autorité de gestion distante (S) pour : - recevoir de la deuxième entité au moins l'identifiant de la deuxième entité et l'identifiant de la troisième entité (REQ(Id-1,Id-2)), et stocker en mémoire au moins l'identifiant de la troisième entité (Id-2), et - communiquer à la deuxième entité : o une première clé (DES(Id-l)) pour lancer, auprès de la deuxième entité, une routine de simplification du programme global et d'insertion de l'identifiant de la troisième entité dans le programme global, o et une deuxième clé (OBF(Id-2)) pour lancer ensuite, auprès de la deuxième entité, une routine de complication du programme global, avant communication du programme global sous forme compliquée (PG(Id-2)) à la troisième entité. 4. Method according to claim 3, wherein a remote management authority (S) is provided for: receiving from the second entity at least the identifier of the second entity and the identifier of the third entity (REQ 1, Id-2)), and store in memory at least the identifier of the third entity (Id-2), and - communicate to the second entity: o a first key (DES (Id-1)) to launch, in the second entity, a routine simplifying the overall program and inserting the identifier of the third entity in the global program, o and a second key (OBF (Id-2)) to then launch, with the second entity, a complication routine of the global program, before communication of the global program in complicated form (PG (Id-2)) to the third entity. 5. Procédé selon la revendication 2, dans lequel une complication/simplification de la structure du programme global est menée par obfuscation/désobfuscation. 5. The method of claim 2, wherein a complication / simplification of the overall program structure is conducted by obfuscation / deobfuscation. 6. Procédé selon la revendication 1, dans lequel le contenu est transféré une pluralité de fois entre une pluralité d'entités (Dl, D2), et un identifiant (Id-1, Id-2) de chaque entité de ladite pluralité d'entités est enregistré en tant que donnée dudit programme global. The method of claim 1, wherein the content is transferred a plurality of times between a plurality of entities (D1, D2), and an identifier (Id-1, Id-2) of each of said plurality of entities. entities is registered as data of the global program. 7. Programme d'ordinateur comportant des instructions pour générer le programme global, pour la mise en oeuvre du procédé selon l'une des revendications 1 et 2, lorsque ce programme d'ordinateur est exécuté par un processeur. 7. Computer program comprising instructions for generating the overall program, for the implementation of the method according to one of claims 1 and 2, when the computer program is executed by a processor. 8. Entité informatique (S), comportant des moyens pour exécuter le programme d'ordinateur selon la revendication 7, en vue de la génération dudit programme global. 8. Computer entity (S), comprising means for executing the computer program according to claim 7, for generating said global program. 9. Entité informatique, comportant des moyens pour mettre en oeuvre le procédé selon la revendication 4, en tant qu'autorité de gestion (S). 9. Computer entity, comprising means for implementing the method according to claim 4, as management authority (S). 10. Programme d'ordinateur (PG(Id-1), PG(Id-2)), stocké en mémoire d'une entité informatique ou téléchargeable via un site distant pour être stocké au moins temporairement en mémoire de ladite entité informatique, formant le programme global pour la mise en oeuvre du procédé selon la revendication 1, lorsque ce programme est exécuté par un processeur de ladite entité informatique, et comportant des instructions pour : - mener un contrôle de vérification (50) de l'identifiant de ladite entité informatique, - et, en cas de contrôle positif de l'identifiant (51), lire ledit contenu (52). 10. Computer program (PG (Id-1), PG (Id-2)) stored in memory of an IT entity or downloadable via a remote site to be stored at least temporarily in memory of said computing entity, forming the overall program for implementing the method according to claim 1, when this program is executed by a processor of said computer entity, and comprising instructions for: conducting a verification check (50) of the identifier of said entity computer, - and, in case of positive control of the identifier (51), read said content (52). 11. Entité informatique (Dl, D2), comportant des moyens pour exécuter le programme d'ordinateur selon la revendication 10, en tant que deuxième entité informatique. Computer entity (D1, D2), comprising means for executing the computer program according to claim 10, as the second computer entity. 12. Entité informatique (Dl), comportant des moyens pour mettre en oeuvre le procédé selon la revendication 3, en tant que deuxième entité informatique (Dl). 12. Computer entity (Dl), comprising means for implementing the method according to claim 3, as the second computing entity (D1).
FR0850727A 2008-02-05 2008-02-05 Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity Pending FR2927209A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0850727A FR2927209A1 (en) 2008-02-05 2008-02-05 Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0850727A FR2927209A1 (en) 2008-02-05 2008-02-05 Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity

Publications (1)

Publication Number Publication Date
FR2927209A1 true FR2927209A1 (en) 2009-08-07

Family

ID=39942928

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0850727A Pending FR2927209A1 (en) 2008-02-05 2008-02-05 Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity

Country Status (1)

Country Link
FR (1) FR2927209A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138400A1 (en) * 2003-12-19 2005-06-23 Institute For Information Industry Digital content protection method
WO2006000029A1 (en) * 2004-06-23 2006-01-05 Telstra Corporation Limited Content delivery system and player

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138400A1 (en) * 2003-12-19 2005-06-23 Institute For Information Industry Digital content protection method
WO2006000029A1 (en) * 2004-06-23 2006-01-05 Telstra Corporation Limited Content delivery system and player

Similar Documents

Publication Publication Date Title
RU2290767C2 (en) Receiving device for protective preservation of a unit of content and reproduction device
EP1625479B1 (en) Method and system for controlled media sharing in a network
TWI442750B (en) Controlling interaction between protected media
US7499550B2 (en) System and method for protecting a title key in a secure distribution system for recordable media content
US7802306B1 (en) Multiple watermarks for digital rights management (DRM) and content tracking
US20070233601A1 (en) Systems and methods for protecting digital content
US20130232583A1 (en) Method and System for Providing Digital Media Rental
WO2003026207A2 (en) Method and system for secure distribution of digital documents
TW200428846A (en) Content encryption using programmable hardware
US9276935B2 (en) Domain manager for extending digital-media longevity
US9064096B2 (en) Methods and apparatus for secure distribution of protected content
WO2005119537A1 (en) Method for downloading with an advertising insert and specific player
US7356511B2 (en) Method and apparatus for marking content during distribution of the content to a client
FR2892222A1 (en) METHOD FOR ETCHING, PROVIDING AND SECURE DISTRIBUTION OF DIGITAL DATA, ACCESS DEVICE AND RECORDER.
EP1537738B1 (en) Method for verifying validity of domestic digital network key
US8719946B2 (en) System and method for securely retrieving and playing digital media
US10078737B2 (en) System and method for securely retrieving and playing digital media
EP2005703A1 (en) Device for reproducing digital content, secure electronic entity, system comprising said elements and method for reproducing digital content
US11204980B2 (en) System and method for securely retrieving and playing digital media using peer-to-peer distribution
WO2008084154A2 (en) Processing of data associated with a digital service
FR2927209A1 (en) Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity
JP2005507195A (en) Apparatus and method for accessing material using entity-locked secure registry
US8826445B2 (en) Method and system of deterring unauthorized use of media content by degrading the contents waveform
FR2881254A1 (en) Digital data e.g. music file, restitution method for managing music rights, involves executing file for restitution of data in case of positive comparison between machine of user and identifier of machine on which data is to be played
EP2875461B1 (en) Transmission of digital content between a source terminal and a recipient terminal