FR2850502A1 - Method of authenticating digital signatures using a low cost computer, used in authenticating bankcards or credit cards etc., allows a verifier system to exchange data with a signature system - Google Patents

Method of authenticating digital signatures using a low cost computer, used in authenticating bankcards or credit cards etc., allows a verifier system to exchange data with a signature system Download PDF

Info

Publication number
FR2850502A1
FR2850502A1 FR0300759A FR0300759A FR2850502A1 FR 2850502 A1 FR2850502 A1 FR 2850502A1 FR 0300759 A FR0300759 A FR 0300759A FR 0300759 A FR0300759 A FR 0300759A FR 2850502 A1 FR2850502 A1 FR 2850502A1
Authority
FR
France
Prior art keywords
bits
integer
verification system
weight
chosen
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0300759A
Other languages
French (fr)
Other versions
FR2850502B1 (en
Inventor
Julien Stern
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cryptolog
Original Assignee
Cryptolog
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cryptolog filed Critical Cryptolog
Priority to FR0300759A priority Critical patent/FR2850502B1/en
Publication of FR2850502A1 publication Critical patent/FR2850502A1/en
Application granted granted Critical
Publication of FR2850502B1 publication Critical patent/FR2850502B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

The method includes the signature system A being mounted on a public key (n,g) including an integer module n verifying n=pq, where p and q are first numbers chosen such that the discrete logarithmic problem in the assembly Zn is insoluble in practice, and an integer base g chosen in a group Znasterisk in a manner to present an order s which verifies gs =1 module n, this system signature A having a value of the order such that the secret key is associated to this public key , this public key being disposed with a verifying system B. The number s is chosen in a manner not to be divisible by 2j+1, for an integer j such that 0 is less than or equal to j is less than or equal to M, M being a parameter which is a positive integer or zero.

Description

ii

La présente invention se rapporte à des procédés de cryptographie à clé publique et, plus précisément, à un procédé de signature numérique pour permettre à un système vérifieur B pouvant échanger des données numériques avec un système A d'éprouver 5 l'authenticité d'un message de données numériques m échangé avec ledit système A et un procédé d'authentification ou d'identification numérique pour permettre au système vérifieur B d'éprouver l'authenticité du système A. La présente invention se rapporte également à un système signataire.  The present invention relates to public key cryptographic methods and, more specifically, to a digital signature method for enabling a verifier system B to exchange digital data with a system A to test the authenticity of a system. digital data message m exchanged with said system A and a method of authentication or digital identification to enable the verification system B to test the authenticity of the system A. The present invention also relates to a signatory system.

Pour la sécurisation des échanges de données sur les réseaux, les procédés de cryptographie à clé publique sont connus pour offrir un niveau de sreté élevé. Leur simplicité et leur faible cot vaut à des applications comme SSL d'être largement utilisées pour la protection des données échangées sur la Toile.  To secure data exchange over networks, public key cryptography methods are known to provide a high level of security. Their simplicity and their low cost is worth applications like SSL to be widely used for the protection of data exchanged on the Web.

Lorsqu'un système A et un système B échangent des données numériques par un réseau, il se pose le problème de vérifier l'authenticité de l'émetteur ou du destinataire des données échangées, pour détecter les cas o l'interlocuteur est un imposteur. Pour cela, on connaît des procédés d'authentification ou d'identification numérique 20 par lesquels un système vérifieur B peut éprouver l'authenticité d'un système A avec lequel il communique. Dans ces procédés, le système A est muni d'une clé secrète qu'il est le seul à connaître et il apporte au système vérifieur B une preuve, construite par le calcul, qu'il possède cette clé secrète. Outre la protection contre la falsification, une 25 propriété fondamentale d'un tel procédé est l'absence de transfert de connaissance, c'est-à-dire que la preuve apportée par le système A au système B ne doit pas permettre au système B de retrouver la clé secrète du système A, même après un grand nombre d'itérations du procédé.  When a system A and a system B exchange digital data by a network, there is the problem of verifying the authenticity of the sender or the recipient of the exchanged data, to detect cases where the interlocutor is an impostor. For this, there are known methods of authentication or digital identification 20 by which a verification system B can test the authenticity of a system A with which it communicates. In these processes, the system A is provided with a secret key which it is the only one to know and it brings to the verification system B a proof, constructed by calculation, that it possesses this secret key. In addition to protection against forgery, a fundamental property of such a method is the absence of knowledge transfer, that is, the proof provided by system A to system B should not allow system B to find the secret key of system A, even after a large number of iterations of the process.

On connaît également des procédés de signature numérique qui résolvent en outre le problème de vérifier l'authenticité d'un message de données échangé, c'est-à-dire de détecter également les cas o le message est modifié au cours du transport entre les deux systèmes. Dans ces procédés, le système signataire A fournit par le calcul une signature 35 numérique qui dépend à la fois de la clé secrète et du message, et qui permet au système vérifieur B d'éprouver l'authenticité du message. Une caractéristique supplémentaire de la signature numérique est de fournir une preuve transférable par laquelle tout système muni de la clé publique du système signataire A peut éprouver l'authenticité du message. Une signature numérique est indépendante du destinataire et vérifiable par 5 n'importe quel destinataire recevant le message accompagné de sa signature. Cette caractéristique de la signature numérique, qui la distingue notamment des procédés d'authentification, est aussi appelée propriété de non-répudiation.  Digital signature methods are also known which also solve the problem of verifying the authenticity of an exchanged data message, that is to say also to detect the cases where the message is modified during the transport between the messages. two systems. In these methods, the signatory system A provides by calculation a digital signature which depends on both the secret key and the message, and which enables the verifier system B to test the authenticity of the message. An additional feature of the digital signature is to provide a transferable proof by which any system with the public key of the signatory system A can experience the authenticity of the message. A digital signature is independent of the recipient and verifiable by any recipient receiving the message along with his signature. This characteristic of the digital signature, which distinguishes it in particular from authentication methods, is also called the non-repudiation property.

On notera que la signature numérique est un procédé 10 cryptographique séparé et indépendant des procédés de chiffrement qui peuvent ê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 15 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. Ceci s'applique de manière analogue à l'authentification numérique.  It will be appreciated that the digital signature is a separate cryptographic method independent of the encryption methods that can be used to ensure the confidentiality of the message. On the one hand, the signed message can very well be sent in clear to be readable by any recipient, on the other hand, if one wishes to encrypt the message sent, any known encryption method can be used. In addition, it is possible to encrypt a previously signed message or to sign a previously encrypted message without interference between these successive operations. This applies analogously to digital authentication.

Le cot calculatoire requis par les techniques de 20 cryptographie à clé publique connues gêne leur application à certains domaines. Il en découle des inconvénients importants, comme l'impossibilité de produire une réelle signature numérique à l'aide d'une carte de crédit ou l'impossibilité d'effectuer l'authentification d'une carte de crédit hors connexion avec un serveur central. En effet, dans ce 25 cas, le système vérifieur est un lecteur de carte bancaire, dans lequel on ne peut stocker que des données publiques pour des raisons de sécurité évidentes. De ce fait, la sécurisation des cartes de crédit et des radiotéléphones repose presque exclusivement sur la cryptographie à clé symétrique à l'heure actuelle. De nombreuses applications de ce type 30 gagneraient donc en sécurité si un procédé d'authentification ou de signature numérique était exécutable par une carte à puce de faible cot ou, mieux encore, par une simple carte à mémoire sans processeur.  The computational cost required by known public key cryptography techniques hinders their application to certain domains. This results in significant disadvantages, such as the impossibility of producing a real digital signature using a credit card or the impossibility of performing the authentication of an offline credit card with a central server. Indeed, in this case, the verification system is a credit card reader, in which one can store only public data for obvious security reasons. As a result, the security of credit cards and radiotelephones is almost exclusively based on symmetric key cryptography at the moment. Many applications of this type would thus gain security if an authentication or digital signature process was executable by a low-cost smart card or, better still, a simple memory card without a processor.

Pour résoudre ce problème, il a été proposé de décomposer la production d'une signature numérique en deux étapes: - une étape de pré-traitement, dans laquelle on engendre des données préparatoires indépendantes du message devant être signé et - une étape de terminaison de signature, qui est effectuée " à la volée " lorsque le message est prêt.  To solve this problem, it has been proposed to break down the production of a digital signature in two steps: a preprocessing step, in which preparatory data are generated that are independent of the message to be signed and a termination step of signature, which is done "on the fly" when the message is ready.

En outre, des étapes ont été franchies dans l'effort de réduire au minimum la quantité de calculs restant à effectuer " à la 5 volée. " Ainsi, C. P. Schnorr, " Efficient Signature Generation by Smart Cards " Journal of Cryptology, 4, 1991, pp. 161 - 174 propose un procédé dans lequel les opérations restant à effectuer " à la volée " consistent en une addition modulaire et une seule multiplication modulaire. Ces opérations sont réduites à une seule multiplication régulière dans le 10 procédé proposé par G. Poupard et J. Stern, " Security analysis of a practical 'on the fly' authentication and signature generation >>, Proceedings of Eurocrypt 96, Lecture Notes in Computer Science 1403, Springer-Verlag, pp. 422-436 (1998). Dans ce dernier procédé, dénommé procédé GPS ci-dessous, la suppression des multiplications 15 modulaires s'avère également avantageuse en termes de longueur de clé et de longueur de signature. Pour obtenir un niveau de sécurité correspondant à 280 opérations élémentaires, une clé secrète de 160 bits et une signature de 420 bits suffisent.  In addition, steps have been taken in the effort to minimize the amount of calculations still to be performed "on the fly." Thus, CP Schnorr, "Efficient Signature Generation by Smart Cards" Journal of Cryptology, 4, 1991 , pp. 161 - 174 proposes a method in which the operations remaining to be performed "on the fly" consist of a modular addition and a single modular multiplication. These operations are reduced to a single regular multiplication in the method proposed by G. Poupard and J. Stern, "Security analysis of a practical authentication and signature generation", Proceedings of Eurocrypt 96, Lecture Notes in Computer Science 1403, Springer-Verlag, pp. 422-436 (1998) In the latter method, referred to as the GPS method below, the suppression of modular multiplications is also advantageous in terms of key length and signature length. To obtain a security level corresponding to 280 elementary operations, a secret key of 160 bits and a signature of 420 bits are enough.

L'article " An Improved Signature Scheme without on line 20 Multiplication " de Takeshi Okamoto, Mitsuru Tada et Atsuko Miyaji dans Pre-proceedings of Financial Cryptography 02, décrit un procédé d'authentification et un procédé de signature numérique, dans lesquels un système signataire A est muni d'une clé publique (n,g) incluant un module entier n vérifiant n=pq, o p et q sont des nombres premiers 25 choisis tels que le problème du logarithme discret dans l'ensemble Zn soit insoluble en pratique, et une base entière g choisie dans le groupe Zn* de manière à présenter un ordre s qui vérifie gS=1 modulo n et 2k-'1<s<2k. Le système signataire A est muni de la valeur de l'ordre s en tant que clé secrète associée à ladite clé publique (n,g), tandis que la clé 30 publique (n,g) est mise à disposition d'un système vérifieur B. Pour être authentifié par le système B, le système A effectue les étapes suivantes: choisir un nombre entier r vérifiant 0<r<2a, calculer un nombre entier x vérifiant x=gr modulo n et le transmettre au 35 système B, recevoir en réponse un nombre e choisi par le système B vérifiant O<e<2,v calculer le nombre entier y vérifiant y=r+(e modulo s) et le transmettre au système vérifieur B. Le système vérifieur B compare le nombre y reçu à une 5 borne supérieure S vérifiant S=2a+2k pour reconnaître son interlocuteur comme non authentique lorsque y>S, et le système vérifieur B calcule le nombre entier x,=gY-e modulo n à partir du nombre y reçu. Le système A est reconnu authentique lorsque y<S et x'=x.  Takeshi Okamoto, Mitsuru Tada and Atsuko Miyaji's article "An Improved Signature Scheme without Multiplication" in Pre-proceedings of Financial Cryptography 02, describes an authentication method and a digital signature method, in which a signatory system A is provided with a public key (n, g) including an integer module n satisfying n = pq, op and q are selected prime numbers such that the problem of the discrete logarithm in the set Zn is insoluble in practice, and an integer base g chosen from the group Zn * so as to present an order s which satisfies gS = 1 modulo n and 2k-'1 <s <2k. The signatory system A is provided with the value of the order s as a secret key associated with said public key (n, g), while the public key (n, g) is made available to a verification system B. To be authenticated by the system B, the system A performs the following steps: choose an integer r satisfying 0 <r <2a, calculate an integer x satisfying x = gr modulo n and transmit it to the system B, receive in response to a number e chosen by the system B satisfying O <e <2, v calculate the integer y satisfying y = r + (e modulo s) and transmit it to the verifier system B. The verification system B compares the number y received to an upper bound S satisfying S = 2a + 2k to recognize its interlocutor as non-authentic when y> S, and the verifier system B calculates the integer x, = gY-e modulo n from the number y received. The system A is recognized as authentic when y <S and x '= x.

Le procédé de signature numérique est dérivé de ce procédé d'authentification numérique à l'aide de la technique décrite par A. Fiat, A. Shamir, "How to prove yourself: practical solutions of identification and signature problems", in Proceedings of Crypto 86, Lecture Notes in Computer Science 263, Springer-Verlag, pp. 181-187 (1987).  The digital signature method is derived from this digital authentication method using the technique described by A. Fiat, A. Shamir, "How to prove yourself: practical solutions of identification and signature problems", in Proceedings of Crypto 86, Lecture Notes in Computer Science 263, Springer-Verlag, pp. 181-187 (1987).

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 l'ensemble Zn, qui peut également être noté Z/nZ. Au sens de l'invention, une opération mathématique est réputée non inversible lorsque le calcul consistant à 20 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 l'entier r lorsque l'on connaît l'entier x. Ceci assure le caractère secret de la clé privée x du système signataire A. En fait, il est impossible en pratique de résoudre ce problème, dit du logarithme 25 discret, pour des nombres p et q assez grands.  The security of this type of digital signature is based on the deemed non-invertible character of a mathematical operation, that is to say here of the discrete exponentiation operation in the set Zn, which can also be denoted Z / nZ . Within the meaning of the invention, a mathematical operation is deemed to be non-invertible when the calculation consisting of inverting it presents an extreme difficulty, taking into account the existing calculation means. In other words, this is the extreme difficulty of calculating the integer r when we know the integer x. This ensures the secret character of the private key x of the signatory system A. In fact, it is impossible in practice to solve this problem, said discrete logarithm, for relatively large numbers p and q.

Dans ces procédés, qui seront appelés procédés OTM cidessous d'après le nom des auteurs, aucune multiplication n'est nécessaire dans l'étape de terminaison de la signature ou de la preuve d'authenticité. En revanche, cette étape requiert une réduction modulaire 30 du nombre e, un entier de longueur b bits, par la clé secrète s, un entier de longueur k bits. Le cot calculatoire de cette opération dépend évidemment de la valeur des paramètres b et k.  In these methods, which will be referred to as OTM processes below the name of the authors, no multiplication is required in the signature termination or proof of authenticity step. On the other hand, this step requires a modular reduction of the number e, an integer of length b bits, by the secret key s, an integer of length k bits. The calculating cost of this operation obviously depends on the value of the parameters b and k.

Le procédé ci-dessus a été proposé avec les valeurs suivantes des paramètres: k=160, a=224, b=a+t o f=24. Avec ces 35 valeurs, le cot calculatoire est petit et une taille de signature réduite à 304 bits est revendiquée, ce qui prendrait l'avantage sur le procédé GPS.  The above method has been proposed with the following parameter values: k = 160, a = 224, b = a + t o f = 24. With these 35 values, the computational cost is small and a signature size reduced to 304 bits is claimed, which would take the advantage over the GPS process.

Cependant, ce procédé présente une faille de sécurité qui rend inadmissible la valeur f=24. Cette faille découle du fait qu'il suffit à un imposteur voulant être authentifié par le système vérifieur B à la place d'un système A de deviner les (C+l) bits de poids le plus fort de e pour réussir.  However, this method has a security flaw that makes the f = 24 value unacceptable. This flaw stems from the fact that it is enough for an imposter wanting to be authenticated by the verification system B instead of a system A to guess the (C + 1) bits of the strongest weight of e to succeed.

Plus précisément, du point de vue de l'authentification, l'imposteur peut procéder de la manière suivante: - choisir, avant de connaître le nombre e, un nombre e' de la forme e'=e12a-'+e0 avec el<2t+l et e0<2a-1 - choisir aléatoirement un nombre r pour calculer ensuite un nombre x en élevant g à la puissance (r-el2a-l), c'est-à-dire: x=g(r-e'+eO) modulo n - sur réception de la question e du système vérifieur B, comparer les (f+ 1) bits de poids le plus fort de e avec el et, s'ils ne sont 15 pas égaux, recommencer tout avec une autre valeur de el.  More precisely, from the point of view of authentication, the impostor can proceed in the following way: - choose, before knowing the number e, a number e 'of the form e' = e12a - '+ e0 with el < 2t + 1 and e0 <2a-1 - randomly choose a number r to calculate a number x by raising g to the power (r-el2a-1), that is: x = g (r-e '+ eO) modulo n - on receipt of the question e of the verifier system B, compare the (f + 1) most significant bits of e with el and, if they are not equal, start again with another value of el.

Dès que, par chance, el est obtenu égal aux (f+1) bits de poids le plus fort de e, l'imposteur est correctement authentifié en retournant le nombre y=r+e0 car les deux équations y<S et x=gy-e modulo n sont manifestement vérifiées.  As soon as, by chance, el is equal to the (f + 1) most significant bits of e, the imposter is correctly authenticated by returning the number y = r + e0 because the two equations y <S and x = gy-e modulo n are obviously verified.

De manière similaire, pour un imposteur voulant contrefaire la signature d'un message m, une possibilité est de: - choisir un nombre entier el représenté sur (f+1) bits - choisir aléatoirement un nombre r pour calculer ensuite un nombre x (modulo n) en élevant g à la puissance (r-e,2al), - calculer le nombre e=H(x,m), H étant une fonction de hachage cryptographique, - comparer les (f+1) bits de poids le plus fort de e avec el et recommencer avec un autre el s'ils ne sont pas égaux. Dès que el est égal aux (f+I) bits de poids le plus fort de e, la signature (x,e,y) est reconnue 30 authentique en retournant le nombre y=r+e0.  Similarly, for an impostor wanting to counterfeit the signature of a message m, one possibility is to: - choose an integer el represented on (f + 1) bits - randomly choose a number r to calculate then a number x (modulo n) by raising g to the power (re, 2al), - compute the number e = H (x, m), H being a cryptographic hash function, - compare the (f + 1) bits of the strongest weight of e with el and start over with another if they are not equal. Once el is equal to the (f + I) most significant bits of e, the signature (x, e, y) is recognized authentic by returning the number y = r + e0.

Contrefaire une signature ou une preuve d'authenticité selon les procédés OTM requiert donc 2t+î opérations, soit quelques minutes de calcul pour la valeur f=24. De ce fait, la sécurité des procédés OTM ne peut être rendue acceptable qu'en élevant la valeur de t jusqu'au 35 moins 80. En effet, la borne de sécurité 1/2b devrait être remplacée par 1/2e dans le théorème 4 de l'article OTM.  Forging a signature or a proof of authenticity according to the OTM methods therefore requires 2t + 1 operations, ie a few minutes of calculation for the value f = 24. As a result, the safety of the OTM processes can only be made acceptable by raising the value of t to minus 80. Indeed, the safety terminal 1 / 2b should be replaced by 1 / 2e in Theorem 4 of the OTM article.

Par ailleurs, le paramètre a, qui définit la borne 2s/2a du théorème 5 concernant l'absence de transfert de connaissance dans l'article OTM, devrait être élevé jusqu'à k+80, car la borne 2s/2a concerne une seule exécution du procédé et devrait donc être multipliée 5 par le nombre de signatures ou d'authentifications autorisées. Dans ces conditions, l'opération de terminaison de signature dans le procédé OTM comprend la réduction modulaire d'un nombre de 320 bits par un nombre de 160 bits. D'après les performances des fonctions de réduction modulaire décrites par A. Bosselaers et ai. "Comparison of three 10 modular réduction fonctions ", Proceedings of Crypto 93, Lecture Notes in Computer Science 773, Springer-Verlag (1994), cette opération est finalement estimée deux fois plus coteuse que l'opération de terminaison de signature dans le procédé GPS, à niveau de sécurité égal.  On the other hand, the parameter a, which defines the bound 2s / 2a of Theorem 5 concerning the absence of knowledge transfer in the OTM article, should be raised to k + 80, since the 2s / 2a terminal concerns a single execution of the method and should therefore be multiplied by the number of authorized signatures or authentications. Under these conditions, the signature termination operation in the OTM method comprises the modular reduction of a number of 320 bits by a number of 160 bits. Based on the performance of the modular reduction functions described by A. Bosselaers et al. "Comparison of Modular Reduction Functions", Proceedings of Crypto 93, Lecture Notes in Computer Science 773, Springer-Verlag (1994), this operation is ultimately estimated to be twice as expensive as the signature termination operation in the GPS method. , at equal security level.

L'opération de vérification de signature du procédé OTM devient 15 également extrêmement coteuse dans ces conditions.  The signature verification operation of the OTM method also becomes extremely expensive under these conditions.

L'invention a pour but de fournir des procédés d'authentification et de signature numérique qui offrent, pour un niveau de sécurité donné, des propriétés avantageuses en termes de cot calculatoire, de vitesse d'exécution, notamment pour la terminaison de 20 signature, et de longueur de signature ou de preuve d'authenticité.  The purpose of the invention is to provide authentication and digital signature methods which offer, for a given level of security, advantageous properties in terms of computational cost, speed of execution, especially for signature termination, and signature length or proof of authenticity.

L'invention vise également à fournir des procédés d'authentification et de signature numérique exécutables par des dispositifs de faible puissance calculatoire, comme les cartes à puce, les radiotéléphones, les assistants numériques personnels et analogues. L'invention vise 25 également à fournir des procédés d'authentification et de signature numérique exécutables par une carte à mémoire.  The invention also aims to provide authentication and digital signature methods executable by devices of low computing power, such as smart cards, radiotelephones, personal digital assistants and the like. The invention also aims to provide authentication and digital signature methods executable by a memory card.

Pour cela, l'invention fournit un procédé d'authentification numérique pour permettre à un système vérifieur B pouvant échanger des données numériques avec un système A d'éprouver l'authenticité 30 dudit système A, dans lequel ledit système A est muni d'une clé publique (n,g) incluant un module entier n vérifiant n=pq, o p et q sont des nombres premiers choisis tels que le problème du logarithme discret dans l'ensemble Zn soit insoluble en pratique, et une base entière g choisie dans le groupe 35 Z,,* de manière à présenter un ordre s qui vérifie gs=l modulo n, ledit système A étant muni de la valeur de l'ordre s en tant que clé secrète associée à ladite clé publique (n,g), ladite clé publique (n,g) étant mise à la disposition du système vérifieur B, caractérisé par le fait que le nombre s est choisi de manière à ne pas être divisible par 2j+ 1 pour au moins un entier j tel que 0<j M, M étant un paramètre entier positif ou nul prédéterminé, et que: le système A se procure un nombre entier r représenté sur au moins f+M bits, î étant un paramètre entier positif prédéterminé, et un nombre entier x vérifiant X=gr modulo n, le système A transmet le nombre x au système vérifieur B, 1 0 le système vérifieur B choisit un nombre entier e représenté sur au moins M+f bits, le système vérifieur B transmet le nombre e au système A en réponse au nombre x, le système A calcule à partir des nombres entiers s, e et r un nombre 15 entier y vérifiant y=r+Xs, o X est un nombre entier choisi de manière que les représentations binaires respectives des nombres e et y soient identiques sur une portion prédéterminée constituée de t bits ayant des poids i tels que M<i, et le système A transmet le nombre y au système vérifieur B, 20 et que le système vérifieur B effectue les étapes consistant à: calculer un nombre entier x' vérifiant x'=gy modulo n à partir du nombre y reçu et de la clé publique (n,g), comparer les représentations binaires respectives du nombre e et du nombre y reçu sur ladite portion prédéterminée, pour reconnaître le 25 système A comme non authentique lorsque deux bits e et y; ayant un même poids i et appartenant à ladite portion prédéterminée ne sont pas égaux, comparer le nombre x' calculé au nombre x reçu pour reconnaître le système A comme non authentique lorsque x'#x, le système A étant 30 reconnu authentique par le système vérifieur B lorsque x=x' et que ej =y1 pour tous les bits de poids i appartenant à ladite portion prédéterminée.  For this, the invention provides a digital authentication method for enabling a verification system B capable of exchanging digital data with a system A to test the authenticity of said system A, wherein said system A is provided with a public key (n, g) including an integer module n satisfying n = pq, op and q are prime numbers chosen such that the problem of the discrete logarithm in the set Zn is insoluble in practice, and an integer base g chosen in the group 35 Z ,, * so as to present an order s which satisfies gs = l modulo n, said system A being provided with the value of the order s as a secret key associated with said public key (n, g), said public key (n, g) being made available to the verification system B, characterized in that the number s is chosen so as not to be divisible by 2j + 1 for at least one integer j such that 0 <j M , M being a predetermined positive or zero integer parameter, and that: the system A obtains an integer r represented on at least f + M bits, where i is a predetermined positive integer parameter, and an integer x satisfying X = gr modulo n, the system A transmits the number x to the system verifier B, 1 0 the verification system B chooses an integer e represented on at least M + f bits, the verification system B transmits the number e to the system A in response to the number x, the system A calculates from the integers s , e and r an integer y satisfying y = r + Xs, where X is an integer chosen so that the respective binary representations of the numbers e and y are identical over a predetermined portion consisting of t bits having weights such that that M <i, and the system A transmits the number y to the verifier system B, and that the verifier system B performs the steps of: calculating an integer x 'satisfying x' = gy modulo n from the number y received and the public key (n, g), compa the respective binary representations of the number e and the number y received on said predetermined portion, to recognize the system A as non-authentic when two bits e and y; having the same weight i and belonging to said predetermined portion are not equal, comparing the number x 'calculated with the number x received to recognize the system A as non-authentic when x' # x, the system A being recognized as authentic by the system checker B when x = x 'and ej = y1 for all bits of weight i belonging to said predetermined portion.

L'invention fournit également un procédé de signature numérique pour permettre à un système vérifieur B pouvant échanger des données numériques avec un système signataire A d'éprouver 35 l'authenticité d'un message de données numériques m échangé avec ledit système signataire A, dans lequel ledit système signataire A est muni d'une clé publique (n,g) incluant un module entier n vérifiant n=pq, o p et q sont des nombres premiers choisis tels que le problème du logarithme discret dans l'ensemble Zn soit insoluble en pratique, et une base entière g choisie 5 dans le groupe Z"'* de manière à présenter un ordre s qui vérifie gs=l modulo n, ledit système signataire A étant muni de la valeur de l'ordre s en tant que clé secrète associée à ladite clé publique (n,g), ladite clé publique (n,g) étant mise à disposition du système vérifieur B, caractérisé par le fait que le nombre s est choisi de manière à ne pas être 10 divisible par 2i ', pour au moins un entier j tel que 0<j<M" M étant un paramètre entier positif ou nul prédéterminé, le système signataire A effectuant les étapes consistant à: se procurer un nombre entier r représenté sur au moins f+M bits, t étant un paramètre entier positif prédéterminé, et un nombre entier x vérifiant 15 x=g modulo n, calculer un nombre entier e=T(x,m) dépendant du message m et du nombre x à l'aide d'une transformation non inversible T prédéterminée, le nombre e étant représenté sur au moins f+M bits, calculer à partir des nombres entiers s, e et r un nombre entier y vérifiant 20 y=r+ s, o X est un nombre entier choisi de manière que les représentations binaires respectives des nombres e et y soient identiques sur une portion prédéterminée constituée de f bits ayant des poids i tels que M<i, et transmettre au système vérifieur B une signature numérique incluant le 25 nombre y, et que ledit système vérifieur B effectue les étapes consistant à: calculer un nombre entier e'=T(x',m) dépendant du message m et d'un nombre x' à l'aide de ladite transformation non inversible T, le nombre e' étant représenté sur au moins f+M bits, le nombre x' étant calculé ou 30 reçu par le système vérifieur B, et comparer les représentations binaires respectives du nombre e' calculé et du nombre y reçu sur ladite portion prédéterminée, pour reconnaître le message m échangé comme non authentique lorsque deux bits e1' et yi ayant un même poids i et appartenant à ladite portion prédéterminée ne 35 sont pas égaux, le message m échangé étant reconnu comme authentique par le système vérifieur B lorsque le nombre y reçu et le nombre x' vérifient x'=gy modulo n et que e1'=yi pour tous les bits de poids i appartenant à ladite portion prédéterminée.  The invention also provides a digital signature method for enabling a verifier system B to exchange digital data with a signatory system A to test the authenticity of a digital data message exchanged with said signatory system A, in wherein said signatory system A is provided with a public key (n, g) including an integer module n satisfying n = pq, op and q are selected prime numbers such that the problem of the discrete logarithm in the set Zn is insoluble in practice, and an integer base g selected from the group Z "'* so as to present an order s which satisfies gs = l modulo n, said signatory system A being provided with the value of the order s as a secret key associated with said public key (n, g), said public key (n, g) being made available to the verification system B, characterized in that the number s is chosen so as not to be divisible by 2i ', for at least an integer j such that 0 <j <M "M is a predetermined positive or zero integer parameter, the signatory system A performing the steps of: obtaining an integer r represented on at least f + M bits, t being a parameter predetermined positive integer, and an integer x satisfying 15 x = g modulo n, calculating an integer e = T (x, m) dependent on the message m and the number x by means of a predetermined noninvertible transformation T, the number e being represented on at least f + M bits, calculating from integers s, e and r an integer y satisfying y = r + s, where X is an integer selected so that the respective binary representations of numbers e and y are identical over a predetermined portion consisting of f bits having weights i such that M <i, and transmitting to the verification system B a digital signature including the number y, and that said verifier system B performs the steps of : calculate a name integer e '= T (x', m) depending on the message m and a number x 'with the aid of said non-invertible transformation T, the number e' being represented on at least f + M bits, the number x 'being calculated or received by the verification system B, and comparing the respective binary representations of the calculated number e' and the number y received on said predetermined portion, to recognize the message m exchanged as non-authentic when two bits e1 'and yi having the same weight i and belonging to said predetermined portion are not equal, the message m exchanged being recognized as authentic by the verification system B when the number y received and the number x 'satisfy x' = gy modulo n and that e1 '= yi for all bits of weight i belonging to said predetermined portion.

