Brevet FR2890482A1 — publié le 20070309

Le présent exposé concerne un dispositif à semiconducteur utilisant un procédé d'embrouillage / désembrouillage de mémoire morte et un procédé pour le mettre en oeuvre. De façon générale, lorsqu'un dispositif à semiconducteur est mis sous tension, un processeur, par exemple une unité centrale de traitement (UC), lit un code de fonctionnement à une adresse spécifique dans une mémoire pour exécuter un traitement désiré par l'utilisateur. Le code de fonctionnement est généralement stocké dans une mémoire morte (ROM). Pour la sécurité, on a utilisé un procédé d'embrouillage de mémoire morte pour éviter que le code de fonctionnement ne soit piraté. Le procédé d'embrouillage embrouille le code de fonctionnement en utilisant une clé d'embrouillage prédéterminée et stocke dans une mémoire morte le code de fonctionnement embrouillé. Le code de fonctionnement embrouillé est ensuite désembrouillé en utilisant une clé de désembrouillage avant qu'il ne puisse être exécuté. Une clé de désembrouillage est généralement la même qu'un clé d'embrouillage. Cependant, dans le procédé d'embrouillage de mémoire morte, une clé pour désembrouiller un code de fonctionnement est généralement fixée. Par exemple, un code de fonctionnement embrouillé est désembrouillé en utilisant un clé câblée. Par conséquent, dans un dispositif à semiconducteur tel qu'une puce de carte intelligente, si différents clients utilisent le même type de dispositif ou si une version de son code de fonctionnement est actualisée, le code de fonctionnement est embrouillé / désembrouillé en utilisant la même clé. Du fait que le code de fonctionnement peut être lu dans la mémoire morte en piratant une clé fixée, un niveau de sécurité du code de fonctionnement est faible. Il existe donc un besoin portant sur une technique d'embrouillage qui 2890482 2 soit capable d'augmenter un niveau de sécurité du code de fonctionnement dans une mémoire morte. Conformément à un exemple de mode de réalisation, il est proposé un dispositif à semiconducteur qui comprend un processeur, une mémoire morte (ROM), un générateur de clé et une unité de restauration. La mémoire morte stocke un code de fonctionnement embrouillé ou chiffré et une information de génération de clé. Le générateur de clé génère une clé en utilisant l'information de génération de clé. L'unité de rétablissement rétablit le code de fonctionnement original en désembrouillant le code de fonctionnement embrouillé ou en déchiffrant le code de fonctionnement chiffré, en utilisant la clé générée. L'information de génération de clé peut inclure au moins une d'une information concernant le dispositif à semiconducteur et d'une information concernant une version du code de fonctionnement original. L'unité de rétablissement peut inclure au moins un d'un désembrouilleur et d'un dispositif de déchiffrement. Le dispositif à semiconducteur peut inclure une unité de commande initiale qui commande l'information de génération de clé émise par une région de test de la mémoire morte au moment où de l'énergie ou un signal de restauration est fourni au dispositif à semiconducteur. L'unité de commande initiale contient une adresse de la région de test qui stocke l'information de génération de clé. Le générateur de clé génère un signal d'achèvement de génération de clé lorsque la clé est générée, et le processeur exécute le code de fonctionnement original rétabli en réponse à une version retardée du signal d'achèvement de génération de clé. Le dispositif à semiconducteur peut inclure une bascule qui reçoit le signal d'achèvement de génération de clé, retarde le signal d'achèvement de génération de clé et émet vers le processeur une version retardée du signal d'achèvement de génération de clé. Conformément à un exemple de mode de réalisation de la présente invention, il est proposé un dispositif à semiconducteur qui comprend un processeur, une mémoire morte et une unité de rétablissement. La mémoire morte stocke une clé et un code de fonctionnement embrouillé ou chiffré. L'unité de rétablissement lit la clé dans la mémoire morte et rétablit le code de fonctionnement original en désembrouillant le code de fonctionnement embrouillé ou en déchiffrant le code de fonctionnement chiffré, en utilisant la clé, avant l'exécution du code de fonctionnement. Le dispositif à semiconducteur peut inclure une unité de commande initiale qui commande l'émission de la clé à partir de la mémoire morte lorsque de l'énergie ou un signal de restauration est fourni au dispositif à semiconducteur. La mémoire morte peut inclure une région d'utilisateur et une région de test avec le code de fonctionnement embrouillé ou chiffré stocké dans la région d'utilisateur et la clé stockée dans la région de test. L'unité de commande initiale peut contenir une adresse de la région de test qui stocke la clé. La clé peut être stockée dans la mémoire morte pendant un processus de fabrication du dispositif à semiconducteur. Conformément à un exemple de mode de réalisation de la présente invention, il est proposé un procédé pour faire fonctionner un dispositif à semiconducteur ayant une mémoire morte, un processeur, un générateur de clé et une unité de rétablissement. La mémoire morte stocke une information de génération de clé et un code de fonctionnement embrouillé ou chiffré. Le procédé comprend la lecture de l'information de génération de clé dans la mémoire morte au moment où de l'énergie ou un signal de restauration est fourni au dispositif à semiconducteur, la 2890482 4 génération d'une clé, dans le générateur de clé, en utilisant l'information de génération de clé, le rétablissement du code de fonctionnement original, dans l'unité de rétablissement, en désembrouillant le code de fonctionnement embrouillé ou en déchiffrant le code de fonctionnement chiffré, en utilisant la clé, et l'exécution, au processeur, du code de fonctionnement original rétabli. Le procédé peut en outre comprendre la génération, au générateur de clé, d'un signal d'achèvement de génération de clé lorsque la clé est générée. Le code de fonctionnement original peut être rétabli après la génération du signal d'achèvement de génération de clé. L'information de génération de clé et le code de fonctionnement embrouillé ou chiffré peuvent être stockés dans la mémoire morte pendant un processus de fabrication du dispositif à semiconducteur. Une information de génération de clé différente peut être fixée pour chaque version du code de fonctionnement original. Conformément à un exemple de mode de réalisation de la présente invention, il est proposé un procédé pour faire fonctionner un dispositif à semiconducteur ayant une mémoire morte, un processeur et une unité de rétablissement. La mémoire morte stocke une clé et un code de fonctionnement embrouillé ou chiffré. Le procédé comprend l'extraction, à partir de la mémoire morte, de la clé et du code de fonctionnement embrouillé ou chiffré, au moment où de l'énergie ou un signal de restauration est fourni au dispositif à semiconducteur, le rétablissement du code de fonctionnement original, dans l'unité de rétablissement, en désembrouillant le code de fonctionnement embrouillé ou en déchiffrant le code de fonctionnement chiffré, en utilisant la clé extraite, et l'exécution, au processeur, du code de fonctionnement original rétabli. 2890482 5 La clé et le code de fonctionnement embrouillé ou chiffré peuvent être stockés dans la mémoire morte pendant un processus de fabrication du dispositif à semiconducteur. Une clé différente peut être fixée pour chaque version du code de fonctionnement original. Les aspects ci-dessus de la présente invention, ainsi que d'autres, ressortiront davantage en décrivant en détail des exemples de modes de réalisation de celle-ci, en référence aux dessins annexés dans lesquels: la figure 1 est un schéma illustrant un procédé d'embrouillage / désembrouillage de mémoire morte (ROM) conforme à un exemple de mode de réalisation de la présente invention; la figure 2 est un schéma synoptique d'un 15 dispositif à semiconducteur conforme à un exemple de mode de réalisation de la présente invention; la figure 3 est un schéma synoptique illustrant une unité de commande initiale et une mémoire morte de la figure 2 en conformité avec un exemple de mode de réalisation de la présente invention; la figure 4 est un organigramme illustrant un procédé pour faire fonctionner un dispositif à semiconducteur en conformité avec un exemple de mode de réalisation de la présente invention; et la figure 5 est un organigramme illustrant un procédé pour faire fonctionner un dispositif à semiconducteur en conformité avec un exemple de mode de réalisation de la présente invention. On va maintenant décrire la présente invention en détail en se référant aux dessins annexés, qui montrent des exemples de modes de réalisation de l'invention. Des numéros de référence semblables désignent des éléments semblables dans l'ensemble des dessins. La figure 1 est un schéma illustrant un procédé 35 d'embrouillage / désembrouillage de mémoire morte (ROM) conforme à un exemple de mode de réalisation de la présente 2890482 6 invention. En se référant à la figure 1, on note qu'une information de génération de clé est stockée dans une région prédéterminée d'une mémoire morte. L'information de génération de clé est utilisée pour générer une clé de désembrouillage, et elle peut inclure une information concernant un dispositif à semiconducteur (non représenté) et une information concernant une version de code de fonctionnement. En outre, un code embrouillé est également stocké dans la région prédéterminée de la mémoire morte. Le code embrouillé est un code de fonctionnement obtenu en embrouillant un code de fonctionnement original par l'utilisation d'une clé d'embrouillage. Ici, la clé d'embrouillage est la même que la clé de désembrouillage. La région prédéterminée de la mémoire morte est divisée en une région d'utilisateur et une région de test. Le code embrouillé peut être stocké dans la région d'utilisateur, et l'information de génération de clé peut être stockée dans la région de test. La région de test est une région de la mémoire morte dans laquelle le code de fonctionnement n'est pas stocké. Un fabricant du dispositif à semiconducteur utilise la région de test pour tester le dispositif à semiconducteur. Si l'information de génération de clé et le code embrouillé sont stockés dans la mémoire morte, le dispositif à semiconducteur désembrouille le code embrouillé avant l'exécution du code de fonctionnement. Pour désembrouiller le code embrouillé, lorsque de l'énergie ou un signal de restauration est fourni au dispositif à semiconducteur à partir d'un dispositif externe, le dispositif à semiconducteur lit tout d'abord l'information de génération de clé dans la région prédéterminée de la mémoire morte. Un générateur de clé génère une clé d'après l'information de génération de clé qui est lue. Si la clé est générée, le code embrouillé lu dans la mémoire morte est désembrouillé en utilisant la clé générée, pour rétablir le code de fonctionnement original. La figure 2 est un schéma synoptique d'un dispositif à semiconducteur 200 conforme à un exemple de mode de réalisation de la présente invention. En se référant à la figure 2, on note que le dispositif à semiconducteur 200 comprend une mémoire morte 210, une unité de commande initiale 220, un processeur 230, un désembrouilleur 240 et une mémoire non volatile (MNV) 250, et un générateur de clé 260. Dans le dispositif à semiconducteur 200, la mémoire morte 210 stocke un code de fonctionnement pour accomplir une séquence de fonctionnement prédéterminée, telle qu'une séquence de fonctionnement désirée par l'utilisateur. Le dispositif à semiconducteur 200 peut être une carte intelligente ou un dispositif à carte à circuit intégré. La mémoire morte 210 est une mémoire morte pour stocker un code embrouillé et une information de génération de clé. La mémoire morte 210 peut être une mémoire morte à masque ou une mémoire morte programmable (PROM). L'information de génération de clé peut être stockée dans la mémoire morte 210 pendant un processus de fabrication du dispositif à semiconducteur 200. Par exemple, l'information de génération de clé et le code de fonctionnement embrouillé peuvent être stockés dans la mémoire morte 210 pendant un processus de masquage pour l'enregistrement de code en mémoire morte, qui est effectué pendant la fabrication du dispositif à semiconducteur 200. Il est préférable que l'information de génération de clé varie conformément au code de fonctionnement et contienne une information concernant une version du code de fonctionnement. L'information de génération de clé est stockée dans une région de test de la mémoire morte 210. L'unité de commande initiale 220 commande l'information de génération de clé qui doit être fournie par la mémoire morte 210 au générateur de clé 260, en réponse à un signal d'horloge XCLK et un signal initial INT. Le signal initial INT peut être un signal interne activé lorsque le dispositif à semiconducteur 200 est mis sous tension, ou en réponse à un signal de restauration. Par conséquent, l'unité de commande initiale 220 commande l'information de génération de clé qui doit être émise à partir d'une région prédéterminée de la mémoire morte 210 lorsque de l'énergie est fournie au dispositif à semiconducteur 200 ou lorsque le dispositif à semiconducteur 200 est restauré. Comme illustré sur la figure 3, l'unité de commande initiale 220 contient une adresse (par exemple une adresse initiale) indiquant la région prédéterminée dans laquelle l'information de génération de clé est stockée, et commande des données (par exemple l'information de génération de clé) devant être émises à partir de la région prédéterminée indiquée par l'adresse initiale, en réponse au signal initial INIT. Le générateur de clé 260 génère une clé (par exemple une clé de désembrouillage) d'après l'information de génération de clé émise par la mémoire morte 210. Après avoir généré la clé, le générateur de clé 260 peut générer un signal d'achèvement de génération de clé KD. Le signal d'achèvement de génération de clé KD est de préférence appliqué au processeur 230 par l'intermédiaire d'une bascule 270, et non directement à partir du générateur de clé 260. La bascule 270 reçoit respectivement le signal d'achèvement de génération de clé KD et le signal d'horloge XCLK, par l'intermédiaire d'une borne d'entrée (par exemple une borne D) et d'une borne d'horloge de la bascule, et elle est restaurée par le signal initial INIT. Le désembrouilleur 240 rétablit le code de fonctionnement en désembrouillant le code lu dans la mémoire morte 210, en utilisant la clé générée. Le désembrouilleur 240 peut être une porte logique, par exemple une porte OU-Exclusif (OU-EX), qui effectue une opération OU-EX sur la clé et le code lus dans la mémoire morte 210. 2890482 9 Le processeur 230 fonctionnement prédéterminée désembrouillé, en réponse génération de clé KD ou KD'. La mémoire non volatile 250, qui est incluse dans le dispositif à semiconducteur 200 pour stocker des données, peut être une mémoire flash. Conformément à un exemple de mode de réalisation de la présente invention, l'information de génération de clé est stockée conjointement au code de fonctionnement dans la mémoire morte 210, et non dans la mémoire non volatile 250. La figure 4 est un organigramme illustrant un procédé pour faire fonctionner un dispositif à semiconducteur en conformité avec un exemple de mode de réalisation de la présente invention. Ce procédé est exécuté par le dispositif à semiconducteur 200 illustré sur la figure 2, et sera décrit en s'y référant. Lorsque le dispositif à semiconducteur 200 est mis sous tension ou est restauré (S410), l'information de génération de clé est lue initialement dans une mémoire morte 210 du dispositif à semiconducteur 200 (S415). Avant de lire l'information de génération de clé, le code de fonctionnement est embrouillé ou chiffré et est stocké dans la mémoire morte 210, et l'information de génération de clé utilisée pour générer une clé pour embrouiller / chiffrer le code de fonctionnement est également stockée dans la mémoire morte 210. La clé pour embrouiller / chiffrer le code de fonctionnement peut être la même qu'une clé pour désembrouiller / déchiffrer le code de fonctionnement. Ensuite, la clé est générée à partir de l'information de génération de clé lue dans la mémoire morte 210 (S420). Lorsqu'il est déterminé que la clé est générée (S425), le code de fonctionnement est lu dans la mémoire morte 210 (S430). Le code de fonctionnement lu dans la mémoire morte 210 peut être un code de fonctionnement au accomplit la séquence de en exécutant le code signal d'achèvement de 20 25 30 35 qui a été traité, par exemple, par un procédé d'embrouillage ou de chiffrement. Le code de fonctionnement est rétabli en utilisant la clé générée (S435). En d'autres termes, le code de 5 fonctionnement original est rétabli en désembrouillant / déchiffrant le code de fonctionnement lu dans la mémoire morte 210, en utilisant la clé générée. Le code de fonctionnement peut être lu avant que la clé ne soit générée. Cependant, le code de fonctionnement est désembrouillé / déchiffré après que la clé a été générée. Ensuite, lorsque le code de fonctionnement original est rétabli en désembrouillant / déchiffrant le code de fonctionnement, un processeur 230 exécute le code rétabli (S440). Conformément aux exemples de mode de réalisation de la présente invention décrits ci-dessus, l'information de génération de clé est stockée dans la mémoire morte 210, la clé est générée en utilisant l'information de génération de clé, et le code de fonctionnement original est rétabli en utilisant la clé générée. Cependant, une clé peut être stockée dans la mémoire morte 210, à la place de l'information de génération de clé. La figure 5 est un organigramme illustrant un procédé pour faire fonctionner un dispositif à semiconducteur conforme à un exemple de mode de réalisation de la présente invention. En particulier, la figure 5 illustre un cas dans lequel une clé est stockée directement dans une mémoire morte. En se référant à la figure 5, on note que lorsqu'un dispositif à semiconducteur est mis sous tension ou restauré (S410), une clé est tout d'abord lue dans une mémoire morte du dispositif à semiconducteur (S416). Ensuite, un code de fonctionnement est lu dans la mémoire morte (S430), le code de fonctionnement original est rétabli en désembrouillant le code de fonctionnement en utilisant la clé lue (S435) et le code rétabli est exécuté (S440). Du fait que la clé est stockée directement dans la mémoire morte, un générateur de clé n'est pas nécessaire. Par exemple, un générateur de clé 260 et une bascule 270 du dispositif à semiconducteur 200 de la figure 2 ne sont pas nécessaires dans ce cas. Cependant, pour une plus grande sécurité, il est préférable que la mémoire morte stocke l'information de génération de clé, et non la clé, et que la clé soit générée en utilisant l'information de génération de clé. Conformément à un exemple de mode de réalisation de la présente invention, l'information de génération de clé peut inclure une information concernant le dispositif à semiconducteur (par exemple une information de dispositif) et une information concernant la version du code de fonctionnement. Dans ce cas, l'information de génération de clé varie conformément au dispositif à semiconducteur et à la version du code de fonctionnement. En outre, lorsque l'information de génération de clé est stockée dans la mémoire morte pendant un processus de masquage de mémoire morte, une clé différente peut être générée en changeant un motif de masque de mémoire morte pour chaque client et/ou code de fonctionnement, sans modifier le matériel. De plus, du fait que la clé d'embrouillage / désembrouillage varie pour chaque client ou version de code de fonctionnement, un niveau de sécurité pour le code de fonctionnement est augmenté en comparaison avec une technique d'embrouillage qui utilise la même clé indépendamment d'un client ou d'une version de code de fonctionnement. Les exemples de modes de réalisation de la présente invention envisagés ci-dessus ont été décrits en référence à un dispositif à semiconducteur qui embrouille / désembrouille un code de fonctionnement en utilisant une clé. Cependant, la présente invention est également applicable à un dispositif à semiconducteur qui chiffre / 2890482 12 déchiffre un code de fonctionnement en utilisant une clé. Par exemple, la présente invention peut être utilisée dans un dispositif à semiconducteur qui chiffre un code de fonctionnement, stocke le code chiffré dans une mémoire morte et rétablit le code de fonctionnement original en déchiffrant le code chiffré, en utilisant la clé. Conformément à un exemple de mode de réalisation de la présente invention, une clé différente peut être fixée pour chaque version de code de fonctionnement (par exemple un programme) pour un dispositif à semiconducteur, ce qui a pour effet d'améliorer un niveau de sécurité du code de fonctionnement, et d'éviter ainsi que le code de fonctionnement ne soit piraté. De plus, du fait qu'une information de génération de clé pour rétablir le code de fonctionnement est stockée avec le code de fonctionnement dans une mémoire morte, le code de fonctionnement peut être rétabli sans avoir à utiliser une autre mémoire, telle qu'une mémoire non volatile. Bien que l'invention ait été particulièrement décrite et représentée en référence à des exemples de modes de réalisation de celle-ci, l'homme de l'art notera que divers changements de forme et de détails peuvent y être apportés, sans sortir de l'esprit et du cadre de l'invention tels qu'ils sont définis par les revendications annexées. REVENDICATIONS 1. Dispositif à semiconducteur (200) caractérisé en ce qu'il comprend: un processeur (230) ; une mémoire morte (210), qui stocke un code de fonctionnement embrouillé ou chiffré et une information de génération de clé ; un générateur de clé (260) qui génère une clé en utilisant l'information de génération de clé ; et une unité de rétablissement (240) qui rétablit un code de fonctionnement original en désembrouillant le code de fonctionnement embrouillé ou en déchiffrant le code de fonctionnement chiffré, en utilisant la clé générée. 2. Dispositif à semiconducteur selon la revendication 1, caractérisé en ce que l'information de génération de clé comprend au moins une des suivantes: une information concernant le dispositif à semiconducteur (200) ; et une information concernant une version du code de fonctionnement original. 3. Dispositif à semiconducteur selon la revendication 1, caractérisé en ce que l'unité de rétablissement (240) comprend au moins un des suivants: un désembrouilleur; et un dispositif de déchiffrement. 4. Dispositif à semiconducteur selon la revendication 1, caractérisé en ce qu'il comprend en outre une unité de commande initiale (220) qui commande l'émission d'information de génération de clé à partir d'une région de test de la mémoire morte (210) lorsque de l'énergie ou un signal de restauration (INIT) est fourni au dispositif à semiconducteur. 5. Dispositif à semiconducteur selon la revendication 4, caractérisé en ce que l'unité de commande initiale (220) contient une adresse de la région de test qui stocke l'information de génération de clé. 6. Dispositif à semiconducteur selon la revendication 1, caractérisé en ce que le générateur de clé (260) génère un signal d'achèvement de génération de clé (ND) lorsque la clé est générée; et le processeur 2890482 14 (230) exécute le code de fonctionnement original rétabli en réponse à une version retardée (KD') du signal d'achèvement de génération de clé. 7. Dispositif à semiconducteur selon la revendication 6, caractérisé en ce qu'il comprend en outre une bascule (270) pour recevoir le signal d'achèvement de génération de clé (KD), retarder le signal d'achèvement de génération de clé, et émettre vers le processeur (230) la version retardée (KD') du signal d'achèvement de génération de clé. 8. Dispositif à semiconducteur (200) caractérisé en ce qu'il comprend: un processeur (230) ; une mémoire morte qui stocke une clé et un code de fonctionnement embrouillé ou chiffré ; et une unité de rétablissement (240) qui lit la clé dans la mémoire morte (210) et rétablit un code de fonctionnement original en désembrouillant le code de fonctionnement embrouillé ou en déchiffrant le code de fonctionnement chiffré, en utilisant la clé, avant l'exécution du code de fonctionnement original. 9. Dispositif à semiconducteur selon la revendication 8, caractérisé en ce qu'il comprend en outre: une unité de commande initiale (220) qui commande l'émission de la clé par la mémoire morte (210) lorsque de l'énergie ou un signal de restauration est fourni au dispositif à semiconducteur {200). 10. Dispositif à semiconducteur selon la revendication 9, caractérisé en ce que la mémoire morte (210) comprend une région d'utilisateur et une région de test; et le code de fonctionnement embrouillé ou chiffré est stocké dans la région d'utilisateur et la clé est stockée dans la région de test. 11. Dispositif à semiconducteur selon la revendication 10, caractérisé en ce que l'unité de commande initiale (220) contient une adresse de la région de test qui stocke la clé. 2890482 15 12. Dispositif à semiconducteur selon la revendication 8, caractérisé en ce que la clé est stockée dans la mémoire morte (210) pendant un processus de fabrication du dispositif à semiconducteur (200). 13. Procédé pour faire fonctionner un dispositif à semiconducteur (200) ayant une mémoire morte (210) qui stocke une information de génération de clé et un code de fonctionnement embrouillé ou chiffré, un processeur (230), un générateur de clé (260) et une unité de rétablissement (240), le procédé étant caractérisé en ce qu'il comprend les étapes consistant à : lire l'information de génération de clé dans la mémoire morte (210) lorsque de l'énergie ou un signal de restauration est fourni au dispositif à semiconducteur (200) ; générer une clé, au générateur de clé (260), en utilisant l'information de génération de clé ; rétablir un code de fonctionnement original, à l'unité de rétablissement (240), en désembrouillant le code de fonctionnement embrouillé ou en déchiffrant le code de fonctionnement chiffré, en utilisant la clé ; et exécuter, au processeur (230), le code de fonctionnement original rétabli. 14. Procédé selon la revendication 13, caractérisé en ce qu'il comprend en outre la génération d'un signal d'achèvement de génération de clé (KD), au générateur de clé (260) lorsque la clé est générée; et en ce que le code de fonctionnement original est rétabli après que le signal d'achèvement de génération de clé (KD) a été généré. 15. Procédé selon la revendication 13, caractérisé en ce qu'il comprend en outre le stockage de l'information de génération de clé et du code de fonctionnement embrouillé ou chiffré, dans la mémoire morte (210), pendant un processus de fabrication du dispositif à semiconducteur (200). 16. Procédé selon la revendication 13, caractérisé 35 en ce qu'il comprend en outre la fixation d'une information 2890482 16 de génération de clé différente pour chaque version du code de fonctionnement original. 17. Procédé pour faire fonctionner un dispositif à semiconducteur (200) ayant une mémoire morte (210) qui stocke une clé et un code de fonctionnement embrouillé ou chiffré, un processeur (230) et une unité de rétablissement (240), le procédé étant caractérisé en ce qu'il comprend les étapes consistant à : extraire de la mémoire morte (210) la clé et le code de fonctionnement embrouillé ou chiffré, lorsque de l'énergie ou un signal de restauration est fourni au dispositif à semiconducteur (200) ; rétablir un code de fonctionnement original, à l'unité de rétablissement (240), en désembrouillant le code de fonctionnement embrouillé ou en déchiffrant le code de fonctionnement chiffré, en utilisant la clé extraite; et exécuter, au processeur (230), le code de fonctionnement original rétabli. 18. Procédé selon la revendication 17, caractérisé en ce qu'il comprend en outre le stockage de la clé et du code de fonctionnement embrouillé ou chiffré dans la mémoire morte (210) pendant un processus de fabrication du dispositif à semiconducteur (200). 19. Procédé selon la revendication 17, caractérisé en ce qu'il comprend en outre la fixation d'une clé différente pour chaque version du code de fonctionnement original.