CA2093524A1 - Method for distributing the memory of an integrated circuit among a plurality of applications - Google Patents

Method for distributing the memory of an integrated circuit among a plurality of applications

Info

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
Application number
CA002093524A
Other languages
French (fr)
Inventor
Jacek Kowalski
Jean-Jacques Foglino
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2093524A1 publication Critical patent/CA2093524A1/en
Abandoned 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
    • 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/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • G06Q20/35765Access 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.2093524 9206451 PCTABS00110 The invention relates to methods for implementing several distinct applications in the integrated circuit of a smart card. It consists in using an access code comprising a secret code (202) and a code (201) defining a zone number in the memory (103). Each zone corresponds to an application. The code defining the zone number allows access to the corresponding zone and therefore to the application, and the secret code then allows this application to be started. It allows you to create smart cards that can be used by different people for different applications.

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
WO9Z / O ~ SI PCT / FR91 / 00786 l ~ J9352 ~

METHOD FOR DISTRIBUTING THE MEMORY OF A CIRCUIT
INTEGRATED BETWEEN SEVERAL APPLICATIONS.

The present invention relates to methods which allow to distribute the contents of the memory of a integrated circuit between several applications, themselves possibly assigned to users different. It applies more particularly to integrated circuits intended to be mounted in cards with memory called "smart" cards. She is particularly useful for integrated circuits which do not have no microprocessor, but only some logic circuits which allow to exploit the memory content.
It is known to prohibit access to memory, and in fact the use of an integrated circuit, - writing in this memory, at a determined address, ; 15 a secret code. Until the user has presented - this secret code at the entrance of the circuit, it remains - blocked, at least partially.
We also want to be able to use the same circuit in different applications, for example for a bank and telephone card. It is then useful - separately protect access to these uses, to avoid, for example, that telephone use does not - gives access to banking use. When the circuit integrated has a microprocessor, you can easily design a software solution to this problem. When on the other hand it is not ~ united by a microprocessor, you have to find a simple solution so as not to increase the complexity of the circuits memory exploitation logic, at risk to end up with a circuit as complex, but less ^ ~ -:. . . . .

