Brevet FR2819961A1 — publié le 20020726

PERFECTIONNEMENTS A LA DIFFUSION DE DONNEES EN BOUCLE La présente invention est relative à la diffusion de données en boucle. Plus particulièrement, l'invention trouve avantageusement application pour la radio-diffusion de données en boucle à destination d'une pluralité de terminaux portatifs équipant des utilisateurs se trouvant dans une zone donnée. La transmission de données en boucle est classiquement connue et a notamment été utilisée en France dans les systèmes de télétextes. Une technique de diffusion de données en boucle permettant pour les utilisateurs des temps d'accès particulièrement réduits a par ailleurs déjà été proposée par la demanderesse dans sa demande de brevet français no 00/00683. Il a également été proposé par la demanderesse, dans sa demande de brevet français nO 00/03020 un procédé de codage et de compression d'images particulièrement adapté à ce type de diffusions et permettant en particulier de transmettre des images de taille limitée pour les afficher sur les écrans de terminaux portatifs de petite dimension tels que des téléphones portables ou encore des ordinateurs de poche du type de ceux commercialisés par la société 3COM sous la dénomination Palm (marque déposée) ou encore du type de ceux utilisant les systèmes d'exploitation Windows CE et Pocket PC (marques déposées) et commercialisés notamment par les sociétés CASIO, COMPAQ et Hewlett Packard. La diffusion de données en boucle pour ce type d'applications est limitée par un certain nombre de contraintes et en particulier : - par le mode de transmission qui en l'occurrence est de type sans fil ; - par les capacités nécessairement limitées en puissance de calcul et en mémoire des terminaux mobiles ; - par la nécessité de pouvoir diffuser en parallèle sur un nombre important de terminaux. Un but de l'invention est de proposer un protocole pour le codage des données diffusées qui est particulièrement adapté pour ce type d'applications. Un autre but de l'invention est de proposer un procédé de cryptage adapté à de type de diffusion de données. Ainsi, l'invention propose un procédé pour la diffusion en boucle d'une pluralité de blocs de données qui correspondent à des objets ou à des fragments ou agrégats d'objets tels que des messages alphanumériques et/ou des pages d'écran et/ou des objets graphiques s'intégrant dans des pages d'écran et/ou des séquences sonores destinées à être restituées par des moyens de restitution dont disposent les utilisateurs, caractérisé en ce que chaque bloc de données présente une entête suivie d'un contenu qui comporte une suite d'informations définissant l'objet, l'entête comportant un champ indiquant le type de bloc de données, un champ indiquant le numéro d'un service, un troisième champ indiquant un numéro de message et un quatrième champ indiquant la longueur du contenu en octets, la taille de chaque bloc de données étant inférieure à 500 octets. Notamment, la taille de chaque bloc de données est préférentiellement inférieure ou égale à 400 octets. Un tel procédé est avantageusement complété par les différentes caractéristiques suivantes prises seules ou selon toutes leurs combinaisons possibles : - le contenu comporte des variables aptes à définir des objets préprogrammés ; - une variable ne prend qu'un nombre fini de valeurs ; - un bloc de données est une chaîne de caractères alphanumériques codés selon la norme ASCII ; - on met en oeuvre un cryptage qui, d'un bloc de données à un autre, est indépendant. - un cryptage est mis en oeuvre sur la partie contenu d'un bloc de données. - un traitement de cryptage est un traitement selon lequel : - on détermine en fonction du numéro de message et de la longueur du contenu en octets, ainsi qu'en fonction d'une première clé de cryptage une valeur de permutation ainsi qu'une seconde clé de cryptage, on applique une permutation circulaire de la valeur de permutation sur la chaîne de caractères du contenu du message, et - on somme cette chaîne de caractères à une chaîne de caractères calculée en fonction de la deuxième clé de cryptage ; - la sommation est une sommation modulo 2. L'invention a également pour objet un système de diffusion de données en boucle comportant des moyens de radio-diffusion de blocs de données, ainsi qu'une pluralité de terminaux portatifs aptes à recevoir les blocs de données ainsi diffusés et des moyens de traitement qui gèrent la diffusion desdites données, caractérisé en ce que les moyens de traitement et les terminaux portatifs comportent des moyens mettant en oeuvre un procédé du type précité. D'autres caractéristiques et avantages de l'invention ressortiront encore de la description qui suit, laquelle est purement illustrative et non limitative, sur laquelle : - la figure 1 illustre l'architecture générale d'un système de diffusion mettant en oeuvre un procédé conforme à un mode de mise en oeuvre possible de l'invention ; - la figure 2 illustre un traitement de cryptage conforme à un mode de mise en oeuvre possible de l'invention. L'architecture générale du système qui est représenté sur la figure 1 est similaire à celle décrite dans la demande de brevet français déposée par la demanderesse sous le n 00/00683, à laquelle on pourra avantageusement se reporter. Ce système comporte une pluralité de terminaux récepteurs 1 et une infrastructure 2 pour la radiodiffusion de données en boucle à destination de ces terminaux 1. Le système qui est représenté sur la figure 1 comporte une pluralité de terminaux récepteurs 1 et une infrastructure 2 pour la radio diffusion de données en boucle à destination de ces terminaux 1. Ces terminaux 1 sont par exemple des ordinateurs de poche du type de ceux commercialisés par la société 3COM sous la dénomination Palm (marque déposée) ou du type de ceux utilisant les systèmes d'exploitation Windows CE et Pocket PC (marques déposées) et commercialisés notamment par les sociétés CASIO, COMPAQ et Hewlett Packard. Ils sont munis de moyens leur permettant la réception des données radio diffusées en boucle par l'infrastructure 2 et l'émission de données à destination de cette infrastructure. Ces moyens comportent notamment une antenne pour la réception de signaux radio-électriques, un modem correspondant à une norme permettant la transmission de données par paquets comme l'une des normes 802. 11, Bluetooth, RangeLAN2, GPRS, UMTS, CDPD ou Ricochet. L'infrastructure 2 comprend une pluralité de bornes de diffusion 3 qui définissent ensemble, dans une zone où l'on souhaite que les services proposés par le système soient accessibles, une ou plusieurs cellules de couverture 4 qui se recouvrent éventuellement partiellement. Les différentes bornes de diffusion 3 sont reliées entre elles par un réseau filaire 5 de type Ethernet et sont équipées de moyens de diffusion radiofréquence, qui traitent les informations reçues du réseau par lesdites bornes pour les diffuser selon l'une des normes précitées. Les données destinées à être diffusées en boucle sont notamment transmises auxdites bornes 3 par l'intermédiaire d'un ou plusieurs serveurs de diffusion 6, connecté au réseau 5, qui transmet sur celui-ci en mode multiast les données destinées à être diffusées. Le système comporte en outre un ou plusieurs serveurs transactionnels 7 qui transmettent et reçoivent, par l'intermédiaire du réseau 5, des données en mode unicast qui correspondent à des transactions entre les terminaux 1 et le système, les bornes 3 comportant des moyens leur permettant de recevoir des données radio-diffusées par les terminaux 1 et de les retransmettre sur le réseau 5. Par ailleurs, le système comporte également un serveur d'administration 8-également connecté au réseau 5-qui supervise le fonctionnement des différentes bornes 3 et des serveurs 6 et 7 et les configure. Le processus de diffusion mis en oeuvre par le ou les serveurs de diffusion 6 consiste en la transmission périodique par les bornes 3 vers les terminaux récepteurs 1 de blocs de données, qui correspondent à des objets qui doivent être restitués au niveau des terminaux 1 et qui sont par exemple des messages alphanumériques et/ou des pages d'écran et/ou des objets graphiques s'intégrant dans des pages d'écrans et/ou des séquences sonores. Les blocs de données diffusés ont une taille maximale de 400 octets utiles, ce qui limite les risques d'erreurs de transmission. Ces blocs de données ont une structure générale constituée pour chaque bloc d'une entête suivie d'un contenu, l'entête comportant un premier champ indiquant le type de bloc de données, un second champ indiquant un numéro de série, un troisième champ indiquant le numéro du message et un quatrième champ indiquant la longueur du contenu en octets. Ces quatre champs sont codés sous forme de caractères alphanumériques. Dans le cas d'un message de transaction, le numéro indiqué dans le second champ est le numéro de session. A titre d'exemple, il peut être prévu les différents types de messages suivants : - des bulletins décrivant le cycle de diffusion mis en oeuvre par les serveurs 6, - des bulletins permettant au serveur d'administration 8 de fournir aux serveurs 6 et 7 des données de configuration, - des messages décrivant des objets à afficher, - ainsi qu'un certain nombre d'autres messages relatifs aux différents échanges entre les différents éléments de l'architecture : . requête enjoignant aux terminaux de transmettre des rapports de fonctionnement, 'requête enjoignant aux terminaux de suspendre la transmission de ces rapports, 'message informant les terminaux d'une interruption de service, 'message émis par un terminal ou un serveur pour annoncer la réception correcte d'un message, . rapport de consultation, . annulation d'une transaction (dans le cas où le mode transactionnel est utilisé), 'début et fin d'une session de transaction (envoyé par le serveur de transaction ou par les mobiles à destination d'un mobile ou du serveur), 'message confirmant l'ouverture d'une transaction et envoyé par le serveur transactionnel à un terminal mobile, . message flash transmis par le serveur de diffusion 6 et prioritaire sur tous les autres messages, 'message de transmission de fichiers, 'message de remise à jour, etc. Le contenu d'un objet à afficher, qui est codé par des caractères ASCII comporte un certain nombre d'informations et notamment : - une adresse constituée d'un numéro de page et d'un numéro d'objet ; - une description de l'objet lui-même. La description comporte un certain nombre de champs codés soit par des nombres entiers, soit par des chaînes de caractères alphanumériques. Les principaux paramètres définis par ces champs sont : - les paramètres de position et de dimension des pixels ; - les paramètres de couleur ; - les paramètres d'affichage (niveau de priorité, transparence, cache) ; - les paramètres de texte (légendes, styles, dimensionnement et alignement utilisés). On utilise avantageusement des objets pré-programmés que l'on définit à l'affichage à l'aide de variables dynamiques qui permettent de sélectionner un objet à partir d'une catégorie à laquelle il appartient et dans laquelle il aura été regroupé. Avantageusement, on ne donne aux variables qu'un nombre limité de valeurs. On comprend que la définition d'objets en les regroupant par catégories et en ne transmettant que les variables permettant de les définir ou de les identifier contribue fortement à réduire les volumes d'informations à transmettre et permet pour les utilisateurs des temps d'accès satisfaisants. Le premier des champs de la description est un champ identifiant les objets. Les identifiants peuvent être des identifiants généraux (page, catégorie) ou lorsqu'il s'agit d'autres objets des identifiants plus spécifiques (texte, image, action, etc.). Par ailleurs, un autre champ de la description des objets est un champ qui définit des actions à effectuer, ces actions pouvant être déclenchées soit par l'utilisateur lui-même, soit par un décompte d'horloge interne (décompte déclenché à la suite de l'affichage d'une page par exemple). Ces actions correspondent par exemple aux fonctions suivantes : - GOTO : affiche la page correspondant à un numéro de page d'un numéro de service indiqué ou du service en cours d'utilisation si le champ est laissé en blanc ; - SETVAR : met à jour la valeur d'une variable ; - INCR : incrémente la valeur d'une variable ; - SEND : déclenche la transmission de valeurs de variables lors d'une transaction ; - RUN : déclenche l'exécution d'un programme ; - DOWNLOAD : chargement d'un fichier et le cas échéant assemblage de celui-ci ; - PREVIOUS : affichage de la page précédente ; - NEXT : affiche la page suivante dans l'historique des pages affichées ; - REPLAY : diffuse la dernière annonce sonore diffusée ; - STOP : arrête la diffusion de l'annonce sonore ; - HOME : va à la page initiale du service ; - EXIT : quitte le service ; - NULL : aucune action. Chaque bloc de données transmis fait l'objet d'une compression du type de celle qui a été décrite dans la demande de brevet français no 00/03020 de la demanderesse, à laquelle on se référera avantageusement. Cette compression permet de réduire les tailles de codes en moyenne d'un facteur de 0,55 (rapport de compression de 45%). Par ailleurs, les serveurs 8 et les terminaux mobiles 1 comportent avantageusement des moyens pour le cas échéant mettre en oeuvre un cryptage/décryptage sur les données qu'ils transmettent. Ce cryptage/décryptage est indépendant pour chaque bloc de données, ce qui permet aux utilisateurs d'avoir accès aux informations cryptées sans avoir à attendre que l'ensemble d'une boucle soit diffusée. Un procédé de cryptage avantageux a été illustré sur la figure 2. Selon ce procédé, on génère (bloc 9), en fonction d'une part d'une clé de cryptage K1 donnée et d'autre part du numéro de message et de la longueur du contenu du bloc, une valeur de permutation et une clé de cryptage K2. On applique alors à la chaîne alphanumérique d'entrée (contenu du bloc) une permutation circulaire de la valeur de permutation (bloc 10). Et on somme la chaîne de caractères ainsi obtenue à une chaîne de caractères qui est définie en fonction de la clé de cryptage K2 (étape de traitement 11). Cette sommation est faite modulo 2. Les terminaux mobiles 1 et les serveurs 8 comportent des moyens pour mettre en oeuvre ce cryptage et pour mettre en oeuvre un traitement de décryptage inverse, la clé de cryptage K1 étant connue des terminaux mobiles comme des serveurs. REVENDICATIONS 1. Procédé pour la diffusion en boucle d'une pluralité de blocs de données qui correspondent à des objets ou à des fragments ou agrégats d'objets tels que des messages alphanumériques et/ou des pages d'écran et/ou des objets graphiques s'intégrant dans des pages d'écran et/ou des séquences sonores destinées à être restituées par des moyens de restitution dont disposent les utilisateurs, caractérisé en ce que chaque bloc de données présente une entête suivie d'un contenu qui comporte une suite d'informations définissant l'objet, l'entête comportant un champ indiquant le type de bloc de données, un champ indiquant le numéro d'un service, un troisième champ indiquant un numéro de message et un quatrième champ indiquant la longueur du contenu en octets, la taille de chaque bloc de données étant inférieure à 500 octets. 2. Procédé selon la revendication 1, caractérisé en ce que la taille de chaque bloc de données est inférieure ou égale à 400 octets. 3. Procédé selon l'une des revendications précédentes, caractérisé en ce que le contenu comporte des variables aptes à définir des objets préprogrammés. 4. Procédé selon la revendication 3, caractérisé en ce qu'une variable ne prend qu'un nombre fini de valeurs. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'un bloc de données est une chaîne de caractères alphanumériques codés selon la norme ASCII. 6. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'on met en oeuvre un cryptage qui, d'un bloc de données à un autre, est indépendant. 7. Procédé selon la revendication 6, caractérisé en ce qu'un cryptage est mis en oeuvre sur la partie contenu d'un bloc de données. 8. Procédé selon la revendication 7, caractérisé en ce qu'un traitement de cryptage est un traitement selon lequel : - on détermine en fonction du numéro de message et de la longueur du contenu en octets, ainsi qu'en fonction d'une première clé de cryptage une valeur de permutation ainsi qu'une seconde clé de cryptage, - on applique une permutation circulaire de la valeur de permutation sur la chaîne de caractères du contenu du message, et - on somme cette chaîne de caractères à une chaîne de caractères calculée en fonction de la deuxième clé de cryptage. 9. Procédé selon la revendication 8, caractérisé en ce que la sommation est une sommation modulo 2. 10. Système de diffusion de données en boucle comportant des moyens de radio-diffusion de blocs de données, ainsi qu'une pluralité de terminaux portatifs aptes à recevoir les blocs de données ainsi diffusés et des moyens de traitement qui gèrent la diffusion desdites données, caractérisé en ce que les moyens de traitement et les terminaux portatifs comportent des moyens mettant en oeuvre un procédé selon l'une des revendications précédentes.