EP0766894A1 - Process for generating electronic signatures, in particular for smart cards - Google Patents

Process for generating electronic signatures, in particular for smart cards

Info

Publication number
EP0766894A1
EP0766894A1 EP96915071A EP96915071A EP0766894A1 EP 0766894 A1 EP0766894 A1 EP 0766894A1 EP 96915071 A EP96915071 A EP 96915071A EP 96915071 A EP96915071 A EP 96915071A EP 0766894 A1 EP0766894 A1 EP 0766894A1
Authority
EP
European Patent Office
Prior art keywords
signature
card
coupon
verification
calculation
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
EP96915071A
Other languages
German (de)
French (fr)
Inventor
David Naccache
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.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus 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
Priority claimed from FR9504753A external-priority patent/FR2733378B3/en
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Publication of EP0766894A1 publication Critical patent/EP0766894A1/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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the invention relates to a method for generating digital signatures of electronic messages.
  • the method is particularly applicable to the signing of messages by portable devices of the microprocessor chip card type.
  • this involves signing messages sent by the card to a reading terminal or to a central authority; or again, it involves making a transaction (electronic check) and signing this transaction so that it can be authenticated first by the reading terminal in which the transaction is made, then by a central authority which manages the transactions.
  • the object of the invention is to modify known methods, in particular to make them adaptable to microprocessor cards which do not have sufficient hardware resources (processor, memories) to quickly carry out mathematical operations on large numbers.
  • Known algorithms notably the DSA algorithm, use large numbers to generate the signatures with a sufficient degree of security. To better understand the invention, we will first recall what the DSA algorithm is.
  • a DSA signature consists of a pair ⁇ r, s ⁇ of large numbers represented in the computers by long strings of binary digits (160 digits).
  • the digital signature is calculated using a series of calculation rules, defined by the algorithm, and a set of parameters used in these calculations.
  • the signature allows both to certify the identity of the signatory (because it involves a secret key specific to the signatory) and the integrity of the signed message (because it involves the message itself).
  • the algorithm allows on the one hand to generate signatures, and on the other hand to verify signatures.
  • DSA signature generation involves a secret key.
  • the verification involves a public key which corresponds to the secret key but is not identical to it.
  • Each user has a pair of keys (secret, public). Public keys can be known to everyone, while secret keys are never revealed.
  • Secret public
  • Public keys can be known to everyone, while secret keys are never revealed.
  • anyone has the ability to verify a user's signature using their public key, but only the owner of the secret key can generate a signature corresponding to the key pair.
  • the parameters of the DSA algorithm are as follows:
  • the integers p, q, and g are system parameters that can be published and / or shared by a group of users.
  • the keys, secret and public, of a signatory are respectively x and y.
  • the parameter k, random, must be regenerated for each new signature.
  • the parameters x and k are used for the generation of signatures and must be kept secret.
  • the signatory calculates the signature ⁇ r, s ⁇ by:
  • the signature ⁇ r, s ⁇ is sent to the verifier.
  • the verifier is generally the terminal in which the smart card which sends the message m and the signature ⁇ r, s ⁇ is inserted.
  • this value [g ul .y u2 mod p] mod q is precisely equal to r if its the value (m + xr) / s mod q. Consequently, the terminal receives r and s and verifies that v is indeed equal to r to accept the signature, or to reject it otherwise.
  • the terms signatory or signatory body, or proving device, or smart card will be used interchangeably to designate the device which emits the signature and which will generally be a smart card.
  • verifier or verifier body or verifier device, or verifier terminal, or even control authority, to designate the device that receives the signature and verifies it to accept or reject a transaction or a message.
  • the simplest application of the invention is the issuance of a signature by a smart card to a reading terminal in which the card is inserted, the terminal performing the verification function and being connected or not to an authority central management.
  • One of the aims of the present invention is to increase the security of generation and verification of digital electronic signatures, by minimizing the computing and memory means which must be present in the smart card to produce the signatures.
  • the invention proposes that the verification by a verifier (terminal) of the signature sent by the signatory (card) uses a step of timing the duration elapsing between an instant when a datum (in principle random ) is sent by the verifier to the signatory (card) and the moment when the signature (using this random data) returns to the verifier. If the elapsed time is too long, this means that the signature calculation processing by the signatory is abnormal and the signature is rejected even if its authenticity is confirmed by the verifier.
  • this solution allows, as we will see, to keep the same signature security while using low hardware resources (computing power and memories) in the smart card. Low resources lead to the need to modify the procedures for generating and verifying signatures, but this is to the detriment of security.
  • the timing step according to the invention restores a sufficient level of security.
  • the first aspect of the invention consists in an electronic signature process, comprising the generation of a digital signature by a signatory body which calculates this signature using random data sent by a verifier body, and the verification of the signature by verifier which verifies whether a mathematical condition involving the signature sent and the random datum is fulfilled, this method being characterized in that the verification of the signature sent by the signatory to the verifier also uses a step of timing the elapsed time between an instant when the random data is sent by the verifier to the signatory and the instant when the signature using this data returns to the verifier after calculation by the signatory, the signature being accepted if the elapsed time is less than a determined threshold and if the mathematical condition is verified.
  • the function f is chosen to be sufficiently complex so that the duration of the search for a value s from this equality in the absence of knowledge of the secret key is much greater, even if it is done by a powerful computer, at the time of calculation and transmission by the card of the value s from r and the secret key, and this even if the card uses a not very powerful microprocessor (microprocessor of 8 bits at 20 MHz for example ).
  • microprocessor microprocessor of 8 bits at 20 MHz for example.
  • the function f comprises mathematical calculations followed by a complex hash function.
  • the first part of signature r is established by other mathematical calculations, followed by the same complex hash function.
  • This complex hash function is preferably, as will be explained below, a complex compression function resulting in a reduction in the length of the bit strings obtained by the mathematical calculations carried out.
  • a hash function is a logical processing function of binary strings, which makes it possible to obtain a character string of determined length from another character string of the same length or of different length.
  • a complex hash function can be obtained by successive hashes and / or mathematical calculations involving the results of several hashes. Compression can be obtained at the end by taking as a result a modular value, modulo 2 e , where e is the length of the chain finally desired.
  • a new solution is proposed for processing smaller numbers in the smart card, in digital signature algorithms of the kind in which the signature involves two numbers, r and s , only the number s involving the secret key of the card and the message to be sent.
  • This second aspect of the invention is an improvement to a method for generating signatures which has been described in French patent application 93 14466.
  • DSA is an example
  • the number r depends neither on the message m sent by the card, nor on the secret key contained in the card. It only depends on fixed numbers for the application considered, and on random numbers; for example, these numbers are g, p, q and k in the DSA algorithm. It is therefore useless to have r calculated by the card, because this consumes a significant computation time. Rather, a series of n possible r values, denoted r ⁇ , is calculated in advance by a certified central authority, i being an index ranging from 1 to n.
  • the numbers r ⁇ are precalculated certificates, also called "signature coupons". They are only part of the signature to be sent, and they can be prepared and stored in advance on the card.
  • the index i represents the coupon index used during a given signature.
  • the invention described here makes it possible to reconcile the concern for a guarantee of authenticity with the use of smaller rj_ signature coupons.
  • the signature generation involves the sending of a coupon r ⁇ and a signature complement s calculated from at least r and x, d.
  • the signature verification algorithm includes a mathematical calculation followed by the same function complex compression than that used to prepare the coupon, and the result is compared to the coupon for signature verification.
  • the compression function is preferably a complex hash function which requires a fairly long computation time. This gives significant security to the signature generation and verification process. We therefore combine the advantage of a good guarantee of authenticity of signature with the possibility of saving only small coupons in the card, therefore the possibility of saving a lot. If, in addition, we use the timing mentioned above, we can see that the guarantee of authenticity can be strengthened to a very high degree.
  • the signature calculation of course involves the message m that we want to sign, to guarantee not only the authenticity of the signature but also the integrity of the transmitted message.
  • the formula for calculating the coupon ri is preferably established from a hazard J generated at the start by the card and stored in the card to be reused when the coupon is used for the establishment of a signature.
  • the verifying terminal sends a random a to the card and then starts the timer; it is also expected that the establishment of the signature complement necessarily uses this hazard a and that signature verification also requires this hazard a.
  • the signature complement s is preferably established by a calculation involving a hash function SHA (m, a) of the message and of this hazard a, the same hash function being used for signature verification.
  • the additional signature s is preferably established by a calculation involving a hazard J stored in the card and having served to establish the signature coupon. More preferably, this calculation of s involves a hash function SHA (x, J, i) relating to this hazard J and to an index i representing the number of the coupon used, this same hash function having been previously used during of the long binary chain calculation provided for in the calculation of the corresponding coupon.
  • This hashing function preferably also involves the secret key x of the card.
  • the additional signature s is preferably established by a calculation involving a hash function of the coupon SHA (ri), the same hash function
  • a method for generating digital signatures of messages by a signatory device and for verifying these signatures by a verifier device, the signatory device comprising means of calculation, communication and data retention comprising at least one electrically programmable non-volatile memory, according to which encrypted data are prepared constituting signature coupons ri which are loaded into the non-volatile memory and which the signatory device uses to sign messages, mainly characterized in that: the coupons are compressed by application of a compression function, also called hash function, by a certified authority before being loaded into the memory, and in that it comprises the following exchanges: - a message m is transmitted and this message must be certified by a signature; the signatory sends a laughed coupon to the verifier, - the verifier sends a random number a to the signatory and starts a stopwatch, the signatory calculates the signature s of the message and sends it to the verifier,
  • a compression function also called hash function
  • FIG. 1 describes the flowchart of a card implementing the proposed system by the present invention
  • FIG. 2 describes the data transmitted between the card and the terminal when the coupon is used
  • FIG. 3 describes the flow diagram of a terminal implementing the system proposed by the present invention
  • FIG. 4 shows the data transmitted between the card and the authority during the loading coupons and organizing the memory of a card after loading n coupons.
  • the main advantage of signature coupons precalculated according to the method of the invention lies in the speed of calculation of a signature by a card based on a simple 8-bit microcontroller and the low memory occupancy of stored coupons.
  • the signature calculation can be done in approximately 300 ms, transmission time included, and each coupon can use from two to four bytes of EPROM or EEPROM memory.
  • the signature generation process breaks down into two distinct phases: the loading of the coupons by the authority that issued the card, then the use of these coupons by the card, facing a terminal that does not know the secret x from the menu.
  • a hash function of a number represented by a string of bits, consists in the production of another string of bits of determined length, length which is or is not the same as that of the starting string, and this starting from logical functions executed on groups of bits of the starting chain.
  • Simple hash functions are used, noted SHA (ch) for hashing a string ch.
  • These functions can be conventional hash functions, such as those published in the recent American standard SHA (Secure Hash Algorithm - FIPS PUB XX, from February 1, 1993, in "Digital Signature Standard”).
  • These functions can be the MDA or MD5 function or a hash based on the DES (Data Encryption Standard) algorithm.
  • Other functions, called complex hashing will also be used. Their characteristic used here is not so much to be a hash function as to be a slowing function imposed during certain signal processing, and also to be a compression function reducing the length of the signature coupons that we want to save in the smart card.
  • H (ch) This slowing and compression function is denoted below H (ch) for the processing of a chain ch. All kinds of deceleration and compression functions could be used in the invention.
  • H (ch) SHA [SHA ⁇ SHA (ch) ⁇ S ch) mod p] mod 2 e , where e is the desired length for the coupons, for example 16 to 40 bits or a few bytes.
  • H H (g x mod p); H is the function of deceleration and compression.
  • the card calculates for each i the value SHA (x, J, i) and sends it to the control authority; this calculates the numbers ⁇ ⁇ .
  • the authority sends the ri numbers to the card which stores them in memory, keeping the link with the reference i.
  • the ki numbers are not kept.
  • ki represents the random number k, modified with each new signature. But instead of being issued by the verifying terminal at the time of a signature, it will be recalculated at the appropriate time by the card. As it depends on i and that an index coupon i is used only once, ki is renewed each time.
  • the following protocol is used after transmission of the message m (preferably in the form of a hashed function of the real message, according to a hash function known to the terminal receiving the message):
  • the card - extracts state i from the counter
  • the terminal then generates a hazard a, to trigger the generation of the second signature part s; this sending constitutes in a way the launching of an à la carte challenge because the verifying terminal simultaneously starts a stopwatch to measure the response time of the card to this challenge.
  • This formula involves the coupon ri, the secret x of the card, the message m sent, the number ki, and the hazard sent by the verifier as a challenge.
  • SHA (ri) is preferably used rather than r to use a coupon value in the form of a longer chain than ri which is a very short chain. This enhances security. But of course, if we use xSHA (ri) instead of xri and SHA (m, a) instead of m, the verification formula must take this into account, and we will see later that this is what is done. Other variants of signature calculation can be provided, provided that the verification formula takes this into account.
  • the terminal stops the stopwatch and performs the calculations for verifying the authenticity of the signature. If the signature has been correctly calculated according to the above formula, then we can verify that we must have the following equality:
  • the checker has ri, s, q, p, g, m, a, the simple hash function SHA, and the deceleration and compression function H. It therefore checks the equality ci -above.
  • the signature is accepted by the verifier. If one of the two conditions is not met, it is not accepted.
  • the invention is applicable to the signature of electronic checks and then makes it possible to make such checks with smart cards at low cost (resulting from the use of an 8-bit microprocessor and a non-volatile memory of limited size. ).
  • the message m can represent a transaction carried out by the card with the terminal which is for example the payment terminal of a merchant.
  • This message is signed.
  • the terminal checks the signature to accept the message, therefore the transaction, but this terminal is also connected to a central management authority (a bank for example) which must itself be able to check the message and the authenticity of the signature before debit the signatory's account on the one hand and / or credit the merchant's account on the other.
  • a central management authority a bank for example
  • each smart card consists of a processing unit (CPU) 11, a communication interface 10, a random access memory 13 (RAM) and / or a non-writable memory (ROM) 14 and / or a writable or rewritable non-volatile memory (EPROM OR EEPROM) 15.
  • CPU processing unit
  • RAM random access memory
  • ROM non-writable memory
  • EPROM OR EEPROM EEPROM
  • the processing unit 11 and / or the ROM 14 of the smart card contain calculation programs or resources corresponding to the execution of the calculation steps carried out by the card when loading the coupons and when signing a message or the issuance of an electronic check.
  • These programs include in particular the calculation rules for generating s and the rules for using the SHA hash function.
  • the calculation unit and the programs in ROM also include the resources necessary for modular multiplications, additions and reductions. Some of these operations can be grouped together (for example, the modular reduction can be directly integrated into the multiplication).
  • the RAM of the card contains the message M and the hazard a to which the hash function SHA (m, a) or SHA (m, i, a) applies for example.
  • the non-volatile memory 15 typically contains the parameters q, x, J and the set of coupons
  • index i is in a non-volatile counter incremented with each new generation of signature and reset to zero when loading coupons.
  • the processing unit of the control card via address and data buses 16 and the interface of communication 10, read and write operations in memory 13, 14, and 15.
  • Each smart card is protected from the outside world by physical protections 17. These protections should be sufficient to prevent any unauthorized entity from obtaining the secret key x.
  • the techniques most used today in this area are the integration of the chip into a security module and the equipment of the chips of devices capable of detecting variations in temperature, light, as well as voltages and frequencies of abnormal clock. Particular design techniques such as scrambling of memory access are also used.
  • the terminal itself consists of at least one processing unit (CPU) 30 and memory resources 32, 33, 34.
  • the CPU 30 controls, via the address and data buses 35 and the communication interface 31, the read and write operations in the memories 32, 33, 34.
  • the authority's CPU 30 and / or ROM 34 contain calculation programs or resources making it possible to implement the calculation rules and hash functions, deceleration and compression, multiplication, addition, modular inversion, modular exponentiation and reduction, necessary to calculate coupons and verify signature. Some of these operations can be grouped together (modular multiplication and reduction for example).

