Brevet FR3055444A1 — publié le 20180302

DISPOSITIFS ET PROCEDES DE COMMANDE DE DISPOSITIFS DE CRYPTAGE SUR COURBE ELLIPTIQUE SECURISES La présente invention se rapporte à des dispositifs sécurisés et plus particulièrement, à des dispositifs et procédés destinés à de dispositifs de cryptage sur courbe elliptique (ECC) sécurisés conçus en tant que contre-mesure à des attaques de canal latéral destinées à découvrir des informations secrètes à partir d'opérations mises en oeuvre par les circuits électriques. Dans l'arrière-plan technologique de l'invention, les mises en oeuvre de dispositif de cryptage sur courbe elliptique (ECC) remplacent de plus en plus les dispositifs RSA destinés à une utilisation dans des principes cryptographiques asymétriques, tels que l'échange ou l'authentification par clé de Diffie-Hellman, du fait de l'augmentation exponentielle des spécifications de longueur de clé pour le dispositif RSA qui rendent les améliorations sur la sécurité relativement difficiles par comparaison aux dispositifs ECC, pour lesquels les améliorations sur la sécurité nécessitent seulement une augmentation linéaire de la longueur de clé. A titre d'exemple, le niveau de sécurité d'un dispositif symétrique sur 128 bits, pour lequel le dispositif RSA nécessite une longueur de clé de 3072 bits, peut être converti en un dispositif symétrique sur 256 bits en augmentant la longueur de clé RSA de cinq fois à 15360 bits. Par comparaison, lâ longueur de clé requise afin d'améliorer un dispositif symétrique ECC sur 128 bits équivalent en un dispositif symétrique sur 256 bits augmente linéairement, c'est-à-dire, de deux fois, de 256283 bits à 512-571 bits. En résultat, l'augmentation du niveau de sécurité d'un produit RSA diminue de manière drastique les performances de dispositif en termes de temps, consommation d'énergie et de coût par comparaison à un circuit sécurisé ECC. Comme d'autres dispositifs de cryptage, les dispositifs ECC utilisent ltes algorithmes non spécifiques standards afin de crypter des données confidentielles à protéger contre le vol d'informations secrètes. Toutefois, la plupart des procédés de cryptage n'empêchent pas des ennemis déterminés de mettre à jour le dispositif de cryptage et de découvrir, la matière codée critique à mesure que les données 3055444 - 2 - sont traitées par le circuit de cryptage au cours du cryptage et du décryptage de données confidentielles. Les fragilités bien connues sur les dispositifs de cryptage comportent les fuites d'informations sous la forme d'informations de séquence, de consommation d'énergie et de rayonnement électromagnétique pouvant être 5 détectées au cours des calculs et soumises à une analyse, même sans intrusion physique. De plus, les informations peuvent produire des fuites lorsque le dispositif de cryptage est soumis à une injection d'erreur. Les attaques de canal latéral sont un premier type d'attaque fréquemment utilisé de manière à extraire des clés de cryptage, mots de passe, et autres données 10 cryptographiques d'un dispositif sécurisé (par exemple, des terminaux de paiement, cartes à puce, modules de sécurité, téléphones mobiles) en tirant avantage du fait que des propriétés de circuit sont étroitement associées à la mise en oeuvre physique du moteur de cryptage et aux opérations mises en oeuvre sur les données traitées par l'algorithme de cryptage particulier et reflètent ces 15 dernières. Par exemple, dans une attaque de canal latéral différentielle, un ennemi spécialisé peut réaliser de nombreux appels à une fonction sur le dispositif sécurisé que l'ennemi essaye de percer en mettant en oeuvre une analyse statistique sur des propriétés de circuit caractéristiques, comportant les profils d'émission électromagnétiques de transitions de courant et de tension, des profils de 20 consommation d'énergie et des profils de séquence des signaux produits. Puisque les différentes instructions présentent des profils de consommation d'énergie différents, après une surveillance d'un circuit en cours d'investigation, une collecte de données suffisantes, et un filtrage de bruit par des moyens statistiques, des détails du comportement de dispositif peuvent être devinés à partir des 25 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 dispositif sécurisé provoque le passage de courant à travers un circuit logique donné à partir duquel une connaissance concernant le circuit et les données traitées par des 30 circuits logiques sont dévoilés de manière involontaire à l'environnement du circuit. Sur un circuit avec un nombre de portes fixe et un emplacement fixe, les 3055444 3- données et courants associés à ces données se déplacent à travers des portes logiques, ce qui rend les opérations logiques à l'intérieur du circuit sujettes à être sondées afin de tracer et d'extraire des informations secrètes, rendant ainsi vulnérable la sécurité du dispositif de cryptage. 5 Il existe plusieurs approches visant à protéger la sécurité d'un circuit en augmentant le niveau de difficulté pour la mise en oeuvre de ce type d'attaque non intrusive et à empêcher la fuite d'informations compromettantes observables à partir d'un circuit vers son environnement. Une de telles approches repose sur la modification de l'algorithme de cryptage d'une manière à mettre en oeuvre des 10 opérations associées à la sécurité à la fois sur les bits réels d'une clé secrète de même que sur l'inverse de ceux-ci. D'autres types d'attaque d'un circuit comportent le procédé d'injection d'erreur. En utilisant ce procédé, en préparant la mise en oeuvre d'une attaque, un ennemi manipule un circuit qui normalement subit des opérations aléatoires et 15 force le circuit à s'écarter des opérations cryptographiques normales afin de le faire commuter dans un mode de fonctionnement plus déterministe. Par exemple, en augmentant dans ce but une tension appliquée sur le circuit, l'ennemi peut faire basculer une certaine réponse de circuit qui, en effet, réduit le caractère aléatoire d'opérations, permettant ainsi à l'ennemi d'obtenir une commande de 20 comportement de circuit plus prévisible et facilitant la réussite de la mise en oeuvre d'une attaque. Il existe un besoin pour des outils permettant à des concepteurs de dispositifs sécurisés de surmonter les limitations décrites précédemment tout en profitant des bénéfices que les dispositifs ECC assurent sur des circuits sécurisés. 25 Une brève description des dessins va maintenant être donnée ci-dessous. Il va ê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 sont destinées à être représentatives et non limitatives. Bien que l'invention soit généralement décrite dans le contexte de ces modes de réalisation, il doit être 30 compris que ceci n'est pas destiné à limiter la portée de l'invention à ces modes de réalisation particuliers. 3055444 La figure 1 est un algorithme qui représente un procédé utilisant un dispositif ECC existant qui utilise un algorithme de doublement et d'addition de scalaire comportant des opérations inopérantes en tant que contre-mesure à l'analyse de consommation simple. 5 La figure 2 est un tracé de consommation classique pour un exemple de séquence d'opérations de doublement et d'addition. Les figures 3A et 3B représentent la détection de bits de clé secrète à partir d'exemples de séquence d'opérations de doublement et d'addition elliptique sans contre-mesure 10 La figure 4A représente un exemple de séquence d'opérations de doublement et toujours d'addition elliptique en tant que contre-mesure sans initialisation au point à l'infini. La figure 4B représente une séquence d'opérations de doublement et d'addition elliptique existante en tant que contre-mesure avec initialisation au 15 point à l'infini. La figure 5A est un algorithme qui représente un procédé utilisant un algorithme de doublement et d'addition de scalaire qui résiste à une analyse de consommation simple et à une injection d'erreur de sécurité de calcul, selon différents modes de réalisation de l'invention. 20 Les figures 5B et 5C représentent des exemples d'algorithmes de procédés destinés à assurer une certaine résistance à l'analyse de consommation simple et aux injections d'erreurs de sécurité de calcul en évaluant les bits faibles LSB à l'intérieur d'une boucle, selon différents modes de réalisation de l'invention. La figure 6 est un algorithme qui représente un procédé de technique 25 antérieure utilisant un algorithme de peigne à base fixe existant qui comporte un calcul préalable. La figure 7 est un algorithme qui représente un procédé utilisant un exemple d'algorithme de peigne à base fixe, selon différents modes de réalisation de l'invention. 30 La figure 8 représente une séquence d'opérations de doublement et d'addition de scalaire réalisées par l'un des procédés des figures 5A à 5C et 7. 3055444 -5 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. Les modes de réalisation préférés vont maintenant être décrits. Dans la description suivante, pour les besoins de l'explication, des détails 5 spécifiques sont mis en évidence dans le but d'assurer la compréhension de l'invention. Toutefois, il va être évident pour un 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 technique que des modes de réalisation de la présente invention, décrits ici, peuvent être mis en oeuvre suivant une variété de manières et en 10 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 dans lesquels l'invention peut être appliquée. Par conséquent, les modes de réalisation décrits ci-dessous sont représentatifs de 15 modes de réalisation spécifiques de l'invention et sont destinés à éviter d'obscurcir l'invention. Une référence, dans la spécification, à "un premier mode de réalisation" ou "un mode de réalisation" signifie qu'une particularité, structure, caractéristique, ou fonction spécifique décrite en relation avec le mode de réalisation est contenue. 20 dans au moins un mode de réalisation de l'invention. L'utilisation de la phrase "dans un premier mode de réalisation", "dans un mode de réalisation," ou analogue à 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é 25 sur les figures ne sont pas limitées à des liaisdhs qui sont directement affectées. Au lieu de cela, des liaisons représentées sur les figures entre des composants ou étapes de procédé peuvent être modifiées ou changées d'une autre manière par l'ajout à celles-ci de composants ou d'étapes de procédé intermédiaires, sans s'écarter des enseignements de la présente invention. 30 Dans ce document, les expressions "point à l'infini," "valeur initiale positionnée à l'infini," et "point à l'infini" sont utilisés de manière interchangeable. 3055444 La figure 1 est un algorithme qui représente un procédé utilisant un dispositif ECC existant qui utilise un algorithme de doublement et d'addition de scalaire comportant des opérations inopérantes en tant que contre-mesure à l'analyse de consommation simple. En général, une courbe elliptique est un 5 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 une addition scalaire peuvent être utilisées de manière à crypter des données. Alors que les opérations de multiplication, d'addition et de doublement sont analogues à celles appliquées à des nombres, deux points situés sur une courbe elliptique sont additionnés à 10 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 le procédé d'addition est itératif. Un point est multiplié par un scalaire de manière classique en additionnant le point un certain nombre de fois à lui-même de manière à conduire à un autre point sur la courbe sur la base d'une formule, de telle sorte que 15 la multiplication par un scalaire est égale à une addition. Si le point d'origine et le nombre de fois que l'addition doit être mise en oeuvre 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 l'addition a été mise en oeuvre pour arriver au point résultant. C'est cet 20 effet qui rend la multiplication de point attractive pour une utilisation en cryptographie. Le procédé montré sur la figure 1, aussi connu en tant que "toujours par doublement et addition", est, de manière classique, mis en oeuvre comme un algorithme scalaire dans le dispositif ECC. Le processus 100 commence à l'étape 25 102 lorsqu'un point elliptique et un scalaire sont reçus par le dispositif ECC pour le traitement. A l'étape 104, Q est initialisé préalablement au point à l'infini (c'est-à-dire, un élément neutre pour courbes elliptiques), à l'étape 106 les bits de clé du scalaire sont traités de manière séquentielle. 30 Le traitement des bits secrets comporte toujours le doublement de Q à l'étape 108, et si la valeur analysée du bit traité est égale à 1, alors une addition de 3055444 7 point elliptique est mise en oeuvre par addition, à l'étape 112, du point elliptique à Q. Au contraire, si le bit considéré n'est pas égal à 1 alors, à l'étape 114, une opération inopérante est mise en oeuvre de manière classique, sans sauvegarder le 5 résultat ou le sauvegardant à un emplacement différent. L'opération inopérante insérée par ce procédé force l'exécution d'une addition elliptique dans cette étape même si le résultat de cette addition ne constitue pas réellement une contre-mesure d'une attaque par analyse SPA. Après que tous les bits de clé secrète ont été traités à l'étape 116, à l'étape 10 118, Q est délivré. Il existe un certain nombre d'algorithmes scalaires qui peuvent mettre en oeuvre des opérations similaires. Par exemple, un scalaire peut être utilisé pour conduire à une signature numérique et un résultat peut être vérifié en utilisant une valeur de clé publique. De manière avantageuse, puisque la valeur de clé publique 15 ne peut pas être utilisée pour extraire la valeur privée, ceci présente une difficulté pour résoudre le problème, conduisant, ainsi, en soi, à la cryptographie de clé publique pour signatures numériques. Toutefois, comme pour la plupart des autres procédés, cette approche présente des faiblesses importantes sur l'algorithme scalaire en termes de sécurité puisque ces types d'opération peuvent être 20 facilement observés conduisant à des fuites d'informations qui peuvent être détectées par l'intermédiaire d'une analyse de canal latéral, comportant l'analyse de séquence, l'analyse SPA, ou l'équivalence électromagnétique conduisant à la découverte de la longueur secrète, qui peut être exploitée, par exemple, à travers des réseaux. 25 Comme exemple, dans une mise en oeuvre pratique le registre Q est initialisé au point à l'infini (c'est-à-dire, à zéro), c'est-à-dire, jusqu'à ce qu'un bit non nul soit 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 30 données se produit, mais aucun calcul n'est mis en oeuvre. En résultat, la première opération d'addition de point elliptique qui est précédée par une opération de 3055444 doublement de point elliptique (c'est-à-dire, le point à l'infini) peut être détectée comme un profil de séquence ou profil d'amplitude relativement plus court et différent. Il doit être noté que puisqu'une fois que le bit secret traité est égal à 1 une addition elliptique est mise en oeuvre, mais aucune opération n'est mise en 5 oeuvre lorsque la valeur du bit secret est égale à 0 et le résultat reste inchangé. De plus, en l'absence de l'étape 114, un ennemi spécialisé peut différencier l'addition elliptique de l'opération de doublement elliptique, par exemple, en utilisant l'analyse de consommation ou l'équivalence électromagnétique dans le but d'exploiter les profils de séquence relativement plus courts et différents, les 10 amplitudes inférieures, etc., créés par les deux différentes opérations afin d'extraire partiellement ou totalement le secret de courbe elliptique. La figure 2 montre une trace de puissance classique 200 pour un exemple de séquence d'opérations de doublement et d'addition. La trace de puissance 200 représente les différences sur les profils de consommation d'énergie pour une opération de 15 doublement de point elliptique 260 et une opération d'addition de point elliptique 270. En observant les profils caractéristiques pour une séquence donnée de clés secrètes traitées par des opérations de doublement et d'addition elliptique, l'ennemi peut trouver relativement facilement les clés secrètes. Les figures 3A et 3B représentent la détection de bits de clé secrète à partir 20 d'exemples de séquence d'opérations de doublement et d'addition elliptique sans contre-mesure. Dans les séquences 300 et 350, la lettre "D" 302 indique un doublement de point elliptique, alors que la lettre "A" 304 indique une addition de point elliptique. Puisque les additions sont mises en oeuvre uniquement lorsque le bit de clé secrète est égal à 1, la détection d'un profil pour deux D consécutifs 304, 25 c'est-à-dire, les opérations de doublement elliptique, indiquent un bit nul, alors, qu'un D 304 suivi par un A 302 indique un 1 pour le bit secret. En résultat, la séquence de bit de clé 110110 peut être obtenue à partir de la séquence 300. De manière similaire, le profil de la séquence de secret 350 laisse fuir des informations qui permettent à l'ennemi de déduire et d'exposer la séquence de bit 30 de clé 010110, compromettant, ainsi, la sécurité de dispositif. La figure 4A représente un exemple de séquence d'opérations de 3055444 doublement et toujours d'addition elliptique en tant que contre-mesure sans initialisation au point à l'infini. Dans l'algorithme de doublement et toujours d'addition, des opérations inopérantes désignées par A' 410 sont insérées dans la séquence 400 dans le but d'obtenir un flux d'opérations constant. Toutefois, si un 5 registre est initialisé au point à l'infini, il est possible de le détecter et ainsi, de déterminer la longueur de la clé secrète, par exemple, comme le nombre de bits forts MSB positionnés à zéro. Contrairement à la séquence de la figure 4A, la séquence d'opérations de doublement et toujours d'addition elliptique à la figure 4B n'utilise pas une initialisation au point à l'infini. Ceci peut être réalisé en 10 initialisant un registre à un point de base, de telle sorte qu'il se comporte comme si le bit fort MSB est positionné à 1 (c'est-à-dire, une fuite de bit à 1). Par conséquent, les opérations de doublement et toujours d'addition sur la figure 4B servent de contre-mesure en empêchant la détection du point à l'infini. Malheureusement, les opérations inopérantes A' 410 peuvent toujours être 15 détectées, par exemple, par l'intermédiaire d'une attaque par injection d'erreur de sécurité de calcul, qui implique l'insertion d'une erreur dans le dispositif au cours du calcul de A 304 ou de A' 410 et l'observation du fait que le résultat contient une erreur. Si, en réponse à l'attaque par injection d'erreur, le résultat reste inchangé, c'est-à-dire, que l'erreur n'altère pas le résultat, ceci indique que 20 l'opération était une opération inopérante. En résultat, un ennemi peut identifier et éliminer les opérations inopérantes dans une séquence d'opérations de doublement et toujours d'addition elliptique dans le but de récupérer des bits de la clé secrète. Globalement, il doit être désirable d'obtenir des dispositifs et procédés qui assurent la protection contre les attaques par analyse de séquence, analyse de 25 consommation simple (SPA), analyse électromagnétique, et par injection d'erreur pour des opérations scalaires elliptiques afin de rendre les secrets à protéger indépendants des flux. La figure 5A est un algorithme qui représente un procédé utilisant un algorithme de doublement et d'addition de scalaire qui résiste à une analyse de 30 consommation simple et à une injection d'erreur de calcul, selon différents modes de réalisation de l'invention. Le procédé 500 commence à l'étape 502 lorsqu'un 3055444 -10- point elliptique et un scalaire sont reçus par un dispositif ECC. A l'étape 504, Q est initialisé au point de base. L'initialisation à un point non neutre évite l'exécution d'opérations du type 2x0 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 5 exploitent la possibilité de détection de bits nuls sur la base d'une analyse de profil de séquence et analogue. De plus, la longueur de la clé secrète reste protégée d'outils d'analyse cryptographique mathématiques, tels que les attaques de réseau, qui cherchent à extraire une clé secrète à partir d'informations partielles (par exemple, quelques bits) qui sont inférieures à la valeur scalaire du bit. 10 A l'étape 506 les bits de clé du scalaire sont traités séquentiellement, par exemple, de manière itérative dans une configuration en boucle exclusive des bits faibles LSB secrets de manière à empêcher le décomptage de la boucle jusqu'à zéro. Le traitement des bits secrets 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 15 soustraction de point elliptique par soustraction du point elliptique de Q, à l'étape 512 et sinon, à l'étape 514, la mise en oeuvre d'une addition de point elliptique en additionnant le point elliptique à Q. Il doit être noté que ceci est mis en oeuvre sans nécessiter l'injection d'opérations inopérantes qui sont envisagées en tant que contre-mesure à l'analyse de canal non invasive telle que les attaques par analyse 20 SPA, puisque les opérations inopérantes restent détectables, par exemple, par des attaques par injection d'erreur (erreur de sécurité de calcul) qui injectent une erreur dans une opération afin de détecter une opération inopérante sur la base de ses caractéristiques de non altération du résultat d'une autre manière. Dans un mode de réalisation, la soustraction et l'addition de point elliptique 25 sont mises en oeuvre dans une configuration en boucle équilibrée. Avantageusement, puisque les deux opérations d'addition et de soustraction de point elliptique ne peuvent être pratiquement distinguées électriquement l'une de l'autre en fonction de la séquence et de la consommation d'énergie, les attaques de circuit basées sur la détection de signatures électriques par l'intermédiaire de 30 l'analyse de consommation ou de l'équivalence électromagnétique sont rendues plus difficiles, augmentant ainsi la résistance du circuit contre les attaques de 3055444 canal latéral. A l'étape 514, une fois que les bits secrets ont été traités, une opération de vérification de point contrôle les erreurs de calcul, par exemple, en déterminant si le résultat est évidemment situé sur la courbe en tant qu'indication du fait 5 qu'aucune erreur ne s'est produite. La vérification de point est recommandée contre une attaque par injection d'erreur. De plus, à l'extérieur de la boucle, la différence entre Q et le point elliptique est calculée non nécessairement pour obtenir des résultats précis, mais pour protéger les bits faibles LSB secrets d'une attaque de séquence, par analyse SPA et par équivalence électromagnétique. 10 Finalement, une fois que les bits de clé secrète ont été traités, il est déterminé si le bit faible LSB est égal à 1, à l'étape 518. Si c'est le cas, Q est délivré à l'étape 520 ; sinon, le résultat de Q-P est délivré à l'étape 522. Toutefois, la prévention d'un décomptage à zéro de la boucle en excluant les bits faibles LSB secrets lors du traitement itératif des bits de clé du scalaire dans 15 une configuration en boucle, de telle sorte que le bits faibles LSB de scalaire, k0, sont évalués à l'extérieur de la boucle peut créer un risque que les informations de bits faibles LSB peuvent fuir vers le monde extérieur en fonction de la mise en oeuvre spécifique du procédé sur la figure 5A. Alors que les risques de sécurité associés à une telle fuite mineure sont, en général, relativement faibles, la 20 recherche sur l'analyse cryptographique récente a montré qu'un simple bit de fuite est suffisant pour rompre un algorithme ECDSA de 160 bits. Bien que ceci n'implique pas nécessairement que chaque clé peut être découverte en utilisant éventuellement le même procédé, des ennemis motivés peuvent craquer certaines clés même plus importantes, par exemple, de 256 bits. 25 En outre, au cours de l'évaluation des bits faibles LSB, des valeurs calculées à la fois de Q et (Q-P) sont mémorisées à deux emplacements de mémoire distincts, par exemple, chacun à une position de mémoire à une adresse donnée à l'intérieur d'un registre spécifique, qui dépend de l'architecture de la puce contenant le registre. Par conséquent, dans le cas où l'un ou l'autre des deux 30 emplacements de mémoire est compromis, un ennemi ayant connaissance de la validité de la valeur du résultat retourné peut découvrir si k0=0 ou ko=l . De 3055444 -12- manière similaire, en examinant un profil de consommation d'énergie, des ennemis peuvent détecter la présence d'une construction "si-sinon" et en conclure que ko=0 ou ko=1. Puisque des ennemis évolués peuvent tirer profit d'une fuite de canal latéral 5 spécifique pour exploiter une faiblesse potentielle sur le procédé montré à la figure 5A, il peut être désirable de créer des dispositifs et procédés qui améliorent la protection en éliminant la possibilité de détection potentielle (par exemple, par l'intermédiaire d'une analyse de canal latéral) même due à une fuite d'informations sur un seul bit. 10 Les figures 5B et 5C représentent des exemples d'algorithmes de procédés destinés à assurer une certaine résistance à l'analyse de consommation simple et aux injections d'erreurs de sécurité de calcul en évaluant les bits faibles LSB à l'intérieur d'une boucle, selon différents modes de réalisation de l'invention. La figure 5B utilise k et P/2 comme point de base, alors que l'exemple sur la figure 15 5C utilise k/2 et P comme point de base. Il est noté que cette conception peut être étendue à l'utilisation de k et P comme point de base afin d'obtenir 21c13 comme résultat. Le procédé 530, sur la figure 5B, destiné à évaluer les bits faibles LSB à l'intérieur d'une boucle commence à l'étape 532 lorsque le point elliptique P/2 et 20 un scalaire sont entrés dans un dispositif ECC. A l'étape 534, Q est initialisé au point non neutre P/2, de nouveau, afin d'éviter la possibilité de détection des bits nuls sur la base de l'analyse de profil de séquence, etc., et de protéger la longueur de clé secrète des outils d'analyse cryptographique mathématiques. A l'étape 536 les bits de clé du scalaire sont traités séquentiellement de 25 manière itérative, par exemple, dans une configuration en boucle équilibrée qui comporte les bits faibles LSB secrets, de telle sorte que la boucle décompte des bits forts MSB vers les bits faibles LSB. Le traitement des bits secrets comprend toujours le doublement de Q à l'étape 538 et, si la valeur analysée du bit traité n'est pas égale à 1, à l'étape 540, alors une soustraction de point elliptique est 30 exécutée en soustrayant le point elliptique P/2 de Q, à l'étape 542 et, sinon, à l'étape 544, une addition de point elliptique est exécutée par addition de P/2 à Q. 3055444 - 13 - Comme avec la figure 5A, ceci est réalisé sans nécessiter l'introduction d'opérations inopérantes potentiellement détectables. A l'étape 546, une fois que tous les bits secrets ont été traités, une soustraction de point elliptique est de nouveau mise en oeuvre en soustrayant 5 préalablement le point elliptique P/2 de Q, à l'étape 548, Q est vérifié et, à l'étape 550, Q est délivré. La figure 5C est un algorithme qui représente un procédé utilisant un algorithme de doublement et d'addition de scalaire qui résiste à une analyse de consommation simple et à une injection d'erreur de calcul, selon différents modes 10 de réalisation de l'invention. Ce procédé peut être plus approprié lorsque P est délivré depuis l'extérieur et qu'on souhaite éviter l'exécution d'un long calcul de P/2. Le procédé 560 sur la figure 5C, destiné à évaluer les bits faibles LSB à l'intérieur d'une boucle, commence à l'étape 562 lorsqu'un point elliptique et un 15 scalaire sont reçus par un dispositif ECC. A l'étape 563, a est positionné à k/2 modulo n. A l'étape 564, Q est initialisé au point de base. A l'étape 566, les bits de clé du scalaire sont traités séquentiellement de manière itérative, par exemple, dans une configuration en boucle équilibrée qui 20 comporte les bits faibles LSB secrets, de telle sorte que la boucle décompte toujours jusqu'à zéro. Le traitement des bits secrets comprend toujours le doublement de Q à l'étape 568. Si, à l'étape 570, a, n'est pas égal à 1, alors, à l'étape 572, une soustraction de point elliptique est mise en oeuvre afin de soustraire le point elliptique de Q ; sinon, à l'étape 574, P est additionné à Q afin 25 de mettre en oeuvre une addition de point elliptique sans reposer sur des opérations inopérantes. A l'étape 576, une fois que tous les bits secrets ont été traités, une autre soustraction de point elliptique est mise en oeuvre afin de soustraire de nouveau le point elliptique P/2 de Q. 30 A l'étape 546 Q est vérifié préalablement, et finalement, Q est délivré, à l'étape 550. 3055444 -14- Une contrainte critique d'algorithmes cryptographiques est le compromis entre le coût de mise en oeuvre et les performances. Certains dispositifs cryptographiques existants utilisent la mémoire afin de mémoriser des résultats intermédiaires de manière à améliorer les performances en termes d'opérations 5 scalaires. Le prétraitement améliore les performances sur le doublement et l'addition lorsque la mémoire peut être utilisée afin de mémoriser et de réutiliser des points pour des calculs et opérations. Il va être apprécié par le spécialiste 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. 10 Aucun ordre particulier n'est impliqué par l'agencement de blocs à l'intérieur de l'algorithme ou dans la présente description. Il va, en outre, être apprécié que les exemples et modes de réalisation précédents sont des exemples et sont destinés à clarifier et assurer la compréhension et non la limitation de la portée de la présente invention. Il doit être considéré que l'ensemble des permutations, renforcements, 15 équivalents, combinaisons et améliorations sur ces derniers qui vont devenir évidents pour le spécialiste de la technique, à la lecture de la spécification et à l'étude des dessins, sont contenus dans la portée de la présente invention. Il est par conséquent considéré que les revendications comportent de telles modifications, permutations, et équivalents qui tombent dans le cadre réel et la portée de la 20 présente invention. La figure 6 est un algorithme qui représente un procédé de technique antérieure utilisant un algorithme de peigne à base fixe existant qui comporte un calcul préalable. Le procédé 600 commence à l'étape 602 lorsqu'un scalaire, un point 25 elliptique et une largeur de plage sont reçus par le dispositif ECC en vue du traitement. A l'étape 604, 2W points sont calculés préalablement et la ligne de largeur de scalaire est réarrangée à l'étape 606. A l'étape 608, Q est initialisé préalablement au point à l'infini, à l'étape 610, 30 les bits de clé du scalaire sont traités de manière séquentielle. Le traitement des bits secrets comporte le doublement de Q, à l'étape 612. 3055444 - 15 - A l'étape 614, les valeurs calculées préalablement correctes sont additionnées en exécutant une addition de point elliptique préalablement, finalement, à l'étape 616, le point elliptique est délivré. Toutefois, le procédé 600 souffre de déficiences similaires en termes de 5 sécurité que le procédé de la figure 1, comportant l'initialisation de Q au point à l'infini, qui laisse fuir des informations concernant le fait qu'aucune opération n'est exécutée lorsque la valeur du bit secret est égale zéro et permet ainsi à des ennemis de trace en consommation les profils caractéristiques, etc.. Différents modes de réalisation de l'invention utilisent l'avantage de la 10 réutilisation de valeurs calculées préalablement dans différents scénarios afin de réduire le nombre de valeurs calculées préalablement requises. Ceci permet une réduction sur le coût de mise en oeuvre par comparaison à des procédés existants. Appliqués à des algorithmes scalaires qui utilisent des valeurs calculées préalablement, certains modes de réalisation de l'invention assurent une réduction 15 de la moitié environ du nombre des valeurs calculées préalablement sans provoquer de réduction notable des performances. La figure 7 est un algorithme qui représente un procédé utilisant un exemple d'algorithme de peigne à base fixe, selon différents modes de réalisation de l'invention. Le procédé 700 met en oeuvre certains des mêmes nouveaux principes sur un procédé de peigne à base fixe de 20 scalaire et des dérivés quelconque de manière à rendre le matériel résistant aux attaques de canal latéral. Le procédé 700 commence à l'étape 702 lorsqu'un scalaire, un point elliptique et une largeur de plage sont reçus par le dispositif ECC en vue du traitement. 25 A l'étape 704, 2W-1 points sont calculés préalablement et sauvegardés. 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 30 séquentielle, par exemple, quatre lignes de 64 bits de manière itérative dans une configuration en boucle inclusive ou exclusive des bits faibles I,SB secrets. 3055444 -16- Le traitement des bits secrets comporte le doublement de Q, à l'étape 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 elliptique, par exemple, dans une configuration en boucle équilibrée afin d'utiliser 5 chaque valeur calculée préalablement deux fois. 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 performances sur coût accru. 10 Finalement, à l'étape 716, le point elliptique est délivré. Il doit être compris que les bits forts MSB calculés préalablement du scalaire ne doivent pas être forcés à 1 au cours des calculs préalables. Le procédé 700 peut être mis en oeuvre aussi bien avec des bits forts MSB positionnés à 0, puisqu'il n'est pas nécessaire de réagir au problème de point à l'infini des procédés 15 existants qui essayent de masquer le lancement secret d'une opération de base de la détection. Puisque dans le procédé 700 le lancement reste caché, aucune fuite d'informations ne se produit, renforçant ainsi la résistance à l'attaque de canal latéral du dispositif. En outre, bien que cela ne soit pas montré de manière explicite, il va être apprécié par le spécialiste de la technique que des bits peuvent 20 complétés par des bits supplémentaires dans le but d'uniformiser les longueurs de chaîne lorsque cela est nécessaire. Il va être apprécié par le 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 à la fois. La figure 8 représente une séquence d'opérations de doublement et 25 d'addition de scalaire réalisée par l'un des procédés des figures 5A à 5C 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. Des aspects du présent document de brevet se rapportent à des dispositifs sécurisés pour dispositif ECC. Le dispositif 900 peut comprendre une pluralité de 30 dispositifs d'entrée 910, des dispositifs de sortie 908, une unité de traitement 902, un port de communication 914, une mémoire 906 et une interface de réseau 912, 3055444 - 17 - une source alimentation en énergie (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 un microcontrôleur cryptographique sécurisé ; des bus de niveau local et système ; des modules de fonction, comportant un noyau d'unité centrale de 5 traitement, une unité de commande de mémoire universelle, des sources de clé, une unité de traitement cryptographique ; un accélérateur de cryptage de clé symétrique (par exemple, un AES) ; et un accélérateur de cryptage de code asymétrique (par exemple, pour RSA et ECC). Des unités de commande peuvent être contenues dans le noyau d'unité CPU et/ou l'unité de commande de mémoire 10 universelle de l'unité de traitement 902 afin de copier ou de mémoriser temporairement une clé secrète, 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 des sources de clé afin de transférer des instructions de commande de clé et des clés secrètes par l'intermédiaire de la liaison sécurisée 15 plutôt que par un bus. Pour les besoins de la présente description, le dispositif sécurisé 900 peut, en outre, comporter tout instrument ou agrégat d'instruments pouvant servir à compter, calculer, déterminer, classer, traiter, émettre, recevoir, extraire, initier, acheminer, commuter, mémoriser, afficher, communiquer, manifester, détecter, 20 enregistrer, reproduire, manipuler ou utiliser toute forme d'information, intelligence, ou données pour des besoins commerciaux, scientifiques, de commande ou autres. Par exemple, un dispositif sécurisé peut être intégré dans un ordinateur, un dispositif mobile (par exemple, un assistant numérique personnel ou un téléphone portable), un serveur (par exemple, un serveur lame ou un serveur 25 en rack), un dispositif de mémorisation de réseau ou tout autre dispositif approprié et ses taille, forme, performances et fonctionnalités peuvent varier. Le dispositif sécurisé 900 peut comporter une mémoire à accès aléatoire, une ou plusieurs ressources de traitement, (par exemple, une unité centrale de traitement) ou un circuit logique de commande logiciel ou matériel, une mémoire ROM, et/ou 30 d'autres types de mémoire non volatile. Les composants supplémentaires du dispositif sécurisé 900 peuvent comporter un ou plusieurs bus pouvant servir à 3055444 -18- transmettre des communications entre les différents composants matériels. Il doit être compris que les fonctionnalités montrées pour le dispositif 900 peuvent servir à supporter différents modes de réalisation d'un dispositif sécurisé bien qu'il doive être compris que le dispositif sécurisé 900 peut être configuré 5 différemment et comporter d'autres composants qui mettent en oeuvre les modes de réalisation calculant des opérations sur courbe elliptique (par exemple, en utilisant une courbe d'une longueur de n-bit) destinées à être utilisées pour les signatures numériques et d'autres protocoles permettant d'exécuter les calculs dans un contexte de sécurité (par exemple, algorithme de signature numérique sur 10 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 sur un ou plusieurs supports permanents pouvant être lus par ordinateur avec des instructions pour une ou plusieurs unités de traitement 902 destinées à assurer la 15 mise en oeuvre des étapes. Les supports permanents 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 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 20 réseaux programmables, des circuits de traitement de signal numérique (par exemple, des machines d'état configurées afin de mettre en oeuvre directement des opérations scalaires elliptiques) et analogue. Par conséquent, le terme "moyen" dans l'une quelconque des revendications est destiné à englober à la fois des mises en oeuvre logicielles et matérielles. De manière similaire, le terme "support ou 25 supports pouvant être lus par ordinateur" tel qu'utilisé ici comprend un logiciel et/ou matériel dans lesquels un programme d'instructions est intégré ou une association des deux. 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 qui 30 pourraient être nécessaires à un spécialiste de la technique pour écrire un code informatique (c'est-à-dire, un logiciel) et/ou fabriquer des circuits (c'est-à-dire, du 3055444 -19- matériel) afin de mettre en oeuvre le traitement requis. Il va être évident pour un spécialiste de la technique qu'aucun dispositif de sécurité particulier, protocole, ou langage de programmation n'est critique pour la mise en oeuvre de la présente invention. Il va être évident pour un spécialiste de la technique qu'un certain 5 nombre des éléments décrits précédemment peuvent être séparés physiquement et/ou fonctionnellement en sous-modules ou associés entre eux. Il va être apprécié par le spécialiste de la technique que les exemples et modes de réalisation précédents sont donnés à titre d'exemple et ne limitent pas la portée de la présente invention. Il doit être considéré que l'ensemble des 10 permutations, renforcements, équivalents, combinaisons et améliorations à ces derniers, qui sont évidents pour le spécialiste de la technique à la lecture de la spécification et à l'étude des dessins, sont contenus dans le cadre réel et la portée de la présente invention. 3055444 Références numériques et légendes des figures Figure 1 (Technique Antérieure) 102 Réception des points elliptiques et scalaires 5 104 Initialisation de Q au point à l'infini 106 Début de traitement de tous les bits de clé 108 Doublement de Q 110 Bit considéré égal à 1 ? Oui // Non 112 Addition point elliptique et Q 10 114 Exécution d'une opération inopérante 116 Arrêt de traitement de bits de clé 118 Sortie de Q Figure 2 (Technique Antérieure) 15 Figure 3A, 3B (Technique Antérieure) Bits de clé détectés : Figure 4A (Technique Antérieure) Avec point à l'infini 20 Bits de clé détectés : Figure 4B (Technique Antérieure) Sans point à l'infini Bits de clé détectés : 25 Figure 5A 502 Réception des points elliptiques et scalaires 504 Initialisation de _Q au point non à l'infini 506 Début de traitement des bits de clé sans bits faibles LSB 30 508 Doublement de Q 510 Bit considéré égal à 1 ? Oui // Non 3055444 512 Soustraction point elliptique de Q 514 Addition point elliptique et Q 516 Vérification et calcul de Q-P 518 ko=1 Oui // Non 5 520 Sortie de Q 522 Sortie résultat de Q-P Figure 5B 532 Réception de P/2 et scalaire 10 534 Initialisation de Q à P/2 536 Début de traitement des bits de clé comportant les bits faibles LSB 538 Doublement de Q 540 Bit considéré égal à 1 ? Oui // Non 542 Soustraction P/2 de Q 15 544 Addition de P/2 et Q 546 Soustraction P/2 de Q 548 Vérification de Q 550 Sortie de Q 20 Figure 5C 562 Réception des points elliptiques et scalaires 563 Définition a = k/2 modulo n 564 Initialisation de Q à un point non à l'infini 566 Début de traitement des bits de clé comportant les bits faibles LSB 25 568 Doublement de Q 570 ai = 1 ? Non // Oui 572 Soustraction point elliptique de Q 574 Addition point elliptique et Q 576 Soustraction point elliptique de Q 30 578 Vérification de Q 580 Sortie de Q 3055444 Figure 6 602 Réception largeur de plage, scalaire et point elliptique 604 Pré-calcul 2w points 5 606 Réagencement scalaire en ligne "transversale" 608 Initialisation de Q au point à l'infini 610 Début de traitement de tous les bits de clé 612. Doublement de Q 614 Addition valeur pré-calculée correcte 10 616 Sortie de Q Figure 7 702 Réception largeur de plage, scalaire et point elliptique 704 Pré-calcul 2W-1 points 15 706 Réagencement scalaire en ligne transversale 708 Initialisation de Q à la plus grande valeur pré-calculée 710 Début traitement de l'ensemble des bits de largeur 712 Doublement de Q 714 Addition ou soustraction valeur pré-calculée correcte 20 716 Sortie de Q Figure 9 906 Mémoire 904 Dispositif de mémorisation 25 902 Unité de traitement 914 Port de communication 908 Dispositif de sortie 910 Dispositif d'entrée 912 Interface de réseau 30 REVENDICATIONS1. Dispositif de cryptage sur courbe elliptique (ECC) sécurisé destiné à exécuter des opérations scalaires elliptiques, le dispositif comprenant : un microcontrôleur sécurisé comportant un circuit de cryptographie, le circuit de cryptographie étant configuré de manière à mettre en application des contre-mesures tout en empêchant la fuite scalaire secret ; une mémoire destinée à mémoriser un scalaire secret qui comprend des bits de clé secrète ; et une unité de traitement destinée à exécuter des opérations scalaires elliptiques, l'unité de traitement comprenant des instructions destinées à assurer : la réception d'un point elliptique et du scalaire secret ; l'initialisation d'une valeur Q au point elliptique qui ne comporte pas une valeur initiale à un point à l'infini ; le traitement des bits de clé secrète du scalaire secret d'une manière séquentielle, dans lequel le traitement comporte le doublement de Q ; l'exécution d'opérations elliptiques comprenant la soustraction et l'addition de point elliptique ; et l'exécution d'une soustraction de point elliptique en soustrayant au moins une fraction du point elliptique de la valeur Q. 2. Dispositif ECC sécurisé selon la revendication 1, comprenant, en outre, une machine d'état qui exécute une ou plusieurs des opérations scalaires 25 elliptiques. 3. Dispositif ECC sécurisé selon la revendication 1 ou 2, comprenant, en outre, un registre, le registre étant initialisé à un point autre qu'un point à l'infini. 4. Dispositif ECC sécurisé selon l'une quelconque des revendications 30 1 à 3, comprenant, en outre, des bits forts MSB secrets qui sont placés à 0. 5. Dispositif ECC sécurisé selon l'une quelconque des revendications 3055444 -21 - 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 par injection d'erreur: 6. Dispositif ECC sécurisé selon l'une quelconque des revendications 5 1 à 5, dans lequel l'unité de traitement détermine la différence entre la valeur Q et le point elliptique à l'extérieur d'une configuration en boucle équilibrée afin de protéger des bits faibles LSB au moins de l'une d'une attaque de séquence, par analyse de consommation simple (SPA), et électromagnétique équivalente. 7. Dispositif ECC sécurisé selon l'une quelconque des revendications 10 1 à 6, comprenant, en outre, de la mémoire afin de mémoriser des résultats intermédiaires des opérations scalaires elliptiques. 8. Procédé destiné à créer un flux d'opération indépendant de clé secrète, le procédé comprenant : dans un dispositif de cryptage sur courbe elliptique (ECC), la réception d'un 15 point elliptique et d'un scalaire secret qui comprend des bits de clé secrète ; l'initialisation d'une valeur Q au point elliptique qui ne comporte pas une valeur initiale à un point à l'infini ; le traitement des bits de clé secrète du scalaire d'une manière séquentielle, dans lequel le traitement comporte le doublement de Q ; 20 l'exécution d'opérations elliptiques comprenant la soustraction et l'addition de point elliptique ; et l'exécution d'une soustraction de point elliptique en soustrayant au moins une fraction du point elliptique de la valeur Q. 9. Procédé selon la revendication 8, dans lequel les opérations elliptiques sont exécutées dans une configuration en boucle équilibrée. 10. Procédé selon la revendication 8 ou 9, dans lequel la fraction est égale à 1/2. 11. Procédé selon la revendication 10, comprenant, en outre : la vérification de Q. 12. Procédé selon l'une quelconque des revendications 8 à Il, dans 3055444 - 22 - 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 utilise des valeurs calculées préalablement afin de réduire le nombre de valeurs à calculer. 5 14. Procédé selon la revendication 13, comprenant, en outre, l'initialisation de la valeur Q à la plus grande valeur calculée préalablement. 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. 10 16. Procédé selon l'une quelconque des revendications 8 à 15, comprenant, en outre : la production d'une séquence qui ne comporte pas d'opération inopérante et pas d'opération qui impliquent une valeur initiale infinie. 17. Procédé selon l'une quelconque des revendications 8 à 16, dans lequel les opérations elliptiques comprennent des multiplications de point de 15 courbe. 18. Procédé selon l'une quelconque des revendications 8 à 17, dans lequel des bits forts MSB calculés préalablement sont placés à O. 19. Procédé selon l'une quelconque des revendications 8 à 18, comprenant, en outre, l'application du procédé à un procédé de tri basé sur 20 scalaire fixe de telle sorte que la réutilisation des valeurs calculées préalablement dans la configuration en boucle équilibrée réduit le 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 25 comprend la détection d'erreurs de calcul en déterminant si un résultat est situé sur une courbe elliptique.