Brevet FR3076151A1 — publié le 20190628

DOMAINE TECHNIQUE AUQUEL SE RAPPORTE L'INVENTION La présente invention concerne de manière générale le domaine de la cryptographie. Elle concerne plus particulièrement un procédé de détermination d'une somme d'intégrité, ainsi qu'un programme d'ordinateur et une entité électronique associés. ARRIERE-PLAN TECHNOLOGIQUE Des entités électroniques sécurisées doivent permettre d'assurer la confidentialité des données qu'elles mémorisent. De telles entités sont par exemple conçues pour protéger la confidentialité de certaines clés cryptographiques (en particulier les clés secrètes), utilisées notamment dans des applications de déchiffrement de message électronique, de signature électronique ou d'identification. Ces entités électroniques sécurisées sont conçues pour rendre quasi impossible toute intrusion dans leur fonctionnement mais il est préférable de vérifier que les données mémorisées sont intègres, c'est-à-dire non altérées, tout en conservant leur confidentialité. On peut classiquement procéder de deux manières lorsque l'on souhaite vérifier l'intégrité de données mémorisées sous forme chiffrée. La première solution utilise une somme d'intégrité associée aux données brutes (avant chiffrement). Avant mémorisation, ces données sont chiffrées. La vérification de l'intégrité des données mémorisées (chiffrées) consiste alors à déchiffrer les données chiffrées puis à en calculer la somme d'intégrité associée. Cette dernière somme d'intégrité est comparée à la somme d'intégrité associée aux données brutes. Cependant, cette solution implique la manipulation de données en clair (après déchiffrement). La confidentialité des données mémorisées n'est plus forcément assurée. La deuxième solution propose de mémoriser dans l'entité électronique une somme d'intégrité associée aux données chiffrées. Un test de vérification de l'intégrité des données mémorisées (chiffrées) consiste alors à déterminer de manière indépendante une autre somme d'intégrité associée aux données 2 chiffrées puis à comparer cette somme avec celle mémorisée dans l'entité électronique. Cette méthode présente l'avantage d'être exécutée sur les données chiffrées ; les données mémorisées ne sont donc pas manipulées en clair. Cependant, comme les données chiffrées sont quant à elles connues, un 5 attaquant pourrait remplacer ces données chiffrées par un autre jeu de données correspondant à la même somme d'intégrité. La vérification d'intégrité serait alors validée de manière trompeuse. Un attaquant aurait également la possibilité de remplacer la somme d'intégrité avec une valeur appropriée car il pourrait la calculer à partir d'un jeu de données se substituant aux données chiffrées. 10 De plus, par construction, la détermination d'une somme d'intégrité dépend des données chiffrées, qui dépendent elles-mêmes de la clé de chiffrement utilisée. Ainsi lorsque les données mémorisées sur deux entités différentes sont chiffrées à partir de deux clés différentes, la deuxième solution n'est pas adaptée (puisqu'il serait alors nécessaire de manipuler et comparer deux 15 valeurs différentes de somme d'intégrité et donc de faire deux applications différentes de la fonction de somme de contrôle afin de pouvoir vérifier l'intégrité des données). OBJET DE L'INVENTION 20 La présente invention propose d'améliorer la vérification de l'intégrité de données sensibles sans affecter la confidentialité de ces données. Plus particulièrement, on propose selon l'invention un procédé de détermination d'une première somme d'intégrité comprenant les étapes suivantes : 25 - détermination d'une première donnée masquée par application d'une opération de « ou exclusif » entre une première donnée et un premier masque de données ; - détermination d'une deuxième donnée par application à la première donnée masquée d'une première fonction cryptographique, la deuxième donnée 30 étant masquée par un second masque de données ; - détermination d'une deuxième somme d'intégrité associée à la deuxième donnée par application à ladite deuxième donnée d'une fonction de somme de contrôle ; et - détermination de la première somme d'intégrité par application d'une 3 opération de « ou exclusif » entre la deuxième somme d'intégrité et une troisième somme d'intégrité associée au second masque de données. Ainsi, selon ce procédé, pour vérifier l'intégrité des données d'entrée, les données chiffrées sont tout d'abord masquées. Ce sont ensuite les données 5 masquées qui sont déchiffrées et à partir desquelles on calcule une somme d'intégrité. L'étape de déchiffrement ne dévoile donc pas la donnée d'entrée en clair et la vérification de l'intégrité des données s'effectue donc en conservant la confidentialité des données d'entrée. D'autres caractéristiques non limitatives et avantageuses du procédé de 10 détermination d'une première somme d'intégrité conforme à l'invention, prises individuellement ou selon toutes les combinaisons techniquement possibles, sont les suivantes : - la première fonction cryptographique combine par une opération de « ou exclusif » la première donnée masquée et un résultat obtenu en sortie d'un 15 bloc de chiffrement ; - le bloc de chiffrement utilise une clé cryptographique ; - la première fonction cryptographique est de type déchiffrement à rétroaction ou déchiffrement à rétroaction de sortie ou déchiffrement basé sur un compteur ; 20 - le premier masque de données est généré de manière aléatoire ; - il est également prévu une étape de détermination de la troisième somme d'intégrité associée au second masque de données par application de la fonction somme de contrôle au second masque de données ; - la première fonction cryptographique est une fonction à conservation de 25 masque de données ; - le premier masque de données et le second masque de données sont égaux ; - l'étape de détermination d'au moins une somme d'intégrité parmi la deuxième somme d'intégrité et la troisième somme d'intégrité est réalisée par 30 application de la fonction somme de contrôle avec un vecteur d'initialisation mis à 0; - la fonction de somme de contrôle est une application affine de donnée ; - la fonction de somme de contrôle est de type calcul de parité ou contrôle de redondance cyclique ; 4 - il est également prévu des étapes de : - réception de la première donnée et d'une quatrième somme d'intégrité associée à une troisième donnée ; et - vérification d'intégrité de la troisième donnée par comparaison de la 5 première somme d'intégrité et de la quatrième somme d'intégrité ; et - la première donnée est obtenue par application d'une deuxième fonction cryptographique à la troisième donnée, la deuxième fonction cryptographique permettant d'effectuer une opération inverse d'au moins une opération de la première fonction cryptographique. 10 L'invention propose également un programme d'ordinateur comprenant des instructions exécutables par un processeur et adaptées à mettre en oeuvre un procédé de détermination d'une première somme d'intégrité lorsque ces instructions sont exécutées par le processeur. L'invention propose également une entité électronique de détermination 15 d'une première somme d'intégrité comprenant : - un module de détermination d'une première donnée masquée par application d'une opération de « ou exclusif » entre une première donnée et un premier masque de données ; - un module de détermination d'une deuxième donnée par application à 20 la première donnée masquée d'une première fonction cryptographique, la deuxième donnée étant masquée par un second masque de données ; - un module de détermination d'une deuxième somme d'intégrité associée à la deuxième donnée par application à ladite deuxième donnée d'une fonction de somme de contrôle ; 25 - un module de détermination de la première somme d'intégrité par application d'une opération de « ou exclusif » entre la deuxième somme d'intégrité et une troisième somme d'intégrité associée au second masque de données. L'entité électronique peut comporter également : - une mémoire stockant la première donnée et une quatrième somme 30 d'intégrité associée à une troisième donnée ; et - un module de vérification d'intégrité de la troisième donnée par comparaison de la première somme d'intégrité et de la quatrième somme d'intégrité. 5 DESCRIPTION DETAILLEE D'UN EXEMPLE DE REALISATION La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. 5 Sur les dessins annexés : - la figure 1 représente schématiquement les éléments principaux d'une entité électronique au sein de laquelle est mise en oeuvre l'invention ; - la figure 2 représente, sous forme de logigramme, un premier exemple de procédé conforme à l'invention ; et 10 - la figure 3 représente, sous forme de logigramme, un deuxième exemple de procédé conforme à l'invention. La figure 1 représente schématiquement les éléments principaux d'une entité électronique 1 au sein de laquelle est mise en oeuvre l'invention. Cette entité électronique 1 est par exemple une carte à microcircuit, par exemple une carte à 15 circuit intégré universelle (ou UICC pour "Universel Integrated Circuit Card"). En variante, il pourrait s'agir d'un élément sécurisé (ou SE pour "Secure Elemenr) - par exemple un microcontrôleur sécurisé, d'un dispositif électronique portatif (ou "hand-held electronic device" selon l'appellation anglo-saxonne couramment utilisée) - par exemple un terminal de communication ou un passeport 20 électronique, ou d'un ordinateur. L'entité électronique 1 comprend un processeur 2 (ici un microprocesseur), une mémoire vive 4 et une mémoire non-volatile réinscriptible 6 (par exemple de type EEPROM pour "Electrically Erasable and Programmable Read-Only Memory). L'entité électronique 1 pourrait éventuellement comprendre 25 en outre une mémoire morte. La mémoire vive 4 et la mémoire non-volatile réinscriptible 6 (ainsi que le cas échéant la mémoire morte) sont chacune liées au processeur 2 de sorte que le processeur 2 peut lire ou écrire des données dans chacune de ces mémoires. Une de ces mémoires, par exemple la mémoire non-volatile réinscriptible 30 6, mémorise des instructions de programme d'ordinateur qui permettent la mise en oeuvre de l'un au moins des procédés décrits ci-dessous en référence aux figures 2 à 3 lorsque ces instructions sont exécutées par le processeur 2. Les mémoires 4, 6 stockent également des données représentatives de valeurs utilisées lors de la mise en oeuvre des procédés décrits ci-dessous. Par 6 exemple, la mémoire non-volatile réinscriptible 6 mémorise une clé cryptographique K. La mémoire vive 4 mémorise par ailleurs, par exemple au sein de variables, des données traitées au cours des procédés décrits ci-dessous. 5 L'entité électronique 1 comporte également un ensemble de modules (non représentés). Ces modules peuvent en pratique être réalisés par une combinaison d'éléments matériels et d'éléments logiciels. Chaque module possède une fonctionnalité décrite dans les procédés conformes à l'invention et exposés ci-après. Ainsi, pour chaque module, l'entité électronique 1 mémorise par 10 exemple des instructions de logiciel exécutables par le processeur 2 de l'entité électronique 1 afin d'utiliser un élément matériel (par exemple une interface de communication ou une mémoire) et de mettre ainsi en oeuvre la fonctionnalité offerte par le module. La figure 2 représente un premier exemple de procédé mis en oeuvre 15 dans l'entité électronique 1 conformément à l'invention. Ce procédé constitue un procédé de traitement cryptographique d'une donnée d'entrée D dont on souhaite assurer l'intégrité tout en maintenant sa confidentialité. On se place dans le cas où une donnée chiffrée C est obtenue par 20 chiffrement de la donnée d'entrée D dont on souhaite conserver la confidentialité et l'intégrité. Précisément, la donnée d'entrée D a été chiffrée au préalable par application d'une fonction cryptographique de chiffrement F afin d'obtenir une donnée chiffrée C. 25 La fonction cryptographique de chiffrement F est par exemple de type chiffrement à rétroaction (ou CFB pour « Cipher Feedback » selon l'appellation anglo-saxonne couramment utilisée) ou chiffrement à rétroaction de sortie (ou OFB pour « Output Feedback») ou chiffrement basé sur un compteur (ou CTR pour « CounTerR »). 30 Le chiffrement est par exemple effectué dans un processeur d'une entité électronique distincte de l'entité électronique 1. Pour cela, dans les cas de chiffrement par bloc mentionnés ci-dessus, la donnée d'entrée D peut être divisée en P blocs de données D. On applique alors successivement P blocs de chiffrement et on utilise pour chaque bloc de chiffrement une variable X ayant une 7 longueur en bits identique à celle des blocs de données D. Pour le premier bloc de chiffrement, la variable X est égale à une donnée d'initialisation. Cette donnée d'initialisation peut être un vecteur d'initialisation, un vecteur d'initialisation préalablement chiffré ou une valeur obtenue par compteur. Pour chaque bloc de 5 chiffrement suivant, la variable X est égale à une valeur obtenue par compteur, ou au résultat obtenu en sortie du bloc de chiffrement précédent, éventuellement combiné par une opération de « ou exclusif » avec un bloc de données d'entrée. Le chiffrement de chaque bloc de données Di repose sur l'itération i du bloc de chiffrement dont la variable X est un argument. Ce bloc de chiffrement 10 utilise une clé cryptographique mémorisée pour l'application d'un algorithme cryptographique fK à la variable X et résulte en l'obtention de la variable fK(X). Pour chaque bloc de données Di, un bloc de données chiffrées Ci est ensuite déterminé par application d'une opération de « ou exclusif » entre le bloc de données Di et la variable fK(X) résultant de l'itération i du bloc de chiffrement : 15 Ci = Di efK(X). On rappelle que l'opération logique de « ou exclusif » (ou XOR) correspond au symbole e entre les variables considérées. La donnée chiffrée C est formée de l'ensemble des P blocs de données chiffrées C. La fonction cryptographique de chiffrement F est dans ce cas la combinaison des applications successives de l'algorithme cryptographique fK et de l'opération de « ou exclusif ». 20 La fonction cryptographique de chiffrement F est ainsi une application linéaire de données par rapport à l'opération de « ou exclusif ». On se place également dans le cas où une somme d'intégrité TD associée à la donnée d'entrée D est obtenue par application d'une fonction somme de contrôle Cks à la donnée d'entrée D. Cette fonction somme de contrôle 25 Cks est décrite plus en détail dans la suite de cette description. Comme représenté sur la figure 2, le procédé débute à l'étape E4 par la réception de la donnée chiffrée C par l'entité électronique 1 (précisément par le processeur 2) et d'une somme d'intégrité TD associée à la donnée d'entrée D. A l'étape E6, le processeur 2 génère de manière aléatoire un masque de 30 données R. Ce masque de données R est ensuite utilisé à l'étape E8 pour masquer la donnée chiffrée C reçue à l'étape E4. L'étape de masquage est réalisée par application d'une opération de « ou exclusif » entre la donnée chiffrée C et le masque de données R. Une donnée masquée C' est alors obtenue à l'issue de 8 cette étape E8 : C' = C e R. Selon le premier exemple du procédé conforme à l'invention, une fonction cryptographique de déchiffrement G est ensuite appliquée à la donnée masquée C' à l'étape E10. Cette fonction cryptographique de déchiffrement G 5 permet le déchiffrement de la donnée masquée C'. La fonction cryptographique de déchiffrement G, appliqué à la donnée masquée C', permet de déchiffrer la donnée chiffrée C (par application de la fonction inverse F-1 de la fonction cryptographique de chiffrement F) tout en conservant le masque R. Autrement dit, la fonction cryptographique de 10 déchiffrement G vérifie : G(C')= G(C GR)=F-1(C)GR. On pourra se référer par exemple au document EP2296307 pour plus d'explications sur la manipulation des masques en lien avec une fonction cryptographique. La fonction cryptographique de déchiffrement G permet ainsi par 15 exemple un déchiffrement de type déchiffrement à rétroaction (CFB) ou déchiffrement à rétroaction de sortie (OFB) ou déchiffrement basé sur un compteur (CTR). A l'étape El 0, une donnée déchiffrée D' est alors obtenue par application de la fonction cryptographique de déchiffrement G à la donnée masquée C' (c'est- 20 à-dire au résultat obtenu par application d'une opération de « ou exclusif » entre la donnée chiffrée C et le masque de données R) : D' = G(C')= G(C e R). En variante, la fonction cryptographique de chiffrement F et la fonction inverse F-1 (mise en oeuvre au sein de la fonction cryptographique de déchiffrement G) peuvent être identiques. 25 Selon une autre variante, la fonction cryptographique de chiffrement F, la fonction inverse F-1 et la fonction cryptographique de déchiffrement G peuvent être identiques. C'est par exemple le cas pour les fonctions de type chiffrement/déchiffrement à rétroaction de sortie (OFB) ou de type chiffrement/déchiffrement basé sur compteur (CTR). 30 L'utilisation du masque de données R, généré de manière aléatoire, permet de conserver la confidentialité de la donnée d'entrée D lors de cette étape de déchiffrement car le résultat de l'application de la fonction cryptographique de déchiffrement G est également un résultat aléatoire : D' = G(C eR)= F-1(C) eR =D e R. Cette étape de déchiffrement ne dévoile 9 donc pas la donnée d'entrée D en clair. Dans la suite du procédé conforme à l'invention, à l'étape E12, on détermine une somme d'intégrité To associée à la donnée déchiffrée (masquée) D'. Pour cela, la fonction de somme de contrôle Cks (ou « checksum » selon 5 l'appellation anglo-saxonne couramment utilisée) est appliquée à la donnée déchiffrée D' : To = Cks(D') = Cks(D e R). La fonction somme de contrôle Cks est par exemple de type calcul de parité (ou « parity byte » selon l'appellation anglo-saxonne couramment utilisée) ou de type contrôle de redondance cyclique (ou CRC pour « Cyclic Redundancy 10 Check » selon l'appellation anglo-saxonne couramment utilisée). Cette fonction somme de contrôle Cks est dans les cas susmentionnés une application affine de données. La fonction somme de contrôle Cks vérifie donc des propriétés de linéarité par rapport à une opération de « ou exclusif ». Par exemple, pour une fonction de type CRC, la propriété de linéarité 15 s'écrit, en considérant deux variables Y et Z : CRC(Y e z) = CRC(Y) e CRC(Z). La fonction somme de contrôle Cks utilise généralement en entrée un vecteur d'initialisation IV. Ce vecteur d'initialisation IV intervient en étant combiné par une opération de « ou exclusif » à la donnée utilisée en argument de la fonction somme de contrôle Cks. 20 Par exemple, pour une fonction de type CRC, pour laquelle le vecteur d'initialisation IV est un paramètre de la fonction somme de contrôle, la relation suivante est vérifiée : CRC(IV,Y e Z) = CRC(IV,Y) e CRC(0,Z), avec Y et Z deux variables. Selon cet exemple, la somme d'intégrité To s'écrit : 25 To = CRC(IV, D') = CRC(IV, D e R) = CRC(IV, D) e CRC(0,R). En variante, le vecteur d'initialisation IV peut par exemple être mis à 0. Parallèlement, à l'étape E14, une somme d'intégrité T1 associée au masque de données R est déterminée. La somme d'intégrité T1 est obtenue par application de la fonction somme de contrôle Cks au masque de données R : 30 T1 = Cks(R). Dans le cas de l'exemple ci-dessus, la somme d'intégrité T1 s'écrit : T1 = CRC(0,R). La somme d'intégrité To associée à la donnée déchiffrée D' obtenue à l'étape E12 et la somme d'intégrité T1 associée au masque de données R obtenue 10 à l'étape E14 sont combinées, à l'étape E16, par l'application d'une opération de « ou exclusif » pour déterminer la somme d'intégrité T. La propriété de linéarité de la fonction somme de contrôle permet de montrer que la somme d'intégrité T est associée à la donnée d'entrée D : 5 T = To e T1 , Cks(D') e Cks(R) = Cks(D' e R) = Cks(D e R e R) = Cks(D). En considérant l'exemple présenté ci-dessus, la somme d'intégrité T s'écrit : T = To( ]) T1 = CRC(IV, D') ED CRC(0,R) = CRC(IV, y GR) =cRc(Iv,DeRe R), CRC(IV, D). La somme d'intégrité T et la somme d'intégrité TD sont utilisées ensuite 10 pour vérifier l'intégrité de la donnée d'entrée D. L'étape E20 correspond alors à une étape de vérification d'intégrité de la donnée d'entrée D. Pour cela, la somme d'intégrité T et la somme d'intégrité TD sont comparées. Si l'égalité T = TD est vérifiée à l'étape E20, le processeur 2 peut 15 conclure sur la conservation de l'intégrité de la donnée d'entrée D (à l'étape E24). Le processeur 2 peut par exemple ensuite mettre en place une succession d'opérations utilisant la donnée masquée D'. Cette succession d'opérations prend également en compte le masque de données R. La succession d'opérations correspond par exemple à un algorithme 20 cryptographique dont l'implémentation matérielle est réalisée dans une entité extérieure à l'entité électronique 1. Par exemple, elle peut être réalisée dans un cryptoprocesseur ou un coprocesseur. L'algorithme cryptographique peut par exemple être de type « standard de chiffrement avancé » (AES) ou « triple DES » (3DES) ou « SEED » ou encore de type « standard gouvernemental » (GOST). 25 Si l'égalité T = TD n'est pas vérifiée à l'étape E20, le processeur 2 met en oeuvre une étape de traitement d'erreur (étape E22). Une telle étape de traitement d'erreur E22 comprend par exemple l'écriture d'une donnée de blocage (ou verrou) dans la mémoire non-volatile réinscriptible 6. La présence d'une donnée de blocage dans la mémoire non-volatile réinscriptible 6 empêchera tout 30 fonctionnement ultérieur de l'entité électronique 1. Pour ce faire, le processeur 2 consulte par exemple la zone de mémorisation potentielle de la donnée de blocage lors du démarrage de son fonctionnement et arrête son fonctionnement en cas de détection de la donnée de blocage. La figure 3 représente un deuxième exemple du procédé conforme à 11 l'invention. Les étapes communes aux figures 2 et 3 portent les mêmes références et ne seront pas décrites à nouveau dans la suite. Selon ce deuxième exemple du procédé représenté sur la figure 3, la fonction cryptographique de déchiffrement G, appliquée à la donnée masquée C' à 5 l'étape E30, peut être une fonction qui permet de déchiffrer la donnée chiffrée C (par application de la fonction inverse F-1 de la fonction cryptographique de chiffrement F) tout en masquant le résultat obtenu avec un autre masque de données. Autrement dit, la fonction de déchiffrement G correspond à une fonction qui permet de déterminer l'inverse tout en maintenant un masquage de la donnée 10 manipulée (avec l'application d'un masque de données éventuellement différent). Dans ce cas, la fonction cryptographique de déchiffrement G peut être représentée comme une fonction à plusieurs variables, dont le masque de données R est un argument d'entrée. La fonction cryptographique de déchiffrement G vérifie alors : (D' , S) = G(C',R) = G(C e R,R), avec 15 D' = F-1(C) GS et S correspondant à un autre masque de données résultant de l'application de la fonction cryptographique G. On pourra également se référer par exemple au document EP2296307 pour plus d'explications sur la manipulation des masques en lien avec une fonction cryptographique. 20 Comme représenté sur la figure 3, à l'étape E30, on obtient le couple de données (D', S) dans lequel la donnée déchiffrée D' est obtenue par application de la fonction cryptographique de déchiffrement G à la donnée masquée C' (c'est-à-dire au résultat obtenu par application d'une opération de « ou exclusif » entre la donnée chiffrée C et le masque de données R) : (D' ,S) = G(C',R) = G(C e R,R) 25 avec D' = F-1(C) S. On obtient donc en résultat de l'application de la fonction cryptographique de déchiffrement G, la donnée déchiffrée D' mais masquée par l'autre masque de données S (qui est également conservé en sortie pour la suite du procédé). Comme décrit précédemment, l'utilisation de masques de données R, S, 30 R étant généré de manière aléatoire, permet de conserver la confidentialité de la donnée d'entrée D lors de cette étape de déchiffrement car le résultat de l'application de la fonction cryptographique de déchiffrement G est également un résultat aléatoire : D' = F1(C)EBS =D es. Cette étape de déchiffrement ne dévoile donc pas non 12 plus la donnée d'entrée D en clair. Dans la suite du procédé conforme à l'invention, comme décrit précédemment, à l'étape E32, on détermine une somme d'intégrité To associée à la donnée déchiffrée (masquée) D'. Pour cela, la fonction de somme de contrôle 5 Cks est appliquée à la donnée déchiffrée D' : To = Cks(D') = Cks(D e s). Dans le cas où la fonction somme de contrôle est de type contrôle de redondance cyclique (CRC) et prend le vecteur d'initialisation IV pour paramètre, la somme d'intégrité To s'écrit : To = CRC(IV, D') = CRC(IV, D e s) = CRC(IV, D) e CRC(0,S). 10 Parallèlement, comme représenté sur la figure 3, à l'étape E34, la somme d'intégrité T1 associée à l'autre masque de données S (obtenu en sortie de l'application de la fonction cryptographique de déchiffrement G) s'écrit : T1 = Cks(S). Dans le cas de l'exemple mentionné ci-dessus, la somme d'intégrité T1 15 s'écrit alors : T1 = CRC(0,S). La somme d'intégrité To associée à la donnée déchiffrée D' obtenue à l'étape E32 et la somme d'intégrité T1 associée à l'autre masque de données S obtenue à l'étape E34 sont combinées, à l'étape E36, par l'application d'une opération de « ou exclusif » pour déterminer la somme d'intégrité T. La propriété 20 de linéarité de la fonction somme de contrôle permet de montrer que la somme d'intégrité T est associée à la donnée d'entrée D : T = To e T1 = Cks(D') e Cks(S) = Cks(D' e s) = Cks(D e S e S) = Cks(D). Dans le cas de l'exemple présenté, la somme d'intégrité T s'écrit : T = To( ]) T1 = CRC(IV, D')( ]) CRC(0,S) = CRC(IV,DH E ]) S) = CRC(IV,D( ]) S ED 25 S) = CRC(IV, D). Les étapes de vérification d'intégrité E40 à E44 sont similaires aux étapes E20 à E24 décrites précédemment. En variante de ce deuxième exemple du procédé conforme à l'invention, un premier masque de données R1 et un deuxième masque de données R2 30 peuvent être utilisés à l'étape E8 (après avoir été générés préalablement de manière aléatoire lors d'une étape de type E6). Dans ce cas, la donnée masquée C' est obtenue par application d'une opération de « ou exclusif » entre la donnée chiffrée C, le premier masque de données R1 et le deuxième masque de données R2 : Ci = C e R1 e R2. 13 L'application de la fonction cryptographique de déchiffrement G à la donnée masquée permet d'obtenir en sortie un triplet de données (D', Si, S2): (D' , Si, S2) = G (C' , Ri, R2) = G (C e R1 e R2, Ri, R2) dans lequel la donnée déchiffrée D' est exprimée par D' = F-1(C) e s1 e S2 = D e s1 e s2 (comme 5 précédemment, les autres masques de données Si et S2 générés en sortie de l'application de la fonction cryptographique de déchiffrement G sont conservés pour la suite du procédé). Dans cette variante, à l'étape E34, une somme d'intégrité T5 et une somme d'intégrité T6 peuvent être respectivement obtenues par application de la 10 fonction somme de contrôle au masque de données Si et au masque de données S2. La somme d'intégrité T est alors obtenue par l'application d'une opération de « ou exclusif » entre la somme d'intégrité To associée à la donnée déchiffrée D', la somme d'intégrité T5 associée au premier masque Si et la somme d'intégrité T6 associée au deuxième masque S2: 15 T = To e T5 e T6 = Cks(D') e cks(s1) e cks(s2) = Cks(D' e s1 e s2) = Cks(D e s1 e S2 e s1 e s2) = Cks(D). Dans le cas d'une fonction somme de contrôle de type contrôle de redondance cyclique (CRC) qui prend le vecteur d'initialisation IV pour paramètre, on obtient : 20 T = To e T5 e T6 = CRC(IV, D') e CRC(0, Si) e CRC (0, S2) = CRC(IV , D' e s1 e s2) = CRC(IV, D e s1 e S2 e s1 e s2) = CRC(IV, D). Les étapes de vérification d'intégrité REVENDICATIONS1. Procédé de détermination d'une première somme d'intégrité (T) comprenant les étapes suivantes : - détermination d'une première donnée masquée (C') par application d'une opération de « ou exclusif » entre une première donnée (C) et un premier masque de données (R) ; - détermination d'une deuxième donnée (D') par application à la première donnée masquée (C') d'une première fonction cryptographique (G), la deuxième 10 donnée (D') étant masquée par un second masque de données (R ; S) ; - détermination d'une deuxième somme d'intégrité (To) associée à la deuxième donnée (D') par application à ladite deuxième donnée (D') d'une fonction de somme de contrôle (Cks) ; et - détermination de la première somme d'intégrité (T) par application 15 d'une opération de « ou exclusif » entre la deuxième somme d'intégrité (To) et une troisième somme d'intégrité (T1) associée au second masque de données (R ; S). 2. Procédé de détermination d'une première somme d'intégrité (T) selon la revendication 1, dans lequel la première fonction cryptographique (G) combine par une opération de « ou exclusif » la première donnée masquée (C') et un 20 résultat obtenu en sortie d'un bloc de chiffrement. 3. Procédé de détermination d'une première somme d'intégrité (T) selon la revendication 2, dans lequel le bloc de chiffrement utilise une clé cryptographique (K). 4. Procédé de détermination d'une première somme d'intégrité (T) selon 25 l'une quelconque des revendications 1 à 3, dans lequel la première fonction cryptographique (G) est de type déchiffrement à rétroaction (CFB) ou déchiffrement à rétroaction de sortie (OFB) ou déchiffrement basé sur un compteur (CTR). 5. Procédé de détermination d'une première somme d'intégrité (T) selon 30 l'une quelconque des revendications 1 à 4, dans lequel le premier masque de données (R) est généré de manière aléatoire. 6. Procédé de détermination d'une première somme d'intégrité (T) selon l'une quelconque des revendications 1 à 5, comprenant en outre l'étape suivante : - détermination de la troisième somme d'intégrité (Ti) associée au 15 second masque de données (R ; S) par application de la fonction somme de contrôle (Cks) au second masque de données (R ; S). 7. Procédé de détermination d'une première somme d'intégrité (T) selon l'une quelconque des revendications 1 à 6, dans lequel la première fonction 5 cryptographique (G) est une fonction à conservation de masque de données et dans lequel le premier masque de données (R) et le second masque de données (R) sont égaux. 8. Procédé de détermination d'une première somme d'intégrité (T) selon l'une quelconque des revendications 1 à 7, dans lequel la détermination d'au moins une somme d'intégrité parmi la deuxième somme d'intégrité (To) et la troisième somme d'intégrité (T1) est réalisée par application de la fonction somme de contrôle (Cks) avec un vecteur d'initialisation mis à 0. 9. Procédé de détermination d'une première somme d'intégrité (T) selon l'une quelconque des revendications 1 à 8, dans lequel la fonction de somme de contrôle (Cks) est une application affine de données. 10. Procédé de détermination d'une première somme d'intégrité (T) selon l'une quelconque des revendications 1 à 9, dans lequel la fonction de somme de contrôle (Cks) est de type calcul de parité ou contrôle de redondance cyclique (CRC). 11. Procédé de détermination d'une première somme d'intégrité (T) selon l'une quelconque des revendications 1 à 10, comprenant en outre les étapes suivantes : - réception de la première donnée (C) et d'une quatrième somme d'intégrité (TD) associée à une troisième donnée (D) ; et - vérification d'intégrité de la troisième donnée (D) par comparaison de la première somme d'intégrité (T) et de la quatrième somme d'intégrité (TD). 12. Procédé de détermination d'une première somme d'intégrité (T) selon la revendication 11, dans lequel la première donnée (C) est obtenue par application d'une deuxième fonction cryptographique (F) à la troisième donnée (D), la deuxième fonction cryptographique (F) permettant d'effectuer une opération inverse d'au moins une opération de la première fonction cryptographique (G). 13. Programme d'ordinateur comprenant des instructions exécutables par un processeur (2) et adaptées à mettre en oeuvre un procédé selon l'une quelconque des revendications 1 à 12 lorsque ces instructions sont exécutées par 16 le processeur (2). 14. Entité électronique de détermination d'une première somme d'intégrité (T) comprenant : - un module de détermination d'une première donnée masquée (C') par 5 application d'une opération de « ou exclusif » entre une première donnée (C) et un premier masque de données (R) ; - un module de détermination d'une deuxième donnée (D') par application à la première donnée masquée (C') d'une première fonction cryptographique (G), la deuxième donnée (D') étant masquée par un second 10 masque de données (R; S) ; - un module de détermination d'une deuxième somme d'intégrité (To) associée à la deuxième donnée (D') par application à ladite deuxième donnée (D') d'une fonction de somme de contrôle (Cks) ; - un module de détermination de la première somme d'intégrité (T) par 15 application d'une opération de « ou exclusif » entre la deuxième somme d'intégrité (To) et une troisième somme d'intégrité (T1) associée au second masque de données (R ; S). 15. Entité électronique de détermination d'une première somme d'intégrité (T) selon la revendication 14, comprenant en outre : 20 - une mémoire stockant la première donnée (C) et une quatrième somme d'intégrité (TD) associée à une troisième donnée (D) ; et - un module de vérification d'intégrité de la troisième donnée (D) par comparaison de la première somme d'intégrité (T) et de la quatrième somme d'intégrité (TD). 25