EP0910839A1 - Method for safely storing credit units in a smart card and monetary transaction system using same - Google Patents

Method for safely storing credit units in a smart card and monetary transaction system using same

Info

Publication number
EP0910839A1
EP0910839A1 EP97926064A EP97926064A EP0910839A1 EP 0910839 A1 EP0910839 A1 EP 0910839A1 EP 97926064 A EP97926064 A EP 97926064A EP 97926064 A EP97926064 A EP 97926064A EP 0910839 A1 EP0910839 A1 EP 0910839A1
Authority
EP
European Patent Office
Prior art keywords
value
transaction
card
certificate
area
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.)
Granted
Application number
EP97926064A
Other languages
German (de)
French (fr)
Other versions
EP0910839B1 (en
Inventor
Jean-Paul Kirik
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.)
Gemplus SA
Original Assignee
Gemplus SCA
Gemplus Card International 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 SCA, Gemplus Card International SA filed Critical Gemplus SCA
Publication of EP0910839A1 publication Critical patent/EP0910839A1/en
Application granted granted Critical
Publication of EP0910839B1 publication Critical patent/EP0910839B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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

The invention discloses a method for storing credit units in a smart card for carrying out transactions from a terminal, the card comprising a non-volatile EEPROM type memory (103), comprising an active zone (ZA) capable of containing information items concerning the number of the card credit units for a given application and a certificate computed by the terminal, in particular based on this number, on a mathematical function and on data varying with each transaction, the memory also comprising a copy zone (ZC) for containing a backup of the active zone (ZA) information items; the recording of information items in the active zone (ZA) and in the copy zone (ZC) following a transaction executed only after carrying out a coding operation on these information items, these coded information items being then recorded in these zones. Application to electronic cash systems.

Description

