FR 3039022 A1 20170120 FR 1556679 A 20150715 1 Méthode de délégation sécurisée de calculs coûteux pour algorithmes de chiffrement à clé publique L'invention se situe dans le domaine de la sécurité dans les réseaux 5 informatiques et les réseaux de télécommunications à faibles ressources. Les réseaux à faibles ressources sont constitués de dispositifs possédant de faibles capacités de calcul, de mémoire et d'énergie. Des exemples de réseaux à faibles ressources sont les réseaux émergents avec des communications machine-à-machine, les réseaux de capteurs sans-fil, et les 10 réseaux véhiculaires. L'invention peut également s'appliquer à d'autres dispositifs contraints en ressources comme par exemple les cartes à puce. L'invention concerne plus précisément les algorithmes de chiffrement à clé publique qui nécessitent, pour leur mise en oeuvre, l'exécution de calculs coûteux. L'invention propose une méthode de délégation sécurisée 15 de tels calculs à une entité délégataire possédant des capacités de calcul et des ressources en mémoire plus importantes. Actuellement, les algorithmes de chiffrement déployés dans les réseaux à faibles ressources sont généralement basés sur des algorithmes 20 de chiffrement symétrique. Un exemple d'études relatives à la performance de différents types d'algorithmes de chiffrement se trouve dans le document (Nachiketh R. Potlapally, Srivaths Ravi, Anand Raghunathan, et Niraj K. Jha, "A Study of the Energy Consumption Characteristics of Cryptographic Algorithms and Security Protocols", IEEE Transactions on Mobile Computing 25 5, 2, 128-143, Février 2006), dans lequel les auteurs montrent, après l'implémentation de plusieurs algorithmes standards utilisés dans le protocole SSL au sein d'un appareil alimenté par batterie, que la consommation en énergie d'une opération de signature ou de vérification est de l'ordre de plusieurs millijoules, alors que celle d'un chiffrement symétrique est de l'ordre 30 de quelques microjoules. Les algorithmes de chiffrement symétrique sont moins complexes et coûteux en temps de calcul et en consommation 3039022 2 d'énergie. Toutefois, la clé du chiffrement symétrique doit être partagée entre les deux parties préalablement à leur échange de messages chiffrés. La distribution de la clé symétrique peut être réalisée manuellement avant le déploiement du réseau, ou d'une manière dynamique au moyen d'un ou plusieurs serveurs en ligne (mis à disposition pour la distribution des clés) auxquels les différentes parties font entièrement confiance. Dans ce dernier cas, la clé de session ainsi générée est connue du serveur de confiance. S'il s'agit de plusieurs serveurs de confiance qui sont engagés dans le processus de distribution de clés secrètes comme dans l'algorithme D-HIP (Saied et autres « D-HIP: A Distributed Key Exchange Scheme for HIPbased Internet of Things », 1st IEEE WoWMoM Workshop on the Internet of Things, 2012), la clé secrète peut être connue par les serveurs de confiance s'ils mènent une attaque de collusion contre les deux parties du réseau qui échangent les messages chiffrés. Accroître le nombre de serveurs pour limiter ce type d'attaques entraîne des coûts supplémentaires puisque la solution nécessite plusieurs messages de communication entre les parties et les différents serveurs de confiance. Les algorithmes de chiffrement asymétrique permettent d'échanger une clé ou une donnée chiffrée entre deux parties qui n'ont aucune clé secrète en commun et sans recours à des serveurs de confiance. Pour pallier au problème des calculs onéreux en ressources inhérents à ce type d'algorithmes de chiffrement, une approche consiste à déléguer les opérations lourdes à un tiers (ou des tiers) plus riche en ressources. Les deux parties peuvent avoir entièrement confiance en ces tierces parties (p. ex. s'il s'agit de serveurs internes à une administration) ou partiellement confiance (p. ex. des services offerts par un opérateur de cloud tiers). Dans ce dernier cas, la délégation des opérations de calcul ne doit pas révéler les données chiffrées avec l'algorithme de chiffrement. Le problème visé par l'invention consiste ainsi à trouver une méthode de délégation de calculs coûteux, pour des algorithmes de chiffrement 3039022 3 asymétrique, qui permette la délégation à une entité tierce tout en préservant la sécurisation des calculs secrets. Pour réduire les coûts de calcul d'un chiffrement à clé publique, une 5 première approche consiste à stocker des valeurs préalablement calculées correspondant à des opérations coûteuses dans la mémoire. L'approche proposée dans le document (Boyko et autres, « Speeding up discrete log and factoring based schemes via precomputations », EUROCRYPT '98, 1998) permet d'accélérer les algorithmes de chiffrement à clé publique basés sur 10 les problèmes de logarithme discret et de factorisation. L'approche décrite dans ce document est basée sur une méthode de pré-calcul dans laquelle des paires de valeurs réparties de manière aléatoire sous la forme (x, gX mod p) ou (x, xe mod N) sont générées et utilisées en combinaison aléatoire pour calculer de nouvelles paires de valeurs. La méthode permet de réduire de 15 manière significative le nombre de multiplications pour une exponentiation modulaire. On connait par ailleurs le document (Ateniese et autres, « Low cost Standard Signature in Wireless Sensor Network: A Case for Reviving Pre-computation Techniques? », NDSS, 2013) dans lequel est appliquée cette méthode de pré-calcul sur un algorithme de signature numérique basé 20 sur les courbes elliptiques (Elliptic Curve Digital Signature Algorithm, en anglais) dans un réseau de capteurs. La méthode de pré-calcul proposée nécessite en plus du stockage de plusieurs valeurs pré-calculées, plusieurs opérations de multiplications modulaires. 25 Dans une autre approche envisagée pour alléger les calculs d'un algorithme de chiffrement à clé publique, les calculs coûteux sont délégués à une ou plusieurs entités riches en ressources. La méthode décrite dans la demande de brevet français FR2877453 propose de déléguer le calcul d'une application bilinéaire. De même, le document (« Secure delegation of elliptic- 30 curve pairing », 9th IFIP WG, 2010) propose de déléguer le calcul de cette application à un serveur et permet également de vérifier que le serveur a 3039022 4 bien calculé la valeur demandée. Cette solution permet une délégation de calcul sécurisée en ce que les valeurs données en entrée au serveur sont cachées. Cependant, les deux solutions nécessitent deux exponentiations modulaires (ou deux multiplications scalaires de points d'une courbe 5 elliptique) pour cacher les valeurs d'entrée. Aucune des solutions connues ne permet la délégation sécurisée des opérations d'exponentiation modulaire, alors que ce type d'opérations constitue encore en cryptographie un goulot d'étranglement en termes de calcul pour des dispositifs contraints en ressources, dans beaucoup 10 d'algorithmes. L'invention propose une méthode de délégation sécurisée de calculs coûteux à une entité délégataire tierce qui possède des ressources plus importantes. 15 L'invention s'applique à tout algorithme de chiffrement asymétrique à clé publique qui utilise, pour sa mise en oeuvre, des opérations coûteuses du type exponentiation modulaire ou multiplication scalaire. Mais l'invention peut également être étendue à d'autres opérations coûteuses dans la mesure où il est possible de trouver deux opérateurs simples qui sont liés à l'opération 20 coûteuse par une relation d'homomorphisme. Ce point sera expliqué plus en détail par la suite. L'invention s'applique notamment à des algorithmes de chiffrement basés sur le problème du logarithme discret, tels que l'algorithme de chiffrement d'ElGamal, mais aussi à des algorithmes de chiffrement basés 25 sur l'identité ou sur les attributs. L'invention permet ainsi d'accélérer le chiffrement d'une donnée (ou d'une clé) avec l'algorithme de chiffrement à clé publique sans pour autant compromettre la sécurité de l'algorithme ou révéler la donnée ou la clé à chiffrer. La délégation des calculs n'expose pas l'algorithme de chiffrement 30 au risque de divulgation des données chiffrées, même vis-à-vis du dispositif délégataire qui réalise les calculs coûteux. En effet, le procédé selon 3039022 5 l'invention permet une délégation sécurisée des calculs empêchant l'entité délégataire de retrouver les données connaissant le résultat de leur chiffrement. Dans plusieurs cas, l'invention n'entraine aucune modification sur le 5 résultat du chiffrement des algorithmes utilisés. Ainsi, les algorithmes de déchiffrement peuvent être utilisés sans modification pour déchiffrer les données chiffrées à l'aide de la délégation des opérations coûteuses. L'invention permet de réduire le coût en termes de calcul et 10 d'utilisation de la mémoire, ainsi qu'en termes de consommation énergétique sur le noeud déléguant, d'un chiffrement à clé publique. L'invention permet aussi de diminuer le temps d'exécution des algorithmes de chiffrement grâce à la délégation des calculs. En outre, l'invention permet d'effectuer une délégation sécurisée des calculs coûteux en masquant les variables secrètes 15 ou associées à des calculs secrets lors des échanges entre le dispositif délégant et le dispositif délégataire. L'invention a ainsi pour objet une méthode de chiffrement asymétrique à clé publique, exécutée par un dispositif délégant, ladite méthode impliquant 20 l'exécution d'un algorithme de chiffrement comprenant au moins une opération mathématique f*(,) complexe, ladite méthode comprenant les étapes de : - Générer une variable secrète r, - Dissimuler la variable secrète r pour obtenir une variable secrète 25 dissimulée r', - Transmettre la variable secrète dissimulée r' à un dispositif délégataire, - Déléguer au dispositif délégataire au moins une exécution de ladite opération mathématique f*(,) appliquée sur la variable secrète 30 dissimulée r', - Recevoir au moins un résultat fk,v, du calcul délégué, 3039022 6 - Exécuter l'algorithme de chiffrement à l'aide d'au moins un résultat fk,v, reçu du calcul délégué. Selon un aspect particulier de la méthode de chiffrement selon l'invention, l'opération mathématique f*(,) est une opération pour laquelle le 5 problème du logarithme discret est difficile. Selon un aspect particulier de la méthode de chiffrement selon l'invention, l'opération mathématique f*(,) est une opération d'exponentiation modulaire ou une opération de multiplication scalaire de points d'une courbe elliptique. 10 Selon un aspect particulier de la méthode de chiffrement selon l'invention : - la variable secrète r est dissimulée à l'aide d'une clé secrète x, - l'exécution déléguée de la dite opération mathématique f*(,) est réalisée en prenant comme première opérande au moins un 15 élément gi d'un groupe cyclique et comme seconde opérande la variable secrète dissimulée r', - ladite méthode comprend en outre une étape de déduction d'au moins un résultat vk de l'exécution de ladite opération mathématique f*(,) ayant comme première opérande au moins un 20 élément gi d'un groupe cyclique et comme seconde opérande la variable secrète r, à partir dudit résultat fk,vi du calcul délégué et de la clé secrète x. Selon un aspect particulier de la méthode de chiffrement selon l'invention, la variable secrète r est dissimulée en appliquant un premier 25 opérateur h(.) à la variable secrète r et à la clé secrète x. Selon une variante particulière, la méthode de chiffrement selon l'invention comprend une étape de transmission, au dispositif délégataire, d'au moins un élément gi d'un groupe cyclique ou d'une information permettant de déduire cet élément. 30 Selon une variante particulière, la méthode de chiffrement selon l'invention comprend les étapes de : 3039022 7 - recevoir au moins un résultat t'k, appelé premier résultat intermédiaire, du calcul délégué au dispositif délégataire, exécuté en prenant comme première opérande de ladite opération mathématique f*(,), au moins un élément gk associé à un calcul 5 secret parmi les éléments gi reçus par le dispositif délégataire, - en déduire le résultat vk de l'application de ladite opération mathématique f*(,) à la variable secrète r et audit élément gk. Selon un aspect particulier de la méthode de chiffrement selon l'invention, l'étape de déduction d'au moins un résultat vk comprend les 10 étapes de : - Recevoir, via un canal protégé en intégrité et en confidentialité, un résultat tk, appelé second résultat intermédiaire, de l'application de ladite opération mathématique f*(,) audit élément gk et la clé secrète x, 15 - appliquer un second opérateur h'(.) au premier résultat intermédiaire t'k et au second résultat intermédiaire tk. Selon une variante particulière, la méthode de chiffrement selon l'invention comprend les étapes de : - recevoir, du dispositif délégataire, au moins un résultat v, de 20 l'application de ladite opération mathématique f*(,) à la variable secrète r et à au moins un élément g, associé à un calcul public, parmi les éléments gi reçus par le dispositif délégataire, - ledit au moins un résultat v, étant calculé par le dispositif délégataire en appliquant ledit second opérateur h'(.) à au moins 25 un calcul t', délégué au dispositif délégataire, exécuté en prenant comme première opérande de ladite opération mathématique f*(,), ledit au moins un élément g, et à au moins un résultat t, de l'application de ladite opération mathématique f*(,) audit au moins un élément g, et à la clé secrète x, 30 3039022 8 Selon un aspect particulier de la méthode de chiffrement selon l'invention, l'opération mathématique f*(,) le premier opérateur h(.) et le second opérateur h'(.) sont liés ensemble par une relation d'homomorphisme. 5 Selon un aspect particulier de la méthode de chiffrement selon l'invention, le premier opérateur h(.) est une addition dans un groupe additif. Selon un aspect particulier de la méthode de chiffrement selon l'invention, l'opération mathématique f*(,) est une opération d'exponentiation modulaire et le second opérateur h'(.) est une multiplication dans un groupe 10 multiplicatif. Selon un aspect particulier de la méthode de chiffrement selon l'invention, l'opération mathématique f*(,) est une opération de multiplication scalaire de points d'une courbe elliptique et le second opérateur h'(.) est une addition dans un groupe additif. 15 Selon un aspect particulier de la méthode de chiffrement selon l'invention, la clé secrète x est fournie au dispositif délégant par un centre de gestion de clés ayant une liaison protégée en intégrité et en confidentialité avec le dispositif délégant et le dispositif délégataire. Selon un aspect particulier de la méthode de chiffrement selon 20 l'invention, le résultat d'un calcul tk,t, dépendant de la clé secrète x est fourni au dispositif délégataire par un centre de gestion de clés ayant une liaison protégée en intégrité et en confidentialité avec le dispositif délégant et le dispositif délégataire. Selon un aspect particulier de la méthode de chiffrement selon 25 l'invention, on utilise plusieurs clés secrètes xi associées à plusieurs récepteurs distincts d'un message M chiffré. Selon un aspect particulier de la méthode de chiffrement selon l'invention, ledit algorithme de chiffrement est un algorithme de ElGamal ou un algorithme de chiffrement basé sur l'identité ou un algorithme de 30 chiffrement basé sur les attributs. 3039022 9 L'invention a également pour objet une méthode de délégation de calcul dans l'exécution d'un algorithme de chiffrement comprenant au moins une opération mathématique f*(,) complexe et étant exécutée par un dispositif délégant, ladite méthode étant exécutée par un dispositif 5 délégataire et comprenant les étapes de : - recevoir une variable secrète dissimulée r', - exécuter au moins un calcul délégué de ladite opération mathématique f*(,) appliquée sur la variable secrète dissimulée r', - transmettre au moins un résultat fk,v, du calcul délégué au 10 dispositif délégant. Selon une variante de réalisation, la méthode de délégation de calcul selon l'invention comprend les étapes de : - recevoir du dispositif délégant au moins un élément gi d'un groupe cyclique ou une information permettant de déduire cet élément, 15 - exécuter ledit au moins un calcul délégué de ladite opération mathématique f*(,) en prenant comme première opérande ledit au moins un élément gi et comme seconde opérande la variable secrète dissimulée r'. Selon une variante de réalisation, la méthode de délégation de calcul 20 selon l'invention comprend l'étape de transmettre, au dispositif délégant, au moins un résultat t'k, appelé premier résultat intermédiaire, dudit calcul délégué, exécuté en prenant comme première opérande de ladite opération mathématique f*(,), au moins un élément gk associé à un calcul secret parmi les éléments gi reçus. 25 Selon une variante de réalisation, la méthode de délégation de calcul selon l'invention comprend les étapes de : - Recevoir au moins un résultat t, de l'application de ladite opération mathématique f*(,) à au moins un élément g, associé à un calcul public, parmi les éléments gi reçus, et à une clé secrète x, 30 - Calculer au moins un résultat v, en appliquant un opérateur h'(.) à au moins un calcul t', délégué, exécuté en prenant comme 3039022 10 première opérande de ladite opération mathématique f*(,), ledit au moins un élément g, et à audit au moins un résultat ti. Selon un aspect particulier de la méthode de délégation de calcul selon l'invention, l'opération mathématique f*(,) est une opération 5 d'exponentiation modulaire ou de multiplication scalaire de points d'une courbe elliptique. L'invention a également pour objet un dispositif de chiffrement délégant comprenant un calculateur configuré pour exécuter la méthode de chiffrement à clé publique selon l'invention. 10 L'invention a également pour objet un dispositif de calcul délégataire comprenant un calculateur configuré pour exécuter la méthode de délégation de calcul selon l'invention. L'invention a également pour objet un système de chiffrement à délégation de calculs comprenant un dispositif de chiffrement délégant selon 15 l'invention, un dispositif de calcul délégataire selon l'invention et un centre de gestion de clés configuré pour fournir au dispositif de chiffrement délégant et au dispositif de calcul délégataire une clé secrète x ou le résultat d'un calcul tk,t, dépendant d'une clé secrète x. Selon un aspect particulier du système de chiffrement selon 20 l'invention, la liaison entre le dispositif de chiffrement délégant et le dispositif de calcul délégataire est protégée en intégrité. Selon un aspect particulier du système de chiffrement selon l'invention, la liaison entre le centre de gestion de clés et le dispositif de chiffrement délégant d'une part et le centre de gestion de clés et le dispositif 25 de calcul délégataire d'autre part est protégée en intégrité et en confidentialité. L'invention a encore pour objet un programme d'ordinateur comportant des instructions pour l'exécution de la méthode de chiffrement à clé publique selon l'invention, ou pour l'exécution de la méthode de 30 délégation de calcul selon l'invention lorsque le programme est exécuté par un processeur. 3039022 11 L'invention a encore pour objet un support d'enregistrement lisible par un processeur sur lequel est enregistré un programme comportant des instructions pour l'exécution de la méthode de chiffrement à clé publique selon l'invention, ou pour l'exécution de la méthode de délégation de calcul 5 selon l'invention, lorsque le programme est exécuté par un processeur. D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit en relation aux dessins annexés qui représentent : 10 - La figure 1, un schéma illustrant les différentes entités qui entrent en jeu dans la mise en oeuvre de l'invention, - La figure 2, un schéma illustrant les différentes étapes de mise en oeuvre d'une méthode de chiffrement avec délégation de calculs coûteux selon l'invention, 15 - La figure 3, un schéma illustrant l'application de l'invention à un algorithme de chiffrement d'ElGamal, - La figure 4, un schéma illustrant l'application de l'invention à un algorithme de chiffrement, basé sur l'identité, l'algorithme à clé publique de Sakai et Kasahara, 20 - La figure 5, un schéma illustrant l'application de l'invention à un algorithme de chiffrement, basé sur l'identité, l'algorithme à clé publique de Boneh et Boyen, - La figure 6, un schéma illustrant l'application de l'invention à un algorithme de chiffrement, basé sur les attributs, l'algorithme de 25 chiffrement KP-ABE, - La figure 7, un schéma illustrant l'application de l'invention à un algorithme de chiffrement, basé sur les attributs, l'algorithme de chiffrement CP-ABE. 30 La figure 1 décrit le contexte général de l'invention dans lequel un dispositif de chiffrement de données, appelé dispositif délégant DGN, 3039022 12 souhaite chiffrer une donnée ou une clé avec un algorithme de chiffrement à clé publique. Le dispositif délégant DGN est limité en ressources de calcul et de mémoire. Selon l'invention, le dispositif délégant DGN délègue les calculs 5 complexes requis par l'algorithme de chiffrement à un dispositif délégataire DGT qui est une entité riche en ressources ou à plusieurs dispositifs délégataires DGT. Le dispositif délégataire peut être par exemple un serveur de calcul ayant des capacités importantes ou un service de calcul hébergé à distance ou service « cloud » en anglais. 10 L'invention nécessite également un centre de distribution de clés KDC utilisé pour générer et distribuer les clés et les fonctions nécessaires à la délégation des calculs aux entités concernées. Le centre de distribution de clés KDC peut coïncider avec un service de gestion de clé ou être une entité spécifique dédiée à la mise en oeuvre de l'invention. Le canal de 15 communication entre le centre de gestion de clés KDC et le délégant DGN ou le délégataire DGT est protégé en intégrité et en confidentialité. Le dispositif délégataire DGT doit être connecté au dispositif délégant DGN et être en ligne pour réaliser la délégation des opérations coûteuses. Le centre de gestion de clés KDC peut, quant à lui, être déconnecté et hors ligne lors 20 de la délégation car il n'intervient que dans une phase de préparation de la méthode selon l'invention et non dans la phase de chiffrement comme cela sera décrit plus loin. Le canal de communication entre le dispositif délégant DGN et le dispositif délégataire DGT peut être protégé en intégrité uniquement car les 25 données échangées entre ces deux entités ne sont pas sensibles, comme cela sera explicité par la suite. Ainsi, la protection en confidentialité des échanges entre le délégant et le délégataire n'est pas nécessaire. Les deux entités peuvent partager une clé symétrique secrète établie préalablement et utilisée pour vérifier l'authenticité des messages échangés entre eux. Cette 30 clé peut, par exemple, être générée à travers le centre de gestion de clés KDC ou par d'autres moyens. 3039022 13 Un objectif de l'invention est de proposer une méthode permettant la délégation, à un dispositif délégataire DGT, d'opérations mathématiques coûteuses qui entrent en jeu dans l'exécution d'un algorithme de 5 cryptographie ou chiffrement. Pour permettre la délégation de ces opérations tout en conservant la confidentialité des variables secrètes de l'algorithme de chiffrement, l'invention introduit deux opérateurs h(.) et h'(.) dont le calcul est peu coûteux et qui sont liés à l'opération à déléguer f(.) par une relation 10 d'homomorphisme f (h(a, b)) = h' (f (a), f (b)) Les opérateurs h(.) et h'(.) sont des fonctions simples, par exemple une addition, une multiplication ou une opération dérivée de ces fonctions. 15 De façon générale, les opérateurs h(.) et h'(.) sont des opérateurs présentant un coût d'exécution compatible des ressources limitées du dispositif délégant DGN. La propriété d'homomorphisme est utilisée par plusieurs algorithmes de chiffrement. 20 La fonction complexe f(.) est par exemple une opération d'exponentiation modulaire ou une opération de multiplication scalaire, par exemple dans le cadre de multiplication scalaire de points d'une courbe elliptique. Ces deux exemples sont donnés à titre illustratif et la fonction f(.) peut désigner d'autres opérations coûteuses utilisées par un algorithme de 25 chiffrement dans la mesure où il est possible de trouver deux opérateurs h(.) et h'(.) qui vérifient avec la fonction f(.) une propriété d'homomorphisme. La fonction f(.) est une fonction à deux opérandes qui peut, par exemple être définie sur plusieurs éléments d'un groupe cyclique fini. En particulier, les groupes cycliques finis envisagés sont ceux pour lesquels le 30 problème du logarithme discret est difficile à résoudre, autrement dit avec la connaissance de f(x), il est difficile de retrouver x. Un groupe cyclique fini 3039022 14 peut être un groupe multiplicatif de générateur g et d'ordre q ou un groupe additif de générateur P et d'ordre q, q étant un nombre premier. La fonction f(.) peut être définie sur plusieurs éléments de ce groupe, en particulier sur un générateur g du groupe. La fonction est désignée par 5 f*(.) avec f*(g, x) = (x), si la fonction f(.) est définie sur le générateur g. Avec G étant l'image de la fonction f(.), les fonctions f(.), h(.) et h'(.) sont définies comme suit : f* : G > f*(ex) (a, b) i-> h(a, b) (A, B) 1-> h' (A, B) 10 On décrit à présent plusieurs exemples de fonctions f(.), h(.) et h'(.) pour lesquelles l'invention s'applique. On considère une courbe elliptique sur un groupe fini avec un sous-groupe d'ordre q (q étant un grand nombre premier), un point de la courbe, désigné par P, qui génère ce groupe cyclique d'ordre q. On considère aussi 15 un générateur g d'un groupe multiplicatif dans Z/qZ. Le groupe multiplicatif généré par g est désigné par G, et le groupe additif généré par P est désigné par G'. Les calculs délégués sont des calculs de multiplication scalaire de points d'une courbe elliptique et d'exponentiation modulaire. Un exemple 20 d'implémentation de la fonction f*() est un calcul d'exponentiation modulaire, sur le groupe multiplicatif de générateur g : f* (g , x) = gx, Un autre exemple d'implémentation de la fonction f*() est un calcul de multiplication scalaire, sur le groupe additif de générateur : r(P,x)= x.P 25 Soient ct, 13, et y trois entiers non nuls de E q, le tableau suivant donne les correspondances entre des opérateurs h(.) et h'(.) possibles pour chaque fonction f*(). h0 h'0 Vérification 3039022 15 Premier exemple h(a, b) = a + b (mod q) Groupe h'(A, B) = A.B f * (g , h(a, b)) = ga+ b = ga . gb multiplicatif du générateur g = 11,' (f*(9, a), f * (. g , b)) Groupe additif du h'(A, B) = A + B f * (g , h(a, b)) = (a + b) . P =a.P+b.P générateur P = 11,' (f* (g, a), f * (. g , b)) Deuxième exemple h(a, b) = a.a + ilb + y (mod q) Groupe h'(A, B) = AOE.BP.gl' f* (g , h(a, b)) = ga.a+ PM +1' multiplicatif du générateur g = Cgar. (gb)P.97 = 11,' (f*(9, a), f * (. g , b)) Groupe additif du h'(A, B) = a.A + 13.B + y.P f * (g , h(a, b)) = (a.a + (3.b + y) . P = a.(a.P) + 13.(b.P) + y.P = 11,' (f* Cg , a), f*(. g , b)) générateur P Les deux premières lignes du tableau ci-dessus donnent des exemples d'opérateurs h(.) et h'(.) possibles, respectivement pour les opérations complexes d'exponentiation modulaire (groupe multiplicatif) et de 5 multiplication scalaire (groupe additif), qui sont très peu complexes et donc fortement compatibles d'une exécution sur un dispositif délégant DGN à ressources limitées. Précisément, lorsque f*() est une opération d'exponentiation modulaire, h(.) est une opération d'addition modulaire et h'(.) est une opération de multiplication modulaire. Lorsque f*() est une 10 opération de multiplication scalaire de points d'une courbe elliptique, h(.) est une opération d'addition modulaire et h'(.) est une opération d'addition de points d'une courbe elliptique. Dans la suite de la description, les exemples d'application de l'invention à des algorithmes de chiffrement particuliers se basent sur l'utilisation de ces opérateurs h(.) et h'(.) introduits comme 15 premier exemple. Les deux dernières lignes du tableau ci-dessus donnent d'autres exemples d'opérateurs h(.) et h'(.) possibles, qui sont plus coûteux à implémenter mais qui peuvent permettre un niveau de sécurisation plus élevé. 3039022 16 On décrit à présent, à l'appui de la figure 2, les étapes de mise en oeuvre de l'invention exécutées par le dispositif délégant DGN et par le dispositif délégataire DGT. 5 L'invention consiste en une première phase 201 de préparation durant laquelle le centre de distribution de clés KDC génère et distribue du matériel cryptographique au dispositif délégant DGN et au dispositif délégataire DGT, et d'une seconde phase de chiffrement d'un message qui comprend une délégation de calcul 202 durant laquelle le dispositif délégant DGN délègue 10 des calculs au dispositif délégataire DGT. La phase de préparation 201 est réalisée au préalable par le centre de distribution de clés KDC une seule fois. La seconde phase 202 est réalisée à chaque fois que le dispositif délégant DGN doit chiffrer un message. Dans la suite, on considère que le dispositif délégant DGN doit 15 exécuter, pour chiffrer un message M à transmettre, un algorithme de chiffrement qui implique l'exécution d'au moins une instance d'une opération complexe f*(,) telle qu'elle a été définie ci-dessus. La première phase de préparation 201 comporte plusieurs étapes. En premier lieu 210, le centre de distribution de clés KDC génère une 20 clé secrète x qui est une variable spécifique de l'invention. La clé secrète x peut être générée à partir d'une clé d'amorçage À.. La clé secrète x est associée à un dispositif délégant DGN et est utilisée pour réaliser une délégation sécurisée de certains calculs. La clé secrète x est envoyée, de façon sécurisée, au dispositif délégant DGN. 25 En second lieu 211, le centre de distribution de clés KDC applique la fonction f*(,) sur une liste d'éléments gi appartenant à un groupe cyclique et sur la clé secrète x afin d'obtenir un résultat {t, = r(gi, -x)}Es. Comme cela sera explicité plus en détail par la suite, les éléments gi peuvent être des générateurs de groupes cycliques ou des éléments de ces groupes, la nature 30 précise de ces éléments et leur nombre dépendant de l'algorithme de chiffrement utilisé. 3039022 17 Lorsque l'élément gi est associé à un calcul qui doit rester secret, pour le dispositif délégataire DGT, le résultat associé (noté tk) est transmis au dispositif délégant DGN. A l'inverse, lorsque l'élément gi est associé à un calcul public, le résultat associé (noté ti) est transmis au dispositif délégataire 5 DGT. Du fait du problème du logarithme discret, la connaissance du résultat t, ne permet pas de retrouver la clé secrète x. La seconde phase 202 de l'invention comporte également plusieurs étapes. Cette seconde phase exploite la propriété d'homomorphisme 10 introduite plus haut et utilise les opérateurs h(,) et h'(,) associés à la fonction complexe f*(,). Selon une première étape 220, le dispositif délégant DGN génère une variable secrète r choisie aléatoirement. Cette variable est utilisée par la suite pour réaliser l'opération finale de chiffrement d'un message M à 15 transmettre. Le dispositif délégant DGN dissimule la variable secrète r à l'aide de la clé secrète x reçue lors de la première phase 201 de préparation pour générer une variable dissimulée r'. Pour dissimuler la variable r, l'opérateur h(,) est appliqué à la variable secrète r et à la clé secrète x, r' = h(r,x). La variable dissimulée r' est ensuite transmise au dispositif délégataire 20 DGT. Le dispositif délégant DGN transmet au dispositif délégataire DGT également la liste des éléments gi sur lesquels une délégation de calcul coûteux, autrement dit une exécution de la fonction complexe f*(,), doit être réalisée. Lors de la première étape 220 de la seconde phase 202, le dispositif 25 délégant DGN n'exécute qu'une opération simple h(,) et peu coûteuse. Selon une deuxième étape 221, le dispositif délégataire DGT réalise les calculs délégués sur la liste reçue des générateurs avec la variable r' dissimulée. Autrement dit le dispositif délégataire exécute la fonction t'j 30 4*(gif) et obtient le résultat fj. Les calculs de la deuxième étape 221 sont réalisés sur tous les générateurs transmis au dispositif délégataire, qu'ils 3039022 18 soient associés à un calcul secret ou à un calcul public. Ils sont cependant séparés en deux catégories. Les résultats t'l associés à des calculs publics sont fournis à la troisième étape 222 tandis que les résultats t'k associés à des calculs secrets sont transmis au dispositif délégant DGN. 5 Selon une troisième étape 222, le dispositif délégataire DGT calcule un premier résultat final vi en appliquant l'opérateur h'(,) au résultat intermédiaire t1 transmis par le centre de gestion de clés KDC durant la phase de préparation 201 et au résultat intermédiaire t'l calculé lors de la deuxième étape 221 mais limité uniquement aux générateurs gi associés à 10 des calculs publics. Le dispositif délégataire DGT transmet ensuite au dispositif délégant DGN d'une part les résultats t'k calculés lors de la deuxième étape 221 pour des générateurs associés à des calculs secrets et d'autre part les résultats vi de la troisième étape 222. 15 Selon une quatrième étape 223, le dispositif délégant DGN calcule un second résultat final vk en appliquant l'opérateur h'(,) au résultat intermédiaire tk transmis par le centre de gestion de clés KDC durant la phase de préparation 201 et au résultat intermédiaire t'k transmis par le 20 dispositif délégataire DGT à l'issu de la deuxième étape 221. Selon une cinquième et dernière étape 224, le dispositif délégant DGN réalise l'opération finale de chiffrement d'un message M à l'aide du premier résultat final vi = f*(gi,r) et du second résultat final vk = f*(gk,r). Ainsi, l'invention permet au dispositif délégant DGN d'appliquer une 25 méthode de chiffrement en déléguant l'exécution des calculs coûteux liés à la fonction f*(,) tout en préservant la confidentialité des variables secrètes r et x qui ne sont jamais communiquées au dispositif délégataire DGT. Les opérations h(,) et h'(,) exécutées par le dispositif délégant DGN sont choisies de sorte à être peu couteuses pour ce dispositif à ressources 30 limitées. 3039022 19 On décrit à présent plusieurs applications de l'invention à différents algorithmes de chiffrement connus. La figure 3 illustre l'application de l'invention à un algorithme de chiffrement d'ElGamal. 5 Cet algorithme est par exemple décrit dans le document (Taher ElGamal, « A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms », IEEE Transactions on Information Theory, 1985). Pour mettre en oeuvre cet algorithme, on considère un groupe multiplicatif d'ordre q et de générateur g. La fonction f*(,) déléguée au dispositif 10 délégataire DGT est, pour cet algorithme, une fonction d'exponentiation modulaire f*(g,x)= gx. Les fonctions h(,) et h'(,) sont respectivement une fonction d'addition modulaire et de multiplication modulaire. Les étapes 210,211,220,221,222,223,224 de mise en oeuvre de l'invention décrites dans le contexte général de la figure 2 sont reprises sur la 15 figure 3 en précisant, pour cet exemple, quels sont les éléments gi considérés. La première étape 210 de la phase de préparation 201 est appliquée à l'identique de la façon décrite à la figure 2, ainsi la clé secrète x générée par le centre de distribution de clés KDC est transmise au dispositif délégant 20 DGN. La liste d'éléments gi considérés à l'étape 211 comprend, pour cet exemple, d'une part le générateur g du groupe multiplicatif considéré et d'autre part une liste de clés publiques fujI associées chacune à un récepteur des données chiffrées. Ainsi, selon l'application de l'étape 211, le centre de 25 distribution de clés KDC calcule d'une part f*(g,-x)= g-x et transmet ce résultat, d'une façon sécurisée, au dispositif délégant DGN car il s'agit d'un calcul secret qui ne doit être connu que du dispositif délégant DGN. D'autre part, le centre de distribution de clés KDC calcule nui, -x) = ti=ui-x, pour chaque clé publique et transmet ces résultats, qui sont publics, au dispositif 30 délégataire DGT. Le centre de distribution de clés KDC transmet également au dispositif délégataire DGT et au dispositif délégant DGN la liste des 3039022 20 identités des récepteurs des données chiffrées. Mais cette liste d'identités peut aussi être communiquée par d'autres moyens extérieurs à l'invention. Pour chiffrer un message 'M', converti vers un élément de ZZq, à envoyer à un récepteur avec une clé publique uj, le dispositif délégant DGN 5 génère une valeur aléatoire secrète r de ZZq. Il applique ensuite l'étape 220 décrite à la figure 2 et transmet la variable secrète dissimulée r' et la clé publique ui et le générateur g au dispositif délégataire DGT. Si la clé publique ui du récepteur figure parmi celles stockées chez le délégataire DGT, celui ci applique l'étape 221 et calcule gr' et t'k = ukr'. Il 10 applique ensuite l'étape 222 et calcule vk=h'(tk,t'k)= Ukx ukr = ukr. Puis il transmet gr' et vk au dispositif délégant DGN. Le calcul vk est ici limité aux clés publiques tandis que le résultat gr' est transmis directement au délégant pour qu'il finalise le calcul secret. A la réception de ces valeurs, le dispositif délégant DGN exécute 15 l'étape 223 pour finaliser le calcul gr=h'(gr'g-x). Enfin, l'étape 224 finale de chiffrement est appliquée en calculant ci=Vk= Ukr et c2=M.hash(gr), avec hash() une fonction de hachage qui retourne une valeur dans ZZq. Le message chiffré est (ci,c2). Pour déchiffrer le message (ci,c2), un récepteur calcule M = 20 c2/hash((c1)1/Y), y étant la clé secrète ElGamal du récepteur, avec uk=gY. L'invention s'applique également aux algorithmes de chiffrement basés sur un schéma fondé sur l'identité ou « identity based scheme » ou « identity based encryption » en anglais. Avec les algorithmes basés sur un 25 schéma fondé sur l'identité, le récepteur n'a pas besoin de fournir un certificat à l'expéditeur du message. L'identité du récepteur suffit pour le lier à sa clé publique. Une tierce partie de confiance, dite service de gestion de clés (SGC ou Key Management Service, en anglais), est responsable de dériver et de distribuer les clés secrètes associées aux clés publiques. 30 L'algorithme supporte aussi l'interaction d'utilisateurs associés à des services de gestion de clés différents. Pour cela, ils doivent partager des paramètres 3039022 21 publics communs ainsi que les clés publiques des services de gestion de clés correspondants. La figure 4 schématise l'application de l'invention à l'algorithme de chiffrement à clé publique de Sakai et Kasahara qui est décrit dans le 5 document (R. Sakai et M. Kasahara, « ID Based cryptosystems with pairing on elliptic curve », Cryptography ePrint Archive, 2003, M. Groves, « SakaiKasahara Key Encryption (SAKKE) », Internet Engineering Task Force (IETF) Request for Comments: 6508, Février 2012). Pour mettre en oeuvre cet algorithme, on considère une courbe 10 elliptique sur un groupe fini avec un sous-groupe d'ordre q (q étant un grand nombre premier) et un point de la courbe, désigné par P, qui génère ce groupe additif cyclique d'ordre q. On considère également une fonction bilinéaire e(., .), par exemple une fonction bilinéaire de Tate-Lichtenbaum. L'image de la fonction e(., .) 15 générée par les points de la courbe elliptique est un groupe multiplicatif désigné par G d'ordre q également. Pour cet exemple d'algorithmes, on voit donc que deux groupes cycliques sont impliqués, un premier groupe additif de générateur P et d'ordre q et un second groupe multiplicatif G d'ordre q. 20 Cet algorithme de chiffrement utilise ainsi une première fonction complexe ri(,) d'exponentiation modulaire et une seconde fonction r2(,) de multiplication scalaire de points d'une courbe elliptique. Les fonctions h(,) et h'(,) correspondent au premier exemple donné dans le tableau ci-dessus. 25 La figure 4 illustre l'application de l'invention à l'algorithme de Sakai et Kasahara. La première étape 210 de la phase de préparation 201 est appliquée à l'identique de la façon décrite à la figure 2, ainsi la clé secrète x générée par le centre de distribution de clés KDC est transmise au dispositif délégant 30 DGN. 3039022 22 La liste d'éléments gi considérés à l'étape 211 comprend, pour cet exemple, d'une part le générateur e(P,P) du groupe multiplicatif G et d'autre part une liste {idk} d'identités de récepteurs des données chiffrées associées à une clé publique Z du service de gestion de clés. 5 Selon l'application de l'étape 211, le centre de distribution de clés KDC calcule d'une part ri (e(P,P),-x)= e(P,P) -x et transmet ce résultat, d'une façon sécurisée, au dispositif délégant DGN car il s'agit d'un calcul secret qui ne doit être connu que du dispositif délégant DGN. D'autre part, le centre de distribution de clés KDC calcule r2(idi, -x) = 10 Tj= (-x).(idi.P + Z), pour chaque identité de récepteur et transmet ces résultats, qui sont publics, au dispositif délégataire DGT. Le centre de distribution de clés KDC transmet également au dispositif délégataire DGT et au dispositif délégant DGN la liste {idk} des identités des récepteurs des données chiffrées. 15 Pour chiffrer un message `M' à envoyer à un récepteur ayant l'identité idk, le dispositif délégant DGN génère une valeur secrète r=hash2(M I idk), avec hash2() une fonction de hachage utilisée par l'algorithme de base de Sakai et Kasahara. 20 Il applique ensuite l'étape 220 décrite à la figure 2 et transmet la variable secrète dissimulée r' avec l'identité du récepteur idk et le générateur e(P,P) au dispositif délégataire DGT. Si l'identité du récepteur figure parmi celles stockées chez le délégataire DGT, celui ci applique l'étape 221 et calcule ri(e(P,P)f)= 25 e(P,P)r' et r2(idi, r') =T'k = (r').(idk.P + Z). Il applique ensuite l'étape 222 et calcule Vk=h'(Tk,T'k)= Tk =(-x).(idk.P + Z). (r').(idk.P + Z)= (r).(idk.P + Z). Puis il transmet e(P,P)r' et Vk au dispositif délégant DGN. Le calcul Vk correspond à un calcul public tandis que le résultat e(P,P)r' est transmis directement au délégant pour qu'il finalise le calcul secret. 30 A la réception de ces valeurs, le dispositif délégant DGN exécute l'étape 223 pour finaliser le calcul e(P,P)r=h'(e(P,P)r', e(P,P)-x). 3039022 23 Enfin, l'étape 224 finale de chiffrement est appliquée en calculant R=Vk= (r).(idk.P + Z) et S=M CD hashi(e(P,P)r), avec hashi() une fonction de hachage utilisée par l'algorithme de base de Sakai et Kasahara et , avec CD un opérateur OU exclusif binaire. Le message chiffré est (R,S). 5 L'application de l'invention à l'algorithme de Sakai et Kasahara permet au dispositif de chiffrement délégant DGN de n'effectuer qu'une addition modulaire et une seule multiplication modulaire au lieu d'une multiplication scalaire de points d'une courbe elliptique et d'une exponentiation modulaire qui sont réalisées par le dispositif délégataire DGT. 10 La figure 5 schématise l'application de l'invention à l'algorithme de chiffrement à clé publique de Boneh et Boyen qui est décrit dans le document (Dan Boneh et Xavier Boyen « Efficient Selective-ID Secure Identity-Based Encryption Without Random Oracles », EUROCRYPT, 2004). 15 Pour mettre en oeuvre cet algorithme, on considère toujours une courbe elliptique sur un groupe fini avec un sous-groupe d'ordre q (q étant un grand nombre premier) et un point de la courbe, désigné par P, qui génère ce groupe additif cyclique d'ordre q. On considère également trois points 20 P1,P2,P3 de la courbe elliptique qui font partie des paramètres publics de l'algorithme de base. On considère également toujours une fonction bilinéaire e(., .), par exemple une fonction bilinéaire de Tate-Lichtenbaum. L'image de la fonction e(., .) générée par les points de la courbe elliptique est un groupe multiplicatif 25 désigné par G d'ordre q. Les fonctions ri(,), r2(,), h(,) et h'(,) sont identiques à celles utilisées pour l'algorithme de Sakai et Kasahara. Une troisième fonction f*3(x,P)=x.P de multiplication scalaire de points est également utilisée. 30 La première étape 210 de la phase de préparation 201 est appliquée à l'identique de la façon décrite à la figure 2, ainsi la clé secrète x générée par 3039022 24 le centre de distribution de clés KDC est transmise au dispositif délégant DGN. La liste d'éléments gi considérés à l'étape 211 comprend, pour cet exemple, d'une part le générateur e(Pi,P2) du groupe multiplicatif G et 5 d'autre part une liste {idk} d'identités de récepteurs des données chiffrées. Selon l'application de l'étape 211, le centre de distribution de clés KDC calcule d'une part r1(e(131,P2),-x)= e(P1,P2) -x et transmet ce résultat, d'une façon sécurisée, au dispositif délégant DGN car il s'agit d'un calcul secret qui ne doit être connu que du dispositif délégant DGN. 10 D'autre part, le centre de distribution de clés KDC calcule r2(idi, -x) = Tj= (-x).(hash2(idi).P1 + P3), pour chaque identité de récepteur et transmet ces résultats, qui sont publics, au dispositif délégataire DGT. hash2() est une fonction de hachage utilisée par l'algorithme et , CD un opérateur OU exclusif binaire. 15 Le centre de distribution de clés KDC calcule également la valeur (- x).P et la transmet au dispositif délégataire DGT. Le centre de distribution de clés KDC transmet également au dispositif délégataire DGT et au dispositif délégant DGN la liste {idk} des identités des récepteurs des données chiffrées. 20 Pour chiffrer un message 'M' à envoyer à un récepteur ayant l'identité idk, le dispositif délégant DGN génère une valeur secrète aléatoire r dans ZZq. Il applique ensuite l'étape 220 décrite à la figure 2 et transmet la variable secrète dissimulée r' avec l'identité du récepteur idk et les 25 générateurs e(Pi,P2) et P au dispositif délégataire DGT. Si l'identité du récepteur figure parmi celles stockées chez le délégataire DGT, celui-ci génère le générateur associé à idk et applique l'étape 221 en calculant ri(e(131,P2), r')= e(131,P2)r', r2(idi, r') =T'k = (r').(hash2(idk).P1 + P3) et f*3(r',P)=r'.P. 3039022 25 Il applique ensuite l'étape 222 et calcule Vk=h'(Tk,T'k)= Tk + T'k =(-x).( hash2(idk).P1 + P3) .(r').(hash2(idk).P1 + P3)= (r).(hash2(idk).P1 + P3). Dans l'étape 222, le délégataire DGT calcule également h'(r'P, (-x).P)=r.P. Puis il transmet e(P1,P2)r', r.P et Vk au dispositif délégant DGN. Les 5 calculs Vk et rP correspondent à des calculs publics tandis que le résultat e(P1,P2)r' est transmis directement au délégant pour qu'il finalise le calcul secret. A la réception de ces valeurs, le dispositif délégant DGN exécute l'étape 223 pour finaliser le calcul e(Pi,P2)r=h'(e(Pi,P2)r', e(131,P2) x). 1 0 Enfin, l'étape 224 finale de chiffrement est appliquée en calculant c= M CD hashi (e(P,P)r), avec hashi() une fonction de hachage utilisée par l'algorithme de base de Boneh et Boyen, C1 = r.P et C2= Vk. Le message chiffré obtenu est (c, C1, C2). 15 Les exemples décrits ci-dessus d'application de l'invention à deux algorithmes de chiffrement basés sur l'identité peuvent s'appliquer de façon similaire à d'autres algorithmes dérivés de ces algorithmes. L'invention s'applique également aux algorithmes de chiffrement 20 basés sur les attributs. Dans les algorithmes de chiffrement basés sur l'identité, la clé publique est dérivée de l'identité de l'utilisateur. Dans les algorithmes de chiffrement basés sur les attributs, l'identité n'est pas atomique, mais elle est plutôt définie comme étant un ensemble d'attributs, et les clés publiques sont associées à des attributs. Les données chiffrées 25 peuvent être déchiffrées avec des clés d'utilisateurs sur lesquelles la politique de sécurité est construite. La figure 6 schématise l'application de l'invention à l'algorithme de chiffrement KP-ABE qui est décrit dans le document (V. Goyal, O. Pandey, A. 30 Sahai, and B. Waters, "Attribute-based encryption for fine-grained access control of encrypted data," in Proceedings of the 13th ACM conference on 3039022 26 Computer and communications security, pp. 89-98, 2006.). Cet algorithme utilise un ensemble d'attributs pour décrire la donnée chiffrée et construit la politique de sécurité dans la clé privée de l'utilisateur. Si les attributs de la donnée chiffrée satisfont la structure d'accès définie dans la clé privée de 5 l'utilisateur, l'utilisateur peut déchiffrer la donnée chiffrée. L'algorithme considère principalement trois acteurs : l'expéditeur (p. ex., le propriétaire des données), le récepteur (p. ex. l'utilisateur des données), et l'autorité (également, appelée service de gestion des clés) dont le rôle est de générer les clés publiques et privées du récepteur. Ainsi, seules les personnes qui 10 ont les attributs qui satisfont à la politique d'accès peuvent accéder aux données chiffrées. Pour mettre en oeuvre cet algorithme, on considère toujours une courbe elliptique sur un groupe fini avec un sous-groupe d'ordre q (q étant un 15 grand nombre premier) et un point de la courbe, désigné par P, qui génère ce groupe additif cyclique d'ordre q. On considère également toujours une fonction bilinéaire e(., .), par exemple une fonction bilinéaire de Tate-Lichtenbaum. L'image de la fonction e(., .) générée par les points de la courbe elliptique est un groupe multiplicatif 20 désigné par G d'ordre q. Les fonctions ri(,), r2(,), h(,) et h'(,) sont identiques à celles utilisées pour l'algorithme de Sakai et Kasahara. La première étape 210 de la phase de préparation 201 est appliquée à 25 l'identique de la façon décrite à la figure 2, ainsi la clé secrète x générée par le centre de distribution de clés KDC est transmise au dispositif délégant DGN. La liste d'éléments gi considérés à l'étape 211 comprend, pour cet exemple, d'une part le générateur e(P,P) du groupe multiplicatif G et d'autre 30 part une liste {A1} de clés publiques associées aux attributs d'une liste d'attributs U. 3039022 27 Selon l'application de l'étape 211, le centre de distribution de clés KDC calcule d'une part ri (e(P,P),-x)= e(P,P) -x et transmet ce résultat, d'une façon sécurisée, au dispositif délégant DGN car il s'agit d'un calcul secret qui ne doit être connu que du dispositif délégant DGN. 5 D'autre part, le centre de distribution de clés KDC calcule f*2(Ai, -x) = Tj= (-x).(Ai), pour chaque clé publique Ai et transmet Ti au dispositif délégataire DGT. Pour chiffrer un message `M' associé à une suite d'attributs AcT, le 10 dispositif délégant DGN génère une valeur secrète aléatoire r dans ZZq. Il applique ensuite l'étape 220 décrite à la figure 2 et transmet la variable secrète dissimulée r' avec la suite d'attributs AcT au dispositif délégataire DGT. Le délégataire DGT applique l'étape 221 en calculant ri (e(P,P), r')= 15 e(P,P)r' et f*2(Ai, r') =T'k = (r').(Ak), pour toutes les clés publiques Ak associées aux attributs appartenant à la suite AcT. Ak est un point d'une courbe elliptique appartenant au groupe généré par P. Il applique ensuite l'étape 222 et calcule Vk=h'(Tk,T'k)= Tk + =(-x).( Ak) .(r').( Ak)= (r).( Ak) pour toutes les clés publiques Ak associées aux 20 attributs appartenant à la suite ACT. Puis il transmet e(P,P)r', et Vk au dispositif délégant DGN. Le calcul Vk correspond à un calcul public tandis que le résultat e(P,P)r' est transmis directement au délégant pour qu'il finalise le calcul secret. A la réception de ces valeurs, le dispositif délégant DGN exécute 25 l'étape 223 pour finaliser le calcul e(P,P)r=h'(e(P,P)r', e(P,P)-x). Enfin, l'étape 224 finale de chiffrement est appliquée en calculant le message chiffré CT = (AcT, E= M.hash(e(P,P)r), {E1 = iE u). hash() désigne une fonction de hachage. 30 La figure 7 schématise l'application de l'invention à l'algorithme de chiffrement CP-ABE décrit dans (J. Bethencourt, A. Sahai, and B. Waters, 3039022 28 "Ciphertext-policy attribute-based encryption," in Proceedings of IEEE Symposium on Security and Privacy, pp. 321V334, 2007). La structure d'accès dans l'algorithme CP-ABE est construite pour chaque donnée chiffrée, ce qui lui confère plus de flexibilité par rapport à l'algorithme KP5 ABE. L'ensemble d'attributs descriptifs sont associés aux utilisateurs et leurs clés privées. Si l'utilisateur possède les attributs qui satisfont la structure d'accès d'une donnée chiffrée, il peut la déchiffrer. Comme pour le KP-ABE, l'algorithme considère aussi trois acteurs : l'expéditeur, le récepteur, et l'autorité dont le rôle est de générer les clés publiques et privées du 10 récepteur. Pour mettre en oeuvre l'algorithme de chiffrement CP-ABE, on considère toujours une courbe elliptique sur un groupe fini avec un sous-groupe d'ordre q (q étant un grand nombre premier) et un point de la courbe, 15 désigné par P, qui génère ce groupe additif cyclique d'ordre q. On considère également toujours une fonction bilinéaire e(., .), par exemple une fonction bilinéaire de Tate-Lichtenbaum. L'image de la fonction e(., .) générée par les points de la courbe elliptique est un groupe multiplicatif désigné par G d'ordre q. 20 Les fonctions ri(,), r2(,), h(,) et h'(,) sont identiques à celles utilisées pour l'algorithme de Sakai et Kasahara. La première étape 210 de la phase de préparation 201 est appliquée à l'identique de la façon décrite à la figure 2, ainsi la clé secrète x générée par 25 le centre de distribution de clés KDC est transmise au dispositif délégant DGN. La liste d'éléments gi considérés à l'étape 211 comprend, pour cet exemple : - l'élément e(P,P)° avec a un paramètre public de l'algorithme, 30 - l'élément 13.P, avec 13 un paramètre public de l'algorithme, - le générateur P, 3039022 29 - les éléments {H(j)} avec H(.) une fonction de hachage appliquée à une liste d'indices d'attributs U. La fonction H(.) retourne une valeur dans le groupe G et est donnée comme paramètre public par le service de gestion des clés KDC. 5 Selon l'application de l'étape 211, le centre de distribution de clés KDC calcule les opérations complexes suivantes : - ri(e(P,P) °,-x)= (e(P,P) °) - r2(13. P,-x)=(-x).13. P 10 - r2(P,-x)=(-x).P - f*2(H(j),-x)=(-x).H(j), pour tous les attributs de la liste U. Le centre de distribution de clés KDC transmet le résultat (e(P,P) °) d'une façon sécurisée, au dispositif délégant DGN car il s'agit d'un calcul 15 secret qui ne doit être connu que du dispositif délégant DGN. D'autre part, le centre de distribution de clés KDC transmet les autres résultats de calculs délégués (-x).13.P, (-x).P, (-x).H(j) au dispositif délégataire DGT. 20 Pour chiffrer un message 'M' associé à une structure d'arbre d'accès Ac-r_CP, le dispositif délégant DGN génère une valeur secrète aléatoire r dans ZZq et crée une structure d'accès selon le principe connu de l'algorithme KPABE. Selon ce principe, un polynôme 40 associé à chaque noeud i de l'arbre est généré selon une approche descendante tel que qi(0)= n -,parent(i)(index(i)), 25 commençant par le noeud racine j de l'arbre tel que qi(0)= r, avec parent() et index()des fonctions qui retournent respectivement le parent du noeud et l'indice du noeud par rapport à ses frères. Il applique ensuite l'étape 220 décrite à la figure 2 en calculant r'=h(r,x) et q';(0)=h(4(0),x) pour chaque noeud feuille i dans l'arbre d'accès. 30 Le dispositif délégant DGN transmet ensuite, au dispositif délégataire DGT, la variable secrète dissimulée r', la variable secrète dissimulée q';(0) et 3039022 30 les éléments att(i), avec att() une fonction qui retourne l'attribut associé au noeud i dans l'arbre d'accès. Le délégataire DGT applique l'étape 221 en calculant ri (e(P,P) r')= 5 (e(P,P) °I) r', r2(13.P, r') = (r').(13.P), f*2(P, q';(0))= q'i(0).P et r2(H(att(i)), q';(0))= q'i(0). H(att(i)) pour chaque noeud feuille i de l'arbre d'accès. Il applique ensuite l'étape 222 en calculant les éléments suivants : - V1 k = h'((-x). 13.P, r'.13.P)= (-x) 13.P + r'.13.P = r. 13.P, - V2 k= h'((-x).P, q'i(0).P)= 4(0).P, pour chaque noeud feuille i de l'arbre 10 d'accès, - V3k=h'((-x). H(att(i)), q'i(0). H(att(i))) = 4(0). H(att(i)) pour chaque noeud feuille i de l'arbre d'accès. Le délégataire DGT transmet ensuite les valeurs calculées (e(P,P) cl) r', 15 V1k,V2k,V3k au dispositif délégant DGN. Les calculs V1k,V2k,V3k correspondent à des calculs publics tandis que le résultat (e(P,P) a) r est transmis directement au délégant pour qu'il finalise le calcul secret. A la réception de ces valeurs, le dispositif délégant DGN exécute l'étape 223 pour finaliser le calcul (e(P,P) °) r=h'((e(P,P) cl) r', (e(P,P) °) -x). 20 Enfin, l'étape 224 finale de chiffrement est appliquée en calculant le message chiffré CT = (Ac-r-cp, C' = M.hash((e(P,P) ci)r,C= r. 13.P, {Ci= 4(0).P, C*; = 4(0).H(att(i))1 ;Ey) , où Y est l'ensemble des noeuds feuilles de l'arbre d'accès ACT-CP. 25 Les exemples décrits ci-dessus d'application de l'invention à deux algorithmes de chiffrement basés sur les attributs peuvent s'appliquer de façon similaire à d'autres algorithmes dérivés des algorithmes CP-ABE et KP-ABE. 30 Selon une variante de réalisation de l'invention, pour mitiger une attaque de collusion entre l'utilisateur des données et le délégataire, le centre 3039022 31 de gestion de clés KDC génère plusieurs valeurs secrètes chacune associée à un utilisateur (ou à un groupe d'utilisateurs) qui sont envoyées au délégant durant la phase de préparation. Pour limiter l'usage de la mémoire du dispositif délégant, ces valeurs secrètes peuvent être stockées par le 5 dispositif délégataire(s) d'une manière chiffrée (chiffrement symétrique p. ex. AES). Selon une autre variante de réalisation de l'invention, la phase de préparation 201 peut être effectuée périodiquement et pas pour chaque 10 message à chiffrer. Cette variante s'applique aux algorithmes de chiffrement d'ElGamal, les algorithmes de chiffrement basés sur les attributs avec la politique de sécurité construite sur les clés d'utilisateurs, et certains algorithmes basés sur l'identité. 15 La présente invention peut s'implémenter à partir d'éléments matériel et/ou logiciel. Elle peut être disponible en tant que produit programme d'ordinateur sur un support lisible par ordinateur. Le support peut être électronique, magnétique, optique ou électromagnétique. En particulier, le dispositif délégant DGN et le dispositif délégataire 20 DGT peuvent utiliser un ou plusieurs circuits électroniques dédiés ou un circuit à usage général. La technique de l'invention peut se réaliser sur une machine de calcul reprogrammable (un processeur ou un micro contrôleur par exemple) exécutant un programme comprenant une séquence d'instructions, ou sur une machine de calcul dédiée (par exemple un 25 ensemble de portes logiques comme un FPGA ou un ASIC, ou tout autre module matériel). Selon un mode de réalisation, le dispositif délégant DGN et le dispositif délégataire DGT comprennent au moins un support de stockage lisible par ordinateur (RAM, ROM, EEPROM, mémoire flash ou une autre 30 technologie de mémoire, CD-ROM, DVD ou un autre support à disque optique, cassette magnétique, bande magnétique, disque de stockage 3039022 32 magnétique ou un autre dispositif de stockage, ou un autre support de stockage non transitoire lisible par ordinateur) codé avec un programme d'ordinateur (c'est-à-dire plusieurs instructions exécutables) qui, lorsqu'il est exécuté sur un processeur ou plusieurs processeurs, effectue les fonctions 5 des modes de réalisation décrits précédemment. A titre d'exemple d'architecture matérielle adaptée à mettre en oeuvre l'invention, un dispositif selon l'invention peut comporter un bus de communication auquel sont reliés une unité centrale de traitement ou microprocesseur (CPU, acronyme de « Central Processing Unit » en 10 anglais), lequel processeur peut être "multi-core" ou "many-core"; une mémoire morte (ROM, acronyme de « Read Only Memory » en anglais) pouvant comporter les programmes nécessaires à la mise en oeuvre de l'invention; une mémoire vive ou mémoire cache (RAM, acronyme de « Random Access Memory » en anglais) comportant des registres adaptés à 15 enregistrer des variables et paramètres créés et modifiés au cours de l'exécution des programmes précités ; et une interface de communication ou E/S (I/O acronyme de « lnput/ouput » en anglais) adaptée à transmettre et à recevoir des données. Dans le cas où l'invention est implantée sur une machine de calcul 20 reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) peut être stocké dans ou sur un médium de stockage amovible (par exemple une carte SD, un DVD ou Bluray, un moyen de stockage de masse tel que un disque dur e.g. un SSD) ou non-amovible, volatile ou non-volatile, ce médium de stockage étant lisible partiellement ou totalement par 25 un ordinateur ou un processeur. Le support lisible par ordinateur peut être transportable ou communicable ou mobile ou transmissible (i.e. par un réseau de télécommunication 2G, 3G, 4G, Wifi, BLE, fibre optique ou autre). La référence à un programme d'ordinateur qui, lorsqu'il est exécuté, effectue l'une quelconque des fonctions décrites précédemment, ne se limite 30 pas à un programme d'application s'exécutant sur un ordinateur hôte unique. Au contraire, les termes programme d'ordinateur et logiciel sont utilisés ici 3039022 33 dans un sens général pour faire référence à tout type de code informatique (par exemple, un logiciel d'application, un micro logiciel, un microcode, ou toute autre forme d'instruction d'ordinateur) qui peut être utilisé pour programmer un ou plusieurs processeurs pour mettre en oeuvre des aspects 5 des techniques décrites ici. Les moyens ou ressources informatiques peuvent notamment être distribués ("Cloud computing"), éventuellement selon des technologies de pair-à-pair. Le code logiciel peut être exécuté sur n'importe quel processeur approprié (par exemple, un microprocesseur) ou coeur de processeur ou un ensemble de processeurs, qu'ils soient prévus 10 dans un dispositif de calcul unique ou répartis entre plusieurs dispositifs de calcul (par exemple tels qu'éventuellement accessibles dans l'environnement du dispositif). Le code exécutable de chaque programme permettant au dispositif programmable de mettre en oeuvre les processus selon l'invention, peut être stocké, par exemple, dans le disque dur ou en mémoire morte. De 15 manière générale, le ou les programmes pourront être chargés dans un des moyens de stockage du dispositif avant d'être exécutés. L'unité centrale peut commander et diriger l'exécution des instructions ou portions de code logiciel du ou des programmes selon l'invention, instructions qui sont stockées dans le disque dur ou dans la mémoire morte ou bien dans les autres éléments de 20 stockage précités. L'invention s'applique au contexte général des réseaux à faibles ressources dans lequel un dispositif contraint en ressources souhaite chiffrer par clé publique une donnée (ou une clé symétrique). La donnée chiffrée est 25 soit envoyée par la suite à un ou plusieurs récepteurs ou stockée dans un dépôt de données (p. ex. dans le cas de solutions de stockage en nuage) et le chiffrement permet de contrôler l'accès à cette donnée en utilisant le filtre cryptographique. L'invention peut s'appliquer à de nombreux contextes différents. On 30 décrit à présent plusieurs applications possibles à titre d'illustration. Les exemples donnés ci après ne doivent pas être interprétés comme limitant le 3039022 34 périmètre de l'invention. Au contraire, à partir de ces exemples, l'Homme du métier saura, sans difficultés, élargir l'application de l'invention à d'autres systèmes ou dispositifs qui nécessitent le chiffrement de données sensibles. 5 Un premier exemple d'application concerne le domaine des capteurs connectés qui mesurent des paramètres physiques de leur environnement (p. ex. température, accélération, vidéo de surveillance) transmettent les données mesurées à une base de données en ligne (p. ex. solution de stockage en nuage, ou « cloud » en anglais) pour permettre à des utilisateurs 10 de ces données d'y accéder sur Internet. Les données mesurées peuvent donner des informations sur les bâtiments, les réseaux d'électricité et d'infrastructures ainsi que sur les systèmes de transports et de communications. Certaines de ces informations peuvent être sensibles ou leur accès peut être payant. En particulier, les serveurs qui hébergent les 15 données peuvent appartenir à des tiers. L'externalisation des données sensibles à des serveurs tiers nécessite leur protection par chiffrement. Le chiffrement à clé publique constitue l'une des solutions qui permet, notamment, à des utilisateurs de données d'accéder aux données stockées en ligne en utilisant leurs clés publiques, leurs identités, ou des attributs qui 20 satisfont la politique d'accès des données. Toutefois, à cause des coûts liés au chiffrement à clé publique en termes de consommation d'énergie et de temps d'exécution, certains capteurs qui remontent les données au serveur en ligne sont limités en ressources et ne peuvent pas chiffrer les données par eux même ni à travers les serveurs tiers en raison du risque de dévoiler 25 les données à des tierces parties. Grâce à l'invention, les capteurs peuvent réaliser des calculs de chiffrement à clé publique de données assistés par des tierces parties sans révéler les données à chiffrer à ces dernières. Ainsi, les données sont protégées dès leur création par les capteurs, et sont par la suite transmises chiffrées sur Internet et stockées chiffrées dans des 30 serveurs tiers. Dans ce cas d'application, le dispositif délégant est un capteur 3039022 connecté et le dispositif délégataire est, par exemple, un dispositif de calcul en nuage ou « cloud computing ». Une autre application possible concerne les crypto-processeurs de sécurité : certains crypto-processeurs de sécurité (p. ex. carte à puces, carte 5 SIM, module matériel de sécurité, dispositif de sécurité personnelle) peuvent utiliser l'invention pour accélérer le calcul de chiffrement à clé publique, en délégant les opérations de calcul les plus coûteuses à la plateforme ou à l'ordinateur sur lequel le crypto-processeur est embarqué ou connecté en périphérique. Les calculs délégués ne révèlent pas les données à chiffrer, et 10 donc ils peuvent être réalisés dans des zones non fiables. Les applications nécessitant du chiffrement à clé publique peuvent varier d'une simple authentification par mots de passe où les mots de passe sont transmis dans le réseau chiffré, à un chiffrement des données sensibles dans l'ordinateur ou la plateforme non fiable. Dans ce cas d'application, le dispositif délégant 15 est un crypto-processeur de sécurité et le dispositif délégataire est une plateforme ou un ordinateur sur lequel le crypto-processeur est embarqué ou connecté en périphérique. Une autre application possible concerne les réseaux de capteurs multimédia sans-fil. Un réseau de capteurs multimédia est un réseau de 20 noeuds interconnectés qui sont capables de fournir des flux vidéo, audio, et images fixes. Outre leur capacité à récupérer des données multimédia, ils sont également en mesure de collecter, traiter, corréler et fusionner des données qui viennent de plusieurs sources de données hétérogènes. Ils sont utilisés dans plusieurs applications comme par exemples, dans 25 l'automatisation domestique, l'évitement de trafic et les systèmes de contrôle et d'exécution, les prestations de soins de santé, les services pour l'assistance à l'enfance et à la vieillesse, et le contrôle et la commande des processus industriels. Certaines exigences de qualité de service spécifiques à l'application concernent le temps de latence pour délivrer les données. 30 Dans ce contexte, l'invention permet d'accélérer les processus de chiffrement des données ou des clés symétriques de chiffrement, tout en 3039022 36 garantissant que les données chiffrées ne sont pas dévoilées à des entités externes. Une autre application possible concerne la diffusion de données via le protocole IP. Dans certains exemples, comme un système de 5 vidéosurveillance sur IP, les données générées par ce système peuvent ne pas être stockées dans un entrepôt de données mais diffusées en permanence sur Internet aux clients via un canal IP de publication/abonnement. Le système de vidéosurveillance doit être constamment à l'affût de tout événement, en utilisant des capteurs de 10 mouvement, des caméras, etc. Les données transmises sont chiffrées afin de contrôler l'accès aux données. L'invention permet d'accélérer le processus de chiffrement à clé publique des données en permettant aux composants du système de vidéo surveillance de déléguer des calculs à des entités externes (p. ex. solutions de calcul en nuage) dans le réseau qui ont 15 des capacités de calcul plus importantes que les capacités des composants du système. Avec la solution proposée dans l'invention, les informations sont diffusées plus rapidement dans le réseau IP aux clients autorisés d'une manière sécurisée. L'invention peut également s'appliquer aux réseaux de capteurs 20 hétérogènes. Dans un réseau de capteurs fournissant divers services, les capteurs peuvent avoir des fonctionnalités et des ressources différentes. Certains capteurs peuvent avoir des capacités de calcul et de stockage relativement importantes qui leur permettent de réaliser des opérations cryptographiques coûteuses d'une manière optimisée en termes de 25 consommation d'énergie et de temps de latence. Ces capteurs peuvent offrir des services de calcul externalisés pour d'autres capteurs ayant de moindres ressources, permettant à ces derniers d'être assistés dans le chiffrement de données avec une clé publique sans révéler leurs données grâce à la solution proposée dans l'invention. De cette façon, il est possible de créer 30 des nouvelles approches de collaboration entre les capteurs du réseau hétérogène. 3039022 37 L'invention peut encore s'appliquer à des capteurs communicants dans un réseau électrique intelligent. Le réseau électrique intelligent utilise un réseau de communication avancé permettant de connecter les clients aux fournisseurs de services d'électricité. Afin de ne pas accroître la vulnérabilité 5 du réseau électrique, le réseau de communication doit être protégé, et les données sensibles du réseau électrique doivent être chiffrées. Cependant, plusieurs tâches peuvent être réalisées sur les données par des utilisateurs distincts, par exemples, les techniciens d'électricité chargés de la maintenance doivent contrôler le réseau, les calculs et l'audit des coûts sont 10 réalisés par l'unité d'audit, et les planificateurs du réseau sont impliqués pour prédire le comportement futur du réseau. Toutes les données protégées doivent être accédées seulement par les utilisateurs responsables d'une tâche particulière. Un contrôle d'accès sur les données à grain fin doit être déployé, au moyen par exemple de chiffrements basés sur les attributs où 15 seuls les utilisateurs autorisés ayant les attributs appropriés peuvent avoir accès aux données. De plus, quand des données doivent être diffusées d'une manière sécurisée et ciblée à un groupe de clients ayant des attributs particuliers (p. ex. hôpitaux, usines), les mécanismes de chiffrement basés sur les attributs sont réputés être plus efficaces et flexibles que les 20 mécanismes de communication de groupes traditionnels. Les mécanismes de chiffrement basés sur les attributs peuvent être utilisés d'une manière généralisée dans le réseau électrique intelligent pour protéger les données sensibles, même lorsqu'il s'agit, grâce à la solution proposée dans l'invention, de sources d'informations limitées en ressources p. ex. les 25 capteurs d'instrumentation et de contrôle et les compteurs intelligents qui sont au coeur du réseau électrique intelligent et visent à maintenir des niveaux de performance et de sureté élevés dans le réseau. REVENDICATIONS1. Méthode de chiffrement asymétrique à clé publique, exécutée par un dispositif délégant (DGN), ladite méthode impliquant l'exécution d'un algorithme de chiffrement comprenant au moins une opération mathématique f*(,) complexe, ladite méthode comprenant les étapes de : - Générer (220) une variable secrète r, - Dissimuler (220) la variable secrète r pour obtenir une variable secrète dissimulée r', - Transmettre la variable secrète dissimulée r' à un dispositif délégataire (DGT), - Déléguer (221,222) au dispositif délégataire (DGT) au moins une exécution de ladite opération mathématique f*(,) appliquée sur la variable secrète dissimulée r', - Recevoir au moins un résultat (fk,v1) du calcul délégué, - Exécuter (223,224) l'algorithme de chiffrement à l'aide d'au moins un résultat (fk,v1) reçu du calcul délégué. 2. Méthode de chiffrement asymétrique à clé publique selon la revendication 1 dans laquelle l'opération mathématique f*(,) est une opération pour laquelle le problème du logarithme discret est difficile. 3. Méthode de chiffrement asymétrique à clé publique selon la revendication 2 dans laquelle l'opération mathématique f*(,) est une opération d'exponentiation modulaire ou une opération de multiplication scalaire de points d'une courbe elliptique. 4. Méthode de chiffrement asymétrique à clé publique selon l'une des revendications 1 à 3 dans laquelle : - la variable secrète r est dissimulée (220) à l'aide d'une clé secrète x, 3039022 39 - l'exécution déléguée (221) de la dite opération mathématique f*(,) est réalisée en prenant comme première opérande au moins un élément gi d'un groupe cyclique et comme seconde opérande la variable secrète dissimulée r', 5 - ladite méthode comprend en outre une étape de déduction (223) d'au moins un résultat vk de l'exécution (222) de ladite opération mathématique f*(,) ayant comme première opérande au moins un élément gi d'un groupe cyclique et comme seconde opérande la variable secrète r, à partir dudit résultat (t' k,vi) du calcul délégué et 10 de la clé secrète x. 5. Méthode de chiffrement à clé publique selon la revendication 4 dans laquelle la variable secrète r est dissimulée (220) en appliquant un premier opérateur h(.) à la variable secrète r et à la clé secrète x. 15 6. Méthode de chiffrement à clé publique selon l'une des revendications 4 ou 5 comprenant une étape de transmission, au dispositif délégataire (DGT), d'au moins un élément gi d'un groupe cyclique ou d'une 20 information permettant de déduire cet élément. 7. Méthode de chiffrement à clé publique selon la revendication 6 comprenant les étapes de : - recevoir au moins un résultat t'k, appelé premier résultat 25 intermédiaire, du calcul délégué (221) au dispositif délégataire (DGT), exécuté en prenant comme première opérande de ladite opération mathématique f*(,), au moins un élément gk associé à un calcul secret parmi les éléments gi reçus par le dispositif délégataire (DGT), 30 - en déduire (223) le résultat vk de l'application de ladite opération mathématique f*(,) à la variable secrète r et audit élément gk. 3039022 40 8. Méthode de chiffrement à clé publique selon la revendication 7 dans laquelle l'étape de déduction (223) d'au moins un résultat vk comprend les étapes de : - Recevoir, via un canal protégé en intégrité et en confidentialité, un 5 résultat tk, appelé second résultat intermédiaire, de l'application (211) de ladite opération mathématique f*(,) audit élément gk et la clé secrète x, - appliquer un second opérateur h'(.) au premier résultat intermédiaire t'k et au second résultat intermédiaire tk. 10 9. Méthode de chiffrement à clé publique selon la revendication 8 comprenant les étapes de : - recevoir, du dispositif délégataire (DGT), au moins un résultat v, de l'application (222) de ladite opération mathématique f*(,) à la 15 variable secrète r et à au moins un élément g, associé à un calcul public, parmi les éléments gi reçus par le dispositif délégataire (DGT), - ledit au moins un résultat v, étant calculé (222) par le dispositif délégataire (DGT) en appliquant ledit second opérateur h'(.) à au 20 moins un calcul t', délégué au dispositif délégataire (DGT), exécuté en prenant comme première opérande de ladite opération mathématique f*(,), ledit au moins un élément g, et à au moins un résultat t, de l'application de ladite opération mathématique f*(,) audit au moins un élément g, et à la clé secrète x, 25 10. Méthode de chiffrement à clé publique selon la revendication 9 dans laquelle l'opération mathématique f*(,) le premier opérateur h(.) et le second opérateur h'(.) sont liés ensemble par une relation d'homomorphisme. 30 3039022 41 11. Méthode de chiffrement à clé publique selon la revendication 10 dans laquelle le premier opérateur h(.) est une addition dans un groupe additif. 12. Méthode de chiffrement à clé publique selon la revendication 11 dans 5 laquelle l'opération mathématique f*(,) est une opération d'exponentiation modulaire et le second opérateur h'(.) est une multiplication dans un groupe multiplicatif. 13. Méthode de chiffrement à clé publique selon la revendication 11 dans 10 laquelle l'opération mathématique f*(,) est une opération de multiplication scalaire de points d'une courbe elliptique et le second opérateur h'(.) est une addition dans un groupe additif. 14. Méthode de chiffrement à clé publique selon l'une des revendications 4 à 15 13 dans laquelle la clé secrète x est fournie au dispositif délégant (DGN) par un centre de gestion de clés (KDC) ayant une liaison protégée en intégrité et en confidentialité avec le dispositif délégant (DGN) et le dispositif délégataire (DGT). 20 15. Méthode de chiffrement à clé publique selon l'une des revendications 4 à 14 dans laquelle le résultat d'un calcul (tk,ti) dépendant de la clé secrète x est fourni au dispositif délégataire (DGT) par un centre de gestion de clés (KDC) ayant une liaison protégée en intégrité et en confidentialité avec le dispositif délégant (DGN) et le dispositif délégataire (DGT). 25 16. Méthode de chiffrement à clé publique selon l'une des revendications 4 à 15 dans laquelle on utilise plusieurs clés secrètes xi associées à plusieurs récepteurs distincts d'un message M chiffré. 30 17. Méthode de chiffrement à clé publique selon l'une des revendications précédentes dans laquelle ledit algorithme de chiffrement est un algorithme de ElGamal ou un algorithme de chiffrement basé sur l'identité ou un algorithme de chiffrement basé sur les attributs. 3039022 42 18. Méthode de délégation de calcul dans l'exécution d'un algorithme de chiffrement comprenant au moins une opération mathématique f*(,) complexe et étant exécutée par un dispositif délégant (DGN), ladite 5 méthode étant exécutée par un dispositif délégataire (DGT) et comprenant les étapes de : - recevoir une variable secrète dissimulée r', - exécuter (221) au moins un calcul délégué de ladite opération mathématique f*(,) appliquée sur la variable secrète dissimulée r', 10 - transmettre au moins un résultat (fk,v1) du calcul délégué au dispositif délégant (DGN). 19. Méthode de délégation de calcul selon la revendication 18 comprenant les étapes de : 15 - recevoir du dispositif délégant (DGN) au moins un élément gi d'un groupe cyclique ou une information permettant de déduire cet élément, - exécuter (221) ledit au moins un calcul délégué de ladite opération mathématique f*(,) en prenant comme première opérande ledit au 20 moins un élément gi et comme seconde opérande la variable secrète dissimulée r'. 20. Méthode de délégation de calcul selon la revendication 19 comprenant l'étape de transmettre, au dispositif délégant (DGT), au moins un résultat 25 t'k, appelé premier résultat intermédiaire, dudit calcul délégué (221), exécuté en prenant comme première opérande de ladite opération mathématique f*(,), au moins un élément gk associé à un calcul secret parmi les éléments gi reçus. 30 21. Méthode de délégation de calcul selon la revendication 20 comprenant les étapes de : 3039022 43 - Recevoir au moins un résultat t, de l'application (211) de ladite opération mathématique f*(,) à au moins un élément g, associé à un calcul public, parmi les éléments gi reçus, et à une clé secrète x, 5 - Calculer (222) au moins un résultat v, en appliquant un opérateur h'(.) à au moins un calcul t', délégué, exécuté en prenant comme première opérande de ladite opération mathématique f*(,), ledit au moins un élément g, et à audit au moins un résultat 10 22. Méthode de délégation de calcul selon l'une des revendications 18 à 21 dans laquelle l'opération mathématique f*(,) est une opération d'exponentiation modulaire ou de multiplication scalaire de points d'une courbe elliptique. 15 23. Dispositif de chiffrement délégant (DGT) comprenant un calculateur configuré pour exécuter la méthode de chiffrement à clé publique selon l'une des revendications 1 à 17. 24. Dispositif de calcul délégataire (DGN) comprenant un calculateur 20 configuré pour exécuter la méthode de délégation de calcul selon l'une des revendications 18 à 22. 25. Système de chiffrement à délégation de calculs comprenant un dispositif de chiffrement délégant (DGT) selon la revendication 23, un dispositif de 25 calcul délégataire (DGN) selon la revendication 24 et un centre de gestion de clés (KDC) configuré pour fournir au dispositif de chiffrement délégant (DGT) et au dispositif de calcul délégataire (DGN) une clé secrète x ou le résultat d'un calcul (tk,t,) dépendant d'une clé secrète x. 30 26. Système de chiffrement à délégation de calculs selon la revendication 25 dans lequel la liaison entre le dispositif de chiffrement délégant (DGT) et le dispositif de calcul délégataire (DGN) est protégée en intégrité. 3039022 44 27.Système de chiffrement à délégation de calculs selon l'une des revendications 25 à 26 dans lequel la liaison entre le centre de gestion de clés (KDC) et le dispositif de chiffrement délégant (DGT) d'une part et le 5 centre de gestion de clés (KDC) et le dispositif de calcul délégataire (DGN) d'autre part est protégée en intégrité et en confidentialité. 28. Programme d'ordinateur comportant des instructions pour l'exécution de la méthode de chiffrement à clé publique selon l'une quelconque des 10 revendications 1 à 17, ou pour l'exécution de la méthode de délégation de calcul selon l'une quelconque des revendications 18 à 22, lorsque le programme est exécuté par un processeur. 29.Support d'enregistrement lisible par un processeur sur lequel est 15 enregistré un programme comportant des instructions pour l'exécution de la méthode de chiffrement à clé publique selon l'une quelconque des revendications 1 à 17, ou pour l'exécution de la méthode de délégation de calcul selon l'une quelconque des revendications 18 à 22, lorsque le programme est exécuté par un processeur. 20