Brevet FR3069993A1 — publié le 20190208

DISPOSITIFS ET PROCEDES DE MASQUAGE D'OPERATIONS DE CHIFFREMENT RSA Dans son domaine technique, la présente invention se rapporte à des dispositifs et des procédés sécurisés destinés à exécuter un procédé cryptographique asymétrique, et plus particulièrement, à des dispositifs et des procédés qui préservent la confidentialité des données et l'authentification en assurant une contre-mesure contre des attaques sur des dispositifs qui utilisent des opérations de chiffrement de Rivest-Shamir-Adleman (RSA). Dans la technique antérieure, il est connu que la cryptographie à clé publique à chiffrement RSA forme un obstacle important pour des attaquants potentiels des données cryptées compte tenu de l'important travail de factorisation du produit de deux grands nombres premiers secrets. Comme toute autre forme de cryptographie, le chiffrement RSA n'est pas immune par rapport à des attaques ou accès non souhaités ou une inspection par des attaquants potentiels. Par conséquent, différents standards de sécurité informatique, tels que FIPS 140-2 utilisé, par exemple, pour des modules postaux ou PCI PTS utilisé, par exemple, pour des terminaux de paiement, nécessitent l'effacement des données confidentielles immédiatement, suite à la détection d'indice de tentative d'effraction avec un dispositif cryptographique matériel. En général, alors que pour certains types d'attaques, telles que des attaques de canal latéral, il existe des contre-mesures qui protègent un environnement sécurisé, il n'existe pas de solutions connues qui assurent un niveau satisfaisant de protection contre des attaques plus massives, telles que celles visant l'intrusion de mémoire soit par des moyens physiques soit des moyens logiciels intégrés. En particulier dans le domaine de la cryptographie à clé publique à chiffrement RSA, des mécanismes d'effacement basés sur logiciel courant ne peuvent pas reposer sur la conformité avec des standards de sécurité lorsqu'ils font face à de telles attaques invasives. La figure 1 représente des dispositif et procédé classiques de protection de données confidentielles contenues dans la mémoire. Le dispositif 100 comprend -2 - un dispositif d'accélération arithmétique modulaire (MAA) 102 qui, de manière classique, est un dispositif matériel similaire à un coprocesseur qui comporte ses propres ressources et constitue un support pour des calculs mathématiques. Le dispositif MAA 102 est souvent utilisé pour la cryptographie à clef publique, qui 5 est très exigeant en termes de puissance de traitement, en particulier, lorsque des mises en oeuvre logicielles ne sont pas suffisamment puissantes. Le dispositif MAA 102 comprend des registres et une mémoire 106, par exemple, une mémoire SRAM, qui reçoit des opérandes, exécute des calculs et délivre un résultat, par exemple, un message m. Comme cela est représenté sur la 10 figure 1, le dispositif MAA 102 est couplé à une mémoire à accès aléatoire sécurisée non volatile (mémoire NVSRAM) 110 qui, en fonctionnement, charge un secret 104 dans la mémoire 106 du dispositif MAA 102, de telle sorte que le dispositif MAA 102 peut calculer un message m à partir de ce dernier. Dans le cas d'une attaque sur le dispositif 100, une instruction d'effacement 15 logiciel 130 est délivrée, par exemple, par un dispositif de détection d'effraction et communiquée à la mémoire NVSRAM 110, de telle sorte qu'un secret quelconque présent dans la mémoire 114 peut être réinitialisé ou effacé afin d'empêcher un accès non autorisé à des données confidentielles. Toutefois, dans des conceptions existantes, une telle mémoire 106 du dispositif d'accélération MAA 102 d'un 20 dispositif 100, ne peut pas être effacée d'une façon efficace, du fait que, par conception, il n'existe pas de mécanisme ou de particularité de sécurité, que ce soit sous une forme matérielle ou logicielle, qui peut reposer sur l'exécution d'un effacement suffisamment rapide, complet et garanti de la mémoire de dispositif MAA 106. En particulier, ceci est dû à la taille de mémoire relativement 25 importante de la mémoire 106. En résultat, des calculs qui ont été exécutés et mémorisés à l'intérieur de la mémoire de dispositif MAA 106 et comprennent un type quelconque de secret, restent à l'intérieur de la mémoire de dispositif MAA 106 et laissent des informations confidentielles vulnérables lors d'un accès par des attaquants potentiels. A titre d'exemple, un attaquant qui peut arriver à délivrer une instruction de réinitialisation suffisamment rapide qui interrompt le mécanisme d'effacement -3 logiciel, par exemple, en interférant avec la séquence du gestionnaire d'interruption non masquable (NMI) de manière à empêcher l'exécution ou l'achèvement de l'interruption, peut obtenir l'accès au secret à protéger dans la mémoire de dispositif MAA 106. Par conséquent, une tentative quelconque de 5 mise en conformité avec des standards qui impliquent un effacement immédiat de la mémoire qui contient des données confidentielles peut ainsi être contrecarrée par une attaque réussie. Etant donné que la mémoire 106 ne peut pas être effacée à temps dans le cas d'une tentative de violation qui a été détectée, dans le but de se conformer à des 10 standards de sécurité et de certification applicables, il est, par conséquent, désirable de pouvoir disposer de dispositifs et de procédés qui permettent l'utilisation d'un dispositif MAA tout en assurant simultanément qu'aucune exposition indésirable de secrets contenus à l'intérieur se produise. Par conséquent, il existe un besoin pour des dispositifs et procédés qui 15 surmontent ces inconvénients et peuvent supporter différents types d'attaques physiques et logicielles. 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 vont être représentés sur les figures annexées. Ces figures doivent être 20 considérées comme représentatives et 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 prévu de limiter la portée de l'invention à ces modes de réalisation particuliers. La figure 1 représente des dispositif et procédé classiques de protection de 25 données confidentielles contenues dans la mémoire. Les figures 2A et 2B représentent des dispositifs de protection de données confidentielles contenues dans une mémoire destinés à empêcher des accès et manipulation de données non autorisés, selon différents modes de réalisation de la présente invention. 30 La figure 3 est un algorithme d'un procédé de protection de données confidentielles représentatif selon différents modes de réalisation de la présente - 4 - invention. Dans la description détaillée des modes de réalisation préférés suivante, pour des besoins d'explication, des détails spécifiques sont mis en évidence dans le but d'assurer la compréhension de l'invention. Toutefois, il va être évident pour 5 le spécialiste de la technique que l'invention peut être mise en oeuvre sans ces détails. En outre, il va être évident pour le spécialiste de la 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, telles que par un processus, un appareil, un système, un dispositif ou un procédé sur un support tangible pouvant être lu 10 par ordinateur. Des composants ou modules, montrés sur les schémas sont représentatifs d'exemples de modes de réalisation de l'invention et sont destinés à éviter d'obscurcir l'invention. Il doit aussi être compris, à travers cette description, que des composants peuvent être décrits comme des unités fonctionnelles distinctes 15 qui peuvent comprendre des unités secondaires, mais il va être évident pour les spécialistes de la technique que différents composants, ou des parties de ceux-ci, peuvent être divisés en composants distincts ou peuvent être intégrés ensemble, comprenant intégrés à l'intérieur d'un dispositif ou composant unique. Il doit être noté que des fonctions ou opérations décrites ici peuvent être mises en oeuvre sous 20 la forme de composants. Des composants peuvent être mis en oeuvre sous forme logicielle, matérielle ou d'une association des deux. En outre, des liaisons entre les composants ou dispositifs sur les figures ne sont pas destinées à être limitées à des liaisons directes. Au contraire, des données entre ces composants peuvent être modifiées, reformatées ou changées d'une autre 25 manière par des composants intermédiaires. De plus, des liaisons supplémentaires ou moins de liaisons peuvent être utilisées. Il doit aussi être noté que les termes "couplé", "raccordé" ou "couplé de manière à communiquer" doivent être compris comme comportant des liaisons directes, des liaisons indirectes au moyen d'un ou plusieurs dispositifs intermédiaires et des liaisons sans fil. 30 La référence, dans la description à un "premier mode de réalisation", un "mode de réalisation préféré", "un mode de réalisation," ou des "modes de -5 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 dans au moins un premier mode de réalisation de l'invention et peut être dans plusieurs modes de réalisation. De plus, les utilisations des phrases notées précédemment à 5 différents emplacements dans la spécification ne se réfèrent pas nécessairement toutes au mêmes mode de réalisation ou modes de réalisation. L'utilisation de certains termes à différents emplacements dans la description est destinée à la représentation et ne doit pas être considérée comme limitative. Un service, une fonction ou une ressource n'est pas limité à un service, 10 une fonction, ou une ressource unique ; l'utilisation de ces termes peut se référer à un groupement de services, fonctions ou ressources associés, qui peuvent être répartis ou regroupés. En outre, les termes de mémoire, base de données, base d'informations, mémoire de données, tables, matériel, et analogue peuvent être utilisés ici afin de désigner un composant ou des composants de dispositif dans 15 lesquels des informations peuvent être entrées ou enregistrées d'une autre manière. En outre, il doit être noté que des modes de réalisation décrits ici sont données dans le contexte de microcontrôleurs sécurisés, mais il va devenir évident à un spécialiste de la technique que les enseignements de la présente invention ne sont pas limités à type quelconque de microcontrôleur et peuvent aussi présenter 20 éventuellement un intérêt pour un fournisseur de logiciel quelconque qui souhaite utiliser des services de protection de PI dans d'autres contextes et applications. Tel qu'utilisé ici, le terme de "mémoire non volatile" se rapporte à un dispositif de mémorisation de données électrique, tel qu'une mémoire instantanée, qui conserve son état après que l'alimentation a été coupée. Les termes de 25 "mémoire" et "mémoire physique" sont utilisés de manière interchangeable et se rapportent à un dispositif de mémorisation de données électrique qui assure des écritures et lectures de mémoire, par opposition à une mémoire virtuelle ou logique qui est définie logiciel ou un processeur. Les termes "processeur" et "microcontrôleur" sont aussi utilisés de manière interchangeable, se rapportant à 30 un circuit électrique qui exécute un ou plusieurs traitement numérique et/ou opérations de commande. De manière similaire, les termes de "tampon" et -6 "mémoire" se rapportent à des zones de mémoire physique qui peuvent comporter un ou plusieurs emplacements de mémorisation accessibles par des adresses physiques. Les figures 2A et 2B représentent des dispositifs de protection de données 5 confidentielles contenues dans la mémoire, destinés à empêcher un accès et une manipulation de données non autorisés, selon différents modes de réalisation de la présente invention. Des composants similaires à ceux montrés sur la figure 1 sont désignés de la même manière. Pour des besoins de brièveté, leurs description ou fonction ne sont pas répétées ici. 10 En fonctionnement, dans certains modes de réalisation, la mémoire NVSRAM 210 sur la figure 2A ajoute une valeur aléatoire, r, par exemple, un entier, à une valeur secrète maître, d, par exemple, un autre entier représentant une valeur d'exposant de clé privée, afin d'obtenir la somme, d+r, qui peut être mémorisée dans la mémoire NVSRAM 210. Dans certains modes de réalisation, 15 cette somme est rendue disponible au dispositif MAA 202, par exemple, afm d'être mémorisée dans la mémoire 204. Dans certains modes de réalisation, le dispositif MAA 202 est un dispositif non sécurisé qui peut utiliser la somme dans un calcul d'exponentiation RSA afin de produire un message, m, par exemple, en utilisant l'équation a---md±r mod n. 20 Dans certains modes de réalisation, la somme de d et r peut être effacée à partir du dispositif MAA 202 ou invalidée d'une autre manière, par exemple, en réécrivant le résultat avec des zéros, de telle sorte que la somme de d et r ne peut plus être extraite de la mémoire 204. Cette somme, en effet, masque la valeur secrète d à l'intérieur du dispositif MAA 202 puisque la connaissance de la somme 25 de la valeur aléatoire r et du secret maître d dans le dispositif MAA 202 ne délivre aucune information concernant les valeurs individuelles de d et r, comme cela est représenté par l'exemple simplifié suivant : supposons qu'un algorithme RSA ou tout procédé de cryptage asymétrique comparable utilise l'exemple de nombre composé, 5, qui a été assemblé en utilisant deux nombres individuels, d et r, 30 l'extraction à partir du dispositif MAA 202 de la valeur composée 5, c'est-à-dire, la somme d'entiers individuels d et r, ne va, par conséquent, fournir aucune -7 information utile comme le fait que la valeur du nombre d est 2 et la valeur du nombre r est 3, ou le fait que la valeur d est 1 et celle de r est 4, etc. Dans certains modes de réalisation, une fois que la somme de d et r a été effacée du dispositif MAA 202 et ne peut ainsi plus être extraite du dispositif 5 MAA 202, le paramètre, t, référencé à la figure 2B, est chargé à partir de la mémoire NVSRAM 210 dans le dispositif MAA 202. En résultat, t et la somme de d et r ne sont pas présents de manière simultanée dans un dispositif non sécurisé, de telle sorte que la valeur confidentielle d ne peut pas être récupérée (par exemple, à partir de l'équation d+r+t = d). 10 Dans certains modes de réalisation, la mémoire NVSRAM 210 est un dispositif de mémorisation qui peut contenir un secret et peut être instantanément et entièrement effacé dans le cas d'une détection d'effraction. La mémoire NVSRAM 210 est effacée ou réinitialisée (par exemple, tous les registres peuvent être positionnés à zéro), en réponse à un signal d'alarme 230, qui peut être un type 15 quelconque d'instruction d'effacement logiciel. Dans certains modes de réalisation, en cas de détection (par exemple, par l'intermédiaire de capteurs d'effraction, de capteurs d'environnement, etc.) d'une attaque sur une partie quelconque du dispositif 200, une instruction d'effacement logiciel 230 peut être délivrée et communiquée à la mémoire NVSRAM 210, de telle sorte qu'une valeur 20 confidentielle existante quelconque, en particulier, des valeurs de t et r, peuvent être automatiquement effacées de la mémoire 214 afin d'empêcher un accès non autorisé à des données confidentielles. En particulier, une valeur aléatoire r, (c'est- à-dire, un moyen de récupérer une valeur secrète maître d (par exemple, la somme de d et r)) peut être effacée de la mémoire NVSRAM 210 avant que t soit chargé 25 dans la mémoire de dispositif MAA 204. Il doit être compris que le signal d'alarme 230 peut être un signal de déclenchement quelconque qui peut être activé par un type quelconque de dispositif, par exemple, un capteur de déplacement, en réponse à la détection d'un indice quelconque d'un événement d'effraction. En résumé, bien que la connaissance de la valeur aléatoire r puisse être utile 30 à un attaquant dans une tentative de récupération d'un secret maître d, la valeur r est mémorisée de manière sûre dans la mémoire NVSRAM 210 et n'est jamais -8 exposée (par elle-même) à l'intérieur de la mémoire non sécurisée du dispositif MAA 202; et la connaissance de la somme de d et r n'assure pas de vision sur les valeurs individuelles de d ou r, de telle sorte que les deux valeurs sont considérées comme sûres. De manière similaire, la connaissance du secret t seul sans 5 connaissance du secret r n'est pas utile pour un attaquant, puisque la somme de t et r ne délivre aucune information concernant les valeurs individuelles de t et r. De plus, sur la mémoire de dispositif MAA 204 ne présentant aucune fuite de secret intégré, dans le cas d'une attaque, la valeur aléatoire r est effacée de la mémoire NVSRAM 214. 10 En résumé, lorsqu'un algorithme RSA est utilisé, le secret maître d n'est jamais exposé à l'intérieur de la mémoire de dispositif MAA 204, et aucune information à l'intérieur de la mémoire de dispositif MAA 204 ne peut être utile à un attaquant potentiel dans une tentative d'extraction du secret d. De même aucune autre valeur à l'intérieur de la mémoire de dispositif MAA 204 ne peut être 15 utilisée afin d'extraire le secret d, de telle sorte qu'un attaquant ne peut bénéficier, par exemple, d'une sauvegarde (vidage) de la mémoire de bloc cryptographique. Dans certains modes de réalisation, le paramètre t est produit dans une étape d'initialisation, par exemple, sous la forme d'un nombre de 1024-bits et est mémorisé dans la mémoire NVSRAM 214. Puisque les temps de calcul RSA sont 20 relativement sensibles à la taille de données, dans certains modes de réalisation, la longueur de t est choisie égale à la moitié de la longueur de clé (2048-bits ou 4096-bits) de module n. De manière avantageuse, ceci permet une contre-mesure pas trop longue. En fait, le temps de calcul pour t est ainsi plutôt insignifiant par comparaison au temps de calcul de la clé elle-même, imposant, ainsi, seulement 25 un coût de calcul supplémentaire relativement faible. De manière détaillée, le coût de mt exponentiations est faible par comparaison au coût de md±r exponentiations, qui, lui-même, est comparable à l'exponentiation utilisée dans des algorithmes RSA classiques (par exemple, lors du calcul de md mod n). Néanmoins, afin d'empêcher la découverte de secrets par 30 des attaques qui utilisent des procédés par force brute, par exemple, par -9 application de la puissance de calcul brute d'un ordinateur afm de trouver t à partir de mt (connu comme le problème du logarithme discret), il est recommandé que la longueur du paramètre t soit choisie de manière à ne pas être trop faible. Une longueur de 1024-bits est considérée comme étant un compromis en taille 5 suffisamment sûr dans le but de mettre en échec de telles attaques alors que, simultanément, elle n'implique pas de calcul trop lourd sur le dispositif 200/250. La figure 3 est un algorithme d'un procédé de protection de données confidentielles représentatif selon différents modes de réalisation de la présente invention. Le procédé 300 commence à l'étape 302 lorsque, au niveau d'un 10 dispositif sécurisé, tel qu'une mémoire NVSRAIVI qui comprend de la mémoire non volatile, une valeur aléatoire, r, est ajoutée à une valeur secrète, d, par exemple, afin de masquer la valeur secrète d. Dans certains modes de réalisation, les valeurs r et d sont des entiers. A l'étape 304, la somme de d et r est délivrée à un dispositif non sécurisé, 15 par exemple, un dispositif MAA qui comprend sa propre mémoire, dans lequel la somme peut être mémorisée préalablement à tout autre traitement. Dans certains modes de réalisation, l'effet des étapes 302 et 304 est qu'aucune des valeurs d et r ne doit être chargée individuellement dans le dispositif non sécurisé. Comme cela a été mentionné précédemment, la connaissance de la somme de d et r n'assure pas 20 de visibilité sur les valeurs individuelles de d ou r, de telle sorte que les deux valeurs peuvent être considérées comme sûres. A l'étape 306, la somme de d et r est utilisée afin de calculer un message, m, au niveau du dispositif non sécurisé. Dans certains modes de réalisation, le calcul du message m implique l'utilisation de l'équation a=md+r mod n en tant que partie 25 d'un algorithme RSA modifié. A l'étape 308, la somme de d et r est effacée du dispositif non sécurisé, de telle sorte que la somme de d et r ne peut plus être extraite du dispositif non sécurisé. A l'étape 310, un paramètre, t, est chargé à partir du dispositif sécurisé dans 30 le dispositif non sécurisé, de telle sortie qu'une fois que la somme de d et r ne peut plus être extraite du dispositif non sécurisé, t et la somme de d et r ne sont pas - 10 - présents simultanément dans le dispositif non sécurisé. En tant que résultat, la valeur secrète d ne peut pas être récupérée. Enfin, à l'étape 312, le paramètre t et la somme de d et r sont utilisés afin de calculer le message m, par exemple, en utilisant les propriétés d'exponentiation, 5 telles que c(ab) = e* cb, et l'arithmétique modulaire afin de calculer une valeur m à partir de l'équation b=a * mt mod n, qui est aussi égale à md mod n. En utilisant l'arithmétique modulaire et le théorème d'Euler il peut être montré que = Dans certains modes de réalisation, l'étape 302 peut être précédée par une 10 étape d'initialisation qui utilise, par exemple, l'arithmétique modulaire, afin de calculer la valeur r de telle sorte que le produit d'une variable t et de la valeur r est égal à zéro modulo (c'est-à-dire, t+r = 0 mod). De manière générale, il est égal à (p-1)*(q-1), de telle sorte que pour une paire de clefs RSA, le module de la clé publique n est égal au produit p*q, p et q étant deux nombres entiers qui du fait du 15 problème de factorisation ne peuvent pas être facilement récupérés. La valeur calculée r peut alors être mémorisée, par exemple, dans la mémoire non volatile de la mémoire NVSRAM. En résultat, si une attaque est détectée à une étape quelconque impliquant les étapes 302 à 306, t et r sont effacés de la mémoire NVSRAM, de telle sorte 20 qu'un attaquant ne peut pas récupérer d de la somme de d et r. De plus, compte tenu que, à l'étape 308, la somme de d et r est effacée de la mémoire du dispositif non sécurisé, si une attaque se produit à l'une quelconque des étapes 310 ou ultérieure, la somme de d et r ne va plus être présente dans la mémoire NVSRAM, de telle sorte que d n'est pas disponible, et les données secrètes sont protégées. 25 Il va être évident pour un spécialiste de la technique qu'aucun système informatique ou langage de programmation n'est critique pour la mise en oeuvre 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 entre 30 eux. Il doit être noté que des éléments, ci-dessous, de la présente invention peuvent être agencés différemment, comportant le fait de présenter de multiples dépendances, configurations et associations. Par exemple, dans certains modes de réalisation, les particularités de différentes revendications peuvent être associées à d'autres revendications. 5 Il va être apprécié par un spécialiste de la technique que les précédents exemples et modes de réalisation sont donnés à titre d'exemple et non de limitation de la portée de la présente invention. Il doit être considéré que l'ensemble des permutations, renforcements, équivalents, combinaisons et améliorations sur ces derniers qui deviennent évidents pour les spécialistes de la 10 technique à la lecture de la spécification et à l'étude des dessins sont contenus dans l'esprit REVENDICATIONS1. Procédé comprenant : la réception d'une valeur secrète et d'une valeur aléatoire ; le masquage de la valeur secrète par ajout, dans un dispositif sécurisé de la valeur aléatoire et de la valeur secrète afin d'obtenir une valeur masquée ; la mémorisation de la valeur masquée dans une mémoire qui est externe au dispositif sécurisé ; l'utilisation de la valeur masquée afin de calculer une valeur intermédiaire ; l'effacement de la valeur masquée de la mémoire, de telle sorte que, dans le cas d'une attaque, aucune de la valeur secrète et de la première valeur aléatoire ne peut être récupérée individuellement dans la mémoire ; le chargement d'une valeur d'exposant dans la mémoire ; l'utilisation de la valeur intermédiaire et la valeur d'exposant afin de calculer une valeur finale à partir de laquelle la valeur secrète peut être déduite.