WO2006029960A1 - Procede et dispositif de mise a jour d'une graine etablie par une fonction deterministe dans un dispositif de communication a traitement numerique - Google Patents

Procede et dispositif de mise a jour d'une graine etablie par une fonction deterministe dans un dispositif de communication a traitement numerique Download PDF

Info

Publication number
WO2006029960A1
WO2006029960A1 PCT/EP2005/054292 EP2005054292W WO2006029960A1 WO 2006029960 A1 WO2006029960 A1 WO 2006029960A1 EP 2005054292 W EP2005054292 W EP 2005054292W WO 2006029960 A1 WO2006029960 A1 WO 2006029960A1
Authority
WO
WIPO (PCT)
Prior art keywords
seed
valid
value
seeds
volatile memory
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.)
Ceased
Application number
PCT/EP2005/054292
Other languages
English (en)
Inventor
Henri Ohanian
Christophe Aillaud
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 Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of WO2006029960A1 publication Critical patent/WO2006029960A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system

Definitions

  • the invention generally relates to communication devices and in particular the updating of a value evolving deterministically in such devices.
  • the updating of a deterministically evolving value is used in particular for the generation of random numbers, the synchronization of messages or the incrementation of a counter.
  • the generation of a random number by the circuits of a smart card is relatively imperfect. Indeed, the different numbers do not have the same probability of being generated.
  • the number generated by the circuits is combined with a number undergoing a deterministic evolution. Such a number is commonly referred to as seed (referred to as Seed in English).
  • seed Such a number is commonly referred to as Seed in English).
  • the value of the seed is thus modified iteratively by a deterministic algorithm during an update.
  • the random numbers generated are then used for different applications, in particular for the generation of encryption keys.
  • an external interruption of contactless communication between a card and a terminal may alter the iteration algorithm.
  • the stored seed can then be truncated.
  • an interruption in communication or power may truncate other values on the card while they are being updated.
  • a smart card as described in document EP-A-0 756 746 uses generic backup functions (function called backup) to save data in non-volatile memory.
  • the initial value of a data item before it is updated is read in a location of use of the non-volatile memory, and then this initial value is copied to a reserved place in the non-volatile memory.
  • An updated value is calculated in RAM.
  • the updated value is stored in the usage location by overwriting the initial value.
  • the process of restoring the valid initial value is as follows: the initial value is read in the reserved slot. The initial value is copied to the usage location and overwrites the updated value. The updating of a seed is also carried out according to this method.
  • Such a smart card has disadvantages.
  • certain applications of the smart card for example, a card used as a transport ticket detected by a terminal
  • the start phase of the smart card (the ISO 14443-3 and ISO 14443-4 standards define the establishment of contactless communication between the card and a terminal) is too long important for the transaction duration to be respected.
  • the update steps require multiple writes in memory. These operations are relatively long to implement.
  • the possible phases of restoration of a seed are also relatively long to implement.
  • the first seed is generated randomly.
  • the deterministic function is an increasing function and the first seed is selected by comparison of valid seed values.
  • the deterministic function is a decreasing function and the first seed is selected by comparing valid seed values.
  • the invention also relates to a method for generating a random number, comprising the steps of such an update method and further comprising the step of generating a random number according to the second seed stored.
  • the invention also relates to a digital processing device having a non-volatile memory and a processing unit, capable of implementing such methods.
  • the device has a communication interface without contact with other devices.
  • the device is a smart card.
  • FIG. 1 an algorithm for updating a seed implemented according to the invention
  • FIG. 2 a diagram of the steps of incrementing a seed
  • FIG. 3 an example of evolution of the seed values according to the invention.
  • seed will subsequently designate a value evolving deterministically from an initial value. This initial value is either generated randomly by the device, or registered in the factory in nonvolatile memory of the device.
  • the invention proposes to update a seed in a digital processing device, by reading a first seed, by applying a deterministic function to generate a second seed, generating an indicator of validity of the second seed, and then entering the seed. second seed and its indicator in a single operation in a non-volatile memory of the device.
  • write validity indicators make it possible to determine the valid seeds.
  • the first seed is selected from these valid seeds. If no seed is valid, the first seed is randomly generated. The value of the first seed is retained to allow the recovery of a valid value if the writing of the second seed is still found to be faulty.
  • FIG. 1 illustrates different steps in an exemplary method of updating a seed according to
  • the steps 101 to 103 aim to determine the validity of two seeds stored in the nonvolatile memory of the device. For a given seed, a write validity flag is calculated and then the indicator obtained is compared with the associated write validity flag of the non-volatile memory. The seed is considered valid if and only if the compared indicators are equal.
  • step 101 the validity of a GrI seed is tested by means of its validity indicator. If GrI is invalid, the process proceeds to step 102. If GrI is valid, the process proceeds to step 104. In steps 102 and 104, it is determined whether a seed Gr2 is valid by means of its flag. validity. At the end of steps 102 and 104, the valid seeds were thus determined from seeds Gr1 and Gr2.
  • GrI is valid the process proceeds to step 112 where GrI is selected as the first seed. If Gr2 is valid, the process proceeds to step 111 where Gr2 is selected as the first seed.
  • the write validity flags are determined by a cyclic redundancy check (CRC) algorithm. Any other validity verification algorithm may also be used: it will be possible in particular to perform a parity test on the seed bits.
  • Step 105 determines the last valid value among the different valid values identified. The first seed selected is then the last valid value. For each valid value found, the deterministic function is applied. The last valid value will be the one for which the result of the function will not match another valid value. This seed will be used as the first seed for the update. In the example, if GrI and Gr2 are valid and if Gr2 is the result of applying the deterministic function on GrI, Gr2 is the last valid value and will be used as the first seed.
  • the deterministic function can, in a simplified case, be an increasing function, for example an incrementation of one unit.
  • the last valid seed is in this case the one with the greatest value.
  • the deterministic function can also be a decreasing function, for example a decrementation of a unit.
  • the last valid seed is in this case the one with the smallest value.
  • Step 103 takes place when no valid seed has been identified. This case may especially occur during the initialization of the device.
  • the seed values in the non-volatile memory are then indeterminate.
  • a first seed is generated randomly or with the aid of an appropriate algorithm.
  • its validity indicator is also calculated.
  • This first seed and its indicator are written in a single operation in the non-volatile memory, overwriting the previous values of the seed GrI.
  • the process then proceeds to step 112: the second seed is calculated from the generated GrI seed.
  • Steps 111 and 112 are steps for calculating the second seed.
  • the deterministic function is applied to the first selected seed.
  • Figure 2 illustrates more precisely different phases that can be implemented during the calculation of the second seed.
  • Figure 2 illustrates more precisely the progress of steps 111 and 112.
  • step 121 the first seed is copied to RAM.
  • step 122 the value of the second seed is calculated in random access memory.
  • step 123 the write validity flag of the second seed is calculated in random access memory.
  • step 124 the calculated second seed and the flag are written in a single operation in the nonvolatile memory.
  • the seeds are preferably written in separate pages of the non-volatile memory.
  • the security of saving the seed is thus increased: if the page of a seed is attacked or damaged, the probability that a page containing another seed is attacked or damaged is then reduced.
  • the second seed and its indicator crush a seed and an indicator that have not been selected as the first seed.
  • the second seed generated and its indicator will crush the Gr2 seed and its indicator.
  • FIG. 3 represents the evolution of the seed values in an exemplary method according to the invention.
  • the left columns show the values of a GrI seed and its validity indicator.
  • the columns on the right indicate the values of a seed Gr2 and its validity indicator.
  • the values shown correspond to the values present in the non-volatile memory when the device is turned on.
  • GrI has the hexadecimal value FFFF
  • its indicator is a CRC whose value is correct.
  • Gr2 has any value and the associated CRC has an incorrect value.
  • the deterministic function is therefore applied to GrI.
  • the second seed and its CRC are then written in the location of the volatile memory dedicated to Gr2. In the example, the deterministic function increments the seed value by 1.
  • the result of the deterministic function is therefore 0000.
  • the sequence is an arithmetic sequence of reason 1. Since the number of coding bits of a seed is predefined, the sequence applied to the maximum coded value results in the minimum coded value: thus, the double-byte value FFFF results in the value 0000. In this case, exceptions are made for the extreme values: when a seed reaches the maximum value, it will be considered as less than the minimum value. In the above example, exception 0000 will be considered greater than FFFF. Errors in the selection of the first seed are thus avoided.
  • Gr2 is selected as the first seed because it is identified as the last valid seed.
  • the seed Gr2 is therefore incremented.
  • the resulting value (0001) and the associated CRC are written to the location of the GrI memory. These values are present in the non-volatile memory during the third power up at time t3.
  • GrI and Gr2 are valid.
  • GrI is identified as the last valid seed.
  • the value GrI is incremented in RAM. A disturbance occurs during the writing of the incremented value in the location of Gr2.
  • the value of GrI is still 0001 and the value of Gr2 is any value. Because of the write error, Gr2 is determined to be invalid because of its CRC. GrI is therefore selected as the first seed. GrI is incremented in RAM. The value 00 02 and its CRC are then registered instead of Gr2 in the non-volatile memory. During the fifth power-up at time t5, these seed values are thus present in the non-volatile memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Optimization (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Transceivers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

L'invention concerne un procédé et dispositif basé sur un algorithme (fig. 1) de mise à jour d'une graine calculée de façon itérative par une fonction déterministe dans un dispositif de traitement numérique comprenant une mémoire non-volatile, lesdits procédé et dispositif étant caractérisés en ce que ledit algorithme détermine la validité desdites graines et sélectionne une graine valide parmi l'ensemble des graines disponibles.

Description

PROCEDE ET DISPOSITIF DE MISE A JOUR D' UNE GRAINE ETABLIE PAR UNE FONCTION DETERMINISTE DANS UN DISPOSITIF DE COMMUNICATION A TRAITEMENT NUMERIQUE
L'invention concerne de façon générale les dispositifs de communication et en particulier la mise à jour d'une valeur évoluant de façon déterministe dans de tels dispositifs. La mise à jour d'une valeur évoluant de façon déterministe est notamment utilisée pour la génération de nombres aléatoires, la synchronisation de messages ou l'incrémentation d'un compteur.
La génération d'un nombre aléatoire par les circuits d'une carte à puce est relativement imparfaite. En effet, les différents nombres n'ont pas la même probabilité d'être générés. Pour pallier à cet inconvénient, le nombre généré par les circuits est combiné avec un nombre subissant une évolution déterministe. Un tel nombre est couramment désigné par le terme graine (désigné par le terme Seed en langue anglaise) . La valeur de la graine est ainsi modifiée de façon itérative par un algorithme déterministe lors d'une mise à jour. Les nombres aléatoires générés sont ensuite utilisés pour différentes applications, notamment pour la génération de clés de cryptage.
Lors de la phase de démarrage, une interruption extérieure de la communication sans contact entre une carte et un terminal peut altérer l'algorithme d'itération. La graine stockée peut alors être tronquée. De même, pour une communication par contact, une interruption de la communication ou de l'alimentation peut tronquer d'autres valeurs de la carte durant leur mise à jour. Afin de pallier à cet inconvénient, une carte à puce telle que décrite dans le document EP-A-O 756 746 utilise des fonctions de sauvegarde génériques (fonction appelée backup) pour sauvegarder des données en mémoire non volatile. La valeur initiale d'une donnée avant sa mise à jour est lue dans un emplacement d'usage de la mémoire non volatile, puis cette valeur initiale est recopiée dans un emplacement réservé dans la mémoire non volatile. Une valeur mise à jour est calculée en mémoire vive. La valeur mise à jour est mémorisée dans l'emplacement d'usage en écrasant la valeur initiale. Si la valeur mise à jour est déterminée comme défaillante, le processus de restauration de la valeur initiale valide est le suivant : la valeur initiale est lue dans l'emplacement réservé. La valeur initiale est copiée dans l'emplacement d'usage et écrase la valeur mise à jour. La mise à jour d'une graine est également effectuée selon ce procédé.
Une telle carte à puce présente cependant des inconvénients. En mode de communication sans contact, certaines applications de la carte à puce (par exemple, une carte utilisée comme titre de transport détecté par une borne) exigent par exemple une durée de transaction inférieure à 100 millisecondes entre le terminal et la carte. La phase de démarrage de la carte à puce (les standards ISO 14443-3 et ISO 14443-4 définissent l'établissement de la communication sans contact entre la carte et un terminal) présente une durée trop importante pour que la durée de transaction soit respectée. Les étapes de mise à jour nécessitent plusieurs écritures en mémoire. Ces opérations sont relativement longues à mettre en œuvre. Les éventuelles phases de restauration d'une graine sont également relativement longues à mettre en œuvre.
Il existe donc un besoin pour un procédé de mise à jour d'une graine dans un dispositif de traitement numérique, comprenant les étapes de : -lecture d'une première graine dans une mémoire non volatile du dispositif ;
-génération d'une seconde graine par une fonction déterministe appliquée à la première graine ;
-génération d'un indicateur de validité d'écriture associé à la seconde graine ;
-écriture de la seconde graine et de l'indicateur de validité d'écriture associé en une seule opération dans la mémoire non volatile, en conservant la valeur de la première graine ; -détermination de graines valides parmi plusieurs graines de la mémoire non volatile au moyen d'indicateurs de validité d'écriture respectifs de la mémoire non volatile ;
-si au moins une graine est déterminée valide, sélection de la première graine parmi les graines valides au moyen de ladite fonction déterministe.
Dans le cas où aucune desdites graines n'est déterminée valide, la première graine est générée aléatoirement. Selon une variante, la fonction déterministe est une fonction croissante et la première graine est sélectionnée par comparaison des valeurs des graines valides. Selon une autre variante, la fonction déterministe est une fonction décroissante et la première graine est sélectionnée par comparaison des valeurs des graines valides .
L'invention porte également sur un procédé de génération d'un nombre aléatoire, comprenant les étapes d'un tel procédé de mise à jour et comprenant en outre l'étape de génération d'un nombre aléatoire en fonction de la seconde graine mémorisée.
L'invention porte encore sur un dispositif de traitement numérique présentant une mémoire non volatile et un organe de traitement, susceptible de mettre en œuvre de tels procédés. Selon une variante, le dispositif présente une interface de communication sans contact avec d'autres appareils .
Selon encore une variante, le dispositif est une carte à puce.
L'invention sera mieux comprise à la lecture de la description qui suit, accompagnée des dessins annexés qui représentent :
-Figure 1, un algorithme de mise à jour d'une graine mis en œuvre selon l'invention ;
-Figure 2, un diagramme des étapes d'incrémentation d'une graine ;
-Figure 3, un exemple d'évolution des valeurs de graine selon l'invention. Le terme graine désignera par la suite une valeur évoluant de façon déterministe à partir d'une valeur initiale. Cette valeur initiale est soit générée aléatoirement par l'appareil, soit inscrite en usine dans une mémoire non volatile de l'appareil.
L'invention propose de mettre à jour une graine dans un dispositif de traitement numérique, en lisant une première graine, en y appliquant une fonction déterministe pour générer une seconde graine, en générant un indicateur de validité de la seconde graine, puis en inscrivant la seconde graine et son indicateur en une seule opération dans une mémoire non volatile du dispositif.
Parmi plusieurs graines de la mémoire non volatile, des indicateurs de validité d'écriture permettent de déterminer les graines valides . La première graine est sélectionnée parmi ces graines valides . Si aucune graine n'est valide, la première graine est générée aléatoirement. La valeur de la première graine est conservée pour permettre la récupération d'une valeur valide si l'écriture de la seconde graine se révélait malgré tout défaillante.
La figure 1 illustre différentes étapes dans un exemple de procédé de mise à jour d'une graine selon
1' invention.
Les étapes 101 à 103 visent à déterminer la validité de deux graines mémorisées dans la mémoire non volatile du dispositif. Pour une graine donnée, un indicateur de validité d'écriture est calculé puis l'indicateur obtenu est comparé à l'indicateur de validité d'écriture associé de la mémoire non volatile. La graine est considérée valide si et seulement si les indicateurs comparés sont égaux. A l'étape 101, la validité d'une graine GrI est testée au moyen de son indicateur de validité. Si GrI est non valide, le procédé passe à l'étape 102. Si GrI est valide, le procédé passe à l'étape 104. Aux étapes 102 et 104, il est déterminé si une graine Gr2 est valide au moyen de son indicateur de validité. A la fin des étapes 102 et 104, les graines valides ont ainsi été déterminées parmi les graines GrI et Gr2.
Trois cas se présentent alors :
-ni GrI, ni Gr2 ne sont valides. Le procédé passe alors à l'étape 103 ;
-GrI et Gr2 sont valides. Le procédé passe alors à l'étape 105 ;
-Une seule valeur est valide. Si GrI est valide le procédé passe à l'étape 112 où GrI est sélectionnée comme première graine. Si Gr2 est valide, le procédé passe à l'étape 111 où Gr2 est sélectionnée comme première graine.
Dans l'exemple, les indicateurs de validité d'écriture sont déterminés par un algorithme de test de redondance cyclique (CRC pour Cyclic Redundancy Check en langue anglaise) . Tout autre algorithme de vérification de validité peut également être utilisé : on pourra notamment prévoir de réaliser un test de parité sur les bits des graines . L'étape 105 détermine la dernière valeur valide parmi les différentes valeurs valides identifiées. La première graine sélectionnée est alors la dernière valeur valide. Pour chaque valeur valide trouvée, la fonction déterministe est appliquée. La dernière valeur valide sera celle pour laquelle le résultat de la fonction ne correspondra pas à une autre valeur valide. Cette graine sera utilisée comme première graine pour la mise à jour. Dans l'exemple, si GrI et Gr2 sont valides et si Gr2 est le résultat de l'application de la fonction déterministe sur GrI, Gr2 est la dernière valeur valide et sera utilisée comme première graine.
La fonction déterministe peut, dans un cas simplifié, être une fonction croissante, par exemple une incrémentation d'une unité. La dernière graine valide est dans ce cas celle qui présente la plus grande valeur. La fonction déterministe peut également être une fonction décroissante, par exemple une décrémentation d'une unité. La dernière graine valide est dans ce cas celle qui présente la plus petite valeur.
L'étape 103 se déroule lorsque aucune graine valide n'a été identifiée. Ce cas peut notamment se présenter lors de l'initialisation du dispositif. Les valeurs des graines dans la mémoire non volatile sont alors indéterminées. Dans ce cas, une première graine est générée aléatoirement ou à l'aide d'un algorithme adéquat. Lors d'une génération aléatoire de la première graine, son indicateur de validité est également calculé. Cette première graine et son indicateur sont écrits en une seule opération dans la mémoire non volatile, en écrasant les valeurs précédentes de la graine GrI. Le procédé passe alors à l'étape 112 : la seconde graine est calculée à partir de la graine GrI générée.
Les étapes 111 et 112 sont des étapes de calcul de la seconde graine. La fonction déterministe est appliquée à la première graine sélectionnée. La figure 2 illustre plus précisément différentes phases pouvant être mises en œuvre lors du calcul de la seconde graine.
La figure 2 illustre plus précisément le déroulement des étapes 111 et 112.
A l'étape 121, la première graine est copiée en mémoire vive. A l'étape 122, la valeur de la seconde graine est calculée en mémoire vive. A l'étape 123, l'indicateur de validité d'écriture de la seconde graine est calculé en mémoire vive. A l'étape 124, la seconde graine et l'indicateur calculés sont écrits en une seule opération dans la mémoire non volatile.
Les graines sont de préférence écrites dans des pages distinctes de la mémoire non volatile. La sécurité de la sauvegarde de la graine est ainsi accrue : si la page d'une graine est attaquée ou abîmée, la probabilité qu'une page contenant une autre graine soit attaquée ou abîmée est alors réduite.
Pour réduire le nombre de graines mémorisées dans la mémoire non volatile, on peut également prévoir que la seconde graine et son indicateur écrasent une graine et un indicateur qui n'ont pas été sélectionnés comme première graine. Par exemple, avec GrI comme première graine, la seconde graine générée et son indicateur vont écraser la graine Gr2 et son indicateur. Afin d'éviter une génération de graines aléatoire lors d'une initialisation de l'appareil, on peut également prévoir que des valeurs de graine par défaut avec des indicateurs correspondants soient écrites en usine dans la mémoire non volatile de l'appareil.
La figure 3 représente l'évolution des valeurs de graine dans un exemple de procédé selon l'invention. Les colonnes de gauche indiquent les valeurs d'une graine GrI et de son indicateur de validité. Les colonnes de droite indiquent les valeurs d'une graine Gr2 et de son indicateur de validité. Les valeurs représentées correspondent aux valeurs présentes dans la mémoire non volatile lors d'une mise sous tension de 1'appareil. Lors de la première mise sous tension illustrée à l'instant tl, GrI présente la valeur hexadécimale FFFF, son indicateur est un CRC dont la valeur est correcte. Gr2 présente une valeur quelconque et le CRC associé présente une valeur non correcte. Lors de la mise à jour, seule GrI est déterminée comme valide. GrI est donc sélectionnée comme première graine pour la mise à jour. La fonction déterministe est donc appliquée à GrI . La seconde graine et son CRC sont alors écrits dans l'emplacement de la mémoire volatile dédié à Gr2. Dans l'exemple, la fonction déterministe incrémente la valeur de graine de 1. Le résultat de la fonction déterministe est donc 0000.
Ces valeurs sont donc présentes dans la mémoire non volatile lors de la seconde mise sous tension à l'instant t2. Lors de la mise à jour, GrI et Gr2 sont déterminées valides .
Dans l'exemple simplifié de la figure 3, la suite est une suite arithmétique de raison 1. Le nombre de bits de codage d'une graine étant prédéfini, la suite appliquée à la valeur maximum codée aboutit à la valeur minimum codée : ainsi, la valeur FFFF codée sur deux octets aboutit à la valeur 0000. On prévoit dans ce cas des exceptions pour les valeurs extrêmes: lorsqu'une graine atteint la valeur maximum codée, elle sera considérée comme inférieure à la valeur minimum codée. Dans l'exemple précédent, par exception 0000 sera considérée comme supérieure à la valeur FFFF. Des erreurs lors de la sélection de la première graine sont ainsi évitées.
Selon le mécanisme précédemment décrit, Gr2 est sélectionnée comme première graine car elle est identifiée comme la dernière graine valide. La graine Gr2 subit donc une incrémentation. La valeur obtenue (0001) et le CRC associé sont écrits dans l'emplacement de la mémoire GrI . Ces valeurs sont présentes dans la mémoire non volatile lors de la troisième mise sous tension à l'instant t3. Lors de la mise à jour, GrI et Gr2 sont déterminées valides . GrI est identifiée comme la dernière graine valide. La valeur GrI est incrémentée en mémoire vive. Une perturbation intervient durant l'écriture de la valeur incrémentée dans l'emplacement de Gr2.
Lors de la quatrième mise sous tension à l'instant t4, la valeur de GrI est encore 0001 et la valeur de Gr2 est une valeur quelconque. Du fait de l'erreur d'écriture, Gr2 est déterminée comme non valide du fait de son CRC. GrI est donc sélectionnée comme première graine. GrI est incrémentée en mémoire vive. La valeur 00 02 et son CRC sont alors inscrits en remplacement de Gr2 dans la mémoire non volatile. Lors de la cinquième mise sous tension à l'instant t5, ces valeurs de graine sont ainsi présentes dans la mémoire non volatile.
Bien que les exemples décrits n'utilisent que deux graines, l'homme du métier peut également utiliser un plus grand nombre de graines en fonction des applications souhaitées . Les tailles des graines et des indicateurs de validité d'écriture sont également fournies à titre d'exemple.

Claims

REVENDICATIONS
1. Procédé de mise à jour d'une graine dans un dispositif de traitement numérique, comprenant les étapes de :
-lecture d'une première graine dans une mémoire non volatile du dispositif (121) ;
-génération d'une seconde graine par une fonction déterministe appliquée à la première graine (122) ; -génération d'un indicateur de validité d'écriture associé à la seconde graine (123) ; -écriture de la seconde graine et de l'indicateur de validité d'écriture associé en une seule opération dans la mémoire non volatile, en conservant la valeur de la première graine (124) ; caractérisé en ce qu'il comprend en outre les étapes suivantes :
-détermination de graines valides parmi plusieurs graines de la mémoire non volatile au moyen d'indicateurs de validité d'écriture respectifs de la mémoire non volatile (101, 102, 104) ; -si au moins une graine est déterminée valide, sélection de la première graine parmi les graines valides au moyen de ladite fonction déterministe (105) .
2. Procédé selon la revendication 1, caractérisé en ce que, si aucune desdites graines n'est déterminée valide, la première graine est générée aléatoirement (103) .
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que :
-la fonction déterministe est une fonction croissante ;
-la première graine est sélectionnée par comparaison des valeurs des graines valides .
4. Procédé selon la revendication 1 ou 2, caractérisé en ce que :
-la fonction déterministe est une fonction décroissante ; -la première graine est sélectionnée par comparaison des valeurs des graines valides .
5. Procédé de génération d'un nombre aléatoire, comprenant les étapes d'un procédé de mise à jour selon l'une quelconque des revendications précédentes, et comprenant en outre l'étape de génération d'un nombre aléatoire en fonction de la seconde graine mémorisée.
6. Dispositif de traitement numérique présentant une mémoire non volatile et un organe de traitement, caractérisé en ce qu'il est susceptible de mettre en œuvre un procédé selon l'une quelconque des revendications précédentes .
7. Dispositif selon la revendication 6, caractérisé en ce qu'il présente une interface de communication sans contact avec d'autres appareils.
8. Dispositif selon la revendication 6 ou 1, caractérisé en ce que le dispositif est une carte à puce.
PCT/EP2005/054292 2004-09-09 2005-09-01 Procede et dispositif de mise a jour d'une graine etablie par une fonction deterministe dans un dispositif de communication a traitement numerique Ceased WO2006029960A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0409585A FR2875080B1 (fr) 2004-09-09 2004-09-09 Mise a jour optimisee d'une valeur deterministe dans un dispositif de communication
FR04/09585 2004-09-09

Publications (1)

Publication Number Publication Date
WO2006029960A1 true WO2006029960A1 (fr) 2006-03-23

Family

ID=34949398

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/054292 Ceased WO2006029960A1 (fr) 2004-09-09 2005-09-01 Procede et dispositif de mise a jour d'une graine etablie par une fonction deterministe dans un dispositif de communication a traitement numerique

Country Status (2)

Country Link
FR (1) FR2875080B1 (fr)
WO (1) WO2006029960A1 (fr)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2730833A1 (fr) * 1995-02-16 1996-08-23 Gemplus Card Int Procede de mise a jour securisee de memoire eeprom
US5715431A (en) * 1993-04-13 1998-02-03 Mondex International Limited Tamper proof security measure in data writing to non-volatile memory
US6061703A (en) * 1997-05-15 2000-05-09 International Business Machines Corporation Pseudorandom number generator with normal and test modes of operation
US20030034388A1 (en) * 2000-05-15 2003-02-20 Larry Routhenstein Method for generating customer secure card numbers subject to use restrictions by an electronic card
US20040162864A1 (en) * 2002-07-08 2004-08-19 Globespan Virata Inc. System and method for generating pseudo-random numbers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715431A (en) * 1993-04-13 1998-02-03 Mondex International Limited Tamper proof security measure in data writing to non-volatile memory
FR2730833A1 (fr) * 1995-02-16 1996-08-23 Gemplus Card Int Procede de mise a jour securisee de memoire eeprom
US6061703A (en) * 1997-05-15 2000-05-09 International Business Machines Corporation Pseudorandom number generator with normal and test modes of operation
US20030034388A1 (en) * 2000-05-15 2003-02-20 Larry Routhenstein Method for generating customer secure card numbers subject to use restrictions by an electronic card
US20040162864A1 (en) * 2002-07-08 2004-08-19 Globespan Virata Inc. System and method for generating pseudo-random numbers

Also Published As

Publication number Publication date
FR2875080A1 (fr) 2006-03-10
FR2875080B1 (fr) 2006-10-27

Similar Documents

Publication Publication Date Title
EP0261162B1 (fr) Procede de sauvagarde qualtitative de donnees numerisees
EP2842232B1 (fr) Procédé de contrôle de redondance cyclique protégé contre une attaque par canal auxiliaire
EP2786253A1 (fr) Procede de detection d'une erreur de lecture d'une donnee
FR2906926A1 (fr) Dispositif et procede iteratif de code de correction des erreurs (ecc), avec relecture et information d'erreur-effacement combines
EP2100250A2 (fr) Systeme et procede de securisation de donnees
FR3107416A1 (fr) Tokenisation aléatoire efficace dans un environnement dématérialisé
EP1573541A2 (fr) Procede de memorisation de donnees avec correction d'erreur
EP3502899A1 (fr) Procédé de détermination d'une somme d'intégrité, programme d'ordinateur et entité électronique associés
WO2025081800A1 (fr) Procédé et appareil de correction d'erreur de mémoire, dispositif et support de stockage lisible
WO2006029960A1 (fr) Procede et dispositif de mise a jour d'une graine etablie par une fonction deterministe dans un dispositif de communication a traitement numerique
EP1904946A1 (fr) Detection d'une faute par perturbation longue
EP3552346B1 (fr) Procédé d'émission d'un message, procédé de réception, dispositif d'émission, dispositif de réception et système de communication associés
FR3082333A1 (fr) Procede de determination d’inverse modulaire et dispositif de traitement cryptographique associe
EP4390730B1 (fr) Protection d'un procédé d'authentification
FR2889005A1 (fr) Integrite materielle permanente des donnees
US7966539B2 (en) Digital content protection systems and methods
WO2016166445A1 (fr) Procédé de sécurisation de l' exécution d'un programme
WO1998029844A1 (fr) Procede de securisation d'une donnee dans une memoire reinscriptible
EP2343663A1 (fr) Procédé de protection polymorphe d'un code exécutable
WO2017060495A1 (fr) Procédé et système de sauvegarde répartie dynamique
EP4687318A1 (fr) Procédé de comparaison sécurisée à zéro, dispositif électronique et programme d'ordinateur associés
WO2026013504A1 (fr) Procédé pour l'exécution d'un programme d'application au moyen d'un module de sécurité matérielle équipé d'une mémoire sécurisée
FR3164301A1 (fr) Procédé pour l’exécution d’un programme d’application au moyen d’un module de sécurité matérielle équipé d’une mémoire sécurisée.
CN112906844A (zh) 基于(3,1)汉明码的二维码秘密共享、还原方法及装置
FR3122753A1 (fr) Procédé d'exécution d'un code binaire par un microprocesseur

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase