CA2093524A1 - Procede pour repartir la memoire d'un circuit integre entre plusieurs applications - Google Patents
Procede pour repartir la memoire d'un circuit integre entre plusieurs applicationsInfo
- Publication number
- CA2093524A1 CA2093524A1 CA002093524A CA2093524A CA2093524A1 CA 2093524 A1 CA2093524 A1 CA 2093524A1 CA 002093524 A CA002093524 A CA 002093524A CA 2093524 A CA2093524 A CA 2093524A CA 2093524 A1 CA2093524 A1 CA 2093524A1
- Authority
- CA
- Canada
- Prior art keywords
- code
- memory
- zone
- circuit
- access
- 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.)
- Abandoned
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
- 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/357—Cards having a plurality of specified features
- G06Q20/3576—Multiple memory zones on card
- G06Q20/35765—Access rights to memory zones
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (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
2093524 9206451 PCTABS00110 L'invention concerne les procédés permettant d'implanter plusieurs applications distinctes dans le circuit intégré d'une carte à puce. Elle consiste à utiliser un code d'accès comprenant un code secret (202) et un code (201) définissant un numéro de zone dans la mémoire (103). Chaque zone correspond à une application. Le code définissant le numéro de zone permet d'accéder à la zone correspondante et donc à l'application, et le code secret permet ensuite le démarrage de cette application. Elle permet de réaliser des cartes à puce pouvant être utilisées par des personnes différentes pour des applications distinctes.
Description
WO9Z/O~SI PCT/FR91/00786 l ~J9352~
PROCEDE POUR REPARTIR LA MEMOIRE D~UN CIRCUIT
INTEGRE ENTRE PLUSIEURS APPLICATIONS.
La présente invention se rapporte aux procédés qui permettent de répartir le contenu de la mémoire d'un circuit intégré entre plusieurs applications, elles-mêmes éventuellement affectées à des utilisateurs différent. Elle s'applique plus particulièrement aux circuits intégrés destinés à être montés dans des cartes à mémoire dites cartes "à puce". Elle est particulièrement utile pour les circuits intégrés qui ne comportent pas de microprocesseur, mais seulement quelques circuits logiques qui permettent d'exploiter le contenu de la mémoire.
Il est connu d'interdire l'accès à la mémoire, et en fait l'utilisation, d'un circuit intégr~, en - inscrivant dans cette mémoire, à une adresse déterminée, ; 15 un code secret. Tant que l'utilisateur n'a pas pr~senté
- ce code secret à l'entrée du circuit, celui-ci reste - bloqué, tout au moins partiellement.
On souhaite par ailleurs pouvc_r utiliser un même circuit dans différentes applications, par exemple pour une carte bancaire et téléphonique. Il est alors utile - de protéger séparément les accès à ces utilisations, pour éviter par exemple que l'usage téléphonique ne - donne accès à l'usage bancaire. Lorsque le circuit intégré est muni d'un microprocesseur, on peut facilement concevoir une solution par logiciel à ce problème. Lorsque par contre il n'est pas ~uni d'un microprocesseur, il faut trouver une solution simple pour ne pas augmenter la complexité des circuits logiques d'exploitation de la mémoire, au risque d'aboutir à un circuit aussi complexe, mais moins ^~- : . . . . .
~ ' '~' ` `, . . . .
WO92/0~51 PCT/FR91/007 ~ 2 souple, que celui comportant un microprocesseur.
Pour sauvegarder cette simplicité, l'invention propose un procede pour repartir la memoire d'un circuit intégre entre plusieurs applications, caracteris~ en ce que l'on divise la memoire en plusieurs zones correspondant chacune à une application, et que l'on associe a chaque zone un code destine ~ être présenté au circuit par l'utilisateur pour autoriser quand il est reconnu l'acces a la zone a laquelle il est associé.
10En outre, l'invention s'applique aussi aux circuits - integrés munis d'un microprocesseur en implantant dans le logiciel le procédé de l'invention, ce qui donne a la partie de logiciel correspondante une taille r~duite et une efficacite remarquable.
15D'autres particularites et avantages de l'invention appara~tront clairement dans la description suivante faite en regard des figures annexées qui représentent :
'J - la figure 1, une représentation schématique du déroulement du procédé selon l'invention ;
- ~v 20 - la figure 2, la structure d'un code permettant l'accès à une zone ; et - la figure 3, un schema partiel d'un circuit int~gré
selon l'invention.
Selon l'invention, on attribue à chaque application implantée dans la mémoire du circuit un code d'acces, -qui peut être un code secret réservé ~ l'utilisateur autorisé, qui ouvre 1'accès à une zone particulière de la mémoire où réside l'application correspondante.
Ainsi, comme représenté sur la figure 1, l'utilisateur, qui peut être l'industriel chargé de développer une application particulière, ou le particulier utilisateur final de la carte à puce contenant le circuit intégré, commence dans une ~tape 101 par entrer un code dans le circuit. Ce code est -, , WO92/0~51 PCT/FR91/00786
PROCEDE POUR REPARTIR LA MEMOIRE D~UN CIRCUIT
INTEGRE ENTRE PLUSIEURS APPLICATIONS.
La présente invention se rapporte aux procédés qui permettent de répartir le contenu de la mémoire d'un circuit intégré entre plusieurs applications, elles-mêmes éventuellement affectées à des utilisateurs différent. Elle s'applique plus particulièrement aux circuits intégrés destinés à être montés dans des cartes à mémoire dites cartes "à puce". Elle est particulièrement utile pour les circuits intégrés qui ne comportent pas de microprocesseur, mais seulement quelques circuits logiques qui permettent d'exploiter le contenu de la mémoire.
Il est connu d'interdire l'accès à la mémoire, et en fait l'utilisation, d'un circuit intégr~, en - inscrivant dans cette mémoire, à une adresse déterminée, ; 15 un code secret. Tant que l'utilisateur n'a pas pr~senté
- ce code secret à l'entrée du circuit, celui-ci reste - bloqué, tout au moins partiellement.
On souhaite par ailleurs pouvc_r utiliser un même circuit dans différentes applications, par exemple pour une carte bancaire et téléphonique. Il est alors utile - de protéger séparément les accès à ces utilisations, pour éviter par exemple que l'usage téléphonique ne - donne accès à l'usage bancaire. Lorsque le circuit intégré est muni d'un microprocesseur, on peut facilement concevoir une solution par logiciel à ce problème. Lorsque par contre il n'est pas ~uni d'un microprocesseur, il faut trouver une solution simple pour ne pas augmenter la complexité des circuits logiques d'exploitation de la mémoire, au risque d'aboutir à un circuit aussi complexe, mais moins ^~- : . . . . .
~ ' '~' ` `, . . . .
WO92/0~51 PCT/FR91/007 ~ 2 souple, que celui comportant un microprocesseur.
Pour sauvegarder cette simplicité, l'invention propose un procede pour repartir la memoire d'un circuit intégre entre plusieurs applications, caracteris~ en ce que l'on divise la memoire en plusieurs zones correspondant chacune à une application, et que l'on associe a chaque zone un code destine ~ être présenté au circuit par l'utilisateur pour autoriser quand il est reconnu l'acces a la zone a laquelle il est associé.
10En outre, l'invention s'applique aussi aux circuits - integrés munis d'un microprocesseur en implantant dans le logiciel le procédé de l'invention, ce qui donne a la partie de logiciel correspondante une taille r~duite et une efficacite remarquable.
15D'autres particularites et avantages de l'invention appara~tront clairement dans la description suivante faite en regard des figures annexées qui représentent :
'J - la figure 1, une représentation schématique du déroulement du procédé selon l'invention ;
- ~v 20 - la figure 2, la structure d'un code permettant l'accès à une zone ; et - la figure 3, un schema partiel d'un circuit int~gré
selon l'invention.
Selon l'invention, on attribue à chaque application implantée dans la mémoire du circuit un code d'acces, -qui peut être un code secret réservé ~ l'utilisateur autorisé, qui ouvre 1'accès à une zone particulière de la mémoire où réside l'application correspondante.
Ainsi, comme représenté sur la figure 1, l'utilisateur, qui peut être l'industriel chargé de développer une application particulière, ou le particulier utilisateur final de la carte à puce contenant le circuit intégré, commence dans une ~tape 101 par entrer un code dans le circuit. Ce code est -, , WO92/0~51 PCT/FR91/00786
2 0 ~ 3 ~ 2 ~
décodé dans une étape 102 pour obtenir l'autorisation d'acc~s à l'une des zones de la m~moire 103, et à partir -de ce moment l'utilisateur est libre d'utiliser le contenu de cette zone, soit pour y implanter l'utilisation qu'il a développée, soit pour faire fonctionner celle-ci. L'accès des autres zones est, dans les cas les plus simples et les plus courants, interdit, mais il est ~ventuellement possible d'autoriser un acc~s partiel, par exemple pour utiliser un sous-programme contenu dans une autre application.
Un perfectionnement intéressant consiste à
organiser la logique du circuit, ou le logiciel du microprocesseur, pour que les adresses de début de zone, et les suivantes jusqu'à la fin si elles sont de longueurs identiques, soient les mêmes, ~ues de 1'utilisateur. Bien entendu les adresses physiques seront diff~rentes, mais cela ne se verra pas du coté
utilisateur, qui utilisera en fait l'équivalent invisible pour lui d'un adressage relatif. Outre la simplification du travail du d~veloppeur de - l'application, on augmente la sécurité en empechant d'accéder ~ des adresses interdites par une voie détournée, éventuellement possible suite à un bogue de programmation ou de spécification.
25Si la reconnaissance d'un code particulier et la s~lection de la zone mémoire correspondante se font aisément avec un microprocesseur, ces actions nécessitent dans le cas d'une logique cablée un matériel relativement lourd en comparaison de celui strictement néces~aire à la gestion de la mémoire en l'absence de - microprocesseur.
Pour résoudre ce problème, l'invention propose d'utiliser un code formé de 2 morceaux, comme représenté
en figure 2. Ce code comportera donc une première partie . .
-.... ..... . - - -- : . . .. :, . .
: : :
. . .
. ::. : : . : :.
~:-- ` ': ' '.: . . .
.. , : '. : : . :
... ., ., ~ . ..
W092/0~5] PCT/FR91/00786 2093~24 201, formee de x bits, désignant le numéro de zone utilisable, et une deuxième partie 202, formée de y bits et comportant le code secret (ou confidentiel) nécessaire pour accéder à la zone désign~e par le code.
- 5 La longueur totale du code à présenter par l'utilisateur sera donc de x ~ y bits et cette longueur sera de pr~ference égale à celle d'un mot de la mémoire, pour faciliter la réalisation des circuits logiques du circuit intégré.
Le numéro de zone sera de préférence placé en tête du code, en se référant au sens par lequel l'utilisateur 1'introduit dans le circuit en mode série, ce qui est le cas le plus fréquent, notamment dans les cartes à puce en raison du faible nombre de contacts disponibles sur le connecteur d'entrée/sortie. De cette manière, dès que - le code entre dans le circuit, les x premiers bit sont lus en premier et indiquent quel est le code secret interne memorisé dans le circuit qu'il faut comparer au ; code secret externe forme par les y bits de la deuxième partie du code introduit par l'utilisateur. Le pointeur interne du circuit selectionne alors le code secret mémorisé puis, si la comparaison est positive, il donne acc~s à la zone de la mé~oire désignée par le numero formant la pre~ière partie du code.
Bien entendu si la comparaison est negative l'accès sera refuse, sauf éventuellement à une zone delivrant par exe~ple un message d'erreur.
Les codes secrets memorises seront par exemple contenus dans une table speciale, mais de preférence on les placera dans la mémoire en tête des zones auxquelles ils donnent accès, ce qui permet là aussi de simplifier les circuits internes du circuit intégre. En effet dans ce cas le pointeur interne, sous la commande du numero de zone, adresse directement le premier mot de la .
. , .:
- ~ ' WO92/O~SI PCT/FR91/00786 209c~i2~
mémoire et l'application peut démarrer sans retard dès que le code secret est reconnu. De plus on économise les circuits nécessaires pour former une telle table et ses interfaces avec le reste du circuit intégré. Quand les s codes secrets sont contenus dans une table spéciale, cette table permet en les décodant, de conduire à une partie commune d'adressage qui joue un rôle de sélection - pour les zones mémoires auxquelles les codes secrets donnent accès.
Si, comme indique plus haut, la longueur totale du code (secret + n de zone) est egale à celle d'un mot de la memoire, on peut soit neutraliser l~.s bits correspondant au numéro, soit y mettre ce numéro lui-même et faire une comparaison totale du mot et du code, en obtenant ainsi une sécurité supplémentaire par redondance de la vérification du numéro de zone.
Dans le cas d'un circuit à microprocesseur la sélection se fait par logiciel. Après extraction des x premiers bits du code present~, le logiciel aiguille le pointeur interne vers le premier mot de la zone correspondant au numero indique par ces x bits, il provoque la lecteur de ce mot, puis la comparaison des y derniers bits avec le mot ainsi lu, et enfin le demarrage de l'application si la comparaison est positive.
Dans le cas d'un circuit sans microprocesseur, on peut utiliser par exemple des circuits logiques comme representé sur la figure 3, limitée aux circuits ~; spécifiques de l'invention.
le code introduit par l'utilisateur arrive par une connexion 'lentrée code" dans un registre 301 o~ il est mémorisé.
Les x premiers bits, correspondant au numéro de zone, sont appliqu~s a une logique de zones 302 o~ ils :., ~`' ' "' .' ' ' . :' ~........ . : - -.~; , ::: .: . .
. . : - .
. ~ ..... -.~: ' WO92/0~51 PCT/FR91/007~
5 `~ ~ 6 sont decodés pour obtenir un signal qui indique sur une connexion "sélection" la zone concernée. Cette logique mémorise ce signal jusqu'à la fin de 1'application.
Le signal de sélection ainsi obtenu est appliqué
aux organes d'adressage 303 de la mémoire 304 du circuit intégré. Ces organes de sélection reçoivent egalement par une connexion "entree adresses" les adresses des mots à lire dans l'application. La première adresse, 0 ` par convention, est toujours la même, et combinée avec le signal de sélection elle permet de lire dans la mémoire le premier mot de la zone désignée, qui contient ; le code secret interne mémorisé.
Ce code interne est appliqué, avec le code secret externe provenant du registre 301, à un comparateur 305 1~ qui délivre, si cette comparaison est positive, un signal de validation de lecture qui vient ouvrir une porte 306 qui permet aux mots lus dans la memoire de sortir vers les autres organes du circuit intégré. Ce signal de validation permet également, le cas échéant, de débloquer tout ou partie de ces autres organes, par - exemple pour autoriser l'écriture dans la mémoire.
; En outre, pendant toute la duree de l'application, le signal "selection" permet, en combinaison avec le signal d'adresses, de lire le contenu de la zone comme ; 25 si elle était en tête de la memoire. Il en est de même ~ bien entendu pour les autres applications.
- Par ailleurs, il n'est pas absolument necessaire que chaque code confidentiel soit placé au début de sa zone mémoire. En effet, la structure de l'invention est aussi particulièrement interessante si, après la présentation du code, toutes les zones sont de la même taille. Dans le cas contraire on utilise une organisation dans laquelle les codes secrets sont memorisés dans une petite zone.
': , "~
. - . . . - . .: -:.
. ' ' .. ~
W092/0~51 PCT/FR91/00786 ~,'333 j~'1 On va décrire maintenant, à l'aide de la figure 4, le circuit logique simple qui permet de se passer de l'existence, dans le circuit int~gré, d'un microprocesseur, tout en autorisant, selon l'invention, la mise en oeuvre de plusieurs applications avec la carte à puce. Dans de tels circuits sans microprocesseur l'adressage des mots mémoires est séquentiel. Dans le principe de cet adressage une horloge provoque, au moyen d'un compteur interne à la mémoire, un comptage d'adresse. Puis un signal de validation, émis depuis l'extérieur du circuit, valide l'~tat du compteur pour désigner l'adresse du mot à atteindre. Dans l'invention on utilise un tel système pour, en plus, mettre en oeuvre la sécurité liée aux différentes applications.
Dans l'exemple qu'on va décrire on va admettre pour simplifier que le numéro de la zone o~ est stocké le code secret est codé sur quatre bits de sorte qu'une partition de la mémoire en seize parties (24) est impos~e. Tout autre nombre différent de quatre est cependant possible. Lors de l'application des quatre premières impulsions CLX d'une horloge, les quatre premiers bits du code secret (qui représentent son adresse) sont envoyés par une broche d'entrée IN du - circuit intégré sur quatre registres à décalage 401 à
404 reliés en cascade. Avant l'envoi d'un cinquième bit d'horloge, un signal APL délivré par la logique de zone 30~, préalablement à z~ro, passe à un état un. Il - invalide alors la transmission des impulsions d'horloges aux registres 401-404. Ceux-ci restent dans l'état dans lequel ils étaient. Ils délivrent donc pendant toute l'utilisation suivante, en sortie, chacun un signal, respectivement A3 à A0, constituant un bit de poids donné d'une adresse. Cette adresse est décodée dans un prédécodeur de zone 405 possédant seize sorties. Chacune .- . . .. .: - ~ . .
.~. . . . . - .
.~ .
.-' : - :
W092/0~51 PCT/FR91tO0786
décodé dans une étape 102 pour obtenir l'autorisation d'acc~s à l'une des zones de la m~moire 103, et à partir -de ce moment l'utilisateur est libre d'utiliser le contenu de cette zone, soit pour y implanter l'utilisation qu'il a développée, soit pour faire fonctionner celle-ci. L'accès des autres zones est, dans les cas les plus simples et les plus courants, interdit, mais il est ~ventuellement possible d'autoriser un acc~s partiel, par exemple pour utiliser un sous-programme contenu dans une autre application.
Un perfectionnement intéressant consiste à
organiser la logique du circuit, ou le logiciel du microprocesseur, pour que les adresses de début de zone, et les suivantes jusqu'à la fin si elles sont de longueurs identiques, soient les mêmes, ~ues de 1'utilisateur. Bien entendu les adresses physiques seront diff~rentes, mais cela ne se verra pas du coté
utilisateur, qui utilisera en fait l'équivalent invisible pour lui d'un adressage relatif. Outre la simplification du travail du d~veloppeur de - l'application, on augmente la sécurité en empechant d'accéder ~ des adresses interdites par une voie détournée, éventuellement possible suite à un bogue de programmation ou de spécification.
25Si la reconnaissance d'un code particulier et la s~lection de la zone mémoire correspondante se font aisément avec un microprocesseur, ces actions nécessitent dans le cas d'une logique cablée un matériel relativement lourd en comparaison de celui strictement néces~aire à la gestion de la mémoire en l'absence de - microprocesseur.
Pour résoudre ce problème, l'invention propose d'utiliser un code formé de 2 morceaux, comme représenté
en figure 2. Ce code comportera donc une première partie . .
-.... ..... . - - -- : . . .. :, . .
: : :
. . .
. ::. : : . : :.
~:-- ` ': ' '.: . . .
.. , : '. : : . :
... ., ., ~ . ..
W092/0~5] PCT/FR91/00786 2093~24 201, formee de x bits, désignant le numéro de zone utilisable, et une deuxième partie 202, formée de y bits et comportant le code secret (ou confidentiel) nécessaire pour accéder à la zone désign~e par le code.
- 5 La longueur totale du code à présenter par l'utilisateur sera donc de x ~ y bits et cette longueur sera de pr~ference égale à celle d'un mot de la mémoire, pour faciliter la réalisation des circuits logiques du circuit intégré.
Le numéro de zone sera de préférence placé en tête du code, en se référant au sens par lequel l'utilisateur 1'introduit dans le circuit en mode série, ce qui est le cas le plus fréquent, notamment dans les cartes à puce en raison du faible nombre de contacts disponibles sur le connecteur d'entrée/sortie. De cette manière, dès que - le code entre dans le circuit, les x premiers bit sont lus en premier et indiquent quel est le code secret interne memorisé dans le circuit qu'il faut comparer au ; code secret externe forme par les y bits de la deuxième partie du code introduit par l'utilisateur. Le pointeur interne du circuit selectionne alors le code secret mémorisé puis, si la comparaison est positive, il donne acc~s à la zone de la mé~oire désignée par le numero formant la pre~ière partie du code.
Bien entendu si la comparaison est negative l'accès sera refuse, sauf éventuellement à une zone delivrant par exe~ple un message d'erreur.
Les codes secrets memorises seront par exemple contenus dans une table speciale, mais de preférence on les placera dans la mémoire en tête des zones auxquelles ils donnent accès, ce qui permet là aussi de simplifier les circuits internes du circuit intégre. En effet dans ce cas le pointeur interne, sous la commande du numero de zone, adresse directement le premier mot de la .
. , .:
- ~ ' WO92/O~SI PCT/FR91/00786 209c~i2~
mémoire et l'application peut démarrer sans retard dès que le code secret est reconnu. De plus on économise les circuits nécessaires pour former une telle table et ses interfaces avec le reste du circuit intégré. Quand les s codes secrets sont contenus dans une table spéciale, cette table permet en les décodant, de conduire à une partie commune d'adressage qui joue un rôle de sélection - pour les zones mémoires auxquelles les codes secrets donnent accès.
Si, comme indique plus haut, la longueur totale du code (secret + n de zone) est egale à celle d'un mot de la memoire, on peut soit neutraliser l~.s bits correspondant au numéro, soit y mettre ce numéro lui-même et faire une comparaison totale du mot et du code, en obtenant ainsi une sécurité supplémentaire par redondance de la vérification du numéro de zone.
Dans le cas d'un circuit à microprocesseur la sélection se fait par logiciel. Après extraction des x premiers bits du code present~, le logiciel aiguille le pointeur interne vers le premier mot de la zone correspondant au numero indique par ces x bits, il provoque la lecteur de ce mot, puis la comparaison des y derniers bits avec le mot ainsi lu, et enfin le demarrage de l'application si la comparaison est positive.
Dans le cas d'un circuit sans microprocesseur, on peut utiliser par exemple des circuits logiques comme representé sur la figure 3, limitée aux circuits ~; spécifiques de l'invention.
le code introduit par l'utilisateur arrive par une connexion 'lentrée code" dans un registre 301 o~ il est mémorisé.
Les x premiers bits, correspondant au numéro de zone, sont appliqu~s a une logique de zones 302 o~ ils :., ~`' ' "' .' ' ' . :' ~........ . : - -.~; , ::: .: . .
. . : - .
. ~ ..... -.~: ' WO92/0~51 PCT/FR91/007~
5 `~ ~ 6 sont decodés pour obtenir un signal qui indique sur une connexion "sélection" la zone concernée. Cette logique mémorise ce signal jusqu'à la fin de 1'application.
Le signal de sélection ainsi obtenu est appliqué
aux organes d'adressage 303 de la mémoire 304 du circuit intégré. Ces organes de sélection reçoivent egalement par une connexion "entree adresses" les adresses des mots à lire dans l'application. La première adresse, 0 ` par convention, est toujours la même, et combinée avec le signal de sélection elle permet de lire dans la mémoire le premier mot de la zone désignée, qui contient ; le code secret interne mémorisé.
Ce code interne est appliqué, avec le code secret externe provenant du registre 301, à un comparateur 305 1~ qui délivre, si cette comparaison est positive, un signal de validation de lecture qui vient ouvrir une porte 306 qui permet aux mots lus dans la memoire de sortir vers les autres organes du circuit intégré. Ce signal de validation permet également, le cas échéant, de débloquer tout ou partie de ces autres organes, par - exemple pour autoriser l'écriture dans la mémoire.
; En outre, pendant toute la duree de l'application, le signal "selection" permet, en combinaison avec le signal d'adresses, de lire le contenu de la zone comme ; 25 si elle était en tête de la memoire. Il en est de même ~ bien entendu pour les autres applications.
- Par ailleurs, il n'est pas absolument necessaire que chaque code confidentiel soit placé au début de sa zone mémoire. En effet, la structure de l'invention est aussi particulièrement interessante si, après la présentation du code, toutes les zones sont de la même taille. Dans le cas contraire on utilise une organisation dans laquelle les codes secrets sont memorisés dans une petite zone.
': , "~
. - . . . - . .: -:.
. ' ' .. ~
W092/0~51 PCT/FR91/00786 ~,'333 j~'1 On va décrire maintenant, à l'aide de la figure 4, le circuit logique simple qui permet de se passer de l'existence, dans le circuit int~gré, d'un microprocesseur, tout en autorisant, selon l'invention, la mise en oeuvre de plusieurs applications avec la carte à puce. Dans de tels circuits sans microprocesseur l'adressage des mots mémoires est séquentiel. Dans le principe de cet adressage une horloge provoque, au moyen d'un compteur interne à la mémoire, un comptage d'adresse. Puis un signal de validation, émis depuis l'extérieur du circuit, valide l'~tat du compteur pour désigner l'adresse du mot à atteindre. Dans l'invention on utilise un tel système pour, en plus, mettre en oeuvre la sécurité liée aux différentes applications.
Dans l'exemple qu'on va décrire on va admettre pour simplifier que le numéro de la zone o~ est stocké le code secret est codé sur quatre bits de sorte qu'une partition de la mémoire en seize parties (24) est impos~e. Tout autre nombre différent de quatre est cependant possible. Lors de l'application des quatre premières impulsions CLX d'une horloge, les quatre premiers bits du code secret (qui représentent son adresse) sont envoyés par une broche d'entrée IN du - circuit intégré sur quatre registres à décalage 401 à
404 reliés en cascade. Avant l'envoi d'un cinquième bit d'horloge, un signal APL délivré par la logique de zone 30~, préalablement à z~ro, passe à un état un. Il - invalide alors la transmission des impulsions d'horloges aux registres 401-404. Ceux-ci restent dans l'état dans lequel ils étaient. Ils délivrent donc pendant toute l'utilisation suivante, en sortie, chacun un signal, respectivement A3 à A0, constituant un bit de poids donné d'une adresse. Cette adresse est décodée dans un prédécodeur de zone 405 possédant seize sorties. Chacune .- . . .. .: - ~ . .
.~. . . . . - .
.~ .
.-' : - :
W092/0~51 PCT/FR91tO0786
3 9 ~ r~
de ces seize sorties aboutit à une entrée d'un décodeur 406 de ligne de mot de la mémoire 407. Cet aboutissement est par ailleurs autorisé par un ensemble de porte ET
- telle que 408 recevant le signal du prédécodeur 406 et le signal APL.
Avant le cinquième bit de l'horloge, le décodeur 406 est donc alimenté par les seize signaux du -- préd~codeur 405. Les autres entrées du décodeur 406 restent encore à zéro. Le décodeur 406 est donc configuré pour permettre l'accès au premier mot de la partition adressée (une parmi seize). Ce mot qui justement contient le code secret est alors lu pour être comparé comme cela a été indiqué ci-dessus.
Selon une particularité essentielle de l'invention, le code secret, CODE N 1, CODE N 2, etc.... occupe ; donc la place du premier mot physiquement rang~ dans la partition adressée de la mémoire. Selon une autre , particularité essentielle, la partition utilisable de la mémoire 407, par exemple la partition 409, attachée au premier mot de la zone 410 qui contient le code secret CODE N 1, est physiquement proche de ce mot 410.
Cette proximité physique s'explique par le fait que les mots mémoires de la partition 409 de la mémoire 407 ont des moments d'adresse A0 et A3 qui sont les mêmes que ceux du code secret qui gouverne cette zone 409.
L'adressage des différents mots mémoires dans la partition 409 est alors effectué de la façon suivante.
Une partie de l'adresse est fournie au décodeur 406 par le prédécodeur 405 (figé dan~ cet état pendant toute l'application). Une autre partie est fournie classiquement par un compteur 411 recevant des signaux CLKV d'horloge validés (pour aboutir au bon mot mémorisé) et relié à un pr~décodeur 412. Cette dernière liaison est du même type que celle qui relie les .: . - .: : ~ .. , :
.: : ': , ::
., .
,`, ' '~ ' , ~ ,.
.` :
W092/0~51 PCT/FR91/00786 290~352~
registres 401-404 au prédécodeur 405. Le prédécodeur 412 transforme le compte du compteur 411 en des signaux d'adresse. Par exemple le compteur peut compter de 0 à
2n et le prédécodeur 412 a donc n connexions et sortie.
Ces n connexions aboutissent sur n entrées du décodeur 406. De ces n entrées, n-l sont utiles pour accéder à
tous les mots mémoire de la partition 409. Une fois que cet accès a été effectué on fait compter le compteur 411 jusqu'à n. On aboutit alors à un mot mémoire fictif en sortie du décodeur 406. Le mot mémoire fictif est constitué par une connexion 413 connectée à une entrée de remise à zéro du compteur 411. On peut alors recommencer un autre compte pour accéder de nouveau à
une adresse de la partition 409. On ne peut pas accéder ; 15 à d'autres mots que ceux de cette partition.
En agissant ainsi on obtient un premier résultat par lequel les adressages dans les zones sont identiques vu du coté utilisateur puisque les utilisateurs n'ont -~ que les n moments d'adresse à leur disposition.
Autrement dit l'adressage est limit~ de 1 à 2n-1, et cet adressage est le même pour toutes les zones.
Deuxièmement on obtient une partition sure de la mémoire. Il n'est pas possible en effet avec une application à qui est dévolue une zone d'aller utiliser les informations situées dans une autre zone puisque les quatre premiers bits d'adresse restent figés.
. . .
:
.' ' ' ' "'' . ' ' ~
' '~ ' ' ' '
de ces seize sorties aboutit à une entrée d'un décodeur 406 de ligne de mot de la mémoire 407. Cet aboutissement est par ailleurs autorisé par un ensemble de porte ET
- telle que 408 recevant le signal du prédécodeur 406 et le signal APL.
Avant le cinquième bit de l'horloge, le décodeur 406 est donc alimenté par les seize signaux du -- préd~codeur 405. Les autres entrées du décodeur 406 restent encore à zéro. Le décodeur 406 est donc configuré pour permettre l'accès au premier mot de la partition adressée (une parmi seize). Ce mot qui justement contient le code secret est alors lu pour être comparé comme cela a été indiqué ci-dessus.
Selon une particularité essentielle de l'invention, le code secret, CODE N 1, CODE N 2, etc.... occupe ; donc la place du premier mot physiquement rang~ dans la partition adressée de la mémoire. Selon une autre , particularité essentielle, la partition utilisable de la mémoire 407, par exemple la partition 409, attachée au premier mot de la zone 410 qui contient le code secret CODE N 1, est physiquement proche de ce mot 410.
Cette proximité physique s'explique par le fait que les mots mémoires de la partition 409 de la mémoire 407 ont des moments d'adresse A0 et A3 qui sont les mêmes que ceux du code secret qui gouverne cette zone 409.
L'adressage des différents mots mémoires dans la partition 409 est alors effectué de la façon suivante.
Une partie de l'adresse est fournie au décodeur 406 par le prédécodeur 405 (figé dan~ cet état pendant toute l'application). Une autre partie est fournie classiquement par un compteur 411 recevant des signaux CLKV d'horloge validés (pour aboutir au bon mot mémorisé) et relié à un pr~décodeur 412. Cette dernière liaison est du même type que celle qui relie les .: . - .: : ~ .. , :
.: : ': , ::
., .
,`, ' '~ ' , ~ ,.
.` :
W092/0~51 PCT/FR91/00786 290~352~
registres 401-404 au prédécodeur 405. Le prédécodeur 412 transforme le compte du compteur 411 en des signaux d'adresse. Par exemple le compteur peut compter de 0 à
2n et le prédécodeur 412 a donc n connexions et sortie.
Ces n connexions aboutissent sur n entrées du décodeur 406. De ces n entrées, n-l sont utiles pour accéder à
tous les mots mémoire de la partition 409. Une fois que cet accès a été effectué on fait compter le compteur 411 jusqu'à n. On aboutit alors à un mot mémoire fictif en sortie du décodeur 406. Le mot mémoire fictif est constitué par une connexion 413 connectée à une entrée de remise à zéro du compteur 411. On peut alors recommencer un autre compte pour accéder de nouveau à
une adresse de la partition 409. On ne peut pas accéder ; 15 à d'autres mots que ceux de cette partition.
En agissant ainsi on obtient un premier résultat par lequel les adressages dans les zones sont identiques vu du coté utilisateur puisque les utilisateurs n'ont -~ que les n moments d'adresse à leur disposition.
Autrement dit l'adressage est limit~ de 1 à 2n-1, et cet adressage est le même pour toutes les zones.
Deuxièmement on obtient une partition sure de la mémoire. Il n'est pas possible en effet avec une application à qui est dévolue une zone d'aller utiliser les informations situées dans une autre zone puisque les quatre premiers bits d'adresse restent figés.
. . .
:
.' ' ' ' "'' . ' ' ~
' '~ ' ' ' '
Claims (3)
1 - Procédé pour répartir la mémoire d'un circuit intégré sans microprocesseur entre plusieurs applications dans lequel - on divise la mémoire (103) en plusieurs zones (n) correspondant chacune à une application, - on associe un code à chaque zone - et on présente (101) ce code au circuit pour autoriser (102) quand il est reconnu l'accès à la zone à
laquelle il est associé, caractérisé en ce que - on divise le code en deux parties, l'une (201) correspondant au numéro de la zone associée, et l'autre (202) formant un code secret destiné à protéger l'accès à l'application contenue dans ladite zone, - on place la partie (201) correspondant au numéro de zone avant l'autre partie, compte tenu du sens d'introduction du code dans le circuit - et on utilise en particulier comme adresse des zones la partie des codes qui correspond à ce numéro de zone pour que les adressages dans les zones soient réduits et identiques vu du coté utilisateur.
laquelle il est associé, caractérisé en ce que - on divise le code en deux parties, l'une (201) correspondant au numéro de la zone associée, et l'autre (202) formant un code secret destiné à protéger l'accès à l'application contenue dans ladite zone, - on place la partie (201) correspondant au numéro de zone avant l'autre partie, compte tenu du sens d'introduction du code dans le circuit - et on utilise en particulier comme adresse des zones la partie des codes qui correspond à ce numéro de zone pour que les adressages dans les zones soient réduits et identiques vu du coté utilisateur.
2 - Procédé selon la revendication 1, caractérisé
en ce que les codes secrets sont placés en tête (410) des zones (409) correspondantes de la mémoire (103).
en ce que les codes secrets sont placés en tête (410) des zones (409) correspondantes de la mémoire (103).
3 - Procédé selon la revendication 2, caractérisé
en ce que les codes secrets sont placés dans une table des codes secrets.
en ce que les codes secrets sont placés dans une table des codes secrets.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR90/12439 | 1990-10-09 | ||
FR9012439A FR2667714A1 (fr) | 1990-10-09 | 1990-10-09 | Procede pour repartir la memoire d'un circuit integre entre plusieurs applications. |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2093524A1 true CA2093524A1 (fr) | 1992-04-10 |
Family
ID=9401057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002093524A Abandoned CA2093524A1 (fr) | 1990-10-09 | 1991-10-08 | Procede pour repartir la memoire d'un circuit integre entre plusieurs applications |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP0553163A1 (fr) |
JP (1) | JPH06502032A (fr) |
CA (1) | CA2093524A1 (fr) |
FR (1) | FR2667714A1 (fr) |
WO (1) | WO1992006451A1 (fr) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2690008B1 (fr) * | 1991-05-29 | 1994-06-10 | Gemplus Card Int | Memoire avec cellule memoire eeprom a effet capacitif et procede de lecture d'une telle cellule memoire. |
FR2685113B1 (fr) * | 1991-12-17 | 1998-07-24 | Gemplus Card Int | Procede d'intervention sur une borne de delivrance d'un bien ou d'un service. |
US5682027A (en) * | 1992-10-26 | 1997-10-28 | Intellect Australia Pty Ltd. | System and method for performing transactions and a portable intelligent device therefore |
FR2703501B1 (fr) * | 1993-04-01 | 1995-05-19 | Gemplus Card Int | Circuit intégré pour carte à mémoire et procédé de décomptage d'unités dans une carte à mémoire. |
FR2703526B1 (fr) * | 1993-04-02 | 1995-05-19 | Gemplus Card Int | Circuit de déclenchement automatique. |
FR2705810B1 (fr) * | 1993-05-26 | 1995-06-30 | Gemplus Card Int | Puce de carte à puce munie d'un moyen de limitation du nombre d'authentifications. |
US5544246A (en) * | 1993-09-17 | 1996-08-06 | At&T Corp. | Smartcard adapted for a plurality of service providers and for remote installation of same |
US6145739A (en) * | 1993-10-26 | 2000-11-14 | Intellect Australia Pty Ltd. | System and method for performing transactions and an intelligent device therefor |
US5491827A (en) * | 1994-01-14 | 1996-02-13 | Bull Hn Information Systems Inc. | Secure application card for sharing application data and procedures among a plurality of microprocessors |
DE19536206A1 (de) * | 1994-09-30 | 1996-04-04 | Samsung Electronics Co Ltd | Intelligente Karte |
GB9502864D0 (en) * | 1995-02-14 | 1995-04-05 | Digicash Bv | Cryptographic reduced instruction set processor |
FR2739706B1 (fr) * | 1995-10-09 | 1997-11-21 | Inside Technologies | Perfectionnements aux cartes a memoire |
FR2739737B1 (fr) * | 1995-10-09 | 1997-11-21 | Inside Technologies | Perfectionnements aux cartes a memoire |
EP0818761A1 (fr) * | 1996-07-12 | 1998-01-14 | Koninklijke KPN N.V. | Carte à puce, module d'application sécurisé, système comportant un module d'application sécurisé et un terminal et une méthode pour commander des actions de service exécutées par le module d'application sécurisé dans la carte à puce |
FR2757654B1 (fr) * | 1996-12-24 | 1999-02-05 | Sgs Thomson Microelectronics | Memoire avec zones protegees en lecture |
GB2321728B (en) * | 1997-01-30 | 2001-12-19 | Motorola Inc | Apparatus and method for accessing secured data stored in a portable data carrier |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6373388A (ja) * | 1986-09-16 | 1988-04-02 | Fujitsu Ltd | 複数サ−ビス用icカ−ドの領域獲得方式 |
JPH02165290A (ja) * | 1988-12-19 | 1990-06-26 | Hitachi Maxell Ltd | Icカード及びその動作方法 |
-
1990
- 1990-10-09 FR FR9012439A patent/FR2667714A1/fr active Granted
-
1991
- 1991-10-08 JP JP3516443A patent/JPH06502032A/ja active Pending
- 1991-10-08 CA CA002093524A patent/CA2093524A1/fr not_active Abandoned
- 1991-10-08 WO PCT/FR1991/000786 patent/WO1992006451A1/fr not_active Application Discontinuation
- 1991-10-08 EP EP91917979A patent/EP0553163A1/fr not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
FR2667714B1 (fr) | 1995-01-27 |
EP0553163A1 (fr) | 1993-08-04 |
JPH06502032A (ja) | 1994-03-03 |
WO1992006451A1 (fr) | 1992-04-16 |
FR2667714A1 (fr) | 1992-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2093524A1 (fr) | Procede pour repartir la memoire d'un circuit integre entre plusieurs applications | |
CA1164565A (fr) | Objet portatif individualise du genre de carte de credit | |
EP0651394B1 (fr) | Circuit intégré contenant une mémoire protégée et système sécurisé utilisant ledit circuit intégré | |
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 | |
FR2698195A1 (fr) | Procédé et circuit de cryptage et d'authentification pour carte à mémoire synchrone. | |
EP0426541B1 (fr) | Procédé de protection contre l'utilisation frauduleuse de cartes à microprocesseur, et dispositif de mise en oeuvre | |
FR2539528A1 (fr) | Systeme a microprocesseur comportant deux processeurs | |
FR2737592A1 (fr) | Circuit hdlc a bus interne partage | |
FR2583540A1 (fr) | Gestion de memoire pour systeme a microprocesseur. | |
FR2519441A1 (fr) | Systeme de selection de priorite pour l'acces a un bus utilise en mode partage | |
FR2646942A1 (fr) | Carte a circuit integre | |
FR2549989A1 (fr) | Systeme d'authentification entre un lecteur de carte et une carte de paiement echangeant des informations | |
FR2494010A1 (fr) | Dispositif d'arbitration decentralisee de plusieurs unites de traitement d'un systeme multiprocesseur | |
FR2528195A1 (fr) | Systeme de communication entre ordinateurs | |
FR2606530A1 (fr) | Circuit integre pour la memorisation et le traitement d'informations de maniere confidentielle comportant un dispositif anti-fraude | |
FR3103585A1 (fr) | Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant | |
FR2642544A1 (fr) | Systeme de traitement de donnees a programme de securite | |
EP0228329B1 (fr) | Dispositif électronique formant mémoire stable rapide perfectionnée | |
FR2871310A1 (fr) | Circuit logique configurable resistant a une attaque dpa | |
EP0884704B1 (fr) | Procédé d'authentification de circuit intégré | |
FR2801751A1 (fr) | Composant electronique de securite | |
EP0735489A1 (fr) | Procédé de protection de zones de mémoires non volatiles | |
FR2702061A1 (fr) | Dispositif de traitement d'informations. | |
EP0718769A1 (fr) | Dispositif de protection de l'accès à des mots mémoires | |
EP0393050B1 (fr) | Dispositif de protection des zones memoire d'un systeme electronique a microprocesseur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |