FR2789774A1 - Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede - Google Patents

Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede Download PDF

Info

Publication number
FR2789774A1
FR2789774A1 FR9901650A FR9901650A FR2789774A1 FR 2789774 A1 FR2789774 A1 FR 2789774A1 FR 9901650 A FR9901650 A FR 9901650A FR 9901650 A FR9901650 A FR 9901650A FR 2789774 A1 FR2789774 A1 FR 2789774A1
Authority
FR
France
Prior art keywords
words
registers
value
main memory
auxiliary
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
FR9901650A
Other languages
English (en)
Other versions
FR2789774B1 (fr
Inventor
Benoit Bole
Jean Luc Salles
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.)
Bull CP8 SA
Original Assignee
Bull CP8 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 Bull CP8 SA filed Critical Bull CP8 SA
Priority to FR9901650A priority Critical patent/FR2789774B1/fr
Priority to US09/501,999 priority patent/US6523056B1/en
Publication of FR2789774A1 publication Critical patent/FR2789774A1/fr
Application granted granted Critical
Publication of FR2789774B1 publication Critical patent/FR2789774B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • 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
    • 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/1025Identification of user by a PIN code

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Procédé de comparaison sécurisé de deux registres mémoire, et module de sécurité mettant en oeuvre ce procédé. L'invention concerne un procédé de comparaison de deux registres mémoire principaux, consistant à définir un registre mémoire auxiliaire (A), calculer une première somme des mots composant ce registre mémoire auxiliaire, comparer les mots des deux registres mémoire principaux, sélectionner aléatoirement l'un des mots du registre mémoire auxiliaire, et modifier d'une première valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont identiques, et modifier d'une seconde valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont différents, calculer une seconde somme (SA2 ) des mots du registre mémoire auxiliaire, et la modifier d'une valeur égale à ladite première valeur multipliée par le nombre de mots (n) des registres mémoire principaux, et comparer lesdites première et seconde sommes (SA1 , SA2 ). L'invention concerne aussi le module de sécurité associé.

Description

