WO1997045815A1 - Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes - Google Patents

Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes Download PDF

Info

Publication number
WO1997045815A1
WO1997045815A1 PCT/FR1997/000947 FR9700947W WO9745815A1 WO 1997045815 A1 WO1997045815 A1 WO 1997045815A1 FR 9700947 W FR9700947 W FR 9700947W WO 9745815 A1 WO9745815 A1 WO 9745815A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
transaction
card
certificate
area
Prior art date
Application number
PCT/FR1997/000947
Other languages
English (en)
Inventor
Jean-Paul Kirik
Original Assignee
Gemplus S.C.A.
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 S.C.A. filed Critical Gemplus S.C.A.
Priority to EP97926064A priority Critical patent/EP0910839B1/fr
Priority to DE69725723T priority patent/DE69725723T2/de
Publication of WO1997045815A1 publication Critical patent/WO1997045815A1/fr

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0866Mechanisms 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 by active credit-cards adapted therefor

Definitions

  • the present invention relates to methods for securely storing units of value in a smart card and to monetary transaction systems using these cards.
  • the invention applies more particularly to smart cards comprising an unprotected EEPROM type memory area.
  • an unprotected EEPROM area of a card is accessible by any individual having a simple card reader and read and write commands in memory. This type of memory area does not allow sensitive data to be saved since anyone can read and modify it.
  • the method also applies to smart cards with protected memory in order to raise the level of security.
  • Microprocessor cards are capable of containing and prohibiting access to units of value. Only the operating system of the card can access these units and increase or decrease their number. Secure commands managed by the operating system therefore allow the management of the area containing the value units, allowing the use of these value units as well as their safe reloading.
  • a memory card does not include a microprocessor, let alone an operating system, but simply a few commands allowing access to the memory areas of the card.
  • certain areas of the map may have characteristics allowing the secure storage of value units. This is the case for certain memory cards having an area protected by a secret code. Only a payment terminal with this secret code will be able to access the zone containing the value units and may modify the number of units with write commands in memory. By definition, a fraudster does not know the secret code, so he is not able to reload a card in value units. Other card-related features can allow secure storage of valuable units.
  • An application or recommendation note describes the mechanisms to be implemented at the card and terminal level and defines how the terminal must use the card.
  • application note means a particular definition of the state of the memory in the card and in the terminal, called "mapping" in English terminology, this mapping being obtained by computer software taking into account the application note.
  • the mechanism to be implemented consists in including in the calculation of this certificate data varying with each transaction.
  • transaction is meant a change in the number of value units of a card.
  • a first mechanism implemented is the use of a certificate associated with the number of units. This certificate guarantees the integrity of the information to which it relates.
  • a terminal of a payment application can read the number of value units present in a smart card. The certificate present in the card and associated with the number of value units stored must be read and verified. This certificate is calculated using a mathematical function. It is calculated from the number of units present in the card, from data identifying the card and with a secret only known by the terminal. The terminal is therefore capable of verifying or calculating such a certificate. Another solution is to share the secret between the cards and a central server. The application terminals will therefore have to connect to the server for any verification.
  • This mechanism consists in including in the calculation of this certificate data varying with each transaction.
  • This data which can be a transaction counter makes it possible to guarantee that we have a different certificate each time.
  • a card has a number of value units at a given time t.
  • time t + n that is to say after a certain number n of transactions, if this card again contains the same number of value units as at time t, the associated certificate will still be different.
  • the value of the transaction counter must be changed for each transaction.
  • Mechanism 3 This mechanism consists of duplicating sensitive information before a transaction takes place. The duplicated data is stored in the card, in the unprotected EEPROM memory.
  • the unprotected EEPROM memory is therefore divided into two areas which we will call throughout the active area and copy area. These two zones contain a number of value units and the corresponding certificate.
  • the card In the event of the card being torn off, if the data being modified in the active area is corrupted or altered, the duplicated data in the copy area will be recovered and transferred to the active area. The card thus remains in a stable state.
  • the certificate present in the copy area must correspond to the value of the card's transaction counter. This makes it possible to verify the authenticity of the certificate of the copy zone and therefore the integrity of the number of units of value of the copy zone. This is why, the card transaction counter must be modified at the end of the transaction.
  • fraud In the case of value units present in a memory zone not protected by the card chip, fraud consists in modifying the number of units present into the card and try different certificate values.
  • a fraudster with a small number of units present in the card will therefore replace it with the maximum number of units that his card can contain.
  • the probability of finding the certificate corresponding to the number of card units by chance is high.
  • the card cannot be considered from a cryptographic point of view as a secure value unit holder. This fraud makes it possible to illegally reload a card in value units.
  • 2nd case of fraud In the case of a debit of valuable units in the card, and in the event of tearing, the card is left with an active zone possibly corrupted and a copy zone containing a certain number of units valuable. In addition, the copy area contains the number of value units preceding the debit.
  • a fraudster can also read the contents of his card before a transaction. He writes the content of the active area on a sheet of paper without even understanding its meaning. Then it executes a transaction. In the event of a card being torn off, the transaction will not be completed. The value of the card transaction counter will not be changed. The fraudster can simply rewrite the data written on his sheet of paper in the active area of his card. This fraud also makes it possible to recover the value units used.
  • the present invention overcomes these problems.
  • the subject of the present invention is a method of storing value units in a smart card for carrying out transactions from a terminal, the card comprising a non-volatile memory of EEPROM type comprising, an active area capable of containing information relating to the number of value units of the card for a given application and a certificate calculated, in particular from this number, of a mathematical function and of a data item which varies with each transaction, and also comprising a zone copy intended to contain backup information of the active area, mainly characterized in that the recording of the information in the active area and in the copy area following a transaction is only carried out after having carried out an encryption operation on this information, the encrypted information then being recorded in these zones.
  • the encryption operation is carried out by means of an algorithm of encryption E ⁇ and a secret key K by the transaction terminal.
  • the information representative of the number of value units and the information of the balance of value units corresponds to a coding on a first constant number of bits, and the information representative of the certificate is coded on a second constant number of bits.
  • the coding consists in taking as value for the number of value units of the card, a maximum number of value units defined for the given application, minus the number of value units of the card, the terminal transaction capable of determining the number of value units of the card by subtracting from the maximum number, the code read from the card.
  • the method generally consists in calculating a certificate in an active area using a first function, and in calculating the certificate in a copy area, using another function.
  • the certificate of the copy zone is copied in the active zone, it will no longer be valid.
  • the method consists in: - calculating from a first mathematical function FA; a first CA certificate stored in the active area and guaranteeing the integrity of the points in this area;
  • the method further comprises the steps consisting in: - perform a first encryption operation of a data item formed by the number of value units and the first corresponding certificate CA,
  • the calculation of a first certificate is carried out from the number of units of value, but also the value of a transaction counter.
  • a certificate is calculated from the number of value units present in the active area and from a value of the transaction counter incremented to its next value, the data obtained is encrypted and recorded in the area of copy, the transaction counter is then incremented to this new value so that at this instant, the certificate of the active area is no longer in agreement with the value of the counter, only the backup data being correct. In this way, the terminal marks without the card the start of a transaction.
  • a card is accidentally torn from a card torn off fraudulently by checking the parity of the transaction counter at the start of the transaction. Indeed, if by convention we choose that an odd transaction counter value indicates that the card was torn off before the end of the transaction. So in start of a new transaction, the terminal checks the parity of the transaction counter. An odd value from the transaction counter therefore indicates that the card has been removed. The terminal does not check the integrity of the active area and directly checks the integrity of the copy area. The fraudster has no way of testing the random values he writes in the active area.
  • the parity of the value of the transaction counter used in the calculation of the certificates is identical at the start and at the end of the transaction, and the value of the transaction counter is incremented twice during the transaction, each increment being of one single unit.
  • the value of the transaction counter used in the calculation of the certificates is even, then at the start of a transaction, we read the value of the transaction counter on the card, the value read is even, we read the information in the active area (ZA), the integrity of the information in the active area is checked, the integrity of the information in the active area is checked, the value units are stored in the smart card.
  • the invention also relates to a money transaction system using smart cards comprising an unprotected memory with an active area for containing data relating to the balance of the card and a copy area for containing backup data; the active zone and backup data being stored securely.
  • FIG. 1 represents the diagram of a transaction system
  • FIG. 2 represents a structure of the data of the memory 103 of the smart card according to an exemplary embodiment
  • FIG. 3 represents the steps relating to a transaction implemented by a terminal
  • FIG. 4 represents the steps implemented during the verification of the integrity of the data of the active area or of the copy area
  • FIG. 5 represents the steps prior to a transaction described in FIG. 3,
  • FIG. 6 shows the steps for updating the balance after a transaction and the end of the transaction.
  • the content of the active zone ZA and copy zone ZC of the unprotected EEPROM memory 103 represented in FIG. 1 is encrypted.
  • This encryption is carried out by a terminal 100 of the application using the cards, using an encryption algorithm E ⁇ and a terminal key K.
  • This encryption key is known by the terminals accepting the cards of the application.
  • a terminal that knows how to encrypt will also be able to decrypt the content of the card using a decryption algorithm D ⁇ .
  • a fraudster knowing the principles of the invention detailed below and who attempts to increase the number of value units of a card will no longer be able to fix the maximum number of value units. He can only try to reload his card randomly. He will therefore enter random data in the active area of his card. There is a probability that, by deciphering the active area of a randomly modified card, a terminal will obtain a number of value units and the corresponding certificate. However, the number of value units obtained may be less than the number of value units previously contained in the card. The greater the number of value units initially present in the card, the greater the number of value units initially present in the card. In order to make fraud even more difficult consisting in randomly finding a certificate corresponding to a large number of value units, the method provides for increasing the size of the certificate. The larger the size of the certificate, the more difficult it is to find the right value. However, as the memory sizes are relatively small in a smart card, it is not possible to have both a large number of units and a large certificate.
  • the number of value units recorded in the card does not correspond to the number of value units for the application, but to the number of value units which have not been the subject of a transaction (zero for a card full of units).
  • a zero number of value units in the card corresponds to the maximum value unit value for the application.
  • the maximum value of value units in the card corresponds to a zero value of value units for the application.
  • a terminal of the application reading the contents of a card obtains the number of value units by subtracting from the maximum number of value units of the application the number of value units contained in the card.
  • the card when the card contains a zero, it will correspond to the maximum value.
  • a zero in the card is coded on a single bit.
  • the remaining bits of the coding area for the number of value units can be used to contain the certificate. The greater the number of value units, the lower the value encoded in the card, therefore the greater the memory size allocated to the certificate.
  • the calculation of the certificate of the active area is carried out differently from the calculation of the certificate of the copy area.
  • a terminal verifying a card whose content from the copy area has been transferred to the active area will be able to detect fraud.
  • the certificate that the terminal will read in the active area will not correspond to the calculation made in the case of the active area, and will correspond to the calculation made for the copy area.
  • the card transaction counter is also modified at the very beginning of the transaction.
  • the copy zone is initialized with the number of value units contained in the active zone and with a certificate taking into account the next value of the transaction counter. Then, the transaction counter is changed to this new value.
  • the content of the active area is no longer reusable, the transaction counter no longer corresponds to its certificate. However, the copy area is valid.
  • the transaction counter is again modified at the end of the transaction to prevent this transaction from being able to be redone, as indicated above.
  • the invention also relates to the verification of the parity of the data varying with each transaction.
  • This data which can be a transaction counter, is incremented twice during a complete transaction, by one unit each time.
  • the parity of the value of the transaction counter is therefore identical at the start of the transaction and at the end of the transaction. If the first value of the transaction counter is even, the value of the transaction counter is even at the start and end of the transaction.
  • the parity of the transaction counter must be checked at the start of the transaction, the value of the transaction counter must be even. In the event that the value of the transaction counter is odd at the start of the transaction, the integrity of the information in the card copy area must be directly verified. If the verification is successful, the terminal transfers the data from the copy zone to the active zone.
  • the terminal 100 being a monetary terminal and the card 103, an electronic purse card.
  • the data structure of the memory 103 is as shown in FIG. 2. This structure or organization is of course given by way of example. Other organizations can be adapted while remaining in the spirit of the invention.
  • the memory includes identification data comprising:
  • circuit identification value silicon circuit
  • card issuer reference zone banking organization
  • This counter is formed by 3 bits according to the practical embodiment which has been made.
  • this CTC counter is divided into 5 8-bit sub-counters (five counting stages) with an abacus type operation as described for example in patent FR 93 10477 published on March 10, 1995 under the No. 2,709,582.
  • the five sub-counters are referenced Cl, C8, C64, C512, C4096.
  • the first four stages are of the erasable type, that is to say that it is possible to erase bits written thereon and then rewrite in the same locations.
  • the fifth stage C4096 is write only. Only 4 bits of this last stage are used for counting. Among the remaining 4 bits, 1 bit is used as a fuse and the other three bits as the fraud counter. Two bits are toasted per transaction. Thus, this type of counter will allow to count 10239 transactions [7 + 7x8 + 7x8 2 + 7x8 3 -r-4x8 4 l / 2.
  • the memory also includes: - a certificate area.
  • This zone cannot be erased and is used for the CER certification record allowing the authentication of the card.
  • the authentication certificate is saved after the configuration of the circuit for the end user and is verified by the terminal each time the card is used.
  • ID is for example the content of the card identification zones, circuit identification u of transmitter reference. - a user area.
  • the active area contains, according to a characteristic of the invention, an encrypted datum of the balance Bal and the corresponding certificate Cert.
  • the information on the balance of value units corresponds to a coding on a first constant number of bits, and the information representative of the certificate is coded on a second constant number of bits.
  • the encrypted data corresponding to one of the two areas of the unit carrier can be written as follows:
  • Cert B F ⁇ (Bal, CSN, CTC) for the wallet copy area.
  • F A and F ⁇ being different functions held by the terminal.
  • the recording of information relating to the balance and the certificate in the copy area and in the backup area is done as follows: - recording of the balance and its certificate
  • This sequence makes it possible to avoid any loss of information in the event of the card being torn off or a power failure.
  • the method includes a phase of initialization of the transaction and a phase corresponding to the transaction itself.
  • the initialization phase includes a verification of the fraud zone corresponding to steps 50, 51, 52 detailed below.
  • This initialization phase also includes a verification of the parity of the data varying with each corresponding transaction in the diagram of FIG. 3 in steps 400, 401, 203A, 204A, 205A, 207A. If the first value of the transaction counter is even, the value of the transaction counter is even at the start and end of the transaction. The parity of the transaction counter is checked at the start of the transaction steps 400, 401, the value of the transaction counter must be even.
  • the terminal transfers the data from the copy area to the active area step 205A. Then the terminal marks the start of a transaction in the card by incrementing the CTC counter. Following this, the terminal returns to step 401. If the integrity check is negative, the terminal executes step 206, namely incrementing the card fraud counter and ejecting the card.
  • the terminal After checking the parity, the terminal reads the content of the active area of the card (electronic purse PM) 150, which contains the data
  • the terminal updates the balance in the card and calculates new encrypted data 301 and 302.
  • the update is carried out according to steps 30 to 35 illustrated in FIG. 6. FR 7/00947
  • the terminal reads the copy area which contains ⁇ Ball, Certl ⁇ > 203.
  • the terminal verifies the integrity of the backup data 204 by decrypting this data by carrying out steps 20, 21 and 22 of FIG. 4 on this data.
  • the terminal restores this backup data in the active area which contained nothing or an erroneous data 205.
  • the terminal If the data contained in the copy zone is not intact, then the terminal writes a bit in the fraud zone 206.
  • one or more fraud attempts may be accepted before definitively refusing the card.
  • the card When the fraud zone is full, the card is swallowed.
  • the fraud zone is checked during a step prior to the transaction at the very start of the initialization of the transaction 50, 51, 52.
  • FIG. 5 illustrates the preliminary steps 200, 201 and 202 to the implementation of a transaction.
  • different FA and FB functions can be used for calculating certificates.
  • step 200 the terminal performs the operations developed in FIG. 4.
  • the terminal operates the decryption of the content of the active area (or of copy). (20)
  • step 200 In the case of step 200,
  • step 201 It operates the integrity check. (22) In step 201:
  • the terminal calculates the certificate (CertlB) for the backup area; (23) it encrypts the data (Bail, CertlB); (24) it saves the encrypted value in the card's copy area. (25) In step 202:
  • the terminal calculates the Cert IB certificate corresponding to the Lease balance in this area (21). It operates the integrity check (22).
  • the terminal calculates the Cert 1A certificate for the active area (23), it encrypts the Bail data, Cert 1A (24), it saves the encrypted value (25) in the active area of the card. Then the terminal increments the CTC counter (26) and erases the content of the copy area (27).
  • FIG. 6 illustrates the steps for updating the balance after the balance after a transaction (301) and the end of the transaction (302).
  • the old Bail balance is modified by a value x (more or less depending on the transaction made) to give the new Bal2 balance such as:
  • Bal2 Lease ⁇ x (30), x being the value of the transaction.
  • the terminal calculates a new certificate taking into account this new balance, and the new value of the transaction counter CTC + 1:
  • the terminal records this new encrypted data in the active area of the card. (33)
  • the card copy area contains the old data, i.e. ⁇ Ball, Certl ⁇ >.
  • the terminal increments the card's CTC transaction counter by toasting a second bit to validate the transaction.
  • the terminal clears the copy area (35) and controls the ejection of the card.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

La présente invention a pour objet un procédé de stockage d'unités de valeur dans une carte à puce pour la réalisation de transactions à partir d'un terminal, la carte comprenant une mémoire non volatile de type EEPROM (103), comportant une zone active (ZA) susceptible de contenir des informations relatives au nombre d'unités de valeur de la carte pour une application donnée et un certificat calculé par le terminal, notamment à partir de ce nombre, d'une fonction mathématique et d'une donnée qui varie à chaque transaction, la mémoire comportant également une zone de copie (ZC) destinée à contenir des informations de sauvegarde de la zone active; l'enregistrement des informations dans la zone active (ZA) et dans la zone de copie (ZC) à la suite d'une transaction n'étant opérée qu'après avoir effectué une opération de chiffrement sur ces informations, les informations chiffrées étant alors enregistrées dans ces zones. Application aux systèmes monétaires avec porte-monnaie électronique.

Description

PROCÉDÉ DE STOCKAGE DES UNITÉS DE VALEUR DANS UNE CARTE
A PUCE DE FAÇON SÉCURISÉE ET SYSTEME DE TRANSACTION
MONÉTAIRE AVEC DE TELLES CARTES.
La présente invention se rapporte aux procédés qui permettent de stocker de façon sécurisée des unités de valeur dans une carte à puce et aux systèmes de transaction monétaire utilisant ces cartes. L'invention s'applique plus particulièrement à des cartes à puces comportant une zone mémoire de type EEPROM non protégée.
En effet, une zone EEPROM non protégée d'une carte est accessible par tout individu disposant d'un simple lecteur de carte et de commandes de lecture et écriture en mémoire. Ce type de zone mémoire ne permet pas d'enregistrer des données sensibles puisque n'importe qui peut les lire et les modifier.
Le procédé s'applique également à des cartes à puce à mémoire protégée afin d'en élever le niveau de sécurité.
Les cartes à microprocesseurs sont capables de contenir des unités de valeur et d'en interdire l'accès. Seul le système d'exploitation de la carte peut accéder à ces unités et en augmenter ou en diminuer le nombre. Des commandes sécurisées et gérées par le système d'exploitation permettent donc la gestion de la zone contenant les unités de valeur, permettant l'utilisation de ces unités de valeur ainsi que leur rechargement en toute sécurité.
Une carte à mémoire ne comporte ni microprocesseur, ni à fortiori de système d'exploitation mais simplement quelques commandes permettant l'accès aux zones mémoire de la carte. Néanmoins, certaines zones de la carte peuvent avoir des caractéristiques permettant le stockage sécurisé d'unités de valeur. C'est le cas de certaines cartes à mémoire possédant une zone protégée par un code secret. Seul un terminal de paiement possédant ce code secret pourra accéder à la zone contenant les unités de valeur et pourra modifier le nombre d'unités avec des commandes d'écriture en mémoire. Par définition, un fraudeur ne connaît pas le code secret, il n'est donc pas capable de recharger une carte en unités de valeur. D'autres caractéristiques liées à la carte peuvent permettre un stockage sécurisé d'unités de valeur.
Dans l'état de la technique connu, les mécanismes de base existant sont l'utilisation d'un certificat d'intégrité, d'un compteur de transaction ainsi que d'une zone de copie. Ces mécanismes vont être détaillés dans la suite. Dans le cas des cartes à microprocesseur, ces mécanismes de base peuvent être inclus dans les systèmes d'exploitation. Ces mécanismes peuvent également être appliqués sous forme de note d'application ou de recommandation d'application aux cartes à microprocesseur et à certaines cartes à mémoire de type synchrone.
Une note d'application ou de recommandation décrit les mécanismes à mettre en oeuvre au niveau de la carte et du terminal et définit la façon dont le terminal doit utiliser la carte.
On entend plus précisément par note d'application, une définition particulière de l'état de la mémoire dans la carte et dans le terminal, appelée "mapping" en terminologie anglo-saxonne, ce mapping étant obtenu par un logiciel informatique tenant compte de la note d'application. Le mécanisme à mettre en oeuvre consiste à inclure dans le calcul de ce certificat une donnée variant à chaque transaction. On entend par transaction une modification du nombre d'unités de valeur d'une carte.
Mécanisme 1 : Un premier mécanisme en oeuvre est l'utilisation d'un certificat associé au nombre d'unités. Ce certificat garantit l'intégrité des informations auxquelles il se rapporte. Un terminal d'une application de paiement peut lire le nombre d'unités de valeur présentes dans une carte à puce. Le certificat présent dans la carte et associé au nombre d'unités de valeur stockées doit être lu et vérifié. Ce certificat est calculé à l'aide d'une fonction mathématique. Il se calcule à partir du nombre d'unités présentes dans la carte, de données identifiant la carte et avec un secret seulement connu par le terminal. Le terminal est donc capable de vérifier ou de calculer un tel certificat. Une autre solution consiste à partager le secret entre les cartes et un serveur central. Les terminaux de l'application devront donc se connecter au serveur pour toute vérification.
Si le certificat est correct, le nombre d'unités de valeur présentes dans la carte est considéré comme valide. Mécanisme 2 :
Ce mécanisme consiste à inclure dans le calcul de ce certificat une donnée variant à chaque transaction. L'introduction de cette donnée qui peut être un compteur de transaction permet de garantir que l'on a un certificat différent à chaque fois. Une carte possède un nombre d'unités de valeur à un instant t donné. A l'instant t+n, c'est-à-dire après un certain nombre n de transactions, si cette carte contient de nouveau le même nombre d'unités de valeur qu'à l'instant t, le certificat associé sera malgré tout différent. Il faut bien sûr que la valeur du compteur de transaction soit modifiée à chaque transaction. Mécanisme 3 : Ce mécanisme consiste à dupliquer les informations sensibles avant le déroulement d'une transaction. Les données dupliquées sont stockées dans la carte, dans la mémoire EEPROM non protégée.
La mémoire EEPROM non protégée est donc divisée en deux zones que nous appellerons dans toute la suite zone active et zone de copie. Ces deux zones comportent un nombre d'unités de valeur et le certificat correspondant.
En cas d'arrachement de la carte, si les données en cours de modification dans la zone active sont corrompues ou altérées, les données dupliquées dans la zone de copie seront récupérées et transférées dans la zone active. La carte demeure ainsi dans un état stable. En cas d'arrachement de carte, le certificat présent dans la zone de copie doit correspondre à la valeur du compteur de transaction de la carte. Ceci permet de vérifier l'authenticité du certificat de la zone de copie et donc l'intégrité du nombre d'unités de valeur de la zone de copie. C'est pourquoi, le compteur de transaction de la carte doit être modifié en fin de transaction.
Toutes ces sécurités n'empêchent pas malheureusement certaines fraudes que l'on va expliciter dans ce qui suit :
1er cas de fraude :
Dans le cas d'unités de valeur présentes dans une zone mémoire non protégée par la puce de la carte, la fraude consiste à modifier le nombre d'unités présentes dans la carte et à essayer différentes valeurs de certificat.
Un fraudeur ayant un petit nombre d'unités présentes dans la carte va donc le remplacer par le nombre maximum d'unités que peut contenir sa carte. Dans ce cas précis, aucun mécanisme n'empêche de modifier le contenu de la zone mémoire de la carte, la carte ne possédant pas de zone protégée. Puis le fraudeur va inscrire dans la carte, en lieu et place du précédent certificat une valeur aléatoire. Étant donné les faibles capacités mémoire des composants utilisés, les certificats sont enregistrés sur quelques bits.
La probabilité de trouver par hasard le certificat correspondant au nombre d'unités de la carte est élevée. La carte ne peut être considérée d'un point de vue cryptographique comme un porte-unités de valeur sécurisée. Cette fraude permet de recharger illégalement une carte en unités de valeur. 2ième cas de fraude : Dans le cas d'un débit d'unités de valeur dans la carte, et en cas d'arrachement, la carte se retrouve avec une zone active éventuellement corrompue et une zone de copie contenant un certain nombre d'unités de valeur. De plus, la zone de copie contient le nombre d'unités de valeur précédant le débit.
Puisqu'il s'agit d'une interruption de transaction, le compteur de transaction peut ne pas avoir encore été modifié. La zone mémoire contenant les unités de valeur n'étant pas protégée contre les modifications, un fraudeur peut transférer le contenu de la zone de copie dans la zone active. Le contenu de la zone de copie est valide puisque son certificat correspond toujours à la valeur du compteur de transaction. Cette fraude permet de récupérer des unités de valeur utilisées. 3ième cas de fraude :
Un fraudeur peut également lire le contenu de sa carte avant une transaction. Il inscrit le contenu de la zone active sur une feuille de papier sans même en comprendre la signification. Puis il exécute une transaction. En cas d'arrachement de carte, la transaction ne sera pas achevée. La valeur du compteur de transaction de la carte ne sera pas modifiée. Le fraudeur pourra simplement réécrire dans la zone active de sa carte les données inscrites sur sa feuille de papier. Cette fraude permet également de récupérer des unités de valeur utilisées.
La présente invention permet de remédier à ces problèmes. La présente invention a pour objet un procédé de stockage d'unités de valeur dans une carte à puce pour la réalisation de transactions à partir d'un terminal, la carte comprenant une mémoire non volatile de type EEPROM comportant, une zone active susceptible de contenir des informations relatives au nombre d'unités de valeur de la carte pour une application donnée et un certificat calculé, notamment à partir de ce nombre, d'une fonction mathématique et d'une donnée qui varie à chaque transaction, et comportant également une zone de copie destinée à contenir des informations de sauvegarde de la zone active, principalement caractérisé en ce que l'enregistrement des informations dans la zone active et dans la zone de copie à la suite d'une transaction n'est opéré qu'après avoir effectué une opération de chiffrement sur ces informations, les informations chiffrées étant alors enregistrées dans ces zones.
Selon une autre caractéristique l'opération de chiffrement est réalisée au moyen d'un algorithme de chiffrement Eκ et d'une clé secrète K par le terminal de transaction.
Selon une autre caractéristique, l'information représentative du nombre d'unités de valeur et l'information du solde d'unités de valeur correspond à un codage sur un premier nombre constant de bits, et l'information représentative du certificat est codée sur un second nombre constant de bits.
Ainsi, le codage consiste à prendre comme valeur pour le nombre d'unités de valeur de la carte, un nombre maximal d'unités de valeur défini pour l'application donnée, moins le nombre d'unités de valeur de la carte, le terminal de transaction étant apte à déterminer le nombre d'unités de valeur de la carte en soustrayant au nombre maximal, le code lu dans la carte.
Selon une autre caractéristique, le procédé consiste globalement à calculer un certificat dans une zone active en utilisant une première fonction, et à calculer le certificat dans une zone de copie, en utilisant une autre fonction. Ainsi, dans le cas où le certificat de la zone de copie serait copié dans la zone active, il ne serait plus valide.
Plus précisément, le procédé consiste à : - calculer à partir d'une première fonction mathématique FA; un premier certificat CA stocké dans la zone active et garantissant l'intégrité des points de cette zone;
- calculer à partir d'une seconde fonction mathématique FB, un second certificat CB stocké dans la zone de copie et garantissant l'intégrité de cette zone.
De préférence, le procédé comporte en outre les étapes consistant à : - effectuer une première opération de chiffrement d'une donnée formée par le nombre d'unités de valeur et le premier certificat correspondant CA,
- effectuer une seconde opération de chiffrement d'une donnée formée par le nombre d'unités de valeur et le second certificat correspondant CB,
- enregistrer le résultat de la première opération de chiffrement dans la zone active de la mémoire et le résultat de la seconde opération de chiffrement dans la zone de copie.
Afin d'éviter que le contenu de la zone active ne puisse être utilisé en cas d'arrachement, selon une autre caractéristique de l'invention, le calcul d'un premier certificat est réalisé à partir du nombre d'unités de valeur, mais aussi de la valeur d'un compteur de transaction. Au début d'une transaction, on calcule un certificat à partir du nombre d'unités de valeur présent dans la zone active et d'une valeur du compteur de transaction incrémentée à sa prochaine valeur, la donnée obtenue est chiffrée et enregistrée en zone de copie, le compteur de transaction est ensuite incrémenté à cette nouvelle valeur de sorte qu'à cet instant, le certificat de la zone active n'est plus en accord avec la valeur du compteur, seule la donnée de sauvegarde étant correcte. De cette façon, le terminal marque sans la carte le début d'une transaction.
Selon une caractéristique de l'invention on distingue une carte arrachée accidentellement d'une carte arrachée frauduleusement en vérifiant la parité du compteur de transaction en début de transaction. En effet, si par convention on choisit qu'une valeur du compteur de transaction impaire indique que la carte a été arrachée avant la fin de la transaction. Alors en début d'une nouvelle transaction, le terminal vérifie la parité du compteur de transaction. Une valeur impaire du compteur de transaction lui indique donc que la carte a été arrachée. Le terminal ne vérifie pas l'intégrité de la zone active et vérifie directement l'intégrité de la zone de copie. Le fraudeur n'a plus de moyen de tester les valeurs aléatoires qu'il écrit dans la zone active.
Ainsi selon le procédé la parité de la valeur du compteur de transaction utilisé dans le calcul des certificats est identique en début et en fin de transaction, et la valeur du compteur de transaction est incrémentée deux fois durant la transaction, chaque incrémentation étant d'une seule unité. Lorsque la valeur du compteur de transaction utilisé dans le calcul des certificats est paire, alors au début d'une transaction, on lit la valeur du compteur de transaction de la carte, la valeur lue est paire, on lit les informations de la zone active (ZA) , on vérifie l'intégrité des informations de la zone active, l'intégrité des informations de la zone active est vérifiée, on procède au stockage d'unités de valeur dans la carte à puce.
Lorsque la valeur du compteur de transaction utilisé dans le calcul des certificats est impaire, alors au début d'une transaction, on lit la valeur du compteur de transaction de la carte, la valeur lue est impaire, on lit les informations de la zone de copie (ZC) , on vérifie l'intégrité des informations de la zone de copie, l'intégrité des informations de la zone de copie est vérifiée, on calcule un certificat à partir du nombre d'unités de valeur présent dans la zone de copie (ZC) et de la valeur du compteur de transaction incrémentée à sa prochaine valeur paire, la donnée obtenue est chiffrée et enregistrée en zone active (ZA) , le compteur est ensuite incrémenté à cette nouvelle valeur de sorte qu'à cet instant, le certificat de la zone de copie (ZC) n'est plus en accord avec la valeur du compteur, seule la donnée de la zone active étant correcte.
L'invention concerne également un système de transaction monétaire utilisant des cartes à puce comprenant une mémoire non protégée avec une zone active pour contenir des données relatives au solde de la carte et une zone de copie pour contenir des données de sauvegarde; les données de zone active et de sauvegarde étant stockées de façon sécurisée.
D'autres avantages et caractéristiques de l'invention apparaîtront à la lecture de la description suivante qui est faite à titre illustratif et non limitatif et en regard des dessins sur lesquels :
- la figure 1, représente le schéma d'un système de transaction,
- la figure 2, représente une structure des données de la mémoire 103 de carte à puce selon un exemple de réalisation,
- la figure 3, représente les étapes relatives à une transaction mises en oeuvre par un terminal,
- la figure 4, représente les étapes mises en oeuvre lors de la vérification de l'intégrité des données de la zone active ou de la zone de copie,
- la figure 5, représente les étapes préalable à une transaction décrite en figure 3,
- la figure 6, représente les étapes de mise à jour du solde après une transaction et la fin de la transaction. Ainsi, selon une première caractéristique de l'invention, on chiffre le contenu des zone active ZA et zone de copie ZC de la mémoire EEPROM non protégée 103 représentée sur la figure 1. Ce chiffrement est réalisé par un terminal 100 de l'application utilisant les cartes, à l'aide d'un algorithme de chiffrement Eκ et d'une clef du terminal K. Cette clef de chiffrement est connue par les terminaux acceptant les cartes de l'application. Un terminal sachant chiffrer saura également déchiffrer le contenu de la carte à partir d'un algorithme de déchiffrement Dκ.
Un fraudeur connaissant les principes de l'invention détaillés dans la suite et qui tente d'augmenter le nombre d'unités de valeur d'une carte ne sera plus capable de fixer le nombre maximum d'unités de valeur. Il ne pourra qu'essayer de recharger aléatoirement sa carte. Il inscrira donc des données aléatoires dans la zone active de sa carte. Il existe une probabilité pour qu'en déchiffrant la zone active d'une carte modifiée aléatoirement, un terminal obtienne un nombre d'unités de valeur et le certificat correspondant. Mais le nombre d'unités de valeur obtenu peut être inférieur au nombre d'unités de valeur contenu précédemment dans la carte. La probabilité d'obtenir un nombre d'unités de valeur supérieur au nombre d'unités de valeur initialement présent dans la carte est d'autant plus faible que ce nombre d'unités de valeur initial est grand. Afin de rendre encore plus difficile la fraude consistant à trouver aléatoirement un certificat correspondant à un nombre important d'unités de valeur, on prévoit selon le procédé d'augmenter la taille du certificat. Plus la taille du certificat est grande, plus il est difficile de trouver la bonne valeur. Or, comme les tailles mémoires sont relativement faibles dans une carte à puce, il n'est pas possible d'avoir à la fois un grand nombre d'unités et un grand certificat.
Pour résoudre ce problème on propose selon une caractéristique de l'invention, que le nombre d'unités de valeur enregistré dans la carte ne corresponde pas au nombre d'unités de valeur pour l'application, mais au nombre d'unités de valeur qui n'ont pas fait l'objet d'une transaction (zéro pour une carte pleine d'unités) .
Ce nombre est donc nul tant qu'aucune transaction n'a eu lieu. Ainsi, un nombre nul d'unités de valeur dans la carte correspond à la valeur maximale d'unités de valeur pour l'application. Et inversement, la valeur maximale d'unités de valeur dans la carte correspond à une valeur nulle d'unités de valeur pour l'application.
Un terminal de l'application lisant le contenu d'une carte obtient le nombre d'unités de valeur en soustrayant au nombre d'unités de valeur maximal de l'application le nombre d'unités de valeur contenu dans la carte.
De cette façon, lorsque la carte contiendra un zéro, cela correspondra à la valeur maximale. Un zéro dans la carte se code sur un seul bit. Ainsi, les bits restants de la zone de codage du nombre d'unités de valeur peuvent être utilisés pour contenir le certificat. Plus le nombre d'unités de valeur est grand, plus la valeur codée dans la carte est faible, donc plus la taille mémoire allouée au certificat est importante.
Il est nécessaire d'indiquer aux terminaux la taille mémoire allouée au certificat pour chaque carte. Pour cela, cette taille est indiquée dans la zone mémoire EEPROM non protégée de la carte, avec le nombre d'unités de valeur et le certificat. Cette indication est présente dans la zone active et dans la zone de copie.
Selon une autre caractéristique de l'invention le calcul du certificat de la zone active est réalisé de manière différente du calcul du certificat de la zone de copie.
Il n'est alors plus possible de transférer le contenu de la zone active dans la zone de copie. Un terminal vérifiant une carte dont le contenu de la zone de copie a été transféré dans la zone active sera capable de constater la fraude. Le certificat que le terminal lira dans la zone active ne correspondra pas au calcul opéré dans le cas de la zone active, et correspondra au calcul opéré pour la zone de copie.
Selon une autre caractéristique de l'invention, pour que le contenu de la zone active d'une carte ne puisse être réutilisé en cas d'arrachement de carte, le compteur de transaction de la carte est également modifié en tout début de transaction. La zone de copie est initialisée avec le nombre d'unités de valeur contenu dans la zone active et avec un certificat tenant compte de la prochaine valeur du compteur de transaction. Puis, le compteur de transaction est modifié à cette nouvelle valeur. A cet instant précis, le contenu de la zone active n'est plus réutilisable, le compteur de transaction ne correspond plus à son certificat. Par contre, la zone de copie est valide. Le compteur de transaction est de nouveau modifié en fin de transaction pour éviter que cette transaction ne puisse être refaite, comme indiqué précédemment.
L'invention concerne également la vérification de la parité de la donnée variant à chaque transaction. Cette donnée qui peut être un compteur de transaction est incrémentée deux fois durant une transaction complète, d'une unité à chaque fois. La parité de la valeur du compteur de transaction est donc identique en début de transaction et en fin de transaction. Si la première valeur du compteur de transaction est paire, la valeur du compteur de transaction est paire en début et en fin de transaction. La parité du compteur de transaction doit être vérifiée en début de transaction, la valeur du compteur de transaction doit être paire. Dans le cas où la valeur du compteur de transaction est impaire en début de transaction, l'intégrité des informations de la zone de copie de la carte doit être directement vérifiée. Si la vérification est réussie, le terminal transfère les données de la zone de copie dans la zone active.
L'invention va maintenant être décrite dans le cas de l'application à un système de transaction monétaire, le terminal 100 étant un terminal monétaire et la carte 103, une carte porte-monnaie électronique.
Selon un exemple préféré de réalisation, la structure de données de la mémoire 103 est telle que représentée sur la figure 2. Cette structure ou organisation est bien sûr donnée à titre d'exemple. D'autres organisations peuvent être adaptées tout en restant dans l'esprit de l'invention. La mémoire comporte des données d'identification comprenant :
- une valeur d'identification du circuit (circuit silicium) dans la zone Id circuit, - un code client dans la zone de référence émetteur de carte (organisme bancaire) ,
- une donnée d'identification de l'application dans la zone Id Card (donnée par l'émetteur) ,
- un numéro de série CSN de la carte (donné par exemple par le fabricant) .
La mémoire comporte une zone de compteurs comportant les champs suivants :
- un compteur de fraude incrémenté à chaque vérification d'un certificat s'avérant mauvais. Ce compteur est formé de 3 bits selon la réalisation pratique qui a été faite.
- un compteur de transaction CTC.
Dans un exemple de réalisation, ce compteur CTC est divisé en 5 sous-compteurs de 8 bits (cinq étages de comptage) avec un fonctionnement type boulier tel que décrit par exemple dans le brevet FR 93 10477 publié le 10 mars 1995 sous le N° 2 709 582. Les cinq sous-compteurs sont référencés Cl, C8, C64, C512, C4096. Les cellules mémoire de l'étage de comptage Cl ont un poids de 1, ... et celles de l'étage C8 ont un poids de 4096 = 84) .
Les quatre premiers étages sont du type effaçables, c'est-à-dire que l'on peut effacer des bits qui y sont inscrits et ensuite ré-écrire aux mêmes emplacements. Le cinquième étage C4096 est par contre à écriture uniquement. Seuls 4 bits de ce dernier étage sont utilisés pour le comptage. Parmi les 4 bits restants, 1 bit est utilisé comme fusible et les trois autres bits comme compteur de fraude. Deux bits sont grillés par transaction. Ainsi, ce type de compteur va permettre de compter 10239 transactions [7+7x8+7x82+7x83-r-4x84l/2. La mémoire comporte en outre : - une zone certificat.
Cette zone ne peut être effacée et sert à l'enregistrement de certification CER permettant l'authentification de la carte. Le certificat d'authentification est enregistré après la configuration du circuit pour l'utilisateur final et est vérifié par le terminal à chaque utilisation de la carte.
Il est calculé par exemple à partir d'une donnée d'identification ID, d'une fonction à sens unique fop et d'une clé secrète suivant la formule :
CER = fop (ID, K)
ID est par exemple le contenu des zones d'identification de carte, identification de circuit u de référence d'émetteur. - une zone utilisateur.
Il s'agit de la zone active porte-monnaie électronique et de la zone de copie pour les sauvegardes.
La zone active contient selon une caractéristique de l'invention une donnée chiffrée du solde Bal et du certificat correspondant Cert. L'information du solde d'unités de valeur correspond à un codage sur un premier nombre constant de bits, et l'information représentative du certificat est codée sur un second nombre constant de bits.
La donnée chiffrée correspondant à une des deux zones du porte-unités peut s'écrire de la façon suivante :
<Bal, Cert> = Eκ (Bal, Cert) Bal étant le nombre d'unités de valeur et Cert le certificat correspondant K étant la clé secrète du terminal <donnée> la valeur chiffrée (donnée) la valeur non chiffrée
Eκ l'algorithme de chiffrement. Le calcul du certificat permet d'assurer l'intégrité des données du porte-monnaie électronique.
Les données suivantes sont utilisées dans le calcul :
- la valeur du solde, ce qui rend le certificat unique pour un solde donné,
- des données permanentes de la carte, à savoir les données d'identification (carte et émetteur), - le compteur de transaction CTC. A chaque transaction deux bits sont grillés dans ce compteur CTC et le compteur peut uniquement être incrémenté ou uniquement décrémenté. Un bit est grillé au début d'une transaction, un deuxième bit est grillé à la fin de la transaction.
Selon une des caractéristiques de l'invention, les certificats correspondant à un solde sont calculés pour le terminal de la façon suivante : Cert A = FA (Bal, CSN, CTC) pour la zone active du porte-monnaie et
Cert B = Fβ (Bal, CSN, CTC) pour la zone de copie du porte-monnaie. FA et Fβ étant des fonctions différentes détenues par le terminal. On pourra par exemple prendre comme fonction un algorithme DES utilisant une clé secrète k détenue par le terminal. Lors d'une transaction, l'enregistrement des informations relatives au solde et au certificat dans la zone de copie et dans la zone de sauvegarde se fait suivant le déroulement suivant : - enregistrement du solde et de son certificat
(présents dans la zone active) dans la zone de copie,
- effacement de la zone active,
- écriture du nouveau solde dans la zone active et de son certificat,
- effacement de la zone de copie (effacement de la donnée de sauvegarde) .
Cet enchaînement permet d'éviter toute perte d'information en cas d'arrachement de la carte ou de coupure de courant.
Les différentes étapes mises en oeuvre par le terminal lors d'une transaction sont représentées par les blocs fonctionnels de la figure 3:
Le procédé comporte une phase d'initialisation de la transaction et une phase correspondant à la transaction elle-même.
La phase d'initialisation comporte une vérification de la zone de fraude correspondant aux étapes 50, 51, 52 détaillée dans la suite.
Cette phase d'initialisation comporte en outre une vérification de la parité de la donnée variant à chaque transaction correspondant sur le schéma de la figure 3 aux étapes 400, 401, 203A, 204A, 205A, 207A. Si la première valeur du compteur de transaction est paire, la valeur du compteur de transaction est paire en début et en fin de transaction. La parité du compteur de transaction est vérifiée en début de transaction étapes 400, 401, la valeur du compteur de transaction doit être paire.
Dans le cas où la valeur du compteur de transaction est impaire en début de transaction, l'intégrité des informations de la zone de copie de la carte doit être directement vérifiée 204 A en opérant les étapes 20, 21 et 22 de la figure 4.
Si la vérification est réussie, le terminal transfère les données de la zone de copie dans la zone active étape 205A. Puis le terminal marque le début d'une transaction dans la carte en incrémentant le compteur CTC. A la suite de cela le terminal repasse à l'étape 401. Si la vérification de l'intégrité est négative, le terminal exécute l'étape 206 à savoir incrémentation du compteur de fraude de la carte et éjection de la carte.
Après la vérification de la parité le terminal lit le contenu de la zone active de la carte (porte-monnaie électronique PM) 150, laquelle comporte la donnée
<Ball, CertlA>. Bail est le nombre d'unités de valeur initialement stockées dans la carte, et CertlA est le certificat initialement stocké dans la carte. Le terminal vérifie l'intégrité de ces données, étape 200. Pour cela, il déchiffre cette donnée suivant les étapes 20 à 22 détaillées à la figure 4. Si le certificat qu'il a calculé correspond au certificat de la carte, alors la vérification a réussi. La transaction se poursuit 201, 202, 300.
Le terminal met à jour le solde dans la carte et calcule une nouvelle donnée chiffrée 301 et 302. La mise à jour est réalisée suivant les étapes 30 à 35 illustrées sur la figure 6. FR 7/00947
20
Dans le cas où l'intégrité des données de la zone active n'est pas vérifiée, le terminal lit la zone de copie qui contient <Ball, Certlβ> 203.
Le terminal vérifie l'intégrité des données de sauvegarde 204 par déchiffrement de ces données en opérant les étapes 20, 21 et 22 de la figure 4 sur ces données.
Si le certificat calculé est égal au certificat de cette zone Certl'B≈≈Certlb, alors les données sont intègres, le terminal restaure cette donnée de sauvegarde dans la zone active qui ne contenait rien ou une donnée erronée 205.
Dans le cas où les données contenues dans la zone de copie ne sont pas intègres, alors le terminal inscrit un bit dans la zone de fraude 206.
Selon l'application, une ou plusieurs tentatives de fraude peuvent être acceptées avant de refuser définitivement la carte.
Lorsque la zone de fraude est pleine, la carte est avalée. Le contrôle de la zone de fraude se fait lors d'une étape préalable à la transaction au tout début de l'initialisation de la transaction 50, 51, 52.
La figure 5, illustre les étapes préalables 200, 201 et 202 à la mise en oeuvre d'une transaction. On pourra préférentiellement utiliser des fonctions différentes FA et FB pour le calcul des certificats.
A l'étape 200 (ou 204 ou 204A) , le terminal effectue les opérations développées sur la figure 4.
Le terminal opère le déchiffrement du contenu de la zone active (ou de copie) . (20)
Dans le cas de l'étape 200,
Il calcule ensuite le certificat CertlA correspondant au solde (Bail) de cette zone. (21)
Il opère la vérification d'intégrité. (22) A l'étape 201 :
- le terminal calcule le certificat (CertlB) pour la zone de sauvegarde; (23) il chiffre la donnée (Bail, CertlB); (24) il sauvegarde dans la zone de copie de la carte la valeur chiffrée. (25) A l'étape 202 :
- le terminal incrémenté le compteur CTC; (26)
- il efface le contenu de la zone active. (27)
Dans le cas des étapes 204 ou 204A, le terminal calcule ensuite le certificat Cert IB correspondant au solde Bail de cette zone (21) . Il opère la vérification d'intégrité (22) . Le terminal calcule le certificat Cert 1A pour la zone active (23) , il chiffre la donnée Bail, Cert 1A (24) , il sauvegarde dans la zone active de la carte la valeur chiffrée (25) . Puis le terminal incrémenté le compteur CTC (26) et efface le contenu de la zone de copie (27) .
La figure 6, illustre les étapes de mise à jour du solde après du solde après une transaction (301) et la fin de la transaction (302) .
L'ancien solde Bail est modifié d'une valeur x (en plus ou en moins selon la transaction opérée) pour donner le nouveau solde Bal2 tel que :
Bal2 = Bail ± x (30) , x étant la valeur de la transaction.
Le terminal calcule un nouveau certificat tenant compte de ce nouveau solde, et de la nouvelle valeur du compteur de transaction CTC+1 :
Cert2A = FA(Bal2, Card Id, CTC+1) (31) Le terminal effectue le chiffrement de ces nouvelles données : <Bal2, Cert2A> = Eκ(Bal2, Cert2A) (32)
Le terminal enregistre dans la zone active de la carte cette nouvelle donnée chiffrée. (33)
La zone de copie de la carte contient l'ancienne donnée, c'est-à-dire <Ball, Certlβ>. Le terminal incrémenté le compteur de transaction CTC de la carte en grillant un second bit pour valider la transaction. (34)
Le terminal efface la zone de copie (35) et commande l'éjection de la carte.

Claims

REVENDICATIONS
1. Procédé de stockage d'unités de valeur dans une carte à puce pour la réalisation de transactions à partir d'un terminal, la carte comprenant une mémoire non volatile de type EEPROM (103), comportant une zone active (ZA) susceptible de contenir des informations relatives au nombre d'unités de valeur de la carte pour une application donnée et un certificat calculé par le terminal, notamment à partir de ce nombre, d'une fonction mathématique et d'une donnée qui varie à chaque transaction, la mémoire comportant également une zone de copie (ZC) destinée à contenir des informations de sauvegarde de la zone active, caractérisé en ce que l'enregistrement des informations dans la zone active (ZA) et dans la zone de copie (ZC) à la suite d'une transaction n'est opéré qu'après avoir effectué une opération de chiffrement sur ces informations, les informations chiffrées étant alors enregistrées dans ces zones.
2. Procédé de stockage selon la revendications 1, caractérisé en ce que l'opération de chiffrement est réalisée au moyen d'un algorithme de chiffrement Eκ et d'une clé secrète K pour le terminal de transaction.
3. Procédé de stockage selon la revendication 1 ou 2, caractérisé en ce que l'information représentative du nombre d'unités de valeur et l'information du solde d'unités de valeur correspond à un codage sur un premier nombre constant de bits, et l'information représentative du certificat est codée sur un second nombre constant de bits.
4. Procédé de stockage selon la revendication 3, caractérisé en ce que le codage consiste à prendre comme valeur pour le nombre d'unités de valeur de la carte, un nombre maximal d'unités de valeur défini pour l'application donnée, moins le nombre d'unités de valeur de la carte, le terminal de transaction étant apte à déterminer le nombre d'unités de valeur de la carte en soustrayant au nombre maximal le code lu dans la carte.
5. Procédé de stockage selon l'une quelconque des revendications précédentes caractérisé en ce qu'il consiste à calculer un certificat dans une zone active en utilisant une première fonction (FA) , et à calculer le certificat dans une zone de copie, en utilisant une autre fonction (FB) .
6. Procédé de stockage selon la revendication 5, caractérisé en ce qu'il comporte les étapes consistant à :
- calculer à partir d'une première fonction mathématique FA, un premier certificat CA stocké dans la zone active et garantissant l'intégrité des points de cette zone,
- calculer à partir d'une seconde fonction mathématique FB, un second certificat CB stocké dans la zone de copie et garantissant l'intégrité de cette zone.
7. Procédé de stockage selon la revendication 6, caractérisé en ce qu'il comporte en outre les étapes consistant à : - effectuer une première opération de chiffrement d'une donnée formée par le nombre d'unités de valeur et le premier certificat correspondant CA,
- effectuer un seconde opération de chiffrement d'une donnée formée par le nombre d'unités de valeur et second certificat correspondant CB,
- enregistrer le résultat de la première opération de chiffrement dans la zone active de la mémoire et le résultat de la seconde opération de chiffrement dans la zone de copie.
8. Procédé selon l'une quelconque des revendications précédentes selon lequel le calcul d'un premier certificat est réalisé à partir du nombre d'unités de valeur, mais aussi de la valeur d'un compteur de transaction, caractérisé en ce que, au début d'une transaction, on calcule un certificat à partir du nombre d'unités de valeur présent dans la zone active et d'une valeur du compteur de transaction incrémentée à sa prochaine valeur, la donnée obtenue est chiffrée et enregistrée en zone de copie, le compteur de transaction est ensuite incrémenté à cette nouvelle valeur de sorte qu'à cet instant, le certificat de la zone active n'est plus en accord avec la valeur du compteur, seule la donnée de sauvegarde étant correcte.
9. Procédé selon l'une des revendications précédentes selon lequel la parité de la valeur du compteur de transaction utilisé dans le calcul des certificats est identique en début et en fin de transaction, caractérisé en ce que la valeur du compteur du transaction est incrémentée deux fois durant la transaction, chaque incrémentation étant d'une seule unité.
10 Procédé selon l'une des revendications précédentes selon lequel la valeur du compteur de transaction utilisé dans le calcul des certificats est paire, caractérisé en ce que, au début d'une transaction, on lit la valeur du compteur de transaction de la carte, la valeur lue est paire, on lit les informations de la zone active (ZA), on vérifie l'intégrité des informations de la zone active, l'intégrité des informations de la zone active est vérifiée, on procède au stockage d'unités de valeur dans la carte à puce.
11. Procédé selon l'une des revendications précédentes selon lequel la valeur du compteur de transaction utilisé dans le calcul des certificats est impaire, caractérisé en ce que, au début d'une transaction, on lit la valeur du compteur de transaction de la carte, la valeur lue est impaire, on lit les informations de la zone de copie (ZC) , on vérifie l'intégrité des informations de la zone de copie, l'intégrité des informations de la zone de copie est vérifiée, on calcule un certificat à partir du nombre d'unités de valeur présent dans la zone de copie (ZC) et de la valeur du compteur de transaction incrémentée à sa prochaine valeur paire, la donnée obtenue est chiffrée et enregistrée en zone active (ZA), le compteur est ensuite incrémenté à cette nouvelle valeur de sorte qu'à cet instant, le certificat de la zone de copie (ZC) n'est plus en accord avec la valeur du compteur, seule la donnée de la zone active étant correcte.
12. Système de transaction monétaire utilisant des cartes à puce comprenant une mémoire non protégée avec une zone active pour contenir des données relatives au solde de la carte et une zone de copie pour contenir des données de sauvegarde, caractérisé en ce que les données de zone active et de sauvegarde sont stockées de façon sécurisée selon l'une quelconque des revendications précédentes.
PCT/FR1997/000947 1996-05-31 1997-05-30 Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes WO1997045815A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP97926064A EP0910839B1 (fr) 1996-05-31 1997-05-30 Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes
DE69725723T DE69725723T2 (de) 1996-05-31 1997-05-30 Verfahren zum gesicherten speichern von werteinheiten in einer chipkarte und geldüberweisungssystem zur dessen verwendung

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR96/06705 1996-05-31
FR9606705A FR2749413B1 (fr) 1996-05-31 1996-05-31 Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes

Publications (1)

Publication Number Publication Date
WO1997045815A1 true WO1997045815A1 (fr) 1997-12-04

Family

ID=9492581

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1997/000947 WO1997045815A1 (fr) 1996-05-31 1997-05-30 Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes

Country Status (5)

Country Link
EP (1) EP0910839B1 (fr)
DE (1) DE69725723T2 (fr)
ES (1) ES2212102T3 (fr)
FR (1) FR2749413B1 (fr)
WO (1) WO1997045815A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001039144A1 (fr) * 1999-11-29 2001-05-31 Infineon Technologies Ag Procede et dispositif d'exploitation d'un compteur a plusieurs etages, dans un sens de comptage

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2873471B1 (fr) * 2004-07-26 2006-10-13 Ascom Sa Systeme a carte a memoire sans contact a mot de passe

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0299826A1 (fr) * 1987-07-10 1989-01-18 Schlumberger Industries Procédé et système d'authentification de cartes à mémoire électronique
EP0423035A1 (fr) * 1989-10-13 1991-04-17 Gemplus Card International Système de paiement ou de transfert d'informations par carte à mémoire électronique porte-monnaie
FR2689662A1 (fr) * 1992-04-01 1993-10-08 Gemplus Card Int Procédé de protection d'une carte à puce contre la perte d'information.
EP0621570A1 (fr) * 1993-04-16 1994-10-26 France Telecom Procédé de mise à jour d'une carte à mémoire

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0299826A1 (fr) * 1987-07-10 1989-01-18 Schlumberger Industries Procédé et système d'authentification de cartes à mémoire électronique
EP0423035A1 (fr) * 1989-10-13 1991-04-17 Gemplus Card International Système de paiement ou de transfert d'informations par carte à mémoire électronique porte-monnaie
FR2689662A1 (fr) * 1992-04-01 1993-10-08 Gemplus Card Int Procédé de protection d'une carte à puce contre la perte d'information.
EP0621570A1 (fr) * 1993-04-16 1994-10-26 France Telecom Procédé de mise à jour d'une carte à mémoire

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001039144A1 (fr) * 1999-11-29 2001-05-31 Infineon Technologies Ag Procede et dispositif d'exploitation d'un compteur a plusieurs etages, dans un sens de comptage
US6892937B2 (en) 1999-11-29 2005-05-17 Infineon Technologies Ag Method and configuration for operating a multistage counter in one counting direction

Also Published As

Publication number Publication date
FR2749413A1 (fr) 1997-12-05
DE69725723D1 (de) 2003-11-27
ES2212102T3 (es) 2004-07-16
EP0910839A1 (fr) 1999-04-28
EP0910839B1 (fr) 2003-10-22
DE69725723T2 (de) 2004-07-22
FR2749413B1 (fr) 1998-07-10

Similar Documents

Publication Publication Date Title
EP0423035B1 (fr) Système de paiement ou de transfert d&#39;informations par carte à mémoire électronique porte-monnaie
EP0475837B1 (fr) Procédé de gestion d&#39;un programme d&#39;application chargé dans un support à microcircuit
EP0409701B1 (fr) Carte à microcircuit câblé et procédé de transaction entre une carte à microcircuit câblé correspondante et un terminal
EP0671712B1 (fr) Procédé et dispositif pour authentifier un support de données destiné à permettre une transaction ou l&#39;accès à un service ou à un lieu, et support correspondant
EP0744063B1 (fr) Procede de transaction par carte a puce
EP0998731B1 (fr) Procede et systeme de paiement par cheque electronique
EP0990204B1 (fr) Carte a puce comprenant des moyens pour gerer une memoire virtuelle, procede et protocole de communication associes
EP0414314A1 (fr) Procédé de génération de nombre unique pour carte à micro-circuit et application à la coopération de la carte avec un système hôte
WO1998028719A1 (fr) Procede de transfert securise de donnees par un reseau de communication
FR2697929A1 (fr) Protocole sécurisé d&#39;échange de données entre un dispositif de transfert et un objet portatif.
EP0910839B1 (fr) Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes
EP0434550B1 (fr) Procédé de génération d&#39;un nombre aléatoire dans un système à objets portatifs électroniques, et système pour la mise en oeuvre du procédé
FR2710769A1 (fr) Système de traitement des données d&#39;une carte à microcircuit, carte et lecteur pour ce système et procédé de mise en Óoeuvre.
EP0979495B1 (fr) Procede de certification d&#39;un cumul dans un lecteur
EP3032450B1 (fr) Procédé de contrôle d&#39;une authenticité d&#39;un terminal de paiement et terminal ainsi sécurisé
EP0609156A1 (fr) Système détecteur de falsification d&#39;informations mémorisées
FR2788620A1 (fr) Supports et systemes d&#39;echange de donnees securises notamment pour paiements et telepaiements
WO2016097637A1 (fr) Procede de securisation d&#39;un code pin avec des compteurs d&#39;erreurs dans une carte a puce
WO2013117726A2 (fr) Système de paiement, terminal de paiement de ce système, et procédé de paiement associé
FR2892875A1 (fr) Procede de securisation des paiements par decoupage des montants
FR2834842A1 (fr) Procede d&#39;authentification d&#39;un objet portable informatise par un terminal, systeme mettant en oeuvre le procede, terminal utilise dans le procede et objet portable utilise dans le procede

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN JP US

AL Designated countries for regional patents

Kind code of ref document: A1

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

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1997926064

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

Ref document number: 97541752

Format of ref document f/p: F

WWP Wipo information: published in national office

Ref document number: 1997926064

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: CA

WWG Wipo information: grant in national office

Ref document number: 1997926064

Country of ref document: EP