FR 2913153 A1 20080829 FR 0701450 A 20070228 CHIFFREMENT BASE SUR IDENTITE, La présente invention concerne les techniques de chiffrement de données ou de messages basées sur identité. Les schémas de chiffrement basés sur l'identité, ci-après appelés 5 schémas IBE ("identity-based encryption"), ont été introduits afin de faciliter la phase de chiffrement de messages. Un schéma IBE permet à un expéditeur de chiffrer un message pour un destinataire, sans avoir à mémoriser un certificat de ce destinataire ou une clé publique décorrélée de son identité. La clé publique du destinataire est en effet 10 déduite de son identité. Un schéma IBE peut notamment servir au chiffrement de messages électroniques. Une personne A voulant envoyer un message à un destinataire B utilise typiquement l'adresse électronique de B pour obtenir la clé de chiffrement à employer. Une autorité de confiance fournit à chaque utilisateur 15 qui s'authentifie une clé privée de déchiffrement correspondant à son adresse électronique c'est-à-dire à sa clé publique. De ce fait, B n'a pas besoin de faire connaître à A une clé publique, certifiée ou non, afin que A puisse lui chiffrer des messages. Ceci simplifie beaucoup la gestion du système. II est même possible que A chiffre un message pour B avant que B ait obtenu sa clé privée 20 de déchiffrement. Certains schémas IBE exploitent les propriétés des applications bilinéaires, par exemple celui décrit dans "Practical Identity-Based Encryption Without Random Oracles", C. Gentry, Eurocrypt 2006, Vol. 196, Lecture Notes in Computer Science 4004, pages 445-464. 25 Un aspect de l'invention se rapporte à un procédé cryptographique basé sur identité (IBE) dans lequel une clé secrète inclut un élément g d'un groupe cyclique G1 d'ordre p et un nombre entier y choisi entre 1 et p-1, où p désigne un nombre premier. Une clé publique accessible à une entité émettrice et à au moins une entité réceptrice a des composantes représentatives: - 2 • de l'élément w = gY du groupe G1; • d'éléments h et h2 d'un groupe cyclique G2 d'ordre p, avec h2 = ha, a étant un entier compris entre 0 et p-1 inclus dans la clé secrète (MSK) si a > 0; • d'un élément v d'un groupe cyclique GT d'ordre p, de la forme v = e(g, h), où e(., .) désigne une application bilinéaire de G1 XG2 dans GT; et • des éléments hY, hY2, ... , hYm et h27, h2Y2, ... , h2Ym du groupe G2, où m désigne un entier au moins égal à 1. Une clé privée de déchiffrement associable à chaque entité réceptrice 10 a une composante représentative d'un élément Ai du groupe G1 de la forme Ai = g1/(Y+Xi+ri.a) où xi est un entier déterminé par des paramètres publics d'identité de cette entité réceptrice et ri est un entier choisi pour cette entité réceptrice si a > O. Si a > 0, la clé privée de déchiffrement associable à cette entité réceptrice a des composantes représentatives: 15 • de l'élément Abri du groupe G1; • de l'élément Bi = h.h2-ri/(Y+Xi+ri.a) du groupe G2;et • des m-1 éléments BEY, BiY2, ..., BJ1'm-1 du groupe G2, Le procédé cryptographique comprend une opération de chiffrement d'un message à destination de s entités réceptrices, s étant un nombre au 20 moins égal à 1 et au plus égal à m. L'opération de chiffrement comprend les étapes suivantes: générer une clé de chiffrement symétrique déterminée par l'élément vk.(Y+Xi)...(Y+Xs) du groupe GT, où k est un entier choisi par l'entité émettrice et x1, ..., xs sont les entiers déterminés par les paramètres 25 d'identité respectifs des s entités réceptrices; générer un cryptogramme ayant une composante représentative de l'élément C1 = wk du groupe G1, une composante représentative de l'élément C2 = hk.(Y+X1)...(Y+Xs) du groupe G2 et, si a > 0, une composante représentative de l'élément C3 = h2k.(Y+x1)...(Y+Xs) du groupe G2; chiffrer le message avec la clé de chiffrement symétrique dans l'entité émettrice; et - diffuser le cryptogramme et le message chiffré depuis l'entité émettrice. On obtient ainsi un schéma IBE performant, bien adapté au cadre défini par A. Shamir dans "Identity-based cryptosystems and signature schemes", Advances in Cryptology û CRYPTO'84, Vol. 196, Lecture Notes in Computer Science, pages 47-53, Santa Barbara, CA, USA, August 19-23, 1985. Springer-Verlag, Berlin. Ce schéma IBE convient notamment dans le cas où m = 1 (s = 1). II suffit alors que la clé publique ait des composantes représentatives de l'élément w du groupe G1, des éléments h, h2, hl' et h2Y du groupe G2 et de l'élément v du groupe GT. La clé privée associable à une entité réceptrice dont les paramètres d'identité IDA donnent lieu à un paramètre entier xj a des composantes représentatives des éléments Aj = g1/(Y+Xi+ri.a) et Abri du groupe G1 et de l'élément Bj = h.h2 ri (Y+Xi+ri.a) du groupe G2. Pour chiffrer un message à l'attention d'une entité réceptrice dont les paramètres d'identité ID; donnent lieu à un paramètre entier x;, il suffit de générer une clé de chiffrement symétrique déterminée par l'élément vk.(Y+xi) du groupe GT, et un cryptogramme associé dont les composantes sont représentatives de l'élément C1 = wk du groupe G1 et des éléments C2 = hk.(Y+ki) et C3 = h2k.(Y+Xi) du groupe G2. Dans le cas où m = 1 et a = 0, la clé publique se ramène à des 25 composantes représentatives de l'élément w du groupe G1, des éléments h et hl' du groupe G2 et de l'élément v du groupe GT, la clé privée peut se ramener à une composante représentative de l'élément Aj = g1i(Y+Xi) du groupe G1, et il suffit que le cryptogramme ait des composantes représentatives de l'élément -4- C1 = wk du groupe G1 et de l'élément C2 = hk.(Y+Xi) du groupe G2. Lorsque s > 1 (m > 1), on réussit à obtenir un schéma IBE dans le contexte d'un chiffrement broadcast. Le "chiffrement broadcast" fait référence à des techniques cryptographiques employées pour diffuser un contenu sur un canal public, non sécurisé, de telle sorte que seuls des utilisateurs légitimes soient capables de lire ce contenu. Les utilisateurs légitimes sont par exemple ceux qui ont payé un droit d'accès. L'entité émettrice qui diffuse un contenu désire que ce contenu reste confidentiel auprès des utilisateurs illégitimes, ce qui requiert un schéma de chiffrement particulier. Un exemple de chiffrement broadcast est décrit dans "Broadcast encryption", A. Fiat et M. Naor, CRYPTO'93, Lecture Notes in Computer Science, Vol. 773, pages 480-491, Santa Barbara, CA, USA, August 22-26, 1994. Springer-Verlag, Berlin. En conciliant schéma IBE et chiffrement broadcast, on obtient un schéma, ci-après nommé BIBE ("broadcast identity-based encryption"), bien adapté à divers contextes d'applications comme par exemple la constitution efficace de listes de diffusion de messages électroniques chiffrés. Dans le cas où m > 1 et a = 0, la clé publique a des composantes représentatives de l'élément w = gY du groupe G1, de l'élément h du groupe G2, de l'élément v = e(g, h) du groupe GT et des éléments h?, h?2, ... , hYm du groupe G2. La clé privée associable à une entité réceptrice dont les paramètres d'identité IDA donnent lieu à un paramètre entier xi peut se ramener à une composante représentative de l'élément Ai = g1i(Y+Xi) du groupe G1. Enfin, le cryptogramme associé à une clé de chiffrement symétrique déterminée par l'élément vk.(Y+Xi) du groupe GT peut se ramener à des composantes représentatives de l'élément C1 = wk du groupe G1 et de l'élément C2 = hk.(Y+x;) du groupe G2. Dans un mode de réalisation, l'entité émettrice obtient les valeurs des éléments a = h(Y+x1)._.(Y+XS) du groupe G2 et b = v(Y+x1)...(Y+XS) du groupe GT dans une première phase, puis exécute une seconde phase pour au moins un -5-message à chiffrer à destination de la ou des entités réceptrices. Chaque seconde phase comprend le tirage d'un nombre entier k et le calcul d'une clé de chiffrement symétrique K et des éléments C1 et C2 du cryptogramme selon K = F[bkj, C1 = wk et C2 = ak, où F[.] est la fonction déterminant la clé de chiffrement symétrique en fonction de l'élément vk.(Y+X1)... (Y+XS) du groupe GT. Si a >0, la première phase comprend en outre l'obtention de la valeur de l'élément a2 = h2(Y+x1)... (Y+Xs) du groupe G2, et la seconde phase comprend en outre le calcul de l'élément C3 du cryptogramme selon C3 = a2k. Le procédé cryptographique peut en outre comprendre une opération 10 de déchiffrement effectuée par une des s entités réceptrices dont la clé privée a une composante représentative de l'élément Ai = g1/(Y+Xi). Cette opération de déchiffrement comprend un recalcul de la clé de chiffrement symétrique à partir de l'élément e(C1, z;).e(A;Xi, C2) du groupe GT si a = 0 et à partir de l'élément e(C1, z;).e(A;Xi, C2).e(A;ri, C3) du groupe GT si a > 0, où z; est l'élément du 15 groupe G2 égal à hHJ 1(Y+X>) si s > 1 et a = 0, égal à B;ni l,i≠P+xi) si s > 1 et a > 0 et égal à h si s = 1. Dans un mode de réalisation, la sécurité du procédé peut être établie en référence au modèle de l'oracle aléatoire. Dans ce cas, on prend a = 0 et chaque entier xi est déterminé en appliquant une fonction de hachage 20 cryptographique aux paramètres d'identité de l'entité réceptrice correspondante. Lorsque a > 0, on ne se fie pas à un oracle aléatoire et les entiers ri introduisent de l'aléa dans les clés privées. Il est également proposé des programmes d'ordinateur pour des dispositifs de chiffrement et de déchiffrement constituant des entités émettrice 25 et réceptrice dans un procédé cryptographique basé sur identité tel que présenté ci-dessus. Du côté émetteur, le programme comprend des instructions pour mettre en oeuvre les étapes d'une opération de chiffrement du procédé lors d'une exécution du programme par une unité de traitement d'un -6- dispositif de chiffrement. Du côté récepteur, le programme comprend des instructions pour mettre en oeuvre les étapes d'une opération de déchiffrement du procédé lors d'une exécution du programme par une unité de traitement d'un dispositif de déchiffrement. Un autre aspect de l'invention se rapporte à un dispositif de chiffrement comprenant: - une mémoire pour contenir une clé publique définie comme indiqué précédemment dans un schéma IBE - un générateur d'au moins une clé de chiffrement symétrique et d'un 10 cryptogramme associé, la clé de chiffrement symétrique étant déterminée par l'élément vk.(Y+Xi)...(Y+Xs) du groupe GT, où k est un entier choisi localement et x1, ..., xs sont des entiers déterminés par les paramètres d'identité respectifs de s entités réceptrices (1 s m), le cryptogramme ayant une composante représentative de l'élément 15 C1 = wk du groupe G1, une composante représentative de l'élément C2 = hk-(Y+X1)...(Y+XS) du groupe G2 et, si a> 0, une composante représentative de l'élément C3 = h2k.(Y+X1)...(Y+Xs) du groupe G2; et - un circuit de chiffrement du message avec ladite clé de chiffrement symétrique, le message chiffré étant diffusé avec le cryptogramme. 20 Un autre aspect encore de l'invention se rapporte à un dispositif de déchiffrement comprenant: une mémoire pour contenir une clé publique définie comme indiqué précédemment dans un schéma IBE ainsi qu'une clé privée associée au dispositif de déchiffrement et ayant, conformément au schéma IBE, une 25 composante représentative d'un élément A; du groupe G1 de la forme A; = ghi(Y+x;+r;.a) où x; est un entier déterminé par des paramètres publics d'identité du dispositif de déchiffrement et r; est un entier choisi pour ce dispositif si a > 0, et la clé privée ayant encore, si a > 0, des composantes représentatives: • de l'élément Airy du groupe G1; • de l'élément Bi = h.h2-r;/(Y+x;+ri.a) du groupe G2; et • des m-1 éléments BiY, BiY2, ... , BiYm_1 du groupe G2, un calculateur pour récupérer une clé de chiffrement symétrique à l'aide 5 d'un cryptogramme reçu avec un message chiffré, le cryptogramme ayant des composantes représentatives d'un élément C1 du groupe G1, d'un élément C2 du groupe G2 et, si a> 0, d'un autre élément C3 du groupe G2, la clé de chiffrement symétrique étant récupérée à partir de l'élément e(C1, zi).e(A;Xi, C2) du groupe GT si a = 0 et à partir de 10 l'élément e(C1, zi).e(A;Xi, C2).e(Ain, C3) du groupe GT si a > 0, où zi est l'élément du groupe G2 égal à h si le message chiffré n'est destiné IIS 1 . i(Y+X ) qu'audit dispositif, égal à h J- "> > si a = 0 et le message chiffré est destiné à un nombre s > 1 d'entités réceptrices incluant le dispositif de déchiffrement et égal à B;1i=1,i≠i(Y+xi) si a > 0 et le message chiffré est 15 destiné à un nombre s > 1 d'entités réceptrices incluant le dispositif de déchiffrement, xi désignant un entier déterminé par des paramètres publics d'identité d'une autre entité réceptrice destinataire du message chiffré; et un circuit de déchiffrement du message avec la clé de chiffrement 20 symétrique. D'autres particularités et avantages de l'invention apparaîtront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels : - la figure 1 est un schéma synoptique d'un système de chiffrement pour la 25 mise en oeuvre d'un mode de réalisation de l'invention; - la figure 2 est un schéma synoptique d'un exemple de dispositif de chiffrement; et -8- - la figure 3 est un schéma synoptique d'un exemple de dispositif de déchiffrement. Le procédé cryptographique considéré ici met en jeu une autorité 1 sur laquelle repose la confiance. Cette autorité est en principe la seule entité qui dispose d'une clé secrète ou clé maître MSK. Elle la conserve par exemple dans une mémoire protégée 10. Lors de l'initialisation du système, un générateur de clé publique 11 de l'autorité 1 détermine une clé publique PK et la diffuse pour qu'elle soit disponible à tous les utilisateurs du système. La clé publique PK est calculée en fonction de la clé secrète MSK et de paramètres système représentant la structure mathématique sous-jacente au schéma de chiffrement. L'autorité 1 possède d'autre part un générateur de clés privées 12 servant à fournir une clé privée propre à une entité réceptrice 3 qui a pu s'authentifier auprès de l'autorité 1. Les clés privées peuvent être délivrées lors de l'initialisation. Cependant, conformément à une caractéristique des schémas IBE, elles sont avantageusement générées et remises à leurs titulaires au fur et à mesure des besoins. Une entité peut notamment recevoir des messages chiffrés à son attention sans disposer encore d'une clé privée de déchiffrement. En s'authentifiant auprès de l'autorité 1, cette entité pourra obtenir sa clé privée et déchiffrer le message a posteriori. L'autorité 1 possède un module 13 mettant en oeuvre une technique d'authentification des entités réceptrices 3 qui demandent leur clé privée. Une fois l'entité 3 authentifiée, son identité IDi est fournie au générateur de clés privées 12 qui retourne la clé privée correspondante ski calculée en fonction de 25 IDi, de la clé secrète MSK et des paramètres système et envoyée à l'entité via un canal protégé. L'identité IDi d'une entité réceptrice 3 consiste en un ou plusieurs paramètres associés de manière publique à l'entité. Toute identité employée dans les schémas IBE connus peut être adoptée (voir A. Shamir, "Identity-30 based cryptosystems and signature schemes", Advances in Cryptology ù -9- CRYPTO'84, Vol. 196, Lecture Notes in Computer Science, pages 47-53, Santa Barbara, CA, USA, August 19-23, 1985. Springer-Verlag, Berlin). Un exemple typique d'identité est l'adresse de messagerie électronique. Il peut y être adjoint d'autres paramètres au choix de l'entité concernée, comme par exemple une indication de période de validité de la clé privée associée à l'entité. Une fonction de hachage peut être appliquée à l'identité afin d'obtenir une donnée de taille souhaitée. La clé publique PK mise à disposition de chacun permet à une entité émettrice 2 de chiffrer des messages M pour une ou plusieurs entités réceptrices 3 désignées chacune par leur identité. On note s le nombre d'entités réceptrices destinataires d'un message donné (s 1). L'entité émettrice 2 utilise une technique quelconque de chiffrement symétrique à l'aide d'une clé K qu'elle génère, et diffuse le message chiffré CM accompagné d'un en-tête ou cryptogramme Hdr. Ce cryptogramme Hdr est construit de manière à donner accès à la clé de chiffrement symétrique K à toute entité qui dispose: - de la clé publique PK (et des paramètres système); - des paramètres d'identité IDj des s entités réceptrices destinataires du message chiffré; et de la clé privée ski de l'une de ces entités réceptrices. Chaque entité réceptrice destinataire peut ainsi utiliser sa clé privée ski pour récupérer la clé de chiffrement symétrique K puis déchiffrer le message CM. Dans certaines réalisations, le cryptogramme Hdr a une taille constante et indépendante du nombre s, ce qui évite d'avoir trop d'informations à transmettre avec les messages chiffrés lorsque le nombre de destinataires devient important. Les clés privées ski pourront elles aussi avoir une taille constante et indépendante du nombre s. La figure 2 illustre schématiquement l'organisation d'un dispositif de chiffrement 2 constituant une entité émettrice dans un exemple de réalisation -10- du procédé cryptographique. Le dispositif 2 comporte une mémoire 20 où sont notamment enregistrées la clé publique PK et les identités ID1, ...,IDS des s entités réceptrices qui seront les destinataires d'un ou plusieurs messages chiffrés CM (s >_ 1). Les messages issus d'une source 21 sont chiffrés dans un circuit 22 à l'aide d'une clé de chiffrement symétrique K produite par un générateur 23. Les identités IDA peuvent notamment faire partie du carnet d'adresses d'une application de messagerie électronique. A partir de la clé publique PK et des identités ID1, ...,IDS, le générateur de clé de chiffrement 23 produit non seulement une clé de chiffrement symétrique K, mais aussi un cryptogramme associé Hdr. La production du couple (K, Hdr) met en jeu le tirage d'un nombre aléatoire k par un générateur de nombres aléatoires 25. Il est possible de faire en sorte que les calculs prenant en compte les identités IDj des s entités réceptrices de l'ensemble soient exécutés une seule fois pour toutes les transmissions de messages chiffrés vers cet ensemble de s entités réceptrices. Pour cela, dans une première phase, un module 24 du générateur de clé de chiffrement 23 calcule un vecteur de valeurs intermédiaires PKS en fonction de la clé publique PK et des identités IDA des s entités réceptrices, et mémorise ce vecteur PKS. Ensuite, chaque fois qu'il y a un nouveau message à chiffrer vers ces s entités réceptrices, un nombre k est tiré et un module 26 calcule un nouveau couple (K, Hdr) en fonction de k et PKS. On remarque que, comme le calcul de PKS ne fait intervenir que des paramètres publics, ce vecteur PKs pourrait être calculé à l'extérieur du dispositif de chiffrement 2 et reçu par celui-ci sur un canal n'ayant pas besoin d'être protégé (le vecteur PKs peut être publié). La figure 3 illustre schématiquement l'organisation d'un dispositif de déchiffrement 3 constituant une entité réceptrice d'identité ID; dans un exemple de réalisation du procédé cryptographique. Le dispositif 3 comporte une mémoire 30 où sont notamment enregistrées la clé publique PK, la clé privée -11- ski du dispositif et les identités ID1, ..., IDi_1, IDi+1, ..., IDs des sû1 entités réceptrices qui seront, avec le dispositif 3, les destinataires d'un ou plusieurs messages chiffrés CM. Les identités IDA peuvent notamment faire partie du carnet d'adresses d'une application de messagerie électronique. A partir de la clé publique PK et des identités IDA, un calculateur 33 récupère une clé de chiffrement symétrique K à partir du cryptogramme Hdr reçu avec un message chiffré CM. Lorsque s > 1, il est possible de faire en sorte que les calculs prenant en compte les identités IDA soient exécutés une seule fois pour toutes les réceptions de messages chiffrés qui seront destinés 10 au même ensemble de s entités réceptrices. Pour cela, dans une première phase, un module 34 du calculateur 33 calcule une valeur intermédiaire z; en fonction de la clé publique PK et des identités IDA des s entités réceptrices, et mémorise cette valeur z;. Ensuite, chaque fois qu'il y a un nouveau message à déchiffrer destiné à ces s entités réceptrices, un module 36 calcule la clé de 15 chiffrement symétrique K à partir du cryptogramme Hdr reçu avec le message chiffré CM et de la valeur intermédiaire z;. On remarque à nouveau que, comme le calcul de z; ne fait intervenir que des paramètres publics, cette valeur z; pourrait être calculée à l'extérieur du dispositif de déchiffrement 3 et reçue par celui-ci sur un canal n'ayant pas besoin d'être protégé. 20 Dans un exemple d'environnement mathématique utilisable dans le procédé ci-dessus, deux groupes cycliques G1 et G2 (distincts ou non) sont définis, chacun d'ordre p, où p et un nombre premier, ayant typiquement une représentation en base 2 de plus de cent bits. Une application bilinéaire non dégénérée e de G1 x G2 dans un autre groupe cyclique GT est en outre 25 définie. Par bilinéaire, on entend que pour toute paire d'entiers (a, b), tout élément u de G1 et tout élément v de G2, on a e(ua, vb) = e(u, v)ab. Un exemple possible pour cette application bilinéaire e est le couplage de Tate. Les paramètres système mentionnés ci-dessus comprennent alors le nombre p et des descripteurs des groupes G1, G2 et GT et de l'application bilinéaire 30 e(., .). -12- Dans cet exemple, la clé secrète MSK consiste en un élément g que l'autorité 1 tire au hasard dans le groupe G1 et en un entier y compris entre 1 et p-1: MSK = (g, y). Le générateur de clé publique 11 calcule l'élément w = gY du groupe G1 et tire au hasard un élément h du groupe G2. Il calcule en outre 5 l'élément v = e(g, h) du groupe GT et des puissances de l'élément h du groupe G2: hY, hY2, ..., hYm, où m est un nombre entier représentant la taille maximum de l'ensemble d'entités réceptrices 3 auquel un message chiffré pourra être adressé. En d'autres termes la taille s d'un ensemble de destinataires ne pourra pas être supérieure à m. La clé publique PK est alors: 10 PK = (w, v, h, hY, hY2, ..., hYm). Lorsque m = 1, la clé publique se réduit à PK = (w, v, h, hY). La clé privée ski d'une entité 3 d'identité IDA consiste dans ce cas en un élément du groupe G1 représentatif de l'élément Ai = g1"(Y+xi), où xi est un entier déterminé uniquement par IDA. Cet élément Ali est donné par 15 A'i = Aixi = gxi/(Y+xi). Typiquement, xi est obtenu en appliquant une fonction de hachage cryptographique H à la représentation binaire de l'identité: xi = H(IDi). La fonction H est aussi décrite dans les paramètres système connus des différentes entités. Dans cet exemple, la clé de chiffrement symétrique K générée pour 20 chiffrer un message M à destination de s entités réceptrices d'identités ID1, ..., IDE, après tirage d'un nombre aléatoire k, est déterminée par l'élément vk.(Y+x1)...(Y+xs) du groupe G1, avec x1 = H(ID1), ..., xs = H(IDE). La clé K peut être égale à vk.(Y+xi)...(Y+xs) ou plus généralement à F[vk.(Y+x1)...(Y+xs)], où F[.] désigne une fonction quelconque connue des différentes entités grâce aux 25 informations système. Le calcul de l'élément vk.(Y+xi)...(Y+xs) par le dispositif de chiffrement fait intervenir les puissances de h incluses dans la clé publique PK, et tire parti de l'égalité vYq = e(w, 0-1) résultant de la propriété de l'application bilinéaire e(., .), pour 0 1, puis, à partir du cryptogramme Hdr = (C1, C2) reçu avec le message chiffré, l'élément e(C1, zi).e(A'i, C2) du groupe GT. Grâce aux propriétés de l'application bilinéaire e(., .), on peut vérifier que si la clé privée ski = A'i est valide, cet élément e(C1, zi).e(A'i, C2) du groupe GT est égal à vk.(y+xl)...(y+xs). La clé de chiffrement symétrique K est donc récupérée selon: K = F[e(C1, zi).e(A'i, C2)]. En variante, on peut prendre les clés privées ski égales aux éléments Ai = gl/(y+xi), et faire calculer l'exponentiation par les entités réceptrices 3 lors du déchiffrement: K = F[e(C1, zi).e(Aixi, C2)]. Il est cependant plus efficace de calculer l'exponentiation une fois pour toutes lors de la génération de la clé privée. Lorsqu'un vecteur de valeurs intermédiaires PKg est calculé par un module 24 du dispositif de chiffrement comme représenté sur la figure 2, ce vecteur PKg inclut les trois éléments w, a et b des groupes G1, G2 et GT, avec a = h(y+x1)...(y+xs) et b = v(y+x1)...(y+xs). Les éléments a et b sont calculables par le module 24 à partir de la clé publique PK = (w, v, h, hY, hy2, ..., hym) et des entiers x1, ..., xs déduits des identités ID1, ., IDs des entités réceptrices de l'ensemble visé. Après avoir obtenu le nombre aléatoire k, le module 26 calcule K et Hdr = (C1, C2) selon: K = bk, C1 = wk et C2 = ak. Du fait que les groupes G1, G2 et GT sont cycliques d'ordre p, les sommes d'entiers dans les exposants indiqués ci-dessus peuvent s'entendre comme des sommes modulo p. -14- L'exemple de schéma BIBE décrit ci-dessus utilise un oracle aléatoire puisqu'une fonction de hachage cryptographique H est utilisée pour assurer le caractère aléatoire des clés. Le modèle de l'oracle aléatoire étant une notion théorique, on pourrait utiliser une fonction de hachage uniquement pour compacter les données d'identité, sans avoir besoin de l'hypothèse qu'on a un oracle aléatoire. On notera que d'autres réalisations du schéma n'utilisent pas d'oracle aléatoire. Un exemple reposant sur des objets mathématiques similaires est décrit ci-après. Ici nous n'avons pas besoin de l'hypothèse mentionnée plus haut, mais il est quand même possible d'utiliser une fonction de hachage. Le niveau de sécurité offert par la fonction de hachage est alors moins important. Partant du nombre p, des groupes cycliques G1, G2 et GT et de l'application bilinéaire e(., .) évoqués précédemment, on prend une clé secrète MSK = (g, y, a) avec g choisi au hasard dans le groupe G1, y et a entiers compris entre 1 et p-1. La clé publique PK est construite en choisissant un élément h du groupe G2, en calculant h2 = ha puis PK = (w, v, h, hY, hY2, ... , hym, h2, h2Y, h2Y2, ... , h2Ym), le nombre m étant défini comme précédemment (si m = 1, la clé publique se réduit à PK = (w, v, h, hY, h2, h2Y))...DTD: La clé privée ski d'une entité 3 d'identité IDj est générée en commençant par calculer deux éléments Ai et Bj des groupes G1 et G2, donnés par Aj = gv(Y+xi+ri.a) et Bj = h.h2-rii(Y+xi+ria), où ri est un nombre que le générateur de clés privées 12 tire au hasard entre 1 et p-1 pour l'entité réceptrice, et xj est un entier déterminé uniquement par IDj. Cet entier xi n'a pas besoin d'être généré à l'aide d'une fonction de hachage cryptographique. Il peut être pris égal à l'identité IDj en représentationbinaire: xj = IDj. Des puissances de l'élément Bj sont calculées afin de produire la clé privée ski = (Ai, ri, Bj, BjY, BjY2, ., BiYm-) (si m = 1, la clé privée se réduit à ski = (Ai, ri, Bi)). -15Dans cet exemple, la clé de chiffrement symétrique K générée pour chiffrer un message M à destination d'une ou plusieurs entités réceptrices d'identités ID1, ..., IDS, après tirage d'un nombre aléatoire k, est de la forme K = F[vk.(Y+xl)...(Y+xs)], avec x1 = ID1, ..., xs = IDS et F[.] étant une fonction quelconque connue des différentes entités. Pour donner accès à cette clé K aux entités autorisées, le cryptogramme Hdr calculé par le générateur 23 pour être transmis avec le message CM chiffré avec K inclut l'élément C1 = wk du groupe G1 et deux éléments C2 = hk.(y+x1)...(y+xs) et C3 = h2k.(y+x1)...(y+xs) du groupe G2: Hdr = (C1, C2, C3). Une entité réceptrice 3 de l'ensemble de s entités destinataires du message chiffré CM est capable de récupérer la clé K employée en calculant d'abord l'élément z; du groupe G2 égal à B;1 1,i≠i(y+xi) puis, à partir du cryptogramme Hdr = (C1, C2, C3) reçu avec le message chiffré, l'élément e(C1, zi).e(Aixi, C2).e(Airi, C3) du groupe GT. Grâce aux propriétés de l'application bilinéaire e(., .), on peut de nouveau vérifier que si la clé privée ski = (Ai, ri, Bi, Biy, Biy2, ... , Biym-1) est valide, alors e(C1, C2).e(A;l, C3) = vk.(y+x1)...(y+xs). La clé de chiffrement symétrique K est donc récupérée par la formule: K = F[e(C1, zi).e(Aixi, C2).e(Airi, C3)]. En variante, on peut prendre les clés privées ski de la forme sk. = (A'.A B.B.yB .y2B .ym-1) avec A'. = A. xi et A = A.ri Dans ce cas, .1' J 1' J , , .., J . l'entité réceptrice 3 détenant la clé privée ski récupère la clé de chiffrement symétrique K selon K = F[e(C1, zi).e(A'i, C2).e(A"i, C3)], sans avoir à recalculer les puissances de Ai. Dans cette variante, A'i est représentatif de Agi, tandis que dans la variante précédente, ri, jumelé à Aj est représentatif de A"i = Abri. Lorsqu'un vecteur de valeurs intermédiaires PKS est calculé par un -16-module 24 du dispositif de chiffrement comme représenté sur la figure 2, ce vecteur PKs inclut les quatre éléments w, a, a2 et b des groupes G1, G2 et GT, avec a = h(Y1) ... (y+xs) a2 = h2(y+x1)... (y+xs) et b = v(y+xl)... (y+xs). Après avoir obtenu le nombre aléatoire k, le module 26 calcule K et Hdr = (C1, C2, C3) selon: K = bk, C1 = wk, C2 = ak et C3 = a2k. On remarque que si on prend a= 0 dans le schéma sans oracle aléatoire ci-dessus, on retombe sur le schéma avec oracle aléatoire décrit précédemment, les ri n'étant plus nécessaires. Les clés sont rendues aléatoires par le fait que les entiers xi dépendent alors des identités IDA à travers une fonction de hachage cryptographique. Les dispositifs de chiffrement et de déchiffrement représentés sur les figures 2 et 3 peuvent être réalisés au moyen de circuits spécifiques ou de composants logiques programmés de type FPGA ou analogues. Une réalisation courante utilisera cependant des processeurs d'usage général exécutant des programmes selon l'invention, écrits de façon à mettre en oeuvre les calculs cryptographiques décrits ci-dessus...FT: CHIFFREMENT BASE SUR IDENTITE REVENDICATIONS 1. Procédé cryptographique basé sur identité, dans lequel une clé secrète (MSK) inclut un élément g d'un groupe cyclique G1 d'ordre p et un nombre entier y choisi entre 1 et pû1, où p désigne un nombre premier, dans 5 lequel une clé publique (PK) accessible à une entité émettrice (2) et à au moins une entité réceptrice (3) a des composantes représentatives: • de l'élément w = gr du groupe G1; • d'éléments h et h2 d'un groupe cyclique G2 d'ordre p, avec h2 = ha, a étant un entier compris entre 0 et pû1 inclus dans la clé secrète (MSK) si 10 a > 0; • d'un élément v d'un groupe cyclique GT d'ordre p, de la forme v = e(g, h), où e(., .) désigne une application bilinéaire de G1 XG2 dans GT; et • des éléments h?, hr2, ..., h?m et h2?, h2Y2, ..., h2?'n du groupe G2, où m désigne un entier au moins égal à 1, 15 dans lequel une clé privée de déchiffrement (ski) associable à chaque entité réceptrice (3) a une composante représentative d'un élément Ai du groupe G1 de la forme Ai = g1/(r+Xi+ria) où xi est un entier déterminé par des paramètres publics d'identité (IDA) de ladite entité réceptrice et ri est un entier choisi pour ladite entité réceptrice si a > 0, et dans lequel, si a > 0, la clé privée 20 de déchiffrement (ski) associable à ladite entité réceptrice a des composantes représentatives: • de l'élément Abri du groupe G1; • de l'élément Bi = h.h2 ri/(1'+Xi+ri.a) du groupe G2;et • des mû1 éléments Bir, Bir2, ... , Birm-1 du groupe G2, 25 le procédé comprenant une opération de chiffrement d'un message (M) à destination de s entités réceptrices, s étant un nombre au moins égal à 1-18- et au plus égal à m, l'opération de chiffrement comprenant les étapes suivantes: -générer une clé de chiffrement symétrique (K) déterminée par l'élément vk.(Y+X1)...(Y+XS) du groupe GT, où k est un entier choisi par l'entité émettrice (2) et x1, ..., xs sont les entiers déterminés par les paramètres d'identité respectifs (ID1, ..., IDE) des s entités réceptrices (3); - générer un cryptogramme (Hdr) ayant une composante représentative de l'élément C1 = wk du groupe G1, une composante représentative de l'élément C2 = hk.(Y+X1)...(Y+Xs) du groupe G2 et, si a > 0, une composante représentative de l'élément C3 = h2k.(Y+X1)••.(Y+Xs) du groupe G2; - chiffrer le message avec ladite clé de chiffrement symétrique dans l'entité émettrice; et diffuser le cryptogramme et le message chiffré (CM) depuis l'entité émettrice. 2. Procédé cryptographique selon la revendication 1, dans lequel l'entité émettrice (2) obtient les valeurs des éléments a = h(Y+X1)...(7+Xs) du groupe G2 et b = v(Y+X1)...(Y+Xs) du groupe GT dans une première phase, puis exécute une seconde phase pour au moins un message (M) à chiffrer à destination des s entités réceptrices (3), dans lequel chaque seconde phase 20 comprend le tirage d'un nombre entier k et le calcul d'une clé de chiffrement symétrique K et des éléments C1 et C2 du cryptogramme (Hdr) selon K = F[bk], C1 = wk et C2 = ak, où F[.] est la fonction déterminant la clé de chiffrement symétrique en fonction de l'élément vk.(Y+X1)...(Y+Xs) du groupe GT, et dans lequel, si a >0, ladite première phase comprend en outre l'obtention de la 25 valeur de l'élément a2 = h2(Y+X1)...(Y+Xs) du groupe G2 et ladite seconde phase comprend en outre le calcul de l'élément C3 du cryptogramme (Hdr) selon C3 = a2k.-19- 3. Procédé cryptographique selon la revendication 2, dans lequel l'opération de chiffrement comporte plusieurs itérations de la seconde phase pour le chiffrement et la diffusion de messages successifs par l'entité émettrice (2). 4. Procédé cryptographique selon l'une quelconque des revendications précédentes, comprenant une opération de déchiffrement effectuée par une des s entités réceptrices (3) ayant une clé privée (ski) ayant une composante représentative de l'élément A; = g1'(Y+Xi), l'opération de déchiffrement comprenant un recalcul de la clé de chiffrement symétrique (K) à partir de l'élément e(C1, zi).e(Aixi, C2) du groupe GT si a = 0 et à partir de l'élément e(C1, zi).e(Aixi, C2).e(A;ri, C3) du groupe GT si a> 0, où z; est l'élément du .(Y+x') s groupe G2 égal à h J- si s > 1 et a = 0, égal à B;fi=1,J#i(Y+xi) si s > 1 eta>Oetégal àhsis=1. 5. Procédé cryptographique selon la revendication 4, dans lequel ladite entité réceptrice (3) obtient l'élément zi du groupe G2 dans une première phase, puis exécute une seconde phase pour au moins un message chiffré (CM) reçu en provenance de l'entité émettrice (2) avec un cryptogramme (Hdr) ayant des composantes représentatives d'éléments C1 et C2 des groupes G1 et G2, chaque seconde phase comprenant le recalcul de la clé de chiffrement symétrique K selon K = F[e(C1, zi).e(Aixi, C2)] si a = 0 et selon K = F[e(C1, zi).e(Aixi, C2).e(A;l, C3)] si a > 0, où F[.] est la fonction déterminant la clé de chiffrement symétrique en fonction de l'élément vk.(Y+xi)_..(Y+Xs) du groupe GT. 6. Procédé cryptographique selon l'une quelconque des revendications précédentes, dans lequel a = 0 et chaque entier xi est déterminé en appliquant une fonction de hachage cryptographique aux paramètres d'identité (IDA) de l'entité réceptrice correspondante (3).-20- 7. Dispositif de chiffrement, comprenant: une mémoire (20) pour contenir une clé publique (PK) d'un schéma de chiffrement basé sur identité, la clé publique ayant des composantes représentatives: • d'un élément w d'un groupe cyclique G1 d'ordre premier p, de la forme w = gY du groupe G1 où g est un élément du groupe G1 et y un nombre entier compris entre 1 et pù1, g et y faisant partie d'une clé secrète (MSK); • d'éléments h et h2 d'un groupe cyclique G2 d'ordre p, avec 10 h2 = ha, a étant un entier compris entre 0 et pù1 inclus dans la clé secrète (MSK) si a > 0; • d'un élément v d'un groupe cyclique GT d'ordre p, de la forme v = e(g, h), où e(., .) désigne une application bilinéaire de G1 xG2 dans GT; et 15 • des éléments KY, hY2, ..., h?m et h2Y, h2Y2, ..., h2Ym du groupe G2, où m désigne un entier au moins égal à 1; un générateur (23) d'au moins une clé de chiffrement symétrique (K) et d'un cryptogramme (Hdr) associé à ladite clé de chiffrement symétrique, la clé de chiffrement symétrique étant déterminée par l'élément 20 vk.(Y+Xi)...(Y+xs) du groupe GT, où k est un entier choisi localement et x1, xs sont des entiers déterminés par les paramètres d'identité respectifs (ID1, ..., IDE) de s entités réceptrices (3), s étant un nombre au moins égal à 1 et au plus égal à m, le cryptogramme ayant une composante représentative de l'élément C1 = wk du groupe G1, une 25 composante représentative de l'élément C2 = hk.(Y+X1)... (Y+Xs) du groupe G2 et, si a > 0, une composante représentative de l'élément C3 = h2k.(Y+x1)... (y+xs) du groupe G2; et- 21 - - un circuit (22) de chiffrement du message avec ladite clé de chiffrement symétrique, le message chiffré (CM) étant diffusé avec le cryptogramme. 8. Dispositif de chiffrement selon la revendication 7, dans lequel le générateur (23) est agencé pour obtenir les valeurs des éléments 5 a = h(Y+X1)...(Y+Xs) du groupe G2 et b = v(Y+X1)...(Y+Xs) du groupe GT dans une première phase, et pour exécuter une seconde phase pour au moins un message (M) à chiffrer à destination des s entités réceptrices, dans lequel chaque seconde phase comprend le tirage d'un nombre entier k et le calcul d'une clé de chiffrement symétrique K et des éléments C1 et C2 du 10 cryptogramme associé selon K = F[bk], C1 = wk et C2 = ak, où F[.] est la fonction déterminant la clé de chiffrement symétrique en fonction de l'élément vk.(Y+Xi)... (Y+Xs) du groupe GT, et dans lequel, si a >0, ladite première phase comprend en outre l'obtention de la valeur de l'élément a2 = h2(Y+X1)... (Y+Xs) du groupe G2 et ladite seconde phase comprend en outre le calcul de l'élément C3 15 du cryptogramme (Hdr) selon C3 = a2k. 9. Dispositif de chiffrement selon la revendication 7 ou 8, dans lequel a = 0 et chaque entier xj est déterminé en appliquant une fonction de hachage cryptographique aux paramètres d'identité (IDA) de l'entité réceptrice correspondante (3). 20 10. Dispositif de déchiffrement, comprenant: - une mémoire (30) pour contenir une clé publique (PK) d'un schéma de chiffrement basé sur identité ainsi qu'une clé privée (ski) associée audit dispositif, la clé publique (PK) ayant des composantes représentatives: • d'un élément w d'un groupe cyclique G1 d'ordre premier p, de la 25 forme w = gY du groupe G1 où g est un élément du groupe G1 et y un nombre entier compris entre 1 et p-1, g et y faisant partie d'une clé secrète (MSK);- 22 -• d'éléments h et h2 d'un groupe cyclique G2 d'ordre p, avec h2 = ha, a étant un entier compris entre 0 et pù1 inclus dans la clé secrète (MSK) si a > 0; • d'un élément v d'un groupe cyclique GT d'ordre p, de la forme 5 v = e(g, h), où e(., .) désigne une application bilinéaire de G1 XG2 dans GT; et • des éléments hY, hY2, ... , hYm et h2Y, h2Y2, ... , h2Ym du groupe G2, où m désigne un entier au moins égal à 1, la clé privée (ski) ayant, conformément au schéma de chiffrement basé 10 sur identité, une composante représentative d'un élément A; du groupe G1 de la forme A; = g1/(Y+x;+ri.a) où x; est un entier déterminé par des paramètres publics d'identité (ID;) dudit dispositif et r; est un entier choisi pour ledit dispositif si a > 0, et la clé privée ayant encore, si a > 0, des composantes représentatives: 15 • de l'élément Ain du groupe G1; • de l'élément B; = h.h2 rit(Y+xi+ri.a) du groupe G2; et • des mù1 éléments B;Y, B;Y2, ... , B;Ym-1 du groupe G2, un calculateur (33) pour récupérer une clé de chiffrement symétrique (K) à l'aide d'un cryptogramme (Hdr) reçu avec un message chiffré (CM), le 20 cryptogramme ayant des composantes représentatives d'un élément C1 du groupe G1, d'un élément C2 du groupe G2 et, si a > 0, d'un autre élément C3 du groupe G2, la clé de chiffrement symétrique étant récupérée à partir de l'élément e(C1, z;).e(A;xi, C2) du groupe GT si a = 0 et à partir de l'élément e(C1, z;).e(A;X1, C2).e(A;l, C3) du groupe GT si 25 a > 0, où z; est l'élément du groupe G2 égal à h si le message chiffré 1- 1 . .(y+X•) n'est destiné qu'audit dispositif, égal à h J- si a = 0 et le message chiffré est destiné à un nombre s > 1 d'entités réceptrices- 23 - incluant ledit dispositif et égal à B;1i 1,i≠i(Y+xi) si a > 0 et le message chiffré est destiné à un nombre s > 1 d'entités réceptrices incluant ledit dispositif, xj désignant un entier déterminé par des paramètres publics d'identité (IDA) d'une autre entité réceptrice destinataire du message 5 chiffré; et un circuit (32) de déchiffrement du message avec la clé de chiffrement symétrique. 11. Dispositif de déchiffrement selon la revendication 10, dans lequel le calculateur (33) est agencé pour obtenir l'élément zi du groupe G2 dans une 10 première phase, et pour exécuter une seconde phase pour au moins un message chiffré (CM) reçu avec un cryptogramme (Hdr) ayant des composantes représentatives d'éléments C1 et C2 des groupes G1 et G2, chaque seconde phase comprenant la récupération de la clé de chiffrement symétrique K selon K = F[e(C1, z;).e(A;X1, C2)] si a = 0 et selon 15 K = F[e(C1, z;).e(A;Xi, C2).e(A; 1, C3)] si a > 0, où F[.] est la fonction déterminant la clé de chiffrement symétrique en fonction de l'élément vk.(Y+Xi)... (Y+Xs) du groupe GT. 12. Dispositif de déchiffrement selon la revendication 10 ou 11, dans lequel a = 0 et l'entier x; est déterminé en appliquant une fonction de hachage 20 cryptographique aux paramètres d'identité (ID;) du dispositif (3) et, si s > 1, chaque entier xj est déterminé en appliquant la même fonction de hachage cryptographique aux paramètres d'identité (lDj) de l'entité destinataire correspondante (3). 13. Programme d'ordinateur pour un dispositif de chiffrement (2) 25 constituant une entité émettrice dans un procédé cryptographique basé sur identité selon l'une quelconque des revendications 1 à 6, le programme comprenant des instructions pour mettre en oeuvre les étapes d'une opération- 24 - de chiffrement dudit procédé lors d'une exécution du programme par une unité de traitement du dispositif de chiffrement. 14. Programme d'ordinateur pour un dispositif de déchiffrement (3) constituant une entité réceptrice dans un procédé cryptographique basé sur identité selon la revendication 4 ou 5, le programme comprenant des instructions pour mettre en oeuvre les étapes d'une opération de déchiffrement dudit procédé lors d'une exécution du programme par une unité de traitement du dispositif de déchiffrement. 15. Support de données lisible par ordinateur, sur lequel est enregistré ~o un programme conforme à la revendication 13 ou à la revendication 14.