Brevet FR3104356A1 — publié le 20210611

La divulgation se rapporte à un procédé de cogénération d’un matériel cryptographique partagé, procédé mis en œuvre au sein d’un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération. Un tel procédé comprend : - une étape de détermination (P10) d’un matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG ; - une étape de transmission (P20) dudit d’un matériel de chiffrement partagé (pkx) - une étape de réception (P30) des matériels de chiffrement partagés (pky, pkz) correspondants en provenance des autres dispositifs ; - une étape de calcul (P40) d’un alea partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG ; - une étape de transmission (P50) d’une forme masquée (Ox) dudit alea partagé (mx) ; - une étape de réception (P60) de forme masquées (Oy, Oz) des aléas partagés (my, mz) correspondants en provenance des autres dispositifs ; - une étape de calcul (P70) de l’aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG ;. Figure 1 Procédé de cogénération d’un matériel cryptographique partagé, dispositifs, système et programme d’ordinateur correspondant 1. Domaine technique La divulgation se rapporte au domaine du chiffrement. Plus particulièrement, la divulgation se rapporte à la génération de matériels cryptographiques de base, servant à sécuriser des données échangées entre deux dispositifs. De telles situations peuvent par exemple se rencontrer dans le domaine de l'Internet des objets (IoT) : le comptage intelligent, le stationnement intelligent, la surveillance de la santé, de l'environnement et d'autres applications sont des exemples typiques de système nécessitant un chiffrement de données. Alors que le coût et l'efficacité énergétique sont les principaux facteurs qui contribuent à la popularité des appareils commerciaux dans le domaine de l'IoT, les fonctionnalités de sécurité sont de plus en plus recherchées. Les fonctions de paiement, qui sont mises en œuvre soit en ligne soit hors ligne reposent également sur une confidentialité des données échangées entre les dispositifs qui interviennent dans l’opération de paiement elle-même, par exemple un smartphone et un terminal de paiement ou encore un ordinateur personnel et un serveur d’un marchand en ligne. 2. Technique antérieure Le chiffrement des échanges réalisées entre deux parties est une problématique vielle de plusieurs millénaires. Avec l’apparition des systèmes informatisés et le développement de théorie mathématiques adéquates, les techniques de chiffrement ont gagné en sécurité et en efficacité. Notamment, des cryptosystèmes complexes ont fait leur apparition, comme par exemple RSA (pour « Rivest, Shamir et Adleman. ») ont permis de sécuriser de nombreux systèmes à travers le monde. Avec l’évolution des technologies, de nombreux dispositifs sont équipés de capacités de chiffrement et de déchiffrement en utilisant des algorithmes efficaces, publiés et testés afin de garantir la confidentialité des échanges de données, souvent matériellement. C’est par exemple le cas de l’algorithme RSA 2048. Cependant, cet algorithme, comme d’autres, reposent sur la détermination de nombres aléatoires. Plus particulièrement, pour RSA, la génération d’un couple de clefs (privée/publique) demande de choisir deux nombres premiers de grande taille, de façon qu'il soit calculatoirement impossible de factoriser leur produit (c’est-à-dire de déterminer, à partir de leur seul produit, les deux entiers qui ont été utilisés pour obtenir ce produit). Pour déterminer un nombre premier de grande taille, on utilise un procédé qui fournit à la demande un entier impair aléatoire d'une taille suffisante : un test de primalité permet de déterminer ce nombre entier est premier ou non, et on s'arrête dès qu'un nombre premier est obtenu. Le théorème des nombres premiers assure que l'on trouve un nombre premier au bout d'un nombre raisonnable d'essais. La méthode requiert l’utilisation d’un test de primalité rapide. Ainsi, en règle générale un test probabiliste est mis en œuvre, tel que le test de primalité de Miller-Rabin ou une variante d’un tel test. Rien ne garantit que le nombre soit réellement premier, mais on obtient uniquement une forte probabilité qu'il le soit. Typiquement, ces opérations sont désormais intégrées de manière standard dans de nombreux dispositif et/ou de nombreuses bibliothèques de codes et utilisées de manière standard. Ainsi, les dispositifs précités sont équipés de puces qui peuvent mettre en œuvre de manière accélérée des protocoles de chiffrement de données, rendant celui-ci plus ou moins transparent pour le système. Cependant, pour RSA ou d’autres cryptosystèmes, la seule description des principes mathématiques sur lesquels repose l'algorithme n'est pas suffisante. La mise en œuvre concrète demande de tenir compte d'autres paramètres qui sont essentielles pour la sécurité. Par exemple le couple (clé privée, clé publique) doit être engendré par un procédé réellement aléatoire, procédé qui même s'il devait être connu, ne permet pas de reconstituer la clé privée. Or, bien que les algorithmes cryptographiques de confidentialité et d'authenticité sont pris en charge matériellement sur une classe courante de périphériques, comme expliqué précédemment, il n'existe généralement pas, dans le matériel grand public, de prise en charge adéquate de la génération de nombres aléatoires (également appelé « seed » dans la littérature) : en effet, une protection de la prise en charge de la génération de nombres aléatoire nécessite d’appliquer des dispositifs matériels qui interviennent comme des boucliers rendant la génération des nombres aléatoires insensibles aux perturbations extérieures, ce qui coûte cher et est donc négligé par les fabricants. Ainsi, il est souvent possible de manipuler passivement (ou activement) la source embarquée de génération de nombres aléatoires, et ainsi possible de saper la sécurité fournie par des algorithmes cryptographiques (autrement) puissants. En d’autres termes, en modifiant la manière dont les nombres aléatoires sont produits, il est possible de réduire de manière importante la complexité des problèmes mathématiques sous-jacents à l’obtention de clés privées, et ainsi réduire ou anéantir l’efficacité d’un algorithme de chiffrement pourtant réputé efficace. C’est typiquement la situation dans laquelle se trouvent les appareils mobiles grand public ou des dispositifs de l’IoT qui ne sont pas conçus pour la cryptographie. Ils n'incorporent pas de composants matériels ni de logiciels dédiés à la génération d'aléa de haute qualité. Au mieux, certains appareils haut de gamme sont équipés d'un « module de sécurité » dont la conception et les sources d'entropie sont généralement gardées secrètes et ne peuvent donc pas être auditées. Une solution naturelle consiste à utiliser un périphérique externe, tel qu'un HSM ou un serveur distant, pour fournir une source aléatoire. Comme la communication a un coût, seule un nombre aléatoire (« seed ») est généralement fourni, à partir de duquel une séquence de bits pseudo-aléatoires est dérivée. Or la transmission de ce nombre aléatoire par le serveur distant utilise lui -même un algorithme de chiffrement qui utilise… un nombre aléatoire. Ainsi, la solution consistant à utiliser un dispositif distant se heurte elle-même à la nécessaire implémentation préalable d’une solution de chiffrement à base de nombre aléatoire qui est bien entendu généré sur le dispositif qualifié de « non sécurisé ». Une telle faille, matérielle, permet à un attaquant de capturer (ou d’inférer ou choisir) le nombre aléatoire et d'obtenir tous les bits pseudo-aléatoires utilisés par le périphérique, ce qui n'est bien sûr pas souhaitable. Ainsi, pour établir un canal de communication sécurisé avec le périphérique consommateur, en premier lieu, des nombres aléatoires de haute qualité sont nécessaires. Il existe donc un besoin de fournir une méthode d’obtention d’un nombre aléatoire sécurisé qui permette d’obtenir des nombres aléatoires qualitatifs en toute sécurité. 3. Résumé de l'invention La divulgation permet de répondre en partie au moins aux problématiques posées par l’art antérieur. Plus particulièrement, la divulgation se rapporte à un procédé de cogénération d’un matériel cryptographique partagé, procédé mis en œuvre au sein d’un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération. Un tel procédé comprend : - une étape de détermination d’un matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ECG ; - une étape de transmission dudit d’un matériel de chiffrement partagé - une étape de réception de matériels de chiffrement partagés correspondants en provenance des autres dispositifs ; - une étape de calcul d’un alea partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ECG ; - une étape de transmission d’une forme masquée dudit alea partagé ; - une étape de réception de formes masquées des aléas partagés correspondants en provenance des autres dispositifs ; - une étape de calcul de l’aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération ECG ;. Ainsi, il est permit d’obtenir un aléa définitif de grande qualité (i.e. dont la probabilité qu’il soit aléatoire est très élevée) de manière simple et ce même si l’in des dispositifs participant à son élaboration est compromis. Selon un mode de réalisation particulier, l’étape de détermination du matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ECG comprend : - une étape de sélection, au sein d’un groupe cyclique G, d’un nombre sx, plus petit que p ; - une étape de calcul du matériel de chiffrement partagé en effectuant une opération du nombre sx avec le générateur g du groupe G. Ainsi, il est possible d’obtenir un matériel de chiffrement sécurisé. L’opération mise en œuvre est par exemple une multiplication ou une exponentiation et elle varie en fonction du groupe sélectionné ce qui permet d’augmenter la sécurité. Selon un mode de réalisation particulier, l’étape de calcul de l’aléa partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ECG comprend : - une étape d’obtention d’un nombre aléatoire rx ; - une étape de calcul de l’aléa partagé rx à partir du nombre aléatoire rx et des matériels de chiffrement partagés pkx, pky, pkz et d’une fonction de hachage H ; Ainsi, chaque participant utilise les données fournies par les autres participants et par lui-même pour générer un alea partagé. Selon une caractéristique particulière, l’étape de calcul de l’aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération ECG comprend : - une étape d’addition des formes masquées ; et - une étape de hachage, à l’aide d’une fonction de hachage H, du résultat de l’addition précédente, délivrant m’aléa définitif. Ainsi, aucun des participant ne peut influencer négativement (i.e. dans le sens d’une moindre sécurité) la génération de l’aléa définitif. Selon un mode de réalisation particulier, le groupe cyclique appartient au groupe comprenant : - Curve25519 ; - sec256p ; - head 25619 ; - Curve448. Selon un mode de réalisation particulier ladite fonction de hachage appartient au groupe comprenant : - SHA-1 ; - MD5 ; - SHA-3, en mode SHAKE128 ; Selon une caractéristique particulière, le Procédé de cogénération comprend en outre une étape de vérification de la validité de l’aléa définitif comprenant une génération d’un nombre aléatoire et un calcul d’une valeur de hachage d’une somme dudit nombre aléatoire et l’aléa définitif. Ainsi, chaque dispositif participant à la cogénération est en mesure de vérifier que les autres dispositifs possèdent le même aléa définitif partagé. La divulgation se rapporte également à un dispositif de cogénération d’un matériel cryptographique partagé, procédé mis en œuvre au sein d’un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération. Un tel dispositif comprend : - des moyens de détermination d’un matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ; - des moyens de transmission dudit d’un matériel de chiffrement partagé - des moyens de réception des matériels de chiffrement partagés correspondants en provenance des autres dispositifs ; - des moyens de calcul d’un alea partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ; - des moyens de transmission d’une forme masquée dudit alea partagé ; - des moyens de réception de forme masquées des aléas partagés correspondants en provenance des autres dispositifs ; - des moyens de calcul de l’aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération. Un tel dispositif peut se présenter sous la forme d’un terminal de communication d’utilisateur, muni d’un processeur généraliste, non nécessairement sécurisé. Il peut également prendre la forme d’un « secure element » ou équivalent, également présent au sein d’un (ou connecté à un) terminal de communication d’utilisateur, comprenant un processeur sécurisé. Il peut également prendre la forme d’un serveur distant. Il peut également prendre la forme d’un terminal de paiement ou d’un terminal d’authentification, disposant de composants de traitement de données sécurisés. La divulgation se rapporte également à un système de cogénération d’un matériel cryptographique partagé. Un tel système comprend au moins trois dispositifs de cogénération tel que présentés précédemment connectés entre eux. Plus particulièrement, dans un mode de réalisation, un tel système peut comprendre un terminal de communication d’utilisateur, muni d’un processeur généraliste, non nécessairement sécurisé ; un « secure element » ou équivalent, également présent au sein du (ou connecté au) terminal de communication d’utilisateur, comprenant un processeur sécurisé ; un serveur distant, connecté au terminal de communication. Ces trois dispositifs mettent chacun en œuvre le procédé précédemment décrit pour aboutir, dans le cadre de ce système, à la génération d’un aléa définitif tel que proposé. Selon une implémentation préférée, les différentes étapes des procédés selon la présente divulgation sont mises en œuvre par un ou plusieurs logiciels ou programmes d'ordinateur, comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un dispositif d’exécution selon la présente technique et étant conçu pour commander l'exécution des différentes étapes des procédés, mis en œuvre au niveau du terminal de communication, du dispositif électronique d’exécution et/ou du serveur distant, dans le cadre d’une répartition des traitements à effectuer et déterminés par un codes source scripté. En conséquence, la présente technique vise aussi des programmes, susceptibles d’être exécutés par un ordinateur ou par un processeur de données, ces programmes comportant des instructions pour commander l'exécution des étapes des procédés tel que mentionnés ci-dessus. Un programme peut utiliser n’importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n’importe quelle autre forme souhaitable. La présente technique vise aussi un support d'informations lisible par un processeur de données, et comportant des instructions d'un programme tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple un support mobile (carte mémoire) ou un disque dur ou un SSD. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon la présente technique peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Selon un mode de réalisation, la présente technique est mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme "module" peut correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et logiciels. Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Un tel composant logiciel est exécuté par un processeur de données d'une entité physique (terminal, serveur, passerelle, set-top-box, routeur, etc.) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc.). De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, une carte à mémoire, une carte électronique pour l'exécution d'un micrologiciel (firmware), etc. Chaque composante du système précédemment décrit met bien entendu en œuvre ses propres modules logiciels. Les différents modes de réalisation mentionnés ci-dessus sont combinables entre eux pour la mise en œuvre de la présente technique. 4. Brève description des dessins D’autres caractéristiques et avantages apparaîtront plus clairement à la lecture de la description suivante d’un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : expose le principe général du procédé de cogénération ; expose un mode de réalisation particulier du procédé de cogénération de la figure 1 ; illustre un dispositif de cogénération. 5. Description détaillée Le principe général de la présente technique repose sur la mise en œuvre d’une génération tripartite d’un nombre aléatoire. Comme explicité précédemment, en lien avec l’art antérieur, lorsque l’on souhaite obtenir un nombre aléatoire de qualité sur un dispositif d’utilisateur classique (de type smartphone, IoT, etc.), on fait appel à un serveur qui va se charger de fournir un tel nombre, avec cependant le risque que ce nombre (ou bien que le nombre pseudo aléatoire dérivé de ce nombre) soit intercepté, rendant ainsi inutile et couteux le recours à un tel serveur distant. Le procédé proposé permet de surmonter ce problème lié à la potentielle interception et/ou manipulation d’un nombre aléatoire qui est généré à distance par un serveur. Plus particulièrement, il est proposé un procédé symétrique de cogénération (au sens création) d’un nombre aléatoire faisant intervenir trois dispositifs (au moins) de traitement de données. Le procédé décrit permet d’obtenir un nombre aléatoire d’une grande qualité tout en réduisant ou annulant les risques de fraude ou d’interception de ce nombre aléatoire. Ainsi, la présente technique se rapporte à un procédé de cogénération d’un matériel cryptographique partagé, procédé mis en œuvre au sein d’un premier dispositif électronique, ledit dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération par l’intermédiaire d’un réseau de communication, ledit deuxième dispositif électronique mettant également en œuvre le procédé de cogénération du matériel cryptographique partagé, le procédé étant caractérisé en ce qu’il est en outre mis en œuvre par un troisième dispositif électronique de cogénération, connecté audit premier dispositif électronique de cogénération et audit deuxième dispositif électronique de cogénération. Plus particulièrement, selon la présente technique, le procédé de cogénération est basé sur l’utilisation commune, par les trois dispositifs parties à la cogénération, d’un ensemble de paramètres de cogénération. Selon la présente technique, dans un mode de réalisation particulier, cet ensemble de paramètres comprend notamment un groupe cyclique G (ou un sous-groupe d’un groupe cyclique), de générateur g et d’ordre p. Cet ensemble comprend également une fonction de hachage commune H. Cet ensemble de paramètres de cogénération est noté ECG. Dans un mode de réalisation, général, en connaissance de ces paramètres de cogénération ECG, chaque partie à la cogénération met en œuvre un procédé identique. L’objet de cette cogénération est de pallier les déficiences éventuelles d’un des trois dispositifs, pour au final, obtenir un nombre aléatoire de grande qualité, sans risque que ce nombre soit exposé ou manipulé. Pour les besoins de l’exposé, on considère que la cogénération est tripartite et qu’elle est mise en œuvre par trois dispositifs électroniques nommés respectivement {A}, {B} et {C}. On considère également que le dispositif {B} est un dispositif grand public auquel on n’accorde pas de confiance quant à la qualité des nombres aléatoire qu’il génère. Cela ne signifie pas qu’il s’agisse d’un dispositif de génération de mauvaise qualité, mais uniquement que ce dispositif peut éventuellement être soumis à des perturbations extérieures et/ou à des manipulations rendant son fonctionnement incertain, et donc auquel on n’accorde pas de confiance, par principe. On suppose également que le dispositif {B} souhaite échanger, avec le dispositif {A}, des données, de manière confidentielle (c’est-à-dire que l’on souhaite chiffrer le contenu des échanges de {A} vers {B} et réciproquement. Dans le cadre de la présente technique, on fait donc intervenir un troisième dispositif {C}, qui est connecté à {A} et {B}. On considère que {A} et {C} ne sont pas soumis à des perturbations extérieures, par exemple parce que {A} et {C} sont des serveurs distants, protégés et qu’ils se trouvent hors d’atteinte d’éventuelles perturbation, et/ou parce que {A} et {C} sont protégés contre les attaques extérieures et disposent de solutions de protections matérielles rendant leur surveillance ou manipulation difficile voire impossible pour un attaquant. Ainsi, le dispositif {A} peut être un serveur distant, par exemple un serveur bancaire ou encore un serveur médical, tandis que la dispositif {C} peut être un serveur (également un serveur bancaire ou un serveur de génération spécifique) ou encore un dispositif de cogénération particulier, spécifiquement dédié à cette tâche (il peut s’agir d’un dispositif indépendant, intégré ou connecté au dispositif {A} ou au dispositif {B}, comme par exemple une puce dédiée ou encore un dongle USB, bien que de telles mises en œuvre ne soient pas privilégiées). En d’autres termes, dans le contexte de la présente invention, il existe deux dispositifs : un dispositif de confiance {A}, capable de générer un caractère aléatoire de haute qualité (en utilisant n'importe quelle technique de génération de haute qualité connue de l’homme du métier); et un autre dispositif {B}, capable d'effectuer toute opération déterministe mais auquel on n’accorde pas de crédit pour générer un caractère aléatoire de haute qualité. On considéré que ces dispositifs communiquent ensemble, mais on ne suppose pas qu'un canal sécurisé a déjà été établi entre eux. En effet, établir un tel canal nécessite généralement une source de qualité aléatoire de grande qualité ; ou nécessite que le périphérique {B} incorpore des clés secrètes cryptographiques. Le problème avec cette deuxième situation est que le stockage sécurisé de clés secrètes dans {B} peut être difficile, car dans le contexte des attaquants de type « boîte blanche », une telle clé peut être extraite. Avec les conceptions typiques à clé publique, la fuite d’une telle clé de déchiffrement annule immédiatement le schéma. Ainsi, on propose de résoudre ce problème en introduisant un troisième dispositif de confiance {C} et un protocole tripartite permettant d’obtenir en toute sécurité sur un caractère aléatoire partagé. Selon la présente technique, le procédé comprend plusieurs étapes, certaines impliquant des échanges de données entre les trois parties. Selon la présente technique, dans un mode de réalisation décrit en relation avec la figure 1, le procédé suivant est mis en œuvre par chaque dispositif ({A}, {B}, {C}), et il comprend, pour un dispositif x, appartenant à l’ensemble ({A}, {B}, {C}) : - une étape de détermination (P10) d’un matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG ; - une étape de transmission (P20) dudit d’un matériel de chiffrement partagé (pkx) - une étape de réception (P30) des matériels de chiffrement partagés (pky, pkz) correspondants en provenance des autres dispositifs ; - une étape de calcul (P40) d’un alea partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG ; - une étape de transmission (P50) d’une forme masquée (Ox) dudit alea partagé (mx) ; - une étape de réception (P60) de forme masquées (Oy, Oz) des aléas partagés (my, mz) correspondants en provenance des autres dispositifs ; - une étape de calcul (P70) de l’aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG ;. Ainsi, à la différence du procédé classique, n’impliquant que deux dispositifs {A} et {B}, le procédé de la présente technique permet d’assurer que même si {B} est compromis, l’aléa définitif est d’une qualité suffisante pour permettre d’assurer une efficacité importante du chiffrement qui résultera de l’utilisation de cet aléa. De plus, à la différence de l’autre procédé classique, impliquant l’utilisation d’un serveur complémentaire transmettant directement un aléa au dispositif {B}, le procédé de la présente technique permet d’assurer que l’aléa transmis par le serveur complémentaire (qui par analogie pourrait être considéré comme le dispositif {C}) n’est pas compromis, manipulé ou intercepté et pour cause : dans la présente technique, le dispositif {C} ne transmet jamais d’aléa, mais une forme masqué d’un aléa partagé, cette forme masquée ne constituant, au final, qu’une composante de l’aléa définitif. Par ailleurs, comme l’ensemble des dispositifs ({A}, {B}, {C}) participent à génération du même aléa définitif, chaque participant ({A}, {B}, {C}), est en mesure de vérifier que l’aléa définitif est correct en comparant son propre aléa définitif avec l’aléa définitif obtenu par les autres participants. Or comme deux des participants ({A} et {C}) sont sécurisés (a priori), il n’est pas possible à priori de tromper ceux-ci. On note par ailleurs qu’avec trois participants (ou plus), au moins l’un d’entre eux masque la valeur aléatoire produite par l’autre (i.e. dans le cas de trois participants, la valeur aléatoire produite par {B} est réellement masquée : la valeur aléatoire masquée peut donc être égale à zéro sans qu’aucun participant à l’échange ne puisse le détecter (sauf le producteur de cette valeur bien entendu). Dès lors, un intervenant mal intentionné, qui produirait cette valeur « non aléatoire » (i.e. par exemple 0 ou une autre valeur prédéterminée) pour tenter d’influencer l’aléa ne pourrait pas influencer le caractère aléatoire du résultat. Bien entendu, plus le nombre de participants est important, plus les chances d’obtenir un résultat non conforme diminuent. Le procédé de la présente technique a été décrit d’une manière générale. Certaines étapes de celui-ci sont fonction de l’ensemble de paramètres de cogénération ECG. Notamment, il n’est pas toujours nécessaire de disposer d’un groupe cyclique pour pouvoir mettre en œuvre la technique proposée, et d’autres paramètres peuvent être utilisés s’il s’avère qu’ils sont plus adaptés à la situation concrète d’application. On décrit ci-après, en relation avec la figure 2, chaque étape de mise en œuvre du procédé général présenté précédemment, dans un certain mode de réalisation. L’étape de détermination (P10) du matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG comprend : - une étape de sélection, au sein du groupe cyclique G (ou d’un sous-groupe du groupe cyclique G), d’un nombre sx, plus petit que p ; - une étape de calcul du matériel de chiffrement partagé (pkx) en effectuant une opération du nombre sx avec le générateur g du groupe G ; L’opération en question peut être une opération additive ou une opération multiplicative, en fonction de la nature du groupe G. cette opération est notée, dans ce mode de réalisation entre crochets [] ; ainsi, pkx = [sx]g. L’étape de de calcul (P40) de l’aléa partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG comprend : - une étape d’obtention d’un nombre aléatoire rx ; - une étape de calcul de l’aléa partagé mx à partir du nombre aléatoire rx et des matériels de chiffrement partagés pkx, pky, pkz et de la fonction de hachage H ; Dans ce mode de réalisation, ce calcul suit une règle particulière en fonction d’un rang que le dispositif possède dans l’ensemble de dispositifs. Ainsi, le dispositif {A} calcule spécifiquement : mA = xA + hAB + hAC ; Ainsi, le dispositif {B} calcule spécifiquement : mB = xB – hBA + hBC ; Ainsi, le dispositif {B} calcule spécifiquement : mC = xC – hCA - hCB ; Pour chacun de ces calculs spécifiques on définit hXY = H(pkA, pkB, pkC, [sX] pkY). En fonctions des modes de réalisation, et du nombre de dispositifs impliqués, il est bien sur envisageable de définir d’autres expressions de l’aléa partagé mx. Le calcul de la forme masquée (Ox) dudit alea partagé (mx) est réalisée en effectuant une opération sur le groupe, comme pour le calcul du matériel de chiffrement partagé. Plus particulièrement, la forme masquée Ox = [mx]g. Toujours dans ce mode de réalisation, l’étape de calcul (P70) de l’aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG comprend : - une étape d’addition des formes masquées (Ox, Oy, Oz) ; et - une étape de hachage, à l’aide de la fonction de hachages H, du résultat de l’addition précédente, délivrant m’aléa définitif (ad). Cet aléa définitif est donc bien la combinaison de l’ensemble des aléas précédemment obtenus, et on note que le procédé présenté est fabriqué de sorte que le résultat obtenu est H([xA + xB + xC]g) qui représente un alea de la qualité escomptée. D’autres formes et mode de réalisation de ce protocole peuvent être envisagés, conduisant à un résultat similaire ou identique. Ainsi, on évite d'utiliser des clés secrètes à long terme et des problèmes causés par un mauvaise aléa (seed). En outre, il est également possible pour (A) de vérifier que (B) a reçu le bon alea (seed), car les deux dispositifs connaissent sa valeur. Par exemple, le protocole de connaissance zéro suivant peut être utilisé : - {A] (dispositif de confiance) envoie un aléa rT à {B} ; - {B} répond à {A} en transmettant le résultat Res du calcul H (ad, rT) ; - {A} vérifie que H (ad, rT) correspond au résultat H (ad, rT) que {B} a transmis. Lorsque le résultat est identique, cela signifie que l’aléa définitif (ad) produit par {B} est identique à celui produit par {A}, et donc que cet aléa définitif est bien fonction d’un alea de bonne qualité rC qui a été créé par {C}, sans que cet aléa rC n’ait subit de transformation, de malveillance ou d’usurpation. Ceci est particulièrement vrai puisque le protocole de connaissance zéro utilisé précédemment peut également être mis en œuvre entre {A} et {C} afin de valider la connaissance définitif (ad) par {A} et {C}. On note également, que selon la présente technique, il est avantageux de disposer de trois (ou plus) participants : l’un d’eux masque la valeur aléatoire produite par le dispositif (B). Ainsi, rB peut effectivement être nul dans le protocole ci-dessus, sans que cela n’affecte la qualité de la valeur aléatoire définitive (ad) obtenue à la fin du procédé. A titre indicatif, une implémentation concrète de la technique précédemment décrite peut-être mise avec les groupes cycliques suivants : Curve25519 ; sec256p, head 25619, Curve448. Ces groupes permettent de générer des aléas de bonne qualité en accord avec la présente technique. Par ailleurs, toute fonction de hachage peut être utilisée (SHA-1, MD5, etc.). Cependant, l’utilisation de la fonction SHA-3 (en mode SHAKE128 notamment) présente l’avantage de pouvoir sélectionner la taille du résultat de sortie, par exemple 256 bits, ce qui représente un avantage dans le cadre du calcul de l’aléa. En d’autres termes, avec l’utilisation de cette fonction, il est possible de déterminer, à l’avance quelle sera la taille de l’entier résultant du hachage et donc d’adapter cette taille, par exemple aux capacités respectives des dispositifs {A} et {B} afin d’assurer un compromis entre le besoin de sécurité et les capacités de traitement, notamment du dispositif {B}. Dans un mode de réalisation particulier, adapté à l’utilisation de terminaux de communication mobiles (de type smartphone), la taille de sortie sélectionnée est de 256bits. Cela signifie que l’aléa définitif possède une longueur de 256 bits. On présente, en relation avec la figure 3, une architecture simplifiée d’un dispositif électronique apte à effectuer le traitement de cogénération d’aléa tel que présenté précédemment. Un dispositif électronique comprend une mémoire 31, une unité de traitement 32 équipée par exemple d’un microprocesseur, et pilotée par un programme d’ordinateur 33, mettant en œuvre le procédé tel que précédemment décrit. Dans au moins un mode de réalisation, la présente technique est mise en œuvre sous la forme d’une application installée sur ce dispositif. Un tel dispositif comprend, en fonction des modes de réalisation : - des moyens de détermination d’un matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération; - des moyens de transmission dudit d’un matériel de chiffrement partagé - des moyens de réception des matériels de chiffrement partagés correspondants en provenance des autres dispositifs ; - des moyens de calcul d’un alea partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ; - des moyens de transmission d’une forme masquée dudit alea partagé ; - des moyens de réception de forme masquées des aléas partagés correspondants en provenance des autres dispositifs ; - des moyens de calcul de l’aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération ;. Comme explicité précédemment, ces moyens sont mis en œuvre par l’intermédiaire de modules et/ou de composants, par exemple sécurisés. Ils permettent ainsi de maintenir confidentielles les données nécessaires à la définition de clés utiles dans un cryptosystème pour le chiffrement de données.   Procédé de cogénération d’un matériel cryptographique partagé, procédé mis en œuvre au sein d’un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération, procédé caractérisé en ce qu’il comprend : - une étape de détermination (P10) d’un matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG ; - une étape de transmission (P20) dudit d’un matériel de chiffrement partagé (pkx) - une étape de réception (P30) des matériels de chiffrement partagés (pky, pkz) correspondants en provenance des autres dispositifs ; - une étape de calcul (P40) d’un alea partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG ; - une étape de transmission (P50) d’une forme masquée (Ox) dudit alea partagé (mx) ; - une étape de réception (P60) de forme masquées (Oy, Oz) des aléas partagés (my, mz) correspondants en provenance des autres dispositifs ; - une étape de calcul (P70) de l’aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG ;. Procédé de cogénération selon la revendication 1 caractérisé en ce que l’étape de détermination (P10) du matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG comprend : - une étape de sélection, au sein d’un groupe cyclique G, d’un nombre sx, plus petit que p ; - une étape de calcul du matériel de chiffrement partagé (pkx) en effectuant une opération du nombre sx avec le générateur g du groupe G. Procédé de cogénération selon la revendication 1 caractérisé en ce que l’étape de calcul (P40) de l’aléa partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG comprend : - une étape d’obtention d’un nombre aléatoire rx ; - une étape de calcul de l’aléa partagé rx à partir du nombre aléatoire rx et des matériels de chiffrement partagés pkx, pky, pkz et d’une fonction de hachage H ; Procédé de cogénération selon la revendication 1 caractérisé en ce que l’étape de calcul (P70) de l’aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG comprend : - une étape d’addition des formes masquées (Ox, Oy, Oz) ; et - une étape de hachage, à l’aide d’une fonction de hachage H, du résultat de l’addition précédente, délivrant m’aléa définitif (ad). Procédé de cogénération selon la revendication 2 caractérisé en ce que le groupe cyclique G appartient au groupe comprenant : - Curve25519 ; - sec256p ; - head 25619 ; - Curve448. Procédé de cogénération selon l’une des revendications 3 et 4 caractérisé en ce que ladite fonction de hachage appartient au groupe comprenant : - SHA-1 ; - MD5 ; - SHA-3, en mode SHAKE128 ; Procédé de cogénération selon la revendication 1 caractérisé en ce qu’il comprend en outre une étape de vérification de la validité de l’aléa définitif (ad) comprenant une génération d’un nombre aléatoire et un calcul d’une valeur de hachage d’une somme dudit nombre aléatoire et l’aléa définitif. Dispositif de cogénération d’un matériel cryptographique partagé, procédé mis en œuvre au sein d’un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération, dispositif caractérisé en ce qu’il comprend : - Des moyens de détermination d’un matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ; - Des moyens de transmission dudit d’un matériel de chiffrement partagé - Des moyens de réception des matériels de chiffrement partagés correspondants en provenance des autres dispositifs ; - Des moyens de calcul d’un alea partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ; - Des moyens de transmission d’une forme masquée dudit alea partagé ; - Des moyens de réception de forme masquées des aléas partagés correspondants en provenance des autres dispositifs ; - Des moyens de calcul de l’aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération. Système de cogénération d’un matériel cryptographique partagé caractérisé en ce qu’il comprend au moins trois dispositifs de cogénération selon la revendication 8, connectés entre eux. Produit programme d’ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu’il comprend des instructions de code de programme pour l’exécution d'un procédé de cogénération d’un matériel cryptographique partagé selon l’une des revendications 1 à 7, lorsqu’il est exécuté sur un ordinateur.