FR 3033965 A1 20160923 FR 1552210 A 20150318 SYSTEMES ET PROCEDES DE COMMANDE DE DISPOSITIFS DE CRYPTAGE SUR COURBE ELLIPTIQUE SECURISES A. Domaine Technique La présente invention se rapporte à des systèmes sécurisés et, plus particulièrement, à des systèmes et procédés sécurisés pour dispositifs de cryptage sur courbe elliptique (ECC) conçus en tant que contre-mesures à des attaques par canal auxiliaire destinées à découvrir des informations de code secret à partir d'opérations exécutées par des circuits électriques. B. Contexte de l'Invention Dans l'arrière-plan de l'invention, des mises en oeuvre de dispositif de cryptage sur courbe elliptique (ECC) remplacent de plus en plus fréquemment le chiffrement RSA lors d'une utilisation avec des principes cryptographiques asymétriques, tels que l'échange de code ou l'authentification de Diffie-Hellman, compte tenu de l'augmentation exponentielle des spécifications de longueur de code pour le chiffrement RSA qui rend les améliorations de sécurité relativement difficiles par comparaison au cryptage ECC, pour lequel les améliorations sur la sécurité nécessitent seulement une augmentation linéaire de la longueur de code. A titre d'exemple, le niveau de sécurité d'un système à 128 bits, pour lequel le chiffrement RSA nécessite une longueur de code de 3 072 bits, peut être converti en un système symétrique à 256 bits en augmentant la longueur de code de chiffrement RSA de cinq fois à 15 360 bits. Par comparaison, la longueur de code nécessaire pour améliorer un système symétrique de cryptage ECC équivalent à 128 bits en un système symétrique à 256 bits augmente linéairement, c'est-à-dire, double, de 256-283 bits à 512-571 bits. En conséquence, l'évolution du niveau de sécurité d'un produit à base de chiffrement RSA diminue sensiblement les performances de système en termes de temps, de consommation d'énergie, et de coût par comparaison au circuit de cryptage ECC sécurisé. Comme d'autres systèmes de cryptage, le cryptage ECC utilise des algorithmes non spécifiques, standard afin de chiffrer des données confidentielles à protéger contre le vol d'information secrète. Toutefois, la plupart des procédés 3033965 2 de cryptage n'empêchent pas des ennemis déterminés de faire échouer le système de cryptage et de dévoiler la matière de codage critique lorsque les données sont traitées par le circuit de cryptage au cours du cryptage et du décryptage de données confidentielles. Les faiblesses bien connues sur les systèmes de cryptage 5 comportent la fuite d'information sous la forme de séquence, de consommation d'énergie et d'informations de rayonnement électromagnétique pouvant être détectées au cours des calculs et soumises à une analyse, même sans effraction physique. De plus, des informations peuvent fuir lorsque le système de cryptage est soumis à une insertion de défaut. 10 Les attaques par canal auxiliaire sont un type d'attaque fréquemment utilisé afin d'extraire des codes de cryptage, des mots de passe, et autres données cryptographiques à partir d'un système sécurisé (par exemple, des terminaux de paiement, des cartes à puce, des modules de sécurité, des téléphones portables) en tirant avantage du fait que les propriétés de circuit sont étroitement associées à la 15 mise en oeuvre physique du moteur de cryptage et des opérations exécutées sur les données traitées par l'algorithme de cryptage particulier et reflètent celles-ci. Par exemple, dans une attaque par canal auxiliaire différentielle, un attaquant spécialisé peut exécuter de nombreux appels à une fonction sur le système sécurisé, que l'attaquant essaye de percer, en exécutant une analyse statistique sur 20 les propriétés caractéristiques de circuit, comportant des profils d'émissions électromagnétiques de transitions de courant et de tension, des profils de consommation d'énergie, et des profils séquentiels de signaux générés. Puisque différentes instructions présentent différents profils de consommation, après surveillance d'un circuit en cours d'investigation, collecte de données suffisantes 25 et filtrage du bruit par des moyens statistiques, des détails du comportement de système peuvent être déduits à partir des informations obtenues et, finalement, les données secrètes recherchées peuvent être reconstruites. Par exemple, la mise en oeuvre d'un algorithme standard dans un système sécurisé provoque le passage d'un courant à travers un circuit logique déterminé à partir de quoi la connaissance concernant le circuit et les données traitées par les circuits logiques est révélée de manière indésirable à l'environnement du circuit. 3033965 Dans un circuit avec un nombre de portes fixe et un emplacement fixe, les données et courants associés à ces données passent à travers des portes logiques, ce qui rend les opérations logiques à l'intérieur du circuit susceptibles d'être sondées dans le but de tracer et d'extraire des informations secrètes, rendant, ainsi 5 vulnérable la sécurité du système de cryptage. Il existe plusieurs principes permettant de protéger la sécurité d'un circuit en augmentant le niveau de difficulté de mise en oeuvre de ce type d'attaque non intrusive et d'empêcher la fuite d'informations compromettantes observables à partir d'un circuit vers son environnement. Un tel principe repose sur la 10 modification de l'algorithme de cryptage d'une manière à exécuter des opérations associées à la sécurité à la fois sur les bits réels d'un code secret de même que sur l'inverse de ceux-ci. D'autres types d'attaque sur un circuit comportent le procédé par injection de faute. En utilisant ce principe, lors de la préparation de l'exécution d'une attaque, 15 un ennemi manipule un circuit qui subit normalement des opérations aléatoires et force le circuit à s'écarter d'opérations cryptographiques régulières pour commuter dans un mode de fonctionnement plus déterministe. Par exemple, en augmentant volontairement une tension appliquée sur le circuit, l'attaquant peut déclencher une certaine réponse de circuit qui réduit, en effet, le caractère aléatoire des 20 opérations, permettant ainsi à l'attaquant d'obtenir la commande avec un comportement de circuit plus prévisible et de faciliter la réussite de l'exécution d'une attaque. Il existe un besoin pour des outils destinés à des concepteurs de systèmes sécurisés permettant de surmonter les limitations décrites précédemment tout en 25 profitant des bénéfices assurés par le cryptage sur courbe elliptique (ECC) sur des circuits sécurisés. Dans ce but, il est créé un dispositif de cryptage sur courbe elliptique (ECC) sécurisé destiné à exécuter des opérations scalaires sur courbe elliptique, le dispositif comprenant : un micro-contrôleur sécurisé comprenant un circuit de 30 cryptographie, le circuit de cryptographie étant configuré de manière à mettre en oeuvre une contre-mesure tout en empêchant la fuite de scalaire secret ; une 3033965 4 mémoire destinée à mémoriser un scalaire secret qui comprend des bits de code secret ; et une unité de traitement destinée à exécuter des opérations scalaires sur courbe elliptique, l'unité de traitement comprenant des instructions destinées à: recevoir un point elliptique et le scalaire secret ; initialiser une valeur Q au point 5 elliptique qui ne comporte pas de valeur initiale à un point à l'infini ; traiter les bits de code secret du scalaire secret d'une manière séquentielle, dans lequel le traitement comporte le doublement de Q; exécuter des opérations sur courbe elliptique comprenant la soustraction et l'addition de point elliptique ; et exécuter une soustraction de point elliptique par soustraction du point elliptique de la 10 valeur Q. Le dispositif de cryptage sur courbe elliptique (ECC) sécurisé peut, en outre, comprendre une machine d'état qui exécute les opérations scalaires sur courbe elliptique. Le dispositif de cryptage sur courbe elliptique (ECC) sécurisé peut, en outre, 15 comprendre un registre, le registre est initialisé à un point autre qu'un point infini. Le dispositif de cryptage sur courbe elliptique (ECC) sécurisé peut, en outre, comprendre un bit de poids fort (MSB) de code secret qui est positionné à O. L'unité de traitement peut être configurée de manière à exécuter une opération de vérification de point afin de se protéger contre des attaques de faille. 20 L'unité de traitement peut déterminer la différence entre la valeur Q et le point elliptique hors de la configuration à boucle équilibrée afin de protéger un bit de poids faible (LSB) d'au moins l'une parmi une attaque séquentielle, par analyse de consommation simple (SPA), et d'équivalencte électromagnétique (EM). Le dispositif de cryptage sur courbe elliptique (ECC) sécurisé peut, en outre, 25 comprendre une mémoire afin de mémoriser des résultats intermédiaires des opérations scalaires sur courbe elliptique. L'invention se rapporte, en outre, à un procédé de création d'un flux d'opération indépendante d'un code secret, le procédé comprenant : dans un dispositif de cryptage sur courbe elliptique (ECC), la réception d'un point 30 elliptique et d'un scalaire secret qui comprend des bits de code secret ; l'initialisation d'une valeur Q au point elliptique qui ne comporte pas de valeur 3033965 5 initiale à un point infini ; le traitement des bits de code secret du scalaire d'une manière séquentielle, dans lequel le traitement comporte le doublement de Q; l'exécution d'opérations sur courbe elliptique comprenant la soustraction et l'addition de point elliptique ; et l'exécution d'une soustraction de point elliptique 5 par soustraction du point elliptique de la valeur Q. Les opérations elliptiques peuvent être exécutées dans une configuration à boucle équilibrée. Le procédé peut, en outre, comprendre : en réponse à la détermination du fait qu'une valeur de bit de poids faible (LSB) est égale à 1, la sortie de Q; et en 10 réponse à la détermination du fait que la valeur de bit de poids faible (LSB) n'est pas égale à 1, la sortie de Q-P. Le traitement des bits de code secret peut exclure le traitement d'un bit de poids faible (LSB) de code secret. Le scalaire secret peut comprendre une largeur de plage prédéterminée. 15 La soustraction et l'addition de point elliptique utilisent des valeurs calculées préalablement afin de réduire le nombre de valeurs à calculer. La soustraction et l'addition de point elliptique peuvent utiliser des valeurs calculées préalablement afin de réduire le nombre de valeurs à calculer. Le procédé peut, en outre, comprendre l'initialisation de la valeur Q à la 20 valeur calculée préalablement la plus grande. Le procédé peut, en outre, comprendre le traitement séquentiel des bits de largeur du scalaire secret. Le procédé peut, en outre, comprendre la génération d'une séquence qui ne comporte aucune opération factice et aucune opération qui implique une valeur 25 initiale infinie. Les opérations sur courbe elliptique peuvent comprendre des multiplications de point de courbe. Un bit de poids fort (MSB) calculé préalablement peut être positionné à O. Le procédé peut, en outre, comprendre l'application du procédé à un procédé 30 par peigne basé sur scalaire fixe de telle sorte que la réutilisation de valeurs calculées préalablement dans la configuration à boucle équilibrée réduit un 3033965 6 nombre de valeurs calculées préalablement. Le procédé peut, en outre, comprendre l'exécution d'une opération de vérification de point qui comprend la détection d'erreurs de calcul en déterminant si un résultat est situé sur une courbe elliptique. 5 BREVE DESCRIPTION DES DESSINS Une brève description des dessins va être donnée ci-dessous. Il va maintenant être fait référence à des modes de réalisation de l'invention, dont des exemples peuvent être représentés sur les figures annexées. Ces figures 10 sont destinées à être représentatives, mais pas limitatives. Bien que l'invention soit généralement décrite dans le contexte de ces modes de réalisation, il doit être compris qu'il n'est pas envisagé de limiter la portée de l'invention à ces modes de réalisation particuliers. La figure 1 est un organigramme qui représente une opération utilisant un 15 dispositif de cryptage sur courbe elliptique (ECC) existant utilisant un algorithme de doublement et ajout de scalaire qui comporte des opérations factices en tant que contre-mesures à l'analyse de consommation simple. La figure 2 montre un tracé de puissance classique pour un exemple de séquence d'opérations de doublement et ajout. 20 Les figures 3A et 3B représentent la détection des bits de code secret à partir d'exemples de séquences d'opérations de doublement et ajout sur courbe elliptique sans contre-mesure. La figure 4A représente un exemple de séquence d'opérations de doublement et toujours addition sur courbe elliptique en tant que contre-mesure 25 sans initialisation au point infini. La figure 4B représente une séquence existante d'opérations de doublement et toujours addition sur courbe elliptique en tant que contre-mesure avec initialisation au point infini. La figure 5 est un organigramme qui représente une opération utilisant un 30 algorithme de doublement et ajout de scalaire qui est résistant à l'analyse de consommation simple et d'erreur de sécurité logicielle, selon différents modes de 3033965 7 réalisation de l'invention. La figure 6 est un organigramme qui représente une opération de technique antérieure utilisant un algorithme par peigne à base fixe existant qui comporte un calcul préalable. 5 La figure 7 est un organigramme qui représente une opération utilisant un exemple d'algorithme par peigne à base fixe, selon différents modes de réalisation de l'invention. La figure 8 représente une séquence d'opérations de doublement et ajout de scalaire produites par l'une des opérations des figures 5 et 7. 10 La figure 9 représente un schéma fonctionnel d'un dispositif de calcul sécurisé qui met en oeuvre des modes de réalisation de la présente invention. Une description détaillée des modes de réalisation préférés va maintenant être faite. 15 DESCRIPTION DETAILLEE DES MODES DE REALISATION PREFERES Dans la description suivante, pour les besoins de l'explication, des détails spécifiques sont présentés dans le but d'assurer la compréhension de l'invention. Toutefois il va être évident pour le spécialiste de la technique, que l'invention peut être mise en oeuvre sans ces détails. Il va être évident pour un spécialiste de la 20 technique que des modes de réalisation de la présente invention décrits ci-dessous peuvent être mis en oeuvre suivant une variété de manières et en utilisant une variété de moyens. Il va aussi être évident pour le spécialiste de la technique que des modifications, applications et modes de réalisation supplémentaires sont compris dans la portée de celle-ci, comme le sont les domaines supplémentaires 25 dans lesquels l'invention peut être utilisée. Par conséquent, les modes de réalisation décrits ci-dessous sont représentatifs de modes de réalisation spécifiques de l'invention et sont destinés à éviter d'obscurcir l'invention. La référence, dans la spécification, à "un premier mode de réalisation" ou à "un mode de réalisation" signifie qu'une spécificité, structure, caractéristique, ou 30 fonction particulière décrite en relation avec le mode de réalisation est contenue dans au moins un mode de réalisation de l'invention. L'apparition de la phrase 3033965 8 "dans un premier mode de réalisation", "dans un mode de réalisation" ou analogues à différents emplacements de la spécification ne se réfère pas nécessairement au même mode de réalisation. En outre, des liaisons entre des composants ou entre des étapes de procédé sur les figures ne sont pas limitées aux 5 liaisons qui sont affectées directement. Au lieu de cela, les liaisons représentées sur les figures entre les composants ou les étapes de procédé peuvent être modifiées ou changées d'une autre manière par ajout à ceux-ci de composants ou d'étapes de procédé intermédiaires, sans s'écarter des enseignements de la présente invention. 10 Dans ce document, les termes "point infini", "valeur initiale positionnée à l'infini" et "point à l'infini" sont utilisés de manière interchangeable. La figure 1 est un organigramme qui représente une opération utilisant un dispositif de cryptage sur courbe elliptique (ECC) existant utilisant un algorithme de doublement et ajout de scalaire qui comporte des opérations factices en tant 15 que contre-mesures à l'analyse de consommation simple. En général, une courbe elliptique est un ensemble de points qui est défini par une équation. Des opérations de base sur des points de la courbe elliptique, telles qu'une multiplication ou addition scalaire peuvent être utilisées afin de crypter des données. Alors que des opérations de multiplication, d'addition et de doublement 20 sont analogues à celles appliquées sur des nombres, deux points situés sur une courbe elliptique sont ajoutés à l'intérieur de leur propre système de coordonnées. L'addition de deux points sur une courbe conduit à un troisième point situé sur la courbe, et l'opération d'addition est itérative. Un point est multiplié par un scalaire de manière classique par addition du point un certain nombre de fois à lui-même 25 afin de conduire à un autre point sur la courbe sur la base d'une formule, de telle sorte que la multiplication par un scalaire correspond à une addition. Si le point d'origine et le nombre de fois qu'une addition doit être exécutée sont connus, le résultat est facile à calculer. Au contraire, si seul le point résultant est connu il est théoriquement impossible de déterminer le nombre de fois que 30 l'addition a été réalisée pour arriver au point résultant. C'est cet effet qui rend l'utilisation de la multiplication de point attractive en cryptographie. 3033965 9 Le procédé montré sur la figure 1, aussi connu comme "double toujours et ajoute," est mis en oeuvre de manière classique sous forme d'un algorithme scalaire dans le dispositif de cryptage ECC. Le procédé 100 commence à l'étape 102 lorsqu'un point de courbe elliptique et un scalaire sont reçus par le dispositif 5 de cryptage ECC en vue du traitement. A l'étape 104, Q est initialisé au point à l'infini (c'est-à-dire, un élément neutre pour des courbes elliptiques) avant qu'à l'étape 106 les bits de code du scalaire soient traités de manière séquentielle. Le traitement des bits de code secret comporte toujours le doublement de Q 10 à l'étape 108, et, si la valeur analysée du bit traité est égale à 1, alors une addition de point sur courbe elliptique est exécutée par ajout, à l'étape 112, du point de courbe elliptique à Q. Au contraire, si le bit considéré n'est pas égal à 1 alors, à l'étape 114, une opération factice est exécutée, de manière classique sans sauvegarder le résultat 15 ou en le sauvegardant à un emplacement différent. L'opération factice insérée par ce procédé force l'exécution d'une addition sur courbe elliptique dans cette étape, même si le résultat de cette addition ne constitue pas réellement une contre-mesure à une attaque par analyse de consommation simple (SPA). 20 Après que tous les bits de code secret ont été traités à l'étape 116, à l'étape 118, Q est sorti. Il existe un certain nombre d'algorithmes scalaires qui permettent d'exécuter des opérations similaires. Par exemple, un scalaire peut être utilisé afin de conduire à une signature numérique, et un résultat peut être vérifié en utilisant une 25 valeur de code publique. De manière avantageuse, puisque la valeur de code publique ne peut pas être utilisée de manière à extraire la valeur privée, ceci présente une difficulté afin de résoudre le problème, conduisant ainsi en soi à la cryptographie de code public pour signatures numériques. Toutefois, comme la plupart d'autres procédés, ce principe présente des faiblesses significatives sur 30 l'algorithme scalaire en termes de sécurité puisque ces types d'opération peuvent facilement être observés conduisant à des fuites d'information qui peuvent être 3033965 - 10 - détectées par l'intermédiaire d'une analyse par canal auxiliaire, comportant l'analyse séquentielle, l'analyse de consommation simple (SPA), ou par équivalence électromagnétique (EM) conduisant à la découverte de la longueur de code secret, qui peut être exploitée, par exemple, par des réseaux. 5 A titre d'exemple, dans une mise en oeuvre pratique le registre de Q est initialisé au point infini (c'est-à-dire, à zéro), c'est-à-dire, que jusqu'à ce qu'un bit non nul est traité, aucun doublement réel et aucune opération de calcul réelle n'est réalisée du fait qu'une multiplication par zéro conduit toujours à un résultat nul. Alors, lorsque le premier bit non nul est, en fait, traité, seul un transfert de 10 données se produit, mais aucun calcul n'est réalisé. En résultat, la première opération d'addition de point de courbe elliptique qui est précédée par une opération de doublement de point de courbe elliptique (c'est-à-dire, le point à l'infini) peut être détectée comme présentant un profil de séquence ou profil d'amplitude différent et relativement plus court. Il est noté que, dès que le bit de 15 code secret traité est égal à 1, une addition sur courbe elliptique est réalisée, mais aucune opération n'est réalisée lorsque la valeur du bit de code secret est égale à 0 et le résultat reste inchangé. De plus, en l'absence de l'étape 114, un attaquant spécialisé peut différencier l'addition elliptique de l'opération de doublement elliptique, par exemple, en 20 utilisant l'analyse de consommation ou l'équivalence électromagnétique (EM) afin d'exploiter les profils de séquence, les profils d'amplitude, etc., relativement plus courts et différents, créés par les deux opérations différentes dans le but d'extraire partiellement ou entièrement le code secret de courbe elliptique. La figure 2 montre un tracé de puissance 200 classique pour un exemple de séquence 25 d'opérations de doublement et ajout. Le tracé de puissance 200 représente des différences sur les profils de consommation d'énergie pour une opération de doublement de point de courbe elliptique 260 et une opération d'addition de point de courbe elliptique 270. En observant les profils caractéristiques pour une séquence donnée de codes secrets traités par les opérations de doublement et 30 d'addition elliptique, l'attaquant peut trouver relativement facilement le code secret. 3033965 3033965 11- -11- Les figures 3A et 3B représentent la détection des bits de code secret à partir d'exemples de séquences d'opérations de doublement et ajout sur courbe elliptique sans contre-mesure. Dans les séquences 300 et 350, la lettre "D" 302 indique un doublement de point de courbe elliptique, alors que la lettre "A" 304 indique une 5 addition de point de courbe elliptique. Puisque des additions sont exécutées uniquement lorsque le bit de code secret est égal à 1, la détection d'un profil pour deux D 304 consécutifs, c'est-à-dire, des opérations de doublement elliptique, indique un bit à zéro, alors qu'un D 304 suivi par un A 302 indique un 1 pour le bit de code secret. En résultat, la séquence de bit de code 110110 peut être 10 obtenue à partir de la séquence 300. De manière similaire, le profil pour la séquence de code secret 350 laisse fuir des informations qui permettent à l'attaquant de déduire et d'exposer la séquence de bit de code 010110 compromettant ainsi la sécurité du système. La figure 4A représente un exemple de séquence d'opérations de 15 doublement et toujours addition sur courbe elliptique en tant que contre-mesure sans initialisation au point infini. Dans l'algorithme de doublement et toujours addition, des opérations factices désignées par A' 410 sont insérées dans la séquence 400 dans le but d'obtenir un flux d'opération constant. Toutefois, si un registre est initialisé au point infini, il est possible de le détecter, et ainsi, de 20 déterminer la longueur du code secret comme, par exemple, le nombre de bits de poids fort positionnés à zéro. Contrairement à la séquence de la figure 4A, la séquence d'opérations de doublement et toujours addition sur courbe elliptique de la figure 4B n'utilise pas une initialisation au point infini. Ceci peut être obtenu en initialisant un registre à un point de base, de telle sorte qu'il se comporte comme si 25 le bit de poids fort est positionné à 1 (c'est-à-dire, une fuite de 1 bit). Par conséquent, les opérations de doublement et toujours addition de la figure 4B servent de contre-mesure en empêchant la détection du point infini. Malheureusement, les opérations factices A' 410 peuvent toujours être détectées, par exemple, par une attaque par erreur de sécurité logicielle, qui 30 implique l'insertion d'une faute dans le système au cours d'un calcul A 304 ou A' 410 et l'observation du fait que le résultat contient une faute. Si, en réponse à 3033965 - 12 - l'attaque par faute, le résultat reste inchangé, c'est-à-dire, que la faute n'altère pas le résultat, ceci indique que l'opération est une opération factice. En résultat, un attaquant peut identifier et éliminer les opérations factices sur une séquence de doublement et toujours addition sur courbe elliptique afin de récupérer les bits du 5 code secret. Globalement, il est désirable de créer des systèmes et procédés qui assurent la protection contre l'analyse séquentielle, l'analyse de consommation simple (SPA), l'analyse électromagnétique (EM), et les attaques par faute pour des opérations scalaires sur courbe elliptique qui rendent les codes secrets à protéger 10 indépendants du flux. La figure 5 est un organigramme qui représente une opération utilisant un algorithme de doublement et ajout de scalaire qui est résistant à l'analyse de consommation simple et d'erreur de sécurité logicielle, selon différents modes de réalisation de l'invention. L'opération 500 commence à l'étape 502 lorsqu'un point 15 de courbe elliptique et un scalaire sont reçus par un dispositif de décryptage ECC. A l'étape 504, Q est initialisé au point de base. L'initialisation au niveau d'un point non neutre évite l'exécution d'opération du type 2*0 et 0+P et sert, ainsi de contre-mesure, par exemple, pour les principes d'attaque mentionnés en se référant à la figure 1 qui exploitent la détectabilité de bits à zéro sur la base d'une analyse 20 de profil séquentiel et analogue. De plus, la longueur de code secret reste protégée d'outils d'analyse de cryptographie mathématiques, tels que les attaques de réseau, qui essayent d'extraire un code secret à partir d'une information partielle (par exemple, de quelques bits) qui est inférieure à la valeur scalaire du bit. A l'étape 506 les bits de code du scalaire sont traités de manière 25 séquentielle, par exemple, de manière itérative dans une configuration en boucle exclusive des bits de poids faible (LSB) de code secret afin d'empêcher que la boucle ne décompte jusqu'à zéro. Le traitement des bits de code secret comporte toujours le doublement de Q à l'étape 508, et, si la valeur analysée du bit traité n'est pas égale à 1, alors l'exécution d'une soustraction de point sur courbe 30 elliptique par soustraction du point de courbe elliptique de Q, à l'étape 512 et, sinon, à l'étape 514, l'exécution d'une addition de point de courbe elliptique par 3033965 - 13 - ajout du point de courbe elliptique à Q. Il doit être noté que ceci est réalisé sans nécessiter l'injection d'opérations factices qui sont destinées à former une contre-mesure à l'analyse de canal non invasive, telle que par attaques par analyse de consommation simple (SPA), puisque les opérations factices restent 5 détectables, par exemple, par attaques par injection de faute (erreur de sécurité logicielle) qui injectent une faute dans une opération afin de détecter une opération factice sur la base de sa caractéristique de n'altérer le résultat en aucune manière. Dans un mode de réalisation, la soustraction et l'addition de point sur courbe 10 elliptique sont mises en oeuvre dans une configuration à boucle équilibrée. De manière avantageuse, puisque les deux opérations d'addition et soustraction de point de courbe elliptique ne peuvent sensiblement pas être différentiées électriquement l'une de l'autre par rapport à la séquence et à la consommation d'énergie, les attaques de circuit basées sur la détection des signatures électriques 15 par l'analyse de consommation ou l'équivalence électromagnétique (EM) sont rendues sensiblement plus difficile, augmentant ainsi, la résistance du circuit contre des attaques par canal auxiliaire. A l'étape 514, une opération de vérification de point contrôle des erreurs de calcul, par exemple, en déterminant si le résultat est évidemment situé sur la 20 courbe en tant qu'indication du fait qu'aucune erreur ne s'est produite. La vérification de point est recommandée par rapport à l'attaque par faute. De plus, à l'extérieur de la boucle, la différence entre Q et le point de courbe elliptique est calculée, pas nécessairement pour obtenir des résultats précis, mais pour protéger les bits de poids faible (LSB) du code secret d'attaques séquentielles, par analyse 25 de consommation simple (SPA) et par équivalence électromagnétique (EM). Enfin, une fois que les bits de code secret ont été traités, il est déterminé si les bits de poids faible (LSB) présentent la valeur de 1, à l'étape 518. Si c'est le cas, Q est sorti, à l'étape 520 ; sinon, le résultat de Q-P est sorti à l'étape 522. Une contrainte critique des algorithmes de cryptographie est le compromis 30 entre le coût de mise en oeuvre et les performances. Certains systèmes de cryptographie existants utilisent la mémoire afin de mémoriser des résultats 3033965 - 14 - intermédiaires de manière à améliorer les performances en termes d'opérations scalaires. Le prétraitement améliore les performances sur les opérations de doublement et addition, lorsque la mémoire peut être utilisée afin de stocker et de réutiliser des points pour des calculs et des opérations. Il va être apprécié par les 5 spécialistes de la technique que moins d'étapes ou des étapes supplémentaires peuvent être incorporées aux étapes représentées ici sans s'écarter de la portée de l'invention. Aucun ordre particulier n'est impliqué par l'agencement de blocs à l'intérieur des présents organigramme ou description. Il va, en outre, être apprécié que les exemples et modes de réalisation précédents sont exemplaires et sont 10 donnés pour des besoins de clarté et de compréhension et non pour limiter la portée de la présente invention. Il doit être considéré que de quelconques permutations, améliorations, équivalents, associations, et perfectionnements de ces derniers qui vont devenir évidents aux spécialistes de la technique à la lecture des spécifications et à l'étude des dessins, sont compris dans la portée de la 15 présente invention. Il doit, par conséquent, être considéré que l'invention comprend l'ensemble de tels modifications, permutations, et équivalents qui tombent dans la portée réelle de l'invention décrite précédemment. La figure 6 est un organigramme qui représente une opération de technique antérieure utilisant un algorithme par peigne à base fixe existant qui comporte un 20 calcul préalable. L'opération 600 commence à l'étape 602 lorsqu'un scalaire, un point de courbe elliptique, et une largeur de plage sont reçus par le dispositif de cryptage ECC en vue de leur traitement. A l'étape 604, 2' points sont calculés préalablement, et la ligne de largeur 25 scalaire est réagencée à l'étape 606. A l'étape 608, Q est initialisé préalablement au point infini, à l'étape 610, les bits de code du scalaire sont traités de manière séquentielle. Le traitement des bits de code secret comporte le doublement de Q, à l'étape 612. 30 A l'étape 614, les valeurs correctes calculées préalablement sont ajoutées en réalisant préalablement une addition de point sur courbe elliptique, finalement, à 3033965 - 15 - l'étape 616, le point de courbe elliptique est sorti. Toutefois, l'opération 600 souffre de déficiences similaires, en termes de sécurité, à celles de l'opération de la figure 1, comportant l'initialisation de Q au point infini, qui présente des fuites d'informations par rapport au fait qu'aucune 5 opération n'est exécutée lorsque la valeur du bit de code secret est égale à zéro et permet ainsi aux attaquants de tracer la consommation de profils caractéristiques, etc.. Différents modes de réalisation de l'innovation profitent de la réutilisation de valeurs calculées préalablement dans différents scénarios afin de réduire le 10 nombre de valeurs calculées préalablement requises. Ceci permet une réduction sur les coûts de mise en oeuvre par comparaison aux procédés existants. Appliqué à des algorithmes scalaires qui utilisent des valeurs calculées préalablement, certains modes de réalisation de l'innovation assurent une réduction de la moitié environ du nombre de valeurs calculées préalablement sans provoquer de 15 réduction sensible sur les performances du dispositif de cryptage. La figure 7 est un organigramme qui représente une opération utilisant un exemple d'algorithme par peigne à base fixe, selon différents modes de réalisation de l'invention. L'opération 700 met en oeuvre certains des mêmes nouveaux principes sur un procédé par peigne à base fixe scalaire et des dérivés quelconques de manière à 20 rendre le matériel résistant à une attaque par canal auxiliaire. L'opération 700 commence à l'étape 702 lorsqu'un scalaire, un point de courbe elliptique et une largeur de plage sont reçus par le dispositif de cryptage ECC en vue de leur traitement. A l'étape 704, 2W4 points sont calculés préalablement et sauvegardés. 25 A l'étape 706, la ligne de largeur scalaire est réagencée. A l'étape 708, Q est initialisé à la valeur calculée préalablement la plus grande. A l'étape 710, les bits de largeur du scalaire sont traités de manière séquentielle, par exemple, quatre lignes de 64 bits de manière itérative dans une 30 configuration en boucle exclusive du bit de poids faible (LSB) du code secret. Le traitement des bits de code secret comporte le doublement de Q à l'étape 3033965 - 16 - 712. A l'étape 714, les valeurs calculées préalablement correctes sont additionnées ou soustraites en exécutant une addition ou soustraction de point de courbe elliptique, par exemple, dans une configuration en boucle équilibrée de 5 manière à utiliser deux fois chaque valeur calculée préalablement. Dans un mode de réalisation, ceci réduit le nombre de valeurs calculées préalablement de moitié puisque chaque valeur est utilisée deux fois. Dans des cas dans lesquels des valeurs calculées préalablement doivent être mémorisées, ceci réduit les spécifications de mémoire et, par conséquent, conduit à un rapport de 10 performances sur coût supérieur. Finalement, à l'étape 716, le point de courbe elliptique est sorti. Il doit être compris que les bits de poids fort (MSB) du scalaire calculés préalablement ne doivent pas être forcés à '1' au cours des calculs préalables. L'opération 700 peut être réalisée aussi bien avec les bits de poids fort (MSB) 15 positionnés à '0' puisqu'il n'est pas nécessaire de réagir au problème de point à l'infini des procédés existants qui essayent de masquer le lancement secret d'une opération de base à partir de la détection. Puisque dans l'opération 700 le lancement reste masqué, aucune fuite d'information ne se produit, renforçant ainsi, la résistance à une attaque par canal auxiliaire du système. En outre, bien que ce 20 ne soit pas explicitement montré, il va devenir évident à un spécialiste de la technique que les bits peuvent être complétés par des bits supplémentaires dans le but d'égaliser les longueurs de chaîne, comme cela est nécessaire. Il va devenir évident à un spécialiste de la technique que, dans des cas de calcul préalable, plusieurs bits du scalaire peuvent être analysés simultanément plutôt qu'un par un. 25 La figure 8 représente une séquence d'opérations de doublement et ajout de scalaire produites par l'une des opérations des figures 5 et 7. La figure 9 représente un schéma fonctionnel d'un dispositif de calcul sécurisé qui met en oeuvre des modes de réalisation de la présente invention. Certains aspects du présent document de brevet sont destinés à des systèmes 30 sécurisés pour des dispositif de cryptage ECC. Le système 900 peut comprendre une pluralité de dispositifs d'entrée 910, de dispositifs de sortie 908, une unité de 3033965 - 17 - traitement 902, un port de communication 914, une mémoire 906, et une interface de réseau 912, une source d'alimentation (non montrée), et d'autres composants qui ne sont pas montrés pour des questions de simplicité. L'unité de traitement 902 peut comprendre une micro-unité de commande cryptographique sécurisée ; des 5 bus de niveau local et de système ; des modules de fonction, comportant un noyau d'unité centrale de traitement, une unité de commande de mémoire universelle, des sources de code, une unité de traitement cryptographique ; un accélérateur de cryptage de code symétrique (par exemple, au standard AES) ; et un accélérateur de cryptage de code asymétrique (par exemple, pour le chiffrement RSA et le 10 cryptage ECC). Des unités de commande peuvent être intégrées dans le noyau de l'unité CPU et/ou dans l'unité de commande de mémoire universelle de l'unité de traitement 902 afin de copier ou de mémoriser temporairement le code secret, par exemple, dans la mémoire 906. Une liaison sécurisée dédiée peut être appliquée afin de permettre à l'unité de traitement 902 de communiquer avec les sources de 15 code afin de transférer les instructions de demande de code et codes secrets par l'intermédiaire de la liaison sécurisée plutôt que d'un bus. Pour les besoins de la présente description, le système sécurisé 900 peut, en outre, comporter des quelconques instrumentations ou agrégat d'instrumentations pouvant servir à estimer, calculer, déterminer, classifier, traiter, émettre, recevoir, 20 extraire, initier, acheminer, commuter, mémoriser, afficher, communiquer, manifester, détecter, enregistrer, reproduire, manipuler, ou utiliser toute forme d'information, d'intelligence ou de données commerciales, scientifiques, de commande, ou à d'autres buts. Par exemple, un système sécurisé peut être intégré dans un ordinateur portable, un dispositif mobile (par exemple, un assistant 25 numérique personnel ou téléphone intelligent), un serveur (par exemple, un serveur lame ou un serveur en rack), un dispositif de mémorisation de réseau, ou tout autre dispositif approprié et ses taille, forme, performance, et fonctionnalité peuvent varier. Le système sécurisé 900 peut comporter une mémoire à accès aléatoire, une ou plusieurs ressources de traitement, (par exemple, unité centrale 30 de traitement) ou élément logique de commande matériel ou logiciel, de la mémoire ROM, et/ou d'autres types de mémoire non-volatile. Les composants 3033965 - 18 - supplémentaires du système sécurisé 900 peuvent comporter un ou plusieurs bus pouvant servir à transmettre des communications entre les différents composants matériels. Il doit être compris que les fonctionnalités montrées pour le système 900 5 peuvent servir à supporter différents modes de réalisation d'un système sécurisé - bien qu'il doive être compris que le système sécurisé 900 peut être configure différemment et comporter d'autres composants qui mettent en oeuvre des modes de réalisation traitant des opérations sur courbe elliptique (par exemple, en utilisant une courbe d'une longueur de n bits) en vue d'une utilisation sur des 10 signatures numériques et autres protocoles afin d'exécuter les traitements dans un contexte de sécurité (par exemple, algorithme de signature numérique sur courbe elliptique, échange de Diffie-Hellman sur courbe elliptique, principe de cryptage intégré sur courbe elliptique). Il doit être noté que des aspects de la présente invention peuvent être codés 15 sur un ou plusieurs supports non transitoires pouvant être lus par ordinateur au moyen d'instructions pour une ou plusieurs unités de traitement 902 afin d'assurer l'exécution des étapes. Les supports non transitoires pouvant être lus par ordinateur peuvent comporter une mémoire volatile et non-volatile 906. Il doit aussi être noté que des variantes de mises en oeuvre sont possibles, comportant des 20 mises en oeuvre matérielles et logicielles/matérielles. Des fonctions mises en oeuvre par matériel peuvent être réalisées en utilisant des circuits ASIC, des réseaux programmables, des circuits de traitement de signal numérique (par exemple, des machines d'état configurées de manière à mettre en oeuvre directement des opérations scalaires sur courbe elliptique) et analogue. Par 25 conséquent, les termes "moyens" dans la présente invention sont destinés à couvrir à la fois des mises en oeuvre logicielles et matérielles. De manière similaire, le terme "support ou supports pouvant être lus par ordinateur" tel qu'utilisé ici comporte un support logiciel et/ou un support matériel à l'intérieur duquel un programme d'instructions est intégré ou une association des deux. 30 Avec ces variantes de mise en oeuvre à l'esprit, il doit être compris que les figures et la description associée fournissent les informations fonctionnelles 3033965 - 19 - nécessaires à un spécialiste de la technique afin d'écrire un code de programme (c'est-à-dire, un logiciel) et/ou de fabriquer des circuits (c'est-à-dire, un matériel) permettant de mettre en oeuvre le traitement requis. Il va être évident pour un spécialiste de la technique qu'aucun système de sécurité, protocole ou langage de 5 programmation particulier n'est critique pour la mise en pratique de la présente invention. Il va aussi être évident pour un spécialiste de la technique qu'un certain nombre des éléments décrits précédemment peuvent être séparés physiquement et/ou fonctionnellement en modules secondaires ou associés les uns aux autres. Il va être apprécié par les spécialistes de la technique que les précédents 10 exemples et modes de réalisation sont fournis à titre d'exemple et ne limitent pas la portée de la présente invention. Il doit être considéré que de quelconques permutations, perfectionnements, équivalents, associations, et améliorations sur celle-ci, qui vont devenir évidents pour les spécialistes de la technique à la lecture des spécifications et l'étude des dessins sont contenus dans l'esprit véritable et la 15 portée de la présente invention. 20 REVENDICATIONS1. Dispositif de cryptage sur courbe elliptique (ECC) sécurisé destiné à exécuter des opérations scalaires sur courbe elliptique, le dispositif comprenant : un micro-contrôleur sécurisé comprenant un circuit de cryptographie, le circuit de cryptographie étant configuré de manière à mettre en oeuvre une contre-mesure tout en empêchant la fuite de scalaire secret ; une mémoire destinée à mémoriser un scalaire secret qui comprend des bits de code secret ; et une unité de traitement destinée à exécuter des opérations scalaires sur courbe elliptique, l'unité de traitement comprenant des instructions destinées à: recevoir un point elliptique et le scalaire secret ; initialiser une valeur Q au point elliptique qui ne comporte pas de valeur initiale à un point infini ; traiter les bits de code secret du scalaire secret d'une manière séquentielle, dans lequel le traitement comporte le doublement de Q; exécuter des opérations sur courbe elliptique comprenant la soustraction et l'addition de point elliptique ; et exécuter une soustraction de point elliptique par soustraction du point elliptique de la valeur Q. 2. Dispositif de cryptage sur courbe elliptique (ECC) sécurisé selon la revendication 1, comprenant, en outre, une machine d'état qui exécute les opérations scalaires sur courbe elliptique. 3. Dispositif de cryptage sur courbe elliptique (ECC) sécurisé selon la revendication 1 ou 2, comprenant, en outre, un registre, le registre est initialisé à un point autre qu'un point infini. 4. Dispositif de cryptage sur courbe elliptique (ECC) sécurisé selon l'une quelconque des revendications 1 à 3, comprenant, en outre, un bit de poids fort (MSB) de code secret qui est positionné à O. 3033965 - 21 - 5. Dispositif de cryptage sur courbe elliptique (ECC) sécurisé selon l'une quelconque des revendications 1 à 4, dans lequel l'unité de traitement est configurée de manière à exécuter une opération de vérification de point afin de se protéger contre des attaques de faille. 6. Dispositif de cryptage sur courbe elliptique (ECC) sécurisé selon l'une quelconque des revendications 1 à 5, dans lequel l'unité de traitement détermine la différence entre la valeur Q et le point elliptique hors de la configuration à boucle équilibrée afin de protéger un bit de poids faible (LSB) d'au moins l'une parmi une attaque séquentielle, par analyse de consommation simple (SPA), et équivalence électromagnétique (EM). 7. Dispositif de cryptage sur courbe elliptique (ECC) sécurisé selon l'une quelconque des revendications 1 à 6, comprenant, en outre, une mémoire afin de mémoriser des résultats intermédiaires des opérations scalaires sur courbe elliptique. 8. Procédé de création d'un flux d'opération indépendante d'un code secret, le procédé comprenant : dans un dispositif de cryptage sur courbe elliptique (ECC), la réception d'un point elliptique et d'un scalaire secret qui comprend des bits de code secret ; l'initialisation d'une valeur Q au point elliptique qui ne comporte pas de valeur initiale à un point infini ; le traitement des bits de code secret du scalaire d'une manière séquentielle, dans lequel le traitement comporte le doublement de Q; l'exécution d'opérations sur courbe elliptique comprenant la soustraction et l'addition de point elliptique ; et l'exécution d'une soustraction de point elliptique par soustraction du point elliptique de la valeur Q. 9. Procédé selon la revendication 8, dans lequel les opérations sur courbe elliptique sont exécutées dans une configuration à boucle équilibrée. 10. Procédé selon la revendication 8 ou 9, comprenant, en outre : en réponse à la détermination du fait qu'une valeur de bit de poids faible (LSB) est 3033965 - 22 - égale à 1, la sortie de Q ; et en réponse à la détermination du fait que la valeur de bit de poids faible (LSB) n'est pas égale à 1, la sortie de Q-P. 11. Procédé selon la revendication 10, dans lequel le traitement des bits de code secret exclut le traitement d'un bit de poids faible (LSB) de code secret. 12. Procédé selon l'une quelconque des revendications 8 à 11, dans lequel le scalaire secret comprend une largeur de plage prédéterminée. 13. Procédé selon l'une quelconque des revendications 8 à 12, dans lequel la soustraction et l'addition de point elliptique utilisent des valeurs calculées préalablement afin de réduire le nombre de valeurs à calculer. 14. Procédé selon la revendication 13, comprenant, en outre, Pinitialisation de la valeur Q à la valeur calculée préalablement la plus grande. 15. Procédé selon l'une quelconque des revendications 8 à 14, comprenant, en outre, le traitement séquentiel des bits de largeur du scalaire secret. 16. Procédé selon l'une quelconque des revendications 8 à 15, comprenant, en outre : la génération d'une séquence qui ne comporte aucune opération factice et aucune opération qui implique une valeur initiale infinie. 17. Procédé selon l'une quelconque des revendications 8 à 16, dans lequel les opérations sur courbe elliptique comprennent des multiplications de point de courbe. 18. Procédé selon l'une quelconque des revendications 8 à 17, dans lequel un bit de poids fort (MSB) calculé préalablement est positionné à 0. 19. Procédé selon l'une quelconque des revendications 8 à 18, comprenant, en outre, l'application du procédé à un procédé par peigne basé sur scalaire fixe de telle sorte que la réutilisation de valeurs calculées préalablement dans la configuration à boucle équilibrée réduit un nombre de valeurs calculées préalablement. 20. Procédé selon l'une quelconque des revendications 8 à 19, comprenant, en outre, l'exécution d'une opération de vérification de point qui comprend la détection d'erreurs de calcul en déterminant si un résultat est situé sur une courbe elliptique.