L'idée directrice de ces procédés est de remplacer 5 l'opération de réduction modulaire prévue dans les procédés OTM par une opération de mise en concordance ou " dovetailing", qui sera décrite plus bas, ou une opération analogue. Un avantage essentiel de ces procédés réside dans le faible cot calculatoire et, de manière surprenante, dans l'aptitude d'une telle opération à être exécutée de 10 manière très efficace au moyen d'un programme d'ordinateur ou à l'aide d'une logique câblée sans processeur. L'étape de terminaison de signature ou de preuve d'authenticité est ainsi rendue plus rapide et mise à la portée de systèmes peu coteux, tels que les cartes à mémoire. Pour un niveau de sécurité donné, les contraintes en terme de longueur des 15 clés sont semblables à celles du procédé OTM, mais le nombre d'opérations requises pour former une signature ou une preuve d'authenticité est plus petit, et même inférieur à celui du procédé GPS.  The guiding idea of these methods is to replace the modular reduction operation provided in the OTM processes by a matching operation or "dovetailing", which will be described below, or a similar operation. An essential advantage of these methods lies in the low computational cost and, surprisingly, in the ability of such an operation to be performed very efficiently by means of a computer program or with the aid of a wired logic without processor. The step of signing termination or proof of authenticity is thus made faster and available to low-cost systems, such as smart cards. For a given security level, the key length constraints are similar to those of the OTM method, but the number of operations required to form a signature or proof of authenticity is smaller, and even lower than that required. of the GPS process.

