Procédé de détection d’une tentative d’extraction linéaire d’un code de programme enregistré dans une mémoire (10) d’un circuit électronique (1), le code comportant des instructions de programme qui, pour être lues par un cœur de microprocesseur (14), sont chargées séquentiellement via un bus d’instructions (11) dans un registre d’instructions (12) pour le stockage des instructions commandé au moins par un signal d’horloge (clk) et un signal de réinitialisation (reset), le chargement de chaque instruction dans le registre d’instructions (12) s’effectuant sur un front du signal d’horloge (clk), le code comprenant des instructions de discontinuité et/ou des instructions dites « marqueurs de sécurité » insérées parmi les instructions de programme de manière à être lues au cours de l’exécution du programme, le procédé comportant le déclenchement d’une action prédéfinie d’alerte (300), en cas de non-détection d’une instruction de discontinuité ou d’un marqueur de sécurité, selon une règle de surveillance prédéfinie. Procédé selon la revendication précédente, la règle de surveillance prédéfinie étant la non-détection d’une instruction de discontinuité ou d’un marqueur de sécurité pendant une durée prédéfinie et/ou après qu’un nombre prédéfini d’instructions de programme ont été lues et/ou après un nombre prédéfini de cycles d’horloge. Procédé selon l’une des deux revendications précédentes, les marqueurs de sécurité étant insérés dans le code avec une périodicité variable et/ou les marqueurs de sécurité étant insérés dans le code de façon que l’exécution des instructions de programme situées entre deux marqueurs de sécurité consécutifs correspond à un nombre de cycles d’horloge inférieur à celui entraînant le déclenchement de l’action prédéfinie d’alerte (300), deux marqueurs de sécurité consécutifs étant de préférence disposés de telle sorte que le nombre de cycles d’horloge entraînant le déclenchement de l’action prédéfinie d’alerte est supérieur au nombre maximal de cycles d’horloge nécessaire à l’exécution des instructions de programme situées entre les deux marqueurs de sécurité. Procédé selon l'une quelconque des revendications précédentes, au moins un marqueur de sécurité étant inséré au début et à la fin du code d’une fonction faisant partie du programme et/ou au moins un marqueur de sécurité étant inséré à l’adresse de destination d’une instruction de branchement et/ou au moins un marqueur de sécurité étant inséré au début ou à la fin du code d’une boucle faisant partie du programme. Procédé selon l'une quelconque des revendications précédentes, les marqueurs de sécurité étant codés de sorte à avoir au moins un bit particulier de poids correspondant au même poids que celui d’au moins un bit caractéristique d’une instruction de branchement, le bit particulier ayant la même valeur encodée du bit caractéristique, de sorte à déclencher l’action prédéfinie d’alerte (300) en cas d’une attaque par forçage à la valeur binaire complémentaire du bit caractéristique. Procédé selon l'une quelconque des revendications précédentes, les marqueurs de sécurité étant insérés dans le code lors de l’exécution de ce dernier, en particulier lors de la lecture des instructions de programme depuis la mémoire (10), la mémoire (10) contenant de préférence une logique de contrôle dotée d’un bloc logique (100) insérant périodiquement un marqueur de sécurité parmi les instructions de programme lorsqu’elles sont lues, le bloc logique (100) transmettant en particulier une commande de cycle d’attente (115) au cœur du microprocesseur (14) lors du chargement d’un marqueur de sécurité dans le registre d’instructions (12) pour que le cœur du microprocesseur (14) insère un cycle d’attente dans le flot d’exécution lors de la réception du marqueur de sécurité. Procédé selon l’une quelconque des revendications précédentes, les marqueurs de sécurité étant différents les uns des autres par leur charge utile. Procédé selon la revendication 1 ou 2, comportant lors d’une étape d’analyse du code avant son chargement dans le registre, l’insertion d’au moins une instruction de discontinuité à exécution linéaire dans une portion du code comprenant des instructions de programme dont l’exécution correspond à un nombre de cycles d’horloge pouvant entraîner le déclenchement de l’action prédéfinie d’alerte (300). Procédé selon la revendication précédente, l’insertion de l’instruction de discontinuité à exécution linéaire s’effectuant lors de la compilation du code, cette instruction étant stockée dans la mémoire (10) et possédant une adresse mémoire. Procédé selon la revendication 8, l’insertion de l’instruction de discontinuité à exécution linéaire s’effectuant après la lecture dans la mémoire (10) des instructions à charger et avant le chargement de ces instructions dans le registre d’instructions (12). Procédé selon l'une quelconque des revendications précédentes, l’action prédéfinie d’alerte (300) comportant l’une au moins des actions suivantes : la réinitialisation du circuit électronique (1), l’effacement de la mémoire (10), la remise à zéro de l’adresse de lecture en mémoire (10), la prise par l’adresse de lecture en mémoire de valeurs non consécutives de façon que l’extraction du code devienne non linéaire, et le saut d’une section de code, notamment d’une section sensible à protéger. Procédé selon l'une quelconque des revendications précédentes, étant mis en œuvre en permanence pour protéger la totalité du code de programme, la première instruction de ce dernier étant notamment une instruction de discontinuité ou un marqueur de sécurité. Procédé selon l'une quelconque des revendications précédentes, étant mis en œuvre d’une manière paramétrable via la configuration d’un fusible, notamment de type programmable une seule fois, ou d’une variable en mémoire non volatile, notamment une mémoire de type Flash ou EEPROM, lors de la phase de programmation du circuit, la valeur mémorisée dans le fusible ou dans la mémoire non-volatile étant lue au démarrage du circuit, en particulier à sa mise sous tension ou à son réveil après réinitialisation, ladite valeur permettant d’activer le procédé de détection, et la première instruction du code de programme étant une instruction de discontinuité ou un marqueur de sécurité, si le procédé est activé. Procédé selon l'une quelconque des revendications 1 à 12, étant mis en œuvre pour protéger au moins une portion du code de programme délimitée par une adresse de début et une adresse de fin, le procédé étant activé dès qu’une instruction de programme dont l’adresse est comprise entre l’adresse de début et l’adresse de fin est lue pour être exécutée, étant désactivé dès qu’une instruction de programme n’appartenant pas à ladite portion de code est lue pour être exécutée, ladite portion de code correspondant notamment à la phase de démarrage du circuit ou une partie de code mettant en œuvre des fonctions de sécurité, notamment des outils cryptographiques. Circuit électronique (1) comportant au moins une mémoire (10), un cœur de microprocesseur (14), un bus d’instructions (11), un bus de lecture (13), un bus d’adresse (15) et un registre d’instructions (12) pour le stockage des instructions commandé au moins par un signal d’horloge (clk) et un signal de réinitialisation (reset), la mémoire (10) étant reliée au registre d’instructions (12) par le bus d’instructions (11), le registre d’instructions (12) étant relié au cœur du microprocesseur (14) par le bus de lecture (13), le cœur du microprocesseur (14) comportant un pointeur d’instruction (140) destiné à contenir l’adresse mémoire d’une instruction devant être exécutée, le cœur du microprocesseur (14) étant relié à la mémoire (10) par le bus d’adresse (15), le circuit (1) étant configuré pour détecter une tentative d’extraction linéaire d’un code de programme enregistré dans la mémoire (10), le code comportant des instructions de programme qui, pour être lues par le cœur de microprocesseur (14), sont chargées séquentiellement via le bus d’instructions (11) dans le registre d’instructions (12) sur commande du signal d’horloge (clk), le code comprenant des instructions de discontinuité et/ou des instructions dites « marqueurs de sécurité » insérées parmi les instructions de programme de manière à être lues au cours de l’exécution du programme, le cœur du microprocesseur (14) comportant un circuit de protection (18) contre une tentative d’extraction linéaire apte à déclencher une action prédéfinie d’alerte (300) en cas de non-détection d’une instruction de discontinuité ou d’un marqueur de sécurité selon une règle de surveillance prédéfinie. Circuit selon la revendication précédente, au moins une portion du code de programme délimitée par une adresse de début et une adresse de fin étant protégée contre l’extraction linéaire par le circuit de protection (18), l’adresse de début et l’adresse de fin étant mémorisées à la programmation du circuit (1) dans une mémoire non-volatile protégée contre l’effacement et la modification, le circuit de protection (18) comportant de préférence des registres de chargement desdites adresses de début et de fin, dans lesquels lesdites adresses sont chargées lors du démarrage du circuit (1), le circuit de protection (18) étant notamment configuré pour déterminer si l’instruction dont l’adresse est contenue dans le pointeur d’instruction (140) appartient à ladite au moins une portion de code par la comparaison de cette adresse avec les adresses de début et de fin. Circuit selon l'une des deux revendications précédentes, comportant un circuit dit « chien de garde » servant à redémarrer le circuit (1) en cas de dysfonctionnement du programme, le circuit chien de garde comprenant un compteur de chien de garde incrémenté au front d’une horloge fournie par un oscillateur interne au circuit (1), le circuit chien de garde étant configuré en mode reset de sorte à émettre un signal de remise à zéro du circuit (1) lorsque le compteur de chien de garde atteint une valeur prédéfinie, le compteur de chien de garde étant remis à zéro périodiquement par l’exécution d’une instruction de réinitialisation de ce compteur. Circuit selon la revendication précédente, comportant un fusible matériel permettant une activation permanente du circuit chien de garde, de sorte que lorsque le fusible est grillé lors de la programmation du circuit, le circuit chien de garde s’active en permanence en mode reset . Utilisation du circuit selon la revendication précédente, le fusible étant grillé et les instructions de réinitialisation du compteur de chien de garde étant utilisées comme marqueurs de sécurité. Circuit selon l'une quelconque des revendications 15 à 18, le circuit de protection (18) comprenant un compteur de chargement d’instructions ou de cycles d’horloge (20) configuré pour être décrémenté à chaque chargement d’une instruction dans le registre d’instructions (12) ou à chaque cycle d’horloge, le compteur de chargement d’instructions ou de cycles d’horloge (20) étant configuré pour être périodiquement réinitialisé à une valeur paramétrable, la réinitialisation du compteur de chargement d’instructions ou de cycles d’horloge (20) étant régulièrement effectuée par un marqueur de sécurité avant d’atteindre un seuil d’alarme, notamment zéro, le circuit de protection (18) étant configuré pour déclencher l’action prédéfinie d’alerte (300) lorsque le compteur de chargement d’instructions ou de cycles d’horloge (20) atteint le seuil d’alarme. Circuit selon l'une quelconque des revendications 15 à 18, comportant un compteur d’instructions de continuité (21) configuré pour être décrémenté à chaque exécution d’une instruction de continuité, le compteur d’instructions de continuité (21) étant préférentiellement configuré pour être périodiquement réinitialisé à une valeur paramétrable, la réinitialisation du compteur d’instructions de continuité étant régulièrement effectuée par l’exécution d’une instruction de discontinuité avant d’atteindre un seuil d’alarme, notamment zéro, le circuit de protection (18) étant configuré pour déclencher l’action prédéfinie d’alerte (300) lorsque le compteur d’instructions de continuité (21) atteint le seuil d’alarme. Circuit selon l'une quelconque des revendications 15 à 21, hormis la revendication 20, comportant un bloc d’insertion d’instructions de discontinuité à exécution linéaire (400) étant un circuit situé hors de la mémoire (10), communiquant avec celle-ci et avec le registre d’instructions (12), ce bloc étant configuré pour insérer au moins une instruction de discontinuité à exécution linéaire dans une portion du code lu comprenant des instructions de programme dont l’exécution correspond à un nombre de cycles d’horloge pouvant entraîner le déclenchement de l’action prédéfinie d’alerte (300). Circuit selon la revendication 21, comportant un compteur d’instructions de discontinuité à exécution linéaire (22) configuré pour être décrémenté à chaque exécution d’une instruction de discontinuité à exécution linéaire, le compteur d’instructions de discontinuité à exécution linéaire (22) étant préférentiellement configuré pour être périodiquement réinitialisé à une valeur paramétrable, la réinitialisation du compteur d’instructions de discontinuité à exécution linéaire (22) étant régulièrement effectuée par l’exécution d’une instruction de discontinuité à exécution non linéaire avant d’atteindre un seuil d’alarme, notamment zéro, le circuit de protection (18) étant configuré pour déclencher l’action prédéfinie d’alerte (300) lorsque le compteur d’instructions de discontinuité à exécution linéaire (22) atteint le seuil d’alarme. Circuit selon la revendication 21 ou 23, comportant un compteur de cycles (23) destiné à détecter une absence d’exécution d’instructions, configuré pour s’incrémenter à chaque cycle d’horloge (clk), la réinitialisation du compteur de cycles, notamment à zéro, étant régulièrement effectuée par l’exécution d’une instruction avant d’atteindre un seuil d’alarme, notamment une valeur paramétrable, le circuit de protection (18) étant configuré pour déclencher l’action prédéfinie d’alerte (300) lorsque le compteur de cycles (23) atteint le seuil d’alarme. Circuit selon l'une quelconque des revendications 15 à 19, comportant un compteur de longueur de séquence d’exécution linéaire (24) destiné à détecter une séquence d’instructions de continuité et/ou d’instructions de discontinuité à exécution linéaire de longueur dépassant une longueur donnée, configuré pour s’incrémenter à chaque exécution d’une instruction ou à chaque cycle d’horloge, la réinitialisation, notamment à zéro, du compteur de longueur de séquence d’exécution linéaire (24) étant régulièrement effectuée par la variation d’au moins un signal du cœur du microprocesseur (14) indiquant la fin d’exécution d’une séquence d’exécution linéaire avant d’atteindre un seuil d’alarme, le circuit de protection (18) étant configuré pour déclencher l’action prédéfinie d’alerte (300) lorsque le compteur de séquence d’exécution linéaire (24) atteint le seuil d’alarme. Procédé de protection d’un code de programme comportant l’insertion dans ce code d’instructions de discontinuité ou de marqueurs de sécurité pour la mise en œuvre du procédé selon l'une quelconque des revendications 1 à 14. Procédé selon la revendication précédente, ladite insertion s’effectuant lors de la programmation du code. Procédé selon la revendication 26, ladite insertion s’effectuant lors ou à l’issue de la compilation du code. Procédé selon la revendication 26, ladite insertion s’effectuant après la lecture dans la mémoire (10) stockant le code des instructions à charger et avant le chargement de ces instructions dans le registre d’instructions (12).