Brevet FR2904901A1 — publié le 20080215

La présente invention concerne un procédé de vérification de l'intégrité d'une clef de chiffrement obtenue par combinaison de parties de clef et utilisée en relation avec un algorithme de chiffrement symétrique. ARRIERE PLAN DE L'INVENTION On sait qu'un algorithme de chiffrement fonctionné au moyen d'une clef qui est un élément essentiel pour assurer la sécurité du chiffrement. Différents moyens sont connus pour tenter d'obtenir frauduleusement la clef associée à un algorithme de chiffrement. L'un de ces moyens consiste à analyser des phénomènes électriques ou électromagnétiques se produisant lors du transfert de la clé depuis une mémoire morte de stockage vers une mémoire vive ou depuis la mémoire vive vers un registre. Pour lutter contre ce mode de fraude, il est connu de diviser la clef en plusieurs parties, généralement deux parties, qui sont combinées au moyen d'un opérateur, par exemple l'opérateur commutatif OU EXCLUSIF, dans une zone protégée en lecture dans la- quelle l'algorithme est mis en oeuvre. Un autre moyen de reconstituer la clef consiste à provoquer des perturbations sur la clef et à analyser les conséquences sur le chiffrement d'une donnée qui est uti- lisée de façon répétitive en provoquant des perturbations successives de la clef de chiffrement. Pour empêcher un fraudeur d'effectuer des perturbations successives de la clef il serait souhaitable de vérifier l'intégrité de la clef lors d'une mise en oeuvre de l'algorithme de chiffre- ment. Or, la combinaison de parties de clef dans une zone protégée non accessible en lecture interdit toute relecture de la clef pour vérifier son intégrité. OBJET DE L'INVENTION 2904901 2 Un but de l'invention est de proposer un procédé permettant de vérifier l'intégrité d'une clef de chiffre-ment obtenue par une combinaison dans une zone protégée de plusieurs parties de clef en utilisant un opérateur 5 commutatif en relation avec un algorithme de chiffrement symétrique. RESUME DE L'INVENTION En vue de la réalisation de ce but, on propose 10 selon l'invention un procédé comportant les étapes d'effectuer au moyen de l'opérateur commutatif une première combinaison entre une partie de clef et une clef de chiffrement de vérification, effectuer successivement au moyen de l'opérateur commutatif une combinaison entre une 15 partie de clef non encore combinée et un résultat d'une combinaison immédiatement précédente jusqu'à une dernière combinaison comprenant toutes les parties de clef, effectuer dans la zone protégée une combinaison entre la clef de chiffrement à vérifier et la dernière combinaison de 20 la clef de chiffrement de vérification avec les parties de clef pour obtenir une clef finale de vérification, effectuer un chiffrement d'une donnée de vérification au moyen d'un algorithme de chiffrement symétrique en utilisant la clef finale de vérification et comparer avec un 25 chiffrement de vérification obtenu par un chiffrement direct de la donnée de vérification au moyen de la clef de chiffrement de vérification. Ainsi, lorsque la clef à vérifier n'a pas été perturbée, la clef finale de vérification est équivalente 30 à la clef de chiffrement de vérification et le chiffre-ment de la donnée de vérification est alors identique au chiffrement de vérification. Au contraire, si la clef de chiffrement a été perturbée, la clef finale de vérification n'est pas équivalente à la clef de chiffrement de vérification et une différence est détectée entre le 2904901 3 chiffrement de la donnée de vérification et le chiffre-ment de vérification. Il est alors possible d'en tirer des conséquences, par exemple un blocage de l'algorithme de chiffrement afin d'empêcher un fraudeur de poursuivre 5 la succession de tests lui permettant de reconstituer la clef de chiffrement. De préférence, au moins une des combinaisons pré-cédant la dernière combinaison entre les parties de clef et la clef de chiffrement de vérification est effectuée 10 en dehors de la zone protégée. On minimise ainsi les moyens qui doivent être mis en oeuvre dans la zone protégée. BREVE DESCRIPTION DES DESSINS 15 D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit d'un mode de réalisation préféré non limitatif de l'invention en référence à la figure ci-jointe qui illustre de façon schématique le procédé selon l'invention. 20 DESCRIPTION DETAILLEE DE L'INVENTION En référence à la figure, le procédé selon l'invention est mis en oeuvre en utilisant des moyens connus en soi comprenant une mémoire statique 1 telle qu'une 25 EEPROM, une mémoire vive 2 et un registre 3 formant une zone protégée en lecture configuré pour mettre en oeuvre un algorithme de chiffrement symétrique (DES, TDES, AES...) utilisant une clef de chiffrement K. De façon connue en soi, la clef de chiffrement K est obtenue par combinaison 30 de deux parties de clef KM et M en utilisant un opérateur commutatif tel qu'un OU EXCLUSIF qui, dans les équations qui suivent sera noté (+). A cet effet les valeurs de clef KM et M sont lues à partir de la mémoire statique dans la mémoire vive puis 35 transférées à la zone protégée 3 dans laquelle elles sont 2904901 4 combinées selon l'équation K = KM (+) M. On rappelle que la clef K ne peut pas être lue dans la zone protégée 3. Selon l'invention, la mémoire statique 1 contient également une clef de chiffrement de vérification Kv, une 5 donnée de vérification Dv et un chiffrement de vérification Cv, le chiffrement de vérification Cv ayant été obtenu par un chiffrement direct de la donnée de vérification par l'algorithme de chiffrement en utilisant la clef de chiffrement de vérification. En utilisant un algo- 10 rithme DES on a donc Cv = DES(Kv,Dv). Pour provoquer une perturbation de la clef K, il est possible pour un fraudeur d'intervenir sur les parties de clef KM et/ou M lorsque celles-ci sont dans la mémoire statique ou dans la mémoire vive. 15 Afin de vérifier l'intégrité de la clef de chiffrement K contenue dans le registre 3, le procédé selon l'invention comporte les étapes de : - effectuer dans la mémoire vive 2 une combinai- son entre la clef de chiffrement de vérification Kv et 20 une première partie de clef KM. On obtient ainsi : T = KM (+) Kv - effectuer une deuxième combinaison entre le résultat de la combinaison précédemment obtenu et la seconde partie de clef M. Dans le mode de mise en oeuvre dé- 25 crit, on obtient ainsi une dernière combinaison Mv donnée par l'équation : Mv = T(+)M -combiner la combinaison de vérification Mv dans la zone protégée 3 avec la clef de chiffrement K pour ob- 30 tenir une clef finale de vérification Kf donnée par l'équation : Kf = K (+) Mv - effectuer un chiffrement de la donnée de vérification Dv au moyen de l'algorithme de chiffrement symétrique DES en utilisant la clef finale de vérification Kf 2904901 5 pour obtenir un chiffrement de donnée de vérification CDv tel que CDv = DES (Kf, Dv). - comparer le chiffrement de données de vérification CDv obtenu avec le chiffrement de vérification Cv 5 extrait de la mémoire statique 1. On notera que si l'on développe la formule de la clef finale de vérification on obtient : Kf = K (+) KM (+) Kv (+) M soit en tenant compte de la commutativité de l'opérateur 10 OU EXCLUSIF : Kf = K (+) KM (+) M (+) Kv Si les données de départ n'ont pas fait l'objet d'une attaque on a : KM (+) M = K 15 et l'expression de Kf devient : Kf = K (+) K (+) Kv = Kv. Si au contraire l'une des données a été perturbée, il n'y a plus d'identité entre K et KM (+) M de sorte que la clef finale de vérification Kf est alors 20 différente de la clef de chiffrement de vérification Kv. Le chiffrement de la donnée de vérification Dv avec la clef de chiffrement finale de vérification Kf donne alors un résultat CDv différent du chiffrement de vérification Cv. 25 La comparaison de CDv et Cv permet donc de détecter une attaque et de déclencher une action défensive, par exemple un blocage de l'algorithme. On notera que le procédé selon l'invention permet non seulement de vérifier l'intégrité de la clef de chiffrement K, mais également de vérifier lorsqu'une attaque a été effectuée sur la clef de chiffrement de vérification Kv, la donnée de vérification Dv ou le chiffrement de vérification Cv. Bien que la détection d'une attaque sur ces don- 35 nées ne soit pas le but premier de l'invention, elle per- 2904901 6 met néanmoins de réagir afin d'éviter que l'attaque porte ensuite sur les données relatives aux parties de clef KM ou M. Bien entendu, l'invention n'est pas limitée au 5 mode de mise en oeuvre décrit et on peut y apporter des variantes de réalisation sans sortir du cadre de l'invention tel que défini par les revendications. En particulier, bien que l'invention ait été décrite avec une clef en deux parties seulement, le procédé 10 selon l'invention peut s'appliquer à une clef recombinée à partir d'un nombre quelconque de parties de clef en utilisant un opérateur commutatif et un algorithme de chiffrement symétrique. Bien que les étapes de combinaison des parties de 15 clef de chiffrement KM et M avec la clef de vérification Kv aient été prévues d'être réalisées dans la mémoire vive 2, on peut également les réaliser dans la zone protégée 3 mais on monopolise alors inutilement les ressources de calcul de la zone protégée 3. REVENDICATIONS 1. Procédé de vérification de l'intégrité d'une clef de chiffrement (K) obtenue par une combinaison dans une zone protégée (3) d'au moins deux parties de clefs (KM, M) en utilisant un opérateur commutatif, caractérisé en ce qu'il comporte les étapes d'effectuer au moyen de l'opérateur commutatif une première combinaison entre une partie de clef (KM) et une clef de chiffrement de vérification (Kv), effectuer successivement au moyen de l'opérateur commutatif une combinaison entre une partie de clef non encore combinée et un résultat d'une combinaison immédiatement précédente jusqu'à une dernière combinaison (Mv) comprenant toutes les parties de clef, effectuer dans la zone protégée (3) une combinaison entre la clef de chiffrement (K) à vérifier et la dernière combinaison (Mv) de la clef de chiffrement de vérification (Kv) avec les parties de clef (KM, M) pour obtenir une clef finale de vérification (Kf), effectuer un chiffre-ment d'une donnée de vérification (Dv) au moyen d'un al- gorithme de chiffrement symétrique (DES) en utilisant la clef finale de vérification (Kf), et comparer avec un chiffrement de vérification (Cv) obtenu par un chiffre-ment direct de la donnée de vérification (Dv) au moyen de la clef de chiffrement de vérification (Kv). 2. Procédé selon la revendication 1, caractérisé en ce qu'au moins une des combinaisons précédant la dernière combinaison (Mv) entre les parties de clef (KM, M) et la clef de vérification (Kv) est effectuée en dehors de la zone protégée (3).