Enfin, le procédé selon l'invention permet d'obtenir des signatures numériques plus courtes que les procédés connus OTM et GPS.  Finally, the method according to the invention makes it possible to obtain digital signatures that are shorter than the known OTM and GPS methods.

Au sens de l'invention, un système désigne un système de traitement de données muni de moyens de calcul, programmables ou non, 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 ou d'authentification numérique, en tant que 25 signataire/fournisseur de preuve ou en tant que destinataire/vérifieur, doit évidemment utiliser un tel système. On assimile donc l'entité signataire, par exemple une personne physique ou morale, et l'entité destinataire, par exemple une personne physique ou morale, aux systèmes qu'elles utilisent, désignés respectivement par les expressions " système 30 signataire A " et " système vérifieur B. " Au sens de l'invention, un nombre entier est un nombre qui peut être représenté de manière exacte sous une forme binaire. Dans la représentation binaire des nombres entiers, on rappelle que le poids d'un bit est l'entier i tel que ledit bit représente l'entier 2'. En d'autres termes, 35 un bit présente un poids plus fort qu'un autre bit s'il représente un nombre entier plus grand que cet autre bit. Il existe plusieurs conventions pour la représentation binaire des entiers, par exemple quant à l'écriture de gauche à droite ou de droite à gauche, et quant à la manière de représenter le signe. Les procédés selon l'invention s'appliquent quelle que soit la convention choisie.  Within the meaning of the invention, a system designates a data processing system provided with calculating means, programmable or not, storage means and a communication interface for exchanging data. Anyone wishing to apply a digital signature or authentication method, as signatory / proof provider or as recipient / verifier, must obviously use such a system. The signatory entity, for example a natural or legal person, and the recipient entity, for example a natural or legal person, are therefore considered to be equivalent to the systems they use, designated respectively by the terms "signatory system A" and "signatory system A". For the purposes of the invention, an integer is a number that can be accurately represented in a binary form. In the binary representation of integers, it is recalled that the weight of a bit is the integer i such that said bit represents the integer 2 '. In other words, one bit has a greater weight than another bit if it represents a larger integer than this other bit. There are several conventions for the binary representation of integers, for example with respect to left-to-right or right-to-left writing, and how to represent the sign. The methods according to the invention apply whatever the convention chosen.

Selon une réalisation particulière de l'invention, la signature numérique transmise par le système signataire A au système vérifieur B est constituée uniquement du nombre y, et le système vérifieur B calcule le nombre x' à partir du nombre y reçu et de la clé publique-(n,g) de manière que x'=gY modulo n.  According to a particular embodiment of the invention, the digital signature transmitted by the signatory system A to the verifier system B consists solely of the number y, and the verifier system B calculates the number x 'from the number y received and the public key - (n, g) so that x '= gY modulo n.

Selon une autre réalisation particulière de l'invention, la signature numérique transmise par le système signataire A au système vérifieur B comprend également le nombre x, lequel est reçu par le système vérifieur B en tant que nombre x', et le système vérifieur B calcule le nombre z=gy modulo n et le compare au nombre x' reçu pour 15 reconnaître le message m échangé comme non authentique lorsque z#x'.  According to another particular embodiment of the invention, the digital signature transmitted by the signatory system A to the verification system B also comprises the number x, which is received by the verification system B as a number x ', and the verification system B calculates the number z = gy modulo n and compare it to the number x 'received to recognize the message m exchanged as non-authentic when z # x'.

De préférence, dans le procédé d'authentification ou dans le procédé de signature numérique, ladite portion prédéterminée est constituée des f bits consécutifs ayant des poids i tels que M< i<f+M.  Preferably, in the authentication method or in the digital signature method, said predetermined portion consists of consecutive bits having weights such that M <i <f + M.

Avantageusement, dans le procédé d'authentification ou 20 dans le procédé de signature numérique, l'ordre s est choisi tel que O<s<2k, k étant un paramètre entier prédéterminé vérifiant k>ú+M, de préférence k>2t+M. Avantageusement, le nombre r est choisi tel que O<r<2a, a étant un paramètre entier prédéterminé tel que ak-+f+M.  Advantageously, in the authentication method or in the digital signature method, the order s is chosen such that O <s <2k, k being a predetermined integer parameter satisfying k> ú + M, preferably k> 2t + Mr. Advantageously, the number r is chosen such that O <r <2a, where a is a predetermined integer parameter such that ak- + f + M.

Avantageusement, le nombre e est calculé tel que O<e<2e+M. 25 Ainsi, le nombre e est réduit au plus petit nombre de bits possibles.  Advantageously, the number e is calculated such that O <e <2e + M. Thus, the number e is reduced to the smallest possible number of bits.

De préférence, dans le procédé d'authentification ou dans le procédé de signature numérique, le système vérifieur B compare le nombre y reçu à une borne supérieure S vérifiant S=2a+2k+t+M pour reconnaître le message m échangé, respectivement l'identité du système 30 A, comme non authentique lorsque y>S, le message m échangé, respectivement l'identité du système A, étant reconnu comme authentique par le système vérifieur B sous la condition supplémentaire que y<S. Cette étape optionnelle supplémentaire de vérification renforce la sécurité des procédés selon l'invention contre les tentatives de fraude. 35 Notamment, un imposteur cherchant à contrefaire une signature ou une preuve d'authenticité est ainsi détecté s'il construit, par une autre il méthode que l'opération prévue, un nombre y plus long que la longueur attendue.  Preferably, in the authentication method or in the digital signature method, the verification system B compares the received number y with an upper bound S satisfying S = 2a + 2k + t + M to recognize the message m exchanged, respectively l the identity of the system 30 A, as non-authentic when y> S, the message m exchanged, respectively the identity of the system A, being recognized as authentic by the verification system B under the additional condition that y <S. This additional optional verification step enhances the security of the methods according to the invention against fraud attempts. In particular, an imposter seeking to counterfeit a signature or a proof of authenticity is thus detected if he builds, by another method than the intended operation, a number y longer than the expected length.

Avantageusement, les paramètres , a et k vérifient a=4C et k=2C. Ces valeurs offrent un compromis optimal entre, d'une part, la 5 sécurité des procédés selon l'invention et, d'autre part, leur cot calculatoire et la compacité des données échangées.  Advantageously, the parameters a and k satisfy a = 4C and k = 2C. These values offer an optimal compromise between, on the one hand, the safety of the processes according to the invention and, on the other hand, their computational cost and the compactness of the exchanged data.

De préférence, le système A calcule le nombre y par un procédé itératif comprenant les étapes consistant à: (EO) choisir initialement une variable de résultat y égale au nombre r et 10 un incrément s' égal au nombre 2M-*sj: (El) effectuer un test d'égalité entre deux bits e1 et yi ayant le même poids dans les représentations binaires respectives du nombre e et de la variable de résultat y, en commençant par les bits de poids M, (E2) ajouter ou non ledit incrément s' à la variable de résultat y, en 15 fonction d'un résultat dudit test d'égalité, (E3) recalculer l'incrément s' en décalant sa représentation binaire d'un nombre positif de positions dans le sens des poids de bit croissants (E4) recommencer les étapes (El) à (E3) pour des bits de poids supérieur dans les représentations binaires du nombre e et de la variable de résultat 20 y, jusqu'à atteindre les bits de poids i+M. De cette manière, il n'est pas nécessaire de déterminer explicitement le nombre S. Selon un mode de réalisation particulier de l'invention: dans l'étape (E2), on ajoute l'incrément s' à la variable de résultat y si les bits e, et yI comparés dans l'étape (El) sont inégaux et on ne modifie 25 pas la variable de résultat y si les bits ei et y; comparés dans l'étape (El) sont égaux, dans l'étape (E3), on décale à chaque itération la représentation binaire de l'incrément s' d'une position dans le sens des poids de bit croissants, dans l'étape (E4), on recommence les étapes (El) à (E3) pour les deux bits de poids immédiatement supérieur dans les représentations binaires du nombre e et du nombre y.  Preferably, the system A calculates the number y by an iterative method comprising the steps of: (EO) initially choosing a result variable y equal to the number r and an increment s' equal to the number 2M- * sj: (E ) perform a test of equality between two bits e1 and yi having the same weight in the respective bit representations of the number e and the result variable y, starting with the bits of weight M, (E2) adding or not said increment s 'to the result variable y, as a function of a result of said equality test, (E3) recalculating the increment s' by shifting its binary representation by a positive number of positions in the direction of the bit weights (E4) repeat the steps (E1) to (E3) for bits of higher weight in the binary representations of the number e and the result variable y, until the bits of weight i + M are reached. In this way, it is not necessary to explicitly determine the number S. According to one particular embodiment of the invention: in step (E2), the increment s' is added to the result variable y if the bits e, and yI compared in step (E1) are unequal and the result variable y is not modified if bits ei and y; compared in step (E1) are equal, in step (E3), the binary representation of the increment s' of a position in the direction of the increasing bit weights is shifted at each iteration, in step (E4), we repeat the steps (El) to (E3) for the next two bits of weight in the binary representations of the number e and the number y.

Selon un mode de réalisation particulier de l'invention, ladite transformation non inversible T comporte au moins la formation 35 d'un nombre entier w dépendant du message m et du nombre x, le calcul de l'image dudit nombre w par une fonction de hachage cryptographique H prenant des valeurs entre 0 et 2h avec h>E+M, et une opération de troncature à C+M bits d'un résultat de ladite fonction de hachage cryptographique H. Les nombres e et e' vérifient ainsi O<e<2 +M et O<e'<2 e De préférence, le module n, la base g et l'ordre s sont engendrés par ledit système A, et ledit système signataire A transmet le module n et la base g à une autorité de certification qui met ladite clé publique à la disposition du système vérifieur B sous une forme certifiée.  According to a particular embodiment of the invention, said non-invertible transformation T comprises at least the formation of an integer w depending on the message m and the number x, the calculation of the image of said number w by a function of cryptographic hash H taking values between 0 and 2h with h> E + M, and a truncation operation at C + M bits of a result of said cryptographic hash function H. The numbers e and e 'thus verify O <e <2 + M and O <e '<2 n Preferably, the module n, the base g and the order s are generated by said system A, and said signatory system A transmits the module n and the base g to an authority certification that makes said public key available to the verification system B in a certified form.

L'invention fournit également un système signataire 10 convenant pour la mise en oeuvre du procédé de signature numérique susmentionné, caractérisé par le fait qu'il consiste en un circuit logique imprimé incluant: un premier registre de mémoire et un deuxième registre de mémoire pour stocker respectivement un nombre e et un nombre r, un troisième registre de mémoire pour stocker un nombre s, un comparateur de bits ayant deux entrées reliées respectivement au premier registre de mémoire et au deuxième registre de mémoire pour comparer deux à deux des bits de même poids dans lesdits registres de mémoire, un multiplexeur ayant deux entrées de données reliées respectivement audit troisième registre de mémoire et à un registre de mémoire stockant une valeur nulle et une ligne de commutation reliée à une sortie dudit comparateur de bits pour sélectionner l'un desdits registres de mémoire en fonction d'un bit de résultat produit par ledit comparateur de bits et 25 pour placer le contenu du registre de mémoire sélectionné dans un registre de sortie dudit multiplexeur, un circuit additionneur ayant deux entrées d'opérandes reliées respectivement audit registre de sortie et audit deuxième registre de mémoire et une sortie reliée audit deuxième registre de mémoire pour 30 sommer un contenu respectif desdits registres et remplacer un contenu dudit deuxième registre de mémoire par un résultat de ladite somme, un composant de décalage pour décaler d'un bit dans le sens des poids croissants un contenu dudit troisième registre de mémoire, et une interface reliée au moins audit deuxième registre de mémoire pour 35 transmettre le contenu dudit registre à un système vérifieur.  The invention also provides a signatory system 10 suitable for implementing the above-mentioned digital signature method, characterized in that it consists of a printed logic circuit including: a first memory register and a second memory register for storing respectively a number e and a number r, a third memory register for storing a number s, a bit comparator having two inputs respectively connected to the first memory register and the second memory register to compare pairs of equal weight in pairs; in said memory registers, a multiplexer having two data inputs respectively connected to said third memory register and to a memory register storing a zero value and a switching line connected to an output of said bit comparator for selecting one of said registers memory according to a result bit produced by said bit comparator and for placing the contents of the selected memory register in an output register of said multiplexer, an adder circuit having two operand inputs respectively connected to said output register and said second memory register and an output connected to said second memory register for Summing a respective one of said registers and replacing a content of said second memory register with a result of said sum, an offset component for shifting one bit in the direction of increasing weight a content of said third memory register, and an interface connected to at least said second memory register for transmitting the contents of said register to a verification system.

Un tel circuit peut être réalisé sous la forme d'une carte à mémoire àfaible cot, sans microprocesseur. Le système vérifieur inclut alors un lecteur de carte correspondant, de type connu.  Such a circuit can be made in the form of a low-cost memory card, without a microprocessor. The verification system then includes a corresponding card reader, of known type.

L'invention sera mieux comprise, et d'autres buts, détails, 5 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 aux dessins annexés. Sur ces dessins: - la figure 1 est une représentation fonctionnelle 10 schématique d'un dispositif pour la mise en oeuvre d'un procédé de signature ou d'authentification numérique selon l'invention, - la figure 2 est une représentation fonctionnelle schématique d'un circuit imprimé convenant pour 15 la mise en oeuvre du procédé de signature numérique selon l'invention.  The invention will be better understood, and other objects, details, features and advantages thereof will become more apparent in the following description of several particular embodiments of the invention, given solely for illustrative purposes and not limiting with reference to the accompanying drawings. In these drawings: FIG. 1 is a schematic functional representation of a device for implementing a digital signature or authentication method according to the invention; FIG. 2 is a schematic functional representation of FIG. a printed circuit suitable for implementing the digital signature method according to the invention.

La figure 1 représente de manière très simplifiée un réseau de transport de données R, par exemple l'Internet, par l'intermédiaire duquel communiquent un système A, un système B et un système C. Le 20 système A est utilisé par une entité qui doit prouver son authenticité, c'est-àdire son identité, ou prouver l'authenticité d'un message de données numériques m à une autre entité utilisant le système B. Le système B est utilisé par l'entité devant vérifier l'authenticité du système A ou l'authenticité du message m. Le système C est utilisé par une 25 autorité de certification, c'est-à-dire un tiers à qui tous les utilisateurs font confiance.  FIG. 1 very simply illustrates a data transport network R, for example the Internet, through which a system A, a system B and a system C communicate. The system A is used by an entity which must prove its authenticity, that is, its identity, or prove the authenticity of a digital data message to another entity using System B. System B is used by the entity to verify the authenticity of the data. system A or the authenticity of the message m. The system C is used by a certification authority, that is, a third party trusted by all users.

Phase préliminaire Dans une phase préliminaire, des paramètres de sécurité entiers L, k, a et f sont fixés et connus des systèmes A et B. Leurs 30 valeurs sont choisies en fonction d'un niveau de sécurité souhaité. Par exemple L=1024, a-320, k=160 et f=80 correspondent à un niveau de sécurité reconnu comme satisfaisant à l'heure actuelle.  Preliminary Phase In a preliminary phase, integer security parameters L, k, a and f are set and known from systems A and B. Their values are chosen according to a desired security level. For example L = 1024, a-320, k = 160 and f = 80 correspond to a level of security recognized as satisfactory at the present time.

Le système A se procure une paire de clés comportant une clé secrète s et une clé publique (n, g) incluant un module entier n et une 35 base entière g. Ces nombres vérifient les propriétés suivantes O<n<2L, c'est-à- dire que n est représenté sur L bits, n=pq, p et q étant des nombres premiers choisis assez grands pour rendre infaisable en pratique le calcul du logarithme discret dans l'ensemble Zn.  System A obtains a pair of keys comprising a secret key s and a public key (n, g) including an integer module n and an entire base g. These numbers satisfy the following properties O <n <2L, that is to say that n is represented on L bits, n = pq, p and q being prime numbers chosen large enough to make the computation of the logarithm practically unfeasible discreet overall Zn.

En d'autres termes, n est un entier RSA.  In other words, n is an RSA integer.

g est un élément de l'ensemble Zn*.  g is an element of the set Zn *.

O<s<2k, c'est-à-dire que s est représenté sur k bits.  O <s <2k, that is, s is represented on k bits.

s est l'ordre de l'élément g dans le groupe Zn*, c'est-à-dire que gs=1 modulo n.  s is the order of the element g in the group Zn *, that is to say that gs = 1 modulo n.

s est choisi impair.s is chosen odd.

Le nombre s doit être connu exclusivement par le système 10 A. La manière la plus sre d'atteindre ce but est d'engendrer la paire de clés dans le système A et de mémoriser la clé secrète s dans une mémoire protégée du système A. Un procédé pour engendrer une telle paire de clés sera décrit plus bas.  The number s must be known exclusively by the 10 A system. The safest way to achieve this goal is to generate the key pair in system A and store the secret key s in a protected memory of system A. A method for generating such a key pair will be described below.

La clé publique (n,g) du système A est ensuite certifiée par 15 l'autorité de certification possédant le serveur C relié au réseau R. Cette clé est ensuite envoyée au système vérifieur B sous la forme d'un certificat numérique, cet échange pouvant avoir lieu à un instant quelconque avant que le système vérifieur B n'entame les opérations de vérification. Un tel certificat est connu de l'homme du métier et permet 20 au système vérifieur B de vérifier que la clé publique (n,g) appartient au système A. Par exemple, le certificat est formé par l'autorité de certification en concaténant la clé publique (n,g) et des données identifiant de manière discriminante le système A (nom, adresse, etc.) Tout système vérifieur doit bien sr connaître la clé publique de 25 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.  The public key (n, g) of the system A is then certified by the certification authority having the server C connected to the network R. This key is then sent to the verification system B in the form of a digital certificate, this exchange may take place at any time before the verification system B begins the verification operations. Such a certificate is known to those skilled in the art and allows the verifier system B to verify that the public key (n, g) belongs to the system A. For example, the certificate is formed by the certification authority by concatenating the public key (n, g) and data discriminatingly identifying system A (name, address, etc.). Any verification system must be familiar with the public key of the certification authority to read the digital certificate. Currently, the public key of the CA is published in a directory accessible to any user.

Procédé d'authentification numérique Pour que le système B éprouve l'authenticité du système A, 30 ces systèmes effectuent les étapes suivantes: Le système A choisit aléatoirement un nombre entier r tel que 0<r<2a, c'est-à-dire que l'entier r est représenté sur a bits. De préférence, on vérifie que r ne commence pas par un certain nombre de bits égaux à 0 et, dans les rares cas de ce type, on recommence le choix 35 de r. On peut aussi imposer r>2al.  Digital Authentication Method For system B to experience the authenticity of System A, these systems perform the following steps: System A randomly chooses an integer r such that 0 <r <2a, i.e. that the integer r is represented on a bits. Preferably, it is verified that r does not start with a number of bits equal to 0 and, in the rare case of this type, the selection of r is repeated. One can also impose r> 2al.

Le système A calcule l'entier x vérifiant x=gr modulo n.  System A calculates the integer x satisfying x = gr modulo n.

Le système A transmet le nombre x au système B. Le système B choisit aléatoirement un nombre entier e tel que O<e<2e, c'est-à-dire que l'entier e est représenté sur f bits.  The system A transmits the number x to the system B. The system B randomly chooses an integer e such that O <e <2e, that is to say that the integer e is represented on f bits.

Le système B transmet le nombre e au système A en réponse au nombre x.  System B transmits the number e to system A in response to the number x.

Le système A calcule à partir des nombres entiers s, e et r un nombre entier y vérifiant y=r+Xs, o X est un nombre entier choisi de manière que les représentations binaires respectives des nombrese et y soient identiques sur la portion constituée des t bits ayant les poids les 10 plus faibles, c'est-à-dire les poids i tels que O<i<f-l. Le calcul de y est effectué par un procédé de mise en concordance ou " dovetailing " qui sera décrit plus bas.  System A calculates from integers s, e and r an integer y satisfying y = r + Xs, where X is an integer chosen so that the respective binary representations of the numbers e and y are identical over the portion consisting of t bits having the lowest weights, i.e. weights such as O <i <fl. The calculation of it is done by a matching process or "dovetailing" which will be described below.

Le système A transmet le nombre y au système B. Puis le système B effectue les étapes de vérification suivantes.  System A transmits the number y to System B. Then System B performs the following verification steps.

Le système B compare le nombre y reçu à la borne S=2a+2k+E. Si yÄS, le système A est reconnu comme non authentique et le procédé d'authentification se termine par un échec. Cette étape n'est cependant pas obligatoire.  System B compares the number y received at the terminal S = 2a + 2k + E. If yÄS, the system A is recognized as non-authentic and the authentication process ends in failure. This step is not required, however.

Puis le système B compare la portion constituée des f bits 20 ayant les poids les plus faibles de la représentation binaire du nombre y reçu avec le nombre e préalablement choisi. Le système A est reconnu comme non authentique lorsqu'un bit yi ayant un poids i tel que O<i<t- 1 n'est pas égal au bit de même poids e1 de la représentation binaire du nombre e.  Then system B compares the portion made up of f bits 20 having the lowest weights of the binary representation of the number y received with the number e previously chosen. The system A is recognized as not authentic when a bit yi having a weight i such that O <i <t-1 is not equal to the bit of the same weight e1 of the binary representation of the number e.

Puis le système B calcule le nombre entier x'=gy modulo n à partir du nombre y reçu et de la clé publique (n,g) et compare le nombre x' avec le nombre x préalablement reçu. Le système A est reconnu comme non authentique lorsque x'#x et le procédé d'authentification se termine par un échec.  Then the system B calculates the integer x '= gy modulo n from the number y received and the public key (n, g) and compares the number x' with the number x previously received. System A is recognized as not authentic when x '# x and the authentication process ends in failure.

Finalement, le système A est reconnu authentique par le système B lorsque x=x'. Si l'étape de comparaison avec la borne S est effectuée, la condition supplémentaire y<S doit également être satisfaite.  Finally, system A is recognized as authentic by system B when x = x '. If the step of comparing with the terminal S is performed, the additional condition y <S must also be satisfied.

Procédé de signature numérique Le procédé de signature numérique est dérivé du procédé 35 d'authentification par la technique connue. La phase préliminaire est identique à celle du procédé d'authentification et comporte en outre le choix d'une transformation non inversible T qui sera utilisée par le système signataire A et le système vérifieur B. On suppose que le système A et le système B ont échangé ou vont échanger un message de données numériques m et que le 5 système A doit produire une signature numérique associée au message m. Par exemple, le message m accompagné de la signature est émis par le système A à destination du système B, lequel doit vérifier si le message qu'il reçoit est authentique. Inversement, le message m peut avoir été émis par le système B à destination du système A, lequel doit 10 accuser réception du message au moyen d'une signature numérique.  Digital Signature Method The digital signature method is derived from the authentication method by the known art. The preliminary phase is identical to that of the authentication method and further comprises the choice of a non-invertible transformation T which will be used by the signatory system A and the verification system B. It is assumed that the system A and the system B have exchanged or will exchange a digital data message m and that the system A must produce a digital signature associated with the message m. For example, the message m accompanied by the signature is sent by the system A to the system B, which must check whether the message it receives is authentic. Conversely, the message m may have been transmitted by the system B to the system A, which must acknowledge the message by means of a digital signature.

Pour produire la signature, le système signataire A effectue les étapes suivantes: - choisir un nombre entier r tel que O<r<2a, c'est-à-dire que l'entier r est représenté sur a bits. De préférence, on vérifie que r ne 15 commence pas par un certain nombre de bits égaux à 0 et, dans les rares cas de ce type, on recommence le choix de r. On peut aussi imposer r>2.  To produce the signature, the signatory system A performs the following steps: - choose an integer r such that O <r <2a, that is to say that the integer r is represented on a bit. Preferably, it is verified that r does not begin with a number of bits equal to 0 and, in the rare cases of this type, the selection of r is repeated. We can also impose r> 2.

- calculer le nombre entier x=gr modulo n, - calculer un nombre entier e en appliquant la 20 transformation non inversible T au message m et au nombre x, soit e=T(x,m). La transformation T est une fonction à valeurs dans l'intervalle [0, 2c[, c'est-à-dire que l'entier e est représenté sur t bits.  calculate the integer x = gr modulo n, calculate an integer e by applying the non-invertible transformation T to the message m and to the number x, ie e = T (x, m). The transformation T is a function with values in the interval [0, 2c [, i.e., the integer e is represented on t bits.

- et calculer un nombre entier y vérifiant y=r+Xs, o X. est un nombre entier choisi de manière que, dans la représentation binaire du 25 nombre y, la portion constituée des E bits ayant les poids les plus faibles, c'est-à-dire les poids i tels que 0<i<ú-l, soit identique au nombre e. Le calcul de y est effectué par l'opération de mise en concordance ou " dovetailing " qui sera décrite plus bas. La signature que le système A transmet au système B est constituée du nombre y.  and calculating an integer y satisfying y = r + Xs, where X is an integer chosen so that, in the binary representation of the number y, the portion consisting of E bits having the lowest weights, that is, the weights i such that 0 <i <ú-1, is identical to the number e. The calculation of it is done by the matching operation or "dovetailing" which will be described below. The signature that system A sends to system B consists of the number y.

Pour éprouver l'authenticité du message m reçu par le système A ou le système B, le système B effectue les étapes de vérification suivantes: comparer le nombre y reçu à la borne S=24+2. Si yÄdS, le message m est reconnu comme non authentique et la vérification se 35 termine par un échec. Cette étape n'est cependant pas obligatoire.  To test the authenticity of the message m received by the system A or the system B, the system B performs the following verification steps: compare the number y received at the terminal S = 24 + 2. If yÄdS, the message m is recognized as non-authentic and the check ends with a failure. This step is not required, however.

