EP1388134A1 - Method and system for managing data designed to be stored in a programmable smart card - Google Patents

Method and system for managing data designed to be stored in a programmable smart card

Info

Publication number
EP1388134A1
EP1388134A1 EP02761929A EP02761929A EP1388134A1 EP 1388134 A1 EP1388134 A1 EP 1388134A1 EP 02761929 A EP02761929 A EP 02761929A EP 02761929 A EP02761929 A EP 02761929A EP 1388134 A1 EP1388134 A1 EP 1388134A1
Authority
EP
European Patent Office
Prior art keywords
data
identification
code
memory
intended
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP02761929A
Other languages
German (de)
French (fr)
Inventor
Laurent Lagosanto
François Millet
Jean-Jacques Vandewalle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales DIS France SA
Original Assignee
Gemplus Card International SA
Gemplus SA
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 Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of EP1388134A1 publication Critical patent/EP1388134A1/en
Withdrawn legal-status Critical Current

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

The invention concerns the management of data designed to be stored in a storage (6), said data being designed to be managed in different management modes including at least a first management mode and a second management mode. The invention is characterised in that it consists in: providing an identification, during a data preparation phase, for respectively identifying the data to be managed according to the different modes, and managing and/or operating on the data on the basis of said provided identification (E6, P1). The storage can be located in a programmable smart card. Thus the data can include a code associated with an application whereof part (management code) is designed to customize the application during an initial phase, the identification being related to the data associated with said code part.

Description

