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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/10—Mechanisms 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/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/0806—Details of the card
- G07F7/0813—Specific details related to card security
- G07F7/082—Features insuring the integrity of the data on or in the card
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/10—Mechanisms 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/1025—Identification 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)
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.
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)
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)
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)
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 |
-
1999
- 1999-02-11 FR FR9901650A patent/FR2789774B1/fr not_active Expired - Fee Related
-
2000
- 2000-02-11 US US09/501,999 patent/US6523056B1/en not_active Expired - Fee Related
Patent Citations (5)
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 |