Brevet FR3098613A1 — publié le 20210115

Description Titre de l'invention : PROCEDE DE GESTION DU FONC- TIONNEMENT D'AU MOINS UN LOGICIEL APPLICATIF CHIFFRE ET CIRCUIT INTEGRE CORRESPONDANT pool Des modes de mise en oeuvre et de réalisation de l'invention concernent les circuits intégrés et plus particulièrement les circuits intégrés formant des systèmes sur puce connue de l'homme du métier sous le ternie anglo-saxon « System on chip » (SoC). [0002] Un système sur puce peut comprendre une mémoire contenant un système d'exploitation du système et des logiciels applicatifs. [0003] Afin d'empêcher qu'un logiciel applicatif malveillant lise les instructions d'un autre logiciel applicatif et les données générées par l'exécution d'instructions par une unité de traitement du système sur puce, des barrières, connues par l'homme du métier sous la dénomination anglo-saxonne « Memory Protection Unit » sont mises en place, de sorte que les logiciels applicatifs sont isolés l'un de l'autre. [0004] Cependant, le système d'exploitation peut lire les instructions des logiciels ap- plicatifs. [0005] De plus, si le système d'exploitation est corrompu, les barrières d'isolement dispa- raissent de sorte que la confidentialité des instructions des logiciels applicatifs et des données associées aux logiciels applicatifs n'est plus garantie. [0006] Il existe ainsi un besoin de garantir la confidentialité des instructions de logiciels ap- plicatifs et de données associées aux logiciels applicatifs, entre les logiciels applicatifs et par rapport au système d'exploitation. [0007] Selon des modes de mises en oeuvre et de réalisation, il est avantageusement proposé de chiffrer les instructions des logiciels applicatifs et des données associées aux logiciels applicatifs, et de stocker les données chiffrées associées à un logiciel applicatif dans une zone de mémoire ayant les mêmes droits que la zone mémoire dans laquelle est stocké ledit logiciel applicatif. [0008] Selon un aspect, il est proposé un procédé comprenant [0009] - un stockage d'au moins un premier logiciel applicatif contenant. des instructions chiffrées, dans une première zone mémoire ayant un premier niveau de droits d'accès, [0010] - une vérification de l'intégrité dudit premier logiciel applicatif, [0011] - un déchiffrement par un moyen de chiffrement/déchiffrement, par exemple un circuit logique, desdites instructions chiffrées considérées comme intègres, [0012] - une exécution par une unité de traitement des instructions déchiffrées, ladite exécution générant des données, [0013] - un chiffrement desdites données générées par le moyen de chiffrement/dé- 2 chiffrement, et [0014] - un stockage des données chiffrées dans une deuxième zone mémoire ayant un deuxième niveau de droits d'accès identique au premier niveau de droits d'accès. [0015] Les instructions et les données des programmes applicatifs sont chiffrées et sau- vegardées dans deux zones mémoires de même niveau de droits d'accès de sorte qu'un logiciel d'exploitation ne peut pas interpréter les instructions et les données stockées qui sont chiffrées. [0016] Selon un mode de mise en oeuvre, la première zone mémoire fait partie d'une première mémoire ayant une première zone mémoire supplémentaire ayant un premier niveau supplémentaire de droits d'accès supérieur au premier niveau de droit d'accès, la première zone mémoire supplémentaire contenant un premier logiciel d'exploitation de l'unité de traitement. [0017] Selon un autre mode de mise en oeuvre, la première zone mémoire et la première zone mémoire supplémentaire font partie d'un domaine sécurisé de la première mémoire. [0018] Selon un autre mode de mise en oeuvre, la première mémoire comprend en outre un domaine non sécurisé comportant une première zone mémoire non sécurisée stockant au moins un deuxième logiciel applicatif et une deuxième zone mémoire non sécurisée stockant un deuxième logiciel d'exploitation de l'unité de traitement, la deuxième zone mémoire non sécurisée ayant un niveau de droit d'accès supérieur au niveau de droit d'accès de la première zone mémoire non sécurisée. [0019] Selon un autre mode de mise en oeuvre, le procédé comprend en outre une véri- fication de l'intégrité dudit au moins un deuxième logiciel applicatif. [0020] Un programme applicatif corrompu n'est pas exécuté par une unité de traitement de sorte qu'il ne corrompt ni d'autres programmes applicatifs, ni un logiciel d'exploitation. [0021] Selon un autre mode de mise en oeuvre, le procédé comprend en outre un dé- chiffrement des données chiffrées stockées, un traitement par l'unité de traitement des données déchiffrées, le traitement générant de nouvelles données, un chiffrement par le moyen de chiffrement/déchiffrement des nouvelles données et un stockage des nouvelles données chiffrées dans la deuxième zone mémoire. [0022] Selon un autre mode de mise en oeuvre, la deuxième zone mémoire fait partie d'une deuxième mémoire ayant une partition de domaines et de zones mémoires identique à celle de la première mémoire avec des niveaux respectifs de droits d'accès homologues à ceux de la première mémoire, et les données générées par l'exécution d'un logiciel stocké dans l'une des zones mémoires de la première mémoire sont stockées dans la zone mémoire homologue de la deuxième mémoire. [0023] Selon un autre mode de mise en oeuvre, le procédé comprend préalablement à la véri- 3 fication de l'intégrité de chaque logiciel applicatif, un stockage d'une première empreinte et de la taille mémoire dudit logiciel applicatif, et la vérification de l'intégrité comporte un calcul d'une deuxième empreinte du logiciel applicatif utilisant ladite taille mémoire et une comparaison entre les deux empreintes, le logiciel applicatif étant considéré comme intègre en cas d'identité entre les deux empreintes. [0024] Selon un autre mode de mise en oeuvre, le calcul de la deuxième empreinte comprend une mise en oeuvre d'une fonction de hachage ayant comme paramètre d'entrée les instructions et la taille mémoire dudit logiciel applicatif et délivrant en sortie ladite deuxième empreinte. [0025] Selon un autre mode de mise en oeuvre, le chiffrement et le déchiffrement des données mettent en oeuvre un algorithme de chiffrement par blocs symétrique ne comportant pas de chaînage entre les blocs et utilisant une clé secrète. [0026] L'utilisation d'un algorithme de chiffrement par blocs ne comportant pas de chaînage entre les blocs permet de déchiffrer une instruction d'un bloc d'instructions indépendamment des autres instructions dudit bloc, garantissant la confidentialité des instructions ne nécessitant pas d'être déchiffrées. [0027] L'algorithme de chiffrement par blocs peut par exemple utiliser un compteur. [0028] Selon un autre mode de mise en oeuvre, le procédé comprend des exécutions en parallèle dudit au moins un premier logiciel applicatif et dudit au moins un deuxième logiciel applicatif. [0029] Selon un autre aspect, il est proposé un circuit intégré comprenant [0030] - une première zone mémoire ayant un premier niveau de droits d'accès configurée pour stocker au moins un premier logiciel applicatif contenant des instructions chiffrées, [0031] - des moyens de vérification de l'intégrité dudit premier logiciel applicatif, [0032] - un moyen de chiffrement/déchiffrement, par exemple un premier circuit logique configuré pour déchiffrer lesdites instructions chiffrées considérées comme intègres, [0033] - une unité de traitement configurée pour exécuter les instructions déchiffrées, le moyen de chiffrement/déchiffrement étant en outre configuré pour chiffrer les données générées par l'exécution, et [0034] - un deuxième moyen, par exemple un deuxième circuit logique, configuré pour stocker les données chiffrées dans une deuxième zone mémoire ayant un deuxième niveau de droits d'accès identique au premier niveau de droits d'accès. [0035] Selon un autre mode de réalisation, la première zone mémoire fait partie d'une première mémoire comprenant une première zone mémoire supplémentaire ayant un premier niveau supplémentaire de droits d'accès supérieur au premier niveau de droit d'accès, la première zone mémoire supplémentaire étant configurée pour contenir un premier logiciel d'exploitation de l'unité de traitement. [0036] Selon un autre mode de réalisation, la première zone mémoire et la première zone mémoire supplémentaire font partie d'un domaine sécurisé de la première mémoire. [0037] Selon un autre mode de réalisation, la première mémoire comprend en outre un domaine non sécurisé comportant une première zone mémoire non sécurisée configurée pour stocker au moins un deuxième logiciel applicatif et une deuxième zone mémoire non sécurisée configurée pour stocker un deuxième logiciel d'exploitation de l'unité de traitement, la deuxième zone mémoire non sécurisée ayant un niveau de droit d'accès supérieur au niveau de droit d'accès de la première zone mémoire non sécurisée. [0038] Selon un autre mode de réalisation, les moyens de vérification de l'intégrité sont en outre configurés pour vérifier l'intégrité dudit au moins un deuxième logiciel applicatif. [0039] Selon un autre mode de réalisation, le moyen de chiffrement/déchiffrement est en outre configuré pour déchiffrer des données chiffrées stockées, l'unité de traitement étant en outre configurée pour traiter des données déchiffrées, le moyen de chiffrement/déchiffrement est en outre configuré pour chiffrer de nouvelles données générées par le traitement, le deuxième moyen étant en outre configuré pour stocker des nouvelles données chiffrées dans la deuxième zone mémoire. [0040] Selon un autre mode de réalisation, la deuxième zone mémoire fait partie d'une deuxième mémoire comprenant une partition de domaines et de zones mémoires identique à celle de la première mémoire avec des niveaux respectifs de droits d'accès homologues à ceux de la première mémoire, le deuxième moyen étant en outre configuré de sorte que les données générées par l'exécution d'un logiciel stocké dans l'une des zones mémoires de la première mémoire sont stockées dans la zone mémoire homologue de la deuxième mémoire. [0041] Selon un autre mode de réalisation, les moyens de vérification de l'intégrité sont configurés pour stocker une première empreinte et la taille mémoire dudit logiciel applicatif, calculer une deuxième empreinte du logiciel applicatif en utilisant ladite taille mémoire et comparer les deux empreintes. [0042] Selon un autre mode de réalisation, les moyens de vérification de l'intégrité sont configurés pour calculer la deuxième empreinte par une mise en oeuvre d'une fonction de hachage ayant comme paramètre d'entrée les instructions et la taille mémoire dudit logiciel applicatif et délivrant en sortie ladite deuxième empreinte. [0043] Selon un autre mode de réalisation, le moyen de chiffrement/déchiffrement est configuré pour mettre en oeuvre un algorithme de chiffrement par blocs symétrique ne comportant pas de chaînage entre les blocs et utilisant une clé secrète pour chiffrer et déchiffrer des données. [0044] Selon un autre mode de réalisation, l'unité de traitement comprend au moins deux coeurs de traitement, un premier coeur de traitement étant configure pour exécuter ledit au moins un premier logiciel applicatif et le deuxième coeur de calcul étant configure pour exécuter en parallèle le au moins un deuxième logiciel applicatif. [0045] Selon un autre aspect, il est proposé un appareil incorporant un circuit intégré tel que défini ci-avant. [0046] D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : [0047] [fig.1] [0048] [fig.2] [0049] [fig.3] [0050] [fig.4] [0051] illustrent différents modes de réalisation et de mise en oeuvre de l'invention. [0052] On se réfère à la figure 1 qui représente un exemple d'un mode de réalisation d'un circuit intégré CI, incorporé dans un appareil électronique CP, par exemple une tablette. [0053] Le circuit intégré CI forme ici un système sur puce (« SOC »). [0054] Le circuit intégré CI comprend une première mémoire MEM1, une deuxième mémoire MEM2, une unité de traitement UT, un module de gestion de mémoire MD1, un module de hachage MD2 et un premier circuit logique CL1 formant un moyen de chiffrement/déchiffrement et un deuxième circuit logique CL2. [0055] La première mémoire MEMI comprend un domaine sécurisé D 11 comprenant une première zone mémoire Z111 ayant un premier niveau de droits d'accès Pli et une première zone mémoire supplémentaire Z12 ayant un premier niveau supplémentaire de droits d'accès P12 supérieur au premier niveau de droit d'accès P11. [0056] La première zone mémoire Z111 est configurée pour stocker un premier logiciel ap- plicatif APP1 et la première zone mémoire supplémentaire Z12 est configurée pour stocker un premier logiciel d'exploitation OS1 de l'unité de traitement UT. [0057] La première mémoire MEMI comprend en outre un domaine non sécurisé D21 comprenant une première zone mémoire non sécurisée Z211 ayant un deuxième niveau de droits d'accès P21 et une deuxième zone mémoire non sécurisée Z221 ayant un deuxième niveau supplémentaire de droits d'accès P22 supérieur au deuxième niveau de droit d'accès P21. [0058] La première zone mémoire non sécurisée Z211 est configurée pour stocker un deuxième logiciel applicatif APP2 et la deuxième zone mémoire non sécurisée Z221 est configurée pour stocker un deuxième logiciel d'exploitation 0S2 de l'unité de traitement UT. [0059] Les instructions des premier et deuxième logiciels applicatifs APP1 et APP2 sont 6 chiffrées. [0060] La première mémoire MEM1 est par exemple une mémoire du type non volatile, telle qu'une mémoire flash. [0061] Bien entendu, la première zone mémoire Z111 et la première zone mémoire non sécurisée Z211 peuvent comprendre chacune plus d'un logiciel applicatif. [0062] La deuxième mémoire MEM2 comprend une partition de domaines et de zones mémoires identique à celle de la première mémoire avec des niveaux respectifs de droits d'accès homologues à ceux de la première mémoire. [0063] La deuxième mémoire MEM2 comprend une partition de domaines sécurisés D12 et non sécurisés D22 et une zone mémoire Z112 ayant un niveau de droits d'accès P11, une zone mémoire Z122 ayant un niveau de droits d'accès P12, une zone mémoire Z212 ayant un niveau de droits d'accès P21, et une zone mémoire Z222 ayant un niveau de droits d'accès P22. [0064] La deuxième mémoire MEM2 est par exemple du type non volatile, telle qu'une mémoire RAM, SRAM. [0065] Le module de gestion de mémoire MD1 contient [0066] - les adresses ADD des domaines et des zones mémoires des mémoires MEM1 et MEM2, [0067] - une clé secrète KEY pour chiffrer et déchiffrer des données et des instructions, et un vecteur d' initialisation VECT connu par l'homme du métier sous la dénomination anglo-saxonne « initial vector », et [0068] - un gestionnaire de logiciel applicatif GEST comprenant une première empreinte et la taille de chaque logiciel applicatif APPI, APP2 ainsi qu'une indication du domaine et de la zone mémoire d'exécution de chaque application APPI, APP2. [0069] On suppose que les instructions des programmes applicatifs APPI et APP2 sont chiffrées en utilisant la clé de chiffrement KEY et le vecteur initial VECT. [0070] En variante, les instructions de chaque programme applicatif peuvent être chiffrées à l'aide d'un vecteur initial et d'une clé secrète différente. [0071] Le deuxième circuit logique CL2 est configuré de sorte que les données chiffrées générées par l'exécution du logiciel applicatif APPI, APP2 stocké dans l'une des zones mémoires de la première mémoire MEMI, soient stockées dans la zone mémoire homologue de la deuxième MEM2 ayant un niveau de droits d'accès identique à partir des adresses ADD et de l'indication du domaine et de la zone mémoire d'exécution de chaque application APPI, APP2 contenues dans le module de gestion MDI. [0072] Les données ADD, KEY, VECT et GEST sont chargées dans le module de gestion mémoire MD1 lors de la production du circuit intégré CI, préalablement à l'utilisation du circuit intégré CI. [0073] Le module de hachage MD2 comprend une fonction de hachage ayant comme 7 paramètre d'entrée les instructions et la taille mémoire d'un logiciel applicatif APPI, APP2 et délivre en sortie une deuxième empreinte dudit logiciel applicatif. [0074] Des moyens de vérification de l'intégrité sont configurés pour stocker une première empreinte et la taille mémoire de chaque logiciel applicatif APP1, APP2, calculer une deuxième empreinte du logiciel applicatif en utilisant ladite taille mémoire et comparer les deux empreintes. [0075] Les moyens de vérification incorporent ici l'unité de traitement UT, le module de gestion MD1 et le module de hachage MD2. [0076] Si aucune instruction du logiciel applicatif APPI, APP2 n'a été modifiée, la deuxième empreinte est identique à la première empreinte permettant de confirmer la non-modification des instructions attestant de l'intégrité du logiciel applicatif. [0077] Le premier circuit logique CL1 comprend ici un algorithme de chiffrement sy- métrique par blocs en dur (« Hardware »). [0078] L'algorithme de chiffrement symétrique par blocs peut par exemple utiliser un compteur connu par l'homme du métier sous l'acronyme anglo-saxon « CTR » « Counter ». [0079] L'algorithme de chiffrement symétrique par blocs est par exemple du type « AES », 3DES. [0080] En variante, l'algorithme de chiffrement par blocs peut être non symétrique. [0081] Les premier CL1 et deuxième CL2 circuits logiques sont réalisés par exemple à partir de poiles logiques. [0082] L'utilisation d'un algorithme de chiffrement par blocs ne comportant pas de chaînage entre les blocs permet de déchiffrer une instruction d'un bloc d'instructions indépendamment des autres instructions dudit bloc garantissant la confidentialité des instructions ne nécessitant pas d'être déchiffrées. [0083] Le premier circuit logique CLI est configuré pour déchiffrer les instructions chiffrées des logiciels applicatifs APPI et APP2 considérées comme intègres, l'unité de traitement UT est configurée pour exécuter les instructions déchiffrées des logiciels applicatifs APPI et APP2 et le premier circuit logique CLI est configuré pour chiffrer les données générées par l'exécution desdites instructions. L'unité de traitement UT est en outre reliée à une mémoire MEM3 du type volatile, par exemple une mémoire cache par l'intermédiaire du deuxième circuit logique CL2. [0084] Les instructions et les données destinées à ou en provenance de l'unité de traitement UT transitent par l'intermédiaire de la mémoire cache MEM3. [0085] L'unité de traitement UT est configurée pour fournir en entrée du premier circuit logique CLI la clé secrète KEY et le vecteur d'initialisation VECT. [0086] L'unité de traitement UT est réalisée par exemple à partir d'un microprocesseur, mais il peut s'agir de tout dispositif apte à configurer le premier circuit logique CLI, et 8 exécuter des instructions de logiciels applicatifs. [0087] On se réfère à la figure 2 qui illustre un premier exemple de mise en oeuvre du circuit intégré CI. [0088] Dans ce qui suit, on suppose que seul le logiciel applicatif APP1 est exécuté et génère des données DATAI. [0089] Dans une étape 10, l'unité de traitement UT exécute le logiciel d'exploitation OS] de manière à mettre en place des barrières pour créer les zones de mémoire Z111, Z121, Z112, Z122 et des barrières connues par l'homme du métier sous la dénomination anglo-saxonne « Memory Protection Unit », de sorte que les logiciels applicatifs sont isolés l'un de l'autre dans une même zone de mémoire. Puis l'unité de traitement exécute le logiciel d'exploitation 0S2 de manière à créer les zones de mémoire Z211, Z221, Z212, Z222 et des barrières pour isoler l'un de l'autre les programmes applicatifs présents dans une même zone de mémoire. [0090] Puis dans une étape 11, les moyens de vérification vérifient l'intégrité de chaque logiciel applicatif APP1. APP2, en calculant et en comparant une deuxième empreinte de chaque logiciel applicatif à la première empreinte dudit logiciel applicatif stockée dans le module MD1. [0091] Si la deuxième empreinte calculée n'est pas identique à la première empreinte sau- vegardée, le logiciel applicatif n'est pas activé de sorte qu'il ne soit pas exécuté par l'unité de traitement UT (étape 12). [0092] Si la deuxième empreinte calculée est identique à la première empreinte sauvegardée, le logiciel applicatif est activé et le premier circuit logique CL1 déchiffre les instructions dudit logiciel applicatif en utilisant la clé de chiffrement KEY et le vecteur initial VECT fournis par l'unité de traitement UT. [0093] Les instructions déchiffrées sont sauvegardées dans la mémoire MEM3. [0094] On suppose par la suite que le logiciel applicatif APPI est intègre. [0095] Puis dans une étape 13, l'unité de traitement UT exécute les instructions du programme APP1 générant des données DATAI. [0096] Dans une étape 14, le premier circuit logique CL1 chiffre les données DATAI en utilisant le vecteur initial VECT et la clé de chiffrement KEY. [0097] Puis dans une étape 15, le circuit logique CL2 mettant en oeuvre le module de gestion MD1 vérifie si l'adresse de la zone de mémoire de stockage ADD1 des données DATAI chiffrées répertoriée dans les données ADD a un niveau de droits d'accès identique au niveau de droits d'accès du domaine d'exécution du programme applicatif APPI répertorié dans les données GEST. [0098] Si les niveaux de droits d'accès ne sont pas identiques, les données chiffrées DATAI ne sont pas sauvegardées dans la zone de mémoire de stockage portant l'adresse ADDL 9 [0099] On suppose que l'adresse ADD1 correspond à la première zone mémoire Z112 de la deuxième mémoire MEM2. [0100] Comme les niveaux de droit d'accès sont identiques, les données DATAI chiffrées sont stockées dans la première zone mémoire Z112 de la deuxième mémoire MEM2 (étape 16). [0101] On se réfère à la figure 3 qui illustre un deuxième exemple de mise en oeuvre du circuit intégré Cl. [0102] Dans ce mode de mise en oeuvre, on suppose que les données DATAI chiffrées résultant de l'exécution du programme applicatif APP1 sont sauvegardées dans la première zone mémoire Z112 de la deuxième mémoire MEM2, et que la mémoire MEM3 contient des instructions déchiffrées du programme applicatif APP1 nécessitant les données DATAI pour générer de nouvelles données DATA2. [0103] Dans une étape 20, le premier circuit logique CL1 déchiffre les données DATAI chiffrées en utilisant la clé de chiffrement KEY, le vecteur initial VECT. [0104] Puis dans une étape 21, l'unité de traitement UT exécute les instructions du programme applicatif APP1 nécessitant les données DATAI et génère les données DATA2. [0105] Dans une étape 22, le premier circuit logique CL1 chiffre les nouvelles données DATA2 en utilisant le vecteur initial VECT et la clé de chiffrement KEY. [0106] Puis dans une étape 23, le deuxième circuit logique CL2 vérifie si l'adresse de la zone de mémoire de stockage ADD2 des données DATA2 chiffrées répertoriée dans les données ADD, a un niveau de droits d'accès identique au niveau de droits d'accès du domaine d'exécution du programme applicatif APP1 répertorié dans les données GEST. [0107] Si les niveaux de droits d'accès ne sont pas identiques, les données chiffrées DATA2 ne sont pas sauvegardées dans la zone de mémoire de stockage portant l'adresse ADD2. [0108] On suppose que l'adresse ADD2 correspond à la première zone mémoire Z112 de la deuxième mémoire MEM2. [0109] Comme les niveaux de droit d'accès sont identiques, dans une étape 24, les données DATA2 chiffrées sont stockées dans la première zone mémoire Z112 de la deuxième mémoire MEM2. [0110] La figure 4 illustre un deuxième mode de réalisation de l'unité de traitement UT. [0111] L'unité de traitement UT comprend deux coeurs de traitement 30 et 31, un premier coeur de traitement 30 étant configuré pour exécuter le logiciel applicatif APP1 et le deuxième coeur de traitement 31 étant configuré pour exécuter en parallèle le logiciel applicatif APP2. [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4] [Revendication 5] [Revendication 6] REVENDICATIONSProcédé, comprenant un stockage d'au moins un premier logiciel applicatif (A PP ) contenant des instructions chiffrées, dans une première zone mémoire (Z111) ayant un premier niveau de droits d'accès (PI I), une vérification de l'intégrité dudit premier logiciel applicatif, un déchiffrement par un moyen de chiffrement/déchiffrement (CL I) desdites instructions chiffrées considérées comme intègres, une exécution par une unité de traitement (UT) des instructions déchiffrées, ladite exécution générant des données (DATAI), un chiffrement desdites données générées par le moyen de chiffrement/déchiffrement et un stockage des données chiffrées dans une deuxième zone mémoire (Z112) ayant un deuxième niveau de droits d'accès identique au premier niveau de droits d'accès. Procédé selon la revendication 1, dans lequel la première zone mémoire (Z111) fait partie d'une première mémoire (MEM1) ayant une première zone mémoire supplémentaire (Z121) ayant un premier niveau supplémentaire de droits d'accès (P12) supérieur au premier niveau de droit d'accès (P11), la première zone mémoire supplémentaire contenant un premier logiciel d'exploitation (OS1) de l'unité de traitement (UT). Procédé selon la revendication 2, dans lequel la première zone mémoire (Z111) et la première zone mémoire supplémentaire (Z121) font partie d'un domaine sécurisé (D11) de la première mémoire (MEM1). Procédé selon la revendication 3, dans lequel la première mémoire (MEM1) comprend en outre un domaine non sécurisé (D21) comportant une première zone mémoire non sécurisée (Z211) stockant au moins un deuxième logiciel applicatif (APP2) et une deuxième zone mémoire non sécurisée (Z221) stockant un deuxième logiciel d'exploitation (0S2) de l'unité de traitement (UT), la deuxième zone mémoire non sécurisée ayant un niveau de droit d'accès (P22) supérieur au niveau de droit d'accès (P21) de la première zone mémoire non sécurisée. Procédé selon la revendication 4, comprenant en outre une vérification de l'intégrité dudit au moins un deuxième logiciel applicatif (APP2). Procédé selon l'une des revendications précédentes, comprenant en outre un déchiffrement des données chiffrées stockées, un traitement par l'unité de traitement (UT) des données déchiffrées (DATAI), le traitement générant. de nouvelles données (DATA2), un chiffrement par le moyen de chiffrement/déchiffrement (CL1) des nouvelles données et 11 un stockage des nouvelles données chiffrées dans la deuxième zone mémoire (Z112). [Revendication 7] Procédé selon l'une des revendications précédentes prise en com- binaison avec la revendication 4, dans lequel la deuxième zone mémoire (Z112) fait partie d'une deuxième mémoire (MEM2) ayant une partition de domaines et de zones mémoires identique à celle de la première mémoire (MEM1) avec des niveaux respectifs de droits d'accès homologues à ceux de la première mémoire, et les données générées par l'exécution d'un logiciel stocké dans l'une des zones mémoires de la première mémoire sont stockées dans la zone mémoire homologue de la deuxième mémoire. [Revendication 8] Procédé selon l'une quelconque des revendications précédentes, comprenant préalablement à la vérification de l'intégrité de chaque logiciel applicatif (APP1, APP2), un stockage dans d'une première empreinte et de la taille mémoire dudit logiciel applicatif, et la vérification de l'intégrité comporte un calcul d'une deuxième empreinte du logiciel applicatif utilisant ladite taille mémoire et une comparaison entre les deux empreintes, le logiciel applicatif étant considéré comme intègre en cas d'identité entre les deux empreintes. [Revendication 9] Procédé selon la revendication 8, dans lequel le calcul de la deuxième empreinte comprend une mise en oeuvre d'une fonction de hachage (MD2) ayant comme paramètre d'entrée les instructions et la taille mémoire dudit logiciel applicatif et délivrant en sortie ladite deuxième empreinte. [Revendication 10] Procédé selon l'une des revendications précédentes, dans lequel le chiffrement et le déchiffrement des données mettent en oeuvre un algorithme de chiffrement par blocs symétrique ne comportant pas de chaînage entre les blocs et une clé secrète. [Revendication 11] Procédé selon l'une des revendications précédentes prise en com- binaison avec la revendication 4, comprenant des exécutions en parallèle dudit au moins un premier logiciel applicatif et dudit au moins un deuxième logiciel applicatif. [Revendication 12] Circuit intégré (CI), comprenant une première zone mémoire (Z111) ayant un premier niveau de droits d'accès (P 11) configurée pour stocker au moins un premier logiciel applicatif (APP 1) contenant des instructions chiffrées, des moyens de vérification de l'intégrité (MD1, MD2) dudit premier logiciel applicatif, un moyen de chiffrement/déchiffrement (CL1) configuré pour déchiffrer lesdites instructions 12 [Revendication 13] [Revendication 14] [Revendication 15] [Revendication 16] [Revendication 17] chiffrées considérées comme intègres, une unité de traitement (UT) configurée pour exécuter les instructions déchiffrées, le moyen de chiffrement/déchiffrement étant en outre configure pour chiffrer les données (DATAI) générées par l'exécution et un deuxième moyen (CL2) configure pour stocker les données chiffrées dans une deuxième zone mémoire (Z112) ayant un deuxième niveau de droits d'accès identique au premier niveau de droits d'accès. Circuit intégré selon la revendication 12, dans lequel la première zone mémoire (Z111) fait partie d'une première mémoire (MEM1) comprenant une première zone mémoire supplémentaire (Z121) ayant un premier niveau supplémentaire de droits d'accès (P12) supérieur au premier niveau de droit d'accès, la première zone mémoire supplémentaire étant configurée pour contenir un premier logiciel d'exploitation (0S1) de l'unité de traitement (UT). Circuit intégré selon la revendication 13, dans lequel la première zone mémoire (Z111) et la première zone mémoire supplémentaire (Z121) font partie d'un domaine sécurisé (Dl 1) de la première mémoire (MEM1). Circuit intégré selon la revendication 14, dans lequel la première mémoire (MEM1) comprend en outre un domaine non sécurisé (D21) comportant une première zone mémoire non sécurisée (Z211) configurée pour stocker au moins un deuxième logiciel applicatif (APP2) et une deuxième zone mémoire non sécurisée (Z221) configurée pour stocker un deuxième logiciel d'exploitation (0S2) de l'unité de traitement (UT), la deuxième zone mémoire non sécurisée ayant un niveau de droit d'accès (P22) supérieur au niveau de droit d'accès (P21) de la première zone mémoire non sécurisée. Circuit intégré selon la revendication 15, dans lequel les moyens de vérification de l'intégrité sont en outre configurés pour vérifier l'intégrité dudit au moins un deuxième logiciel applicatif (APP2). Circuit intégré selon l'une des revendications 12 à 16, dans lequel le moyen de chiffrement/déchiffrement (CL1) est en outre configure pour déchiffrer des données (DATAI) chiffrées stockées, l'unité de traitement (UT) étant en outre configurée pour traiter des données déchiffrées, le moyen de chiffrement/déchiffrement (CLI) est en outre configure pour chiffrer de nouvelles données générées par le traitement, le deuxième moyen (CL2) étant en outre configure pour stocker des nouvelles données chiffrées (DATA2) dans la deuxième zone mémoire 13 (Z112). [Revendication 18] Circuit intégré selon l'une des revendications 12 à 16 prise en com- binaison avec la revendication 15, dans lequel la deuxième zone mémoire (Z112) fait partie d'une deuxième mémoire (MEM2) comprenant une partition de domaines et de zones mémoires identique à celle de la première mémoire avec des niveaux respectifs de droits d'accès homologues à ceux de la première mémoire, le deuxième moyen (CL2) étant en outre configuré de sorte que les données générées par l'exécution d'un logiciel stocké dans l'une des zones mémoires de la première mémoire soient stockées dans la zone mémoire homologue de la deuxième mémoire. [Revendication 19] Circuit intégré selon l'une quelconque des revendications 12 à 18, dans lequel les moyens de vérification de l'intégrité sont configurés pour stocker une première empreinte et la taille mémoire dudit logiciel applicatif, calculer une deuxième empreinte du logiciel applicatif en utilisant ladite taille mémoire et comparer les deux empreintes. [Revendication 20] Circuit intégré selon la revendication 19, dans lequel les moyens de vé- rification sont configurés pour calculer la deuxième empreinte par une mise en oeuvre d'une fonction de hachage (MD2) ayant comme paramètre d'entrée les instructions et la taille mémoire dudit logiciel applicatif et délivrant en sortie ladite deuxième empreinte. [Revendication 21] Circuit intégré selon l'une des revendications 12 à 20, dans lequel le premier circuit logique (CL1) est configuré pour mettre en oeuvre un algorithme de chiffrement par blocs symétrique ne comportant pas de chaînage entre les blocs et utilisant une clé secrète (KEY) pour chiffrer et déchiffrer des données. [Revendication 22] Circuit intégré selon l'une des revendications 12 à 21 prise en com- binaison avec la revendication 15, dans lequel l'unité de traitement (UT) comprend au moins deux coeurs de traitement (30, 31), un premier coeur de traitement étant configuré pour exécuter ledit au moins un premier logiciel applicatif et le deuxième coeur de traitement étant configuré pour exécuter en parallèle le au moins un deuxième logiciel applicatif. [Revendication 23] .Appareil (CP) comprenant un circuit intégré selon l'une quelconque des revendications 13 à 22.