Brevet FR2702857A1 — publié le 19940923

PROCEDE ET DISPOSITIF D'AUTORISATION D'ACCES A UN APPAREIL COMPORTANT UN SYSTEME INFORMATIQUE D'EXPLOITATION La présente invention se rapporte aux procédés et aux dispositifs qui permettent d'autoriser l'accès à un appareil à partir d'événements indépendants de la volonté de l'utilisateur, en bloquant le fonctionnement du dispositif informatique qui permet de contrôler l'appareil. Elle s'applique plus particulièrement au cas des appareils mis en location et dont on désire contrôler, par exemple, le nombre d'heures d'utilisation, ou une date limite de location. Il est de plus en plus fréquent que des appareils de toute nature, des instruments de mesure par exemple, fonctionnent sous le contrôle d'un système d'exploitation informatisé comportant en général un microprocesseur, une mémoire vive de fonctionnement, une mémoire sauvegardée comportant les programmes du système, des organes de commande du type clavier et des organes de visualisation du type écran. Ces différents dispositifs sont réunis par des bus d'adresses, de commandes et de données, selon une structure qui est très semblable à celle des micro-ordinateurs du type PC. Cette structure banalisée permet de s'appliquer à de nombreux appareils et instruments pour collecter des données et émettre des commandes en adaptant simplement, selon l'appareil utilisé, le programme de contrôle contenu dans la mémoire du système informatique. On diminue ainsi fortement les coûts, et en outre on peut relier ensemble tous ces appareils par l'intermédiaire de dispositifs de liaison normalisés, que ce soit au niveau des bus eux-mêmes, tel que le bus IEEE, ou au niveau de liaisons de types série ou parallèle. Les habitudes actuelles, liées à des problèmes de coûts et d'obsolescence rapide, conduisent les industriels à prendre ces appareils en location au lieu de les acheter. Le loueur souhaite bien entendu avoir des garanties sur un éventuel usage abusif de l'appareil, en limitant par exemple la location à un certain nombre d'heures pour les appareils qui s'usent en fonctionnement, ou à un certaine durée pour éviter qu'en cas de rétention par le client ou de disparition de 11 appareil, celui-ci ne puisse continuer à fonctionner. Dans ce but, on a imaginé d'utiliser des systèmes du type compteur ou horloge calendaire, qui viennent par exemple couper l'alimentation de l'appareil. Ces différents systèmes n'ont pas jusqu'à présent donné une grande satisfaction parce qu'on peut assez facilement les outrepasser. Pour obtenir un système plus sûr, l'invention propose un procédé d'autorisation d'accès à un appareil comportant un système informatique d'exploitation, ce système comprenant une mémoire de programme fixée de manière amovible sur un support, principalement caractérisé en ce que lton insère entre la mémoire programme et le support des moyens permettant de transcoder au moins les adresses d'accès ou les données ou les commandes de cette mémoire de programme, et en ce que les données contenues dans cette mémoire de programme sont ainsi mélangées pour ne pouvoir faire fonctionner le système informatique qu'après leur décodage correct par lesdits moyens de transcodage. Ce transcodage empêche le fonctionnement de l'appareil sans le décodage donc sans la présence de l'invention. D'autres particularités et avantages de l'invention apparaitront clairement dans la description suivante faite en regard des figures annexées qui représentent - La figure 1, le schéma en perspective cavalière de la mémoire de programme d'un tel appareil avec un boîtier de transcodage inséré entre elle et son support; - la figure 2, un schéma électronique des moyens de transcodage; - les figures 3 et 4, des organigrammes du procédé de modification du contenu de la mémoire de transcodage; et - la figure 5, une vue en coupe du boîtier de transcodage. Du fait de son caractère de protection, l'invention peut également protéger le programme contenu dans la mémoire contre la duplication non autorisée dans le cas de programmes optionnels. On a représenté sur la figure 1, de manière très schématique, les organes formant la mémoire de programmes d'un appareil fonctionnant selon l'invention. De manière tout à fait courante, ces organes comprennent un support de mémoire 101 qui est relié aux autres organes du système, non représentés, par un bus d'adresses 102, un bus de commandes 103 et un bus de données 104. Habituellement, la mémoire 106 qui comprend les instructions du programme de fonctionnement du système informatique, et qui est donc du type EPROM EEPROM ou RAM sauvegardée par exemple pour garder ces informations en mémoire même lorsque le système ne fonctionne pas, est connectée directement sur le support 101. Selon l'invention, on utilise un support intermédiaire 105, que nous appellerons support intelligent, et qui vient s'intercaler entre le support normal 101 et la mémoire de programme 106. Ce support 105 comporte d'un côté des broches destinées à venir s'adapter sur le support 101 et de l'autre un support avec des contacts destinés à recevoir les broches de la mémoire 106. Selon l'invention, le support 105 comprend au moins un câblage spécifique qui permet de transcoder les données, les adresses ou les commandes destinées à la mémoire 106 de manière à ce que celle-ci dont le contenu est alors transcodé, contienne des informations qui, le cas échéant, viendront stopper ou perturber le fonctionnement du système informatique dont elle contient le programme d'exécution. Pour obtenir ce transcodage, l'invention propose d'utiliser un réseau logique programmable constituant une mémoire intermédiaire dont les entrées sont les adresses des données contenues dans cette mémoire intermédiaire. Ces mêmes données, disponibles sur les sorties de données, forment les adresses pour la mémoire finale 106 ou des données pour le système. Le contenu de la mémoire 106 aura bien entendu été programmé de telle manière que les bonnes instructions correspondent aux adresses après décodage dans la mémoire intermédiaire. Elle sera appelée LUT, ce terme provenant du terme anglo-saxon LOOK-UP-TABLE Si donc ainsi on a une mémoire intermédiaire qui comprend autant de sorties que d'entrées, huit sorties pour huit entrées par exemple, on a un simple transcodage qui permet une protection relativement limitée. Si par contre on utilise une mémoire de taille plus importante, comprenant par exemple dix entrées et huit sorties, on a l'équivalent de quatre tables de transcodage différentes, dont une seule sera la bonne, les trois autres étant programmées, par exemple de manière aléatoire pour obtenir une lecture tout-à-fait incohérente de la mémoire finale 106. Plutôt qu'une programmation incohérente, on pourrait au contraire avoir une programmation particulière qui amènerait le système informatique à adopter un comportement cohérent mais ne répondant pas aux désirs de l'utilisateur. On pourrait imaginer, par exemple, d'obtenir un affichage indiquant que la durée de location est dépassée. La sélection entre les tables disponibles se fait donc par les entrées supplémentaires, et on conçoit bien que dans le cas de dix entrées pour huit sorties on dispose de deux entrées supplémentaires permettant de choisir entre quatre tables. Le minimum est bien entendu d'avoir une entrée supplémentaire pour pouvoir choisir entre une bonne table de transcodage et une mauvaise mais, bien entendu, il peut être utile d'en avoir un plus grand nombre pour multiplier les possibilités de combinaisons différentes afin de pouvoir munir un grand nombre d'appareils de ce même système de protection sans risque qu'il soit . dupliqué entre deux appareils différents. Ainsi donc dans le cas d'une mémoire possédant seize entrées d'adresses et huit sorties de données, c'est-à-dire une mémoire tout-à-fait courante de 64 koctets, on aura plusieurs milliers de combinaisons disponibles avec un dispositif tout-à-fait courant. En effet, l'un des avantages de l'invention est de permettre d'utiliser des circuits disponibles de manière courante dans le commerce, des mémoires en particulier, sans être obligé de fabriquer des circuits spécialisés. On a représenté sur la figure 2 une version élaborée du support intelligent 105 de la figure 1. Ce support intelligent comprend un microprocesseur 201 qui commande le fonctionnement du support intelligent à partir d'une première mémoire M1 202 qui contient ses instructions de fonctionnement et d'une deuxième mémoire M2 203 qui comprend des données variables pouvant correspondre, par exemple, aux durées de location autorisées, au numéro de série de l'appareil, à la date du contrat, etc.. Le cas échéant, ces mémoires M1 et M2 peuvent être intégrées au microprocesseur 201, comme cela existe couramment. Le support 105 comprend en outre une horloge temps réel 204 qui est sauvegardée, par exemple par une pile intégrée au support et de longue durée, au lithium par exemple, comme cela existe de manière courante. La mémoire LUT comportant les données de transcodage est une mémoire 205 qui comprend donc ses bus de commandes 102, d'adresses 103 et de données 104. La mémoire LUT permet de transcoder aussi bien les adresses et les commandes provenant de l'utilisateur, que les données provenant de la mémoire 106. De ce fait, aussi bien des fils du bus 104 de donnée de la LUT sont raccordés aux fils des bus d'adresse 205 ou de commande 206 de la mémoire 106, aussi bien des fils du bus 208 de donnée de la mémoire 106 sont raccordés à des fils du bus d'adresse 209 de la mémoire LUT. En variante le bus 210 des commandes utilisateur n'est pas transcodé (liaison en tirets). Dans cet exemple, les fils d'adresses provenant du support de base 101 de l'appareil qui reçoit le support intelligent 105 sont en même nombre que ceux qui sortent sur le bus de données 104 et qui correspondent aux fils d'adresses destinés à la mémoire de commande 106. Pour alors avoir le transcodage correct, correspondant à la sélection de la table désirée dans la LUT 211, le bus d'adresses 103 comporte le nombre suffisant de fils supplémentaires provenant du microprocesseur 201, lequel sélectionnera au moins par un fil 212 la bonne table en fonction des éléments contenus dans la mémoire M2 et des renseignements de date et d'heure provenant de l'horloge H.On aura par exemple huit fils d'adresses provenant de l'extérieur sur le bus 103, huit fils allant vers l'extérieur sur le bus 104 et huit fils provenant du microprocesseur 201 et venant se joindre aux huit autres fils du bus d'adresses 103. En outre, selon un perfectionnement optionnel, le support intelligent 105 comprend une interface supplémentaire 213, du type série par exemple, qui est reliée à l'extérieur à un organe de saisie et éventuellement de visualisation 207, du type clavier/écran par exemple, qui permet de modifier, sous le contrôle du microprocesseur 201, les données contenues dans la mémoire M2 ou la LUT 211. Ceci permet, en fin du contrat de location par exemple, de prolonger la durée de ce contrat, en accord bien entendu entre le loueur et le locataire. On utilisera pour cela des algorithmes de chiffrement qui permettent d'obtenir une telle modification sans risque de décodage par un individu non-autorisé. En pratique la mémoire LUT et la mémoire M2 sont confondues en une seule mémoire. En l'absence d'un tel système, une autre solution consiste par exemple à jeter purement et simplement le support intelligent, dont on a vu qu'il était fabriqué à partir d'éléments du commerce courants et bon marché. Une autre solution pourrait consister à prévoir d'avance une série de durées de location au niveau de la mémoire M2, correspondant chacune à une table particulière dans la LUT 211 dont on a vu qu'elle peut comprendre un très grand nombre de tables distinctes. Dans ces conditions on changera alors la mémoire de programme de l'appareil comportant le support intelligent. Cette mémoire sera bien entendu, programmée pour être décodée par la table ad hoc. Compte tenu du prix des mémoires à l'heure actuelle, ce procédé peut être très bon marché et se comparer avantageusement aux autres. Pour obtenir une sécurité supplémentaire, on peut parfaitement, outre le transcodage des adresses de la mémoire de programme, procéder dans le sens inverse à un transcodage des données contenues dans cette mémoire. Ainsi chaque donnée lue servira alors d'adresse dans une LUT, qui peut être commune avec la LUT de transcodage des adresses de lecture, et les données ainsi lues dans la LUT serviront alors de commandes utilisables par l'appareil qui fonctionne sous le contrôle de la mémoire de programme. Le changement de la LUT, pour augmenter le crédit d'heures par exemple, est particulièrement intéressant dans les systèmes dans lesquels on n'utilise pas de microprocesseur et où il est alors assez délicat de changer les données correspondant à la durée de location. A ce moment là, on pourra utiliser directement les données de date et/ou d'heures obtenues à partir de l'horloge 204 pour sélectionner la table correcte dans la LUT. Lorsque la durée de location sera terminée, la table de transcodage sélectionnée dans la LUT 211 par l'horloge sera mauvaise. Ceci est tout simplement obtenu en raccordant une sortie de poids fort d'un compteur piloté par l'horloge à une entrée supplémentaire d'adresse ou de commande de la LUT. Dès que le poids fort de ce compteur bascule, le transcodage de la LUT est modifié.Il n'y a alors pas de relais mécanique ou de circuit électronique supplémentaire à ajouter pour invalider l'utilisation. En pratique, il faut que la LUT ait une capacité au moins double du nombre des adresses ou données que l'on veut transcoder. Le changement de LUT consistera donc à remettre une nouvelle LUT dans laquelle la sélection directe par les données horaires de l'horloge permettra à nouveau d'obtenir le bon transcodage. On pourrait bien entendu utiliser une même structure en changeant le contenu de la LUT par l'intermédiaire du microprocesseur, mais cette procédure n'est généralement pas intéressante et il est le plus souvent préférable de modifier les données de la mémoire 203 de ce microprocesseur. Dans le mode de réalisation préféré, le microprocesseur compare la date programmée dans la mémoire 203 à celle fournie par l'horloge 204, ou bien le crédit d'heures contenu dans cette mémoire 203 à une valeur cumulée de la durée de fonctionnement, elle-même mémorisée dans cette mémoire 203. Dans le cas du crédit d'heures, il faut que celui-ci soit décrémenté au fur et à mesure que le temps passe et ceci sans que les mises hors tension de l'appareil puissent intervenir sur le décompte. Différentes modalités peuvent être utilisées dans ce but. Le microprocesseur 201 peut par exemple mémoriser à chaque mise sous tension le crédit contenu dans la mémoire 203, décrémenter celui-ci en fonction du temps passé délivré par l'horloge 204 et à intervalle régulier rafraîchir le crédit contenu dans la mémoire 203 par la nouvelle valeur obtenue par cette décrémentation. On peut aussi prévoir d'avoir une case dans la mémoire 203, correspondant au temps passé pendant le fonctionnement de l'appareil, déterminé à partir de la mise sous tension, et incrémenter au fur et à mesure le contenu de cet emplacement. A chaque incrémentation le microprocesseur compare le contenu de cette case avec le crédit d'heures, lui-même mémorisé dans la mémoire 203, et lorsque l'égalité se réalise il vient brouiller le décodage de la mémoire de fonctionnement 106 par l'intermédiaire de l'adressage 212 de la LUT 211. Dans la plupart des cas, on préférera renouveler les autorisations d'utilisation directement chez le client, par l'intermédiaire par exemple du clavier de saisie 207, afin de limiter les transactions entre le loueur et le locataire à la fourniture d'un code en échange d'un paiement. Il faut bien entendu pouvoir protéger, justement à l'aide d'un tel code, la nouvelle autorisation d'utilisation, et éventuellement la durée de celle-ci sauf s'il est prévu par avance qu'elle soit d'une valeur fixe déterminée. On connaît différents procédés de cryptage utilisables dans ce but, par exemple l'algorithme connu sous le nom de DES. Ceci présente toutefois différents inconvénients, en particulier une longueur de saisie importante pouvant amener à des erreurs, et l'utilisation de clés publiques qui, en dépit de leur nom, ne sont pas à la disposition de tout le monde. L'invention propose donc, pour pouvoir modifier les autorisations d'utilisation, le procédé se présentant sous la forme des algorithmes représentés sur les figures 3 et 4. Chez le loueur, après accord d'une prolongation d'autorisation de location, on crée dans une étape 301 une chaîne NO 1 formée de la concaténation d'un mot de passe N précédent et du numéro de 11 appareil contrôlé par le dispositif, tous deux contenus dans la mémoire 203. Dans une étape 302, on crée, par des techniques connues, un nombre aléatoire de longueur déterminée et qui constituera le mot de passe N+1. Dans une étape 303, on détermine des données correspond à la durée de location, soit en heures, soit en dates. On effectue ensuite dans une étape 304 la somme de tous les caractères formant le mot de passe N, le numéro d'appareil, la durée de location, et le mot de passe N+1. On obtient ainsi un nombre de contrôle que nous appellerons "somme" et qui est de même nature qu'une information de parité. Dans une étape suivante 305, on confectionne alors une chaîne NO 2 en concaténant le mot de passe N+1, les données de durée de location, et le nombre obtenu dans l'étape 304. Dans une étape 306, on effectue alors une opération connue sous le nom de "OU exclusif", entre la chaîne 1 et la chaîne 2. Le résultat de l'opération donne une chaîne NO 3, qui forme un code résultat 307, qui sera transmis au locataire. Par rapport au mot de passe N+1 et à la nouvelle durée de location, ce code est suffisamment protégé pour ne pas être facilement décodé par le locataire, tout en étant relativement facile à générer et à décoder par le microprocesseur lui-même. Le locataire ayant reçu le code résultat ainsi déterminé commence par rentrer, à l'aide du clavier 207, une commande destinée au microprocesseur 201 afin que celui-ci puisse recevoir le code résultat, le contrôler et modifier en conséquence le contenu de la mémoire 203. Lorsque le microprocesseur 201 est dans cet état, éventuellement signalé par des moyens de visualisation adjoints au clavier 207, le locataire entre le code résultat correspondant à la chaîne 3 dans une étape 401 représentée sur la figure 4. Le microprocesseur procède alors à la génération de la chaîne NO 1 en concaténant dans une étape 402 le mot de passe N et le numéro de l'appareil, tous deux contenus dans la mémoire 203. Ceci est possible puisque ces deux éléments lui sont connus Il effectue ensuite, dans une étape 403, un "OU exclusif" entre la chaîne NO 1 ainsi reproduite et le code résultat reçu. Comme ce code reçu correspond à la chaîne NO 3, le résultat de ce "OU exclusif" forme la chaîne NO 2, dont on rappelle qu'elle contient concaténés le mot de passe N+1, la durée de location, et la somme destinée à la vérification. Ceci est une des particularité de l'opération "OU exclusif".Il serait toutefois possible de remplacer la fonction "OU exclusif" par d'autres fonctions mutuellement réciproques. On extrait alors, par simple segmentation, dans une étape 404 le mot de passe N+1 et la durée de location, et dans une étape 405 la somme. Dans une étape 406 on effectue alors le calcul de la somme à partir du mot de passe N+ 1 et de la durée de location obtenue dans l'étape 404, ainsi que du mot de passe N et du numéro de l'appareil, ces deux derniers étant lus dans la mémoire 203. On effectue alors la comparaison de la somme ainsi calculée à la somme extraite 405 dans une étape 409. Si tout est correct, en particulier si le code entré dans l'étape 401 est le bon, cette somme ainsi calculée est identique à la somme obtenue dans l'étape 405. Si le résultat est faux, on arrive dans une étape d'erreur 410 qui déclenche des actions appropriées, par exemple un blocage plus ou moins long du dispositif, destiné à empêcher des essais systématiques successifs. Si le résultat est bon, on termine dans une étape 411 par le rafraîchissement dans la mémoire 203 de 11 autorisation de location, soit en durée, soit en date, et on vient dans une étape 412 remplacer le mot de passe N par le mot de passe N+1 qui a été obtenu dans l'étape 404. Pour modifier la LUT, on intercale entre les bus d'adresse 103, de données 104, et de commande 102 de la LUT et, respectivement, les mêmes bus utilisateurs ou du microprocesseur 201 des tampons de transmission tels que 214 à 219. Ces tampons possèdent tous une entrée CS qui peut être pilotée par un signal CS ou NCS émis par le microprocesseur 201. En temps normal, le signal CS est actif et la LUT 211 transcode. Quand il s'agit de la modifier, le signal NCS est actif, la LUT est découplée de l'appareil et ses bus d'adresses, de données et de commandes sont alors pilotés par le microprocesseur 201 qui lui-même est commandé par le clavier 207. Ce clavier 207 comporte donc une autre commande pour mettre la LUT sous le contrôle du microprocesseur 201. Comme on l'a vu. au début, l'invention propose de placer le support intelligent 105 entre le support d'EPROM 101 et l'EPROM 106 elle-même. Pour cela, selon un mode de réalisation représenté sur la figure 5, on utilise deux petites plaquettes de circuit imprimé, de préférence double face 501 et 502, dont les dimensions sont sensiblement égales ou légèrement supérieures à celles de 1'EEPROM de la LUT. Ces plaquettes sont placées l'une au-dessus de l'autre et portent vers l'extérieur l'une un connecteur mâle 504 comportant des broches 505 (le support d'EEPROM est supposé du type femelle) et l'autre un support d'EPROM ou EEPROM 503 identique au support 101. De cette manière, le dispositif vient s'adapter exactement entre l'EPROM et son support. Dans l'espace compris entre les plaquettes 501 et 502, on a fixé sur les circuits imprimés les éléments électroniques de la figure 2 destinés à rendre intelligent ce support. Pour obtenir un dispositif aussi petit que possible, on utilisera de préférence des composants du type à montage en surface, dits CMS, et formant par exemple le microprocesseur 201 et l'horloge 204 tels que représenté sur cette figure 5. Les deux faces de chaque circuit sont réunies de manière connue par des trous métallisés et les circuits sont reliés entre eux par des liaisons 506 formées par exemple par des fils rigides courbés à la demande ou bien par un ruban de circuit imprimé flexible comportant des pistes destinées à obtenir les connexions nécessaires. L'interface série 206 est fixée sur le côté de l'ensemble et réunie à l'un et/ou à l'autre des circuits imprimés à l'aide de connexion 510. L'ensemble est ensuite moulé dans un produit d'enrobage 511, de manière à obtenir un élément compact parallélépipèdique de dimensions réduites qui pourra s'insérer très facilement entre 1'EPROM et son support. Il est aisé d'obtenir un dispositif dont l'épaisseur ne dépasse pas 12 mm, ce qui permet de respecter les valeurs courantes d'écartement entre les cartes des systèmes informatiques. REVENDICATIONS 1. Procédé d'autorisation d'accès à un appareil comportant un système informatique d'exploitation, ce système comprenant une mémoire de programme (106) fixée de manière amovible sur un support (101), caractérisé en ce que l'on insère entre la mémoire de programme et le support des moyens (105) permettant de transcoder au moins les adresses d'accès ou les données ou les commandes de cette mémoire de programme (106), et en ce que les données contenues dans cette mémoire de programme sont ainsi mélangées pour ne pouvoir faire fonctionner le système informatique qu'après leur décodage par lesdits moyens de transcodage (105). 2. Procédé selon la revendication 1, caractérisé en ce que les moyens de transcodage comprennent au moins une mémoire (211), dite LUT, dont des données mémorisées servent d'adresses à la mémoire de programme (106) et dont les adresses (103) sont, au moins partiellement, des adresses de lecture normales d'une mémoire de programme. 3. Procédé selon la revendication 2, caractérisé en ce que la mémoire LUT (211) comprend au moins deux tables de transcodage dont une seule est correcte, et en ce que le choix entre ces deux tables de transcodage s'effectue sous le contrôle (212) de données d'autorisation d'accès (201, 203, 204) à l'appareil. 4. Procédé selon la revendication 3, caractérisé en ce que les données d'autorisation d'accès (203) sont des données de date et/ou de durée et que le choix entre la bonne et la mauvaise table de transcodage s'effectue par comparaison entre ces données et des données fournies par une horloge (204). 5. Procédé selon la revendication 4, caractérisé en ce que pour modifier les données de date et/ou de durée, on effectue les étapes suivantes - concaténation d'un mot de passe en cours N et du numéro de l'appareil protégé (301) pour obtenir une chaîne de caractère N01 ; - génération d'un nombre aléatoire formant un mot de passe suivant N+1 (302) ; - détermination des données de durée (303) - élaboration d'un mot de contrôle (304) sur la base des caractères du mot de passe N, du numéro de l'appareil, du mot de passe N+1 et des données de durée ; - concaténation du mot de passe N+1 des données de durée, et du mot de contrôle pour obtenir une chaîne de caractère NO 2 (305) ;; - transformation combinée de la chaîne de caractère NO 1 et la chaîne de caractère NO 2 pour obtenir une chaîne de caractère NO 3 (306) ; cette chaîne NO 3 formant le code à transmettre à l'appareil protégé. 6. Procédé selon la revendication 5, caractérisé en ce que, pour prolonger l'autorisation d'accès à l'appareil, on effectue les étapes suivantes - entrée du code transmis dans l'appareil (401) ; - concaténation d'un mot de passe en cours N et du numéro de l'appareil protégé (301) pour obtenir une chaîne de caractère NO 1 (402) ; - transformation réciproque combinée de la chaîne de caractère NO 1 et du code entré ci-dessus (403) pour extraire un mot de passe futur N+1, une durée de location future et un mot de contrôle extrait (404, 405) ; - élaboration interne d'un mot de contrôle (406) à partir du mot de passe en cours N (407), du numéro de l'appareil (408), du mot de passe futur N+1 et des données de durée de location (404) ;; - comparaison mot de contrôle élaboré (406) et du mot de contrôle extrait (409) ; - en cas de non concordance, déclenchement d'une erreur (410) ; - en cas de concordance, introduction de la nouvelle durée de location (411) et modification du mot de passe mémorisé dans l'appareil (407). 7. Dispositif pour la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comprend un connecteur (504) destiné à venir s'insérer dans le support normal (101) de la mémoire de programme (101), un support (503) destiné à recevoir cette mémoire de programme, des moyens de transcodage (201-219) et des moyens de connexion (501, 502, 506) entre le connecteur de support et les moyens de transcodage. 8. Dispositif selon la revendication 7, caractérisé en ce qu'il comprend au moins une mémoire de transcodage (211). 9. Dispositif selon la revendication 8, caractérisé en ce qu'il comprend en outre une horloge sauvegardée (204). 10. Dispositif selon l'une quelconque des revendications 8 et 9, caractérisé en ce qu'il comprend en outre un microprocesseur (201) et des moyens de mémorisation (203) des données de durée pour pouvoir contrôler la mémoire de transcodage (211). 11. Dispositif selon la revendication 10, caractérisé en ce qu'il comprend en outre des moyens d'interfaçage (213) pour pouvoir modifier les données de la mémoire de transcodage. 12. Dispositif selon l'une quelconque des revendications 7 à 11, caractérisé en ce que le connecteur (504) et le support (503) sont disposés l'un au-dessus de l'autre et surmoulés avec les autres organes (201, 204) pour former un dispositif de petites dimensions qui vient prendre place entre le support normal (101) de la mémoire de programme et celle-ci.