WO2021043829A1 - Systeme electronique - Google Patents

Systeme electronique Download PDF

Info

Publication number
WO2021043829A1
WO2021043829A1 PCT/EP2020/074475 EP2020074475W WO2021043829A1 WO 2021043829 A1 WO2021043829 A1 WO 2021043829A1 EP 2020074475 W EP2020074475 W EP 2020074475W WO 2021043829 A1 WO2021043829 A1 WO 2021043829A1
Authority
WO
WIPO (PCT)
Prior art keywords
instructions
circuit
memory
controller
operands
Prior art date
Application number
PCT/EP2020/074475
Other languages
English (en)
Inventor
Frederic Ruelle
Original Assignee
STMicroelectronics (Grand Ouest) SAS
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 STMicroelectronics (Grand Ouest) SAS filed Critical STMicroelectronics (Grand Ouest) SAS
Priority to EP20761870.3A priority Critical patent/EP4026031A1/fr
Priority to US17/640,680 priority patent/US20220327193A1/en
Priority to CN202080062291.0A priority patent/CN114341851A/zh
Publication of WO2021043829A1 publication Critical patent/WO2021043829A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Definitions

  • the present description relates generally to electronic systems and more particularly to systems comprising a memory.
  • the security of electronic systems is all the more important as the fields of connected objects, for example home automation, develop. In particular, it is important to be able to ensure that the data, that is to say the start-up instructions and the associated operands, contained in memories and executed during the initialization of the system correspond to the desired instructions and not instructions modified by hackers.
  • One embodiment overcomes all or part of the drawbacks of known electronic systems.
  • One embodiment provides a method for authenticating instructions and operands in an electronic system comprising a controller, the method comprising: extracting the instructions and operands by a first circuit of the controller from at least a first internal memory of the controller via a matrix bus of the controller; the taking from the matrix bus, by a second circuit internal to the controller, of the instructions and operands during their transmission to the first circuit; and generating a word representative of the instructions and operands.
  • Another embodiment provides an electronic system comprising a controller, the controller comprising: a first circuit configured to extract instructions and operands from at least a first memory internal to the controller via a matrix bus of the controller , and a second circuit configured to take, from the matrix bus, the instructions and the operands when they are transmitted to the first circuit and to generate a word representative of the instructions and operands.
  • the first circuit is configured to execute the instructions, the instructions being instructions for starting the system.
  • the second circuit is configured to compare the word representative of the instructions with a reference word.
  • the second circuit is configured to determine that the instructions are authentic when the word representative of the instructions is identical to the reference word and that the instructions are not authentic when the word representative of the instructions is not not identical to the reference word.
  • the system is configured to be restarted or turned off if the second circuit determines that the instructions are not authentic.
  • the second circuit comprises a second memory in which the reference word is contained from an initial programming of the system.
  • the second circuit determines the start of said instructions by comparing the addresses with a start address of the instructions contained in the second memory.
  • the end of the data is determined by a predetermined duration after the start of the instructions or by comparing the addresses with an end address of the instructions contained in the second memory.
  • the first memory is a non-volatile memory internal to the controller, the controller comprising a third memory, the first memory comprising the instructions and the third memory comprising the operands.
  • the matrix bus comprises buses forming rows and columns, each intersection between a row and a column being configured to allow or not the transfer of information between the row and the column.
  • the first circuit is connected to the matrix by a first input / output on which the instructions are transmitted, and at least a second input / output on which the operands are transmitted.
  • the first memory is connected to the first and second inputs / outputs of the first circuit by the matrix bus and the third memory is connected to the third input / output of the first circuit by the matrix bus.
  • the operands include initialization parameters of at least one element among: a memory protection unit, a "watchdog" type circuit, or memory protection circuits. non-volatile.
  • FIG. 1 represents an embodiment of an electronic system
  • FIG. 2 represents an embodiment of a method for authenticating instructions and data.
  • FIG. 1 represents an embodiment of an electronic system 100.
  • the system 100 is a system of which it is sought to protect instructions, for example start-up instructions, for example against modifications.
  • the system 100 corresponds for example to a connected object, for example in the field of home automation.
  • the embodiments described herein are particularly applicable to types of systems that were not ordinarily connected to a network. More specifically, Figure 1 shows a controller of the system 100.
  • the system 100 comprises a circuit 102, preferably a processor (mR).
  • the system includes at least one memory 104 (MEM1).
  • Memory 104 is internal memory of the controller.
  • the memory 104 is a rewritable non-volatile memory, for example a flash memory.
  • the system also comprises at least one memory 108 (MEM2), for example volatile, for example a RAM memory.
  • Memory 108 is also an internal memory of the controller.
  • memories 104 and 108 are separate memories.
  • the various elements of the system, in particular the memories 104 and 108 and the processor 102, are connected to each other by a bus matrix 106, or interconnection matrix bus, for example an advanced high performance bus ( AHB - Advanced High-performance Bus).
  • the matrix bus 106 is internal to the controller.
  • the matrix bus 106 makes it possible to connect the circuits of the "master” type to the circuits of the "slave” type.
  • Each element of the device is linked to at least one row or to at least one column of the matrix.
  • the elements of the “master” type are connected, preferably connected, to the columns and the elements of the “slave” type are connected, preferably connected, to the rows.
  • the rows and columns of the matrix bus are information transmission elements, for example buses.
  • the processor 102 is connected, preferably connected, to three columns of the matrix 106: a column on which are transmitted instructions, and at least one column on which are transmitted operands.
  • the processor is connected, preferably connected, to two columns on which operands are transmitted.
  • the memory 104 is for example connected, preferably connected, to two lines, for example a line on which are transmitted instructions and a line on which are transmitted operands.
  • the memory 108 is for example connected, preferably connected, to a line of the matrix 106.
  • the system 100 can further include other circuits connected to the matrix 106, for example one or more circuits for direct access to the memory 120 (DMA1, DMA2) and circuits performing other functions, represented in Figure 1 by blocks 122 (FCT1, FCT2).
  • DMA is for example connected, preferably connected, to a column of matrix 106.
  • circuit 122 is for example connected, preferably connected, to a row of matrix 106.
  • Each row intersects all the columns and, conversely, each column intersects all the rows. However, not all crossings correspond to an electrical connection. Each crossing corresponds to a possible electrical connection. It is possible to choose which row is electrically connected to which column. Preferably, this is determined during the manufacture of the device. Preferably, the connections between rows and columns are not modified after manufacture of the device. The links are thus fixed and immutable during the operation of the device.
  • a column 102a connected, preferably connected, to an input / output of the processor 102, is connected to a line 104a connected, preferably connected, to an input / output of the memory 104 and to a line 108a connected, preferably connected, to an input / output of the memory 108.
  • These links are represented, in FIG. 1, by points at the intersections of the lines and the columns.
  • processor 102 is linked, preferably connected, to memory 104 through column 102a and line 104a and is linked, preferably connected, to memory 108 through column 102a and line 108a.
  • the crosses: between the column 102a and a line 104b connected, preferably connected, to another input / output of the memory 104; between column 102a and a line 122a connected, preferably connected, to an input / output of block FCT1; and between the column 102a and a line 122b connected, preferably connected, to an input / output of the block FCT2, are not configured to allow an electrical connection.
  • the processor 102 it is not possible for the processor 102 to exchange information with the blocks FCT1 and FCT2 via the line 102a.
  • a column 102b connected, preferably connected, to an input / output of the processor 102, is connected, preferably connected, to the line 104b and to the line 108a , but is not connected to lines 104a, 122a and 122b.
  • the processor 102 is connected, preferably connected, to the memory 104 by the column 102a and the line 104a, on which the instructions are transmitted and by the column 102b and the line 104b, on which are transmitted operands.
  • Column 102c connected to an input / output of processor 102, is, in the example of FIG. 1, connected, preferably connected, to line 108a, 122a and 122b.
  • Column 102c is a column on which the operands are transmitted.
  • Column 102c is not, in the example of FIG. 1, connected to lines 104a and 104b.
  • the processor 102 is not, preferably, connected to the memory 104 by the column 102c on which the operands are transmitted.
  • the processor 102 is however connected to the memory 108 by the column 102c and the line 108a, so as to be able to transmit operands.
  • the processor 102 can therefore receive instructions or operands located in the memory 104 and receive operands located in the memory 108.
  • the DMA 120 are for example connected, preferably connected, to lines 104a, 104b, 108a, 122a and 122b respectively by columns 120a and 120b.
  • the memories 104 and 108 contain the start-up data, that is to say the start-up instructions ("boot”), or initialization, of the system, contained in preferably in memory 104 and operands used during startup, preferably contained in memory 108.
  • boot start-up instructions
  • operands used during startup preferably contained in memory 108.
  • start-up instructions is meant the instructions themselves.
  • the start instructions are executed by the circuit 102, and are transmitted by the line 104a of the matrix 106.
  • the start instructions are preferably among the first instructions executed when the system is put into operation.
  • the operands include for example the initialization parameters of at least one element among: a memory protection unit, which authorizes or not the access of the different parts of the memories to the different peripherals and to the different programs, a circuit of the type "watchdog", and non-volatile memory protection circuits.
  • watchdog type circuit is meant a circuit comprising a timer, the timer being restarted regularly before reaching its final value in normal situation. If the device faces an attack preventing the timer from being restarted, then it reaches its final value and an error is detected.
  • the start-up data that is to say the start-up instructions and the operands, are written to the memories during the initial programming of the system.
  • the start-up data is not intended to be changed other than a complete reprogramming of the system, which would involve the total erasure of memories 104 and 108. This reprogramming would then be considered as the new initial programming of the system.
  • modifications to the start-up instructions involve a hacking attempt, for example seeking to avoid the security systems of the system 100.
  • the system 100 comprises a circuit 110 for authenticating the instructions, preferably comprising an internal memory 112 and various logic circuits 114.
  • the circuit 110, the processor 102, the matrix bus 106 and the memories 104 and 108 are part of the same microcontroller.
  • the various logic circuits 114 include a circuit 114-2 (MONITOR) configured to monitor the matrix bus 106. More specifically, the circuit 114-2 is configured to monitor all the links of the matrix bus. In particular, the logic circuit 114-2 monitors the passage of the addresses of the instructions transmitted by the memory 104 over the column 102b and the line 104b.
  • Logic circuits 114 include circuit 114-4
  • ACCUMULATE configured to take data from the matrix bus links and to obtain a word representative (DIGEST) of the start-up data
  • a circuit 114-6 configured to compare the representative word with a reference word (REFERENCE) ).
  • the internal memory 112 preferably corresponding to registers, comprises data relating to the authentication of the start-up instructions.
  • the registers of the memory 112 include the reference word REFERENCE and the representative word DIGEST.
  • the registers of the memory 112 may include elements characterizing the start instructions, for example the address of the first instruction (0START) and the address of the last instruction (@END).
  • a first datum preferably a first instruction, for example identified by its 0START address
  • the last datum preferably a last instruction to be authenticated, spotted by his address @END.
  • only data stored by memories 104 and 106 is provided between the first and the last data.
  • information, for example data, transmitted on other rows or columns may be transmitted between the first and last data and is also used for the generation of the representative word.
  • the internal memory then preferably contains the start and end addresses of each of said sequences used to generate the representative word.
  • the data used to generate the representative word are such that, between the first and the last data, the instructions and the operands transmitted to the processor 102 are always exactly the same, with reference in the same order.
  • the generation of the representative word is always done with instructions and at least one operand.
  • the circuit 110 comprises: wirings (114-2) making it possible to monitor the information transmitted on all the rows and columns of the matrix bus;
  • Logic elements (114-2) making it possible to determine the start and end of the data to be authenticated, for example logic elements making it possible to compare the addresses transmitted on the row and column 104a and 102a;
  • FIG. 2 represents an embodiment of an instruction authentication method, performed for example by the system 100 of FIG. 1.
  • the method comprises a first step 200 during which the processor 102 sends a request to the memory 104 to extract (EXTRACT) the start-up instructions. This step is performed when starting the system 100.
  • the start-up instructions are then transmitted to the circuit 102 via the matrix bus 106, in order to be executed by the processor 102.
  • Circuit 110 can be configured to determine the start of the start-up instructions by monitoring the data bus and locating the first instruction itself.
  • circuit 110 can be configured to determine the start of the start-up instructions without comparing the addresses of the instructions transmitted to a preprogrammed address. For example, circuit 110 can consider that the first instruction transmitted by memory 104 is the first start instruction.
  • the circuit 110 can be configured to monitor, for a preprogrammed period, the bus 106 so as to locate the first start instruction. If the first start instruction has not been spotted within this time, circuit 110 determines that there is a problem with the start instructions and that the safety of the system may be compromised.
  • the circuit 110 can be configured to monitor, for a preprogrammed period, the bus 106 so as to locate the last instruction to start the sequence to be authenticated. If the last start instruction has not been found within this time, circuit 110 determines that there is a problem with the start instructions and that the safety of the system may be compromised.
  • each piece of data passing through the matrix bus is, on the one hand, taken by circuit 102 to be executed (step 204, "IMPLEMENT” ), and, on the other hand, taken by circuit 110 (step 206, “COLLECT”).
  • the circuit 110 monitors the matrix bus 106 and directly reads therein the instructions and their addresses, for example on columns 102a and 102b, as well as the operands, for example on column 102c. Steps 204 and 206 are performed in parallel and the data is therefore processed in parallel by circuits 102 and 110.
  • Circuit 110 determines (step 208) whether the instruction transmitted is the last start instruction. For example, the address on the address bus of the instruction transmitted is compared to the @END address of the last start instruction. If the address of the instruction transmitted is different from the address @END (branch N of step 208), one returns to steps 204 and 206 to transmit the following data item. If the address of the instruction transmitted is equal to the @END address, (branch Y of step 208), the transmission of the start-up data is considered complete and the next step is passed.
  • the end of the instructions in other words the end of the start-up data sequence to be authenticated, can alternatively be determined by a duration t1 corresponding to the time taken by all of the start-up data to be transmitted to the circuit 102.
  • the end of the start data corresponds to the instant t + t1, where t is the start instant of the start data (for example the instant of step 202).
  • the duration t1 is for example contained in the internal memory 112.
  • step 209 the start-up data taken by circuit 110 from the matrix bus are used to generate the representative word (DIGEST).
  • the data taken from the matrix bus are all stored in the internal memory 112 and the representative word is generated all at once from all of the stored instructions.
  • the circuit 110 can update the representative word each time a piece of data is taken by the circuit 110 at step 206.
  • the representative word is compared with the reference word (REFERENCE), contained in the memory 112.
  • step 212 the sequence for reading the start-up instructions is identical.
  • the same start instructions and the same operands are extracted by circuit 102 in the same order on the matrix bus.
  • the representative word is therefore the same at each initialization in the absence of modification.
  • the representative word is different from the reference word (branch N of step 210)
  • Protective measures can then be implemented (step 212), for example restarting the system, or shutting down the system.
  • the circuit 110 is turned off after the authentication of the start-up data. Circuit 110 would then not be turned on again until the next system start-up, for example by receiving a restart signal.
  • the 0START and @END addresses, the duration tl and the reference word REFERENCE were for example written in the memory 112 during the initial programming of the system.
  • the addresses 0START and @END, the duration t1 and the reference word REFERENCE are for example determined once, for example by simulation on an emulator, and are then written in the memories 104 of a plurality of similar systems.
  • the initial programming of each system can include a step during which these values are determined for the system considered.
  • a hash function can be used.
  • any function capable of generating a signature from the data can be used.
  • the size of the start-up instructions is preferably less than 5 kilobytes, for example between about 2 and about 3 kilobytes.
  • the size of the representative word is for example equal to or less than 32 bytes.
  • the size of the representative word is preferably independent of the sizes of the words contained in the memories.
  • the start 0START and end @END addresses of the start-up instructions can for example form a range of addresses of the memory 104 in which all the start-up instructions are present.
  • the circuit 110 can detect a problem and, for example, stop the start of the system 100.
  • an attack of pirate can consist in causing the circuit 110 to seek to extract the starting instructions in a memory other than the memory 104, for example in the memory 108.
  • the instructions transmitted are then out of the authorized range and the attack can therefore be spotted.
  • the circuit 114-2 monitors the addresses of the data transmitted until the end of the start instructions.
  • the start instructions may include instructions, or may use operands, located outside the range formed by the start (0START) and end (@END) addresses of instructions.
  • part of the start-up instructions can be located in any one of the other memories, for example located in memory 108.
  • the internal memory can comprise several addresses determining several ranges of addresses, possibly in several memories, in which are including genuine boot data. These data are taken by the circuit 110, for example via the data bus 106, and are also used for the generation of the representative word DIGEST. This data should for example be the same each time the system is started, such as the start instructions located in memory 104.
  • Another solution would be to check the instructions stored in the memory before the transmission of the start-up instructions, so as to ensure that the stored instructions do indeed correspond to the authentic instructions.
  • a hacker could ensure, without modifying the instructions stored in memory, that the instructions transmitted are not the intended instructions, which will not be detected.
  • An advantage of the embodiments described here is that they make it possible to identify modifications appearing during the transmission of the instructions.
  • the elements are elements internal to a controller.
  • the memories are memories internal to the controller. The connection between circuits 102 and 110 and the memories are therefore more secure.
  • circuit 110 does not include a processor, the comparisons and calculations being made by logic circuits. Circuit 110 therefore has a structure that is simple to implement.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

La présente description concerne un procédé d'authentification d'instructions et d'opérandes dans un système électronique comprenant un contrôleur, le procédé comprenant : l'extraction des instructions et opérandes par un premier circuit (102) du contrôleur depuis au moins une première mémoire (104) interne au contrôleur par l'intermédiaire d'un bus matriciel (106) du contrôleur; le prélèvement sur le bus matriciel (106), par un deuxième circuit (110) interne au contrôleur, des instructions et opérandes lors de leur transmission au premier circuit (102); et la génération d'un mot représentatif des instructions et opérandes (DIGEST).

Description

DESCRIPTION
Système électronique
La présente demande de brevet revendique la priorité de la demande de brevet français 19/09826 qui sera considérée comme faisant partie intégrante de la présente description.
Domaine technique
[0001] La présente description concerne de façon générale les systèmes électroniques et plus particulièrement les systèmes comprenant une mémoire.
Technique antérieure
[0002] La sécurité des systèmes électroniques est d'autant plus importante que les domaines des objets connectés, par exemple la domotique, se développent. En particulier, il est important de pouvoir s'assurer que les données, c'est-à-dire les instructions de démarrage et les opérandes associés, contenues dans des mémoires et exécutées lors de l'initialisation du système correspondent bien aux instructions voulues et non pas des instructions modifiées par des pirates.
[0003] Il serait souhaitable d'améliorer au moins un aspect des systèmes électroniques connus.
Résumé de l'invention
[0004] Un mode de réalisation pallie tout ou partie des inconvénients des systèmes électroniques connus.
[0005] Un mode de réalisation prévoit un procédé d'authentification d'instructions et d'opérandes dans un système électronique comprenant un contrôleur, le procédé comprenant : l'extraction des instructions et opérandes par un premier circuit du contrôleur depuis au moins une première mémoire interne au contrôleur par l'intermédiaire d'un bus matriciel du contrôleur ; le prélèvement sur le bus matriciel, par un deuxième circuit interne au contrôleur, des instructions et opérandes lors de leur transmission au premier circuit ; et la génération d'un mot représentatif des instructions et opérandes .
[0006] Un autre mode de réalisation prévoit un système électronique comprenant contrôleur, le contrôleur comprenant : un premier circuit configuré pour extraire des instructions et des opérandes depuis au moins une première mémoire interne au contrôleur par l'intermédiaire d'un bus matriciel du contrôleur, et un deuxième circuit configuré pour prélever, sur le bus matriciel, les instructions et les opérandes lorsqu'elles sont transmises au premier circuit et pour générer un mot représentatif des instructions et opérandes.
[0007] Selon un mode de réalisation, le premier circuit est configuré pour exécuter les instructions, les instructions étant des instructions de démarrage du système.
[0008] Selon un mode de réalisation, le deuxième circuit est configuré pour comparer le mot représentatif des instructions à un mot de référence.
[0009] Selon un mode de réalisation, le deuxième circuit est configuré pour déterminer que les instructions sont authentiques lorsque le mot représentatif des instructions est identique au mot de référence et que les instructions ne sont pas authentiques lorsque le mot représentatif des instructions n'est pas identique au mot de référence.
[0010] Selon un mode de réalisation, le système est configuré pour être redémarré ou éteint si le deuxième circuit détermine que les instructions ne sont pas authentiques. [0011] Selon un mode de réalisation, le deuxième circuit comprend une deuxième mémoire dans laquelle le mot de référence est contenu depuis une programmation initiale du système .
[0012] Selon un mode de réalisation, le deuxième circuit détermine le début desdites instructions en comparant les adresses à une adresse de début des instructions contenue dans la deuxième mémoire.
[0013] Selon un mode de réalisation, la fin des données est déterminée par une durée prédéterminée après le début des instructions ou en comparant les adresses à une adresse de fin des instructions contenue dans la deuxième mémoire.
[0014] Selon un mode de réalisation, la première mémoire est une mémoire non volatile interne au contrôleur, le contrôleur comprenant une troisième mémoire, la première mémoire comprenant les instructions et la troisième mémoire comprenant les opérandes.
[0015] Selon un mode de réalisation, le bus matriciel comprend des bus formant des lignes et des colonnes, chaque intersection entre une ligne et une colonne étant configurée pour permettre ou non le transfert d'information entre la ligne et la colonne.
[0016] Selon un mode de réalisation, le premier circuit est relié à la matrice par une première entrée/sortie sur laquelle sont transmises les instructions, et au moins une deuxième entrée/sortie sur laquelle sont transmises les opérandes.
[0017] Selon un mode de réalisation, la première mémoire est reliée aux première et deuxième entrées/sorties du premier circuit par le bus matriciel et la troisième mémoire est reliées à la troisième entrée/sortie du premier circuit par le bus matriciel. [0018] Selon un mode de réalisation, les opérandes incluent des paramètres d'initialisation d'au moins un élément parmi : une unité de protection de la mémoire, un circuit de type "chien de garde", ou des circuits de protection de mémoires non volatiles.
Brève description des dessins
[0019] Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :
[0020] la figure 1 représente un mode de réalisation d'un système électronique ; et
[0021] la figure 2 représente un mode de réalisation d'un procédé d'authentification d'instructions et de données.
Description des modes de réalisation
[0022] De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques.
[0023] Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, les différentes applications des modes de réalisation de systèmes électroniques ne seront pas détaillées.
[0024] Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés ou couplés entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés ou couplés par l'intermédiaire d'un ou plusieurs autres éléments.
[0025] Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures.
[0026] Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près.
[0027] La figure 1 représente un mode de réalisation d'un système électronique 100. Le système 100 est un système dont on cherche à protéger des instructions, par exemple les instructions de démarrage, par exemple contre des modifications. Le système 100 correspond par exemple à un objet connecté, par exemple dans le domaine de la domotique. Les modes de réalisation décrits ici sont particulièrement applicables à des types de systèmes qui n'étaient pas ordinairement connectés à un réseau. Plus précisément, la figure 1 représente un contrôleur du système 100.
[0028] Le système 100, et plus précisément ledit contrôleur du système, comprend un circuit 102, de préférence un processeur (mR). Le système comprend au moins une mémoire 104 (MEM1). La mémoire 104 est une mémoire interne du contrôleur. La mémoire 104 est une mémoire non volatile réinscriptible, par exemple une mémoire flash. Le système comprend aussi au moins une mémoire 108 (MEM2), par exemple volatile, par exemple une mémoire RAM. La mémoire 108 est aussi une mémoire interne du contrôleur. De préférence, les mémoire 104 et 108 sont des mémoires distinctes. [0029] Les différents éléments du système, en particulier les mémoires 104 et 108 et le processeur 102, sont connectés les uns aux autres par une matrice de bus 106, ou bus matriciel d'interconnexion, par exemple un bus à hautes performances avancées (AHB - Advanced High-performance Bus). Le bus matriciel 106 est interne au contrôleur. Le bus matriciel 106 permet de relier les circuits de type "maître" aux circuits de type "esclave". Chaque élément du dispositif est relié à au moins une ligne ou à au moins une colonne de la matrice. De préférence, les éléments de type "maître" sont reliés, de préférence connectés, aux colonnes et les éléments du type "esclave" sont reliés, de préférence connectés, aux lignes. Les lignes et les colonnes du bus matriciel sont des éléments de transmission d'information, par exemple des bus.
[0030] Le processeur 102 est relié, de préférence connecté, à trois colonnes de la matrice 106 : une colonne sur laquelle sont transmises des instructions, et au moins une colonne sur laquelle sont transmises des opérandes. Dans l'exemple de la figure 1, le processeur est relié, de préférence connecté, à deux colonnes sur lesquelles sont transmise des opérandes.
[0031] La mémoire 104 est par exemple reliée, de préférence connectée, à deux lignes, par exemple une ligne sur laquelle sont transmises des instructions et une ligne sur laquelle sont transmises des opérandes. La mémoire 108 est par exemple reliée, de préférence connectée, à une ligne de la matrice 106.
[0032] Le système 100 peut en outre comprendre d'autres circuits connectés à la matrice 106, par exemple un ou plusieurs circuits d'accès direct à la mémoire 120 (DMA1, DMA2) et des circuits exécutant d'autres fonctions, représentés en figure 1 par des blocs 122 (FCT1, FCT2). Chaque DMA est par exemple relié, de préférence connecté, à une colonne de la matrice 106. Chaque circuit 122 est par exemple relié, de préférence connecté, à une ligne de la matrice 106.
[0033] Chaque ligne croise toutes les colonnes et, inversement, chaque colonne croise toutes les lignes. Tous les croisements ne correspondent cependant pas à une connexion électrique. Chaque croisement correspond à une connexion électrique possible. Il est possible de choisir quelle ligne est électriquement connectée à quelle colonne. De préférence, cela est déterminé lors de la fabrication du dispositif. De préférence, les liaisons entre lignes et colonnes ne sont pas modifiées après la fabrication du dispositif. Les liaisons sont ainsi fixes et immuables lors du fonctionnement du dispositif .
[0034] Ainsi, dans le dispositif 100, une colonne 102a, reliée, de préférence connectée, à une entrée/sortie du processeur 102, est connectée à une ligne 104a reliée, de préférence connectée, à une entrée/sortie de la mémoire 104 et à une ligne 108a reliée, de préférence connectée, à une entrée/sortie de la mémoire 108. Ces liaisons sont représentées, en figure 1, par des points aux intersections des lignes et des colonnes. Ainsi, le processeur 102 est relié, de préférence connecté, à la mémoire 104 par la colonne 102a et la ligne 104a et est relié, de préférence connecté, à la mémoire 108 par la colonne 102a et la ligne 108a.
[0035] Dans le mode de réalisation de la figure 1, les croissements : entre la colonne 102a et une ligne 104b reliée, de préférence connectée, à une autre entrée/sortie de la mémoire 104 ; entre la colonne 102a et une ligne 122a reliée, de préférence connectée, à une entrée/sortie du bloc FCT1 ; et entre la colonne 102a et une ligne 122b reliée, de préférence connectée, à une entrée/sortie du bloc FCT2, ne sont pas configurés pour permettre une connexion électrique. Ainsi, il n'est pas possible au processeur 102 d'échanger des informations avec les blocs FCT1 et FCT2 par la ligne 102a.
[0036] Similairement, dans le mode de réalisation de la figure 1, une colonne 102b, reliée, de préférence connectée, à une entrée/sortie du processeur 102, est reliée, de préférence connectée, à la ligne 104b et à la ligne 108a, mais n'est pas reliée aux ligne 104a, 122a et 122b.
[0037] De préférence, le processeur 102 est relié, de préférence connecté, à la mémoire 104 par la colonne 102a et la ligne 104a, sur lesquelles sont transmises les instructions et par la colonne 102b et la ligne 104b, sur lesquelles sont transmises des opérandes.
[0038] La colonne 102c, reliée à une entrée/sortie du processeur 102, est, dans l'exemple de la figure 1, reliée, de préférence connectée, à la ligne 108a, 122a et 122b. La colonne 102c est une colonne sur laquelle sont transmis les opérandes. La colonne 102c n'est pas, dans l'exemple de la figure 1, reliée aux lignes 104a et 104b. Ainsi, le processeur 102 n'est pas, de préférence, relié à la mémoire 104 par la colonne 102c sur laquelle sont transmis les opérandes. Le processeur 102 est cependant relié à la mémoire 108 par la colonne 102c et la ligne 108a, de manière à pouvoir transmettre des opérandes.
[0039] Le processeur 102 peut donc recevoir des instructions ou des opérandes situées dans la mémoire 104 et recevoir des opérandes situés dans la mémoire 108.
[0040] Les DMA 120 sont par exemple reliés, de préférence connectés, aux lignes 104a, 104b, 108a, 122a and 122b respectivement par des colonnes 120a et 120b.
[0041] Les mémoires 104 et 108 contiennent les données de démarrage, c'est-à-dire des instructions de démarrage ("boot"), ou d'initialisation, du système, contenues de préférence dans la mémoire 104 et des opérandes utilisés lors du démarrage, contenues de préférence dans la mémoire 108.
[0042] Par instructions de démarrage, on entend les instructions elles-mêmes. Les instructions de démarrage sont exécutées par le circuit 102, et sont transmises par la ligne 104a de la matrice 106. Les instructions de démarrage sont de préférence parmi les premières instructions exécutées lors de la mise en fonctionnement du système. Les opérandes comprennent par exemple les paramètres d'initialisation d'au moins un élément parmi : une unité de protection de la mémoire, qui autorise ou non l'accès des différentes parties des mémoires aux différents périphériques et aux différents programmes, un circuit de type "chien de garde" ( "watchdog"), et des circuits de protection de mémoires non volatiles.
[0043] Par circuit de type "chien de garde", on entend un circuit comprenant un minuteur, le minuteur étant relancé régulièrement avant d'atteindre sa valeur finale en situation normal. Si le dispositif fait face à une attaque empêchant le minuteur d'être relancer, il atteint alors sa valeur finale et une erreur est détectée.
[0044] Les données de démarrage, c'est-à-dire les instructions de démarrage et les opérandes, sont écrites dans les mémoires lors de la programmation initiale du système. Les données de démarrage ne sont pas censées être modifiées en dehors d'une reprogrammation totale du système, qui impliquerait l'effacement total des mémoires 104 et 108. Cette reprogrammation serait alors considérée comme la nouvelle programmation initiale du système. Ainsi, des modifications des instructions de démarrage impliquent une tentative de piratage, cherchant par exemple à éviter les sécurités du système 100. [0045] Le système 100 comprend un circuit 110 d'authentification des instructions, comprenant de préférence une mémoire interne 112 et différents circuits logiques 114. De préférence, le circuit 110, le processeur 102, le bus matriciel 106 et les mémoires 104 et 108 font partie d'un même microcontrôleur.
[0046] Les différents circuits logiques 114 comprennent un circuit 114-2 (MONITOR) configuré pour surveiller le bus matriciel 106. Plus précisément, le circuit 114-2 est configuré pour surveiller toutes les liaisons du bus matricielle. En particulier, le circuit logique 114-2 surveille le passage des adresses des instructions transmises par la mémoire 104 sur la colonne 102b et la ligne 104b. Les circuits logiques 114 comprennent un circuit 114-4
(ACCUMULATE) configuré pour prélever les données sur les liaisons du bus matriciel et pour obtenir un mot représentatif (DIGEST) des données de démarrage, et un circuit 114-6 (COMPARE) configuré pour comparer le mot représentatif à un mot de référence (REFERENCE).
[0047] La mémoire interne 112, correspondant de préférence à des registres, comprend des données relatives à l'authentification des instructions de démarrage. En particulier, les registres de la mémoire 112 comprennent le mot de référence REFERENCE et le mot représentatif DIGEST. De plus, les registres de la mémoire 112 peuvent comprendre des éléments caractérisant les instructions de démarrage, par exemple l'adresse de la première instruction (0START) et l'adresse de la dernière instruction (@END).
[0048] Toutes les données de démarrage transmises, par le bus matriciel, entre la transmission d'une première donnée, de préférence une première instruction, par exemple repérée par son adresse 0START et la dernière donnée, de préférence une dernière instruction à authentifier, repérée par son adresse @END. De préférence, uniquement des données stockées par les mémoires 104 et 106 sont fournies entre la première et la dernière donnée. Cependant, des informations, par exemple des données, transmisses sur d'autres lignes ou colonnes peuvent être transmises entre les première et dernière données et sont aussi utilisées pour la génération du mot représentatif.
[0049] A titre de variante, plusieurs séquences de données peuvent être utilisées pour former le mot représentatif, ces séquences pouvant être séparées par des séquences de données n'étant pas utilisées dans la formation du mot représentatif. La mémoire interne contient alors de préférence les adresses de début et de fin de chacune desdites séquences utilisées pour générer le mot représentatif.
[0050] Les données utilisées pour générer le mot représentatif sont telles que, entre la première et la dernière donnée, les instructions et les opérandes transmises au processeur 102 sont toujours exactement les mêmes, de référence dans le même ordre. De préférence, la génération du mot représentatif est toujours faite avec des instructions et au moins un opérande.
[0051] De préférence, le circuit 110 comprend : des câblages (114-2) permettant de surveiller les informations transmises sur toutes les lignes et colonnes du bus matriciel ;
- des éléments de logique (114-2) permettant de déterminer le début et la fin des données à authentifier, par exemple des éléments de logique permettant de comparer les adresses transmises sur les ligne et colonne 104a et 102a ;
- des éléments de logique (114-4) permettant de générer le mot représentatif
- des éléments de logique (114-6) permettant de comparer des mots binaires, et permettant ainsi de comparer le mot représentatif DIGEST au mot de référence REFERENCE ; - une horloge permettant de synchroniser les éléments du circuit 110 ; et
- des registres 112 dans lesquels sont contenus le mot de référence et les adresses de début et de fin des séquences de données à authentifier.
[0052] La figure 2 représente un mode de réalisation d'un procédé d'authentification d'instructions, effectué par exemple par le système 100 de la figure 1.
[0053] Le procédé comprend une première étape 200 au cours de laquelle le processeur 102 envoie une demande à la mémoire 104 pour extraire (EXTRACT) les instructions de démarrage. Cette étape est effectuée lors du démarrage du système 100.
[0054] Les instructions de démarrage sont ensuite transmises au circuit 102 par l'intermédiaire du bus matriciel 106, dans le but d'être exécutées par le processeur 102.
[0055] Le circuit 110 peut être configuré pour déterminer le début des instructions de démarrage en surveillant le bus de données et en repérant la première instruction elle-même.
[0056] Alternativement, le circuit 110 surveille le bus matriciel 106 et est configuré pour repérer la première instruction de démarrage transmise par la mémoire 104. Pour ce faire, les adresses des instructions passant sur le bus d'adresses sont par exemple comparées (étape 202, "=@START ?") à l'adresse 0START de la première instruction de démarrage.
[0057] Alternativement, le circuit 110 peut être configuré pour déterminer le début des instructions de démarrage sans comparer les adresses des instructions transmises à une adresse préprogrammée. Par exemple, le circuit 110 peut considérer que la première instruction transmise par la mémoire 104 est la première instruction de démarrage.
[0058] Le circuit 110 peut être configuré pour surveiller, pendant une durée préprogrammée, le bus 106 de manière à repérer la première instruction de démarrage. Si la première instruction de démarrage n'a pas été repérée au cours de cette durée, le circuit 110 détermine qu'il y a un problème au niveau des instructions de démarrage et que la sécurité du système peut être compromise.
[0059] Selon un mode de réalisation, le circuit 110 peut être configuré pour surveiller, pendant une durée préprogrammée, le bus 106 de manière à repérer la dernière instruction de démarrage de la séquence à authentifier. Si la dernière instruction de démarrage n'a pas été repérée au cours de cette durée, le circuit 110 détermine qu'il y a un problème au niveau des instructions de démarrage et que la sécurité du système peut être compromise.
[0060] Lorsque la première instruction de démarrage est repérée (branche Y de l'étape 202), chaque donnée passant par le bus matriciel est, d'une part, prélevée par le circuit 102 pour être exécutée (étape 204, "IMPLEMENT"), et, d'autre part, prélevée par le circuit 110 (étape 206, "COLLECT"). Ainsi, le circuit 110 surveille le bus matriciel 106 et y lit directement les instructions et leurs adresses, par exemple sur les colonnes 102a et 102b, ainsi que les opérandes, par exemple sur la colonne 102c. Les étapes 204 et 206 sont effectuées de manière parallèle et les données sont donc traitées parallèlement par les circuits 102 et 110.
[0061] Le circuit 110 détermine ensuite (étape 208) si l'instruction transmise est la dernière instruction de démarrage. Par exemple, l'adresse, sur le bus d'adresses, de l'instruction transmise est comparée à l'adresse @END de la dernière instruction de démarrage. Si l'adresse de l'instruction transmise est différente de l'adresse @END, (branche N de l'étape 208), on retourne aux étapes 204 et 206 pour transmettre la donnée suivante. Si l'adresse de l'instruction transmise est égale à l'adresse @END, (branche Y de l'étape 208), la transmission des données de démarrage est considérée terminée et on passe à l'étape suivante.
[0062] La fin des instructions, autrement dit la fin de la séquence de données de démarrage à authentifier, peut alternativement être déterminée par une durée tl correspondant au temps mis par l'ensemble des données de démarrage pour être transmises au circuit 102. La fin des données de démarrage correspond à l'instant t + tl, où t est l'instant de début des données de démarrage (par exemple l'instant de l'étape 202). La durée tl est par exemple contenue dans la mémoire interne 112.
[0063] A l'étape 209 (GENERATE) suivant l'étape 208 (branche Y), les données de démarrage prélevées par le circuit 110 sur le bus matriciel sont utilisées pour générer le mot représentatif (DIGEST). Selon un exemple, les données prélevées sur le bus matricielle sont toutes stockées dans la mémoire interne 112 et le mot représentatif est généré en une seule fois à partir de l'ensemble des instructions mémorisées. Selon un autre exemple, le circuit 110 peut mettre à jour le mot représentatif à chaque fois qu'une donnée est prélevée par le circuit 110 à l'étape 206.
[0064] Après la fin de la transmission des données et après la génération du mot représentatif DIGEST définitif, c'est- à-dire après l'étape 209, le mot représentatif est comparé au mot de référence (REFERENCE), contenu dans la mémoire 112.
[0065] A chaque initialisation du système, la séquence de lecture des instructions de démarrage est identique. Les mêmes instructions de démarrage et les mêmes opérandes sont extraits par le circuit 102 dans le même ordre sur le bus matriciel. Le mot représentatif est donc le même à chaque initialisation en l'absence de modification. [0066] Ainsi, si le mot représentatif est différent du mot de référence (branche N de l'étape 210), cela signifie que les instructions ayant été exécutées et/ou les opérandes fournis ne correspondent pas aux instructions prévues et authentiques et que la sécurité du système peut être compromise. Des mesures de protection peuvent alors être mises en oeuvre (étape 212), par exemple le redémarrage du système, ou l'extinction du système.
[0067] Dans le cas où le mot de référence et le mot représentatif sont égaux, cela signifie que les instructions mises en oeuvre sont les instructions authentiques et que les opérandes sont authentiques. Le démarrage du système 100 peut donc continuer.
[0068] De préférence, le circuit 110 est éteint après l'authentification des données de démarrage. Le circuit 110 ne serait alors allumé de nouveau que lors du démarrage suivant du système, par exemple en recevant un signal de redémarrage .
[0069] Les adresses 0START et @END, la durée tl et le mot de référence REFERENCE ont par exemple été écrits dans la mémoire 112 lors de la programmation initiale du système. Les adresses 0START et @END, la durée tl et le mot de référence REFERENCE sont par exemple déterminés une fois, par exemple par simulation sur un émulateur, et sont ensuite écrits dans les mémoires 104 d'une pluralité de systèmes similaires.
[0070] Alternativement, la programmation initiale de chaque système peut comprendre une étape durant laquelle ces valeurs sont déterminées pour le système considéré.
[0071] Différentes fonctions peuvent être utilisées pour générer le mot représentatif DIGEST à partir des données. Par exemple, une fonction de hachage peut être utilisée. De même, toute fonction apte à générer une signature à partir des données peut être utilisée.
[0072] La taille des instructions de démarrage est de préférence inférieure à 5 kilo octets, par exemple comprise entre environ 2 et environ 3 kilo octets.
[0073] La taille du mot représentatif est par exemple égale ou inférieure à 32 octets. La taille du mot représentatif est de préférence indépendante des tailles des mots contenus dans les mémoires.
[0074] Les adresses de début 0START et de fin @END des instructions de démarrage peuvent par exemple former une gamme d'adresses de la mémoire 104 dans laquelle sont présentes toutes les instructions de démarrage. Ainsi, si une instruction ayant une adresse hors de cette gamme est transmise sur le bus entre le début et la fin des instructions, le circuit 110 peut détecter un problème et, par exemple, arrêter le démarrage du système 100. Par exemple, une attaque de pirate peut consister à faire en sorte que le circuit 110 cherche à extraire les instructions de démarrage dans une mémoire autre que la mémoire 104, par exemple dans la mémoire 108. Les instructions transmises sont alors hors de la gamme autorisée et l'attaque peut donc être repérée. Pour ce faire, le circuit 114-2 surveille les adresses des données transmises jusqu'à la fin des instructions de démarrage.
[0075] A titre de variante, les instructions de démarrage peuvent comprendre des instructions, ou peuvent utiliser des opérandes, situées hors de la gamme formée par les adresses de début (0START) et de fin (@END) d'instructions. Par exemple, une partie des instructions de démarrage peuvent être situées dans l'une quelconque des autres mémoires, par exemple situées dans la mémoire 108. La mémoire interne peut comprendre plusieurs adresses déterminant plusieurs gammes d'adresses, éventuellement dans plusieurs mémoires, dans lesquelles sont comprises des données de démarrage authentiques. Ces données sont prélevées par le circuit 110, par exemple par l'intermédiaire du bus de données 106, et sont aussi utilisées pour la génération du mot représentatif DIGEST. Ces données devraient par exemple être les mêmes à chaque démarrage du système, comme les instructions de démarrage situées dans la mémoire 104.
[0076] Une autre solution serait de vérifier les instructions stockées dans la mémoire avant la transmission des instructions de démarrage, de manière à s'assurer que les instructions stockées correspondent bien aux instructions authentiques. Cependant, un pirate pourrait faire en sorte, sans modifier les instructions stockées en mémoire, que les instructions transmises ne soient pas les instructions prévues ce qui ne sera pas détecté. Un avantage des modes de réalisation décrits ici est qu'ils permettent de repérer des modifications apparaissant au cours de la transmission des instructions .
[0077] Un avantage des modes de réalisation décrits est que les éléments sont des éléments internes à un contrôleur. En particulier, les mémoires sont des mémoires interne au contrôleur. La liaison entre les circuits 102 et 110 et les mémoires sont donc plus sécurisées.
[0078] Un autre avantage est que l'authentification du code est faite par le même contrôleur qui exécute les instructions. Il n'est donc pas nécessaire au système d'avoir un deuxième contrôleur. De plus le circuit 110 ne comprend pas de processeur, les comparaisons et calculs étant faits par des circuits logique. Le circuit 110 a donc une structure simple à mettre en œuvre.
[0079] Divers modes de réalisation et variantes ont été décrits. L'homme de l'art comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d'autres variantes apparaîtront à l'homme de l'art. En particulier, les modes de réalisation décrits ici peuvent être appliqués à des ensembles d'instructions autres que les instructions de démarrage. Ces ensembles d'instructions sont des ensembles d'instructions identiques à chaque exécution.
[0080] Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de l'homme du métier à partir des indications fonctionnelles données ci- dessus .

Claims

REVENDICATIONS
1.Procédé d'authentification d'instructions et d'opérandes dans un système électronique comprenant un contrôleur, le procédé comprenant : l'extraction des instructions et opérandes par un premier circuit (102) du contrôleur depuis au moins une première mémoire (104) interne au contrôleur par l'intermédiaire d'un bus matriciel (106) du contrôleur ; le prélèvement sur le bus matriciel (106), par un deuxième circuit (110) interne au contrôleur, des instructions et opérandes lors de leur transmission au premier circuit (102) ; et la génération d'un mot représentatif des instructions et opérandes (DIGEST).
2. Système électronique comprenant contrôleur, le contrôleur comprenant : un premier circuit (102) configuré pour extraire des instructions et des opérandes depuis au moins une première mémoire (104) interne au contrôleur par l'intermédiaire d'un bus matriciel (106) du contrôleur, et un deuxième circuit (110) configuré pour prélever, sur le bus matriciel, les instructions et les opérandes lorsqu'elles sont transmises au premier circuit (102) et pour générer un mot représentatif des instructions et opérandes (DIGEST).
3. Procédé selon la revendication 1 ou système selon la revendication 2, dans lequel le premier circuit (102) est configuré pour exécuter les instructions, les instructions étant des instructions de démarrage du système.
4. Procédé selon la revendication 1 ou 3 ou système selon la revendication 2 ou 3, dans lequel le deuxième circuit (110) est configuré pour comparer le mot représentatif des instructions à un mot de référence.
5. Procédé ou système selon la revendication 4, dans lequel le deuxième circuit (110) est configuré pour déterminer que les instructions sont authentiques lorsque le mot représentatif des instructions est identique au mot de référence et que les instructions ne sont pas authentiques lorsque le mot représentatif des instructions n'est pas identique au mot de référence.
6. Procédé ou système selon la revendication 5, dans lequel le système est configuré pour être redémarré ou éteint si le deuxième circuit (110) détermine que les instructions ne sont pas authentiques.
7. Procédé ou système selon la revendication 4 à 6, dans lequel le deuxième circuit (110) comprend une deuxième mémoire (112) dans laquelle le mot de référence est contenu depuis une programmation initiale du système.
8. Procédé ou système selon la revendication 6 ou 7, dans lequel le deuxième circuit (110) détermine le début desdites instructions en comparant les adresses à une adresse de début des instructions (0START) contenue dans la deuxième mémoire (112).
9. Procédé ou système selon l'une quelconque des revendications 6 à 8, dans lequel la fin des données est déterminée par une durée prédéterminée après le début des instructions ou en comparant les adresses à une adresse de fin des instructions (@END) contenue dans la deuxième mémoire.
10.Procédé selon l'une quelconque des revendications 1, 3 à 9 ou système selon l'une quelconque des revendications 2 à 9, dans lequel la première mémoire (104) est une mémoire non volatile interne au contrôleur, le contrôleur comprenant une troisième mémoire (108), la première mémoire comprenant les instructions et la troisième mémoire comprenant les opérandes.
11.Procédé selon l'une quelconque des revendications 1, 3 à
10 ou système selon l'une quelconque des revendications 2 à 10, dans lequel le bus matriciel comprend des bus formant des lignes et des colonnes, chaque intersection entre une ligne et une colonne étant configurée pour permettre ou non le transfert d'information entre la ligne et la colonne.
12.Procédé selon l'une quelconque des revendications 1, 3 à
11 ou système selon l'une quelconque des revendications 2 à 11, dans lequel le premier circuit est relié à la matrice par une première entrée/sortie sur laquelle sont transmises les instructions, et au moins une deuxième entrée/sortie sur laquelle sont transmises les opérandes.
13.Procédé ou système selon la revendication 10 et 12, dans lequel la première mémoire (104) est reliées aux première et deuxième entrées/sorties du premier circuit (102) par le bus matriciel (106) et la troisième mémoire (108) est reliées à la troisième entrée/sortie du premier circuit par le bus matriciel.
14.Procédé selon l'une quelconque des revendications 1, 3 à
13 ou système selon l'une quelconque des revendications 2 à 14, dans lequel les opérandes incluent des paramètres d'initialisation d'au moins un élément parmi : une unité de protection de la mémoire, un circuit de type "chien de garde", ou des circuits de protection de mémoires non volatiles.
PCT/EP2020/074475 2019-09-06 2020-09-02 Systeme electronique WO2021043829A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20761870.3A EP4026031A1 (fr) 2019-09-06 2020-09-02 Systeme electronique
US17/640,680 US20220327193A1 (en) 2019-09-06 2020-09-02 Electronic system and method
CN202080062291.0A CN114341851A (zh) 2019-09-06 2020-09-02 电子系统

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1909826A FR3100632B1 (fr) 2019-09-06 2019-09-06 Système électronique
FRFR1909826 2019-09-06

Publications (1)

Publication Number Publication Date
WO2021043829A1 true WO2021043829A1 (fr) 2021-03-11

Family

ID=69743290

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/074475 WO2021043829A1 (fr) 2019-09-06 2020-09-02 Systeme electronique

Country Status (5)

Country Link
US (1) US20220327193A1 (fr)
EP (1) EP4026031A1 (fr)
CN (1) CN114341851A (fr)
FR (1) FR3100632B1 (fr)
WO (1) WO2021043829A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9749141B2 (en) * 2015-09-25 2017-08-29 Qualcomm Incorporated Secure boot devices, systems, and methods
US20190236281A1 (en) * 2015-06-08 2019-08-01 Nuvoton Technology Corporation Secure system boot monitor

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10127195A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Prozessor mit interner Speicherkonfiguration
US10521617B2 (en) * 2017-08-14 2019-12-31 Western Digital Technologies, Inc. Non-volatile memory device with secure read

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190236281A1 (en) * 2015-06-08 2019-08-01 Nuvoton Technology Corporation Secure system boot monitor
US9749141B2 (en) * 2015-09-25 2017-08-29 Qualcomm Incorporated Secure boot devices, systems, and methods

Also Published As

Publication number Publication date
EP4026031A1 (fr) 2022-07-13
US20220327193A1 (en) 2022-10-13
CN114341851A (zh) 2022-04-12
FR3100632B1 (fr) 2022-01-28
FR3100632A1 (fr) 2021-03-12

Similar Documents

Publication Publication Date Title
CN108399339B (zh) 一种基于安全芯片的可信启动方法
EP2988243B1 (fr) Dispositif et procédé pour assurer des services de module de plateforme sécurisée
FR2980286A1 (fr) Systemes et procedes de gestion de cles cryptographiques dans un microcontroleur securise
KR20150008546A (ko) 보안 다운로드 및 기능 실행방법 및 장치
FR2862397A1 (fr) Demarrage securise d'un appareil electronique a architecture smp
EP2024798B1 (fr) Procédé et dispositif de configuration sécurisée d'un terminal au moyen d'un dispositif de stockage de données de démarrage
EP2565810A1 (fr) Microprocesseur protégé contre le vidage de mémoire
EP4068128A1 (fr) Démarrage sécurisé d'une unité de traitement
EP2077515A1 (fr) Dispositif, systèmes et procédé de démarrage sécurisé d'une installation informatique
WO2005101725A1 (fr) Procede d'authentification dynamique de programmes par un objet portable electronique
EP3751573A1 (fr) Circuit électronique
WO2021043829A1 (fr) Systeme electronique
EP1266359B1 (fr) Procede d'identification biometrique, dispositif electronique portatif et dispositif electronique d'acquisition de donnees biometriques pour sa mise en oeuvre
WO2009071791A2 (fr) Verification de donnees lues en memoire
EP3765984A1 (fr) Traitement sécurisé de données
EP3284206B1 (fr) Procédé de sécurisation de l' exécution d'un programme
EP2860660A1 (fr) Système et méthode de chargement sécurisé de données dans une mémoire cache associée à un processeur sécurisé
EP1591866B1 (fr) Contrôle de l'exécution d'un algorithme par un circuit intégré
FR3121529A1 (fr) Débogage sécurisé
EP4307143A1 (fr) Procede et circuit pour la verification de l'integrite d'un logiciel
EP4411737A1 (fr) Procédé d'écriture et vérification de l'écriture d'une clé dans une mémoire non-volatile
EP4174709A1 (fr) Procede de verrouillage d'une zone de memoire non-volatile reinscriptible et dispositif electronique mettant en uvre ledit procede
EP3893135A1 (fr) Procédé d'authentification
EP3792771A1 (fr) Test de programme
FR3104285A1 (fr) Contrôle d’intégrité d’une mémoire

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20761870

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020761870

Country of ref document: EP

Effective date: 20220406