FR 2924879 A1 20090612 FR 0708541 A 20071207 PROCEDE DE CODAGE D'UN SECRET FORME PAR UNE VALEUR NUMERIQUE L'invention concerne un procédé de codage d'un secret, 5 formé par une valeur numérique. L'essor considérable des communications par transmission de messages électroniques a très vite posé le problème de la confidentialité des données transmises. 10 Des solutions très sophistiquées de chiffrement/déchiffrement de ces données ont été proposées au moyen d'algorithmes de chiffrement à clé secrète unique, servant au chiffrement/déchiffrement, 15 puis à clé publique, à laquelle est associée une clé privée, utilisée pour le déchiffrement des données, chiffrées au moyen de la clé publique. Les solutions précitées donnent satisfaction, dans la 20 mesure où les algorithmes à clé secrète peuvent être difficilement percés, tout au moins en l'absence de compromission de la clef secrète, et où les algorithmes à clé publique/clé privée n'impliquent pas de limitations quant à la diffusion de la clef publique et nécessitent 25 la mise en oeuvre de moyens matériels et logiciels de complexité et de coût de calcul rédhibitoires en vue, soit de percer l'algorithme de chiffrement/déchiffrement, soit de retrouver la valeur de la clé privée, associée à la clé publique. 30 Dans tous les cas, utilisation d'un schéma cryptographique à clé secrète unique ou à clé publique, à laquelle est associée une clé privée, il est indispensable d'empêcher toute compromission de la clef secrète ou de la clé privée, afin de garantir la confidentialité des données transmises. Alors que des composants cryptographiques à accès protégés satisfaisants ont été proposés, notamment intégrés sous forme de processeurs de sécurité des composants cryptographiques de cartes électroniques, dites cartes à puce, l'accès extérieur par l'intermédiaire du port d'entrée/sortie aux composants de sécurité de ces cartes électroniques pouvant être rendu extrêmement difficile voire pratiquement impossible, la manipulation des clés secrètes ou privees en lecture/écriture par ces composants est susceptible de permettre la compromission des clefs précitées, notamment des valeurs secrètes ou secrets entrant dans la définition de ces dernières. Cette compromission est susceptible d'intervenir par attaque par � canaux cachés � (Side Chanel attack en anglais), ce type d'attaque pouvant par exemple consister à détecter les variations d'intensité du courant électrique consommé par le composant de sécurité ou la carte au cours de ces manipulations, nécessaires. La présente invention a pour objet de remédier aux inconvénients des risques d'attaque par canaux cachés, par la mise en oeuvre d'un procédé de codage d'un secret, subdivisé en plusieurs éléments de secret non corrélés entre eux, la manipulation des éléments de secret ne pouvant permettre, bien que chaque élément de secret puisse, le cas échéant, être compromis, de retrouver le secret d'origine. Le procédé de codage d'un secret formé par une valeur numérique, dans un schéma de cryptographie à clé secrète ou à clé publique dans lequel ce secret est divisé entre une pluralité d'un nombre déterminé d'éléments, dont une loi de composition représente la valeur de ce secret, objet de la présente invention, est remarquable en ce qu'il consiste, en outre, à recalculer une nouvelle pluralité d'éléments du secret sans jamais manipuler ce secret. Pour cela il faut calculer une première image de ce secret par application itérative de la loi de composition terme à terme entre la première image de rang précédent et le produit de composition selon cette loi de composition de l'élément de rang suivant et une valeur aléatoire de même rang choisie parmi un premier ensemble d'une même pluralité de valeurs aléatoires, calculer une première valeur numérique produit de composition de cette loi de composition appliquée successivement aux valeurs aléatoires de ce premier ensemble de valeurs aléatoires, calculer une deuxième valeur numérique produit de composition selon cette loi de composition appliquée successivement aux valeurs aléatoires d'un deuxième ensemble d'une même pluralité moins une de valeurs aléatoires, calculer une deuxième image de ce secret par application de la loi de composition inverse à la première image de ce secret et à cette deuxième valeur numérique, pour engendrer une image intermédiaire de ce secret, puis par application de cette loi de composition inverse à cette image intermédiaire et à cette première valeur numérique, pour engendrer cette deuxième image dudit secret, allouer à chacun de ces éléments successifs moins le dernier de cette pluralité d'éléments la valeur aléatoire de rang correspondant de ce deuxième ensemble d'au moins une valeur aléatoire et au dernier élément la valeur numérique de cette deuxième image. Le procédé de codage d'un secret, objet de la présente invention, sera mieux compris à la lecture de la description et à l'observation des dessins ci-après dans lesquels : -- la figure 1 représente, à titre illustratif, un organigramme général de mise en oeuvre des étapes constitutives du procédé objet de l'invention ; - - la figure 2a représente, à titre illustratif, une première et une deuxième loi de composition applicable à des valeurs numériques et permettant la mise en oeuvre du procédé objet de la présente invention ; -- la figure 2b représente, à titre illustratif, un organigramme spécifique de mise en oeuvre du procédé objet de l'invention, lorsque le la loi de composition représentée en figure 2a est une opération OU exclusif ; - - la figure 2c représente à titre illustratif un organigramme spécifique de mise en oeuvre du procédé objet de l'invention, lorsque la loi de composition représentée en figure 2a est une opération d'addition ; - - la figure 3 est un schéma fonctionnel d'un composant de sécurité d'un dispositif cryptographique spécialement adapté pour la mise en oeuvre du procédé objet de l'invention. Une description plus détaillée du procédé de codage d'un secret, conforme à l'objet de la présente invention, sera maintenant donnée en liaison avec la figure 1. D'une manière générale, on rappelle que le procédé, objet de l'invention, a pour objet le codage d'un secret s formé par une valeur numérique d, dans un schéma de cryptographie à clé secrète ou à clé publique. Il s'applique plus particulièrement à tout processus de . 2924879 5 calcul cryptographique dans lequel le secret s est subdivisé en une pluralité d'un nombre déterminé d'éléments de secret, noté chacun di, pluralité d'éléments dénommée ci-après [di]1 dont une loi de 5 composition notée O représente la valeur numérique du secret s. En référence à la figure 1, le secret s et la valeur numérique d représentant ce dernier vérifient la relation 10 (1) : s = d ; [dit; d = gdi i=1 Dans cette relation 7Z di représente le produit de i=1 composition de la loi de composition 0 appliquée à l'ensemble des N éléments di. 15 Ainsi que représenté sur la figure 1, le procédé objet de l'invention consiste en une étape A à calculer une première image du secret s par application itérative de la loi de composition terme à terme entre la première 20 image de rang précédent, notée Ti_1, et le produit de composition, selon cette loi de composition, de l'élément de rang i suivant, noté di et une valeur aléatoire, notée Ri, choisie parmi un premier ensemble d'une même pluralité de valeurs aléatoires. 25 A l'étape A de la figure 1 le premier ensemble d'une même pluralité de valeurs aléatoires est noté [R,]v. En référence à l'étape A de la figure 1, l'opération de 30 calcul de la première image TN vérifie la relation (2): [Ti = �(d, �R;)] -3TN Dans la relation précédente, - - Ti désigne la première image courante de rang i ; 5 -- Ti_1 désigne la première image précédente de rang i-1; - - di désigne l'élément courant de rang i ; - -Ri désigne la valeur aléatoire de rang i du premier ensemble de valeurs aléatoires ; - TN désigne la première image obtenue après calcul 10 itératif. L'étape A de la figure 1 est suivie d'une étape B consistant à calculer une première valeur numérique, notée Si, produit de composition de la même loi de 15 composition précitée appliquée successivement aux valeurs aléatoires du premier ensemble de valeurs aléatoires précédemment mentionné. À l'étape B de la figure 1, la première valeur numérique 20 Si vérifie la relation (3) . S1 = g Ri L'étape B de la figure 1 est suivie d'une étape C consistant à calculer une deuxième valeur numérique, notée S2, produit de composition, selon la même loi de 25 composition précitée, appliquée successivement aux valeurs aléatoires d'un deuxième ensemble d'une même pluralité moins une de valeurs aléatoires. En conséquence, le deuxième ensemble d'une même pluralité 30 moins une de valeurs aléatoires est noté kt'-' La deuxième valeur numérique vérifie la relation (4) : 6 �N-1 S2 = Ai i=l L'étape C de la figure 1 est alors suivie d'une étape D consistant à calculer une deuxième image du secret notée 5 T'. En référence à l'étape D de la figure 1, on indique que la deuxième image T' précitée est calculée par application de la loi de composition inverse appliquée à 10 la première image du secret TN et à cette deuxième valeur numérique S2, pour engendrer une image intermédiaire notée TX, puis par application de cette même loi de composition inverse appliquée à l'image intermédiaire T, et à la première valeur numérique Sl, pour engendrer la 15 deuxième image du secret, notée T'. La loi de composition inverse est notée O. À l'étape D de la figure 1, le calcul de la deuxième image T' vérifie la relation (5) : 20 Tx= TN O S2 T' = Tx � S1 L'étape D de la figure 1 est alors suivie d'une étape E consistant à allouer à chacun des éléments successifs de 25 la pluralité d'éléments [d;];, moins le dernier, la valeur aléatoire de rang correspondant à celle du deuxième ensemble d'au moins une valeur aléatoire, ensemble noté [A1]IN-1 et à allouer au dernier élément la valeur numérique de la deuxième image T' précitée. 30 7 En conséquence l'étape d'allocations représentées à l'étape E vérifie la relation (6) : [d;],N-1_[A;N-1 {dN =T' Une description plus détaillée d'une première et d'une deuxième variante de mise en oeuvre du procédé objet de l'invention sera maintenant donnée en liaison avec la figure 2a et les figures 2b et 2c, respectivement. 10 D'une manière générale, on indique que la loi de composition précédemment citée est formée par une opération arithmétique ou logique distributive, munie d'un élément neutre. Une loi de composition 15 correspondante peut ainsi être appliquée à tout secret et à tout élément de secret formé par une valeur numérique constituée soit par un nombre entier soit par un nombre réel. 20 Ainsi, dans cette hypothèse, pour un secret s formé par une valeur numérique d de longueur L déterminée, chaque valeur aléatoire Ri du premier respectivement Aj du deuxième ensemble de valeurs aléatoires est choisie de longueur inférieure à 2 L-N+l 25 À titre d'exemple non limitatif, la loi de composition précitée peut consister, ainsi que représenté en figure 2a, en une opération OU exclusif par exemple. Elle peut en outre consister en une opération arithmétique telle 30 que l'addition. On note bien entendu, que la loi de composition précitée est alors munie d'une opération inverse, l'opération OU exclusif inchangée, lorsque l'opération OU exclusif constitue la loi de composition précitée, respectivement l'opération de soustraction, lorsque l'opération d'addition constitue la loi de composition précédemment citée. Les lois de composition précédemment mentionnées et leur opération correspondante sont représentées au dessin de 10 la figure 2a, illustrée par la relation (7) : 0=0+;0 = O+ 0=+;0=-0 15 Dans la relation précédente, O+ représente l'opération OU exclusif, conduite bit à bit sur les nombres entiers ou réels constituant les éléments de secret ou secret, ainsi que les nombres aléatoires ; + et -représentent l'opération d'addition et l'opération 20 inverse de soustraction pour la loi de composition formée par l'addition arithmétique. En outre l'élément neutre est 0 pour les deux opérations. Un mode de mise en oeuvre spécifique du procédé objet de 25 l'invention est maintenant décrit en liaison avec la figure 2b, dans le cas de la mise en œuvre non limitative d'une loi de composition formée par l'opération OU exclusif. 30 À l'étape A de la figure 2b, l'opération de calcul de la première image TN est donnée par la relation (8): [T,=T_1O+(d;R.)]r=l ù> TN À l'étape B de la figure 2b, l'opération de calcul de la première valeur numérique est donnée par la relation (9) eN sl = gR;; À l'étape C de la figure 2b, l'opération de calcul de la deuxième valeur numérique est donnée par la relation (10) : �N-1 S2 = Ai j=1 À l'étape D de la figure 2b, l'opération de calcul de la deuxième image T' est donnée par la relation (11) : T,=TNO+S2 T'=T O+ S1 Enfin, l'étape E d'allocation est inchangée vis-à-vis de 20 l'étape E d'allocation de la figure 1. En outre, à titre d'exemple non limitatif la loi de composition précitée peut consister, ainsi que représenté en figure 2c, en une opération d'addition arithmétique. À l'étape A de la figure 2c, l'opération de calcul de la première image TN est donnée par la relation (12) . [Ti = T i_1 + (d; + R )],-, -* TN 10 25 30 À l'étape B de la figure 2c, l'opération de calcul de la première valeur numérique est donnée par la relation (13) : N S1 = R, i=1 À l'étape C de la figure 2c, l'opération de calcul de la deuxième valeur numérique est donnée par la relation (14) : N-1 S2 =A1 1=1 À l'étape D de la figure 2c, l'opération de calcul de la deuxième image T' est donnée par la relation (15) . TX =TN -S2 T'=TX -S1 En référence à la figure 2c, on peut observer que l'étape d'allocation E de la figure 1 est alors subdivisée en 20 deux sous étapes si chaque élément di du secret doit être positif. Cette sous étape Eo est un test de comparaison de supériorité de la deuxième image T' à la valeur zéro et une sous étapes El d'allocation proprement dite, laquelle est également inchangée par rapport à l'étape 25 d'allocations E de la figure 1. La sous étape de test Eo a pour objet de vérifier que la deuxième image T' est significative. Le caractère significatif de la deuxième image T' est obtenu lorsque 30 la valeur numérique représentative de cette dernière est 15 strictement supérieure à zéro. Ainsi, sur réponse positive au test de comparaison de la sous étape E0, la sous étape d'allocation proprement dite E1 est appelée et réalisée de la même manière que dans le cas de la figure 1 ou de la figure 2b. Au contraire, sur réponse négative à la sous étapes de test E0, la deuxième image T' étant alors négative, un retour à l'étape A est exécuté pour reconduite du processus de calcul jusqu'à l'obtention d'une valeur positive représentant la deuxième image T'. Une description d'un composant de sécurité de dispositif cryptographique comprenant un processeur sécurisé, une mémoire non volatile, une mémoire de travail, une mémoire de programme et un bus à accès protégé en lecture-écriture sera maintenant donnée en liaison avec la figure 3. Sur la figure 3 précitée, le microprocesseur sécurisé est noté �PS, la mémoire de travail est notée RAMS, la mémoire de programme est notée PROGS, la mémoire non volatile est notée NVS et le bus interne est noté I/O. 25 Le composant de sécurité objet de l'invention est remarquable en ce que la mémoire de programme PROGS comporte un programme d'ordinateur incluant une suite d'instructions mémorisées dans cette mémoire de 30 programme. Lors de l'exécution de ces instructions, le processeur sécurisé �PS exécute les étapes de mise en oeuvre du procédé de codage d'un secret formé par la valeur20 numérique d dans tout schéma de cryptographie à clé secrète, ou à clé publique, ainsi que décrit précédemment dans la description en liaison avec les figures 1 à 2b. Ainsi, le processeur de sécurité jPS délivre sur le bus à accès protégé en lecture-écriture noté I/O les seuls éléments de secret notés di successivement, sous le contrôle du dispositif cryptographique, non représenté au dessin de la figure 3. On comprend, en particulier, que le procédé et le composant de sécurité objets de l'invention opèrent sur tout secret formé par une valeur numérique d constituant totalement ou partiellement soit une clé secrète dans un schéma de cryptographie à clé secrète, soit une clé privée dans tout schéma de cryptographie à clé publique. Bien entendu le procédé et le composant de sécurité objets de l'invention précités sont susceptibles d'être mis en œuvre pour le calcul de toute valeur de code d'accès, d'identification à vocation secrète d'un processus d'authentification, de non répudiation ou de signature. REVENDICATIONS 1. Procédé de codage d'un secret formé par une valeur numérique d, dans un schéma de cryptographie à clé secrète ou à clé publique, dans lequel le secret est subdivisé en une pluralité d'un nombre N déterminé d'éléments di, dont une loi de composition représente la valeur numérique d dudit secret, caractérisé en ce que ledit procédé consiste en outre à: - -calculer une première image TN dudit secret par application itérative de la loi de composition terme à terme entre ladite première image Ti_1 de rang i-1 et le produit de composition selon ladite loi de composition de l'élément di de rang i suivant et une valeur aléatoire Ri de rang i choisie parmi un premier ensemble d'une pluralité de N valeurs aléatoires [Ti = Ti-1 0 (di � Ri) ] - - calculer une première valeur numérique Si produit de composition de ladite loi de composition appliquée successivement aux dites valeurs aléatoires Ri dudit premier ensemble de N valeurs aléatoires �.v S 1 = Ri !=1 - - calculer une deuxième valeur numérique S2 produit de composition selon ladite loi de composition appliquée successivement aux valeurs aléatoires A; d'un deuxième ensemble de N-1 valeurs aléatoires �N-1 S2 = Ir Ai; J=1 calculer une deuxième image T' dudit secret parapplication de la loi de composition inverse à ladite première image TN dudit secret et à ladite deuxième valeur numérique S2, pour engendrer une image intermédiaire TX dudit secret, puis par application de ladite loi de composition inverse à ladite image intermédiaire TX et à ladite première valeur numérique S1, pour engendrer ladite deuxième image T' dudit secret TX = T � S2 T' = T� � S1 -- allouer à chacun des N-1 premiers éléments successifs di de ladite pluralité d'éléments [di] la valeur aléatoire A; de rang correspondant dudit deuxième ensemble d'au moins une valeur aléatoire et à l'élément dN de rang N la valeur numerique de ladite deuxieme Image T'. 2. Procédé selon la revendication 1, dans lequel ladite loi de composition est formée par une opération arithmétique ou logique distributive, munie d'un élément neutre. 3. Procédé selon la revendication 2, caractérisé en ce que ladite opération logique est l'opération OU exclusif 25 bit à bit. 4. Procédé selon la revendication 2, caractérisé en ce que ladite opération arithmétique est l'addition, la loi de composition inverse étant formée par la soustraction. 5. Procédé selon l'une des revendications précédentes, caractérisé en ce que pour un secret formé par une valeur 30numérique d de longueur L déterminée, chaque valeur aléatoire Ri du premier respectivement A3 du deuxième ensemble de valeurs aléatoires est choisie de longueur inférieure à 2L-N+1. 6. Procédé selon les revendications 4 et 5, caractérisé en ce que pour une opération arithmétique formée par l'addition, ledit procédé comporte en outre, préalablement à ladite étape consistant à allouer, une étape de comparaison de supériorité de la valeur numérique de ladite deuxième image T' à la valeur zéro, une réponse positive à la ladite étape de comparaison étant suivie de ladite étape consistant à allouer, ladite étape de comparaison étant suivie d'une étape de retour à ladite étape consistant à calculer ladite première image TN dudit secret pour itération du procédé, sinon. 7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce que ledit secret formé par une valeur numérique d est soit une clé secrète dans un schéma de cryptographie à clé secrète, soit une clé privée dans un schéma de cryptographie à clé publique ou encore toute valeur de code d'accès, d'identification à vocation secrète d'un processus d'authentification, de non répudiation ou de signature. 8. Composant de sécurité d'un dispositif cryptographique comprenant un processeur sécurisé, une mémoire non volatile, une mémoire de travail, une mémoire de programme et un bus à accès protégé en lecture-écriture, caractérisé en ce que ladite mémoire de programme comporte un programme d'ordinateur incluant une suited'instructions mémorisées dans ladite mémoire de programme, et en ce que, lors de l'exécution des dites instructions, ledit processeur sécurisé exécute les étapes du procédé selon l'une des revendications 1 à 7, ledit processeur de sécurité délivrant sur bus à accès protégé en lecture-écriture les seuls éléments di, successivement, sous le contrôle dudit dispositif cryptographique.