Brevet FR2818772A1 — publié le 20020628

PROCEDE DE SECURISATION D'UN OPERATEUR LOGIQUE OU MATHEMATIQUE IMPLANTE DANS UN MODULE ELECTRONIQUE A MICROPROCESSEUR, AINSI QUE LE MODULE ELECTRONIQUE ET LE SYSTEME EMBARQUE ASSOCIES La présente invention concerne la sécurisation des systèmes embarqués comportant un ou plusieurs modules électroniques incorporant au moins un microprocesseur, une mémoire de type ROM contenant au moins un programme à exécuter et des moyens d'entrée/sortie pour communiquer avec l'extérieur. Certains modules comportent également d'autres circuits accessoires tels des mémoires RAM, EEPROM pour des applications plus élaborées et sont également connus sont le nom de microcontrôleurs. De tels modules sont réalisés le plus souvent sous la forme d'un microcircuit électronique intégré monolithique, ou puce. Ces modules peuvent être utilisés d'une part comme tels une fois protégés physiquement et montés par exemple sur un objet portatif type carte à puce, carte à microcircuit ou analogue utilisable dans divers domaines, notamment le domaine des cartes bancaires et/ou commerciales, la radiotéléphonie mobile, la télévision à péage, la santé et les transports, et d'autre part dans d'autres systèmes embarqués allant par exemple de systèmes relativement simples, tels que des capteurs et des interrupteurs, vers des systèmes plus complexes tels des contrôleurs industriels, des multicommutateurs et autres sous-ensembles et appareils contrôlés électroniquement jusqu'aux systèmes industriels complets contrôlés électroniquement. La multiplication des applications dans la vie courante des cartes à puce et autres systèmes embarqués et la généralisation de leur utilisation dans certains domaines, comme celui des cartes bancaires, des cartes santé ou de la télévision à péage a rendu nécessaire l'introduction de procédures sécuritaires, par exemple des procédures cryptographiques et/ou des procédures de brouillage de données, par exemple les données transitant sur le bus interne du microcontrôleur. Ces procédures sécuritaires concernent notamment l'authentification de l'utilisateur, l'authentification de la transaction et de sa validité, le maintien de la confidentialité des données, le cryptage/décryptage des données. Si l'utilisation frauduleuse des cartes à puce n'est pas un phénomène nouveau, l'accroissement du volume et de la valeur des transactions sur carte à puce a amené les fraudeurs à utiliser des méthodes et des moyens de plus en plus sophistiqués. En particulier des attaques par rayonnements brefs et ciblés sur la puce ont pour conséquence de modifier les données et/ou les codes transitant de la ROM vers le microprocesseur sur le bus interne avec pour résultat l'inexécution ou l'exécution irrégulière de certaines parties du code, par exemple l'exécution d'instructions inopérantes en lieu et place d'une ou plusieurs opérations sécuritaires. Il s'avère que le repérage précis de la position d'une opération donnée sensible (par exemple relevant du cryptage et/ou du décryptage) dans un programme encodé dans une mémoire ROM permet de mieux cibler l'attaque et d'accroître de façon significative le pouvoir de nuisance de cette dernière. Pour procéder à cette localisation, les fraudeurs utilisent la méthode dite SPA (en anglais Simple Power Analysis) qui consiste à relever la consommation de courant en certains points du microcontrôleur. La méthode SPA peut être complétée par la méthode DPA (en anglais Differential Power Analysis) basée sur l'analyse comparative des signaux. De ce point de vue il arrive que l'exécution de certaines opérations programmées (telle que l'opération XOR [OU exclusif] fréquemment utilisée en cryptage/ décryptage) révèle une signature suffisamment caractéristique pour permettre l'identification de l'opération en cause et par suite sa localisation dans le programme. La présente invention a pour but de sécuriser certaines opérations vulnérables dans un programme, notamment les opérateurs logiques ou mathématiques ou des circuits fonctionnels analogues en rendant leurs identifications plus difficiles, voire beaucoup plus difficiles. A cette fin l'invention propose un procédé de sécurisation d'un opérateur logique ou mathématique ou d'un circuit fonctionnel analogue utilisable dans l'exécution d'un programme dans un module électronique comprenant un microprocesseur et une mémoire, le procédé étant caractérisé en ce que l'exécution dudit opérateur par le microprocesseur est remplacée par l'exécution d'une séquence d'opérations de remplacement ayant pour résultat final un résultat identique au résultat de la fonction dudit opérateur, ledit résultat étant mémorisé dans la mémoire. Ainsi la signature très caractéristique d'un opérateur complexe, tel que l'opérateur XOR, est remplacée par le signal d'une séquence d'opérations souvent moins complexes, mais pas nécessairement, par exemple d'une séquence d'opérations élémentaires de signatures voisines ou identiques peu caractérisées, l'identification de l'opérateur étant ainsi rendue plus difficile. Selon un mode de mise en oeuvre préférentiel du procédé selon l'invention la séquence d'opérations de remplacement est choisie à chaque appel de l'opérateur à protéger parmi un ensemble de séquences équivalentes. Ainsi la difficulté de l'identification est encore accrue par les multiples changements de la séquence d'opérations remplaçante de l'opérateur à protéger au cours de l'exécution d'un même programme. Avantageusement l'ensemble des séquences comporte au moins quatre séquences équivalentes et de préférence huit séquences équivalentes, ce qui rend encore plus difficile l'identification de la séquence en tant que l'opérateur recherché par les fraudeurs. Selon une première variante de l'invention le numéro d'ordre dans son ensemble de la séquence choisie est déterminé en fonction de certains paramètres du programme en cours d'exécution et/ou d'un paramètre aléatoire obtenu avantageusement à partir d'un générateur de nombres pseudo-aléatoires. Ce mécanisme de brouillage des séquences s'avère très efficace lorsque l'opérateur à sécuriser est répété plusieurs fois dans un programme comme par exemple l'opérateur XOR dans un traitement de cryptage/ décryptage. Selon une seconde variante de l'invention (non exclusive de la première variante) les séquences d'opérations d'un même ensemble présentent toutes la même durée d'exécution. Avantageusement certaines séquences comportent au moins une instruction non-opérative destinée à introduire un temps de retard dans l'exécution des séquences concernées. En particulier l'instruction non-opérative est choisie parmi des instructions nonopératives vis à vis du microprocesseur ou parmi des instructions normalement opératives mais rendues sans effet par leurs positions dans la séquence d'opérations. Ce mécanisme d'uniformisation des durées d'exécution des séquences rend leurs distinctions les unes par rapport aux autres encore plus difficiles. Selon une première application du procédé selon l'invention, l'opérateur à sécuriser est un opérateur logique, à titre d'exemple non limitatif l'opérateur logique XOR (ou OU exclusif). Avantageusement au moins une séquence d'opérations de remplacement est composée à partir d'opérateurs logiques élémentaires. Par exemple au moins une séquence d'opérations est composée à partir des opérateurs logiques élémentaires AND (ou ET), OR (ou OU) et NOT (ou NON). L'invention concerne également, en ce qui a trait à la sécurisation de l'opérateur XOR, les ensembles de séquences d'opérations de remplacement SI à S8 et S'1 à S'8données ci-dessous : SI = (x OR y) AND NOT (x AND y) S2 = (x OR y) AND (NOT x OR NOT y) S3 = NOT (NOT x AND NOT y) AND NOT (x AND y) S4 = NOT (NOT x AND NOT y) AND (NOT x OR NOT y) S5 = NOT(NOT(x OR y) OR (x AND y) ) S6 = NOT ((NOT x AND NOT y) OR (x AND y)) S7 = NOT ((NOT x AND NOT y) OR NOT (NOT x OR NOT y)) S8 = NOT (NOT (x OR y) OR NOT (NOT x OR NOT y)) et avec des séquences d'opérations de remplacement de même durée d'exécution : S'1 = (x OR NOP y OR y) AND NOP NOT (x AND NOP y AND y) S'2 = (x OR y NOP OR y) AND NOP (NOT x OR NOP NOT y) S'3 = NOT (NOT x AND NOP NOT y) AND NOT (x AND y AND y) S'4 = NOT (NOT x AND NOP NOT y) AND (NOT x OR NOT y) S'5 = NOT(NOT(x NOP OR y OR y) OR (x NOP AND y AND y)) S'6 = NOT ((NOT x AND NOT y NOP) OR (x AND y NOP AND y)) S'7 = NOT ((NOT x AND NOT y) OR NOT (NOT x OR NOT y)) S'8= NOT (NOT (x OR y OR y) OR NOT (NOT x OR NOT y)) dans lesquelles l'instruction NOP correspond à une instruction non-opérative vis à vis du microprocesseur. Selon d'autres applications du procédé selon l'invention, l'opérateur à sécuriser est un opérateur mathématique tel qu'un demi-additionneur, un additionneur, un soustracteur ou un multiplicateur, ou un circuit fonctionnel analogue à un opérateur logique ou mathématique, tel qu'un circuit combinatoire, notamment un multiplexeur et/ou un démultiplexeur, un codeur et/ou un décodeur, un générateur et/ou détecteur de parité ou un comparateur. En particulier selon une seconde application du procédé selon l'invention, l'opérateur est l'opérateur mathématique de la multiplication par deux obtenue par décalage à gauche d'un bit avec mise à zéro du bit de poids faible, la notation en C ANSI de cet opérateur s'écrivant (x 1). L'invention concerne également, en ce qui a trait à la sécurisation de l'opérateur (x 1), les séquences de remplacement S''l à S''4 équivalentes suivantes : S''1 = (x ADD x) S''2 = (x AND FOh) ADD x ADD (x AND OFh) S''3 = (NOT ((NOT x) ADD (NOT x))) SUB 1 S''4 = (y ADD x) SUB (y SUB x), dans lesquelles l'opérateur ADD est l'opérateur d'addition standard sur un octet, l'instruction SUB est l'opérateur de soustraction standard sur un octet et le suffixe h indique une valeur hexadécimale. L'invention concerne également un module électronique à opérateur sécurisé et comportant au moins un microprocesseur et une mémoire, la mémoire stockant un programme à exécuter comportant au moins un opérateur logique ou mathématique ou un circuit fonctionnel analogue à sécuriser, le module étant caractérisé en ce qu'il comporte des moyens pour remplacer l'exécution de l'opérateur au moyen du microprocesseur par l'exécution d'une séquence d'opérations ayant pour résultat final un résultat identique au résultat de la fonction de l'opérateur, ledit résultat étant mémorisé dans la mémoire. Avantageusement le module électronique selon l'invention comporte des moyens de sélection de la séquence d'opérations à chaque appel de l'opérateur parmi un ensemble de séquences équivalentes. Selon une variante très intéressante le module comporte des moyens de traitement informatique pour déterminer le numéro d'ordre dans l'ensemble de la séquence choisie en fonction de certains paramètres du programme en cours d'exécution et/ou d'un paramètre aléatoire généré par un générateur de nombres pseudo-aléatoires. L'invention concerne également un module électronique à opérateur sécurisé et comportant au moins un microprocesseur et un programme à exécuter comportant au moins un opérateur logique ou mathématique ou un circuit analogue à sécuriser, caractérisé en ce qu'il comporte les moyens matériels et/ou logiciels pour mettre en oeuvre le procédé selon l'invention présenté ci-avant. L'invention concerne également un système embarqué ou une carte à microcircuit comportant un module électronique à opérateur sécurisé tel que défini ci-avant dans ses différentes variantes. D'autres buts, avantages et caractéristiques de l'invention apparaîtront à la lecture de la description qui va suivre de la mise en oeuvre du procédé selon l'invention appliqué à la sécurisation de l'opérateur XOR et d'un mode de réalisation d'un module électronique à microprocesseur selon l'invention donnés à titre d'exemple non limitatif en référence aux dessins ciannexés dans lesquels: la figure 1 montre une représentation schématique d'un mode de réalisation d'un module électronique à microprocesseur et à opérateur XOR sécurisé selon l'invention ; et - la figure 2 montre une représentation schématique de l'exécution équivalente de l'opérateur XOR mettant en oeuvre le procédé selon l'invention dans le module de la figure 1. Le module électronique monolithique 10 à microprocesseur illustré à la figure 1 selon la présente invention et décrit à titre d'exemple non limitatif comporte d'une façon générale un microprocesseur ou unité centrale CPU 11 relié de façon bidirectionnelle par un bus interne 12 à une mémoire vive RAM 14, une mémoire morte ROM 16, une mémoire EEPROM 18 et une interface entrée/sortie I/O 20. Le module 10 comporte également un minuteur TIMER 22 à réarmement automatique (en variante optionnelle) et un générateur de nombres pseudo-aléatoires GNPA 24 reliés au bus interne 12. Sont implantés en ROM 16 des programmes d'applications proprement dits tels que par exemple des applications de transactions sur carte bancaire ou des applications de transactions sur carte santé qui pour des raisons de confidentialité et de sécurité comportent des sousprogrammes de cryptage/décryptage, d'authentification d'opérateur ou de validation de transaction dans lesquels l'opérateur XOR est fréquemment présent notamment pour réaliser des comparaisons octet par octet. En ce qui concerne l'exécution de l'opérateur XOR, cet opérateur très communément utilisé fait en général partie du jeu d'instructions arithmétiques à deux opérandes (OP1 et OP2) de l'unité centrale CPU ou microprocesseur 11. Dans le mode de réalisation ici décrit les moyens de mise en oeuvre du procédé de sécurisation de l'opérateur XOR sont principalement logiciels sous la forme d'une routine de calcul de XOR sécurisé (ou routine XORSEC) présentée schématiquement à la figure 2. Ainsi à chaque appel de l'instruction XOR (OP1, OP2) le programme est dérouté avec les deux opérandes OP1 et OP2 vers la routine XORSEC qui sera exécutée en lieu et place de l'instruction XOR, étant entendu que l'exécution de la routine XORSEC réalise une fonction équivalente à celle de l'instruction XOR d'origine. Selon la caractéristique principale de l'invention l'exécution de l'instruction XOR est remplacée dans la routine XORSEC par l'exécution d'une séquence d'opérations, en l'espèce mais non nécessairement des opérations d'un degré de complexité inférieur comme par exemple des opérations élémentaires, ayant pour résultat final un résultat identique au résultat de la fonction de l'opérateur XOR (condition aisément vérifiée entre autres par des tables de vérité à sorties identiques). A titre d'exemples non limitatifs un jeu de huit séquences SI à S8 équivalentes à l'instruction XOR est donné ci-dessous : S1 = (x OR y) AND NOT (x AND y) S2 = (x OR y) AND (NOT x OR NOT y) S3 = NOT (NOT x AND NOT y) AND NOT (x AND y) S4 = NOT (NOT x AND NOT y) AND (NOT x OR NOT y) S5 = NOT(NOT(x OR y) OR (x AND y)) S6 = NOT ((NOT x AND NOT y) OR (x AND y)) S7 = NOT ((NOT x AND NOT y) OR NOT (NOT x OR NOT y)) S8 = NOT (NOT (x OR y) OR NOT (NOT x OR NOT y)) On remarquera que toutes ces séquences SI à S8 sont basées sur l'utilisation d'au moins deux des trois instructions logiques élémentaires AND (ou ET), NOT (ou NON) et OR (ou OU) et présentent la même sortie de table de vérité que pour l'instruction XOR. En utilisant la présentation classique des tables de vérité à deux entrées x, y et une sortie s, on peut écrire pour les opérateurs XOR, AND et OR et pour la séquence S5 (choisie à titre d'exemple non limitatif) les quatre tables de vérités suivantes: XOR AND OR x y s(XOR) x y s(AND) x y s(OR) 000 000 0 0 0 0 1 1 0 1 0 0 1 1 101 1 0 0 101 1 1 0 1 1 1 1 1 1 et pour S5 = NOT(NOT(x OR y) OR (x AND y)) avec A = (x OR y), B= NOT A, C= (x AND y) D = (NOT(x OR y) OR (x AND y) = B OR C, et s(S5) - E = NOT D x y A B C D E 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 1 1 0 On vérifie ainsi que s(S5) - E est identique à s(XOR). On remarquera que la séquence S5 choisie d'office pour remplacer l'opérateur XOR se compose de cinq opérations élémentaires dont la signature sera très différente de l'opérateur XOR. On réalise ainsi la variante la plus simple de mise en oeuvre du procédé selon l'invention. Selon une caractéristique optionnelle de l'invention, mais très avantageuse, utilisée dans le mode de réalisation ici décrit la séquence d'opérations de remplacement est déterminée à chaque appel de l'opérateur XOR parmi l'ensemble de séquences équivalentes, en l'espèce l'ensemble ES constitué par les huit séquences SI à S8 données ci-dessus. Ainsi la difficulté de l'identification de l'opérateur XOR est encore accrue par les multiples changements de la séquence d'opérations remplaçante de l'opérateur XOR au cours de l'exécution du programme, les séquences SI à S8 susceptibles d'être utilisées présentant toutes des signatures différentes. Selon une autre caractéristique optionnelle de l'invention, mais également très avantageuse, utilisée dans le mode de réalisation ici décrit, le numéro d'ordre NDO = i (i allant de 1 à 8) dans son ensemble (Si à S8) de la séquence Si choisie pour être exécutée est déterminé en fonction de certains paramètres du programme en cours d'exécution et/ou d'un paramètre aléatoire. Avantageusement ledit paramètre aléatoire est obtenu à partir d'un générateur de nombres pseudo-aléatoires. Ce mécanisme de brouillage des séquences rendant aléatoire la séquence effectivement choisie pour remplacer l'opérateur XOR à chaque appel s'avère très efficace, surtout dans un traitement de cryptage/décryptage lorsque l'opérateur XOR est appelé plusieurs fois dans le programme. Ainsi telle qu'illustrée à la figure 2 la routine XORSEC comporte quatre phases de traitement principales, à savoir dans l'ordre d'exécution : - une phase d'entrée ou d'initialisation IN-XORSEC, avec notamment la mémorisation des valeurs compteur de programme, et des opérandes OP1 et OP2, - une phase CAL-NDO de détermination par le calcul du numéro d'ordre NDO = i (i allant de 1 à 8) de la séquence d'opérations Si à exécuter en remplacement de l'instruction XOR avec branchement vers la sous-routine CAL-XORSEC(i) correspondante et présente dans l'ensemble CAL-XORSEC des huit sous-routines CAL-XORSEC(l) à CALXORSEC(8), - une phase CAL-XORSEC(i) d'exécution de la sous-routine CAL-XORSEC (i) par calcul logique avec les opérandes OP1 et OP2 de la séquence d'opérations Si sélectionnée par la phase CAL~NDO, - une phase OUT-XORSEC de retour au programme principal pour reprise de son exécution et transfert des résultats de la phase CAL-XORSEC(i) équivalant au calcul d'un XOR entre les deux opérandes OP1 et OP2. On notera que pour la phase CAL-NDO, le générateur GNPA aléatoire 24 fournit sur demande un octet aléatoire R utilisé comme paramètre de calcul seul ou avec d'autres paramètres extraits des valeurs des opérandes OP1 et OP2, le calcul ayant pour résultat final un octet F (R). cet octet on extrait en utilisant par exemple une opération du type NOD = i = F (R) 07h les trois bits de poids faible pour obtenir la valeur binaire de NOD = i (de 000 à 111 soit OOh à 07h), numéro d'ordre de la séquence Si à exécuter. Il est à noter que la valeur du numéro d'ordre est une donnée sensible de l'algorithme considéré. Pour terminer, la routine XORSEC présente une autre variante encore améliorée en ce qui concerne la difficulté d'identification dans laquelle l'ensemble des séquences de remplacement est constitué de séquences de même durée d'exécution (et de ce fait plus difficile à distinguer). Pour ce faire certaines séquences comportent au moins une instruction non-opérative destinée à introduire un temps de retard dans l'exécution des séquences concernées. En particulier l'instruction nonopérative est choisie parmi des instructions nonopératives vis à vis du microprocesseur ou parmi des instructions normalement opératives mais rendues sans effet par leurs positions dans la séquence d'opérations. Si l'on considère que les opérations élémentaires AND, OR et NOT ont des durées d'exécution sensiblement égales (par exemple 4 temps de cycle de l'horloge de l'unité centrale CPU 11), comme pour l'opération blanche nonopérative NOP, l'ensemble ES des séquences Si à S8 est modifié en un nouvel ensemble de séquences uniformisées à 9 opérations ES' s'écrivant à titre d'exemple non limitatif comme il suit (et dans lequel les opérations ajoutées apparaissent en gras) : S'1 = (x OR NOP y OR y) AND NOP NOT (x AND NOP y AND y) S'2= (x OR y NOP OR y) AND NOP (NOT x OR NOP NOT y) S'3 = NOT (NOT x AND NOP NOT y) AND NOT (x AND y AND y) S'4 = NOT (NOT x AND NOP NOT y) AND (NOT x OR NOT y) S'5 = NOT(NOT(x NOP OR y OR y) OR (x NOP AND y AND y) ) S'6 = NOT ((NOT x AND NOT y NOP) OR (x AND y NOP AND y)) S'7 = NOT ((NOT x AND NOT y) OR NOT (NOT x OR NOT y)) S'8 = NOT (NOT (x OR y OR y) OR NOT (NOT x OR NOT y)) Par exemple, pour la séquence S'5: S'5 = NOT ( NOT ( x NOP OR y OR y ) OR ( x NOP AND y AND y ) ) avec x'= x NOP, A = (x' OR y), A'= A OR y , B= NOT A', C= (x' AND y), C' = C AND y, D = B OR C' et s(S'5) - E = NOT D On peut écrire la table vérité de la séquence S'5 qui vérifie également s(S'5) = s(XOR) S'5 x y x' A A' B C C' D E 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 000 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 0 On remarquera que pour des séquences à neuf opérations élémentaires le temps machine reste très raisonnable. L'invention n'est pas limitée à son application à la sécurisation d'opérateurs logiques mais est également applicable à la sécurisation d'opérateurs mathématiques tels que les demi-additionneurs, les additionneurs, les soustracteurs et les multiplicateurs ou de circuits fonctionnels analogues aux opérateurs logiques ou mathématiques, tels des circuits combinatoires, notamment des multiplexeurs et/ou des démultiplexeurs, des codeurs et/ou des décodeurs, des générateurs et/ou des détecteurs de parité ou des comparateurs. Par exemple selon une autre application du procédé selon l'invention l'opérateur à sécuriser est l'opérateur mathématique de la multiplication par deux obtenue par décalage à gauche d'un bit avec mise à zéro du bit de poids faible. En notation C ANSI, cet opérateur est également désigné (x 1). Ainsi à chaque appel de l'opérateur (x 1), son exécution sera remplacée par l'exécution d'une séquence d'opérations choisie parmi les séquences équivalentes suivantes: S''1 = (x ADD x) S''2 = (x AND FOh) ADD x ADD (x AND OFh) S''3= (NOT ((NOT x) ADD (NOT x))) SUB 1 S''4 = (y ADD x) SUB (y SUB x), dans lesquelles l'opérateur ADD est l'opérateur d'addition standard sur un octet, l'instruction SUB est l'opérateur de soustraction standard sur un octet et le suffixe h indique une valeur hexadécimale. D'une façon générale, le choix de la séquence équivalente S''i et sa mise en oeuvre sont réalisés de façon analogue, parfois identique, à ce qui a été décrit en détails ciavant pour l'opérateur XOR. On notera également que sans sortir du cadre de l'invention, la carte à puce accueillant le module électronique à opérateur sécurisé selon l'invention peut être remplacée par tout autre système embarqué. REVENDICATIONS : 1. Procédé de sécurisation d'un opérateur logique ou mathématique ou d'un circuit fonctionnel analogue utilisable dans l'exécution d'un programme dans un module électronique (10) comprenant un microprocesseur (11) et une mémoire (14,16,18), le procédé étant caractérisé en ce que l'exécution dudit opérateur par le microprocesseur est remplacée par l'exécution d'une séquence (Si) d'opérations de remplacement ayant pour résultat final un résultat identique au résultat de la fonction dudit opérateur, ledit résultat étant mémorisé dans la mémoire. 2. Procédé selon la revendication 1 caractérisé en ce que ladite séquence d'opérations de remplacement est choisie à chaque appel dudit opérateur parmi un ensemble de séquences équivalentes. 3. Procédé selon la revendication 2 caractérisé en ce que le numéro d'ordre dans ledit ensemble de la séquence choisie est déterminé en fonction de certains paramètres du programme en cours d'exécution et/ou d'un paramètre aléatoire obtenu à partir d'un générateur de nombres pseudo-aléatoires (24). 4. Procédé selon la revendication 2 caractérisé en ce que certaines séquences comportent au moins une instruction non-opérative destinée à introduire un temps de retard dans l'exécution des séquences concernées, ladite instruction non-opérative étant choisie parmi des instructions non-opératives vis à vis du microprocesseur (11) ou parmi des instructions normalement opératives mais rendues sans effet par leurs positions dans la séquence d'opérations. 5. Procédé selon la revendication 2 caractérisé en ce qu'au moins une séquence d'opérations de remplacement est composée à partir d'opérateurs logiques élémentaires. 6. Procédé selon la revendication 5 caractérisé en ce qu'au moins une séquence d'opérations de remplacement est composée à partir des opérateurs logiques élémentaires AND ou ET, OR ou OU et NOT ou NON. 7. Module électronique (10) comportant au moins un microprocesseur (11) et une mémoire (14,16,18), la mémoire stockant un programme à exécuter comportant au moins un opérateur logique ou mathématique ou un circuit fonctionnel analogue à sécuriser, le module étant caractérisé en ce qu'il comporte des moyens pour remplacer l'exécution dudit opérateur au moyen du microprocesseur par l'exécution d'une séquence (Si) d'opérations ayant pour résultat final un résultat identique au résultat de la fonction dudit opérateur, ledit résultat étant mémorisé dans la mémoire. 8. Module électronique (10) selon la revendication 7 caractérisé en ce qu'il comporte des moyens de sélection de ladite séquence d'opérations à chaque appel dudit opérateur parmi un ensemble de séquences équivalentes. 9. Module électronique (10) selon la revendication 8 caractérisé en ce qu'il comporte des moyens de traitement informatique pour déterminer le numéro d'ordre dans ledit ensemble de la séquence choisie en fonction de certains paramètres du programme en cours d'exécution et/ou d'un paramètre aléatoire généré par un générateur de nombres pseudo-aléatoires (24). 10. Système embarqué caractérisé en qu'il comporte un module électronique (10) selon la revendication 7.