Brevet FR2836768A1 — publié le 20030905

La présente invention concerne un procédé et un dispositif pour former une signature numérique associant de manière exclusive un message de données numériques à une personne physique ou morale, dite signataire du message, qui possède au moins une clé secrète, et destinée à être transmise avec ledit message à au moins une autre personne, dite destinataire du message, devant vérifier le message accompagné de ladite signature. Plus précisément, l'invention concerne les procédés de signature numérique du type comportant les étapes consistant à : - mettre à disposition du système signataire une donnée génératrice, - calculer l'image de ladite donnée génératrice par une transformation réputée non inversible, pour mettre ladite image à disposition du système signataire, - former la signature numérique dans le système signataire à partir de ladite image, ladite donnée génératrice, ladite clé secrète et ledit message. Au sens de l'invention, la signature numérique désigne à la fois un ensemble de données ou codes numériques, c'est-à-dire une chaîne de bits, spécifique à un couple formé du message et du signataire, et un procédé cryptographique pour engendrer une telle chaîne de bits. Une signature numérique associe de manière exclusive un message de données numériques au signataire et est destinée à être transmise avec le message à au moins un destinataire du message, lequel doit vérifier le message signé, c'est-à-dire le message accompagné de la signature. Au sens de l'invention, on entend par vérification du message signé un ensemble d'opérations tendant à vérifier l'origine du message signé, c'est-à-dire vérifier que le message vient effectivement du signataire et non de quelqu'un qui essaie de se faire passer pour lui, et l'intégrité du message signé, c'est-à-dire vérifier que le contenu du message n'a pas été modifié entre son envoi par le signataire et sa réception par le destinataire. Au sens de l'invention, un système désigne un système de traitement de données programmable muni de moyens de calcul, de moyens de mémorisation et d'une interface de communication pour échanger des données. Toute personne voulant appliquer un procédé de signature numérique, en tant que signataire et/ou en tant que destinataire- vérifieur, doit évidemment utiliser un tel système. Par la suite, on identifie donc tout signataire et tout destinataire aux systèmes qu'ils utilisent, désignés respectivement par les expressions système signataire et système destinataire. Une signature numérique est indépendante du destinataire et vérifiable par n'importe quel destinataire recevant le message accompagné de sa signature, et donc en particulier par une autorité judiciaire ou d'arbitrage. Cette caractéristique de la signature numérique, qui la distingue notamment des simples procédés cryptographiques d'authentification, permet de mettre en oeuvre une interdiction pour les signataires de répudier leurs signatures. En d'autres termes, la signature numérique est un moyen de preuve fiable et vérifiable par les tiers et se prête donc aux applications juridiques. On notera que la signature numérique est un procédé cryptographique séparé et indépendant des procédés de chiffrement qui pourraient être utilisés pour garantir la confidentialité du message. D'une part, le message signé peut très bien être envoyé en clair pour être lisible par tout destinataire, d'autre part, si l'on souhaite chiffrer le message envoyé, tout procédé de chiffrement connu peut être utilisé. En outre, il est possible de chiffrer un message préalablement signé ou de signer un message préalablement chiffré sans interférences entre ces opérations successives. La figure 1 illustre un procédé standard de signature numérique du type à clé publique, connu sous le nom de DSA (pour l'anglais Digital Signature Algorithm). Les paramètres de cet algorithme comprennent : L-L - un module entier premier p vérifiant 2 2159 - une clé privée entière x choisie aléatoirement telle que 0 Les entiers p, q et g sont publics et peuvent être partagés par plusieurs utilisateurs et utilisés pour plusieurs signatures. Ils sont par exemple publiés par une autorité de certification. Un système signataire 1 doit signer et envoyer un message M à un système destinataire 2. Le système signataire 1 est muni de la clé publique y et de la clé privée x. La clé privée x est propre au système signataire 1 et doit être conservée secrète par celui-ci. Elle est nécessaire pour engendrer la signature numérique du système signataire 1. La clé publique y est publiée par le système signataire 1 pour être mise à la disposition du système destinataire 2, comme indiqué par la flèche 3. Le couple de clés x, y peut être utilisé par le système signataire 1 pour signer plusieurs messages. Pour signer le message M, le système signataire 1 effectue les opérations consistant à : - engendrer aléatoirement un entier k tel que 0 Le couple d'entiers (r, s) constitue la signature 4 que le système signataire 1 annexe au message M pour former un message signé 5 qu'il envoie au système destinataire 2. Lorsqu'il reçoit un message M'avec une signature (r', s'), le système destinataire 2 peut vérifier le message signé, c'est-à-dire vérifier qu'il provient effectivement du système signataire 1 et que le message M'est identique au message M envoyé par le système signataire 1. Pour cela, le système destinataire 2 effectue les opérations consistant à : - calculer l'entier w= (s')"' modulo q ; - calculer l'entier u= (SHA (M') w) modulo q ; - calculer l'entier u'= (r'w) modulo q ; - calculer l'entier v= (g y modulo p) module q. - comparer l'entier v avec l'entier r'reçu. Le résultat de la vérification est positif si et seulement si v=r'. Dans le cas contraire, le système destinataire 2 conclut que le message provient d'une autre origine et/ou a été modifié au cours de la transmission. Au sens de l'invention, on considère que la signature 4 associe le message M exclusivement au système signataire 1, dans la mesure où seul le système signataire 1 en possession de sa clé privée x et du message M peut former la signature 4. La sécurité de ce type de signature numérique est fondée sur le caractère réputé non inversible d'une opération mathématique, c'est-à- dire ici de l'opération d'exponentiation discrète dans le groupe Z/pZ. Au sens de l'invention, une opération mathématique est réputée non inversible lorsque le calcul consistant à l'inverser présente une extrême difficulté, compte-tenu des moyens de calcul existants. En d'autres termes, il s'agit ici de l'extrême difficulté de calculer la clé privée x lorsqu'on connaît la clé publique y et de calculer l'entier k lorsque l'on connaît l'entier r. Ceci assure le caractère secret de la clé privée x du système signataire 1. En fait, il est aujourd'hui impossible en pratique de résoudre ce problème, dit du logarithme discret, pour des nombres aussi grands. Un problème posé par ce procédé connu réside dans le coût opératoire de l'exponentiation discrète. Ce coût impose de munir le système signataire 1 de moyens de calcul de forte puissance, en terme de cadence de processeur et de mémoire, ou de prévoir un temps de calcul important, ou de faire un compromis entre ces deux exigences. Cependant, deux contraintes supplémentaires doivent être prises en compte dans ce compromis. D'une part, dans de nombreuses applications, notamment liées à la transmission de documents à valeur juridique, et plus particulièrement dans le cadre des transactions électroniques, la signature numérique doit être engendrée en temps réel pendant que l'utilisateur patiente, de sorte que le temps de calcul doit être maintenu dans des limites acceptables pour l'utilisateur, par exemple de l'ordre de quelques secondes. D'autre part, la signature électronique, dans la mesure où elle doit pouvoir remplacer la signature manuscrite, doit être aussi accessible dans l'exercice de gestes quotidiens, tels qu'une transaction électronique ou un envoi de courrier électronique, qu'un stylographe est accessible au signataire à la main. Il est donc souhaitable de réaliser des signatures électroniques à l'aide d'appareils portatifs tels que les radiotéléphones, assistants numériques personnels et analogues, dont les capacités de calcul sont insuffisantes pour réaliser l'exponentiation discrète susmentionnée dans un temps acceptable. Pour satisfaire ces exigences, plusieurs solutions ont déjà été envisagées. Il est possible d'ajouter du matériel de calcul spécifique à un appareil du type susmentionné pour amener sa puissance de calcul à un niveau satisfaisant. Ceci accroît bien évidemment le coût de l'appareil. Eventuellement, on peut aussi prévoir que l'appareil réalise en tâche de fond un calcul de données préparatoires pour une signature ultérieure. Cependant, l'alimentation de ce type d'appareil étant fournie généralement par des batteries, la réalisation de calculs préparatoires volumineux en tâche de fond a pour inconvénient de diminuer l'autonomie de l'appareil. Une autre type de solution consiste à modifier l'algorithme de calcul pour améliorer son efficacité. Le document WO 99/33220 Al propose une variante de l'algorithme DSA susmentionné permettant d'accélérer les calculs sans modifier substantiellement le résultat. Bien que la voie des améliorations algorithmiques soit généralement bénéfique, son exploitation à l'extrême amène nécessairement à des modifications dépendant de l'architecture du système signataire, ce qui oblige à s'écarter d'un algorithme standard uniformisé. Il en résulte alors des inconvénients pour la mise en oeuvre et la maintenance d'un parc d'appareils hétérogènes. Le document EP 666 669 Bl propose encore une autre solution consistant, d'une part à utiliser une variante de l'algorithme DSA et, d'autre part, à faire effectuer les calculs d'exponentiation discrète par une autorité de certification qui transmet ensuite le résultat au système signataire. Selon ce procédé connu, le calcul de l'image de la donnée génératrice k, c'est-à-dire gk modulo p, est effectué par l'autorité de certification. Pour cela, l'autorité de certification et le système signataire sont munis de deux générateurs de séquences de nombres pseudo-aléatoires identiques et mettent en commun une donnée r d'initialisation pour engendrer séparément une même séquence de données génératrices. Cette caractéristique crée des failles dans la sécurité du procédé décrit dans EP 666 669 Bl. En effet, avec ce procédé, l'autorité de certification détient la donnée génératrice k et son image. Lorsque le signataire envoie un message signé, il est possible à une personne mal intentionnée de se procurer la signature du message. Ceci est particulièrement aisé si cette personne est un destinataire du message ou si le message signé est envoyé en clair. Cette personne mal intentionnée pourrait être un membre de l'autorité de certification elle-même ou, plus probablement, quelqu'un qui aurait pris temporairement le contrôle de ses systèmes. Or la connaissance de la signature (c, s), reçue avec le message signé, et de la donnée génératrice k, frauduleusement acquise auprès de l'autorité, donne immédiatement connaissance de la clé privée x puisque x= (s-k) /c, d'après les notations utilisées dans ce document. Or il est certain que si un tiers détient la clé privée x d'un système signataire, ce tiers pourra se faire passer pour le signataire sans possibilité d'être démasqué. Ceci peut avoir des conséquences très graves pour la victime, si celle-ci est liée par une clause de nonrépudiation des signatures. De plus, la valeur d'initialisation du générateur pourrait être interceptée par un tiers malveillant au cours de sa transmission entre le système signataire et l'autorité. Si le tiers dispose du générateur pseudoaléatoire, il sera en mesure de déterminer, non seulement la donnée génératrice d'une signature particulière, mais encore de toute une série de signatures ultérieures, ce qui accroît ses chances de se procurer la clé privée x du système signataire. En fait, le procédé décrit dans EP 666 669 BI présente des risques équivalents à ceux qu'entraînerait une délégation totale des opérations de signature par le système signataire à l'autorité de certification. Une telle délégation n'est acceptable que si une confiance absolue peut être mise dans l'autorité. En pratique, les risques d'usurpation d'identité sont tels qu'il est improbable qu'une signature engendrée entièrement par un système tiers pour le compte d'un signataire ait quelque valeur juridique. L'invention vise à proposer un procédé et un dispositif de signature numérique remédiant à au moins certains des inconvénients précités. En particulier, l'invention vise à fournir un procédé de signature de plus grande sécurité, compatible avec les algorithmes de signature standards, et utilisable avec un système signataire muni de capacités de calcul limitées. Pour cela, l'invention propose un procédé de signature numérique du type susmentionné, caractérisé par le fait que la donnée génératrice est mise à disposition du système signataire d'une manière exclusive sous la forme d'une pluralité d'antécédents de la donnée génératrice associés à la donnée génératrice par une fonction d'association connue du système signataire, le calcul d'image comportant les étapes consistant à : - mettre à disposition de chacun d'une pluralité de systèmes d'assistance l'un respectif desdits antécédents, - calculer un résultat intermédiaire respectif à l'aide de chacun desdits systèmes d'assistance à partir de l'antécédent mis à sa disposition, - transmettre lesdits résultats intermédiaires depuis lesdits systèmes d'assistance jusqu'à un système de combinaison, - combiner lesdits résultats intermédiaires à l'aide dudit système de combinaison pour calculer ladite image. L'invention s'applique aux signatures numériques requérant un couple d'une donnée génératrice de la signature, soit k, et de l'image de cette donnée génératrice par une transformation mathématique réputée non inversible, soit T (k). L'invention est fondée sur l'idée e ee d'obtenir depuis l'extérieur du système signataire l'image de la donnée génératrice ou un résultat proche, c'est-à-dire un résultat de calcul permettant d'atteindre cette image en un petit nombre d'opérations réalisables par le système signataire, et ce, sans avoir à communiquer la donnée génératrice à l'extérieur du système signataire. Cette idée est mise en oeuvre en exhibant une fonction d'association F associant la donnée génératrice k à un t-uplet d'antécédents, soit kl, k2,... kt, t étant un entier supérieur ou égal à 2. Par exemple, la fonction d'association F vérifie la relation : Les systèmes d'assistance calculent des résultats intermédiaires à partir des antécédents, par exemple en appliquant une transformation intermédiaire Hi (ki) à l'antécédent ki correspondant, et ces résultats intermédiaires, soit ri, r2,... rt, sont combinés par le système de combinaison de manière à obtenir l'image de la donnée génératrice ou le résultat proche, par exemple à l'aide d'une fonction de combinaison K (ri, r2,... rt). Dans ce procédé, les opérations mathématiques coûteuses liées au calcul de l'image de la donnée génératrice, par exemple par exponentiation discrète, sont extemalisées auprès des systèmes d'assistance, qui sont par exemple des terminaux fixes conçus pour effectuer le calcul intermédiaire qui leur est dévolu dans un délai acceptable, par exemple en quelques millisecondes. On obtient ainsi un temps de calcul de la signature acceptable sans munir le système signataire de matériel de calcul spécifique. Il en résulte également que la formation d'une signature numérique est faiblement consommatrice d'énergie pour le système signataire et n'affecte pas significativement son autonomie De plus, la donnée génératrice n'est pas mise à disposition d'un autre système que le système de traitement de données signataire, c'est-à-dire qu'elle est conservée strictement privée. On évite ainsi que tout autre système que le système signataire soit en mesure d'engendrer la signature authentique du système signataire. De ce fait, il n'est pas nécessaire d'avoir une confiance absolue dans les systèmes d'assistance, qui ne connaissent chacun qu'un antécédent de la donnée génératrice et devrait donc coopérer entre eux pour se procurer la donnée génératrice, ni d'avoir une confiance absolue dans le système de combinaison, qui ne connaît pas la donnée génératrice ni ses antécédents. En outre, les antécédents et la loi d'association peuvent être choisis pour rendre l'opération de calcul de la donnée génératrice impossible en l'absence d'un seul des dits antécédents. Ainsi, le vol de la donnée génératrice ne sera possible qu'en prenant le contrôle de tous les systèmes d'assistance. Le nombre des systèmes d'assistance est un nombre quelconque supérieur ou égal à deux, par exemple 2,3, 10 ou plus. Il peut être accru pour réduire les probabilités de vol de la donnée génératrice. Selon une caractéristique particulière de l'invention, le système de combinaison est inclus dans le système signataire. Dans ce cas, le système signataire peut recevoir les résultats intermédiaires et les combiner en un nombre limité d'opérations pour former la signature numérique. Selon une autre caractéristique particulière de l'invention, le système de combinaison est séparé du système signataire, et le procédé comporte l'étape consistant à transmettre le résultat de la combinaison des résultats intermédiaires depuis le système de combinaison au système signataire. Dans ce cas, le nombre d'opérations à effectuer par le système signataire peut être encore réduit. Selon encore une autre caractéristique particulière de l'invention, le système de combinaison est inclus dans l'un desdits systèmes d'assistance. Ainsi, on peut prévoir au minimum une mise en oeuvre de l'invention avec deux systèmes de traitement de données en plus du système signataire, à savoir deux systèmes d'assistance dont l'un est également système de combinaison. Bien sûr, un plus grand nombre de systèmes d'assistance peut également être utilisé pour obtenir une plus grande sécurité. Selon une réalisation particulière de l'invention, lesdits antécédents et ladite donnée génératrice sont calculés par le système signataire à l'aide de la fonction d'association, le système signataire mettant à disposition de chacun des systèmes d'assistance un antécédent respectif par transmission sur un canal de transmission sécurisé respectif. Par exemple, la donnée génératrice résulte de la somme des antécédents. Selon une autre réalisation particulière de l'invention, chacun des systèmes d'assistance engendre un antécédent respectif et le met à disposition du système signataire par transmission sur un canal de transmission sécurisé respectif en réponse à une requête du système signataire, le système signataire calculant ladite donnée génératrice à l'aide desdits antécédents et de la fonction d'association. Ces canaux de transmission sécurisés peuvent être obtenus par tout procédé de chiffrement connu. Les systèmes de paiement par cartes bancaires en fournissent des exemples bien connus de l'homme du métier. De préférence, chacun des canaux de transmission est sécurisé à l'aide d'une clé symétrique secrète, qui sert à la fois au chiffrement et au déchiffrement par le système signataire et par le système assistant correspondant. e Il est possible que le système signataire garde un des antécédents pour calculer lui-même un résultat intermédiaire à partir de cet antécédent, du moins lorsqu'un tel calcul n'est pas trop coûteux. Selon une alternative avantageuse, tous les antécédents sont mis à disposition des systèmes d'assistance, de manière à minimiser la charge de calcul pesant sur le système signataire. L'invention vise notamment les cas où il existe une transformation réputée non inversible T servant à calculer la signature numérique, une fonction d'association F calculable par le système signataire, des transformations intermédiaires Hi, identiques ou distinctes, calculables par les systèmes d'assistance respectifs pour obtenir les résultats intermédiaires et une fonction de combinaison K calculable par le système de combinaison, qui vérifient pour tout t-uplet d'antécédents ki, k2,... kt une relation du type : K [Hl (kl),..., H, (kt)] =T [F (ki,..., kJ]. Selon une réalisation particulière, la donnée génératrice définit un nombre entier k supérieur à 1 et la transformation réputée non inversible comprend un calcul du résultat de k compositions d'un élément neutre ou autre avec un élément g d'un groupe G par une loi de composition interne de ce groupe, chacun desdits antécédents définissant un nombre entier ki tel que la somme des nombres entiers ki soit égale au nombre entier k, chacun desdits résultats intermédiaires comportant le résultat de ki compositions, par exemple dudit élément neutre, avec ledit élément g du groupe G par ladite loi de composition, le système de combinaison combinant lesdits résultats intermédiaires en appliquant ladite loi de composition aux résultats respectifs des ki compositions. Par exemple, les antécédents sont égaux aux nombres entiers ki ou les antécédents définissent les nombres entiers ki par l'intermédiaire d'une transformation mathématique prédéterminée. Le calcul du résultat des ki compositions de l'élément neutre avec l'élément g peut comporter ki opérations successives de composition avec l'élément g ou, de préférence, comporter des opérations de composition des résultats des opérations de composition précédentes entre eux, de manière à aboutir au résultat en moins de ki opérations de composition. Par exemple, pour ki=4, le calcul de g4 résulte du calcul de g2=g*g (première opération) puis du calcul de g4=g2*g2 (deuxième opération) ; plutôt que des trois opérations successives : calcul de g2 (première opération), calcul de g3=g2*g (deuxième opération), calcul de g4=g3*g (troisième opération). Ainsi, le procédé est compatible avec les algorithmes de signature numérique dans lesquels on calcule l'image d'une donnée génératrice par des compositions successives par une loi de composition dans un groupe, par exemple conformément aux standards DSS et ECDSS et aux variantes algorithmiques basées sur ceux-ci. Le procédé selon l'invention permet donc de cumuler les gains d'efficacité et de vitesse liés à des améliorations algorithmiques, tant au niveau du système signataire que des systèmes d'assistance, avec le gain de vitesse lié à l'extemalisation de calculs coûteux auprès des systèmes d'assistance. Le groupe G est un groupe dans lequel l'exponentiation discrète est réputée non inversible, par exemple du type Z/pZ, où p est un module entier premier ou non, avec une loi multiplicative. Par exemple, p peut être premier ou le produit de deux nombres premiers. Selon une autre possibilité, le groupe G peut être défini par une loi de multiplication par un entier sur une courbe elliptique, la loi de composition du groupe étant alors notée comme une addition. Avantageusement, l'élément g et la loi de composition sont mis à disposition de ladite ou desdites entité (s) destinataire (s) pour permettre la vérification du message signé. Avantageusement, chacun desdits antécédents définit un nombre entier ki compris entre 0 et une borne supérieure prédéterminée, ladite borne supérieure étant de préférence de l'ordre de 2160 ou supérieure, par exemple de l'ordre de 2200. La valeur de la borne supérieure est issue d'un compromis. Elle est choisie assez grande pour prévenir toute possibilité d'attaque exhaustive, mais aussi petite que possible pour limiter le coût calculatoire du procédé de signature numérique. Idéalement, la borne supérieure est égale au cardinal du groupe G divisé par le nombre des systèmes d'assistance. Ainsi, la somme des nombres entiers ki est inférieure à ce cardinal et aucune réduction modulaire n'est nécessaire au moment de la sommation des nombres entiers ki. En pratique, pour des raisons d'efficacité, on peut choisir la borne supérieure inférieure au cardinal du groupe G divisé par le nombre des systèmes d'assistance si l'on veut éviter une réduction modulaire, ou égale au cardinal du groupe G divisé par le nombre des systèmes d'assistance si l'on ne tolère aucune perte d'entropie. Grâce à cette caractéristique, la connaissance par un tiers malveillant de certains des antécédents, par exemple acquis frauduleusement auprès des systèmes d'assistance, ne facilite pas de manière déterminante l'accès à la donnée génératrice. En effet, si l'on suppose qu'un tiers connaît tous les antécédents sauf un, et donc tous les nombres ki sauf un, sa seule possibilité pour déterminer la donnée génératrice est d'essayer toutes les valeurs possibles pour le nombre manquant, c'est-à-dire tous les nombres entiers entre 0 et la borne prédéterminée. En d'autres termes, la probabilité pour ce tiers d'accéder à la donnée génératrice reste très petite. Lorsqu'on utilise l'algorithme DSA, la borne supérieure est le nombre entier q. Dans ce cas, la donnée génératrice est aussi comprise entre 0 et la borne prédéterminée. De ce fait, dans ce cas, la connaissance de tous les antécédents sauf un laisse l'accès à la donnée génératrice aussi difficile pour un tiers malveillant qu'en ignorant tous les antécédents. De préférence, le résultat intermédiaire calculé par chacun des systèmes d'assistance résulte de l'application d'une transformation intermédiaire réputée non inversible à l'antécédent mis à la disposition dudit système d'assistance. Avantageusement, la signature comporte un premier élément de signature calculé en appliquant à ladite donnée génératrice une transformation dépendant de la clé secrète appartenant au système signataire et du message à signer, et un deuxième élément de signature dépendant de ladite image, ledit premier élément de signature étant destiné à calculer un paramètre de vérification d'une manière connue par ladite ou lesdites entité (s) destinataire (s), ledit deuxième élément de signature étant destiné à fournir un élément de référence devant être comparé par ladite ou lesdites entité (s) destinataire (s) avec ledit paramètre de vérification pour vérifier le message signé. Par exemple, l'élément de référence est égal au deuxième élément de signature ou résulte d'un calcul à partir du deuxième élément de signature. a em e e De préférence, le deuxième élément de signature ne dépend pas de données secrètes du système signataire. Ainsi, le calcul du deuxième élément de signature peut être entièrement effectué par les systèmes d'assistance et de combinaison. L'invention propose aussi un dispositif pour la mise en oeuvre du procédé susmentionné, caractérisé par le fait qu'il comporte un système de traitement de données signataire, une pluralité de systèmes de traitement de données d'assistance séparés dudit système signataire, un système de traitement de données de combinaison séparé ou faisant partie dudit système signataire et séparé ou faisant partie desdits systèmes d'assistance, et un ou plusieurs réseau (x) de transmission de données reliant, d'un part, lesdits systèmes d'assistance audit système signataire et audit système de combinaison et, d'autre part, ledit système de combinaison audit système signataire lorsque ceux-ci sont séparés. Avantageusement, le système signataire est intégré à un radiotéléphone portatif ou à une carte à puce. L'invention sera mieux comprise, et d'autres buts, détails, caractéristiques et avantages de celle-ci apparaîtront plus clairement au cours de la description suivante de plusieurs modes de réalisation particuliers de l'invention, donnés uniquement à titre illustratif et non limitatif, en référence au dessin annexé. Sur ce dessin : - la figure 1 est un schéma de principe d'un procédé de signature numérique de l'art antérieur, - la figure 2 est une représentation fonctionnelle d'un dispositif pour la mise en oeuvre d'un procédé de signature numérique selon l'invention, - la figure 3 représente les échanges de données au sein du dispositif de la figure 2, - la figure 4 est un schéma bloc représentant deux modes de réalisation distincts du procédé de signature numérique mis en oeuvre par le dispositif de la figure 2. En référence à la figure 2, on a représenté le système signataire sous la forme d'un radiotéléphone portatif 10. Le radiotéléphone 10 est muni de moyens de calcul trop limités pour former une signature numérique selon le procédé DSA décrit en introduction. Pour engendrer une signature numérique afin de transmettre un message signé à un correspondant, le radiotéléphone 10 est programmé pour coopérer avec une pluralité de systèmes d'assistance Ai, A2,... At, où t est un paramètre de sécurité entier supérieur ou égal à 2, et un système de combinaison C. Ces systèmes sont des serveurs informatiques aptes à communiquer entre eux par un réseau de télécommunication R, par exemple un réseau filaire, dont la topologie peut être quelconque. Le réseau R est muni d'un protocole d'adressage, par exemple le Protocole Internet (IP). Le radiotéléphone 10 peut échanger des données par voie hertzienne avec une station d'émission/réception 11, laquelle est reliée au réseau R pour permettre un échange de données entre le radiotéléphone 10, les systèmes d'assistance Ai, A2,... At et le système de combinaison C. Le radiotéléphone 10 est muni de moyens de calcul et de moyens cryptographiques pour échanger des données sur un canal sécurisé respectif avec chacun des systèmes d'assistance AI, A2,... At et le système de combinaison C. Par exemple, ces canaux sécurisés sont obtenus par un algorithme à clé symétrique, comme l'algorithme connu sous le nom AES, et permettent d'assurer la confidentialité et l'intégrité des données échangées. Il faut alors une clé distincte pour chaque canal sécurisé, cette clé servant à chiffrer et à déchiffrer les données échangées sur le canal et devant être possédée par les systèmes aux deux extrémités du canal. Les clés symétriques sont par exemple fournies par l'opérateur du réseau téléphonique utilisé par le radiotéléphone 10 et stockées dans une carte à puce, du type carte SIM, du radiotéléphone 10. Il est à noter que de tels canaux sécurisés sont indépendants de la topologie du réseau R et n'excluent que les données échangées sur chaque canal passent par des systèmes intermédiaires de transmission comme des routeurs. En variante, les canaux sécurisés pourraient être obtenus par d'autres algorithmes. Cependant, le calcul d'une paire de clés selon les procédés de type El Gamal ou RSA est en général au-delà des capacités du radiotéléphone 10, de sorte que l'on doit utiliser des procédé de chiffrement plus sommaires en pratique. En référence aux figures 3 et 4, on décrit maintenant le fonctionnement du système de la figure 2 lorsque le système signataire, c'est-à-dire le radiotéléphone 10 dans l'exemple représenté, doit signer et envoyer un message M à un système destinataire 20, par exemple un autre radiotéléphone relié au réseau R. On suppose que les données publiques du procédé DSA décrit en introduction, c'est-à-dire les entiers p, q et g et la fonction de hachage SHA, sont rendues disponibles sur le réseau R pour être accessibles à tout utilisateur du procédé de signature. L'entier L est choisi égal à 1024. Par exemple, ces données sont fournies par une autorité de certification sur simple requête. Le système signataire 10 dispose d'une clé privée x telle que 0 On décrit un premier mode de réalisation de procédé de signature en référence à la branche de gauche de la figure 4. A l'étape 11, le système signataire 10 reçoit une instruction de formation d'une signature numérique, par exemple entrée par l'utilisateur à l'aide du clavier 12. Il initialise la procédure de signature numérique jusqu'à atteindre une étape à laquelle une donnée génératrice k est nécessaire pour poursuivre. A l'étape 13, le système signataire 10 engendre une séquence aléatoire de t nombres entiers ki, avec i=l à t. Les nombres ki sont des antécédents de la donnée génératrice qui vérifient O fonction d'association consistant à sommer les antécédents ki : k= : ki (i=1 à t)] modulo q. A l'étape 14, le système signataire 10 envoie les antécédents kj, avec i=l à t, aux systèmes d'assistance respectifs Al à At. Chaque antécédent ki constitue ou est inclus dans une requête d'assistance transmise par le système signataire 10 aux systèmes d'assistance Al à At. A l'étape 15, chaque système d'assistance Ai, avec i=l à t, calcule un résultat intermédiaire ri à partir de l'antécédent ki qu'il a reçu en appliquant à celui-ci une transformation intermédiaire définie par : ri= (gki modulo p) modulo q. r A l'étape 16, chaque système d'assistance Ai, avec i=l à t, envoie le résultat intermédiaire ri qu'il a calculé au système de combinaison C. A l'étape 17, le système de combinaison C combine tous les résultats intermédiaires ri, avec i=l à t, en un résultat final r à l'aide de la fonction de combinaison consistant à faire le produit des résultats intermédiaires ri : r== [nri (i=l à t) modulo p] modulo q. A l'étape 18, le système de combinaison C envoie le résultat final r au système signataire 10, comme indiqué par la flèche r en trait continu. Le résultat r est l'image de la donnée génératrice k par une exponentiation discrète et vérifie : r= (gk modulo p) modulo q. Cette transformation étant réputée non inversible, il n'est pas nécessaire de transmettre le résultat final r de manière sécurisée. A l'étape 19, le système signataire 10 calcule un premier élément de signature : s= (k-1 (SHA (M) +xr)) modulo q, où SHA désigne la fonction de hachage cryptographique définie par le standard FIPS 180. Ce calcul est effectué rapidement par le système signataire 10 car il comporte un faible nombre d'opérations en comparaison du calcul de r. Puis le système signataire 10 termine la procédure de signature numérique en annexant au message M la signature numérique formée du premier élément de signature s et du résultat r, qu'il a reçu depuis le système de combinaison C, en tant que second élément de signature. A l'étape 21, le système signataire 10 transmet le message M et sa signature numérique (r, s) au système destinataire 20 par l'intermédiaire de la station d'émission/réception 11 et du réseau R. Bien sûr, il n'est pas nécessaire que l'envoi du message M et de la signature numérique soit simultané. Il est simplement nécessaire que le système destinataire ait reçu le message et la signature, simultanément ou dans un ordre successif quelconque, au moment d'effectuer la vérification. A l'étape 22, le système destinataire 20 vérifie le message signé qu'il a reçu en effectuant les opérations consistant à : - calculer l'entier w= (sr1 modulo q ; - calculer l'entier u= (SHA (M) w) modulo q ; - calculer l'entier u'= (rw) modulo q ; - calculer l'entier v= (gu y modul0 p) modulo q. - comparer l'entier v avec l'entier r reçu. Le résultat de la vérification est positif si et seulement si v=r. Dans ce cas, le système destinataire 20 sait de manière certaine que le message provient du système signataire 10 et lui est parvenu sans modification au cours de la transmission. Cette connaissance certaine peut de plus être acquise par un tiers disposant du message signe en effectuant lui-même les opérations de vérification susmentionnées. La clé publique y du système signataire 10 est de préférence certifiée par une autorité de certification possédant un serveur relié au réseau R. Elle est ensuite envoyée par le système signataire 10 au système destinataire 20 sous la forme d'un certificat numérique accompagnant le message signé. Un tel certificat est connu de l'homme du métier et permet au système destinataire 20 de vérifier l'authenticité de la clé publique y. Par exemple, le certificat est formé par l'autorité de certification en concaténant la clé publique y et des données identifiant de manière discriminante le système signataire (nom du signataire, adresse, etc. ) Tout système destinataire doit bien sûr connaître la clé publique de l'autorité de certification pour lire le certificat numérique. Couramment, la clé publique de l'autorité de certification est publiée dans un annuaire accessible à tout utilisateur. A défaut d'une telle certification, dans le cas où le résultat de la vérification de la signature effectué par le système destinataire 20 serait négatif, le système destinataire 20 dans l'impossibilité de s'assurer que ce résultat négatif ne découle pas d'une valeur erronée de la clé publique y utilisée pour effectuer la vérification. Dans le premier mode de réalisation, la mise à disposition de la donnée génératrice k au système signataire 10 résulte de la génération préalable des antécédents ki par le système signataire 10, puis de l'association des antécédents selon une fonction de sommation dans Z/qZ pour obtenir la donnée génératrice k. Inversement, le système signataire 10 pourrait commencer par engendrer aléatoirement la donnée génératrice k, puis calculer un t-uplet d'antécédents ki avec 0 aléatoirement les antécédents ki pour i=l à t-1 puis à calculer l'antécédent kt tel que : kt = [k- (i=l à t-l) I module q. On décrit maintenant un second mode de réalisation de procédé de signature en référence à la branche de droite de la figure 4. A l'étape 23, le système signataire 10 reçoit une instruction de formation d'une signature numérique, par exemple entrée par l'utilisateur à l'aide du clavier 12. Il initialise la procédure de signature numérique. A l'étape 24, le système signataire 10 envoie une requête d'assistance à chacun des systèmes d'assistance Ai, avec i=l à t. A l'étape 25, chaque système d'assistance Ai, avec i=l à t, engendre un antécédent de la donnée génératrice sous la forme d'un nombre entier aléatoire ki vérifiant O A l'étape 26, chaque système d'assistance Ai, avec i=l à t, calcule à partir de l'antécédent ki qu'il a engendré le résultat intermédiaire : ri= (gki modulo p) modulo q. A l'étape 27, chaque système d'assistance Ai, avec i=l à t, envoie l'antécédent ki qu'il a engendré au système signataire 10, comme indiqué par les flèches en traits interrompus de la figure 3. A l'étape 28, le système signataire 10 calcule la donnée génératrice k par la fonction d'association : k== : ki (i=l à t)] modulo q. A l'étape 29, chaque système d'assistance Ai, avec i=l à t, envoie le résultat intermédiaire ri qu'il a calculé au système de combinaison C. A l'étape 30, le système de combinaison C combine tous les résultats intermédiaires ri, avec i=l à t, en en calculant le produit : r= [ri (i=l à t) modulo p] modulo q. A l'étape 31, le système de combinaison C envoie le résultat final r au système signataire 10. Le procédé se poursuit ensuite à partir de l'étape 19 comme dans le mode de réalisation précédent. Dans les deux modes de réalisation susmentionnés, le procédé de signature débute sur instructions expresse de l'utilisateur, à l'étape 11 ou 23. En variante, on peut prévoir que les étapes préparatoires à la formation de la signature proprement dite, c'est-à-dire les étapes précédant l'étape 19, soient effectuées à l'avance, par exemple en tâche de fond, de sorte qu'il ne reste alors qu'à effectuer les étapes 19 et suivantes lorsqu'une signature numérique est demandée. Il en résulte une réduction supplémentaire du temps de réponse du système signataire. De plus, la quantité d'opérations impliquée par les étapes préparatoires est assez petite pour ne pas saturer durablement le processeur du système signataire 10. A la figure 3, on a aussi représenté une variante de réalisation de l'étape 19 susmentionnée. Dans le cadre de cette variante, le système de combinaison C envoie aussi le résultat r, qui est égal au second élément de signature, directement au système destinataire 20, comme indiqué par la flèche r en trait interrompu. Dans le cadre de cette variante, le système signataire 10 n'a plus qu'à envoyer le message M et le premier élément de signature s et non le deuxième élément r. On réalise ainsi une certaine économie de bande passante du système signataire 10 lors de l'envoi du message signé. Cependant, le système signataire 10 doit préalablement communiquer au système de combinaison C l'adresse du système destinataire 20. Dans une variante de réalisation, le système de combinaison C peut être un des systèmes d'assistance, par exemple Ai ou une partie de celui-ci. Cette variante permet de faire l'économie d'un ordinateur. Dans une autre variante de réalisation, le système de combinaison C peut être le système signataire 10 lui-même ou une partie de celui-ci. En effet, l'opération de combinaison des résultats intermédiaires ri, correspondant aux étapes 17 et 30 susmentionnées, implique (t-1) multiplications de nombres entiers codés sur q bits. Une telle multiplication est environ 1500 fois moins coûteuse qu'une exponentiation discrète telle que celle qui est réalisée par les systèmes d'assistance. Ainsi, même si l'on prévoit, dans le cadre de cette variante, que l'opération de combinaison est à la charge du système signataire 10, la quantité totale de calculs devant être effectuée par le système signataire 10 demeure environ 1500 fois moins coûteuse que si le système signataire devait former la signature numérique sans l'assistance des systèmes d'assistance A ; (il à t). Dans encore une variante de réalisation, qui peut être combinée avec les précédentes, le système signataire 10 engendre un antécédent supplémentaire kt+l sous la forme d'un nombre entier codé sur quelques bits, par exemple sur 4 bits, et ne le communique à aucun système d'assistance. Dans le cadre de cette variante, à l'étape 13 ou 28 susmentionnée, le système signataire 10 calcule la donnée génératrice k par la fonction d'association : k= [Eki (i=l a t+l)] modulo q. Puis, à l'étape 19, le système signataire 10 calcule un élément de signature r'en multipliant kt+l fois par g le résultat r de la combinaison des résultats intermédiaires pour obtenir une signature numérique (r', s') telle que : r'= (gk modulo p) modulo q s'= (k-l (SHA (M) +xr')) modulo q. Cette variante permet de renforcer encore le caractère secret de la données génératrice k, puisque l'antécédent kt+ 1 n'est communiqué à aucun système d'assistance et ne peut donc pas être acquis par un tiers, même en prenant le contrôle des systèmes d'assistance. Cependant, la protection conférée par l'antécédent supplémentaire kit+, est limitée dans la mesure où cet antécédent doit être choisi de taille beaucoup plus petite que les autres antécédents ki (i=l à t), sans quoi la charge de calcul imposées au système signataire 10 deviendrait excessive. Bien qu'on ait fait référence uniquement à la fonction de hachage du standard DSA dans ce qui précède, toute autre fonction de hachage peut aussi être utilisée en tant que fonction de hachage SHA dès lors que l'on sort de ce standard. Les modes de réalisation ci-dessus ont été décrits avec un radiotéléphone pour système signataire. Toutefois, le système signataire n'est pas limité à un radiotéléphone et peut aussi être tout autre système de traitement de données, notamment un système ayant une puissance de calcul trop faible pour calculer de manière autonome une signature numérique fiable en un temps acceptable, par exemple une carte à puce. Le système signataire doit être muni de moyens de mémorisation aptes à stocker la clé privée x de manière sécurisée. Les différents modes de réalisation de procédés décrits peuvent être mis en oeuvre de manière automatisée par une programmation correspondante du système signataire, des systèmes d'assistance et du système de combinaison. La réalisation d'une telle programmation relève des compétences de l'homme du métier. Bien que l'invention ait été décrite en liaison avec plusieurs modes de réalisation particuliers, il est bien évident qu'elle n'y est nullement limitée et qu'elle comprend tous les équivalents techniques des moyens décrits ainsi que leurs combinaisons si celles-ci entrent dans le cadre de l'invention. REVENDICATIONS 1. Procédé pour former une signature numérique associant de manière exclusive un message de données numériques (M) à un système signataire (10) possédant au moins une clé secrète (x) et destinée à être transmise avec ledit message à au moins un système destinataire (20) dudit message devant vérifier l'origine et l'intégrité dudit message accompagné de ladite signature, ledit procédé comportant les étapes consistant à : - mettre à disposition dudit système signataire une donnée génératrice, - calculer l'image (r) de ladite donnée génératrice par une transformation réputée non inversible, pour mettre ladite image à disposition dudit a système signataire, - former ladite signature numérique (r, s) dans ledit système signataire à partir de ladite image, ladite donnée génératrice, ladite clé secrète et ledit message, caractérisé par le fait que ladite donnée génératrice est mise à disposition (13,27) dudit système signataire d'une manière exclusive sous la forme d'une pluralité d'antécédents de ladite donnée génératrice (ki-kt) associés à ladite donnée génératrice par une fonction d'association connue dudit système signataire, ledit calcul d'image comportant les étapes consistant à : - mettre à disposition (14,25) de chacun d'une pluralité de systèmes d'assistance (Ai-At) l'un respectif desdits antécédents (ki-kt), - calculer (15,26) un résultat intermédiaire respectif (ri-rt) à l'aide de chacun desdits systèmes d'assistance à partir de l'antécédent mis à sa disposition, - transmettre (16,29) lesdits résultats intermédiaires depuis lesdits systèmes d'assistance jusqu'à un système de combinaison (C), - combiner lesdits résultats intermédiaires à l'aide dudit système de combinaison pour calculer ladite image. 2. Procédé selon la revendication 1, caractérisé par le fait que ledit système de combinaison est inclus dans ledit système signataire. 3. Procédé selon la revendication 1, caractérisé par le fait que ledit système de combinaison est séparé dudit système signataire, ledit procédé comportant l'étape consistant à : - transmettre (18, 31) depuis ledit système de combinaison audit système signataire le résultat de la combinaison desdits résultats intermédiaires (r). 4. Procédé selon la revendication 3, caractérisé par le fait que ledit système de combinaison est inclus dans l'un desdits systèmes d'assistance (Al). 5. Procédé selon l'une des revendications 1 à 4, caractérisé par le fait que lesdits antécédents et ladite donnée génératrice sont calculés par ledit système signataire à l'aide de ladite fonction d'association, ledit système signataire mettant à disposition de chacun desdits systèmes d'assistance un antécédent respectif par transmission (14) sur un canal de transmission sécurisé respectif. 6. Procédé selon l'une des revendications 1 à 4, caractérisé par le fait que chacun desdits systèmes d'assistance engendre (25) un antécédent respectif et le met à disposition dudit système signataire par transmission (27) sur un canal de transmission sécurisé respectif en réponse à une requête dudit système signataire, ledit système signataire calculant (28) ladite donnée génératrice à l'aide desdits antécédents et de ladite fonction d'association. 7. Procédé selon la revendication 5 ou 6, caractérisé par le fait que chacun desdits canaux de transmission est sécurisé à l'aide d'une clé symétrique secrète. 8. Procédé selon l'une des revendications 1 à 7, caractérisé par le fait que ladite donnée génératrice définit un nombre entier k supérieur à 1, ladite transformation réputée non inversible comprenant un calcul du résultat de k compositions avec un élément g d'un groupe G par une loi de composition interne de ce groupe, chacun desdits antécédents (kj-kj définissant un nombre entier kj tel que la somme des nombres entiers k, soit égale au nombre entier k, chacun desdits résultats intermédiaires (rj-rt) comportant le résultat de k, compositions avec ledit élément g du groupe G par ladite loi de composition, le système de combinaison combinant lesdits résultats intermédiaires en appliquant ladite loi de composition aux résultats respectifs des kj compositions. 9. Procédé selon la revendication 8, caractérisé par le fait que l'élément g et ladite loi de composition sont mis à disposition de ladite ou desdites entité (s) destinataire (s) (20) pour permettre la vérification du message signé. eri i e. 10. Procédé selon la revendication 8 ou 9, caractérisé par le fait que chacun des dits antécédents (k1 - kt) définit un nombre entier ki compris entre 0 et une borne supérieure prédéterminée, ladite borne supérieure étant de préférence de l'ordre de i60 ou supérieure. 11. Procédé selon l'une des revendications 1 à 10, caractérisé par le fait que le résultat intermédiaire calculé par chacun des systèmes d'assistance résulte de l'application d'une transformation intermédiaire réputée non inversible à l'antécédent mis à la disposition dudit systèmes d'assistance. 12. Procédé selon l'une des revendications 1 à 11, caractérisé par le fait que ladite signature comporte un premier élément de signature (s) calculé en appliquant à ladite donnée génératrice une transformation dépendant de la clé secrète dudit système signataire et du message à signer, et un deuxième élément de signature (r) dépendant de ladite image, ledit premier élément de signature étant destiné à calculer un paramètre de vérification d'une manière connue par ladite ou lesdites entité (s) destinataire (s), ledit deuxième élément de signature étant destiné à fournir un élément de référence devant être comparé par ladite ou lesdites entité (s) destinataire (s) avec ledit paramètre de vérification pour vérifier le message signé. 13. Procédé selon la revendication 12, caractérisé par le fait que le deuxième élément de signature (r) ne dépend pas de données secrètes dudit système signataire. 14. Procédé selon la revendication 12 ou 13, caractérisé par le fait que ledit élément de référence est égal au deuxième élément de signature (r). 15. Dispositif pour la mise en oeuvre du procédé selon l'une des revendications 1 à 14, caractérisé par le fait qu'il comporte un système de traitement de données signataire (10), une pluralité de systèmes de traitement de données d'assistance (Al-At) séparés dudit système signataire, un système de traitement de données de combinaison (C) séparé ou faisant partie dudit système signataire et séparé ou faisant partie desdits systèmes d'assistance, et un ou plusieurs réseau (x) de transmission de données (R) reliant, d'un part, lesdits systèmes d'assistance audit système signataire et audit système de combinaison et, d'autre part, ledit système de combinaison audit système signataire lorsque ceux-ci sont séparés. 16. Dispositif selon la revendication 15, caractérisé par le fait que ledit système signataire est intégré à un radiotéléphone portatif (10). 17. Dispositif selon la revendication 15 ou 16, caractérisé par le fait que ledit système signataire est intégré à une carte à puce.