FR2686989A1 - Procede de comptage de securite pour un compteur electronique binaire. - Google Patents

Procede de comptage de securite pour un compteur electronique binaire. Download PDF

Info

Publication number
FR2686989A1
FR2686989A1 FR9201002A FR9201002A FR2686989A1 FR 2686989 A1 FR2686989 A1 FR 2686989A1 FR 9201002 A FR9201002 A FR 9201002A FR 9201002 A FR9201002 A FR 9201002A FR 2686989 A1 FR2686989 A1 FR 2686989A1
Authority
FR
France
Prior art keywords
counter
binary
stages
register
bit
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
FR9201002A
Other languages
English (en)
Other versions
FR2686989B1 (fr
Inventor
Kowalski Kacek
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
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 filed Critical Gemplus Card International SA
Priority to FR9201002A priority Critical patent/FR2686989B1/fr
Priority to DE4302553A priority patent/DE4302553A1/de
Priority to US08/012,103 priority patent/US5381452A/en
Priority to JP5036125A priority patent/JPH0613890A/ja
Publication of FR2686989A1 publication Critical patent/FR2686989A1/fr
Application granted granted Critical
Publication of FR2686989B1 publication Critical patent/FR2686989B1/fr
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/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/62Performing operations exclusively by counting total number of pulses ; Multiplication, division or derived operations using combined denominational and incremental processing by counters, i.e. without column shift
    • 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
    • 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/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K21/00Details of pulse counters or frequency dividers
    • H03K21/40Monitoring; Error detection; Preventing or correcting improper counter operation
    • H03K21/403Arrangements for storing the counting state in case of power supply interruption

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Abstract

L'invention concerne les compteurs nécessitant une grande sécurité de comptage. Elle consiste dans un tel compteur (201-203), en partant d'un nombre représenté par un certain nombre de bits à forcer les étages du compteur successivement les uns après les autres, pour représenter le nombre final dans un ordre tel qu'à aucun moment le contenu du compteur ne représente un nombre inférieur au nombre initial. Une structure particulière permet de compter de très grands nombres en évitant, dans le cas où la technologie est du type EEPROM, de solliciter l'étage qui change le plus souvent d'état, plus que ne le permet physiquement la technologie utilisée. Elle permet, dans les cartes a puces, de ne pas faire diminuer les nombres mémorisés représentant des valeurs importantes, monétaires par exemple.

Description

i 2686989
PROCEDE DE COMPTAGE DE SECURITE POUR
UN COMPTEUR ELECTRONIQUE BINAIRE
La présente invention se rapporte aux procédés qui permettent de compter des nombres croissants dans un compteur binaire en toute sécurité, c'est à dire sans qu'un fraudeur puisse perturber le comptage dans un sens favorable à la fraude. Les compteurs binaires sont utilisés en grand nombre dans les systèmes électroniques logiques pour servir à des fins diverses Dans certains cas il est tout à fait important que la valeur du nombre ainsi mémorisé dans ce compteur ne puisse être modifiée autrement que par le fonctionnement normal du dispositif et non pas par un événement extérieur, tel que par exemple l'intervention d'un fraudeur ou un fonctionnement parasite du système Une sécurité totale n'est toutefois pas toujours nécessaire et il est souvent beaucoup plus important d'éviter que le compteur ne revienne en arrière alors qu'une progression excessive de ce compteur n'amènera que des inconvénients limités On citera à titre d'exemple le cas particulier des compteurs qui mémorisent des événements extérieurs dans une carte à mémoire dite carte à puce Ces événements extérieurs peuvent être par exemple la consommation d'unités téléphoniques, ou le prélèvement d'argent dans un distributeur automatique Il est bien clair que si un fraudeur a la possibilité de ramener le compteur en arrière il pourra utiliser la carte en question de manière excessive, alors que si au contraire son intervention ne fait que progresser le compteur en
avant il n'y trouvera aucun intérêt.
Pour de petits nombres on pourrait bien sûr utiliser un système du type mémoire à fusible, qui est par essence irréversible Toutefois dès que le nombre est un peu élevé ce système se révèle à la fois
excessivement encombrant et très onéreux.
Pour résoudre ce problème l'invention propose un procédé de comptage de sécurité pour un compteur électronique binaire comprenant un ensemble d'étages binaires permettant de représenter un nombre entier, principalement caractérisé en ce que, pour incrémenter ce compteur binaire depuis un premier nombre jusqu'à un deuxième nombre supérieur au premier, on force dans leur état final au moins les étages dont le contenu doit changer, selon un ordre tel qu'à aucun moment le contenu du compteur ne représente un nombre inférieur au premier
nombre.
D'autres particularités et avantages de l'invention
apparaîtront clairement dans la description suivante,
présentée à titre d'exemple non limitatif en regard des figures annexées qui représentent: La figure 1, le schéma d'un registre de type EEPROM connu permettant de mettre en oeuvre l'invention; la figure 2, la structure d'un compteur selon l'invention; la figure 3, le schéma partiel d'un compteur selon l'invention; et la figure 4, le diagramme de certains signaux
dans le schéma de la figure 3.
Le procédé de comptage selon l'invention utilise un registre binaire dans lequel des 1 ou des O peuvent être inscrits de manière permanente, de manière à rester mémorisés même en l'absence des tensions de fonctionnement nécessaires au circuit En outre ces chiffres binaires peuvent être effacés puis réinscrits, lorsque le dispositif est sous tension bien entendu Un tel registre est essentiellement réalisé selon une technique dite EEPROM bien connue dans l'art, mais on
pourrait utiliser d'autres techniques équivalentes.
En prenant comme exemple un compteur à huit étages, pouvant donc compter en binaire jusqu'à 256, on montrera d'abord comment, selon l'invention, faire
progresser ce compteur de une unité d'une manière sure.
Supposons par exemple que le compteur contienne le nombre décimal 155, soit en binaire:
( 1) 11011001
Dans l'art connu, le registre est câblé en compteur proprement dit, c'est à dire que l'introduction d'un 1 supplémentaire est faite sur le premier étage et que les étages sont câblés de manière à faire progresser de proche en proche les reports successifs correspondant aux débordements de chaque étage Dans ces conditions une intervention extérieure, par exemple la coupure de l'alimentation ou un parasite, peut perturber ce mécanisme et le compteur peut se retrouver alors dans un état correspondant à un nombre moins élevé que celui
dont il est parti.
Pour faire passer l'état du compteur de 155 à 156 par exemple, on introduit dans cet art connu un 1 supplémentaire dans le première étage, qui passe à zéro et entraine un report sur le deuxième étage, qui passe lui-même à zéro en entrainant un report sur le troisième étage qui passe à 1 L'opération s'arrête là, l'état du
compteur correspondant alors à 156 en décimal.
Si pour une raison quelconque, fraude ou parasite, le report ne s'effectue pas par exemple entre le premier et le deuxième étage, le registre contiendra à la fin le chiffre 154 en décimal et l'on aura donc régressé par
rapport au chiffre de départ.
Pour éviter ceci, selon l'invention, le registre lui-même n'est pas câblé en compteur mais est utilisé en simple mémoire dont on vient forcer les étages Cette opération se fait à partir d'une logique séparée du registre et qui fonctionne de telle manière que les forçages successifs des étages du registre se font d'une manière telle que les nombres binaires correspondant à chaque forçage passent par des valeurs supérieures à la valeur du nombre mémorisé au départ, pour aboutir à la
valeur du nombre finalement voulu.
Ainsi donc, dans cet exemple, on commence par rechercher le premier zéro qui se présente à partir de la gauche (ici comme dans tout ce texte le bit le plus significatif sera celui à droite dans les formules) On écrit ensuite un 1 à la place de ce zéro dans le bit correspondant L'état du registre devient alors:
( 2) 11111001
ce qui correspond au chiffre décimal 159.
On écrit ensuite un zéro sur tous les bits à gauche de celui qui vient de passer à 1 L'état du registre est alors:
( 3) 00111001
ce qui correspond bien au nombre décimal 156 qui est
celui voulu.
On est donc passé ainsi du nombre 155 au nombre 156 en incrémentant le compteur de une unité, tout en passant par le nombre intermédiaire 159 qui est plus élevé que le nombre 155 de départ, ce qui est le résultat cherché On remarque d'ailleurs que le passage à zéro des deux bits les plus à gauche, qui a été décrit comme se faisant simultanément, pourrait se faire dans un ordre quelconque, puisque l'on se placerait à ce moment dans des états intermédiaires toujours supérieurs
à 155.
Ce procédé s'étend aussi à l'incrémentation, d'un
seul coup, d'un nombre d'unités supérieur à 1.
A titre d'exemple on va expliquer la manière de passer d'une valeur décimale 154 à une valeur décimale 179 sans passer par les valeurs décimales inférieures à 154. Le nombre 154 s'écrit en binaire:
( 4) 01011001
Le nombre décimal 179 s'écrit lui:
( 5) 11001101
Selon l'invention, on détermine tout d'abord quel est le premier étage le plus à droite qui passera d'un zéro à 1 entre les valeurs 154 et 179 Ce premier étage
est le sixième à partir de la gauche.
On commence donc par forcer à 1 ce sixième étage, ce qui donne le nombre binaire:
( 6) 01011101
Ce nombre binaire correspond au nombre décimal 186.
On remet ensuite à zéro les cinq bits les plus à gauche, situés donc avant le sixième bit qui vient d'être mis à 1, ce qui donne le nombre binaire
( 7) 00000101
Ce nombre binaire correspond au nombre décimal 160,
qui est donc bien supérieur à 154.
On termine en écrivant un 1 sur les premier, deuxième et cinquième bits, pour aboutir au nombre
binaire vu plus haut en formule ( 5).
On a donc là aussi obtenu le résultat voulu de passer de 154 à 179 sans passer par une valeur intermédiaire inférieure à 154 on remarquera en outre
qu'il a suffi de 5 écritures pour ajouter 15 unités.
Ceci est particulièrement favorable dans le cas ou l'on utilise pour le registre de comptage une technologie EEPRON, puisque comme on le sait le nombre de réinscriptions dans les cellules obtenues selon une telle technologie n'est pas illimité, bien qu'il soit assez grand dans les usages courants pour lesquels elles
sont utilisées.
Les exemples ci-dessus ont été décrits en logique directe, mais on pourrait également utiliser une logique inverse o les O sont remplacés par des 1 et vice-versa, l'essentiel étant qu'à aucun moment du processus le contenu du registre formant compteur ne soit dans un état logique correspondant à nombre inférieur au nombre
de départ.
Dans la pratique, la manière dont on programmera les cellules individuelles du registre dépendra
essentiellement de la réalisation physique de celui-ci.
En effet selon les technologies utilisées il n'est pas toujours possible de commander individuellement chaque
cellules dans un sens ou dans l'autre.
En prenant par exemple un registre de 8 bits réalisé dans une technologie EEPRON courante dans la technique, comme représenté sur la figure 1, celui-ci comprend pour chaque cellule dédiée à un bit un transistor de mémorisation 101 relié en série avec un transistor de lecture 102 Ce transistor 102 est relié à une entrée individuelle BLI, et le transistor de mémorisation loi à une ligne AG commune à tous les transistors de mémorisation Les grilles des transistor 102 sont reliées à une ligne de lecture commune WL Les grilles des transistors 101 sont reliées à une ligne commune 104, qui est alimentée à partir d'une entrée VS par l'intermédiaire d'un transistor de lecture 103, dont
la grille est elle-même reliée à WL.
Dans cette structure connue, il n'est pas possible d'effacer une seule cellule séparée et l'on est obligé de les effacer toutes ensembles Selon les notations et l'usage classique, cet effacement correspond à l'inscription d'un 1 dans toutes les cellules Pour cela il faut appliquer les tensions suivantes WL = Vpp (Tension de programmation) VS = Vpp AG = O (masse) BLI à BL 8 = O ou flottante On peut par contre programmer chaque cellule séparément Cette programmation correspond, selon les notations et l'usage classique, à inscrire un zéro dans la cellule Pour programmer par exemple la première cellule, correspondant aux transistors 101 et 102, il faut appliquer les tensions suivantes: WL = Vpp
VS = O
AG = flottant BLI = Vpp BL 2 à BL 8 = O ou flottant En reprenant alors le premier exemple, o l'on veut faire progresser le contenu du registre de 1 à partir du nombre 155, on commencera par faire passer toutes, les cellules à 1 en appliquant les tensions: Vs = Vpp WL = Vpp AG = o On constate que toutes les cellules passent par 1, ce qui en fait rajoute une étape à l'organigramme décrit plus haut Mais, comme prévu par l'invention, dans cette étape le registre compteur se retrouve dans un état
supérieur à celui du départ.
Pour continuer le processus, on reprogramme alors sur zéro tous les bits qui étaient à zéro avant l'effacement du compteur (l'effacement correspond au passage à 1 comme on l'a vu plus haut), sauf bien entendu le bit qui doit passer à 1 à partir de zéro, c'est à dire le troisième à partir de la gauche Pour cela on applique les tensions suivantes:
VS = O
WL = Vpp AG = flottant BL 6 = BL 7 = Vpp BLI à BL 5 et BL 8 = O ou flottant on se retrouve alors dans l'état correspondant au
nombre de la formule ( 2 >.
De préférence ces deux étapes feront partie du même cycle de programmation, correspondant à un effacement/lecture suivi d'une reprogrammation, comme cela est classique dans la technologie EEPRON Bien évidemment sur chaque ligne de bit dans le montage physique utilisé on disposera d'une bascule qui permettra de mémoriser le mot qui est lu au début, afin de procéder aux réinscriptions adéquates en fonction de
la logique utilisée.
Dans le cycle suivant, on écrit alors des zéros sur tous les bits à gauche du bit qui a été adressé, le troisième dans l'exemple, en appliquant les tensions: VS = o WL = Vpp AG = Flottant BLI = BL 2 = Vpp BL 3 à BL 8 = O ou flottant Après ce cycle d'inscription, on se retrouve bien avec le nombre binaire correspondant à la formule ( 3),
qui est celui désiré.
on constate d'ailleurs que dans cette réalisation physique on peut légèrement simplifier l'organigramme en
rassemblant en une seule fois l'inscription des zéros.
En effet, comme on l'a vu, on ne peut pas inscrire un seul 1 dans le troisième étage et il faut faire passer tous les étages à 1, puis réinscrire les zéros à droite de l'étage adressé La simplification consistera alors à inscrire simultanément les zéros nécessaires à gauche
dans la même phase on l'on inscrit les zéros à droite.
L'utilisation de ce procédé soulève toutefois un problème avec certaines technologies, notamment celle décrite concernant une mémoire du type EEPROM En effet, en considérant par exemple l'état de départ et l'état d'arrivée donnés par les formules ( 1) et ( 3) dans le cas o l'on a augmenté le contenu du compteur de une unité, on constate que ces deux état correspondent aux deux états successifs d'un compteur ordinaire dans un compteur normal (en logique naturelle) o l'étage le plus à gauche, correspondant au bit de poids faible, change d'état à chaque fois que l'on incrémente le compteur de une unité Ceci veut dire que l'on effectue à chaque fois une opération d'écriture/effacement Dans le cas o le compteur est formé d'un registre de 16 bits, correspondant par exemple à deux registres standards de 8 bits mis en série, celui-ci peut compter au maximum jusque 216 = 65536, ce qui correspond à autant d'opérations d'écriture/effacement de la première cellule du compteur Or le nombre de fois o l'on peut effectuer une telle opération d'écriture/effacement dans
une cellule du type EEPROM courante n'est pas illimité.
On considère en général que c'est justement au alentour de ce nombre 65000 que la cellule est tellement détériorée qu'il n'est plus possible de continuer à l'utiliser. Pour avoir un registre permettant un comptage de sécurité sur des nombres plus grands, l'invention propose donc d'utiliser un registre comportant plus de 16 étages en série, en sacrifiant une partie de la capacité de ce registre au profit des possibilités d'enregistrement physiquement effectives, en utilisant
la structure décrite ci-après.
En se référant à la figure 2, le registre selon l'invention comprend une première partie 201 comportant 16 étages, qui peut éventuellement être formée de deux sous-parties de 8 étages chacune, puis deux autres
parties 202 et 203 comportant chacune 8 étages.
Les deux parties 202 et 203 sont utilisées chacune comme un compteur binaire naturel dans lequel le premier étage bascule au fur et à mesure de 1 'incrémentation du compteur Ces deux compteurs sont mis en série et ils permettent donc, comme on l'a vu plus haut, de compter jusqu'à un nombre égal à 65536 qui correspond à la fois à la capacité maximale des deux compteurs mis en série et au nombre physiquement acceptable d'écritures/effacements de la première cellule du
compteur 202.
Pour pouvoir aller plus loin, on utilise la première partie 201 comme un compteur bit par bit, c'est que chaque bit correspond à un chiffre 1 qui est inscrit une seule fois Donc le compteur pourra compter au
maximum jusque 16, lorsque les 16 étages seront pleins.
De cette manière, à chaque incrémentation de ce compteur bit à bit il n'y qu'un seul étage qui subit un cycle d'écriture/effacement, les autres n'étant pas sollicités et ne consommant pas, "inutilement" en quelque sorte,
des capacités d'écriture/effacement.
En fait dans la technologie EEPROM utilisée comme exemple on ne peut pas inscrire séparément des 1, comme on l'a vu plus haut, mais il faut inscrire tous les 1 d'un seul coup dans tous les étages et on peut ensuite inscrire des zéros séparément dans chaque étage En fait ceci est sans importance puisqu'on peut effectivement inscrire des 1 au départ, puis successivement des zéros il dans chaque étage en utilisant une logique inverse o le zéro dans chaque étage correspondra en fait à une unité
supplémentaire d'incrémentation.
Lorsque ce compteur bit à bit 201 est entièrement rempli, on incrémente alors de une unité le compteur 202, selon le procédé suivant l'invention décrit plus haut, puis, lorsque ce compteur 202 est plein le compteur 203 etc jusqu'à ce que l'ensemble formé des
deux compteurs 202 et 203 contiennent le nombre 65536.
Pour compter des 1 alors que l'on inscrit des zéros, il suffit par exemple de mettre un inverseur si l'opération se fait au niveau d'une logique câblée, ou d'utiliser une instruction adéquate dans la programmation du système logique, un microprocesseur par exemple, qui permet de programmer les étages des compteurs et de lire les états qui étaient ainsi mémorisés. Dans cette structure, le nombre enregistré est égal au nombre à enregistrer dans les deux compteurs 202/203 utilisés comme un compteur ordinaire, ce nombre étant multiplié par 16, plus le nombre d'unités enregistrées
dans le compteur bit par bit 201.
A titre d'exemple, prenons le nombre défini par la formule binaire suivante: ( 9) 00001 h 11111 ht 11 t 00111100 110001111 Les 16 premiers bits à gauche correspondent au contenu du compteur bit à bit 201 et comprennent quatre zéros à gauche Selon la logique inverse adoptée, ces quatre zéros correspondent à quatre unités Les 8 bits suivants, comportant deux zéros suivis de quatre 1 et de deux zéros, représentent le contenu du registre 202,
soit en logique directe habituelle le nombre 60.
Les 8 derniers bits à droite comprennent deux 1 suivis de trois zéros, puis de trois 1, et représentent
le contenu du registre 203 avec la valeur 227.
Au total ces deux registres 202 et 203 représentent le nombre 930752, auquel il faut ajouter le nombre 4 contenu dans le compteur bit à bit 201 pour obtenir le nombre 930756 contenu dans la totalité du registre formé
des trois registres 201, 202 et 203.
Au fur et à mesure que l'on incrémente le compteur, les étages du compteur bit à bit 201 passent successivement de 1 à O en progressant de la gauche vers
la droite.
Pendant ce temps, les étages des compteurs 202 et
203 ne bougent pas.
Lorsque le dernier bit, le plus à droite du compteur bit à bit 201, est passé à zéro, le nombre
total enregistré dans l'ensemble correspond à 930768.
Pour incrémenter alors de une unité l'ensemble du registre, on incrémente de une unité le bit le plus à gauche du compteur 202, en suivant le procédé selon l'invention, puis on efface la totalité du contenu du compteur bit à bit 201 en programmant tous ces étages à 1. Le nombre maximum que l'on peut inscrire dans le registre complet est donc égal à 65536 X 16 + 16, soit
1048576.
Lorsque ce nombre maximum aura été inscrit dans le registre complet, la cellule la plus sollicitée des deux compteurs 202 et 203, qui est la cellule correspondant au bit le plus à gauche du compteur 202, n'aura été sollicitée que 65536 fois, ce qui est dans les limites permises par la technologie actuelle pour ce genre de cellules. Chaque cellule du compteur bit à bit 201 aura elle aussi été sollicitée 65536 fois, puisque chacune sera passée de 1 à zéro une seule fois pendant le cycle o la cellule la plus sollicitée du compteur 201 sera elle
aussi passée de 1 à zéro ou de zéro à 1.
On a représenté sur la figure 3 un exemple de réalisation des circuits permettant de mettre en oeuvre le procédé selon l'invention dans un registre tel que celui de la figure 2 Dans cet exemple ne sont pas représentés les moyens permettant de déterminer l'état à inscrire dans le compteur et qui sont obtenus d'une manière tout-à-fait à la portée de l'homme de l'art à l'aide d'un système logique tel qu'un micro- processeur
convenablement programmé.
Le registre complet comprend donc deux premiers sous-registres 301 et 311 à 8 étages chacun,
correspondant au compteur bit à bit 201 de la figure 2.
Il comprend aussi 2 registres 302 et 303 à 8 étages,
correspondant aux compteur 202 et 203 de la figure 2.
Les états enregistrés dans les étages des registres 301, 311, 302 et 303 sont mémorisés dans 8 bascules d'étage 305 par le système informatique qui détermine l'état final à obtenir, et qui lui-même a été lire dans
les registres l'état initial.
L'état de ces bascules est transmis à un décodeur d'étage 304, qui les envoie sur l'un des 4 registres finaux à partir d'une adresse délivrée par un générateur d'adresses 306 Ce générateur d'adresses commande également les bascules 305 de manière à déterminer le nombre de transmissions des états, ainsi qu'une logique 307 Celle-ci permet, sous la commande d'un signal H d'horloge, de sélectionner les 4 registres par l'intermédiaire de signaux de sélection SE Li à SEL 4 Par ailleurs, l'ensemble de ces registres reçoit le signal VS, semblable à celui déterminé dans la figure 1, depuis le système logique de sélection de l'état final enregistré. En prenant pour exemple le cas o il s'agit d'incrémenter le premier compteur 202, sans toucher au deuxième compteur 303, en effaçant la totalité des registres 301 et 311, on a par exemple des signaux de commande correspondant aux 2 cycles représentés sur la
figure 4.
Pendant le premier cycle, déterminé par le signal d'horloge H, les 3 registres 301, 311 et 302 sont sélectionnés par les signaux SEL 1 à SEL 3 et sont remis à zéro par le signal VS Pendant le deuxième cycle, toujours déterminé par H les bits qui doivent être remis à zéro dans le registre 302, et qui ont été mémorisés dans les bascules 305, sont appliqués par le décodeur 304 à ce registre 302, lequel est sélectionné
par le signal SEL 3.
Le registre 303 ne subit aucune variation pendant ces deux cycles, puisque son signal de sélection SEL 4
reste constamment à 0.
En résumé le procédé selon l'invention permet d'incrémenter le contenu d'un registre mémoire d'une manière sure, c'est-à-dire sans pouvoir repasser, même d'une manière temporaire par un état de ce registre inférieur à celui de départ Une structure particulière de comptage permet d'utiliser dans ce but des éléments de mémoire programmable du type EEPROM pour pouvoir enregistrer des nombres très élevés sans dépasser les limites physiques d'inscription d'un étage d'une mémoire.

Claims (7)

REVENDICATIONS
1 Procédé de comptage de sécurité pour un compteur électronique binaire comprenant un ensemble d'étages binaires ( 201-203) permettant de représenter un nombre entier, caractérisé en ce que, pour incrémenter ce compteur binaire depuis un premier nombre jusqu'à un deuxième nombre supérieur au premier, on force dans leur état final au moins les étages dont le contenu doit changer, selon un ordre tel qu'à aucun moment le contenu du compteur ne représente un nombre inférieur au premier
nombre.
2 Procédé selon la revendication 1, caractérisé en ce que, ce compteur comprenant au moins un registre formé d'étages contigus ( 202), on force dans un premier temps l'ensemble des étages de ce registre pour représenter le nombre maximal défini par ce registre puis, dans un deuxième temps, on force à leur valeur finale les étages du registre dont la valeur finale est
différente de celle définie dans le premier temps.
3 Procédé selon la revendication 1, caractérisée en ce que dans un premier temps on force à la valeur supérieure le premier étage le moins significatif qui doit changer d'état en passant d'une valeur inférieure à
une valeur supérieure.
4 Procédé de comptage de sécurité pour un compteur électronique binaire comprenant un ensemble d'étages binaires ( 201-203) permettant de représenter un nombre entier, caractérisé en ce qu'on structure la représentation binaire du nombre à représenter dans le compteur en 2 parties, l'une ( 201) correspondant aux chiffres significatifs les plus faibles à représenter et étant organisée sous la forme d'un compteur bit par bit, et l'autre ( 202, 203) correspondant au reste du nombre à représenter et étant organisée sous la forme d'un compteur binaire naturel.
5 5 Procédé selon la revendication 4, caractérisé en ce que, pour incrémenter ce compteur binaire depuis un premier nombre jusqu'à un deuxième nombre supérieur au premier, on force dans leur état final au moins les étages dont le contenu doit changer, selon un ordre tel
qu'à aucun moment le contenu du compteur ne représente un nombre inférieur au premier nombre.
6 Procédé selon la revendication 4 ou la revendication 5 caractérisé en ce que la partie ( 202,203) organisée sous la forme d'un compteur binaire naturel permet de compter un nombre tel que sa cellule représentant le bit de poids le plus faible soit
sollicitée pour le comptage maximal de l'ensemble du compteur un nombre de fois égal au plus aux possibilités physiques de la cellule de comptage matériel qui est20 utilisée dans le compteur.
7 Procédé selon la revendication 4 caractérisé en ce que dans le compteur bit à bit, en technologie
EEPROM, on programme un par un les bits.
FR9201002A 1992-01-30 1992-01-30 Procede de comptage de securite pour un compteur electronique binaire. Expired - Lifetime FR2686989B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR9201002A FR2686989B1 (fr) 1992-01-30 1992-01-30 Procede de comptage de securite pour un compteur electronique binaire.
DE4302553A DE4302553A1 (en) 1992-01-30 1993-01-29 High security binary counting method for chip card - offsetting final state of binary number w.r.t. sequence such that contents of counter never represents number smaller than previous value
US08/012,103 US5381452A (en) 1992-01-30 1993-01-29 Secure counting method for a binary electronic counter
JP5036125A JPH0613890A (ja) 1992-01-30 1993-02-01 2進電子カウンタのための安全なカウント方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9201002A FR2686989B1 (fr) 1992-01-30 1992-01-30 Procede de comptage de securite pour un compteur electronique binaire.

Publications (2)

Publication Number Publication Date
FR2686989A1 true FR2686989A1 (fr) 1993-08-06
FR2686989B1 FR2686989B1 (fr) 1997-01-17

Family

ID=9426146

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9201002A Expired - Lifetime FR2686989B1 (fr) 1992-01-30 1992-01-30 Procede de comptage de securite pour un compteur electronique binaire.

Country Status (4)

Country Link
US (1) US5381452A (fr)
JP (1) JPH0613890A (fr)
DE (1) DE4302553A1 (fr)
FR (1) FR2686989B1 (fr)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3620670B2 (ja) * 1995-09-27 2005-02-16 株式会社小松製作所 下水管作業用循環排水装置
JP3690547B2 (ja) * 1995-09-27 2005-08-31 株式会社小松製作所 下水管作業用循環排水装置
FR2739737B1 (fr) * 1995-10-09 1997-11-21 Inside Technologies Perfectionnements aux cartes a memoire
FR2739706B1 (fr) * 1995-10-09 1997-11-21 Inside Technologies Perfectionnements aux cartes a memoire
NL1003338C2 (nl) * 1996-06-13 1997-12-17 Nederland Ptt Methode en besturingsmiddelen voor het beschrijven van een geheugen.
DE19823955A1 (de) * 1998-05-28 1999-12-02 Siemens Ag Verfahren und Anordnung zum Betreien eines mehrstufigen Zählers in einer Zählrichtung
EP1230591B1 (fr) * 1999-11-18 2007-01-03 Sun Microsystems, Inc. Traitement des bits de decompression au moyen d'un outil d'alignement polyvalent
US6845444B2 (en) * 2001-08-23 2005-01-18 Silicon Integrated Systems Corp. Method and apparatus for reducing strapping devices
US7065607B2 (en) * 2002-06-28 2006-06-20 Microsoft Corporation System and method for implementing a counter
FR2846461A1 (fr) * 2002-10-28 2004-04-30 St Microelectronics Sa Compteur par tranches
JP4665683B2 (ja) * 2005-09-16 2011-04-06 セイコーエプソン株式会社 プリンタシステム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4559637A (en) * 1983-09-12 1985-12-17 Weber Harold J Tamper proof digital value accumulator and display method and apparatus
EP0321727B1 (fr) * 1987-12-17 1992-03-18 Siemens Aktiengesellschaft Méthode et circuit de protection contre la manipulation de dévalorisation de mémoires EEPROM
FR2667192A1 (fr) * 1990-09-20 1992-03-27 Gemplus Card Int Procede de comptage en memoire eeprom et son utilisation pour la realisation d'un compteur securise.

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3123444A1 (de) * 1981-06-12 1983-01-05 Siemens AG, 1000 Berlin und 8000 München Verfahren und anordnung zum nichtfluechtigen speichern des zaehlerstandes einer elektronischen zaehlschaltung
US4803646A (en) * 1984-10-01 1989-02-07 Ford Motor Company Electronic odometer
FR2609831B1 (fr) * 1987-01-16 1989-03-31 Thomson Semiconducteurs Circuit de lecture pour memoire
FR2610134B1 (fr) * 1987-01-27 1989-03-31 Thomson Semiconducteurs Circuit de lecture pour memoire
US4860228A (en) * 1987-02-24 1989-08-22 Motorola, Inc. Non-volatile memory incremental counting system
FR2613491B1 (fr) * 1987-04-03 1989-07-21 Thomson Csf Dispositif de detection du niveau haut d'une tension en technologie mos
FR2617979B1 (fr) * 1987-07-10 1989-11-10 Thomson Semiconducteurs Dispositif de detection de la depassivation d'un circuit integre
FR2617976B1 (fr) * 1987-07-10 1989-11-10 Thomson Semiconducteurs Detecteur electrique de niveau logique binaire
FR2618579B1 (fr) * 1987-07-21 1989-11-10 Thomson Semiconducteurs Circuit integre a memoire comportant un dispositif anti-fraude
FR2622038B1 (fr) * 1987-10-19 1990-01-19 Thomson Semiconducteurs Procede de programmation des cellules memoire d'une memoire et circuit pour la mise en oeuvre de ce procede
FR2622019B1 (fr) * 1987-10-19 1990-02-09 Thomson Semiconducteurs Dispositif de test structurel d'un circuit integre
FR2623016B1 (fr) * 1987-11-06 1991-06-14 Thomson Semiconducteurs Dispositif de fusion d'un fusible dans un circuit integre de type cmos
FR2623018B1 (fr) * 1987-11-06 1990-02-09 Thomson Semiconducteurs Circuit integre protege contre les decharges electrostatiques avec seuil de protection variable
US4803707A (en) * 1987-12-21 1989-02-07 Ncr Corporation Nonvolatile electronic odometer with excess write cycle protection
FR2649817B1 (fr) * 1989-07-13 1993-12-24 Gemplus Card International Carte a microcircuit protegee contre l'intrusion

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4559637A (en) * 1983-09-12 1985-12-17 Weber Harold J Tamper proof digital value accumulator and display method and apparatus
EP0321727B1 (fr) * 1987-12-17 1992-03-18 Siemens Aktiengesellschaft Méthode et circuit de protection contre la manipulation de dévalorisation de mémoires EEPROM
FR2667192A1 (fr) * 1990-09-20 1992-03-27 Gemplus Card Int Procede de comptage en memoire eeprom et son utilisation pour la realisation d'un compteur securise.

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SIEMENS COMPONENTS, vol. XXIV, no. 1, Février 1989, MUNCHEN, DE; pages 27 - 29 H. MULLER ET AL 'Millions Reliably Counted and Stored' *

Also Published As

Publication number Publication date
JPH0613890A (ja) 1994-01-21
DE4302553A1 (en) 1993-08-05
FR2686989B1 (fr) 1997-01-17
US5381452A (en) 1995-01-10

Similar Documents

Publication Publication Date Title
EP0918336B1 (fr) Mémoire non volatile programmable et effaçable électriquement comprenant une zone protégeable en lecture et/ou en écriture et système électronique l'incorporant
EP0618591B1 (fr) Circuit intégré pour carte à mémoire et procédé de décomptage d'unités dans une carte à mémoire
EP1172820B1 (fr) Mémoire série programmable et effacable électriquement à lecture par anticipation
EP1111621A1 (fr) Mémoire flash programmable page par page
CA2107249A1 (fr) Dispositif electronique de jeu de hasard
FR2686989A1 (fr) Procede de comptage de securite pour un compteur electronique binaire.
FR2851074A1 (fr) Memoire flash sectorisee comprenant des moyens de controle et de rafraichissement de cellules memoire
EP0334763B1 (fr) Procédé de test de mémoire à programmation unique et mémoire correspondante
EP0643371B1 (fr) Procédé de paiement électronique, notamment au moyen d'une carte à puce
FR2810152A1 (fr) Memoire eeprom securisee comprenant un circuit de correction d'erreur
FR2702857A1 (fr) Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation.
EP0735489B1 (fr) Procédé de protection de zones de mémoires non volatiles
EP0519847B1 (fr) Carte à mémoire de comptage de données et appareil de lecture
FR2718559A1 (fr) Mémoire non volatile modifiable électriquement incorporant des fonctions de test.
EP0606796B1 (fr) Procédé de programmation en champ uniforme d'une mémoire électriquement programmable et mémoire mettant en oeuvre le procédé
EP3246820A1 (fr) Gestion du stockage dans une mémoire flash
EP1486987A1 (fr) Memoire flash comprenant des moyens de contrôle et de rafraíchissement de cellules mémoire dans l'état effacé
WO1992015096A1 (fr) Dispositif d'adressage sequentiel d'une memoire, notamment pour carte a memoire
EP1012847B1 (fr) Procede d'enregistrement d'un mot binaire au moyen de cellules memoire du type programmable et effa able electriquement
EP1542130A1 (fr) Mémoire série comprenant des moyens d'intégration dans un plan mémoire étendu
EP1085520B1 (fr) Procédé d'écriture en mode page d'une mémoire non volatile électriquement programmable/effaçable et architecture correspondante
EP1843359A1 (fr) Procédé de sécurisation de blocs de données dans une mémoire programmable électriquement
EP1632863B1 (fr) Dispositif programmable d'interface de commande
EP1089290B1 (fr) Registre de colonnes, mémoire l'incorporant et procédé d'écriture dans une telle mémoire
EP0845787A1 (fr) Dispositif de protection après une écriture de page d'une mémoire électriquement programmable