~ '' ~ '' `,. . . .

WO92 / 0 ~ 51 PCT / FR91 / 007 ~ 2 flexible, as that comprising a microprocessor.
To safeguard this simplicity, the invention proposes a method for distributing the memory of a circuit integrate between several applications, caracteris ~ in this that we divide the memory into several zones each corresponding to an application, and that one associates with each zone a code intended to be presented to the circuit by the user to authorize when it is recognized the access to the zone with which it is associated.
10Furthermore, the invention also applies to circuits - integrated with a microprocessor by implanting in the software the method of the invention, which gives the part of software corresponding to a reduced size and remarkable efficiency.
15Other features and advantages of the invention will appear clearly in the following description made with reference to the appended figures which represent:
'J - Figure 1, a schematic representation of the progress of the process according to the invention;
- ~ v 20 - Figure 2, the structure of a code allowing access to an area; and - Figure 3, a partial diagram of an integrated circuit ~
according to the invention.
According to the invention, each application is assigned implanted in the circuit memory an access code, -which can be a reserved secret code ~ the user authorized, which opens access to a particular area of the memory where the corresponding application resides.
So, as shown in Figure 1, the user, who may be the manufacturer responsible for develop a particular application, or the individual end-user of the smart card containing the integrated circuit, starts in a ~ tape 101 by entering a code in the circuit. This code is -, , 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
2 0 ~ 3 ~ 2 ~

decoded in a step 102 to obtain authorization access to one of the areas of memory 103, and from -from this moment the user is free to use the content of this area, either to locate there the use he developed, either to make operate it. Access from other areas is, in the simplest and most common cases, prohibited, but it is ~ possible possible to authorize an access ~ s partial, for example to use a subroutine contained in another application.
An interesting improvement consists in organize the logic of the circuit, or the software of the microprocessor, so that the zone start addresses, and the following ones until the end if they are of identical lengths, be the same, ~ ues of The user. Of course physical addresses will be different, but it will not be seen on the side user, who will actually use the equivalent invisible to him from relative addressing. Besides the simplification of the work of the developer - the application, we increase security by preventing to access addresses prohibited by a route diverted, possibly possible due to a bug in programming or specification.
25If the recognition of a particular code and the selection of the corresponding memory area is done easily with a microprocessor, these actions require in the case of a wired logic a hardware relatively heavy compared to that strictly n ~ necessary for memory management in the absence of - microprocessor.
To solve this problem, the invention proposes to use a code made up of 2 pieces, as shown in figure 2. This code will therefore include a first part . .

-.... ...... - - --:. . ..:,. .
:::
. . .

. ::. ::. ::.
~: - ``: ''.:. . .
..,: '. ::. :
....,., ~. ..

W092 / 0 ~ 5] PCT / FR91 / 00786 2093 ~ 24 201, consisting of x bits, designating the zone number usable, and a second part 202, formed of y bits and containing the secret (or confidential) code necessary to access the area designated by the code.
- 5 The total length of the code to be presented by the user will therefore be x ~ y bits and this length will preferably be equal to that of a word in memory, to facilitate the realization of the logic circuits of the integrated circuit.
The zone number should preferably be placed at the top code, referring to the direction by which the user Introduced into the circuit in serial mode, which is the most common case, especially in smart cards due to the low number of contacts available on the input / output connector. In this way, as soon as - the code enters the circuit, the first x bits are read first and indicate what is the secret code internal memorized in the circuit which must be compared to ; external secret code formed by the y bits of the second part of the code entered by the user. The pointer internal of the circuit then selects the secret code memorized then, if the comparison is positive, it gives acc ~ s to the memory area designated by the number forming the first part of the code.
Of course if the comparison is negative access will be refused, except possibly to a delivery area for example, an error message.
The memorized secret codes will be for example contained in a special table, but preferably will place them in memory at the head of the areas to which they give access, which again simplifies the internal circuits of the integrated circuit. Indeed in in this case the internal pointer, under the number command of zone, directly addresses the first word of the .

. ,.:
- ~ ' WO92 / O ~ SI PCT / FR91 / 00786 209c ~ i2 ~

memory and the application can start without delay as soon as that the secret code is recognized. In addition we save circuits necessary to form such a table and its interfaces with the rest of the integrated circuit. When the s secret codes are contained in a special table, this table allows, by decoding them, to lead to a common addressing part which plays a selection role - for the memory zones to which the secret codes give access.
If, as indicated above, the total length of the code (secret + n of zone) is equal to that of a word of memory, you can either neutralize the ~ .s bits corresponding to the number, or put this number himself and make a total comparison of the word and the code, thereby obtaining additional security by redundancy of zone number verification.
In the case of a microprocessor circuit the selection is made by software. After extraction of x first bits of the code present ~, the software directs the internal pointer to the first word in the area corresponding to the number indicated by these x bits, it causes the reader of this word, then the comparison of y last bits with the word thus read, and finally the start the application if the comparison is positive.
In the case of a circuit without microprocessor, we can use for example logic circuits like shown in Figure 3, limited to circuits ~; specific to the invention.
the code entered by the user arrives by a connection 'code entry' in a register 301 where ~
memorized.
The first x bits, corresponding to the number of zone, are applied ~ its a logic of zones 302 o ~ they :., ~ `` '"'. '''.:' ~ ......... : - -. ~; , :::.:. .
. . : -.
. ~ ..... -. ~: ' WO92 / 0 ~ 51 PCT / FR91 / 007 ~

5 `~ ~ 6 are decoded to get a signal that indicates on a connection "selection" the area concerned. This logic memorizes this signal until the end of the application.
The selection signal thus obtained is applied to the addressing devices 303 of the memory 304 of the circuit integrated. These selection bodies also receive by a connection "input addresses" the addresses of words to read in the app. The first address, 0 `` by convention, is always the same, and combined with the selection signal it allows to read in the memory the first word of the designated area, which contains ; the internal secret code memorized.
This internal code is applied, with the secret code external from register 301, to a comparator 305 1 ~ which delivers, if this comparison is positive, a read validation signal which opens a door 306 which allows the words read in the memory to exit to the other organs of the integrated circuit. This validation signal also allows, if necessary, to unblock all or part of these other organs, by - example to authorize writing in memory.
; In addition, for the duration of the application, the "selection" signal allows, in combination with the address signal, read the contents of the area as ; 25 if it was at the top of the memory. It is the same ~ of course for other applications.
- Besides, it is not absolutely necessary that each confidential code be placed at the beginning of its memory area. Indeed, the structure of the invention is also particularly interesting if, after presentation of the code, all the zones are the same cut. Otherwise we use a organization in which secret codes are memorized in a small area.