PROCÉDÉ DE STOCKAGE DES UNITÉS DE VALEUR DANS UNE CARTEMETHOD FOR STORING VALUE UNITS IN A CARD
A PUCE DE FAÇON SÉCURISÉE ET SYSTEME DE TRANSACTIONSECURELY CHIP AND TRANSACTION SYSTEM
MONÉTAIRE AVEC DE TELLES CARTES.MONETARY WITH SUCH CARDS.
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.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.
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.Indeed, 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.
Le procédé s'applique également à des cartes à puce à mémoire protégée afin d'en élever le niveau de sécurité.The method also applies to smart cards with protected memory in order to raise the level of security.
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é.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.
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.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. However, 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.
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.In the known state of the art, the basic mechanisms existing are the use of an integrity certificate, a transaction counter as well as a copy area. These mechanisms will be detailed below. In the case of microprocessor cards, these basic mechanisms can be included in operating systems. These mechanisms can also be applied in the form of an application note or an application recommendation to microprocessor cards and to certain synchronous type memory cards.
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.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.
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.More specifically, the term 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. By transaction is meant a change in the number of value units of a card.
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.Mechanism 1: 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.
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 :If the certificate is correct, the number of value units present in the card is considered valid. Mechanism 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.This mechanism consists in including in the calculation of this certificate data varying with each transaction. The introduction of 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. At 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. Of course, 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.
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.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.
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.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. In the event of a card being torn off, 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.
Toutes ces sécurités n'empêchent pas malheureusement certaines fraudes que l'on va expliciter dans ce qui suit :All these safeguards do not unfortunately prevent certain frauds which we will explain in the following:
1er cas de fraude :1st case of fraud:
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.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.
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.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. In this specific case, there is no mechanism preventing the content of the card's memory zone from being modified, the card having no protected zone. Then the fraudster will write in the card, instead of the previous certificate a random value. Due to the low memory capacities of the components used, the certificates are saved on a few 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.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.
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 :Since this is a transaction interrupt, the transaction counter may not have been changed yet. Since the memory area containing the units of value is not protected against modifications, a fraudster can transfer the content of the copy area to the active area. The content of the copy area is valid since its certificate always corresponds to the value of the transaction counter. This fraud makes it possible to recover the units of value used. 3rd case of fraud:
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.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.
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.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.
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.According to another characteristic, the encryption operation is carried out by means of an algorithm of encryption E κ and a secret key K by the transaction terminal.
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.According to another characteristic, 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.
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.Thus, 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.
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.According to another characteristic, 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. Thus, in the case where the certificate of the copy zone is copied in the active zone, it will no longer be valid.
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;More precisely, 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;
- 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.- calculate from a second mathematical function FB, a second certificate CB stored in the copy area and guaranteeing the integrity of this area.
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,Preferably, 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,
- 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,- perform a second encryption operation of a data item formed by the number of value units and the corresponding second certificate 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.- Save the result of the first encryption operation in the active area of the memory and the result of the second encryption operation in the copy area.
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.In order to avoid that the content of the active area cannot be used in the event of being torn away, according to another characteristic of the invention, the calculation of a first certificate is carried out from the number of units of value, but also the value of a transaction counter. At the start of a transaction, 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.
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.According to a characteristic of the invention, 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.
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.Thus, according to the method, 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. When 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.
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.When the value of the transaction counter used in calculating the certificates is odd, then at the start of a transaction, we read the value of the card transaction counter, the value read is odd, we read the information in the copy (ZC), we check the integrity of the information in the copy area, the integrity of the information in the copy area is checked, we calculate a certificate from the number of value units present in the copy area (ZC) and the value of the transaction counter incremented to its next even value, the data obtained is encrypted and saved in active area (ZA), the counter is then incremented to this new value so that at this instant, the certificate of the copy area (ZC) is no longer in agreement with the value of the counter, only the data of the active area being correct.
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.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.
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 :Other advantages and characteristics of the invention will appear on reading the following description which is given by way of illustration and not limitation and with reference to the drawings in which:
- la figure 1, représente le schéma d'un système de transaction,FIG. 1 represents the diagram of a transaction system,
- la figure 2, représente une structure des données de la mémoire 103 de carte à puce selon un exemple de réalisation,FIG. 2 represents a structure of the data of the memory 103 of the smart card according to an exemplary embodiment,
- la figure 3, représente les étapes relatives à une transaction mises en oeuvre par un terminal,FIG. 3 represents the steps relating to a transaction implemented by a 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,FIG. 4 represents the steps implemented during the verification of the integrity of the data of the active area or of the copy area,
- la figure 5, représente les étapes préalable à une transaction décrite en figure 3,FIG. 5 represents the steps prior to a transaction described in FIG. 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κ.- Figure 6 shows the steps for updating the balance after a transaction and the end of the transaction. Thus, according to a first characteristic of the invention, 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 κ .
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.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.
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) .To solve this problem, it is proposed according to a characteristic of the invention, that 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).
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.This number is therefore zero as long as no transaction has taken place. Thus, a zero number of value units in the card corresponds to the maximum value unit value for the application. And conversely, the maximum value of value units in the card corresponds to a zero value of value units for the 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.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.
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.In this way, when the card contains a zero, it will correspond to the maximum value. A zero in the card is coded on a single bit. Thus, 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.
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.It is necessary to indicate to the terminals the memory size allocated to the certificate for each card. For this, this size is indicated in the unprotected EEPROM memory area of the card, with the number of value units and the certificate. This indication is present in the active area and in the copy area.
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.According to another characteristic of the invention, the calculation of the certificate of the active area is carried out differently from the calculation of the certificate of the copy area.
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.It is then no longer possible to transfer the content of the active zone into the copy zone. 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.
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.According to another characteristic of the invention, so that the content of the active area of a card cannot be reused in the event of the card being torn off, 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. At this precise moment, 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.
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.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.
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.The invention will now be described in the case of application to a monetary transaction system, the terminal 100 being a monetary terminal and the card 103, an electronic purse card.
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 :According to a preferred embodiment, 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:
- 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) ,- a circuit identification value (silicon circuit) in the circuit Id zone, - a customer code in the card issuer reference zone (banking organization),
- une donnée d'identification de l'application dans la zone Id Card (donnée par l'émetteur) ,- an application identification data in the Id Card area (given by the issuer),
- un numéro de série CSN de la carte (donné par exemple par le fabricant) .- a CSN serial number of the card (given for example by the manufacturer).
La mémoire comporte une zone de compteurs comportant les champs suivants :The memory includes a counter area comprising the following fields:
- 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.- a fraud counter incremented on each verification of a certificate proving to be bad. This counter is formed by 3 bits according to the practical embodiment which has been made.
- un compteur de transaction CTC.- a CTC transaction counter.
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) .In an exemplary embodiment, 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 memory cells of the counting stage C1 have a weight of 1, ... and those of the stage C8 have a weight of 4096 = 8 4 ).
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.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, however, 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.
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.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.
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 :It is calculated for example from an identification data ID, a one-way function f op and a secret key according to the formula:
CER = fop (ID, K)CER = f op (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.ID is for example the content of the card identification zones, circuit identification u of transmitter reference. - a user area.
Il s'agit de la zone active porte-monnaie électronique et de la zone de copie pour les sauvegardes.This is the active electronic wallet area and the copy area for backups.
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.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.
La donnée chiffrée correspondant à une des deux zones du porte-unités peut s'écrire de la façon suivante :The encrypted data corresponding to one of the two areas of the unit carrier can be written as follows:
<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<Bal, Cert> = E κ (Bal, Cert) Bal being the number of value units and Cert the corresponding certificate K being the secret key of the terminal <given> the encrypted value (given) the unencrypted value
Eκ l'algorithme de chiffrement. Le calcul du certificat permet d'assurer l'intégrité des données du porte-monnaie électronique.E κ the encryption algorithm. The calculation of the certificate ensures the integrity of the data in the electronic purse.
Les données suivantes sont utilisées dans le calcul :The following data are used in the calculation:
- la valeur du solde, ce qui rend le certificat unique pour un solde donné,- the value of the balance, which makes the certificate unique for a given balance,
- 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.- permanent card data, namely identification data (card and issuer), - the CTC transaction counter. At each transaction two bits are toasted in this CTC counter and the counter can only be incremented or only decremented. One bit is toasted at the start of a transaction, a second bit is toasted at the end of the 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 etAccording to one of the characteristics of the invention, the certificates corresponding to a balance are calculated for the terminal as follows: Cert A = F A (Bal, CSN, CTC) for the active area of the wallet and
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 certificatCert B = F β (Bal, CSN, CTC) for the wallet copy area. F A and F β being different functions held by the terminal. We could for example take as a function a DES algorithm using a secret key k held by the terminal. During a transaction, 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
(présents dans la zone active) dans la zone de copie,(present in the active area) in the copy area,
- effacement de la zone active,- deletion of the active area,
- écriture du nouveau solde dans la zone active et de son certificat,- writing the new balance in the active area and its certificate,
- effacement de la zone de copie (effacement de la donnée de sauvegarde) .- deletion of the copy area (deletion of the backup data).
Cet enchaînement permet d'éviter toute perte d'information en cas d'arrachement de la carte ou de coupure de courant.This sequence makes it possible to avoid any loss of information in the event of the card being torn off or a power failure.
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:The different steps implemented by the terminal during a transaction are represented by the functional blocks of FIG. 3:
Le procédé comporte une phase d'initialisation de la transaction et une phase correspondant à la transaction elle-même.The method includes a phase of initialization of the transaction and a phase corresponding to the transaction itself.
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.The initialization phase includes a verification of the fraud zone corresponding to steps 50, 51, 52 detailed below.
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.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.
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.In the case where 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 204 A by performing steps 20, 21 and 22 of FIG. 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.If the verification is successful, 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.
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éeAfter checking the parity, the terminal reads the content of the active area of the card (electronic purse PM) 150, which contains the data
<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.<Ball, Certl A >. Lease is the number of units of value initially stored in the card, and CertlA is the certificate initially stored in the card. The terminal verifies the integrity of this data, step 200. For this, it decrypts this data according to steps 20 to 22 detailed in FIG. 4. If the certificate that it calculated corresponds to the certificate of the card, then the verification has succeeded. The transaction continues 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/00947The 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
2020
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.In the event that the data integrity of the active area is not checked, the terminal reads the copy area which contains <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.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.
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.If the calculated certificate is equal to the certificate of this area Certl'B≈≈Certlb, then the data is intact, the terminal restores this backup data in the active area which contained nothing or an erroneous data 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.If the data contained in the copy zone is not intact, then the terminal writes a bit in the fraud zone 206.
Selon l'application, une ou plusieurs tentatives de fraude peuvent être acceptées avant de refuser définitivement la carte.Depending on the application, one or more fraud attempts may be accepted before definitively refusing the card.
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.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.
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.FIG. 5 illustrates the preliminary steps 200, 201 and 202 to the implementation of a transaction. Preferably, different FA and FB functions can be used for calculating certificates.
A l'étape 200 (ou 204 ou 204A) , le terminal effectue les opérations développées sur la figure 4.In step 200 (or 204 or 204A), the terminal performs the operations developed in FIG. 4.
Le terminal opère le déchiffrement du contenu de la zone active (ou de copie) . (20)The terminal operates the decryption of the content of the active area (or of copy). (20)
Dans le cas de l'étape 200,In the case of step 200,
Il calcule ensuite le certificat CertlA correspondant au solde (Bail) de cette zone. (21)It then calculates the CertlA certificate corresponding to the balance (Lease) for this area. (21)
Il opère la vérification d'intégrité. (22) A l'étape 201 :It operates the integrity check. (22) In step 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 :- 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:
- le terminal incrémenté le compteur CTC; (26)- the terminal increments the CTC counter; (26)
- il efface le contenu de la zone active. (27)- it erases the content of the active area. (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) .In the case of steps 204 or 204A, the terminal then 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).
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) .FIG. 6 illustrates the steps for updating the balance after the balance after a transaction (301) and the end of the 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 :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 = Bail ± x (30) , x étant la valeur de la transaction.Bal2 = Lease ± x (30), x being the value of the transaction.
Le terminal calcule un nouveau certificat tenant compte de ce nouveau solde, et de la nouvelle valeur du compteur de transaction CTC+1 :The terminal calculates a new certificate taking into account this new balance, and the new value of the transaction counter 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)Cert2 A = F A (Bal2, Card Id, CTC + 1) (31) The terminal encrypts this new data: <Bal2, Cert2 A > = E κ (Bal2, Cert2 A ) (32)
Le terminal enregistre dans la zone active de la carte cette nouvelle donnée chiffrée. (33)The terminal records this new encrypted data in the active area of the card. (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)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. (34)
Le terminal efface la zone de copie (35) et commande l'éjection de la carte. The terminal clears the copy area (35) and controls the ejection of the card.

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.1. Method for storing value units in a smart card for carrying out transactions from a terminal, the card comprising a non-volatile memory of EEPROM type (103), comprising an active area (ZA) capable of contain information relating to the number of value units of the card for a given application and a certificate calculated by the terminal, in particular from this number, a mathematical function and a data which varies with each transaction, the memory also comprising a copy zone (ZC) intended to contain information for saving the active zone, characterized in that the recording of the information in the active zone (ZA) and in the copy zone (ZC) as a result a transaction is only carried out after having performed an encryption operation on this information, the encrypted information then being recorded in these 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.2. Storage method according to claims 1, characterized in that the encryption operation is carried out by means of an encryption algorithm E κ and a secret key K for the transaction terminal.
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. 3. Storage method according to claim 1 or 2, characterized in that 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.
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.4. Storage method according to claim 3, characterized in that 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 transaction terminal being able to determine the number of value units of the card by subtracting the code read from the card from the maximum number.
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) .5. Storage method according to any one of the preceding claims, characterized in that it consists in calculating a certificate in an active area using a first function (FA), and in calculating the certificate in a copy area, using another function (FB).
6. Procédé de stockage selon la revendication 5, caractérisé en ce qu'il comporte les étapes consistant à :6. Storage method according to claim 5, characterized in that it comprises the steps consisting in:
- 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,- calculate from a first mathematical function FA, a first certificate CA stored in the active area and guaranteeing the integrity of the points in this area,
- 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.- calculate from a second mathematical function FB, a second certificate CB stored in the copy area and guaranteeing the integrity of this area.
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,7. Storage method according to claim 6, characterized in that it 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,
- 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,- perform a second encryption operation of a data item formed by the number of value units and corresponding second certificate 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.- Save the result of the first encryption operation in the active area of the memory and the result of the second encryption operation in the copy area.
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.8. Method according to any one of the preceding claims, in which the calculation of a first certificate is carried out from the number of value units, but also from the value of a transaction counter, characterized in that, at start of a transaction, 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 saved in the copy area , 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.
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é.9. Method according to one of the preceding claims, according to which 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, characterized in that the value of the transaction counter is incremented two time during the transaction, each increment being of a single 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.10 Method according to one of the preceding claims, in which the value of the transaction counter used in the calculation of the certificates is even, characterized in that, at the start of a transaction, the value of the transaction counter of the card is read, the value read is even, we read the information in the active area (ZA), we verify the integrity of the information in the active area, the integrity of the information in the active area is verified, we proceed to store units of value in the smart card.
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. 11. Method according to one of the preceding claims, according to which the value of the transaction counter used in the calculation of the certificates is odd, characterized in that, at the start of a transaction, the value of the transaction counter is read from the card. , the value read is odd, we read the information in the copy area (ZC), we check the integrity of the information in the copy area, the integrity of the information in the copy area is checked, we calculate a certificate from the number of value units present in the copy zone (ZC) and from the value of the transaction counter incremented to its next even value, the data obtained is encrypted and recorded in the active zone (ZA), the counter is then incremented to this new value so that at this instant, the certificate of the copy zone (ZC) is no longer in agreement with the value of the counter, only the data of the active zone being correct.
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. 12. Monetary 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, characterized in that the area data Active and backup are securely stored according to any one of the preceding claims.
EP97926064A 1996-05-31 1997-05-30 Method for safely storing credit units in a smart card and monetary transaction system using same Expired - Lifetime EP0910839B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9606705 1996-05-31
FR9606705A FR2749413B1 (en) 1996-05-31 1996-05-31 METHOD FOR STORING VALUE UNITS IN A SECURELY CHIP CARD AND MONETARY TRANSACTION SYSTEM WITH SUCH CARDS
PCT/FR1997/000947 WO1997045815A1 (en) 1996-05-31 1997-05-30 Method for safely storing credit units in a smart card and monetary transaction system using same

