FR2912590A1 - Procede de transmission differee d'un contenu de donnees, produit programme d'ordinateur, moyen de stockage et systeme de transmission correspondants - Google Patents

Procede de transmission differee d'un contenu de donnees, produit programme d'ordinateur, moyen de stockage et systeme de transmission correspondants Download PDF

Info

Publication number
FR2912590A1
FR2912590A1 FR0701136A FR0701136A FR2912590A1 FR 2912590 A1 FR2912590 A1 FR 2912590A1 FR 0701136 A FR0701136 A FR 0701136A FR 0701136 A FR0701136 A FR 0701136A FR 2912590 A1 FR2912590 A1 FR 2912590A1
Authority
FR
France
Prior art keywords
segment
content
data
data segment
value
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
FR0701136A
Other languages
English (en)
Inventor
Falk Tanhauser
Pascal Lagrange
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to FR0701136A priority Critical patent/FR2912590A1/fr
Publication of FR2912590A1 publication Critical patent/FR2912590A1/fr
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00731Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction
    • G11B20/00746Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number
    • G11B20/00797Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a digital rights management system for enforcing a usage restriction wherein the usage restriction can be expressed as a specific number wherein the usage restriction limits the number of times a content can be reproduced, e.g. using playback counters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26613Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for generating or managing keys in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4333Processing operations in response to a pause request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4367Establishing a secure communication between the client and a peripheral device or smart card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • 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/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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
    • 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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un procédé de transmission différée d'un contenu de données d'un dispositif source (001) vers un dispositif récepteur (003) dans un réseau de communication, par l'intermédiaire d'un dispositif de stockage (002), le procédé comprenant une phase de stockage dudit contenu et une phase de mise à disposition dudit contenu.Selon l'invention, la phase de stockage dudit contenu comprend les étapes suivantes :- définition d'au moins un segment de données à partir des données dudit contenu ;- association, à chaque segment de données, d'un compteur de lectures autorisées restantes de valeur égale à un nombre prédéterminé de lectures autorisées associé audit segment de données ;- stockage dudit(desdits) segment(s) de données sur le dispositif de stockage ;et la phase de mise à disposition dudit contenu comprend, pour chacun dudit ou desdits segment(s) stocké(s), les étapes suivantes :- vérification que la valeur du compteur de lectures autorisées restantes associé audit segment de données est supérieure à 0 ;- dans le cas d'une vérification positive, décrémentation de la valeur du compteur de lectures autorisées restantes associé audit segment de données d'une unité et transmission des données dudit contenu à partir desquelles ledit segment de données a été défini vers le dispositif récepteur (003).

Description

