FR 3128545 A1 20230428 FR 2111294 A 20211025 Selon un aspect, il est proposé un procédé de transaction entre une application (APP) exécutée par un processeur (PROC) et un périphérique (IP) par l’intermédiaire d’une couche d’abstraction matérielle (HAL), procédé comprenant : - une configuration du périphérique (IP) dans laquelle une configuration de transaction émise par l’application (APP) est écrite dans des registres de configuration du périphérique (IP) par l’intermédiaire de la couche d’abstraction matérielle (HAL), puis - une vérification d’une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), puis - une exécution de la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) est conforme. Figure pour l’abrégé : Fig 1 PROCÉDÉ DE TRANSACTION ENTRE UNE APPLICATION ET UN PÉRIPHÉRIQUE Des modes de réalisation et de mise en œuvre concernent la sécurisation de certains aspects d'un système sur puce comme par exemple les transactions entre un processeur et un périphérique du système sur puce, notamment par rapport à la sécurité contre des attaques par injection de faute. Un système sur puce comprend généralement un processeur et des périphériques, notamment des mémoires. Le processeur est configuré pour exécuter une application donnée. L’application peut prévoir un ou plusieurs services pouvant être mis en œuvre à l’exécution de l’application par le processeur. Il est courant d’utiliser une couche d’abstraction matérielle (connue également par l’acronyme HAL, de l’anglais « hardware abstraction layer ») entre l’application et les périphériques matériels. Cette couche est un logiciel intermédiaire offrant des fonctions standardisées de manipulation du périphérique tout en cachant des détails techniques de la mise en œuvre de ce périphérique. La couche d’abstraction matérielle est utilisée comme intermédiaire dans les transactions entre l’application mise en œuvre par le processeur et des accès à des registres des périphériques. En particulier, la couche d’abstraction matérielle peut être configurée pour écrire une configuration de transaction dans des registres de configuration des périphériques. Les registres de configuration d’un périphérique permettent à une application d’interagir avec ce périphérique par l’intermédiaire de la couche d’abstraction matérielle. Par ailleurs, une personne mal avisée peut effectuer une attaque par injection de faute sur le système sur puce afin de perturber, voir rendre incontrôlable, l’exécution d’une application. Une attaque par injection de faute peut notamment être exécutée afin de modifier les valeurs dans les registres des périphériques. Cela peut créer des problèmes de sécurité pour le système sur puce. Par exemple, une attaque par injection de faute peut être exécutée afin de modifier les valeurs d’un bloc d’une mémoire flash. De telles attaques par injection de faute peuvent être utilisées pour qu’une mauvaise opération soit effectuée par les périphériques. Une attaque par injection de faute peut également être effectuée sur un contrôleur d’accès direct à la mémoire pour transférer de façon non sécurisée des données de la mémoire. Une attaque par injection de fautes peut aussi être effectuée pour modifier une clé utilisée par un circuit de cryptographie. La couche d’abstraction matérielle peut être adaptée pour vérifier la configuration de transaction qu’elle reçoit par l’application afin de s’assurer que la configuration de transaction est correcte avant de l’écrire dans les registres de configuration du périphérique. Néanmoins, une telle vérification est insuffisante si une attaque par injection de faute est mise en œuvre sur les registres de configuration du périphérique après cette vérification. Afin de prévenir les attaques par injection de faute, il est possible d’exécuter des instructions d’un programme en ajoutant des délais aléatoires entre les exécutions des instructions. De tels délais aléatoires permettent de compliquer une répétition des attaques par injection de fautes. Néanmoins, cette solution présente plusieurs inconvénients. Tout d’abord, cette solution ne permet pas d’obtenir une robustesse suffisante par rapport à des attaques par injection de faute poussées. En particulier, il est possible de répéter une attaque par injection de fautes en observant la consommation électrique du système sur puce. Un autre inconvénient est que l’utilisation de délais aléatoires ne permet pas de détecter une attaque par injection de faute. Ainsi, il n’est pas possible de savoir quand une mauvaise transaction a été effectuée suite à une telle attaque. En outre, l’ajout de délais aléatoires dans l’exécution du programme la ralentie. Ainsi, une telle solution n’est pas toujours adaptée pour des systèmes en temps réel. Il existe donc un besoin de proposer une solution permettant de détecter les attaques par injection de faute lors des transactions entre une application et un périphérique. Selon un aspect, il est proposé un procédé de transaction entre une application exécutée par un processeur et un périphérique par l’intermédiaire d’une couche d’abstraction matérielle, procédé comprenant : - une configuration du périphérique dans laquelle une configuration de transaction émise par l’application est écrite dans des registres de configuration du périphérique par l’intermédiaire de la couche d’abstraction matérielle, puis - une vérification d’une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis - une exécution de la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique est conforme. Un tel procédé est mis en œuvre avant d’effectuer une transaction. Il permet de vérifier si la configuration de transaction définie dans les registres de configuration du périphérique par la couche d’abstraction matérielle n’a pas été modifiée avant d’effectuer la transaction. Le procédé permet ainsi de détecter une attaque par injection de faute sur les registres de configuration du périphérique. Le périphérique peut être une mémoire flash, un contrôleur d’accès direct à la mémoire ou un circuit de cryptographie par exemple. Dans le cas où le périphérique est un circuit de cryptographie, la configuration de transaction peut être une clé de cryptographie. Dans un mode de mise en œuvre avantageux, le procédé comprend en outre une émission par le périphérique d’un signal d’avertissement à destination de l’application si la configuration de transaction n’est pas conforme, de façon à indiquer à l’application que la transaction n’est pas effectuée. Cela permet à l’application de savoir qu’une transaction n’a pas été effectuée pour pouvoir la renouveler. Dans un mode de mise en œuvre avantageux, la vérification de la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique comprend : - une lecture par la couche d’abstraction matérielle de la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis - un calcul par la couche d’abstraction matérielle d’une configuration de transaction transformée à partir de la configuration de transaction lue, - un calcul par le périphérique d’une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique, - une comparaison entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle et la configuration de transaction transformée calculée par le périphérique. La transaction est alors exécutée uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle est égale à la configuration de transaction transformée calculée par le périphérique. Avantageusement, la vérification de la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique comprend en outre : - une génération d’une valeur aléatoire dans un registre du périphérique après ladite configuration du périphérique, puis - une lecture par la couche d’abstraction matérielle de la valeur aléatoire enregistrée dans un registre du périphérique, puis - un calcul par la couche d’abstraction matérielle d’une valeur aléatoire transformée à partir de la valeur aléatoire lue, - un calcul par le périphérique d’une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique, - une comparaison entre la valeur aléatoire transformée calculée par la couche d’abstraction matérielle et la valeur aléatoire transformée calculée par le périphérique. La transaction est alors exécutée uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle est égale à la valeur aléatoire transformée calculée par le périphérique. Selon un autre aspect, il est proposé un système sur puce comprenant : - un processeur configuré pour exécuter une application, - un périphérique comprenant des registres de configuration, l’application étant configurée pour communiquer avec le périphérique par l’intermédiaire d’une couche d’abstraction matérielle, dans lequel la couche d’abstraction matérielle est adaptée pour : - configurer le périphérique pour une transaction en écrivant, dans les registres de configuration du périphérique, une configuration de transaction émise par l’application, et dans lequel la couche d’abstraction matérielle et le périphérique sont adaptés pour vérifier une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique, le périphérique étant adapté pour exécuter la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique est conforme. Dans un mode de réalisation avantageux, le périphérique est configuré pour émettre un signal d’avertissement à destination de l’application si la configuration de transaction n’est pas conforme de façon à indiquer à l’application que la transaction n’est pas effectuée. Avantageusement, pour vérifier la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique, la couche d’abstraction matérielle est configurée pour : - lire la configuration de transaction enregistrée dans les registres de configuration du périphérique, puis - calculer une configuration de transaction transformée à partir de la configuration de transaction lue, et le périphérique est configuré pour : - calculer une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique, - comparer entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle et la configuration de transaction transformée calculée par le périphérique, le périphérique étant adapté pour exécuter la transaction uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle est égale à la configuration de transaction transformée calculée par le périphérique. De préférence, pour vérifier la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique, le périphérique est en outre adapté pour générer une valeur aléatoire dans un registre du périphérique après la configuration du périphérique, la couche d’abstraction matérielle est en outre configurée pour : - lire la valeur aléatoire enregistrée dans un registre du périphérique, puis - calculer une valeur aléatoire transformée à partir de la valeur aléatoire lue, le périphérique est également adapté pour : - calculer une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique, - comparer la valeur aléatoire transformée calculée par la couche d’abstraction matérielle au la valeur aléatoire transformée calculée par le périphérique, le périphérique étant adapté pour exécuter la transaction uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle est égale à la valeur aléatoire transformée calculée par le périphérique. D'autres avantages et caractéristiques de l’invention apparaîtront à l’examen de la description détaillée de modes de mise en œuvre et de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : illustrent schématiquement des modes de réalisation et de mise en œuvre de l’invention. La illustre un système sur puce SOC selon un mode de réalisation. Le système sur puce SOC comprend un processeur PROC et au moins un périphérique IP. Ici, un seul périphérique est représenté. Toutefois, bien entendu, le système sur puce peut comprendre plusieurs périphériques. Le périphérique peut être une mémoire flash, un contrôleur d’accès direct à la mémoire ou un circuit de cryptographie par exemple. Le processeur est configuré pour exécuter une application APP. L’application APP peut prévoir un ou plusieurs services pouvant être mis en œuvre à l’exécution de l’application APP par le processeur. L’application APP est enregistrée dans une mémoire MEM non volatile. Le périphérique IP comprend des registres REG dont des registres de configuration. Les registres de configuration sont configurés pour enregistrer une configuration de transaction avant chaque transaction. Dans le cas où le périphérique est un circuit de cryptographie, la configuration de transaction peut être une clé de cryptographie. Une couche d’abstraction matérielle HAL est prévue entre l’application APP et les registres REG du périphérique IP. L’application APP est configurée pour appeler la couche d’abstraction matérielle HAL pour interagir avec les registres du périphérique IP. La couche d’abstraction matérielle HAL est une couche logicielle enregistrée dans la mémoire MEM. La couche d’abstraction matérielle HAL sert ainsi d’intermédiaire dans les transactions entre l’application APP et les registres du périphérique IP. Le système sur puce est configuré pour mettre en œuvre un procédé de transaction entre l’application APP et le périphérique IP. Les figures 2 à 5 illustrent un mode de mise en œuvre d’un tel procédé de transaction. Le procédé comprend une étape 20, illustrée à la , dans laquelle l’application APP appelle la couche d’abstraction matérielle HAL pour effectuer une transaction avec le périphérique IP. En particulier, l’application APP transmet à la couche d’abstraction matérielle HAL une configuration de transaction HALCONF, puis la couche d’abstraction matérielle HAL traduit cette configuration de transaction et écrit la configuration de transaction traduite CONF dans les registres PRGF de configuration du périphérique IP. Le périphérique IP génère ensuite une valeur aléatoire RND dans un de ses registres. Si le périphérique est un circuit de cryptographie, la configuration de transaction traduite CONF peut être une valeur de hachage de la clé de cryptographie (c’est-à-dire le résultat d’une fonction de hachage prenant en entrée la clé de cryptographie). Le procédé comprend ensuite une étape 21, illustrée à la , dans laquelle la couche d’abstraction matérielle HAL lit la configuration de transaction CONF écrite dans les registres de configuration du périphérique IP. La couche d’abstraction matérielle HAL traduit cette configuration de transaction puis transmet sa traduction HALCONF à l’application APP. La couche d’abstraction matérielle HAL lit également le registre comprenant la valeur aléatoire RND puis transmet cette valeur aléatoire RND à l’application APP. Si le périphérique est un circuit de cryptographie, la couche d’abstraction matérielle lit la valeur de hachage de la clé de cryptographie qu’elle transmet ensuite à l’application, pour que cette dernière puisse la contrôler. Le procédé comprend ensuite une étape 22, illustrée à la , dans laquelle l’application APP transmet à la couche d’abstraction matérielle HAL la configuration de transaction HALCONF et la valeur aléatoire RND reçues à l’étape 21. Si le périphérique est un circuit de cryptographie, l’application APP transmet à la couche d’abstraction matérielle HAL la valeur de hachage de la clé de cryptographie reçue à l’étape 21. La couche d’abstraction matérielle HAL traduit ensuite cette configuration de transaction et calcule une configuration de transaction transformée CONFT à partir de la configuration de transaction traduite CONF. Par exemple, la couche d’abstraction matérielle HAL peut calculer un complément à un de la configuration de la transaction traduite CONF. La couche d’abstraction matérielle HAL peut également effectuer une transformation de la valeur aléatoire RND reçue pour obtenir une valeur aléatoire transformée RNDT. Par exemple, la couche d’abstraction matérielle HAL peut calculer un complément à un de la valeur aléatoire. Puis, la couche d’abstraction matérielle HAL écrit la configuration de transaction transformé CONFT et la valeur aléatoire RND ou la valeur aléatoire transformée RNDT dans des registres du périphérique IP. Ici, la couche d’abstraction matérielle HAL écrit la configuration de transaction transformé CONFT dans des registres PRGFT du périphérique IP et la valeur aléatoire transformée RNDT dans un autre registre du périphérique IP. Si le périphérique est un circuit de cryptographie, la couche d’abstraction matérielle HAL calcule une valeur de hachage transformée de la clé de cryptographie à partir de la valeur de hachage transmise par l’application APP, puis écrit cette valeur de hachage transformée dans les registres du périphérique IP. Le procédé comprend ensuite une étape 24, illustrée à la , dans laquelle le périphérique IP calcule une configuration de transaction transformée CONFTP à partir de la configuration CONF enregistrée dans les registres de configuration PRGF du périphérique IP. Cette configuration de transaction transformée CONFTP est calculée de la même manière que la configuration de transaction CONFT calculée précédemment par la couche d’abstraction matérielle HAL. Par exemple, le périphérique IP peut calculer un complément à un de la configuration de transaction CONF enregistrée dans les registres de configuration du périphérique IP. Pour calculer la configuration de transaction transformée CONFTP, le périphérique IP comprend un circuit (non représenté) configuré pour effectuer ce calcul. Par exemple, le circuit peut être configuré pour générer un complément à un de la configuration transformée enregistrée dans les registres de configuration. Dans le cas où, la couche d’abstraction matérielle HAL a précédemment calculé une valeur aléatoire transformée RNDT, le périphérique IP calcule également une valeur aléatoire transformée RNDTP à partir de la valeur aléatoire RND générée par le périphérique IP à l’étape 20. La configuration de transaction transformée CONFTP calculée par le périphérique IP et la configuration de transaction transformée CONFT calculée par la couche d’abstraction matérielle HAL sont ensuite comparées par le périphérique IP. De même, la valeur aléatoire RND générée par le périphérique IP ou la valeur aléatoire transformée RNDTP calculée par le périphérique IP est ensuite comparé à la valeur aléatoire ou à la valeur aléatoire transformée RNDT écrite par la couche d’abstraction dans les registres du périphérique IP. Ici, c’est la valeur aléatoire transformée RNDTP calculée par le périphérique IP qui est comparé à la valeur aléatoire transformée RNDT écrite par la couche d’abstraction dans les registres du périphérique IP. Si la configuration de transformée CONFTP calculée par le périphérique IP est égale à la configuration de transaction transformée CONFT calculée par la couche d’abstraction matérielle HAL sont égales et si la valeur aléatoire générée par le périphérique IP ou la valeur aléatoire transformée RNDTP par le périphérique IP est égale à la valeur aléatoire ou à la valeur aléatoire transformée RNDT écrite par la couche d’abstraction dans les registres du périphérique IP, alors la transaction est autorisée par le périphérique (OKT). Sinon, la transaction est refusée (NOT). En particulier, si le périphérique est un circuit de cryptographie, le périphérique IP calcule une valeur de hachage transformée de la clé de cryptographie à partir de la valeur de hachage enregistrée dans les registres de configuration PRGF du périphérique IP, puis compare la valeur de hachage transformée calculée par le périphérique IP et la valeur de hachage transformée calculée par la couche d’abstraction matérielle HAL. Ainsi, une transaction ne peut être effectuée uniquement en cas d’égalité entre les configurations de transaction transformées CONFTP et CONFT et entre les champs aléatoires ou les champs aléatoires transformés RNDT, RNDTP. Il est alors possible d’empêcher une exécution d’une transaction lorsqu’une attaque par injection de faute intervient pour modifier la configuration de transaction CONF écrite dans les registres de configuration. En effet, une modification de la configuration de transaction dans les registres de configuration du périphérique IP peut être détectée grâce à la comparaison effectuée. En particulier, comme vu précédemment, la configuration de transaction CONF enregistrée dans les registres de configuration est lue par la couche d’abstraction matérielle HAL à l’étape 21. Cette configuration lue est ensuite utilisée pour calculer une configuration de transaction transformée CONFT qui est par la suite comparée avec une configuration de transaction transformée CONFTP calculée à partir de la configuration de transaction CONF enregistrée dans les registres de comparaison du périphérique IP. Ainsi, une modification de la configuration de transaction CONF enregistrée dans les registres implique que la configuration de transaction transformée CONFTP calculée par le périphérique IP est différente de la configuration de transaction transformée CONFT calculée par la couche d’abstraction matérielle HAL. La comparaison permet alors de détecter cette différence entre les configurations de transaction transformées CONFTP, CONFT. La comparaison permet ainsi d’évaluer avant d’effectuer la transaction si la configuration de transaction CONF enregistré dans les registres de configuration du périphérique IP est bien celle souhaitée. Il est donc ainsi possible de détecter une attaque par injection de faute. Ainsi, un tel procédé permet d’éviter que le périphérique IP effectue une transaction non contrôlée à partir d’une configuration non souhaitée. Le procédé peut également comprendre, si une différence entre les configurations de transaction transformées CONFTP, CONFT est détectée, une émission d’un signal d’avertissement par le périphérique IP permettant d’indiquer à l’application APP que la transaction n’est pas effectuée. De la sorte, l’application APP peut savoir qu’une transaction n’a pas été exécutée et peut alors renouveler la transaction. Procédé de transaction entre une application (APP) exécutée par un processeur (PROC) et un périphérique (IP) par l’intermédiaire d’une couche d’abstraction matérielle (HAL), procédé comprenant : - une configuration du périphérique (IP) dans laquelle une configuration de transaction émise par l’application (APP) est écrite dans des registres de configuration du périphérique (IP) par l’intermédiaire de la couche d’abstraction matérielle (HAL), puis - une vérification d’une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), puis - une exécution de la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) est conforme. Procédé selon la revendication 1, comprenant en outre une émission par le périphérique (IP) d’un signal d’avertissement à destination de l’application (APP) si la configuration de transaction n’est pas conforme de façon à indiquer à l’application que la transaction n’est pas effectuée. Procédé selon l’une des revendications 1 ou 2, dans lequel la vérification de la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) comprend : - une lecture par la couche d’abstraction matérielle (HAL) de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), puis - un calcul par la couche d’abstraction matérielle (HAL) d’une configuration de transaction transformée à partir de la configuration de transaction lue, - un calcul par le périphérique (IP) d’une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), - une comparaison entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle (HAL) et la configuration de transaction transformée calculée par le périphérique (IP), et dans lequel la transaction est exécutée uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle (HAL) est égale à la configuration de transaction transformée calculée par le périphérique (IP). Procédé selon la revendication 3, dans lequel la vérification de la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) comprend en outre : - une génération d’une valeur aléatoire dans un registre du périphérique (IP) après ladite configuration du périphérique (IP), puis - une lecture par la couche d’abstraction matérielle (HAL) de la valeur aléatoire enregistrée dans un registre du périphérique (IP), puis - un calcul par la couche d’abstraction matérielle (HAL) d’une valeur aléatoire transformée à partir de la valeur aléatoire lue, - un calcul par le périphérique (IP) d’une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique (IP), - une comparaison entre la valeur aléatoire transformée calculée par la couche d’abstraction matérielle (HAL) et la valeur aléatoire transformée calculée par le périphérique (IP), et dans lequel la transaction est exécutée uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle (HAL) est égale à la valeur aléatoire transformée calculée par le périphérique (IP). Système sur puce comprenant : - un processeur configuré pour exécuter une application, - un périphérique (IP) comprenant des registres de configuration, l’application étant configurée pour communiquer avec le périphérique (IP) par l’intermédiaire d’une couche d’abstraction matérielle (HAL), dans lequel la couche d’abstraction matérielle (HAL) est adaptée pour : - configurer le périphérique (IP) pour une transaction en écrivant, dans les registres de configuration du périphérique (IP), une configuration de transaction émise par l’application, et dans lequel la couche d’abstraction matérielle (HAL) et le périphérique (IP) sont adaptés pour vérifier une conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), le périphérique (IP) étant adapté pour exécuter la transaction uniquement si la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP) est conforme. Système selon la revendication 5, dans lequel le périphérique (IP) est configuré pour émettre un signal d’avertissement à destination de l’application si la configuration de transaction n’est pas conforme de façon à indiquer à l’application que la transaction n’est pas effectuée. Système selon l’une des revendications 5 ou 6, dans lequel pour vérifier la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), la couche d’abstraction matérielle (HAL) est configurée pour : - lire la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), puis - calculer une configuration de transaction transformée à partir de la configuration de transaction lue, et le périphérique (IP) est configuré pour : - calculer une configuration de transaction transformée à partir de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), - comparer entre la configuration de transaction transformée calculée par la couche d’abstraction matérielle (HAL) et la configuration de transaction transformée calculée par le périphérique (IP), le périphérique (IP) étant adapté pour exécuter la transaction uniquement si la configuration de transaction transformée calculée par la couche d’abstraction matérielle (HAL) est égale à la configuration de transaction transformée calculée par le périphérique (IP). Système selon la revendication 7, dans lequel pour vérifier la conformité de la configuration de transaction enregistrée dans les registres de configuration du périphérique (IP), le périphérique (IP) est en outre adapté pour générer une valeur aléatoire dans un registre du périphérique (IP) après la configuration du périphérique (IP), la couche d’abstraction matérielle (HAL) est en outre configurée pour : - lire la valeur aléatoire enregistrée dans un registre du périphérique, puis - calculer une valeur aléatoire transformée à partir de la valeur aléatoire lue, le périphérique est également adapté pour : - calculer une valeur aléatoire transformée à partir de la valeur aléatoire enregistrée dans un registre du périphérique, - comparer la valeur aléatoire transformée calculée par la couche d’abstraction matérielle au la valeur aléatoire transformée calculée par le périphérique, le périphérique (IP) étant adapté pour exécuter la transaction uniquement si la valeur aléatoire transformée calculée par la couche d’abstraction matérielle est égale à la valeur aléatoire transformée calculée par le périphérique.