Publications (2)

Publication Number Publication Date
EP0910839A1 true EP0910839A1 (en) 1999-04-28
EP0910839B1 EP0910839B1 (en) 2003-10-22

Family

ID=9492581

Family Applications (1)

Application Number Title Priority Date Filing Date
EP97926064A Expired - Lifetime EP0910839B1 (en) 1996-05-31 1997-05-30 Method for safely storing credit units in a smart card and monetary transaction system using same

Country Status (5)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1192329C (en) 1999-11-29 2005-03-09 因芬尼昂技术股份公司 Method and arrangement for operating multi-stage counter in counting direction
FR2873471B1 (en) * 2004-07-26 2006-10-13 Ascom Sa NON-CONTACT MEMORY CARD SYSTEM WITH PASSWORD

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2618002B1 (en) * 1987-07-10 1991-07-05 Schlumberger Ind Sa METHOD AND SYSTEM FOR AUTHENTICATING ELECTRONIC MEMORY CARDS
FR2653248B1 (en) * 1989-10-13 1991-12-20 Gemolus Card International PAYMENT OR INFORMATION TRANSFER SYSTEM BY ELECTRONIC MEMORY CARD.
FR2689662B1 (en) * 1992-04-01 1994-05-20 Gemplus Card International METHOD FOR PROTECTING A SMART CARD AGAINST LOSS OF INFORMATION.
FR2704081B1 (en) * 1993-04-16 1995-05-19 France Telecom Method for updating a memory card and memory card for implementing this method.

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9745815A1 *

Also Published As

Publication number Publication date
DE69725723T2 (en) 2004-07-22
WO1997045815A1 (en) 1997-12-04
ES2212102T3 (en) 2004-07-16
FR2749413A1 (en) 1997-12-05
EP0910839B1 (en) 2003-10-22
DE69725723D1 (en) 2003-11-27
FR2749413B1 (en) 1998-07-10

Similar Documents

Publication Publication Date Title
EP0423035B1 (en) Payment or information transfer system using an electronic memory card as wallet
EP0475837B1 (en) Method of managing an application program stored in an ic card
EP0409701B1 (en) Hard-wired micro-circuit card and transaction method between a respective hard-wired micro-circuit card and a terminal
EP0671712B1 (en) Method and device to authenticate a data carrier, intended to approve a transaction or the access to a service or a place; and corresponding data carrier
EP0744063B1 (en) Smart card transaction method
EP0998731B1 (en) Method and system for payment by electronic cheque
CA2046289C (en) Method for generating random numbers in a data processing system and system using said method
EP0990204B1 (en) Chip card comprising means for managing a virtual memory, associated communication method and protocol
EP0414314A1 (en) Single-number generation method for micro-chip card and use of same for the cooperation of the card with a host-system
BE1008699A3 (en) Method and arrangement for selective give access to a security system.
WO1998028719A1 (en) Method for secure transfer of data by a communication network
FR2697929A1 (en) Security protocol for information exchange with portable object - using exchange and updating of signatures, achieved through algorithm, certificate and random number
EP0910839B1 (en) Method for safely storing credit units in a smart card and monetary transaction system using same
EP0434550B1 (en) Method of generating a pseudo-random number in a portable electronic objects system and a system for carrying out the method
FR2710769A1 (en) System for processing the data from a microcircuit card, card and reader for this system and method of implementation
EP0979495B1 (en) Rollup certification in a reader
EP3032450B1 (en) Method for checking the authenticity of a payment terminal and terminal thus secured
EP0609156A1 (en) System to detect falsified stored information
FR2788620A1 (en) Storage and transaction systems for secure remote payment systems
WO2016097637A1 (en) Method of securing a pin code with error counters in a chip card
WO2013117726A2 (en) Payment system, payment terminal of said system, and associated payment method
FR2892875A1 (en) METHOD OF SECURING PAYMENTS BY CUTTING AMOUNTS
FR2834842A1 (en) Terminal transaction authentication having card asymmetric encryption algorithm generating cryptogram and authentication exchanging information card/terminal with supplementary algorithm generating secret specification

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: 19990104

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): BE DE DK ES FI FR GB IT NL PT SE

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