- calculer le nombre entier x'=gy modulo n, - calculer le nombre entier e'=T(x',m) à partir du message m reçu ou envoyé par le système B, du nombre x' calculé par le système B et de la transformation non inversible T, - et comparer la portion constituée des t bits ayant les poids 5 les plus faibles de la représentation binaire du nombre y reçu avec le nombre e'. Le message m échangé est reconnu comme non authentique lorsqu'un bit yj ayant un poids i tel que O<i<ú-l n'est pas égal au bit de même poids e'i de la représentation binaire du nombre e'.  calculate the integer x '= gy modulo n, - calculate the integer e' = T (x ', m) from the message m received or sent by the system B, from the number x' calculated by the system B and of the non-invertible transformation T, - and comparing the portion consisting of t bits having the lowest weights of the binary representation of the received number y with the number e '. The message m exchanged is recognized as non-authentic when a bit yj having a weight i such that O <i <ú-1 is not equal to the bit of the same weight ei of the binary representation of the number e '.

Finalement, le message m échangé est reconnu comme 1o authentique par le système vérifieur B sous la condition que ej'=yi pour tous les bits de poids i tels que O<i<.-l. Si l'étape de comparaison avec la borne S est effectuée, la condition supplémentaire y<S doit également être satisfaite.  Finally, the message m exchanged is recognized as authentic by the verification system B under the condition that ej '= yi for all bits of weight i such that O <i <. If the step of comparing with the terminal S is performed, the additional condition y <S must also be satisfied.

Dans la transformation non inversible T, on utilise une 15 fonction de hachage cryptographique H, qui est par exemple l'une de celles définies par les standards MD5 et SHA-1, dont le résultat fait h bits, avec h=128, respectivement h=160. Il existe plusieurs manières de construire une transformation T appropriée. Par exemple, on applique la fonction de hachage H à un nombre w obtenu en concaténant le nombre 20 x et le message m, noté w=xllm, et l'on tronque le résultat à f bits, par exemple en gardant les C bits de poids le plus faible du résultat. En variante, on peut aussi calculer H(H(x),m) ou H(mllxllm) ou encore H(H(x),H(m)), etc., et tronquer le résultat à f bits à chaque fois. La troncature peut être effectuée en gardant d'autres bits que ceux ayant le 25 poids le plus faible. A chaque fois, la transformation non inversible T est connue des systèmes A et B et rend impossible de calculer x en partant de e et m.  In the non-invertible transformation T, a cryptographic hash function H is used, which is for example one of those defined by the standards MD5 and SHA-1, the result of which is h bits, with h = 128, respectively h = 160. There are several ways to build an appropriate T transformation. For example, we apply the hash function H to a number w obtained by concatenating the number 20 x and the message m, denoted w = xllm, and we truncate the result at f bits, for example by keeping the C bits of lowest weight of the result. Alternatively, one can also calculate H (H (x), m) or H (mllxllm) or else H (H (x), H (m)), etc., and truncate the result to f bits each time. Truncation can be done by keeping bits other than those with the lowest weight. Each time, the non-invertible transformation T is known from systems A and B and makes it impossible to calculate x starting from e and m.

Dans une variante de réalisation, le nombre x est inclus dans la signature numérique transmise par le système A au système B. Dans 30 ce cas, le système vérifieur B compare le nombre x qu'il reçoit au nombre x'=gy modulo n qu'il calcule et il reconnaît le message m comme non authentique lorsque x#&x'. Dans cette variante, le message m échangé est reconnu comme authentique par le système vérifieur B sous la condition supplémentaire x'=x. Toutefois, cette variante présente 35 l'inconvénient d'allonger la signature numérique de L bits, soit par exemple de 1024 bits.  In an alternative embodiment, the number x is included in the digital signature transmitted by the system A to the system B. In this case, the verifier system B compares the number x that it receives with the number x '= gy modulo n qu it calculates and it recognizes the message m as not authentic when x # & x '. In this variant, the message m exchanged is recognized as authentic by the verification system B under the additional condition x '= x. However, this variant has the disadvantage of lengthening the digital signature of L bits, for example by 1024 bits.

De préférence, le calcul du nombre x par le système A est effectué en tâche de fond, dans une étape de pré-traitement, de manière à conserver en mémoire un couple (r,x) disponible pour la prochaine signature ou la prochaine authentification requise. Il est également 5 possible de stocker une réserve de couples (r,x) dans le système A, par exemple comme il est décrit dans le document FR2716058.  Preferably, the calculation of the number x by the system A is done in the background, in a pre-processing step, so as to keep in memory a couple (r, x) available for the next signature or the next authentication required . It is also possible to store a reserve of pairs (r, x) in the system A, for example as described in the document FR2716058.

Dans une variante de réalisation, le calcul du nombre x n'est pas entièrement effectué par le système A, mais est sous-traité, au moins partiellement, par un ou plusieurs système(s) d'assistance avec 10 le(s) quel(s) le système A communique. Cette variante est particulièrement avantageuse lorsque le système A possède une puissance de calcul réduite, par exemple dans le cas d'une carte à puce ou d'un radiotéléphone. De préférence, une telle sous-traitance doit être effectuée sans divulguer le nombre r aux tiers. Le nombre r peut être 15 choisi par le système A ou calculé par le système A à partir d'une pluralité d'antécédents qui sont transmis au système A par le ou les système(s) d'assistance. Pour cela, on peut se référer aux modalités décrites dans la demande de brevet français enregistrée sous le n'02 02596.  In an alternative embodiment, the calculation of the number x is not entirely done by the system A, but is subcontracted, at least partially, by one or more assistance systems with which (s) System A communicates. This variant is particularly advantageous when the system A has a reduced computing power, for example in the case of a smart card or a radiotelephone. Preferably, such subcontracting must be carried out without disclosing the number r to third parties. The number r can be chosen by the system A or calculated by the system A from a plurality of antecedents which are transmitted to the system A by the system (s) of assistance. For this, one can refer to the methods described in the French patent application registered under No. 02 02596.

Sur le plan de la sécurité, la probabilité de contrefaire la preuve d'authenticité ou la signature y sans connaître la clé secrète s est de l'ordre de 2-t et le facteur statistique de transfert de connaissance pour une exécution du procédé d'authentification est contrôlé par 2s/2 -k- . Les valeurs de paramètre susmentionnées offrent donc un 25 niveau de sécurité, mesuré par la probabilité de réussir à être authentifié sans connaître la clé secrète s, de l'ordre de 2-80. Par rapport aux procédés OTM, pour ce même niveau de sécurité, les procédés susmentionnés autorisent l'utilisation d'un nombre e beaucoup plus court, de l'ordre de 80 bits, de sorte que le nombre total de bits échangés 30 est réduit.  In terms of security, the probability of counterfeiting the proof of authenticity or the signature there without knowing the secret key is of the order of 2-t and the statistical factor of transfer of knowledge for an execution of the process of authentication is controlled by 2s / 2 -k-. The aforementioned parameter values thus provide a level of security, measured by the probability of being able to authenticate without knowing the secret key s, of the order of 2-80. Compared to the OTM methods, for the same level of security, the aforementioned methods allow the use of a much smaller number e, of the order of 80 bits, so that the total number of bits exchanged is reduced.

Avec les valeurs de paramètre susmentionnées, la longueur de la preuve d'authenticité ou de la signature y est de l'ordre de a bits, car a> > k+ f, soit environ 320 bits. Dans le procédé d'authentification, cette longueur peut être encore réduite de t bits en omettant de 35 transmettre les f bits ayant les poids les plus faibles dans le nombre y.  With the aforementioned parameter values, the length of the proof of authenticity or signature is of the order of a bits, since a>> k + f, or about 320 bits. In the authentication method, this length can be further reduced by t bits by omitting to transmit the f bits having the lowest weights in the number y.

Dans ce cas, le système B commence par concaténer la partie du nombre y reçue avec le nombre e, pour reconstituer le nombre y complet. Dans le procédé de signature, il est inutile d'inclure le nombre e dans la signature numérique, puisque le nombre e est déductible de la structure de y, ce qui est également avantageux par rapport au procédé OTM.  In this case, the system B begins by concatenating the part of the number y received with the number e, to reconstitute the complete number y. In the signature method, it is unnecessary to include the number e in the digital signature, since the number e is deductible from the structure of y, which is also advantageous compared to the OTM method.

Si un niveau de sécurité légèrement plus faible est admis, les valeurs a=256, k=128 et t=64 peuvent aussi être adoptées. Ces valeurs sont des exemples jugés raisonnables à l'heure actuelle, mais des valeurs plus. élevées pourraient être nécessaires à l'avenir, compte -tenu de l'accroissement des performances des ordinateurs. Par exemple, il est 10 aussi possible de choisir L=2048 pour accroître la sécurité. Cependant, il en résulte un accroissement du cot des calculs modulo n. Le choix des paramètres de sécurité L, a, k, et t résulte donc forcément d'un compromis entre un niveau de sécurité et un cot calculatoire. Un choix vérifiant a=4 e et k=2- semble toujours avantageux à cet égard. 15 Opération de " dovetailing " Au sens de l'invention, on définit l'opération de mise en concordance ou " dovetailing " de la manière suivante. Soit s un nombre entier impair. Soit e un nombre entier représenté sur t bits. Soit r un nombre entier représenté sur a bits, axe. Le résultat de la mise en 20 concordance ou du " dovetailing " du couple (re) par rapport au nombre s, noté D,(r,e), est égal à la somme du nombre r et d'un petit multiple du nombre s, somme dans laquelle les t bits de point le plus faible concident avec le nombre e. Cette opération est utilisée dans le procédé d'authentification et le procédé de signature numérique décrits ci-dessus, 25 pour calculer le nombre y=D,(r,e).  If a slightly lower security level is allowed, the values a = 256, k = 128 and t = 64 can also be adopted. These values are examples considered reasonable at the present time, but more values. Higher levels may be needed in the future, given the increased performance of computers. For example, it is also possible to choose L = 2048 to increase security. However, this results in an increase in the cost of modulo n calculations. The choice of the security parameters L, a, k, and t therefore necessarily results from a compromise between a security level and a computational cost. A choice verifying a = 4 and k = 2- always seems advantageous in this respect. Operation of "dovetailing" For the purposes of the invention, the operation of matching or "dovetailing" is defined in the following manner. Let s be an odd integer. Let e be an integer represented on t bits. Let r be an integer represented on a bit, axis. The result of the matching or "dovetailing" of the pair (re) with respect to the number s, denoted D, (r, e), is equal to the sum of the number r and a small multiple of the number s. , the sum in which the t bits with the lowest point agree with the number e. This operation is used in the authentication method and digital signature method described above to calculate the number y = D, (r, e).

Une manière d'effectuer cette opération est de déterminer d'abord une valeur correcte du nombre S. Il existe une unique solution modulo t, à savoir 1=(e-r)s-' modulo t.  One way of doing this is to first determine a correct value of the number S. There is a unique modulo solution, namely 1 = (e-r) s-modulo t.

Toutefois, il existe des algorithmes permettant d'effectuer 30 cette opération de manière plus efficace, sans nécessairement déterminer explicitement le nombre S. L'annexe 1 décrit un algorithme itératif simple dans un langage informatique simplifié. La notation s"1 signifie que la représentation binaire du nombre s est décalée d'une position dans le sens des poids de bits croissants, c'est-à-dire que le nombre s est 35 multiplié par 2. Cet algorithme nécessite en moyenne t/2 additions d'un nombre de k bits à un nombre d'environ a bits. Si l'on néglige les quelques additions supplémentaires dues à la propagation de la retenue dans certains cas pathologiques, le nombre d'additions à 8 bits est le même que dans le procédé GPS.  However, there are algorithms to perform this operation more efficiently, without necessarily explicitly determining the number S. Appendix 1 describes a simple iterative algorithm in a simplified computer language. The notation s "1 means that the binary representation of the number s is shifted by one position in the direction of the increasing bit weights, that is, the number s is multiplied by 2. This algorithm requires on average t / 2 additions of a number of k bits to a number of about a bit If we neglect the few additional additions due to the propagation of the restraint in some pathological cases, the number of additions to 8 bits is the same as in the GPS process.

Comme il est presque aussi rapide de soustraire deux entiers 5 que de les ajouter, le temps d'exécution de l'opération peut être encore réduit en optimisant " à la volée ", à chaque itération, le nombre de bits du résultat intermédiaire r qui sont rendus égaux aux bits correspondants de e. L'annexe 2 décrit un algorithme itératif correspondant, dans un langage informatique simplifié, convenant pour le cas o s=l modulo 4. 10 Le cas o s=3 modulo 4 se traite de manière similaire.  Since it is almost as fast to subtract two integers 5 as to add them, the execution time of the operation can be further reduced by optimizing "on the fly", at each iteration, the number of bits of the intermediate result r which are made equal to the corresponding bits of e. Appendix 2 describes a corresponding iterative algorithm, in a simplified computer language, suitable for the case where s = l modulo 4. 10 The case where s = 3 modulo 4 is treated in a similar way.

Dans l'algorithme de l'annexe 2, lorsqu'un bit ri du résultat temporaire r concide avec le bit correspondant ei du nombre e, la seule opération est de décaler le nombre s de 1 bit dans le sens des poids de bits croissants. Lorsque ces deux bits ri et es ne concident pas, il se 15 produit une addition ou une soustraction qui fait concider ces deux bits et deux bits supplémentaires, ainsi qu'une opération de décalage du nombre s de 2 bits dans le sens des poids de bits croissants. Ainsi, le nombre moyen d'additions ou de soustractions entre un nombre de a bits et un nombre de k bits permettant d'exécuter complètement l'algorithme 20 est f/3, ce qui signifie que kt/24 additions d'entiers sur 8 bits sont nécessaires, soit environ 540.  In the algorithm of Annex 2, when a bit ri of the temporary result r concides with the corresponding bit ei of the number e, the only operation is to shift the number s by 1 bit in the direction of increasing bit weights. When these two bits ri and es do not concide, an addition or a subtraction is made which makes these two bits coincide with two additional bits, as well as an operation of shifting the number s of 2 bits in the direction of the weights of the two bits. increasing bits. Thus, the average number of additions or subtractions between a number of a bits and a number of k bits to fully execute the algorithm 20 is f / 3, which means that kt / 24 additions of integers out of 8 bits are needed, about 540.

En comparaison, le procédé GPS nécessite 800 additions d'entiers sur 8 bits. Même s'il est possible d'optimiser de manière similaire l'opération de multiplication du procédé GPS, en introduisant 25 des soustractions dans l'algorithme de multiplication classique, il ne sera pas possible d'atteindre la même efficacité que dans l'opération de " dovetailing ", à cause de l'existence de retenues qui sont inutiles dans l'opération de " dovetailing ".  In comparison, the GPS method requires 800 additions of 8-bit integers. Even if it is possible to similarly optimize the multiplication operation of the GPS method, by introducing subtractions into the conventional multiplication algorithm, it will not be possible to achieve the same efficiency as in the operation. of "dovetailing", because of the existence of deductions that are useless in the "dovetailing" operation.

Etape de création des clés Pour engendrer sa paire de clé personnelle, le système A peut procéder de la manière suivante: - choisir au hasard deux nombres premiers p et q représentés chacun sur environ L/2 bits, et tels que les nombres (p-1) et (q-i) soient respectivement divisibles par des facteurs premiers respectifs p' et q' 35 représentés sur environ k/2 bits. De préférence, on impose p>2L/2-1, q2L/2-,1p 2-1 et q'>2 k/2- - choisir n=pq, ainsi (p(n)=(p-1)(q-1), o (p désigne l'indicatrice d'Euler.  Key creation step To generate its personal key pair, system A can proceed as follows: - randomly select two prime numbers p and q each represented on approximately L / 2 bits, and such that the numbers (p- 1) and (qi) are respectively divisible by respective prime factors p 'and q' represented on approximately k / 2 bits. Preferably, we impose p> 2L / 2-1, q2L / 2-, 1p 2-1 and q '> 2k / 2- - choose n = pq, so (p (n) = (p-1) ( q-1), o (p denotes the Euler indicator.

- choisir s=p'q', ainsi s est forcément impair. Comme s divise (p(n), il existe nécessairement un sous-groupe d'ordre s dans Zn.  - choose s = p'q ', so it is necessarily odd. Since s divides (p (n), there is necessarily a subgroup of order s in Zn.

- choisir au hasard un élément go dans Zn,* et vérifier si ord(go)=p(n), ce qui est probable. Dans la négative, choisir un autre élément go - dans la positive, choisir g=go(p(n)/s* De même que la clé secrète s, les nombres p et q ne doivent 10 être connus que par le système A. Le système A peut stocker les nombres p et q dans une mémoire protégée, par exemple pour pouvoir optimiser le calcul du nombre x par la technique des restes chinois. En variante, le système A peut aussi effacer les nombres p et q après la création des clés (n, g) et s.  - randomly select a go element in Zn, * and check if ord (go) = p (n), which is likely. If not, choose another element go - in the positive, choose g = go (p (n) / s * Just like the secret key s, the numbers p and q must be known only by the system A. The system A can store the numbers p and q in a protected memory, for example to be able to optimize the calculation of the number x by the technique of the Chinese remains In a variant, the system A can also erase the numbers p and q after the creation of the keys (n, g) and s.

Il existe aussi d'autres techniques permettant de générer un triplet (n,g, s) convenable. De préférence, on impose s>2k-i. Par ailleurs, si l'on utilise une technique qui ne permet pas d'obtenir toujours un nombre s impair, il est possible d'affaiblir cette contrainte en modifiant très légèrement le procédé de signature et le procédé d'authentification 20 décrits ci-dessus. Un mode de réalisation correspondant à ce cas est décrit ci-dessous.  There are also other techniques for generating a triplet (n, g, s) suitable. Preferably, s> 2k-i is imposed. On the other hand, if one uses a technique which does not always obtain an odd number, it is possible to weaken this constraint by slightly modifying the signature method and the authentication method described above. . An embodiment corresponding to this case is described below.

Mode de réalisation avec M>O Par rapport aux modes de réalisation cidessus, on ajoute un paramètre entier M>0 qui est fixé et connu des systèmes A et B. Au lieu 25 d'être impair, on exige seulement que le nombre s ne soit pas divisible par 2j+1, pour au moins un entier j tel que Oj<M. Le mode de réalisation dans lequel s doit être impair correspond au cas préférentiel M=O.  Embodiment with M> O Compared to the above embodiments, an integer parameter M> 0 is added which is fixed and known from the systems A and B. Instead of being odd, it is only required that the number s let not be divisible by 2j + 1, for at least one integer j such that Oj <M. The embodiment in which s must be odd corresponds to the preferential case M = 0.

Les procédés décrits plus haut sont modifiés de la manière suivante. Les nombres e et e' sont représentés sur E+M bits et l'on 30 choisit a.>+M.  The methods described above are modified as follows. The numbers e and e 'are represented on E + M bits and a>> M is selected.

Dans le calcul du nombre y, le système A effectue une opération de mise en concordance modifiée, par laquelle ce sont les bits du nombre y ayant un poids i tel que M<i'<+M qui sont rendus égaux aux bits correspondants du nombre e. Pour cela, dans les algorithmes 35 décrits dans les annexes 1 et 2, il faut seulement: - ajouter une étape d'initialisation de l'incrément, dans laquelle le nombre s est initialement décalé de M-j positions dans le sens des poids de bits croissants, et - remplacer la valeur i par la valeur i+M dans les indices des bits, c'est-à-dire par exemple que ri est remplacé par ri+M.  In the calculation of the number y, the system A performs a modified matching operation, whereby it is the bits of the number y having a weight i such that M <i '<+ M are made equal to the corresponding bits of the number e. For this, in the algorithms described in Annexes 1 and 2, it is only necessary: - to add a step of initialization of the increment, in which the number s is initially shifted by Mj positions in the direction of increasing bit weights , and - replace the value i by the value i + M in the bit indices, that is to say for example that ri is replaced by ri + M.

Dans l'étape de vérification du nombre y, le système vérifieur B effectue alors la comparaison des nombres y et e sur la portion constituée des bits de poids i tel que M<i<t+M. La borne S; devient S=2a+2k+C+M.  In the step of checking the number y, the verification system B then compares the numbers y and e on the portion consisting of bits of weight i such that M <i <t + M. The S terminal; becomes S = 2a + 2k + C + M.

Cette variante présente l'avantage de donner aux tiers moins d'informations sur le nombre s. Mais cet avantage est compensé par un inconvénient, qui est l'accroissement de la longueur des nombres y et e.  This variant has the advantage of giving third parties less information about the number s. But this advantage is offset by a disadvantage, which is the increase in the length of the numbers y and e.

Mode de réalisation avec bits non consécutifs Avec M=O ou M>O, il est également possible de modifier 15 l'opération de mise en concordance ou " dovetailing " pour faire concider les représentations binaires des nombres e et y sur une portion constituée de f bits non consécutifs. Pour cela, en plus du paramètre Y, les systèmes A et B doivent connaître un lot prédéterminé de t poids distincts supérieurs ou égaux à M. Le poids le plus élevé du lot est alors 20 forcément supérieur ou égal à M+L. Les nombres e et e' doivent être allongés de manière correspondante, pour présenter des bits ayant le poids le plus élevé du lot prédéterminé. Les opérations de calcul du nombre y par le système A et de vérification du nombre y par le système B sont modifiées de manière correspondante, pour respectivement créer 25 et vérifier la concordance des bits du nombre y et du nombre e pour chaque poids i du lot prédéterminé.  Embodiment with non-consecutive bits With M = 0 or M> O, it is also possible to modify the matching operation or "dovetailing" to concide the binary representations of the numbers e and y on a portion consisting of f non-consecutive bits. For this, in addition to the parameter Y, the systems A and B must know a predetermined batch of t distinct weights greater than or equal to M. The highest weight of the batch is then necessarily greater than or equal to M + L. The numbers e and e 'must be correspondingly elongated to present bits having the highest weight of the predetermined batch. The operations of calculating the number y by the system A and checking the number y by the system B are correspondingly modified to respectively create and check the agreement of the bits of the number y and the number e for each weight i of the batch. predetermined.

Pour le calcul du nombre y, il faut alors modifier l'algorithme de l'annexe 1 pour faire balayer par l'indice i tout le lot prédéterminé, toujours en progressant vers les poids de bits croissants, et 30 pour décaler à chaque fois l'incrément s d'un nombre de positions correspondant à l'écart entre deux poids successifs dans le lot prédéterminé.  For the calculation of the number y, it is then necessary to modify the algorithm of the appendix 1 to sweep by the index i all the predetermined batch, always progressing towards the weight of increasing bits, and to shift each time the increment s of a number of positions corresponding to the difference between two successive weights in the predetermined batch.

Implantation matérielle Les différents modes de réalisation de procédés décrits 35 peuvent être mis en oeuvre de manière automatisée par une programmation correspondante des systèmes A et B. La réalisation d'une telle programmation relève des compétences de l'homme du métier. Par exemple, les valeurs des paramètres L, k, a, E et M ainsi que le choix de la transformation non inversible T sont fixés dans la programmation des systèmes A et B. En variante, ces valeurs et ce choix peuvent être communiquées aux systèmes A et B par l'autorité de certification.  Hardware Implantation The various described embodiments of the methods can be implemented automatically by a corresponding programming of the A and B systems. The realization of such programming is within the competence of those skilled in the art. For example, the values of the parameters L, k, a, E and M as well as the choice of the non invertible transformation T are fixed in the programming of the systems A and B. Alternatively, these values and this choice can be communicated to the systems. A and B by the certification authority.

Cependant, l'opération de " dovetailing " peut aussi être exécutée de manière efficace par une logique câblée. En référence à l'algorithme de l'annexe 1, une telle logique câblée est réalisée en suivant, pour effectuer chaque itération de la boucle, les principes 10 généraux suivants: - les bits des nombres r et e sont comparés pour déterminer s'il faut ajouter 0 ou s au nombre r.  However, the "dovetailing" operation can also be performed efficiently by wired logic. With reference to the algorithm of appendix 1, such wired logic is realized by following, for each iteration of the loop, the following general principles: the bits of the numbers r and e are compared to determine whether add 0 or s to the number r.

- les additions sont réalisées au moyen d'additionneurs à trois entrées d'une taille donnée, par exemple 8 bits.  the additions are carried out by means of adders with three inputs of a given size, for example 8 bits.

- Chaque addition entre r et s est effectuée en parallèle sur tous les d'additionneurs à trois entrées de taille 8 bits, mais les retenues ne sont propagées qu'une seule fois entre les additionneurs à trois entrées. Les retenues qui subsistent sont réintroduites dans les additionneurs à trois entrées lors de l'itération suivante. Ceci est rendu 20 possible par le fait que, lorsque l'on effectue l'itération de rang i dans la boucle, il suffit que le bit de poids i soit correct dans le nombre r. Les calculs restant pour terminer les additions peuvent donc être différés jusqu'à l'itération suivante.  Each addition between r and s is performed in parallel on all the 8-bit three-input adders, but the holds are propagated only once between the three-input adders. The remaining holds are reintroduced into the three-input adders during the next iteration. This is made possible by the fact that, when the iteration of rank i is performed in the loop, it suffices that the bit of weight i is correct in the number r. The remaining calculations to complete the additions can therefore be deferred until the next iteration.

- le nombre s est décalé d'une position à l'aide d'un 25 composant classique.  the number s is shifted by one position using a conventional component.

Du fait que les retenues ne se propagent qu'une seule fois à chaque itération, chaque addition entre les nombres r et s ne demande que deux cycles d'horloge. La propagation des retenues restantes ne doit être effectuée qu'une seule fois après la boucle principale " while-end 30 while ". En fait, lorsqu'on utilise des additionneurs de taille 8 bits, il est nécessaire d'effectuer l'étape de propagation des retenues restantes qu'une fois tous les 8 cycles d'horloge. On obtient quand même la valeur correcte de r à la fin du calcul. De ce fait, au prix d'un algorithme d'horloge plus complexe, il doit être possible d'effectuer l'opération de 35 " dovetailing " à l'aide d'une logique câblée sensiblement au même cot que l'opération de multiplication du procédé GPS.  Because the holds propagate only once at each iteration, each addition between the numbers r and s requires only two clock cycles. Propagation of the remaining holdbacks should be done only once after the main "while-end 30 while" loop. In fact, when using 8-bit adders, it is necessary to carry out the step of propagating the remaining detentions only once every 8 clock cycles. We still get the correct value of r at the end of the calculation. Therefore, at the cost of a more complex clock algorithm, it must be possible to perform the 35 "dovetailing" operation using a wired logic substantially at the same cost as the multiplication operation. of the GPS process.

La figure 2 représente schématiquement un mode de réalisation du système signataire A, réalisé sous la forme d'un circuit imprimé en suivant les principes susmentionnés. Un premier registre 1 sert à stocker le nombre e. Un second registre 2 sert à stocker le nombre 5 r. Les registres 1 et 2 sont reliés à un comparateur de bits 3 servant à comparer les bits de poids i dans les registres 1 et 2. La sortie du comparateur de bits 3 transmet un bit de résultat 0 ou. 1 sur la ligne de commutation 11 d'un multiplexeur Mux ayant deux entrées, pour sélectionner l'une de ces deux entrées. La première entrée est reliée à un 10 registre 4 servant à stocker le nombre s et la seconde entrée est reliée à un registre 5 stockant le nombre 0. En fonction du bit de résultat sortant du comparateur de bits 3, le registre de sortie 6 du multiplexeur Mux reçoit le nombre s ou 0. Le circuit additionneur 7 est constitué d'une série d'additionneurs à trois entrées dont les branchements relatifs à la 15 propagation des retenues ne sont pas représentés. Les deux entrées d'opérandes du circuit additionneur 7 sont reliées respectivement aux registres 2 et 6. La sortie circuit additionneur 7 est reliée au registre 2 pour remplacer le contenu du registre 2 par le résultat de l'addition.  FIG. 2 diagrammatically represents an embodiment of the signatory system A, produced in the form of a printed circuit by following the abovementioned principles. A first register 1 is used to store the number e. A second register 2 serves to store the number 5 r. The registers 1 and 2 are connected to a bit comparator 3 for comparing the bits of weight i in the registers 1 and 2. The output of the bit comparator 3 transmits a result bit 0 or. 1 on the switching line 11 of a MUX multiplexer having two inputs, to select one of these two inputs. The first input is connected to a register 4 for storing the number s and the second input is connected to a register 5 storing the number 0. As a function of the output bit of the bit comparator 3, the output register 6 of the The multiplexer Mux receives the number s or 0. The adder circuit 7 consists of a series of three-input adders whose connections relating to the propagation of the detentions are not represented. The two operand inputs of the adder circuit 7 are respectively connected to the registers 2 and 6. The output adder circuit 7 is connected to the register 2 to replace the contents of the register 2 by the result of the addition.

Comme mentionné ci-dessus, ce résultat peut être plus ou moins achevé 20 quant à ses bits de poids fort, selon la manière dont les retenues sont propagées à chaque itération. Le composant de décalage 8 sert à décaler d'un bit le contenu du registre 4 à chaque itération. Après le calcul du nombre y, qui remplace le nombre r dans le registre 2 à la fin de la boucle principale, le contenu du registre 4 est réinitialisé à la valeur s par 25 des opérations de décalage appropriées ou en chargeant le nombre s à partir d'une mémoire permanente 12. Il est également prévu une interface 10 reliée au registre 2 pour transmettre le contenu final de ce registre, à savoir la signature numérique, au système vérifieur B. Le calcul du nombre e placé dans le registre 1 est effectué 30 par un circuit imprimé connu en soi réalisant le hachage de deux opérandes, à savoir le nombre x et le message m, qui sont stockées dans des registres de mémoire correspondants, non représentés.  As mentioned above, this result can be more or less complete with respect to its most significant bits, depending on how the holds are propagated at each iteration. The offset component 8 serves to shift by one bit the contents of the register 4 at each iteration. After calculating the number y, which replaces the number r in register 2 at the end of the main loop, the contents of register 4 are reset to the value s by appropriate offset operations or by loading the number s from a permanent memory 12. There is also an interface 10 connected to the register 2 for transmitting the final content of this register, namely the digital signature, to the verification system B. The calculation of the number e placed in the register 1 is performed 30 by a printed circuit known in itself performing the hashing of two operands, namely the number x and the message m, which are stored in corresponding memory registers, not shown.

Un tel circuit imprimé est placé dans un support pour former une carte à mémoire de format classique. L'interface 10 comporte des 35 contacts électriques pour coopérer avec la tête de lecture d'un lecteur de carte correspondant, pouvant par exemple être inclus dans le système vérifieur B. Selon un mode de réalisation particulièrement simple, une pluralité de couples de nombres (r, x) sont chargées à l'avance dans les registres de mémoire de la carte pour pouvoir effectuer un nombre correspondant de signatures.  Such a printed circuit board is placed in a carrier to form a conventional format memory card. The interface 10 comprises electrical contacts for cooperating with the read head of a corresponding card reader, which may for example be included in the verification system B. According to a particularly simple embodiment, a plurality of pairs of numbers ( r, x) are loaded in advance in the memory registers of the card to be able to perform a corresponding number of signatures.

s 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 moyensdécrits ainsi que leurs combinaisons si celles-ci entrent dans le.-cadre de l'invention.  Although the invention has been described in connection with several particular embodiments, it is quite obvious that it is in no way limited thereto and that it comprises all the technical equivalents of the means described and their combinations if they are are within the scope of the invention.

Annexe 1: algorithme de " dovetailing " sur un bit Entrées r, e, s Sorties Ds(r,e) remplace r i<--O while i<lel do if ri#ei then r<--r+s end if s<--s<<l 10 i<i+l end while Annexe 2: algorithme de " dovetailing " sur deux bits Entrées r, e, s Sorties Ds(r,e) remplace r i<-O while i<lel do if ri=ei then s<-s<"l 20 i-i+i else if i=<lel-1 then r<-r+s i<-i+l 25 else t=(2ri+l+ri-2ej+l-ei) modulo 4 ift=1 then r<--r-s else r-r+s end if s--s<<2 i<-i+2 endif 35 endif end while  Annex 1: bitwise "dovetailing" algorithm Inputs r, e, s Outputs Ds (r, e) replaces ri <- O while i <lel do if ri # ei then r <- r + s end if s <- s << l 10 i <i + l end while Appendix 2: two-bit dovetailing algorithm Inputs r, e, s Outputs Ds (r, e) replaces ri <-O while i <lel do if ri = ei then s <-s <"l 20 i-i + i else if i = <lel-1 then r <-r + if <-i + l 25 else t = (2ri + l + ri-2ej + l-ei) modulo 4 ift = 1 then r <- rs else r-r + s end if s - s << 2 i <-i + 2 endif 35 endif while

Claims (18)

REVENDICATIONS 1. Procédé de signature numérique pour permettre à un système vérifieur B pouvant échanger des données numériques avec un système signataire A d'éprouver l'authenticité d'un message de données numériques m échangé avec ledit système signataire A, dans lequel ledit système signataire A est muni d'une clé publique (n,g) incluant un module entier n vérifiant n=pq, o p et q sont des nombres premiers choisis tels que le problème du logarithme; discret dans l'ensemble Zn soit insoluble en pratique, et une base entière g choisie 10 dans le groupe Zn* de manière à présenter un ordre s qui vérifie gs=1 modulo n, ledit système signataire A étant muni de la valeur de l'ordre s en tant que clé secrète associée à ladite clé publique (n,g), ladite clé publique (n,g) étant mise à disposition du système vérifieur B, caractérisé par le fait que le nombre s est choisi de manière à ne pas être 15 divisible par 2i+', pour au moins un entier j tel que 05j<M, M étant un paramètre entier positif ou nul prédéterminé, le système signataire A effectuant les étapes consistant à: se procurer un nombre entier r représenté sur au moins E+M bits, f étant 20 un paramètre entier positif prédéterminé, et un nombre entier x vérifiant x=g modulo n, calculer un nombre entier e=T(x,m) dépendant du message m et du nombre x à l'aide d'une transformation non inversible T prédéterminée, le nombre e étant représenté sur au moins f+M bits, calculer à partir des nombres entiers s, e et r un nombre entier y vérifiant y=r+ls, o X est un nombre entier choisi de manière que les représentations binaires respectives des nombres e et y soient identiques sur une portion prédéterminée constituée de f bits ayant des poids i tels que M<i, et transmettre au système vérifieur B une signature numérique incluant le nombre y, et que ledit système vérifieur B effectue les étapes consistant à calculer un nombre entier e'=T(x',m) dépendant du message m et d'un nombre x' à l'aide de ladite transformation non inversible T, le nombre 35 e' étant représenté sur au moins f+M bits, le nombre x' étant calculé ou reçu par le système vérifieur B, et comparer les représentations binaires respectives du nombre e' calculé et du nombre y reçu sur ladite portion prédéterminée, pour reconnaître le message m échangé comme non authentique lorsque deux bits ei' et yi ayant un même poids i et appartenant à ladite portion prédéterminée ne sont pas égaux, le message m échangé étant reconnu comme authentique par le système vérifieur B lorsque le nombre y reçu et le nombre x' vérifient x'=gY modulo n et que ej'=yi pour tous les bits de poids i appartenant à ladite portion prédéterminée.  A digital signature method for enabling a verifier system B to exchange digital data with a signatory system A to test the authenticity of a digital data message exchanged with said signatory system A, wherein said signatory system A is provided with a public key (n, g) including an integer module n satisfying n = pq, op and q are selected prime numbers such as the logarithm problem; Discrete in the set Zn is insoluble in practice, and an integer base g chosen in the group Zn * so as to present an order s which satisfies gs = 1 modulo n, said signatory system A being provided with the value of the as a secret key associated with said public key (n, g), said public key (n, g) being made available to the verification system B, characterized in that the number s is chosen so as not to be divisible by 2i + ', for at least one integer j such that 05j <M, M being a predetermined positive or zero integer parameter, the signatory system A performing the steps of: obtaining an integer r represented on at least E + M bits, f being a predetermined positive integer parameter, and an integer x satisfying x = g modulo n, calculating an integer e = T (x, m) dependent on the message m and the number x using a predetermined non-invertible transformation T, the number e being represented on at least f + M bits, calculating from integers s, e and r an integer y satisfying y = r + ls, where X is an integer chosen so that the respective binary representations of the numbers e and y are identical to a predetermined portion consisting of f bits having weights i such that M <i, and transmitting to the verification system B a digital signature including the number y, and that said verifier system B performs the steps of calculating an integer e ' = T (x ', m) depending on the message m and a number x' with the aid of said non-invertible transformation T, the number 35 e 'being represented on at least f + M bits, the number x' being calculated or received by the verification system B, and comparing the respective binary representations of the number e 'calculated and the number y received on said predetermined portion, to recognize the message m exchanged as non-authentic when two bits ei' and yi having the same weight i and apart nt to said predetermined portion are not equal, the message m exchanged being recognized as authentic by the verification system B when the number y received and the number x 'satisfy x' = gY modulo n and ej '= yi for all the bits of weight i belonging to said predetermined portion. 2. Procédé selon la revendication 1, caractérisé par le fait que la signature numérique transmise par le système signataire A au système vérifieur B est constituée uniquement du nombre y, et que le système vérifieur B calcule le nombre x' à partir du nombre y reçu et de la clé publique (n,g) de manière que x'=gy modulo n.  2. Method according to claim 1, characterized in that the digital signature transmitted by the signatory system A to the verification system B consists only of the number y, and that the verification system B calculates the number x 'from the number received there and the public key (n, g) so that x '= gy modulo n. 3. Procédé selon la revendication 1, caractérisé par le fait que la signature numérique transmise par le système signataire A au système vérifieur B comprend également le nombre x, lequel est reçu par le système vérifieur B en tant que nombre x', et que ledit système vérifieur B calcule le nombre z=gy modulo n et le compare au nombre x' 20 reçu pour reconnaître le message m échangé comme non authentique lorsque z#x'.  3. Method according to claim 1, characterized in that the digital signature transmitted by the signatory system A to the verification system B also comprises the number x, which is received by the verification system B as a number x ', and that said The verification system B calculates the number z = gy modulo n and compares it with the number x '20 received to recognize the message m exchanged as non-authentic when z # x'. 4. Procédé selon l'une des revendications 1 à 3,  4. Method according to one of claims 1 to 3, caractérisé par le fait que ladite portion prédéterminée est constituée des t bits consécutifs ayant des poids i tels que M<i<t+M.  characterized in that said predetermined portion consists of t consecutive bits having weights i such that M <i <t + M. 5. Procédé selon la revendication 4, caractérisé par le fait que l'ordre s est choisi tel que 0<s<2k, k étant un paramètre entier prédéterminé vérifiant k>t+M, que le nombre r est choisi tel que O<r<2a, a étant un paramètre entier prédéterminé tel que a>k+t+M, et que le nombre e est calculé tel que O<e<2e+M.  5. Method according to claim 4, characterized in that the order s is chosen such that 0 <s <2k, where k is a predetermined integer parameter satisfying k> t + M, that the number r is chosen such that O < r <2a, where a is a predetermined integer parameter such that a> k + t + M, and the number e is calculated such that O <e <2e + M. 6. Procédé selon la revendication 5, caractérisé par le fait que le système vérifieur B compare le nombre y reçu à une borne supérieure S vérifiant S=2a+2k+t+M pour reconnaître le message m échangé comme non authentique lorsque y>S, le message m échangé étant reconnu comme authentique par le système vérifieur B sous la 35 condition supplémentaire que y<S.  6. Method according to claim 5, characterized in that the verification system B compares the received number y to an upper bound S satisfying S = 2a + 2k + t + M to recognize the message m exchanged as non-authentic when y> S the message m exchanged being recognized as authentic by the verification system B under the additional condition that y <S. 7. Procédé selon la revendication 5 ou 6, caractérisé par le fait que les paramètres ô, a et k vérifient a=4f et k=2f.  7. Method according to claim 5 or 6, characterized in that the parameters δ, a and k satisfy a = 4f and k = 2f. 8. Procédé selon l'une des revendications 4 à 7,  8. Method according to one of claims 4 to 7, caractérisé par le fait que le système signataire A calcule le nombre y par un procédé itératif comprenant les étapes consistant à: (E0) choisir initialement une variable de résultat y égale au nombre r et un incrément s' égal au nombre 2M-is: (El) effectuer un test d'égalité entre deux bits ei et yi ayant le même poids dans les représentations binaires respectives du nombre e et de la 10 variable de résultat y, en commençant par les bits de poids M, (E2) ajouter ou non ledit incrément s' à la variable de résultat y, en fonction d'un résultat dudit test d'égalité, (E3) recalculer l'incrément s' en décalant sa représentation binaire d'un nombre positif de positions dans le sens des poids de bit croissants (E4) recommencer les étapes (El) à (E3) pour des bits de poids supérieur dans les représentations binaires du nombre e et de la variable de résultat y, jusqu'à atteindre les bits de poids &+M.  characterized in that the signatory system A calculates the number y by an iterative method comprising the steps of: (E0) initially selecting a result variable y equal to the number r and an increment s' equal to the number 2M-is: ( El) perform a test of equality between two bits ei and yi having the same weight in the respective binary representations of the number e and the result variable y, starting with the bits of weight M, (E2) add or not said increment s 'to the result variable y, as a function of a result of said equality test, (E3) recalculating the increment s' by shifting its binary representation by a positive number of positions in the direction of the weights of Increasing bit (E4) Repeat steps (E1) to (E3) for bits of higher weight in the binary representations of the number e and the result variable y until the bits of weight & + M are reached. 9. Procédé selon la revendication 8, caractérisé par le fait que: dans l'étape (E2), on ajoute l'incrément s' à la variable de résultat y si les bits ei et yi comparés dans l'étape (El) sont inégaux et on ne modifie pas la variable de résultat y si les bits ei et y; comparés dans l'étape (El) sont égaux, dans l'étape (E3), on décale à chaque itération la représentation binaire 25 de l'incrément s' d'une position dans le sens des poids de bit croissants, dans l'étape (E4), on recommence les étapes (El) à (E3) pour les deux bits de poids immédiatement supérieur dans les représentations binaires du nombre e et du nombre y.  9. Method according to claim 8, characterized in that: in step (E2), the increment s' is added to the result variable y if the bits ei and yi compared in step (E1) are unequal and we do not modify the result variable y if the bits ei and y; compared in step (E1) are equal, in step (E3), the binary representation of the increment s' of a position in the direction of the increasing bit weights is shifted at each iteration. step (E4), the steps (E1) to (E3) for the next two bits of weight are repeated in the binary representations of the number e and the number y. 10. Procédé selon l'une des revendications 1 à 9,  10. Method according to one of claims 1 to 9, caractérisé par le fait que M=O.characterized by the fact that M = O. 11. Procédé d'authentification numérique pour permettre à un système vérifieur B pouvant échanger des données numériques avec un système A d'éprouver l'authenticité dudit système A, dans lequel ledit système A est muni d'une clé publique (n,g) incluant un module entier n vérifiant n=pq, o p et q sont des nombres premiers choisis tels que le problème du logarithme discret dans l'ensemble Zn, soit insoluble en pratique, et une base entière g choisie dans le groupe Zn* de manière à présenter un ordre s qui vérifie gS=l modulo n, ledit système A étant muni de la valeur de l'ordre s en tant que clé secrète 5 associée à ladite clé publique (n,g), ladite clé publique (n,g) étant mise à la disposition du système vérifieur B, caractérisé par le fait que le nombre s est choisi de manière à ne pas être divisible par 2J+, pour au moins un entier j tel que 0<j<M, M étant un paramètre entier positif ou nul prédéterminé, et que le système A se procure un nombre entier r représenté sur au moins t+M bits, t étant un paramètre entier positif prédéterminé, et un nombre entier x vérifiant x=gr modulo n, le système A transmet le nombre x au système vérifieur B, le système vérifieur B choisit un nombre entier e représenté sur au moins 15 M+t bits, le système vérifieur B transmet le nombre e au système A en réponse au nombre x, le système A calcule à partir des nombres entiers s, e et r un nombre entier y vérifiant y=r+%s, o X est un nombre entier choisi de manière 20 que les représentations binaires respectives des nombres e et y soient identiques sur une portion prédéterminée constituée de E bits ayant des poids i tels que M<i, et le système A transmet le nombre y au système vérifieur B, et que le système vérifieur B effectue les étapes consistant à: calculer un nombre entier x' vérifiant x'=gy modulo n à partir du nombre y reçu et de la clé publique (n,g), comparer les représentations binaires respectives du nombre e et du nombre y reçu sur ladite portion prédéterminée, pour reconnaître le système A comme non authentique lorsque deux bits ei et yi ayant un 30 même poids i et appartenant à ladite portion prédéterminée ne sont pas egaux, comparer le nombre x' calculé au nombre x reçu pour reconnaître le système A comme non authentique lorsque x'-x, le système A étant reconnu authentique par le système vérifieur B lorsque x=x' et que ei=yj 35 pour tous les bits de poids i appartenant à ladite portion prédéterminée.  11. Digital authentication method for enabling a verification system B that can exchange digital data with a system A to test the authenticity of said system A, wherein said system A is provided with a public key (n, g) including an integer module n satisfying n = pq, op and q are selected prime numbers such that the problem of the discrete logarithm in the Zn set is insoluble in practice, and an integer base g chosen from the group Zn * so as to presenting an order s which satisfies gS = l modulo n, said system A being provided with the value of the order s as a secret key associated with said public key (n, g), said public key (n, g) being placed at the disposal of the verification system B, characterized in that the number s is chosen so as not to be divisible by 2J +, for at least one integer j such that 0 <j <M, M being a positive integer parameter predetermined zero, and that the system A procures a n integer shadow r represented on at least t + M bits, t being a predetermined positive integer parameter, and an integer x satisfying x = gr modulo n, the system A transmits the number x to the verification system B, the verification system B selects a integer e represented on at least 15 M + t bits, the verification system B transmits the number e to the system A in response to the number x, the system A calculates from the integers s, e and r an integer y checking there = r +% s, where X is an integer chosen so that the respective binary representations of the numbers e and y are identical over a predetermined portion consisting of E bits having weights i such that M <i, and the system A transmitting the number y to the verification system B, and that the verification system B performs the steps of: calculating an integer x 'satisfying x' = gy modulo n from the number y received and the public key (n, g), compare the binary representations respecti Given the number e and the number y received on said predetermined portion, to recognize the system A as non-authentic when two bits e i and y i having the same weight i and belonging to said predetermined portion are not equal, compare the number x ' computed at the number x received to recognize the system A as non-authentic when x'-x, the system A being recognized as authentic by the verification system B when x = x 'and that ei = yj for all the bits of weight i belonging to said predetermined portion. 12. Procédé selon la revendication 11, caractérisé par le fait que ladite portion prédéterminée est constituée des bits consécutifs ayant des poids i tels que M <i<+M.  12. Method according to claim 11, characterized in that said predetermined portion consists of consecutive bits having weights i such that M <i <+ M. 13. Procédé selon la revendication 12, caractérisé par le 5 fait que l'ordre s est choisi tel que O<s<2k, k étant un paramètre entier prédéterminé vérifiant k>t+M, que le nombre r est choisi tel que O<r<2a, a étant un paramètre entier prédéterminé tel que a>k+E+M, et que le nombre e est choisi tel que O<e<2E+M.  13. Method according to claim 12, characterized in that the order s is chosen such that O <s <2k, where k is a predetermined integer parameter satisfying k> t + M, that the number r is chosen such that O <r <2a, where a is a predetermined integer parameter such that a> k + E + M, and the number e is chosen such that O <e <2E + M. 14. Procédé selon la revendication 13, caractérisé par le 10 fait que le système vérifieur B compare le nombre y reçu à une borne supérieure S vérifiant S=2a+2k+e+m pour reconnaître le système A comme non authentique lorsque y>S, le système A étant reconnu comme authentique par le système vérifieur B sous la condition supplémentaire que y<S.  14. The method according to claim 13, characterized in that the verifier system B compares the received number y with an upper bound S satisfying S = 2a + 2k + e + m to recognize the system A as non-authentic when y> S , the system A being recognized as authentic by the verification system B under the additional condition that y <S. 15. Procédé selon la revendication 13 ou 14, caractérisé par le fait que les paramètres f, a et k vérifient a=4f et k=2ú.  15. The method of claim 13 or 14, characterized in that the parameters f, a and k satisfy a = 4f and k = 2u. 16. Procédé selon l'une des revendications 12 à 15, caractérisé par le fait que le système A calcule le nombre y par un procédé itératif comprenant les étapes consistant à: (EO) choisir initialement une variable de résultat y égale au nombre r et un incrément s' égal au nombre 2M-sj: (El) effectuer un test d'égalité entre deux bits e, et y; ayant le même poids dans les représentations binaires respectives du nombre e et de la variable de résultat y, en commençant par les bits de poids M, (E2) ajouter ou non ledit incrément s' à la variable de résultat y, en fonction d'un résultat dudit test d'égalité, (E3) recalculer l'incrément s' en décalant sa représentation binaire d'un nombre positif de positions dans le sens des poids de bit croissants (E4) recommencer les étapes (El) à (E3) pour des bits de poids supérieur 30 dans les représentations binaires du nombre e et de la variable de résultat y, jusqu'à atteindre les bits de poids ú+M.  16. Method according to one of claims 12 to 15, characterized in that the system A calculates the number y by an iterative method comprising the steps of: (EO) initially choosing a result variable y equal to the number r and an increment s' equal to the number 2M-sj: (El) perform a test of equality between two bits e, and y; having the same weight in the respective binary representations of the number e and the result variable y, starting with the weight bits M, (E2) adding or not said increment s' to the result variable y, as a function of a result of said equality test, (E3) recalculating the increment s' by shifting its binary representation by a positive number of positions in the direction of the increasing bit weights (E4) repeat steps (E1) to (E3) for bits of greater weight in the binary representations of the number e and the result variable y, until reaching the bits of weight ú + M. 17. Procédé selon la revendication 16, caractérisé par le fait que: dans l'étape (E2), on ajoute l'incrément s' à la variable de résultat y si 35 les bits e1 et yi comparés dans l'étape (El) sont inégaux et on ne modifie pas la variable de résultat y si les bits ei et yi comparés dans l'étape (El) sont égaux, dans l'étape (E3), on décale à chaque itération la représentation binaire de l'incrément s' d'une position dans le sens des poids de bit croissants, dans l'étape (E4), on recommence les étapes (El) à (E3) pour les deux 5 bits de poids immédiatement supérieur dans les représentations binaires du nombre e et du nombre y.  17. Method according to claim 16, characterized in that: in step (E2), the increment s' is added to the result variable y if the bits e1 and yi compared in step (E1). are unequal and the result variable y is not modified if the bits ei and yi compared in step (E1) are equal, in step (E3), the binary representation of the increment is shifted at each iteration. of a position in the direction of the increasing bit weights, in step (E4), the steps (E1) to (E3) for the next two bits of immediately higher weight are repeated in the binary representations of the number e and of the number y. 18. Système signataire (A) pour la mise en oeuvre du procédé selon la revendication 1, caractérisé par le fait qu'il consiste en un circuit logique imprimé incluant: un premier registre de mémoire (1) et un deuxième registre de mémoire (2) pour stocker respectivement un nombre e et un nombre r, un troisième registre de mémoire (4) pour stocker un nombre s, un comparateur de bits (3) ayant deux entrées reliées respectivement au premier registre de mémoire (1) et au deuxième registre de mémoire (2) 15 pour comparer deux à deux des bits de même poids dans lesdits registres de mémoire, un multiplexeur (Mux) ayant deux entrées de données reliées respectivement audit troisième registre de mémoire (4) et à un registre de mémoire (5) stockant une valeur nulle et une ligne de commutation (11) 20 reliée à une sortie dudit comparateur de bits (3) pour sélectionner l'un desdits registres de mémoire (4, 5) en fonction d'un bit de résultat produit par ledit comparateur de bits (3) et pour placer le contenu du registre de mémoire sélectionné dans un registre de sortie (6) dudit multiplexeur, un circuit additionneur (7) ayant deux entrées d'opérandes reliées respectivement audit registre de sortie (6) et audit deuxième registre de mémoire (2) et une sortie reliée audit deuxième registre de mémoire (2) pour sommer un contenu respectif desdits registres (2, 6) et remplacer un contenu dudit deuxième registre de mémoire (2) par un résultat de ladite 30 somme, un composant de décalage (8) pour décaler d'un bit dans le sens des poids croissants un contenu dudit troisième registre de mémoire (4), une interface (10) reliée audit deuxième registre de mémoire (2) pour transmettre le contenu dudit registre à un système vérifieur (B).  18. Signatory system (A) for implementing the method according to claim 1, characterized in that it consists of a printed logic circuit including: a first memory register (1) and a second memory register (2 ) for respectively storing a number e and a number r, a third memory register (4) for storing a number s, a bit comparator (3) having two inputs respectively connected to the first memory register (1) and the second register memory device (2) for comparing two by two bits of the same weight in said memory registers, a multiplexer (Mux) having two data inputs respectively connected to said third memory register (4) and to a memory register (5). ) storing a zero value and a switching line (11) connected to an output of said bit comparator (3) to select one of said memory registers (4, 5) as a function of a result bit produced by said comparator of bits (3) and for placing the contents of the selected memory register in an output register (6) of said multiplexer, an adder circuit (7) having two operand inputs connected respectively to said output register (6) and to said second a memory register (2) and an output connected to said second memory register (2) for summing a respective content of said registers (2, 6) and replacing a content of said second memory register (2) by a result of said sum, an offset component (8) for shifting one bit in the direction of increasing weight a content of said third memory register (4), an interface (10) connected to said second memory register (2) for transmitting the contents of said register to a verification system (B).
FR0300759A 2003-01-24 2003-01-24 METHODS OF DIGITAL AUTHENTICATION AND DIGITAL SIGNATURE WITH LOW COST AND SIGNATORY SYSTEM Expired - Fee Related FR2850502B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0300759A FR2850502B1 (en) 2003-01-24 2003-01-24 METHODS OF DIGITAL AUTHENTICATION AND DIGITAL SIGNATURE WITH LOW COST AND SIGNATORY SYSTEM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0300759A FR2850502B1 (en) 2003-01-24 2003-01-24 METHODS OF DIGITAL AUTHENTICATION AND DIGITAL SIGNATURE WITH LOW COST AND SIGNATORY SYSTEM

Publications (2)

Publication Number Publication Date
FR2850502A1 true FR2850502A1 (en) 2004-07-30
FR2850502B1 FR2850502B1 (en) 2005-04-01

Family

ID=32669182

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0300759A Expired - Fee Related FR2850502B1 (en) 2003-01-24 2003-01-24 METHODS OF DIGITAL AUTHENTICATION AND DIGITAL SIGNATURE WITH LOW COST AND SIGNATORY SYSTEM

Country Status (1)

Country Link
FR (1) FR2850502B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097813A (en) * 1996-05-15 2000-08-01 Certicom Corp. Digital signature protocol with reduced bandwidth

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097813A (en) * 1996-05-15 2000-08-01 Certicom Corp. Digital signature protocol with reduced bandwidth

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GILLES ZÉMOR: "Cours de cryptographie", 2000, CASSINI, PARIS, ISBN: 2-84225-020-6, XP002255961 *
GUILIN WANG: "Security Analysis of Several Group Signature Schemes", IIARC, - 28 February 2003 (2003-02-28), pages 1 - 14, XP002255928, Retrieved from the Internet <URL:http://eprint.iacr.org/2003/194.pdf> [retrieved on 20030926] *

Also Published As

Publication number Publication date
FR2850502B1 (en) 2005-04-01

Similar Documents

Publication Publication Date Title
EP0605289B1 (en) Method and apparatus for authentication using a zero knowledge protocol
FR2759226A1 (en) PROTOCOL FOR VERIFYING A DIGITAL SIGNATURE
EP1738517B1 (en) Zero-knowledge proof cryptography methods and devices
WO1996033567A1 (en) Process for generating electronic signatures, in particular for smart cards
WO2010046565A2 (en) Method for two step digital signature
EP1807967B1 (en) Method for secure delegation of calculation of a bilinear application
EP1166496B1 (en) Authentication and signature method for messages using reduced size of challenge data and corresponding systems
FR2620248A1 (en) METHODS OF AUTHENTICATING ACCREDITATIONS OR MESSAGES WITHOUT KNOWLEDGE AND SIGNATURE OF MESSAGES
EP2909963B1 (en) Electronic signature method with ephemeral signature
FR2632469A1 (en) SECURE DATA COMMUNICATION DEVICE
EP2296308A1 (en) Cryptographical reinforced secure signature process for messages, signature verification process, and corresponding systems and program products
FR2826811A1 (en) CRYPTOGRAPHIC AUTHENTICATION METHOD
EP0909495B1 (en) Public key cryptography method
EP1216537B1 (en) Method, system, device for proving authenticity of an entity or integrity of a message
EP1145482B1 (en) Method for proving the authenticity or integrity of a message by means of a public exponent equal to the power of two
EP1520370B1 (en) Cryptographic method and devices for facilitating calculations during transactions
EP1407575B1 (en) Procede pour effectuer une tache cryptographique au moyen d&#39;une cle publique.
FR2850502A1 (en) Method of authenticating digital signatures using a low cost computer, used in authenticating bankcards or credit cards etc., allows a verifier system to exchange data with a signature system
FR2836768A1 (en) Digital signal formation having digital word generators with assistance/calculation systems producing intermediate respective result transmitting combination system/combining intermediate result.
EP1470663A1 (en) Method for generating and verifying electronic signatures
FR2829597A1 (en) Encryption method for use with authentication of electronic devices, especially smart cards, whereby the exponentiation factor is protected by dividing it into two terms that are processed separately
FR2814617A1 (en) Encryption/identification message transfer process having two systems with public/secret whole numbers exchanging data using random drawn numbers/mathematical functions and reciprocal mathematics procedures.
FR3014582A1 (en) METHOD FOR TESTING MOV CONDITION AND DEVICE THEREFOR
WO2008132382A1 (en) Method for generating a variable from a biometric datum
WO2008001009A1 (en) Public-key cryptographic system and method for the authentication of a first entity by a second entity

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150930