Procédé de comparaison sécurisé de deux registres mémoire, et module de
sécurité mettant en oeuvre ce procédé L'invention concerne un procédé de comparaison sécurisé de deux registres mémoire, et un module de sécurité mettant en oeuvre ce procédé. Le terme "module de sécurité" doit être pris, soit dans son sens classique dans lequel il désigne un dispositif ayant vocation, dans un réseau de communication ou d'information, à être détenu par un organisme supervisant le réseau et à stocker de façon protégée des paramètres secrets et fondamentaux du réseau tels que des clés cryptographiques, soit comme désignant plus simplement un dispositif attribué à divers usagers du réseau et permettant à chacun d'eux d'avoir accès à celui-ci, ce dernier dispositif étant lui aussi susceptible de détenir des paramètres secrets. Le module de
sécurité pourra prendre la forme d'un objet portatif du type carte à puce.
On sait qu'un fraudeur est susceptible de déduire certaines informations sur les traitements effectués dans un module de sécurité en étudiant précisément la consommation de courant électrique du module de sécurité. En ce qui concerne notamment l'opération de comparaison de deux registres mémoire, le fraudeur peut chercher à étudier l'évolution de ce courant électrique et tenter d'en déduire le résultat positif ou négatif de cette comparaison. Dans la technique connue, I'opération de comparaison de deux registres mémoire, qui s'effectue en comparant deux à deux différents mots composant les registres, comporte une opération d'écriture du résultat de chaque comparaison effectuée entre mots: cette écriture consiste en une mise à 0 ou à 1 d'un bit dans un registre auxiliaire, en fonction du résultat de la comparaison. Or, cette traduction directe du résultat par une mise à 0 ou à
1 d'un bit est susceptible d'être repérée par un fraudeur.
Le but de l'invention est de proposer un procédé de comparaison de deux registres mémoire qui n'implique pas une écriture directe du résultat de la comparaison dans un registre auxiliaire. L'invention concerne à cet effet un procédé de comparaison de deux registres mémoire principaux, ces registres comprenant un même nombre de mots ayant chacun une valeur définie par plusieurs éléments logiques, caractérisé en ce qu'il comprend les étapes consistant à: -définir au moins un registre mémoire auxiliaire comprenant plusieurs mots ayant chacun une valeur définie par plusieurs éléments logiques; -positionner les éléments logiques du registre mémoire auxiliaire à des valeurs aléatoires; - calculer une première somme des valeurs des mots du registre mémoire auxiliaire; -comparer deux à deux les mots respectifs des registres mémoire principaux et, pour chaque comparaison de deux mots respectifs, sélectionner aléatoirement l'un des mots du registre mémoire auxiliaire, et modifier d'une première valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont identiques, et modifier d'une seconde valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont différents; -calculer une seconde somme des valeurs des mots du registre mémoire auxiliaire, et la modifier d'une valeur égale à ladite première valeur multipliée par le nombre de mots des registres mémoire principaux; et - comparer lesdites première et seconde sommes et, en cas d'égalité, déclarer que lesdits registres mémoire principaux sont identiques tandis que, en cas d'inégalité, déclarer que lesdits registres mémoire principaux
sont différents.
D'autres détails et avantages de la présente invention apparaîtront au
cours de la description suivante d'un mode d'exécution préféré mais non
limitatif, en regard des dessins annexés sur lesquels: La figure 1 représente un dispositif de traitement de données coopérant avec un module de sécurité; La figure 2 représente une variante de la figure 1; La figure 3 représente deux registres principaux à comparer; La figure 4 représente deux registres auxiliaires A et B utilisés pour comparer les registres principaux; La figure 5 représente un octet de sécurité utilisé pour comparer les registres principaux; La figure 6 est un organigramme de la procédure de comparaison des registres principaux et d'écriture correspondante dans les registres auxiliaires A et B; et La figure 7 est un organigramme de la procédure d'analyse du résultat de la comparaison des registres principaux, au moyen des registres auxiliaires A et B. La figure 1 représente un dispositif de traitement de données 1 coopérant avec un module de sécurité sous la forme d'un objet portatif 8. Le dispositif de traitement de données comprend de façon connue en soi un microprocesseur 2 auquel sont reliés une mémoire ROM 3, et une mémoire RAM 4, des moyens 5 pour coopérer, avec ou sans contact physique, avec l'objet portatif 8, et une interface de transmission 7 permettant au dispositif de traitement de données de communiquer avec un réseau de communication de données. Le dispositif de traitement de données 1 peut en outre être équipé de moyens de stockage tels que des disquettes ou disques amovibles ou non, de moyens de saisie (tels qu'un clavier et/ou un dispositif de pointage du type souris) et de moyens d'affichage, ces différents moyens n'étant pas
représentés sur la figure 1.
Le dispositif de traitement de données peut être constitué par tout appareil informatique installé sur un site privé ou public et apte à fournir des moyens de gestion de l'information ou de délivrance de divers biens ou services, cet appareil étant installé à demeure ou portable. Il peut notamment
s'agir aussi d'un appareil dédié aux télécommunications.
Par ailleurs, I'objet portatif 8 porte une puce incluant des moyens de traitement de l'information 9, une mémoire non volatile 10, une mémoire volatile de travail RAM 14, et des moyens 13 pour coopérer avec le dispositif de traitement de données 1. Cette puce est agencée pour définir, dans la mémoire 10, une zone secrète 11 dans laquelle des informations une fois enregistrées, sont inaccessibles depuis l'extérieur de la puce mais seulement accessibles aux moyens de traitement 9, et une zone accessible 12 qui est rendue accessible depuis l'extérieur de la puce par le microprocesseur 9 pour une lecture et/ou une écriture d'informations. Chaque zone de la mémoire non volatile 10 peut comprendre une partie non modifiable ROM et une partie modifiable EPROM, EEPROM, ou constituée de mémoire RAM du type "flash"
ou FRAM (cette dernière étant une mémoire RAM ferromagnétique), c'est-à-
dire présentant les caractéristiques d'une mémoire EEPROM avec en outre
des temps d'accès identiques à ceux d'une RAM classique.
En tant que puce, on pourra notamment utiliser un microprocesseur autoprogrammable à mémoire non volatile, tel que décrit dans le brevet américain n 4.382.279 au nom de la Demanderesse. Comme indiqué en colonne 1, lignes 13-25 de ce brevet, le caractère autoprogrammable de la puce correspond à la possibilité pour un programme fi situé dans une mémoire ROM, de modifier un autre programme fj situé dans une mémoire programmable en un programme gj. Dans une variante, le microprocesseur de la puce est remplacé - ou tout du moins complété - par des circuits logiques implantés dans une puce à semi-conducteurs. En effet, de tels circuits sont aptes à effectuer des calculs, notamment d'authentification et de signature, grâce à de l'électronique câblée, et non microprogrammée. Ils peuvent notamment être de type ASIC (de l'anglais " Application Specific Integrated Circuit "). Avantageusement, la puce sera
conçue sous forme monolithique.
Une variante de la figure 1 est illustrée sur la figure 2, o le dispositif de traitement de données 16 comprend, outre les éléments du dispositif de traitement de données 1 de la figure 1, ceux de l'objet portatif 8 disposés dans un module de sécurité 15, les éléments communs aux deux figures 1,2 portant les mêmes références. Toutefois, les moyens de coopération 5,13 de la figure 1 sont remplacés par une liaison permanente entre le
microprocesseur 2 et le microprocesseur 9.
Selon une variante de la figure 2, le dispositif de traitement de
données est constitué par le module de sécurité 15 de la figure 2 luimême.
Sur la figure 3, sont représentés deux registres mémoire principaux de la mémoire volatile RAM 14 du module de sécurité précité, comprenant chacun un même nombre de n mots constitués par des octets (typiquement huit), repérés (1,2,....i,..... n). L'un des deux registres est un registre de référence stockant provisoirement une valeur de référence telle que par exemple un code d'usager ou PIN (de l'anglais Personal Identification Number) ou une signature, ou tout autre grandeur sensible, conservée en
mémoire non volatile 10 et permettant de procéder à une authentification.
Quant à l'autre registre, il s'agit d'un registre a vérifier, par comparaison avec le registre de référence: il contient une grandeur généralement reçue de
l'extérieur du module de sécurité.
La mémoire volatile RAM 14 contient encore (figure 4) deux registres auxiliaires A,B comprenant chacun un certain nombre d'octets (typiquement le même nombre que pour les registres principaux), repérés (1,2,JA..... m) et (1,2,.,jB......p). Ces registres vont être utilisés pour enregistrer le résultat de la comparaison entre les registres mémoire principaux, comme précisé en
regard de la figure 6.
La mémoire volatile RAM 14 contient encore (figure 5) un octet de sécurité comprenant deux bits significatifs x et y. La valeur du bit x définit, comme précisé en regard de la figure 6, I'une ou l'autre de deux façons de traduire l'égalité entre les deux registres mémoire principaux. La valeur du bit y définit lequel des deux registres auxiliaires A et B sera effectivement utilisé pour obtenir le résultat de la comparaison entre les registres mémoire principaux. Le procédé de comparaison du registre de référence et du registre à vérifier va maintenant être exposé en regard de la figure 6. Tout d'abord, on génère aléatoirement l'octet de sécurité en utilisant un générateur aléatoire connu en soi et prévu de manière matérielle ou logicielle dans le module de sécurité (étape 61). On génère aussi aléatoirement les deux registres auxiliaires A et B (étape 62). On calcule ensuite une première somme SA, de tous les octets du registre auxiliaire A et une première somme SB1 de tous les octets du registre auxiliaire B (étape 63). On initialise à 0 un indice i définissant le rang d'un octet courant du registre de référence ou du registre à vérifier (étape 65), puis on ajoute 1 à cet indice (étape 65). On compare ensuite i au nombre total n d'octets de ces registres (étape 66): dans le cas o i n'est pas supérieur à n, on génère aléatoirement (étape 67) deux indices jA et jB, jA étant compris entre 1 et m et jB étant compris entre 1 et p, correspondant respectivement au rang d'un octet courant du registre auxiliaire A, et au rang d'un octet courant du registre auxiliaire B. On compare ensuite les deux octets de rang i du registre de référence et du registre à vérifier (étape 68). On détermine ensuite la valeur du bit x de l'octet de sécurité (étape 69). On considère d'abord le cas o x est différent de 1, c'est-à-dire possède la valeur 0. A l'étape 70, on étudie s'il y a égalité entre les deux octets de rang i. Dans la négative (étape 72), on incrémente d'une unité l'octet d'indice jA du registre auxiliaire A et on décrémente d'une unité l'octet d'indice jB du registre auxiliaire B. Dans l'affirmative (étape 71), on effectue les opérations inverses, à savoir on décrémente d'une unité l'octet d'indice jA du registre auxiliaire A et on incrémente d'une unité l'octet d'indice je du registre auxiliaire B. Si en revanche à l'étape 69, x vaut 1, on effectue des opérations inverses de celles effectuées lorsque x vaut 0. A l'étape 73, on étudie s'il y a égalité entre les deux octets de rang i. Dans la négative (étape 75), on décrémente d'une unité l'octet d'indice jA du registre auxiliaire A et on incrémente d'une unité l'octet d'indice jB du registre auxiliaire B. Dans l'affirmative (étape 74), on effectue les opérations inverses, à savoir on incrémente d'une unité l'octet d'indice jA du registre auxiliaire A et on décrémente d'une unité l'octet d'indice jB du registre auxiliaire B. A la fin de l'une quelconque des quatre étapes 71,72,74,75, on remonte à l'étape 65 pour augmenter d'une unité l'indice i: il s'ensuivra donc une comparaison des deux octets suivants du registre de référence et du registre à vérifier. Une fois que tous les octets de ces deux registres ont été comparés,
i devient supérieur à n à l'étape 66, ce qui clôt la procédure.
La façon dont vont être exploités les résultats obtenus en figure 6 va être exposée en regard de la figure 7. On détermine d'abord la valeur du bit y de l'octet de sécurité (étape 81). Si y est différent de 1, on va utiliser, pour rechercher le résultat de la comparaison entre les deux registres principaux, le registre auxiliaire A et on ignorera le registre auxiliaire B. Pour ce faire, on va calculer à nouveau la somme des octets du registre auxiliaire A (étape 82), ce qui donne une seconde somme SA2.On étudie ensuite la valeur du bit x de l'octet de sécurité (étape 83). Si x est différent de 1, on retranche la valeur n
de la première somme SA, des octets du registre auxiliaire A (étape 84), c'est-
à-dire qu'on modifie cette somme de la valeur (-n). Cette valeur (-n) est obtenue en multipliant par le nombre n d'octets du registre de référence la valeur dont on a modifié auparavant l'octet jA du registre auxiliaire A (voir figure 6, étape 71), soit en l'espèce (-1)xn=(-n). Enfin, à l'étape 85, on compare les première et seconde sommes SA, et SA2 du registre auxiliaire A: l'égalité entre ces sommes signifie l'égalité entre le registre de référence et le registre à vérifier, tandis qu'une différence entre ces sommes signifie que le
registre de référence et le registre à vérifier sont différents.
Si, à l'étape 83, x vaut 1, on ajoute la valeur n à la première somme SA, des octets du registre auxiliaire A (étape 86), c'est-à-dire qu'on modifie cette somme de la valeur (+n). Cette valeur (+n) est obtenue en multipliant par le nombre n d'octets du registre de référence la valeur dont on a modifié auparavant l'octet jA du registre auxiliaire A (voir figure 6, étape 74), soit en l'espèce (+1)xn=(+n). Enfin, à l'étape 87, on compare les première et seconde sommes SA, et SA2 du registre auxiliaire A: l'égalité entre ces sommes signifie I'égalité entre le registre de référence et le registre à vérifier, tandis qu'une différence entre ces sommes signifie que le registre de référence et le registre
à vérifier sont différents.
Si en revanche, à l'étape 81, y est égal à 1, on va utiliser, pour rechercher le résultat de la comparaison entre les deux registres principaux, le registre auxiliaire B et on ignorera le registre auxiliaire A. Pour ce faire, on va calculer à nouveau la somme des octets du registre auxiliaire B (étape 88), ce qui donne une seconde somme SB2.On étudie ensuite la valeur du bit x de l'octet de sécurité (étape 89). Si x est différent de 1, on ajoute la valeur n à la première somme Ssi des octets du registre auxiliaire B (étape 90). Enfin, à l'étape 91, on compare les première et seconde sommes SB, et S82 du registre auxiliaire B: l'égalité entre ces sommes signifie l'égalité entre le registre de référence et le registre à vérifier, tandis qu'une différence entre ces sommes signifie que le registre de référence et le registre à vérifier sont
différents.
Si, à l'étape 89, x vaut 1, on retranche la valeur n de la première somme SB1 des octets du registre auxiliaire B (étape 92). Enfin, à l'étape 93, on compare les première et seconde sommes SB1 et SB2 du registre auxiliaire B: l'égalité entre ces sommes signifie l'égalité entre le registre de référence et le registre à vérifier, tandis qu'une différence entre ces sommes signifie que le
registre de référence et le registre à vérifier sont différents.
On constate que l'utilisation de deux registres auxiliaires A et B permet avantageusement de générer un même nombre d'incrémentations et de décrémentations, ce qui ne fournit aucun renseignement à un éventuel fraudeur. On constate aussi que le nombre d'octets manipulés durant le procédé est a priori différent pour le registre auxiliaire A et le registre auxiliaire B, puisqu'un même octet peut éventuellement être manipulé
plusieurs fois.
En variante au procédé décrit ci-dessus, on n'utilise qu'un seul registre auxiliaire: dans ce cas, ce registre auxiliaire sera forcément utilisé lors de
l'exploitation des résultats.
Selon une autre variante au procédé décrit ci-dessus, les octets des registres auxiliaires A et B sont modifiés, lors des étapes 72,75, d'une valeur différente de l'unité; on évitera toutefois la valeur 0 qui ne modifie pas l'octet considéré, ce qui engendre une dissymétrie de comportement vis-à-vis d'une valeur différente de 0. Par ailleurs, les deux modifications sur les registres auxiliaires A et B pourraient s'effectuer dans un même sens mais d'une valeur différente (alors que selon la figure 6, ces modifications s'effectuaient en sens inverse). Selon une autre variante au procédé décrit ci-dessus, on procède, avant chacune des étapes 71,72,74,75 de modification des registres auxiliaires A et B, à un tirage aléatoire pour déterminer lequel de ces deux
registres sera modifié en premier.
Dans ce qui précède, les registres utilisés se trouvaient dans la mémoire RAM 14 du module de sécurité. En variante, ils pourraient se trouver
dans la mémoire non volatile 10.
Dans ce qui précède, les mots du registre de référence et du registre à vérifier comportaient plusieurs éléments logiques (huit bits); en variante, ce
nombre pourrait être ramené à un.

Claims (7)

REVENDICATIONS
1. Procédé de comparaison de deux registres mémoire principaux, ces registres comprenant un même nombre de mots ayant chacun une valeur définie par au moins un élément logique, caractérisé en ce qu'il comprend les étapes consistant à: -définir au moins un registre mémoire auxiliaire (A) comprenant plusieurs mots ayant chacun une valeur définie par plusieurs éléments logiques; -positionner les éléments logiques du registre mémoire auxiliaire (A) à des valeurs aléatoires; -calculer une première somme (SAl) des valeurs des mots du registre mémoire auxiliaire; -comparer deux à deux les mots respectifs (i) des registres mémoire principaux et, pour chaque comparaison de deux mots respectifs, sélectionner aléatoirement l'un des mots du registre mémoire auxiliaire, et modifier d'une première valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont identiques, et modifier d'une seconde valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont différents; - calculer une seconde somme (SA2) des valeurs des mots du registre mémoire auxiliaire, et la modifier d'une valeur égale à ladite première valeur multipliée par le nombre de mots (n) des registres mémoire principaux; et -comparer lesdites première et seconde sommes (SA,SA2) et, en cas d'égalité, déclarer que lesdits registres mémoire principaux sont identiques tandis que, en cas d'inégalité, déclarer que lesdits registres
mémoire principaux sont différents.
2. Procédé selon la revendication 1, dans lequel on affecte aléatoirement à I'identité entre les mots des registres mémoire principaux l'une desdites première et seconde valeurs prédéterminées, et l'on affecte à la différence entre les mots des registres mémoire principaux l'autre desdites première et seconde valeurs prédéterminées, I'étape de modification de ladite seconde somme (SA2) des valeurs des mots du registre mémoire auxiliaire (A) consistant à la modifier d'une valeur égale à ladite une desdites première et seconde valeurs prédéterminées, multipliée par le nombre de
mots (n) des registres mémoire principaux.
3. Procédé selon la revendication 1, qui utilise un premier et un second registres auxiliaires (A,B) et comprend les étapes consistant à: positionner les éléments logiques des registres mémoire auxiliaires à des valeurs aléatoires; -calculer une première somme (SAl,SB1) des valeurs des mots des registres mémoire auxiliaires; -comparer deux à deux les mots respectifs des registres mémoire principaux et, pour chaque comparaison de deux mots respectifs, sélectionner aléatoirement l'un des mots du premier registre mémoire auxiliaire, et modifier d'une première valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont identiques, et modifier d'une seconde valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont différents, puis sélectionner aléatoirement l'un des mots du second registre mémoire auxiliaire, et modifier d'une troisième valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont identiques, et modifier d'une quatrième valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont différents; - sélectionner aléatoirement l'un des deux registres mémoire auxiliaires et, dans le cas du premier registre mémoire auxiliaire, calculer une seconde somme (SA2) des valeurs de ses mots, et la modifier d'une valeur égale à ladite première valeur multipliée par le nombre de mots des registres mémoire principaux et, dans le cas du second registre mémoire auxiliaire, calculer une seconde somme (SB2) des valeurs de ses mots, et la modifier d'une valeur égale à ladite troisième valeur multipliée par le nombre de mots des registres mémoire principaux; et comparer lesdites première et seconde sommes du registre mémoire auxiliaire sélectionné et, en cas d'égalité, déclarer que lesdits registres mémoire principaux sont identiques tandis que, en cas d'inégalité,
déclarer que lesdits registres mémoire principaux sont différents.
4. Procédé selon la revendication 3, dans lequel l'étape de modification des mots des registres mémoire auxiliaires (A,B) consiste à sélectionner aléatoirement l'un des mots du premier registre mémoire auxiliaire et à modifier d'une valeur dans un premier sens la valeur de ce mot si lesdits mots des registres mémoire principaux sont identiques, et modifier de cette même valeur dans un second sens opposé au premier la valeur de ce mot si lesdits mots des registres mémoire principaux sont différents, puis à sélectionner aléatoirement l'un des mots du second registre mémoire auxiliaire et à modifier de ladite valeur dans le second sens la valeur de ce mot si lesdits mots des registres mémoire principaux sont identiques, et modifier de cette même valeur dans le premier sens la valeur de ce mot si lesdits mots des registres mémoire principaux sont différents;
5. Procédé selon la revendication 3, dans lequel pour le premier registre mémoire auxiliaire (A) on affecte aléatoirement à l'identité entre les mots des registres mémoire principaux l'une desdites première et seconde valeurs prédéterminées, et l'on affecte à la différence entre les mots des registres mémoire principaux l'autre desdites première et seconde valeurs prédéterminées, l'étape de modification de ladite seconde somme (SA2) des valeurs des mots du premier registre mémoire auxiliaire consistant à la modifier d'une valeur égale à ladite une desdites première et seconde valeurs prédéterminées, multipliée par le nombre de mots (n) des registres mémoire principaux, tandis que pour le second registre mémoire auxiliaire (B) on affecte aléatoirement à l'identité entre les mots des registres mémoire principaux l'une desdites troisième et quatrième valeurs prédéterminées, et l'on affecte à la différence entre les mots des registres mémoire principaux l'autre desdites troisième et quatrième valeurs prédéterminées, l'étape de modification de ladite seconde somme (SB2) des valeurs des mots du second registre mémoire auxiliaire consistant à la modifier d'une valeur égale à ladite une desdites troisième et quatrième valeurs prédéterminées, multipliée par le nombre de mots des registres
mémoire principaux.
6. Procédé selon la revendication 3, dans lequel l'étape de modification des mots des registres auxiliaires (A,B) est précédée d'une étape de sélection aléatoire de celui des deux registres auxiliaires dont on modifiera les mots
en premier.
7. Module de sécurité comprenant des moyens de traitement d'information (9) et des moyens de stockage d'information (10,14), ces moyens de stockage comprenant au moins deux registres mémoire principaux, ces registres comprenant un même nombre (n) de mots ayant chacun une valeur définie par au moins un élément logique, caractérisé en ce que les moyens de traitement comprennent: -des moyens pour définir au moins un registre mémoire auxiliaire (A) comprenant plusieurs mots ayant chacun une valeur définie par plusieurs éléments logiques; -des moyens pour positionner les éléments logiques du registre mémoire auxiliaire à des valeurs aléatoires; -des moyens pour calculer une première somme (SA1) des valeurs des mots du registre mémoire auxiliaire; -des moyens pour comparer deux à deux les mots respectifs (i) des registres mémoire principaux et, pour chaque comparaison de deux mots respectifs, sélectionner aléatoirement l'un des mots du registre mémoire auxiliaire, et modifier d'une première valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont identiques, et modifier d'une seconde valeur prédéterminée la valeur de ce mot si lesdits mots des registres mémoire principaux sont différents; -des moyens pour calculer une seconde somme (SA2) des valeurs des mots du registre mémoire auxiliaire, et la modifier d'une valeur égale à ladite première valeur multipliée par le nombre de mots des registres mémoire principaux; et -des moyens pour comparer lesdites première et seconde sommes (SAl ,SA2) et, en cas d'égalité, déclarer que lesdits registres mémoire principaux sont identiques tandis que, en cas d'inégalité, déclarer que lesdits
registres mémoire principaux sont différents.
FR9901650A 1999-02-11 1999-02-11 Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede Expired - Fee Related FR2789774B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR9901650A FR2789774B1 (fr) 1999-02-11 1999-02-11 Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede
US09/501,999 US6523056B1 (en) 1999-02-11 2000-02-11 Process for secure comparison of two storage registers, and security module implementing this process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9901650A FR2789774B1 (fr) 1999-02-11 1999-02-11 Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede

Publications (2)

Publication Number Publication Date
FR2789774A1 true FR2789774A1 (fr) 2000-08-18
FR2789774B1 FR2789774B1 (fr) 2001-04-20

Family

ID=9541900

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9901650A Expired - Fee Related FR2789774B1 (fr) 1999-02-11 1999-02-11 Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede

Country Status (2)

Country Link
US (1) US6523056B1 (fr)
FR (1) FR2789774B1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073893B1 (en) * 2005-08-25 2011-12-06 Robert T. Jenkins Method and/or system for comparing character expressions
US8484236B1 (en) 2006-06-30 2013-07-09 Robert T. Jenkins and Virginia T. Jenkins Method and/or system for processing data streams

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3771128A (en) * 1971-11-08 1973-11-06 Keymatch Computer Corp Method and apparatus for credit verification
FR2311365A1 (fr) * 1975-05-13 1976-12-10 Innovation Ste Int Systeme pour transferer et memoriser des donnees de maniere personnelle et confidentielle au moyen d'objets portatifs electroniques independants
FR2471003A1 (fr) * 1979-11-30 1981-06-12 Dassault Electronique Systeme a objet portatif presentant une information confidentielle et lecteur de cette information, notamment pour des transactions financieres et/ou commerciales
US4382279A (en) 1978-04-25 1983-05-03 Compagnie Internationale Pour L'informatique Cii-Honeywell Bull (Societe Anonyme) Single chip microprocessor with on-chip modifiable memory
EP0329966A1 (fr) * 1988-02-25 1989-08-30 Siemens Aktiengesellschaft Méthode de protection de données de code secrètes, stockées dans une mémoire de données et agencement de circuit pour la mise en oeuvre de cette méthode

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097260A (en) * 1988-12-01 1992-03-17 Samsung Electronics Co., Ltd. Operation control circuit with secret code comparing means for remote control keypad
US5226080A (en) * 1990-06-22 1993-07-06 Grid Systems Corporation Method and apparatus for password protection of a computer
US5483658A (en) * 1993-02-26 1996-01-09 Grube; Gary W. Detection of unauthorized use of software applications in processing devices
US5416306A (en) * 1993-08-16 1995-05-16 Imahata; Takeo Method for comparing and verifying security codes at point of sale

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3771128A (en) * 1971-11-08 1973-11-06 Keymatch Computer Corp Method and apparatus for credit verification
FR2311365A1 (fr) * 1975-05-13 1976-12-10 Innovation Ste Int Systeme pour transferer et memoriser des donnees de maniere personnelle et confidentielle au moyen d'objets portatifs electroniques independants
US4382279A (en) 1978-04-25 1983-05-03 Compagnie Internationale Pour L'informatique Cii-Honeywell Bull (Societe Anonyme) Single chip microprocessor with on-chip modifiable memory
FR2471003A1 (fr) * 1979-11-30 1981-06-12 Dassault Electronique Systeme a objet portatif presentant une information confidentielle et lecteur de cette information, notamment pour des transactions financieres et/ou commerciales
EP0329966A1 (fr) * 1988-02-25 1989-08-30 Siemens Aktiengesellschaft Méthode de protection de données de code secrètes, stockées dans une mémoire de données et agencement de circuit pour la mise en oeuvre de cette méthode

Also Published As

Publication number Publication date
US6523056B1 (en) 2003-02-18
FR2789774B1 (fr) 2001-04-20

Similar Documents

Publication Publication Date Title
EP0089876B1 (fr) Procédé et dispositif de protection d'un logiciel livré par un fournisseur à un utilisateur
EP0552079B2 (fr) Carte à mémoire de masse pour microordinateur
EP0425053A1 (fr) Système de traitement de données comportant des moyens d'authentification d'une carte à mémoire, circuit électronique à utiliser dans ce système et procédé de mise en oeuvre de cette authentification
US20090262990A1 (en) Apparatus and method for polynomial reconstruction in fuzzy vault system
EP0552077B1 (fr) Carte à mémoire de masse pour microordinateur avec facilités d'exécution de programmes internes
WO1999053401A2 (fr) Carte a puce comprenant des moyens pour gerer une memoire virtuelle, procede et protocole de communication associes
EP1297501B1 (fr) Controle d'acces a un moyen de traitement de donnees
FR2833374A1 (fr) Procede et dispositif de controle d'acces dans un systeme embarque
WO2001086601A1 (fr) Procede pour authentifier un objet portatif, objet portatif correspondant, et appareil pour mettre en oeuvre le procede
EP3234848B1 (fr) Procede d'envoi d'une information de securite et dispositif electronique apte a mettre en oeuvre un tel procede
EP2813962B1 (fr) Méthode de contrôle d'accès à un type de services spécifique et dispositif d'authentification pour le contrôle de l'accès à un tel type de services.
EP3765984A1 (fr) Traitement sécurisé de données
FR2789774A1 (fr) Procede de comparaison securise de deux registres memoire, et module de securite mettant en oeuvre ce procede
EP0829831B1 (fr) Méthode d'authentification de cartes
EP1316077B1 (fr) Securite d'acces par code secret a un moyen de traitement de donnees
WO1997040474A1 (fr) Systeme securise de controle d'acces permettant le transfert d'habilitation a produire des cles
FR2730076A1 (fr) Procede d'authentification par un serveur du porteur d'un objet portatif a microprocesseur, serveur et objet portatif correspondants
WO1999000774A9 (fr) Module de securite comportant des moyens de creation de liens entre des fichiers principaux et des fichiers auxiliaires
FR2747813A1 (fr) Systeme securise de controle d'acces permettant l'invalidation automatique de cles electroniques volees ou perdues et/ou le transfert d'habilitation a produire des cles
EP3358493A1 (fr) Procédé pour la sécurité d'une opération électronique
FR2733613A1 (fr) Procede d'activation et de protection anti-fraude d'un dispositif electronique de jeu, et dispositif correspondant
FR2749413A1 (fr) Procede de stockage des unites de valeur dans une carte a puce de facon securisee et systeme de transaction monetaire avec de telles cartes
FR2661532A1 (fr) Memoire a acces protege mot par mot.
FR2856815A1 (fr) Procede d'authentification de donnees contenues dans un objet a memoire
FR2875656A1 (fr) Diversification de cle dans un circuit integre

Legal Events

Date Code Title Description
CA Change of address
TP Transmission of property
ST Notification of lapse

Effective date: 20141031