FR 2857813 A1 20050121 FR 0308639 A 20030716 METHODE D'INSERTION DE MARQUES DE SYNCHRONISATION DANS UN FLUX VIDEO, COMPATIBLE AVEC UN CHIFFRAGE PAR BLOCS La présente invention est relative à une méthode de traitement de données chiffrées, et à des appareils et supports pour sa mise en oeuvre. Le domaine technique de l'invention est celui de la fabrication de codeurs de données vidéo. L'invention est plus particulièrement relative à une méthode de traitement de données audio ou vidéo partiellement chiffrées par un algorithme de chiffrement par bloc, les données étant compressées et organisées selon un format standardisé. La distribution sécurisée de documents vidéo est aujourd'hui limitée à la diffusion de télévision "à péage'" par câble ou satellite; la sécurité est assurée par des systèmes de chiffrement "propriétaires", qui sont définis, mis en oeuvre et 20 contrôlés par un prestataire unique: le diffuseur. Les nouveaux standards de vidéo à faible débit, l'Internet haute vitesse et les terminaux portables en réseau sans fil, de type téléphone 3G ou assistant personnel, devraient bientôt permettre la 25 distribution de documents vidéo: télé-conférence, messages multimédias, bandes annonces de films, actualités sportives en direct, vidéo à la demande, notamment. Des besoins de sécurité apparaissent, qui ne 30 peuvent être satisfaits par les solutions actuelles. Les contraintes sont les suivantes: a- la syntaxe du flux chiffré doit rester le plus conforme possible au standard de codage, afin de faciliter le transport en réseau; la méthode de 35 traitement de données doit assurer une transparence au transcodage et aux changements de débit, ainsi qu'une transparence aux routeurs et serveurs pour des raisons de confiance; la méthode doit permettre l'accès aléatoire et d'autres traitements vidéo sans 5 déchiffrage du flux complet, et doit permettre le transport par des protocoles prévus pour de la vidéo standard; bl'efficacité de compression ne doit pas être dégradée du fait de la sécurisation des données par 10 chiffrage, c- la sécurisation doit être compatible avec divers outils prévus par les standards de compression (MPEG4, H264) de données vidéo, en particulier la résistance aux erreurs, pour la 15 transmission sans fil et les pertes de paquets IP (protocole Internet) ainsi que le codage multi niveaux, pour les terminaux clients à bande passante hétérogène; d- le niveau de sécurité et de masquage visuel 20 doit être adapté à l'application: robustesse aux attaques spécifiques à la vidéo; e- la puissance de calcul requise doit rester compatible avec des terminaux embarqués, pour des applications telles que la transmission sans fil en 25 flux continu de documents multimédia. Selon la norme MPEG, une séquence vidéo est constituée d'une suite de groupes d'images, chaque groupe d'image consistant en une suite d'images de type I (intrinsèque), P (prédite) et B 30 (bidirectionnelle) ; chaque image de type I est découpée en macroblocs; chaque macrobloc est converti en quatre blocs de luminance et en deux blocs de chrominance, cette conversion entraînant une première perte d'information. -' ..... 2857813 Chaque bloc de 64 pixels est converti en une table de 64 coefficients par une transformation DCT ("discrete cosine transform") ; cette table est compressée par quantification ("quantization") puis 5 ordonnée et codée ("zig-zag ordering" et "run-length coding") en fonction du nombre de coefficients de valeur nulle rencontrés lors d'un balayage en zigzag de la table; les données compressées résultantes sont codées en mots de longueur variable ("Huffman 10 coding") ; ces transformations entraînent également une perte d'information. Diverses méthodes de chiffrement d'un flux de données vidéo standardisé en particulier d'un flux au standard MPEG - ont été proposées en vue de 15 satisfaire certaines des contraintes énoncées ciavant. Le document "A fast MPEG video encryption algorithm", Changgui Shi et al, ACM Multimedia 98, décrit une méthode de chiffrement de données vidéo 20 compressées au format MPEG, par une clé secrète; les bits de signe des coefficients (AC et DC) de Huffman - qui sont des mots codés de longueur variable - sont combinés bit à bit à des portes XOR avec une clé de longueur déterminée, et sont 25 respectivement remplacés - dans le flux de données vidéo - par la valeur de bit résultant de cette opération; dans ce document, il est proposé d'utiliser une ou plusieurs clé(s) longues; une clé de 128 bits est utilisée à titre d'exemple. Cette méthode de chiffrage sélectif, qui opère sur une faible partie du flux de données, nécessite des ressources de calcul moindres que celles nécessitées par les méthodes de chiffrage intégral du flux; en contrepartie, l'obscurcissement des 35 images chiffrées est relativement faible. Le brevet US-6,505,299-B1 (Zeng et ai) décrit des variantes de cette méthode, et propose de chiffrer les vecteurs de mouvement des images de type P et B; ceci augmente l'obscurcissement des images chiffrées. Selon le document Changgui Shi et ai, susmentionné, des points de synchronisation, qui sont ajoutés au flux de données, permettent à un décodeur disposant de la clé de savoir à partir de 10 quelle position dans le flux chiffré, il doit recommencer à utiliser la clé de déchiffrage; ces points de synchronisation sont ajoutés au début de chaque groupe d'images, au début de chaque image de type I ou au début d'un nombre prédéterminé 15 d'images. Selon l'annexe E de la norme ISO 14496-2, dans un mode "video packet resynchronization", une marque de synchronisation périodique peut être créée à la fin d'un macrobloc lorsque le nombre de bits depuis 20 la marque précédente est supérieur à un certain seuil; un paquet vidéo (partie du flux comprise entre deux marques successives) présente ainsi un nombre variable de macroblocs. Lorsque le flux de données est partiellement 25 chiffré avec un algorithme de chiffrement par bloc, tel que les standards DES (bloc de 64 bits) et à fortiori AES (128 bits), le nombre de bits de données à chiffrer à l'intérieur d'un tel paquet vidéo, peut être inférieur au nombre de bits du bloc 30 de chiffrage, notamment lorsque le paquet contient les vecteurs de mouvement associés aux images de type P et B; un tel paquet sera dans ce cas transmis sans chiffrement, et l'obscurcissement de la séquence sera diminué. La présente invention a pour objet de proposer une méthode améliorée d'insertion de marques de synchronisation dans un flux standardisé de données compressées et chiffrées. La présente invention a également pour objet de proposer une telle méthode qui remédie - en partie au moins - aux inconvénients des méthodes connues de chiffrage de flux de données audio et vidéo compresséese Un autre objet de l'invention est de proposer un codeur ou décodeur (matériel et/ou logiciel) permettant de mettre en oeuvre la méthode selon l'invention. Selon un premier aspect, l'invention propose 15 une méthode d'insertion de marques de synchronisation dans un flux standardisé de données compressées et chiffrées, dans laquelle on chiffre bit à bit une partie au moins du flux de données compressées, par chiffrement par bloc, et on 20 n'insère une marque de synchronisation dans le flux de données compressées qu'après que le nombre de bits chiffrés ait atteint ou dépassé le nombre de bits du bloc de chiffrement. Selon un autre aspect, l'invention propose une 25 méthode d'insertion de marques de synchronisation dans un flux de données vidéo compressées au format MPEG et chiffrées, dans laquelle: - on chiffre bit à bit une partie seulement des données compressées, avec un algorithme de 30 chiffrement par bloc d'un nombre prédéterminé de bits, - on place les bits à chiffrer du flux de données compressées dans un tampon dont la dimension est égale audit nombre prédéterminé et on insère une marque de synchronisation dans le flux de données compressées après que le tampon ait été rempli. Selon un autre aspect, l!invention propose un support lisible par un ordinateur sur lequel est 5 enregistré un code de programme mettant en oeuvre les opérations définies ci avant, pour permettre à l'ordinateur de diffuser un flux de données compressées et chiffrées conformément à l'invention. Selon un autre aspect, l'invention propose un 10 flux compressé de données chiffrées obtenu indirectement par une méthode selon l'invention. L'invention s'applique en particulier aux méthodes utilisant un algorithme de chiffrement par bloc de 64 bits, de 128 bits, de 192 bits, ou de 256 15 bits pour chiffrer un ou plusieurs bit(s) - par exemple le bit de signe des données de vecteurs de mouvement et/ou de texture d'images de type I, P et B selon la norme MPEG4. Selon un autre aspect, l'invention propose un 20 codeur ou décodeur de données audio ou vidéo formatées et compressées, qui comporte - un tampon prévu pour recevoir temporairement les bits de données sélectionnés en vue de leur chiffrage, - des moyens de chiffrement par bloc aptes à chiffrer les bits stockés dans le tampon, - des moyens pour actionner les moyens de chiffrement par bloc, pour provoquer le chiffrement des bits stockés dans le tampon 30 lorsque le tampon est plein, pour remplacer les bits sélectionnés dans le flux de- données par les bits stockés et chiffrés, et pour vider le tampon, la taille du tampon étant égale au nombre de bits 35 d'un bloc des moyens de chiffrement par bloc. En variante, la taille du tampon est égale à un multiple entier du nombre de bits d'un bloc des moyens de chiffrement par bloc, ce qui permet d'augmenter la sécurité en chaînant plusieurs blocs. 5 L'invention permet d'éviter qu'un paquet de données situé entre deux marques de synchronisation consécutives du flux de données ne soit transmis sans chiffrement. D'autres caractéristiques et avantages de 10 l'invention apparaissent dans la description suivante, qui se réfère aux dessins annexés, et qui illustre sans aucun caractère limitatif, des modes préférés et exemples de réalisation de l'invention. La figure 1 illustre une partie d'un flux de 15 données à traiter selon l'invention, qui se présente sous la forme d'une suite de n macroblocs, chaque macrobloc comportant des données de vecteurs de mouvement ainsi que des données de texture. La figure 2 représente schématiquement un 20 système utile pour la mise en ouvre de l'invention. La figure 3 est un organigramme simplifié d'une procédure d'insertion de marques de synchronisation conforme à l'invention. La figure 4 illustre schématiquement la 25 structure d'une partie du flux de données obtenu selon l'invention à partir du flux illustré figure 1. Selon un mode préféré de réalisation, la méthode proposée consiste à générer une marque de 30 synchronisation si le nombre de bits depuis le dernier marque est supérieur à un certain seuil (cf. norme MPEG4 IS0144962 annexe E) , par exemple 2048 bits, et si le nombre de bits chiffrés depuis le dernier marque est au moins égal a la taille du bloc 35 de l'algorithme de chiffrement par bloc choisi, par exemple au moins égal à 128 si l'algorithme choisi est l'AES, ou 64 si l'algorithme choisi est le DES. Ceci permet d'éviter que des paquets vidéo ne soient transmis en clair en raison de leur trop petite taille. Il est généralement nécessaire de vérifier les 2 conditions indépendamment car le nombre de bits chiffrés depuis la dernière marque n'est pas égal au nombre total de bits depuis la dernière marque; 10 en effet, le chiffrage est généralement sélectif et non normalisé. En général on ne chiffre pas les éléments de l'en tête, à savoir: l'index du premier macrobloc, le facteur de quantification, le HEC (header extension code), qui sont des éléments de 15 syntaxe et non du contenu. De plus, les données utiles, constituées des vecteurs de mouvement et de la texture, ne sont pas toujours chiffrées dans leur totalité : par exemple, seuls les bits de signe des symboles sont chiffrés. Les symboles eux-mêmes étant 20 de longueur variable, alors que le bit de signe est de longueur fixe, il n'y a pas une relation simple entre le nombre de bits total et le nombre de bits chiffrés. Exemple 1: après une marque de synchronisation, 25 on génère une autre marque de synchronisation après le prochain macrobloc dès que les 2 conditions suivantes sont réunies: - le nombre total de bits depuis la dernière marque de synchronisation est supérieur à 2048, et 30 - le nombre total de bits de signes de vecteurs de mouvement et de coefficients DCT de texture est supérieur à 128; ceci permet de chiffrer les 128 premiers bits de signe en un bloc AES, les bits suivants étant chiffrés par blocs de 128, et les bits finaux en nombre inférieur à 128 restant en clair. Exemple 2 (où les modes "video packet resynchronization" et "data partitioning" sont utilisés simultanément) : Le mode "data partitioning" sépare les données utiles de mouvement (vecteurs de mouvement) des données utiles de texture (coefficients DCT) par une marque de mouvement appelé "motion marker". Il est 10 plus important de chiffrer les vecteurs de mouvement (par exemple leurs bits de signe), que les données de texture, car si l'on dispose des vecteurs de mouvement en clair il est possible de reconstituer l'image sans la texture. Or les vecteurs de 15 mouvement sont codés en beaucoup moins de bits que la texture, et il est fréquent qu'ils représentent moins de 128 bits au total; le risque existe donc de diffuser des paquets dont la partie "mouvement" est totalement en clair. La méthode proposée consiste à ne pas introduire de nouvelle marque de synchronisation tant que la partie chiffrée des vecteurs de mouvement (symbole complet ou bits de signe seulement) n'atteint pas la quantité de 64 ou 128 25 bits, ou la dimension de bloc de l'algorithme de chiffrage choisi, même si le nombre de bits maximal du mode "synchronisation" a été atteint. Exemple 3: Dans cet exemple correspondant aux figures 1 à 30 4, on ne souhaite chiffrer que tout ou partie des bits de données correspondant aux vecteurs de mouvement. La portion de flux illustrée figure 1 consiste en une suite temporelle ordonnée de macroblocs MB1, 35 MB2, ...MBi, .. oMBn; chaque macrobloc tel que MBi comporte des données de vecteurs de mouvement notées MBMVi, et des données de texture notées MBTXi; les données de mouvement peuvent être nulles lorsque le macrobloc est codé sans mouvement; les données de 5 texture peuvent également être nulles lorsque les coefficients AC et DC sont inférieurs au seuil de quantification. On appelle paquets "auto-synchrones" des paquets pouvant être déchiffrés et décompressés sans 10 l'aide de données provenant d'autres paquets. Pour créer des paquets "auto-synchrones" de longueur peu supérieure à un seuil N égal à 1024 bits et où les bits à chiffrer sont chiffrés avec l'algorithme de chiffrement par bloc AES, pour 15 lequel la dimension des blocs de chiffrage est de 128 bits, on utilise (voir figure 2) un système 1 de traitement de données comportant trois tampons repérés T2 à T4; les tampons T2 et T3 ont chacun une dimension de 2048 bits et sont respectivement 20 prévus pour recevoir temporairement les données MBMvi pour T2, les données MBTXi pour T3; le tampon T4 de 128 bits est prévu pour recevoir les bits extraits de ces données en vue de leur chiffrement. Le traitement des macroblocs MB1, MB2,.. MBi, 25.. MBn est effectué de la façon suivante (voir figures 3 et 4) : - avant traitement du 1er macrobloc MB1, on insère (étapes 100a et 100b) une marque de synchronisation (200) et un en-tête (210); - puis, pour le macrobloc MB1 et les macroblocs suivants: a) on concatène (étape 110) les données de mouvement - telles que MBMvi pour le macrobloc MBi dans le tampon T2, b) on extrait (étape 120) de ces données les bits à chiffrer et on concatène ces bits dans le tampon T4, c) on concatène (étape 130) les données de 5 texture - telles que MBTXi pour le macrobloc MBi dans le tampon T3, d) on vérifie (test 140) si le tampon T4 est plein; dans la négative (branche 150), on répète les opérations a) à d) pour le macrobloc suivant; e) dans l'affirmative, les bits sélectionnés et placés dans T4 sont chiffrés, remis un à un dans le tampon T2 à la position qu'ils occupaient avant leur chiffrage, et le tampon T4 est 15 vidé (étape 160); f) on vérifie ensuite (test 170) si la somme du nombre total (x) de bits placés dans le tampon T2 et du nombre total (y) de bits placés dans le tampon T3 excède le seuil N; dans la négative 20 (branche 180), on répète les opérations a) à d) pour le macrobloc suivant; g) dans l'affirmative, on place (étape 190) successivement à la suite de l'entête (210), les données de mouvement (220) sélectivement chiffrées 25 contenues dans le tampon T2, une marque (230) de mouvement séparant les données de mouvement des données de texture, puis les données MBTXi de texture contenues dans le tampon T3; on vide les tampons T2 et T3, et on répète le cas échéant les 30 opérations précédentes à partir de l'étape (100). Les données obtenues (figure 4) comportent ainsi une série de paquets auto-synchrones, qui sont encadrés par deux marques de synchronisation (200) ; en variante, les données de texture peuvent être 35 chiffrées, de préférence sélectivement également. On notera que, selon l'organigramme de la figure 3, on insère une marque de synchronisation après un nombre entier de blocs chiffrés, en effectuant le test "x+y > Nseuil" seulement quand on 5 a fini le remplissage d'un tampon de chiffrement T4. Une variante consiste à effectuer ce test à chaque macrobloc, après qu'au moins un tampon T4 ait été rempli et chiffré ; cela aura pour résultat de chiffrer un nombre entier de blocs, en laissant en 10 clair les bits finaux n'atteignant pas le seuil de 128. REVENDICATIONS 1. Méthode d'insertion de marques (200) de synchronisation dans un flux standardisé de données 5 compressées et chiffrées, dans laquelle on chiffre bit à bit une partie au moins du flux de données compressées, par chiffrement par bloc, et dans laquelle on n'insère une marque de synchronisation dans le flux de données compressées qu'après que le 10 nombre de bits chiffrés ait atteint ou dépassé le nombre de bits du bloc de chiffrement. 2. Méthode selon la revendication 1 dans laquelle les données sont des données vidéo au 15 format MPEG, et dans laquelle: - on chiffre bit à bit une partie seulement des données compressées, avec un algorithme de chiffrement par bloc d'un nombre prédéterminé de bits, - on place les bits à chiffrer du flux de données compressées dans un tampon (T4) dont la dimension est égale audit nombre prédéterminé et on insère une marque (200) de synchronisation dans le flux de données 25 compressées après que le tampon ait été rempli. 3. Méthode selon la revendication 1 ou 2 dans laquelle on compte le nombre total (x+y) de bits du flux de données écoulés depuis la précédente marque 30 de synchronisation, et on n'insère une nouvelle marque de synchronisation qu'après que le nombre total de bits écoulés compté n'ait atteint ou dépassé un seuil (N) prédéterminé, ledit seuil étant supérieur audit nombre prédéterminé. 35 4. Méthode selon l'une quelconque des revendications 1 à 3 dans laquelle on utilise un algorithme de chiffrement par bloc de 64 bits, de 128 bits, de 192 bits, ou de 256 bits. 5. Méthode selon l'une quelconque des revendications 1 à 4, dans laquelle on chiffre plusieurs bit(s) des données (MBMvi) de vecteurs de mouvement d'images de type P et B. 10 6. Méthode selon l'une quelconque des revendications 1 à 4, dans laquelle on chiffre un seul bit - tel que le bit de signe - des données (MBMVi) de vecteurs de mouvement d'images de type P 15 et B. 7. Méthode selon l'une quelconque des revendications 1 à 6, dans laquelle on chiffre plusieurs bit(s) des données (MBTXi) de texture 20 d'images de type I, P et/ou B. 8. Méthode selon l'une quelconque des revendications 1 à 6, dans laquelle on chiffre un seul bit - tel que le bit de signe - des données 25 (MBTXi) de texture d'images de type I, P et/ou B. 9. Méthode selon l'une quelconque des revendications 2 à 8, dans laquelle: - avant traitement d'un 1er macrobloc (MB1) du 30 flux de données, on insère (100) une marque de synchronisation (200) et un en-tête (210); puis, pour le 1er macrobloc (MB1) et les macroblocs suivants: a) on concatène (110) les données de 35 mouvement dans un second tampon (T2), b) on extrait (120) de ces données les bits à chiffrer et on concatène ces bits dans le tampon (T4), c) on concatène (130) les données de texture dans un troisième tampon (T3), d) on vérifie (140) si le tampon (T4) est plein; dans la négative (150), on répète les opérations a) à d) pour le macrobloc suivant; e) dans l'affirmative, les bits sélectionnés et placés dans le tampon (T4) sont chiffrés, remis un à un dans le second tampon (T2) à la position qu'ils occupaient avant leur chiffrage, et le tampon (T4) est vidé (160); f) on vérifie ensuite (170) si la somme du 15 nombre total (x) de bits placés dans le second tampon (T2) et du nombre total (y) de bits placés dans le troisième tampon (T3) excède un seuil (N) ; dans la négative (180), on répète les opérations a) à d) pour le macrobloc suivant; g) dans l'affirmative, on place (190) successivement à la suite de l'entête (210), les données de mouvement (220) sélectivement chiffrées contenues dans le second tampon (T2), une marque (230) de mouvement séparant les données de mouvement 25 des données de texture, puis les données (MBTXi) de texture; on vide les tampons (T2) et (T3), et on répète le cas échéant les opérations précédentes à partir de l'étape (100). 10. Flux compressé de données chiffrées obtenu indirectement par l'une quelconque des revendications 1 à 9. 11. Codeur ou décodeur (1) de données audio ou vidéo formatées et compressées, caractérisé en ce qu'il comporte: - un tampon (T4) prévu pour recevoir 5 temporairement des bits de données sélectionnés en vue de leur (dé)chiffrage, - des moyens de (dé)chiffrement par bloc prévu pour (dé)chiffrer les bits stockés dans le tampon, - des moyens (110 à 160) pour actionner les moyens de (dé)chiffrement par bloc, pour provoquer le (dé)chiffrement des bits stockés dans le tampon lorsque le tampon est plein, pour remplacer les bits sélectionnés dans le 15 flux de données par les bits stockés dans le tampon et (dé)chiffrés, et pour vider le tampon, la taille du tampon (T4) étant égal au nombre de bits d'un bloc des moyens de (dé)chiffrement par bloc, ou bien égal à un multiple entier de ce nombre. 12. Support lisible par un ordinateur sur lequel est enregistré un code de programme mettant 25 en oeuvre les opérations définies à l'une des revendications 1 à 9, de façon à permettre à l'ordinateur de diffuser un flux de données compressées et chiffrées.