FR 2792141 A1 20001013 FR 9904441 A 19990409 PROCEDE DE SECURISATION D'UN OU PLUSIEURS ENSEMBLES ELECTRONIQUES METTANT EN #UVRE UN MEME ALGORITHME CRYPTOGRAPHIQUE AVEC CLE SECRETE. UNE UTILISATION DU PROCEDE ET L'ENSEMBLE ELECTRONIQUE La présente invention concerne un procédé de sécurisation d'un ou plusieurs ensembles électroniques mettant en #uvre un même algorithme cryptographique avec clé secrète, une utilisation du procédé et l'ensemble électronique. Plus précisément, le procédé vise à faire dépendre d'une donnée secrète la manière dont le calcul sera effectué, cette donnée pouvant être différente selon l'ensemble électronique qui intervient ou selon la clé secrète qui est utilisée. L'objectif est de permettre aux ensembles électroniques de ne pas être vulnérables face à un certain type d'attaques physiques dites "Differential Key Differential Power Analysis", en abrégé DKDPA qui cherchent à obtenir des informations sur une clé secrète à partir de l'étude de la consommation électrique du (ou des) ensemble(s) électronique(s) sur plusieurs exécutions du calcul avec des clés secrètes différentes, dont au moins une est connue de l'attaquant (par exemple s'il a eu pour au moins un de ces calculs la possibilité de fixer lui-même la clé secrète). Les algorithmes cryptographiques considérés ici utilisent une clé secrète pour calculer une information de sortie en fonction d'une information d'entrée ; il peut s'agir d'une opération de chiffrement, de déchiffrement ou de signature ou de vérification de signature, ou d'authentification ou de nonrépudiation. Ils sont construits de manière à ce qu'un attaquant, connaissant les entrées et les sorties, ne puisse en pratique déduire aucune information sur la clé secrète elle-même. On s'intéresse donc à une classe plus large que celle traditionnellement désignée par l'expression algorithmes à clé secrète ou algorithmes symétriques. En particulier, tout ce qui est décrit dans la présente demande de brevet s'applique également aux algorithmes dits à clé publique ou algorithmes asymétriques, qui comportent en fait deux clés : l'une publique, et l'autre secrète, cette dernière étant celle visée par les attaques décrites ci-dessous. Les attaques de type Analyse de Puissance Electrique, Power Analysis en langage anglo-saxon, développées par Paul Kocher et Cryptographie Research (Confer document Introduction to Differential Power Analysis and Related Attacks by Paul Kocher, Joshua Jaffe, and Benjamin Jun, Cryptography Research, 870 Market St., Suite 1008, San Francisco, CA 94102, édition du document HTML à l'adresse URL : http://www.cryptography.com/dpa/technical/index.html. introduit dans la présente demande à titre de référence), partent de la constatation qu'en réalité l'attaquant peut acquérir des informations, autres que la simple donnée des entrées et des sorties, lors de l'exécution du calcul, comme, par exemple, la consommation électrique du microcontrôleur ou le rayonnement électromagnétique émis par le circuit. L'analyse d'énergie électrique différentielle, Differential Power Analysis en langage anglo-saxon, en abrégé DPA, est une attaque permettant d'obtenir des informations sur la clé secrète contenue dans l'ensemble électronique, en effectuant une analyse statistique des enregistrements de consommation électrique effectués sur un grand nombre de calculs avec cette même clé. On considère, à titre d'exemple non limitatif, le cas de l'algorithme DES (Data Encryption Standard), dont on peut trouver une description dans l'un des documents suivants : FIPS PUB 46-2, Data Encryption Standard, 1994 ; FIPS PUB 74, Guidelines for Implementing and Using the NBS Data Encryption Standard, 1981 ; ANSI X3. 92, American National Standard, Data Encryption Algorithm, 1981 ; ISO/IEC 8731 :1987, Banking - Approved Algorithms for Message Authentication - Part 1 : Encryption Algorithm (DEA). ou encore dans l'ouvrage suivant : Bruce Schneier, Applied Cryptography, 2ème édition, John Wiley & Sons, 1996, page 270. Les documents précités sont introduits dans la présente demande à titre de référence. L'algorithme DES se déroule en 16 étapes appelées tours, représentés figure 2A. Dans chacun des 16 tours, une transformation F est effectuée sur 32 bits (R,), qui dans le premier tour constituent la moitié (Ro) du message d'entrée (E). Dans chacun des tours, une partie (R,) formée de 32 bits de l'information à crypter est combinée dans la fonction F avec une partie (K,) formée de 32 bits de la clé secrète de cryptage (Ks). Cette fonction F met en #uvre à chaque tour huit transformations non linéaires de 6 bits sur 4 bits, notées (fig.1b2b) S,, S2, S8, qui sont codées, mémorisées chacune dans une table de codage appelée boîte S. Ces huit boîtes S sont identiques pour toutes les cartes ou pour tous les ensembles électroniques. Seule la clé de cryptage change d'une carte à l'autre ou d'un ensemble électronique à l'autre. Chaque boîte S est un tableau à 64 (26) lignes de quatre colonnes de 1 bit. Bien évidemment ces tables peuvent être arrangées différemment en mémoire pour permettre des gains de place. Par construction de l'algorithme DES, on constate figure 2B que les transformations qu'effectue la fonction F sur l'information de 32 bits constituant (R,) peuvent toujours entrer dans l'une des catégories suivantes : - permutation des bits de R, ; puis expansion à 48 bits de R,, pour obtenir l'information R,' ; - OU-exclusif de R,' avec une variable K, dépendant uniquement de la clé ou d'une sous-clé ; pour obtenir un résultat Ri" sur 48 bits ; - transformation non linéaire de Ri" par application sur chaque portion de 6 bits constituant Ri" d'une boîte S différente ; - permutation dite P (cette permutation est définie et imposée par le standard DES) sur les 32 bits sortant de l'ensemble constitué par les huit boîtes S, (S, à S8) ; Le résultat obtenu par l'application de la fonction F est combiné dans un OU-exclusif avec soit les 32 autres bits du message, soit les 32 bits du résultat fourni à l'étape i-2, de façon à respecter la relation R, = R1-2#F(Ri-1, Ki) figure 2A. L'attaque de type DPA sur le DES peut être mise en #uvre sur le DES de la manière suivante : 1ère étape : On fait des mesures de consommation sur le premier tour, ceci pour 1000 calculs de DES. On note E[1], ..., E [1000] les valeurs d'entrée de ces 1000 calculs. On note C[1], ..., C [1000] les 1000 courbes correspondantes de consommation électrique mesurées lors de ces calculs. On calcule également la courbe moyenne CM des 1000 courbes de consommation. 2ème étape : On s'intéresse, par exemple, au premier bit de sortie de la première boîte S lors du premier tour. Notons b la valeur de ce bit. Il est facile de voir que b ne dépend que de 6 bits de la clé secrète. L'attaquant fait une hypothèse sur les 6 bits concernés. Il calcule, à partir de ces 6 bits et des E[i], les valeurs théoriques attendues pour b. Cela permet de séparer les 1000 entrées E[1], ..., E[1000] en deux catégories : celles qui donnent b=0 et celles qui donnent b=1. 3ème étape : On calcule maintenant la moyenne CM' des courbes correspondant à des entrées de la première catégorie, c'est-à-dire pour lesquelles b=0. Si CM et CM' présentent une différence notable, on considère que les valeurs retenues pour les 6 bits de clé étaient les bonnes. Si CM et CM' ne présentent pas de différence sensible, au sens statistique, c'est-à-dire pas de différence nettement supérieure à l'écart type du bruit mesuré, on recommence la 2ème étape avec un autre choix pour les 6 bits. 4ème étape : On répète les étapes 2 et 3 avec un bit cible b issu de la deuxième boîte S, puis de la troisième boîte S, ..., jusqu'à la huitième boîte S. On obtient donc finalement 48 bits de la clé secrète. 5ème étape : Les 8 bits restants peuvent être trouvés par recherche exhaustive. Cette attaque ne nécessite aucune connaissance sur la consommation électrique individuelle de chaque instruction, ni sur la position dans le temps de chacune de ces instructions. Elle s'applique de la même manière si on suppose que l'attaquant connaît des sorties de l'algorithme et les courbes de consommation correspondantes. Elle repose uniquement sur l'hypothèse fondamentale selon laquelle : Hypothèse fondamentale : il existe une variable intermédiaire, apparaissant dans le cours du calcul de l'algorithme, telle que la connaissance de quelques bits de clé, en pratique moins de 32 bits, permet de décider si deux entrées, respectivement deux sorties, donnent ou non la même valeur pour cette variable. Tous les algorithmes utilisant des boîtes S, tels le DES, sont potentiellement vulnérables à la DPA, car les modes de réalisation usuels restent en général dans le cadre de l'hypothèse mentionnée ci-dessus. Les attaques dites par analyse d'énergie électrique de haut niveau, High-Order Differential Power Analysis en langage anglo-saxon, en abrégé HO-DPA, sont une généralisation de l'attaque DPA décrite précédemment. Elles peuvent utiliser plusieurs sources d'information différentes, outre la consommation elles peuvent mettre en jeu les mesures de rayonnement électromagnétique, de température, etc. et mettre en #uvre des traitements statistiques plus sophistiqués que la simple notion de moyenne, des variables intermédiaires (généralisant le bit b défini ci-dessus) moins élémentaires. Néanmoins, elles reposent exactement sur la même hypothèse fondamentale que la DPA. Une solution, pour supprimer les risques d'attaques DPA ou HODPA, consiste, pour un processus de calcul cryptographique avec clé secrète Ks, à modifier le mode de réalisation de l'algorithme, de manière que l'hypothèse fondamentale précitée ne soit plus vérifiée, aucune variable intermédiaire calculée ne dépendant plus de la connaissance d'un sousensemble aisément accessible de la clé secrète. Dans ce but, premièrement le processus de calcul cryptographique est séparé dans l'ensemble électronique en plusieurs parties de processus de calcul PPC, à PPCk (fig. 3) distinctes conduites parallèlement, puis deuxièmement la valeur finale V correspondant à celle obtenue par le calcul cryptographique en l'absence de séparation, est reconstituée dans l'ensemble électronique à partir des résultats partiels intermédiaires v1 à vk obtenus par la mise en oeuvre des parties de processus de calcul distinctes PPC1 à PPCk précitées. Cette séparation est réalisée par l'algorithme de calcul modifié qui remplace chaque variable v intermédiaire, intervenant dans le cours du calcul et dépendant des données d'entrée (ou de sortie), par k variables v,, v2, vk, telles que v1, v2, ..., et vk permettent, au besoin, de reconstituer v. Plus précisément, cela signifie qu'il existe une fonction f permettant de déterminer v, tel que v=f(v1, v2, ..., vk) et que la séparation mise en #uvre par l'algorithme modifié satisfait cette fonction. On suppose en outre que f satisfait, de préférence, la première condition suivante : Condition n 1 : Soit i un indice compris (au sens large) entre 1 et k. La connaissance d'une valeur v ne permet jamais en pratique de déduire des informations sur l'ensemble des valeurs vi telles qu'il existe un (k-1)uplet (v1, vi-1, v1+1,...,vk) satisfaisant l'équation f(v1, ..., vk)=v ; On fait alors une traduction de l'algorithme en remplaçant chaque variable intermédiaire V dépendant des données d'entrée (ou de sortie) par les k variables v1, v2, ... ,vk. Pour garantir la sécurité maximale de l'algorithme modifié sous sa nouvelle forme, on impose la condition supplémentaire suivante (condition n 2) sur la fonction f : Condition n 2 : La fonction f est telle que les transformations à effectuer sur v1, v2, ou vk au cours du calcul, à la place des transformations effectuées habituellement sur v, peuvent être implémentées sans avoir à recalculer v. Reprenons l'exemple de l'algorithme DES. Une mise en #uvre concrète de la méthode décrite ci-dessus consiste à construire l'algorithme de calcul modifié DESM pour qu'il sépare chaque variable v intermédiaire, intervenant dans le cours du calcul et dépendant des données d'entrée ou de sortie, en, par exemple, deux variables v, et v2, c'est-à-dire que l'on prend k=2. On considère la fonction f(v1 v2)= v = v1 # v2 de l'exemple n 1 cidessus, qui satisfait par construction la condition n 1. Par construction de l'algorithme DES, on constate facilement que les transformations qu'il effectue sur v peuvent toujours entrer dans l'une des cinq catégories suivantes : - permutation des bits de v ; - expansion des bits de v ; - OU-exclusif de v avec une autre variable v' du même type ; - OU-exclusif de v avec une variable c dépendant uniquement de la clé ou d'une sous-clé ; - transformation non linéaire de v par une boîte S. Les deux premières catégories correspondent à des transformations linéaires sur les bits de la variable v. Pour celles-ci, la condition n 2 est donc très facile à vérifier et il suffit, à la place de la transformation effectuée habituellement sur v, d'effectuer la permutation ou l'expansion sur v,, puis sur v2, et la relation f(v1, v2)= v qui était vraie avant la transformation reste vraie également après. De même, dans le troisième cas, il suffit de remplacer le calcul v''= v 0 v' par celui de v", = v, (f3 v', et de v"2 = v2 (f3 V'2' Les relations f(v" vzJ= v et f(v'1, v'2)= v' donnent bien f(v''1, v''2)= v", et la condition n 2 est encore vérifiée. En ce qui concerne le OU-exclusif de v avec une variable c dépendant uniquement de la clé ou d'une sous-clé, la condition n 2 est aussi très facile à satisfaire : il suffit de remplacer le calcul de v # c par v, # c, ou v2 # c, ce qui assure la condition n 2. Enfin, à la place de la transformation non-linéaire de l'art antérieur v'=S (v) donnée, représentée figure 4A et réalisée sous la forme d'une boîte S, qui, dans cet exemple, admet des entrées de 6 bits et donne des sorties de 4 bits, l'ensemble électronique réalise la transformation (v'1,v'2)=S'(v1,v2) dans une variante de réalisation au moyen de deux nouvelles boîtes S, chacune pouvant avoir la forme d'un tableau cette fois de 12 bits sur 4 bits. Pour garantir l'égalité f(v'1, v'2) = v', il suffit de choisir : (v',, v'zJ = S'(vl, v) = ( A (v" vj, S(v, v A(v" vzJ ) c'est-à-dire v', = 4, vj et v'2 = S(Vf0 v 0 A(v,, vj où A désigne une transformation aléatoire et secrète de 12 bits vers 4 bits. La première (nouvelle) boîte S (S'1 fig.4b) correspond à la table de la transformation (v1, v2) -->A(v,, v2) qui à (v1,v2) associe A(v1, v2) et la seconde (nouvelle) boîte S (S'2) correspond à la table de la transformation (v1, v2) - S(v$ vJ $ A(V11 v qui à (v1, v2) associe S(v1$ vJ 0 A(vl, v2). La présence de la fonction aléatoire A permet de garantir la condition n 1. L'utilisation de tables permet par ailleurs d'éviter d'avoir à calculer v1#v2 et, par là, permet de satisfaire la condition n 2. Les tables de transformation ou de conversion peuvent être mémorisées dans une mémoire ROM de la carte à microcalculateur lorsque l'ensemble électronique est constitué par une carte à microcalculateur. Ainsi, pour une étape de calcul du type transformation non linéaire mise en #uvre par un processus de calcul cryptographique classique tel que le DES, la séparation, ainsi que représenté en figure 4C, peut être effectuée en k parties. Par rapport à un processus de calcul cryptographique classique utilisant des transformations non linéaires de m bits sur n bits, décrites par des tables de conversion dans lesquelles les n bits de sortie de la transformation sont lus à une adresse fonction des m bits d'entrée, l'algorithme de calcul cryptographique modifié DESM remplace chaque transformation non linéaire de m bits sur n bits du processus de calcul cryptographique classique appliquée à une variable intermédiaire de m bits jouant le rôle de variable d'entrée E, en l'absence de séparation, par une pluralité k de transformations non linéaires partielles de km bits sur n bits appliquées chacune à une variable intermédiaire partielle de l'ensemble k des variables intermédiaires partielles v1 à vk de m bits. Selon un aspect particulièrement remarquable du procédé objet de l'invention, cette transformation non linéaire partielle est décrite et réalisée par k tables de conversion partielle dans lesquelles chacun des n bits de sortie de chaque table constitue, respectivement la variable v', ,la variable v'2 ...,...la variable v'k de la transformation et sont lus à une adresse fonction d'un des k groupes des km bits d'entrée. Dans l'exemple du DES précité et en relation avec la figure 4C, on indique que k=2, n=4 et m=6. Selon une première variante, pour des raisons d'encombrement de la ROM, on peut tout à fait utiliser la même fonction aléatoire A pour chacune des huit boîtes S de la description classique du DES, ce qui permet de n'avoir que neuf nouvelles boîtes S à stocker au lieu de seize. Une deuxième variante, appelée variante n 2, sera décrite en liaison avec la figure 4D. Afin de réduire la taille de la ROM nécessaire pour stocker les boîtes S, on peut, à la place de chaque transformation non-linéaire v'=S (v) de l'implémentation initiale donnée sous la forme d'une boîte S (qui dans l'exemple du DES admet des entrées de 6 bits et donne des sorties de 4 bits), également utiliser la méthode suivante qui réalise dans cette deuxième variante, la transformation (v'1,v'2)=S'(v1,v2) au moyen de deux boîtes S, (S'1; S'2) contenant chacune une table de 6 bits sur 4 bits. La mise en oeuvre initiale du calcul de v'=S (v) remplacée dans l'algorithme modifié par les deux calculs successifs suivants : . vo#=#(v1#v2) qui utilise une fonction # bijective et secrète de 6 bits sur 6 bits, et (vs v'.) = S'(v,, v ~ bzz, S(P'(vJ) Bzz c'est-à-dire v'1 = A(vO), v'2 = S(#-1(vo)) # A(vo où A désigne une transformation aléatoire et secrète de 6 bits vers 4 bits. La première (nouvelle) boîte S (référencée S', sur la figure 4D) correspond à la table de la transformation vo # A(vo) qui à vO associe A(vO) et la seconde (nouvelle) boîte S (référencée S'2 sur la figure 4D) correspond à la table de la transformation vo S(rp-1(VoJ) (/) A(v qui à vO associe S(rp-1(VoJ) 0 A(vj. Par construction, on a toujours l'égalité f(v'1, v'2)= v'. La présence de la fonction aléatoire A permet de garantir la condition n 1. L'utilisation de tables permet d'éviter d'avoir à calculer#-1(vo)= v1# v2. Sur la figure 4E, on a représenté une étape de calcul correspondante, de type transformation non linéaire mise en #uvre dans le cadre du processus de calcul cryptographique classique comme le DES, tel que modifié conformément au procédé objet de l'invention selon la variante n 2. Outre la séparation en k parties appliquée à la variable d'entrée E, pour les transformations non linéaires de m bits sur n bits, décrites par des tables de conversion dans lesquelles les n bits de sortie sont lus à une adresse fonction des m bits d'entrée, le processus de calcul cryptographique est modifié en remplaçant chaque transformation non linéaire de m bits sur n bits appliquée à une variable intermédiaire de m bits, jouant le rôle de variable d'entrée E, du processus de calcul classique par une transformation non linéaire partielle de km bits sur kn bits appliquée sur l'ensemble k des variables intermédiaires partielles v1 à vk de m bits. Cette transformation non linéaire partielle est décrite et réalisée par k tables de conversion de km bits par n bits, chacune des entrées des tables de conversion recevant une valeur obtenue par application d'une fonction bijective secrète à la fonction f(v1, ..., vk) des variables intermédiaires partielles suivant la relation of(v1, ..., vs, avec j E {1,kJ. L'application précitée De même que dans le premier exemple précité, et en relation avec la figure 4E, on indique que pour la variante n 2, k=2, m=6 et n=4. En outre, dans une version simplifiée, les fonctions bijectives #1 à #k sont identiques. Pour que la condition n 2 soit satisfaite, il reste à choisir la transformation bijective # ou des fonctions bijectives #1 à rpk de telle sorte que le calcul de vo=#(v1# v2) puisse se faire sans avoir à recalculer v1# v2. Deux exemples de choix pour la fonction # sont donnés ci-après : Exemple1 : Une bijection # linéaire On choisit pour # une fonction linéaire secrète et bijective de 6 bits sur 6 bits. Dans le cadre d'un tel choix, on considère l'ensemble des valeurs sur 6 bits comme un espace vectoriel de dimension 6 sur le corps fini F2 à deux éléments. En pratique, choisir rp revient à choisir une matrice aléatoire et inversible de taille 6x6 dont les coefficients valent 0 ou 1. Avec ce choix de #, il est facile de voir que la condition n 2 est satisfaite. En effet, pour calculer rp(VI() vj, il suffit de calculer rp(VI) , puis zij, et enfin de calculer le "OU-exclusif' des deux résultats obtenus. 1 1 0 1 0 0' 1 1 0 1 0 1 Par exemple, la matrice est inversible. Il lui 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 correspond la bijection linéaire # de 6 bits sur 6 bits définie par : U, , U2 , U3 , U4 , U5 , U=ü, U2 U4 , ü, U2 U4 üs , ü2 u3u5, u,u2u30u5, u2u3mu4u5, u3u4 u Si on note V1=(V1.1 , V1,2 VI.3 , VI.4 , v1fi , VI.J et V2=V2,, , V2,2' Vz,3 , v24 , V2.S' V2.J, pour calculer CP(VI$ v, on calcule successivement : . rp(VI)=(V1.1 $ V,,2 V,,4 , vu e VI.2 (f) V1.4 v1fi , V1,2 V1.3 (f) v1.s , vh1 Vl,2 Va,3 V1.S , V,,2 V,,3 0 VI,4 e v15 , v13 e V,,4 Vl,d ; #V =V2 , V2,2 V2,4 v2.1 (f) V2,2 (D V2,4 (f) V2 s , V2 2 V2 3 V2.5 , V2, tF V2 2 V2.3 V2.S , v2,2 (]) V2.3 tF V2,4 (]) vZ5 , V2.3 (]) V2.4 (]) V2,' Puis on calcule le "OU-exclusif' des deux résultats obtenus. Exemple 2 : Une bijection # quadratique On choisit pour # une fonction quadratique secrète et bijective de 6 bits sur 6 bits. Le terme "quadratique" signifie ici que chaque bit de valeur de sortie de la fonction # est donné par une fonction polynomiale de degré deux des 6 bits d'entrée, qui sont identifiés à 6 éléments du corps fini F2. En pratique, on peut choisir la fonction # définie par la formule#(x)=t(s(x)5, où s est une application linéaire secrète et bijective de (F2)6 sur L, t est une application linéaire secrète et bijective de L sur (F2)6, et où L désigne une extension algébrique de degré 6 du corps fini F2. Le caractère bijectif de cette fonction # résulte du fait que a #a5 est une bijection sur l'extension L (dont l'inverse est b # b38). Pour établir que la condition n 2 est encore satisfaite, il suffit de remarquer que l'on peut écrire : Par exemple, si on identifie L à F2[X]/(X6+X+1), et si on prend s et t de matrices respectives 1 1 0 1 0 0 "0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 011010 101011 1 1 1 0 1 0 0 1 1 1 0 0 011110 1 0 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1, par rapport à la base (1, X, X2, X3, X4, X5) de L sur F2 et à la base canonique de (F2)6 sur F2, on obtient la bijection quadratique # de 6 bits sur 6 bits suivante : p(u, , u2 , u3 , u4 , u5 , u= (uZu5 u,u4 u4 us usu2 (f) U4U6 (f) U2 (f) Us (f) U3 (f) U4U3 , U2U5 (DU5Ul 0 U1U4 e UQ éB U6 éB U4U5 (D U2 U3 U3U" U2U5 0 U5Ul (D U6U5 0 UlU4 0 U3U5 0 U1 0 U4U6 usu3 0 U4U3(D UP1 , UlU4 0 UP3 éB U6U1 éB UP6 éB Us éB U6U3 U4U3, U5Ul 0 UlU4 0U60 U3U5 0 U4US 0 Ul 0 U6Ul 0 U4U6 (D U3 (D U6U3 0 U4U2 , u4 # u6 # U3U5 # u1 # U4U6 # u6u3). Pour calculer rp(vléB v, on utilise la fonction VI(x, y)=t(s(x)4 s(y)) de 12 bits sur 6 bits, qui donne les 6 bits de sortie en fonction des 12 bits d'entrée selon les règles suivantes : lf/(x1 , e X2 i X3 1 X4, X5 g X6 t Yl , Y2 1 Y3, Y4 1 Y5 1 Yd= (x3y5 0 x6y2 0 X6Y3 0 X6Y4 éB x3y, e X6Y1 0 xly3O xly5 0 x5Y2 0 x&5 0 x5Y1 0 X6Y6 éB xly6e xly2e xly4 m X2Y1 0 x2y2 0 x4y4 0 X3Y3 0 x3Y6 0 x4y3 0 XsY3 , xaYS xsYf xsYf xzYS x5Y1 xsYs xlYs xlYz m xzYf xzYz X4Y1 x4Y4 éB X3Y3 , xsY2 xsYs xsY4 xsYS xaYf xsYf xzYS x5Y1 xlYs xlY1 XlY2 e XlY4 (1) X2Y1 xzY4 m x4Y2 (1) X2Y6 éB X3Y4 4 x5J 3 x3Y1 xsY2 xzY6 xJ 3 x5y4 x5Y6 m x6Y3 x2Y3 x4Y6 x6Y5 XlY3 x5Y5 x2Y4 0x4y2 x4Y5 x3Y5 x4Y3 m x6Y1 x4Yl X3Y1 éB X6Y6 $ XsY3 0 XsY6 (1) XsY2 éB xy5O X1Y1 (1) xly2 m x2y, 0 xzY3 0 x3y6 (1) x6Ys xlY3 e x2y4 (1) X3Y3 e x4Y5 éB x2Ys (1) X6Y1 m x4Y1 $ X6Y4 x3Y2, xsYs xaYa x5Y4 xSYs xsYs xlYs xlY1 xlY2 xzYf xsYs X2Y4 x4Yz (1) X4YS e X3Y5 (1) X6Y1 (1) X6Y4)' En utilisant ces formules, on calcule successivement : # # (v1, v1); # # (v1, v2); If/{V2, V,) ; If/{V2' vzJ. Puis on calcule le "OU-exclusif' des quatre résultats obtenus. Dans une troisième variante, toujours pour réduire la taille ROM nécessaire pour stocker les boîtes S, on peut enfin appliquer simultanément les idées des deux variantes précédentes, variante n 1 et variante n 2 : on utilise la variante 2, avec la même bijection secrète # (de 6 bits vers 6 bits) et la même fonction aléatoire secrète A (de 6 bits vers 6 bits) dans la nouvelle implémentation de chaque transformation non-linéaire donnée sous la forme d'une boîte S. L'inconvénient de la solution décrite précédemment pour parer aux attaques DPA est qu'elle est vulnérable à une attaque DKDPA L'utilisation de la méthode de sécurisation décrite ci-dessus permet de rendre inopérantes les attaques DPA ou HO-DPA. Néanmoins, le nouveau mode de réalisation de l'algorithme cryptographique avec clé secrète peut être vulnérable à une autre attaque que nous appelons dans la suite Differential Key and Differential Power Analysis en langage anglosaxon, en abrégé DKDPA, alors que l'attaque DPA classique échoue. Nous décrivons maintenant le principe général de cette attaque. On suppose que l'attaquant possède un petit nombre d'ensembles électroniques, pour chacun desquels il connaît la clé secrète de l'algorithme cryptographique qu'il met en #uvre. Pour chaque ensemble électronique, bien qu'il connaisse déjà la clé secrète, il applique l'attaque DPA, exactement comme s'il ne connaissait pas la clé secrète. En suivant le principe décrit précédemment, il fait une hypothèse sur 6 bits de la clé et, pour chaque choix de ces 6 bits, il obtient 64 courbes représentant des différences de courbes moyennes de consommation. Pour certains modes de réalisation de l'algorithme, il est alors possible que la DPA montre des phénomènes inhabituels pour certains choix de ces 6 bits de clé (c'est-à-dire des pics ou des creux inhabituels pour l'une des 64 courbes). Bien sûr, ce choix particulier des 6 bits de clé ne correspond pas à la vraie clé, mais le OU-exclusif entre ces 6 bits (notons les K') et les 6 bits correspondants de la vraie clé (notons les K) se trouvent souvent être une constante C, c'est-à-dire que l'on a toujours : K#K'=C, pour chaque ensemble électronique dont l'attaquant connaît la clé secrète. Si c'est bien le cas, l'attaquant peut alors facilement trouver les bits d'une vraie clé inconnue : il applique l'attaque DPA standard, puis note les choix particuliers K' des 6 bits qui donnent une courbe inhabituelle, et enfin en déduit K en calculant K=K' # C, où C a été obtenu précédemment. Un des buts de l'invention est de remédier à cette vulnérabilité aux attaques DKDPA des ensembles électroniques. Une étude plus précise montre que les attaques de type DKDPA décrites ci-dessus sont rendues possibles par le fait que le mode de réalisation du processus de calcul cryptographique mis en #uvre par le ou les ensembles électroniques est toujours le même, quel que soit l'élément électronique mis en jeu et quelle que soit la clé secrète utilisée par le processus cryptographique. Le procédé, objet de la présente invention, a pour objet la suppression des risques d'attaques DKDPA d'ensembles ou systèmes électroniques utilisant un processus de calcul cryptographique avec clé secrète. Le procédé de sécurisation d'un ou plusieurs ensembles électroniques mettant en #uvre un processus de calcul cryptographique avec clé secrète de cryptage, objet de la présente invention, est remarquable en ce que le mode de réalisation du processus de calcul cryptographique avec clé secrète de cryptage est dépendant d'une donnée secrète. Selon une autre particularité, pour chaque ensemble électronique et pour chaque clé secrète, la façon d'utiliser ladite donnée secrète, pour mener ledit calcul cryptographique, est publique. Selon une autre particularité, les données secrètes utilisées par lesdits ensembles électroniques sont au moins au nombre de deux. Selon une autre particularité, chacun des ensembles électroniques contient au moins une donnée secrète propre. Un autre objet de la présente invention est en conséquence une manière de réaliser le calcul cryptographique qui puisse facilement être rendue différente d'un ensemble électronique à l'autre ou bien, pour un même ensemble électronique, lors de l'utilisation d'une clé secrète ou d'une autre. Ce but est atteint par le fait que dans chacun des ensembles électroniques, lesdites données secrètes, correspondant aux différentes clés secrètes utilisées par cet ensemble électronique, sont au moins au nombre de deux. Selon une autre particularité dans chacun des ensembles électroniques, à chaque clé secrète utilisée par ledit calcul cryptographique correspond une donnée secrète propre. Selon une autre particularité, le procédé met en oeuvre un processus de calcul cryptographique utilisant des transformations non linéaires de km bits sur kn bits décrites par k tables de conversion de km bits sur n bits dans lesquelles n bits de sortie de la transformation sont lus à une adresse fonction des km bits d'entrée, est caractérisé en ce que, pour chacune de ces transformations non linéaires, les k dites tables font partie de la donnée secrète. Selon une autre particularité, le procédé de sécurisation d'un ou plusieurs ensembles électroniques met en #uvre un processus de calcul cryptographique utilisant des transformations non linéaires de km bits sur kn bits décrites par k tables de conversion de km bits sur n bits dans lesquelles n bits de sortie de la transformation sont lus à une adresse obtenue par application d'une fonction bijective secrète à une valeur de m bits, ellemême obtenue par application d'une fonction publique des km bits d'entrée de la transformation non linéaire, caractérisé en ce que, pour chacune de ces transformations non linéaires, les k tables font partie de la donnée secrète. Selon une autre particularité, pour chacune des transformations non linéaires, la fonction bijective secrète fait aussi partie de la donnée secrète. Selon une autre particularité, la donnée secrète est stockée dans la mémoire E2PROM de la dite carte à microcalculateur. Selon une autre particularité un programme de calcul de tables de conversion est mémorisé dans chaque ensemble électronique et déclenché par un événement déterminé pour calculer les tables et réaliser la mémorisation de tout ou partie de ces tables dans la donnée secrète. Selon une autre particularité l'évènement déterminé est le dépassement par un compteur d'une valeur déterminée. Un autre but de l'invention est une utilisation de ce procédé. Ce but est atteint par le fait que le procédé est utilisé pour la sécurisation de processus de calcul cryptographique supporté par les algorithmes DES, Triple DES et RSA. Un dernier but est la définition d'un ou plusieurs ensembles électroniques qui résistent aux attaques DPA et DKDPA. Ce but est atteint par le fait que l'ensemble électronique permettant la mise en #uvre du procédé de sécurisation comportant des moyens de mémorisation d'un algorithme cryptographique modifié respectant les phases de calcul de l'algorithme cryptographique classique, et utilisant une clé secrète de cryptage contenue dans une zone secrète de moyens de mémorisation, des moyens d'exécuter cet algorithme cryptographique modifié, est caractérisé en ce que l'ensemble électronique comporte des premiers moyens secrets de remplacer chaque variable intermédiaire nécessaire aux phases de calcul de l'algorithme classique en une pluralité (k) de variables intermédiaires partielles et des seconds moyens d'appliquer à chacune de ces variables intermédiaires partielles une table de transformation non linéaire et des troisièmes moyens secrets de reconstituer le résultat final correspondant à l'utilisation de l'algorithme de cryptage classique à partir des résultats obtenus sur les variables partielles. Selon une autre particularité, la donnée secrète de l'ensemble électronique comporte au moins une première variable aléatoire v, constituant au moins une variable partielle secrète, l'algorithme modifié détermine au moins une autre variable partielle, par exemple v2, par l'application d'une première fonction secrète sur la variable intermédiaire v et la ou les variables partielles secrètes v1 Selon une autre particularité, l'algorithme modifié applique les transformations non linéaires aux variables partielles v, et v2 par utilisation des tables dont au moins une A formée par tirage aléatoire, est mémorisée dans la donnée secrète Ds, les autres tables nécessaires aux calculs pouvant être mémorisées dans la mémoire non volatile, les différents tours de calcul de l'algorithme classique sont effectués en mettant en #uvre à chaque fois les tables sur les variables partielles et au dernier tour l'algorithme calcule le résultat par combinaison des variables partielles selon une seconde fonction secrète. Selon une autre particularité, les premiers moyens secrets de l'algorithme modifié sont constitués par une fonction f, liant les variables intermédiaires partielles et chaque intermédiaire (v), telle que la connaissance d'une valeur de cette variable intermédiaire ne permet jamais de déduire l'ensemble des valeurs particulières partielles v, telles qu'il existe un (k-1)-uplet (v,, V,-1, v,+,, ... vj satisfaisant à l'équation f(v1, . ..., v" ..., vd = v. Selon une autre particularité, les seconds moyens de l'algorithme modifié sont constitués de k tables de conversion partielles et parmi les k tables de conversion partielle, k-1 tables de conversion partielle contiennent des variables aléatoires secrètes Selon une autre particularité les seconds moyens de l'algorithme modifié comportent k tables de conversion, chacune de ces tables de conversion recevant comme entrée une valeur obtenue par application d'une fonction bijective secrète #1 à ladite fonction f(v1,..., vk) des variables intermédiaires partielles selon la relation #1 of(v1, ...,vk), j E [1,k], cette application #1 o f(v1,..., vk) étant effectuée par évaluation directe d'une valeur résultante, cette valeur résultante, appliquée à l'entrée de la table de conversion, permettant de lire n bits de sortie de la transformation à une adresse qui est fonction de ces m bits d'entrée. Selon une autre particularité, les seconds moyens de l'algorithme modifié remplacent chaque transformation non linéaire appliquée à une variable intermédiaire du processus de calcul cryptographique classique, en l'absence de séparation, par une transformation non linéaire partielle de km bits sur kn bits appliquée sur l'ensemble des variables intermédiaires partielles, (k-1)n desdits bits de sortie de cette transformation étant calculés comme fonction polynomiale des km bits d'entrée et les n bits restants desdits bits de sortie étant obtenus par lecture d'une table de conversion dans laquelle les n bits restants sont lus à une adresse qui est fonction des km bits d'entrée Selon une autre particularité, les opérations effectuées par l'algorithme modifié dans les différentes parties issues de la séparation du processus de calcul cryptographique en plusieurs parties de processus de calcul distinctes sont exécutées séquentielle ment. Selon une autre particularité, les opérations effectuées dans les différentes parties issues de la séparation du processus de calcul cryptographique en plusieurs parties de processus de calcul distinctes sont exécutées de façon imbriquée. Selon une autre particularité, les opérations effectuées dans les différentes parties issues de la séparation du processus de calcul cryptographique en plusieurs parties de processus de calcul distinctes sont exécutées de façon simultanée dans le cas de la multiprogrammation. Selon une autre particularité, les opérations effectuées dans les différentes parties issues de la séparation du processus de calcul cryptographique en plusieurs parties de processus de calcul distinctes sont exécutées simultanément dans des processeurs différents travaillant en parallèle. Selon une autre particularité l'ensemble électronique comprend un programme de calcul de tables de conversion mémorisé dans chaque ensemble électronique et des moyens de déclencher par un événement déterminé le calcul des tables et de réaliser la mémorisation de tout ou partie de ces tables dans la donnée secrète. Selon une autre particularité un compteur mémorise une valeur incrémentée à chaque calcul cryptographique pour constituer l'évènement déterminé de déclenchement du calcul des tables, lors du dépassement d'une valeur déterminée. D'autres particularités et avantages de la présente invention seront mieux compris à la lecture de la description faite en référence aux dessins ciaprès dans lesquels : - la figure 1 représente un ensemble électronique dans lequel l'algorithme de cryptage modifié est utilisé selon le procédé de l'invention ; - les figures 2A et 2B représentent schématiquement le processus de chiffrement/ déchiffrement DES ( "Data Encryption System" en langage anglo-saxon) de l'art antérieur ; - la figure 3 représente un organigramme général illustratif d'un procédé de partition selon une précédente invention ; - la figure 4A représente, de manière illustrative, un mode de mise en #uvre du procédé de l'art antérieur dans un algorithme de cryptage DES classique ; - la figure 4B représente un organigramme d'une mise en #uvre particulière d'un processus de calcul cryptographique modifié tel que le DESM selon une précédente invention; - la figure 4C représente une variante de mise en #uvre d'un procédé tel qu'illustré en figure 3 ; - la figure 4D représente une variante de mise en #uvre d'un procédé tel qu'illustré en figure 4b ; - la figure 4E représente une autre mise en #uvre particulière d'un procédé d'une précédente invention, à partir d'une transformation bijective secrète, appliquée à une transformation non linéaire utilisée dans un processus de calcul cryptographique modifié tel que le DESM ; - la figure 4F représente un ensemble électronique dans lequel l'algorithme de cryptage classique de l'art antérieur est mis en #uvre. L'invention sera décrite ci-après en liaison avec la figure 1 et en la comparant à la réalisation de l'art antérieur représentée à la figure 4F. Un ensemble électronique peut être constitué d'un module électronique sécuritaire implanté dans un dispositif plus vaste, tel que, par exemple, un serveur ou un terminal. Cet ensemble électronique peut être constitué d'un ou plusieurs circuits intégrés incorporés dans le dispositif plus vaste ou encore d'une carte à puce dénommée généralement smart card lorsqu'elle comporte un microprocesseur ou microcontrôleur connecté au dispositif plus vaste par un connecteur à contact ou sans contact. Un algorithme de cryptage classique tel que, par exemple, le DES peut être installé dans la mémoire non volatile, par exemple, de type ROM (7) de l'ensemble électronique (1). Le microprocesseur (2) de cet ensemble électronique (1) exécute cet algorithme en lisant, par le bus (4) le reliant aux différentes mémoires, les instructions contenues dans la mémoire morte (7) pour effectuer les étapes du procédé de cryptage décrit en relation aux figures 2A et 2B en combinant la clé secrète (Ks) de cryptage contenue dans une zone secrète (60) d'une mémoire non volatile de l'ensemble électronique, par exemple, programmable (6) de type E2PROM, avec les informations E à crypter qui sont, par exemple, mémorisées momentanément dans une mémoire volatile (5), par exemple, de type RAM. Le microprocesseur associé dans un seul circuit intégré à ses mémoires RAM, ROM, E2PROM constitue ce que l'on nomme un microcontrôleur ou microcalculateur. Le microprocesseur dialogue avec le dispositif plus vaste à travers un circuit d'entrée-sortie (3) et aucun accès à la zone déclarée secrète (60) de la mémoire non volatile n'est autorisé par un circuit autre que le microprocesseur (2). Lui seul peut lire la clé( Ks) et l'utiliser conformément au procédé de cryptage classique décrit à l'aide des figures 2A et 2B pour produire le message crypté Mc=DES(E,Ks). L'invention consiste à modifier l'algorithme de mise en #uvre du cryptage pour constituer un algorithme modifié (DES.) qui respecte les mêmes phases que le processus de calcul de l'algorithme classique (DES). Ainsi, dans le cas du DES, l'algorithme modifié effectue une séparation du processus de calcul cryptographique du DES classique en plusieurs parties de processus de calcul distinctes conduites parallèlement et mettant en #uvre des résultats partiels intermédiaires (appelés variables partielles) distincts de ceux du calcul cryptographique classique et cette séparation est effectuée par utilisation de données secrètes (Ds) contenues dans la zone secrète (60) de mémoire (6) de l'ensemble électronique (1). Cet algorithme modifié produit un résultat Mc par reconstitution de la valeur finale à partir des résultats partiels intermédiaires, tel que Mc=DESM(E,Ks,Ds)=DES(E,Ks), égal au résultat qui aurait été obtenu par l'algorithme classique. On remarquera que les ensembles électroniques ainsi obtenus sont entièrement compatibles avec ceux ayant un cryptage classique (ci-après dénommés ensembles classiques) et peuvent donc être utilisés à la place des ensembles classiques que dans les applications ou endroits où les ensembles classiques risqueraient d'être exposés à une attaque, sans avoir besoin de changer ceux qui sont dans des locaux sécurisés. Cet algorithme modifié comporte des moyens secrets de remplacer chaque variable intermédiaire de l'algorithme classique en plusieurs variables intermédiaires partielles et des moyens d'appliquer à chacune de ces variables intermédiaires partielles une table de transformation non linéaire et des moyens secrets de reconstituer le résultat final correspondant à l'utilisation de l'algorithme de cryptage classique à partir des résultats obtenus sur les variables partielles. Ainsi, comme un fraudeur ne connaîtra plus la relation entre les variables partielles et le résultat final, il ne sera plus en mesure de découvrir la clé secrète de cryptage (Ks) par une attaque DPA. Par exemple, dans le cas de la méthode de sécurisation de l'algorithme DES décrite plus haut, on fait dépendre le mode de réalisation du processus de calcul cryptographique modifié de la donnée des k tables de conversion utilisées pour le calcul de chaque transformation non linéaire de km bits sur kn bits. Ces k tables constituent la donnée secrète (Ds). En outre, dans le cas des variantes 2 et 3, on fait également dépendre le mode de réalisation du processus de calcul cryptographique de la donnée des applications bijectives secrètes #1, #2, ..., #k faisant également partie de la donnée secrète. Ainsi, l'algorithme modifié fera appel, dans les phases de calcul où cela s'avère nécessaire, à la fonction bijective secrète contenue dans la donnée secrète (Ds) et dans d'autres phases de calcul aux tables de conversion également contenues dans la donnée secrète. Dans le cas de l'exemple de l'algorithme DES décrit ci-dessus, la façon d'utiliser cette donnée secrète est publique. Il est bien évident que l'invention a été illustrée dans le cas de l'algorithme de cryptage dénommé DES, mais le même principe et le même procédé peuvent être mis en oeuvre avec tout autre procédé de cryptage connu, tel que le triple DES ou encore le RSA. Afin de rendre inopérantes les attaques de type DKDPA sur le ou les ensembles électroniques, il faut en outre choisir une donnée secrète (Ds) qui ne soit pas toujours la même d'un ensemble électronique à l'autre ou lors de l'utilisation d'une clé secrète ou d'une autre. Pour cette raison, il est préférable de la mettre dans une mémoire programmable de façon à pouvoir la changer facilement d'un ensemble électronique à l'autre. Dans l'exemple du DES ci-dessus, on constate qu'il est facile de choisir une nouvelle valeur pour la donnée secrète parmi les k tables de conversion utilisées pour le calcul de chaque transformation non linéaire de km bits sur kn bits, on peut, par exemple, choisir (k-1) tables de manière aléatoire, puis déduire la kème table par un calcul simple. Dans le cas des variantes n 2 et n 3, on peut de même choisir (k-1) tables aléatoirement et les applications bijectives secrètes #1, #2, ..., #k également aléatoirement, puis en déduire la kème table, toujours par un calcul simple. Dans ce cas ou le ou les ensembles électroniques sont une ou des cartes à microcalculateurs, la donnée secrète (Ds), dont dépend le mode de réalisation du processus cryptographique avec clé secrète, peut être stockée dans la mémoire E2PROM (6). Cela permet de la modifier d'une carte à l'autre, lors du processus de personnalisation de la carte, au cours duquel sont en général introduites une ou plusieurs clés secrètes dans la mémoire E2PROM de ladite carte. On peut également modifier cette donnée secrète inscrite dans la mémoire E2PROM, si l'on est amené à changer une ou plusieurs des clés secrètes contenues dans la carte. Dans la version la plus forte de l'invention, la donnée secrète dépend à la fois de la carte à microcalculateur considérée, et de la clé secrète utilisée par le processus de calcul cryptographique. Par exemple, la donnée secrète est choisie aléatoirement à chaque fois que l'on introduit une clé secrète dans une carte. Cela aboutit en fait à introduire à chaque fois un couple (clé secrète Ks, donnée secrète Ds) dans la mémoire E2PROM de la carte à microcalculateur, au lieu d'introduire seulement la clé secrète. Dans une variante de réalisation de l'invention donnée à titre d'exemple illustratif mais non limitatif, la donnée secrète comporte au moins une première variable aléatoire v, constituant au moins une variable partielle secrète, l'algorithme modifié détermine au moins une autre variable partielle, par exemple v2, par l'application d'une fonction secrète sur la variable intermédiaire v et la ou les variables partielles secrètes v1. Cette fonction secrète peut, par exemple, être un OU-exclusif tel que : v2=v1# V. L'algorithme modifié applique les transformations non linéaires aux variables partielles v1 et v2 par utilisation des tables dont au moins une A, formée par tirage aléatoire, est mémorisée dans la donnée secrète Ds, les autres tables nécessaires aux calculs pouvant être mémorisées dans la mémoire non volatile. Les différents tours de calcul de l'algorithme classique sont effectués en mettant en #uvre à chaque fois les tables sur les variables partielles et au dernier tour l'algorithme calcule le résultat par combinaison des variables partielles selon une seconde fonction secrète qui peut être l'inverse de la précédente. Toutes les variantes décrites en références aux figures 3 à 4F font également partie de l'invention en incorporant un ou plusieurs des éléments intervenant dans la modification de l'algorithme, dans la donnée secrète contenue en mémoire non volatile programmable (6). Les éléments qui interviennent dans la modification de l'algorithme sont soit la fonction secrète f, soit des tables de conversion partielles, soit une table de conversion secrète aléatoire A associée par un calcul à d'autres tables de conversion contenues dans une partie non secrète de mémoire programmable (6) ou non (7), soit une fonction polynomiale et une ou plusieurs tables de conversion, soit une fonction bijective secrète cp et une transformation aléatoire secrète A, soit encore une fonction quadratique secrète. Dans une autre variante de réalisation de l'invention, le programme de calcul des boîtes S ou tables de conversion, présent normalement sur les machines de personnalisations, pourra être téléchargé ou inscrit en phase de pré-personnalisation dans la zone secrète (61) de la mémoire (6) non volatile programmable E2PROM et déclenché en phase de personnalisation par un ordre venant de l'extérieur, exécutable une fois seulement en phase de personnalisation. Une fois l'ordre exécuté le programme de calcul soit positionne un verrou en mémoire non-volatile interdisant l'accès à ce programme sans la présentation d'une clé spécifique, soit dans une autre réalisation déclenche l'auto effacement de cette zone secrète (61). Cette variante permet de mettre en oeuvre l'invention même avec des machines de personnalisation non modifiées. Le calcul des boîtes S ou tables de conversion se fera en respectant les principes énoncés plus haut et en utilisant comme diversifiant une information propre à la carte en cours de personnalisation, telle que le numéro de série de la carte qui avait été enregistré en phase de pré-personnalisation, les valeurs obtenues par ce calcul sont écrites dans la donnée secrète (60) de la zone secrète de la mémoire non-volatile (6). Dans une autre variante supplémentaire la carte comporte un compteur supplémentaire (62) en mémoire non-volatile, qui est incrémenté par l'algorithme DESM, à chaque exécution d'un calcul DES par ce dernier. Le système d'exploitation de la carte est prévu pour comparer le contenu de ce compteur à une valeur déterminée n à chaque mise sous tension de la carte et pour appeler le programme (61) de calcul pour calculer de nouvelles boîtes S ou tables de conversion dans le cas où la valeur n est dépassée. Le système d'exploitation de la carte ou le programme de calcul assure la mémorisation des boites-S dans la donnée secrète selon une procédure définie par le programme de calcul (61) ou le système d'exploitation et remet à zéro le compteur. Par ailleurs l'algorithme DESM vérifie dans cette variante, avant d'effectuer un calcul DES que le compteur supplémentaire (62) n'a pas dépassé la valeur (n+c) déterminée augmentée d'une constante, dans laquelle c est une constante définie. En cas de dépassement il conclut à une tentative de fraude et provoque une remise à zéro de la carte Enfin il est clair que dans tous les modes de réalisation exposés, la manière dont le calcul de cryptage sera conduit dépendra de la modification de l'algorithme DESM qui elle-même dépend des éléments contenus dans la zone secrète de mémoire. Toute combinaison des différentes variantes présentées fait également partie de l'invention. REVENDICATIONS 1. Procédé de sécurisation d'un ou plusieurs ensembles électroniques mettant en #uvre un même algorithme cryptographique avec clé secrète (Ks), caractérisé en ce que la manière de conduire ledit calcul dépend, pour chaque ensemble électronique et pour chaque clé secrète, d'une donnée secrète (Ds) stockée dans une zone secrète du ou des ensembles électroniques. 2. Procédé de sécurisation selon la revendication 1, caractérisé en ce que, pour chaque ensemble électronique et pour chaque clé secrète (Ks), la façon d'utiliser ladite donnée secrète (Ds), pour mener ledit calcul cryptographique, est publique. 3. Procédé de sécurisation selon l'une des revendications précédentes, caractérisé en ce que lesdites données secrètes (Ds) utilisées par lesdits ensembles électroniques sont au moins au nombre de deux. 4. Procédé de sécurisation selon la revendication 3, caractérisé en ce que chacun des ensembles électroniques contient au moins une dite donnée secrète (Ds) propre. 5. Procédé de sécurisation selon l'une des revendications 1 à 4, caractérisé en ce que, dans chacun des ensembles électroniques, lesdites données secrètes (Ds), correspondant aux différentes clés secrètes utilisées par cet ensemble électronique, sont au moins au nombre de deux. 6. Procédé de sécurisation selon la revendication 5, caractérisé en ce que, dans chacun des ensembles électroniques, à chaque clé secrète (Ks) utilisée par ledit calcul cryptographique correspond une dite donnée secrète (Ds) propre. 7. Procédé de sécurisation, selon l'une des revendications 1 à 6, d'un ou plusieurs ensembles électroniques mettant en #uvre un processus de calcul cryptographique utilisant des transformations non linéaires de km bits sur kn bits décrites par k tables de conversion dans lesquelles n bits de sortie de la transformation sont lus à une adresse fonction des km bits d'entrée, caractérisé en ce que, pour chacune de ces transformations non linéaires, les k dites tables font partie de la donnée secrète (Ds). 8. Procédé de sécurisation selon l'une des revendications 1 à 6, d'un ou plusieurs ensembles électroniques mettant en #uvre un processus de calcul cryptographique utilisant des transformations non linéaires de km bits sur kn bits décrites par k tables de conversion dans lesquelles n bits de sortie de la transformation sont lus à une adresse obtenue par application d'une fonction bijective secrète (#) à une valeur de m bits, elle-même obtenue par application d'une fonction publique des km bits d'entrée de la transformation non linéaire, caractérisé en ce que, pour chacune de ces transformations non linéaires, les k dites tables font partie de la donnée secrète (Ds). 9. Procédé de sécurisation selon la revendication 8, caractérisé en ce que, pour chacune des transformations non linéaires, la fonction bijective secrète (#) fait aussi partie de la donnée secrète (Ds). 10. Procédé de sécurisation, selon l'une des revendications 1 à 9, d'une ou plusieurs cartes à microcalculateur, caractérisé en ce que la donnée secrète est stockée dans la mémoire E2PROM de la dite carte à microcalculateur. 11. Procédé de sécurisation, selon l'une des revendications 1 à 10, caractérisé en ce que un programme de calcul de tables de conversion est mémorisé dans chaque ensemble électronique et déclenché par un événement déterminé pour calculer les tables et réaliser la mémorisation de tout ou partie de ces tables dans la donnée secrète. 12. Procédé de sécurisation, selon la revendication 11 caractérisé en ce que l'évènement déterminé est le dépassement par un compteur d'une valeur déterminée. 13. Utilisation du procédé selon l'une des revendications 1 à 12, pour la sécurisation de processus de calcul cryptographique supporté par les algorithmes DES, Triple DES et RSA. 14. Ensemble électronique permettant la mise en #uvre du procédé de sécurisation selon une des revendications 1 à 12 comportant des moyens de mémorisation d'un algorithme cryptographique modifié respectant les phases de calcul de l'algorithme cryptographique classique et utilisant une clé secrète de cryptage contenue dans une zone secrète de moyens de mémorisation, des moyens d'exécuter cet algorithme cryptographique modifié, caractérisé en ce que l'ensemble électronique comporte des premiers moyens secrets de remplacer chaque variable intermédiaire nécessaire aux phases de calcul de l'algorithme classique en une pluralité (k) de variables intermédiaires partielles et des seconds moyens d'appliquer à chacune de ces variables intermédiaires partielles une table de transformation non linéaire et des troisièmes moyens secrets de reconstituer le résultat final correspondant à l'utilisation de l'algorithme de cryptage classique à partir des résultats obtenus sur les variables partielles 15. Ensemble électronique selon la revendication 14, caractérisé en ce qu'une donnée secrète mémorisée dans la zone secrète comporte au moins une première variable aléatoire v1 constituant au moins une variable partielle secrète, l'algorithme modifié détermine au moins une autre variable partielle, par exemple V2, par l'application d'une première fonction secrète sur la variable intermédiaire v et la ou les variables partielles secrètes v1 16. Ensemble électronique selon la revendication 15, caractérisé en ce que l'algorithme modifié comporte des moyens d'appliquer les transformations non linéaires aux variables partielles v1 et V2 par utilisation des tables dont au moins une A formée par tirage aléatoire est mémorisée dans la donnée secrète Ds, les autres tables nécessaires aux calculs étant mémorisées dans une mémoire non volatile, des moyens d'effectuer les différents tours de calcul de l'algorithme classique en mettant en oeuvre à chaque fois les tables sur les variables partielles et des moyens de calculer au dernier tour d'algorithme le résultat par combinaison des variables partielles selon une seconde fonction secrète. 17. Ensemble électronique selon la revendication 14, caractérisé en ce que les premiers moyens secrets de l'algorithme modifié sont constitués par une fonction f, liant les variables intermédiaires partielles et chaque intermédiaire (v), telle que la connaissance d'une valeur de cette variable intermédiaire ne permet jamais de déduire l'ensemble des valeurs particulières partielles v, telles qu'il existe un (k-1)-uplet (v1, v@-1, V1+1, ... vk) satisfaisant à l'équation f(v1, ..., v1, ..., vk) = v. 18. Ensemble électronique selon la revendication 14 caractérisé en ce que les seconds moyens de l'algorithme modifié sont constitués de k tables de conversion partielles et parmi les k tables de conversion partielle, k-1 tables de conversion partielle contiennent des variables aléatoires secrètes 19. Ensemble électronique selon la revendication 18, caractérisé en ce que les seconds moyens de l'algorithme modifié comportent k tables de conversion, chacune de ces tables de conversion recevant comme entrée une valeur obtenue par application d'une fonction bijective secrète #1 à ladite fonction f(v1,..., vk) des variables intermédiaires partielles selon la relation #1 of(vi, ...,Vk), j E [1,k], cette application #1 o f(v1,..., vk) étant effectuée par évaluation directe d'une valeur résultante, cette valeur résultante, appliquée à l'entrée de la table de conversion, permettant de lire n bits de sortie de la transformation à une adresse qui est fonction de ces m bits d'entrée. 20. Ensemble électronique selon la revendication 14, caractérisé en ce que les seconds moyens de l'algorithme modifié comportent des moyens de remplacer chaque transformation non linéaire appliquée à une variable intermédiaire du processus de calcul cryptographique classique, en l'absence de séparation, par une transformation non linéaire partielle de km bits sur kn bits appliquée sur l'ensemble des variables intermédiaires partielles, des moyens de calculer (k-1)n desdits bits de sortie de cette transformation comme fonction polynomiale des km bits d'entrée et des moyens de lecture des n bits restants desdits bits de sortie par lecture d'une table de conversion dans laquelle les n bits restants sont lus à une adresse qui est fonction des km bits d'entrée 21. Ensemble électronique selon une des revendications 14 à 20 caractérisé en ce qu'il comporte des moyens d'exécution séquentielle des opérations effectuées par l'algorithme modifié dans les différentes parties issues de la séparation du processus de calcul cryptographique en plusieurs parties de processus de calcul distincte. 22. Ensemble électronique selon une des revendications 14 à 21, caractérisé en ce qu'il comporte des moyens d'exécution de façon imbriquée des opérations effectuées dans les différentes parties issues de la séparation du processus de calcul cryptographique en plusieurs parties de processus de calcul distinctes. 23. Ensemble électronique selon une des revendications 14 à 20, caractérisé en ce qu'il comporte des moyens d'exécution simultanée des opérations effectuées dans les différentes parties issues de la séparation du processus de calcul cryptographique en plusieurs parties de processus de calcul distinctes, dans le cas de la multiprogrammation. 24. Ensemble électronique selon une des revendications 14 à 20, caractérisé en ce qu'il comporte des moyens d'exécution simultanée dans des processeurs différents travaillant en parallèle des opérations effectuées dans les différentes parties issues de la séparation du processus de calcul cryptographique en plusieurs parties de processus de calcul distinctes. 25. Ensemble électronique selon une des revendications 14 à 24, caractérisé en ce qu'il comprend un programme de calcul de tables de conversion mémorisé dans chaque ensemble électronique et des moyens de déclencher par un événement déterminé le calcul des tables et de réaliser la mémorisation de tout ou partie de ces tables dans la donnée secrète. 26. Ensemble électronique selon une des revendications 14 à 25, caractérisé en ce qu' un compteur comporte des moyens de mémorisation d' une valeur incrémentée à chaque calcul cryptographique pour constituer l'évènement déterminé de déclenchement par des moyens de déclenchement du calcul des tables, lors du dépassement d'une valeur déterminée.