Brevet FR2752121A1 — publié le 19980206

PROCEDE D'EXECUTION D'UNE SIGNATURE NUMERIOUE ASSOCIEE A UN MESSAGE ET PROCEDE DE VERIFICATION DE CELLE-CI La présente invention concerne une signature numérique et, plus particulièrement, un procédé d'exécution d'une signature numérique associée à un message, permettant d'assurer une fonction signature à des documents ou à des données électroniques. La signature numérique est globalement, dans un échange électronique d'informations, l'équivalent d'une signature manuscrite dans du courrier classique. Du fait que la société dépend de plus en plus de l'information, du fait du développement des ordinateurs et de la communication électronique, tous les documents passent actuellement du courrier classique aux données électroniques. Il en résulte des risques croissants de falsifications et de modifications de contrats ou de documents entre les entités concernées, c'est-à-dire entre particuliers, entre un particulier et une partie,20 et entre sociétés. Pour s'adapter à ces nouvelles conditions, une technique est nécessaire pour pouvoir assurer une fonction signature à un document électronique, comme c'est le cas pour du courrier classique. Plus précisément, une signature numérique associée à un message sert à assurer des fonctions de protection de l'information, par exemple l'authentification et la fiabilité des données dans des systèmes de traitement de l'information et dans des systèmes de communication entre30 réseaux, pour s'adapter aux conditions ci-dessus mentionnées. Une méthode de chiffrage est nécessaire pour la technique des signatures numériques, afin de pouvoir empêcher toute utilisation subreptice, toute falsification et toute modification d'un document35 électronique. Les systèmes utilisant la méthode du chiffrage se divisent globalement en systèmes à clés publiques et en systèmes à clés secrètes. La cryptographie à clés secrètes est difficile à maîtriser car deux utilisateurs,5 qui désirent communiquer, doivent partager la même clé secrète et parce qu'elle ne peut pas garantir une signature assurant une pleine protection, du fait qu'elle ne comporte pas de fonctions telles que refus d'accès non autorisé et blocage, ce que devrait assurer une10 signature. Dans le cas de la cryptographie à clés publiques, la clé publique et la clé secrète sont calculées au moyen d'une fonction unilatérale, qui est très difficile à résoudre mathématiquement. Toute personne possédant la clé publique d'un homologue peut15 procéder à une communication secrète avec cet homologue car cette clé publique est divulguée pour être utilisée par tout un chacun, la clé secrète étant conservée par l'utilisateur. En ce qui concerne la signature numérique faisant appel au système à clés publiques, on utilise deux clés, à savoir la clé secrète servant à signer un message et la clé publique servant à vérifier la signature. En fait, la paire de clés utilisée pour le procédé de signature numérique est la clé publique pour la vérification et la25 clé secrète pour la signature. L'une des signatures de messages, qui fait appel au procédé à clés publiques, est la signature numérique à restitution de message. Il s'agit d'un procédé permettant de récupérer le message au cours de la vérification de la30 signature. Le procédé de signature numérique, proposé par l'Organisation Internationale de Normalisation et par la Commission Electrotechnique Internationale (ISO/CEI 9796), concerne un type de signature numérique à restitution de message. On utilise ici un algorithme de Rivest Shamir Adleman (RSA), dont la sécurité est basée 3 sur la difficulté d'une désintégration d'un facteur premier. Dans l'algorithme RSA, il est difficile d'appliquer la signature numérique à un message de longueur arbitraire, car c'est un message de longueur5 limitée qui doit être reçu. La signature numérique associée à un message est différente de la signature numérique à restitution de message. Dans la signature numérique associée à un message, on utilise une fonction de hachage pour pouvoir10 obtenir le message. Il est possible de procéder à la signature et à la vérification en très peu de temps car la signature est effectuée après simplification du message au moyen de la fonction de hachage. Une signature numérique ElGamal constitue un exemple de signature15 numérique associée à un message et d'une signature numérique à clé publique, et sa sécurité est basée sur le calcul d'un logarithme discret. Elle présente toutefois un inconvénient en ce que la taille de la signature est doublée lorsque la signature est créée. 20 Un but de la présente invention consiste donc à proposer un procédé d'exécution d'une signature numérique associée à un message au moyen d'une fonction de hachage, afin de pouvoir réduire la longueur de la signature. Un autre but de la présente invention consiste à proposer un procédé de vérification de la signature numérique associée à un message. Le premier but est atteint par un procédé d'exécution d'une signature numérique associée à un message, o Lp et Lq désignent les longueurs, en bits, de30 facteurs premiers p et q, et o g = a(p- 1)/q mod p. les conditions 1 1 étant satisfaites, ce procédé comprenant les étapes de multiplication d'un code de hachage H(M), correspondant à un message M à envoyer, par gK calculé à partir d'un35 nombre aléatoire K produit chaque fois qu'une signature est effectuée, d'exécution d'une multiplication modulaire du résultat de la multiplication par un modula p et d'obtention de R, qui est une partie début d'une signature en coupant la valeur résultants à Lq bits, d'obtention de S qui est une partie fin d'une signature en utilisant une clé secrète X d'un signataire, le nombre aléatoire K produit chaque fois que la signature est effectuée, et le R calculé par l'intermédiaire de S = (K - RX)mod q. et de transfert d'une clé de vérification de signature Y pour la vérification d'une signature numérique et du message M comprenant le R et le S. Pour atteindre le second but, on propose un procédé de vérification de la signature numérique associée à un message, o Lp et Lq désignent les longueurs, en bits, de facteurs premiers p et q, et o g = a(p-1)/q mod p, les conditions 1 1 étant satisfaites, ce procédé comprenant les étapes de réception des messages transmis de la manière ci-dessus décrite, de Y, M, S et R, de confirmation que O ressortiront d'ailleurs mieux de la description détaillée d'un mode de réalisation préféré de celle-ci, en liaison avec les dessins annexés, sur lesquels: la figure 1 est un organigramme décrivant un procédé de création d'une signature numérique selon la présente invention; et la figure 2 est un organigramme décrivant un procédé de vérification de la signature numérique ainsi produite. On va maintenant décrire en détail la présente invention en se référant aux dessins annexés. Avant de procéder à l'explication de la présente invention, il convient de signaler que les références utilisées dans la présente invention sont définies comme suit: M désigne un message à envoyer; p et q indiquent des facteurs premiers; Lp et Lq désignent, respectivement, les10 longueurs de p et de q en bits; g = a(p-l)/q mod p. les conditions 1 1 étant satisfaites; X indique la clé secrète de signature d'un signataire; Y correspond à la clé de vérification de signature divulguée pour permettre la vérification de la15 signature numérique; Y = gX mod p; K désigne un nombre aléatoire, qui est un élément quelconque de (1, 2,... q - 1). La signature numérique Z est obtenue par la concaténation de R et de S, R et S étant tous deux plus petits que q.20 X, Y, p et q sont des variables fixées, parmi lesquelles p, q, ainsi que g sont partagées par tous les utilisateurs mais, toutefois, le nombre aléatoire K est nouvellement choisi chaque fois que la signature est produite. K et X, utilisés pendant le processus de25 signature, ne devraient pas être connus de tierces personnes, et ils sont sélectionnés dans la fourchette de 0 jusqu'au facteur premier q. H est une fonction de hachage ayant une résistance à la collision. h = H(M) est un code de hachage qui résulte de l'exploitation de la30 fonction de hachage sur le message à signer. Egalement, désigne une concaténation. On peut créer comme suit la signature numérique associée à un message selon la présente invention, conformément à la définition et à l'explication ci-dessus35 données. La figure 1 est un organigramme d'un procédé de création de la signature numérique selon la présente invention. Tout d'abord, le code de hachage H(M) d'un message M est produit au moyen de la fonction de hachage, qui est une fonction unilatérale (pas 100). Un nombre aléatoire K est produit, et il est sélectionné parmi {1, 2,..., q-l}, chaque fois que la signature est produite (pas 110). gK est calculé au moyen du nombre aléatoire produit (pas 120), gK étant une valeur indépendante du message et pouvant être calculée d'avance. Après avoir effectué une multiplication modulo p du code de hachage par la valeur calculée d'avance (pas ), le résultat est coupé à la longueur de Lq bits. Couper signifie jeter tous les bits au-delà de la longueur de Lq bits. Le résultat en est R, valeur qui correspond à la partie début de la signature (pas 140). S = (K - RX)mod q est calculé en utilisant la clé secrète de signature X du signataire afin de pouvoir produire la partie fin de la signature (pas 150). La20 signature E = RIIS est obtenue par concaténation de R et de S (pas 160). La signature est ajoutée au message et {Y, M, R et S} sont transmis avec la clé de vérification Y de la signature (pas 170). La figure 2 est un organigramme d'un procédé de vérification de la signature numérique produite. Un vérificateur confirme que 0 signifie que le message M a été signé avec une signature non valable ou bien que le message a été altéré par un attaquant. Dans ce cas, le message M est considéré comme10 étant sans valeur (pas 260). Selon la présente invention, la fonction signature existant dans le courrier classique peut être associée à un document électronique et l'identité du rédacteur du document électronique peut être vérifiée.15 Il est possible de savoir que le document a été transformé par une tierce personne, lorsque le contenu du document original a été modifié par cette tierce personne, et d'obtenir la signature électronique requise par les échanges monétaires électroniques. La signature20 numérique peut également être utilisée dans un système d'authentification et elle peut augmenter la rapidité de vérification de la signature. Bien que l'invention ait été particulièrement montrée et décrite en se référant à un mode de réalisation préféré de celle-ci, il sera compris aisément par les personnes expérimentées dans cette technique que des modifications dans la forme et dans des détails peuvent être effectuées sans sortir de l'esprit ni du domaine de l'invention. REVENDICATIONS 1. Procédé d'exécution d'une signature numérique associée à un message, o Lp et Lq désignent les longueurs, en bits, de facteurs premiers p et q, et o g = a(p-1)/q mod p, les conditions 1 1 étant satisfaites, caractérisé en ce qu'il comprend les étapes de: multiplication d'un code de hachage H(M), correspondant à un message M à envoyer, par gK calculé à partir d'un nombre aléatoire K produit chaque fois qu'une signature est effectuée; exécution d'une multiplication modulaire du résultat de ladite multiplication par un modulo p et obtention de R, qui est une partie début d'une signature en coupant la valeur résultante à Lq bits; obtention de S, qui est une partie fin d'une signature, en utilisant une clé secrète X d'un signataire, du nombre aléatoire K produit chaque fois que20 la signature est effectuée, et du R calculé par l'intermédiaire de S = (K - RX) mod q; et transfert d'une clé de vérification de signature Y pour la vérification d'une signature numérique et du message M comprenant lesdits R et S.25 2. Procédé de vérification de la signature numérique associée à un message exécutée par un procédé conforme à la revendication 1, o Lp et Lq désignent les longueurs, en bits, de facteurs premiers p et q, et o g = a(P-1)/q mod p, les conditions 1 1 étant satisfaites, caractérisé en ce qu'il comprend les étapes de: réception des messages transmis selon la revendication 1, de Y, M, S et R, et confirmation que 0 2752121. de hachage H(M) correspondant au message M, auxdits S et R reçus, et exécution d'une multiplication modulaire en ce qui concerne un modulo p; et confirmation qu'un utilisateur, possédant une clé publique de vérification Y, a signé le message reçu M lorsque la valeur résultante de la réduction du résultat de ladite multiplication modulaire à Lq bits est égale à la valeur reçue R.