Brevet FR2861235A1 — publié le 20050422

La présente invention concerne un procédé de protection d'un algorithme cryptographique. ARRIERE PLAN DE LINVENTION On sait que la façon la plus efficace de conser- ver la confidentialité lors d'une transmission de données est de chiffrer les données au moyen d'un algorithme cryptographique. A cet effet on connaît des dispositifs comportant une unité de traitement programmable associés à un fi- chier de configuration comportant un algorithme cryptographique personnalisé. L'entité réalisant l'algorithme cryptographique personnalisé est généralement différente de l'entité réalisant le dispositif utilisant l'algorithme cryptographique. Afin de protéger l'algorithme cryptographique pendant le transport depuis son lieu d'élaboration jusqu'à son chargement dans le dispositif auquel il est destiné, on procède habituellement à un chiffrement de l'algorithme luimême en utilisant une clé de protection. Sous cette forme chiffrée, l'algorithme cryptographique ne peut être exécuté par le dispositif auquel il est destiné. Lors du chargement de l'algorithme cryptographique dans le dispositif auquel il est destiné, un déchiffrement est donc effectué dans l'unité de traitement en utilisant la clé de protection qui y a été cornmuniquée par le fabricant du dispositif et introduite par celui-ci dans l'unité de traitement. Le fabricant du dis-positif ayant accès à la clé de protection, il est possible pour un fraudeur qui réussirait à obtenir d'une part l'algorithme cryptographique chiffré et d'autre part la clé détenue par le fabricant du dispositif, d'effectuer un déchiffrement de l'algorithme cryptographique lui permettant de reconstituer cet algorithme. En outre, après son déchiffrement l'algorithme n'est plus protégé de sorte qu'il est absolument nécessaire de disposer de moyens de sécurité particuliers pour protéger l'unité de traitement pendant l'exécution de l'algorithme. OBJET DE L'INVENTION Un but de l'invention est de proposer un procédé de protection d'un algorithme cryptographique y compris lors de son exécution dans une unité de traitement sans qu'il soit nécessaire de faire intervenir le fabricant de l'unité de traitement. BREVE DESCRIPTION DE L'INVENTION En vue de la réalisation de ce but, on propose, selon l'invention, un procédé de protection d'un algorithme cryptographique décomposable sous forme de polynômes initiaux à au moins deux variables et ayant un degré au moins égal à deux, le procédé comportant les étapes de réaliser des polynômes combinés, chacun obtenu à partir d'au moins deux polynômes initiaux, et de mettre en oeuvre les polynômes combinés dans l'unité de traitement. Ainsi, la combinaison d'au moins deux polynômes initiaux ayant un degré au moins égal à deux, réalise un polynôme ayant un degré au moins égal à quatre dont il est extrêmement difficile de retrouver les constituants en particulier lorsque le nombre de variables de ces polynômes est suffisamment important. L'algorithme ainsi transformé est donc protégé et peut donc être transmis avec un degré de sécurité satisfaisant. Par ailleurs, les polynômes combinés sont directement exécutables au même titre que les polynômes initiaux. Aucune transformation n'est nécessaire lors de la configuration de l'unité de traitement de sorte que l'algorithme reste protégé pendant son exécution. Selon une version avantageuse de l'invention, un effacement partiel de l'unité de traitement, et de la mémoire contenant le fichier de configuration lorsque la configuration est présente, est provoqué dans le cas d'une intrusion dans le dispositif. Dès l'instant où quelques informations sont manquantes la difficulté de reconstitution de l'algorithme est considérablement augmentée de sorte qu'un effacement partiel seulement suffit à protéger l'algorithme. Selon un autre aspect avantageux de l'invention, le procédé comporte en outre l'étape de combiner chaque polynôme combiné avec une fonction, et de combiner le polynôme combiné suivant avec une fonction inverse. Cette transformation complémentaire augmente encore la difficulté de retrouver les polynômes initiaux sans toutefois nuire au caractère exécutable du polynôme combiné en rai-son de l'élimination d'une fonction directe par la fonction inverse correspondante lors du passage d'un polynôme combiné au polynôme combiné suivant. De préférence, la fonction combinée à chaque po- lynôme combiné est une fonction linéaire. Le degré du polynôme combiné reste alors inchangé, de sorte que l'espace pris en mémoire par le polynôme combiné reste lui-même inchangé. DESCRIPTION DETAILLEE DE L'INVENTION D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit d'un mode de mise en uvre particulier non limitatif de l'invention en relation avec la figure unique ci-jointe qui est un diagramme schématique illustrant le procédé selon l'invention. En référence à la figure, le procédé de protection d'un algorithme cryptographique selon l'invention est destiné à être mis en uvre dans un dispositif de chiffrement 1 comportant de façon connue en soi un boî- tier 2 dans lequel est disposée une mémoire volatile 3 destinée à contenir un fichier de configuration et reliée à une unité de traitement 4 configurable par le fichier de configuration pour effectuer un chiffrement de données introduites dans le dispositif. Egalement de façon connue en soi, le dispositif 1 comporte un organe d'effacement 5 relié à la mémoire 3 et à l'unité de traitement 4, pour assurer en cas d'intrusion un effacement au moins partiel des informations qu'elles contiennent. A cet effet la mémoire et l'unité de traitement 4 sont de préférence volatiles de sorte qu'une interruption même brève de l'alimentation provoque un effacement partiel des informations contenues dans la mémoire et/ou l'unité de traitement. Selon l'invention, l'algorithme cryptographique 6 qui est destiné à être introduit dans le fichier de con-figuration 3 est tout d'abord divisé selon un procédé connu en soi, selon des rondes représentées par des polynômes initiaux P1, P2, P3, P4.ÉÉ, Pi, Pi+1..., Pr-1, Pr, à plu-sieurs variables et ayant un degré au moins égal à deux. Les polynômes initiaux sont déterminés en utilisant différentes clés (sauf répétition au hasard), ou différentes sous-clés d'une même clé. Les clés ou les sous-clés peu-vent être totalement intégrées aux polynômes ou constituer des variables supplémentaires au sein des polynômes. Les polynômes initiaux Pi sont ensuite combinés, deux par deux dans le mode de mise en uvre illustré, selon une combinaison mathématique de fonctions, pour obtenir des polynômes combinés Q1 = P2 o P1, Q2 = P4 o P3. Qk = Pi+1 0 PiÉÉÉ, Qr/2 = Pr o Pr-1. Lorsque les polynômes Pi ont un degré égal à deux, les polynômes combinés Qk ainsi obtenus ont un degré égal à quatre...DTD: Dans le mode de mise en oeuvre préféré illustré, chaque polynôme Qk est en outre combiné avec une fonction fk, de préférence une fonction linéaire, et le polynôme combiné suivant est combiné de façon correspondante avec la fonction inverse fk-1, à l'exception bien entendu du premier et du dernier polynômes combinés qui ne sont combinés qu'avec une fonction directe pour l'un et une fonction inverse pour l'autre. Avant son chargement dans la mémoire 3 sous forme d'un fichier de configuration, l'algorithme cryptographique est donc représenté par les fonctions polynomiales f1 O Q1, f2 O Q2 O fi-1..., fk o Qk O fk-1 1, fk+1 O Qk+1 O fk-1,..., Qr/2 O fr/2-1-1. entendu, l'invention n'est pas limitée au mode de mise en uvre 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 les rondes initiales aient été représentées sous forme d'un seul polynôme initial par ronde, chaque ronde peut contenir plusieurs polynômes initiaux. Les polynômes initiaux peuvent donc être combinés au sein d'une même ronde ou en combinant plusieurs rondes entre elles. Bien que le procédé ait été décrit en relation avec un dispositif comprenant une unité de traitement 4 associée à une mémoire 3 destinée à recevoir l'algorithme sous forme d'un fichier de configuration, ce qui permet d'effectuer une modification de la configuration sans avoir à effectuer un retour du dispositif en atelier, on peut prévoir une mise en uvre directe de l'algorithme dans l'unité de traitement par une configuration de l'unité de traitement en atelier. Dans ce cas la configuration ne peut plus être modifiée sans un retour en ate- lier. Bien que le procédé selon l'invention ait été décrit en combinant les polynômes initiaux deux à deux, il peut être nécessaire pour certains algorithmes de regrouper les polynômes élémentaires selon un nombre supérieur à deux. Par exemple pour l'algorithme dénommé DES dans lequel les rondes sont entrelacées, il est nécessaire de combiner plus de deux polynômes initiaux pour obtenir des polynômes combinés exécutables de façon sûre selon le procédé décrit ci-dessus. Bien que l'invention ait été décrite avec une étape comprenant une combinaison avec une fonction et la fonction inverse, on peut prévoir de constituer le fi-chier de configuration simplement à partir des polynômes combinés Qk. Au lieu d'effectuer la combinaison des différents polynômes combinés Qk avec des fonctions fk différentes pour chacun des polynômes combinés Qk comme décrit ci-dessus, on peut combiner chaque polynôme combiné avec la même fonction f puis avec la fonction inverse"f-1. REVENDICATIONS 1. Procédé de protection d'un algorithme cryptographique (6) en vue de son exécution dans un dispositif (1) comprenant une unité de traitement programmable (4), l'algorithme étant décomposable sous forme de polynômes initiaux (Pi) à au moins deux variables et ayant un degré au moins égal à deux, caractérisé en ce que le procédé comporte les étapes de réaliser des polynômes combinés (Qk) chacun obtenu à partir d'au moins deux polynômes initiaux (Pi, Pi+1), et de mettre en uvre les polynômes combinés (Qk) dans l'unité de traitement programmable (4) . 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre l'étape de mémoriser les polynômes combinés (Qk) sous forme d'un fichier de configuration chargé dans une mémoire (3) associée à l'unité de traitement (4). 3. Procédé selon la revendication 2, caractérisé en ce que la mémoire (3) et l'unité de traitement programmable (4) sont associés à un organe d'effacement (5) provoquant, dans le cas d'une intrusion dans le dispositif, un effacement de l'unité de traitement (4), et un effacement de la mémoire (3) contenant le fichier de con- figuration lorsque la configuration est présente dans cette mémoire. 4. Procédé selon la revendication 1, caractérisé en ce qu'il comporte l'étape de combiner chaque polynôme combiné (Qk) avec une fonction (fk), et de combiner le po- lynôme combiné suivant (Qk+1)avec une fonction inverse (fk-1) 5. Procédé selon la revendication 4, caractérisé en ce que la fonction (fk) combinée à chaque polynôme combiné (Qk) est une fonction linéaire.