PROCEDE ET SYSTEME DE GESTION DE DONNEES DESTINEES A ETRE STOCKEES DANS UNE CAR TE A PUCE PROGRAMMABLEMETHOD AND SYSTEM FOR MANAGING DATA FOR STORAGE IN A PROGRAMMABLE CHIP CARD
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.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.
Avec l'avènement des cartes à puce- programmables , il est possible d'y charger desWith the advent of programmable smart cards, it is possible to load
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-10 service applications, that is to say executable software programs, coming from various sources. To this end, an open card has rewritable memory spaces for storing one or more service applications in a progressive manner.
15 selon son utilisation, à l'instar d'un disque dur d'un ordinateur personnel, ainsi qu'un processeur apte à exécuter de telles applications.15 according to its use, like a hard disk of a personal computer, as well as a processor capable of executing such applications.
Ces applications de services, aussi' connues par le terme anglo-saxon de "card applets", sontThese service applications, as' known by the English term of "card applets", are
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 programmes20 generally designed by the service providers authorized by the smart card issuer, for example banking, health organizations, distributors and other service providers. They come in the form of programs
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 son25 complexes, generally designed using advanced languages such as Java, C ++, Microsoft Windows Basic, so as to be transferred en bloc to the card memory, either during its manufacture (loading in pre-transmission), or later sound course
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.30 use (post-transmission loading). Because the service applications come from a source external to the manufacturer of the card which must integrate it, the latter does not have detailed knowledge of their code and therefore cannot establish an appropriate management for its storage.
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 .In particular, 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 .
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.Remember that 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.
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.During the ' personalization phase, the application is activated, possibly in cooperation with an internal card management program, to execute all of the administrative commands necessary for personalization. Once this customization has been properly carried out, the administrative commands no longer have any use, but remain in memory with the rest of the application, as they cannot be managed separately. However, 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. In view of the above, 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. Thus, in the case of the above example, where the data relates to all of the code forming an application to be personalized, 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.
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 :According to a first aspect, 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:
- 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.- provide 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 - manage the storage and / or exploitation of the data on the basis of the identification provided.
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.In the context of this method, 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.
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.In this case, 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.
- Avantageusement, l'identification est intégrée aux données.- Advantageously, the identification is integrated into the data.
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.In a contemplated application, 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.
Avantageusement, l'étape de gérer le stockage de données comprend les sous-étapes de :Advantageously, the step of managing the data storage comprises the sub-steps of:
- établir les adresses en mémoire des données identifiées, - détecter la fin de l'utilité des données identifiées, et- establish the addresses in memory of the identified data, - detect the end of the usefulness of the identified data, and
- 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é.- then authorize the reuse of at least part of said addresses for the. further storage of other data at these addresses. This step may further comprise a step of erasing the data identified after the end of utility detection step.
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é.In this case, provision can be made to route the identified data to an area of the memory specific intended for an operation of erasure or rewriting after their period of usefulness.
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.One can envisage, when the data relate to a program written in high level language, to provide identification at the level of this language.
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 .For example, when the language includes modules, 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. .
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.When the language is typed, 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.
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.In the case of a typed language of the object-oriented genre, 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. .
On peut aussi envisager de prévoir l'identification au niveau de la présentation des données lors du stockage.We can also consider providing for identification in the presentation of data during storage.
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.For example, if the data is produced in the form of files or the like, identification can be provided by designating the file (s) associated with the data to be identified, according to an established convention.
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.If the data is produced in the form of an instruction code, 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.
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.Advantageously, 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.
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.In the case where the identified data correspond to the code of a part of a program intended to be used only during an initial phase of the program, and the other data correspond to the code of the rest of the said. program, 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.
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.With the verification, it is also possible to provide for a step of keeping in memory the data identified as being of use only provisionally, in the same way as the other stored data, if the verification step reveals an error 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 :The invention can be applied to other types of management than those relating to data of temporary utility with respect to others. In fact, the management permitted by identification can also be used in particular for:
- 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 ;- determining the location of the data in the memory, this location being a function of identification; - Management concerning the routing of said data within the device, this routing being a function of said identification. By way of example taken in the context of a multiprocessor device such as a smart card having such means, routing can . run to one of several processors, selected according to said identification;
- la gestion concernant le cryptage de données, le cryptage ou non cryptage desdites données étant fonction de ladite identification ;the management concerning the encryption of data, the encryption or non-encryption of said data being a function of said 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 ;- management concerning data integrity control, said data being subject to integrity control as a function of said identifi ation;
- etc.- 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:According to a second aspect, 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:
- 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.- 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.
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.The optional aspects of the invention presented above within the framework of the method can be applied utatis mutandis to this system.
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.According to a third aspect, 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.
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.In a contemplated embodiment, 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.
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 dontThe invention and the advantages which ensue from it will appear more clearly on reading the following description of the preferred embodiments, given purely by way of nonlimiting example, with reference to the attached drawings,
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.Figure 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, and FIG. 4 is a flow diagram of a variant of that of FIG. 3, which incorporates verification measures for the identification of the data.
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 :The basic functional elements of a programmable smart card 1 are shown so synoptic in the block diagram of FIG. 1. At the heart is 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:
- 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;- a programmable memory of the read only type (ROM) but erasable and electrically programmable (EEPROM) 6. This memory is intended to be loaded with, one or more service applications that can be executed by the microprocessor 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 ; eta 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; and
- 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.a memory of the random access type (RAM) 10 intended for the storage of provisional data, such as contents of registers, blocks of code to be loaded into the microprocessor, etc. 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.
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.Applied to this context of open programmable smart cards, 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.
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.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.
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.The general concept of such an exploitation of the identification of the administrative code is illustrated by the flowcharts of FIGS. 2 and 3. At an initial stage, 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.
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.On the basis of this convention, 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.
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) .Of his . side, 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).
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.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.
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 deThe loading of the application, whether by a terminal Bl in the factory or by a terminal "user" B2, is carried out with 'the execution in the background of the procedure Pi, which will be described more particularly with reference to the FIG. 3. In general, 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
- 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.- 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). When an application load is detected, 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.
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.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.
Ce processus d'établissement continue jusqu'à la détection de la fin du chargement de l'application (étape E16) .This establishment process continues until the end of the loading of the application is detected (step 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 .This gives a card responsible for its application, with internal identification of the addresses in EEPROM 6 occupied by the administrative code. The procedure then goes into the waiting phase for a personalization request, that is to say the execution of the administrative code, vis-à-vis the loaded application. Personalization can take place at any time after the application has loaded. Typically, it is done by insertion of the card in a terminal provided for this purpose (for example a bank terminal) on an occasion arbitrarily chosen by the card holder. Each time the card 1 is put into communication with a terminal, the procedure PI intervenes again to determine whether a personalization request has been made (step E18). If this is the case, the personalization program loaded into the EEPROM memory 6 is executed in a conventional manner (step E20). 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.
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,At the end of the personalization (step E12), detected for example while waiting for an order or a specific code at termination, 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,
- 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.- physical data erasure of the administrative code, immediately after the approval, by a routine executed by the program loading terminal or the internal management program or compacting the data of the administrative code, making available part of the addresses previously occupied.
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.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.
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.The identification of the personalization code can be carried out in many different ways, some examples of which will be given below.
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'applicationThe examples are broken down into two families: one which depends on the programming language used to develop the application, and one which depends on the way in which the application code is stored.
(dans des fichiers) . 1. Identification du code de personnalisation par le langage de programmation.(in files). 1. Identification of the personalization code by the programming language.
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.Nowadays, programming smart cards is done by relatively advanced languages. It is no longer a question of manipulating large sequences of instructions with very low level cutting (close to the machine), but of using a larger abstraction in which we group instructions in procedures written in Pascal, Ada, C , etc. In even more advanced languages, we move to levels where we group together sets of functions which we call modules: With languages of even higher level (Java, C ++, etc.), we group both procedures and data concerning the same element in what is called a module or a class.
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.These advanced languages provide high level abstractions which can be used to identify the administrative code appropriately, according to the 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) .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. In this way, 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).
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".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.
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.At the smart card level, 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.
2. Identification du code de personnalisation par le stockage du code de 1 ' applicatio .2. Identification of the personalization code by storing the code of the application.
Les deux approches venant d'être décrites interviennent au moment où le concepteur développeur crée son application.The two approaches just described take place when the designer-developer creates his 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) .Two other techniques can be envisaged, which intervene not during the design of the application, but at the time of the transmission of the application to the manufacturer: 1. the designer transmits the codes related to personalization in a file separate from the or files containing the rest of the code. The separate file, identifiable as such when the application is loaded (Figure 3, step E12), can then be located in memory (step 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".2. 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. By way of example, a series of personalization instructions will start with a “start of personalization code” label and will end with a “end of personalization code” label.
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.You can associate a label in front of each personalization code. In this case, to consider the links between 'the codes when dissociates the 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.A variant of the procedure Pi in FIG. 3 will now be described with reference to FIG. 4, which 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.
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.Whatever the means used to identify the personalization codes among the codes of the application, it may happen that functional code is mistakenly identified as personalization code. This code would then be likely to be erased (step E24) with the consequence of a malfunction of the 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.To prevent this source of error, 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.
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".In general, verification consists in ensuring that the functional code does not use administrative code, for example by means of the "go to" instruction.
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. -Several techniques can be envisaged for this purpose. For example, the verification can be done at the level of card 1, after loading the application. - In this case, 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. -
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.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.
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".For example, in a "typing" approach, we can verify that the functional code never makes access to objects of the "personal" type.
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.If such an error is detected following verification, it will be possible to react appropriately, in particular by inhibiting erasure.
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.It is clear that the teachings of the invention can take many equivalent forms and apply to other fields. In the examples described, 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.
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. Thanks to 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. We therefore obtain an optimization of the use of memory space 6, and an increase in the possibilities of storing applications or other data. It will be noted that the invention is in no way limited to the embodiments which have just been described. Indeed, 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. .