':, "~
. -. . . -. .: -:.
. '' .. ~

W092 / 0 ~ 51 PCT / FR91 / 00786 ~, '333 d ~' 1 We will now describe, using Figure 4, the simple logic circuit that allows you to do without the existence, in the integrated circuit, of a microprocessor, while authorizing, according to the invention, the implementation of several applications with the Smartcard. In such circuits without microprocessor the addressing of memory words is sequential. In the principle of this addressing a clock causes, by means an internal memory counter, a count address. Then a validation signal, issued from outside the circuit, validates the state of the counter for designate the address of the word to be reached. In the invention we use such a system to, in addition, security related to different applications.
In the example that we will describe we will admit for simplify that the zone number o ~ is stored on secret code is coded on four bits so that a memory partition into sixteen parts (24) is imposed. Any other number other than four is however possible. When applying the four first CLX pulses of a clock, all four first bits of the secret code (which represent its address) are sent by an IN input pin of the - integrated circuit on four shift registers 401 to 404 connected in cascade. Before sending a fifth bit clock, an APL signal delivered by the zone logic 30 ~, prior to z ~ ro, goes to a state one. he - then invalidates the transmission of clock pulses at registers 401-404. These remain in the state in which they were. So they deliver throughout the following use, at the output, each a signal, respectively A3 to A0, constituting a bit of weight given an address. This address is decoded in a 405 zone predecoder with sixteen outputs. Each .-. . ...: - ~. .
. ~. . . . . -.

. ~.
.- ': -:

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.

. . .

:

.' ' ' ' "'' . ' ' ~

' '~ ' ' ' '
3 9 ~ r ~

of these sixteen outputs leads to an input from a decoder Memory word line 406 407. This outcome is also authorized by an AND gate assembly - such as 408 receiving the signal from the predecoder 406 and the APL signal.
Before the fifth bit of the clock, the decoder 406 is therefore powered by the sixteen signals of the - pred ~ 405 encoder. The other inputs of the 406 decoder still remain at zero. The 406 decoder is therefore configured to allow access to the first word of the partition addressed (one among sixteen). This word which precisely contains the secret code is then read to be compared as indicated above.
According to an essential feature of the invention, the secret code, CODE N 1, CODE N 2, etc ... occupies ; so the place of the first word physically ranked ~ in the addressed partition of memory. According to another , essential feature, the usable partition of memory 407, for example partition 409, attached at the first word of zone 410 which contains the code secret CODE N 1, is physically close to this word 410.
This physical proximity is explained by the fact that the memory words of partition 409 of memory 407 have times of address A0 and A3 which are the same as those of the secret code which governs this zone 409.
The addressing of the different memory words in the partition 409 is then performed as follows.
Part of the address is supplied to decoder 406 by the 405 predecoder (frozen in ~ this state throughout application). Another part is provided conventionally by a 411 counter receiving signals CLKV clock validated (to get the right word memorized) and connected to a pr ~ decoder 412. The latter connection is of the same type as that which connects .:. -.:: ~ ..,:
.:: ':, ::
.,.

, `, '' ~ ', ~,.
.`:

W092 / 0 ~ 51 PCT / FR91 / 00786 290 ~ 352 ~

