Brevet FR2712711A1 — publié le 19950524

Calculateur de contrôle de l'utilisation d'un véhicule automobile La présente invention concerne un calculateur de contrôle de l'utilisation d'un véhicule automobile comportant un ensemble d'organes de fonctionnement, dont un moteur, comprenant, pour la gestion du fonctionnement d'au moins un des organes fonctionnels, un processeur, des moyens de lecture de moyens de contrôle portatifs et des moyens, de réception d'au moins une donnée de contrôle des moyens de contrôle, pour autoriser le processeur à gérer l'organe considéré. Le contrôle de l'utilisation d'un véhicule automobile consiste à vérifier qu'un individu a bien qualité pour le conduire. Cette qualité peut être matérialisée par une clé mécanique qui permet de débloquer un dispositif antivol, mais cette clé est facile à imiter. Il est aussi connu d'utiliser une clé électronique. Dans ce cas, un clavier du tableau de bord du véhicule permet à l'utilisateur d'entrer un code confidentiel qui, après vérification par un circuit électronique associé au clavier, est transformé en un signal de contrôle autorisant le fonctionnement d'un dispositif de commande d'un organe essentiel du véhicule, par exemple un signal sous forme d'une donnée de contrôle d'un calculateur gérant un dispositif d'allumage des bougies du moteur. En plus du clavier, il est aussi connu de prévoir un lecteur de carte à puce, ce qui accroît la protection, puisqu'il faut disposer à la fois du code et de la carte. Cependant, la donnée de contrôle est en général une simple polarité transmise sur un fil, si bien que le dispositif de contrôle, formé du lecteur et de la carte à puce, est facilement contournable, puisqu'il suffit de débrancher le fil en sortie et d'y appliquer la polarité voulue pour que le calculateur de gestion de I'organe du véhicule puisse fonctionner. La présente invention vise à rendre inefficace toute action frauduleuse directe sur le calculateur de gestion qui aurait pour but de simuler la donnée de contrôle issue d'un dispositif de contrôle d'utilisation, à clé électronique, d'un véhicule automobile. 2 2712711 A cet effet, l'invention concerne un calculateur du type mentionné cidessus, caractérisé par le fait que les moyens de réception comprennent des moyens de débrouillage, le processeur est agencé pour transmettre au moins une donnée d'autorisation de sa gestion de l'organe à gérer aux moyens de contrôle comprenant des moyens d'embrouillage, les moyens de réception étant agencés pour débrouiller ladite donnée, préalablement embrouillée par les moyens de contrôle, et la comparer à la donnée transmise aux moyens de contrôle pour autoriser la gestion de l'organe géré. Il est ainsi formé une boucle comportant les moyens de contrôle portatifs, par exemple une carte à puce, et, lorsque ceux-ci ne sont pas ceux prévus, les données reçues en retour par le calculateur ne correspondent pas aux données de réponse attendues, si bien que l'utilisation du véhicule est impossible. En particulier, la déconnexion frauduleuse du circuit de réception des moyens de lecture et sa reconnexion à une polarité quelconque ne peut simuler la donnée embrouillée attendue. Avantageusement, les moyens de réception comportent un générateur de séquences pseudo-aléatoires. L'embrouillage et le débrouillage sont effectués selon ces séquences et une simulation éventuelle d'une donnée embrouillée valable est ainsi quasi- impossible, même en cas d'observation préalable, lors d'utilisations autorisées, des données embrouillées. Avantageusement toujours, il est prévu des moyens de mémorisation de données d'identification du calculateur pour être comparées à des données associées des moyens de contrôle portatifs. On peut ainsi identifier individuellement chacun des calculateurs appartenant à une même série de fabrication et, par exemple, transmettre les données d'identification vers les moyens de contrôle pour qu'ils les comparent à ces mêmes données, stockées localement, afin d'autoriser ou non un embrouillage correct des données de contrôle. 3 2712711 Afin d'accroître encore la difficulté de détermination, par une observation des données échangées, d'une clé d'embrouillage servant au générateur de séquences pseudo-aléatoires, il est préférable que celui- ci comporte en entrée un circuit d'initialisation agencé pour forcer les sorties du générateur dans un état déterminé. L'invention sera mieux comprise à l'aide de la description suivante de la forme de réalisation préférée du calculateur de contrôle de l'invention, en référence à la figure unique du dessin annexé qui en est une représentation par blocs fonctionnels. Le calculateur de contrôle de l'utilisation d'un véhicule automobile, référencé 1, est ici logé dans une voiture pour en gérer des organes de fonctionnement, et en particulier l'allumage des bougies du moteur 40 dans cet exemple. Par organe de fonctionnement, il faut comprendre tout organe nécessaire lors du déplacement de la voiture, tel que moteur, système de direction, freins, dont le fonctionnement incorrect ou le blocage empêche l'utilisation de la voiture. Le calculateur 1 comporte un processeur 2, assurant la gestion de l'allumage du moteur 40 indiquée ci-dessus, qui est relié à une mémoire 3 contenant une donnée d'autorisation de l'utilisation de la voiture. Un bus 4 relie le processeur 2 à un lecteur 5 agencé pour recevoir une carte à puce 30 et échanger des données avec elle. Un bus 6 relie le lecteur 5 à un circuit de réception 10 du calculateur 1, dont une sortie fournit au processeur 2 un signal 11 d'autorisation de gestion du moteur 40. On comprendra que les bus 4 et 6 peuvent être un seul bus bidirectionnel. Le circuit de réception 10 comporte un comparateur 12 et un ensemble 13 débrouilleur de données comprenant un comparateur 14, ici une porte logique OU exclusif, relié en sortie au comparateur 12 et relié en entrée au bus 6 ainsi qu'à une sortie d'un générateur 15 de séquences cycliques pseudo-aléatoires de bits. Il est aussi prévu, ici, un circuit 16 d'initialisation du générateur 15 pour en forcer les sorties dans un état déterminé par un nombre provenant ici du processeur 2. Le générateur 15 est un compteur à grand nombre d'étages associé à des portes logiques commandées par la sortie de certains des étages pour appliquer en rebouclage des signaux sur des entrées parallèles, 4 2712711 de forçage, d'étages précédents et ainsi créer un comptage pseudoaléatoire. Le circuit d'initialisation 16 a, pour la clarté de l'exposé, été dessiné séparément du générateur 15 mais est en fait constitué, dans cet exemple, des circuits d'entrée parallèle, ou de forçage, de chacun des étages ci-dessus ainsi que d'un circuit d'horloge commandant l'activation de ces circuits d'entrée parallèle. Le comparateur 12 est aussi relié en entrée à une mémoire 17 contenant une tierce donnée associée à la donnée d'autorisation contenue dans la mémoire 3. Le comparateur 12 est ici un comparateur parallèle, précédé d'un registre tampon série/parallèle, non représenté, pour mémoriser les bits issus du comparateur 14, et suivi d'une bascule mémorisant le signal 11. Le comparateur 12 pourrait aussi être un comparateur série, comme une porte logique OU exclusif, suivi d'un registre série/parallèle de réception du résultat de la comparaison de chacun des bits de la donnée débrouillée, OU exclusif 12 produisant, en cas de discordance des deux bits appliqués en entrée, le passage temporaire de sa sortie à un état d'inhibition détecté ensuite dans le registre en sortie pour maintenir ou faire passer le signal 11 à un état inhibant la gestion du moteur 40 par le processeur 2. Il est prévu, dans cet exemple, un ensemble 20 de contrôle d'identité du calculateur 1. L'ensemble 20 comporte une mémoire morte 21 contenant un mot spécifique de code d'identité, particulier au calculateur 1, qui est appliqué à un comparateur 22, ici une porte OU exclusif, relié en entrée au bus 6 et dont la sortie est mémorisée dans une bascule 23 fournissant un signal 24 de validation d'identité. Le signal 24 contrôle le fonctionnement de la gestion du moteur 40 par le processeur 2, ici en étant appliqué à une entrée de verrouillage du générateur 15. La carte à puce 30 comporte un circuit 31 d'embrouillage de données, de structure semblable à celle du débrouilleur 13, et une mémoire 32 contenant aussi le mot spécifique de la mémoire 21. Dans un souci de clarté, les registres tampon nécessaires à l'émission et à la réception de données ainsi que les circuits de synchronisation d'horloge associés n'ont pas été représentés. De même, le protocole de transmission 2712711 pour déterminer par exemple la position ou l'adresse du circuit destinataire des données transmises et leur nature, par exemple l'emploi d'un marqueur, ou jeton, est bien connu de l'homme du métier et n'est pas exposé ici. Le fonctionnement du calculateur 1 va maintenant être expliqué. En l'absence de la carte à puce 30 dans le lecteur 5, le signal 11 d'autorisation de gestion empêche toute gestion de l'allumage 40 par le processeur 2. Dans cet exemple, il n'est pas prévu de détecter matériellement l'introduction de la carte à puce 30 dans le lecteur 5, si bien que la donnée d'autorisation contenue dans la mémoire 3 est transmise cycliquement sur le bus 4 par le processeur 2, afin d'effectuer une scrutation et d'en détecter une réponse sur le bus 6 en cas de présence de la carte à puce 30. Dans ce cas, le circuit d'embrouillage 31 de la carte à puce 30 reçoit la donnée d'autorisation et lui applique une transformation par embrouillage avant de la renvoyer sous forme embrouillée au circuit de réception 10, à travers le bus 6. Le circuit de débrouillage 13 effectue une transformation supplémentaire sur la donnée embrouillée qui la transforme en une donnée débrouillée identique, si la carte à puce 30 est valable, à la tierce donnée contenue dans la mémoire 17. Ainsi, le circuit de réception 10 peut comparer la donnée débrouillée à la donnée d'autorisation, transmise par le processeur 2 sur le bus 4, par l'intermédiaire de la tierce donnée associée à la donnée d'autorisation transmise. L'emploi de deux transformations non inverses l'une de l'autre et d'une association, secrète, entre la donnée d'autorisation émise (3) et la donnée attendue en retour (17) permet ainsi de disposer de trois clés indépendantes, dont la découverte d'une seule n'affecte pas le secret des deux autres. On notera que la comparaison de la donnée d'autorisation (3) avec la donnée débrouillée aurait pu être effectuée en comparant directement ces deux données pour en déterminer une différence, comparée ensuite à une différence prévue, mémorisée (17). Il aurait pu cependant être prévu d'effectuer une transformation de débrouillage inverse de celle de l'embrouillage et, dans ce cas, la mémoire 17, qui, associée 6 2712711 avec la mémoire 3, constitue la troisième clé, aurait été inutile puisque la comparaison des données transmise et reçue en retour aurait été une simple recherche d'égalité, par application du contenu de la mémoire 3 au comparateur 12, la différence indiquée ci-dessus étant nulle. Le circuit d'initialisation 16 a pour but de faire débuter la séquence cyclique pseudo-aléatoire en un point déterminé du cycle. Ce point est déterminé par un nombre, variable d'une utilisation à l'autre de la carte à puce 30. Ce nombre, qui initialise de même I'embrouilleur 31, aurait pu être engendré par la carte à puce 30 mais est ici engendré par le processeur 2 et correspond ici au nombre des secondes d'un circuit de base de temps, non représenté, du calculateur 1. Cela aurait pu être le générateur pseudo-aléatoire 15, ou un autre, qui engendre le nombre ci-dessus. Ce nombre est transmis, par le processeur 2, à la carte à puce 30 et à l'entrée du circuit d'initialisation 16. Ainsi, la donnée embrouillée varie d'une utilisation de la carte à puce 30 à la suivante et rend ainsi plus ardue la détection d'un algorithme ou clé d'embrouillage/débrouillage utilisé par les circuits d'embrouillage 31 et de débrouillage 13. L'ensemble 20 de contrôle d'identité reçoit, par le bus 6, le mot spécifique de code de la mémoire 32 et le compare à celui de la mémoire 21 afin de vérifier que le calculateur 1 est bien apparié à la carte à puce 30 voulue. On remarquera que les positions relatives de l'ensemble 20 et de la mémoire 32 pourraient être permutées, puisque tous les éléments de contrôle sont dans une boucle 2, 4, 5, 30, 6, 10 et que toute coupure logique de cette boucle invalide le signal 1 1 d'autorisation de gestion. Il peut par ailleurs être prévu qu'une donnée variable soit inclue dans, ou constitue, la donnée d'autorisation (3). Ce peut être un mot de code, fourni par le générateur pseudo-aléatoire 15 ou un autre. Ce peut encore être une donnée d'exploitation pour la gestion de l'organe 40 géré par le processeur 2, ce qui évite de prévoir de mémoriser spécifiquement une donnée d'autorisation et permet aussi de disposer d'une donnée d'autorisation variable, ce qui accroît encore la difficulté de détection frauduleuse de l'algorithme d'embrouillage/débrouillage. Dans ce dernier cas, il pourrait être envisagé de ne pas inhiber par le signal 1 1 la gestion du moteur 40 et de transmettre les ordres d'allumage après un passage dans la boucle de contrôle 4, 30, 6, 10. 7 2712711 Lorsque la donnée débrouillée serait incorrecte, la gestion de l'allumage serait elle aussi incorrecte et empêcherait en pratique l'usage de la voiture. Afin d'autoriser l'utilisation de la voiture par des détenteurs de cartes à puce autres que le détenteur de la carte 30, il peut être prévu d'accéder au calculateur 1 avec la carte 30 puis, à partir de moyens d'entrée de données homme-machine, tels qu'un clavier, reliés au calculateur 1, de mémoriser dans le calculateur 1 I'identité (32) d'une autre carte autorisant l'utilisation de la voiture. Il peut de même être associé, à l'identité de l'une ou l'autre carte, des données limitant l'utilisation de la voiture, par exemple dans sa durée ou dans ses performances, par exemple par bridage du moteur au moyen du processeur 2. 8 2712711 REVENDICATIONS 1. Calculateur de contrôle de l'utilisation d'un véhicule automobile comportant un ensemble d'organes de fonctionnement (40), dont un moteur, comprenant, pour la gestion du fonctionnement d'au moins un des organes fonctionnels (40), un processeur (2), des moyens de lecture (5) de moyens de contrôle portatifs (30) et des moyens (10), de réception d'au moins une donnée de contrôle des moyens de contrôle (30), pour autoriser le processeur (2) à gérer l'organe considéré (40), calculateur caractérisé par le fait que les moyens de réception (10) comprennent des moyens de débrouillage (13), le processeur (2) est agencé pour transmettre au moins une donnée d'autorisation (3) de sa gestion de l'organe (40) à gérer aux moyens de contrôle (30) comprenant des moyens d'embrouillage (31), les moyens de réception (10) étant agencés pour débrouiller (13) ladite donnée, préalablement embrouillée (31) par les moyens de contrôle (30), et la comparer (12) à la donnée (3) transmise aux moyens de contrôle (30) de l'organe géré (40). 2. Calculateur selon la revendication 1, dans lequel lesdits moyens de réception (10) sont agencés (12) pour comparer ladite donnée débrouillée à la donnée transmise par le processeur (2) par l'intermédiaire d'une tierce donnée (17) associée à la donnée transmise (3). 3. Calculateur selon l'une des revendications 1 et 2, dans lequel les moyens de réception (10) comportent un générateur (15) de séquences pseudoaléatoires. 4. Calculateur selon l'une des revendications I à 3, dans lequel il est prévu des moyens (21) de mémorisation de données d'identification du calculateur pour être comparées à des données associées (32) des moyens de contrôle portatifs (30). 5. Calculateur selon la revendication 1, dans lequel les moyens de réception (10) comportent une porte logique OU exclusif (12) pour procéder à la comparaison de la donnée (3) transmise par le processeur (2) et de la donnée débrouillée. 9 2712711 6. Calculateur selon l'une des revendications 3 à 5, dans lequel le générateur (15) de séquences pseudo-aléatoires comporte en entrée un circuit d'initialisation (16) agencé pour forcer les sorties du générateur (15) dans un état déterminé. 7. Calculateur selon l'une des revendications 1 à 6, qui est agencé pour inclure, dans la donnée d'autorisation (3), une donnée de commande dudit organé géré (40). 8. Calculateur selon l'une des revendications 1 à 7, qui est agencé pour gérer un organe d'allumage (40) du moteur.