WO2002084610A1 - Procede et systeme de gestion de donnes destinees a etre stockees dans une carte a puce programmable - Google Patents

Procede et systeme de gestion de donnes destinees a etre stockees dans une carte a puce programmable Download PDF

Info

Publication number
WO2002084610A1
WO2002084610A1 PCT/FR2002/001235 FR0201235W WO02084610A1 WO 2002084610 A1 WO2002084610 A1 WO 2002084610A1 FR 0201235 W FR0201235 W FR 0201235W WO 02084610 A1 WO02084610 A1 WO 02084610A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
identification
code
memory
intended
Prior art date
Application number
PCT/FR2002/001235
Other languages
English (en)
Inventor
Laurent Lagosanto
François Millet
Jean-Jacques Vandewalle
Original Assignee
Gemplus
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus filed Critical Gemplus
Priority to US10/474,742 priority Critical patent/US7025261B2/en
Priority to EP02761929A priority patent/EP1388134A1/fr
Publication of WO2002084610A1 publication Critical patent/WO2002084610A1/fr

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • G06Q20/35765Access rights to memory zones

Definitions

  • the invention relates to the management of data to be loaded into memory for optimizing storage possibilities.
  • the data in question may in particular be of the code constituting a program of the "application” type, intended to be loaded into a memory of a communicating device, such as a programmable smart card or the like.
  • an open card has rewritable memory spaces for storing one or more service applications in a progressive manner.
  • the manufacturer can not provide for a different management of parts of the code of an application depending whether they are customizing, whose utility is only temporary, or other parts that can be used 'at any time .
  • the personalization of an application is a series of operations carried out at an initial stage which makes it possible to individualize it in relation to the card holder.
  • the personalization code contains different commands, called “administrative”, for example to load registers with identification codes, authorization, and other personal data, and to configure the application according to choices or limits established according to the holder, etc.
  • the application is activated, possibly in cooperation with an internal card management program, to execute all of the administrative commands necessary for personalization.
  • the administrative commands no longer have any use, but remain in memory with the rest of the application, as they cannot be managed separately.
  • these administrative commands can represent a few tens of percent of the total space occupied in memory by the application concerned, which limits the ability of the smart card to accept new applications.
  • the object of the invention is to provide an identification of the parts of a set of data to be stored in memory which can therefore be managed separately in order to be able to optimize the storage capacity.
  • the parts corresponding to the administrative personalization commands will be identified (ie indicated) as such in , the code, according to. convention established, so that they can be recognized and managed separately within the card, in particular to free up the space they occupy in memory once the personalization has been carried out.
  • the invention relates to a data managing method to be stored in a memory, 'the data are intended to be managed according to at least two modes, characterized in that it comprises the steps of:
  • the data intended for a first management mode can be data whose utility is only provisional relative to the data intended for the other management modes.
  • the invention will more particularly relate to a method for managing data intended to be stored in a memory, characterized in that it comprises the steps of: - provide an identification, during a data preparation phase, of that of data whose usefulness is only temporary in relation to the other data, and - manage the storage of data on the basis of the identification provided.
  • the identification is integrated into the data.
  • the data includes code relating to an executable program, part of which, identified as being intended for a first management mode, relates to the code intended to be used only during an initial phase of the program.
  • the memory can be located in a communicating device, such as a smart card, the data comprising code relating to an application, part of which, identified as intended for a first management mode, relates to the code for personalizing the application during an initial phase.
  • the step of managing the data storage comprises the sub-steps of:
  • This step may further comprise a step of erasing the data identified after the end of utility detection step.
  • identification can be provided by a naming technique, where we assign to or each module of the program associated with the data to be identified, an identifiable name according to an established convention. .
  • the identification can be provided by a typing technique, where one or each type of said program associated with the data to be identified is given a subtyping link to a specified type identifiable according to a convention established.
  • typing takes place by conferring on one or each class of the program associated with the data to be identified, an inheritance link to a specified class, identifiable according to the established convention. .
  • identification can be provided by designating the file (s) associated with the data to be identified, according to an established convention.
  • identification can be provided by labeling instructions relating to the data to be identified, according to an established convention, the labeling being affixed to each instruction concerned or limiting groups of instructions concerned.
  • the method can also provide a step of checking the correct identification of the data of provisional utility relative to the other data which they are called to persist in memory, the verification consisting in ensuring that the data identified as not being that of provisional utility are not called by said other data.
  • the analysis can consist in verifying that no instruction of the code of the rest of the program calls upon instructions of the code used only during an initial phase of the program.
  • the invention can be applied to other types of management than those relating to data of temporary utility with respect to others.
  • the management permitted by identification can also be used in particular for:
  • routing can . run to one of several processors, selected according to said identification;
  • the invention relates to a data management system intended to be stored in a memory, the data being intended to be managed according to at least two modes, characterized in that it comprises:
  • identification means for supplying an identification, during a data preparation phase, making it possible to identify respectively the data intended to be managed according to the different modes, and storage management means and / or exploitation of data operating on the basis of said identification provided.
  • the invention relates to a programmable smart card, comprising a first programmable memory intended for the storage of code constituting an application, and a second memory containing instructions making it possible to recognize an identification, according to an established convention, of the administrative code of a loaded application, this code being intended to personalize the application during an initial phase.
  • the second memory further comprises. instructions for authorizing the erasure of the administrative code of the first active memory after the end of the ' customization of the application.
  • FIG. 1 is a simplified block diagram of the main elements of a smart card
  • r 2 is a flowchart of a protocol for identifying parts of the administrative code for an application for the card • chip of FIG 1, in accordance with the invention
  • FIG. 3 is a flow diagram of a procedure for loading the application into a card and for managing the programmable memory used in the protocol of FIG. 2
  • FIG. 4 is a flow diagram of a variant of that of FIG. 3, which incorporates verification measures for the identification of the data.
  • a programmable smart card 1 The basic functional elements of a programmable smart card 1 are shown so synoptic in the block diagram of FIG. 1.
  • a microprocessor CPU 2 which provides all the functions of internal management of the card, as well as the execution of the applications which are programmed there.
  • the microprocessor is connected, by an internal bus system 4, to three types of memory:
  • ROM read only type
  • EEPROM electrically programmable
  • a memory of the mask ROM type 8 containing all of the code and values of an internal card management software. These data are entered during the fabrication of the chip, at the level of the layer deposition masks.
  • the content of the mask ROM 8 being very strongly linked to the hardware means of the smart card, the code is normally established by the manufacturer of the card;
  • the internal bus 4 is also connected to a communication interface 12 which constitutes a data input and output port vis-à-vis the outside world, and which provides the electrical supply to the card 1.
  • This interface can be in the form of connection pads intended to engage with respective contacts of a reader, and / or of an antenna in the case of a so-called contactless card.
  • the communication interface 12 is used inter alia for bidirectional data exchange with a terminal provided for loading an application ' into the EEPROM memory 6.
  • the invention provides an agreement between on the one hand the designer of the service application and on the other hand the manufacturer of cards, aiming to strictly identify the personalization code. ie. "administrative" (the one used only for personalization) compared to the rest of the code, ie the "functional" code used by the client application.
  • This identification is entered in the service application by the designer and is recognized at the level of the management software stored in the mask memory 8.
  • the management of the EEPROM memory 6 can then be established as a function of this recognition, in particular by providing for erasure, or compacting of the data located at the addresses assigned to the storage of the administrative code once the personalization . completed.
  • step E2 The general concept of such an exploitation of the identification of the administrative code is illustrated by the flowcharts of FIGS. 2 and 3.
  • the designer C of the service application and the manufacturer F of programmable smart cards s '' agree on an agreement to identify the administrative code (step E2). This convention ensures interoperability between the card and the service application.
  • step E4 the designer provides an identification of the administrative code in his application (by marking, naming, labeling, etc.) (step E4).
  • the constituent information of this identification is integrated with all the data that constitute the application code.
  • step E6 the manufacturer writes in the ROM memory 8 the commands necessary for the recognition of the code thus identified and for the management in EEPROM memory 6 of this code, in accordance with a procedure Pi for loading into card and memory management described below. -after (step E6).
  • the designer here assimilated to the owner operating the application, distributes the application with a view to integrating it into the smart card (step E8). To this end, it transmits it to the manufacturer for loading onto blank cards from a factory terminal (loading in pre-transmission) and, where appropriate, onto B2 "user" terminals for loading by the holders of smart cards ( loading in post-transmission). For example, a holder can load, via a B2 terminal, an application for a new commercial service that he wishes to use.
  • terminal Bl or B2 comprises a program which manages the loading of an application by having identified on one side the personalization code ' and on the other the application code (functional). This program will load from terminal Bl or B2 all the code
  • step E10 the application and, in the event of an immediate personalization request, initiate the personalization phase with transmission of the necessary orders.
  • the procedure begins with the detection of a load in the EEPROM memory 6 of an application in the smart card 1 (step E10).
  • step E12 the data flow which constitutes the code is analyzed to identify therein the data relating to the administrative code (step E12). This identification is carried out by means of the recognition commands established during step E6, on the basis of the identification convention.
  • the addresses are then established in EEPROM 6 to which the data of the administrative code are assigned (step -E14).
  • This step can be carried out in two ways: - passive, that is to say by listing in a register (in EEPROM 6 or RAM 10) the series of addresses occupied by the data of the administrative code, without intervening in the choice of these addresses, or - dynamic, by directing the data of the administrative code onto specific EEPROM 6 address areas, away from the other data forming the rest of the code.
  • Personalization typically involves a dialogue between the card and the terminal, the latter allowing the service provider to enter personal data (identification codes, password, chosen options, etc.) via administrative commands. Personalization will then configure the application within the card taking into account this personal data (for example to check the personal code for each use, manage exchanges according to chosen options, etc.). Note that personalization takes place at the initial stage of the application, once and for all; the configuration of the application based on personal data is then frozen. Thus, the administrative code is no longer useful once the customization is complete.
  • the procedure authorizes the reuse of the addresses of the administrative code located in step E14 (step E24).
  • This authorization allows several possibilities for managing the EEPROM 6 memory space: registration of new data at the addresses previously occupied by the. administrative code; for example when loading another application. In this case, the administrative code may remain present until these addresses in EEPROM 6 memory are requisitioned for other data,
  • This step E24 can be implemented by the internal management program of the card 1 according to conventional techniques for identifying free addresses in EEPROM memory 6. Whatever the option chosen, the management makes it possible to recover the space in EEPROM memory 6 unnecessarily occupied by the personalization code after its execution.
  • the identification of the personalization code can be carried out in many different ways, some examples of which will be given below.
  • a first approach consists in declaring that everything that comes under the administrative code is put in a specific module. To this end, o can proceed in two ways: by "naming” or by “typing”.
  • Naming consists in naming this module (s) with an expression allowing a third party to recognize it as containing the personalization code, for example by assigning the prefix "personal" to the module, or any other established prefix. according to a naming convention between the card manufacturer and the designer of client applications in step E2 above. Of course, the other modules containing the rest of the code should not. use this prefix.
  • the management software stored in the ROM memory mask 8 of the card can, by reading the module names, know where the parts of code intended for personalization are located and act accordingly, for example by putting them to cell addresses which will be subject to an erasure phase after personalization ( see Figure 3, steps E12, E14).
  • the typing-based approach is aimed at object-oriented languages. These languages call on "classes”, comparable to modules, each defining a "type" of data and associated processing. These types are organized according to a hierarchy of types, going from the most general to the most specific, ie there is generally a basic type from which the classes and their instances are attached according to established dependency links, called “inheritance", a class “inheriting” from all the classes on which it depends in the hierarchy. It can thus be specified that the personalization classes "inherit” from a specific class dedicated to personalization, designated according to the convention set in step E2, for example "personal". The code of the other classes does not inherit from this "personal” class. The "personal” class can be empty, being a shell used only to create the inheritance links. During programming, we make sure that the codes linked to personalization are grouped into classes that inherit from this "personal” class.
  • the mask ROM management software 8 performs a type analysis when the code is received (see FIG. 3, step E12), with the aim of determining the types of modules contained in the program.
  • the type of the module specifies its ascending hierarchical links. We can thus determine by the type of a module if this the latter inherits, at any hierarchical level, from the "personal" module. If this is the case, it is considered that the module in question includes personalization code, to be managed as such in step E14.
  • labeling where a file containing all of the application code (administrative code and other codes) is sent. This file is in the form of a series of instructions (for example from 0 to n). The instructions in this suite relating to personalization are then indicated by labeling (also known by the Anglo-Saxon expression "tag") according to a convention established during the abovementioned step E2.
  • labeling also known by the Anglo-Saxon expression "tag”
  • a series of personalization instructions will start with a “start of personalization code” label and will end with a “end of personalization code” label.
  • FIG. 4 differs from this essentially in that it includes a verification step aimed at determining whether there is no error in identification.
  • the steps E10-E24 of Figure 4 are identical to those corresponding to Figure 3 and will not be described again for the sake of brevity.
  • the variant also provides a verification step prior to the erasure authorization step at the personalization code addresses.
  • This verification may take place at different times during the aforementioned PI procedure, or even at a stage prior to its execution, depending on the technique used.
  • the result of the verification is saved in an accessible way during the loading of the program that has been verified. In the example, this result is used just after the end of personalization (step E22) in a step - of conditional referral E26 to determine whether or not to go to step E24 of authorization to reuse the addresses of the personalization code. If there is no identification error detected, the procedure goes through authorization step E24 (branch b1), as in the case of FIG. 3. If there is at least one identification error detected, the procedure bypasses the authorization step E24. In this case, the data relating to the administrative code are kept in the memory 6 in the same way as the other data of the application.
  • verification consists in ensuring that the functional code does not use administrative code, for example by means of the "go to" instruction.
  • the verification can be done at the level of card 1, after loading the application.
  • the card is managed in step E14 to store the personalization code between two bounded addresses (API - APn), and we check during the execution of the functional code that there is no jump to addresses between API and APn.
  • Verification can also be done outside of the card, by performing a code analysis to determine if the functional code uses administrative code, which would indicate an error in administrative code designation.
  • the teachings of the invention can take many equivalent forms and apply to other fields.
  • the identification is attached to the administrative code; however, an equivalent technical effect can be obtained by attaching, conversely, an identification to the application code. In this case, the procedure will be adapted to recognize the administrative code by the absence of attached identification.
  • the invention it is possible to manage the data stored in the memory 6 intelligently, by allowing the elimination of the memory of the data relating to the administrative code when these are no longer useful, after the personalization.
  • the memory space thus freed can then be used for the storage of other data, corresponding for example to an additional application on the card.
  • the invention is in no way limited to the embodiments which have just been described.
  • the invention allows management of many different parameters related to data, as mentioned in the introductory part, where the identification of the data can be used inter alia to: establish a storage location in memory, establish a routing of the data corresponding, for example to a specific processor among several processors associated with the memory, to determine whether the data should be encrypted or not, to - determine if the data should undergo an integrity check and / or the conditions of this check, etc. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention prévoit la gestion de données destinées à être stockées dans une mémoire (6), celle-ci étant destinées à différentes gestions dont au moins un premier et un second mode de gestion. Dans ce cadre l'invention prévoit de: fournir une identification, lors d'une phase d'élaboration des données, permettant d'identifier respectivement les données destinées à être gérées suivant les différents modes; et gérer le stockage et /ou l'exploitation des données sur la base de ladite identification fournie (E6, P1). La mémoire peut être située dans une carte à puce programmable. Les données peuvent alors comprendre du code relatif à une application dont une partie (code administratif) est destinée à personnaliser l'application lors d'une phase initiale, l'identification se rapportant aux données relatives à cette partie de code.