Abstract

The invention concerns processes for generating digital signatures for electronic messages. The invention proposes modifying signature-generating algorithms, such as DSAs ('Digital Signature Algorithms), in order to enable smart cards with reduced calculation and storage resources to produce digital signatures with a high degree of security in spite of their reduced resources. The signature-checking terminal sends a random number a and measures the time taken by the card to send back a signal s using this random number. If the time is greater than a given duration, the signature is rejected even if the check of its authenticity is positive. In addition, part of the signature (the part which does not use the secret card key but only the public algorithm parameters) is precalculated and stored in the card in the form of signature portions produced by a compression function such that they are short. Only the second part of the signature has to be calculated by the card. According to the invention, the calculations to be made are simple so that the card does not require extensive calculation and memory resources.

Description

PROCEDE DE GENERATION DE SIGNATURES ELECTRONIQUES, NOTAMMENT POUR CARTES A PUCES METHOD FOR GENERATING ELECTRONIC SIGNATURES, ESPECIALLY FOR CHIP CARDS
L'invention concerne un procédé de génération de signatures numériques de messages électroniques.The invention relates to a method for generating digital signatures of electronic messages.
Le procédé s'applique particulièrement à la signature de messages par des appareils portables du type carte à puce à microprocesseur.The method is particularly applicable to the signing of messages by portable devices of the microprocessor chip card type.
Par exemple, il s'agit de signer des messages envoyés par la carte à un terminal de lecture ou à une autorité centrale; ou encore, il s'agit de faire une transaction (chèque électronique) et de signer cette transaction pour qu'elle puisse être authentifiée d'abord par le terminal de lecture dans lequel est faite la transaction, ensuite par une autorité centrale qui gère les transactions.For example, this involves signing messages sent by the card to a reading terminal or to a central authority; or again, it involves making a transaction (electronic check) and signing this transaction so that it can be authenticated first by the reading terminal in which the transaction is made, then by a central authority which manages the transactions.
Le procédé qui va être décrit est apparenté aux algorithmes de génération de signatures numériques qui ont été publiés ces dernières années, notamment par le US National Institute of Standards and Technology, tel que l'algorithme DSA (Digital Signature Algorithm) décrit dans la demande de brevet US 07/738431 et annoncé le 30 Août 1991 au Registre Fédéral tenu par cet Institut, pages 42980-42982.The process which will be described is related to the algorithms for generating digital signatures which have been published in recent years, in particular by the US National Institute of Standards and Technology, such as the DSA algorithm (Digital Signature Algorithm) described in the application for US patent 07/738431 and announced on August 30, 1991 in the Federal Register kept by this Institute, pages 42980-42982.
L'invention a pour but de modifier les procédés connus, notamment pour les rendre adaptables à des cartes à microprocesseur qui n'ont pas des ressources matérielles (processeur, mémoires) suffisantes pour réaliser rapidement des opérations mathématiques sur des grands nombres. Les algorithmes connus, notamment l'algorithme DSA, utilisent des grands nombres pour générer les signatures avec un degré de sécurité suffisant. Pour mieux faire comprendre l'invention, on va d'abord rappeler ce qu'est l'algorithme DSA.The object of the invention is to modify known methods, in particular to make them adaptable to microprocessor cards which do not have sufficient hardware resources (processor, memories) to quickly carry out mathematical operations on large numbers. Known algorithms, notably the DSA algorithm, use large numbers to generate the signatures with a sufficient degree of security. To better understand the invention, we will first recall what the DSA algorithm is.
Une signature DSA est constituée par une paire {r, s} de grands nombres représentés dans les calculateurs par des chaînes longues de chiffres binaires (160 chiffres) . La signature numérique est calculée à l'aide d'une série de règles de calcul, définies par l'algorithme, et d'un ensemble de paramètres utilisés dans ces calculs. La signature permet à la fois de certifier l'identité du signataire (parcequ'elle fait intervenir une clé secrète propre au signataire) et l'intégrité du message signé (parcequ'elle fait intervenir le message lui-même) . L'algorithme permet d'une part de générer des signatures, et d'autre part de vérifier des signatures.A DSA signature consists of a pair {r, s} of large numbers represented in the computers by long strings of binary digits (160 digits). The digital signature is calculated using a series of calculation rules, defined by the algorithm, and a set of parameters used in these calculations. The signature allows both to certify the identity of the signatory (because it involves a secret key specific to the signatory) and the integrity of the signed message (because it involves the message itself). The algorithm allows on the one hand to generate signatures, and on the other hand to verify signatures.
La génération de signature DSA fait intervenir une clé secrète. La vérification fait intervenir une clé publique qui correspond à la clé secrète mais ne lui est pas identique. Chaque utilisateur possède une paire de clés (secrète, publique) . Les clés publiques peuvent être connues de tous, alors que les clés secrètes ne sont jamais dévoilées. Toute personne a la capacité de vérifier la signature d'un utilisateur en utilisant la clé publique de celui-ci, mais seul le possesseur de la clé secrète peut générer une signature correspondant à la paire de clés.DSA signature generation involves a secret key. The verification involves a public key which corresponds to the secret key but is not identical to it. Each user has a pair of keys (secret, public). Public keys can be known to everyone, while secret keys are never revealed. Anyone has the ability to verify a user's signature using their public key, but only the owner of the secret key can generate a signature corresponding to the key pair.
Les paramètres de l'algorithme DSA sont les suivants :The parameters of the DSA algorithm are as follows:
- un nombre premier p tel que 2L_1 < p < 2L pour L compris entre 512 et 1024 (bornes comprises) , et- a prime number p such that 2 L_1 <p <2 L for L between 512 and 1024 (limits included), and
L = 64a pour un a entier quelconque;L = 64a for any integer a;
- un nombre premier q tel que 2159 < q < 2160 et p-1 est un multiple de q;- a prime number q such that 2 159 <q <2 160 and p-1 is a multiple of q;
- un nombre g, d'ordre q odulo p, tel que : g = ^P-1''^ modulo p, où h est un entier quelconque vérifiant- a number g, of order q odulo p, such that: g = ^ P -1 '' ^ modulo p, where h is an integer satisfying
1 < h < p-1 et g > 1;1 <h <p-1 and g> 1;
- un nombre x généré aléatoirement ou pseudo- aléatoirement (c'est la clé secrète, figée pour un utilisateur donné) ;- a number x generated randomly or pseudo-randomly (this is the secret key, frozen for a given user);
- un nombre y défini par la relation y = gx modulo p; (c'est la clé publique liée à la clé secrète) ; les opérations modulaires définies ci- après, modulo p ou modulo q seront désignés par mod p ou mod q respectivement;- a number y defined by the relation y = g x modulo p; (this is the public key linked to the secret key); the modular operations defined below, modulo p or modulo q will be designated by mod p or mod q respectively;
- un nombre k généré aléatoirement ou pseudo- aléatoirement, tel que 0 < k < q.- a number k generated randomly or pseudo-randomly, such as 0 <k <q.
Les entiers p, q, et g sont des paramètres du système pouvant être publiés et/ou partagés par un groupe d'utilisateurs. Les clés, secrète et publique, d'un signataire sont respectivement x et y. Le paramètre k, aléatoire, doit être régénéré pour chaque nouvelle signature. Les paramètres x et k sont utilisés pour la génération de signatures et doivent être gardés secrets.The integers p, q, and g are system parameters that can be published and / or shared by a group of users. The keys, secret and public, of a signatory are respectively x and y. The parameter k, random, must be regenerated for each new signature. The parameters x and k are used for the generation of signatures and must be kept secret.
Afin de signer un message m (qui sera en général une valeur hachée d'un fichier initial M) , le signataire calcule la signature {r, s} par :In order to sign a message m (which will generally be a hashed value from an initial file M), the signatory calculates the signature {r, s} by:
If r = (g mod p) mod q, et s = (m + xr) /k mod qIf r = (g mod p) mod q, and s = (m + xr) / k mod q
(où la division par k s'entend modulo q, c'est- à-dire que 1/k est le nombre k' tel que kk' = 1 mod q; par exemple si q=5 et k = 3, alors 1/k = 2 car 3x2 = 6, soit 1 mod 5) . Après avoir testé que r et s sont différents de zéro, la signature {r, s} est envoyée au vérifieur. Le vérifieur est en général le terminal dans lequel est insérée la carte à puce qui envoie le message m et la signature {r, s}. Le vérifieur, qui connaît p, q, g (liés à l'application) , y (lié à l'utilisateur) , et m (le message qu'il a reçu de la carte), calcule : a. = (1/s) mod q b. ul = mw mod q c. u2 = rw mod q d. v = [gul.yu2 mod p] mod q(where division by k means modulo q, i.e. 1 / k is the number k 'such that kk' = 1 mod q; for example if q = 5 and k = 3, then 1 / k = 2 because 3x2 = 6, i.e. 1 mod 5). After testing that r and s are different from zero, the signature {r, s} is sent to the verifier. The verifier is generally the terminal in which the smart card which sends the message m and the signature {r, s} is inserted. The verifier, who knows p, q, g (linked to the application), y (linked to the user), and m (the message he received from the card), calculates: a. = (1 / s) mod q b. ul = mw mod q c. u2 = rw mod q d. v = [g ul .y u2 mod p] mod q
Or cette valeur [gul.yu2 mod p] mod q est justement égale à r si s a la valeur (m + xr) /s mod q. Par conséquent, le terminal reçoit r et s et vérifie que v est bien égal à r pour accepter la signature, ou la rejeter dans le cas contraire.Now this value [g ul .y u2 mod p] mod q is precisely equal to r if its the value (m + xr) / s mod q. Consequently, the terminal receives r and s and verifies that v is indeed equal to r to accept the signature, or to reject it otherwise.
Dans ce qui suit, on utilisera indifféremment les termes de signataire ou organe signataire, ou dispositif prouveur, ou de carte à puce, pour désigner le dispositif qui émet la signature et qui sera en général une carte à puce. Et on utilisera indifféremment le terme de vérifieur, ou organe vérifieur ou dispositif vérifieur, ou terminal vérifieur, ou encore autorité de contrôle, pour désigner le dispositif qui reçoit la signature et la vérifie pour accepter ou rejeter une transaction ou un message. L'application la plus simple de l'invention est l'émission d'une signature par une carte à puce vers un terminal de lecture dans lequel la carte est insérée, le terminal exécutant la fonction de vérification et étant relié ou non à une autorité centrale de gestion.In what follows, the terms signatory or signatory body, or proving device, or smart card will be used interchangeably to designate the device which emits the signature and which will generally be a smart card. And we will use the term verifier, or verifier body or verifier device, or verifier terminal, or even control authority, to designate the device that receives the signature and verifies it to accept or reject a transaction or a message. The simplest application of the invention is the issuance of a signature by a smart card to a reading terminal in which the card is inserted, the terminal performing the verification function and being connected or not to an authority central management.
Un des buts de la présente invention est d'augmenter la sécurité de génération et vérification de signatures électroniques numériques, en minimisant les moyens de calcul et de mémoire qui doivent être présents dans la carte à puce pour produire les signatures.One of the aims of the present invention is to increase the security of generation and verification of digital electronic signatures, by minimizing the computing and memory means which must be present in the smart card to produce the signatures.
Il serait en particulier souhaitable de pouvoir utiliser dans la carte des microprocesseurs peu chers à 8 bits, malgré le fait qu'ils ne peuvent pas facilement traiter des grands nombres, plutôt que des microprocesseurs plus puissants et plus coûteux. Mais cela ne doit pas se faire au détriment de la sécurité.It would be particularly desirable to be able to use inexpensive 8-bit microprocessors in the card, despite the fact that they cannot easily process large numbers, rather than more powerful and expensive microprocessors. But this should not be done at the expense of security.
Selon un premier aspect important, l'invention propose que la vérification par un vérifieur (terminal) de la signature envoyée par le signataire (carte) utilise une étape de chronométrage de la durée s'écoulant entre un instant où une donnée (en principe aléatoire) est envoyée par le vérifieur au signataire (carte) et l'instant où la signature (utilisant cette donnée aléatoire) revient au vérifieur. Si le temps écoulé est trop long, c'est que le traitement de calcul de signature par le signataire s'effectue de manière anormale et la signature est rejetée même si son authenticité est confirmée par le vérifieur.According to a first important aspect, the invention proposes that the verification by a verifier (terminal) of the signature sent by the signatory (card) uses a step of timing the duration elapsing between an instant when a datum (in principle random ) is sent by the verifier to the signatory (card) and the moment when the signature (using this random data) returns to the verifier. If the elapsed time is too long, this means that the signature calculation processing by the signatory is abnormal and the signature is rejected even if its authenticity is confirmed by the verifier.
Indirectement, cette solution permet, comme on le verra, de conserver la même sécurité de signature tout en utilisant des ressources matérielles faibles (puissance de calcul et mémoires) dans la carte à puce. Des ressources faibles entraînent la nécessité de modifier les procédés de génération et vérification de signatures, mais c'est au détriment de la sécurité. L'étape de chronométrage selon l'invention restaure un niveau de sécurité suffisant. On décrira en détail cette solution à partir d'algorithmes dérivés de l'algorithme DSA rappelé ci- dessus, mais on comprendra que ce premier aspect de l'invention est applicable avec d'autres algorithmes même s'ils sont très différents de l'algorithme DSA. En résumé, le premier aspect de l'invention consiste dans un procédé de signature électronique, comportant la génération d'une signature numérique par un organe signataire qui calcule cette signature en utilisant une donnée aléatoire envoyée par un organe vérifieur, et la vérification de la signature par le vérifieur qui vérifie si une condition mathématique faisant intervenir la signature envoyée et la donnée aléatoire est remplie, ce procédé étant caractérisé en ce que la vérification de la signature envoyée par le signataire au vérifieur utilise en outre une étape de chronométrage de la durée s'écoulant entre un instant où la donnée aléatoire est envoyée par le vérifieur au signataire et l'instant où la signature utilisant cette donnée revient au vérifieur après calcul par le signataire, la signature étant acceptée si le temps écoulé est inférieur à une seuil déterminé et si la condition mathématique est vérifiée.Indirectly, this solution allows, as we will see, to keep the same signature security while using low hardware resources (computing power and memories) in the smart card. Low resources lead to the need to modify the procedures for generating and verifying signatures, but this is to the detriment of security. The timing step according to the invention restores a sufficient level of security. This solution will be described in detail from algorithms derived from the DSA algorithm mentioned above, but it will be understood that this first aspect of the invention is applicable with other algorithms even if they are very different from the DSA algorithm. In summary, the first aspect of the invention consists in an electronic signature process, comprising the generation of a digital signature by a signatory body which calculates this signature using random data sent by a verifier body, and the verification of the signature by verifier which verifies whether a mathematical condition involving the signature sent and the random datum is fulfilled, this method being characterized in that the verification of the signature sent by the signatory to the verifier also uses a step of timing the elapsed time between an instant when the random data is sent by the verifier to the signatory and the instant when the signature using this data returns to the verifier after calculation by the signatory, the signature being accepted if the elapsed time is less than a determined threshold and if the mathematical condition is verified.
De préférence, l'algorithme utilisé est du type dans lequel la génération de signature produit deux valeurs {r, s}, s étant calculée à partir de r et d'une clé secrète x, et dans lequel la vérification de la signature {r, s} consiste dans la vérification d'une égalité v = f(r, s) = r entre r et une fonction f de r et de s. On prévoit alors selon l'invention que la fonction f est choisie suffisamment complexe pour que la durée de recherche d'une valeur s à partir de cette égalité en l'absence de connaissance de la clé secrète soit très supérieure, même si elle est faite par un calculateur puissant, à la durée de calcul et transmission par la carte de la valeur s à partir de r et de la clé secrète, et ceci même si la carte utilise un microprocesseur peu puissant (microprocesseur de 8 bits à 20 MHz par exemple) . Ainsi, en choisissant correctement la condition de temps introduite par le chronométrage, on fait en sorte que cette condition ne puisse pas être remplie en l'absence de connaissance de la clé secrète et notamment ne puisse pas être remplie par une recherche de s à partir de l'égalité r = f(r, s). En pratique, la fonction f(r, s) fait intervenir aussi un message m à signer, de sorte qu'on peut la noter f(r, s, m) .Preferably, the algorithm used is of the type in which the generation of signature produces two values {r, s}, s being calculated from r and a secret key x, and in which the verification of the signature {r , s} consists in the verification of an equality v = f (r, s) = r between r and a function f of r and s. It is then provided according to the invention that the function f is chosen to be sufficiently complex so that the duration of the search for a value s from this equality in the absence of knowledge of the secret key is much greater, even if it is done by a powerful computer, at the time of calculation and transmission by the card of the value s from r and the secret key, and this even if the card uses a not very powerful microprocessor (microprocessor of 8 bits at 20 MHz for example ). Thus, by correctly choosing the time condition introduced by the timing, it is ensured that this condition cannot be fulfilled in the absence of knowledge of the secret key and in particular cannot be fulfilled by a search for s from of equality r = f (r, s). In practice, the function f (r, s) also involves a message m to be signed, so that it can be noted f (r, s, m).
De préférence, la fonction f comporte des calculs mathématiques suivis d'une fonction de hachage complexe. La première partie de signature r est établie par d'autres calculs mathématiques, suivis de la même fonction de hachage complexe.Preferably, the function f comprises mathematical calculations followed by a complex hash function. The first part of signature r is established by other mathematical calculations, followed by the same complex hash function.
Cette fonction de hachage complexe est de préférence, comme on l'expliquera plus loin, une fonction de compression complexe aboutissant à une réduction de la longueur des chaînes de bits obtenues par les calculs mathématiques effectués.This complex hash function is preferably, as will be explained below, a complex compression function resulting in a reduction in the length of the bit strings obtained by the mathematical calculations carried out.
On rappelle qu'une fonction de hachage est une fonction de traitement logique de chaînes binaires, qui permet d'obtenir une chaîne de caractères de longueur déterminée à partir d'une autre chaîne de caractères de même longueur ou de longueur différente. Une fonction de hachage complexe peut être obtenue par des hachages successifs et/ou des calculs mathématiques impliquant les résultats de plusieurs hachages. Une compression peut être obtenue à la fin en prenant comme résultat une valeur modulaire, modulo 2e, où e est la longueur de la chaîne finalement désirée. Par ailleurs, selon un autre aspect important de l'invention, on propose une nouvelle solution pour traiter des plus petits nombres dans la carte à puce, dans des algorithmes de signature numérique du genre dans lequel la signature fait intervenir deux nombres, r et s, seul le nombre s faisant intervenir la clé secrète de la carte et le message à envoyer.It is recalled that a hash function is a logical processing function of binary strings, which makes it possible to obtain a character string of determined length from another character string of the same length or of different length. A complex hash function can be obtained by successive hashes and / or mathematical calculations involving the results of several hashes. Compression can be obtained at the end by taking as a result a modular value, modulo 2 e , where e is the length of the chain finally desired. Furthermore, according to another important aspect of the invention, a new solution is proposed for processing smaller numbers in the smart card, in digital signature algorithms of the kind in which the signature involves two numbers, r and s , only the number s involving the secret key of the card and the message to be sent.
Ce deuxième aspect de l'invention est un perfectionnement à un procédé de génération de signatures qui a été décrit dans la demande de brevet français 93 14466. Dans cette demande de brevet, il est expliqué que dans un algorithme de ce genre (DSA en est un exemple) , le nombre r ne dépend ni du message m envoyé par la carte, ni de la clé secrète contenue dans la carte. Il ne dépend que de nombres figés pour l'application considérée, et de nombres aléatoires; par exemple, ces nombres sont g, p, q et k dans l'algorithme DSA. Il est donc inutile de faire calculer r par la carte, car cela consomme un temps de calcul important. On fait plutôt calculer à l'avance par une autorité centrale certifiée une série de n valeurs r possibles, notées r^, i étant un indice allant de 1 à n. On stocke les valeurs r^ dans la carte. A chaque nouvelle utilisation de la carte, on utilise une des valeurs r^ (et on n'utilisera plus cette valeur les fois suivantes) . Au moment de signer, la carte calcule seulement l'autre partie de signature s, à partir d'une valeur r^, de la clé secrète x, du message m, et on envoie au vérifieur le message m et le couple { r^, s} représentant la signature que le vérifieur peut alors vérifier de la manière prévue par l'algorithme considéré. Les nombres r^ sont des certificats précalculés, appelés encore des "coupons de signature". Ils constituent une partie seulement de la signature à envoyer, et ils peuvent être préparés et stockés à l'avance dans la carte. L'indice i représente l'indice de coupon utilisé lors d'une signature donnée.This second aspect of the invention is an improvement to a method for generating signatures which has been described in French patent application 93 14466. In this patent application, it is explained that in an algorithm of this kind (DSA is an example), the number r depends neither on the message m sent by the card, nor on the secret key contained in the card. It only depends on fixed numbers for the application considered, and on random numbers; for example, these numbers are g, p, q and k in the DSA algorithm. It is therefore useless to have r calculated by the card, because this consumes a significant computation time. Rather, a series of n possible r values, denoted r ^, is calculated in advance by a certified central authority, i being an index ranging from 1 to n. We store the values r ^ in the map. Each time the card is used again, one of the values r ^ is used (and this value will no longer be used the following times). At the time of signing, the card only calculates the other signature part s, from a value r ^, from the secret key x, from the message m, and the message m and the pair {r ^ are sent to the verifier. , s} representing the signature which the verifier can then verify in the manner provided by the algorithm considered. The numbers r ^ are precalculated certificates, also called "signature coupons". They are only part of the signature to be sent, and they can be prepared and stored in advance on the card. The index i represents the coupon index used during a given signature.
Mais une des difficultés réside dans la grande longueur de ces coupons (160 bits dans l'algorithme DSA présenté ci-dessus) . Ils consomment une place importante de mémoire non volatile dans la carte; on ne peut pas en sauvegarder un grand nombre dans la carte si on dispose d'une taille limitée de mémoire non volatile; et en plus, ils entraînent un plus long temps de calcul avec un microprocesseur 8 bits puisqu'il faut aller chercher ces nombres par petits morceaux. Mais si on utilisait et stockait des plus petits coupons de signature, la garantie d'authenticité de signature risquerait d'être bien plus faible.But one of the difficulties lies in the great length of these coupons (160 bits in the DSA algorithm presented above). They consume a significant amount of non-volatile memory on the card; you cannot save a large number of them in the card if you have a limited size of non-volatile memory; and in addition, they lead to a longer computation time with an 8-bit microprocessor since it is necessary to fetch these numbers in small pieces. But if we used and stored smaller signature coupons, the guaranteed authenticity of signature might be much weaker.
L'invention décrite ici permet de concilier le souci d'une garantie d'authenticité avec l'utilisation de plus petits coupons de signature rj_.The invention described here makes it possible to reconcile the concern for a guarantee of authenticity with the use of smaller rj_ signature coupons.
L'invention propose donc un procédé de génération de signature électronique par un organe signataire et de vérification par un organe vérifieur, utilisant un algorithme de signature numérique dans lequel la signature envoyée par le signataire comprend au moins un coupon de signature ri et un complément de signature s qui est calculé à partir du coupon r^ et d'une clé secrète x de la carte, cet algorithme permettant la vérification de signature par un vérifieur à l'aide d'une formule de vérification du type v = f(ri, s) = ri, ce procédé étant caractérisé en ce que a. le coupon de signature est établi à l'avance par une autorité certifiée, en deux étapes : - calcul d'un nombre représenté par une chaîne binaire longue, à l'aide d'une formule mathématique faisant intervenir des grands nombres binaires;The invention therefore proposes a method of generating an electronic signature by a signatory body and of verification by a verifying body, using a digital signature algorithm in which the signature sent by the signatory comprises at least one signature coupon ri and a complement of signature s which is calculated from the coupon r ^ and a secret key x of the card, this algorithm allowing the verification of signature by a verifier using a verification formula of the type v = f (ri, s) = ri, this process being characterized in that a. the signature coupon is established in advance by a certified authority, in two stages: - calculation of a number represented by a long binary string, using a mathematical formula involving large binary numbers;
- et modification du résultat de ce calcul par une fonction de compression complexe réduisant fortement la longueur de ce résultat, b. une série de coupons différents de faible longueur sont ainsi préparés à l'avance et stockés dans l'organe signataire (carte à puce à mémoire et microprocesseur) , c. la génération de signature comporte l'envoi d'un coupon r^ et d'un complément de signature s calculé à partir d'au moins r et x, d. l'algorithme de vérification de signature comporte un calcul mathématique suivi de la même fonction de compression complexe que celle qui a servi à l'élaboration du coupon, et le résultat est comparé au coupon pour la vérification de signature.- and modification of the result of this calculation by a complex compression function greatly reducing the length of this result, b. a series of different short coupons are thus prepared in advance and stored in the signatory body (memory chip card and microprocessor), c. the signature generation involves the sending of a coupon r ^ and a signature complement s calculated from at least r and x, d. the signature verification algorithm includes a mathematical calculation followed by the same function complex compression than that used to prepare the coupon, and the result is compared to the coupon for signature verification.
La fonction de compression est de préférence une fonction de hachage complexe qui nécessite un temps de calcul assez long. Ceci donne une sécurité importante au procédé de génération et de vérification de signature. On combine donc l'avantage d'une bonne garantie d'authenticité de signature avec la possibilité de ne sauvegarde dans la carte que des coupons de petite taille, donc la possibilité d'en sauvegarde beaucoup. Si de surcroît on utilise le chronométrage mentionné plus haut, on conçoit qu'on peut renforcer à un très haut degré la garantie d'authenticité. Le calcul de la signature s fait bien sûr intervenir le message m qu'on veut signer, pour garantir non seulement l'authenticité de la signature mais aussi l'intégrité du message transmis.The compression function is preferably a complex hash function which requires a fairly long computation time. This gives significant security to the signature generation and verification process. We therefore combine the advantage of a good guarantee of authenticity of signature with the possibility of saving only small coupons in the card, therefore the possibility of saving a lot. If, in addition, we use the timing mentioned above, we can see that the guarantee of authenticity can be strengthened to a very high degree. The signature calculation of course involves the message m that we want to sign, to guarantee not only the authenticity of the signature but also the integrity of the transmitted message.
On peut encore améliorer la sécurité par une ou plusieurs des caractéristiques suivantes :Security can be further improved by one or more of the following features:
La formule de calcul du coupon ri est de préférence établie à partir d'un aléa J engendré au départ par la carte et stocké dans la carte pour être réutilisé lorsque le coupon sera utilisé pour l'établissement d'une signature.The formula for calculating the coupon ri is preferably established from a hazard J generated at the start by the card and stored in the card to be reused when the coupon is used for the establishment of a signature.
On peut prévoir que pour déclencher la génération d'une signature, le terminal vérifieur envoie un aléa a à la carte et déclenche alors le chronomètre; on prévoit aussi que l'établissement du complément de signature utilise nécessairement cet aléa a et que la vérification de signature nécessite également cet aléa a.We can provide that to trigger the generation of a signature, the verifying terminal sends a random a to the card and then starts the timer; it is also expected that the establishment of the signature complement necessarily uses this hazard a and that signature verification also requires this hazard a.
Le complément de signature s est de préférence établi par un calcul faisant intervenir une fonction de hachage SHA(m, a) du message et de cet aléa a, la même fonction de hachage étant utilisée pour la vérification de signature.The signature complement s is preferably established by a calculation involving a hash function SHA (m, a) of the message and of this hazard a, the same hash function being used for signature verification.
Le complément de signature s est de préférence établi par un calcul faisant intervenir un aléa J stocké dans la carte et ayant servi à établir le coupon de signature. De préférence encore, ce calcul de s fait intervenir une fonction de hachage SHA(x, J, i) portant sur cet aléa J et sur un indice i représentant le numéro du coupon utilisé, cette même fonction de hachage ayant été précédemment utilisée au cours du calcul de chaîne binaire longue prévu dans le calcul du coupon correspondant. Cette fonction de hachage fait de préférence aussi intervenir la clé secrète x de la carte.The additional signature s is preferably established by a calculation involving a hazard J stored in the card and having served to establish the signature coupon. More preferably, this calculation of s involves a hash function SHA (x, J, i) relating to this hazard J and to an index i representing the number of the coupon used, this same hash function having been previously used during of the long binary chain calculation provided for in the calculation of the corresponding coupon. This hashing function preferably also involves the secret key x of the card.
Le complément de signature s est de préférence établi par un calcul faisant intervenir une fonction de hachage du coupon SHA(ri) , la même fonction de hachageThe additional signature s is preferably established by a calculation involving a hash function of the coupon SHA (ri), the same hash function
SHA(ri) étant utilisée pour la vérification de signature.SHA (ri) being used for signature verification.
Ainsi, selon un aspect particulier de l'invention, on propose un procédé de génération de signatures numériques de messages par un dispositif signataire et de vérification de ces signatures par un dispositif vérifieur, le dispositif signataire comportant des moyens de calcul, de communication et de rétention de données comprenant au moins une mémoire non volatile programmable électriquement, selon lequel on prépare des données chiffrées constituant des coupons de signature ri que l'on charge dans la mémoire non-volatile et que le dispositif signataire utilise pour signer des messages, principalement caractérisé en ce que : - les coupons sont compressés par application d'une fonction de compression, dite encore fonction de hachage, par une autorité certifiée avant d'être chargés dans la mémoire, et en ce qu'il comporte les échanges suivants : - un message m est transmis et ce message doit être certifié par une signature; le signataire envoie un coupon ri au vérifieur, - le vérifieur envoie un nombre aléatoire a au signataire et déclenche un chronomètre, le signataire calcule la signature s du message et l'envoie au vérifieur,Thus, according to a particular aspect of the invention, a method is proposed for generating digital signatures of messages by a signatory device and for verifying these signatures by a verifier device, the signatory device comprising means of calculation, communication and data retention comprising at least one electrically programmable non-volatile memory, according to which encrypted data are prepared constituting signature coupons ri which are loaded into the non-volatile memory and which the signatory device uses to sign messages, mainly characterized in that: the coupons are compressed by application of a compression function, also called hash function, by a certified authority before being loaded into the memory, and in that it comprises the following exchanges: - a message m is transmitted and this message must be certified by a signature; the signatory sends a laughed coupon to the verifier, - the verifier sends a random number a to the signatory and starts a stopwatch, the signatory calculates the signature s of the message and sends it to the verifier,
- le vérifieur arrête le chronomètre et vérifie que la signature a été obtenue par le secret détenu dans la carte et le coupon ri reçu; cette vérification est faite en vérifiant l'égalité suivante : v = f(ri, s, m) = ri- the verifier stops the chronometer and verifies that the signature has been obtained by the secret held in the card and the coupon received ri; this check is made by checking the following equality: v = f (ri, s, m) = ri
- le vérifieur accepte la signature si la condition de vérification v = ri est remplie et si le temps chronométré ne dépasse pas une durée prédéterminé impartie.- the verifier accepts the signature if the verification condition v = ri is fulfilled and if the timed time does not exceed a predetermined time allotted.
Pour simplifier, dans toute la suite on parlera surtout de carte pour le signataire ou signataire.To simplify, in the following we will mainly talk about card for the signatory or signatory.
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels : - la figure 1 décrit l'organigramme d'une carte mettant en oeuvre le système proposé par la présente invention; la figure 2 décrit les données transmises entre la carte et le terminal au moment de l'utilisation du coupon; la figure 3 décrit l'organigramme d'un terminal mettant en oeuvre le système proposé par la présente invention;Other characteristics and advantages of the invention will appear on reading the detailed description which follows and which is given with reference to the appended drawings in which: - Figure 1 describes the flowchart of a card implementing the proposed system by the present invention; FIG. 2 describes the data transmitted between the card and the terminal when the coupon is used; FIG. 3 describes the flow diagram of a terminal implementing the system proposed by the present invention;
- la figure 4 représente les données transmises entre la carte et l'autorité pendant la phase de chargement des coupons et l'organisation de la mémoire d'une carte après le chargement de n coupons.- Figure 4 shows the data transmitted between the card and the authority during the loading coupons and organizing the memory of a card after loading n coupons.
A partir des explications données en préambule, on aura compris que le principal avantage des coupons de signature précalculés selon la méthode de l'invention réside dans la vitesse de calcul d'une signature par une carte basée sur un simple microcontrôleur de 8 bits et le faible taux d'occupation de mémoire des coupons stockés. Typiquement le calcul de signature peut se faire en 300ms environ, temps de transmission compris, et chaque coupon peut utiliser de deux à quatre octets de mémoire EPROM ou EEPROM.From the explanations given in the preamble, it will be understood that the main advantage of signature coupons precalculated according to the method of the invention lies in the speed of calculation of a signature by a card based on a simple 8-bit microcontroller and the low memory occupancy of stored coupons. Typically the signature calculation can be done in approximately 300 ms, transmission time included, and each coupon can use from two to four bytes of EPROM or EEPROM memory.
On va décrire l'invention dans cet exemple, étant entendu que ce n'est qu'un exemple, bien qu'il soit considéré ici comme le plus avantageux.The invention will be described in this example, it being understood that this is only an example, although it is considered here as the most advantageous.
Le procédé de génération de signatures se décompose dans ce cas en deux phases distinctes : le chargement des coupons par l'autorité ayant délivré la carte, puis l'utilisation de ces coupons par la carte, face à un terminal ne connaissant pas le secret x de la carte.In this case, the signature generation process breaks down into two distinct phases: the loading of the coupons by the authority that issued the card, then the use of these coupons by the card, facing a terminal that does not know the secret x from the menu.
Les deux phases font ici appel à des fonctions de hachage de deux types différents. On rappelle qu'une fonction de hachage d'un nombre, représenté par une chaîne de bits, consiste en la production d'une autre chaîne de bits de longueur déterminée, longueur qui est ou non la même que celle de la chaîne de départ, et ceci à partir de fonctions logiques exécutées sur des groupes de bits de la chaîne de départ.The two phases here use hash functions of two different types. It is recalled that a hash function of a number, represented by a string of bits, consists in the production of another string of bits of determined length, length which is or is not the same as that of the starting string, and this starting from logical functions executed on groups of bits of the starting chain.
Des fonctions de hachage simples sont utilisées, notées SHA(ch) pour le hachage d'une chaîne ch. Ces fonctions peuvent être des fonctions de hachage classiques, telles que celles publiées dans la récente norme américaine SHA (Secure Hash Algorithm - FIPS PUB XX, du 1er Février 1993, dans "Digital Signature Standard" ) . Ces fonctions peuvent être la fonction MDA ou MD5 ou un hachage basé sur l'algorithme DES (Data Encryption Standard) . D'autres fonctions, dites hachage complexe, seront utilisées aussi. Leur caractéristique utilisée ici n'est pas tant d'être une fonction de hachage que d'être une fonction de ralentissement imposée lors de certains traitements de signaux, et aussi d'être une fonction de compression réduisant la longueur des coupons de signature qu'on veut sauvegarde dans la carte à puce.Simple hash functions are used, noted SHA (ch) for hashing a string ch. These functions can be conventional hash functions, such as those published in the recent American standard SHA (Secure Hash Algorithm - FIPS PUB XX, from February 1, 1993, in "Digital Signature Standard"). These functions can be the MDA or MD5 function or a hash based on the DES (Data Encryption Standard) algorithm. Other functions, called complex hashing, will also be used. Their characteristic used here is not so much to be a hash function as to be a slowing function imposed during certain signal processing, and also to be a compression function reducing the length of the signature coupons that we want to save in the smart card.
Cette fonction de ralentissement et de compression est notée ci-après H(ch) pour le traitement d'une chaîne ch. Toutes sortes de fonctions de ralentissement et compression pourraient être utilisées dans l'invention. A titre d'exemple on a pris comme fonction H(ch) la fonction suivante, où SHA(ch) désigne une fonction de hachage classique : H(ch) = SHA[SHA{SHA(ch) }S ch) mod p] mod 2 e , où e est la longueur désirée pour les coupons, par exemple 16 à 40 bits soit quelques octets.This slowing and compression function is denoted below H (ch) for the processing of a chain ch. All kinds of deceleration and compression functions could be used in the invention. By way of example, the following function was taken as a function H (ch), where SHA (ch) denotes a conventional hash function: H (ch) = SHA [SHA {SHA (ch)} S ch) mod p] mod 2 e , where e is the desired length for the coupons, for example 16 to 40 bits or a few bytes.
Dans tout ce qui suit, on reprendra un algorithme directement inspiré de l'algorithme DSA, pour montrer comment on met en oeuvre les particularités originales de l'invention. Les paramètres p, q, g, x, y utilisés sont ceux définis précédemment à propos de l'algorithme DSA.In all that follows, we will use an algorithm directly inspired by the DSA algorithm, to show how the original features of the invention are implemented. The parameters p, q, g, x, y used are those defined previously with respect to the DSA algorithm.
CHARGEMENT DE COUPONS DANS LA CARTELOADING COUPONS INTO THE CARD
C'est l'étape préliminaire, mais bien sûr seulement dans le cas où on calcule à l'avance, en dehors de la carte, la première partie r de la signature {r, s} et où on charge plusieurs valeurs possibles ri dans la carte.This is the preliminary step, but of course only if we calculate in advance, outside the map, the first part r of the signature {r, s} and where we load several possible values ri into the card.
1. La carte remet à zéro un compteur en mémoire non volatile (EPROM ou EEPROM) , génère un aléa J (de 10 à 20 octets par exemple) , l'enregistre en mémoire non-volatile, et l'envoie à l'autorité de contrôle qui connaît le secret x de la carte et qui calcule, pour i = 1 à n, plusieurs valeurs ki et plusieurs valeurs ri :1. The card resets a counter in non-volatile memory (EPROM or EEPROM), generates a random J (from 10 to 20 bytes for example), saves it in non-volatile memory, and sends it to the authority control which knows the secret x of the card and which calculates, for i = 1 to n, several values ki and several values ri:
ki » {l/(SHA(x, J, i)} mod qki "{l / (SHA (x, J, i)} mod q
et ri= H(g x mod p) ; H est la fonction de ralentissement et de compression.and ri = H (g x mod p); H is the function of deceleration and compression.
On pourrait envisager aussi que la carte calcule pour chaque i la valeur SHA(x, J, i) et l'envoie à l'autorité de contrôle; celle-ci calcule les nombres τ^ .We could also consider that the card calculates for each i the value SHA (x, J, i) and sends it to the control authority; this calculates the numbers τ ^.
2 . L'autorité envoie les nombres ri à la carte qui les stocke en mémoire, en conservant le lien avec le repère i. Les nombres ki ne sont pas conservés.2. The authority sends the ri numbers to the card which stores them in memory, keeping the link with the reference i. The ki numbers are not kept.
Si on se réfère à l'algorithme DSA, ki représente le nombre k aléatoire, modifié à chaque nouvelle signature. Mais au lieu d'être émis par le terminal vérifieur au moment d'une signature, il sera recalculé au moment opportun par la carte. Comme il dépend de i et qu'un coupon d'indice i n'est utilisé qu'une fois, ki est renouvelé à chaque fois.If we refer to the DSA algorithm, ki represents the random number k, modified with each new signature. But instead of being issued by the verifying terminal at the time of a signature, it will be recalculated at the appropriate time by the card. As it depends on i and that an index coupon i is used only once, ki is renewed each time.
UTILISATION D'UN COUPON POUR SIGNER UN MESSAGEUSING A COUPON TO SIGN A MESSAGE
Lorsque la carte désire signer un message, le protocole suivant est utilisé après transmission du message m (de préférence sous forme de fonction hachée du véritable message, selon une fonction de hachage connue du terminal qui reçoit le message) :When the card wishes to sign a message, the following protocol is used after transmission of the message m (preferably in the form of a hashed function of the real message, according to a hash function known to the terminal receiving the message):
1. La carte - extrait l'état i du compteur1. The card - extracts state i from the counter
(représentant l'indice courant de la signature qui va être produite) ,(representing the current index of the signature that will be produced),
- extrait de la mémoire non volatile l'aléa J, le secret x, le coupon ri correspondant à 1'indice i;- extract from the non-volatile memory the hazard J, the secret x, the coupon ri corresponding to the index i;
- calcule I = SHA(x, J, i) ; cette valeur I n'est autre que l'inverse modulaire de ki qui a servi au calcul du coupon ri ;- calculate I = SHA (x, J, i); this value I is none other than the modular inverse of ki which was used to calculate the coupon ri;
- calcule A = xSHA(ri) mod q - incrémente i (pour une prochaine signature)- calculates A = xSHA (ri) mod q - increments i (for a next signature)
- envoie ri au terminal vérifieur; cet envoi représente la première partie de la signature.- sends laugh to the checking terminal; this shipment represents the first part of the signature.
2. Le terminal génère alors un aléa a, pour déclencher la génération de la deuxième partie de signature s; cet envoi constitue en quelque sorte le lancement d'un défi à la carte car le terminal vérifieur déclenche en même temps un chronomètre pour mesurer le temps de réponse de la carte à ce défi.2. The terminal then generates a hazard a, to trigger the generation of the second signature part s; this sending constitutes in a way the launching of an à la carte challenge because the verifying terminal simultaneously starts a stopwatch to measure the response time of the card to this challenge.
La signature s que la carte doit envoyer, compte tenu de la formule de vérification f(r , m, s, a) = ri qui est prévue dans le vérifieur est s = [xSHA(ri ) mod q + SHA(m, a)]/ ki mod qThe signature s that the card must send, taking into account the verification formula f (r, m, s, a) = ri which is provided in the verifier is s = [xSHA (ri) mod q + SHA (m, a )] / ki mod q
Cette formule fait intervenir le coupon ri , le secret x de la carte, le message m envoyé, le nombre ki , et l'aléa a envoyé par le vérifieur à titre de défi. Cette formule est différente de celle qui a été donnée pour l'algorithme DSA : s = (m + xr) /k pour plusieurs raisons : elle doit faire intervenir l'aléa a envoyé à titre de défi, pour que le vérifieur soit sûr que le calcul chronométré de signature s ne commence que lorsque l'aléa a est parvenu à la carte. C'est pour cela qu'on utilise un hachage de m et de l'aléa a, SHA (m, a) , au lieu de m. D'autre part on utilise de préférence SHA(ri) plutôt que r pour utiliser une valeur de coupon sous forme de chaîne plus longue que ri qui est une chaîne très courte. Ceci renforce la sécurité. Mais bien entendu, si on utilise xSHA(ri) au lieu de xri et SHA(m, a) au lieu de m, la formule de vérification doit en tenir compte, et on verra plus loin que c'est ce qui est fait. D'autres variantes de calcul de signature peuvent être prévues, à condition simplement que la formule de vérification en tienne compte.This formula involves the coupon ri, the secret x of the card, the message m sent, the number ki, and the hazard sent by the verifier as a challenge. This formula is different from the one given for the DSA algorithm: s = (m + xr) / k for several reasons: it must involve the hazard sent as a challenge, so that the verifier is sure that the timed signature calculation s does not start until the hazard has reached the card. This is why we use a hash of m and the hazard a, SHA (m, a), instead of m. On the other hand, SHA (ri) is preferably used rather than r to use a coupon value in the form of a longer chain than ri which is a very short chain. This enhances security. But of course, if we use xSHA (ri) instead of xri and SHA (m, a) instead of m, the verification formula must take this into account, and we will see later that this is what is done. Other variants of signature calculation can be provided, provided that the verification formula takes this into account.
3. La carte calcule, aussi vite que possible, la signature s. Mais comme elle a déjà calculé, avant déclenchement du chronomètre, A ≈ xSHA(ri) mod q et I = 1/ i = SHA(x, J, i) il ne lui reste qu'à calculer s= I.(SHA(m, a) + A) mod q Ce calcul peut être rapide même pour un microcontrôleur simple et peu coûteux de 8 bits, par exemple type 8051 de Intel ou 6805 de Motorola. Dès que le calcul est terminé, la carte renvoie la signature s.3. The card calculates the signature s as quickly as possible. But as it has already calculated, before starting the stopwatch, A ≈ xSHA (ri) mod q and I = 1 / i = SHA (x, J, i) it only has to calculate s = I. (SHA ( m, a) + A) mod q This calculation can be quick even for a simple and inexpensive 8-bit microcontroller, for example type 8051 from Intel or 6805 from Motorola. As soon as the calculation is complete, the card returns the signature s.
4. Dès réception de s, le terminal arrête le chronomètre et effectue les calculs de vérification de l'authenticité de la signature. Si la signature a été correctement calculée selon la formule ci-dessus, alors on peut vérifier qu'on doit avoir l'égalité suivante :4. Upon receipt of s, the terminal stops the stopwatch and performs the calculations for verifying the authenticity of the signature. If the signature has been correctly calculated according to the above formula, then we can verify that we must have the following equality:
[y(SHA(ri)/s) mod q g(SHA(m, a)/s) mod q mod p] [y (SHA (ri) / s) mod q g (SHA (m, a) / s) mod q mod p]
= g 1 mod p Le vérifieur ne possède pas ki. Il possède ri = H(g 1 mod p) ; H est la fonction de ralentissement et de compression.= g 1 mod p The verifier does not have ki. It has ri = H (g 1 mod p); H is the function of deceleration and compression.
L'égalité doit donc être transformée en :Equality must therefore be transformed into:
H[y(SHA(ri)/s) mod q g(SHA(m,a) /s) mod q moά p] H [y (SHA (ri) / s) mod q g (SHA (m, a) / s) mod q moά p]
≈ H(gki mod p) = ri≈ H (g ki mod p) = ri
Le vérifieur dispose de ri, de s, de q, de p, de g, de m, de a, de la fonction de hachage simple SHA, et de la fonction de ralentissement et de compression H. Il vérifie donc l'égalité ci-dessus.The checker has ri, s, q, p, g, m, a, the simple hash function SHA, and the deceleration and compression function H. It therefore checks the equality ci -above.
Si l'égalité est obtenue et si la signature a été renvoyée dans un délai inférieur à un seuil déterminé, la signature est acceptée par le vérifieur. Si une des deux conditions n'est pas remplie, elle n'est pas acceptée.If equality is obtained and if the signature has been returned within a time limit below a determined threshold, the signature is accepted by the verifier. If one of the two conditions is not met, it is not accepted.
A titre d'exemple pour l'évaluation de la durée on peut donner les indications suivantes : appelons T le temps nécessaire pour évaluer H(ch) sur un ordinateur extrêmement puissant, voire le plus puissant qu'on connaisse aujourd'hui. On peut considérer que la fonction de ralentissement H, aboutissant à des chaînes de longueur e (H ayant également une fonctionnalité de compression) est suffisamment complexe, et en tous cas doit être choisie suffisamment complexe, pour que pour toute valeur z et tout ordinateur existant, la recherche d'une nouvelle valeur ch' telle que z = H(ch') nécessite un temps T.2e. Etant donné que quelqu'un qui ignore le secret de la carte ne peut rechercher s que par tâtonnements à partir de la formule de vérification (recherche exhaustive) , il ne pourra pas, même avec un seul essai, trouver une valeur correcte de s si on choisit de mettre un seuil de durée de renvoi de signature très inférieur à cette valeur T.2e, par exemple l millionième de cette valeur.As an example for the evaluation of the duration, we can give the following indications: let's call T the time necessary to evaluate H (ch) on an extremely powerful computer, even the most powerful one we know today. We can consider that the deceleration function H, leading to chains of length e (H also having a compression functionality) is sufficiently complex, and in any case must be chosen sufficiently complex, so that for any value z and any existing computer , the search for a new value ch 'such that z = H (ch') requires a time T.2 e . Since someone who ignores the secret of the card can only search for s by trial and error using the verification formula (exhaustive search), he cannot, even with a single try, find a correct value of s if we choose to set a signature return duration threshold much lower than this value T.2 e , for example l millionth of this value.
Ceci donne une indication de la méthodologie à suivre pour choisir la fonction de ralentissement H et la durée de seuil.This gives an indication of the methodology to follow to choose the deceleration function H and the threshold duration.
De façon générale, les principes qui ont été expliqués ci-dessus et illustrés par un exemple sont applicables à d'autres protocoles de signature. En particulier ils sont applicables à d'autres protocoles dans lesquels un précalcul de coupons de signature est possible, en particulier les protocoles suivants :In general, the principles which have been explained above and illustrated by an example are applicable to other signature protocols. In particular, they are applicable to other protocols in which a precalculation of signature coupons is possible, in particular the following protocols:
- Rueppel-Nyberg : "New signature schemes based on the discrète logarithm proble " publié dans les actes du colloque Eurocrypt 94.- Rueppel-Nyberg: "New signature schemes based on the discrete logarithm proble" published in the proceedings of the Eurocrypt 94 conference.
Schnorr : "Efficient identification and signatures for smart-cards", publié dans les actes du colloque Crypto'89.Schnorr: "Efficient identification and signatures for smart-cards", published in the proceedings of the Crypto'89 conference.
- El-Gamal : "A public-key cryptosystem and a signature scheme based on discrète logarithms" publié dans la revue IEEE Transactions on Information Theory, vol IT30, n°4, pages 469-472.- El-Gamal: "A public-key cryptosystem and a signature scheme based on discrète logarithms" published in the journal IEEE Transactions on Information Theory, vol IT30, n ° 4, pages 469-472.
Guillou-Quisquater : "A practical zero- knowledge protocol fitted to security microprocessors minimizing both transmission and memory", publié dans les actes du colloque Eurocrypt'88 et "A paradoxical identity-based signature scheme resulting from zero- knowledge", publié dans les actes du colloque Crypto'88.Guillou-Quisquater: "A practical zero-knowledge protocol fitted to security microprocessors minimizing both transmission and memory", published in the proceedings of the Eurocrypt'88 conference and "A paradoxical identity-based signature scheme resulting from zero-knowledge", published in Crypto'88 conference proceedings.
- d'autres systèmes à clé publique basés sur le logarithme discret, où l'équation (m + xr) /k mod q est remplacée par une autre égalité faisant intervenir m, x, r, et k (comme expliqué dans l'article "Meta Message Recovery and Meta Blind Signature schemes based on the discrète logarithm problem and their applications", publié par Horster et al. dans les actes du colloque Asiacrypt'94) ou encore en utilisant plusieurs aléas distincts k ou plusieurs secrets distincts x dans la même signature.- other public key systems based on the discrete logarithm, where the equation (m + xr) / k mod q is replaced by another equality involving m, x, r, and k (as explained in the article "Meta Message Recovery and Meta Blind Signature schemes based on the discrete logarithm problem and their applications", published by Horster et al. In the conference proceedings Asiacrypt'94) or by using several distinct hazards k or several distinct secrets x in the same signature.
L'invention est applicable à la signature de chèques électroniques et permet alors de faire de tels chèques avec des cartes à puces à faible coût (résultant de l'utilisation d'un microprocesseur de 8 bits et d'une mémoire non volatile de taille limitée) .The invention is applicable to the signature of electronic checks and then makes it possible to make such checks with smart cards at low cost (resulting from the use of an 8-bit microprocessor and a non-volatile memory of limited size. ).
En effet, le message m peut représenter une transaction effectuée par la carte avec le terminal qui est par exemple le terminal de paiement d'un commerçant. Ce message m est signé. Le terminal vérifie la signature pour accepter le message, donc la transaction, mais ce terminal est également relié à une autorité centrale de gestion (une banque par exemple) qui doit pouvoir elle- même contrôler le message et l'authenticité de la signature avant de débiter le compte du signataire d'une part et/ou créditer le compte du commerçant d'autre part. Ainsi, après avoir exécuté toute la procédure de signature et vérification de signature décrite en détail ci-dessus, le terminal envoie à l'autorité de contrôle le chèque électronique {i, ri, a, s, m}, et l'autorité s'assure que la signature s est la bonne signature, c'est-à-dire que : s = SHA(x, J, i)[SHA(m, a) + xSHA(ri)] mod q et l'autorité crédite le compte du terminal du montant de la transaction définie dans le message m.Indeed, the message m can represent a transaction carried out by the card with the terminal which is for example the payment terminal of a merchant. This message is signed. The terminal checks the signature to accept the message, therefore the transaction, but this terminal is also connected to a central management authority (a bank for example) which must itself be able to check the message and the authenticity of the signature before debit the signatory's account on the one hand and / or credit the merchant's account on the other. Thus, after having executed all the signature and signature verification procedure described in detail above, the terminal sends the electronic check {i, ri, a, s, m} to the control authority, and the authority s 'ensures that the signature s is the correct signature, that is to say that: s = SHA (x, J, i) [SHA (m, a) + xSHA (ri)] mod q and the authority credited the terminal account for the amount of the transaction defined in the message m.
On notera que dans le calcul de la signature par la carte, on peut utiliser l'expression SHA(m, i, a) au lieu de SHA(m, a) . Auquel cas il faut bien sûr que la formule de vérification par le terminal en tienne compte et soit donc :Note that in calculating the signature by the card, we can use the expression SHA (m, i, a) instead of SHA (m, a). In which case, of course, the terminal verification formula must take this into account and therefore be:
H [y(SHA(ri)/s) mod q g(SHA(m, i, a) /s) mod q mod p] = r. et que la formule de vérification de signature par l'autorité en tienne compte également et soit : s = SHA(x, J, i) [SHA(m, i, a) + xSHA(ri) ] mod qH [y (SHA (ri) / s) mod q g (SHA (m, i, a) / s) mod q mod p] = r . and that the signature verification formula by the authority also takes this into account and either: s = SHA (x, J, i) [SHA (m, i, a) + xSHA (ri)] mod q
Si on se réfère aux figures, chaque carte à puce se compose d'une unité de traitement (CPU) 11, d'une interface de communication 10, une mémoire vive 13 (RAM) et/ou une mémoire non inscriptible (ROM) 14 et/ou une mémoire non volatile inscriptible ou réinscriptible (EPROM OU EEPROM) 15.Referring to the figures, each smart card consists of a processing unit (CPU) 11, a communication interface 10, a random access memory 13 (RAM) and / or a non-writable memory (ROM) 14 and / or a writable or rewritable non-volatile memory (EPROM OR EEPROM) 15.
L'unité de traitement 11 et/ou la ROM 14 de la carte à puce contiennent des programmes ou des ressources de calcul correspondant à l'exécution des étapes de calcul effectuées par la carte lors du chargement des coupons et lors de la signature d'un message ou l'émission d'un chèque électronique. Ces programmes comportent notamment les règles de calcul pour la génération de s et les règles d'utilisation de la fonction de hachage SHA. L'unité de calcul et les programmes en ROM comportent également les ressources nécessaires à des multiplications, additions et réductions modulaires. Certaines de ces opérations peuvent être regroupées (par exemple, la réduction modulaire peut être directement intégrée dans la multiplication) .The processing unit 11 and / or the ROM 14 of the smart card contain calculation programs or resources corresponding to the execution of the calculation steps carried out by the card when loading the coupons and when signing a message or the issuance of an electronic check. These programs include in particular the calculation rules for generating s and the rules for using the SHA hash function. The calculation unit and the programs in ROM also include the resources necessary for modular multiplications, additions and reductions. Some of these operations can be grouped together (for example, the modular reduction can be directly integrated into the multiplication).
De même que pour l'algorithme DSA, la RAM de la carte contient le message M et l'aléa a sur lesquels s'applique la fonction de hachage SHA(m, a) ou SHA(m, i, a) par exemple. La mémoire non volatile 15 contient typiquement les paramètres q, x, J et le jeu de couponsAs for the DSA algorithm, the RAM of the card contains the message M and the hazard a to which the hash function SHA (m, a) or SHA (m, i, a) applies for example. The non-volatile memory 15 typically contains the parameters q, x, J and the set of coupons
(ri) précalculés. L'indice i est dans un compteur non volatile incrémenté à chaque nouvelle génération de signature et remis à zéro lors du chargement de coupons.(ri) precalculated. The index i is in a non-volatile counter incremented with each new generation of signature and reset to zero when loading coupons.
L'unité de traitement de la carte commande, via des bus d'adresses et de données 16 et l'interface de communication 10, les opérations de lecture et d'écriture en mémoire 13, 14, et 15.The processing unit of the control card, via address and data buses 16 and the interface of communication 10, read and write operations in memory 13, 14, and 15.
Chaque carte à puce est protégée du monde extérieur par des protections physiques 17. Ces protections devraient être suffisantes pour empêcher toute entité non autorisée d'obtenir la clé secrète x. Les techniques les plus utilisées de nos jours en la matière sont l'intégration de la puce dans un module de sécurité et l'équipement des puces de dispositifs capables de détecter des variations de température, de lumière, ainsi que des tensions et fréquences d'horloge anormales. Des techniques de conception particulières telles que l'embrouiliage de l'accès mémoire sont également utilisées. Le terminal se compose quant à lui au minimum d'une unité de traitement (CPU) 30 et des ressources mémoires 32, 33, 34.Each smart card is protected from the outside world by physical protections 17. These protections should be sufficient to prevent any unauthorized entity from obtaining the secret key x. The techniques most used today in this area are the integration of the chip into a security module and the equipment of the chips of devices capable of detecting variations in temperature, light, as well as voltages and frequencies of abnormal clock. Particular design techniques such as scrambling of memory access are also used. The terminal itself consists of at least one processing unit (CPU) 30 and memory resources 32, 33, 34.
Le CPU 30 commande, via les bus d'adresse et de données 35 et l'interface de communication 31, les opérations de lecture et d'écriture dans les mémoires 32, 33, 34.The CPU 30 controls, via the address and data buses 35 and the communication interface 31, the read and write operations in the memories 32, 33, 34.
Le CPU 30 et/ou la ROM 34 de l'autorité contiennent des programmes ou ressources de calcul permettant de mettre en oeuvre les règles de calcul et fonctions de hachage, ralentissement et compression, multiplication, addition, inversion modulaire, exponentiation et réduction modulaire, nécessaires au calcul des coupons et à la vérification de signature. Certaines de ces opérations peuvent être regroupées (multiplication et réduction modulaire par exemple) .The authority's CPU 30 and / or ROM 34 contain calculation programs or resources making it possible to implement the calculation rules and hash functions, deceleration and compression, multiplication, addition, modular inversion, modular exponentiation and reduction, necessary to calculate coupons and verify signature. Some of these operations can be grouped together (modular multiplication and reduction for example).
L'ensemble de l'invention a été décrite a propos de cartes à puces, mais on comprendra qu'elle est applicable lorsque l'organe signataire est un autre objet, et en particulier un objet portable tel que des cartes PCMCIA qui sont des sortes de cartes à puce à protocoles de transmission parallèle et non série, ou des badges, des cartes sans contacts, etc. La communication peut s'effectuer entre la carte et le terminal soit directement par des signaux électroniques, soit par transmission à distance, hertzienne ou infrarouge. The whole of the invention has been described with regard to smart cards, but it will be understood that it is applicable when the signatory body is another object, and in particular a portable object such as PCMCIA cards which are kinds from smart cards to parallel and non-serial transmission protocols, or badges, contactless cards, etc. Communication can take place between the card and the terminal either directly by electronic signals, or by remote, wireless or infrared transmission.

Claims

REVENDICATIONS
1. Procédé de signature électronique, comportant la génération d'une signature numérique (s) par un organe signataire qui calcule cette signature en utilisant une donnée aléatoire (a) envoyée par un organe vérifieur, et la vérification de la signature par le vérifieur qui vérifie si une condition mathématique faisant intervenir la signature envoyée et la donnée aléatoire est remplie, caractérisé en ce que la vérification de la signature envoyée par le signataire au vérifieur utilise en outre une étape de chronométrage de la durée s'écoulant entre un instant où la donnée aléatoire est envoyée par le vérifieur au signataire et l'instant où la signature utilisant cette donnée revient au vérifieur après calcul par l'organe signataire, la signature étant acceptée si le temps écoulé est inférieur à une seuil déterminé et si la condition mathématique est vérifiée.1. Electronic signature process, comprising the generation of a digital signature (s) by a signatory body which calculates this signature using random data (a) sent by a verifier body, and the verification of the signature by the verifier which verifies if a mathematical condition involving the signature sent and the random data is fulfilled, characterized in that the verification of the signature sent by the signatory to the verifier also uses a step of timing the duration elapsing between an instant when the random data is sent by the verifier to the signatory and the moment when the signature using this data returns to the verifier after calculation by the signatory body, the signature being accepted if the elapsed time is less than a determined threshold and if the mathematical condition is checked.
2. Procédé selon la revendication 1, caractérisé en ce que le calcul de la signature et la vérification sont effectués à partir d'un algorithme du type dans lequel la génération de signature produit deux valeurs2. Method according to claim 1, characterized in that the calculation of the signature and the verification are carried out using an algorithm of the type in which the generation of signature produces two values
{r, s}, s étant calculée par le signataire à partir de r et d'une clé secrète x, et dans lequel la vérification de la signature {r, s} consiste dans la vérification d'une égalité v = f(r, s) = r entre r et une fonction f de r et de s, et en ce que la fonction f est choisie suffisamment complexe pour que la durée de recherche d'une valeur s à partir de cette égalité en l'absence de connaissance de la clé secrète x soit très supérieure, même si elle est faite par un calculateur puissant, à la durée de calcul et de transmission par la carte de la valeur s à partir de r et de la clé secrète, et ceci même si la carte utilise un microprocesseur peu puissant.{r, s}, s being calculated by the signatory from r and a secret key x, and in which the verification of the signature {r, s} consists in the verification of an equality v = f (r , s) = r between r and a function f of r and s, and in that the function f is chosen to be sufficiently complex that the search time for a value s from this equality in the absence of knowledge of the secret key x is much greater, even if it is done by a powerful calculator, than the duration of calculation and transmission by the card of the value s from of r and the secret key, even if the card uses a weak microprocessor.
3. Procédé selon la revendication 2, caractérisé en ce que la fonction f(r, s) fait intervenir aussi un message m à signer.3. Method according to claim 2, characterized in that the function f (r, s) also involves a message m to be signed.
4. Procédé selon l'une des revendications 2 et 3, caractérisé en ce que la fonction f comporte des calculs mathématiques suivis d'une fonction de hachage complexe (H) réalisant à la fois un ralentissement de l'obtention d'un résultat de calcul et une compression de longueur de ce résultat.4. Method according to one of claims 2 and 3, characterized in that the function f comprises mathematical calculations followed by a complex hash function (H) performing both a slowdown in obtaining a result of computation and a compression of length of this result.
5. Procédé selon la revendication 4, caractérisé en ce que la première partie de signature r est établie par d'autres calculs mathématiques, suivis de la même fonction de hachage complexe (H) .5. Method according to claim 4, characterized in that the first signature part r is established by other mathematical calculations, followed by the same complex hash function (H).
6. Procédé de génération de signature et de vérification selon l'une des revendications l à 5, caractérisé en ce que la signature envoyée par le signataire comporte au moins un coupon de signature ri et un complément de signature s qui est calculé à partir du coupon ri et d'une clé secrète x de la carte, le procédé permettant la vérification de signature par le vérifieur à l'aide d'une formule de vérification du type v = f(ri, s) = ri, ce procédé étant caractérisé en ce que a. le coupon de signature est établi à l'avance par une autorité certifiée, en deux étapes :6. A signature generation and verification method according to one of claims l to 5, characterized in that the signature sent by the signatory comprises at least one signature coupon ri and one additional signature s which is calculated from coupon ri and a secret key x of the card, the method allowing signature verification by the verifier using a verification formula of the type v = f (ri, s) = ri, this method being characterized in that a. the signature coupon is established in advance by a certified authority, in two stages:
- calcul d'un nombre représenté par une chaîne binaire longue, à l'aide d'une formule mathématique faisant intervenir des grands nombres binaires; - et modification du résultat par une fonction de compression complexe réduisant fortement la longueur de ce résultat, b. une série de coupons différents de faible longueur sont ainsi préparés à l'avance et stockés dans l'organe signataire, c. la génération de signature comporte l'envoi d'un coupon ri et d'un complément de signature s calculé à partir de ri, et x, d. la vérification de signature comporte un calcul mathématique suivi de la même fonction de compression complexe que celle qui a servi à l'élaboration du coupon, et le résultat est comparé au coupon pour la vérification de signature.- calculation of a number represented by a long binary string, using a mathematical formula involving large binary numbers; - and modification of the result by a complex compression function greatly reducing the length of this result, b. a series of different short coupons are thus prepared in advance and stored in the signatory body, c. the generation of signature involves the sending of a coupon ri and a complement of signature s calculated from ri, and x, d. the signature verification comprises a mathematical calculation followed by the same complex compression function as that which was used to prepare the coupon, and the result is compared to the coupon for the signature verification.
7. Procédé de génération de signature électronique pouvant utiliser une étape de chronométrage selon la revendication 1, ce procédé comportant la génération d'une signature par un organe signataire et la vérification de la signature par un organe vérifieur, caractérisé en ce que la signature envoyée par le signataire comprend au moins un coupon de signature ri et un complément de signature s qui est calculé à partir du coupon ri et d'une clé secrète x de la carte, la vérification de signature par le vérifieur étant effectuée à l'aide d'une formule de vérification du type v = f(ri, s) = ri, et en ce que : a. le coupon de signature est établi à l'avance par une autorité certifiée, en deux étapes : - calcul d'un nombre représenté par une chaîne binaire longue, à l'aide d'une formule mathématique faisant intervenir des grands nombres binaires; - et modification du résultat par une fonction de compression complexe réduisant fortement la longueur de ce résultat, b. une série de coupons différents de faible longueur sont ainsi préparés à l'avance et stockés dans l'organe signataire, c. la génération de signature comporte l'envoi d'un coupon ri et d'un complément de signature s calculé à partir d'au moins ri et x, d. la vérification de signature comporte un calcul mathématique suivi de la même fonction de compression complexe que celle qui a servi à l'élaboration du coupon, et le résultat est comparé au coupon pour la vérification de signature.7. A method of generating an electronic signature that can use a timing step according to claim 1, this method comprising the generation of a signature by a signatory body and the verification of the signature by a verifying body, characterized in that the signature sent by the signatory comprises at least one signature coupon ri and an additional signature s which is calculated from the coupon ri and a secret key x of the card, the signature verification by the verifier being carried out using 'a verification formula of the type v = f (ri, s) = ri, and in that: a. the signature coupon is established in advance by a certified authority, in two stages: - calculation of a number represented by a long binary string, using a mathematical formula involving large binary numbers; - and modification of the result by a complex compression function greatly reducing the length of this result, b. a series of different short coupons are thus prepared in advance and stored in the signatory body, c. the generation of signature involves the sending of a coupon ri and of a complement of signature s calculated from at least ri and x, d. the signature verification comprises a mathematical calculation followed by the same complex compression function as that which was used to prepare the coupon, and the result is compared to the coupon for the signature verification.
8. Procédé selon la revendication 7, caractérisé en ce que la fonction de compression est une fonction de hachage complexe.8. Method according to claim 7, characterized in that the compression function is a complex hash function.
9. Procédé selon l'une des revendications 7 et 8, caractérisé en ce que le calcul du coupon est effectué à partir d'un aléa (J) engendré au départ par la carte et stocké dans la carte pour être réutilisé lorsque le coupon sera utilisé pour l'établissement d'une signature.9. Method according to one of claims 7 and 8, characterized in that the calculation of the coupon is made from a hazard (J) generated at the start by the card and stored in the card to be reused when the coupon is used for establishing a signature.
10. Procédé selon l'une des revendications 7 à 9, caractérisé en ce que, pour déclencher la génération de signature par la carte, l'organe vérifieur envoie un aléa a à la carte, déclenche alors un chronomètre, mesure le temps mis par la carte pour renvoyer le complément de signature s calculé à partir d'au moins l'aléa a et la clé secrète x de la carte, effectue un calcul de vérification de signature à partir d'au moins la signature s et l'aléa a, et accepte la signature si le calcul vérifie une condition prédéterminée et si le temps mis par la carte pour renvoyer la signature s utilisant l'aléa a est inférieur à un seuil prédéterminé.10. Method according to one of claims 7 to 9, characterized in that, to trigger the generation of signature by the card, the verifier sends a random a to the card, then triggers a stopwatch, measures the time taken by the card to return the additional signature s calculated from at least the hazard a and the secret key x of the card, performs a signature verification calculation from at least the signature s and the hazard a , and accepts the signature if the calculation satisfies a predetermined condition and if the time put by the card to return the signature s using the hazard a is less than a predetermined threshold.
11. Procédé selon l'une des revendications 7 à 10, caractérisé en ce que le complément de signature s est établi à partir d'une fonction de hachage SHA(m, a) d'un message m à signer et de l'aléa a , et en ce que la même fonction de hachage est utilisée pour la vérification de signature.11. Method according to one of claims 7 to 10, characterized in that the signature complement s is established from a hash function SHA (m, a) of a message m to be signed and the hazard a, and in that the same hash function is used for signature verification.
12. Procédé selon l'une des revendications 7 à 11, caractérisé en ce que le complément de signature est établi par un calcul faisant intervenir un aléa (J) stocké dans la carte et ayant servi à établir le coupon de signature.12. Method according to one of claims 7 to 11, characterized in that the additional signature is established by a calculation involving a hazard (J) stored in the card and having served to establish the signature coupon.
13. Procédé selon la revendication 12, caractérisé en ce que ce calcul faisant intervenir l'aléa (J) stocké dans la carte fait aussi intervenir une fonction de hachage SHA(x, J, i) portant au moins sur cet aléa (J) et sur un indice i représentant un numéro du coupon utilisé, cette même fonction de hachage SHA(x, J, i) ayant été précédemment utilisée au cours du calcul de chaîne binaire longue prévu dans le calcul du coupon correspondant.13. Method according to claim 12, characterized in that this calculation involving the hazard (J) stored in the card also involves a hash function SHA (x, J, i) relating at least to this hazard (J) and on an index i representing a number of the coupon used, this same hash function SHA (x, J, i) having been previously used during the calculation of the long binary chain provided for in the calculation of the corresponding coupon.
14. Procédé selon l'une des revendications 7 à 13, caractérisé en ce que le complément de signature est établi par un calcul faisant intervenir une fonction de hachage du coupon, la même fonction de hachage du coupon étant utilisée pour la vérification de signature.14. Method according to one of claims 7 to 13, characterized in that the signature complement is established by a calculation involving a hash function of the coupon, the same hash function of the coupon being used for signature verification.
15. Procédé de génération de signatures numériques de messages par un dispositif signataire et de vérification de ces signatures par un dispositif vérifieur, le dispositif signataire comportant des moyens de calcul, de communication et de rétention de données comprenant au moins une mémoire non volatile programmable électriquement, procédé selon lequel on prépare des données chiffrées constituant des coupons de signature ri que l'on charge dans la mémoire non-volatile et que le dispositif signataire utilise pour signer des messages, principalement caractérisé en ce que :15. Method for generating digital signatures of messages by a signing device and verifying these signatures by a device verifier, the signatory device comprising means for calculating, communicating and retaining data comprising at least one electrically programmable non-volatile memory, method according to which encrypted data are prepared constituting signature coupons ri which are loaded into the memory non-volatile and that the signatory device uses to sign messages, mainly characterized in that:
- les coupons sont compressés par application d'une fonction de compression (H) , dite encore fonction de hachage, par une autorité certifiée avant d'être chargés dans la mémoire, et en ce qu'il comporte les échanges suivants :- the coupons are compressed by application of a compression function (H), also called hashing function, by a certified authority before being loaded into the memory, and in that it comprises the following exchanges:
- un message m est transmis et ce message doit être certifié par une signature; le signataire envoie un coupon ri au vérifieur,- a message m is transmitted and this message must be certified by a signature; the signatory sends a laugh coupon to the verifier,
- le vérifieur envoie un nombre aléatoire a au signataire et déclenche un chronomètre, - le signataire calcule la signature s du message et l'envoie au vérifieur,- the verifier sends a random number a to the signatory and starts a stopwatch, - the signatory calculates the signature s of the message and sends it to the verifier,
- le vérifieur arrête le chronomètre et vérifie que la signature a été obtenue par le secret détenu dans la carte et le coupon ri reçu; cette vérification est faite en vérifiant l'égalité suivante : v = f(ri, s, m) = ri- the verifier stops the chronometer and verifies that the signature has been obtained by the secret held in the card and the coupon received ri; this check is made by checking the following equality: v = f (ri, s, m) = r i
- le vérifieur accepte la signature si la condition de vérification v = r est remplie et si le temps chronométré ne dépasse pas une durée prédéterminé impartie. - the verifier accepts the signature if the verification condition v = r is met and if the timed time does not exceed a predetermined duration.
EP96915071A 1995-04-20 1996-04-22 Process for generating electronic signatures, in particular for smart cards Withdrawn EP0766894A1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
FR9504753A FR2733378B3 (en) 1995-04-20 1995-04-20 METHOD FOR GENERATING DIGITAL SIGNATURES OF MESSAGES
FR9504753 1995-04-20
FR9507668 1995-06-27
FR9507668A FR2733379B1 (en) 1995-04-20 1995-06-27 PROCESS FOR GENERATING ELECTRONIC SIGNATURES, ESPECIALLY FOR SMART CARDS
PCT/FR1996/000612 WO1996033567A1 (en) 1995-04-20 1996-04-22 Process for generating electronic signatures, in particular for smart cards

Publications (1)

Publication Number Publication Date
EP0766894A1 true EP0766894A1 (en) 1997-04-09

Family

ID=26231904

Family Applications (1)

Application Number Title Priority Date Filing Date
EP96915071A Withdrawn EP0766894A1 (en) 1995-04-20 1996-04-22 Process for generating electronic signatures, in particular for smart cards

Country Status (5)

Country Link
US (1) US5910989A (en)
EP (1) EP0766894A1 (en)
JP (1) JP3433258B2 (en)
FR (1) FR2733379B1 (en)
WO (1) WO1996033567A1 (en)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE512748C2 (en) 1997-05-15 2000-05-08 Access Security Sweden Ab Procedure, active card, system and use of active card to carry out an electronic transaction
JP3812123B2 (en) * 1998-02-12 2006-08-23 富士ゼロックス株式会社 Authentication method and apparatus
US6505773B1 (en) * 1998-04-03 2003-01-14 International Business Machines Corporation Authenticated electronic coupon issuing and redemption
US6237098B1 (en) * 1998-04-22 2001-05-22 Interface Logic Systems, Inc. System for protecting weight verification device private key
DE19820605A1 (en) * 1998-05-08 1999-11-11 Giesecke & Devrient Gmbh Method for secure distribution of software
US7047416B2 (en) * 1998-11-09 2006-05-16 First Data Corporation Account-based digital signature (ABDS) system
US6820202B1 (en) * 1998-11-09 2004-11-16 First Data Corporation Account authority digital signature (AADS) system
CA2361627A1 (en) 1999-01-27 2000-08-10 France Telecom Method, system, device for proving the authenticity of an entity and/or the integrity and/or the authenticity of a message
FR2788911A1 (en) * 1999-01-27 2000-07-28 France Telecom Banking message authentication technique having private/public word transfer power two relationship connected with authentication unit knowing relation and carrying out confirmation calculations.
FR2793571B1 (en) * 1999-05-11 2003-10-31 Gemplus Card Int COUNTER-MEASUREMENT METHOD IN AN ELECTRONIC COMPONENT USING A SECRET AND DYNAMIC KEY CRYPTOGRAPHY ALGORITHM
US6895514B1 (en) * 1999-06-25 2005-05-17 Lucent Technologies Inc. Method and apparatus for achieving secure password access
DE19939281A1 (en) * 1999-08-19 2001-02-22 Ibm Access control procedure for access to the contents of web-sites, involves using a mobile security module, such as a smart card
AU766102B2 (en) * 1999-10-01 2003-10-09 France Telecom Method, system, device for proving authenticity of an entity or integrity of a message
KR20020060189A (en) * 1999-10-01 2002-07-16 마드 리즈크 Set of particular keys for proving authenticity of an entity or the integrity of a message
SG95612A1 (en) * 1999-12-24 2003-04-23 Kent Ridge Digital Labs Remote authentication based on exchanging signals representing biometrics information
AU777912B2 (en) * 2000-02-29 2004-11-04 International Business Machines Corporation System and method of associating devices to secure commercial transactions performed over the internet
FR2809894B1 (en) * 2000-05-31 2002-10-25 France Telecom CRYPTOGRAPHY METHOD, MICROCIRCUIT FOR CHIP CARD AND CHIP CARDS INCLUDING SUCH MICROCIRCUIT
US7043456B2 (en) * 2000-06-05 2006-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Mobile electronic transaction personal proxy
FR2810138B1 (en) * 2000-06-08 2005-02-11 Bull Cp8 METHOD FOR SECURE STORAGE OF SENSITIVE DATA IN A MEMORY OF AN ELECTRONIC CHIP-BASED SYSTEM, IN PARTICULAR A CHIP CARD, AND ON-BOARD SYSTEM IMPLEMENTING THE METHOD
FR2811093A1 (en) * 2000-06-30 2002-01-04 St Microelectronics Sa DEVICE AND METHOD FOR EVALUATING ALGORITHMS
US6871278B1 (en) 2000-07-06 2005-03-22 Lasercard Corporation Secure transactions with passive storage media
US7082533B2 (en) * 2000-08-04 2006-07-25 First Data Corporation Gauging risk in electronic communications regarding accounts in ABDS system
US6983368B2 (en) * 2000-08-04 2006-01-03 First Data Corporation Linking public key of device to information during manufacture
US7558965B2 (en) * 2000-08-04 2009-07-07 First Data Corporation Entity authentication in electronic communications by providing verification status of device
US6978369B2 (en) * 2000-08-04 2005-12-20 First Data Corporation Person-centric account-based digital signature system
US7552333B2 (en) 2000-08-04 2009-06-23 First Data Corporation Trusted authentication digital signature (tads) system
US7010691B2 (en) * 2000-08-04 2006-03-07 First Data Corporation ABDS system utilizing security information in authenticating entity access
US6789189B2 (en) * 2000-08-04 2004-09-07 First Data Corporation Managing account database in ABDS system
US7096354B2 (en) * 2000-08-04 2006-08-22 First Data Corporation Central key authority database in an ABDS system
CA2417770C (en) * 2000-08-04 2011-10-25 First Data Corporation Trusted authentication digital signature (tads) system
FR2814620B1 (en) * 2000-09-28 2002-11-15 Gemplus Card Int METHOD FOR ACCELERATED TRANSMISSION OF ELECTRONIC SIGNATURE
US7188362B2 (en) * 2001-03-09 2007-03-06 Pascal Brandys System and method of user and data verification
US20020147918A1 (en) * 2001-04-05 2002-10-10 Osthoff Harro R. System and method for securing information in memory
US7000115B2 (en) * 2001-06-19 2006-02-14 International Business Machines Corporation Method and apparatus for uniquely and authoritatively identifying tangible objects
US6834795B1 (en) * 2001-06-29 2004-12-28 Sun Microsystems, Inc. Secure user authentication to computing resource via smart card
US20040128508A1 (en) * 2001-08-06 2004-07-01 Wheeler Lynn Henry Method and apparatus for access authentication entity
US6641050B2 (en) 2001-11-06 2003-11-04 International Business Machines Corporation Secure credit card
US8396809B1 (en) 2002-05-14 2013-03-12 Hewlett-Packard Development Company, L.P. Method for reducing purchase time
US6934664B1 (en) 2002-05-20 2005-08-23 Palm, Inc. System and method for monitoring a security state of an electronic device
FR2842050B1 (en) * 2002-07-04 2004-11-12 Roger Suanez METHOD AND SYSTEM FOR SECURING THE TRANSMISSION OF MESSAGES
TWI234706B (en) * 2002-07-26 2005-06-21 Hon Hai Prec Ind Co Ltd System and method for firmware authentication
US7386276B2 (en) * 2002-08-27 2008-06-10 Sama Robert J Wireless information retrieval and content dissemination system and method
US7194628B1 (en) 2002-10-28 2007-03-20 Mobile-Mind, Inc. Methods and systems for group authentication using the naccache-stern cryptosystem in accordance with a prescribed rule
US20030177051A1 (en) * 2003-03-13 2003-09-18 Robin Driscoll Method and system for managing worker resources
JP2006527430A (en) * 2003-06-04 2006-11-30 マスターカード インターナショナル インコーポレーテッド Customer authentication system and method in commercial transactions
US7706574B1 (en) 2003-11-06 2010-04-27 Admitone Security, Inc. Identifying and protecting composed and transmitted messages utilizing keystroke dynamics
CN100340937C (en) * 2004-04-12 2007-10-03 华为技术有限公司 Software protecting method and device
GB2415579B (en) * 2004-06-23 2006-12-20 Hewlett Packard Development Co Cryptographic method and apparatus
US8433647B1 (en) 2004-08-25 2013-04-30 Vectorsgi, Inc. Method and system for processing electronic checks
US7620819B2 (en) * 2004-10-04 2009-11-17 The Penn State Research Foundation System and method for classifying regions of keystroke density with a neural network
US7370202B2 (en) * 2004-11-02 2008-05-06 Voltage Security, Inc. Security device for cryptographic communications
US20060153367A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Digital signature system based on shared knowledge
US7936869B2 (en) * 2005-01-07 2011-05-03 First Data Corporation Verifying digital signature based on shared knowledge
US7490239B2 (en) * 2005-01-07 2009-02-10 First Data Corporation Facilitating digital signature based on ephemeral private key
US20060153369A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Providing cryptographic key based on user input data
US20060153370A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Generating public-private key pair based on user input data
US7869593B2 (en) * 2005-01-07 2011-01-11 First Data Corporation Software for providing based on shared knowledge public keys having same private key
US20060156013A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Digital signature software using ephemeral private key and system
US20060153364A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Asymmetric key cryptosystem based on shared knowledge
US7693277B2 (en) * 2005-01-07 2010-04-06 First Data Corporation Generating digital signatures using ephemeral cryptographic key
US7593527B2 (en) * 2005-01-07 2009-09-22 First Data Corporation Providing digital signature and public key based on shared knowledge
US8020005B2 (en) 2005-12-23 2011-09-13 Scout Analytics, Inc. Method and apparatus for multi-model hybrid comparison system
US20070198712A1 (en) * 2006-02-07 2007-08-23 Biopassword, Inc. Method and apparatus for biometric security over a distributed network
US7526412B2 (en) * 2006-03-31 2009-04-28 Biopassword, Inc. Method and apparatus for multi-distant weighted scoring system
US20070300077A1 (en) * 2006-06-26 2007-12-27 Seshadri Mani Method and apparatus for biometric verification of secondary authentications
GB2443863B (en) * 2006-10-30 2011-05-11 Hewlett Packard Development Co Method and system for generating data transaction id
US7774607B2 (en) * 2006-12-18 2010-08-10 Microsoft Corporation Fast RSA signature verification
KR20230116073A (en) 2007-09-24 2023-08-03 애플 인크. Embedded authentication systems in an electronic device
US8332932B2 (en) * 2007-12-07 2012-12-11 Scout Analytics, Inc. Keystroke dynamics authentication techniques
US8600120B2 (en) 2008-01-03 2013-12-03 Apple Inc. Personal computing device control using face detection and recognition
FR2931326A1 (en) * 2008-05-16 2009-11-20 St Microelectronics Rousset VERIFYING THE INTEGRITY OF AN ENCRYPTION KEY
US8656177B2 (en) * 2008-06-23 2014-02-18 Voltage Security, Inc. Identity-based-encryption system
US9385871B2 (en) * 2011-05-23 2016-07-05 Samsung Electronics Co., Ltd Method and apparatus for authenticating a non-volatile memory device
US9002322B2 (en) 2011-09-29 2015-04-07 Apple Inc. Authentication with secondary approver
WO2013125245A1 (en) * 2012-02-22 2013-08-29 パナソニック株式会社 Reader device, data processing device equipped with same, and authenticity determination method
US8687902B2 (en) * 2012-03-29 2014-04-01 Intel Corporation System, method, and computer program product for decompression of block compressed images
US9898642B2 (en) 2013-09-09 2018-02-20 Apple Inc. Device, method, and graphical user interface for manipulating user interfaces based on fingerprint sensor inputs
KR101952928B1 (en) 2013-10-30 2019-02-27 애플 인크. Displaying relevant user interface objects
US10043185B2 (en) 2014-05-29 2018-08-07 Apple Inc. User interface for payments
CN104077616B (en) * 2014-07-02 2017-08-25 广州广电运通金融电子股份有限公司 Self-aided terminal retain card processing method and system
US10066959B2 (en) 2014-09-02 2018-09-04 Apple Inc. User interactions for a mapping application
WO2016129028A1 (en) * 2015-02-09 2016-08-18 株式会社日立製作所 Business coordination system and business coordination method
US9940637B2 (en) 2015-06-05 2018-04-10 Apple Inc. User interface for loyalty accounts and private label accounts
US20160358133A1 (en) 2015-06-05 2016-12-08 Apple Inc. User interface for loyalty accounts and private label accounts for a wearable device
US10380681B2 (en) * 2015-09-08 2019-08-13 Bank Of America Corporation Real-time data processing
US10417616B2 (en) * 2015-09-08 2019-09-17 Bank Of America Corporation Real-time data processing
DK179186B1 (en) 2016-05-19 2018-01-15 Apple Inc REMOTE AUTHORIZATION TO CONTINUE WITH AN ACTION
US10621581B2 (en) 2016-06-11 2020-04-14 Apple Inc. User interface for transactions
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
US9842330B1 (en) 2016-09-06 2017-12-12 Apple Inc. User interfaces for stored-value accounts
US10860199B2 (en) 2016-09-23 2020-12-08 Apple Inc. Dynamically adjusting touch hysteresis based on contextual data
US10496808B2 (en) 2016-10-25 2019-12-03 Apple Inc. User interface for managing access to credentials for use in an operation
US20180130035A1 (en) * 2016-11-09 2018-05-10 Ca, Inc. Advanced cash reservation system in atms
KR102185854B1 (en) 2017-09-09 2020-12-02 애플 인크. Implementation of biometric authentication
KR102301599B1 (en) 2017-09-09 2021-09-10 애플 인크. Implementation of biometric authentication
EP3502941B1 (en) * 2017-12-19 2021-01-20 Riddle & Code GmbH Dongles and method for providing a digital signature
US11170085B2 (en) 2018-06-03 2021-11-09 Apple Inc. Implementation of biometric authentication
US11100349B2 (en) 2018-09-28 2021-08-24 Apple Inc. Audio assisted enrollment
US10860096B2 (en) 2018-09-28 2020-12-08 Apple Inc. Device control using gaze information
US11328352B2 (en) 2019-03-24 2022-05-10 Apple Inc. User interfaces for managing an account
US11477609B2 (en) 2019-06-01 2022-10-18 Apple Inc. User interfaces for location-related communications
US11481094B2 (en) 2019-06-01 2022-10-25 Apple Inc. User interfaces for location-related communications
KR102602556B1 (en) 2019-09-29 2023-11-14 애플 인크. Account management user interfaces
US11169830B2 (en) 2019-09-29 2021-11-09 Apple Inc. Account management user interfaces
RU2720320C1 (en) * 2019-10-22 2020-04-28 Акционерное общество "Актив-софт" (АО "Актив-софт") Method for trusted storage on a smart card of a list of revoked certificates (crl)
RU2722979C1 (en) * 2019-11-08 2020-06-05 Акционерное общество "Актив-софт" (АО "Актив-софт") Method of storing, updating and using on a smart card root certificates of an electronic signature
DK202070633A1 (en) 2020-04-10 2021-11-12 Apple Inc User interfaces for enabling an activity
US11816194B2 (en) 2020-06-21 2023-11-14 Apple Inc. User interfaces for managing secure operations

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61139873A (en) * 1984-12-13 1986-06-27 Casio Comput Co Ltd Authorization system
US5231668A (en) * 1991-07-26 1993-07-27 The United States Of America, As Represented By The Secretary Of Commerce Digital signature algorithm
FR2713419B1 (en) * 1993-12-02 1996-07-05 Gemplus Card Int Method for generating DSA signatures with low cost portable devices.

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO9633567A1 *

Also Published As

Publication number Publication date
US5910989A (en) 1999-06-08
WO1996033567A1 (en) 1996-10-24
FR2733379B1 (en) 1997-06-20
JP3433258B2 (en) 2003-08-04
JPH10506727A (en) 1998-06-30
FR2733379A1 (en) 1996-10-25

Similar Documents

Publication Publication Date Title
EP0766894A1 (en) Process for generating electronic signatures, in particular for smart cards
EP0656710B1 (en) Method for generating DSA dignatures with low cost portable devices
EP0643513B1 (en) Method for verifying signatures in a communication system
EP2446579B1 (en) Process for mutually authenticating a reader and a radio tag
FR2759226A1 (en) PROTOCOL FOR VERIFYING A DIGITAL SIGNATURE
EP1441313B1 (en) Public key cryptographical method for protecting an electronic chip against fraud
FR2760583A1 (en) DATA CARD VERIFICATION SYSTEM
EP1166496B1 (en) Authentication and signature method for messages using reduced size of challenge data and corresponding systems
EP1807967B1 (en) Method for secure delegation of calculation of a bilinear application
FR2893797A1 (en) CUSTOMIZING A BANK CARD FOR OTHER APPLICATIONS
EP1791292A1 (en) Personalisation of an electronic circuit
EP3767876A1 (en) Method for verifying a transaction in a blockchain type database
FR3098947A1 (en) Process for processing a transaction issued from a proof entity
EP0909495B1 (en) Public key cryptography method
CA2947920A1 (en) Data encryption process for methods of payment, corresponding methods of payment, server and programs
EP0769768B1 (en) Cryptographic method to protect against fraud
FR3033205A1 (en) METHOD OF TRANSACTING WITHOUT PHYSICAL SUPPORT OF A SECURITY IDENTIFIER AND WITHOUT TOKEN, SECURED BY STRUCTURAL DECOUPLING OF PERSONAL AND SERVICE IDENTIFIERS.
WO2003055134A9 (en) Cryptographic method for distributing load among several entities and devices therefor
EP1470663B1 (en) Method for generating and verifying electronic signatures
WO2004006497A1 (en) Cryptographic method and devices for facilitating calculations during transactions
EP0980607A1 (en) Pseudo-random generator based on a hash coding function for cryptographic systems requiring random drawing
FR2733378A1 (en) Electronic Signature Method for Smart Cards
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
WO2008001009A1 (en) Public-key cryptographic system and method for the authentication of a first entity by a second entity
WO2003025739A1 (en) Secure method for using a cryptographic algorithm and corresponding component

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

17P Request for examination filed

Effective date: 19961217

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): BE CH DE FR GB IT LI

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

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

17Q First examination report despatched

Effective date: 20031106

18W Application withdrawn

Effective date: 20031024