Claims

R E V E ND I C A T I O N S DREAM ND ICATIONS
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 :1. Method for managing data intended to be stored in a memory (6), said data being intended to be managed according to two modes, characterized in that it comprises the steps of:
- 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) .- provide 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 - manage the storage and / or the exploitation of the data on the basis of said identification provided (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.2. Method according to claim 1, characterized in that the data intended for the first management mode are data the utility of which is only provisional relative to the data intended for a second management mode.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que ladite identification est intégrée aux données.3. Method according to claim 1 or 2, characterized in that said identification is integrated into the data.
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.4. Method according to any one of claims 1 to 3, characterized in that the data comprises code relating to an executable program of which a part, identified as being intended for a first management mode, relates to the code intended for n '' be used only during an initial phase of the program.
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.5. Method according to any one. of claims 1 to 4, characterized in that the memory (6) is located in a communicating device (1), and in that the data includes 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.
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 :6. Method according to any one of claims 2 to 5, characterized in that the step of managing the data storage comprises the sub-steps of:
- é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- establish the addresses in memory of the identified data (E14), detect the end of the usefulness of the identified data (E22), and
- autoriser ensuite la réutilisation' d'une partie au moins desdites adresses pour le stockage ultérieur d'autres données à ces adresses (E24).- then authorize the re-use of at least part of said addresses for the subsequent storage of other data at these addresses (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é.7. Method according to claim 6, characterized in that the step of managing the storage of data further comprises a step of erasing the data identified after the step ' of end of utility detection.
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é.8. Method according to any one of claims 2 to 7, characterized in that the step of managing the storage of data comprises routing the identified data to a specific memory area intended for an erasing or rewrite after their useful life.
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.9. Method according to any one of claims 2 to 8, characterized in that it further comprises a step of checking the correct identification of the data of provisional utility in relation to the other data, said verification consisting in ensuring that the data identified as being only of provisional utility are not called up by said other data.
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.10. Method according to claim 9, characterized in that it further comprises a step of keeping in memory (6) the data identified as being only of temporary utility, in the same way as the other said stored data,. if the verification step reveals an identification error.
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.11. Method according to claim 1, characterized in that the management relates to the determination of the location of said data in the memory (6), this location being a function of said 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.12. Method according to claim 1, characterized in that the management relates to the routing of said data within the device, this routing being a function of said 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.13. The method of claim 12, characterized in that the routing is to one of several processors, selected according to said 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.14. Method according to claim 1, characterized in that the management relates to encryption of data, the encryption or the absence of encryption of said data being a function of said 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.15. Method according to claim 1, characterized in that the management relates to the integrity control of the data, said data being subjected to integrity control as a function of said 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.16. Method according to any one of claims 1 to 15, characterized in that the data relate to a program written in high level language, and that said identification is provided at the level of this language.
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.17. The method of claim 16, characterized in that said language comprises modules, and in that said identification is provided by a naming technique, where one or each module of said program associated with said data is assigned to identify, an identifiable name according to an established convention.
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.18. The method of claim 16, characterized in that said language is a typed language, and in that said identification is provided by a typing technique, where one or each type of said program associated with said data is given to identify, a subtyping link to a specified type identifiable according to an established convention.
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.19. Method according to any one of claims 1 to 18, characterized in that the data are produced in the form of files or the like, and in that said identification is provided by designating the file or files associated with said data to be identified, according to an established convention.
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.20. Method according to any one of claims 1 to 18, characterized in that the data are produced in the form of an instruction code, and in that said identification is provided by labeling instructions relating to said data to be identified, according to a convention established, labeling being affixed to each instruction concerned or limiting groups of instructions concerned.
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) .21. Method according to any one of claims 1 to 20, characterized in that said memory (6) is located in a programmable smart card (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 :22. Data management system intended to be stored in a memory (6) -, said data being intended to be managed according to at least two modes, characterized in that it comprises:
- 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) . - 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 different modes, and storage and / or operating management means data operating on the basis of said identification provided (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.23. The system as claimed in claim 22, characterized in that the data intended for a first management mode are data the utility of which is only provisional relative to the data intended for a second management mode.
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.24. System according to claim 22 or 23, characterized in that said identification means are provided for integrating said identification with the data.
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.25.. System according to any one of claims 22 to 24, characterized in that the data comprises code relating to an executable program of which a part, identified as being intended for a first management mode, relates to the code intended for only be used during an initial phase of the program.
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 communicant26. System according to any one of claims 22 to 25, characterized in that the memory (6) is located in a communicating device
(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.(1), and in that the data includes 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.
27. Système selon l'une quelconque des revendications 23 à 26, caractérisé en ce que les moyens de gestion comprennent :27. System according to any one of claims 23 to 26, characterized in that the management means comprise:
- 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) .means for establishing the addresses in memory of the identified data (E14), - Means for detecting the end of the usefulness of the identified data (E22), and means for then authorizing the reuse of at least part of said addresses for the subsequent storage of other data at these addresses (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.28. System according to claim 27, characterized in that the management means also comprise means, active after the detection of said end, for erasing identified data.
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é.29. System according to any one of claims 22 to 28, characterized in that the management means comprise means for directing identified data to a specific memory area intended for an erasing or rewriting operation after their period utility.
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.30 .. System according to any one of claims 23 to 29, characterized in that it further comprises means for checking the correct identification of the data of provisional utility relative to the other data, said means of verification making it possible to establish whether the data identified as being of provisional utility are not called up by said other data.
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.31. System according to claim 30, characterized in that it further comprises means for keeping in memory (6) the data identified as being only of temporary use, in the same way as the other said stored data, if ways verification results in an identification error.
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.32. System according to claim 22, characterized in that the management means serve to determine the location of said data in the memory (6), this location being a function of said 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.33. System according to claim 22 characterized in that the management means serve to establish the routing of said data within the device, this routing being a function of said 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.34. System according to claim 32, characterized in that the routing is to one of several processors, selected according to said 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.35. System according to claim 22, characterized in that the management means serve to manage the encryption of data, the encryption or the absence of encryption of said data being a function of said 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.36. System according to claim 22, characterized in that the management means serve to control the integrity of the data, said data being subjected to integrity control as a function of said 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) .37. System according to any one of claims 22 to 36, characterized in that said memory (6) is located in a programmable smart card (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.38. Programmable smart card (1) comprising a first programmable memory (6) intended for the storage of code constituting an application, and a second memory (8) 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.
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. 39. Chip card according to claim 36, characterized in that "" the second memory (8) further comprises instructions for authorizing the erasure of the administrative code from the first memory (6) which are active after the end of customization of the application.
EP02761929A 2001-04-10 2002-04-09 Method and system for managing data designed to be stored in a programmable smart card Withdrawn EP1388134A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0104889A FR2823330B1 (en) 2001-04-10 2001-04-10 METHOD AND SYSTEM FOR MANAGING DATA TO BE STORED IN A MEMORY, FOR EXAMPLE OF THE CODE OF AN APPLICATION LOADED IN A PROGRAMMABLE CHIP CARD
FR0104889 2001-04-10
PCT/FR2002/001235 WO2002084610A1 (en) 2001-04-10 2002-04-09 Method and system for managing data designed to be stored in a programmable smart card

Publications (1)

Publication Number Publication Date
EP1388134A1 true EP1388134A1 (en) 2004-02-11

Family

ID=8862175

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02761929A Withdrawn EP1388134A1 (en) 2001-04-10 2002-04-09 Method and system for managing data designed to be stored in a programmable smart card

Country Status (5)

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

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100966665B1 (en) * 2005-12-29 2010-06-29 제말토 에스에이 System and method for deploying customised web applications
US9697668B2 (en) 2006-03-14 2017-07-04 Nxp B.V. Automatically configurable smart card and method of automatically configuring a smart card
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
WO2008096273A2 (en) * 2007-02-09 2008-08-14 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
CA2637138C (en) * 2007-05-30 2010-02-02 Mitsubishi Electric Corporation Brake control device for electric vehicle
CN103577465A (en) * 2012-08-02 2014-02-12 亿赞普(北京)科技有限公司 System data processing system and method
AU2013312127B2 (en) * 2012-09-10 2017-09-28 Aemass, Inc. Multi-dimensional data capture of an environment using plural devices
CN103473093B (en) * 2013-09-05 2016-08-24 飞天诚信科技股份有限公司 A kind of method managing on card application
CN103617401B (en) * 2013-11-25 2017-02-08 北京深思数盾科技股份有限公司 Method and device for protecting data files
CN107729260A (en) * 2017-09-30 2018-02-23 捷德(中国)信息科技有限公司 Memory space recovery method for smart card

Family Cites Families (10)

* 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 (en) * 1997-01-22 1999-08-02 윤종용 Method for checking the personalisation of mobile equipment
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
EP1040456B1 (en) * 1997-12-19 2004-09-15 Visa International Service Association Card activation at point of distribution
AUPP274098A0 (en) * 1998-04-01 1998-04-30 Chip Application Technologies Limited Data carrying device and systems for use therewith
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO02084610A1 *

Also Published As

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

Similar Documents

Publication Publication Date Title
EP2082359B1 (en) Method and device for customising a portable electronic entity
FR2673476A1 (en) SECURE METHOD FOR LOADING MULTIPLE APPLICATIONS INTO A MICROPROCESSOR MEMORY CARD.
FR2612316A1 (en) INTEGRATED CIRCUIT BOARD HAVING INTERNAL ERROR INTELLIGENCE CAPABILITY
FR2681165A1 (en) Process for transmitting confidential information between two chip cards
EP0089876A1 (en) Method and device for the protection of software delivered by a supplyer to a user
EP1388134A1 (en) Method and system for managing data designed to be stored in a programmable smart card
FR2923047A1 (en) Access rights managing method for e.g. bank card, involves determining whether event associated to command is valid to authorize or refuse command execution from secure state register of card in case of failure of search
WO1999053401A2 (en) Chip card comprising means for managing a virtual memory, associated communication method and protocol
FR2663142A1 (en) Portable electronic device with memory
FR2642544A1 (en) Data processing system with a security program
FR2908209A1 (en) PORTABLE ELECTRONIC ENTITY AND METHOD FOR CUSTOMIZING SUCH AN ELECTRONIC ENTITY
FR2784479A1 (en) Exchanging data between applications on multi-application portable card by using protocol which allocates to first application an emitting attribute and to second application a receiving attribute
EP0838053B1 (en) Method and device enabling a fixed programme to be developed
WO2007144509A2 (en) Removable storage device and electronic apparatus that can be connected together and method for saving environmental data
EP2912640A1 (en) Method for managing identifiers in an integrated circuit board and corresponding integrated circuit board
EP2058746B1 (en) Portable electronic entity, host station and associated method
EP1433065A1 (en) Method and device for optimized code checker
EP1402487A1 (en) Method and device for processing data for customizing an application of a portable communication device, for example a smart card
EP0974131B1 (en) Dynamic data interpretation method for a chip card
FR2765362A1 (en) SECURITY MODULE HAVING MEANS FOR CREATING LINKS BETWEEN MAIN FILES AND AUXILIARY FILES
FR3090959A1 (en) Processing an electronic ticket service
FR2747813A1 (en) SECURE ACCESS CONTROL SYSTEM FOR AUTOMATIC INVALIDATION OF STOLEN OR LOST ELECTRONIC KEYS AND / OR TRANSFER OF AUTHORIZATION TO PRODUCE KEYS
FR2812116A1 (en) Method and device for secured writing of data in rewritable memory, for use in microelectronics and chip cards
FR3083341A1 (en) CONFIGURATION OF AN ELECTRONIC DEVICE
EP1233383A1 (en) Method and device for the management of IC-card applications

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20031110

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17Q First examination report despatched

Effective date: 20090515

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: GEMALTO SA

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

RIC1 Information provided on ipc code assigned before grant

Ipc: G06Q 20/34 20120101AFI20191002BHEP

INTG Intention to grant announced

Effective date: 20191030

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20200310