Procédé de transmission différée d'un contenu de données, produit
programme d'ordinateur, moyen de stockage et système de transmission correspondants. 1. Domaine de l'invention Le domaine de l'invention est celui des réseaux de communication de données. Plus particulièrement, l'invention concerne la protection contre la copie de données transmises entre plusieurs dispositifs terminaux dans un tel réseau. L'invention s'applique notamment, mais non exclusivement, dans le cas d'un réseau multimédia, où le flux de données transporte des données de type audio-vidéo (AV). 2. Solutions de l'art antérieur Les équipements modernes dont une habitation peut être équipée ont souvent pour tâche de transmettre des données de natures différentes comme de la vidéo, du son, des photos, des fichiers de texte et autres. La transmission de ces données est soumise à des exigences variables selon le type de données considéré. Ces données doivent notamment être véhiculées au moyen de câbles ou de liens adaptés. Ainsi, à chaque format de données, correspondent un moyen de transport adapté et un type de connecteur permettant de relier des équipements entre eux. Par exemple, les équipements traitant des données numériques peuvent communiquer selon la norme IEEE 1394. L'invention s'applique notamment, mais non exclusivement, dans le cas d'un réseau audio-vidéo, par exemple un réseau domestique, comprenant un réseau fédérateur comprenant lui-même des noeuds interconnectés entre eux par des liens numériques. Aux noeuds sont reliés des équipements à travers des liens qui peuvent être analogiques ou numériques. Les liens numériques qui interconnectent les noeuds entre eux ou les équipements aux noeuds peut être conformes à titre d'exemple non limitatif au standard IEEE 1394 décrit dans le document IEEE Std. 1394-1995, Si:andard for High Performance Serial Bus , au standard Ethernet IEEE 802.3, ou au standard de communication radio IEEE 802.11.
La figure 1 illustre un exemple d'un tel réseau audio-vidéo domestique 1000. Ce réseau domestique 1000 comprend un réseau fédérateur 1001 comprenant lui-même des noeuds 008, 009, 010 interconnectés via des liens 012 à 014.
Les noeuds 008 à 011 peuvent être également appelés points d'accès au réseau (ou Network Access Points désignés dans la suite par NAP). Le noeud 008 est connecté au noeud 009 via le lien 012 et au noeud 010 via le lien 014. Le noeud 009 est connecté au noeud 010 via le lien 013.
Dans une variante, les noeuds 008 à 011 sont également interconnectés via une unité centrale de commutation comprenant plusieurs dispositifs de commutation qui sont insérés dans les cloisons d'une habitation ou sont indépendants des cloisons et être ainsi déplaçables. Le noeud 008 est également connecté à un dispositif terminal 001 (qui est ici un boîtier décodeur ou set-top-box en anglais) via un lien 004 que l'on pourra également désigner par lien audio-vidéo. Le noeud 009 est également connecté à un dispositif terminal 002 (qui est ici un disque dur audio-vidéo 002 qui constitue un dispositif de stockage) via un lien 005.
Le noeud 010 est également connecté à un dispositif terminal 003 (qui est ici un téléviseur numérique 003) via un lien 006. Les noeuds 008, 009, 010 et les liens 004 à 006 et 012 à 014 sont par exemple conformes au protocole IEEE 1394 ou au protocole Ethernet IEEE 802.3, au protocole USB, au protocole de communication sans fils IEEE 802.11 ou même à tout autre de protocole de communication. Les noeuds 008 à 011 sont en charge de l'adaptation de flux entre des dispositifs terminaux sources auxquels ils sont reliés via des bus de communication et des dispositifs terminaux récepteur auxquels ils sont reliés via d'autres bus de communication. Dans d'autres cas, des dispositifs source et récepteur peuvent être localisés sur un même bus.
La protection des contenus transmis sur des liens tels que les liens IEEE 1394 ou Ethernet IEEE 802.3 ou USB est devenue un problème clé dans les réseaux de communication domestiques tels que le réseau 1000 de la figure 1. Une technique connue afin de garantir la protection contre la copie, lors de leurs transmissions, de flux tels que des contenus audio-vidéo dans un réseau domestique tel que celui de la figure 1 est la mise en oeuvre du protocole DTCP (pour Digital Transmission Content Protection en anglais et protection de contenus en transmission numérique en français). Les caractéristiques et recommandations de ce protocole sont détaillées dans le document de référence suivant : Digital Transmission Content Protection Specification, Volume 1 et 2, Draft 1.29 . Le protocole DTCP vise à protéger les contenus transmis sur des bus conformes au protocole IEEE 1394 ou au protocole Ethernet IEEE 802.3 ou au protocole USB, et peut s'étendre à tout autre de protocole de communication. Il comprend une phase d'authentification et d'échange de clés pour la mise en place d'une communication sécurisée ainsi qu'une phase de cryptage / décryptage pour la communication et le traitement sécurisés des données. Plus particulièrement, dans le cadre de la mise en oeuvre du protocole DTCP, un contenu à transmettre entre un dispositif source DTCP et un dispositif récepteur DTCP est préalablement crypté par le dispositif source avant d'être transmis au dispositif récepteur. D'autre part, après une étape d'authentification mise en oeuvre entre le dispositif source et le dispositif récepteur, la clé de cryptage servant à crypter le contenu est transmise par le dispositif source au dispositif récepteur. Le protocole DTCP est compatible avec la mise en oeuvre de plusieurs niveaux de protection pour le contenu transmis, depuis copy freely (ou copie libre , niveau de protection le plus faible) en passant par copy one generation (ou copie une fois ) jusqu'à copie never (ou copie interdite , niveau de protection le plus élevé). Les contenus paramétrés en copy never ou en copy no more (pour plus de copie autorisée ) peuvent être lus (ou affichés ou visionnés) mais ne doivent pas pouvoir être enregistrés de manière permanente par l'utilisateur. Les contenus paramétrés en copy one generation doivent pouvoir être enregistrés une fois sur un dispositif de stockage mais, une fois que cet enregistrement a été effectué, ils doivent être paramétré en copy no more et toute copie ultérieure sera prohibée. Le protocole DTCP impose de restreindre les fonctionnalités des dispositifs qui lui sont conformes lors de leur mise en oeuvre dans des réseaux de communication. En particulier, pour un dispositif récepteur, un contenu paramétré en copy never ne pourra être conservé (ou stocké) que pour la durée spécifiée dans son champ état de conservation (ou Retention State Field qui est un champ de 3 bits qui indique un temps maximum de conservation du contenu pouvant être de 90 minutes à 1 semaine ou bien nul) et seulement dans le but de pouvoir visionner en différé le contenu par exemple au moyen d'une fonction décalage temporel (ou time shifting ) sur le contenu temps réel (autrement appelé live streaming ). La copie d'un tel contenu copy never conservé doit être stockée au moyen d'une technique déterminée et doit subir une oblitération ou tout autre traitement permettant d'activer une temporisation au delà de laquelle le contenu est rendu inutilisable. Une technique autorisée pour stocker une copie d'un tel contenu est par exemple l'utilisation d'un protocole de cryptage qui associe de manière unique un unique dispositif à cette copie de sorte qu'elle ne puisse pas être jouée sur un autre dispositif ou que d'autres copies du contenu ne puissent pas être réalisées sur d'autres dispositifs.
Pour un dispositif source, les restrictions sont les suivantes. Un dispositif source doit attribuer, conformément aux spécifications, au champ état de conservation associé à un contenu audio-vidéo commercial (mais qui n'est pas un média pré-enregistré ou prerecorded media ) qui est paramétré en copy never , une durée de conservation égale à la plus grande des durées suivantes : - 90 minutes depuis la réception initiale par chaque unité du contenu (par exemple paquet par paquet, minute par minute, méga octet par méga octet, etc...) ; - une autre durée spécifiée dans les spécifications comme pouvant être autorisée par le propriétaire du contenu ; - si la durée pendant laquelle le contenu peut être conservé dans le dispositif source est déterminé par des règles, standards ou obligations qui ont été développés au moyen d'une procédure standard ouverte (ou Open Standard Process ), une telle durée, spécifiée dans les spécifications, qui est proche mais n'excédant pas la durée pendant laquelle le dispositif source est autorisé à conserver le contenu. Dans le cas d'un média pré-enregistré (ou prerecorded media ), Si le contenu audio-vidéo commercial a été préalablement conservé, le dispositif source doit paramétrer le contenu audio-vidéo commercial de sorte qu'aucune autre conservation ultérieure ne soit autorisée. Un utilisateur d'un contenu audio-vidéo qui n'est pas un pre-recorded media et qui est paramétré en copy never (par exemple un contenu accessible au moyen de la technique pay-per-view ou paye par visionnage ) doit pouvoir stocker ce contenu pour pouvoir mettre en oeuvre des fonctionnalités de type décalage temporel (ou time shifting ) sur le contenu temps réel (autrement appelé live streaming ). Un tel stockage du contenu est considéré comme faisant partie d'une utilisation loyale (ou fair use ) du contenu au sens de l'utilisation du protocole DTCP.
Cependant, pendant ce stockage du contenu, il faut pouvoir s'assurer que les droits de Propriété Industrielle du titulaire du contenu sont respectés. C'est-à-dire que, par exemple, non seulement, le contenu ne doit être stocké que pendant la durée de conservation, mais encore, le contenu ne doit pas être visionné plus d'une fois.
D'autre part, l'utilisateur peut vouloir utiliser son propre dispositif de stockage (ou on-the-shelf storage device ) pour effectuer un tel stockage du contenu. Ainsi, le contrôle d'un tel stockage ne doit pas être effectué par le dispositif de stockage. 3. Objectifs de l'invention L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. Plus précisément, un objectif de l'invention, dans au moins un de ses modes de réalisation, est de fournir une technique permettant de lire, de manière échelonnée dans le temps, au moins un segment d'un contenu paramétré en copy never tout en respectant un critère de nombre maximum de lectures autorisées du contenu. Un autre objectif de l'invention, dans au moins un de ses modes de réalisation, est de mettre en oeuvre une telle technique qui soit compatible avec tout dispositif de stockage existant.
Un autre objectif de l'invention, dans au moins un de ses modes de réalisation, est de mettre en oeuvre une telle technique qui permette de réduire le temps de traitement des flux de données dans un tel réseau et la charge du réseau liée à cette protection. L'invention a encore pour objectif, dans au moins un de ses modes de 20 réalisation, de fournir une telle technique qui soit sûre, simple à mettre en oeuvre et peu coûteuse. 4. Caractéristiques essentielles de l'invention Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de transmission différée d'un contenu de données d'un 25 dispositif source vers un dispositif récepteur dans un réseau de communication, par l'intermédiaire d'un dispositif de stockage, le procédé comprenant une phase de stockage dudit contenu et une phase de mise à disposition dudit contenu. Selon au moins un mode de réalisation de l'invention, la phase de stockage dudit contenu comprend les étapes suivantes : 30 - définition d'au moins un segment de données à partir des données dudit contenu ; - association, à chaque segment de données, d'un compteur de lectures autorisées restantes de valeur égale à un nombre prédéterminé de lectures autorisées associé audit segment de données ; -stockage dudit(desdits) segment(s) de données sur le dispositif de stockage; et la phase de mise à disposition dudit contenu comprend, pour chacun dudit ou desdits segment(s) stocké(s), les étapes suivantes : -vérification que la valeur du compteur de lectures autorisées restantes associé audit segment de données est supérieure à 0 ; - dans le cas d'une vérification positive, décrémentation de la valeur du compteur de lectures autorisées restantes associé audit segment de données d'une unité et transmission des données dudit contenu à partir desquelles ledit segment de données a été défini vers le dispositif récepteur.
Le principe générale de l'invention consiste à créer un ou plusieurs segments à partir d'un contenu et à associer, à chaque segment du contenu, un compteur de lectures autorisées restantes dont la valeur initiale est égale à un nombre prédéterminé de lectures autorisées. Cette valeur est décrémentée à chaque lecture du segment, le compteur permettant d'interdire la lecture du segment lorsqu'il atteint la valeur 0, de sorte à fournir un outil de contrôle de la lecture des segments d'un contenu. Ainsi, le procédé selon l'invention permet de lire, de manière échelonnée dans le temps, au moins un segment d'un contenu paramétré en copy never tout en respectant un critère de nombre maximum de lectures autorisées du contenu ou de la partie du contenu auquel le segment appartient. Préférentiellement, le contenu comprend au moins deux segments. Ainsi, plus le nombre de segments pour un contenu donné est grand (ou plus la granularité est petite), moins d'informations seront perdues lors de la reprise de lecture d'un contenu par un utilisateur après une interruption de lecture du contenu.
Avantageusement, ladite phase de mise à disposition comprend en outre, pour chacun du ou desdits segments, une étape d'obtention d'au moins un identifiant de début du segment permettant de mettre en oeuvre une lecture du segment à partir du début du segment.
Préférentiellement, la phase de stockage comprend les étapes suivantes pour chacun du ou desdits segments de données : - obtention d'une clé de cryptage propre audit segment de données ; - cryptage des données dudit contenu à partir desquelles ledit segment de données a été défini avec ladite clé de cryptage ; - stockage de la clé de cryptage en correspondance avec un identifiant dudit segment de données. Ainsi, le procédé selon l'invention permet d'assurer le respect des droits associés au contenu, l'obtention d'une clé de cryptage pour un segment généré à partir du contenu ne permettant pas la lecture des autres segments du contenu.
Selon une caractéristique de l'invention, si la valeur du compteur de lectures autorisées restantes associé à un segment de données est nulle suite à l'étape de décrémentation, le procédé comprend une étape d'effacement de la clé de cryptage propre audit segment de données. Ainsi, le procédé selon l'invention permet, qu'une fois qu'un segment de données a été lu un nombre de fois égal au nombre maximum de lectures autorisées du contenu ou de la partie du contenu auquel le segment appartient, il devient impossible, par effacement de la clé de cryptage, de relire le segment de données. En effet, les dispositifs de stockage tels que les disques durs audio-vidéo standard (AVHDD), par exemple de type IEEE 1394, stockent un flux de données en continu sur un fichier. Ils ne proposent par ailleurs pas de fonctions d'édition d'un tel fichier. L'invention permet donc que chaque segment généré à partir du contenu qui est lu autant de fois qu'autorisé soit impossible à relire par la suite, bien que le segment de données soit toujours présent sur le dispositif de stockage.
Selon une caractéristique de l'invention, le nombre prédéterminé de lectures autorisées associé à chaque segment de données est égal à un même nombre prédéterminé de lectures autorisées associé audit contenu. Ainsi, cela peut être par exemple le cas pour un contenu qui est un film pour lequel il est associé un nombre unique de lectures autorisées pour chacune de ses portions. Avantageusement, le procédé de transmission différée comprend en outre une phase de lissage de la valeur du compteur de lectures autorisées restantes d'un segment de données donné comprenant les étapes suivantes : - obtention dudit segment de données donné ; -égalisation de la valeur du compteur de lectures autorisées restantes associé au segment de données obtenu avec la valeur du compteur de lectures autorisées restantes associé à au moins un segment de données adjacent au segment de données obtenu. Ainsi, cette phase de lissage permet par exemple qu'une décrémentation par erreur du compteur d'un segment isolé (par exemple dans le cas où un utilisateur commence à lire ce segment et se rend compte qu'il souhaite lire le contenu à partir d'un autre segment) ne soit pas prise en compte. Préférentiellement, ladite étape d'obtention dudit segment donné comprend une étape de détection d'un segment de données, dit segment donné, pour lequel la valeur du compteur de lectures autorisées restantes des deux segments de données adjacents au segment de données donné est égale à une valeur prédéterminée et pour lequel la valeur du compteur de lectures autorisées restantes est différente de la valeur prédéterminée. Préférentiellement, ladite étape de décrémentation de la valeur du compteur de lectures autorisées restantes associé à un segment de données n'est pas mise en oeuvre dans l'un au moins des cas suivants : - mise en oeuvre d'une commande AVANCE-RAPIDE sur ledit segment de données ; - mise en oeuvre d'une commande RETOUR-ARRIERE sur ledit segment de données.
Ainsi, il est possible de ne pas prendre en compte une lecture d'un segment en AVANCE-RAPIDE ou RETOUR-ARRIERE en terme de décrémentation de son compteur. En effet, les dispositifs de stockage tels que les disques durs audio-vidéo standard (AVHDD), par exemple de type IEEE 1394, ne permettent pas toujours la lecture d'un contenu à partir d'un moment autre que son début. Il faut alors se déplacer dans le contenu à partir de son début et déterminer l'endroit de lecture désiré en mode de visualisation dégradé (AVANCE-RAPIDE ou RETOURARRIERE).
Avantageusement, le procédé de transmission différée comprend une étape de détection d'un segment de données, dit segment détecté, pour lequel la valeur du compteur de lectures autorisées restantes qui lui est associé est inférieure à la valeur du compteur de lectures autorisées restantes associé au segment de données adjacent au segment détecté, ledit segment de données adjacent étant situé en aval du segment détecté dans le sens de lecture du contenu. L'invention permet donc de détecter les endroits du contenu, repérés par des débuts de segments, où l'utilisateur a effectué des opérations de navigation dans le contenu (LECTURE, AVANCE-RAPIDE, RETOUR-ARRIERE ou STOP).
Selon une caractéristique de l'invention, la phase de mise à disposition du contenu est mise en oeuvre à partir dudit segment adjacent. Ainsi, par exemple, il est possible, lorsque un utilisateur a stoppé une lecture du contenu à un segment donné, qu'il reprenne la lecture du contenu au segment suivant (le segment adjacent situé en aval du segment donné dans le sens de lecture du contenu). Il est également possible de reprendre la lecture au premier segment du contenu qui est autorisé à la lecture. L'invention concerne également un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé de transmission différée tel que précédemment décrit, lorsque ledit programme est exécuté sur un ordinateur.
L'invention concerne également un moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé de transmission différée tel que précédemment décrit.
L'invention concerne également un système de transmission différée d'un contenu de données d'un dispositif source vers un dispositif récepteur dans un réseau de communication, par l'intermédiaire d'un dispositif de stockage, le système comprenant des moyens de stockage dudit contenu et des moyens de mise à disposition dudit contenu, Selon au moins un mode de réalisation de l'invention, les moyens de stockage dudit contenu comprennent : - des moyens de définition d'au moins un segment de données à partir des données dudit contenu ; - des moyens d'association, à chaque segment de données, d'un compteur de lectures autorisées restantes de valeur égale à un nombre prédéterminé de lectures autorisées associé audit segment de données ; - des moyens de stockage dudit(desdits) segment(s) de données sur le dispositif de stockage ; et les moyens de mise à disposition dudit contenu comprennent, pour chacun dudit ou desdits segment(s) stocké(s) : - des moyens de vérification que la valeur du compteur de lectures autorisées restantes associé audit segment de données est supérieure à 0 ; - des moyens de décrémentation de la valeur du compteur de lectures autorisées restantes associé audit segment de données d'une unité et des moyens de transmission des données dudit contenu à partir desquelles ledit segment de données a été défini vers le dispositif récepteur, lesdits moyens de décrémentation et de transmission étant activés dans le cas d'une vérification positive par les moyens de vérification. Les avantages du système de transmission différée sont sensiblement les mêmes que ceux du procédé de transmission différée et ne sont donc pas repris ci- après. Préférentiellement, lesdits moyens de mise à disposition comprennent en outre, pour chacun du ou desdits segments, des moyens d'obtention d'au moins un identifiant de début du segment permettant de mettre en oeuvre une lecture du segment à partir du début du segment. Avantageusement, lesdits moyens de stockage comprennent, pour chacun du ou desdits segments de données : - des moyens d'obtention d'une clé de cryptage propre audit segment de données ; - des moyens de cryptage des données dudit contenu à partir desquelles ledit segment de données a été défini avec ladite clé de cryptage ; - des moyens de stockage de la clé de cryptage en correspondance avec un identifiant dudit segment de données. Préférentiellement, le système comprend des moyens d'effacement de la clé de cryptage propre à un segment de données, lesdits moyens d'effacement étant activés si la valeur du compteur de lectures autorisées restantes associé audit segment de données est rendue nulle par les moyens de décrémentation. Avantageusement, le nombre prédéterminé de lectures autorisées associé à chaque segment de données est égal à un même nombre prédéterminé de lectures autorisées associé audit contenu. Préférentiellement, le système comprend en outre des moyens de lissage de la valeur du compteur de lectures autorisées restantes d'un segment de données donné comprenant : - des moyens d'obtention dudit segment de données donné ; - des moyens d'égalisation de la valeur du compteur de lectures autorisées restantes associé au segment de données obtenu avec la valeur du compteur de lectures autorisées restantes associé à au moins un segment de données adjacent au segment de données obtenu. Avantageusement, lesdits moyens d'obtention dudit segment donné 30 comprennent des moyens de détection d'un segment de données, dit segment donné, pour lequel la valeur du compteur de lectures autorisées restantes des deux segments de données adjacents au segment de données donné est égale à une valeur prédéterminée et pour lequel la valeur du compteur de lectures autorisées restantes est différente de la valeur prédéterminée.
Préférentiellement, lesdits moyens de décrémentation de la valeur du compteur de lectures autorisées restantes associé à un segment de données ne sont pas activés dans l'un au moins des cas suivants : - mise en oeuvre d'une commande AVANCE-RAPIDE sur ledit segment de données ; - mise en oeuvre d'une commande RETOUR-ARRIERE sur ledit segment de données. Avantageusement, le système comprend des moyens de détection d'un segment de données, dit segment détecté, pour lequel la valeur du compteur de lectures autorisées restantes qui lui est associé est inférieure à la valeur du compteur de lectures autorisées restantes associé au segment de données adjacent au segment détecté, ledit segment de données adjacent étant situé en aval du segment détecté dans le sens de lecture du contenu. Préférentiellement, lesdits moyens de mise à disposition du contenu sont des moyens de mise à disposition du contenu à partir dudit segment adjacent 5. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante de plusieurs modes de réalisation préférentiels, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels : la figure 1 présente le schéma d'un réseau audio-vidéo domestique dans lequel peut être mis en oeuvre le procédé de transmission différée selon l'invention ; la figure 2 illustre un exemple particulier conforme à l'invention dans lequel un contenu audio-vidéo c0, paramétré en copy never et provenant du dispositif terminal source, est stocké sur le dispositif terminal de stockage ; la figure 3 illustre l'exemple particulier précité conforme à l'invention dans lequel le contenu cO, préalablement stocké sur le dispositif terminal de stockage, est restitué à partir du dispositif terminal de stockage et affiché sur le dispositif terminal récepteur ; la figure 4 présente le schéma d'une implémentation, particulière selon l'invention, du noeud de stockage et du dispositif terminal de stockage dans le cadre du stockage du contenu cO ; - la figure 5 présente les étapes principales d'un algorithme de stockage du contenu cO dans le cadre du procédé de transmission différée de cO selon le mode de réalisation particulier de l'invention ; la figure 6 présente le schéma d'une implémentation, particulière selon l'invention, du noeud de stockage et du dispositif terminal de stockage dans le cadre de la lecture du contenu cO après que cO ait été stocké sur le dispositif terminal de stockage ; la figure 7 présente les étapes principales d'un algorithme de lecture, sur le dispositif terminal de lecture, d'un segment donné du contenu cO selon le mode de réalisation particulier de l'invention ; la figure 8 présente les étapes principales d'un algorithme de traitement de commandes de navigation sur le contenu cO pendant la lecture de segments de cO sur le dispositif terminal de lecture selon le mode de réalisation particulier de l'invention ; la figure 9 présente les étapes principales d'un algorithme de lecture d'un contenu selon le mode de réalisation particulier de l'invention dans le cas où m (où m est un entier positif) premiers segments de ce contenu ont déjà été lus; la figure 10 présente les étapes principales d'un algorithme de lecture d'un contenu selon le mode de réalisation particulier de l'invention dans le cas où plusieurs lectures partielles du contenu ont déjà eu lieu. 6. Description de plusieurs modes de réalisation de l'invention Dans le cadre d'un mode de réalisation particulier de l'invention, on se place dans le réseau domestique 1000 de la figure 1. Il est clair cependant que l'invention peut être mise en oeuvre dans tout réseau de communicationcomprenant au moins un dispositif source connecté directement ou indirectement à au moins un dispositif de stockage, ce réseau permettant d'échanger au moins un contenu sous forme de paquets de données entre le dispositif source et le dispositif de stockage. On suppose dans la suite, dans le cadre du mode de réalisation particulier, que les noeuds 008, 009, 010 et les liens 004 à 006 et 012 à 014 sont par exemple 10 conformes au protocole Ethernet IEEE 802.3. Bien entendu, les noeuds 008, 009, 010 et les liens 004 à 006 et 012 à 014 peuvent être, dans d'autres mode de réalisation de l'invention, conformes, par exemple au protocole IEEE 1394, au protocole USB, au protocole de communication sans fils IEEE 802.11 ou même à tout autre de protocole de 15 communication. Par ailleurs, on considère dans la suite que le protocole de protection de contenus mis en oeuvre dans le réseau domestique 1000 est le protocole DTCP précité. Cependant, il est évident que l'invention s'applique également à tout protocole de protection de contenus. 20 Dans la suite, on suppose qu'un contenu audio-vidéo c0 (qui n'est pas un pre-recorded media) paramétré en copy never et qui ne doit pouvoir être lu que n fois (ce que l'on désignera dans la suite par paramétré en readùn times , pour n lecture autorisées , où n est un entier positif) est fourni par le dispositif terminal 001 (appelé dans la suite dispositif terminal source 001) relié au noeud 25 008 (appelé ci-après noeud source 008). Ce contenu peut par exemple être reçu par le dispositif terminal source 001 par communication satellite ou câblée, quand le dispositif terminal source 001 est un récepteur-décodeur satellite ou câble ( Set-Top Box ). On décrira également dans la suite un exemple particulier conforme à 30 l'invention selon lequel n =1, c'est-à-dire que le contenu c0 est paramétré en read once (pour lecture unique). On suppose également qu'un utilisateur souhaite accéder à ce contenu c0 par lecture avec un décalage temporel ( time shifting ) donné sur le téléviseur numérique 003 (ci-après appelé dispositif terminal récepteur 003) relié au noeud 010 (appelé ci-après noeud récepteur 010). Le contenu c0 est alors transmis, conformément au protocole DTCP, par le dispositif source 001 au noeud de stockage 009 via le noeud source 008. Le contenu c0 est alors segmenté en une pluralité de segments disposés les uns à la suite des autres, chacun étant paramétré pour pouvoir être lu n (où n = 1 dans l'exemple particulier précité) fois. Bien entendu, dans d'autres exemples conformes à l'invention, chaque segment du contenu c0 peut être paramétré de sorte à pouvoir être lu un nombre quelconque de fois. Ensuite, chaque segment du contenu c0 est crypté, au moyen d'une clé de cryptage dédiée au segment, par le noeud de stockage 009 avant d'être stocké de façon temporaire sur le disque dur 002 (appelé ci-après dispositif terminal de stockage 002) relié au noeud de stockage 009. Puis, afin que le contenu soit lu sur le terminal récepteur, chaque segment du contenu c0 est décrypté par le noeud de stockage avant d'être transmis au noeud récepteur 010. Bien entendu, l'invention peut s'appliquer dans un autre réseau domestique dans lequel les contenus intermédiaires sont stockés sur un nombre quelconque de terminaux de stockage et également dans le cas où le terminal de stockage est confondu avec le noeud de stockage.
Ainsi, dans le cadre de cet exemple particulier d'une lecture du contenu c0 avec un décalage temporel, il est mis en oeuvre une phase de stockage du contenu sur le terminal de stockage pouvant s'opérer quasi-simultanément à une phase de lecture du contenu à partir du terminal récepteur. Cependant, l'invention s'applique également au cas où l'on met seulement en oeuvre une phase de stockage du contenu sur le terminal de stockage.
Elle s'applique également au cas où, après une phase de stockage du contenu, on met en oeuvre une phase de lecture dii contenu (non simultanée avec la phase de stockage) à partir du terminal de stockage sur le terminal récepteur. Il est à noter, tel qu'indiqué dans la suite, que dans le cas de la lecture avec décalage temporel, si le contenu cO possède avant d'être stocké le statut copy never , il sera nécessaire avant tout stockage sur une unité de stockage externe de modifier (ou de forcer) ses bits EMI (tels que définis dans le protocole DTCP) de sorte à ce qu'il passe du statut copy never à un statut qui autorise son stockage tel que par exemple le statut copy one generation (pour copie une fois ).
Dans ce cas, après avoir été stocké une fois (ce qui est l'équivalent d'une lecture du contenu cO), le statut des bits EMI de cO sera normalement décrémenté de sorte à passer dans l'exemple particulier précité de copy one generation à copy never . Ainsi, la présente invention s'applique pour tout niveau de protection contre la copie du contenu cO et n'est de ce fait pas limitée à un protocole de protection contre la copie unique (tel que le protocole DTCP). Ainsi, la mise en oeuvre de l'invention permet l'enregistrement temporaire sécurisé de tout ou partie d'un flux de données possédant tout statut. Il est clair que d'une façon générale un même flux peut être reçu simultanément par plusieurs terminaux récepteurs connectés chacun à un noeud récepteur du réseau. Plusieurs terminaux récepteurs peuvent éventuellement être connectés à un même noeud récepteur du réseau. Bien entendu, dans la pratique, un même noeud peut jouer le rôle d'un noeud source si au moins un terminal source lui est connecté et/ou le rôle d'un noeud récepteur si un terminal récepteur lui est connecté et/ou le rôle d'un noeud de stockage si un terminal de stockage lui est connecté. De la même manière, un même terminal pourra être récepteur dans certaines transmissions de données et émetteur dans d'autres transmissions de données. Selon une caractéristique préférentielle de l'invention, les noeuds du réseau 30 domestique 1000 comprennent des moyens pour déterminer si le contenu cO est à accès libre ou à accès restreint. Par exemple, ils peuvent accéder à des informations d'une table référençant tous les contenus stockés sur le réseau et leur statut de restriction d'accès. Le procédé de transmission différée d'un contenu de données selon l'invention est mis en oeuvre sous la forme d'un logiciel et/ou d'une pluralité de sous logiciels (comprenant une pluralité d'algorithmes décrits ci-après) qui est (sont) exécuté(s) dans une ou plusieurs machines du réseau 1000, par exemple dans le noeud de stockage décrit ci-après. Bien entendu, chacun des algorithmes ciaprès décrits peut être mis en oeuvre dans tout noeud ou terminal du réseau 1000. D'autre part, la mise en oeuvre des algorithmes ci-après décrits peut être distribuée dans plusieurs noeuds et/ou terminaux du réseau 1000. On suppose dans la suite que les algorithmes de cryptage et de décryptage (et notamment ceux dans le cadre du protocole DTCP) mis en oeuvre sont symétriques (c'est-à-dire que le décryptage d'un segment, préalablement crypté avec une clé de cryptage, est réalisé avec une clé correspondant à la clé de cryptage). On illustre, en relation avec la figure 2, l'exemple particulier précité conforme à l'invention dans lequel le contenu audio-vidéo c0, paramétré en copy never (protégé contre la copie) et provenant du terminal source 001 (qui est un terminal de décodage de type Set-Top Box ), est stocké sur le terminal de stockage 002. L'utilisateur envoie, au noeud source (cette demande peut être relayée via un autre noeud) une requête de stockage ( enregistrement ) du contenu c0, provenant du terminal source 001, sur le terminal de stockage 002.
La requête est conforme au protocole UPnP (pour Universal Plug & Play en anglais) et le noeud source joue le rôle de poste de contrôle UPnP. Bien entendu, tout autre noeud du réseau peut jouer le rôle de poste de contrôle UPnP et notamment le noeud récepteur 010 relié au terminal récepteur 003.
Dans une étape 201, le noeud source 008 entame une phase d'authentification et d'échange de clé DTCP (ci-après désignée par phase AKE) avec le terminal source 001. Une fois l'échange de clé achevé, dans une étape 202, le terminal source 001 commence à envoyer le contenu c0, marqué copy never , au noeud source 008.
Puis, dans une étape 203, le noeud source 008 transmet le contenu c0 au noeud de stockage 009 conformément au protocole DTCP. Puis, le noeud de stockage 009 décompose le flux en segments et dans une étape 204, le noeud de stockage 009 crypte chaque segment de c0 avec une clé de cryptage dédiée au segment et transmet ces segments cryptés au terminal de stockage 002 afin de les stocker. Dans une variante de l'invention, l'étape de décomposition du flux en segments est réalisée par le noeud source 008. Ainsi, la protection du contenu c0, lors de sa transmission différée, sur le réseau 1000, entre le noeud source 008 et le noeud de stockage 009, est mise en oeuvre grâce aux moyens connus du protocole DTCP-IP.
Ainsi, sur détection d'une requête de stockage d'un contenu paramétré en copy never tel que le contenu c0, le noeud de stockage 009 assure le traitement (découpe du contenu c0 en segments et pour chaque segment de c0, cryptage du segment et intégration d'un identifiant de début de segment ainsi que le stockage du segment crypté sur le terminal de stockage 002) conforme à l'invention qui est décrit en détail ci-après notamment en relation avec les figures 4 et 5. On illustre, en relation avec la figure 3, l'exemple particulier précité conforme à l'invention dans lequel le contenu c0, paramétré en copy never (protégé contre la copie) est préalablement stocké sur le terminal de stockage 002 selon la méthode décrite en relation avec la figure 2, puis est restitué à partir du terminal de stockage 002 afin d'être affiché sur le terminal récepteur 003 (qui est une télévision numérique ou DTV). L'utilisateur envoie une requête conforme au protocole UPnP, telle que, par exemple, une requête lecture (pouvant être relayée par un autre noeud) au noeud source 008 (qui joue le rôle de poste de contrôle UPnP) afin que le noeud récepteur puisse recevoir le contenu audio-vidéo c0 protégé contre la copie préalablement stocké sur le terminal de stockage 002. Dans une étape 301, cette requête est transmise par le noeud source 008 au noeud de stockage 009. Un autre noeud du réseau, par exemple le noeud récepteur 010, peut être l'initiateur d'une telle requête. Puis, dans une étape 302, une requête est transmise du noeud de stockage 009 au terminal de stockage 002 afin de permettre la lecture, selon une mise en oeuvre particulière de l'invention du contenu préalablement stocké sur le dispositif terminal de stockage 002. Puis, le terminal de stockage 002 commence à relire le contenu en commençant à partir d'une position choisie (par défaut depuis le début du contenu stocké). En conséquence, le terminal de stockage 002 détecte la présence d'identifiants de début de segment dans le contenu relu et par conséquent réalise le décryptage du contenu selon l'invention, ce décryptage étant décrit en détail ci-après notamment en relation avec les figures 6 et 7.
Puis, dans une étape 303, le contenu cO (après avoir été protégé contre la copie grâce au protocole DTCP-IP) est transmis, par le terminal de stockage 002, au noeud de stockage 009. Ensuite, dans une étape 304, le contenu cO est transmis, par le noeud de stockage 009 au noeud récepteur 010. Puis, dans une étape 305, le noeud récepteur 010, après avoir mis en place 20 une phase AKE avec le terminal récepteur 003, transmet le contenu paramétré en copy never au terminal récepteur 003. On présente, en relation avec la figure 4, le schéma d'une implémentation, particulière selon l'invention, du noeud de stockage 009 et du terminal de stockage 002 dans le cadre du stockage du contenu cO. Le noeud de stockage 009 est chargé 25 de stocker, conformément à l'invention, les contenus protégés contre la copie et notamment le contenu cO. Dans le cadre du stockage de cO, le noeud de stockage 009 comprend : - un premier module d'interface audio-vidéo 403 connecté par exemple au noeud récepteur du réseau fédérateur 1001 au moyen du lien 012 et qui alimente un premier module de cryptage/décryptage DTCP 404 ci-après utilisé en module de décryptage 404 ; - un second module de cryptage/décryptage en lecture unique 405 ciaprès utilisé en moclule de cryptage en lecture unique 405, ledit module de cryptage 405 étant alimenté par le module de décryptage 404 ; - un second module d'interface audio-vidéo 406, alimenté par le module de cryptage 405 et connecté, par le lien Ethernet 005, au terminal de stockage 002, le second module d'interface 406 comprenant un générateur d'entête en lecture unique 4061 et recevant des identifiant de clé de cryptage d'une mémoire 408 ci-après décrite ; - un générateur de clé 407 conforme à l'invention pouvant fournir au moins une clé de cryptage au module de cryptage 405 et au moins une clé de cryptage à la mémoire 408 ci-après décrite ; - la mémoire 408 de type RAM (pour Random Access Memory ), EEPROM ( Electrically Erasable Programmable Read-Only Memory ) ou FLASH comprenant un table pour chaque contenu, chaque table comprenant (par exemple pour le contenu c0) : - un ensemble 4081 de zones tampon, chaque zone tampon étant associée à un segment du contenu c0 et comprenant un identifiant de la clé de cryptage en cours d'utilisation pour le cryptage du segment, chaque identifiant de clé de cryptage étant associé à une clé de cryptage et étant en cours d'utilisation. Chaque zone tampon comprenant également un compteur de lectures (également appelé compteur de lectures autorisées restantes) associé au segment ci- après décrit ; une information temporelle peut aussi y être adjointe (non représentée) afin d'indiquer la période de rétention applicable à chaque segment ; - une liste d'identifiant de contenu disponibles (non représentée) ; - une liste 4082 d'identifiants de clés de cryptage disponibles (qui ne sont pas en cours d'utilisation).
Une zone tampon permet d'enregistrer les données correspondantes à segment de c0. Ces données comprennent notamment un identifiant unique de la clé qui a été utilisée pour crypter le segment de flux du contenu, ainsi que des champs dédiés à des informations supplémentaires optionnelles détaillés ci-après.
La clé qui a été utilisée pour crypter le segment de flux du contenu peut aussi être stockée à la place d'un identifiant de clé. Chacune des zones tampon permet de conserver une trace de la position à laquelle la prochaine opération d'écriture aura lieu grâce à un pointeur d'écriture (ou wril:e pointer ). Il est à noter que selon l'implémentation de la mémoire 408, ce pointeur d'écriture pourra correspondre ou pas à un véritable pointeur bas niveau au sens du langage d'implémentation. Avantageusement, les enregistrements dans les zones tampon sont organisés de façon à permettre la récupération rapide de chaque enregistrement associé à un identifiant de clé unique. Ceci peut être obtenu au moyen de plusieurs techniques bien connues de l'homme du métier. Par exemple une première technique est d'utiliser des identifiants de clé organisés linéairement, et de stocker les enregistrements dans un tableau dans l'ordre correspondant à l'ordre de leurs identifiants de clé respectifs (qui permet de les trouver via une recherche dichotomique binaire dont la complexité n'augmente que logarithmiquement avec le nombre d'élément à rechercher). Une seconde technique est l'utilisation d'un arbre pondéré, comme par exemple implémenté par la librairie standard C++ ISO 1998 de type std::map avec les identifiants de clé cités précédemment utilisés comme clés structurelles, les structures contenant les clés de cryptage correspondantes et des champs informations supplémentaires optionnels utilisés comme type d'organisation ù ceci apporte également une complexité de recherche augmentant logarithmiquement avec le nombre d'élément de recherche. Le terminal de stockage 002, qui est un disque dur externe, comprend des fichiers et répertoires pour réaliser des fonctions usuelles telles que la création, l'effacement, l'ouverture, la fermeture, la lecture depuis, l'écriture dans et la recherche dans les fichiers. Il est représenté sur la figure 4 (et la figure 6 ci-après décrite) dans le terminal de stockage 002, un exemple de structure d'un contenu tel que le contenu c0 crypté et stocké sur le dispositif de stockage 002 selon le mode de réalisation particulier de l'invention.
Ainsi, le contenu c0 crypté comprend plusieurs segments 410, 420. Chaque segment 410 comprend une entête 411 et un corps 412 comprenant des données cryptées. Chaque entête 411 comprend notamment un identifiant de début de segment 4111 (décrit ci-après en relation avec l'étape 504 de la figure 5) et l'identifiant de la clé de cryptage mise en oeuvre pour crypter ce segment.
On présente, en relation avec la figure 5, les étapes principales d'un algorithme de stockage du contenu c0 (paramétré en copy never ) dans le cadre du procédé de transmission différée de c0 selon le mode de réalisation particulier de l'invention. Cet algorithme est mis en oeuvre par le noeud de stockage 009. Dans une étape 500, le noeud de stockage 009 détecte l'initialisation du stockage du contenu c0 (provenant du noeud source 008 via le lien 012) sur le terminal de stockage 002 dans le cadre de la demande de lecture de c0 avec décalage temporel provenant de l'utilisateur. Pour cette détection, par exemple, le noeud de stockage 009 est capable d'identifier les terminaux de stockage connectés au lien 005 (le terminal 002 dans le cadre du réseau domestique 1000).
Les normes USB, IEEE 1394 et UPnP, par exemple, décrivent les moyens nécessaires à la communication entre dispositifs conformes à ces normes d'informations permettant l'identification de ces dispositifs et la description des fonctions replies par ces dispositifs. Il est également déterminé, lors de cette étape 500, le nombre de fois que l'utilisateur est autorisé à lire chaque segment du contenu c0 (conformément à l'exemple particulier précité, le contenu c0 ne peut être vu qu'une seule fois). Une façon bien connue pour le terminal source 001 d'indiquer un comptage du nombre de fois que l'utilisateur a le droit de visionner (ou lire) le contenu est d'obtenir, dans le répertoire du UPnP DIDL-Lite (pour Digital Item Declaration Language ù Lite ou langage de déclaration d'élément numérique ù allégé , dont le format est basé sur le XML) et plus précisément dans l'élément <res> associé au contenu cO protégé, une ligne de la forme allowedUse = PLAY, n avec n un compteur de lectures permettant le comptage en question. Ce répertoire est exporté par le terminal source 001 à l'attention des autres dispositifs conformes à la norme UPnP et notamment des points de contrôle UPnP. Dans le cadre du mode de réalisation particulier précité, afin de mettre en oeuvre ce comptage du nombre de lecture autorisées de chaque segment du contenu cO, on met en oeuvre un compteur de lectures pour chaque segment du contenu cO tel que décrit ci-après en relation avec l'étape 504 de la figure 5. Ainsi, il est mis en oeuvre, dans cette étape 500, une initialisation des compteurs de lectures de chaque segment de cO. Par exemple, chaque compteur de lectures est initialisé avec la même valeur par exemple avec la valeur 1 dans le cadre du présent mode de réalisation particulier. Cependant, il est parfaitement envisageable dans le cadre de la présente invention d'initialiser chaque compteur de lectures pour les segments d'un contenu donné de manière indépendante de l'initialisation des autres compteurs de lectures. C'est par exemple le cas d'un contenu diffusé en continu par le dispositif source 001 (qui est un boîtier décodeur dans le mode de réalisation particulier précité) et qui correspond à une séquence de différents programmes audiovisuels auxquels sont associés des droits de diffusion distincts. Puis, dans une étape 501, une table (telle que décrite en relation avec la figure 4) vide, permettant de stocker les clés de cryptage des segments du contenu cO pour une lecture unique, est réservée dans la mémoire 408. La taille initiale de la table est choisie de manière à permettre le stockage de l'ensemble des clés et identifiants de clé associés à l'ensemble des segments du contenu cO et des compteurs de lecture associés à l'ensemble des segments du contenu cO. La taille de la table peut aussi être ajustée dynamiquement, notamment dans le cas où la taille totale (c'est-à-dire le nombre de segments du contenu) n'est pas connue au moment de l'opération de stockage du contenu sur le dispositif de stockage 002. Il est à noter que la réallocation sera exécutée de manière transparente pour le programmeur si le tableau est généré en utilisant la librairie de type std::vector du standard C++ ISO 1998. De plus, un unique identifiant de contenu est pris dans la liste d'identifiants de contenu disponibles.
Puis, dans une étape 502, le pointeur d'écriture est positionné dans la table au niveau d'un segment courant de c0. Ainsi, lors de la mise en oeuvre du stockage de c0, le pointeur d'écriture commence par se positionner sur le premier segment ou segment initial de c0. Puis, dans une étape 503, une clé de cryptage (pour la lecture avec décalage temporel du segment courant) est générée par le module de génération de clé 407 en utilisant un générateur cryptographique de nombre aléatoire. De plus, un identifiant de clé est choisi à partir de la liste des identifiants disponibles et est retiré de cette liste pour s'assurer qu'il ne soit pas utilisé deux fois. Dans une étape 504, le module de génération de clé 407 transmet la clé de cryptage à la fois au module de cryptage en lecture unique 405 et à la mémoire 408, puis un nouveau stockage du segment de c0 est mis en oeuvre dans une zone tampon dédiée de la table, à l'emplacement indiqué par le pointeur d'écriture. Ce stockage associe l'identifiant de clé à la clé de cryptage ainsi que certaines informations supplémentaires pouvant comprendre, pour le segment courant de c0: - un compteur de lectures du segment courant indiquant combien de fois le segment courant de c0 peut être lu. Ce compteur est mis à jour lors de chaque nouveau stockage du segment courant avec le nombre de fois que le segment peut être visualisé (voir l'étape 500 ci-dessus). Dans l'exemple particulier précité, dans lequel le contenu c0 ne peut être vu qu'une seule fois, l'inclusion explicite du compteur de lectures dans l'enregistrement n'est pas nécessaire pour c0 ; - une estampille temporelle permettant de déterminer l'heure d'enregistrement du segment courant. Ceci permet de contrôler la période maximale de rétention selon le champ d'état de rétention associé au segment. De plus, l'identifiant de clé et la clé choisie aléatoirement sont transmis au module de cryptage en lecture unique 405. Puis, le module de cryptage en lecture unique 405 génère un nouveau segment du contenu cO, commençant avec une entête comprenant : un identifiant de début de segment contenant un motif facilement reconnaissable qui permettra de reconnaître le segment en question pendant la relecture ; - l'identifiant de contenu unique permettant de distinguer différents contenus protégés contre la copie étant exécutés selon la présente invention et qui pourraient coexister en même temps dans le contexte du noeud de stockage 009 ; l'identifiant de clé unique.
L'entête est suivie par la portion de flux de données utiles correspondant à la taille du segment, crypté avec la clé, en utilisant un algorithme de cryptage suffisamment efficace pour effectivement protéger le contenu contre les copies non autorisées, par exemple l'algorithme AES-128-CBC. Pendant que le segment du contenu cO est traité par le module de cryptage 405, le module de génération de clé 407 entre dans un état de veille pendant la durée du segment courant de cO dans une étape 505. Dans un mode de mise en oeuvre particulier de l'invention, la durée de cet état de veille est fixée à une certaine valeur, par exemple une seconde qui correspond à une durée constante du cryptage d'un segment de cO. Dans autre un mode de mise en oeuvre, cette durée correspond au cryptage d'une quantité prédéterminée de données correspondant au segment courant, par exemple 128 Kbits. Selon encore un autre mode de mise en oeuvre, cette durée correspond au cryptage d'un certain nombre de paquets (par exemple 1024 paquets) de flux de transport MPEG-2. Au terme de cette durée ou du cryptage de la quantité prédéterminée de 30 données, le module de génération de clé 407 exécute une étape 506. Il est à noter que la longueur des segments du contenu cO détermine la finesse de découpage du contenu cO, c'est-à-dire qu'une étape de lecture ne peut commencer qu'à une borne de cette segmentation. Dans l'étape 506, il est vérifié si le segment du contenu stocké correspond au dernier segment du contenu, ce qui signifie que l'ensemble du contenu cO a été stocké. Si le stockage est achevé, une étape 509 est ensuite exécutée, sinon une étape 507 est exécutée. Dans l'étape 507 la position du pointeur d'écriture dans la table est avancée d'un cran de sorte à traiter un segment suivant de cO, puis une étape 508 est exécutée. Dans l'étape 508 il est vérifié que la position rapportée par le pointeur d'écriture correspond à la période de rétention maximale autorisée. Ceci peut, par exemple, être effectué en comparant l'estampille temporelle du segment initial du contenu cO (stocké lors du premier enregistrement correspondant au contenu cO dans la table) avec l'heure courante. Selon une variante du mode de réalisation particulier précité de l'invention, lorsque les segments de cO correspondant aux enregistrements de clés ont une durée fixée, il peut être déterminé quand la période de rétention a expirée pour le segment courant du contenu cO quand le nombre de clé enregistré dans la table, multiplié par la durée du segment, est plus grand ou égal à la période de rétention. Si la période de rétention pour le segment courant a été dépassée, l'étape 502 est à nouveau mise en oeuvre avec un segment suivant de cO, sinon, l'étape 503 est à nouveau exécutée pour le segment courant.
Du fait que l'étape 502 consiste à réinitialiser le pointeur d'écriture au début du segment suivant, l'enregistrement de la clé correspondant au segment de flux suivant écrase l'enregistrement de clé correspondant au segment courant, biffant ainsi le segment courant (tel qu'il est demandé pour respecter le droit d'auteur ou copyright du propriétaire du contenu) tout en recyclant la mémoire qui était utilisée pour stocker la clé d'enregistrement expirée.
De cette façon, les besoins en utilisation de mémoire pour stocker les clés de cryptage sont réduits au minimum. Dans le même temps, l'unique identifiant de clé associé au contenu expiré est également libéré pour une future réutilisation par réintégration dans la liste des identifiants de clé disponibles.
Dans l'étape 509, une boucle est mise en oeuvre jusqu'à ce que la période de rétention de la plus vieille clé de cryptage de la table ait expirée (ce qui peut être vérifié en relevant l'estampille temporelle contenue dans l'enregistrement par rapport à l'heure courante), puis une étape 510 est exécutée. Avantageusement, cette boucle sera implémentée de façon à ce qu'elle n'utilise pas nécessairement des ressources d'un microprocesseur,en utilisant des techniques bien connues de l'art antérieur. Dans l'étape 510, les clés de cryptage, correspondant à des segments de cO stocké sur le terminal de stockage 002 et dont les périodes de rétention ont expirées, sont effacées de la table, et les identifiants de clé associés sont libérés pour une future réutilisation par réintégration dans la liste des identifiants de clé disponibles de la mémoire 408. De cette façon, la mémoire utilisée par ces clés est libérée également. Ainsi, chaque segment dont la période de rétention a expirée devient inutilisable, car il n'est plus possible de faire le lien au moment de la lecture du 20 segment avec la clé utilisée au moment du cryptage du segment. Puis, dans une étape 511, une vérification est faite pour savoir si une zone tampon associé à un segment du contenu stocké sur le terminal de stockage 002 est devenu vide suite à la suppression d'une clé d'enregistrement lors de l'étape précédente. Si la zone tampon n'est pas vide, un retour est effectué à l'étape 209. 25 Si la zone tampon est vide, elle peut être complètement libérée. Dans ce cas, l'unique identifiant de flux associé est également libéré. De plus, il est possible à cette étape de générer une indication faisant état de l'expiration totale du flux et du fait qu'il peut être effacé du disque dur externe. Puis, dans une étape 512, il est mis fin à l'algorithme.
On présente, en relation avec la figure 6, le schéma d'une implémentation, particulière selon l'invention, du noeud de stockage 009 et du terminal de stockage 002 dans le cadre de la lecture du contenu c0 après que c0 ait été stocké sur le terminal de stockage 002.
Dans le cadre de la lecture de c0, le noeud de stockage 009 comprend : -le premier module d'interface audio-vidéo 403 qui est alimenté par le premier module de cryptage/décryptage DTCP 404 ci-après utilisé en module de cryptage 404 ; - le second module de cryptage/décryptage en lecture unique 405 ci-après utilisé en module de décryptage en lecture unique 405, ledit module de décryptage 405 alimentant le module de cryptage 404 ; - le second module d'interface audio-vidéo 406, alimentant le module de décryptage 405 et connecté, par le lien Ethernet 005, au terminal de stockage 002, le second module d'interface 406 comprenant un analyseur d'entête en lecture unique 4062 ; - la mémoire 408 de type RAM (pour Random Access Memory ), EEPROM ( Electrically Erasable Programmable Read-Only Memory ) ou FLASH. La mémoire 408 comprenant au moins la liste des identificateurs de clé inutilisés et une zone tampon associée à chaque flux protégé contre la copie ayant été ou étant toujours enregistrés selon la présente invention, telle que précédemment décrite en relation avec la figure 4. On présente, en relation avec la figure 7, les étapes principales d'un algorithme de lecture, en vue d'un affichage sur le terminal récepteur 003, d'un segment donné du contenu c0 (pararnétré en copy never ) selon le mode de réalisation particulier de l'invention. Cet algorithme est mis en oeuvre par le noeud de stockage 009. Suite à une mise en lecture du contenu préalablement stocké, comme déjà décrit en relation avec la figure 3, dans une étape 700, le noeud de stockage 009 détecte la présence d'un identifiant de début de segment (tel que précédemment décrit dans l'étape 504 de la figure 5) dans le segment donné du contenu cO en surveillant en permanence le contenu cO en cours de lecture depuis le terminal de stockage 002. Dans l'étape 701, l'identifiant de cO et l'identifiant de clé de cryptage du segment donné de cO sont obtenus du segment reçu. Ces identifiants font partie de l'entête du segment donné de cO tel que décrit précédemment dans l'étape 504, ils sont alors adjacents à l'identifiant de début de segment. Puis, dans une étape 702, le noeud de stockage effectue une recherche, dans la zone tampon associée au segment donné, de la clé associé à l'identifiant de clé. Puis, dans l'étape 703, le noeud de stockage vérifie si une clé est associée à l'identifiant de clé. Dans le cas où aucune clé n'est associée à l'identifiant de clé alors, une étape 704 est exécutée, dans le cas où une clé est associée à l'identifiant de clé, alors une étape 705 est exécutée.
L'étape 704 consiste à supprimer, au moyen du second module de cryptage/décryptage en lecture unique 405, le contenu du segment donné délimité par les entêtes précédemment décrites en relation avec les étapes 504 (figure 5) et 701 (figure 7). Il est à noter qu'un tel cas peut par exemple se produire lorsque la clé appropriée pour décrypter le contenu du segment donné n'est plus valable, ou n'est plus disponible après avoir été supprimée pour cause d'expiration de la période de rétention du segment donné (tel que précédemment décrit en relation avec les étapes 510 ou 508 et 502 de la figure 5), ou du fait que le compteur de lectures arrive à zéro (tel que décrit ci-après en relation avec l'étape 708). L'étape 709 est ensuite exécutée.
Dans l'étape 705, la clé de cryptage (qui a été préalablement utilisée pour le cryptage du segment donné dans le cas d'un algorithme de cryptage symétrique) est transmise au second module de cryptage/décryptage en lecture unique 405. Ce dernier décrypte ensuite la partie utile du segment donné avec cette clé de cryptage.
Puis le segment de contenu donné, paramétré en copy never , est transmis par le noeud de stockage 009, par exemple au moyen du protocole DTCP, au terminal récepteur 003 pour mettre en oeuvre sa lecture (ou son affichage), via le noeud de lecture 010.
Puis, dans une étape 706, le compteur de lectures situé dans la zone tampon du segment donné est décrémenté et une étape 707 est exécutée. Selon une variante du présent: mode de réalisation particulier et dans le présent exemple particulier dans lequel chaque segment ne peut être lu qu'une fois (paramétré en `allowedUse= PLAY, n ' dans le répertoire UPnP sous format DIDL-Lite), l'étape 708 est exécutée directement après l'étape 706. Dans l'étape 707, il est vérifié si le compteur de lectures du segment donné est à zéro. S'il est supérieur à zéro, une étape 708 est exécutée, sinon une étape 709 est exécutée. De façon préférentielle, dans l'étape 708 la clé de cryptage est effacée de la zone tampon associée au segment donné (du fait que le segment a été visionné ou lu le nombre de fois prévu). Tel que précédemment décrit en relation avec l'étape 510 (figure 5), l'identifiant de clé est recyclé. De plus, de façon analogue à ce qui est précédemment décrit en relation avec l'étape 511 (figure 5), lorsque la zone tampon correspondant au segment donné est vide, cette zone tampon est libérée ainsi que l'identifiant de flux associé. Par ailleurs, il est possible à la suite de cette étape 708 de générer une information précisant que certains segments (dont le segment donné) de contenu sont complètement expirés et peuvent être effacés du terminal de stockage 002. Dans l'étape 709, il est mis fin à l'algorithme de lecture du segment donné.
Ainsi, l'invention permet la lecture d'un contenu protégé même lorsque l'utilisateur utilise les commandes telles que PAUSE, RETOUR-ARRIÈRE, AVANCE-RAPIDE ou d'autres commandes similaires pour le disque dur externe 002, dans les limites imposées par la période de rétention et le décompte initial de relecture associé au flux de données, et avec une finesse de positionnement dépendant directement de la longueur des segments de contenu.
On présente, en relation avec la figure 8, les étapes principales d'un algorithme de traitement de commandes de navigation sur le contenu c0 (par exemple les commandes STOP, LECTURE, PAUSE, AVANCE-RAPIDE, RETOUR-ARRIÈRE) pendant la lecture de segments de c0 sur le terminal récepteur 003 selon le mode de réalisation particulier de l'invention. Cet algorithme est mis en oeuvre par le noeud de stockage 009. Dans une étape 901, des segments de c0 sont en cours de lecture sur le terminal récepteur 003. Dans une étape 902, une première commande de navigation est reçue par le noeud de stockage 009. Le traitement résultant dépend du type de la première commande. Si la première commande est une commande STOP, alors la commande est envoyée au terminal de stockage 002 et le traitement est effectué conformément à une étape 911 ci-après décrite.
Si la première commande est une commande d'AVANCE-RAPIDE ou de RETOUR-ARRIÈRE, alors la commande est envoyée au terminal de stockage 002 et le traitement est effectué conformément à une étape 906 ci-après décrite. Si la première commande est une commande LECTURE ou PAUSE, alors la commande est envoyée au terminal de stockage 002 et aucun traitement supplémentaire particulier n'est mis en oeuvre, ainsi l'étape 901 est à nouveau mise en oeuvre. Puis, la première commande qui est une commande AVANCE-RAPIDE ou un RETOUR-ARRIÈRE est appliquée au contenu c0 en cours de lecture. Pendant ce temps, même si l'affichage du contenu c0 (en accéléré ou à l'envers) continue pour permettre à l'utilisateur de naviguer dans le contenu c0, l'utilisateur ne peut pas pleinement apprécier les segments de c0 qui défilent en AVANCE-RAPIDE ou en RETOUR-ARRIÈRE. En conséquence, il est logique que de ne pas considérer l'aperçu des segments qui ont défilé en AVANCE-RAPIDE ou en RETOUR-ARRIÈRE comme une lecture pour l'utilisateur.
Pour cette raison, dans l'étape 906, la décrémentation des compteurs de lectures associés aux segments ainsi affichés (en AVANCE-RAPIDE ou en RETOUR-ARRIÈRE) est suspendue, alors que le décryptage de ces segments continue.
Puis, dans une étape 907, une seconde commande de navigation est reçue par le noeud de stockage 009. Le traitement résultant dépend du type de la seconde commande. Si la seconde commande est une commande d'AVANCE-RAPIDE ou de RETOUR-ARRIÈRE ou une commande de PAUSE alors cette commande est transmise au terminal de stockage 002 puis l'étape 907 est à nouveau mise en oeuvre. Si la seconde commande est une commande de LECTURE, alors cette commande de LECURE est envoyée au terminal de stockage 002, et, dans une étape 912, la décrémentation des compteurs de lectures associés aux segments ainsi affichés (en LECTURE) est réactivée. Puis, l'étape 901 est à nouveau mise en oeuvre. Si la seconde commande est une commande STOP, alors celle-ci est envoyée au terminal de stockage 002 puis l'étape 911 est exécutée. Dans l'étape 911, le décryptage des segments de données de c0 est stoppé.
En conséquence, la décrémentation des compteurs de visualisation associés à ces segments est suspendue. Puis, préférentiellement, une étape 913 est mise en oeuvre. Elle consiste en un filtrage ou un lissage des compteurs de lectures associés aux segments de c0 qui sont en cours de lecture. Il est possible que les compteurs de lectures de segments isolés (ou de petit groupes de segments consécutifs), parmi les segments de c0 en cours de lecture, présentent des valeurs différentes de celles des compteurs des segments adjacents (par exemple du fait d'un changement rapide entre AVANCE-RAPIDE, RETOUR-ARRIÈRE et LECTURE effectué par l'utilisateur). Ceci pourrait se traduire par des problèmes dans une visualisation future, comme des erreurs ou des impossibilités de décryptage temporaires.
Le filtrage ou lissage consiste à mettre en évidence chaque tels segments (ou groupe de segments, jusqu'à une longueur prédéterminée) et mettre à niveau la valeur de son compteur de lectures avec les valeurs des compteurs des segments adjacents à ce segment.
Puis, dans une étape 914 il est mis fin à l'algorithme. On présente, en relation avec la figure 9, les étapes principales d'un algorithme de lecture d'un contenu selon le mode de réalisation particulier de l'invention dans le cas où m (ou m est un entier positif) premiers segments de ce contenu ont déjà été lus. Cet algorithme est mis en oeuvre par le noeud de stockage 009. Dans une étape 1001, l'utilisateur sélectionne, au moyen d'une interface de d'affichage, un contenu, par exemple le contenu cO, ayant été préalablement stocké conformément à l'algorithme de stockage précédemment décrit en relation avec la figure 5 et ayant été déjà lu au moins pour ses m premiers segments précités au moyen de l'algorithme de lecture précédemment décrit en relation avec la figure 7, pour mettre en oeuvre une lecture de ce contenu (grâce à l'envoi d'une commande de LECTURE). Dans l'étape 1002, le noeud cle stockage 009 vérifie si la lecture des m premiers segments du contenu cO reçus et provenant du terminal de stockage 002 est autorisée. Pour ce faire, le noeud de stockage 009 vérifie, pour chacun des m premier segments, si une clé de stockage correspondant à l'identifiant de clé de ce segment existe toujours dans la zone tampon associée à ce segment, si la valeur du compteur de lectures associé à ce segment est strictement supérieure à 0 et si une estampille temporelle indique que la période de rétention autorisée de ce segment n'a pas expirée. Si la lecture des m premiers segments est autorisée, alors dans une étape 1007, le décryptage des données de ces m premiers segments et la décrémentation des compteurs de lectures de ces m premiers segments est démarrée conformément à la présente invention, Puis, dans une étape 1008, les m premiers segments de cO sont lus sur le terminal récepteur 003 (ils deviennent: en cours de lecture au sens de l'étape 901 de la figure 8 précédemment décrite). Au contraire, si la lecture des m premiers segments n'est pas (ou plus) autorisée, alors, dans une étape 1003, le noeud de stockage 009 recherche le premier segment de cO dont le compteur associé n'est pas à 0. Cette opération peut s'effectuer par exemple par l'envoi d'une commande d'AVANCE RAPIDE au terminal de stockage 002 (la commande visant à ce que la lecture du contenu cO commence au début du premier segment de cO dont le compteur associé n'est pas à 0), dans le cas où le terminal de stockage 002 ne comporte pas de fonction de recherche à l'intérieur d'un contenu. Si le terminal de stockage 002 dispose d'une fonction de recherche à l'intérieur d'un contenu, il est possible en parcourant la zone tampon associée au contenu de déterminer quel est le premier segment pour lequel une lecture est autorisée et, à partir de cette information, ordonner la lecture à partir de ce segment. Préférentiellement, le noeud de stockage 009 met en oeuvre l'affichage d'un message d'avertissement destiné à l'utilisateur sur l'interface d'affichage du dispositif récepteur 003, expliquant qu'il doit attendre jusqu'à ce que la lecture de cO puisse reprendre.
Puis, dans l'étape 1004, le noeud de stockage initialise un balayage (ou scan en anglais) des segments de cO provenant du terminal de stockage 002 exécutant la commande d'AVANCE-RAPIDE afin de tenter de trouver un segment autorisé à la visualisation. Dans le cadre de ce balayage, dans une étape 1005, le noeud de stockage vérifie si un segment courant est autorisé à la lecture. Cette vérification consiste en une vérification de l'existence d'une clé de cryptage associée à un segment dont le compteur de lectures présente une valeur plus grande que 0 et dont une estampille temporelle indique que la période de rétention n'a pas encore expirée.
Selon une variante de ce mode de réalisation particulier, le numéro de séquence du premier segment de cO dont la lecture est autorisée trouvé peut être mis en mémoire pendant la visualisation de cO. Si le segment courant n'est pas autorisé à la lecture, alors l'étape 1005 est remise en oeuvre avec le segment suivant, et ainsi de suite jusqu'à ce qu'un segment autorisé à la lecture soit identifié. Si aucun segment de cO n'est autorisé à la lecture, alors il est mis fin à l'algorithme. Dès qu'un segment autorisé à la lecture est identifié, dans une étape 1006, 10 le noeud de stockage envoie une commande de LECTURE au terminal de stockage 002 qui passe ainsi du mode AVANCE-RAPIDE au mode LECTURE. Puis l'étape 1007 est mise en oeuvre. On présente, en relation avec la figure 10, les étapes principales d'un algorithme de lecture d'un contenu selon le mode de réalisation particulier de 15 l'invention dans le cas où plusieurs lectures partielles du contenu ont déjà eu lieu. Cet algorithme est mis en oeuvre par le noeud de stockage 009. Au démarrage de la lecture de contenus protégés stockés, le serveur DRM 020 détecte si des lectures partielles ont déjà été effectuées préalablement, et en conséquence prévient l'utilisateur s'il veut reprendre la lecture à l'emplacement 20 où il l'avait stoppée. Dans une étape 1101, l'utilisateur sélectionne, au moyen d'une interface de d'affichage, un contenu, par exemple le contenu cO, ayant été préalablement stocké conformément à l'algorithme de stockage précédemment décrit en relation avec la figure 5 et ayant été déjà lu au moins pour ses m premiers segments 25 précités au moyen de l'algorithme de lecture précédemment décrit en relation avec la figure 7, pour mettre en oeuvre une lecture de ce contenu (grâce à l'envoi d'une commande de LECTURE). Puis, dans une étape 1102, la valeur maximale (ci-après désignée par playcount_max ) des compteurs de lectures associés aux segments de cO est 30 déterminée.
Dans une étape 1103, la valeur (ci-après désignée par playcount_1 ) du compteur de lecture du premier segment de cO est obtenue. Puis, dans une étape 1104, les valeurs playcount_max et playcount_1 sont comparées. Si playcount_max et playcount_1 sont égales (par exemple dans le cas où aucune lecture partielle de cO n'a eut lieu), alors, dans une étape 1112, le contenu cO est lu sur le terminal récepteur 003 (il devient en cours de lecture au sens de l'étape 901 de la figure 8 précédemment décrite) à partir de son premier segment. Dans le cas contraire, playcont_1 est plus petit que playcount_max, et, dans une étape 1105, il est vérifié si la valeur du compteur de lectures du premier segment de cO playcount1] a atteint 0, c'est-à-dire si le premier segment n'est plus autorisé à la lecture. Il est à noter que cette étape est similaire à l'étape 1002 de la figure 9 précédemment décrite. Si playcount[1] est égal à o, alors, dans une étape 1106, chacun des segments qui ne sont plus autorisés à la lecture (dont le premier segment) est supprimé (au moyen de la mise en oeuvre des étapes 1003 à 1006 de la figure 9 précédemment décrite). Puis, dans l'étape 1112, cO est lu à partir du premier segment qui n'a pas été supprimé. Si playcount1] est supérieure à 0, alors, dans une étape 1107, le noeud de stockage 009 détermine, grâce aux clés de cryptage associées segments de cO, le premier segment de contenu pour lequel le compteur de lectures est plus grand que le compteur de lectures du segment le précédant dans le contenu cO. Soit n le numéro de ce premier segment dans le contenu cO (chaque segment de cO portant un numéro en fonction de sa position dans le contenu, le premier segment portant le numéro 1., le second segment portant le numéro 2, et ainsi de suite). Ainsi on a playcount_n-1 < playcount_n où playcount_i est la valeur du compteur de lectures associé au segment numéro i de cO. Cela signifie par exemple qu'une lecture précédente de cO a été stoppée au segment n-1 et devrait être reprise au segment n.
Puis, dans une étape 1108, le noeud de stockage 009 demande à l'utilisateur, à travers l'interface d'affichage affichée sur le terminal récepteur 003, de choisir entre reprendre la lecture à l'emplacement où elle a été préalablement arrêtée, et reprendre la lecture au début de cO.
Il est ainsi possible de stopper et de reprendre ultérieurement plusieurs lectures (par exemple par différents utilisateurs) d'un même contenu, sans toutefois dépasser le nombre maximal de lectures autorisées pour ce contenu. Puis dans une étape 1109, le noeud de stockage analyse la réponse de l'utilisateur qui est envoyée depuis le terminal récepteur 003 au noeud de stockage 009. Puis, en fonction de la réponse de l'utilisateur, la lecture de cO (depuis le terminal de stockage 002) reprend, clans une étape 1110, au début du segment numéro n (c'est-à-dire à la position où la dernière visualisation a été arrêtée) ou, dans une étape 1111, au début du segment numéro 1 (c'est-à-dire au début de cO).15

Claims (22)

REVENDICATIONS
1. Procédé de transmission différée d'un contenu de données d'un dispositif source (001) vers un dispositif récepteur (003) dans un réseau de communication (1000), par l'intermédiaire d'un dispositif de stockage (002), le procédé comprenant une phase de stockage dudit contenu et une phase de mise à disposition dudit contenu, caractérisé en ce que la phase de stockage dudit contenu comprend les étapes suivantes: - définition d'au moins un segment de données à partir des données dudit 10 contenu ; -association, à chaque segment de données, d'un compteur de lectures autorisées restantes de valeur égale à un nombre prédéterminé de lectures autorisées associé audit segment de données ; - stockage dudit(desdits) segment(s) de données sur le dispositif de stockage 15 (002) ; et en ce que la phase de mise à disposition dudit contenu comprend, pour chacun dudit ou desdits segment(s) stocké(s), les étapes suivantes : -vérification que la valeur du compteur de lectures autorisées restantes associé audit segment de données est supérieure à 0 ; 20 - dans le cas d'une vérification positive, décrémentation (707) de la valeur du compteur de lectures autorisées restantes associé audit segment de données d'une unité et transmission des données dudit contenu à partir desquelles ledit segment de données a été défini vers le dispositif récepteur (003). 25
2. Procédé de transmission selon la revendication 1, caractérisé en ce que ladite phase de mise à disposition comprend en outre, pour chacun du ou desdits segments, une étape d'obtention d'au moins un identifiant de début du segment permettant de mettre en oeuvre une lecture du segment à partir du début du segment. 30
3. Procédé de transmission selon l'une quelconque des revendications 1 et 2,caractérisé en ce que la phase de stockage comprend les étapes suivantes pour chacun du ou desdits segments de données : - obtention d'une clé de cryptage propre audit segment de données ; - cryptage des données dudit contenu à partir desquelles ledit segment de données a été défini avec ladite clé de cryptage ; - stockage de la clé de cryptage en correspondance avec un identifiant dudit segment de données.
4. Procédé de transmission selon la revendication 3, caractérisé en ce que, si la valeur du compteur de lectures autorisées restantes associé à un segment de données est nulle suite à l'étape de décrémentation, le procédé comprend une étape d'effacement (708) de la clé de cryptage propre audit segment de données.
5. Procédé de transmission selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le nombre prédéterminé de lectures autorisées associé à chaque segment de données est égal à un même nombre prédéterminé de lectures autorisées associé audit contenu.
6. Procédé de transmission selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend en outre une phase de lissage (913) de la valeur du compteur de lectures autorisées restantes d'un segment de données donné comprenant les étapes suivantes : - obtention dudit segment de données donné ; - égalisation de la valeur du compteur de lectures autorisées restantes associé au segment de données obtenu avec la valeur du compteur de lectures autorisées restantes associé à au moins un segment de données adjacent au segment de données obtenu.
7. Procédé de transmission selon la revendication 6, caractérisé en ce que ladite étape d'obtention dudit segment donné comprend une étape de détection d'un segment de données, dit segment donné, pour lequel la valeur du compteur de lectures autorisées restantes des deux segments de données adjacents au segment de données donné est égale à une valeur prédéterminée et pour lequel la valeur du compteur de lectures autorisées restantes est différente de la valeurprédéterminée.
8. Procédé de transmission selon l'une quelconque des revendications 1 à 7, caractérisé en ce que ladite étape de clécrémentation de la valeur du compteur de lectures autorisées restantes associé à un segment de données n'est pas mise en oeuvre dans l'un au moins des cas suivants : - mise en oeuvre d'une commande AVANCE-RAPIDE sur ledit segment de données ; - mise en oeuvre d'une commande RETOUR-ARRIERE sur ledit segment de données.
9. Procédé de transmission selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comprend une étape de détection d'un segment de données, dit segment détecté, pour lequel la valeur du compteur de lectures autorisées restantes qui lui est associé est inférieure à la valeur du compteur de lectures autorisées restantes associé au segment de données adjacent au segment détecté, ledit segment de données adjacent étant situé en aval du segment détecté dans le sens de lecture du contenu.
10. Procédé de transmission selon la revendication 9, caractérisé en ce que ladite phase de mise à disposition du contenu est mise en oeuvre à partir dudit segment adjacent.
11. Produit programme d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du procédé de transmission selon l'une quelconque des revendications 1 à 10, lorsque ledit programme est exécuté sur un ordinateur.
12. Moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé de transmission selon l'une quelconque des revendications 1 à 10.
13. Système de transmission différée d'un contenu de données d'un dispositif source (001) vers un dispositif récepteur (003) dans un réseau de communication (1000), par l'intermédiaire d'un dispositif de stockage (002), le systèmecomprenant des moyens de stockage dudit contenu et des moyens de mise à disposition dudit contenu, caractérisé en ce que les moyens de stockage dudit contenu comprennent : - des moyens de définition d'au moins un segment de données à partir des données dudit contenu ; des moyens d'association, à chaque segment de données, d'un compteur de lectures autorisées restantes de valeur égale à un nombre prédéterminé de lectures autorisées associé audit segment de données ; - des moyens de stockage dudit(desdits) segment(s) de données sur le dispositif de stockage (002) ; et en ce que les moyens de mise à disposition dudit contenu comprennent, pour chacun dudit ou desdits segment(s) stocké(s) : -des moyens de vérification que la valeur du compteur de lectures autorisées restantes associé audit segment de données est supérieure à 0 ; - des moyens de décrémentation de la valeur du compteur de lectures autorisées restantes associé audit segment de données d'une unité et des moyens de transmission des données dudit contenu à partir desquelles ledit segment de données a été défini vers le dispositif récepteur (003), lesdits moyens de décrémentation et de transmission étant activés dans le cas d'une vérification positive par les moyens de vérification.
14. Système de transmission selon la revendication 13, caractérisé en ce que lesdits moyens de mise à disposition comprennent en outre, pour chacun du ou desdits segments, des moyens d'obtention d'au moins un identifiant de début du segment permettant de mettre en oeuvre une lecture du segment à partir du début du segment.
15. Système de transmission selon l'une quelconque des revendications 13 et 14, caractérisé en ce que lesdits moyens de stockage comprennent, pour chacun du ou desdits segments de données : - des moyens d'obtention d'une clé de cryptage propre audit segment de données ;- des moyens de cryptage des données dudit contenu à partir desquelles ledit segment de données a été défini avec ladite clé de cryptage ; - des moyens de stockage de la clé de cryptage en correspondance avec un identifiant dudit segment de données.
16. Système de transmission selon la revendication 15, caractérisé en ce qu'il comprend des moyens d'effacement de la clé de cryptage propre à un segment de données, lesdits moyens d'effacement étant activés si la valeur du compteur de lectures autorisées restantes associé audit segment de données est rendue nulle par les moyens de décrémentation.
17. Système de transmission selon l'une quelconque des revendications 13 à 16, caractérisé en ce que le nombre prédéterminé de lectures autorisées associé à chaque segment de données est égal à un même nombre prédéterminé de lectures autorisées associé audit contenu.
18. Système de transmission selon l'une quelconque des revendications 13 à 17, caractérisé en ce qu'il comprend en outre des moyens de lissage de la valeur du compteur de lectures autorisées restantes d'un segment de données donné comprenant : - des moyens d'obtention dudit segment de données donné ; - des moyens d'égalisation de la valeur du compteur de lectures autorisées restantes associé au segment de données obtenu avec la valeur du compteur de lectures autorisées restantes associé à au moins un segment de données adjacent au segment de données obtenu.
19. Système de transmission selon la revendication 18, caractérisé en ce que lesdits moyens d'obtention dudit segment donné comprennent des moyens de détection d'un segment de données, dit segment donné, pour lequel la valeur du compteur de lectures autorisées restantes des deux segments de données adjacents au segment de données donné est égale à une valeur prédéterminée et pour lequel la valeur du compteur de lectures autorisées restantes est différente de la valeur prédéterminée.
20. Système de transmission selon l'une quelconque des revendications 13 à19, caractérisé en ce que lesdits moyens de décrémentation de la valeur du compteur de lectures autorisées restantes associé à un segment de données ne sont pas activés dans l'un au moins des cas suivants : - mise en oeuvre d'une commande AVANCE-RAPIDE sur ledit segment de 5 données ; -mise en oeuvre d'une commande RETOUR-ARRIERE sur ledit segment de données.
21. Système de transmission selon l'une quelconque des revendications 13 à 20, caractérisé en ce qu'il comprend des moyens de détection d'un segment de 10 données, dit segment détecté, pour lequel la valeur du compteur de lectures autorisées restantes qui lui est associé est inférieure à la valeur du compteur de lectures autorisées restantes associé au segment de données adjacent au segment détecté, ledit segment de données adjacent étant situé en aval du segment détecté dans le sens de lecture du contenu. 15
22. Système de transmission selon la revendication 21, caractérisé en ce que lesdits moyens de mise à disposition du contenu sont des moyens de mise à disposition du contenu à partir dudit segment adjacent.
FR0701136A 2007-02-14 2007-02-14 Procede de transmission differee d'un contenu de donnees, produit programme d'ordinateur, moyen de stockage et systeme de transmission correspondants Pending FR2912590A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0701136A FR2912590A1 (fr) 2007-02-14 2007-02-14 Procede de transmission differee d'un contenu de donnees, produit programme d'ordinateur, moyen de stockage et systeme de transmission correspondants

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0701136A FR2912590A1 (fr) 2007-02-14 2007-02-14 Procede de transmission differee d'un contenu de donnees, produit programme d'ordinateur, moyen de stockage et systeme de transmission correspondants

Publications (1)

Publication Number Publication Date
FR2912590A1 true FR2912590A1 (fr) 2008-08-15

Family

ID=38719812

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0701136A Pending FR2912590A1 (fr) 2007-02-14 2007-02-14 Procede de transmission differee d'un contenu de donnees, produit programme d'ordinateur, moyen de stockage et systeme de transmission correspondants

Country Status (1)

Country Link
FR (1) FR2912590A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217279A1 (en) * 2002-05-17 2003-11-20 Norihiko Fuchigami Method and apparatus for reproducing data
WO2006008986A1 (fr) * 2004-07-23 2006-01-26 Sharp Kabushiki Kaisha Dispositif de stockage, méthode de stockage, et dispositif d'affichage d'images

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217279A1 (en) * 2002-05-17 2003-11-20 Norihiko Fuchigami Method and apparatus for reproducing data
WO2006008986A1 (fr) * 2004-07-23 2006-01-26 Sharp Kabushiki Kaisha Dispositif de stockage, méthode de stockage, et dispositif d'affichage d'images
EP1783615A1 (fr) * 2004-07-23 2007-05-09 Sharp Kabushiki Kaisha Dispositif de stockage, méthode de stockage, et dispositif d'affichage d'images

Similar Documents

Publication Publication Date Title
EP1305948B1 (fr) Methode de distribution securisee de donnees numeriques representatives d&#39;un contenu multimedia
EP2055102B1 (fr) Procédé de transmission d&#39;une donnée complémentaire a un terminal de réception
EP1261969A1 (fr) Dispositifs de lecture, d&#39;enregistrement et de restitution de donnees numeriques dans un systeme de protection contre la copie desdites donnees
FR2818062A1 (fr) Methode de transmission securisee de donnees numeriques d&#39;une source vers un recepteur
WO2005071963A1 (fr) Procede et systeme d&#39;acces conditionnel applique a la protection de contenu
FR2874143A1 (fr) Procede de securisation du transfert d&#39;un flux de donnees, produit programme d&#39;ordinateur, moyen de stockage et noeuds correspondants
FR2888355A1 (fr) Procede de controle de droits de consommation du type &#34;n consommations autorisees&#34; d&#39;un contenu numerique audio et/ou video et dispositif mettant en oeuvre ce procede
FR2880485A1 (fr) Procedes de stockage et de lecture d&#39;un contenu, du type mettant en oeuvre un protocole de protection de contenu, dispositifs source, de stockage et recepteur correspondants.
FR2974475A1 (fr) Procede de protection d&#39;un contenu multimedia enregistre
EP3008905B1 (fr) Procede d&#39;identification de terminal dans un systeme de fourniture de contenus multimedia
EP1479233B1 (fr) Dispositif de traitement et procede de transmission de donnees chiffrees pour un premier domaine dans un reseau appartenant a un second domaine
EP3380983B1 (fr) Procédé d&#39;identification de processeurs de sécurité
WO2004017635A1 (fr) Méthode de vérification de la validité d&#39;une clé pour un réseau domestique numérique
EP3732849B1 (fr) Procédé et système d&#39;identification de terminal d&#39;utilisateur pour la réception de contenus multimédia protégés et fournis en continu
WO2013117708A1 (fr) Systeme de lecture de contenu numerique et procede de lecture correspondant
WO2003073761A1 (fr) Procede de traitement de donnees chiffrees pour un premier domaine et reçues dans un reseau appartenant a un second domaine
FR3050090A1 (fr) Extraction de flux video
EP3317799B1 (fr) Procédé de fourniture d&#39;un contenu multimédia protégé
FR2912590A1 (fr) Procede de transmission differee d&#39;un contenu de donnees, produit programme d&#39;ordinateur, moyen de stockage et systeme de transmission correspondants
EP2098073A2 (fr) Procede de gestion du nombre de visualisations, processeur de securite et terminal pour ce procede
FR2835678A1 (fr) Procede de transmission de donnees numeriques representatives d&#39;un contenu multimedia
FR3069996B1 (fr) Procede de lecture d&#39;un flux multimedia chiffre avec acces rapide au contenu en clair et dispositif d&#39;utilisation
FR3053497B1 (fr) Procede de renforcement de la securite d&#39;un systeme de television a peage a base de retro-communication periodique obligatoire
EP3170296B1 (fr) Procédé d&#39;accès à un contenu multimédia protégé par un terminal
FR2843257A1 (fr) Procede et systeme d&#39;acces conditionnel applique a la protection de contenu