Owner name: GEMPLUS

17Q First examination report despatched

Effective date: 20010425

GRAH Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOS IGRA

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): BE DE DK ES FI FR GB IT NL PT SE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20031022

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20031022

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REF Corresponds to:

Ref document number: 69725723

Country of ref document: DE

Date of ref document: 20031127

Kind code of ref document: P

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20040122

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20040122

GBT Gb: translation of ep patent filed (gb section 77(6)(a)/1977)

Effective date: 20040204

NLV1 Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents act
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20040531

REG Reference to a national code

Ref country code: ES

Ref legal event code: FG2A

Ref document number: 2212102

Country of ref document: ES

Kind code of ref document: T3

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

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

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20040723

BERE Be: lapsed

Owner name: *GEMPLUS

Effective date: 20040531

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20040322

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: ES

Payment date: 20090506

Year of fee payment: 13

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: IT

Payment date: 20090424

Year of fee payment: 13

Ref country code: FR

Payment date: 20090527

Year of fee payment: 13

Ref country code: DE

Payment date: 20090603

Year of fee payment: 13

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20090427

Year of fee payment: 13

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20100530

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20110131

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100530

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20101201

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100531

REG Reference to a national code

Ref country code: ES

Ref legal event code: FD2A

Effective date: 20110715

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20110705

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100530

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20100531