registers 401-404 to predecoder 405. Predecoder 412 transforms the 411 counter account into signals address. For example the counter can count from 0 to 2n and the predecoder 412 therefore has n connections and output.
These n connections lead to n inputs of the decoder 406. Of these n entries, nl are useful for accessing all memory words in partition 409. Once this access has been made we count the counter 411 up to n. We then arrive at a fictitious memory word in output from decoder 406. The dummy memory word is consisting of a 413 connection connected to an input reset counter 411. We can then restart another account to access again an address from partition 409. Cannot access ; 15 to words other than those in this score.
By doing so we get a first result by which the addresses in the zones are identical seen from the user side since users have - ~ that the n moments of address at their disposal.
In other words the addressing is limited ~ from 1 to 2n-1, and this addressing is the same for all zones.
Second, we get a secure partition of the memory. It is indeed not possible with a application to which is allocated an area to use information located in another area since the first four address bits remain frozen.

. . .

:

. ''''' "''. ' '~

'' '~''''

Claims (3)

REVENDICATIONS 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.
1 - Process for distributing the memory of a circuit integrated without a microprocessor between several applications in which - the memory (103) is divided into several zones (n) each corresponding to an application, - a code is associated with each zone - and we present (101) this code to the circuit to authorize (102) when it is recognized access to the zone to be with which it is associated, characterized in that - we divide the code into two parts, one (201) corresponding to the number of the associated zone, and the other (202) forming a secret code intended to protect access to the application contained in said zone, - the part (201) corresponding to the number is placed zone before the other party, taking into account the direction introduction of the code in the circuit - and we use in particular as address zones the part of the codes which corresponds to this number of zone so that the addresses in the zones are reduced and identical seen from the user side.
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).
2 - Process according to claim 1, characterized in that the secret codes are placed in the lead (410) corresponding areas (409) of the memory (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.
3 - Process according to claim 2, characterized in that the secret codes are placed in a table secret codes.
CA002093524A 1990-10-09 1991-10-08 Method for distributing the memory of an integrated circuit among a plurality of applications Abandoned CA2093524A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR90/12439 1990-10-09
FR9012439A FR2667714A1 (en) 1990-10-09 1990-10-09 METHOD FOR DISTRIBUTING THE MEMORY OF AN INTEGRATED CIRCUIT BETWEEN SEVERAL APPLICATIONS.

Publications (1)

Publication Number Publication Date
CA2093524A1 true CA2093524A1 (en) 1992-04-10

Family

ID=9401057

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002093524A Abandoned CA2093524A1 (en) 1990-10-09 1991-10-08 Method for distributing the memory of an integrated circuit among a plurality of applications

Country Status (5)

Country Link
EP (1) EP0553163A1 (en)
JP (1) JPH06502032A (en)
CA (1) CA2093524A1 (en)
FR (1) FR2667714A1 (en)
WO (1) WO1992006451A1 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2690008B1 (en) * 1991-05-29 1994-06-10 Gemplus Card Int MEMORY WITH CAPACITIVE EFFECT EEPROM MEMORY CELL AND METHOD FOR READING SUCH A MEMORY CELL.
FR2685113B1 (en) * 1991-12-17 1998-07-24 Gemplus Card Int PROCESS OF INTERVENTION ON A TERMINAL OF GOODS OR SERVICES.
WO1994010657A1 (en) * 1992-10-26 1994-05-11 Intellect Australia Pty. Ltd. Host and user transaction system
FR2703501B1 (en) * 1993-04-01 1995-05-19 Gemplus Card Int Integrated circuit for memory card and method for counting units in a memory card.
FR2703526B1 (en) * 1993-04-02 1995-05-19 Gemplus Card Int Automatic trip circuit.
FR2705810B1 (en) * 1993-05-26 1995-06-30 Gemplus Card Int Chip card chip provided with a means of limiting the number of authentications.
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 (en) * 1994-09-30 1996-04-04 Samsung Electronics Co Ltd Smart card with data protection processor
GB9502864D0 (en) * 1995-02-14 1995-04-05 Digicash Bv Cryptographic reduced instruction set processor
FR2739737B1 (en) * 1995-10-09 1997-11-21 Inside Technologies MEMORY CARD IMPROVEMENTS
FR2739706B1 (en) * 1995-10-09 1997-11-21 Inside Technologies MEMORY CARD IMPROVEMENTS
EP0818761A1 (en) * 1996-07-12 1998-01-14 Koninklijke KPN N.V. Integrated circuit card, secure application module, system comprising a secure application module and a terminal and a method for controlling service actions to be carried out by the secure application module on the integrated circuit card
FR2757654B1 (en) * 1996-12-24 1999-02-05 Sgs Thomson Microelectronics MEMORY WITH PROTECTED AREAS READING
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6373388A (en) * 1986-09-16 1988-04-02 Fujitsu Ltd Area acquiring system for ic card for plural services
JPH02165290A (en) * 1988-12-19 1990-06-26 Hitachi Maxell Ltd Ic card and method for operating ic card

Also Published As

Publication number Publication date
FR2667714B1 (en) 1995-01-27
EP0553163A1 (en) 1993-08-04
WO1992006451A1 (en) 1992-04-16
FR2667714A1 (en) 1992-04-10
JPH06502032A (en) 1994-03-03

Similar Documents

Publication Publication Date Title
CA2093524A1 (en) Method for distributing the memory of an integrated circuit among a plurality of applications
CA1164565A (en) Personalized portable object such as a credit card
EP0651394B1 (en) Integrated circuit comprising a protected memory and protected circuit using said integrated circuit
EP0918336B1 (en) Electrically programmable and erasable non volatile memory with read- and/or write protection and incorporated electronical system
FR2698195A1 (en) Encryption and authentication method and circuit for synchronous memory card.
EP0426541B1 (en) Method of protection against fraudulent use of a microprocessor card and device for its application
FR2539528A1 (en) MICROPROCESSOR SYSTEM COMPRISING TWO PROCESSORS
FR2737592A1 (en) HDLC CIRCUIT WITH SHARED INTERNAL BUS
FR2583540A1 (en) MEMORY MANAGEMENT FOR MICROPROCESSOR SYSTEM.
FR2519441A1 (en) PRIORITY SELECTION SYSTEM FOR ACCESSING A BUS USED IN SHARED MODE
FR2646942A1 (en) MAP WITH INTEGRATED CIRCUIT
FR2528195A1 (en) COMMUNICATION SYSTEM BETWEEN COMPUTERS
FR2686171A1 (en) MEMORY MEMORY CARD FOR MICROCOMPUTER WITH FACILITIES FOR EXECUTING INTERNAL PROGRAMS.
FR2606530A1 (en) INTEGRATED CIRCUIT FOR MEMORIZING AND PROCESSING CONFIDENTIALLY INFORMATION WITH AN ANTI-FRAUD DEVICE
EP0228329B1 (en) Electronic device constituting high-speed stable memory
FR2871310A1 (en) CONFIGURABLE LOGIC CIRCUIT RESISTANT TO DPA ATTACK
EP0884704B1 (en) Integrated circuit authentication method
FR2801751A1 (en) Sensitive information processing electronic security component having peripheral/CPU word interchanges with key code generator secret key passing each clock cycle and interchange units encrypting/dencrypting words.
EP0735489A1 (en) Method of protecting zones of non-volatile memories
FR3103585A1 (en) Method for managing the configuration of access to peripherals and their associated resources of a system on chip forming for example a microcontroller, and corresponding system on chip
FR2702061A1 (en) Information processing device
EP0393050B1 (en) Device for protecting memory areas of an electronic microprocessor system
FR2744539A1 (en) Increasing number of inputs to microprocessor-based controller
CA1092225A (en) Telephone exchange and associated control circuits
EP0985790B1 (en) Dynamically controlled electronic lock and control system with such a lock

Legal Events

Date Code Title Description
FZDE Discontinued