Dispositif et procédé de démultiplexage sécurisé et produits associés
La présente invention se rapporte à un dispositif et un procédé de démultiplexage sécurisé, ainsi qu'à des produits correspondants.
Un récepteur-décodeur de signaux numériques provenant d'un réseau de diffusion de programmes audiovisuels comprend classiqu ement un module ayant des fonctions de syntoniseur ou « tuner » et de démodulateur, un démultiplexeur, un module de décryptage, des décodeurs vidéo et audio, des modules de contrôle d'accès et d'interface de carte d'accès sécurisée, permettant de rendre opérationnel le module de décryptage, et une unité centrale ou « CPU » (pour « Central Processing Unit »). Des données destinées aux décodeurs audio et vidéo sont typiquement transmises dans un flux de transport encodé selon la norme MPEG2 (pour « Moving Picture Experts Group »), sous forme multiplexée paquet par paquet. Chacun de ces paquets transporte des informations vidéo, audio, ou destinées au bon fonctionnement et à l'utilisation du récepteur numérique. Le démultiplexeur permet d'aiguiller les paquets vers un traitement ou un autre, à partir d'un identifiant de paquet en en-tête de ce« paquet.
Au niveau du diffuseur de programmes audiovisuels, il est habituel de crypter les paquets à l'émission au moyen d'une clé de cryptage, afin de pouvoir contrôler l'accès à un programme numérique. Cette clé est transmise (au moins partiellement) dans un format confidentiel au module de contrôle d'accès. Parmi les données circulant dans le récepteur, certaines sont cryptées et d'autres non, seules les données cryptées transitant par le module de décryptage. On reconstruit généralement la clé de décryptage dans le récepteur numérique, en utilisant une carte d'accès sécurisée qui, à partir de données spécifiques de contrôle d'accès transmises dans le train numérique, permet de reconstituer complètement cette clé. La clé est
ensuite positionnée dans Ie module de décryptage associé au démultiplexeur et a un train paquet identifié.
En pratique, chaque paquet du train numérique est identifié par un descripteur de paquet et par des informations de support au décryptage, qui permettent de réaliser un éventuel décryptage suivant des autorisations disponibles dans la carte d'accès sécurisée. On peut associer une clé de décryptage à un ou plusieurs identificateurs de paquets. Le nombre de clés à utiliser pour décrypter un flux complet est variable et dépend du type de contrôle d'accès et de son implémentation au niveau de la diffusion.
Selon les normes de compression d'images habituellement utilisées dans les décodeurs vidéo, on code des variations d'une image à une autre, afin de réduire sensiblement le nombre de données à transmettre. Il est ainsi d'usage d'envoyer des groupes d'images, notés GOPs (pour « Group Of Pictures »), dont chacun contient au moins une image se suffisant à elle-même pour son décodage, les autres images du groupe dépendant l'une de l'autre.
Notamment, la norme MPEG2 prévoit des séquences d'images dans 'lesquelles seule la détection d'une image de type intra (« Image I »), unique dans chaque GOP, permet de commencer la décompression d'une séquence. Dans la norme JVT (pour « Joint Video Team »), seule la détection d'une image de type IDR (pour « Instantaneous Décoder Refresh ») permet de commencer la décompression d'une séquence vidéo, qui contient plusieurs images de type I — le GOP est dimensionné par l'image de type IDR. La détection de ce type d'images est usuellement réalisée soit par le démultiplexeur, soit par l'un des décodeurs audio et vidéo, soit par la CPU, par une opération de recherche en mémoire.
La taille des séquences vidéo résulte d'un compromis entre un souci de compression vidéo efficace (taille aussi grande que possible) et des opérations de traitement raisonnables pour le type d'image à coder (limite tolérable pour la taille). Habituellement, le nombre d'images par
séquence est ainsi compris entre 24 et 60, ce qui se traduit par une durée de diffusion typiquement de l'ordre de 500 ms à plus de 1 s pour un groupe d'image. Des codages de séquences plus grandes sont néanmoins envisagées, avec une durée comprise entre 2 et 5 s.
Cette taille de séquence a un impact direct sur la durée d'un changement de programme (zapping) au niveau du récepteur de programmes audiovisuels, car le décodage ne peut démarrer qu'à la réception d'une image de type I pour MPEG2 ou IDR pour JVT. Le temps moyen nécessaire à l'établissement du décodage vidéo une fois que les données sont prêtes à l'utilisation vaut en fait la moitié de la durée d'une séquence, et est donc compris habituellement entre 240 et 500 ms.
Un autre facteur augmentant la durée de démarrage du décodage vidéo pour un nouveau programme est la nécessité d'obtenir suffisamment de données pour pouvoir démarrer ce décodage. En effet, outre la durée de transmission nécessaire pour obtenir la totalité de l'image de démarrage (de type I ou IDR), il s'y ajoute un délai requis pour pouvoir afficher la première image décompressée en temps voulu. Si cette image est prête trop tôt, l'image suivante risque de ne pas encore être complètement disponible, soit parce que les données de cette image suivante ne sont pas encore transmises, soit parce que la durée de décodage n'est pas écoulée, soit encore parce que l'image de démarrage décodée est en avance par rapport à son instant de présentation prévu. Une fois que l'image de démarrage est prête à être affichée, on doit donc attendre de disposer de suffisamment d'images suivantes pour que l'affichage puisse se dérouler de manière fluide.
Il faut également tenir compte de la durée nécessaire à l'obtention de la clé de décryptage à partir des données de contrôle d'accès transmises avec le flux. Chaque programme peut en effet être associé à des clés distinctes. Pour une transmission d'un train transport de type MPEG2, chacune de ces clés est ainsi constituée par un mot de contrôle, noté CW
- -
(pour « Contrai Word »), obtenu à partir de messages de contrôle d'habilitation, notés ECM (pour « Entitlement Contrai Messages »). L'extraction des mots de contrôle est effectuée par la carte d'accès sécurisée, lors d'un traitement pouvant requérir une durée d'une demi- séquence, c'est-à-dire couramment entre 300 et 400 ms.
Pendant la durée de zapping, aucun programme n'est généralement affiché, puisque l'ancien n'est plus sélectionné pour être démultiplexé, décrypté et décodé, et que le nouveau n'est pas encore disponible. Habituellement, l'utilisateur doit donc subir un temps mort, pendant lequel il se contente de voir à l'écran la dernière image du programme précédent ou un écran noir, jusqu'au démarrage du programme suivant. Cette durée d'attente risque d'être encore plus élevée dans l'avenir en raison de l'augmentation de la taille des groupes d'images et de la complexité de décryptage (en dépit d'une amélioration des capacités de traitement).
Pour réduire cette durée, on peut concevoir de poursuivre la diffusion locale du programme en cours jusqu'à ce que le programme suivant devienne disponible, tout en affichant par exemple superposé à l'écran un message de changement de chaîne. Cependant, une telle réalisation requiert un accroissement de complexité du récepteur numérique, et notamment un dédoublement de plusieurs des fonctionnalités - en particulier deux syntoniseurs. De plus, cette solution ne résout pas le problème de l'attente du programme suivant, et risque même d'être déplaisante si l'utilisateur tient à cesser immédiatement la diffusion d'un programme avant de pouvoir passer au suivant.
Le document US 5,621 ,794, décrit un système d'encodage et de décodage de paquet de données MPEG. Un détecteur détermine si c'est la trame encodée est Intra ou Inter. En fonction de la réponse le commutateur
-0-
envoie les signaux soit vers un compteur, soit vers l'unité de déchiffrement puis un buffer, soit vers un buffer. Dans cette demande, seules les trames Intra sont codées, les trames Inter le sont pas. La clé pour le codage des données est toujours disponible, le problème d'attendre que celle-ci soit disponible ne se pose donc pas.
Le brevet US-5349641 décrit une méthode de transmission et de réception de programmes d'accès conditionnel avec un temps de commutation de programme réduit. Selon cette technique, les messages de contrôle d'habilitation ECM ayant des mots de vérification changés après chaque période de temps, appelée « phase », on transmet d'une part à une première fréquence, des messages de vérification principaux ECMp pour un programme d'accès principal, et d'autre part à une seconde fréquence inférieure, des messages de vérification secondaires ECMs pour des programmes secondaires (en fait, les programmes vers lesquels l'utilisateur est susceptible de zapper). Les messages de vérification secondaire sont transmis en une phase unique, entre deux transmissions successives des messages de vérification principaux.
De cette manière, on évite de devoir attendre le message ECM du programme vers lequel on commute, ^puisque ce message est déjà disponible, et on peut même calculer le mot de contrôle en parallèle avec l'acquisition de signal.
Bien que la durée de zapping soit ainsi réduite, cette méthode requiert cependant un traitement spécifique au niveau de l'émission. De plus, elle nécessite un mécanisme d'identification et de stockage continu des messages ECM reçus tout au long de la réception de programmes.
La présente invention concerne un dispositif de démultiplexage sécurisé de flux multiplexes de plusieurs programmes provenant d'un réseau de diffusion, rendant possible une réduction de la durée de zapping au niveau du récepteur de programmes audiovisuels. De plus, ce dispositif peut autoriser l'exploitation de flux sans adaptation particulière au niveau de
-O-
l'émission, et peut permettre de n'avoir à complexifier les traitements, qu'aux moments des commutations entre programmes.
L'invention concerne également un récepteur-décodeur numérique, un procédé de démultiplexage et un programme d'ordinateur ayant les avantages du dispositif de l'invention.
A cet effet, l'invention a pour objet un dispositif de démultiplexage sécurisé comprenant : - des moyens de réception d'au moins un flux multiplexe d'au moins deux programmes destinés à être représentés à un utilisateur, chacun de ces programmes comprenant au moins des données de représentation cryptées et des données de contrôle d'accès permettant de décrypter les données de représentation de ce programme, - des moyens de démultiplexage du flux multiplexe en fonction d'une sélection d'au moins un des programmes par l'utilisateur, les moyens de démultiplexage étant prévus pour extraire au moins les données de contrôle d'accès et les données de représentation cryptées du programme sélectionné, - des moyens d'établissement d'une clé de décryptage des données de représentation cryptées à partir des données de contrôle d'accès,
- et des moyens de décryptage des données de représentation cryptées, au moyen de cette clé de décryptage.
Selon l'invention, le dispositif de démultiplexage comprend :
- des moyens de stockage d'au moins les données de représentation cryptées du programme sélectionné, dans au moins un espace de stockage transitoire, parallèlement à l'établissement de la clé de décryptage des données de représentation par les moyens d'établissement,
- et des moyens d'injection des données de représentation cryptées du programme sélectionné, de l'espace de stockage transitoire vers les moyens de décryptage lorsque la clé de décryptage est établie.
Par « représentation », on entend une diffusion locale destinée à des utilisateurs, notamment un affichage d'image pour de la vidéo et une émission sonore pour de l'audio.
Les « moyens » définis dans le dispositif de démultiplexage doivent s'entendre comme des entités purement fonctionnelles, qui peuvent ou non coïncider avec des entités matérielles. Plusieurs de ces moyens peuvent ainsi être regroupés dans un composant électronique ou un logiciel, et a contrario, certains des moyens peuvent être répartis dans plusieurs entités physiques. Ceci est vrai également pour les modes de réalisation préférés définis plus bas. Les moyens de stockage, prévus pour stocker pour une durée transitoire au moins les données de représentation cryptées du programme sélectionné, peuvent être destinés à stocker sélectivement ces données, ou au contraire à stocker plus largement un ensemble de données incluant ces données de représentation, tel que notamment l'ensemble du flux entrant. Ils sont prévus pour opérer « parallèlement » aux moyens d'établissement, en ce sens qu'au moins une partie de l'enregistrement des données de représentation dans l'espace de stockage s'effectue pendant que la clé de décryptage est en cours d'établissement. Par ailleurs, les moyens de stockage peuvent aussi fonctionner à d'autres moments sans que les moyens d'établissement soient en train de déterminer la clé de décryptage.
Les moyens de démultiplexage peuvent être situés en amont ou en aval des moyens de stockage, ou éventuellement les deux.
Les moyens d'injection sont destinés à transférer les données de représentation de l'espace de stockage transitoire vers les moyens de décryptage, avec optionnellement l'intermédiaire d'un démultiplexeur.
- -
L'injection est effective lorsque la clé de décryptage est établie, ce qui n'exclut pas qu'elle ait débuté avant ce moment d'établissement de la clé.
De manière surprenante, ce sont les données de représentation qu'on stocke en espace de stockage transitoire, tel qu'une mémoire tampon, tout en établissant en parallèle la clé de décryptage, puis c'est à une extraction des données utiles qu'on a recours à partir de cet espace de stockage. On tranche ainsi avec le traditionnel mode du « pousser », ou mode « push », en introduisant partiellement le mode du « tirer », ou mode « pull ».
Cette extraction des données de représentation à partir de l'espace de stockage transitoire rend possible une récupération accélérée des données utiles, telles que notamment les données de démarrage du type images intra. On peut ainsi réduire sensiblement en moyenne le temps d'accrochage à un nouveau programme lors d'un zapping.
Selon un mode de réalisation particulier, le dispositif de démultiplexage est utilisé pour tamponner (c'est-à-dire mettre en mémoire tampon) les données à décrypter (audio, vidéo et autres) pendant la durée de traitement par une carte d'accès sécurisée d'un message ECM de décryptage correspondant. Une fois le mot de contrôle CW destiné au décryptage disponible, le dispositif est prévu pour injecter les données tamponnées dans un sous-ensemble de démultiplexage / décryptage avec ce mot de contrôle, qui offre la bonne clé de décryptage.
Dans une forme de réalisation préférée du dispositif de l'invention, les moyens de démultiplexage comprennent :
- des premiers moyens de démultiplexage prévus pour démultiplexer le flux reçu par les moyens de réception, extraire les données de représentation cryptées et les données de contrôle d'accès du programme sélectionné, et envoyer au moins les données de représentation
cryptées vers les moyens de stockage et les données de contrôle d'accès vers les moyens d'établissement,
- et des deuxièmes moyens de démultiplexage prévus pour recevoir au moins les données de représentation cryptées du programme sélectionné en provenance de l'espace de stockage transitoire par les moyens d'injection et pour transmettre les données de représentation cryptées vers les moyens de décryptage.
Ce mode de réalisation repose donc sur un double démultiplexage, qui inclut un premier et un deuxième démultiplexage respectivement en amont et en aval des moyens de stockage. Le premier démultiplexage rend possible une extraction des données de contrôle d'accès appropriées et un stockage sélectif en espace de stockage transitoire des données du programme visé, incluant notamment les données de représentation. Cette partie est plutôt associée à un mode de pousser (réception des flux de données). Le deuxième démultiplexage permet de traiter distinctement les diverses données du programme visé, récupérées à partir de l'espace de stockage grâce aux moyens d'injection. Cette partie est? plutôt associée à un mode de tirer (récupération des€ données stockées).
L'ensemble permet d'offrir une réduction efficace de la durée de zapping, grâce à un accrochage accéléré au nouveau programme (pendant que la clé est calculée, les données de représentation deviennent peu à peu disponibles pour y extraire les données de démarrage et les données suivantes). De plus, le stockage supplémentaire requis peut être assez restreint (une petite portion de programme pendant une courte durée) et rend possible une utilisation de composants standards.
Dans une variante de réalisation, on prévoit un basculement des premiers vers les seconds moyens de démultiplexage, lorsque la clé de décryptage est établie et l'espace de stockage transitoire est vidé de ses
données de représentation. Cette variante repose sur une vitesse d'injection du module d'injection plus élevée que la vitesse d'arrivée des données du flux. Elle rend possible l'utilisation d'un unique multiplexeur en régime établi, les moyens de démultiplexage non utilisés étant alors libérés pour d'autres applications. Cependant, son implémentation est relativement complexe.
Dans une autre forme de réalisation préférée du dispositif de l'invention :
- les moyens de stockage sont prévus pour stocker le flux multiplexe dans l'espace de stockage transitoire,
- les moyens de démultiplexage ont un premier mode de fonctionnement dans lequel les moyens de démultiplexage reçoivent le flux multiplexe en provenance des moyens de réception, extraient les données de contrôle d'accès du programme sélectionné et transmettent ces données de contrôle d'accès aux moyens d'établissement, et un deuxième mode de fonctionnement dans lequel les moyens de démultiplexage reçoivent le flux multiplexe en provenance de l'espace de stockage transitoire par les moyens d'injection, extraient les données de représentation cryptées du programme sélectionné et transmettent les données de représentation aux moyens de décryptage,
- et le dispositif de démultiplexage comprend des moyens de commutation automatique des moyens de démultiplexage du premier mode de fonctionnement au deuxième mode de fonctionnement lorsque la clé de décryptage est établie.
Une particularité intéressante de cette autre forme de réalisation est de pouvoir exploiter les mêmes moyens de démultiplexage pour agir en amont et en aval des moyens de stockage. En amont, les moyens de démultiplexage permettent d'extraire les données de contrôle d'accès du programme sélectionné, et en aval, ils permettent d'extraire de l'espace de stockage transitoire les données appropriées pour ce programme, tels que
- -
notamment la vidéo et l'audio. Les mêmes moyens de démultiplexage peuvent ainsi intervenir en mode de pousser (amont) et en mode de tirer (aval), le passage d'un mode à l'autre étant contrôlé par des moyens de commutation.
Cette réalisation, par rapport à celle de la forme précédente, requiert plus de place de stockage, puisque le tri dans le flux de données reçu pour se focaliser sur le programme sélectionné n'est pratiqué qu'en aval du stockage. De plus, par rapport à des composants standards, elle peut nécessiter une cellule matérielle (« hardware ») supplémentaire, permettant l'écriture du flux reçu directement en espace de stockage sans passer par une cellule de démultiplexage.
Selon une forme supplémentaire de réalisation préférée du dispositif de l'invention, les moyens de décryptage comprennent des premiers et des deuxièmes moyens de décryptage. De plus, les moyens de démultiplexage comprennent :
- des premiers moyens de démultiplexage prévus pour démultiplexer le flux reçu par les moyens de réception, extraire les données de représentation cryptées et les données de contrôle d'accès du programme sélectionné, et envoyer au moins les données de représentation cryptées vers les moyens de stockage et les données de contrôle d'accès vers les moyens d'établissement,
- des deuxièmes moyens de démultiplexage prévus pour recevoir au moins les données de représentation cryptées du programme sélectionné en provenance de l'espace de stockage transitoire par les moyens d'injection et pour transmettre les données de représentation cryptées vers les premiers moyens de décryptage,
- et des troisièmes moyens de démultiplexage prévus pour démultiplexer le flux reçu par les moyens de réception, extraire les données de représentation cryptées et les données de contrôle d'accès du
programme sélectionné, et envoyer au moins les données de représentation cryptées vers les deuxièmes moyens de décryptage et les données de contrôle d'accès vers les moyens d'établissement.
Le dispositif de démultiplexage comprend aussi des moyens de basculement des premiers moyens de décryptage vers les deuxièmes moyens de décryptage pour exploiter les données de représentation après décryptage, ces moyens de basculement étant prévus pour opérer lorsque l'espace de stockage transitoire est totalement vidé par les moyens d'injection, des données de représentation cryptées stockées dans cet espace de stockage.
Cette réalisation rend possible l'utilisation d'un unique démultiplexeur en régime établi, les moyens de démultiplexage non utilisés étant alors libérés pour d'autres applications. Elle est cependant relativement délicate à implémenter, car elle nécessite de mettre en place de manière adéquate une phase de transition en entrées des démultiplexeurs.
Préférentiellement, le dispositif de démultiplexage comprend des moyens des détection pour chacun des programmes, de données*? de démarrage parmi les données de représentation du programme, ces données de démarrage permettant d'initier une représentation du programme.
Ces moyens de détection peuvent en particulier être matériellement intégrés dans les moyens de démultiplexage, dans un ou plusieurs décodeurs (par exemple audio ou vidéo) en aval des moyens de décryptage, ou dans une unité centrale. Ils peuvent aussi être présents à la fois dans plusieurs de ces entités.
Une identification des types de données du flux reçu est généralement présente au niveau des décodeurs ou de l'unité centrale pour
s'appliquer à des flux décryptés. Cependant, il est intéressant d'exploiter des moyens supplémentaires de détection en amont s'appliquant à des flux cryptés, ce qui permet de limiter les données à stocker et/ou à transférer.
Avantageusement, les données de représentation incluant des données vidéo, ces moyens de détection sont capables de détecter des images de type intra.
Les données de représentation étant prévues pour être reçues par les moyens de réception selon un débit de réception, les moyens d'injection sont de préférence capables d'injecter ces données de représentation vers les moyens de décryptage à un débit d'injection supérieur au débit de réception.
De cette manière, on peut transmettre pour traitement les données mises dans l'espace de stockage transitoire plus rapidement que les données n'arrivent dans le flux. On rend ainsi possible une recherche plus rapide des données de démarrage et/ou un décryptage et un décodage plus rapide permettant de rattraper un retard à la représentation et de représenter aux bons instants de représentation les données de représentation décryptées.
Avantageusement, le dispositif de démultiplexage comprend alors des moyens de décodage des données de représentation décryptées, disposés en aval des moyens de décryptage et chacun des programmes étant prévu pour être représenté en temps réel à un débit de représentation des données de représentation de ce programme, les moyens de décodage sont aptes à décoder les données de représentation à un débit de décodage supérieur au débit de représentation.
Un tel décodage de rythme supérieur à l'unité permet de raccourcir les délais de traitement des données de représentation, lorsque ces données deviennent aptes à être décryptées après un zapping. En
- -
pratique, préférentiellement, c'est un décodeur vidéo qui dispose de capacités de décodage à une vitesse supérieure à l'unité.
Avec une injection rapide, il est également avantageux de disposer d'un mécanisme de détection rapide de données de démarrage
(telle que la recherche d'images de type I ou IDR). De préférence, les moyens de détection associés sont capables de fonctionner un rythme au moins égal à celui d'injection.
Le dispositif de démultiplexage est préférentiellement prévu pour que les données de représentation comprennent des données audiovisuelles. On entend par « données audiovisuelles » des données audio et/ou vidéo.
L'invention concerne également un récepteur — décodeur numérique caractérisé en ce qu'il comprend un dispositif de démultiplexage conforme à l'une quelconque des formes de l'invention.
Un autre objet de l'invention est un procédé de démultiplexage sécurisé comprenant :
- une étape de réception d'au moins un flux multiplexe d'au moins deux programmes destinés à être représentés à un utilisateur, chacun de ces programmes comprenant au moins des données de représentation cryptées et des données de contrôle d'accès permettant de décrypter les données de représentation de ce programme,
- une étape de démultiplexage du flux multiplexe en fonction d'une sélection d'au moins un des programmes par l'utilisateur, dans laquelle on extrait au moins les données de contrôle d'accès et les données de représentation cryptées du programme sélectionné,
- une étape d'établissement d'une clé de décryptage des données de représentation cryptées à partir des données de contrôle d'accès,
- et une étape de décryptage des données de représentation cryptées, au moyen de la clé de décryptage.
Selon l'invention, le procédé comprend une étape de stockage transitoire d'au moins les données de représentation cryptées du programme sélectionné, parallèlement à l'établissement de la clé de décryptage des données de représentation, l'étape de décryptage étant appliquée aux données de représentation cryptées du programme sélectionné précédemment stockées, lorsque la clé de décryptage est établie.
Ce procédé de démultiplexage est préférentiellement mis en œuvre au moyen d'un dispositif de formes de l'invention.
L'invention s'applique également à un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution d'au moins l'étape de stockage du procédé de démultiplexage selon l'invention, lorsque ce programme est exécuté sur un ordinateur. Par « produit programme d'ordinateur », on entend un support de programme d'ordinateur, qui peut consister non seulement en un espace de stockage contenant le programme, tel qu'une disquette ou une cassette, mais aussi en un signal, tel qu'un signal électrique ou optique.
L'invention sera mieux comprise et illustrée au moyen des exemples suivants de réalisation et de mise en œuvre, nullement limitatifs, en référence aux figures annexées sur lesquelles :
-I D-
- la Figure 1 est un schéma de principe d'un dispositif de démultiplexage sécurisé conforme à l'invention ;
- la Figure 2 représente un premier mode de réalisation d'un dispositif de démultiplexage conforme à la Figure 1 ; - la Figure 3 représente un deuxième mode de réalisation d'un dispositif de démultiplexage conforme à la Figure 1 ;
- la Figure 4 représente un troisième mode de réalisation d'un dispositif de démultiplexage conforme à la Figure 1 ;
- la Figure 5 montre une implémentation particulière du dispositif de démultiplexage de la Figure 2, dans un récepteur-décodeur numérique ;
- la Figure 6 donne les évolutions en fonction du temps de la réception d'images, de la synchronisation requise pour les instants d'affichage d'images, du décodage d'images et de l'affichage effectif d'images, obtenues avec le dispositif de démultiplexage de la Figure 4 ; - et la Figure 7 montre une implémentation particulière du dispositif de démultiplexage de la Figure 3, dans un récepteur-décodeur numérique .
Sur les Figures 1 à 5 et 7, les modules représentés sont des unités fonctionnelles, qui peuvent ou non correspondre à des unités physiquement distinguables. Par exemple, ces modules ou certains d'entre eux peuvent être regroupés dans un unique composant, ou constituer des fonctionnalités d'un même logiciel. A contrario, certains modules peuvent éventuellement être composés d'entités physiques séparées. Des éléments identiques ou similaires sont désignés par les mêmes références, des suffixes A, B, C et D pouvant être utilisés pour respectivement quatre exemples de réalisation décrits ci-après.
Un dispositif de démultiplexage 1 sécurisé (figure 1 ) comprend un module de réception 11 d'un flux transport multiplexe FTM de plusieurs programmes, par exemple de programmes de télévision. Chacun de ces
programmes comprend notamment des données de représentation cryptées CRYP et des données de contrôle d'accès CTRL permettant de décrypter les données de représentation. Le dispositif de démultiplexage 1 est typiquement incorporé dans un récepteur-décodeur numérique. Ce dispositif 1 comprend également un ensemble de démultiplexage DMX du flux FTM, en fonction d'instructions de sélection SELEC d'un des programmes par un utilisateur, chargé d'extraire au moins les données de contrôle d'accès CTRL et les données de représentation cryptées CRYP pour le programme sélectionné. Un module d'établissement 12 a pour fonction de construire une clé CLE (ou plusieurs) de décryptage de ces données de représentation cryptées CRYP, à partir de ces données de contrôle d'accès CTRL.
Un ensemble de décryptage 13 en aval de l'ensemble DMX de démultiplexage est prévu pour décrypter les données de représentation cryptées CRYP du programme sélectionné, au moyen de la clé CLE obtenue par le module d'établissement 12, et pour produire des données de représentation décryptées DECRYP.
Le dispositif de démultiplexage 1 comprend aussi un module de stockage 14 d'au moins les données de représentation cryptées CRYP du programme sélectionné, dans un espace de stockage transitoire 20, tel que notamment une mémoire tampon. Ce module de stockage 14 est prévu pour effectuer ce stockage (au moins en partie) parallèlement à l'établissement de la clé de décryptage CLE par le module d'établissement 12.
Un module d'injection 15 est prévu pour injecter les données de représentation cryptées CRYP du programme sélectionné, de l'espace de stockage 20 vers l'ensemble de décryptage 13 lorsque la clé de décryptage CLE est établie - un signal SGNL étant par exemple transmis à cet effet (directement ou non) par le module d'établissement 12 au module d'injection 15 pour déclencher l'injection.
Dans la réalisation préférée représentée, le dispositif de démultiplexage 1 comprend aussi un module de détection 16 de données de démarrage pour chaque programme, parmi les données de représentation de ce programme. Ces données de démarrage permettent d'initier une représentation du programme (telle qu'un affichage écran).
Dans la réalisation d'illustration (figure 1), le module de détection 16 effectue la détection à partir de l'espace de stockage 20, et influe sur le module d'injection 15. Cette réalisation repose sur des données de type transport non cryptées présentes dans le flux FTM reçu. Dans d'autres réalisations, le module de détection 16 est disposé en aval de l'ensemble de décryptage 13. De telles solutions sont utilisées en particulier quand le flux FTM ne contient pas de données de type transport décryptées, pertinentes pour l'identification des données de démarrage. Plus précisément, selon une implémentation préférée, le module de détection 16 est disposé au niveau du décodage vidéo.
Le dispositif de démultiplexage 1 , exposé sous forme générique, va maintenant être développé selon quatre exemples de réalisation particulièrement intéressants.
Dans le premier exemple de réalisation (figure 2), le dispositif 1 noté 1A comprend deux modules de démultiplexage DMX1A et DMX2A composant l'ensemble de démultiplexage DMX. Le premier module de démultiplexage DMX1A est chargé de démultiplexer le flux FTM reçu par le module de réception 11 , d'extraire les données de représentation cryptées CRYP et les données de contrôle d'accès CTRL du programme sélectionné, et d'envoyer au moins ces données de représentation cryptées CRYP vers le module de stockage 14 et les données de contrôle d'accès CTRL vers le module d'établissement 12. Le second module de démultiplexage DMX2A est quant à lui chargé de recevoir au moins les données de représentation
- -
cryptées CRYP du programme sélectionné en provenance de l'espace de stockage transitoire 20, par le module d'injection 15, et de transmettre les données de représentation cryptées CRYP vers l'ensemble de décryptage 13, formé d'un module de décryptage 13A.
Dans le deuxième exemple de réalisation (figure 3), le dispositif 1 noté 1B comprend trois modules de démultiplexage DMX1B, DMX2B et DMX3B composant l'ensemble de démultiplexage DMX, et deux modules de décryptage 13B et 13B' composant l'ensemble de décryptage 13. Le module de décryptage 13B est disposé en aval des modules de démultiplexage DMX1B et DMX2B en série, et le module de décryptage 13B' est disposé en aval du module de démultiplexage DMX3B. De plus, le dispositif de démultiplexage 1B comprend deux modules additionnels de stockage 19B et 19B' respectivement dans des espaces de stockage provisoire 3OB et 3OB' en aval des modules de décryptage 13B et 13B'. Ces espaces 3OB et 3OB' sont de préférence destinés à alimenter des décodeurs.
En pratique, des modules de stockage tels que 19B et 19B' et des espaces de stockages 3OB et 3OB' associés sont de préférence prévus pour chaque type de composante du flux FTM. On peut ainsi disposer par exemple de deux couples distincts de mémoires tampons respectivement pour l'audio et la vidéo (chaque couple comprenant les espaces de stockage 3OB et 3OB' pour une des composantes), ces mémoires tampons se remplissant et se vidant séparément au rythme respectivement de l'audio ou de la vidéo. Ainsi, le passage du stockage en aval du module de démultiplexage DMX2B, au stockage en aval du module de démultiplexage DMX3B est effectué pour l'audio indépendamment de la vidéo.
Le premier module de démultiplexage DMX1B est, dans un premier temps, chargé de démultiplexer le flux FTM reçu par le module de réception 11 , d'extraire les données de représentation cryptées CRYP et les
données de contrôle d'accès CTRL du programme sélectionné, et d'envoyer au moins ces données de représentations cryptées CRYP vers le module de stockage 14 et les données de contrôle d'accès CTRL vers le module d'établissement 12.
Le deuxième module de démultiplexage DMX2B est chargé, dans un deuxième temps, de démultiplexer les données de représentation cryptées CRYP du programme sélectionné en provenance de l'espace de stockage transitoire 20, fournies par le module d'injection 15. Cette étape se déclenche une fois la clé de décryptage CLE établie (signal SGNL2 du module d'établissement 12) et transmise au module de décryptage 13B1 et le deuxième module de démultiplexage DMX2B configuré. En fonctionnement, ce dernier fournit ainsi les données de représentation cryptées CRYP au module de décryptage 13B, qui décrypte les données reçues et transmet les données décryptées DECRYP au module de stockage 19B, qui les place provisoirement dans l'espace de stockage 3OB avant exploitation. Cet espace 3OB est celui utilisé en aval jusqu'à instruction contraire.
Le troisième module de démultiplexage DMX3B est chargé de démultiplexer le flux FTM reçu par le module de réception 11 , une fois la clé de décryptage établie (signal SGNL3 du module d'établissement 12) et transmise au module de décryptage 13B'. Il est prévu pour extraire les données de représentation cryptées CRYP et les données de contrôle d'accès CTRL du programme sélectionné, et pour envoyer les données de contrôle d'accès CTRL vers le module d'établissement 12 et les données de représentation cryptées CRYP vers le module de décryptage 13B'. En fonctionnement, ce dernier décrypte les données reçues et transmet les données décryptées DECRYP au module de stockage 19B', qui les place provisoirement dans l'espace de stockage 3OB' avant exploitation. Cet espace 3OB' n'est utilisé en aval qu'après instruction explicite (auparavant, seul l'espace 3OB fournit les données à exploiter).
Une implémentation de synchronisation de fonctions permet de régler au cours du temps l'exploitation des démultiplexeurs DMX1B, DMX2B et DMX3B. Pour ce faire, le module d'établissement 12 est chargé de provoquer lorsque la clé de décryptage CLE est disponible, outre l'activation des modules de démultiplexage DMX2B et DMX3B, la libération du module de démultiplexage DMX1B. Dans la réalisation décrite, le module d'établissement est par ailleurs prévu pour communiquer la clé CLE en même temps aux deux modules de démultiplexage DMX2B et DMX3B, dès que celle-ci est déterminée.
De plus, le dispositif de démultiplexage 1B comprend un ensemble de commutation 18, destiné à agir lors d'une première transition lorsque les données de représentation cryptées CRYP enregistrées dans l'espace de stockage transitoire 20 sont totalement consommées, et lors d'une seconde transition lorsque l'espace de stockage 3OB est vidé. Pendant la phase de transition entre l'établissement de la clé de décryptage CLE par le module d'établissement 12 et la le vidage complet de l'espace de stockage 3OB, la même clé CLE est utilisée dans les deux modules de décryptage 13B et 13B'.
Lors de la première transition, l'ensemble de commutation 18 est prévu pour libérer le deuxième module de démultiplexage DMX2B ainsi que l'espace de stockage 20 . Ainsi, une fois récupérées toutes les données de représentation cryptées CRYP stockées dans l'espace de stockage 20, seul le troisième démultiplexeur DMX3B poursuit le démultiplexage. En pratique, on peut donc se contenter d'utiliser simultanément parmi les démultiplexeurs, d'abord DMX1B seulement, puis uniquement DMX2B et DMX3B, puis seulement DMX3B.
Lors de la seconde transition (espace de stockage 3OB vide), l'ensemble de commutation 18 est prévu pour activer la sortie de l'espace de stockage 30B' et désactiver la sortie de l'espace de stockage 3OB, et pour provoquer à la fois une désactivation du module de décryptage 13B et une activation du module de décryptage 13B' (flèche d'action non représentée sur la figure 3).
La durée d'établissement de la clé CLE est distincte d'une durée de crypto période déterminée par un diffuseur de programme et un fournisseur de contrôle d'accès. En général, cette dernière vaut plusieurs fois la durée d'établissement de la clé CLE.
On considère plus précisément pour la fiabilité du système, que la durée de validité des clés de décryptage est suffisante pour couvrir l'ensemble des opérations de démultiplexage ayant lieu dans les démultiplexeurs DMX2B et DMX3B lors de la phase de transition, de manière à ce que la même clé de décryptage CLE puisse être utilisée dans tout le processus associé à cette phase.
De plus, on réalise aisément la transition dès lors que les fonctions de démultiplexage sont en mesure de changer leur entrée de flux avec la précision d'un paquet. On n'a alors besoin que d'un seul démultiplexeur en régime établi.
Dans le troisième exemple de réalisation, pouvant être dérivé du premier exemple (figure 2), le premier module de démultiplexage DMX1A n'est utilisé que durant les phases de remplissage de l'espace de stockage 20 (parallèle à l'établissement de la clé de décryptage CLE) et de vidage du contenu de cet espace 20 par le module d'injection 15. On choisit une vitesse d'injection par le module d'injection 15 plus élevée que la vitesse d'arrivée des données du flux FTM. Il arrive alors un instant où l'espace de stockage 20 ne contient plus de données de représentation cryptées CRYP.
- o-
A ce moment, le module de démultiplexage DMX1A est supprimé et le flux FTM est connecté directement au second module de démultiplexage DMX2A. Les données de contrôle CTRL sont alors récupérées par ce dernier.
Cette réalisation peut être aisément obtenue dès lors que les fonctions de démultiplexage sont en mesure de changer leur entrée de flux avec la précision d'un paquet. On n'a alors besoin, comme pour le deuxième exemple, que d'un seul démultiplexeur en régime établi.
Dans le quatrième exemple de réalisation (figure 4), l'ensemble de démultiplexage DMX du dispositif de démultiplexage 1, noté 1D, se réduit à un unique module de démultiplexage DMX-D, et le module de stockage 14 est prévu pour stocker le flux FTM reçu dans l'espace de stockage transitoire 20. Le module de démultiplexage DMX-D dispose de deux modes de fonctionnement :
- un premier mode dans lequel le module de démultiplexage DMX-D reçoit le flux FTM en provenance du module d'entrée 11 , extrait les données de contrôle d'accès CTRL et transmet ces dernières au module d'établissement 12,
- et un second mode dans lequel le module de démultiplexage DMX-D reçoit le flux FTM en provenance de l'espace de stockage 20 par le module d'injection 15, extrait les données de représentation cryptées CRYP du programme sélectionné et transmet ces dernières à un module de décryptage 13D formant l'ensemble de décryptage 13.
De plus, le dispositif de démultiplexage 1D comprend un module de commutation 17 du module de démultiplexage DMX-D, du premier au second mode de fonctionnement lorsque la clé de décryptage CLE est établie (le module de commutation 17 recevant alors par exemple un signal
SGNL' du module d'établissement 12).
- -
Le premier exemple de réalisation (figure 2) est détaillé ci-après en référence à une implémentation particulière (figure 4). Dans cette implémentation, le dispositif de démultiplexage 1A est intégré à un récepteur-décodeur numérique 10, noté 10A, de flux audiovisuels. Celui-ci comprend :
- un syntoniseur / démodulateur 21 recevant le flux FTM,
- le premier module de démultiplexage DMX1A en sortie du syntoniseur / démodulateur 21, sous forme d'un démultiplexeur programmé pour extraire des informations d'identification d'un service ; ceci se traduit par exemple pour un flux MPEG2 par la recherche d'une table d'allocation de programme ou PAT (pour « Program Allocation Table ») décrivant une liste de services ou programmes disponibles dans un flux transport, puis d'une table de répartition de programme ou PMT (pour « Program Map Table ») décrivant une liste de composantes audio, vidéo, de données de décryptage ou d'autres données propres aux programmes considérés ; ce démultiplexeur est programmé pour extraire des données de fonctionnement FONC non cryptées et les données de décryptage constituant les données de contrôle d'accès CTRL sous forme de messages ECM ; - l'espace de stockage provisoire 20 en sortie du premier module de démultiplexage DMX1A, sous forme de mémoire tampon, prévu pour recevoir un flux transport partiel ne contenant que les composantes des flux audio, vidéo et autres données à décrypter, acquises par le module de démultiplexage DMX1A (le module de stockage 14 est ici fonctionnellement inclus dans le module de démultiplexage DMX1A) ;
- le module d'injection 15, ayant une entrée reliée à l'espace de stockage 20 et une sortie reliée au second module de démultiplexage DMX2A ;
- le second module de démultiplexage DMX2A, programmé avec des identificateurs des composantes utilisées pour construire le flux partiel dans le premier module de démultiplexage DMX1A ; deux chemins de
- -
données partent en aval de ce module de démultiplexage DMX2A : un premier chemin CH1 sans décryptage pour données non cryptées, et un second chemin CH2 pour données cryptées , conduisant au module de décryptage 13A ; - le module d'établissement 12 sous forme d'un module récepteur 12A d'une carte d'accès sécurisée prévu pour recevoir les données de contrôle d'accès CTRL ; dès que les composantes véhiculant ces données sont disponibles, elles sont fournies à la carte d'accès qui amorce l'extraction du ou des mot(s) de contrôle CW, aptes à servir de clé de décryptage CLE pour chacune des composantes audio, vidéo, ou d'autre type, à décrypter ;
- le module de décryptage 13A en aval du module de démultiplexage DMX2A, prévu pour recevoir du module d'établissement 12 les clés CLE rendues disponibles ; une fois cette opération accomplie et le second module de démultiplexage DMX2A programmé, le mécanisme d'injection des données peut démarrer et fournir des données à ce module de démultiplexage DMX2A ; le second module de démultiplexage DMX2A et le module de décryptage 13A forment une cellule de démultiplexage et décryptages22 qui produit des données non cryptées vidéo, audio et de fonctionnement FONC2 ;
- un décodeur vidéo 26 recevant les données vidéo décryptées de la cellule 22 ;
- un décodeur audio 27 recevant les données audio décryptées de la cellule 22 ; - et une unité centrale 25.
Un mécanisme de détection d'images de type I (ou IDR pour la norme JVT) est implémenté dans le second module de démultiplexage DMX2A, l'un des décodeurs 26 ou 27, ou l'unité centrale 25.
Dans l'exemple préféré représenté, on dispose de débits de traitement appropriés de la manière suivante :
- le module d'injection 15 est en mesure d'injecter des données à un débit plus important que le débit original des composantes du flux FTM reçu ;
- le mécanisme de recherche d'image de types I ou IDR fonctionne à un rythme au moins égal à la vitesse d'injection par le module d'injection 15 ;
- et le décodeur vidéo 26 permet de décoder des images plus rapidement que l'unité.
Cette implémentation permet d'assurer de façon anticipée la synchronisation requise pour les instants de présentation des images décodées. En effet, on consomme ainsi les données mises dans l'espace de stockage 20 plus rapidement que les données n'arrivent avec le flux FTM.
Les processus de déroulement au cours du temps des traitements relatifs aux images à afficher au moyen du récepteur-décodeur numérique 10A vont maintenant être exposés plus en détail (Figure 6).
Le flux FTM entrant est par exemple formé d'un multiplex MPEG2, qui comprend une succession de groupes d'images 11, 12, 13... arrivant au cours du temps t (axe 30), chaque groupe d'images étant initié par une image intra 10. Cette succession forme ainsi une chaîne d'images CM formée de séquences successives SEQ1, SEQ2... En pratique, le récepteur- décodeur 10A reçoit une instruction de changement de programme et commence à identifier les composantes de décryptage appropriées (messages ECM) à un instant tO.
Les messages ECM associés au programme visé sont reçus avec le flux entrant FTM et sont exploités par la carte d'accès sécurisée pour
déterminer la clé de décryptage CLE. Celle-ci est obtenue après une durée DT de traitement, à un instant t1. De plus, des instants d'affichage successifs des images reçues sont transportés sous forme de données de synchronisation dans le flux FTM. Ils définissent une chaîne d'images CI3 synchronisées, qui est celle requise pour l'affichage des séquences SEQ1 , SEQ2...
Selon la méthode classique, après avoir obtenu la clé CLE, le récepteur numérique se mettrait en attente du prochain début de séquence. Ce dernier interviendrait ici avec l'arrivée de l'image intra IO de la séquence SEQ2 au bout d'une durée d'attente DA, à un instant t3. La chaîne d'images reçues CI2 à partir de cet instant t3 permettrait alors de décoder les images et de les afficher aux instants d'affichage prévus, la première image décodée (image intra 10) devant être prête à un instant t4.
Avec le récepteur-décodeur 10A, les données vidéo cryptées reçues sont stockées dans l'espace de stockage 20 (elles sont tamponnées) au fur et à mesure de leur réception (chaîne d'images CI4).
La disponibilité de la clé CLE initie l'étape de détection d'image de démarrage et les étapes de décryptage et de décodage. On obtient ainsi après une phase de recherche de début de séquence RD, une chaîne d'image CI5 correspondant au décodage des séquences d'images au cours du temps. Dans l'exemple représenté, l'image intra IO de la séquence courante SEQ1 a été reçue et tamponnée pendant l'établissement de la clé CLE.
L'affichage effectif des images décodées (chaîne d'images CI6, identique à la chaîne d'images CI3) n'est effectué qu'à partir du moment où les images deviennent disponibles en temps voulu par rapport aux instants d'affichage prévus. Ainsi, les premières images décodées I -Tard, prêtes trop tardivement, ne sont pas affichées (ici, 10, 11 et 12 de la séquence SEQ1).
-Zo-
Après une durée DR de recalage par rapport aux instants requis, la première image décodée à temps est affichée (ici l'image 14 de la séquence SEQ1 à un instant t2).
Plus tard, la séquence suivante est reçue puis affichée (ici, la séquence SEQ2 commence à être reçue à un instant t3 et doit commencera être affichée à un instant t4).
En fin de compte, la durée d'affichage gagnée lors du zapping, par rapport à un accrochage qui serait fait classiquement sur l'image intra reçue pour la séquence suivante (ici, l'image IO de la séquence SEQ2), est une durée GAIN donnée par la différence entre les temps t4 et t2.
Le deuxième exemple de réalisation (figure 3) est détaillé ci- dessous en référence à une implémentation particulière (figure 7). Dans cette implémentation, le dispositif de démultiplexage 1B est intégré à un récepteur-décodeur numérique 10, noté 10B, de flux audiovisuels provenant d'un réseau de diffusion. Celui-ci comprend (les éléments identiques ou similaires à ceux du premier exemple ne sont pas détaillés) : - le syntoniseur / démodulateur 21 recevant le flux FTM ;
- le premier module de démultiplexage DMX1B en sortie du syntoniseur / démodulateur 21 ; les données cryptées extraites par ce module vont vers le module de décryptage 13B ;
- l'espace de stockage provisoire 20 en sortie du premier module de démultiplexage DMX1B ;
- le module d'injection 15 ayant une entrée reliée à l'espace de stockage 20 et une sortie reliée au deuxième module de démultiplexage DMX2B ;
- le deuxième module de démultiplexage DMX2B, en aval du module d'injection 15 ;
_ _
- le troisième module de démultiplexage DMX3B, ayant une entrée reliée à une sortie du syntoniseur / démodulateur 21 (flux FTM) ;
- le module d'établissement 12 sous forme d'un module récepteur 12B d'une carte d'accès sécurisée, pour recevoir les données de contrôle d'accès CTRL et extraire les mots de contrôle CW ;
- les modules de décryptage 13B et 13B' en aval des modules de démultiplexage DMX2B et DMX3B, prévus pour recevoir du module d'établissement 12 les clés CLE rendues disponibles ; une fois cette opération accomplie et le troisième module de démultiplexage DMX3B programmé pour démultiplexer le flux FTM venant du syntoniseur / démodulateur 21 , le mécanisme d'injection des données démarre et fournit des données au deuxième module de démultiplexage DMX2B et au module de décryptage 13B correspondant ; ces derniers produisent alors des données non cryptées vidéo, audio et de fonctionnement FONC1 qui sont transférées dans l'espace de stockage 3OB constitué de plusieurs mémoires tampons, notamment audio et vidéo (le module de stockage 19B est ici intégré au module de décryptage 13B) ; le troisième module de démultiplexage DMX3B et le module de décryptage 13B' correspondant produisent des données non cryptées audio, vidéo et de fonctionnement FONC2 et les fournissent à l'espace de stockage 3OB', constitué de plusieurs mémoires tampons ;
- le décodeur vidéo 26 recevant les données vidéo décryptées de la partie des espaces de stockage 3OB correspondant aux mémoires tampons vidéo ; - le décodeur audio 27 recevant les données audio décryptées de la partie des espaces de stockage 3OB correspondant aux mémoires tampons audio ;
- un interrupteur 28 de choix de source pour les données de contrôle d'accès CTRL (cette source pouvant être le module de démultiplexage DMX1B ou DMX3B) à destination de la carte sécurisée, formant une partie du module de commutation 18 ;
- et l'unité centrale 25.
Un mécanisme de détection d'image de type I ou IDR est implémenté dans le deuxième et le troisième modules de démultiplexage DMX2B et DMX3B, l'un des décodeurs 26 ou 27, ou l'unité centrale 25.
De préférence, on dispose de débits de traitement appropriés comme dans Pimplémentation particulière du premier exemple de réalisation (figure 5).
Une implémentation particulière du quatrième exemple de réalisation (figure 4) conduit au processus par étapes suivant :
- transfert du flux transport FTM complet à la fois dans une cellule de démultiplexage et décryptage (modules de démultiplexage DMX-B et de décryptage 13) et dans l'espace de stockage 20 ; - extraction des données de contrôle d'accès CTRL et transmission à une carte d'accès sécurisée (module d'établissement 12) ;
- une fois les mots de contrôle CW rendus disponibles par la carte d'accès sécurisée, configuration du module de décryptage 13 de la cellule de démultiplexage et décryptage et aiguillage de la sortie de l'espace de stockage 20 vers cette cellule ; à ce moment, le flux FTM est uniquement transféré dans l'espace de stockage 20 et non plus directement vers la cellule de démultiplexage et décryptage ;
- extraction des flux embrouillés tels que vidéo et audio par la cellule de démultiplexage et décryptage.