FR 2655170 A1 19910531 FR 9015077 A 19901130 i La présente invention concerne un dispositif électronique portable appelé "carte à CI" dans laquel- le est incorporée une puce de circuit intégré (CI) ayant une mémoire non volatile effaçable et un élément de commande, tel: qu'une unité centrale, et elle por- te plus particulièrement sur un dispositif électroni- que portable dans lequel des sous-programmes à exécu- ter par un élément de commande peuvent être enregis- trés dans une mémoire non volatile. Au cours des dernières années, on a dévelop- pé à titre de support d'enregistrement de données por- table perfectionné une carte à CI dans laquelle est incorporée une puce de CI qui comporte une mémoire non volatile effaçable et un élément de commande tel qu'une unité centrale Dans une telle carte à CI, l'élément de commande interne accède à la mémoire in- terne pour effectuer des-opérations d'entrée/sortie de données nécessaires, conformément à une demande qui provient d'un équipement externe. On a développé une carte à CI de ce type dans laquelle des sous-programmes (par exemple un pro- gramme de cryptage utilisé dans un mode d'écriture de données) qui sont exécutés dans le cadre d'un program- me principal de la carte peuvent être enregistrés dans une mémoire non volatile. Cependant, dans une carte à CI classique de ce type, du fait que des sousprogrammes peuvent être enregistrés un certain nombre de fois, ces sous-pro- grammes peuvent être réécrits de façon illégale. De plus, pour exécuter un sous-programme, il est nécessaire de contrôler si des données contenues dans le sous-programme sont valides Si le sous-pro- gramme est invalide, une erreur de fonctionnement se produit. En outre, pour exécuter un sous-programme, il est nécessaire de contrôler si le sous-programme est enregistré Sinon, on ne peut pas déterminer si le sous-programme doit être exécuté. Un but de l'invention est de procurer un dispositif électronique portable qui permette d'empê- cher qu'un sous-programme ne soit réécrit illégalement après son enregistrement, qui contrôle au moment de l'exécution d'un sous-programme si le sous-programme est enregistré et si les données qu'il contient sont valides, et qui, si le sous-programme est déjà enre- gistré, ne permet l'enregistrement du sous-programme que s'il détermine que les données contenues dans le sous-programme sont invalides. Selon un premier aspect de l'invention, un dispositif électronique portable comprend: des moyens de mémoire non volatile et effaçable qui sont capables de mémoriser un sous-programme et des données qui sont fournis par un équipement externe; des moyens d'enre- gistrement de sous-programme pour enregistrer le sous- programme dans les moyens de mémoire non volatile; des moyens de mémorisation d'information d'enregistrement, pour mémoriser une information d'enregistrement qui indique si le sous-programme a été enregistré dans les moyens de mémoire non volatile; et des moyens de com- mande pour accéder aux moyens de mémorisation d'infor- mation d'enregistrement, sous l'effet d'un ordre de demande d'enregistrement de sous-programme qui est ap- pliqué de façon externe, et qui ne permettent aux moyens d'enregistrement de sous-programme d'enregis- trer le sous-programme que lorsque l'information d'en- registrement indique que le sous-programme n'a pas été enregistré dans les moyens de mémoire non volatile. Selon un second aspect de l'invention, un procédé d'enregistrement d'un sous-programme dans une carte à CI comportant une mémoire non volatile pour enregistrer des données et un sous-programme fourni de façon externe, et un élément de commande pour exécuter une opération de lecture/écriture pour la mémoire et le sous-programme, comprend les étapes suivantes: (a) on mémorise une information d'enregistrement qui indi- que que le sous-programme a été enregistré dans la mé- moire non volatile, lorsque le sous-programme est en- registré dans la mémoire non volatile; (b) on accède à l'information d'enregistrement qui est mémorisée dans la mémoire non volatile, sous l'effet d'un ordre de demande d'enregistrement de sous-programme qui est fourni de façon externe pour déterminer si un sous- programme a été enregistré; et (c) on ne mémorise dans la mémoire non volatile le sous-programme fourni de façon externe que lorsque le résultat de détermination qui est obtenu à l'étape (b) indique que le sous-pro- gramme n'a pas été enregistré. Selon un troisième aspect de l'invention, un dispositif électronique portable comprend: des moyens de mémoire non volatile et effaçable qui sont capables d'enregistrer un sous-programme et des données qui sont fournis de façon externe; des moyens d'enregis- trement de sous-programme destinés à enregistrer le sous-programme dans les moyens de mémoire non volati- le; des moyens de contrôle pour contrôler si les don- nées de sous-programme sont valides; et des moyens d'exécution pour exécuter le sous-programme lorsque les moyens de contrôle déterminent que les données de sous-programme sont valides. Selon un quatrième aspect de l'invention, un procédé d'exécution de sousprogramme dans une carte à CI comportant une mémoire de données non volatile pour enregistrer des données et un sous-programme fourni de façon externe, et un élément de commande pour exécuter une opération de lecture/écriture portant sur la mé- moire de données et le sous-programme, comprend les étapes suivantes: a) on effectue un contrôle pour dé- terminer si le sous-programme est valide; et b) on exécute le sous-programme seulement lorsqu'un résul- tat de détermination qui est obtenu à l'étape a) indi- que que le sous-programme est valide. Selon un cinquième aspect de l'invention, un dispositif électronique portable comprend: des moyens de mémoire non volatile et effaçable qui sont capables d'enregistrer un sous-programme et des données fournis de façon externe; des moyens d'enregistrement de sous- programme pour enregistrer le sous-programme dans les moyens de mémoire non volatile; et des moyens de mé- morisation pour mémoriser une information qui indique que le sous-programme a été enregistré, après l'achè- vement de l'enregistrement du sous-programme. Selon un sixième aspect de l'invention, un procédé d'enregistrement de sous-programme dans une carte de CI qui comporte une mémoire de données non volatile pour enregistrer des données et un sous-pro- gramme fourni de façon externe, et un élément de com- mande ayant la fonction d'exécuter une opération de lecture/écriture de données pour la mémoire de données et le sous-programme, comprend les étapes suivantes: a) on enregistre le sous-programme dans la mémoire de données non volatile; b) on écrit dans la mémoire de données non volatile une information d'enregistrement qui indique que le sous-programme a été enregistré dans la mémoire de données non volatile; c) on accède à l'information d'enregistrement pour déterminer si le sous-programme a été enregistré; et d) on interrompt l'exécution du sous-programme lorsqu'un résultat de détermination qui est obtenu à l'étape c) indique que le sous-programme n'a pas été enregistré. Selon un cinquième aspect de l'invention, un dispositif électronique portable comprend: des moyens de mémoire non volatile et effaçable qui sont capables d'enregistrer un sous-programme et des données fournis de façon externe; des moyens d'enregistrement de sous- programme pour enregistrer le sous-programme dans les moyens de mémoire non volatile; des moyens de mémori- sation d'information d'enregistrement pour mémoriser une information d'enregistrement qui indique si le sous-programme a été enregistré dans les moyens de mé- moire non volatile; des moyens de contrôle d'enregis- trement de sous-programme qui sont destinés à accéder à l'information d'enregistrement qui est mémorisée dans les moyens de mémorisation d'information d'enre- gistrement, au moment de l'enregistrement du sous- programme, pour déterminer si le sous-programme a été enregistré; des moyens de contrôle de validité pour contrôler la validité du sousprogramme lorsque les moyens de contrôle d'enregistrement de sousprogramme déterminent que le sous-programme a été enregistré; et des moyens de validation pour valider l'enregistrement du sous-programme lorsque les moyens de contrôle de validité déterminent que le sous-programme est invali- de. Selon un huitième aspect de l'invention, un procédé d'enregistrement de sous-programme dans une carte de CI comportant une mémoire de données non vo- latile pour enregistrer des données et un sous-pro- gramme qui est fourni de façon externe, et un élément de commande ayant la fonction qui consiste à exécuter une opération de lecture/écriture de données pour la mémoire de données et le sous-programme, comprend les étapes suivantes: a) on effectue un contrôle pour déterminer si le sousprogramme a été enregistré dans la mémoire de données non volatile; b) on effectue un contrôle BCC (caractère de contrôle de bloc) pour le sous-programme, lorsque le sous-programme a été enre- gistré; et on écrit le sous-programme dans la mémoire de données non volatile lorsque le contrôle BCC indi- que une erreur. Conformément à l'invention, au moment de l'enregistrement d'un sous-programme, le sous-program- me ne peut être enregistré que lorsqu'on détermine que ce sous-programme n'a pas encore été enregistré L'en- registrement d'un sous-programme ne peut donc être ef- fectué qu'une seule fois Il en résulte qu'on peut éviter l'écriture illégale d'un sous-programme après que celui-ci a été enregistré. En outre, du fait que l'information de con- trôle de validité qui est mémorisée dans les moyens de mémorisation d'information de contrôle de validité est contrôlée au moment de l'exécution d'un sous-program- me, on peut déterminer si des données qui sont conte- nues dans le sous-programme sont valides ou non Il en résulte que du fait que le sous-programme ne peut être exécuté que lorsqu'on détermine que les données du sous-programme sont valides, il est possible d'empê- cher une erreur de fonctionnement. En outre, du fait que l'information d'iden- tification qui est mémorisée dans les moyens de mémo- risation d'information d'identification est consultée au moment de l'exécution d'un sous-programme, on peut contrôler si le sous-programme a été enregistré Il en résulte qu'au moment de l'exécution d'un sous-program- me, on peut déterminer si ce sous-programme doit être exécuté. De plus, si on détermine au moment de l'en- registrement d'un sous-programme que ce sous-programme a déjà été enregistré, on contrôle la validité des données dans le sous-programme Le sous-programme ne peut être enregistré à nouveau que lorsqu'on détermine que les données sont invalides Il en résulte qu'une zone de sous-programme peut être utilisée efficacement. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre de modes de réalisation, données à titre d'exemples non limitatifs La suite de la description se réfère aux dessins annexés dans les- quels: La figure 1 est un schéma synoptique qui montre une configuration d'un terminal pour le traite- ment d'une carte à CI constituant un dispositif élec- tronique portable conforme à l'invention; La figure 2 est un schéma synoptique fonc- tionnel d'une carte à CI de type général; La figure 3 est un schéma synoptique mon- trant une configuration d'une puce de CI qui est in- corporée dans la carte à CI représentée sur la figure 2; La figure 4 est un diagramme montrant en dé- tail une mémoire de programme qui est représentée sur la figure 3; La figure 5 est un diagramme montrant un format de données d'instruction de demande de sous- programme que le terminal applique à la carte à CI de l'invention; La figure 6 est un organigramme qui montre un traitement d'enregistrement de sous-programme; La figure 7 est un organigramme qui montre un traitement d'exécution de sous-programme; La figure 8 est un organigramme qui montre un traitement d'enregistrement de sous-programme con- forme à un autre mode de réalisation de l'invention; et La figure 9 est un diagramme qui montre un format de données d'instruction de demande de sous- programme, auxquelles est ajouté un caractère BCC, que le terminal applique à la carte à CI de l'invention. La figure 1 montre une configuration d'un terminal qui est destiné à traiter une carte à CI à titre de dispositif électronique portable conforme à l'invention Ce terminal comprend un élément de com- mande 3 L'élément de commande 3 consiste par exemple en une puce de microprocesseur Une carte à CI 1 peut être connectée à l'élément de commande 3 par l'inter- médiaire d'un lecteur/enregistreur de carte 2 L'élé- ment de commande 3 est connecté à un clavier 4, une unité de visualisation à écran cathodique 5, une im- primante 6 et une unité de disquettes 7. La carte à CI 1 est en possession d'un uti- lisateur pour désigner un numéro d'identification per- sonnel (qu'on appellera ci-après NIP), qui est connu du seul utilisateur, et cette carte est utilisable pour effectuer des achats ou pour enregistrer des don- nées, si nécessaire La figure 2 est un schéma synop- tique fonctionnel de la carte à CI 1 Comme le montre la figure 2, la carte à CI 1 est constituée fonction- nellement par des sections qui sont destinées à exécu- ter des fonctions de base, telles qu'une section de lecture/écriture 11, une section de fixation/vérifica- tion de NIP 12, et une section de cryptage/décryptage 13, et la carte comprend également un élément de su- pervision 14 qui est destiné à diriger la mise en oeu- vre de ces fonctions de base La section de lecture/écriture 11 lit, écrit et efface des données dans une mémoire de données 16 (qu'on décrira ulté- rieurement) La section de fixation/vérification de NIP 12 remplit une fonction d'enregistrement et d'in- terdiction de lecture pour un NIP qui est fixé par un utilisateur, et elle vérifie un NIP après qu'il a été fixé, pour autoriser ainsi un traitement ultérieur La section de cryptage/décryptage 13 crypte des données à émettre par l'élément de commande 3 vers un autre ter- minal, par l'intermédiaire d'une ligne de communica- tion, dans le but d'empêcher la divulgation ou la fal- sification des données, et elle décrypte des données cryptées L'élément de supervision 14 décode un code de fonction qui provient du lecteur/enregistreur de carte 2, ou un code de fonction qui est ajouté à des données, et il exécute sélectivement une fonction exi- gée parmi les fonctions de base ci-dessus. Dans le but d'exécuter les fonctions ci- dessus, la carte de CI 1 comprend un élément de com- mande ou contrôleur, tel qu'une unité centrale (UC) , une mémoire de données 16, une mémoire de program- me 17 et un connecteur 18 pour établir un contact électrique avec le lecteur/enregistreur de carte 2, comme le montre la figure 3 La partie qui est entou- rée par une ligne en pointillés (l'élément de commande , la mémoire de données 16 et la mémoire de program- me 17) est constituée par une seule puce de CI ou par plusieurs puces de CI, et elle est noyée dans l'épais- seur une carte à CI. La mémoire de programme 17 est constituée par exemple par une mémoire morte à masque, et elle contient des programmes de commande parmi lesquels fi- gurent des sous-programmes pour l'accomplissement des fonctions de base décrites ci-dessus Les programmes de commande sont exécutés par l'élément de commande 15. La mémoire de données 16 est utilisée pour mémoriser divers types de données et elle est consti- tuée par une mémoire non volatile et effaçable telle qu'une mémoire EEPROM (mémoire morte programmable et effaçable par des moyens électriques) Comme le montre la figure 4, la mémoire de données 16 est divisée en une zone de sous-programmes 21 et une zone d'utilisa- teur 22 Des sous-programmes sont enregistrés dans la zone de sousprogrammes 21 Cet enregistrement est effectué lorsque l'élément de commande 15 exécute un ordre d'enregistrement de sous-programme Un sous- programme enregistré est appelé par un programme prin- cipal qui est enregistré dans la mémoire de programme 17. La zone de sousprogrammes 21 est constituée par une zone d'indicateur 23 qui mémorise un indica- teur permettant de contrôler si un sous-programme a été enregistré, une zone de données de sous-programmes 24 pour l'enregistrement de données de sous-program- mes, et une zone BCC (caractère de contrôle de bloc) 25 pour enregistrer un résultat calculé d'une fonction OU-EXCLUSIF qui est appliquée à toutes les données en- registrées dans la zone d'indicateur 23 et la zone de données de sousprogrammes 24 La zone d'utilisateur 22 mémorise divers types de données à mémoriser. On va maintenant décrire le fonctionnement de ce mode de réalisation de l'invention. Pour enregistrer un sous-programme dans la mémoire de données 16, on applique des données d'ins- truction d'enregistrement de sous-programme ayant le format qui est représenté sur la figure 5 Ces données d'instruction comprennent un code de fonction d'enre- gistrement de sous-programme, une longueur de données de sous-programme et des données de sous-programme. Une opération d'enregistrement de sous-pro- gramme est effectuée conformément à l'organigramme qui est représenté sur la figure 6 En se référant à la figure 6, on note que si l'élément de commande 15 dé- termine à l'étape 41 que les données d'instruction d'enregistrement de sous-programme sont émises par le terminal qui est représenté sur la figure 1, il est il nécessaire de consulter un indicateur qui est placé dans la zone d'indicateur 23, à l'étape 43, pour dé- terminer si un sous-programme a été enregistré Si l'état de l'indicateur est " 00 "H, le sous-programme a déjà été enregistré Dans ce cas, l'élément de comman- de 15 détermine que le sous-programme a été enregis- tré, et il émet à l'étape 45 une information d'état indiquant que le programme a été enregistré, après quoi la séquence retourne à l'état d'attente de don- nées d'instruction, à l'étape 41. Si l'état de l'indicateur est "FF"H, le sous-programme n'a pas encore été enregistré Dans ce cas, l'élément de commande 15 détermine que le sous- programme n'a pas été enregistré, et il écrit les don- nées de sous-programme des données d'instruction d'en- trée dans la zone de données de sous-programme 24, à l'étape 47 A l'étape 49, l'élément de commande 15 instaure dans la zone 23 un indicatesur "OO"H qui in- dique que le sous-programme a été enregistré. A l'étape 51, l'élément de commande 15 cal- cule une fonction OU-EXCLUSIF portant sur toutes les données qui sont enregistrées dans la zone d'indica- teur 23 et dans la zone de données de sous-programmes 24, et il écrit le résultat du calcul dans la zone BCC 25 A l'étape 53, l'élément de commande 15 émet une information d'état indiquant l'achèvement de l'écritu- re du sous-programme, et la séquence retourne à l'état d'attente de données d'instruction, à l'étape 41. On décrira ci-après l'appel d'un sous-pro- gramme en se référant à l'organigramme qui est repré- senté sur la figure 7 Comme le montre la figure 7, un sous-programme est appelé pendant l'exécution du pro- gramme principal qui est enregistré dans la mémoire de programme 17 A l'étape 53 du sous-programme, l'élé- ment de commande 15 consulte un indicateur qui est fixé dans la zone d'indicateur 23, pour déterminer si le sous-programme a été enregistré Si l'élément de commande 15 détermine que le sous-programme n'a pas été enregistré (c'est-à-dire si l'indicateur est dans l'état "FF"H), il retourne au programme principal Si l'élément de commande 15 détermine que le sous-pro- gramme a été enregistré (c'est-à-dire si l'indicateur est à l'état "OO"H), il calcule à l'étape 55 une fonc- tion OU-EXCLUSIF portant sur toutes les données qui sont enregistrées dans la zone d'indicateur 23 et la zone de données de sous-programmes 24 A l'étape 57, l'élément de commande 15 compare le résultat calculé avec les données BCC qui ont été enregistrées préala- * blement dans la zone BCC 25 Si les données coïncident mutuellement, le sous-programme est exécuté à l'étape 59, et la séquence retourne au programme principal. Cependant, dans le mode de réalisation ci- dessus, lorsqu'un sous-programme a déjà été enregis- tré, ce sous-programme ne peut pas être enregistré à nouveau, même si les données du sous-programme sont invalides On décrira ci-dessous, en se référant à l'organigramme qui est représenté sur la figure 8, un second mode de réalisation qui est capable d'éliminer cet inconvénient. En se référant à la figure 8, on note que si l'élément de commande 15 détermine à l'étape 61 que des données d'instruction d'enregistrement de sous- programme sont appliquées, il examine à l'étape 63 un indicateur qui est instauré dans la zone d'indicateur 23, pour déterminer si un sousprogramme a déjà été enregistré Si l'indicateur est à l'état "OO"H, le sous-programme a déjà été enregistré Dans ce cas, l'élément de commande 15 détermine à l'étape 65 que le sous-programme a été enregistré, il calcule une fonc- tion OU-EXCLUSIF portant sur toutes les données enre- gistrées dans la zone d'indicateur 23 et la zone de données de sous-programmes 24, et il compare le résul- tat calculé avec les données BCC qui sont enregistrées dans la zone BCC 25 Si ces données coïncident mutuel- lement, l'élément de commande 15 détermine que les données de sousprogramme sont valides, et il émet à l'étape 69 une information d'état qui indique que le sous-programme a été enregistré, et la séquence re- tourne à l'état d'attente des données d'instruction. Si l'indicateur est à l'état "FF"H, le sous- programme n'a pas encore été enregistré Dans ce cas, l'élément de commande 15 détermine que le sous-pro- gramme n'a pas été enregistré Si l'élément de comman- de 15 détermine à l'étape 63 que le sous-programme n'a pas été enregistré, ou s'il détermine à l'étape 67 que le contrôle BCC indique une erreur, il écrit des don- nées de sous-programme appartenant aux données d'ins- truction d'entrée dans la zone de données de sous-pro- gramme 24, à l'étape 71, et il instaure dans la zone d'indicateur 23, à l'étape 73, un indicateur à l'état "OO"H, qui indique que le sous-programme a été enre- gistré A l'étape 75, l'élément de commande 15 calcule une fonction OU-EXCLUSIF portant sur toutes les don- nées qui se trouvent dans la zone d'indicateur 23 et dans la zone de données de sous-programmes 24, et il écrit le résultat calculé dans la zone BCC 25 Lorsque l'écriture est terminée, une information d'état indi- quant l'achèvement de l'écriture du programme est émi- se, et la séquence retourne à l'état d'attente de don- nées d'instruction. Dans le mode de réalisation ci-dessus, le caractère de contrôle de bloc (BCC) de la zone de sous-programmes est calculé et il est écrit dans la zone BCC 25 par l'élément de commande 15 de la carte à CI, au moment de l'enregistrement du sous-programme. L'invention n'est cependant pas limitée au mode de réalisation ci-dessus. Par exemple, comme le montre la figure 9, le caractère de contrôle de bloc (BCC) du sous-programme peut être calculé par l'élément de commande 3 du ter- minal, et émis vers la carte à CI en compagnie du sous- programme L'élément de commande 15 de la carte à CI n'a pas besoin de calculer le caractère BCC, et il enregistre simplement le caractère BCC reçu dans la zone BCC 25. En outre, lorsque le sous-programme est exé- cuté, l'élément de commande 15 lit le caractère BCC enregistré, et il calcule le caractère BCC du sous- programme, de façon similaire au mode de réalisation ci-dessus (figure 7), pour contrôler ainsi la validité du sous-programme Dans ce cas, le caractère BCC qui est reçu à partir du terminal est comparé avec le ca- ractère BCC calculé, pour contrôler la validité du sous-programme Il est donc possible d'interrompre l'exécution du sous-programme si le sousprogramme reçu par la carte à CI était déjà anormal. Il va de soi que de nombreuses modifications peuvent être apportées au dispositif et au procédé décrits et représentés, sans sortir du cadre de l'in- vention. REVENDICATIONS 1 Dispositif électronique portable, carac- térisé en ce qu'il comprend: des moyens de mémoire ( 16, 24) pour enregistrer un programme fourni de façon externe; des moyens ( 15) pour enregistrer le programme dans les moyens de mémoire ( 16, 24); des moyens ( 15) pour contrôler si le programme a été enregistré dans les moyens de mémoire ( 16, 24); et des moyens ( 15) pour autoriser les moyens d'enregistrement de program- me ( 16, 24) à enregistrer le programme lorsque le ré- sultat de contrôle que fournissent les moyens de con- trôle indique que le programme n'a pas été enregistré dans les moyens de mémoire ( 16, 24). 2 Dispositif selon la revendication 1, ca- ractérisé en ce qu'il comprend en outre des moyens de mémorisation ( 16, 23) pour mémoriser une information d'enregistrement qui indique si le programme a été en- registré dans les moyens de mémoire ( 16, 24). 3 Dispositif électronique portable selon la revendication 2, caractérisé en ce qu'il comprend en outre des moyens de mémorisation ( 16, 23) pour mémo- riser une information indiquant que le programme a été enregistré, après l'achèvement de l'enregistrement du programme. 4 Dispositif selon la revendication 2, ca- ractérisé en ce que les moyens de commande ( 15) com- portent des moyens de sortie pour émettre vers l'exté- rieur des données d'état qui indiquent que le program- me a été enregistré, lorsque l'information d'enregis- trement indique que le programme a été enregistré dans les moyens de mémoire ( 16, 24). Dispositif selon la revendication 1, ca- ractérisé en ce que le programme comprend un programme de cryptage pour crypter et écrire dans les moyens de mémoire ( 16) des données qui sont fournies par un équipement externe ( 2), et un programme de décryptage pour décrypter les données cryptées. 6 Dispositif électronique portable, carac- térisé en ce qu'il comprend: des moyens de mémoire ( 16, 24) pour enregistrer un programme qui est fourni de façon externe; des moyens ( 15) pour enregistrer le programme dans les moyens de mémoire ( 16, 24); des moyens de contrôle ( 15) pour contrôler si le programme est valide; et des moyens d'exécution ( 15) pour exécu- ter le programme lorsque les moyens de contrôle déter- minent que le programme est valide. 7 Dispositif selon la revendication 6, ca- ractérisé en ce que les moyens de contrôle destinés à contrôler la validité du programme comprennent: des moyens d'enregistrement ( 16, 25) pour enregistrer un premier caractère de contrôle du programme enregistré dans les moyens de mémoire ( 16), au moment de l'enre- gistrement du programme enregistré; des moyens pour calculer un second caractère de contrôle conformément au programme qui est lu dans les moyens de mémoire ( 16, 24); et des moyens ( 15) pour comparer le second caractère de contrôle calculé avec le premier caractè- re de contrôle qui est mémorisé dans les moyens de mé- moire ( 16, 25). 8 Dispositif selon la revendication 7, ca- ractérisé en ce que le programme comprend un programme de cryptage pour crypter et écrire dans les moyens de mémoire ( 16, 22) des données fournies de façon exter- ne, et un programme de décryptage pour décrypter les données cryptées. 9 Dispositif selon la revendication 7, ca- ractérisé en ce que le premier caractère de contrôle est fourni de façon externe conjointement au program- me. Dispositif selon la revendication 7, ca- ractérisé en ce que le premier caractère de contrôle est calculé au moment de l'enregistrement du program- me - 11 Dispositif selon la revendication 7, ca- ractérisé en ce que les premier et second caractères de contrôle sont des caractères de contrôle de bloc. 12 Dispositif électronique portable selon la revendication 6, caractérisé en ce qu'il comprend en outre des moyens ( 15) pour interrompre l'exécution du programme lorsqu'un résultat de contrôle des moyens de contrôle indique que le programme est invalide. 13 Dispositif électronique portable, carac- térisé en ce qu'il comprend: des moyens de mémoire ( 16, 24) pour enregistrer un programme fourni de façon externe; des moyens ( 15) pour enregistrer le programme dans les moyens de mémoire ( 16, 24); des premiers moyens de contrôle ( 15) pour contrôler si le programme a été enregistré dans les moyens de mémoire ( 16, 24); des seconds moyens de contrôle ( 15) pour contrôler la validité du programme lorsque les premiers moyens de contrôle déterminent que le programme a été enregis- tré; et des moyens d'autorisation ( 15) pour autoriser l'enregistrement du programme seulement lorsque les seconds moyens de contrôle déterminent que le program- me est invalide. 14 Dispositif selon la revendication 13, caractérisé en ce que le programme comprend un pro- gramme de cryptage pour crypter et écrire dans les moyens de mémoire ( 16, 22) des données fournies de façon externe, et un programme de décryptage pour dé- crypter les données cryptées. Dispositif selon la revendication 13, caractérisé en ce que les moyens de contrôle destinés à contrôler la validité du programme comprennent: des moyens de mémorisation ( 16, 25) destinés à mémoriser un premier caractère de contrôle du programme enregis- tré dans les moyens de mémoire, au moment de l'enre- gistrement du programme enregistré; des moyens ( 15) pour calculer un second caractère de contrôle confor- mément au programme qui est lu dans les moyens de mé- moire ( 16, 24); et des moyens ( 15) pour comparer le second caractère de contrôle calculé avec le premier caractère de contrôle qui est mémorisé dans les moyens de mémoire ( 16, 25). 16 Dispositif selon la revendication 15, caractérisé en ce que le premier caractère de contrôle est fourni de façon externe en compagnie du programme. 17 Dispositif selon la revendication 15, caractérisé en ce que le premier caractère de contrôle est calculé au moment de l'enregistrement du program- me. 18 Dispositif selon la revendication 15, caractérisé en ce que les premier et second caractères de contrôle sont des caractères de contrôle de bloc. 19 Dispositif selon la revendication 13, caractérisé en ce qu'il comprend en outre des moyens ( 15) pour autoriser les moyens d'enregistrement de programme ( 15) à enregistrer le programme lorsque les seconds moyens de contrôle ( 15) déterminent que le programme n'a pas été enregistré dans les moyens de mémoire ( 16, 24). Dispositif selon la revendication 13, caractérisé en ce qu'il comprend en outre des moyens de mémorisation ( 16, 23) pour mémoriser une informa- tion d'enregistrement qui indique si le programme a été enregistré dans les moyens de mémoire ( 16, 24).