Brevet FR2921530A1 — publié le 20090327

L'invention concerne un procédé de gestion de clés cryptographiques au sein d'un groupe hiérarchique représenté par un graphe. Elle vise ainsi notamment la génération d'une clé cryptographique associée à chaque sous-groupe de la hiérarchie, ainsi qu'un dispositif associé. On utilise des clés cryptographiques associées chacune à un sous- groupe (par exemple de personnes) û ou noeud û dans une hiérarchie lorsque l'on souhaite gérer des informations dans le respect de cette hiérarchie, c'est-à-dire que des informations chiffrées accessibles à un sous-groupe donné doivent être accessibles aux sous-groupes parents dont ils dépendent dans la hiérarchie. Une application d'un tel système est par exemple la gestion de documents sensibles au sein d'une entreprise, dont on veut qu'ils ne soient accessibles qu'à certaines personnes (ou certains groupes de personnes) et à leurs supérieurs hiérarchiques. D'autres applications ont naturellement été envisagées dans la littérature comme décrit par exemple dans l'article "Dynamic and Efficient Key Management for Access Hierarchies" de Mikhail J. Atallah et al., in CCS'05: Proceedings of the 12th ACM Conference on Computer and Communications Security, pages 190-202, 2005. La solution adoptée consiste en général à associer une clé cryptographique à chaque sous-groupe de la hiérarchie et de prévoir que les sous-groupes de la hiérarchie puissent avoir, d'une manière ou d'une autre, accès aux clés cryptographiques des sous-groupes de niveau inférieur qui leur sont rattachés dans la hiérarchie. On utilise alors, pour le chiffrement et/ou le déchiffrement des données sensibles, la clé cryptographique associée au sous groupe de plus bas niveau autorisé à accéder à ces données. Plusieurs solutions ont déjà été proposées dans le but de mettre en oeuvre pratiquement un tel système de clés cryptographiques dans une hiérarchie, notamment dans l'article précité. On cherche en effet à proposer un système le plus pratique possible (notamment en termes d'efficacité afin de limiter les calculs et d'homogénéité des calculs pour tous les sous-groupes), qui permette une gestion de la dynamique (c'est-à-dire de l'évolution) des sous-groupes de manière relativement facile, de préférence sans appel à une entité supérieure de gestion du groupe (généralement dénommée autorité de confiance ou de contrôle). On cherche en outre une solution générale qui ne serait pas limitée à un algorithme cryptographique particulier afin de pouvoir s'intégrer à différents protocoles. Un des aspects qui ont rendu nécessaire l'utilisation de solutions complexes est la topologie que peut présenter de manière générale une hiérarchie, qui ne se limite pas au cas simple d'un arbre dans lequel un sous-groupe fils n'est rattaché qu'à un seul sous-groupe père. Ainsi, il est parfois nécessaire d'utiliser pour représenter la hiérarchie un graphe orienté dans lequel les flèches représentent un passage au niveau hiérarchique inférieur. L'article "A Cryptographic Solution to Implement Access Control in Hierarchy and More", de Indrakshi Ray et al., in Sacmat'02 : Proceedings of the 7t" ACM Symposium on Access Control Models and Technologies, pages 65 à 73, 2002 envisage explicitement une telle topologie dans une hiérarchie où un sous-groupe fils peut être rattaché à deux sous-groupes père du niveau hiérarchique supérieur. Cet article, basé sur la multiplication de modulos selon le schéma RSA, manque toutefois de souplesse, impose l'utilisation d'une entité supérieure de confiance pour la création du graphe des clés et implique en outre que le chiffrement d'un document avec des clés de bas niveau dans la hiérarchie demande des calculs beaucoup plus importants que pour les niveaux supérieurs de la hiérarchie. L'article au nom de Mikhail J. Atallah et al. cité plus haut envisage lui aussi la problématique des sous-groupes rattachés à deux sous-groupes pères et propose d'utiliser, en plus d'une clé secrète et d'une clé publique associées à chaque sous-groupe, une information publique associée à chaque flèche du graphe (c'est-à-dire à chaque lien hiérarchique), information que l'on peut voir comme la clé secrète du noeud fils concerné masquée par une valeur déductible seulement à l'aide de la clé secrète du noeud père concerné (sans toutefois naturellement que cette valeur ne puisse révéler au noeud fils la clé secrète du noeud père). Selon cette solution, l'information publique associée à chaque flèche (ou arête) du graphe dépend de la clé secrète du noeud fils correspondant et ne peut, en l'absence d'une autorité supérieure de confiance, être obtenue qu'avec son assentiment, ce qui peut naturellement poser des problèmes dès lors qu'un noeud fils peut empêcher son noeud père d'avoir accès à la clé secrète de ce noeud fils. Dans ce contexte, l'invention propose un procédé de génération d'une clé cryptographique associée à un sous-groupe ayant au moins un père dans une hiérarchie, caractérisé en ce qu'il comprend les étapes suivantes : - détermination du nombre de sous-groupes pères dudit sous- groupe dans la hiérarchie ; - détermination de la clé cryptographique associée audit sous-groupe au moyen d'un premier algorithme mettant en oeuvre une clé secrète associée au sous-groupe père lorsque le nombre déterminé vaut un, et au moyen d'un second algorithme mettant en oeuvre une clé secrète associée à un premier sous-groupe père et une information publique associée à au moins un second sous-groupe père lorsque le nombre déterminé est supérieur ou égal à deux. La différenciation du processus de génération de la clé cryptographique en fonction du nombre de sous-groupes pères permet de choisir un algorithme adapté au mieux à chaque situation (et à la topologie associée), ce qui rend possible l'utilisation d'algorithmes ayant à la fois la simplicité et les propriétés requises. Le second algorithme peut être réalisé au moyen d'un protocole d'échange de clés entre les au moins deux sous-groupes pères. Afin de permettre une gestion adaptée de la pluralité des noeuds pères, un tel protocole peut être défini par les propriétés suivantes : -pouvoir gérer un grand nombre de pères ; - gérer le caractère dynamique des groupes ; - pouvoir modifier la clé d'un père sans effet de bord sur les autres membres du groupe, mais en impliquant une modification de la clé des descendants. On propose par exemple à cet effet que, lorsque le nombre déterminé est supérieur ou égal à trois, la détermination de la clé cryptographique comprenne les étapes suivantes : - détermination d'une clé intermédiaire en fonction de la clé secrète associée au premier sous-groupe père et de l'information publique associée au 10 second sous-groupe père ; -détermination de la clé cryptographique en fonction de la clé intermédiaire et d'une clé publique associée à au moins un troisième sous-groupe père. L'utilisation de telles clés intermédiaires, associées chacune à un 15 noeud dit "virtuel', est nouvelle en soi et permet de ramener le traitement d'une pluralité de noeuds au traitement des noeuds deux par deux, ce qui permet de choisir un algorithme de traitement particulièrement simple. Selon une technique illustrée ci-après par deux exemples, le second algorithme utilise une information relative audit sous-groupe, ce qui permet de 20 créer une pluralité de noeuds fils (au niveau dudit sous-groupe) et de distinguer leur clé secrète respective. Selon un premier exemple de mise en oeuvre, la clé secrète associée au premier sous-groupe père est obtenue sur la base de la clé secrète du premier sous-groupe père et de ladite information. On a ainsi à disposition de 25 premier sous-groupe père une clé secrète associée à chaque noeud fils créé. Selon un second exemple de mise en oeuvre, l'information relative audit sous-groupe est la clé publique associée au second sous-groupe père. Selon une autre technique, également illustrée ci-après par deux exemples, le procédé comprend une étape d'introduction d'un noeud virtuel en 30 tant que père dudit sous-groupe. Un tel noeud virtuel, qui ne correspond à aucun sous-groupe réel dans la hiérarchie, permet de simplifier la génération des clés secrètes. Selon un premier exemple de mise en oeuvre de cette autre technique, ladite clé cryptographique est déterminée en fonction d'une clé publique associée au noeud virtuel. On peut alors facilement modifier la clé du noeud fils (sous-groupe dont on génère la clé), par exemple pour gérer la dynamique du groupe, en modifiant la clé du noeud virtuel. Selon un second exemple de mise en oeuvre, le noeud virtuel est introduit comme fils desdits sous-groupes pères et ladite clé cryptographique est obtenue sur la base d'une clé secrète associée au noeud virtuel. Les clés respectives de tous les noeuds fils des sous-groupes pères concernés pourront ainsi être générées par rattachement à ce noeud virtuel unique, ce qui simplifie nettement leur création. L'invention propose également un programme d'ordinateur pouvant être chargé dans un système informatique et contenant des instructions permettant la mise en oeuvre d'un procédé comme présenté ci-dessus lorsque ce programme est chargé et exécuté par le système informatique. Comme décrit plus loin, l'invention peut en effet être mise en oeuvre dans un tel système informatique. L'invention propose aussi un dispositif de génération d'une clé cryptographique associée à un sous-groupe ayant au moins un père dans une hiérarchie, caractérisé en ce qu'il comprend des moyens de détermination du nombre de sous-groupes pères dudit sous-groupe dans la hiérarchie ; et des moyens de détermination de la clé cryptographique associée audit sous-groupe au moyen d'un premier algorithme mettant en oeuvre une clé secrète associée au sous-groupe père lorsque le nombre déterminé vaut un, et au moyen d'un second algorithme mettant en oeuvre une clé secrète associée à un premier sous-groupe père et une information publique associée à au moins un second sous-groupe père lorsque le nombre déterminé est supérieur ou égal à deux. L'invention propose en outre un dispositif de chiffrement de données, caractérisé en ce qu'il comprend un dispositif de génération d'une clé cryptographique comme indiqué ci-dessus et des moyens de chiffrement de données mettant en oeuvre la clé cryptographique générée. Les différents moyens de détermination et les moyens de chiffrement sont par exemple mis en oeuvre par un système informatique apte à effectuer les opérations décrites ci-dessus. Ces dispositifs peuvent par ailleurs présenter des caractéristiques 5 optionnelles du même type que celles énoncées ci-dessus en termes de procédé. On notera enfin que les caractéristiques présentées à titre optionnel ci-dessus constituent en outre des inventions en tant que telles, indépendamment du choix du premier ou du second algorithme en fonction du 10 nombre de père(s). Ainsi, par exemple, il est proposé de manière indépendante un procédé de génération d'une clé cryptographique associée à un sous-groupe ayant au moins un père dans une hiérarchie, caractérisé en ce qu'il comprend une étape de détermination de la clé cryptographique associée audit sous- 15 groupe au moyen d'un algorithme mettant en oeuvre une clé secrète associée à un premier sous-groupe père et une information publique associée à au moins un second sous-groupe père, ladite détermination incluant les étapes suivantes : - détermination d'une clé intermédiaire en fonction de la clé secrète 20 associée au premier sous-groupe père et de l'information publique associée au second sous-groupe père ; - détermination de la clé cryptographique en fonction de la clé intermédiaire et d'une clé publique associée à au moins un troisième sous-groupe père. 25 Il est également proposé de manière indépendant un procédé de génération d'une clé cryptographique associée à un sous-groupe ayant au moins un père dans une hiérarchie, caractérisé en ce qu'il comprend une étape de détermination de la clé cryptographique associée audit sous-groupe au moyen d'un algorithme mettant en oeuvre une clé secrète associée à un 30 premier sous-groupe père et une information publique associée à au moins un second sous- groupe père, avec utilisation d'une information relative audit sous-groupe et/ou introduction d'un noeud virtuel en tant que père dudit sous-groupe. D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lumière de la description qui suit, faite en référence aux dessins annexés dans lesquels : - la figure 1 représente un exemple de graphe orienté représentant une hiérarchie au sein de laquelle est mise en oeuvre l'invention ; - la figure 2 représente la génération de clés cryptographiques pour des noeuds fils n'ayant qu'un seul noeud père ; - la figure 3 représente la génération d'une clé cryptographique d'un noeud ayant deux noeuds pères ; - la figure 4 représente un exemple de génération d'une clé cryptographique pour un noeud ayant cinq noeuds pères ; - la figure 5 représente une première variante de la méthode représentée à la figure 3 ; - la figure 6 se place dans le même cadre avec trois noeuds pères ; - la figure 7 représente une seconde variante de la méthode représentée à la figure 3 ; - la figure 8 représente une troisième variante de la méthode représentée à la figure 3 ; - la figure 9 représente une quatrième variante de la méthode représentée à la figure 3. On va à présent décrire en détail des exemples de mise en oeuvre de l'invention dans le cadre d'une hiérarchie représentée par un graphe orienté enraciné et acyclique G={N,A}, où N={n,, n2, ..., nn} est un ensemble de n noeuds du graphe et A={a,, a2, ..., aa} un ensemble de a arêtes du graphe. Selon cette représentation, chaque noeud ni représente un sous-groupe de membres (par exemple d'utilisateurs) partageant la même clé secrète Knl et le même label Inl (un label étant une information publique dépendant notamment de la clé secrète comme décrit en détail dans la suite). On note en outre que l'orientation du graphe, comme indiqué dans l'exemple de la figure 1, représente la hiérarchisation des noeuds. Ainsi, un utilisateur membre d'un noeud ni aura accès à tous les noeuds fils du noeud ni (c'est-à-dire que cet utilisateur peut déduire l'ensemble des clés secrètes associées à chacun de ses noeuds fils comme cela sera décrit dans la suite). La gestion des clés conformément à la hiérarchie concernée est par exemple mise en oeuvre au sein d'un système informatique dans lequel la clé secrète Knl associée à chaque utilisateur (c'est-à-dire précisément associée au sous-groupe ou noeud ni qui comprend cet utilisateur) est mémorisée sous forme d'un nombre dans un dispositif électronique détenu par cet utilisateur. Dans ce contexte, chaque utilisateur dispose également de moyens électroniques de calcul permettant de dériver (c'est-à-dire de générer) la ou les clé(s) secrète(s) associée(s) au noeud fils du noeud concerné ni à partir notamment de la clé secrète associée au noeud concerné ni, selon les formules indiquées ci-après. Le dispositif électronique mémorisant la clé secrète et les moyens électroniques de calcul peuvent par exemple en pratique être formés au sein d'un ordinateur personnel de l'utilisateur. Les clés secrètes sont par exemple utilisées pour chiffrer ou déchiffrer un document représenté sous forme numérique (ou de manière générale tout type de données) auquel ne peuvent avoir accès que les membres du noeud associé à la clé secrète concernée et des noeuds de niveau supérieur dans la hiérarchie. Ce document est par exemple lui aussi, au moins momentanément, mémorisé au sein de l'ordinateur personnel de l'utilisateur. Une autre possibilité consiste à utiliser cette clé secrète comme graine pour générer une paire de clés par exemple selon le schéma RSA (clé secrète et clé publique). On va à présent décrire le procédé de génération des clés secrètes associées à chaque noeud du graphe présentant la hiérarchie. Un tel procédé est par exemple mis en oeuvre dans son intégralité lors de la première attribution des clés secrètes Knl à chaque noeud du graphe, mais est également destiné à être mis en oeuvre ultérieurement (et éventuellement partiellement) lorsqu'un noeud donné cherche à dériver de sa clé secrète une clé d'un noeud de niveau inférieur dans la hiérarchie, afin par exemple de déchiffrer un document chiffré avec cette clé de niveau inférieur. Comme déjà indiqué, chaque clé secrète associée à un noeud fils est obtenue notamment à partir de la clé secrète associée au noeud père et on obtient donc les clés secrètes de l'ensemble des noeuds à partir de la clé secrète associée au sommet de la hiérarchie (noeud A dans l'exemple de la figure 1) en descendant la hiérarchie par niveaux successifs. La clé secrète associée au sommet de la hiérarchie est par exemple obtenue par tirage aléatoire. On considère ensuite successivement chaque noeud du graphe en descendant la hiérarchie. Pour chaque noeud, on applique une première méthode dont un exemple est donné dans la suite en référence à la figure 2 si le noeud n'a qu'un seul père, et une seconde méthode dont divers exemples sont donnés dans la suite en référence aux figures 3 à 9 si le noeud a plusieurs pères. Ainsi, dans l'exemple représenté à la figure 1, les clés cryptographiques associées respectivement à chacun des noeuds B, C, D et F seront obtenues par la première méthode ("Cas 1"), tandis que les clés secrètes associées respectivement à chacun des noeuds E, G, H et I seront obtenues par la seconde méthode ("Cas 2"). On décrit à présent en référence à la figure 2 un exemple possible pour la mise en oeuvre de la première méthode mentionnée ci-dessus. On rappelle que cette méthode est mise en oeuvre lorsque le noeud fils concerné (dont on cherche à obtenir la clé secrète, par exemple le noeud n2 en figure 2) n'a qu'un seul père (ni en figure 2), ce qui n'exclut pas la présence d'autres noeuds fils de ce seul noeud père comme représenté à la figure 2 (noeuds n3 et n4). Selon cet exemple, on utilise une constante c (déterminée au préalable, éventuellement par tirage aléatoire, et qui représente par exemple un identifiant du groupe défini par le graphe), éventuellement commune à l'ensemble du graphe, et on attribue à chaque noeud fils (ici n2, n3, n4) un indice i différent (par exemple on incrémente i à chaque nouveau noeud fils). La clé secrète du noeud fils Kf;is est alors obtenue (ou dérivée) à partir de la clé du noeud père Kpère de la façon suivante : Kfiis=H(cIIiIIKpère), où H est une fonction de hachage cryptographiquement sûre telle que par exemple SHA-1 ou SHA-256 et où la notation II désigne la concaténation. On remarque que ce système est particulièrement pratique puisque, lorsque l'on souhaite ajouter un nouveau noeud fils ou renouveler la clé d'un noeud fils, il suffit de choisir un nouvel indice i et de mettre en oeuvre le calcul ci-dessus. On remarquera toutefois qu'afin d'obtenir des clés différentes pour chacun des noeuds fils, chaque indice ne peut naturellement être utilisé qu'une seule fois tant que le noeud père conserve la même clé secrète Kpère. On décrit à présent en référence aux figures 3 et 4 un premier exemple possible pour la mise en oeuvre de la seconde méthode mentionnée plus haut (dont on rappelle qu'elle est utilisée lorsqu'un noeud fils dont on veut déterminer la clé secrète dépend de plusieurs noeuds pères). Selon cet exemple, on utilise un groupe cyclique G d'ordre q avec q premier et un générateur g du groupe G. Chaque noeud père ni possède par hypothèse une clé secrète Knj. Comme déjà indiqué, on associe en outre à chaque noeud père ni un label public (c'est-à-dire connu de chaque membre de chaque noeud) défini comme suit : =gK' modq (on rappelle que la notation "mod q" désigne le reste modulo q). Chaque membre connaît en outre la structure de l'arbre et sa propre place dans celui-ci. On considère tout d'abord le cas où le noeud fils n3 dont on veut déterminer la clé secrète a exactement deux noeuds père ni et n2. Si on note Km et Kn2 les clés secrètes associées aux noeuds pères ni et n2 respectivement, la clé secrète Kn3 attribuée au noeud fils n3 est Kn3 = gKnt•Knz.modq . Cette clé secrète Kn3 peut en effet être obtenue par chacun des noeuds pères ni et n2 puisque gK".Knz modq = ln n2 modq = l 21 modq . Lorsque le nombre de noeuds pères dont dépend le noeud fils dont on cherche la clé secrète est supérieur strictement à deux, on se ramène au cas qui vient d'être décrit (noeud fils ayant exactement deux noeuds pères) par l'interposition d'un ou plusieurs noeud(s) "virtuel(s)" dans la hiérarchie. Un tel noeud virtuel n'est associé à aucun membre de la hiérarchie mais détient une clé secrète et un label (comme les noeuds associés à des membres) dans le seul but de pouvoir dériver la clé secrète des noeuds fils qui lui sont rattachés. Il est en effet toujours possible, quitte à interposer plusieurs niveaux de noeuds virtuels comme représenté par exemple en figure 4, de construire, par ajout de noeuds virtuels ayant chacun exactement deux noeuds pères (éventuellement eux-mêmes virtuels), une structure dans laquelle le noeud fils ne possède que deux noeuds pères dont l'un au moins est un noeud virtuel. Dans le cas décrit à la figure 4, on a par exemple introduit un noeud virtuel n1n2 en tant fils des noeuds pères n1 et n2, un noeud virtuel n3n4 en tant que fils des noeuds pères n3 et n4, puis un noeud virtuel n1n2n3n4 en tant que fils des noeuds virtuels n1, n2 et n3, n4, le noeud fils nf;,s (fils des cinq pères dans la structure originale) étant alors considéré comme le fils du noeud virtuel n1, n2, n3, n4 et du noeud père n5. On attribue alors une clé intermédiaire respectivement Kn1n2, Kn3n4, Kn1n2n3n4 à chacun des noeuds virtuels n1n2, n3n4, n1n2n3n4. Les labels correspondant associés à chacun des noeuds virtuels sont publiés. Ainsi, chaque noeud père ayant un ou plusieurs noeud(s) virtuel(s) en tant que descendance (fils, petit-fils, etc.) peut obtenir la clé secrète associée aux noeuds virtuels qui lui sont rattachés (selon la technique décrite ci-dessus dans le cas où un noeud fils a exactement deux noeuds pères) et peut ainsi dériver la clé secrète du noeud fils sur la base de la clé secrète du noeud virtuel parent immédiat du noeud fils nf;,s et du label public de l'autre père du noeud fils nfiis Dans l'exemple de la figure 4, le noeud n1 a par exemple accès à la clé intermédiaire Kn1n2 du noeud virtuel n1n2 grâce à sa propre clé secrète Kn1 et au label public In2. Il aura alors accès à la clé intermédiaire Kn1n2n3n4 du noeud virtuel n1n2n3n4 au moyen de la clé intermédiaire Kn1n2 précédemment calculée et du label public In3n4 associé au noeud virtuel n3n4. Le noeud n1 aura donc ainsi accès à la clé secrète Kfils du noeud fils nf;,s grâce à la clé intermédiaire Kn1n2n3n4 obtenue précédemment et au label public In5 du noeud n5. On remarque que le noeud n5 aura quant à lui accès à la clé secrète Kfils du noeud nf;,s au moyen de sa propre clé secrète Kn5 et du label public du noeud virtuel n1n2n3n4. Les noeuds virtuels seront par exemple construits selon une méthode déterministe prédéterminée afin que la structure induite (et les clés qui en résultent) puisse être les mêmes à chaque dérivation de la clé secrète Kfils du noeud fils nf;,s. En variante, on pourrait publier, en lieu et place (ou en complément) de la structure de la hiérarchie comme décrit précédemment, la structure de l'arbre utilisée pour les calculs et intégrant donc les noeuds virtuels. On va à présent décrire, en référence aux figures 5 à 9, quatre variantes de l'exemple qui vient d'être donné en tant que seconde méthode et qui permettent de gérer plus facilement les évolutions susceptibles d'intervenir dans la hiérarchie, à savoir le nécessaire renouvellement des clés et le dynamisme des groupes. Selon une première variante décrite à présent en référence aux figures 5 et 6, un noeud père (par exemple le noeud n1 en figure 5) utilise pour dériver la clé secrète d'un noeud fils (par exemple n3 en figure 5) une clé secrète spécifique à ce noeud fils (Kn1 en figure 5). On propose ici que cette clé secrète Kn è spécifique à la dérivation P fils de la clé du noeud fils nf;,s puisse être elle-même dérivée de la clé du noeud père Kn, selon la formule : KnPe fi = H(c i KnPe ) , où H est une fonction de hachage cryptographiquement sûre commune à tous les fils (et éventuellement à tout le graphe), c est une constante commune à tous les fils (et éventuellement à tout le graphe) et i est un indice différent pour chaque noeud fils nfils. La clé secrète du noeud fils (ici Kn3) est alors obtenue, par exemple selon la méthode présentée plus haut, en référence à la figure 3 en utilisant les clés secrètes des noeuds pères dédiées aux noeuds fils concernés (Knh et Kn21 en figure 5). On peut ainsi introduire de nouveaux noeuds fils facilement en créant une nouvelle clé spécifique au moyen d'un nouvel indice i et de la clé du noeud 5 père concerné. Comme visible en figure 5, on note qu'il convient dans ce cas de publier un label ln associé à chaque clé spécifique Kn Pèfils Pe.efl Selon une possibilité de réalisation, lorsqu'un ou plusieurs noeud(s) fils ont strictement plus de deux noeuds pères et qu'on utilise alors la technique 10 des noeuds virtuels mentionnée ci-dessus, il n'est nécessaire d'utiliser des clés spécifiques (ou dédiées) aux noeuds fils (comme il vient d'être décrit) que pour les noeuds (éventuellement virtuels) directement parents des noeuds fils concernés, comme illustré par exemple en figure 6, ce qui permet de réduire la complexité des calculs. 15 Dans l'exemple de la figure 6, la clé intermédiaire Kn1n2 du noeud virtuel n1n2 est dérivée à l'aide des clés secrètes des noeuds ni et n2 (et non de clés spécifiques à ce noeud virtuel comme décrit ci-dessus). En revanche, pour le noeud fils E (qui a pour père les trois noeuds n1, n2, n3 dans la hiérarchie originale avant introduction du noeud virtuel n1 n2), on 20 utilise une première clé Kn1n2 associée au noeud virtuel n1 n2 et spécifique au noeud E et une clé Kn3 associée au noeud père n3 et spécifique au noeud E. On a dans ce cas en utilisant les formules proposées ci-dessus pour le calcul des clés spécifiques : Kn~n2 = H(c 1 Knin2) , Kn3 = H(c 1 Kn3) et la clé secrète du noeud E 25 vaut alors Kn4 = gKn nz,Kn3, modq . On décrit à présent en référence à la figure 7 une seconde variante de la méthode de la figure 3. Selon cette seconde variante, on utilise pour dériver la clé secrète d'un noeud fils un générateur dédié à ce noeud fils. 30 On propose par exemple d'utiliser un générateur gni...ni=H(cII identifiant du père 1 Il identifiant du père 2 Il ... identifiant du père n II i II g), où H est une fonction de hachage cryptographiquement sûre commune à tous les fils (voire à tout le graphe), c est une constante commune à tous les fils (voire à tout le graphe) et i est un indice différent pour chaque noeud fils. On utilise par exemple en tant qu'identifiant du noeud père un numéro associé à ce noeud dans la hiérarchie. G étant un groupe cyclique d'ordre q premier, la formule ci-dessus permet d'obtenir également des générateurs de G. Les générateurs étant différents pour chaque indice i (et donc pour chaque noeud fils), on obtient des labels publics différents et donc des clés différentes selon le fils. Un exemple d'utilisation de cette méthode avec trois noeuds pères est illustré en figure 7. Comme décrit pour la méthode de la figure 6, on remarque qu'il est également possible ici pour baisser la complexité des calculs d'utiliser les générateurs tels qu'ils viennent d'être décrits seulement pour les deux noeuds pères (éventuellement virtuels) du noeud fils concerné. On décrit à présent en référence à la figure 8 une troisième variante de réalisation de la méthode générale décrite plus haut en référence à la figure 3. Selon cette variante, on propose d'introduire un noeud virtuel en tant que noeud père supplémentaire du noeud fils dont on cherche à dériver la clé. On peut ainsi définir une clé secrète Kä du noeud virtuel introduit, et un label public lv associé à cette clé secrète Kv. La clé secrète Kä est par exemple définie par les noeuds pères. Il suffit alors de modifier la clé du noeud virtuel Kv pour modifier la clé du noeud fils. Comme précédemment et comme représenté en figure 8, on peut tout d'abord créer une clé commune à l'ensemble des noeuds pères (clé secrète du noeud virtuel nin2n3) puis définir la clé du noeud fils en fonction de cette clé commune et de la clé Kv (c'est-à-dire en définissant le noeud fils, ici n4, en tant que fils du noeud virtuel n1n2n3 regroupant les noeuds pères et du noeud virtuel introduit dans le but de pouvoir modifier la clé du fils). Un noeud père qui souhaite dériver la clé du noeud fils utilisera donc le label public lv associé au noeud virtuel. On décrit à présent en référence à la figure 9 une quatrième variante de réalisation de la méthode générale décrite en référence à la figure 3. Selon cette variante, lorsqu'un noeud fils (n4 en figure 9) a plusieurs noeuds pères (noeuds ni, n2 et n3 en figure 9), on interpose un noeud virtuel en tant que noeud fils de l'ensemble des noeuds pères selon la méthode générale décrite en référence aux figures 3 et 4, puis on définit le noeud fils (ici n4) dont on cherche à générer la clé secrète en tant que fils de ce noeud virtuel au moyen de la première méthode décrite plus haut (cas où le fils n'a qu'un seul père). Ainsi, lorsque l'on souhaite ajouter un noeud fils à l'ensemble des noeuds pères (ni, n2, n3 en figure 9), il suffit d'ajouter ce noeud en tant que nouveau fils du noeud virtuel au moyen de la première méthode (dont le coût calculatoire est nettement inférieur à celui de la seconde méthode plus complexe destinée au cas à plusieurs pères, qui utilise par exemple dans les modes de réalisation donnés ci-dessus des exponentiations modulaires), ce qui est particulièrement avantageux en présence d'une pluralité de noeuds fils. Les exemples qui précèdent ne sont que des modes possibles de mise en oeuvre de l'invention qui ne s'y limite pas. Notamment, et comme déjà mentionné à propos de la figure 5, lorsque les exemples présentés ci-dessus nécessitent le calcul de la clé d'un noeud fils ayant plusieurs pères, l'introduction de noeuds virtuels afin de ramener le traitement à des noeuds pères pris deux par deux n'est qu'un mode possible de réalisation. Dans le cadre de la figure 9 par exemple, la clé du noeud virtuel Kv pourrait être définie par un autre protocole d'échange de clés entre les noeuds pères ni, n2, n3 que celui utilisant le noeud virtuel n1n2. REVENDICATIONS 1. Procédé de génération d'une clé cryptographique associée à un sous-groupe ayant au moins un père dans une hiérarchie, caractérisé en ce qu'il comprend les étapes suivantes : - détermination du nombre de sous-groupes pères dudit sous-groupe dans la hiérarchie ; - détermination de la clé cryptographique associée audit sous-groupe au moyen d'un premier algorithme mettant en oeuvre une clé secrète associée au sous-groupe père lorsque le nombre déterminé vaut un, et au moyen d'un second algorithme mettant en oeuvre une clé secrète associée à un premier sous-groupe père et une information publique associée à au moins un second sous-groupe père lorsque le nombre déterminé est supérieur ou égal à deux. 2. Procédé selon la revendication 1, caractérisé en ce que le second algorithme met en oeuvre un protocole d'échange de clés entre les au moins 20 deux sous-groupes pères. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que, lorsque le nombre déterminé est supérieur ou égal à trois, la détermination de la clé cryptographique comprend les étapes suivantes : 25 - détermination d'une clé intermédiaire en fonction de la clé secrète associée au premier sous-groupe père et de l'information publique associée au second sous-groupe père ; - détermination de la clé cryptographique en fonction de la clé intermédiaire et d'une clé publique associée à au moins un troisième sous-30 groupe père. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que le second algorithme utilise une information relative audit sous-groupe. 5. Procédé selon la revendication 4, caractérisé en ce que la clé 5 secrète associée au premier sous-groupe père est obtenue sur la base de la clé secrète du premier sous-groupe père et de ladite information. 6. Procédé selon la revendication 4, caractérisé en ce que l'information relative audit sous-groupe est la clé publique associée au second 10 sous-groupe père. 7. Procédé selon l'une des revendication 1 à 3, caractérisé par une étape d'introduction d'un noeud virtuel en tant que père dudit sous-groupe. 15 8. Procédé selon la revendication 7, caractérisé en ce que ladite clé cryptographique est déterminée en fonction d'une clé publique associée au noeud virtuel. 9. Procédé selon la revendication 7, caractérisé en ce que le noeud 20 virtuel est introduit comme fils desdits sous-groupes pères et en ce que ladite clé cryptographique est obtenue sur la base d'une clé secrète associée au noeud virtuel. 10. Programme d'ordinateur pouvant être chargé dans un système 25 informatique et contenant des instructions permettant la mise en oeuvre d'un procédé selon l'une des revendications 1 à 9 lorsque ce programme est chargé et exécuté par le système informatique. 11. Dispositif de génération d'une clé cryptographique associée à un 30 sous-groupe ayant au moins un père dans une hiérarchie, caractérisé en ce qu'il comprend :- des moyens de détermination du nombre de sous-groupes pères dudit sous-groupe dans la hiérarchie ; - des moyens de détermination de la clé cryptographique associée audit sous-groupe au moyen d'un premier algorithme mettant en oeuvre une clé secrète associée au sous-groupe père lorsque le nombre déterminé vaut un, et au moyen d'un second algorithme mettant en oeuvre une clé secrète associée à un premier sous-groupe père et une information publique associée à au moins un second sous-groupe père lorsque le nombre déterminé est supérieur ou égal à deux. 12. Dispositif de chiffrement de données, caractérisé en ce qu'il comprend un dispositif de génération d'une clé cryptographique selon la revendication 11 et des moyens de chiffrement de données mettant en oeuvre la clé cryptographique générée.15