FR2991071A1 - Procede et dispositif de traitement de donnees - Google Patents

Procede et dispositif de traitement de donnees Download PDF

Info

Publication number
FR2991071A1
FR2991071A1 FR1301146A FR1301146A FR2991071A1 FR 2991071 A1 FR2991071 A1 FR 2991071A1 FR 1301146 A FR1301146 A FR 1301146A FR 1301146 A FR1301146 A FR 1301146A FR 2991071 A1 FR2991071 A1 FR 2991071A1
Authority
FR
France
Prior art keywords
signature
value
instruction
actual
sequence
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
FR1301146A
Other languages
English (en)
Other versions
FR2991071B1 (fr
Inventor
Berndt Gammel
Stefan Mangard
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of FR2991071A1 publication Critical patent/FR2991071A1/fr
Priority to FR1401843A priority Critical patent/FR3008504A1/fr
Application granted granted Critical
Publication of FR2991071B1 publication Critical patent/FR2991071B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

Procédé pour accomplir une séquence de travail d'instructions d'un programme dans un processeur 2, chaque instruction étant représentée par un code d'instruction associé, lequel comprend une étape d'exécution à accomplir par le processeur 2 ou plusieurs étapes d'exécution i ... i ... i à accomplir les unes après les autres par le processeur, comprenant : détermination d'une valeur de signature réelle ISS , laquelle est associée à une étape d'exécution actuelle i des étapes d'exécution du code d'instruction qui représente l'instruction de la séquence de travail ; détermination, en fonction d'une valeur d'adresse VA , d'une valeur de signature de consigne C (VA ) qui est associée à l'étape d'exécution actuelle i et, si la valeur de signature réelle ISS ne concorde pas avec la valeur de signature de consigne C (VA ), omission d'au moins une étape d'exécution en instance d'exécution directe et/ou en instance d'exécution indirecte.

Description

- 1 - Procédé et dispositif de traitement de données L'invention concerne un procédé de traitement de données, lequel comprend une protection contre une exécution erronée, un premier programme informatique pour mettre en oeuvre le premier procédé, un procédé de fourniture d'un code d'instruction, un produit compilateur pour créer un programme informatique et en plus un circuit électrique qui est configuré pour traiter des données en utilisant une protection contre une exécution erronée. Le document DE 198 34 486 Al publie un procédé d'exécution sécurisée d'instructions, avec lequel le contenu d'un registre de signature, à des endroits prédéfinis du déroulement d'un programme, est comparé avec une valeur prédéfinie qui est contenue dans une instruction du programme. Namjoo (« Techniques for concurrent testing of VLSI Processor operation », IEEE Test Conference, 1982, 461-468) publie un procédé de reconnaissance des erreurs dans le déroulement d'un programme qui est accompli par un processeur, avec lequel un identifiant de chemin (« path signature ») est analysé en vue d'y détecter une modification du déroulement ou du type des étapes opérationnelles du processeur. La présente invention améliore une sécurité contre une attaque active sur un processeur.
Les revendications indépendantes définissent l'invention sous différents aspects. Les revendications dépendantes définissent des formes de réalisation de l'invention. L'invention se base sur l'idée de compléter un procédé dont la 35 mise en oeuvre accomplit une fonction prédéfinie par au moins - 2 - une étape supplémentaire qui signale si la mise en oeuvre du procédé s'est déroulée de manière inattendue. Dans la mesure du possible, l'étape supplémentaire ne contribue ici pas elle-même à l'accomplissement de la fonction du procédé. Dans le cas d'une mise en oeuvre du procédé sous la forme d'un programme informatique dans un ordinateur, un registre est par exemple actualisé à chaque étape du procédé et, lors de l'exécution de l'étape supplémentaire, la valeur courante du registre est comparée avec une valeur attendue dans le cas de la mise en oeuvre prévue du procédé. L'invention sera expliquée ci-après sous différents aspects. Des formes de réalisation de l'invention seront présentées. Les caractéristiques des différentes formes de réalisation de l'invention peuvent être combinées entre elles, sauf indication différente ressortant de la description. Dans un aspect, l'invention concerne un procédé pour accomplir une séquence de travail d'instructions d'un programme dans un processeur. Chaque instruction est représentée par un code d'instruction associé (également appelé code opération ou, en abrégé, Opcode). L'instruction est exprimée par un langage assembleur ou un langage machine, par exemple, et elle est représentée par un code en octets. Dans une forme de réalisation, une opération qui est réalisée lors de l'accomplissement de la séquence de travail est associée à l'instruction. Dans une forme de réalisation, plusieurs instructions sont associées à l'opération, lesquelles sont exécutées lors de la réalisation de l'opération. Dans une forme de réalisation, le code d'instruction comprend une ou plusieurs étapes d'exécution à accomplir les unes après les autres par le processeur. Le procédé comprend une détermination d'une valeur de signature réelle. Une étape d'exécution actuelle des étapes d'exécution du code d'instruction, lequel représente l'instruction de la séquence de travail, est associée à la valeur de signature réelle. L'étape d'exécution actuelle définit une instruction actuelle comme étant une instruction dont le code d'instruction comprend l'étape d'exécution actuelle. Le procédé comprend en outre la détermination d'une valeur de signature de consigne en fonction d'une valeur d'adresse. La valeur de signature de consigne est associée à l'étape d'exécution actuelle. Détermination de la valeur de signature de consigne en fonction de la valeur d'adresse signifie que la valeur d'adresse influence la valeur de signature de consigne. La valeur de signature de consigne correspond par exemple à la valeur d'adresse. La valeur de signature de consigne correspond par exemple à un nombre binaire dont les caractères correspondent respectivement à un caractère choisi de l'adresse. La détermination de la valeur de signature de consigne peut en plus tenir compte d'une ou plusieurs autres dépendances.
Dans une forme de réalisation, la valeur de signature de consigne est déterminée par une représentation de la valeur d'adresse au moyen d'une fonction de signature de consigne. Avec cette forme de réalisation, le procédé applique par exemple la fonction de signature de consigne sur l'adresse associée à l'instruction actuelle afin de déterminer une valeur d'une signature de consigne qui est associée à l'instruction actuelle. La valeur de la signature de consigne définit ainsi l'adresse correspondante à laquelle est stocké le code qui représente l'instruction.
Une forme de réalisation du procédé comprend l'omission d'au moins une étape d'exécution en instance d'exécution directe et/ou en instance d'exécution indirecte si la valeur de signature réelle concorde avec la valeur de signature de 35 consigne. Si l'étape d'exécution qui se trouve en instance - 4 - d'exécution directe est exécutée, cette exécution a alors lieu après l'étape d'exécution actuelle sans qu'une autre étape d'exécution soit exécutée entre temps. Si l'étape d'exécution qui se trouve en instance d'exécution indirecte est exécutée, cette exécution a alors lieu après l'étape d'exécution actuelle au plus tôt après que l'étape d'exécution qui se trouve en instance d'exécution directe ait été exécutée. Une forme de réalisation du procédé comprend une exécution d'une étape d'exécution qui se trouve en instance d'exécution directe sous réserve qu'une condition prédéfinie soit remplie. La condition prédéfinie consiste, par exemple, en une concordance de la valeur de signature réelle avec la valeur de signature de consigne qui est associée à l'étape d'exécution 15 actuelle. Une forme de réalisation du procédé comprend une comparaison de la valeur de signature réelle avec la valeur de signature de consigne afin de déterminer si la condition prédéfinie est 20 remplie. Dans une forme de réalisation, la comparaison a lieu de manière implicite en ce, par exemple, qu'un accès à un registre de mémoire conformément à la valeur de signature réelle entraîne, notamment directement, une interruption du procédé et/ou un arrêt du procédé si la condition prédéfinie 25 n'est pas remplie. Dans une forme de réalisation du procédé, l'étape d'exécution actuelle forme elle-même l'étape d'exécution en instance d'exécution. Dans une autre forme de réalisation, une étape 30 d'exécution qui suit directement l'étape d'exécution actuelle forme l'étape d'exécution en instance d'exécution. Dans une forme de réalisation, les étapes d'exécution d'une ou plusieurs instructions sont disposées par exemple dans un pipeline dit de phases sous la forme d'étapes d'exécution à 35 traiter les unes après les autres et sont ainsi d'une certaine - 5 - façon alignées. Dans une forme de réalisation, si l'étape d'exécution actuelle se trouve dans le pipeline de phases, une étape d'exécution qui suit directement l'étape d'exécution actuelle dans le pipeline de phases forme alors l'étape d'exécution en instance d'exécution. Dans une forme de réalisation, une étape d'exécution déterminée à partir de l'étape d'exécution actuelle conformément à une règle prédéfinie forme l'étape d'exécution en instance d'exécution.
Dans une forme de réalisation, la détermination de la valeur de signature réelle est effectuée en fonction d'une valeur de modification de la signature. La valeur de modification de la signature peut être fixée à l'avance. Détermination de la valeur de signature réelle en fonction de la valeur de modification de la signature veut dire que la valeur de modification de la signature influence la valeur de signature réelle. Une forme de réalisation du procédé selon l'invention comprend, dans le cas où la valeur de signature réelle ne concorde pas avec la valeur de signature de consigne, l'activation d'un signal selon lequel l'accomplissement de la séquence de travail doit être interrompu ou arrêté. Dans une forme de réalisation de l'invention, le signal provoque l'interruption de l'accomplissement de la séquence de travail le plus tôt possible sans que le processeur ne se retrouve dans un état non défini. Dans une forme de réalisation de l'invention, le signal provoque notamment un arrêt de l'accomplissement de la séquence de travail. Le déroulement du programme contient par exemple, immédiatement après l'exécution de l'instruction actuelle, un saut dans un sous-programme qui provoque une réinitialisation du processeur dans un état initial prédéfini. Une forme de réalisation comprend une activation d'un signal dans le cas où la condition prédéfinie est remplie, après quoi il faut poursuivre l'accomplissement de la séquence de travail. - 6 - Dans une forme de réalisation du procédé conforme à l'invention, une seule valeur de signature réelle est déterminée pour chaque instruction, et ce indépendamment du nombre d'étapes d'exécution du code d'instruction qui représente l'instruction. Dans une forme de réalisation, une seule comparaison de la valeur de signature réelle avec la valeur de signature de consigne est effectuée pour l'instruction, et ce indépendamment du nombre d'étapes d'exécution du code d'instruction qui représente l'instruction.
Dans une forme de réalisation, le procédé présente au moins une étape d'exécution de signature. La valeur de signature réelle et la valeur de signature de consigne sont seulement comparées entre elles si l'étape d'exécution actuelle est qualifiée en tant qu'étape d'exécution de signature. Une forme de réalisation comprend un contrôle, notamment un précontrôle, visant à vérifier si l'étape d'exécution actuelle est qualifiée en tant qu'étape d'exécution de signature.
Dans une forme de réalisation, le procédé conforme à l'invention comprend le stockage du code d'instruction associé aux instructions de la séquence de travail dans une mémoire, notamment dans une mémoire de programme. Dans une forme de réalisation, le code d'instruction qui représente l'instruction actuelle est et/ou sera écrit dans une mémoire à une adresse ayant la valeur d'adresse. Dans une forme de réalisation, le code d'instruction qui représente l'instruction actuelle est et/ou sera notamment stocké dans une mémoire à une adresse ayant la valeur d'adresse. Dans une forme de réalisation du procédé conforme à l'invention, une mémoire physique (également appelée « mémoire matérielle ») est adressée directement. L'adresse de la mémoire physique identifie l'endroit dans la mémoire physique auquel est et/ou sera enregistré(e) l'étape d'exécution actuelle ou le code d'instruction de l'instruction actuelle. Dans une forme de - 7 - réalisation du procédé conforme à l'invention, une mémoire logique (également appelée « mémoire virtuelle ») est utilisée. Une fonction d'affectation, par exemple, forme une adresse de la mémoire logique sur une adresse de la mémoire physique.
Dans une forme de réalisation du procédé conforme à l'invention, la valeur de signature réelle est déterminée lors de l'exécution d'une instruction. Dans une forme de réalisation, c'est le code qui représente l'instruction qui 10 détermine la valeur de signature réelle. Le procédé applique, par exemple, une fonction de signature réelle à l'instruction actuelle afin de déterminer une valeur d'une signature d'instruction qui est associée à l'instruction actuelle. Dans une forme de réalisation, des signaux de commande déclenchés 15 par l'instruction déterminent la valeur de signature réelle. Dans une forme de réalisation, la valeur de signature réelle est déterminée par une représentation au moyen d'une fonction de signature réelle. Dans une forme de réalisation, la 20 fonction de signature réelle tient compte d'une valeur de signature réelle déjà déterminée. La valeur de signature réelle est calculée, par exemple, de manière incrémentale et/ou récursive en utilisant une fonction de signature de séquence de travail. Une valeur de signature réelle déjà 25 calculée, notamment une valeur de signature réelle calculée en dernier, intervient par exemple dans un calcul de la valeur de signature réelle. Dans une forme de réalisation, la séquence de travail présente 30 une sous-séquence de travail. Dans cette forme de réalisation, le procédé comprend une ou plusieurs des étapes suivantes : lecture de la valeur de signature réelle depuis un registre de signature réelle ; écriture de la valeur de signature réelle à une première 35 adresse de mémoire de valeur de signature ; - 8 - accomplissement de la sous-séquence de travail ; et - lecture de la valeur à la première adresse de mémoire de valeur de signature et écriture de la valeur lue dans le registre de signature réelle.
Dans cette forme de réalisation, le registre de signature réelle présente après l'accomplissement de la sous-séquence de travail une valeur de signature réelle qui dépend de l'accomplissement de la sous-séquence de travail.
Dans une forme de réalisation, une valeur de modification de la signature de sous-séquence de travail est associée à la sous-séquence de travail. La détermination de la valeur de signature réelle s'effectue en fonction de la valeur de modification de la signature de sous-séquence de travail. Dans une forme de réalisation, la valeur de signature réelle associée à une première instruction de la sous-séquence de travail dépend uniquement de la valeur de modification de la signature de sous-séquence de travail. Dans cette forme de réalisation, la valeur de signature réelle après l'accomplissement de la sous-séquence de travail est indépendante des autres sections de la séquence de travail. Dans une forme de réalisation, la valeur de signature réelle associée à une première instruction de la sous-séquence de travail dépend à la fois de la valeur de modification de la signature de sous-séquence de travail et de la valeur de signature réelle qui est associée à la dernière instruction exécutée. Dans cette forme de réalisation, la valeur de modification de la signature de sous-séquence de travail peut être choisie de telle sorte que la valeur de signature réelle d'une séquence de travail invoquante peut être calculée en se basant sur une adresse de la sous-séquence de travail. - 9 - Une forme de réalisation du procédé selon l'invention comprend les étapes suivantes : - modification d'un signal de mode qui signale un premier mode de déroulement de telle sorte que le signal de mode signale un deuxième mode de déroulement ; - accomplissement de la sous-séquence de travail ; et - modification du signal de mode qui signale le deuxième mode de déroulement de telle sorte que le signal de mode signale le premier mode de déroulement.
Une variante de cette forme de réalisation comprend notamment les étapes supplémentaires suivantes : - écriture de la valeur de signature réelle à une deuxième adresse de mémoire de valeur de signature lorsque le signal de mode qui signale le premier mode de déroulement est modifié de telle sorte que le signal de mode signale le deuxième mode de déroulement ; et - lecture de la valeur à la deuxième adresse de mémoire de valeur de signature et écriture de la valeur lue dans le registre de signature réelle lorsque le signal de mode qui signale le deuxième mode de déroulement est modifié de telle sorte que le signal de mode signale le premier mode de déroulement.
Dans une forme de réalisation, la détermination d'une valeur de signature réelle s'effectue soit uniquement lorsque le premier mode de déroulement est signalé, soit uniquement lorsque le deuxième mode de déroulement est signalé. Dans cette forme de réalisation, un déroulement du programme peut basculer entre un état sécurisé et un état non sécurisé, par exemple du premier mode de déroulement vers le deuxième mode de déroulement, puis retour dans le premier mode de déroulement. - 10 - Dans une forme de réalisation, la détermination d'une valeur de signature réelle s'effectue soit uniquement lorsque le premier mode de déroulement est signalé, soit uniquement lorsque le deuxième mode de déroulement est signalé. Dans cette forme de réalisation, un basculement du déroulement du programme de l'état sécurisé vers l'état non sécurisé peut être constaté dans le cas où la valeur de signature réelle actuelle n'est pas déterminée.
Une forme de réalisation du procédé selon l'invention comprend une écriture d'une valeur de signal de chemin, qui représente un chemin prédéfini, dans un champ de signature du code d'instruction. Une forme de réalisation comprend une écriture d'une valeur de modification de la signature, qui représente une modification de signature, dans le champ de signature. Une forme de réalisation comprend une écriture du code d'instruction qui représente l'instruction actuelle ou une instruction qui précède directement l'instruction actuelle à 20 une adresse qui correspond à la valeur d'adresse prédéfinie. Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSA, au cours de laquelle est réalisée une opération « Activer l'actualisation de la 25 signature réelle » (Instruction Stream Signature Activate). Après la réalisation de l'opération de signature ISSA, la valeur de signature réelle est actualisée en continu conformément au procédé selon l'invention. Une forme de réalisation utilise un registre en tant que registre de mode 30 et fixe sa valeur de telle sorte que la valeur représente l'actualisation en cours de la signature. Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSW, au cours de laquelle est 35 réalisée une opération « Fixer une valeur de modification de la signature » (Instruction Stream Signature Write). Lors de cette opération, le registre de signature réelle prend une valeur de modification de la signature. Dans une forme de réalisation, la valeur de modification de la signature est enregistrée dans un champ de signature du code d'instruction d'une instruction de signature associée à l'opération de signature ISSW. La valeur de signature réelle des instructions qui sont exécutées après l'exécution de cette instruction de signature est indépendante de la valeur de signature réelle des instructions qui ont été exécutées avant l'exécution de cette instruction de signature. Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSI, au cours de laquelle est réalisée une opération « Début d'une séquence de travail protégée » (Instruction Stream Signature Initialisation). L'opération de signature ISSI combine l'opération de signature ISSA avec l'opération de signature ISSW.
Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSC, au cours de laquelle est réalisée une opération « Contrôler la signature » (Instruction Stream Signature Check). L'opération « Contrôler la signature » est une opération de comparaison qui compare entre 25 elles la valeur de signature de consigne et la valeur de signature réelle. Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSD, au cours de laquelle est 30 réalisée une opération « Désactiver l'actualisation de la signature réelle » (Instruction Stream Signature Deactivate). Après la réalisation de l'opération de signature ISSD, la valeur de signature réelle associée aux étapes d'exécution suivantes n'est plus déterminée. Une forme de réalisation 35 utilise un registre en tant que registre de mode et donne au - 12 - registre de mode une valeur qui représente une désactivation du contrôle de signature. Une forme de réalisation du procédé selon l'invention comprend 5 une opération de signature ISSE, au cours de laquelle est réalisée une opération « Fin d'une sous-séquence de travail protégée » (Instruction Stream Signature Exit). L'opération « Fin d'une sous-séquence de travail protégée » combine l'opération de signature ISSC avec l'opération de signature 10 ISSD. Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSU, au cours de laquelle est réalisée une opération « Actualiser la signature réelle avec 15 une valeur prédéfinie » (Instruction Stream Signature Update). Lors de la réalisation de cette opération, le registre de signature réelle est actualisé avec une valeur de modification de la signature. Contrairement à l'opération de signature ISSW, cette actualisation n'est pas absolue, mais relative. Après la 20 réalisation de l'opération de signature ISSU, la valeur de signature réelle dépend ainsi à la fois de la dernière valeur de signature réelle déterminée avant la réalisation de l'opération de signature ISSU et de la valeur de modification de la signature. Dans une forme de réalisation, la valeur de 25 modification de la signature est mise en mémoire dans un champ de signature du code d'instruction qui représente l'instruction de signature associée à l'opération de signature ISSU. 30 Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSCU, au cours de laquelle est réalisée une opération « Contrôler et actualiser la signature » (Instruction Stream Signature Check and Update). L'opération « Contrôler et actualiser la signature » combine - 13 - l'opération de signature ISSC avec l'opération de signature ISSU. Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSUC, au cours de laquelle est réalisée une opération « Actualisation conditionnelle de la signature réelle avec une valeur prédéfinie » (Instruction Stream Signature Update Conditional). Dans cette forme de réalisation, un premier chemin d'exécution est prédéfini, le déroulement de la séquence de travail au niveau d'une ramification pouvant différer de l'indication préalable afin de passer par un deuxième chemin d'exécution. L'indication préalable, par exemple, est telle que le premier chemin d'exécution prédéfini passe par la ramification sans un saut dans une séquence de travail partielle, alors que le deuxième chemin, en s'écartant de l'indication préalable, passe par la séquence de travail partielle à partir de la ramification. Suivant le déroulement de la séquence de travail au niveau de la ramification, il se produit une actualisation du registre de signature réelle si le déroulement correspond à l'indication préalable en tenant compte de la valeur de signature associée à l'instruction de saut et, dans le cas où le déroulement ne correspond pas à l'indication préalable, en tenant compte de la valeur de signature associée à l'instruction de saut ainsi que de la valeur de modification de la signature associée à la séquence de travail partielle. Si la valeur de modification de la signature a été prédéfinie de manière appropriée, la valeur de signature réelle, dans le cas où le déroulement de la séquence de travail ne correspond pas à l'indication préalable, est alors égale, après l'accomplissement de la séquence de travail partielle, à la valeur de signature réelle pour le cas où le déroulement correspond à l'indication préalable. - 14 - Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSWCA, au cours de laquelle est réalisée une opération « Initialiser le registre de signature réelle avec l'adresse actuelle » (Instruction Stream Signature Write Current Address). Lors de la réalisation de l'opération « Initialiser le registre de signature réelle avec l'adresse actuelle », le registre de signature réelle est mis à une valeur qui dépend de l'adresse du/des codes d'instruction qui représente l'instruction de signature associée à l'opération de signature ISSWCA. Dans une forme de réalisation, la valeur de signature réelle est fixée à une valeur, par exemple, qui correspond à la valeur de signature de consigne pour le code d'instruction qui représente l'instruction de signature associée à l'opération de signature ISSWCA.
Une forme de réalisation du procédé selon l'invention comprend une opération de signature ISSWA, au cours de laquelle est réalisée une opération « Initialiser le registre de signature réelle avec l'adresse » (Instruction Stream Signature Write Address). Lors de la réalisation de l'opération « Initialiser le registre de signature réelle avec l'adresse », le registre de signature réelle est mis à une valeur qui dépend d'une adresse. Dans une forme de réalisation, le registre de signature réelle est mis à une valeur, par exemple, qui correspond à la valeur de signature de consigne pour une destination de saut de l'instruction actuelle. Dans une forme de réalisation, le procédé présente au moins une étape d'exécution de signature. La valeur de signature réelle et la valeur de signature de consigne sont uniquement comparées entre elles si l'étape d'exécution actuelle est qualifiée en tant qu'étape d'exécution de signature. Chaque instruction qui contient une étape d'exécution de signature est désignée en tant qu'instruction de signature.35 - 15 - Dans une forme de réalisation du procédé conforme à l'invention, une instruction de saut indirecte comprend au moins une étape d'exécution de signature. Dans une forme de réalisation, c'est notamment chaque instruction de saut indirecte qui comprend une étape d'exécution de signature. Dans une forme de réalisation du procédé conforme à l'invention, les instructions de point de sortie des sous- séquences de travail comprennent au moins une étape 10 d'exécution de signature. Dans une forme de réalisation du procédé conforme à l'invention, il existe des instructions explicites pour réaliser une ou plusieurs opérations de signature. 15 Dans un aspect, l'invention concerne un programme informatique qui est conçu pour mettre en oeuvre le procédé conforme à l'invention. Dans une forme de réalisation, le programme informatique est conçu pour une mise en oeuvre distribuée du 20 procédé conforme à l'invention dans plusieurs processeurs. Dans un aspect, l'invention concerne un procédé (procédé de compilation) destiné à fournir un code d'instruction qui représente une ou plusieurs instructions d'une séquence de 25 travail d'un programme informatique. Un code d'instruction qui représente à chaque fois une instruction comprend au moins une étape d'exécution à exécuter par un processeur. Dans une forme de réalisation, le code d'instruction qui représente à chaque fois une instruction comprend plusieurs étapes d'exécution à 30 exécuter les unes après les autres par le processeur. Le procédé de compilation conforme à l'invention est prévu pour être mis en oeuvre dans au moins un processeur (processeur de compilation). Le procédé de compilation comprend une 35 conversion, notamment une traduction d'un texte de programme - 16 - (code source, texte source, programme source) représentant la séquence de travail dans le code d'instruction qui représente les instructions de la séquence de travail. Le terme compilation désigne une ou plusieurs des mesures suivantes : représentation et/ou traduction du texte de programme ou de portions du texte du programme en langage informatique de haut niveau en un langage cible, notamment un langage machine, fourniture d'un code d'instruction qui représente les instructions du texte de programme traduit, combinaison ou assemblage des portions du texte de programme entre elles et/ou avec une autre portion de programme informatique. Le texte de programme est écrit dans un langage informatique de haut niveau, par exemple, comme le Java ou le C++.
Le procédé de compilation conforme à l'invention comprend en outre une définition d'une étape d'exécution opérationnelle associée à la séquence de travail dans le code d'instruction. Dans une forme de réalisation, le procédé de compilation comprend une affectation d'une valeur de modification de la signature à l'étape d'exécution opérationnelle. Dans une forme de réalisation, l'étape d'insertion de champs de données et/ou d'instructions de programme en rapport avec l'une des étapes du procédé conforme à l'invention s'effectue pendant une compilation d'un programme informatique qui est conçu pour mettre en oeuvre le procédé conforme à l'invention. Dans une forme de réalisation, le procédé de compilation définit implicitement l'étape d'exécution opérationnelle en ce que l'une des instructions de la séquence de travail, par exemple, est définie en tant qu'instruction opérationnelle selon laquelle, en utilisant une règle prédéfinie, l'une des étapes d'exécution du code d'instruction qui représente l'instruction forme l'étape d'exécution opérationnelle. La règle prédéfinie indique, par exemple, que la première étape - 17 - d'exécution du code d'instructions forme l'étape d'exécution opérationnelle, ou alors la règle prédéfinie indique, par exemple, que la dernière étape d'exécution du code d'instruction forme l'étape d'exécution opérationnelle.
Dans un aspect, l'instruction concerne un produit compilateur qui est conçu pour créer un programme informatique conforme à l'invention en compilant un texte de programme qui représente la séquence de travail, afin de fournir le code d'instruction qui représente la séquence de travail. Une forme de réalisation du produit compilateur est conçue pour définir une étape d'exécution opérationnelle associée à la séquence de travail et affecter à l'étape d'exécution opérationnelle une valeur de modification de la signature. Une forme de réalisation du produit compilateur conforme à l'invention est conçue pour déterminer la valeur de modification de la signature en fonction de la valeur de signature de consigne prédéfinie. Dans une forme de réalisation de l'invention, le produit compilateur emploie un algorithme de Reed-Solomon pour déterminer la valeur de modification de la signature. Une forme de réalisation du produit compilateur conforme à l'invention est conçue de telle sorte que la valeur de modification de la signature est déterminée en remontant en sens inverse un chemin de déroulement du programme. Le chemin de déroulement du programme commence ici par exemple avec l'étape d'exécution opérationnelle et se termine par exemple avec le code d'instruction de l'étape d'exécution qui est écrit dans la mémoire à l'adresse qui est associée à l'instruction de signature ou à l'étape d'exécution de signature. Dans une forme de réalisation du produit compilateur, la valeur de modification de la signature est déterminée en partant de l'adresse qui est associée à l'instruction de 35 signature ou à l'étape d'exécution de signature par une - 18 - utilisation inverse d'une fonction de représentation qui est appliquée conformément à une règle prédéfinie lors du déroulement du programme.
Dans un aspect, l'invention concerne un circuit électrique qui présente un registre de signature réelle, lequel est conçu pour accueillir une valeur de signature réelle. Dans une forme de réalisation, le circuit électrique est réalisé au moins partiellement intégré.
Une forme de réalisation du circuit électrique conforme à l'invention présente un registre de signature de consigne qui est conçu pour accueillir une valeur de signature de consigne.
Dans une forme de réalisation, le circuit électrique présente un dispositif de comparaison qui est conçu pour comparer une valeur issue du registre de signature réelle avec une valeur de signature de consigne et pour activer un signal d'égalité si la valeur issue du registre de signature réelle concorde avec la valeur de signature de consigne, et pour activer un signal d'inégalité si la valeur issue du registre de signature réelle ne concorde pas avec la valeur de signature de consigne. Des exemples de réalisation de l'invention seront expliqués 25 ci-après au moyen des dessins. Ceux-ci illustrent : Fig. 1 une représentation schématique d'un exemple d'ordinateur qui est conçu pour mettre en oeuvre un exemple de réalisation du procédé conforme à l'invention ; 30 Fig. 2 une représentation schématique d'une portion de l'exemple de réalisation de la figure 1 ; Fig. 3 une représentation schématique d'un premier exemple 35 de réalisation du procédé conforme à l'invention ; - 19 - Fig. 4 une représentation schématique d'un deuxième exemple de réalisation du procédé conforme à l'invention ; Fig. 5 une représentation schématique d'un troisième exemple de réalisation du procédé conforme à l'invention ; et Fig. 6 une représentation schématique d'une représentation d'une portion d'une séquence de travail par le code d'instruction.
L'exemple de réalisation du dispositif conforme à l'invention présente un ordinateur. L'ordinateur comprend un processeur 2 et une mémoire 4. Le processeur 2 comprend une mémoire cache 14, un décodeur d'instructions 15 qui est conçu pour le décodage du code d'instruction, une mémoire à registre 16, une unité arithmétique logique (ALU) 11 et une unité à microprocesseur et de gestion de mémoire (MPU/MMU) 12. La mémoire cache 14 est reliée par le biais d'un bus de mémoire 7 avec la mémoire 4 pour un accès en écriture et en lecture à la mémoire 4. La mémoire cache 14 est reliée d'un côté avec le décodeur d'instructions 15 au moyen d'un bus d'instructions 21 de telle sorte que le code d'instruction stocké dans la mémoire cache 14 peut être lu par le décodeur d'instructions 15 ; d'un autre côté, la mémoire cache 14 est reliée avec la mémoire de registre 16 au moyen d'un bus de registre 22 pour un accès en écriture et en lecture à la mémoire cache 14.
L'unité arithmétique logique (ALU) 11 est reliée avec la mémoire de registre 16 au moyen d'un premier bus d'ALU 17 pour un accès en écriture et en lecture. De plus, l'unité arithmétique logique (ALU) 11 est reliée avec l'unité à microprocesseur et de gestion de mémoire 12 au moyen d'un - 20 - deuxième bus d'ALU 18 pour un accès en écriture du côté de l'unité arithmétique logique (ALU) 11. De son côté, l'unité à microprocesseur et de gestion de mémoire 12 est reliée avec la mémoire cache 14 au moyen d'un bus d'écriture 19 pour un accès en écriture du côté de l'unité à microprocesseur et de gestion de mémoire 12. Le décodeur d'instructions 15 est relié avec la mémoire de registre 16 au moyen d'un bus de commande 26 de telle sorte que des signaux de commande du décodeur d'instructions 15 peuvent être reçus sur la mémoire de registre 16. Le décodeur d'instructions 15 est relié avec l'unité arithmétique logique 11 au moyen du bus de commande 21 de telle sorte que les signaux de commande du décodeur d'instructions 15 peuvent être reçus par l'unité arithmétique logique. Le décodeur d'instructions 15 (Fig. 2) comprend un dispositif de décodage 151 courant, un dispositif de représentation 152 ainsi qu'un dispositif de signature 153 muni d'un registre de signature réelle 154. Le décodeur d'instructions 15 comprend en outre un circuit fonctionnel 156 ainsi qu'un dispositif de contrôle 155 qui est relié avec le registre de signature 154 et le circuit fonctionnel 156.
Le dispositif de décodage 151 est conçu pour lire le code d'instruction, auquel sont associées les instructions -1-1, i2, ..., in d'une séquence de travail d'un programme informatique (Fig. 6), depuis la mémoire cache 14 (n désigne 30 le nombre d'instructions de la séquence de travail de l'exemple de réalisation). Le dispositif de décodage 151 est en outre conçu pour déterminer, pour chaque instruction, un ou éventuellement plusieurs signaux de commande s1,1, s1,2, S1,m, S2,1, 32,2, . . . S2,m', . . . i Sn,i, Sn,21 . . . Sn,m" (m, In" 35 désignent le nombre de signaux de commande que comprend le - 21 - code d'instruction que représente l'instruction correspondante de la séquence de travail de l'exemple de réalisation) et pour le(s) délivrer au dispositif de représentation 152. Une ou plusieurs étapes d'exécution de l'instruction i1 ou i2 correspondante peuvent être associées aux signaux de commande si,/, S1,2, - - - , 51,m ; S2,1, S2,2, - . - r S2,m' - Le dispositif de représentation 152 est conçu pour lire les signaux de commande s1,1, S1,2, s2,1, 52,2I S2,m'r Sn,1, Sn,2, Sn,mn délivrés par le dispositif de décodage 151 et, pour chaque instruction il, i2r - - - r inr représenter les signaux de commande s/,2, sLm; s24, S2,2, . . . S2,m' ; . . . Sn,lr Sn,2, . . . , sn,m" de l'instruction correspondante conformément à une prescription de représentation CI associée aux instructions sur une valeur de signature d'instruction Ci(i/), Ci(i2), CI (in)associée à l'instruction ix = i1, i2, ..., in. Dans une variante de l'exemple de réalisation (non représentée), le dispositif de représentation 152 est conçu pour représenter les signaux de commande s1,2, r s1,m, S2,1, s2,2, - - - r 52,m' - - - Sn,lr Sn,2, associés aux étapes d'exécution individuelles sur une valeur de signature d'étape d'exécution Cp(i/4), Cr(i/,2), CI,(in,mn) associée à l'étape d'exécution correspondante conformément à une prescription de représentation CI, associée 25 aux étapes d'exécution. Le dispositif de représentation 152 est en outre conçu pour délivrer la valeur de signature d'instruction Ci(i/), Ci(i2), Ci(in) correspondante au dispositif de signature 30 153. Le dispositif de signature 153 comprend le registre de signature réelle 154 et il est conçu, pour chaque valeur de signature d'instruction Ci(ix) et en utilisant une fonction de 35 signature de séquence de travail M(ISSx_i, Ci(ix)), pour - 22 - déterminer une valeur de signature réelle ISSx associée à l'instruction ix et écrire la valeur de signature réelle ISSx dans le registre de signature réelle 154. La fonction de signature de séquence de travail M(ISS,i, Ci(ix)) tient compte de la valeur de signature d'instruction Ci(ix) ainsi que d'une valeur de signature réelle ISSx_i déterminée en dernier que la fonction de signature de séquence de travail m(ISSx-i, Ci(ix)) lit depuis le registre de signature réelle 154.
Le circuit fonctionnel 156 est conçu pour déterminer une valeur de signature de consigne Ca(VAx) conformément à une prescription prédéfinie Ca. Le dispositif de contrôle 155 est conçu pour comparer une valeur issue du registre de signature 154 (valeur de signature réelle) avec une valeur (valeur de signature de consigne) délivrée par le circuit fonctionnel 156 et pour délivrer un signal d'alarme en fonction d'un résultat de la comparaison.
Premier exemple de réalisation du procédé conforme à l'invention Le procédé selon le premier exemple de réalisation se base sur 25 une séquence de travail d'instructions (Fig. 3) d'un exemple de réalisation d'un programme informatique conforme à l'invention, qui est conçu pour se dérouler sur l'ordinateur de l'exemple de réalisation du dispositif conforme à l'invention. La séquence de travail est conçue pour être 30 accomplie dans un processeur 2 et/ou plusieurs processeurs de l'ordinateur en ce que les instructions i1, i2, i6 de la séquence de travail sont accomplies les unes à la suite des autres (« linéairement »). Conformément à l'invention, la séquence de travail est notamment protégée contre le fait que - 23 - des interventions non autorisées dans la séquence de travail puissent être non remarquées et/ou accomplies avec succès. Les instructions sont respectivement représentées par un code 5 qui présente 32 bits, dont 16 bits, par exemple, présentent un code dit d'opération ou Opcode, lequel représente une opération, et les 16 autres bits représentent un argument de l'opération. 10 La séquence de travail représente une première instruction de signature ISSI qui réalise une première opération de signature « Début d'une séquence de travail protégée » (Instruction Stream Signature Initialisation). La première instruction de signature ISSI comprend en outre un argument SIG qui contient 15 une première valeur de modification de la signature missi et une valeur de signal de chemin f, laquelle n'a cependant aucune signification dans le premier exemple de réalisation. La première valeur de modification de la signature missi est représentée par le code de longueur 15 bits et la valeur de 20 signal de chemin f par le code de longueur un bit (Fig. 6). La première instruction de signature ISSI est stockée dans la mémoire 4 à l'adresse VAl. La séquence de travail présente en outre une deuxième 25 instruction de signature ISSCU qui réalise une deuxième opération de signature « Contrôler et actualiser la signature » (Instruction Stream Signature Check and Update). La deuxième instruction de signature ISSCU comprend en outre l'argument SIG qui contient une deuxième valeur de 30 modification de signature misscu ainsi que la valeur de signal de chemin f. La deuxième valeur de modification de la signature misscu est représentée par le code de longueur 15 bits. La deuxième instruction de signature ISSCU est stockée dans la mémoire 4 à l'adresse VA2 pour être exécutée à la suite d'une - 24 - troisième instruction i3 de la séquence de travail et avant une quatrième instruction i4 de la séquence de travail. La séquence de travail présente en outre une troisième instruction de signature ISSE qui réalise une troisième opération de signature « Fin d'une séquence de travail protégée » (Instruction Stream Signature Exit). Contrairement à la première instruction de signature ISSI et à la deuxième instruction de signature ISSCU, la troisième instruction de signature ISSE ne présente pas d'argument SIG. La troisième instruction de signature ISSE est stockée dans la mémoire 4 à l'adresse VA3 pour être exécutée à la suite d'une sixième instruction i6 de la séquence de travail.
Dans le premier exemple de réalisation, les trois opérations de signature sont respectivement réalisées par une seule instruction de signature ISSI, ISSCU ou ISSE. Dans une variante de cet exemple de réalisation, les opérations de signature sont à chaque fois réalisées non pas par une seule instruction, mais par une séquence d'instructions. Un exemple d'une telle variante est la réalisation des opérations de signature, par exemple en écrivant différentes valeurs les unes à la suite des autres dans plusieurs registres et en les lisant depuis ceux-ci.
Le déroulement de la séquence de travail du premier exemple de réalisation sera décrit ci-après. La première opération de signature « Début d'une séquence de travail protégée » est tout d'abord réalisée avec la première instruction de signature ISSI. Lors de cette opération, le dispositif de décodage 151 lit l'argument SIG de la première instruction de signature ISSI et écrit la valeur de modification de la signature missi dans le registre de signature 35 réelle 154. Une variante de l'exemple de réalisation utilise - 25 - en plus un registre prédéfini comme registre de mode et fixe sa valeur de telle sorte que cette valeur représente l'activation et ainsi une utilisation du contrôle de signature. Le processeur 2 accomplit ensuite les trois premières instructions i/, i2, i3 de la séquence de travail. Pour chaque instruction, le dispositif de signature 153 détermine entre temps, en utilisant la fonction de signature de séquence de travail M(ISS,<-1, Ci(ix)), une valeur de signature réelle ISS1, ISS2 ou ISS3 respectivement associée à l'instruction i1, i2 et i3. La fonction de signature de séquence de travail M(ISSx-if Ci(ix)) tient ici à chaque fois compte de la valeur de signature d'instruction CI(ii), CI (i2) ou CI(i3) ainsi que de la valeur de signature réelle ISSIssif ISS1 ou ISS2 à chaque fois déterminée en dernier.
La deuxième opération de signature « Contrôler et actualiser la signature » est ensuite réalisée avec la deuxième instruction de signature ISSCU. La deuxième opération de signature compare la valeur de signature réelle ISSisscu, qui est associée à l'instruction de signature à l'adresse VA2, avec une valeur de signature de consigne Ca(VA2) qui est déterminée en se basant sur l'adresse VA2. Si la valeur de signature réelle ISSisscu et la valeur de signature de consigne Ca(VA2) concordent, le processeur 2 poursuit alors l'accomplissement de la séquence de travail. Si, par contre, la valeur de signature réelle ISSisscu et la valeur de signature de consigne Ca(VA2) ne concordent pas, un signal de défaut est alors activé. Dans une variante de l'exemple de réalisation, le signal de défaut est mis en mémoire dans un registre. Dans une autre variante de l'exemple de réalisation, le processeur 2 interrompt le déroulement de la séquence de travail. La deuxième opération de signature « Contrôler et actualiser la signature » actualise en outre le registre de signature réelle 154 à valeur de signature réelle ISSVA2 en tenant compte - 26 - à la fois de la valeur de signature réelle ISS3 déterminée en dernier avant l'exécution de la deuxième instruction de signature ISSCU et de la valeur de modification de la signature misscti- Si le processeur 2 poursuit le déroulement de la séquence de travail, le processeur 2 accomplit alors les trois instructions suivantes i4, is, i6 de la séquence de travail. Pour chaque instruction, le dispositif de signature 153 détermine entre temps, en utilisant la fonction de signature de séquence de travail m(ISSx_i, Ci(ix)) une valeur de signature réelle ISS4, ISS5 ou ISS6 associée à l'instruction i4, i6 et i6. La fonction de signature de séquence de travail M(ISSx-i, Ci(ix)) tient ici à chaque fois compte de la valeur de signature d'instruction Ci(i4), C1 (i5) ou CI (i6) ainsi que de la valeur de signature réelle ISS\m2, ISS4 ou ISS5 à chaque fois déterminée en dernier. La troisième opération de signature « Fin d'une séquence de 20 travail protégée » compare, au moyen du dispositif de comparaison 155, une valeur de signature réelle ISSIssE, laquelle est associée à l'instruction de signature ISSE à l'adresse VA3 et est écrite dans le registre de signature réelle 154, avec une valeur de signature de consigne Ca(VA3), 25 laquelle est déterminée par le circuit fonctionnel 156 en se basant sur l'adresse VA3. Si la valeur de signature réelle ISSISSE et la valeur de signature de consigne Ca(VA3) concordent, le processeur 2 termine alors le fonctionnement en mode sécurisé conformément au plan. Si, par contre, la valeur de 30 signature réelle ISSIssE: et la valeur de signature de consigne Ca(VA3) ne concordent pas, un signal de défaut est alors activé, lequel est délivré par le dispositif de contrôle 155 sous la forme d'un signal d'alarme, par exemple. Dans une variante, le signal est mis en mémoire dans un registre. Dans une autre - 27 - variante de l'exemple de réalisation, le processeur 2 interrompt le déroulement de la séquence de travail.
Deuxième exemple de réalisation du procédé conforme à l'invention Le procédé selon le deuxième exemple de réalisation se base sur une séquence de travail d'instructions il, i2, i6 (Fig. 4) d'un deuxième exemple de réalisation d'un programme informatique conforme à l'invention qui, comme dans le cas du procédé du premier exemple de réalisation, est conçu pour être exécuté sur l'ordinateur de l'exemple de réalisation du dispositif conforme à l'invention. La séquence de travail i/. i2, i6 est conçue pour être accomplie dans un processeur 2 et/ou dans plusieurs processeurs de l'ordinateur en accomplissant les instructions de travail. i1, i2, i6 de la séquence Le programme informatique du deuxième exemple de réalisation se différencie du programme informatique du premier exemple de réalisation par une instruction de saut conditionnelle JCOND. Du fait de l'instruction de saut conditionnelle JCOND, le programme informatique comprend une première séquence de travail avec les instructions ili 12, i3, i4r i5, i6 et une deuxième séquence de travail avec les instructions il, i2, i5, L'exécution ou non de la deuxième séquence de travail dépend de l'instruction de saut conditionnelle et ainsi d'une condition remplie ou non de l'instruction de saut conditionnelle. Dans le détail, le programme informatique du deuxième exemple de réalisation présente une première instruction de signature ISSI, laquelle correspond à l'identique à la première instruction de signature ISSI du premier exemple de - 28 - réalisation et est prévue pour être exécutée avant une première instruction Le programme informatique présente une deuxième instruction de signature JCOND, laquelle réalise une deuxième opération de signature « Actualisation conditionnelle de la signature réelle avec la valeur prédéfinie » (Instruction Stream Signature Update Conditional, en abrégé ISSUC). La deuxième instruction de signature JCOND comprend en outre un argument SIG qui contient une première valeur de modification de la signature -j mcond et une valeur de signal de chemin f. La deuxième valeur de modification de la signature micond est représentée par le code de longueur 15 bits et la valeur de signal de chemin f par le code de longueur un bit. La valeur de signal de chemin f signale si la valeur de modification de la signature m -j cond est prise en compte dans le cas de l'accomplissement de la première séquence de travail ou dans le cas de l'accomplissement de la deuxième séquence de travail. La deuxième instruction de signature JCOND est stockée dans la mémoire 4 à l'adresse VA2 pour être exécutée à la suite d'une deuxième instruction i2 dans la première séquence de travail et avant une troisième instruction i3 de la première séquence de travail et avant une troisième instruction i5 de la deuxième séquence de travail.
Le programme informatique présente une instruction i5 qui est disposée à la fois comme cinquième instruction dans la première séquence de travail et comme troisième instruction dans la deuxième séquence de travail. L'instruction i5 est prévue pour être exécutée immédiatement à la suite d'une quatrième instruction i4 dans la première séquence de travail. La cinquième instruction i5 est en outre prévue dans la deuxième séquence de travail pour être exécutée immédiatement à la suite de la deuxième instruction de signature JCOND.35 - 29 - Le programme informatique présente en outre une troisième instruction de signature ISSE qui réalise une troisième opération de signature « Fin d'une séquence de travail protégée » (Instruction Stream Signature Exit). Contrairement à la première instruction de signature ISSI et à la deuxième instruction de signature JCOND, la troisième instruction de signature ISSE ne présente par d'argument SIG. La troisième instruction de signature ISSE est stockée dans la mémoire 4 à l'adresse VA4 pour être exécutée à la suite d'une sixième instruction i6 de la première séquence de travail ou d'une quatrième instruction i6 de la deuxième séquence de travail. Le déroulement de la première et de la deuxième séquence de travail du deuxième exemple de réalisation sera décrit ci- après. Tout comme dans le premier exemple de réalisation, la première opération de signature « Début d'une séquence de travail protégée » est tout d'abord réalisée avec la première instruction de signature ISSI. Le processeur 2 accomplit ensuite les deux premières instructions i/, i2 de la séquence de travail. Pour chaque instruction, le dispositif de signature 153 détermine entre temps, en utilisant la fonction de signature de séquence de travail M(ISSx_i, Ci(ix)), une valeur de signature réelle ISSI ou ISS2 respectivement associée à l'instruction il et i2. La fonction de signature de séquence de travail M(ISSx_i, Ci(ix)) tient ici à chaque fois compte de la valeur de signature d'instruction Ci(ii) ou C1(i2) ainsi que de la valeur de signature réelle ISSIssi ou ISSI à chaque fois déterminée en dernier. La deuxième opération de signature « Actualisation conditionnelle de la signature réelle avec la valeur prédéfinie » est ensuite réalisée avec la deuxième instruction 35 de signature JCOND. La deuxième opération de signature - 30 - comprend une lecture de la valeur de modification de la signature m -j cond ainsi que de la valeur de signal de chemin f. Dans le présent deuxième exemple de réalisation, la valeur de signal de chemin f est égale à zéro. La deuxième opération de signature comprend en outre une lecture d'un signal de saut qui n'est pas identifié plus précisément ici, lequel précise si c'est la première séquence de travail ou la deuxième séquence de travail qui doit être accomplie par la suite. Dans le présent deuxième exemple de réalisation, il est considéré que le signal de saut est égal à zéro si aucun saut ne doit être effectué, de sorte que c'est la première séquence de travail qui sera accomplie, et il est considéré que le signal de saut est égal à un si un saut doit être effectué, de sorte que c'est la deuxième séquence de travail qui sera accomplie.
Dans le cas de l'accomplissement de la première séquence de travail, il se produit une actualisation du registre de signature réelle en utilisant la fonction de signature de séquence de travail M(ISS2, C1(jcond)) à une valeur de signature réelle ISSVA2 en tenant compte de la valeur de signature d'instruction Ci(jcond) de la deuxième instruction de signature JCOND. Le processeur 2 accomplit ensuite les instructions i3, i4, i5 25 et i6 de la première séquence de travail. Pour chaque instruction, le dispositif de signature 153 détermine entre temps, en utilisant la fonction de signature de séquence de travail M(ISS'-i, Ci(ix)), une valeur de signature réelle ISS3, ISS4, ISS5 ou ISS6 associée à l'instruction i3, i4, i5 et i6. La 30 fonction de signature de séquence de travail M(ISSx_i, Ci(ix)) tient ici à chaque fois compte de la valeur de signature d'instruction Ci(i3), Ci(i4), CI (i5) ou 0I(216.) ainsi que de la valeur de signature réelle ISSVA2, ISS3, ISS4 ou ISS5 à chaque fois déterminée en dernier. - 31 - Dans le cas de l'accomplissement de la deuxième séquence de travail, il se produit lors de l'exécution de la deuxième instruction de signature JCOND une actualisation du registre de signature réelle 154 à une valeur de signature réelle ISSVA2- Comme dans le cas de l'accomplissement de la première séquence de travail, l'actualisation s'effectue en tenant compte de la valeur de signature réelle ISS2 déterminée en dernier. En plus de cela, dans le cas de l'accomplissement de la deuxième séquence de travail, la deuxième valeur de modification de la signature Mj cond est tout de même aussi prise en compte lors de l'actualisation. Immédiatement à la suite, le processeur 2 accomplit les instructions i5 et i6 de la deuxième séquence de travail. Pour chaque instruction i5, i6, le dispositif de signature 153 détermine entre temps, en utilisant la fonction 15 de signature de séquence de travail M(ISS,c-i, Ci(ix)), une valeur de signature réelle ISS5 ou ISS6 associée à l'instruction i5 et /6. La fonction de signature de séquence de travail M(ISS._1, Ci(ix)) tient ici à chaque fois compte de la valeur de signature d'instruction C1(i5) ou C1(i6) ainsi que de 20 la valeur de signature réelle ISSVA2 ou ISS5 à chaque fois déterminée en dernier. Dans le cas de la première séquence de travail, tout comme dans le cas de la deuxième séquence de travail, la troisième 25 opération de signature « Fin d'une séquence de travail protégée » compare la valeur de signature réelle ISSISSE, laquelle est associée à l'instruction de signature à l'adresse VA4, avec une valeur de signature de consigne Ca(VA4) qui est déterminée sur la base de l'adresse VA4. Si la valeur de 30 signature réelle ISSIssE et la valeur de signature de consigne Ca(VA4) concordent, le processeur 2 termine alors le fonctionnement en mode sécurisé conformément au plan. Si, par contre, la valeur de signature réelle ISSISSE et la valeur de signature de consigne Ca(VA4) ne concordent pas, un signal de 35 défaut est alors activé. Dans une variante, le signal est mis - 32 - en mémoire dans un registre. Dans une autre variante de l'exemple de réalisation, le processeur 2 interrompt le déroulement de la séquence de travail.
Troisième exemple de réalisation du procédé conforme à l'invention Le procédé selon le troisième exemple de réalisation se base sur une séquence de travail d'instructions (Fig. 5) d'un troisième exemple de réalisation d'un programme informatique conforme à l'invention qui, comme dans le cas du procédé du premier exemple de réalisation et comme dans le cas du procédé du deuxième exemple de réalisation, est conçu pour être exécuté sur l'ordinateur de l'exemple de réalisation du dispositif conforme à l'invention. La séquence de travail est conçue pour être accomplie dans un processeur 2 et/ou dans plusieurs processeurs de l'ordinateur en accomplissant les instructions i1, ..., i12, ..., i2, ... de la séquence de travail. Le programme informatique du troisième exemple de réalisation présente un programme principal et un sous-programme. Le sous-programme peut être invoqué par le programme principal. Par 25 conséquent, la séquence de travail présente une portion principale avec les instructions i2, ... et une portion secondaire avec les instructions j11, ..., i12, - Dans le détail, le programme informatique du troisième exemple 30 de réalisation présente une première instruction de signature ISSI, laquelle correspond à l'identique à la première instruction de signature ISSI du premier exemple de réalisation et est prévue pour être exécutée avant une première instruction i1. 35 - 33 - Le programme informatique présente en outre une sixième instruction de signature ISSE, laquelle réalise une sixième opération de signature « Fin d'une séquence de travail protégée » (Instruction Stream Signature Exit). La sixième instruction de signature ISSE est stockée dans la mémoire 4 à l'adresse VAS pour être exécutée à la suite d'une dernière instruction de la portion principale de la séquence de travail. Dans le programme principal de la séquence de travail, le programme informatique présente en outre une deuxième instruction de signature CALL (invocation), laquelle est stockée avant une deuxième instruction i2 de la portion principale de la séquence de travail à l'adresse VA6.
Immédiatement à la suite de l'instruction CALL, la séquence de travail présente une troisième instruction de signature ISSU (actualiser le registre de séquence de travail avec une valeur prédéfinie). Dans le troisième exemple de réalisation, la troisième instruction de signature ISSU marque un point de bifurcation dans le sous-programme du programme informatique. La troisième instruction de signature ISSU est suivie par l'instruction i11 de la portion secondaire de la séquence de travail.
Le programme informatique présente en outre une quatrième instruction de signature ISSC (contrôler la signature), laquelle est stockée avant une instruction i/2 supplémentaire du sous-programme de la séquence de travail.
Le programme informatique présente une cinquième instruction de signature ISSret (restitution de la signature), laquelle est prévue pour être exécutée à la suite d'une dernière instruction du sous-programme de la séquence de travail. Dans le déroulement de la séquence de travail, l'instruction ISSret est suivie par la deuxième instruction i2 à l'adresse VA6. - 34 - Le déroulement du programme informatique du troisième exemple de réalisation sera décrit ci-après. Tout d'abord, comme dans le premier exemple de réalisation, c'est la première instruction de signature ISSI qui est exécutée et le processeur 2 accomplit ensuite les premières instructions il, ... de la séquence de travail, et le dispositif de signature 153 détermine entre temps des valeurs de signature associées ISS1, La deuxième instruction de signature CALL est ensuite exécutée. L'opération d'invocation comprend une mise en mémoire de l'adresse VA6 de l'instruction de signature en tant qu'adresse de retour dans un registre de lien d'adresses de la mémoire de registre 16. L'opération d'invocation comprend en outre un calcul de la valeur de signature ISScALL de l'opération d'invocation. La valeur ISScALL du registre de signature réelle est ensuite écrite dans un registre de lien de signatures. Une opération « Initialiser le registre de signature réelle avec l'adresse » (Instruction Stream Signature Write Address, en abrégé : ISSWA) est ensuite réalisée, c'est-à-dire qu'une valeur de signature Ca(VA3) est déterminée en se basant sur l'adresse VA3 puis écrite dans le registre de signature réelle. Une bifurcation dans le sous-programme à l'adresse VA3 de la troisième instruction de signature ISSU a ensuite lieu. Le déroulement du sous-programme comprend l'extraction de la valeur de modification de la signature misse du champ de signature de la troisième instruction de signature ISSU ainsi qu'une lecture de la valeur de signature réelle ISSissu- Une actualisation du registre de signature réelle à une valeur de signature réelle ISSvA3 est ensuite effectuée en tenant compte de la valeur de modification de la signature missu- Les instructions i11, ... du sous-programme sont ensuite accomplies 35 en actualisant le registre de signature réelle. Un contrôle - 35 - peut être effectué ici, comme celui qui est prévu avec la quatrième instruction de signature à l'adresse VA4, par exemple. La cinquième instruction de signature ISSret (restitution de la signature) à l'adresse VA5 comprend une actualisation du registre de signature réelle 154. Une comparaison est ensuite effectuée entre la valeur de signature réelle ISSissret actualisée et la valeur de signature de consigne ca(VA5) pour l'adresse VA5 de la cinquième instruction de signature ISSret.
Si la valeur de signature réelle ISSissret et la valeur de signature de consigne ca(VA5) ne concordent pas, un signal de défaut est alors activé. Si la valeur de signature réelle ISSissret et la valeur de signature de consigne ca(VA5) concordent, la valeur ISScALL du registre de lien de signatures 15 dans la mémoire de registre 16 est alors écrite dans le registre de signature réelle 154, l'adresse VA6 dans le registre de lien d'adresses est lue et le retour dans le programme principal au niveau de la deuxième instruction i2 à l'adresse VA6 est accompli.
20 Avant la deuxième instruction i2 à l'adresse VA6, le processeur 2 poursuit le déroulement de la séquence de travail et accomplit les instructions suivantes de la séquence de travail en déterminant la valeur de signature à chaque fois associée.
25 Pour terminer, le contrôle final de la signature est réalisé avec la sixième instruction de signature ISSE de la manière qui a déjà été décrite du point de vue du premier et du deuxième exemples de réalisation.

Claims (27)

  1. REVENDICATIONS1. Procédé pour accomplir une séquence de travail d'instructions d'un programme dans un processeur (2), chaque instruction étant représentée par un code d'instruction associé, lequel comprend une étape d'exécution à accomplir par le processeur (2) ou plusieurs étapes d'exécution à accomplir les unes après les autres par le processeur (il ... in), comprenant : - détermination d'une valeur de signature réelle (ISS'), laquelle est associée à une étape d'exécution actuelle (ix) des étapes d'exécution du code d'instruction qui représente l'instruction de la séquence de travail ; - détermination, en fonction d'une valeur d'adresse (VA'), d'une valeur de signature de consigne (Ca(VA')) qui est associée à l'étape d'exécution actuelle (ix) ; et - si la valeur de signature réelle (ISS') ne concorde pas avec la valeur de signature de consigne (Ca(VAx)), omission d'au moins une étape d'exécution en instance d'exécution directe et/ou en instance d'exécution indirecte.
  2. 2. Procédé selon la revendication précédente, caractérisé par : - uniquement si la valeur de signature réelle (ISS') concorde avec la valeur de signature de consigne (Ca(VAx)), exécution de l'étape d'exécution qui se trouve en instance d'exécution directe.
  3. 3. Procédé selon l'une des revendications précédentes, caractérisé en ce que la valeur d'adresse (VAx) correspond à une adresse de l'étape d'exécution actuelle et la- 37 - détermination de la valeur de signature de consigne comprend : définition de l'adresse de l'étape d'exécution actuelle (ix).
  4. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que la détermination de la valeur de signature réelle (ISSx) est effectuée en fonction d'une valeur de modification de la signature (missi) -
  5. 5. Procédé selon l'une des revendications précédentes, caractérisé par : dans le cas où la valeur de signature réelle (ISSx) ne concorde pas avec la valeur de signature de consigne (Ca(VAx)), activation d'un signal selon lequel l'accomplissement de la séquence de travail doit être interrompu, ou d'un signal selon lequel l'accomplissement de la séquence de travail doit être arrêté.
  6. 6. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'une seule valeur de signature de consigne (Ca(VA.)) seulement est déterminée pour chaque instruction, et ce indépendamment d'un nombre (n) d'étapes d'exécution (il ... ix ... in) du code d'instruction qui représente l'instruction.
  7. 7. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'une seule comparaison de la valeur de signature réelle (ISSx) avec la valeur de signature de consigne (Ca(VA.)) est au maximum effectuée pour chaque instruction, et ce indépendamment du nombre (n) d'étapes d'exécution (i/ ix ... in) du code d'instruction qui représente l'instruction.35- 38 -
  8. 8. Procédé selon l'un des revendications précédentes, caractérisé par : contrôle si l'instruction actuelle (ISSC) et/ou l'étape d'exécution actuelle est qualifiée en tant qu'instruction de signature ou en tant qu'étape d'exécution de signature, et si l'instruction actuelle (ISSC) et/ou l'étape d'exécution actuelle est qualifiée, réalisation de la comparaison de la valeur de signature réelle (ISSissc) avec la valeur de signature de consigne (Ca (VA4) ) -
  9. 9. Procédé selon l'une des revendications précédentes, caractérisé par : lecture du code d'instruction qui représente l'instruction actuelle depuis une mémoire (4) à une adresse identifiée au moyen de la valeur d'adresse.
  10. 10. Procédé selon l'une des revendications précédentes, caractérisé en ce que la valeur de signature réelle (ISSx) est déterminée par une représentation au moyen d'une fonction de signature de séquence de travail (M).
  11. 11. Procédé selon la revendication précédente, caractérisé en ce que la représentation (M) tient compte d'une valeur de signature réelle (ISS,_].) déjà déterminée.
  12. 12. Procédé selon l'une des revendications précédentes, selon lequel la séquence de travail présente une sous-séquence de travail (ISSU ... il/ ... ISSC ... i12 ...), caractérisé par : lecture de la valeur de signature réelle (ISScALL) depuis un registre de signature réelle ;- 39 - - écriture de la valeur de signature réelle (ISScALL) à une première adresse de mémoire de valeur de signature, - exécution de la sous-séquence de travail (ISSU ... ... ISSC ... i/2 ...), et lecture de la valeur (/SScALL) à la première adresse de mémoire de valeur de signature et écriture de la valeur lue dans le registre de signature réelle.
  13. 13. Procédé selon l'une des revendications précédentes, caractérisé en ce qu'une valeur de modification de la signature de sous-séquence de travail (missu) est associée à la sous-séquence de travail (ISSU ... i// ... ISSC ... i/2 ...) et la détermination d'une première valeur de signature réelle (ISSIssu) de la sous-séquence de travail (ISSU ... i// ISSC ... i/2 ...) est effectuée uniquement en fonction de la valeur de modification de la signature de sous-séquence de travail (missu) -
  14. 14. Procédé selon l'une des revendications précédentes, caractérisé par : - modification d'un signal de mode qui signale un premier mode de déroulement de telle sorte que le signal de mode signale un deuxième mode de déroulement ; - exécution de la sous-séquence de travail (ISSU ... i// ISSC ... i/2 ...) ; et - modification du signal de mode qui signale le deuxième mode de déroulement de telle sorte que le signal de mode signale le premier mode de déroulement.
  15. 15. Procédé selon la revendication précédente, comprenant : - écriture de la valeur de signature réelle (ISS,) à une deuxième adresse de mémoire de valeur de- 40 - signature lorsque le signal de mode qui signale le premier mode de déroulement est modifié de telle sorte que le signal de mode signale le deuxième mode de déroulement ; et - lecture de la valeur à la deuxième adresse de mémoire de valeur de signature et écriture de la valeur lue dans le registre de signature réelle lorsque le signal de mode qui signale le deuxième mode de déroulement est modifié de telle sorte que le signal de mode signale le premier mode de déroulement.
  16. 16. Procédé selon la revendication 14 ou 15, caractérisé en ce que la détermination d'une valeur de signature réelle (ISSx) s'effectue soit uniquement lorsque le premier mode de déroulement est signalé, soit uniquement lorsque le deuxième mode de déroulement est signalé.
  17. 17. Programme informatique, conçu pour mettre en oeuvre un procédé selon l'une des revendications précédentes.
  18. 18. Procédé de fourniture d'un code d'instruction, lequel représente une ou plusieurs instructions d'une séquence de travail d'un programme informatique qui est prévu pour être exécuté dans une processeur, le code d'instruction qui représente à chaque fois une instruction comprenant une étape d'exécution à exécuter par le processeur ou plusieurs étapes d'exécution à exécuter les unes après les autres par le processeur, comprenant : - traduction d'un texte de programme représentant la séquence de travail dans le code d'instruction ; - définition d'une étape d'exécution opérationnelle (ISSI) associée à la séquence de travail dans le code d'instruction ;- 41 - - affectation d'une valeur de modification de la signature (missi) à l'étape d'exécution opérationnelle (ISSI).
  19. 19 Procédé selon l'une des revendications précédentes, caractérisé par : - écriture d'une valeur de signal de chemin (f), qui représente un chemin prédéfini, dans un champ de signature du code d'instruction ; et - écriture d'une valeur de modification de la signature (mkoWa), qui représente une modification de signature, dans le champ de signature.
  20. 20. Procédé selon la revendication 18 ou 19, caractérisé par : - ajout d'un code d'instruction, lequel représente une instruction de signature (ISSI, ISSCU, ISSE ; JCOND ; CALL, ISSU, ISSC, ISSret), selon lequel la concordance entre la valeur de signature réelle (ISSx) et la valeur de signature de consigne (Ca(VA1), Ca (VA2) , Ca(VA3) ; Ca(VA2) ; Ca ( VA2) , Ca ( VA3) , Ca (VA4) Ca(VA5)) est contrôlée.
  21. 21. Produit compilateur, conçu pour créer un programme informatique selon la revendication 17 en compilant un texte de programme qui représente la séquence de travail, afin de fournir le code d'instruction qui représente la séquence de travail, et en plus de cela conçu pour définir une étape d'exécution opérationnelle associée à la séquence de travail et affecter à l'étape d'exécution opérationnelle une valeur de modification de la signature.
  22. 22. Produit compilateur selon la revendication précédente, caractérisé en ce que le produit compilateur est conçu pour déterminer la valeur de modification de la signature- 42 (misse) en fonction de la valeur de signature de consigne (Ca(VA3)) prédéfinie.
  23. 23. Produit compilateur selon la revendication précédente, caractérisé en ce que le produit compilateur est conçu pour déterminer la valeur de modification de la signature (misse) en remontant en sens inverse un chemin de déroulement du programme, le chemin de déroulement du programme commençant avec l'étape d'exécution opérationnelle et se terminant avec l'étape d'exécution qui est écrite dans la mémoire à l'adresse qui est associée à l'instruction de signature ou à l'étape d'exécution de signature.
  24. 24. Produit compilateur selon la revendication précédente, caractérisé en ce que la valeur de modification de la signature est déterminée en partant de l'adresse qui est associée à l'instruction de signature ou à l'étape d'exécution de signature par une utilisation inverse d'une fonction de représentation qui est appliquée conformément à une règle prédéfinie lors du déroulement du programme.
  25. 25. Circuit, caractérisé par un registre de signature réelle qui est conçu pour accueillir une valeur de signature réelle (ISSx) d'un dispositif de signature (153), un registre de signature de consigne qui est conçu pour accueillir une valeur de signature de consigne (Ca(VAx)), et un dispositif de comparaison (154) muni d'une section de délivrance de signal (155), qui est conçu pour la signalisation du résultat d'une comparaison de la valeur de signature réelle (ISS>,) dans le registre de signature réelle avec la valeur de signature de consigne (Ca(VAx)) dans le registre de signature de consigne sur la section de délivrance de signal (155).- 43 -
  26. 26. Circuit selon la revendication précédente, caractérisé en ce que le registre de signature de consigne est conçu de telle sorte qu'une valeur (Ca(VAx)) dans le registre de signature de consigne est dérivée d'une adresse (VA,) à laquelle est stockée une instruction (ix) selon laquelle la valeur de signature réelle (ISSx) est comparée avec la valeur de signature de consigne (Ca(VAx)) . Circuit selon l'une des revendications précédentes, caractérisé en ce que le registre de signature de consigne est réalisé sous la forme d'un registre de valeur d'adresse qui présente la valeur d'adresse (VAx) de l'instruction. Circuit, notamment selon l'une des revendications de circuit précédentes, conçu pour mettre en oeuvre le procédé selon l'une des revendications 1 à 16. Circuit selon l'une des revendications de circuit précédentes, caractérisé en ce que le circuit est réalisé de manière à pouvoir être désactivé de telle sorte que le registre de signature réelle n'accepte aucune valeur de la part du dispositif de signature lorsque le circuit est désactivé.
  27. 27. 15 28. 29. 20
FR1301146A 2012-05-22 2013-05-17 Procede et dispositif de traitement de donnees Expired - Fee Related FR2991071B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1401843A FR3008504A1 (fr) 2012-05-22 2014-08-12 Procede de fourniture d'un code d'instruction et circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012010102A DE102012010102A1 (de) 2012-05-22 2012-05-22 Verfahren und Vorrichtung zur Datenverarbeitung

Publications (2)

Publication Number Publication Date
FR2991071A1 true FR2991071A1 (fr) 2013-11-29
FR2991071B1 FR2991071B1 (fr) 2016-05-20

Family

ID=49546796

Family Applications (2)

Application Number Title Priority Date Filing Date
FR1301146A Expired - Fee Related FR2991071B1 (fr) 2012-05-22 2013-05-17 Procede et dispositif de traitement de donnees
FR1401843A Withdrawn FR3008504A1 (fr) 2012-05-22 2014-08-12 Procede de fourniture d'un code d'instruction et circuit

Family Applications After (1)

Application Number Title Priority Date Filing Date
FR1401843A Withdrawn FR3008504A1 (fr) 2012-05-22 2014-08-12 Procede de fourniture d'un code d'instruction et circuit

Country Status (4)

Country Link
US (1) US9003198B2 (fr)
CN (2) CN103425459B (fr)
DE (1) DE102012010102A1 (fr)
FR (2) FR2991071B1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11029997B2 (en) * 2013-07-15 2021-06-08 Texas Instruments Incorporated Entering protected pipeline mode without annulling pending instructions
DE102015203319A1 (de) * 2015-02-24 2016-08-25 Infineon Technologies Ag Schaltungsanordnung und Verfahren für Befehlsstromschutz

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19834486A1 (de) 1998-07-31 2000-02-03 Philips Corp Intellectual Pty Verfahren und Datenverarbeitungsanordnung zum gesicherten Ausführen von Befehlen
JP2002099312A (ja) * 2000-09-22 2002-04-05 Mitsubishi Electric Corp プログラマブルコントローラおよび制御プログラム開発支援装置
FR2849226B1 (fr) * 2002-12-20 2005-12-02 Oberthur Card Syst Sa Procede et dispositif de securisation de l'execution d'un programme informatique.
US20050028036A1 (en) * 2003-07-30 2005-02-03 Kohsaku Shibata Program debug apparatus, program debug method and program
JP4795812B2 (ja) * 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
GB2475653B (en) * 2007-03-12 2011-07-13 Advanced Risc Mach Ltd Select and insert instructions within data processing systems
CN101339519B (zh) * 2008-08-13 2011-09-14 哈尔滨工程大学 面向嵌入式微处理器的软硬结合控制流检测方法
GB2474521B (en) * 2009-10-19 2014-10-15 Ublox Ag Program flow control
GB2484489A (en) * 2010-10-12 2012-04-18 Advanced Risc Mach Ltd Instruction decoder using an instruction set identifier to determine the decode rules to use.
US20130055033A1 (en) * 2011-08-22 2013-02-28 International Business Machines Corporation Hardware-assisted program trace collection with selectable call-signature capture
JP5840014B2 (ja) * 2012-02-01 2016-01-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンパイル方法、プログラムおよび情報処理装置

Also Published As

Publication number Publication date
CN103425459B (zh) 2017-03-01
FR2991071B1 (fr) 2016-05-20
DE102012010102A1 (de) 2013-11-28
CN105117201A (zh) 2015-12-02
CN105117201B (zh) 2018-01-16
CN103425459A (zh) 2013-12-04
US9003198B2 (en) 2015-04-07
US20130318327A1 (en) 2013-11-28
FR3008504A1 (fr) 2015-01-16

Similar Documents

Publication Publication Date Title
US10223528B2 (en) Technologies for deterministic code flow integrity protection
FR2790844A1 (fr) Procede et dispositif de surveillance du deroulement d&#39;un programme, dispositif programme permettant la surveillance de son programme
FR2982385A1 (fr) Operation de compilation repartie avec prise en charge d&#39;une signature d&#39;instruction
US10395033B2 (en) System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks
US20120089818A1 (en) Decoding instructions from multiple instructions sets
US20160171213A1 (en) Apparatus and method for controlling instruction execution to prevent illegal accesses to a computer
US20030188146A1 (en) Method of ordered execution of firmware modules in a pre-memory execution environment
EP3314420B1 (fr) Procédé d&#39;exécution d&#39;un programme d&#39;ordinateur comportant une fonction paramétrée
FR2841015A1 (fr) Controle d&#39;execution d&#39;un programme
FR2991071A1 (fr) Procede et dispositif de traitement de donnees
CN112596792B (zh) 分支预测方法、装置、介质及设备
EP2947563B1 (fr) Processeur à instructions conditionnelles
US20160196156A1 (en) Simulation apparatus, simulation method, and computer product
JP6850888B2 (ja) 分岐予測のために分岐履歴を判別する方法及びデバイス
US20190361810A1 (en) Prefetching data based on register-activity patterns
FR2977342A1 (fr) Verification d&#39;integrite d&#39;un programme execute par un circuit electronique
EP2836913B1 (fr) Dispositif pour générer une signature à l&#39;exécution d&#39;une tâche de programme et méthode de comparaison de flots d&#39;exécution
EP3284206B1 (fr) Procédé de sécurisation de l&#39; exécution d&#39;un programme
FR2674044A1 (fr) Agencement pour predire une adresse d&#39;instruction resultant d&#39;un branchement dans un systeme de traitement numerique des donnees.
US8484731B2 (en) Method for detecting an attack by fault injection into a memory device, and corresponding detection system
US11966619B2 (en) Background processing during remote memory access
EP3295297A1 (fr) Procede de securisation d&#39;une comparaison de donnees lors de l&#39;execution d&#39;un programme
EP1596282A2 (fr) Dispositif et procédé de gestion d&#39;un jeu d&#39;instructions d&#39;un microprocesseur
EP3244300B1 (fr) Procédé et outil de génération d&#39;un code programme configuré pour effectuer une vérification du flot de contrôle d&#39;un autre code programme contenant des instructions de branchements indirects
FR2645664A1 (fr) Microprocesseur a verification selectionnable de l&#39;alignement des references memoire

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLSC Publication of the preliminary search report

Effective date: 20151106

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

ST Notification of lapse

Effective date: 20220105