FR2840421A1 - Systemes informatiques tels que des cartes a puce ayant des architectures de memoire capables de proteger une information de securite, et procedes d'utilisation de ceux-ci - Google Patents

Systemes informatiques tels que des cartes a puce ayant des architectures de memoire capables de proteger une information de securite, et procedes d'utilisation de ceux-ci Download PDF

Info

Publication number
FR2840421A1
FR2840421A1 FR0306427A FR0306427A FR2840421A1 FR 2840421 A1 FR2840421 A1 FR 2840421A1 FR 0306427 A FR0306427 A FR 0306427A FR 0306427 A FR0306427 A FR 0306427A FR 2840421 A1 FR2840421 A1 FR 2840421A1
Authority
FR
France
Prior art keywords
memory area
memory
area
security
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0306427A
Other languages
English (en)
Other versions
FR2840421B1 (fr
Inventor
Sung Hyun Kim
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of FR2840421A1 publication Critical patent/FR2840421A1/fr
Application granted granted Critical
Publication of FR2840421B1 publication Critical patent/FR2840421B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • 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
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0833Card having specific functional components
    • G07F7/084Additional components relating to data transfer and storing, e.g. error detection, self-diagnosis
    • 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

Landscapes

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

Abstract

Un système informatique comprend des première, seconde et troisième zones de mémoire (6, 5, 4). La première zone de mémoire (6) stocke un programme d'application générale incluant au moins un appel de sous-programme dirigé vers la seconde zone de mémoire (5) dans laquelle est stocké au moins un appel de sous-programme dirigé vers la troisième zone de mémoire (4). Cette dernière stocke au moins un programme d'application de sécurité ne pouvant être appelé qu'à partir de la seconde zone de mémoire. Un système de traitement (2, 10, 13) exécute un programme d'application générale dans la première zone de mémoire et déverrouille la troisième zone de mémoire (4) seulement au moment de l'exécution d'un appel de sous-programme dirigé de la première zone de mémoire (6) vers la seconde zone de mémoire (5).

Description

<Desc/Clms Page number 1>
Cette invention concerne des systèmes informatiques, des architectures de mémoire pour des systèmes informatiques et des procédés pour les faire fonctionner, et elle concerne plus particulièrement des systèmes informatiques incluant une information de sécurité et des architectures de mémoire, ainsi que des procédés de fonctionnement pour ceux-ci.
Des applications de sécurité sont largement utilisées avec des systèmes informatiques. Ces applications de sécurité peuvent être utilisées pour valider des utilisateurs autorisés et/ou pour chiffrer et déchiffrer de l'information sensible.
La sécurité peut être particulièrement importante pour des cartes à puce. Comme il est bien connu de l'homme de l'art, une carte à puce est un système informatique sur une carte électronique qui a de façon générale la même taille et la même qualité de matériau qu'une carte de crédit. Une puce de Circuit Intégré (CI) est contenue dans la carte à puce. La puce de CI contient de façon générale une Unité Centrale de Traitement (UC) qui peut être un microprocesseur, un Système d'Exploitation de Carte (ou COS pour "Card Operating System") et une mémoire, telle qu'une mémoire morte programmable et effaçable de façon électrique (EEPROM) et/ou une mémoire morte (ROM). Ainsi, une carte à puce peut stocker et traiter de l'information à l'intérieur d'elle.
Du fait que le processeur et la mémoire sont contenus sur la carte à puce, des cartes à puce se prêtent particulièrement bien à l'obtention d'une fiabilité et/ou d'une sécurité élevées, et peuvent donc fonctionner comme un porte-monnaie électronique. Des cartes à puce ont été utilisées dans divers domaines, comme les systèmes financiers, la sécurité de l'information et le traitement réparti, l'automatisation industrielle, l'automatisation de tâches de bureau, les traitements médicaux, les organismes gouvernementaux (par exemple la Sécurité Sociale), les
<Desc/Clms Page number 2>
communications mobiles, les téléphones publics, la télévision par câble, l'électricité, le gaz et d'autres services collectifs, l'éducation, les cartes de crédit, les cartes de paiement, les cartes pré-payées, la banque à domicile, etc. Une carte à puce peut être utilisée pour un seul service ou application, ou bien de multiples services ou applications peuvent être intégrés dans une seule carte à puce.
Des opérations de lecture/ écriture/ effacement de données stockées dans la carte à puce et la communication entre la carte à puce et des dispositifs externes peuvent être commandées de manière rigide et protégées par la sécurité physique de la carte à puce ellemême, et/ou par l'utilisation de la cryptographie.
Cependant, on a également développé de nombreuses techniques pour déjouer ces procédures de sécurité. En particulier, des techniques de piratage ont été développées pour tenter d'accéder directement à de l'information de sécurité sur la carte à puce en contournant la barrière du chiffrement complexe de la carte à puce, par exemple en utilisant un appel de sous-programme, également appelé ici un "ordre de saut", pendant l'exécution d'un système d'exploitation sur la carte à puce. Ainsi, pendant l'exécution du programme de système d'exploitation, l'information de sécurité peut être obtenue ou changée au cours d'un saut vers le programme de sécurité et/ou vers un ordre de chargement/ sauvegarde.
Certains modes de réalisation de l'invention procurent des systèmes informatiques qui incluent des première, seconde et troisième zones de mémoire dans lesquelles la première zone de mémoire stocke à l'intérieur au moins un programme d'application générale incluant une multiplicité d'appels de sous-programme dirigés vers la seconde zone de mémoire. La seconde zone de mémoire stocke également à l'intérieur au moins un appel de sous-programme dirigé vers la troisième zone de mémoire. La troisième zone
<Desc/Clms Page number 3>
de mémoire stocke à l'intérieur au moins un programme d'application de sécurité qui ne peut être appelé que par un appel de sous-programme provenant de la seconde zone de mémoire. Un moyen de traitement, tel qu'un système d'exploitation, est configuré pour exécuter un programme d'application générale dans la première zone de mémoire, incluant un appel de sous-programme dirigé vers la seconde zone de mémoire, et pour déverrouiller la troisième zone de mémoire seulement au moment de l'exécution d'un appel de sous-programme dirigé de la première zone de mémoire vers la seconde zone de mémoire. Dans d'autres modes de réalisation, ces systèmes de traitement sont en outre configurés pour empêcher le déverrouillage de la troisième zone de mémoire pendant l'exécution d'un programme d'application générale dans la première zone de mémoire.
Dans encore d'autres modes de réalisation, un système de traitement comprend un bus d'adresse qui transmet une adresse d'une position de mémoire qui fait l'objet d'une opération d'accès, et il est configuré pour déverrouiller la troisième zone de mémoire lorsque le bus d'adresse transmet une adresse d'une position de mémoire dans la seconde zone de mémoire, et pour verrouiller la troisième zone de mémoire lorsque le bus d'adresse transmet une adresse d'une position de mémoire dans la première zone de mémoire. D'autres modes de réalisation comprennent une quatrième zone de mémoire qui stocke à l'intérieur des données qui sont traitées par l'au moins un programme d'application générale dans la première zone de mémoire, et une cinquième zone de mémoire qui stocke à l'intérieur des données qui sont traitées par l'au moins un programme d'application de sécurité dans la troisième zone de mémoire. Un système de traitement est en outre configuré pour déverrouiller la cinquième zone de mémoire seulement au moment de l'exécution de l'appel de sous-programme dirigé de la première zone de mémoire vers la seconde zone de mémoire. En outre, le système de traitement est en outre
<Desc/Clms Page number 4>
configuré pour empêcher le déverrouillage de la cinquième zone de mémoire pendant l'exécution d'un programme d'application générale dans la première zone de mémoire.
Dans d'autres modes de réalisation de la présente invention, ces systèmes de traitement comprennent une logique de décodeur d'adresse qui est configurée pour produire un signal d'instauration en réponse à une adresse qui est transmise sur le bus d'adresse et qui se trouve dans la seconde zone de mémoire, et une bascule qui réagit au signal d'instauration en activant un signal de sélection pour la troisième zone de mémoire. La logique de décodeur d'adresse peut en outre être configurée pour produire un signal de restauration en réponse à une adresse qui est transmise sur le bus d'adresse et qui se trouve dans la première zone de mémoire, la bascule réagissant au signal de restauration en désactivant le signal de sélection pour la troisième zone de mémoire.
Dans encore d'autres modes de réalisation, les première, seconde et troisième zones de mémoire et le système de traitement sont tous contenus dans la carte à puce. Dans d'autres modes de réalisation, le système de traitement est en outre configuré pour maintenir la troisième zone de mémoire déverrouillée pendant l'exécution d'un programme d'application de sécurité dans la troisième zone de mémoire, et pour verrouiller la troisième zone de mémoire au moment de l'exécution d'un appel de sousprogramme de la troisième zone de mémoire vers la première zone de mémoire. Dans encore d'autres modes de réalisation de la présente invention, le bit d'adresse le plus significatif de la première zone de mémoire et celui de la troisième zone de mémoire sont complémentaires l'un de l'autre. Le bit d'adresse le plus significatif sur le bus d'adresse est appliqué à la troisième zone de mémoire et est appliqué à la première zone de mémoire sous une forme inversée. Ainsi, dans ces modes de réalisation, la troisième zone de mémoire est activée par une combinaison
<Desc/Clms Page number 5>
du signal de sélection et du bit le plus significatif du bus d'adresse.
D'autres modes de réalisation de la présente invention procurent une architecture de mémoire pour un système informatique. L'architecture de mémoire comprend des première, seconde et troisième zones de mémoire, comme décrit ci-dessus. Une quatrième et une cinquième zones de mémoire peuvent également être incorporées, comme décrit ci-dessus. Un bit d'adresse le plus significatif de la première zone de mémoire et celui de la troisième zone de mémoire peuvent être complémentaires l'un de l'autre, comme décrit ci-dessus.
Des procédés d'exécution d'un programme de sécurité pendant l'exécution d'un programme d'application peuvent également être fournis conformément à d'autres modes de réalisation de la présente invention. Dans ces procédés, un programme d'application est exécuté. Le programme de sécurité est déverrouillé seulement au moment de l'exécution d'un appel de sous-programme dirigé vers une zone de table de vecteurs qui contient seulement à l'intérieur au moins un appel de sous-programme dirigé vers le programme de sécurité. Le programme de sécurité qui est déverrouillé est ensuite exécuté. Dans d'autres modes de réalisation, le programme de sécurité est verrouillé au moment de l'exécution d'un appel de sous-programme en retour vers le programme d'application. Le programme de sécurité peut être maintenu déverrouillé pendant l'exécution du programme de sécurité. Toutes ces opérations peuvent être effectuées dans une carte à puce.
On va maintenant décrire la présente invention de façon plus complète dans ce qui suit, en référence aux dessins annexés, qui montrent des modes de réalisation de l'invention. On ne doit cependant pas considérer que l'invention est limitée aux modes de réalisation présentés ici. A la place, ces modes de réalisation sont donnés pour que cet exposé soit approfondi et complet, et permette à
<Desc/Clms Page number 6>
l'homme de l'art d'apprécier pleinement le cadre de l'invention. Des éléments semblables sont toujours désignés par des numéros de référence semblables.
Ainsi, bien que l'invention soit susceptible de donner lieu à diverses modifications et différentes formes, des modes de réalisation spécifiques de celle-ci sont montrés à titre d'exemple dans les dessins et seront décrits ci-après en détail. Il faut cependant noter qu'on ne désire pas limiter l'invention aux formes particulières exposées, mais qu'au contraire on doit considérer que l'invention couvre tous les équivalents, modifications et variantes qui entrent dans l'esprit et le cadre de l'invention, tels qu'ils sont définis par les revendications.
Dans les dessins :
La figure 1 est un schéma synoptique d'un système informatique tel qu'une carte à puce conforme à des modes de réalisation de la présente invention.
La figure 2 est une représentation montrant une architecture d'une mémoire de programmes de la figure 1 conforme à des modes de réalisation de la présente invention.
La figure 3 est un schéma synoptique d'un système informatique tel qu'une carte à puce conforme à d'autres modes de réalisation de la présente invention.
La figure 4 est une représentation schématique d'une architecture d'une mémoire de programmes et d'une mémoire de données conforme à d'autres modes de réalisation de la présente invention, dans laquelle de multiples programmes d'application sont stockés dans la mémoire de programmes.
La présente invention est décrite ci-dessous en référence à des schémas synoptiques et/ou d'autres illustrations de procédés, appareils (systèmes) et/ou programmes-produits d'ordinateur, conformes à des modes de réalisation de l'invention. Il faut noter que chaque bloc
<Desc/Clms Page number 7>
des schémas synoptiques et/ou d'autres illustrations, et des combinaisons de blocs dans les schémas synoptiques et/ou d'autres illustrations, peuvent être mis en oeuvre par des instructions de programme d'ordinateur. Ces instructions de programme d'ordinateur peuvent être fournies à un processeur d'un ordinateur universel, d'un ordinateur spécialisé, et/ou d'un autre appareil de traitement de données programmable pour produire une machine, de façon que les instructions qui sont exécutées par l'intermédiaire du processeur de l'ordinateur et/ou d'un autre appareil de traitement de données programmable, créent des moyens pour mettre en oeuvre les fonctions/ actions spécifiées dans les schémas synoptiques et/ou un ou plusieurs autres blocs.
Ces instructions de programme d'ordinateur peuvent également être stockées dans une mémoire lisible par ordinateur qui peut commander un ordinateur ou un autre appareil de traitement de données programmable pour qu'il fonctionne d'une manière particulière, de façon que les instructions stockées dans la mémoire lisible par ordinateur produisent un article manufacturé incluant des instructions qui mettent en oeuvre la fonction/ action spécifiée dans les schémas synoptiques et/ou dans un ou plusieurs autres blocs.
Les instructions de programme d'ordinateur peuvent également être chargées dans un ordinateur ou un autre appareil de traitement de données programmable pour qu'une série d'étapes de fonctionnement soient accomplies sur l'ordinateur ou autre appareil programmable pour produire un processus mis en oeuvre par ordinateur, tel que les instructions qui sont exécutées sur l'ordinateur ou autre appareil programmable procurent des étapes pour mettre en oeuvre les fonctions/ actions spécifiées dans les schémas synoptiques et/ou dans un ou plusieurs autres blocs.
Il faut également noter que dans certaines autres formes de réalisation, les fonctions/ actions indiquées
<Desc/Clms Page number 8>
dans les blocs peuvent se produire dans un ordre différent de celui indiqué dans les dessins. Par exemple, deux blocs ou opérations représentés en succession peuvent en fait être exécutés de façon pratiquement simultanée, ou bien les blocs ou opérations peuvent quelquefois être exécutés dans l'ordre inverse, selon la fonctionnalité et/ou les actions qui interviennent.
Les figures 1 et 3 sont des schémas synoptiques de systèmes informatiques conformes à des modes de réalisation de la présente invention. Ces systèmes informatiques peuvent être mis en #uvre dans des systèmes informatiques d'entreprises, d'applications, personnels et/ou de grande diffusion, qui sont bien connus de l'homme de l'art. Il faut cependant noter que des modes de réalisation de la présente invention peuvent être particulièrement utiles avec des cartes à puce, du fait que leur utilisation comme porte-monnaie électronique ou moyen d'identification électronique. Par conséquent, on décrira ci-dessous les modes de réalisation des figures 1 et 3 en référence à des cartes à puce.
Les figures 2 et 4 représentent des architectures de mémoire qu'on peut utiliser avec respectivement des systèmes informatiques des figures 1 et 3, conformément à des modes de réalisation de la présente invention. On peut utiliser ces architectures de mémoire avec n'importe quel système informatique du type décrit ci-dessus. Cependant, du fait que ces architectures de mémoire peuvent avoir une utilité particulière avec des cartes à puce, elles sont décrites ci-dessous en relation avec des cartes à puce.
En se référant à la figure 1, on note qu'un système informatique, tel qu'une carte à puce, conforme à des modes de réalisation de la présente invention, comprend une borne d'entrée/sortie (E/S) 1, un microprocesseur ou une unité centrale de traitement (UC) 2, une mémoire de programmes 3, une mémoire de données 7 et une unité d'activation de programme de sécurité 10. La mémoire de programmes 3 est
<Desc/Clms Page number 9>
une mémoire telle qu'une mémoire morte (ROM) dans laquelle est programmé un système d'exploitation pour carte à puce (ou COS pour "Card Operating System") pour faire fonctionner une puce de carte à puce. L'unité centrale 2 commande des chemins internes utilisés pour accéder à tous les éléments de la puce, comme la mémoire de données 7, la mémoire de programmes 3, la mémoire vive (RAM) (non représentée), etc. La mémoire de données 7 comprend une zone de données de sécurité 8 et une zone de données générales 9. La zone de données de sécurité 8 est une zone de données d'utilisateur qui est protégée contre un accès externe par l'unité centrale 2 et le système d'exploitation de carte, et elle peut être réalisée sous la forme d'une mémoire morte programmable et effaçable de façon électrique (EEPROM) qui peut lire/écrire des données de façon électrique. La zone de données de sécurité 8 contient un ensemble de données et des fonctions utilisables dans diverses applications, l'ensemble de données contenant une opération, des données d'émetteur de carte, des données d'utilisateur, etc.
Comme représenté sur la figure 1, la mémoire de programmes 3 contient une zone de code général 6, également appelée ici une zone de programme d'application générale ou une première zone de mémoire, une zone de code de sécurité 4, également appelée ici une zone de programme d'application de sécurité ou une troisième zone de mémoire, et une zone de table de vecteurs 5, également appelée ici une seconde zone de mémoire. La zone de table de vecteurs 5 consiste en appels de sous-programme de fonction (c'est-àdire qu'elle contient seulement ceux-ci), également appelés codes de saut, qui sont des codes spéciaux qui effectuent seulement un saut vers la zone de code de sécurité 4. Dans certains modes de réalisation, ces zones peuvent être divisées de façon à les disposer à différentes positions physiques dans une seule mémoire, elles peuvent être entrelacées dans des zones de mémoire discontinues, et/ou
<Desc/Clms Page number 10>
elles peuvent être établies dans différents dispositifs de mémoire.
L'unité d'activation de programme de sécurité 10 active/désactive un signal de sélection, également appelé signal de sélection de circuit CS, de façon à permettre/ refuser un accès à la zone de code de sécurité 4 et à la zone de données de sécurité 8 (également appelée ici une cinquième zone de mémoire). L'unité d'activation de programme de sécurité 10 comprend un circuit logique de décodeur d'adresse 11 et un circuit logique de bascule 12 connecté au circuit logique de décodeur d'adresse 11.
Toutes les zones de mémoire 4, 5, 6,8 et 9 sont connectées à l'unité centrale 2 par un bus d'adresse 13.
Bien que ceci ne soit pas représenté, un bus de données est en outre incorporé de façon à échanger des données. Le bus d'adresse peut également être utilisé comme le bus de données. Le circuit logique de décodeur d'adresse 11 de l'unité d'activation de programme de sécurité 10 est connecté au bus d'adresse 13 de façon à décoder une adresse correspondante (l'adresse du code de programme exécuté au moment présent, également appelée un compteur d'instruction) de la mémoire de programmes 3, qui est appliquée sur le bus d'adresse 13. Le circuit logique de bascule 12 applique son signal de sortie à la zone de code de sécurité 4 et à la zone de données de sécurité 8 en réponse à un signal de sortie (signal d'instauration ou de restauration) du circuit logique de décodeur d'adresse 11.
Le signal de sortie du circuit logique de bascule 12 fonctionne comme le signal de sélection de circuit CS utilisé pour valider ou invalider la zone de code de sécurité 4 et la zone de données de sécurité 8.
On décrira dans ce qui suit une opération de programme de sécurité conforme à des modes de réalisation de la présente invention. Conformément à des modes de réalisation de la présente invention, l'unité d'activation de programme de sécurité 10 active la zone de code de
<Desc/Clms Page number 11>
sécurité 4 et la zone de données de sécurité 8 seulement lorsque le compteur d'instruction passe à une valeur spécifique pendant que le programme est en cours d'exécution dans la mémoire de programmes 3.
Un programme de système d'exploitation d'utilisateur (programme général) est exécuté dans la zone de code général 6 sous la commande de l'unité centrale 2. A ce moment, du fait que l'adresse (compteur d'instruction) du code de programme exécuté n'est pas une valeur d'adresse de la zone de table de vecteurs 5, l'unité d'activation de programme de sécurité 10 n'active pas la zone de code de sécurité 4 et la zone de données de sécurité 8. En d'autres termes, elles sont verrouillées. Si le programme général est exécuté continuellement de façon que le compteur d'instruction passe à une valeur d'adresse dans la zone de table de vecteurs 5, le circuit logique de décodeur d'adresse 11 de l'unité d'activation de programme de sécurité 10 décode le compteur d'instruction et génère un signal d'instauration. Le circuit logique de bascule 12 est instauré en réponse au signal d'instauration généré par le circuit logique de décodeur d'adresse 11, de façon que le signal de sélection de circuit CS pour activer la zone de code de sécurité 4 et la zone de données de sécurité 8 soit validé ou déverrouillé. Ici, du fait que la zone de table de vecteurs 5 est constituée des codes qui sautent seulement vers la zone de code de sécurité 4, le programme est exécuté dans la zone de code de sécurité 4. Par conséquent, une information de sécurité de la zone de données de sécurité 8 peut être traitée.
Une carte à puce conforme à des modes de réalisation de la présente invention peut inclure en outre un processeur dédié au chiffrement, 15, pour commander le programme de sécurité. Dans ces modes de réalisation, le processeur dédié au chiffrement, 15, est activé par l'unité d'activation de programme de sécurité 10. On comprendra également que la borne d'E/S 1, l'unité centrale 2, l'unité
<Desc/Clms Page number 12>
d'activation de programme de sécurité 10, le processeur dédié au chiffrement, 15, des sous-combinaisons de ceux-ci et/ou d'autres éléments non représentés sur la figure 1, peuvent procurer un système de traitement d'un système informatique et/ou des moyens procurant des fonctions de traitement par ordinateur conformes à divers modes de réalisation de la présente invention.
Après l'achèvement du traitement de l'information de sécurité, le programme de sécurité est terminé. Ensuite, si le compteur d'instruction passe à nouveau à une valeur correspondant à l'adresse de la zone de code général 6, le circuit logique de décodeur d'adresse 11 de l'unité d'activation de programme de sécurité 10 décode la valeur d'adresse pour générer un signal de restauration. Le circuit logique de bascule 12 est ainsi restauré de façon que le signal de sélection de circuit CS soit invalidé. Il en résulte que la zone de données de sécurité 8 et la zone de code de sécurité 4 sont désactivées (verrouillées), de façon qu'elles ne soient pas accessibles.
La figure 2 est une représentation montrant des architectures de la mémoire de programme 3 de la figure 1 conformes à des modes de réalisation de la présente invention. En se référant à la figure 2, on note que, comme décrit ci-dessus, la mémoire de programmes 3 de la carte à puce contient la zone de code général 6, la zone de table de vecteurs 5 et la zone de code de sécurité 4. Les zones respectives ont une plage d'adresse prédéterminée. Par exemple, la zone de code général 6 a des adresses de mémoire de programmes allant de OOOOOOh (hexadécimal) à 023FFFh, et la zone de code de sécurité 4 a des adresses de mémoire de programmes allant de 024200h à 027FFFh. Ces adresses et tailles de mémoire sont illustrées à titre d'exemple, dans le but d'expliquer clairement la présente invention, et par conséquent elles peuvent être modifiées de façon à procurer d'autres adresses contiguës et/ou non contiguës.
<Desc/Clms Page number 13>
La zone de table de vecteurs 5 conforme à des modes de réalisation de la présente invention consiste en codes (c'est-à-dire contient seulement des codes) (appels de sous-programme ou codes de saut de fonction) qui effectuent seulement un saut vers une partie spécifique de la zone de code de sécurité 4. Par exemple, il y a deux codes de saut de fonction, c'est-à-dire Vector~E1 : JMP F1 et Vector E2:JMP F2. La zone de code de sécurité 4 consiste en codes de fonction de sécurité (c'est-à-dire contient seulement de tels codes), comme les codes de fonction de sécurité F1 et F2, vers lesquels les codes de saut de fonction de la zone de table de vecteurs 5, Vector~E1 : JMP F1 et Vector E2:JMP F2, effectuent un saut (appel). La zone de code général 6 contient un code général pour traiter une information générale et des codes de saut de vecteur, tels que JMP Vector~El et JMP Vector~E2, pour sauter vers les codes de saut de fonction Vector~El et Vector E2 de la zone de table de vecteurs 5. Par exemple, le code général contient trois codes d'ordre de chargement LD rO, r1, LD r2 , rO et LD r3 , r2. Selon une variante, la zone de code général 6 peut en outre inclure un code de saut de vecteur d'appel Call JMP Vector~El pour appeler un code de saut de vecteur, par exemple JMP Vector~El . Il en résulte que la zone de code général ne peut passer à la zone de code de sécurité que par un appel de sous-programme (saut).
En se référant à nouveau à la figure 1, on note que, comme il est bien connu, l'unité centrale 2 peut être divisée en une unité de commande (non représentée) et un chemin de données ou une unité d'exécution (non représentée). L'unité de commande peut inclure un compteur d'instruction et un registre d'instruction. Le compteur d'instruction contient une adresse de mémoire de programmes pour prélever l'instruction suivante à exécuter, et le registre d'instruction est un registre destiné à stocker une instruction prélevée par le compteur d'instruction. Le chemin peut inclure une unité arithmétique et logique et un
<Desc/Clms Page number 14>
accumulateur. De plus, l'unité de commande peut inclure un registre d'adresse de mémoire pour conserver une adresse de mémoire de programmes pendant un accès en mémoire. Le chemin de données contient également un registre tampon de mémoire pour découpler une mémoire vis-à-vis du fonctionnement interne de l'unité centrale.
On suppose que l'unité centrale 2 est initialisée et que l'unité de commande de l'unité centrale 2 est restaurée. A ce moment, le compteur d'instruction de l'unité de commande est également restauré à une valeur prédéterminée, par exemple @. L'adresse de mémoire de programmes pour prélever la commande suivante est stockée dans le compteur d'instruction et est ensuite transmise au registre d'adresse de mémoire. Ensuite, l'unité de commande commence une opération de lecture en mémoire en utilisant le bus d'adresse 13. L'instruction fixée est lue dans la mémoire de programmes 3 par l'intermédiaire du chemin d'instruction et est stockée dans le registre d'instruction. Séquentiellement, la commande fixée, par exemple la commande de chargement LD r0, ri, stockée dans le registre d'instruction, est analysée et les données stockées dans la mémoire de données (zone d'information générale 9) sont lues. Les données stockées dans la mémoire de données sont stockées dans le registre tampon de mémoire et stockées dans le registre rO et ri. Par ces opérations, l'opération de chargement est terminée. Enfin, la valeur d'adresse de mémoire de programmes (@ + 1) est incrémentée. La valeur d'adresse de mémoire de programmes (@ + 1) désignée par le compteur d'instruction est transférée au registre d'adresse de mémoire. L'opération de lecture dans la mémoire de programmes recommence de façon que l'instruction fixée soit stockée dans le registre d'instruction. Ensuite, la commande, par exemple, LD r2, rO, stockée dans le registre d'instruction est analysée et la valeur stockée dans la mémoire de données (zone d'information générale 9) est stockée dans le registre r2
<Desc/Clms Page number 15>
et rO, pour achever l'opération de chargement. Enfin, le compteur d'instruction est incrémenté à nouveau (@ + 1 # @ + 2). De la manière ci-dessus, le programme est continuellement exécuté et une valeur du compteur d'instruction est incrémentée (par exemple @ + 2 # # # # @+ n).
Ensuite, l'instruction fixée, par exemple JMP Vector El, est prélevée dans la mémoire de programmes 3 et stockée dans le registre d'instruction. L'instruction JMP Vector El stockée dans le registre d'instruction est analysée. Du fait que l'instruction prélevée est la commande de saut, une valeur du compteur d'instruction est remplacée par une valeur d'adresse (l'une des adresses 02400h à 0241FFh de la zone de table de vecteurs de la zone de mémoire dans laquelle le vecteur Vector El est stocké, par exemple, une valeur désignée par Vector~E1 : 024000h sur la figure 2). La valeur d'adresse de la zone de table de vecteurs 5 est transmise au registre d'adresse de mémoire et est appliquée au bus d'adresse 13. La logique de décodeur d'adresse 11 de l'unité d'activation de programme de sécurité 10 connectée au bus d'adresse 13 décode la valeur d'adresse 024000h de la zone de table de vecteurs pour générer le signal d'instauration. La logique de bascule 12 est instaurée en réponse au signal d'instauration, de façon que le signal de sélection de circuit CS appliqué à la zone de code de sécurité 4 et à la zone d'information de sécurité 8 soit validé (déverrouillé), pour activer ainsi le programme de sécurité.
D'autre part, l'ensemble d'instructions (par exemple le code de saut de fonction (JMP F1) existant à la valeur d'adresse 024000h désignée par Vector~El, stockée dans le compteur d'instruction, est à nouveau stocké dans le registre d'instruction et est analysé par l'unité de commande. Comme décrit ci-dessus, tous les ensembles d'instructions de la zone de table de vecteurs 5 consistent
<Desc/Clms Page number 16>
en ensembles d'instructions qui effectuent seulement un saut vers la zone de code de sécurité 4. Par conséquent, la valeur du compteur d'instruction devient l'une des adresses de la zone de code de sécurité 4 (par exemple, sur la figure 2, l'adresse 024000h du code de fonction de sécurité désigné par F1). De ce fait, le programme de sécurité est exécuté dans la zone de code de sécurité. En d'autres termes, la fonction de code de sécurité FI est exécutée. Il peut être souhaitable que le code de fonction de sécurité FI commence par un code de sécurité pour contrôler si un utilisateur est autorisé ou non. Par exemple, le code de sécurité peut être une fonction RSA Sign. Les routines d'opérations connues suivantes peuvent être exécutées dans la fonction :
RSA(input, output) {check security condition, key load data load
RSA~Sign opération
Store result
Return}
Après la certification de l'utilisateur autorisé, l'information de sécurité de la zone de données de sécurité 8 peut être manipulée. Après l'achèvement de la manipulation de l'information de sécurité, la valeur du compteur d'instruction est à nouveau changée pour devenir la valeur d'adresse de la zone de code général 6, par le code de résultat ou un code de retour (RET). Par exemple, s'il y a une commande LD r3, r2, le contenu du compteur d'instruction est changé pour devenir une adresse 012000h de la zone de code général.
Si l'adresse de mémoire de programmes 012000h stockée dans le compteur d'instruction est appliquée au bus d'adresse 13 par l'intermédiaire du registre d'adresse de
<Desc/Clms Page number 17>
mémoire, le circuit logique de décodeur d'adresse 11 de l'unité d'activation de programme de sécurité 10 décode à nouveau l'adresse de mémoire de programmes pour générer le signal de restauration. Le circuit logique de bascule 12 est restauré en réponse au signal de restauration, de façon que le signal de sélection de circuit CS appliqué à la zone de code de sécurité 4 et à la zone de données de sécurité 8 soit invalidé (verrouillé). Il en résulte qu'il n'est pas possible d'accéder au programme de sécurité. Ensuite, l'ensemble d'instructions LD r3, r2 qui existe à l'adresse de mémoire de programmes désignant le compteur d'instruction, est prélevé et l'ensemble d'instructions prélevé est analysé et exécuté.
Le programme est exécuté continuellement dans la zone de code général 6 et la commande (par exemple JMP Vector E2) existant à l'adresse de mémoire d'instruction OIFFFFh, et sautant à nouveau vers la zone de table de vecteurs 5, est prélevée. Du fait que la commande prélevée est la commande de saut, le contenu du compteur d'instruction est changé pour devenir la valeur d'adresse de la zone de table de vecteurs 5 dans laquelle le vecteur JMP Vector~E2 existe, et la zone de code de sécurité 4 et la zone de données de sécurité 8 sont à nouveau activées (déverrouillées) par l'unité d'activation de programme de sécurité 10. Simultanément, l'exécution de l'ensemble de commandes de saut JMP F2 de la zone de table de vecteurs 5 fait passer le programme vers la zone de code de sécurité 4. Par conséquent, le programme de sécurité est exécuté dans la zone de code de sécurité 4, et le code de fonction de sécurité F2 est exécuté.
Comme décrit ci-dessus, conformément à des modes de réalisation de la présente invention, le programme de sécurité est exécuté seulement en suivant un chemin prédéterminé, c'est-à-dire l'appel de fonction de sousprogramme (saut). En d'autres termes, le code de saut de vecteur JMP Vector~El est exécuté dans la zone de code
<Desc/Clms Page number 18>
général 6, et par conséquent le programme saute vers le code de saut de fonction Vector El de la zone de table de vecteurs 5. Ensuite, le code JMP FI est exécuté et finalement le programme saute vers la zone de code de sécurité 4, de façon que le code de fonction de sécurité F1 soit exécuté. A ce moment, si la commande de saut pour sauter vers la zone de table de vecteurs par le code de saut de vecteur est exécutée, et le contenu du compteur d'instruction est changé pour devenir la valeur d'adresse de la zone de table de vecteurs 5 dans laquelle le code de saut de vecteur est stocké, l'unité d'activation de programme de sécurité 10 décode le compteur d'instruction pour activer la zone de code de sécurité 4 et la zone d'information de sécurité 8. Par conséquent, il n'est pas possible d'accéder à la zone de code de sécurité et à la zone de données de sécurité en utilisant une commande directe de saut ou de chargement dans la zone de code général.
Dans des modes de réalisation de la présente invention, le signal de sélection de circuit pour activer le programme de sécurité est validé par l'appel de fonction de sous-programme (saut), et une valeur d'une adresse ou d'un compteur d'instruction spécifique sur le bus d'adresse. Par conséquent, il est possible d'établir divers modes de réalisation sur la base du signal de sélection de circuit. Par exemple, dans les modes de réalisation cidessus, lorsque la valeur du compteur d'instruction ou du bus d'adresse est changée pour devenir la valeur d'adresse de la zone de table de vecteurs, le signal de sélection de circuit relatif à la zone de code de sécurité est validé.
Ensuite, lorsque la valeur du compteur d'instruction ou du bus d'adresse est changée par le saut de fonction de sousprogramme pour devenir la valeur d'adresse de la zone de code de sécurité, le signal de sélection de circuit appliqué à la zone de données de sécurité peut être validé.
Dans ce qui suit, on décrira d'autres modes de
<Desc/Clms Page number 19>
réalisation de la présente invention en se référant à la figure 3. Les mêmes numéros de référence que sur la figure 2 sont utilisés avec des éléments de la figure 3 qui sont les mêmes que ceux de la figure 2, et une description détaillée concernant ces éléments sera omise. Sur la figure 3, pour transmettre des données entre l'unité centrale 2 et les dispositifs de mémoire 4,5, 6,8 et 9, toutes les zones de mémoire sont connectées à un bus de données (non représenté). Pour assurer l'interface entre l'unité centrale 2 et les dispositifs de mémoire 4, 5, 6,8 et 9, toutes les zones de mémoire sont connectées par l'intermédiaire de l'unité centrale et du bus d'adresse. Sur la figure 3, le symbole de référence A représente le bus d'adresse. La zone de code général 6 est une zone ayant des adresses logiques allant de OOOOOh à OFEFFh, et la zone de table de vecteurs 5 est une zone ayant des adresses allant de OFFOOh à OFFFFh. La zone de code de sécurité 4 est une zone ayant des adresses allant de 10000h à 1FFFFh.
La zone de code général 6 et la zone de code de sécurité 5 sont divisées en rendant leurs bits d'adresse les plus significatifs complémentaires l'un de l'autre, c'est-à-dire en leur donnant des états logiques mutuellement complémentaires.
En se référant à la figure 3, on note que la zone de données générale 9, la zone de données de sécurité 8, la zone de code général 6 et la zone de code de sécurité 4 sont actives (déverrouillées) ou désactivées (verrouillées) par un produit logique de deux signaux de sélection de circuit CS1 et CS2. De plus, seuls les signaux de sélection de circuit CS2 (seconds signaux de sélection de circuit) appliqués à la zone de données de sécurité 8 et à la zone de code de sécurité 4 sont validés/ invalidés par le circuit logique de décodeur d'adresse 11 de l'unité d'activation de programme de sécurité 10. En outre, parmi les adresses de code du programme en cours d'exécution, le bit le plus significatif est appliqué à la zone de code
<Desc/Clms Page number 20>
général 6 et à la zone de code de sécurité 4 pour fonctionner ainsi comme d'autres signaux de sélection de circuit (premiers signaux de sélection de circuit), et il est inversé et appliqué à la zone de code général 6.
De façon spécifique, dans les modes de réalisation de la présente invention qui sont illustrés, les premiers signaux de sélection de circuit CS1 sont appliqués à la zone de code de sécurité 4 et à la zone de code général 6 conformément au bit le plus significatif (MSB), Bit d'Adresse 16, des adresses de mémoire de programmes. En d'autres termes, pour la zone de code général 6, l'état logique de l'adresse appliquée sur le bus d'adresse A est inversé et l'état logique inversé remplit la fonction du premier signal de sélection de circuit CS1. Pour la zone de code de sécurité 4, l'état logique du bit le plus significatif remplit la fonction des premiers signaux de sélection de circuit CS1. Le bit le plus significatif de valeur "0" est un état logique bas et le bit le plus significatif de valeur "1" est un état logique haut. Les premiers signaux de sélection de circuit CS1 appliqués à la zone de données générales 9 et à la zone de données de sécurité 8 sont fixés à une valeur logique "1", c'est-àdire un état logique haut. De plus, les seconds signaux de sélection de circuit CS2 appliqués à la zone de données générales 9 et à la zone de code général 6 sont également fixés à une valeur logique "1", c'est-à-dire un état logique haut. Lorsque l'adresse de code (la valeur du compteur d'instruction) appliquée au bus d'adresse A devient la valeur d'adresse de la zone de table de vecteurs 5, c'est-à-dire, sur la figure 3, si le bit le plus significatif (Bit d'Adresse 16) de l'adresse de mémoire a la valeur "0", et les huitième à quinzième bits (Bit d'Adresse 15 à Bit d'Adresse 8) ont la valeur "1", la logique de décodeur d'adresse 11 de l'unité d'activation de programme de sécurité 10 génère le signal d'instauration de façon que le circuit logique de bascule 12 soit instauré.
<Desc/Clms Page number 21>
Par conséquent, les seconds signaux de sélection de circuit CS2 appliqués à la zone de données de sécurité 8 et à la zone de code de sécurité 4 sont validés.
De façon spécifique, on suppose que le programme général est exécuté dans la zone de code général 6 sous la commande de l'unité centrale 2. Du fait que la zone de code général 6 occupe une zone ayant des adresses logiques allant de OOOOOh à OFFFFFh, le bit le plus significatif de l'adresse de mémoire de programmes est une valeur logique "0". Par conséquent, du fait que la valeur logique inversée "1" fonctionne comme le signal de sélection de circuit CS1, le premier signal de sélection de circuit CS est dans l'état validé. D'autre part, du fait que le second signal de sélection de circuit CS2 de la zone de code général 6 est dans l'état validé, la zone de code général 6 devient déverrouillée sous l'effet d'un produit logique des deux signaux de sélection de circuit.
Cependant, dans la zone de code de sécurité 4, du fait que la valeur logique "0", elle-même, du bit le plus significatif de l'adresse de mémoire de programmes fonctionne comme le premier signal de sélection de circuit CS1, le premier signal de sélection de circuit CS1 devient invalidé (verrouillé). De plus, du fait que l'adresse de mémoire de programmes n'est pas la valeur de la zone de table de vecteurs, le circuit logique de décodeur d'adresse 11 décode l'adresse de mémoire de programmes pour générer le signal de restauration. Le circuit logique de bascule 12 est restauré en réponse au signal de restauration, de façon que le second signal de sélection de circuit appliqué à la zone de code de sécurité 4 et à la zone de données de sécurité 8 deviennent invalidés (verrouillés). Il en résulte que la zone de code de sécurité 4 et la zone de données de sécurité 8 ne sont pas activées. Lorsque le programme général est en cours d'exécution, la zone de code de sécurité 4 et la zone de données de sécurité 8 sont dans l'état désactivé, ce qui fait qu'on ne peut pas y accéder.
<Desc/Clms Page number 22>
Si le programme général est en cours de progression et la valeur du compteur d'instruction est changée pour devenir la valeur d'adresse (l'une des adresses allant de OFFOOh à OFFFFh) de la zone de table de vecteurs 5, par l'action de l'appel de fonction de sous-programme (saut), l'adresse correspondante est appliquée sur le bus d'adresse A. Par conséquent, les seconds signaux de sélection de puce CS2 appliqués à la zone de code de sécurité 4 et à la zone de données de sécurité 8 sont validés par le circuit logique de décodeur d'adresse 11 de l'unité d'activation de programme de sécurité 10. D'autre part, du fait que la zone de table de vecteurs 5 est constituée des codes de saut qui produisent seulement un saut vers la zone de table de vecteurs 5 et la zone de code de sécurité 4, l'adresse de mémoire de programmes est changée pour devenir l'adresse de la zone de code de sécurité 4. Du fait que le bit le plus significatif de la valeur d'adresse de mémoire de programmes de la zone de code de sécurité 4 est un "1" logique, le signal de sélection de circuit CS1 appliqué à la zone de code de sécurité 4 est l'état validé. Cependant, dans le cas de la zone de code général 6, le bit le plus significatif est inversé, et le signal de sélection de circuit appliqué à la zone de code général 6 est dans l'état invalidé. Il en résulte que l'appel de fonction de sous-programme est effectué, et la zone de code général est désactivée lorsque le programme est exécuté dans la zone de code de sécurité 4.
Après la fin de l'exécution du programme de sécurité, si la valeur du compteur d'instruction est à nouveau changée pour devenir l'adresse de la mémoire de programmes, le second signal de sélection de circuit CS2 appliqué à la zone de code de sécurité 4 et à la zone de données de sécurité 8, et le premier signal de sélection de circuit CS1 appliqué à la zone de code de sécurité 4 sont invalidés. Par conséquent, la zone de code de sécurité et la zone de données de sécurité sont désactivées de façon
<Desc/Clms Page number 23>
qu'on ne puisse pas y accéder. D'autre part, le second signal de sélection de circuit CS2 appliqué à la zone de code général 6 est dans l'état validé. De plus, du fait que le bit le plus significatif de l'adresse de mémoire de programmes de la zone de code général 6 est un "0" logique, le premier signal de sélection de puce CS1 appliqué à la zone de code général 6 est dans l'état validé. Il en résulte que la zone de code général 6 est activée de façon que le programme général soit exécuté.
Dans certains modes de réalisation de la présente invention, le second signal de sélection de circuit CS2 appliqué à la seconde zone de données 8 est toujours à un niveau logique haut. Cependant, conformément à d'autres modes de réalisation de la présente invention, le bit le plus significatif de l'adresse de mémoire de programmes peut être appliqué de la même manière que dans la zone de code de sécurité 4.
En outre, dans les modes de réalisation de la présente invention ci-dessus, dans la zone de données générales 9, les signaux de sélection de circuit CS1 et CS2 sont toujours dans l'état validé. Cependant, le bit le plus significatif inversé de l'adresse de mémoire de programmes peut également être appliqué au premier signal de sélection de circuit CS1 de la zone de données générales 9, de la même manière que dans la zone de code général 6. Dans ce cas, la zone de données générales 9 n'est pas toujours dans l'état validé et prend l'état validé seulement lorsque le programme général est exécuté.
Dans d'autres modes de réalisation de la présente invention, les signaux de sélection de circuit peuvent être validés/ invalidés en utilisant deux bits les plus significatifs, ou plus, de l'adresse de mémoire de programmes. Par conséquent, divers programmes d'application ayant des niveaux de sécurité qui diffèrent les uns des autres peuvent être installés dans une seule puce. En outre, la zone de code de sécurité pour laquelle on désire
<Desc/Clms Page number 24>
la sécurité du saut vers la zone de table de vecteurs peut être diversifiée.
La figure 4 est une représentation expliquant les modes de réalisation décrits ci-dessus et montre la mémoire de programmes 50 et une mémoire de données 60 correspondante, avec de multiples programmes d'application stockés dans la mémoire de programmes 50.
La mémoire de programmes 50 comprend une zone de programme d'application A, 52, une zone de programme d'application B, 56, une zone de programme d'application C, 58, et une zone de table de vecteurs 54. Les programmes d'application B et C sont dans une zone de programme de sécurité et l'accès à ceux-ci est refusé pendant l'exécution du programme d'application A. La mémoire de données 60 comprend une zone de données A, 62, correspondant au programme d'application A, une zone de données B, 64, correspondant au programme d'application B, et une zone de données C, 66, correspondant au programme d'application C, et les zones de données B et C, 64 et 66, sont une zone de données de sécurité.
Les codes de saut qui font sauter vers les programmes d'application B et C, 56 et 58, sont stockés dans la zone de table de vecteurs 54, et la zone de table de vecteurs 54 est une zone ayant des adresses allant de AA à BB. Par exemple, comme représenté, une commande de saut pour sauter vers l'adresse CC de la zone de programme d'application B, 56, existe à l'adresse de mémoire XX de la zone de table de vecteurs 54. De plus, une commande de saut pour sauter vers l'adresse DD de la zone de programme d'application B, 56, existe à l'adresse de mémoire XX+N de la zone de table de vecteurs 54.
Les zones respectives de la mémoire de programmes ou les zones respectives de la mémoire de données peuvent être divisées de façon à pouvoir être disposées physiquement à différentes positions dans une seule mémoire, elles peuvent être entrelacées et/ou elles peuvent
<Desc/Clms Page number 25>
être établies avec des dispositifs de mémoire mutuellement différents.
Pendant que l'application A (programme général) est en cours d'exécution par l'unité centrale dans la zone de programme d'application A, 52, si la valeur du compteur d'instruction est changée pour devenir l'adresse XX de la zone de table de vecteurs 54 (par l'exécution de la commande de saut pour sauter vers l'adresse XX), le signal de sélection de circuit CS1 est validé de façon que le programme d'application B et la zone de données B, 64, soient activés. De la même manière, si la valeur du compteur d'instruction est changée pour devenir l'adresse XX+N de la zone de table de vecteurs 54 (par l'exécution de la commande de saut pour sauter vers l'adresse XX+N), le signal de sélection de circuit CS2 est validé de façon que le programme d'application C et la zone de données C 66 soient activés. Par conséquent, un accès direct à partir du programme d'application A au programme d'application B ou C peut être empêché.
Bien que des modes de réalisation de cartes à puce aient été décrits ci-dessus, le cadre et l'esprit de la présente invention ne sont pas limités à des cartes à puce, et sont applicables à divers systèmes informatiques qui traitent des données.
Conformément à certains modes de réalisation de la présente invention, un programme de sécurité permet l'accès à la zone de code de sécurité et à la zone de données de sécurité seulement lorsque la valeur du compteur d'instruction est changée pour spécifier une valeur d'adresse de mémoire de programmes par l'appel de sousprogramme (saut). Par conséquent, le programme de sécurité peut être complètement séparé du programme général. En d'autres termes, le programme général ne peut pas être traité en accédant directement à l'information de sécurité.
Il peut l'être en activant le programme de sécurité en passant par un chemin spécifique prédéterminé.
<Desc/Clms Page number 26>
Ainsi, dans certains modes de réalisation, l'information de sécurité peut être protégée du fait que l'information de sécurité et le dispositif de sécurité peuvent être complètement séparés du programme d'application générale. En outre, l'information de sécurité et le dispositif de sécurité peuvent être installés dans la même puce ayant des programmes d'application avec des niveaux de sécurité qui diffèrent les uns des autres, en permettant à l'information de sécurité et à l'équipement de sécurité d'agir comme un fournisseur de services.
Dans les dessins et la description, on a exposé des modes de réalisation caractéristiques de l'invention, et bien que des termes spécifiques soient employés, ils sont utilisés seulement en un sens générique et descriptif, et non dans un but de limitation, le cadre de l'invention étant défini dans les revendications qui suivent.

Claims (31)

REVENDICATIIONS
1. Système informatique, caractérisé en ce qu'il comprend : des première, seconde et troisième zones de mémoire (6, 5, 4), la première zone de mémoire (6) stockant à l'intérieur au moins un programme d'application générale incluant au moins un appel de sous-programme dirigé vers la seconde zone de mémoire (5), la seconde zone de mémoire (5) stockant à l'intérieur seulement au moins un appel de sousprogramme dirigé vers la troisième zone de mémoire (4), et la troisième zone de mémoire (4) stockant à l'intérieur au moins un programme d'application de sécurité qui peut être appelé seulement par un appel de sous-programme provenant de la seconde zone de mémoire (5); un système de traitement (2,11, 12,13) qui est configuré pour exécuter un programme d'application générale dans la première zone de mémoire (6) incluant un appel de sous-programme dirigé vers la seconde zone de mémoire (5), et pour déverrouiller la troisième zone de mémoire (4) seulement au moment de l'exécution d'un appel de sous-programme dirigé de la première zone de mémoire (6) vers la seconde zone de mémoire (5) .
2. Système informatique selon la revendication 1, caractérisé en ce que le système de traitement (2,11, 12, 13) est en outre configuré pour empêcher un déverrouillage de la troisième zone de mémoire (4) pendant l'exécution d'un programme d'application générale dans la première zone de mémoire (6).
3. Système informatique selon la revendication 1, caractérisé en ce que le système de traitement comprend un bus d'adresse (13) qui transmet une adresse d'une position de mémoire à laquelle il est accédé, le système de traitement étant configuré de façon à déverrouiller la troisième zone de mémoire (4) lorsque le bus d'adresse (13) transmet une adresse d'une position de mémoire dans la seconde zone de mémoire (5), et à verrouiller la troisième zone de mémoire (4) lorsque le bus d'adresse transmet une
<Desc/Clms Page number 28>
adresse d'une position de mémoire dans la première zone de mémoire (6) .
4. Système informatique selon la revendication 1, caractérisé en ce qu'il comprend en outre une quatrième zone de mémoire (9) qui stocke à l'intérieur des données qui sont traitées par l'au moins un programme d'application générale dans la première zone de mémoire (6), et une cinquième zone de mémoire (8) qui stocke à l'intérieur des données qui sont traitées par l'au moins un programme d'application de sécurité dans la troisième zone de mémoire (4), le système de traitement (2,11, 12,13) étant en outre configuré pour déverrouiller la cinquième zone de mémoire (8) seulement au moment de l'exécution de l'appel de sous-programme dirigé de la première zone de mémoire (6) vers la seconde zone de mémoire (5).
5. Système informatique selon la revendication 4, caractérisé en ce que le système de traitement est en outre configuré pour empêcher le déverrouillage de la cinquième zone de mémoire (8) pendant l'exécution d'un programme d'application générale dans la première zone de mémoire (6) .
6. Système informatique selon la revendication 3, caractérisé en ce que le système de traitement comprend une logique de décodeur d'adresse (11) qui est configurée pour produire un signal d'instauration en réponse à une adresse qui est transmise sur le bus d'adresse (13), se trouvant dans la seconde zone de mémoire (5), et une bascule (12) qui réagit au signal d'instauration en activant un signal de sélection pour la troisième zone de mémoire (4).
7. Système informatique selon la revendication 6, caractérisé en ce que la logique de décodeur d'adresse (11) est en outre configurée pour produire un signal de restauration en réponse à une adresse qui est transmise sur le bus d'adresse (13), se trouvant dans la première zone de mémoire (6), la bascule (12) réagissant au signal de restauration en désactivant le signal de sélection pour la
<Desc/Clms Page number 29>
troisième zone de mémoire (4).
8. Système informatique selon la revendication 1, caractérisé en ce que l'un au moins des programmes d'application de sécurité comprend un programme d'authentification d'utilisateur.
9. Système informatique selon la revendication 3, caractérisé en ce que le bit d'adresse le plus significatif de la première zone de mémoire (6) et celui de la troisième zone de mémoire (4) sont complémentaires l'un de l'autre, et en ce que le bit d'adresse le plus significatif sur le bus d'adresse (13) est appliqué à la troisième zone de mémoire (4) et est appliqué à la première zone de mémoire (6) sous forme inversée, de façon que la troisième zone de mémoire (4) soit activée par une combinaison du signal de sélection et du bit le plus significatif du bus d'adresse (13) .
10. Système informatique selon la revendication 1, caractérisé en ce que les première, seconde et troisième zones de mémoire (6,5, 4) et le système de traitement (2, 11,12, 13) sont tous contenus dans une carte à puce.
11. Système informatique selon la revendication 1, caractérisé en ce que la première zone de mémoire (6) est une zone de code général, la seconde zone de mémoire (5) est une zone de table de vecteurs et la troisième zone de mémoire (4) est une zone de code de sécurité.
12. Système informatique selon la revendication 1, caractérisé en ce que le système de traitement est en outre configuré pour maintenir la troisième zone de mémoire (4) déverrouillée pendant l'exécution d'un programme d'application de sécurité dans la troisième zone de mémoire (4) .
13. Système informatique selon la revendication 12, caractérisé en ce que le système de traitement est en outre configuré pour verrouiller la troisième zone de mémoire (4) au moment de l'exécution d'un appel de sous-programme dirigé de la troisième zone de mémoire (4) vers la première
<Desc/Clms Page number 30>
zone de mémoire (6).
14. Architecture de mémoire pour un système informatique, caractérisée en ce qu'elle comprend : des première, seconde et troisième zones de mémoire (6,5, 4), la première zone de mémoire (6) stockant à l'intérieur au moins un programme d'application générale incluant une multiplicité d'appels de sous-programme dirigés vers la seconde zone de mémoire (5), la seconde zone de mémoire (5) stockant seulement à l'intérieur une multiplicité d'appels de sous-programme vers la troisième zone de mémoire (4), et la troisième zone de mémoire (4) stockant à l'intérieur une multiplicité de programmes d'application de sécurité qui ne peuvent être appelés que par un appel de sous-programme provenant de la seconde zone de mémoire (5).
15. Architecture de mémoire selon la revendication 14, caractérisée en ce qu'elle comprend en outre une quatrième zone de mémoire (9) qui stocke à l'intérieur des données qui sont traitées par l'au moins un programme d'application générale dans la première zone de mémoire (6), et une cinquième zone de mémoire (8) qui stocke à l'intérieur des données qui sont traitées par les programmes d'application de sécurité dans la troisième zone de mémoire (4).
16. Architecture de mémoire selon la revendication 14, caractérisée en ce que l'un au moins des programmes d'application de sécurité comprend un programme d'authentification d'utilisateur.
17. Architecture de mémoire selon la revendication 14, caractérisée en ce que le bit d'adresse le plus significatif de la première zone de mémoire (6) et celui de la troisième zone de mémoire (4) sont complémentaires l'un de l'autre.
18. Architecture de mémoire selon la revendication 14, caractérisée en ce que les première, seconde et troisième zones de mémoire (6,5, 4) sont toutes contenues dans une carte à puce.
<Desc/Clms Page number 31>
19. Architecture de mémoire selon la revendication 14, caractérisée en ce que la première zone de mémoire (6) est une zone de code général, la seconde zone de mémoire (5) est une zone de table de vecteurs et la troisième zone de mémoire (4) est une zone de code de sécurité.
20. Système informatique, caractérisé en ce qu'il comprend : des première, seconde et troisième zones de mémoire (6, 5, 4), la première zone de mémoire (6) stockant à l'intérieur au moins un programme d'application générale incluant au moins un appel de sous-programme dirigé vers la seconde zone de mémoire (5), la seconde zone de mémoire (5) stockant à l'intérieur seulement au moins un appel de sousprogramme dirigé vers la troisième zone de mémoire (4), et la troisième zone de mémoire (4) stockant à l'intérieur au moins un programme d'application de sécurité qui peut être appelé seulement par un appel de sous-programme provenant de la seconde zone de mémoire (5); un moyen (2) pour exécuter un programme d'application générale dans la première zone de mémoire (6) incluant un appel de sousprogramme dirigé vers la seconde zone de mémoire (5); et un moyen (10) pour déverrouiller la troisième zone de mémoire (4) seulement au moment de l'exécution d'un appel de sousprogramme dirigé de la première zone de mémoire (6) vers la seconde zone de mémoire (5).
21. Système informatique selon la revendication 20, caractérisé en ce qu'il comprend en outre un moyen (10) pour empêcher le déverrouillage de la troisième zone de mémoire (4) pendant l'exécution d'un programme d'application générale dans la première zone de mémoire (6) .
22. Système informatique selon la revendication 20, caractérisé en ce que le moyen d'exécution comprend un moyen (13) pour transmettre une adresse d'une position de mémoire qui fait l'objet d'une opération d'accès ; en ce que le moyen de déverrouillage (10) comprend un moyen pour déverrouiller la troisième zone de mémoire (4) lorsque le
<Desc/Clms Page number 32>
moyen de transmission (13) transmet une adresse d'une position de mémoire dans la seconde zone de mémoire (5); le système informatique comprenant en outre un moyen (10) pour verrouiller la troisième zone de mémoire (4) lorsque le moyen de transmission (13) transmet une adresse d'une position de mémoire dans la première zone de mémoire (6).
23. Système informatique selon la revendication 20, caractérisé en ce qu'il comprend en outre une quatrième zone de mémoire (9) qui stocke à l'intérieur des données qui sont traitées par l'au moins un programme d'application générale dans la première zone de mémoire (6); une cinquième zone de mémoire (8) qui stocke à l'intérieur des données qui sont traitées par l'au moins un programme d'application de sécurité dans la troisième zone de mémoire (4); et un moyen (10) pour déverrouiller la cinquième zone de mémoire (8) seulement au moment de l'exécution d'un appel de sous-programme dirigé de la première zone de mémoire (6) vers la seconde zone de mémoire (5).
24. Système informatique selon la revendication 23, caractérisé en qu'il comprend en outre un moyen pour empêcher le déverrouillage de la cinquième zone de mémoire (8) pendant l'exécution d'un programme d'application générale dans la première zone de mémoire (6).
25. Système informatique selon la revendication 20, caractérisé en ce que les première, seconde et troisième zones de mémoire (6, 5, 4), le moyen d'exécution (2) et le moyen de déverrouillage (10) sont tous contenus dans une carte à puce.
26. Système informatique selon la revendication 20, caractérisé en ce qu'il comprend en outre un moyen pour maintenir la troisième zone de mémoire (4) déverrouillée pendant l'exécution d'un programme d'application de sécurité dans la troisième zone de mémoire (4).
27. Système informatique selon la revendication 26, caractérisé en ce qu'il comprend en outre un moyen pour verrouiller la troisième zone de mémoire (4) au moment de
<Desc/Clms Page number 33>
l'exécution d'un appel de sous-programme dirigé de la troisième zone de mémoire (4) vers la première zone de mémoire (6).
28. Procédé d'exécution d'un programme de sécurité pendant l'exécution d'un programme d'application, caractérisé en ce qu'il comprend les étapes suivantes : on exécute un programme d'application; on déverrouille le programme de sécurité seulement au moment de l'exécution d'un appel de sous-programme dirigé vers une zone de table de vecteurs (5) qui contient seulement à l'intérieur au moins un appel de sous-programme dirigé vers le programme de sécurité ; on exécute le programme de sécurité qui est déverrouillé.
29. Procédé selon la revendication 28, caractérisé en ce qu'il comprend en outre le verrouillage du programme de sécurité au moment de l'exécution d'un appel de sousprogramme en retour vers le programme d'application.
30. Procédé selon la revendication 28, caractérisé en ce que l'exécution d'un programme d'application, le déverrouillage du programme de sécurité et l'exécution du programme de sécurité sont tous accomplis dans une carte à puce.
31. Procédé selon la revendication 28, caractérisé en ce que le déverrouillage comprend le maintien du programme de sécurité déverrouillé pendant l'exécution du programme de sécurité.
FR0306427A 2002-05-29 2003-05-27 Systemes informatiques tels que des cartes a puce ayant des architectures de memoire capables de proteger une information de securite, et procedes d'utilisation de ceux-ci Expired - Fee Related FR2840421B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0029877A KR100505106B1 (ko) 2002-05-29 2002-05-29 강화된 보안 기능을 갖춘 스마트 카드

Publications (2)

Publication Number Publication Date
FR2840421A1 true FR2840421A1 (fr) 2003-12-05
FR2840421B1 FR2840421B1 (fr) 2007-02-23

Family

ID=29578170

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0306427A Expired - Fee Related FR2840421B1 (fr) 2002-05-29 2003-05-27 Systemes informatiques tels que des cartes a puce ayant des architectures de memoire capables de proteger une information de securite, et procedes d'utilisation de ceux-ci

Country Status (6)

Country Link
US (1) US7353403B2 (fr)
JP (1) JP2004005679A (fr)
KR (1) KR100505106B1 (fr)
CN (1) CN100547541C (fr)
DE (1) DE10324337B4 (fr)
FR (1) FR2840421B1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2923634A1 (fr) * 2007-11-13 2009-05-15 Oberthur Card Syst Sa Carte a microprocesseur, telephone comprenant une telle carte et procede d'execution d'une commande dans une telle carte.
EP2156303A1 (fr) * 2007-04-20 2010-02-24 Motorola, Inc. Dispositif logique avec registres d'unité de gestion de mémoire protégés en écriture

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006004280A (ja) 2004-06-18 2006-01-05 Toshiba Kyaria Kk マイクロコンピュータおよび電気機器
US8528102B2 (en) * 2006-10-06 2013-09-03 Broadcom Corporation Method and system for protection of customer secrets in a secure reprogrammable system
US8281154B2 (en) 2009-07-23 2012-10-02 International Business Machines Corporation Encrypting data in volatile memory
US8276188B2 (en) * 2009-12-03 2012-09-25 Condel International Technologies Inc. Systems and methods for managing storage devices
KR101009297B1 (ko) * 2010-05-14 2011-01-18 김진숙 비틀림 식별 라인이 형성되고 편직 방법으로 피복층을 형성한 엘리베이터 보정 체인 및 그 제조장치
KR101009296B1 (ko) * 2010-05-14 2011-01-18 김진숙 곡률반경을 조절 생산할 수 있는 엘리베이터 보정 체인의 제조방법 및 그 방법으로 제조된 엘리베이터 보정 체인
JP2012238273A (ja) * 2011-05-13 2012-12-06 Denso Corp Ram書込制御装置および不正アクセス防止プログラム
US20120265904A1 (en) * 2011-06-23 2012-10-18 Renesas Electronics Corporation Processor system
DE102012218363A1 (de) * 2012-10-09 2014-04-10 Continental Automotive Gmbh Verfahren zur Steuerung eines getrennten Ablaufs von verknüpften Programmblöcken und Steuergerät
JP2015026358A (ja) * 2013-06-20 2015-02-05 株式会社東芝 デバイス、ホスト装置、ホストシステム、及びメモリシステム
US9836318B2 (en) * 2014-02-21 2017-12-05 Infineon Technologies Ag Safety hypervisor function
US9703948B2 (en) * 2014-03-28 2017-07-11 Intel Corporation Return-target restrictive return from procedure instructions, processors, methods, and systems
CA2884544A1 (fr) * 2015-03-10 2016-09-10 Scs Card Technology Inc. Carte de microprocesseur de dossier de sante personnel multi-application
FR3118219B1 (fr) * 2020-12-17 2024-03-15 Stmicroelectronics Grand Ouest Sas Procédé de protection d’un système, par exemple un microcontrôleur, et sytème correspondant

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027317A (en) * 1989-03-17 1991-06-25 Allen-Bradley Company, Inc. Method and circuit for limiting access to a RAM program memory

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5783850A (en) * 1980-11-12 1982-05-25 Mitsubishi Electric Corp Data processing device
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
JP2677458B2 (ja) * 1991-01-25 1997-11-17 松下電器産業株式会社 システムコール実行装置
US5610981A (en) * 1992-06-04 1997-03-11 Integrated Technologies Of America, Inc. Preboot protection for a data security system with anti-intrusion capability
FR2704341B1 (fr) * 1993-04-22 1995-06-02 Bull Cp8 Dispositif de protection des clés d'une carte à puce.
FR2711833B1 (fr) * 1993-10-28 1995-12-01 Sgs Thomson Microelectronics Circuit intégré contenant une mémoire protégée et système sécurisé utilisant ledit circuit intégré.
JP3483925B2 (ja) * 1994-01-11 2004-01-06 大日本印刷株式会社 Icカード
US5442704A (en) * 1994-01-14 1995-08-15 Bull Nh Information Systems Inc. Secure memory card with programmed controlled security access control
JP3221588B2 (ja) 1994-04-28 2001-10-22 日本電信電話株式会社 通信インタフェースモジュール及び通信制御方法
US5513337A (en) * 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
JPH0855204A (ja) * 1994-08-12 1996-02-27 Dainippon Printing Co Ltd Cpu付きicカード及びcpu付きicカードに於けるアクセス可能アドレス制限方法
JPH08272625A (ja) * 1995-03-29 1996-10-18 Toshiba Corp マルチプログラム実行制御装置及び方法
JPH0922385A (ja) * 1995-07-05 1997-01-21 Rohm Co Ltd データセキュリティ装置および方法
JPH0935018A (ja) * 1995-07-17 1997-02-07 Dainippon Printing Co Ltd 携帯可能情報記録媒体およびそのアクセス方法
DE19709975C2 (de) * 1997-03-11 1999-04-22 Siemens Ag Mikrocomputer
US6220510B1 (en) * 1997-05-15 2001-04-24 Mondex International Limited Multi-application IC card with delegation feature
US6259124B1 (en) * 1998-08-07 2001-07-10 Eastman Kodak Company Active pixel sensor with high fill factor blooming protection
US6609199B1 (en) * 1998-10-26 2003-08-19 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6633984B2 (en) * 1999-01-22 2003-10-14 Sun Microsystems, Inc. Techniques for permitting access across a context barrier on a small footprint device using an entry point object
US6292874B1 (en) * 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
JP4226760B2 (ja) * 2000-05-08 2009-02-18 株式会社東芝 マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP4033619B2 (ja) * 2000-05-26 2008-01-16 シャープ株式会社 サーバ装置
FR2811096A1 (fr) * 2000-06-28 2002-01-04 St Microelectronics Sa Microprocesseur securise comprenant un systeme d'attribution de droits a des librairies
JP2002149431A (ja) * 2000-11-07 2002-05-24 Nec Corp マイクロコンピュータ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027317A (en) * 1989-03-17 1991-06-25 Allen-Bradley Company, Inc. Method and circuit for limiting access to a RAM program memory

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2156303A1 (fr) * 2007-04-20 2010-02-24 Motorola, Inc. Dispositif logique avec registres d'unité de gestion de mémoire protégés en écriture
EP2156303A4 (fr) * 2007-04-20 2011-05-04 Motorola Solutions Inc Dispositif logique avec registres d'unité de gestion de mémoire protégés en écriture
FR2923634A1 (fr) * 2007-11-13 2009-05-15 Oberthur Card Syst Sa Carte a microprocesseur, telephone comprenant une telle carte et procede d'execution d'une commande dans une telle carte.
EP2065857A3 (fr) * 2007-11-13 2009-12-02 Oberthur Technologies Carte à microprocesseur, téléphone comprenant une telle carte et procédé d'exécution d'une commande dans une telle carte
US8261996B2 (en) 2007-11-13 2012-09-11 Oberthur Technologies Smart card, telephone comprising such a card and method for executing a command in such a card

Also Published As

Publication number Publication date
FR2840421B1 (fr) 2007-02-23
US20030233565A1 (en) 2003-12-18
CN1461992A (zh) 2003-12-17
DE10324337A1 (de) 2003-12-24
KR20030092264A (ko) 2003-12-06
DE10324337B4 (de) 2005-11-10
US7353403B2 (en) 2008-04-01
KR100505106B1 (ko) 2005-07-29
CN100547541C (zh) 2009-10-07
JP2004005679A (ja) 2004-01-08

Similar Documents

Publication Publication Date Title
FR2840421A1 (fr) Systemes informatiques tels que des cartes a puce ayant des architectures de memoire capables de proteger une information de securite, et procedes d&#39;utilisation de ceux-ci
US6996547B1 (en) Method for purchasing items over a non-secure communication channel
EP1774484B1 (fr) Enregistrement d&#39;une cle dans un circuit integre
EP1798888B1 (fr) Protection de l&#39;exécution d&#39;un algorithme DES
EP1617586B1 (fr) Chiffrement en continu du contenu d&#39;une mémoire externe à un processeur
FR3011653A1 (fr) Procedes et dispositifs de masquage et demasquage
EP0606792B1 (fr) Procédé d&#39;authentification d&#39;un ensemble informatique par un autre ensemble informatique
TW200820069A (en) Embedded software camouflage against code reverse engineering
WO2020199028A1 (fr) Puce de sécurité, procédé de traitement de la sécurité et dispositif associé
FR2686171A1 (fr) Carte a memoire de masse pour microordinateur avec facilites d&#39;execution de programmes internes.
EP1832974A1 (fr) Protection EMA d&#39;un calcul par un circuit électronique
EP2656268A1 (fr) Protection des applets contre les analyses par canaux caches
FR2833374A1 (fr) Procede et dispositif de controle d&#39;acces dans un systeme embarque
CN110235141B (zh) 生物特征识别方法以及电子设备
EP2038798B1 (fr) Protection d&#39;un programme interprete par une machine virtuelle
EP1615369A1 (fr) Chiffrement par blocs du contenu d&#39;une mémoire externe à un processeur
EP2813962B1 (fr) Méthode de contrôle d&#39;accès à un type de services spécifique et dispositif d&#39;authentification pour le contrôle de l&#39;accès à un tel type de services.
WO2016166450A1 (fr) Procede de partage d&#39;une memoire entre au moins deux entites fonctionnelles
EP1355446A1 (fr) Chiffrement du contenu d&#39;une mémoire externe à un processeur
US20110264900A1 (en) Method and arrangement for configuring electronic devices
EP1609326B1 (fr) Procede de protection d&#39;un terminal de telecommunication de type telephone mobile
EP4068134A1 (fr) Débogage sécurisé
EP1316077B1 (fr) Securite d&#39;acces par code secret a un moyen de traitement de donnees
EP2053532A1 (fr) Procédé d&#39;ouverture sécurisée à des tiers d&#39;une carte à microcircuit
WO2024083849A1 (fr) Encodage en boite blanche

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20100129