Description

PROCEDE ET SYSTEME DE GESTION DE DONNEES DESTINEES A ETRE STOCKEES DANS UNE CAR TE A PUCE PROGRAMMABLE
L'invention concerne la gestion de données à charger en mémoire pour une optimisation des possibilités de stockage. Les données en question peuvent être notamment du code constitutif d'un 5 programme du type "application", destiné à être chargé dans une mémoire d'un dispositif communicant, tel qu'une carte à puce programmable ou analogue.
Avec l'avènement des cartes à puce- programmables , il est possible d'y charger des
10 applications de services, c'est-à-dire des programmes logiciels exécutables, provenant de sources diverses. A cette fin, une carte ouverte comporte des espaces mémoire ré-inscriptibles pour emmagasiner de manière évolutive une ou plusieurs applications de services-
15 selon son utilisation, à l'instar d'un disque dur d'un ordinateur personnel, ainsi qu'un processeur apte à exécuter de telles applications.
Ces applications de services, aussi' connues par le terme anglo-saxon de "card applets", sont
20 généralement conçues par les fournisseurs de services autorisés par l'émetteur de cartes à puce, par exemple des organismes bancaires, de santé, des distributeurs et autres prestataires de services. Elles se présentent sous forme de programmes
25 complexes, généralement conçus au moyen de langages évolués tels que Java, C++, Microsoft Windows Basic, de façon à être transférés en bloc dans la mémoire de la carte, soit lors de sa fabrication (chargement en pré-émission) , soit ultérieurement au cours de son
30 utilisation (chargement en post-émission) . Du fait que les applications de services proviennent d'une source extérieure au fabricant de la carte qui doit l'intégrer, ce dernier n'a pas une connaissance détaillée de leur code et ne peut donc établir une gestion adaptée pour son stockage.
En particulier, le fabricant ne peut pas prévoir une gestion différente des parties du code d'une application selon qu'elles relèvent de la personnalisation, dont l'utilité n'est que provisoire, ou des autres parties qui peuvent servir ' à tout moment .
On rappelle que la personnalisation d'une application est une suite d'opérations effectuées à un stade initial qui permet de l'individualiser par rapport au titulaire de la carte. Le code de personnalisation contient différentes commandes, dites "administratives", par exemple pour charger des registres avec des codes d'identification, d'autorisation, et autres données personnelles, et pour configurer l'application en fonction de choix ou de limites établies selon le titulaire, etc.
Lors de la ' phase de personnalisation, l'application est activée, éventuellement en coopération avec un programme interne de gestion de la carte, pour exécuter l'ensemble des commandes administratives nécessaires à la personnalisation. Une fois cette personnalisation correctement réalisée, les commandes administratives n'ont plus aucune utilité, mais demeurent en mémoire avec le reste de l'application, faute de pouvoir les gérer à part. Or, ces commandes administratives peuvent représenter quelques dizaines de pour cent de la place totale occupée en mémoire par l'application concernée, ce qui limite d'autant la capacité de la carte à puce à accepter de nouvelles applications. Au vu de ce qui précède, l'invention a pour objet de prévoir une identification des parties d'un ensemble de données à stocker en mémoire qui peuvent donc être gérées séparément afin de pouvoir optimiser la capacité de stockage. Ainsi, dans le cas de l'exemple précité, où les données concernent l'ensemble du code formant une application à personnaliser, les parties correspondantes aux commandes administratives de personnalisation seront identifiées (i.e. indiquées) comme telles dans, le code, selon une .convention établie, de manière qu'elles puissent être reconnues et gérées séparément au sein de la carte, notamment pour libérer l'espace qu'elles occupent en mémoire une fois la personnalisation réalisée.
Selon un premier aspect, l'invention concerne un procédé de gestion de données destinées à être stockées dans une mémoire,' les données étant destinées à être gérées suivant au moins deux modes, caractérisé en ce qu'il comprend les étapes de :
- fournir une identification, lors d'une phase d'élaboration des données, permettant d'identifier respectivement les données destinées à être gérées suivant les différents modes, et - gérer le stockage et /ou l'exploitation des données sur la base de l'identification fournie.
Dans le cadre de ce procédé, les données destinées à un premier mode de gestion peuvent être des données dont l'utilité n'est que provisoire relativement aux données destinées aux autres modes de gestion.
Dans ce cas, l'invention aura plus particulièrement pour objet un procédé de gestion de données destinées à être stockées dans une mémoire, caractérisé en ce qu'il comprend les étapes de : - fournir une identification, lors d'une phase d'élaboration des données, de celles des données dont l'utilité n'est que provisoire relativement aux autres données, et - gérer le stockage des données sur la base de l'identification fournie.
- Avantageusement, l'identification est intégrée aux données.
Dans une application envisagée, les données comprennent du code relatif à un programme exécutable dont une partie, identifiée comme étant destinée à un premier mode de gestion, se rapporte au code destiné à n'être utilisé que lors d'une phase initiale du programme . La mémoire peut être située dans un dispositif communicant, tel qu'une carte à puce , les données comprenant du code relatif à une application dont une partie, identifiée comme destinée à un premier mode de gestion, se rapporte au code de personnalisation de l'application lors d'une phase initiale.
Avantageusement, l'étape de gérer le stockage de données comprend les sous-étapes de :
- établir les adresses en mémoire des données identifiées, - détecter la fin de l'utilité des données identifiées, et
- autoriser ensuite la réutilisation d'une partie au moins desdites adresses pour le. stockage ultérieur d'autres données à ces adresses. Cette étape peut comprendre en outre une étape d'effacement des données identifiées après l'étape de détection de fin d'utilité.
Dans ce cas, on peut prévoir l'aiguillage des données identifiées vers une zone de la mémoire spécifique destinée à une opération d'effacement ou de réécriture après leur période d'utilité.
On peut envisager, lorsque les données sont relatives à un programme écrit en langage de haut niveau, de fournir 1-' identification au niveau de ce langage.
A titre d'exemple, lorsque le langage comporte des modules, l'identification peut être fournie par une technique de nommage, où l'on attribue au ou à chaque module du programme associé aux données à identifier, un nom identifiable selon une convention établie .
Lorsque le langage est typé, l'identification peut être fournie par une technique de typage, où l'on confère, à un ou chaque type dudit programme associé aux données à identifier, un lien de sous typage à un type spécifié identifiable selon une convention établie.
Dans le cas d'un langage typé du genre orienté objet, le typage s'opère en conférant à l'une ou chaque classe du programme associée aux données à identifier, un lien d'héritage à une classe spécifiée, identifiable selon la convention établie.
On peut aussi envisager de prévoir l'identification au niveau de la présentation des données lors du stockage.
Par exemple, si les données sont élaborées sous forme de fichiers ou analogue, l'identification peut être fournie en désignant le ou les fichier (s) associé (s) aux données à identifier, selon une convention établie.
Si les données sont élaborées sous forme de code d'instructions, l'identification peut être fournie par étiquetage des instructions relatives aux données à identifier, selon une convention établie, l'étiquetage étant apposé à chaque instruction concernée ou bornant des groupes d'instructions concernées.
Avantageusement, le procédé peut prévoir en outre une étape de contrôle de la bonne identification des données d'utilité provisoire relativement aux autres données qui elles sont appelées à persister en mémoire, la vérification consistant à s'assurer que les données identifiées comme n'étant que d'utilité provisoire ne sont pas appelées par lesdites autres données.
Dans le cas où les données identifiées correspondent à du code d'une partie d'un programme destinée à n'être utilisée que lors d'une phase initiale du programme, et les autres données correspondent à- du code du reste dudit. programme, l'analyse peut consister à vérifier qu'aucune instruction du code du reste du programme ne fait appel à des instructions du code utilisées que lors d'une phase initiale du programme.
Avec la vérification, on peut prévoir aussi une étape de maintien en mémoire des données identifiées comme n'étant d'utilité qu'à titre provisoire, au même titre que les autres données stockées, si l'étape de vérification fait apparaître une erreur d' identification.
L'invention peut s'appliquer à d'autres types de gestion que celles relatives à des données d'utilité provisoire par rapport à d'autres. En effet, la gestion permise par l'identification peut servir aussi notamment pour :
- déterminer l'emplacement des données dans la mémoire, cet emplacement étant fonction de l'identification ; - la gestion concernant l'acheminement desdites données au sein du dispositif, cet acheminement étant fonction de ladite identification. A titre d'exemple pris dans le cadre d'un dispositif multiprocesseur tel qu'une carte à puce disposant de tels moyens, l'acheminement peut. s'effectuer vers l'un parmi plusieurs processeurs, sélectionné en fonction de ladite identification ;
- la gestion concernant le cryptage de données, le cryptage ou non cryptage desdites données étant fonction de ladite identification ;
- la gestion concernant le contrôle d'intégrité des données, lesdites données étant soumises à contrôle d'intégrité en fonction de ladite identifi ation ;
- etc.
Selon un deuxième aspect, l'invention concerne un système de gestion de données destinées à être stockées dans une mémoire, les données étant destinées à être gérées suivant au moins deux modes, caractérisé en ce qu'il comprend:
- des moyens d'identification pour fournir une identification, lors d'une phase d'élaboration des données, permettant d'identifier respectivement les données destinées à être gérées suivant les différents modes, et des moyens de gestion de stockage et/ou d'exploitation des données fonctionnant sur la base de ladite identification fournie.
Les aspects optionnels de l'invention présentés plus haut dans le cadre du procédé peuvent s'appliquer utatis mutandis à ce système.
Selon un troisième aspect, l'invention concerne une carte à puce programmable, comprenant une première- mémoire programmable destinée au stockage de code constitutif d'une application, et une deuxième mémoire contenant des instructions permettant de reconnaître une identification, selon une convention établie, du code administratif d'une application chargée, ce code étant destiné à personnaliser l'application lors d'une phase initiale.
Dans un mode de réalisation envisagé, la deuxième mémoire comporte en outre . des instructions d'autorisation d'effacement du code administratif de la première mémoire actifs après la fin de la' personnalisation de l'application.
L'invention et les avantages qui en découlent apparaîtront plus clairement à la lecture de la description suivante des modes de réalisation préférés, donnés purement à titre d'exemple non- limitatif, avec référence aux dessins en annexe dont
la figure 1 est un schéma synoptique simplifié des principaux éléments d'une carte à puce r la figure 2 est un organigramme d'un protocole d'identification des parties du code administratif d'une application destinée à la carte à puce de la figure 1, conformément à l'invention, la figure 3 est un organigramme d'une procédure de chargement d'application en carte et de gestion de mémoire programmable utilisée dans le protocole de la figure 2, et - la figure 4 est un organigramme d'une variante de celui de la figure 3, qui incorpore des mesures de vérification de l'identification des données.
Les éléments fonctionnels de base d'une carte à puce programmable 1 sont représentés de manière synoptique dans le schéma bloc de la figure 1. Au coeur se situe un microprocesseur (CPU) 2 qui assure toutes les fonctions de gestion interne de la carte, ainsi que l'exécution des applications qui y sont programmées. Le microprocesseur est relié, par un système de bus internes 4, à trois types de mémoire :
- une mémoire programmable du type à lecture uniquement (ROM) mais effaçable et programmable électriquement (EEPROM) 6. Cette mémoire est destinée à être chargée avec, une ou plusieurs applications de service (s) pouvant être exécutée (s) par le microprocesseur 2;
- une mémoire du type ROM masque 8, contenant l'ensemble du code et des valeurs d'un logiciel de gestion interne de la carte. Ces données sont inscrites lors de la fabrication de la puce, au niveau des masques de dépôt des couches. Le contenu de la mémoire ROM masque 8 étant très fortement lié aux moyens matériels de la carte à puce, le code est normalement établi par le fabricant de la carte ; et
- une mémoire du type à accès aléatoire (RAM) 10 destinée au stockage de données provisoires, telles que des contenus de registres, blocs de code à charger dans le microprocesseur, etc. Le bus interne 4 est par ailleurs relié à une interface de communication 12 qui constitue un port d'entrée et de sortie de données vis-à-vis du monde extérieur, et qui assure l'alimentation électrique de la carte 1. Cette interface peut être sous forme de plots de connexion destinés à s'engager avec des contacts respectifs d'un lecteur, et/ou d'une antenne dans le cas d'une carte dite sans contact. L'interface de communication 12 sert entre autres pour l'échange bidirectionnel de données avec une borne prévue pour le chargement d'une application ' dans le mémoire EEPROM 6.
Appliquée à ce contexte de cartes à puce programmables ouvertes, l'invention prévoit une convention entre d'une part le concepteur de l'application de service et d'autre part le fabricant de cartes, visant à identifier de manière stricte le code de personnalisation i.e. ."administratif" (celui utilisé uniquement pour la personnalisation) par rapport au reste du code, i.e. le code "fonctionnel" utilisé par l'application cliente. Cette identification est inscrite dans l'application de service par le concepteur et est reconnue au niveau du logiciel de gestion stocké dans la mémoire masque 8.
La gestion de la mémoire EEPROM 6 pourra alors être établie en fonction de cette reconnaissance, notamment en prévoyant un effacement, ou un compactage des données se trouvant aux adresses affectées au stockage du code administratif une fois la personnalisation. achevée.
Le concept général d'une telle exploitation de l'identification du code administratif est illustré par les organigrammes des figures 2 et 3. A un stade initial, le concepteur C de l'application de service et le fabricant F de cartes à puce programmables s'entendent sur une convention d'identification du code administratif (étape E2). Cette convention assure l'interopérabilité entre la carte et l'application de service.
Sur la base de cette convention, le concepteur fournit une identification du code administratif dans son application (par marquage, nommage, étiquetage, etc.) (étape E4). Les informations constitutives de cette identification sont intégrées avec l'ensemble des données qui constituent le code de l'application.
De son . côté, le fabricant inscrit dans la mémoire ROM masque 8 les commandes nécessaires à la reconnaissance du code ainsi identifié et à la gestion en mémoire EEPROM 6 de ce code, conformément à une procédure Pi de chargement en carte et de gestion mémoire décrite plus bas ci-après (étape E6) .
Le concepteur, ici assimilé au propriétaire exploitant de l'application, diffuse l'application en vue de son intégration dans la carte à puce (étape E8) . A cette fin, il la transmet au fabricant pour chargement sur des cartes vierges depuis une borne en usine (chargement en pré-émission) et, le cas échéant, sur des bornes "usager" B2 pour chargement par les détenteurs des cartes à puce (chargement en post-émission). A titre d'exemple, un détenteur peut charger, par le biais d'une borne B2, une application pour un nouveau service commercial qu'il souhaite utiliser.
Le chargement de l'application, que ce soit par une borne Bl en usine ou par une borne "usager" B2, se réalise avec 'l'exécution en tâche de fond de la procédure Pi, qui sera décrite plus particulièrement par référence à la figure 3. De manière générale, la borne Bl ou B2 comporte un programme qui gère le chargement d'une application en ayant identifié d'un côté le code de personnalisation' et de .l'autre le code applicatif (fonctionnel) . Ce programme va charger depuis la borne Bl ou B2 tout le code de
- l'application et, en cas de demande de personnalisation immédiate, engager la phase de personnalisation avec transmission des ordres nécessaires . La procédure débute par la détection d'un chargement dans la mémoire EEPROM 6 d'une application dans la carte à puce 1 (étape E10) . Lorsqu'un chargement d'application est détecté, on analyse le flux de données qui constituent le code pour y identifier les données relatives au code administratif (étape E12) . Cette identification est réalisée au moyen des commandes de reconnaissance établies lors de l'étape E6, sur la base de la convention d'identification.
On établit alors les adresses en EEPROM 6 auxquelles sont affectées les données du code administratif (étape -E14). Cette étape peut être réalisée de deux manières : - passive, c'est-à-dire en répertoriant dans un registre (en EEPROM 6 ou RAM 10) les séries d'adresses occupées par les données du code administratif, sans intervenir sur le choix de ces adresses, ou - dynamique, en dirigeant les données du code administratif sur des zones d'adresses en EEPROM 6 déterminées, à l'écart des autres données formant le reste du code.
Ce processus d'établissement continue jusqu'à la détection de la fin du chargement de l'application (étape E16) .
On obtient ainsi une carte chargée de son application, avec identification en interne des adresses en EEPROM 6 occupées par le code administratif. La procédure passe alors en phase d'attente d'une demande de personnalisation, c'est-à- dire de l'exécution du code administratif, vis-à-vis de l'application chargée. La personnalisation peut intervenir à tout moment après le chargement de l'application. Typiquement, elle s'opère par insertion de la carte dans une borne prévue à cet effet (par exemple un terminal bancaire) à une occasion choisie arbitrairement par le détenteur de la carte. A chaque fois que la carte 1 est mise en communication avec une borne, la procédure PI intervient de nouveau pour déterminer si une demande de personnalisation a été formulée (étape E18) . Si tel est le cas, le programme de personnalisation chargé en mémoire EEPROM 6 est exécuté de manière classique (étape E20) . La personnalisation implique typiquement un dialogue entre la carte et la borne, cette dernière permettant au prestataire de services d'inscrire des données personnelles (codes d'identification, -mot de passe, options choisies, etc.) via des commandes administratives. La personnalisation va alors configurer l'application au sein de la carte en tenant compte de ces données personnelles (par exemple pour vérifier le code personnel à chaque utilisation, gérer des échanges selon des options choisies, etc.). On note que la personnalisation s'opère au stade initial de l'application, une fois pour toute ; la configuration de l'application sur la base des données personnelles est ensuite gelée. Ainsi, le code administratif n'a plus d'utilité une fois que la personnalisation est terminée .
A la fin de la personnalisation (étape E12) , détectée par exemple en restant en attente d'une commande ou d'un code spécifique à la terminaison, la procédure autorise la réutilisation des adresses du code administratif localisées à l'étape E14 (étape E24). Cette autorisation permet plusieurs possibilités de gestion de l'espace mémoire EEPROM 6 : l'inscription de nouvelles données aux adresses précédemment occupées par le . code administratif; par exemple lors d'un chargement d'une autre application. Dans ce cas, le code administratif pourra rester présent jusqu'à ce que ces adresses en mémoire EEPROM 6 soient réquisitionnées pour d'autres données,
- l'effacement physique des données du code administratif, immédiatement après l'autorisation, par une routine exécutée par le programme ' de chargement de la borne ou par le programme de gestion interne, ou encore le compactage des données du code administratif, rendant disponible une partie des adresses précédemment occupées.
Cette étape E24 peut être mise en oeuvre par le programme de gestion interne de la carte 1 selon des techniques classiques d'identification des adresses libres en mémoire EEPROM 6. Quelle que soit la possibilité choisie, la gestion permet de récupérer la place en mémoire EEPROM 6 occupée inutilement par le code de personnalisation après son exécution.
L'identification du code de personnalisation peut se réaliser de très nombreuses façons différentes, dont quelques exemples seront donnés ci- après.
Les exemples sont décomposés en deux familles : une qui dépend du langage de programmation utilisé pour développer l'application, et une qui dépend de la façon dont est stocké le code de l'application
(dans des fichiers) . 1. Identification du code de personnalisation par le langage de programmation.
De nos jours, la programmation des cartes à puce se fait par des langages relativement évolués. II ne s'agit plus de manipuler des grandes suites d'instructions avec découpage de très bas niveau (proche de la machine), mais d'utiliser une plus grande abstraction dans lequel on regroupe des instructions en procédures écrites en Pascal, Ada, C, etc. Dans des langages plus évolués encore, on passe à des niveaux où on regroupe des ensembles de fonctions que l'on dénomme des modules: Avec des langages de niveau encore plus haut (Java, C++, etc.), on regroupe à la fois les procédures et les données qui concernent un même élément dans ce que l'on désigne un module ou une classe.
Ces langages évolués fournissent des abstractions de haut niveau qui peuvent être exploitées pour identifier le code administratif de manière appropriée, conformément à l'invention.
Une première approche consiste à déclarer que tout ce qui relève du code administratif est mis dans un module déterminé. A cette fin, o peut procéder selon deux façons : par "nommage" ou par "typage". Le nommage consiste à nommer ce (s) module (s) par une expression permettant à un tiers de le (s) reconnaître comme contenant le code de personnalisation, par exemple en attribuant au module le préfixe "perso", ou tout autre préfixe établi selon une convention de nommage entre le fabricant de cartes et le concepteur d'applications clientes à l'étape E2 précitée. Bien entendu, les autres modules contenant le reste du code ne doivent pas . utiliser ce préfixe. De la sorte, le logiciel de gestion stocké dans la mémoire ROM masque 8 de la carte peut, en lisant les noms de modules, savoir où se trouvent les parties de code destinées à la personnalisation et agir en conséquence, par exemple en les mettant à des adresses de cellules qui seront soumises à une phase d'effacement après la personnalisation (cf. figure 3, étapes E12, E14) .
L'approche basée sur le typage s'adresse aux- langages orientés objet. Ces langages font appel à des "classes", assimilables à des modules, chacune définissant un "type" de données et de traitements associés. Ces types sont organisés selon une hiérarchie de types, allant du plus général au plus spécifique, i.e. on trouve généralement un type de base à partir duquel sont rattachés les classes et leurs instances selon des liens de dépendance établis, dits "d'héritage", une classe "héritant" de toutes les classes desquels elle dépend dans la hiérarchie. On peut ainsi spécifier que les classes de personnalisation "héritent" d'une classe spécifique dédiée à la personnalisation, désigné selon la convention fixée à l'étape E2, par exemple "perso". Le code des autres classes n'hérite pas de cette classe "perso". La classe "perso" peut être vide, s 'agissant alors d'une coquille servant uniquement à créer les liens d'héritage. Lors de la programmation, on s'assure que les codes liés à la personnalisation sont regroupés dans des classes qui héritent de cette classe "perso".
Au niveau de la carte à puce, le logiciel de gestion en ROM masque 8 réalise une analyse de types lors de la réception du code (cf figure 3, étape E12), dans le but de déterminer les types des modules contenus dans le programme. Le type du module spécifie ses liens hiérarchiques ascendants. On peut ainsi déterminer par le type d'un module si ce dernier hérite, à un niveau hiérarchique quelconque, du module "perso". Si tel est le cas, on considère que le module en question comporte du code de personnalisation, à gérer en tant que tel à l'étape E14.
2. Identification du code de personnalisation par le stockage du code de 1 ' applicatio .
Les deux approches venant d'être décrites interviennent au moment où le concepteur développeur crée son application.
Deux autres techniques peuvent être envisagées, qui interviennent non pas lors de la conception de l'application, mais au moment de la transmission de l'application au fabricant: 1. le concepteur transmet les codes liés à la personnalisation dans un fichier séparé du ou des fichiers contenant le reste du code. Le fichier séparé, identifiable comme tel lors du chargement de l'application (figure 3, étape E12), peut alors être localisé en mémoire (étape E14) .
2. l'étiquetage, où l'on transmet un fichier contenant l'ensemble du code de l'application (code administratif et autres codes) . Ce fichier se présente sous la forme d'une suite d'instructions (par exemple de 0 à n) . Les instructions dans cette suite relatives à la personnalisation sont alors signalées par un étiquetage (connu également par l'expression anglo-saxonne "tag") selon une convention établie lors de l'étape E2 précitée. A titre d'exemple, une suite d'instructions de personnalisation débutera par une étiquette "début de code personnalisation" et terminera par une étiquette "fin de code de personnalisation".
On peut associer une étiquette devant chaque code de personnalisation. Dans ce cas, il convient de tenir compte des liens entre' les codes lorsque l'on dissocie les instructions.
Il sera maintenant décrit par référence à la figure 4 une variante de la procédure Pi de la figure 3, qui diffère de celle-ci essentiellement par le fait qu'elle intègre une étape de vérification visant à déterminer s'il n'y a pas d'erreur dans l'identification. Les étapes E10-E24 de la figure 4 sont identiques à celles correspondantes de la figure 3 et ne seront pas décrites à nouveau par souci de concision.
Quel que soit le moyen utilisé pour identifier les codes de personnalisation parmi les codes de l'application, il peut se produire que du code fonctionnel soit identifié par erreur comme du code de personnalisation. Ce code serait alors susceptible d'être effacé (étape E24) avec pour conséquence un dysfonctionnement de l'application.
Pour prévenir cette source d'erreur, la variante prévoit en outre une étape de vérification préalable à l'étape d'autorisation d'effacement aux adresses de code de personnalisation. Cette vérification peut intervenir à différents moments de la procédure PI précitée, ou même à un stade antérieur à son exécution, selon la technique utilisée. Le résultat de la vérification est enregistré de manière accessible durant le chargement du programme ayant fait l'objet de cette vérification. Dans l'exemple, ce résultat est utilisé juste après la fin de personnalisation (étape E22) dans une étape - d'aiguillage conditionnel E26 pour déterminer si l'on passe ou pas à l'étape E24 d'autorisation de réutiliser les adresses du code de personnalisation. S'il n'y a pas d'erreur d'identification détectée, la procédure passe par étape d'autorisation E24 (branche bl), comme dans le cas de la figure 3. S ' il y a au moins une erreur d'identification détectée, la procédure contourne l'étape d'autorisation E24. Dans ce cas, les données relatives au code administratif sont maintenues dans la mémoire 6 au même titre que les autres données de 1 ' application.
De manière générale, la vérification consiste à s'assurer que le code fonctionnel ne fait pas appel à du code administratif, par exemple au moyen de l'instruction "go to".
Plusieurs techniques peuvent être envisagées à cet effet. Par exemple, la vérification peut être faite au niveau de la carte 1, après le chargement de l'application. - Dans ce cas, la carte est gérée à l'étape E14 pour stocker le code de personnalisation entre deux adresses bornées (API - APn) , et on vérifie lors de l'exécution du code fonctionnel qu'il n'y a pas de saut à des adresses situées entre API et APn. -
La vérification peut aussi s'effectuer à l'extérieur de la carte, en réalisant une analyse de code visant à déterminer si le code fonctionnel fait appel à du code administratif, ce qui indiquerait une erreur de désignation de code administratif.
Par exemple, dans une approche par "typage", on peut vérifier que le code fonctionnel ne fait jamais accès à des objets du type "perso".
Si une telle erreur est détectée suite à la vérification, il sera possible de réagir de manière appropriée, notamment en inhibant l'effacement.
Il est clair que les enseignements de l'invention peuvent revêtir de nombreuses formes équivalentes et s'appliquer à d'autres domaines. Dans les exemples décrits, l'identification est attachée au code administratif; toutefois, un effet technique équivalent peut être obtenu en attachant, à l'inverse, une identification au code applicatif. Dans ce cas, la procédure sera adaptée pour reconnaître le code administratif par l'absence d'identification attachée.
Grâce à l'invention, il est possible de gérer les données stockées dans la mémoire 6 de manière intelligente, ' en permettant l'élimination de la mémoire des données relatives au code administratif lorsque celles-ci ne sont plus utiles, après la personnalisation. L'espace mémoire ainsi libéré peut donc être ensuite exploité pour le stockage d'autres données, correspondant par exemple à une application additionnelle sur la carte. On obtient donc une optimisation de l'utilisation de l'espace mémoire 6, et un accroissement des possibilités de stockage d'applications ou autres données. On notera que l'invention n'est nullement limitée aux modes de réalisation venant d'être décrits. En effet, l'invention permet une gestion de nombreux différents paramètres liés à des données, ainsi que mentionné en partie introductive, où l'identification des données peut servir entre autres à : établir un emplacement de stockage en mémoire, établir un acheminement des données correspondantes, par exemple vers un processeur spécifique parmi plusieurs processeurs associés à la mémoire, à déterminer si les données doivent être cryptées ou pas, à - déterminer si les données doivent subir un contrôle d'intégrité et/ou les conditions de ce contrôle, etc.

Claims

R E V E ND I C A T I O N S
1. Procédé de gestion de données destinées à être stockées dans une mémoire (6), lesdites données étant destinées à être gérées suivant deux modes, caractérisé en ce qu'il comprend les étapes de :
- fournir une identification, lors d'une phase d'élaboration des données, permettant d'identifier respectivement les données destinées à être gérées suivant les différents modes, et - gérer le stockage et / ou l'exploitation des données sur la base de ladite identification fournie (Eβ, PI) .
2. Procédé selon la revendication 1, caractérisé en ce que les données destinées au premier mode de gestion sont des données dont l'utilité n'est que provisoire relativement aux données destinées à un second mode de gestion.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que ladite identification est intégrée aux données.
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les données comprennent du code relatif à un programme exécutable dont une partie, identifiée comme étant destinée à un premier mode de gestion, se rapporte au code destiné à n'être utilisé que lors d'une phase initiale du programme.
5. Procédé selon l'une quelconque . des revendications 1 à 4, caractérisé en ce que la mémoire (6) est située dans un dispositif communicant (1) , et en ce que les données comprennent du code relatif à une application dont une partie, identifiée comme destinée à un premier mode de gestion, se rapporte au code de personnalisation de l'application lors d'une phase initiale.
6. Procédé selon l'une quelconque des revendications 2 à 5, caractérisé en ce que l'étape de gérer le stockage de données comprend les sous- étapes de :
- établir les adresses en mémoire des données identifiées (E14), détecter la fin de l'utilité' des données identifiées (E22) , et
- autoriser ensuite la réutilisation' d'une partie au moins desdites adresses pour le stockage ultérieur d'autres données à ces adresses (E24).
7. Procédé selon la revendication 6, caractérisé en ce que l'étape de gérer le stockage de données comprend en outre une étape d'effacement des données identifiées après l'étape' de détection de fin d'utilité.
8. Procédé selon l'une quelconque des revendications 2 à 7, caractérisé en ce que l'étape de gérer le stockage de données comprend l'aiguillage des données identifiées vers une zone de la mémoire spécifique destinée à une opération d'effacement ou de réécriture après leur période d'utilité.
9. Procédé selon l'une quelconque des revendications 2 à 8, caractérisé en ce qu'il comprend en outre une étape de contrôle de la bonne identification des données d'utilité provisoire relativement aux autres données, ladite vérification consistant à s'assurer que les données identifiées comme n'étant que d'utilité provisoire ne sont appelées par lesdites autres données.
10. Procédé selon la revendication 9, caractérisé en ce qu'il comprend en outre une étape de maintien en mémoire (6) des données identifiées comme n'étant que d'utilité provisoire, au même titre que les autres dites données stockées, .si l'étape de vérification fait apparaître une erreur d'identification.
11. Procédé selon la revendication 1, caractérisé en ce que la gestion concerne la détermination de l'emplacement desdites données dans la mémoire (6), cet emplacement étant fonction de ladite identification.
12. Procédé selon la revendication 1, caractérisé en ce que la gestion concerne l'acheminement desdites données au sein du dispositif, cet acheminement étant fonction de ladite identification.
13. Procédé selon la revendication 12, caractérisé en ce que l'acheminement est vers l'un parmi plusieurs processeurs, sélectionné en fonction de ladite identification.
14. Procédé selon la revendication 1, caractérisé en ce que la gestion concerne le cryptage de données, le cryptage ou l'absence de cryptage desdites • données étant fonction de ladite identification.
15. Procédé, selon la revendication 1, caractérisé en ce que la gestion concerne le contrôle d'intégrité des données, lesdites données étant soumises à contrôle d'intégrité en fonction de ladite identification.
16. Procédé selon l'une quelconque des revendications 1 à 15, caractérisé en ce que les données sont relatives à un programme écrit en langage de haut niveau, et ce que ladite identification est fournie au niveau de ce langage.
17. Procédé selon la revendication 16, caractérisé en ce que ledit langage comporte des modules, et en ce que ladite identification est fournie par une technique de nommage, où l'on attribue, à un ou à chaque module dudit programme associé auxdites données à identifier, un nom identifiable selon une convention établie.
18. Procédé selon la revendication 16, caractérisé en ce que ledit langage est un langage typé, et en ce que ladite identification est fournie par une technique de typage, où l'on confère, à un ou à chaque type dudit programme associé auxdites données à identifier, un lien de sous typage à un type spécifié identifiable selon une convention établie.
19. Procédé selon l'une quelconque des revendications 1 à 18, caractérisé en ce que les données sont élaborées sous forme de fichiers ou analogue, et en ce que ladite identification est fournie en désignant le ou les fichier (s) associé (s) auxdites données à identifier, selon une convention établie.
20. Procédé selon l'une quelconque des revendications 1 à 18, caractérisé en ce que les données sont élaborées sous forme de code d'instructions, et en ce que ladite identification est fournie par étiquetage des instructions relatives auxdites données à identifier, selon une convention établie, l'étiquetage étant apposé à chaque instruction concernée ou bornant des groupes d'instructions concernées.
21. Procédé selon l'une quelconque des revendications 1 à 20, caractérisé en ce que ladite mémoire (6) est située dans une carte à puce programmable (1) .
22. Système de gestion de données destinées à être stockées dans une mémoire (6)-, lesdites données étant destinées à être gérées suivant au moins deux modes, caractérisé en ce qu'il comprend :
- des moyens d'identification pour fournir une identification, lors d'une phase d'élaboration des données, permettant d'identifier respectivement les données destinées à être gérées suivant différents modes, et des moyens de gestion de stockage et/ou d' exploitation des données fonctionnant sur la base de ladite identification fournie (E6, PI) .
23. Système selon la revendication- 22, caractérisé en ce que les données destinées à un premier mode de gestion sont des données dont l'utilité n'est que provisoire relativement aux données destinées à un second mode de gestion.
24. Système selon la revendication 22 ou 23, caractérisé en ce que lesdits moyens d'identification sont prévus pour intégrer ladite identification aux données.
25. .Système selon l'une quelconque des revendications 22 à 24, caractérisé en ce que les données comprennent du code relatif à un programme exécutable dont une partie, identifiée comme étant destinée à un premier mode de gestion, se rapporte au code destiné à n'être utilisé que lors d'une phase initiale du programme.
26. Système selon l'une quelconque des revendications 22 à 25, caractérisé en ce que la mémoire (6) est située dans un dispositif communicant
(1) , et en ce que les données comprennent du code relatif à une application dont une partie, identifiée comme destinée à un premier mode de gestion, se rapporte au code de personnalisation de l'application lors d'une phase initiale.
27. Système selon l'une quelconque des revendications 23 à 26, caractérisé en ce que les moyens de gestion comprennent :
- des moyens pour établir les adresses en mémoire des données identifiées (E14), - des moyens pour détecter la fin de l'utilité des données identifiées (E22), et des moyens pour autoriser ensuite la réutilisation d'une partie au moins desdites adresses pour le stockage ultérieur d'autres données à ces adresses (E24) .
28. Système selon la revendication 27, caractérisé en ce que les moyens de gestion comprennent en outre des moyens, actifs après la détection de ladite fin, pour effacer des données identifiées.
29. Système selon l'une quelconque des revendications 22 à 28, caractérisé en ce que les moyens de gestion comprennent des moyens pour aiguiller des données identifiées vers une zone de la mémoire spécifique destinée à une opération d'effacement ou de réécriture après leur période d'utilité.
30.. Système selon l'une quelconque des revendications 23 à 29, caractérisé en ce qu'il comprend en outre des moyens de contrôle de la bonne identification des données d'utilité provisoire relativement aux autres données, lesdits moyens de vérification permettant d'établir si les données identifiées comme n'étant que d'utilité provisoire ne sont appelées par lesdites autres données.
31. Système selon la revendication 30, caractérisé en ce qu'il comprend en outre des moyens de maintien en mémoire (6) des données identifiées comme n'étant que d'utilité provisoire, au même titre que les autres dites données stockées, si les moyens de vérification font apparaître une erreur d' identification.
32. Système selon la revendication 22, caractérisé en ce que les moyens de gestion servent à déterminer l'emplacement desdites données dans la mémoire (6), cet emplacement étant fonction de ladite identification.
33. Système selon la revendication 22 caractérisé en ce que les moyens de gestion servent à établir l'acheminement desdites données au sein du dispositif, cet acheminement étant fonction de ladite identification.
34. Système selon la revendication 32, caractérisé en ce que l'acheminement est vers l'un parmi plusieurs processeurs, sélectionné en fonction de ladite identification.
35. Système selon la revendication 22, caractérisé en ce que les moyens de gestion servent à gérer le cryptage de données, le cryptage ou l'absence de cryptage desdites données étant fonction de ladite identification.
36. Système selon la revendication 22, caractérisé en ce que les moyens de gestion servent à contrôler l'intégrité des données, lesdites données étant soumises à contrôle d'intégrité en fonction de ladite identification.
37. Système selon l'une quelconque des revendications 22 à 36, caractérisé en ce que ladite mémoire (6) est située dans une carte à puce programmable (1) .
38. Carte à puce programmable (1) comprenant une première mémoire programmable (6) destinée au stockage de code constitutif d'une application, et une deuxième mémoire (8) contenant des instructions permettant de reconnaître une identification, selon une convention établie, du code administratif d'une application chargée, ce code étant destiné à personnaliser l'application lors d'une phase initiale.
39. Carte à puce selon la revendication 36, caractérisé en ce que "" la deuxième mémoire (8) comporte en outre des instructions d'autorisation d'effacement du code administratif de la première mémoire (6) qui sont actives après la fin de la personnalisation de l'application.
PCT/FR2002/001235 2001-04-10 2002-04-09 Procede et systeme de gestion de donnes destinees a etre stockees dans une carte a puce programmable WO2002084610A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/474,742 US7025261B2 (en) 2001-04-10 2002-04-09 Method and system for managing data designed to be stored in a programmable smart card
EP02761929A EP1388134A1 (fr) 2001-04-10 2002-04-09 Procede et systeme de gestion de donnes destinees a etre stockees dans une carte a puce programmable

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR01/04889 2001-04-10
FR0104889A FR2823330B1 (fr) 2001-04-10 2001-04-10 Procede et systeme de gestion de donnees destinees a etre stockees dans une memoire, par exemple du code d'une application charge dans une carte a puce programmable

Publications (1)

Publication Number Publication Date
WO2002084610A1 true WO2002084610A1 (fr) 2002-10-24

Family

ID=8862175

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2002/001235 WO2002084610A1 (fr) 2001-04-10 2002-04-09 Procede et systeme de gestion de donnes destinees a etre stockees dans une carte a puce programmable

Country Status (5)

Country Link
US (1) US7025261B2 (fr)
EP (1) EP1388134A1 (fr)
CN (1) CN1273943C (fr)
FR (1) FR2823330B1 (fr)
WO (1) WO2002084610A1 (fr)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007074119A1 (fr) * 2005-12-29 2007-07-05 Gemplus Systeme et procede pour le deploiement d'applications web personnalisees
WO2007105120A1 (fr) * 2006-03-14 2007-09-20 Nxp B.V. Carte à puce configurable automatiquement et procédé de configuration d'une telle carte
US7753281B2 (en) * 2006-06-01 2010-07-13 Hewlett-Packard Development Company, L.P. System and method of updating a first version of a data file in a contactless flash memory device
US7895245B2 (en) * 2006-10-31 2011-02-22 Hewlett Packard Development Company, L.P. Methods and systems for managing data stored on a contactless flash memory device
US20080265020A1 (en) * 2007-02-09 2008-10-30 Business Intelligent Processing Systems Plc System and method for performing payment transactions, verifying age, verifying identity, and managing taxes
US8917165B2 (en) * 2007-03-08 2014-12-23 The Mitre Corporation RFID tag detection and re-personalization
CN101472777B (zh) * 2007-05-30 2012-11-28 三菱电机株式会社 电车的制动控制装置
CN103577465A (zh) * 2012-08-02 2014-02-12 亿赞普(北京)科技有限公司 系统数据处理系统及方法
KR102515213B1 (ko) * 2012-09-10 2023-03-29 에이매스, 아이엔씨. 복수의 기기를 이용한 다차원의 환경 데이터 캡쳐
CN103473093B (zh) * 2013-09-05 2016-08-24 飞天诚信科技股份有限公司 一种管理卡片上应用的方法
CN103617401B (zh) * 2013-11-25 2017-02-08 北京深思数盾科技股份有限公司 一种数据文件保护方法及装置
CN107729260A (zh) * 2017-09-30 2018-02-23 捷德(中国)信息科技有限公司 用于智能卡的存储空间回收方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999052065A1 (fr) * 1998-04-01 1999-10-14 Chip Application Technologies Limited Unite support de donnees et techniques d'utilisation
US6005942A (en) * 1997-03-24 1999-12-21 Visa International Service Association System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825054A (en) * 1988-02-16 1989-04-25 Datacard Corporation Method and apparatus for parallel integrated circuit card initialization and embossing
US5434919A (en) * 1994-01-11 1995-07-18 Chaum; David Compact endorsement signature systems
US5889941A (en) * 1996-04-15 1999-03-30 Ubiq Inc. System and apparatus for smart card personalization
KR100213555B1 (ko) * 1997-01-22 1999-08-02 윤종용 이동무선 단말기의 전용화 확인 방법
AU758710B2 (en) * 1997-12-19 2003-03-27 Visa International Service Association Card activation at point of distribution
US6402028B1 (en) * 1999-04-06 2002-06-11 Visa International Service Association Integrated production of smart cards
US6588673B1 (en) * 2000-02-08 2003-07-08 Mist Inc. Method and system providing in-line pre-production data preparation and personalization solutions for smart cards
US20040144472A1 (en) * 2003-01-24 2004-07-29 G & D Cardtech, Inc. Process for manufacturing laminated plastic products

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005942A (en) * 1997-03-24 1999-12-21 Visa International Service Association System and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
WO1999052065A1 (fr) * 1998-04-01 1999-10-14 Chip Application Technologies Limited Unite support de donnees et techniques d'utilisation

Also Published As

Publication number Publication date
US20040144838A1 (en) 2004-07-29
FR2823330B1 (fr) 2004-08-20
FR2823330A1 (fr) 2002-10-11
CN1273943C (zh) 2006-09-06
EP1388134A1 (fr) 2004-02-11
CN1514987A (zh) 2004-07-21
US7025261B2 (en) 2006-04-11

Similar Documents

Publication Publication Date Title
EP0589884B1 (fr) Procede securise de chargement de plusieurs applications dans une carte a memoire a microprocesseur
EP1374018B1 (fr) Systeme et procede de controle d'acces a des donnees protegees stockees dans une memoire
EP0089876A1 (fr) Procédé et dispositif de protection d'un logiciel livré par un fournisseur à un utilisateur
EP2082359A2 (fr) Procede et dispositif de personnalisation d'une entite electronique portable
FR2612316A1 (fr) Carte a circuits integres ayant une capacite de verification d'erreur interne
WO2002084610A1 (fr) Procede et systeme de gestion de donnes destinees a etre stockees dans une carte a puce programmable
FR2923047A1 (fr) Procede de gestion des droits d'acces dans une carte a puce
WO1999053401A2 (fr) Carte a puce comprenant des moyens pour gerer une memoire virtuelle, procede et protocole de communication associes
FR2757664A1 (fr) Terminal et procede d'autodiagnostic ou de supervision et objet portatif utilise dans un tel terminal ou procede
FR2663142A1 (fr) Dispositif electronique portable a memoire.
FR2908209A1 (fr) Entite electronique portable et procede de personnalisation d'une telle entite electronique
FR2784479A1 (fr) Protocole d'echange interne de donnees entre applications d'un objet portatif multi-applications et objet portatif multi-applications correspondant
EP0838053B1 (fr) Procede et dispositif permettant a un programme fige de pouvoir evoluer
FR2902551A1 (fr) Dispositif de memorisation amovible et appareil electronique aptes a etre connectes l'un a l'autre et procede de sauvegarde de donnees d'environnement
WO2014063940A1 (fr) Procede de gestion d'identifiants dans une carte a circuit integre et carte a circuit integre correspondante
EP1433065A1 (fr) Procede et dispositif de verificateur de code optimise
EP1402487A1 (fr) Procede et dispositif de traitement de donnees pour la personnalisation d'une application sur un dispositif communicant portatif, par exemple une carte a puce
EP0974131B1 (fr) Procede d'interpretation dynamique de donnees pour une carte a puce
FR2765362A1 (fr) Module de securite comportant des moyens de creation de liens entre des fichiers principaux et des fichiers auxiliaires
EP2058746A1 (fr) Entité électronique portable, station hôte et procédé associé
FR3090959A1 (fr) Traitement d’un service de tickets électroniques
FR2747813A1 (fr) Systeme securise de controle d'acces permettant l'invalidation automatique de cles electroniques volees ou perdues et/ou le transfert d'habilitation a produire des cles
FR2829847A1 (fr) Procede de controle d'acces a des ressources partagees dans un systeme embarque et systeme embarque pour la mise en oeuvre d'un tel procede
FR2812116A1 (fr) Procede et dispositif d'inscription securisee de donnees dans une memoire reinscriptible
FR3083341A1 (fr) Configuration d'un dispositif electronique

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2002761929

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 028114825

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2002761929

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWE Wipo information: entry into national phase

Ref document number: 10474742

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP