EP1090479A1 - Signature verification and authentication method - Google Patents

Signature verification and authentication method

Info

Publication number
EP1090479A1
EP1090479A1 EP00922700A EP00922700A EP1090479A1 EP 1090479 A1 EP1090479 A1 EP 1090479A1 EP 00922700 A EP00922700 A EP 00922700A EP 00922700 A EP00922700 A EP 00922700A EP 1090479 A1 EP1090479 A1 EP 1090479A1
Authority
EP
European Patent Office
Prior art keywords
value
modulo
entity
public
function
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.)
Withdrawn
Application number
EP00922700A
Other languages
German (de)
French (fr)
Inventor
Jacques Patarin
Louis Goubin
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.)
CP8 Technologies SA
Original Assignee
Bull CP8 SA
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 Bull CP8 SA filed Critical Bull CP8 SA
Publication of EP1090479A1 publication Critical patent/EP1090479A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • 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

Definitions

  • the present invention relates to a method making it possible to make more efficient, in computation time, in necessary RAM and ROM, the verification of an asymmetrical signature or authentication requiring some modulo n multiplications or large numbers.
  • the RSA and Rabin signature or authentication algorithms are examples allowing the implementation of this process.
  • the method is more particularly suitable for implementation in the case of a computer, for example a personal computer designated by PC, which generates a signature or an authentication by means of a secret key which must then be verified. by a microcomputer card.
  • the microcomputer performs this verification using a public key. It has relatively little power compared to the PC.
  • microcomputer card is meant a standard monolithic microcontroller with incorporated memory.
  • large numbers we mean positive integers and at least 320 bits.
  • the scientific community even currently recommends using numbers of at least 512 bits, or even 1024 bits for most algorithms, for example for RSA or Rabin algorithms.
  • microcomputer cards are brought into dialogue with computers having far greater computational capabilities than themselves.
  • microcomputer cards are often used without an arithmetic coprocessor, and with very limited memory resources (ROM, RAM and EEPROM).
  • ROM read only memory
  • RAM random access memory
  • EEPROM electrically erasable programmable read-only memory
  • modulo calculations of large numbers are often very long, even impossible for lack of sufficient memory, if the traditional descriptions of cryptographic algorithms.
  • prover the entity which wants to be authenticated, or which produces a signature. To do this, it performs calculations involving the secret key of the asymmetric algorithm used. It will for example be a PC type computer.
  • verifier the entity which verifies authentication, or which verifies the validity of a signature. For this, it performs calculations involving only the public key of the asymmetric cryptographic algorithm used. It will, for example, be a microcomputer card.
  • the subject of the present invention is the implementation of a signature verification and authentication method making it possible to remedy the aforementioned drawbacks inherent in the more limited computational capacity of a verifier entity, constituted by a microcomputer card, screw vis-à-vis a proving entity, such as a personal computer or other provided with a card reader device.
  • Another object of the present invention is therefore a simplification of the calculation operations of certain modular reductions of the verifier thanks to the implementation of additional calculations of the prover, the task of the verifier being thus simplified in the absence of any weakening of the theoretical safety of the assembly.
  • the authentication signature verification method respectively by means of an asymmetric cryptographic calculation process with private key and public key, object of the present invention, this method being carried out between a "prover" entity and a “verifier” entity , the proving entity performing cryptographic calculations using the private key with a view to performing a signature calculation, respectively an authentication value, and the verifying entity using this transmitted value performing cryptographic calculations using this public key with a view to carrying out this signature verification, respectively to this authentication, the cryptographic calculation operations implementing the calculation of modulo n multiplications or large numbers, is remarkable in that, for a cryptographic calculation process putting using a public key, consisting of a public exponent e and a public modulo n, and a private key constituted by a private exponent, d, this process consists in calculating, at the level of the proving entity, at least one prevalidation value and of transmitting from the proving entity to the entity verifying this at least one prevalidation value , allowing the verifying entity to carry out at least one modular reduction in
  • the process which is the subject of the present invention applies in the context of any dialogue or protocol exchange of messages between a proving entity such as a personal computer and a verifying entity such as a microcomputer card, in particular in the context of banking transactions, access control or the like.
  • FIG. 1 shows an illustrative diagram of the method, object of the present invention, implemented between a proving entity and a verifying entity;
  • FIG. 2a shows an illustrative diagram of the method, object of the present invention, implemented from a Rabin algorithm in authentication verification
  • - Figure 2b shows an illustrative diagram of the method, object of the present invention, implemented from a Rabin algorithm in signature verification
  • - Figure 3a shows an illustrative diagram of the method, object of the present invention, implemented from an RSA algorithm in authentication verification
  • FIG. 3b shows an illustrative diagram of the method, object of the present invention, implemented from an RSA algorithm in signature verification.
  • the method which is the subject of the invention implements, at the level of the verifying entity, public key algorithms requiring modulo n multiplications, or large numbers, and modifies them slightly by causing the calculation of one or more quotients q outside, that is to say at the level of the proving entity, and by providing this or these quotients to the verifier.
  • the verifier can more easily and quickly calculate certain modular multiplications: instead of calculating a * b modulo n, he will just have to calculate a * b, q * n, and a * bq * n, a, b denoting values signature verification or authentication calculations.
  • the quotient (s) q constitute one or more prevalidation values transmitted to the verifying entity in order to allow the verifying entity to carry out at least one modular reduction in the absence of any division operation for this modular reduction.
  • a right arrow represents the transmission of the aforementioned values between verifier and prover or vice versa and an arrow loop at the level of the prover or verifier represents the implementation of an internal calculation at the level of the prover or of the auditor.
  • the RSA algorithm is the most famous of the asymmetric cryptographic algorithms. It was invented by RIVEST, SHAMIR and ADLEMAN in 1978. It can be found described in: RL RIVEST, A. SHAMIR, LM ADLEMAN: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, 21, n ° 2, 1978, pp. 120-126. or in the following documents: • ISO / IEC 9594-8 / ITU-T X.509, Information Technology - Open Systems Interconnection - The Directory: Authentication Framework;
  • the RSA algorithm uses an integer n which is the product of two large prime numbers p and r, and an integer e, prime with ppcm (pl, r-1), and such that e ⁇ ⁇ 1 modulo ppcm (p -1, r-1).
  • the integers n and e constitute the public key.
  • e 2
  • the function x e is not bijective modulo n
  • n is the product of two prime numbers > 2
  • the verifier generates a random number A modulo n, and sends it, (reference 0 in the figure), to the prover. This then calculates a number B (reference 1), and returns this value B to the verifier. This then accepts authentication if and only if: B * B modulo n is equal to one of the following four possible values: A, or nA, or C * A modulo n, or -C * A modulo n.
  • the prover does not send (reference 2) the value B alone: it sends B and Q, where Q is the quotient of B * B by the public modulo n.
  • M the message whose verifier wishes to verify the signature S.
  • S is a Rabin signature of M
  • f is the identity function, or else is described in a signature standard; for example one can use the operations of paddage or concatenation of the standard PKCS # 1, established for RSA normally, confer the descriptive elements of this standard below in the description.
  • the prover does not send (reference 2) the value S only: it sends S and Q, where Q is the quotient of S * S by the public module n.
  • the checker does not have any more any division to calculate.
  • the prover does not send (reference 2) the value B alone: it sends B, Ql and Q2 , where Ql is the quotient of B * B by the public modulo n, and where Q2 is the quotient of B * (B * B - Ql * n) by n.
  • S is an RSA signature of M
  • f is the identity function, or else is described in an RSA signature standard, such as for example the PKCS # 1 standard.
  • the normalized public service can consist in applying to the message M a function of condensation SHA-1 to obtain a digest of message CM, then in concatenating with this digest of message a constant value.
  • the prover does not send (reference 2), the value S only: it sends S, Ql and Q2, where Ql is the quotient of S * S by the public modulo n, and where Q2 is the quotient of S * (S * S - Ql * n) by n.
  • the SHA-1 condensing function is a public "condensing" function. It takes as input a message whose size can range from 0 bytes to several Giga bytes, and gives as output a "digest" of the 160 bit message. This function is often used in standards or with signature algorithms, because it is reputed to be resistant to collisions, that is to say that we cannot concretely find two distinct messages which have the same digest (it exist but we do not know how to find such a couple of messages). This allows you to sign the digest of messages rather than the messages themselves.
  • the PKCS # 1 standard is an RSA signing standard. It describes a public service f. This function f is applied to the message M to be signed with RSA before launching the RSA modular exponentiation operation proper: the RSA signature of M will therefore
  • PKCS # 1 RSA Encryption Standard, version 2, 1998, available at the following address: ftp://ftp.rsa.com/pub/pkcs/doc/pkcs-lv2.doc whose edited version is introduced herein ask for reference.
  • the invention thus consists in providing additional data to the verifier in order to facilitate the calculations.
  • quotients constituting the pre-validation value (s)
  • these data are completely redundant compared to the values transmitted to the card in a "classic" use of the asymmetric algorithm.
  • the card can find these quotients itself. There is therefore no additional information supplied to the card, within the meaning of information theory, when the method, object of the present invention as described above, is implemented. This shows that the security of the whole is in no way weakened compared to the "classic" implementation of the algorithm.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The invention concerns a method for verifying signature or authentication between a prover and a verifier based on an asymmetrical cryptographic computational algorithm. The prover computes (1) at least a pre-validation value q, which is a quotient of two cryptographic values a, b, by the public modulo n, and transmits to the verifier said value q. The verifier computes (3) the products a*b and q*n and the difference a*b-q*n to produce at least a modular reduction in the absence of a division operation. The invention is applicable to signature verification and authentication between a proving microcomputer, and a verifying microprocessor card.

Description

Procédé de vérification de signature ou d'authentification Signature verification or authentication process
La présente invention concerne un procédé permettant de rendre plus efficace, en temps de calcul, en RAM et ROM nécessaires, la vérification d'une signature ou d'une authentification asymétrique requérant quelques multiplications modulo n ou des grands nombres. Les algorithmes de signature ou d'authentification RSA et Rabin sont des exemples permettant la mise en œuvre de ce procédé.The present invention relates to a method making it possible to make more efficient, in computation time, in necessary RAM and ROM, the verification of an asymmetrical signature or authentication requiring some modulo n multiplications or large numbers. The RSA and Rabin signature or authentication algorithms are examples allowing the implementation of this process.
Le procédé est plus particulièrement adapté en vue d'une mise en œuvre dans le cas d'un ordinateur, par exemple un ordinateur personnel désigné par PC, qui génère une signature ou une authentification au moyen d'une clé secrète qui doit ensuite être vérifiée par une carte à microcalculateur. Le microcalculateur effectue cette vérification au moyen d'une clé publique. Il dispose de relativement peu de puissance en comparaison du PC. Par " carte à microcalcula teur" , on entend un microcontrôleur monolithique standard, avec mémoire incorporée.The method is more particularly suitable for implementation in the case of a computer, for example a personal computer designated by PC, which generates a signature or an authentication by means of a secret key which must then be verified. by a microcomputer card. The microcomputer performs this verification using a public key. It has relatively little power compared to the PC. By "microcomputer card" is meant a standard monolithic microcontroller with incorporated memory.
Actuellement la majorité des algorithmes à clé publique utilisés dans le monde effectuent des calculs modulo de " grands nombres ". Par " grands nombres ", on désigne des nombres entiers positifs et d'au moins 320 bits. Pour des raisons de sécurité, la communauté scientifique recommande même actuellement d'utiliser des nombres d'au moins 512 bits, voire 1024 bits pour la plupart des algorithmes, par exemple pour les algorithmes RSA ou Rabin.Currently the majority of public key algorithms used worldwide perform modulo calculations of "large numbers". By "large numbers" we mean positive integers and at least 320 bits. For security reasons, the scientific community even currently recommends using numbers of at least 512 bits, or even 1024 bits for most algorithms, for example for RSA or Rabin algorithms.
Actuellement les cartes à microcalculateur sont amenées à dialoguer avec des ordinateurs ayant des capacités de calcul bien plus importantes qu'elles-mêmes. De plus, pour des raisons de coût, on utilise souvent des cartes à microcalculateur sans coprocesseur arithmétique, et avec des ressources en mémoire (ROM, RAM et EEPROM) très limitées. De ce fait, les calculs normalement requis pour réaliser une vérification d'authentification, ou une vérification de signature à clé publique, utilisant des calculs modulo de grands nombres sont souvent très longs, voire impossible faute de mémoire suffisante, si l'on utilise les descriptions traditionnelles des algorithmes cryptographiques .Currently microcomputer cards are brought into dialogue with computers having far greater computational capabilities than themselves. In addition, for cost reasons, microcomputer cards are often used without an arithmetic coprocessor, and with very limited memory resources (ROM, RAM and EEPROM). As a result, the calculations normally required to carry out an authentication verification, or a signature verification using a public key, using modulo calculations of large numbers are often very long, even impossible for lack of sufficient memory, if the traditional descriptions of cryptographic algorithms.
Dans la suite de la description on désigne par :In the following description, we designate by:
• "prouveur" : l'entité qui veut être authentifiée, ou qui produit une signature. Elle effectue pour cela des calculs faisant intervenir la clé secrète de l'algorithme asymétrique utilisé. Il s'agira par exemple d'un ordinateur de type PC.• "prover": the entity which wants to be authenticated, or which produces a signature. To do this, it performs calculations involving the secret key of the asymmetric algorithm used. It will for example be a PC type computer.
• " vérifieur" : l'entité qui vérifie l' authentification, ou qui vérifie la validité d'une signature. Elle effectue pour cela des calculs faisant intervenir uniquement la clé publique de l'algorithme cryptographique asymétrique utilisé. Il s'agira par exemple d'une carte à microcalculateur.• "verifier": the entity which verifies authentication, or which verifies the validity of a signature. For this, it performs calculations involving only the public key of the asymmetric cryptographic algorithm used. It will, for example, be a microcomputer card.
La présente invention a pour objet la mise en œuvre d'un procédé de vérification de signature et d'authentification permettant de remédier aux inconvénients précités inhérents à la capacité de calcul plus limitée d'une entité vérifieur, constituée par une carte à microcalculateur, vis-à-vis d'une entité prouveur, tel qu'un ordinateur personnel ou autre muni d'un dispositif lecteur de carte.The subject of the present invention is the implementation of a signature verification and authentication method making it possible to remedy the aforementioned drawbacks inherent in the more limited computational capacity of a verifier entity, constituted by a microcomputer card, screw vis-à-vis a proving entity, such as a personal computer or other provided with a card reader device.
Un autre objet de la présente invention est en conséquence une simplification des opérations de calcul de certaines réductions modulaires du vérifieur grâce à la mise en œuvre de calculs supplémentaires du prouveur, la tâche du vérifieur étant ainsi simplifiée en l'absence de tout affaiblissement de la sécurité théorique de l'ensemble.Another object of the present invention is therefore a simplification of the calculation operations of certain modular reductions of the verifier thanks to the implementation of additional calculations of the prover, the task of the verifier being thus simplified in the absence of any weakening of the theoretical safety of the assembly.
Le procédé de vérification de signature respectivement d'authentification au moyen d'un processus de calcul cryptographique asymétrique à clé privée et à clé publique, objet de la présente invention, ce procédé étant conduit entre une entité "prouveur" et une entité "vérifieur", l'entité prouveur effectuant des calculs cryptographiques à partir de la clé privée en vue d'effectuer un calcul de signature, respectivement une valeur d'authentification, et l'entité vérifieur à partir de cette valeur transmise effectuant des calculs cryptographiques à partir de cette clé publique en vue de procéder à cette vérification de signature, respectivement à cette authentification, les opérations de calcul cryptographique mettant en œuvre le calcul de multiplications modulo n ou des grands nombres, est remarquable en ce que, pour un processus de calcul cryptographique mettant en œuvre une clé publique, constituée par un exposant public e et un modulo public n, et une clé privée constituée par un exposant privé, d, ce procédé consiste à calculer, au niveau de l'entité prouveur, au moins une valeur de prévalidation et à transmettre de l'entité prouveur à l'entité vérifieur cette au moins une valeur de prévalidation, permettant à l'entité vérifieur d'effectuer au moins une réduction modulaire en l'absence de toute opération de division pour cette réduction modulaire.The authentication signature verification method respectively by means of an asymmetric cryptographic calculation process with private key and public key, object of the present invention, this method being carried out between a "prover" entity and a "verifier" entity , the proving entity performing cryptographic calculations using the private key with a view to performing a signature calculation, respectively an authentication value, and the verifying entity using this transmitted value performing cryptographic calculations using this public key with a view to carrying out this signature verification, respectively to this authentication, the cryptographic calculation operations implementing the calculation of modulo n multiplications or large numbers, is remarkable in that, for a cryptographic calculation process putting using a public key, consisting of a public exponent e and a public modulo n, and a private key constituted by a private exponent, d, this process consists in calculating, at the level of the proving entity, at least one prevalidation value and of transmitting from the proving entity to the entity verifying this at least one prevalidation value , allowing the verifying entity to carry out at least one modular reduction in the absence of any division operation for this modular reduction.
Le procédé, objet de la présente invention, s'applique dans le cadre de tout dialogue ou protocole d'échange de messages entre une entité prouveur telle qu'un ordinateur personnel et une entité vérifieur telle qu'une carte à microcalculateur, en particulier dans le cadre de transactions bancaires, de contrôle d'accès ou analogue.The process which is the subject of the present invention applies in the context of any dialogue or protocol exchange of messages between a proving entity such as a personal computer and a verifying entity such as a microcomputer card, in particular in the context of banking transactions, access control or the like.
Il sera mieux compris à la lecture de la description ci-après et à l'observation des dessins dans lesquels :It will be better understood on reading the description below and on observing the drawings in which:
- la figure 1 représente un schéma illustratif du procédé, objet de la présente invention, mis en œuvre entre une entité prouveur et une entité vérifieur ;- Figure 1 shows an illustrative diagram of the method, object of the present invention, implemented between a proving entity and a verifying entity;
- la figure 2a représente un schéma illustratif du procédé, objet de la présente invention, mis en œuvre à partir d'un algorithme de Rabin en vérification d'authentification ;- Figure 2a shows an illustrative diagram of the method, object of the present invention, implemented from a Rabin algorithm in authentication verification;
- la figure 2b représente un schéma illustratif du procédé, objet de la présente invention, mis en œuvre à partir d'un algorithme de Rabin en vérification de signature ; - la figure 3a représente un schéma illustratif du procédé, objet de la présente invention, mis en œuvre à partir d'un algorithme RSA en vérification d'authentification ;- Figure 2b shows an illustrative diagram of the method, object of the present invention, implemented from a Rabin algorithm in signature verification; - Figure 3a shows an illustrative diagram of the method, object of the present invention, implemented from an RSA algorithm in authentication verification;
- la figure 3b représente un schéma illustratif du procédé, objet de la présente invention, mis en œuvre à partir d'un algorithme RSA en vérification de signature.- Figure 3b shows an illustrative diagram of the method, object of the present invention, implemented from an RSA algorithm in signature verification.
Une description plus détaillée du procédé, objet de l'invention, sera donnée en liaison avec la figure 1 et les figures suivantes. Le procédé objet de l'invention met en œuvre, au niveau de l'entité vérifieur, des algorithmes à clé publique requérant des multiplications modulo n, ou des grands nombres, et les modifie légèrement en faisant faire le calcul d'un ou de plusieurs quotients q à l'extérieur, c'est-à-dire au niveau de l'entité prouveur, et en fournissant ce ou ces quotients au vérifieur. Ainsi le vérifieur peut plus facilement et plus rapidement calculer certaines multiplications modulaires : au lieu de calculer a*b modulo n, il aura juste à calculer a*b, q*n, et a*b-q*n, a, b désignant des valeurs des calcul de vérification de signature ou d'authentification. Parfois, pour la sécurité il utilise cette dernière valeur d'une façon qui lui permettra de s'assurer que cette dernière valeur est bien comprise entre 1 et n. Lorsque l'on modifie ainsi un algorithme, en "précal culant" donc certains quotients, qui sont fournis au vérifieur afin de simplifier les calculs exécutés par ce dernier, on parle d'algorithme " sous-jacent" pour désigner l'algorithme initial dont on est parti, avant de faire cette modification. Ainsi, en référence à la figure 1, conformément à un aspect remarquable du procédé objet de la présente invention, le ou les quotients q, vérifiant la relation q=a*b/n, constituent une ou plusieurs valeurs de prévalidation transmises à l'entité vérifieur afin de permettre à l'entité vérifieur d'effectuer au moins une réduction modulaire en l'absence de toute opération de division pour cette réduction modulaire. En référence à la figure 1, on indique que le procédé objet de l'invention peut être mis en œuvre soit en vérification de l' authentification, suite à l'envoi d'une valeur d'incitation tel qu'un aléa a (voir la référence 0 sur la figure), calcul (référence 1) en interne au niveau du prouveur d'une valeur de réponse b = ad mod n, et de la valeur de prévalidation q, transmission (référence 2) de b et q du prouveur au vérifieur et calcul (référence 3) par le vérifieur des quantités a*b, q*n et a*b-q*n pour procéder à la vérification de 1 ' authentification, soit à la vérification de signature d'un message M, suite au calcul (référence 1) au niveau du prouveur d'une signature S = Sd(M) du message M et de la valeur de prévalidation q, envoi (référence 2) du vérifieur au prouveur de q, S et M, calcul (référence 3) au niveau du vérifieur des quantités a*b = S*S, q*n et a*b-q*n pour procéder à la vérification de signature.A more detailed description of the process which is the subject of the invention will be given in conjunction with FIG. 1 and the following figures. The method which is the subject of the invention implements, at the level of the verifying entity, public key algorithms requiring modulo n multiplications, or large numbers, and modifies them slightly by causing the calculation of one or more quotients q outside, that is to say at the level of the proving entity, and by providing this or these quotients to the verifier. Thus the verifier can more easily and quickly calculate certain modular multiplications: instead of calculating a * b modulo n, he will just have to calculate a * b, q * n, and a * bq * n, a, b denoting values signature verification or authentication calculations. Sometimes, for security purposes, it uses this last value in a way that will allow it to ensure that this last value is between 1 and n. When an algorithm is thus modified, by "precalculating" therefore certain quotients, which are supplied to the verifier in order to simplify the calculations executed by the latter, we speak of an "underlying" algorithm to designate the initial algorithm whose we left before making this change. Thus, with reference to FIG. 1, in accordance with a remarkable aspect of the method which is the subject of the present invention, the quotient (s) q, verifying the relationship q = a * b / n, constitute one or more prevalidation values transmitted to the verifying entity in order to allow the verifying entity to carry out at least one modular reduction in the absence of any division operation for this modular reduction. With reference to FIG. 1, it is indicated that the method which is the subject of the invention can be implemented either in verification of authentication, following the sending of an incentive value such as a hazard a (see reference 0 in the figure), internal calculation (reference 1) at the prover of a response value b = a d mod n, and of the prevalidation value q, transmission (reference 2) of b and q of prover to the verifier and calculation (reference 3) by the verifier of the quantities a * b, q * n and a * bq * n for proceed to verification of the authentication, ie verification of the signature of a message M, following the calculation (reference 1) at the level of the prover of a signature S = S d (M) of the message M and of the value prevalidation q, sending (reference 2) from the verifier to the prover of q, S and M, calculation (reference 3) at the level of the verifier of the quantities a * b = S * S, q * n and a * bq * n to proceed at signature verification.
Dans la figure 1 et les figures suivantes, une flèche droite représente la transmission des valeurs précitées entre vérifieur et prouveur ou réciproquement et une boucle fléchée au niveau du prouveur ou du vérifieur représente la mise en œuvre d'un calcul interne au niveau du prouveur ou du vérifieur. Enfin, dans la suite de la description, on désigne par réponse R soit la valeur calculée b par chiffrement de l'aléa a dans le cas d'une vérification d'authentification b = ad mod n, soit la valeur de signature S = Sd(M) suite à la mise en présence du vérifieur et du prouveur. Différents exemples de mise en œuvre du procédé objet de la présente invention seront maintenant décrits à partir des algorithmes sous-jacents, désignés par algorithmes RSA et algorithmes de Rabin. Algorithmes RSA et de Rabin sous-jacents L'algorithme RSA est le plus célèbre des algorithmes cryptographiques asymétriques. Il a été inventé par RIVEST, SHAMIR et ADLEMAN en 1978. On peut le trouver décrit dans : R.L. RIVEST, A. SHAMIR, L.M. ADLEMAN : A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, 21, n°2, 1978, pp. 120-126. ou dans les documents suivants : • ISO/IEC 9594-8/ITU-T X.509, Information Technology - Open Systems Interconnection - The Directory: Authentication Framework ;In FIG. 1 and the following figures, a right arrow represents the transmission of the aforementioned values between verifier and prover or vice versa and an arrow loop at the level of the prover or verifier represents the implementation of an internal calculation at the level of the prover or of the auditor. Finally, in the following description, the response R designates either the calculated value b by encryption of the hazard a in the case of an authentication verification b = a d mod n, or the signature value S = S d (M) following the presence of the verifier and the prover. Different examples of implementation of the method which is the subject of the present invention will now be described on the basis of the underlying algorithms, designated by RSA algorithms and Rabin algorithms. RSA and Rabin algorithms underlying The RSA algorithm is the most famous of the asymmetric cryptographic algorithms. It was invented by RIVEST, SHAMIR and ADLEMAN in 1978. It can be found described in: RL RIVEST, A. SHAMIR, LM ADLEMAN: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, 21, n ° 2, 1978, pp. 120-126. or in the following documents: • ISO / IEC 9594-8 / ITU-T X.509, Information Technology - Open Systems Interconnection - The Directory: Authentication Framework;
• ANSI X9.31-1, American National Standard, Public-Key Cryptography Using Réversible Algorithms for the• ANSI X9.31-1, American National Standard, Public-Key Cryptography Using Reversible Algorithms for the
Financial Services Industry, 1993. Ces documents sont introduits dans la présente description à titre de référence.Financial Services Industry, 1993. These documents are included in this description for reference.
L'algorithme RSA utilise un nombre entier n qui est le produit de deux grands nombres premiers p et r, et un nombre entier e, premier avec ppcm(p-l, r-1) , et tel que e ≠ ± 1 modulo ppcm (p-1, r-1) . Les entiers n et e constituent la clé publique. Le calcul en clé publique fait appel à la fonction α de Z/nZ dans Z/nZ définie par α(x)=xe mod n. Le calcul en clé secrète fait appel à la fonction α-1(y)=yd mod n, où d est l'exposant secret, appelé aussi " clé secrète " ou "clé privée ", défini par ed ≡ 1 mod ppcm (p-1, r-1) .The RSA algorithm uses an integer n which is the product of two large prime numbers p and r, and an integer e, prime with ppcm (pl, r-1), and such that e ≠ ± 1 modulo ppcm (p -1, r-1). The integers n and e constitute the public key. The calculation in public key calls upon the function α of Z / nZ in Z / nZ defined by α (x) = x e mod n. The calculation in secret key calls on the function α -1 (y) = y d mod n, where d is the secret exponent, also called "secret key" or "private key", defined by ed ≡ 1 mod ppcm ( p-1, r-1).
Notons n le modulo public RSA, notons d l'exposant secret RSA et notons e l'exposant public RSA.Let us denote the public RSA modulo, denote by the secret exponent RSA and denote by the public exponent RSA.
Dans le cas d'une vérification d'authentification, le vérifieur génère un nombre aléatoire A modulo n, et l'envoie au prouveur. Celui ci calcule alors B= Ad modulo n, et renvoie cette valeur B au vérifieur. Celui-ci accepte alors l' authentification si et seulement si: Be modulo n = A.In the case of an authentication verification, the verifier generates a random number A modulo n, and sends it to the prover. This one then calculates B = A d modulo n, and returns this value B to the verifier. The latter then accepts authentication if and only if: B e modulo n = A.
La plus petite valeur de e pour mettre en œuvre l'algorithme RSA est e = 3. Pour e = 2, on parle d' algorithme de Rabin ; celui-ci sera décrit ci-après dans la description. Cette valeur e = 3 est intéressante car elle permet au vérifieur de n'avoir à effectuer que deux multiplications modulaires. gThe smallest value of e to implement the RSA algorithm is e = 3. For e = 2, we speak of Rabin's algorithm; this will be described below in the description. This value e = 3 is interesting because it allows the verifier to have to carry out only two modular multiplications. g
L'algorithme de Rabin est en quelque sorte un algorithme RSA avec l'exposant public e = 2. En fait, lorsque e = 2, la fonction xe n'est pas bijective modulo n, lorsque n est le produit de deux nombres premiers > 2, on introduit donc des petites modifications dans l'utilisation de l'algorithme de Rabin par rapport au RSA.Rabin's algorithm is in a way an RSA algorithm with the public exponent e = 2. In fact, when e = 2, the function x e is not bijective modulo n, when n is the product of two prime numbers > 2, we therefore introduce small modifications in the use of the Rabin algorithm compared to the RSA.
On peut trouver une description de l'algorithme de Rabin dans : M.O. Rabin, Digitized Signatures and Public-Key Functions as intractable as Factorization, Technical Report LCS/TR- 212, M.I.T. Laboratory for Computer Science, 1979, introduit dans la présente demande de brevet à titre de référence. Exemples de mise en œuyre du procédé objet de l'invention à partir des algorithmes de Rabin et RSA Algorithme de RabinA description of the Rabin algorithm can be found in: MO Rabin, Digitized Signatures and Public-Key Functions as intractable as Factorization, Technical Report LCS / TR-212, MIT Laboratory for Computer Science, 1979, introduced in this application for patent for reference. Examples of implementation of the method which is the subject of the invention from the Rabin and RSA algorithms The Rabin algorithm
Le procédé, objet de la présente invention, sera tout d'abord décrit dans un mode de réalisation particulier non limitatif à partir de l'algorithme de Rabin, soit pour e = 2.The method which is the subject of the present invention will firstly be described in a particular nonlimiting embodiment from the Rabin algorithm, ie for e = 2.
** Vérification d'authentification** Authentication verification
Ainsi que représenté en figure 2a, un exemple possible d'utilisation de l'algorithme de Rabin en vérification d'authentification est maintenant décrit.As shown in FIG. 2a, a possible example of the use of the Rabin algorithm in authentication verification is now described.
Notons n le modulo public. Le vérifieur génère un nombre aléatoire A modulo n, et l'envoie, (référence 0 sur la figure), au prouveur. Celui-ci calcule alors un nombre B (référence 1), et renvoie cette valeur B au vérifieur. Celui-ci accepte alors l' authentification si et seulement si: B*B modulo n est égal à l'une des quatre valeurs possibles suivantes : A, ou n-A, ou C*A modulo n, ou -C*A modulo n. C est un nombre fixé par le protocole, C = 2 le plus souvent.Note n the public modulo. The verifier generates a random number A modulo n, and sends it, (reference 0 in the figure), to the prover. This then calculates a number B (reference 1), and returns this value B to the verifier. This then accepts authentication if and only if: B * B modulo n is equal to one of the following four possible values: A, or nA, or C * A modulo n, or -C * A modulo n. C is a number fixed by the protocol, C = 2 most often.
Pour simplifier le processus de vérification, conformément au procédé objet de la présente invention, le prouveur n'envoie pas, (référence 2), la valeur B seule : il envoie B et Q, où Q est le quotient de B*B par le modulo public n. Le vérifieur vérifie alors que DA = B*B - Q*n est bien égal à l'une des quatre valeurs suivantes : A, n-A, (C*A) modulo n, ou (-C*A) modulo n. De plus, il peut calculer (C*A) modulo n en calculant C*A, en gardant cette valeur si elle est < n, et en prenant la valeur C*A - n sinon. De même, il peut calculer (-C*A) modulo n en calculant n-C*A, en gardant cette valeur si elle est >= 0, et en prenant la valeur C*n - C*A sinon. Ainsi le vérifieur n'a plus aucune division à effectuer. ** Vérification de signatureTo simplify the verification process, in accordance with the method which is the subject of the present invention, the prover does not send (reference 2) the value B alone: it sends B and Q, where Q is the quotient of B * B by the public modulo n. The verifier then checks that D A = B * B - Q * n is indeed equal to one of the following four values: A, nA, (C * A) modulo n, or (-C * A) modulo n. Furthermore, it can calculate (C * A) modulo n by calculating C * A, keeping this value if it is <n, and taking the value C * A - n otherwise. Similarly, it can calculate (-C * A) modulo n by calculating nC * A, keeping this value if it is> = 0, and taking the value C * n - C * A otherwise. Thus the verifier no longer has any division to perform. ** Signature verification
Ainsi que représenté en figure 2b, et en conservant les mêmes notations que ci-dessus, on note M le message dont le vérifieur souhaite vérifier la signature S. La signature S est obtenue à partir de la clé privée d par S = Sd(M), Sd(M) désignant l'opération de calcul de signature du message M. Si S est une signature Rabin de M, alors le vérifieur vérifie normalement que S*S modulo n = f(M) ou n-f(M), ou (2*f(M) modulo n) ou (-2*f(M) modulo n) , où f est une fonction publique standardisée du message M. Par exemple f est la fonction identité, ou bien est décrite dans une norme de signature ; par exemple on peut utiliser les opérations de paddage ou concaténation de la norme PKCS#1, établie pour du RSA normalement, confer les éléments descriptifs de cette norme ci-après dans la description.As shown in FIG. 2b, and keeping the same notations as above, we denote M the message whose verifier wishes to verify the signature S. The signature S is obtained from the private key d by S = S d ( M), S d (M) designating the message signature calculation operation M. If S is a Rabin signature of M, then the verifier normally checks that S * S modulo n = f (M) or nf (M) , or (2 * f (M) modulo n) or (-2 * f (M) modulo n), where f is a standardized public function of the message M. For example f is the identity function, or else is described in a signature standard; for example one can use the operations of paddage or concatenation of the standard PKCS # 1, established for RSA normally, confer the descriptive elements of this standard below in the description.
En conservant les mêmes notations que ci-dessus, pour simplifier le processus de vérification de la signature, ainsi que représenté en figure 2b, dans le procédé objet de la présente invention, le prouveur n'envoie pas, (référence 2), la valeur S seule : il envoie S et Q, où Q est le quotient de S*S par le modulo public n. Le vérifieur vérifie alors que DSR = S*S - Q*n est bien égal à f (M) , ou n-f(M), ou C*f(M) modulo n, ou -C*f(M) modulo n, où C est un nombre fixé par le protocole, C pouvant être pris égal à 2. Comme ces deux dernières valeurs peuvent être calculées modulo n en effectuant zéro ou une soustraction par n, le vérifieur n'a plus aucune division à calculer. Algorithme RSAKeeping the same notations as above, to simplify the verification process of the signature, as shown in FIG. 2b, in the method which is the subject of the present invention, the prover does not send (reference 2) the value S only: it sends S and Q, where Q is the quotient of S * S by the public module n. The verifier then checks that D SR = S * S - Q * n is indeed equal to f (M), or nf (M), or C * f (M) modulo n, or -C * f (M) modulo n , where C is a number fixed by the protocol, C being able to be taken equal to 2. As these last two values can be calculated modulo n by carrying out zero or a subtraction by n, the checker does not have any more any division to calculate. RSA algorithm
Le procédé, objet de la présente invention, sera maintenant décrit dans un mode de réalisation particulier non limitatif à partir de l'algorithme RSA, soit pour e = 3. Vérification d'authentificationThe method, object of the present invention, will now be described in a particular nonlimiting embodiment from the RSA algorithm, ie for e = 3. Authentication verification
Ainsi que représenté en figure 3a, à partir d'un aléa A, pour simplifier le processus de vérification, dans la présente invention le prouveur n'envoie pas, (référence 2) , la valeur B seule : il envoie B, Ql et Q2, où Ql est le quotient de B*B par le modulo public n, et où Q2 est le quotient de B* ( B*B - Ql*n) par n. Le vérifieur vérifiera alors que DARSA = B* (B*B - Ql*n) -Q2*n est bien égal à A. Ainsi le vérifieur n'a plus aucune division à effectuer. ** Vérification de signatureAs shown in Figure 3a, from a hazard A, to simplify the verification process, in the present invention the prover does not send (reference 2) the value B alone: it sends B, Ql and Q2 , where Ql is the quotient of B * B by the public modulo n, and where Q2 is the quotient of B * (B * B - Ql * n) by n. The verifier will then verify that D ARSA = B * (B * B - Ql * n) -Q2 * n is indeed equal to A. Thus the verifier no longer has any division to perform. ** Signature verification
En conservant les mêmes notations que ci-dessus et en notant M le message dont le vérifieur souhaite vérifier la signature S, S est une signature RSA de M, alors le vérifieur vérifie normalement que Se modulo n = f(M), où f est une fonction publique standardisée du message M. Par exemple f est la fonction identité, ou bien est décrite dans une norme de signature RSA, comme par exemple la norme PKCS#1. La fonction publique normalisée peut consister à appliquer au message M une fonction de condensation SHA-1 pour obtenir un condensé de message CM, puis à concaténer à ce condensé de message une valeur constante.By keeping the same notations as above and by noting M the message for which the verifier wishes to verify the signature S, S is an RSA signature of M, then the verifier normally verifies that S e modulo n = f (M), where f is a standardized public function of the message M. For example f is the identity function, or else is described in an RSA signature standard, such as for example the PKCS # 1 standard. The normalized public service can consist in applying to the message M a function of condensation SHA-1 to obtain a digest of message CM, then in concatenating with this digest of message a constant value.
Ainsi que représenté en figure 3b, et en conservant les mêmes notations que ci-dessus, pour simplifier le processus de vérification de la signature, dans le procédé, objet de la présente invention, le prouveur n'envoie pas, (référence 2), la valeur S seule : il envoie S, Ql et Q2, où Ql est le quotient de S*S par le modulo public n, et où Q2 est le quotient de S* ( S*S - Ql*n) par n. Le vérifieur vérifiera alors que DSRSA = S* (S*S - Ql*n) -Q2*n est bien égal à f (M) . Ainsi le vérifieur n'a plus aucune division à effectuer.As shown in FIG. 3b, and keeping the same notations as above, to simplify the signature verification process, in the method which is the subject of the present invention, the prover does not send (reference 2), the value S only: it sends S, Ql and Q2, where Ql is the quotient of S * S by the public modulo n, and where Q2 is the quotient of S * (S * S - Ql * n) by n. The verifier will then verify that D SR S A = S * (S * S - Ql * n) -Q2 * n is indeed equal to f (M). Thus the verifier no longer has any division to perform.
La fonction de condensation SHA-1 est une fonction publique de " condensation" . Elle prend en entrée un message dont la taille peut aller de 0 octets à plusieurs Giga octets, et donne en sortie un " condensé" du message de 160 bits. Cette fonction est souvent utilisée dans des normes ou avec des algorithmes de signature, car elle est réputée être résistante aux collisions, c'est-à-dire que l'on ne sait pas trouver concrètement deux messages distincts qui ont le même condensé (il en existe mais on ne sait pas comment trouver un tel couple de messages) . Ceci permet de signer le condensé des messages plutôt que les messages eux-mêmes.The SHA-1 condensing function is a public "condensing" function. It takes as input a message whose size can range from 0 bytes to several Giga bytes, and gives as output a "digest" of the 160 bit message. This function is often used in standards or with signature algorithms, because it is reputed to be resistant to collisions, that is to say that we cannot concretely find two distinct messages which have the same digest (it exist but we do not know how to find such a couple of messages). This allows you to sign the digest of messages rather than the messages themselves.
La norme PKCS#1 est une norme de signature RSA. Elle décrit une fonction publique f. Cette fonction f est appliquée sur le message M à signer avec RSA avant de lancer l'opération d'exponentiation modulaire RSA proprement dite : la signature RSA de M sera doncThe PKCS # 1 standard is an RSA signing standard. It describes a public service f. This function f is applied to the message M to be signed with RSA before launching the RSA modular exponentiation operation proper: the RSA signature of M will therefore
S = (f(M))d modulo n, où n est le modulo public RSA et où d est l'exposant secret RSA. f utilise une fonction de condensation (par exemple SHA-1) suivie d'un paddage, ou concaténation, avec une constante.S = (f (M)) d modulo n, where n is the public modulo RSA and where d is the RSA secret exponent. f uses a condensation function (for example SHA-1) followed by paddling, or concatenation, with a constant.
Pour une description plus détaillée, on peut consulter :For a more detailed description, you can consult:
PKCS#1, RSA Encryption Standard, version 2, 1998, disponible à l'adresse suivante : ftp://ftp.rsa.com/pub/pkcs/doc/pkcs-lv2.doc dont la version éditée est introduite dans la présente demande à titre de référence.PKCS # 1, RSA Encryption Standard, version 2, 1998, available at the following address: ftp://ftp.rsa.com/pub/pkcs/doc/pkcs-lv2.doc whose edited version is introduced herein ask for reference.
L'invention consiste ainsi à fournir des données supplémentaires au vérifieur afin de lui faciliter les calculs. Pour précalculer ces données, ici des quotients constituant la ou les valeurs de pré-validation, on n'a pas besoin d'utiliser la clé secrète de l'algorithme. Cela signifie que ces données sont complètement redondantes par rapport aux valeurs transmises à la carte dans une utilisation " classique" de l'algorithme asymétrique. En fait, dans la version "classique", la carte sait retrouver elle-même ces quotients. Il n'y a donc aucune information supplémentaire fournie à la carte, au sens de la théorie de l'information, lorsqu'on met en œuvre le procédé, objet de la présente invention tel que décrit précédemment. Cela montre que la sécurité de l'ensemble n'est en rien affaiblie par rapport à la mise en œuvre " classique" de l' algorithme. The invention thus consists in providing additional data to the verifier in order to facilitate the calculations. To precalculate this data, here quotients constituting the pre-validation value (s), there is no need to use the secret key of the algorithm. This means that these data are completely redundant compared to the values transmitted to the card in a "classic" use of the asymmetric algorithm. In fact, in the "classic" version, the card can find these quotients itself. There is therefore no additional information supplied to the card, within the meaning of information theory, when the method, object of the present invention as described above, is implemented. This shows that the security of the whole is in no way weakened compared to the "classic" implementation of the algorithm.

Claims

REVENDICATIONS
1. Procédé de vérification de signature, respectivement d'authentification, au moyen d'un processus de calcul cryptographique asymétrique à clé privée et à clé publique, entre une entité "prouveur" et une entité "vérifieur", l'entité prouveur effectuant des calculs cryptographiques à partir de ladite clé privée en vue d'effectuer un calcul de signature, respectivement d'une valeur d'authentification, constituant une valeur de réponse et l'entité vérifieur, à partir de cette valeur de réponse, effectuant des calculs cryptographiques à partir de ladite clé publique en vue de procéder à cette vérification de signature, respectivement cette authentification, les opérations de calcul cryptographique mettant en œuvre le calcul de multiplications modulo n ou des grands nombres, caractérisé en ce que pour un processus de calcul cryptographique mettant en œuvre une clé publique, comprenant un exposant public e et un modulo public n, et une clé privée comprenant un exposant privé, celui-ci comprend les étapes suivantes :1. Method for verifying a signature, respectively an authentication, by means of an asymmetric cryptographic calculation process with a private key and a public key, between a "proving" entity and a "verifying" entity, the proving entity performing cryptographic calculations from said private key in order to perform a signature calculation, respectively of an authentication value, constituting a response value and the verifying entity, from this response value, performing cryptographic calculations from said public key with a view to carrying out this signature verification, respectively this authentication, the cryptographic calculation operations implementing the calculation of modulo n multiplications or large numbers, characterized in that for a cryptographic calculation process putting implement a public key, comprising a public exponent e and a public module n, and a private key comprising a private exhibitor, this includes the following stages:
- calculer au niveau de ladite entité prouveur au moins une valeur de pré-validation ; transmettre de l'entité prouveur à l'entité vérifieur ladite au moins une valeur de pré-validation, cette valeur de pré-validation permettant à l'entité vérifieur d'effectuer au moins une réduction modulaire en l'absence de toute opération de division pour cette réduction modulaire.- calculate at the level of said proving entity at least one pre-validation value; transmit from the proving entity to the verifying entity said at least one pre-validation value, this pre-validation value allowing the verifying entity to carry out at least a modular reduction in the absence of any division operation for this modular reduction.
2. Procédé selon la revendication 1, caractérisé en ce que pour un exposant public e=2, le processus de calcul cryptographique étant basé sur un algorithme de RABIN, ladite au moins une valeur de pré-validation comprend une valeur unique, quotient Q du carré de ladite valeur de signature, respectivement de réponse ,par ledit modulo public n, Q = R*R/n, où R désigne ladite valeur de signature, respectivement de réponse, à une authentification. 2. Method according to claim 1, characterized in that for a public exponent e = 2, the cryptographic calculation process being based on a RABIN algorithm, said at least one pre-validation value comprises a single value, quotient Q of square of said signature value, respectively of response, by said public module n, Q = R * R / n, where R designates said signature value, respectively of response, to an authentication.
3. Procédé selon la revendication 2, caractérisé en ce que suite à la réception par ladite entité vérifieur de ladite valeur de réponse à une vérification d'authentification respectivement de signature d'un message (M) et de ladite au moins une valeur de pré- validation, comprenant ledit quotient, ce procédé comprend, au niveau de ladite entité vérifieur, les étapes suivantes :3. Method according to claim 2, characterized in that following the reception by said verifying entity of said response value to an authentication verification respectively of signature of a message (M) and of said at least one pre value - validation, comprising said quotient, this process comprises, at the level of said checking entity, the following steps:
- calculer la différence (DAR, DSR) entre le carré de la valeur de réponse R*R et le produit Q*n dudit quotient Q par ledit modulo public n, - calculate the difference (D AR , D SR ) between the square of the response value R * R and the product Q * n of said quotient Q by said public modulo n,
- vérifier l'égalité de ladite différence avec la valeur d'une fonction de cette valeur de réponse, en l'absence de toute opération de division par l'opération modulo n.- check the equality of said difference with the value of a function of this response value, in the absence of any division operation by the modulo n operation.
4. Procédé selon la revendication 1, caractérisé en ce que pour un exposant public e = 3, le processus de calcul cryptographique étant basé sur un algorithme RSA, ladite au moins une valeur de pré-validation comprend : - un premier quotient Qi du carré R*R de ladite valeur de réponse R par ledit modulo public n ;4. Method according to claim 1, characterized in that for a public exponent e = 3, the cryptographic calculation process being based on an RSA algorithm, said at least one pre-validation value comprises: - a first quotient Qi of the square R * R of said response value R by said public modulo n;
- un deuxième quotient Q2 du produit de ladite valeur de réponse et de la différence entre le carré R*R de cette valeur de réponse et du produit dudit premier quotient Qi et du modulo public n, par ledit modulo public n, Q2 = R* (R*R - Qι*n)/n.- a second quotient Q 2 of the product of said response value and of the difference between the square R * R of this response value and of the product of said first quotient Qi and the public modulo n, by said public modulo n, Q 2 = R * (R * R - Qι * n) / n.
5. Procédé selon la revendication 4, caractérisé en ce que suite à la réception de ladite valeur de réponse R et de ladite au moins une valeur de pré-validation comprenant lesdits premier et deuxième quotients Qi, Q2, ledit procédé comprend, au niveau de ladite entité vérifieur, les étapes suivantes : - calculer la différence (DARSA, DSRSA) entre le produit de ladite valeur de réponse R et de la différence entre le carré R*R de cette valeur de réponse et le produit dudit premier quotient Qi et du modulo public n et le produit dudit deuxième quotient Q2 et dudit modulo public n, (DARSA, DSRSA) = R* (R*R - Qι*n) -Q2*n ;5. Method according to claim 4, characterized in that following the reception of said response value R and of said at least one pre-validation value comprising said first and second quotients Qi, Q 2 , said method comprises, at the level of said checking entity, the following steps: - calculating the difference (D ARSA , D SR S A ) between the product of said response value R and the difference between the square R * R of this response value and the product of said first quotient Qi and the public modul n and the product of said second quotient Q 2 and said public modul n , (D ARSA , D SRS A) = R * (R * R - Qι * n) -Q 2 * n;
- vérifier l'égalité de cette différence avec la valeur d'une fonction de ladite valeur de réponse, en l'absence de toute opération de division par opération modulo n. - check the equality of this difference with the value of a function of said response value, in the absence of any division operation by modulo n operation.
6. Procédé selon la revendication 3 ou 5, caractérisé en ce que pour une opération de vérification de signature d'un message (M), ladite fonction comprenant une fonction publique normalisée f (M) de ce message M, il comprend les étapes suivantes : - appliquer à ce message une fonction de condensation pour obtenir un condensé de message CM ;6. Method according to claim 3 or 5, characterized in that for a signature verification operation of a message (M), said function comprising a normalized public function f (M) of this message M, it comprises the following steps : - apply a condensation function to this message to obtain a digest of message CM;
- concaténer à ce condensé de message une valeur constante.- concatenate to this message digest a constant value.
7. Procédé selon l'une des revendications 3 ou 5, caractérisé en ce que, pour une opération de vérification d'authentification, ce procédé comprend en outre l'étape de transmission de l'entité vérifieur à l'entité prouveur d'une valeur d'incitation.7. Method according to one of claims 3 or 5, characterized in that, for an authentication verification operation, this method further comprises the step of transmitting the verifying entity to the proving entity of a incentive value.
8. Procédé selon la revendication 7, caractérisé en ce que ladite valeur d'incitation comprend une valeur aléatoire A modulo n, ladite valeur de réponse R comprend une valeur chiffrée B, et ladite fonction de la valeur de réponse comprend une fonction f (A) de ladite valeur aléatoire A.8. Method according to claim 7, characterized in that said incentive value comprises a random value A modulo n, said response value R comprises an encrypted value B, and said function of the value of response includes a function f (A) of said random value A.
9. Procédé selon l'une des revendications 3 et 7, caractérisé en ce que ladite fonction f (A) de ladite valeur aléatoire A comprend une fonction parmi les fonctions f (A) = A, f (A) = n-A, f (A) = C*A modulo n, f (A) = -C*A modulo n.9. Method according to one of claims 3 and 7, characterized in that said function f (A) of said random value A comprises a function from among the functions f (A) = A, f (A) = nA, f ( A) = C * A modulo n, f (A) = -C * A modulo n.
10. Procédé selon la revendication 9, caractérisé en ce que, au niveau de l'entité vérifieur, le calcul de ladite fonction f (A) = C*A modulo n comprend le calcul de la valeur C*A et la mémorisation de cette valeur si C*A < n, et le calcul et la mémorisation de la valeur C*A- n sinon, et en ce que le calcul de ladite fonction f (A) = -C*A modulo n comprend le calcul de la valeur n-C*A et la mémorisation de cette valeur si n-C*A ≥ 0, et sinon le calcul de la valeur intermédiaire C*n-C*A, et, si cette valeur intermédiaire est supérieure ou égale à zéro, le calcul et la mémorisation de la valeur de C*n-C*a comme valeur affectée à la valeur de -C*A modulo n, ce qui permet de vérifier l'égalité de ladite authentification en l'absence de toute division pour la réduction modulaire.10. Method according to claim 9, characterized in that, at the level of the verifying entity, the calculation of said function f (A) = C * A modulo n comprises the calculation of the value C * A and the storage of this value if C * A <n, and the calculation and storage of the value C * A- n otherwise, and in that the calculation of said function f (A) = -C * A modulo n includes the calculation of the value nC * A and the storage of this value if nC * A ≥ 0, and otherwise the calculation of the intermediate value C * nC * A, and, if this intermediate value is greater than or equal to zero, the calculation and storage of the value of C * nC * has the value assigned to the value of -C * A modulo n, which makes it possible to verify the equality of said authentication in the absence of any division for modular reduction.
11. Procédé selon les revendications 5 et 8, caractérisé en ce que ladite fonction f (A) de ladite valeur aléatoire A est la fonction f (A) = A, ce qui permet de vérifier l'égalité de ladite différence et la validité de ladite authentification, en l'absence d'opération de division pour la réduction modulaire.11. Method according to claims 5 and 8, characterized in that said function f (A) of said random value A is the function f (A) = A, which makes it possible to verify the equality of said difference and the validity of said authentication, in the absence of a division operation for modular reduction.
12. Procédé selon la revendication 1, caractérisé en ce que ladite valeur de réponse, valeur chiffrée B, et ladite valeur de quotient Q sont concaténées préalablement à leur transmission de l'entité prouveur à l'entité vérifieur. 12. Method according to claim 1, characterized in that said response value, encrypted value B, and said quotient value Q are concatenated before their transmission from the proving entity to the verifying entity.
13. Utilisation du procédé selon la revendication 1, l'entité vérifieur comprenant un système embarqué tel qu'une carte à microprocesseur et l'entité prouveur un système lecteur de système embarqué. 13. Use of the method according to claim 1, the verifying entity comprising an on-board system such as a microprocessor card and the proving entity an on-board system reader system.
EP00922700A 1999-04-20 2000-04-20 Signature verification and authentication method Withdrawn EP1090479A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9904975 1999-04-20
FR9904975A FR2792789B1 (en) 1999-04-20 1999-04-20 SIGNATURE VERIFICATION OR AUTHENTICATION PROCESS
PCT/FR2000/001047 WO2000064097A1 (en) 1999-04-20 2000-04-20 Signature verification and authentication method

Publications (1)

Publication Number Publication Date
EP1090479A1 true EP1090479A1 (en) 2001-04-11

Family

ID=9544643

Family Applications (1)

Application Number Title Priority Date Filing Date
EP00922700A Withdrawn EP1090479A1 (en) 1999-04-20 2000-04-20 Signature verification and authentication method

Country Status (6)

Country Link
EP (1) EP1090479A1 (en)
JP (1) JP2002542716A (en)
CN (1) CN1306713A (en)
BR (1) BR0006073A (en)
FR (1) FR2792789B1 (en)
WO (1) WO2000064097A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7440571B2 (en) * 2002-12-03 2008-10-21 Nagravision S.A. Method for securing software updates
FR2877453A1 (en) * 2004-11-04 2006-05-05 France Telecom SECURE DELEGATION METHOD OF CALCULATING A BILINE APPLICATION

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2671649B2 (en) * 1991-07-08 1997-10-29 三菱電機株式会社 Authentication method
FR2745399B1 (en) * 1996-02-26 1998-04-10 Arditti David ELECTRONIC DEVICE PROVIDING A SURE TIME REFERENCE FOR THE PROTECTION OF SOFTWARE

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO0064097A1 *

Also Published As

Publication number Publication date
WO2000064097A1 (en) 2000-10-26
CN1306713A (en) 2001-08-01
FR2792789A1 (en) 2000-10-27
BR0006073A (en) 2001-03-20
JP2002542716A (en) 2002-12-10
FR2792789B1 (en) 2001-08-31

Similar Documents

Publication Publication Date Title
EP3506556B1 (en) Method of authenticated key exchange via blockchain
EP2345202B1 (en) Digital signature method in two steps
FR2759226A1 (en) PROTOCOL FOR VERIFYING A DIGITAL SIGNATURE
WO2003056750A2 (en) Cryptographic system for group signature
EP1807967B1 (en) Method for secure delegation of calculation of a bilinear application
EP2891268B1 (en) Group signature using a pseudonym
EP0878934B1 (en) Public key identification method using two hash functions
FR3015080A1 (en) INTEGRITY VERIFICATION OF PAIR OF CRYPTOGRAPHIC KEYS
WO2006070092A1 (en) Data processing method and related device
EP1145483B1 (en) Authenticating or signature method with reduced computations
EP0963638B1 (en) Digital signature method
WO2001028153A1 (en) Countermeasure method in an electronic component which uses an rsa-type public key cryptographic algorithm
CA2257907A1 (en) Public key cryptography method
EP1456998A1 (en) Cryptographic method for distributing load among several entities and devices therefor
EP1090479A1 (en) Signature verification and authentication method
EP0769768B1 (en) Cryptographic method to protect against fraud
EP1520370B1 (en) Cryptographic method and devices for facilitating calculations during transactions
EP1820297A1 (en) Method of generating a signature with proof of tight security, associated verification method and associated signature scheme that are based on the diffie-hellman model
EP1407575B1 (en) Procede pour effectuer une tache cryptographique au moyen d&#39;une cle publique.
EP2587716A1 (en) Method for cryptographic signing of messages, signature verification method and corresponding signing and verification devices
EP1344343B1 (en) Encryption and identification method
WO2003013053A1 (en) Method for determining the size of a random variable for an electronic signature schema
FR2814616A1 (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.
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
FR2842968A1 (en) Cryptography signature method for use with RSA public key algorithms involves generation of a public key from two very large numbers and an encryption exponent and a private key based on a decryption exponent

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

17P Request for examination filed

Effective date: 20010426

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: CP8 TECHNOLOGIES

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20070503