WO1996033567A1 - Procede de generation de signatures electroniques notamment pour cartes a puces - Google Patents

Procede de generation de signatures electroniques notamment pour cartes a puces Download PDF

Info

Publication number
WO1996033567A1
WO1996033567A1 PCT/FR1996/000612 FR9600612W WO9633567A1 WO 1996033567 A1 WO1996033567 A1 WO 1996033567A1 FR 9600612 W FR9600612 W FR 9600612W WO 9633567 A1 WO9633567 A1 WO 9633567A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
card
coupon
verification
calculation
Prior art date
Application number
PCT/FR1996/000612
Other languages
English (en)
Inventor
David Naccache
Original Assignee
Gemplus
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/fr
Application filed by Gemplus filed Critical Gemplus
Priority to US08/765,483 priority Critical patent/US5910989A/en
Priority to JP53153296A priority patent/JP3433258B2/ja
Priority to EP96915071A priority patent/EP0766894A1/fr
Publication of WO1996033567A1 publication Critical patent/WO1996033567A1/fr

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).

Landscapes

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

Abstract

L'invention concerne les procédés de génération de signature numérique de messages électroniques. L'invention propose de modifier les algorithmes de génération de signature tels que DSA ('Digital Signature Algorithm') pour permettre à des cartes à puces à faibles ressources de calcul et de mémoire de produire des signatures numériques avec un haut degré de sécurité malgré leurs faibles ressources. On prévoit que le terminal de vérification de signature envoie un nombre aléatoire a et chronomètre le temps mis par la carte pour renvoyer une signature s utilisant ce nombre aléatoire. Si le temps est supérieur à une durée déterminée, la signature est rejetée même si la vérification de son authenticité est positive. D'autre part, on prévoit qu'une partie de la signature (partie qui n'utilise pas la clé secrète de la carte mais seulement des paramètres publics de l'algorithme) est précalculée et stockée dans la carte sous forme de coupons de signature obtenus par une fonction de compression de sorte qu'ils ont une faible longueur. Seule la deuxième partie de signature est à calculer par la carte, et on s'arrange pour que les calculs à effecturer soient simples pour que la carte n'ait pas besoin de ressources de calcul et de mémoire importantes.

Description

PROCEDE DE GENERATION DE SIGNATURES ELECTRONIQUES, NOTAMMENT POUR CARTES A PUCES
L'invention concerne un procédé de génération de signatures numériques de messages électroniques.
Le procédé s'applique particulièrement à la signature de messages par des appareils portables du type carte à puce à microprocesseur.
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.
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.
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.
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.
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.
Les paramètres de l'algorithme DSA sont les suivants :
- un nombre premier p tel que 2L_1 < p < 2L pour L compris entre 512 et 1024 (bornes comprises) , et
L = 64a pour un a entier quelconque;
- un nombre premier q tel que 2159 < q < 2160 et p-1 est un multiple de q;
- un nombre g, d'ordre q odulo p, tel que : g = ^P-1''^ modulo p, où h est un entier quelconque vérifiant
1 < h < p-1 et 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é) ;
- 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;
- un nombre k généré aléatoirement ou pseudo- aléatoirement, tel que 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.
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 :
If r = (g mod p) mod q, et 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
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.
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.
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.
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é.
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.
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.
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) .
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.
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.
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.
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.
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.
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_.
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;
- 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.
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.
On peut encore améliorer la sécurité par une ou plusieurs des caractéristiques suivantes :
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.
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.
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.
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.
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 hachage
SHA(ri) étant utilisée pour la vérification de signature.
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,
- 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
- 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.
Pour simplifier, dans toute la suite on parlera surtout de carte pour le signataire ou signataire.
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;
- 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.
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.
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.
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.
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.
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.
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.
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.
CHARGEMENT DE COUPONS DANS LA CARTE
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.
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 :
ki » {l/(SHA(x, J, i)} mod q
et ri= H(g x mod p) ; H est la fonction de ralentissement et de 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 τ^ .
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.
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.
UTILISATION D'UN COUPON POUR SIGNER UN 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) :
1. La carte - extrait l'état i du compteur
(représentant l'indice courant de la signature qui va être produite) ,
- extrait de la mémoire non volatile l'aléa J, le secret x, le coupon ri correspondant à 1'indice 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 ;
- calcule A = xSHA(ri) mod q - incrémente i (pour une prochaine signature)
- envoie ri au terminal vérifieur; cet envoi représente la première partie de la 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.
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 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.
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.
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 :
[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.
L'égalité doit donc être transformée en :
H[y(SHA(ri)/s) mod q g(SHA(m,a) /s) mod q moά p]
≈ H(gki 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.
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.
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.
Ceci donne une indication de la méthodologie à suivre pour choisir la fonction de ralentissement H et la durée de seuil.
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 :
- Rueppel-Nyberg : "New signature schemes based on the discrète logarithm proble " publié dans les actes du colloque Eurocrypt 94.
Schnorr : "Efficient identification and signatures for smart-cards", publié dans les actes du colloque Crypto'89.
- 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.
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.
- 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.
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) .
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.
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 :
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 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.
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) .
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 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.
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.
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.
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.
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) .
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.

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.
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 valeurs
{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.
3. Procédé selon la revendication 2, caractérisé en ce que la fonction f(r, s) fait intervenir aussi un message m à signer.
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.
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) .
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 :
- 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.
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.
8. Procédé selon la revendication 7, caractérisé en ce que la fonction de compression est une fonction de hachage complexe.
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.
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é.
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.
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.
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.
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.
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 :
- 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 :
- 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,
- 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
- 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.
PCT/FR1996/000612 1995-04-20 1996-04-22 Procede de generation de signatures electroniques notamment pour cartes a puces WO1996033567A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US08/765,483 US5910989A (en) 1995-04-20 1996-04-22 Method for the generation of electronic signatures, in particular for smart cards
JP53153296A JP3433258B2 (ja) 1995-04-20 1996-04-22 スマートカード用電子署名の生成方法
EP96915071A EP0766894A1 (fr) 1995-04-20 1996-04-22 Procede de generation de signatures electroniques notamment pour cartes a puces

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR9504753A FR2733378B3 (fr) 1995-04-20 1995-04-20 Procede de generation de signatures numeriques de messages
FR95/04753 1995-06-27
FR9507668A FR2733379B1 (fr) 1995-04-20 1995-06-27 Procede de generation de signatures electroniques, notamment pour cartes a puces
FR95/07668 1995-06-27

Publications (1)

Publication Number Publication Date
WO1996033567A1 true WO1996033567A1 (fr) 1996-10-24

Family

ID=26231904

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1996/000612 WO1996033567A1 (fr) 1995-04-20 1996-04-22 Procede de generation de signatures electroniques notamment pour cartes a puces

Country Status (5)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2788908A1 (fr) * 1999-01-27 2000-07-28 France Telecom Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message
WO2000046946A2 (fr) * 1999-01-27 2000-08-10 France Telecom Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message
WO2001026279A1 (fr) * 1999-10-01 2001-04-12 France Telecom Procede, systeme, dispositif a prouver l'authenticite d'une entite ou l'integrite d'un message
US7254561B1 (en) 1997-05-15 2007-08-07 Comex Electronics Ab Method and device for performing electronic transactions
KR100844546B1 (ko) * 1999-10-01 2008-07-08 프랑스 텔레콤 엔티티의 진정성 또는 메시지의 무결성 검증방법, 시스템 및 장치
US20210167964A1 (en) * 2017-12-19 2021-06-03 Riddle & Code Gmbh Dongles and method for providing a digital signature

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3812123B2 (ja) * 1998-02-12 2006-08-23 富士ゼロックス株式会社 認証方法および装置
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 (de) * 1998-05-08 1999-11-11 Giesecke & Devrient Gmbh Verfahren zur sicheren Verteilung von Software
US6820202B1 (en) * 1998-11-09 2004-11-16 First Data Corporation Account authority digital signature (AADS) system
US7047416B2 (en) * 1998-11-09 2006-05-16 First Data Corporation Account-based digital signature (ABDS) system
FR2793571B1 (fr) * 1999-05-11 2003-10-31 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete et dynamique
US6895514B1 (en) * 1999-06-25 2005-05-17 Lucent Technologies Inc. Method and apparatus for achieving secure password access
DE19939281A1 (de) * 1999-08-19 2001-02-22 Ibm Verfahren und Vorrichtung zur Zugangskontrolle zu Inhalten von Web-Seiten unter Verwendung eines mobilen Sicherheitsmoduls
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 (fr) * 2000-05-31 2002-10-25 France Telecom Procede de cryptographie, microcircuit pour carte a puce et cartes a puce incluant un tel microcircuit
US7043456B2 (en) * 2000-06-05 2006-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Mobile electronic transaction personal proxy
FR2810138B1 (fr) * 2000-06-08 2005-02-11 Bull Cp8 Procede de stockage securise d'une donnee sensible dans une memoire d'un systeme embarque a puce electronique, notamment d'une carte a puce, et systeme embarque mettant en oeuvre le procede
FR2811093A1 (fr) * 2000-06-30 2002-01-04 St Microelectronics Sa Dispositif et procede d'evaluation d'algorithmes
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
CA2418050C (fr) * 2000-08-04 2014-05-20 First Data Corporation Clef publique de liaison de dispositif d'information pendant la fabrication
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
US7552333B2 (en) 2000-08-04 2009-06-23 First Data Corporation Trusted authentication digital signature (tads) system
US7558965B2 (en) * 2000-08-04 2009-07-07 First Data Corporation Entity authentication in electronic communications by providing verification status of device
US6983368B2 (en) * 2000-08-04 2006-01-03 First Data Corporation Linking public key of device to information during manufacture
US7096354B2 (en) * 2000-08-04 2006-08-22 First Data Corporation Central key authority database in an ABDS system
US6978369B2 (en) * 2000-08-04 2005-12-20 First Data Corporation Person-centric account-based digital signature system
FR2814620B1 (fr) * 2000-09-28 2002-11-15 Gemplus Card Int Procede de transmission accelere de signature electronique
AU2002248604A1 (en) * 2001-03-09 2002-09-24 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 (fr) * 2002-07-04 2004-11-12 Roger Suanez Procede et systeme de securisation de transmission de 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
CA2528451A1 (fr) * 2003-06-04 2005-01-06 Mastercard International Incorporated Authentification de la clientele dans des transactions commerciales electroniques
US7706574B1 (en) 2003-11-06 2010-04-27 Admitone Security, Inc. Identifying and protecting composed and transmitted messages utilizing keystroke dynamics
CN100340937C (zh) * 2004-04-12 2007-10-03 华为技术有限公司 一种软件保护方法及装置
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
US7593527B2 (en) * 2005-01-07 2009-09-22 First Data Corporation Providing digital signature and public key based on shared knowledge
US20060156013A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Digital signature software using ephemeral private key and system
US20060153369A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Providing cryptographic key based on user input data
US7936869B2 (en) * 2005-01-07 2011-05-03 First Data Corporation Verifying digital signature based on shared knowledge
US20060153364A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Asymmetric key cryptosystem based on shared knowledge
US7869593B2 (en) * 2005-01-07 2011-01-11 First Data Corporation Software for providing based on shared knowledge public keys having same private key
US7693277B2 (en) * 2005-01-07 2010-04-06 First Data Corporation Generating digital signatures using ephemeral cryptographic key
US20060153367A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Digital signature system based on shared knowledge
US7490239B2 (en) * 2005-01-07 2009-02-10 First Data Corporation Facilitating digital signature based on ephemeral private key
US20060153370A1 (en) * 2005-01-07 2006-07-13 Beeson Curtis L Generating public-private key pair based on user input data
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
EP2203865A2 (fr) 2007-09-24 2010-07-07 Apple Inc. Systèmes d'authentification incorporés dans un dispositif électronique
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 (fr) * 2008-05-16 2009-11-20 St Microelectronics Rousset Verification d'integrite d'une cle de chiffrement
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
US9016568B2 (en) 2012-02-22 2015-04-28 Panasonic Intellectual Property Management Co., Ltd. Reader device, data processing apparatus mounted with the same and genuine/counterfeit judgment 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
KR102405189B1 (ko) 2013-10-30 2022-06-07 애플 인크. 관련 사용자 인터페이스 객체를 표시
US9483763B2 (en) 2014-05-29 2016-11-01 Apple Inc. User interface for payments
CN104077616B (zh) * 2014-07-02 2017-08-25 广州广电运通金融电子股份有限公司 自助终端吞卡处理方法和系统
US10066959B2 (en) 2014-09-02 2018-09-04 Apple Inc. User interactions for a mapping application
JP6310092B2 (ja) * 2015-02-09 2018-04-11 株式会社日立製作所 業務連携システムおよび業務連携方法
US20160358133A1 (en) 2015-06-05 2016-12-08 Apple Inc. User interface for loyalty accounts and private label accounts for a wearable device
US9940637B2 (en) 2015-06-05 2018-04-10 Apple Inc. User interface for loyalty accounts and private label accounts
US10417616B2 (en) * 2015-09-08 2019-09-17 Bank Of America Corporation Real-time data processing
US10380681B2 (en) * 2015-09-08 2019-08-13 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
US20180068313A1 (en) 2016-09-06 2018-03-08 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 (ko) 2017-09-09 2020-12-02 애플 인크. 생체측정 인증의 구현
JP6736686B1 (ja) 2017-09-09 2020-08-05 アップル インコーポレイテッドApple Inc. 生体認証の実施
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
EP4300277A3 (fr) 2019-09-29 2024-03-13 Apple Inc. Interfaces utilisateur de gestion de compte
US11169830B2 (en) 2019-09-29 2021-11-09 Apple Inc. Account management user interfaces
RU2720320C1 (ru) * 2019-10-22 2020-04-28 Акционерное общество "Актив-софт" (АО "Актив-софт") Способ доверенного хранения на смарт-карте списка отозванных сертификатов (crl)
RU2722979C1 (ru) * 2019-11-08 2020-06-05 Акционерное общество "Актив-софт" (АО "Актив-софт") Способ хранения, обновления и использования на смарт-карте корневых сертификатов электронной подписи
DK180985B1 (da) 2020-04-10 2022-09-02 Apple Inc Brugergrænseflader for muliggørelse af en aktivitet
US11816194B2 (en) 2020-06-21 2023-11-14 Apple Inc. User interfaces for managing secure operations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0186038A2 (fr) * 1984-12-13 1986-07-02 Casio Computer Company Limited Dispositif d'identification

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231668A (en) * 1991-07-26 1993-07-27 The United States Of America, As Represented By The Secretary Of Commerce Digital signature algorithm
FR2713419B1 (fr) * 1993-12-02 1996-07-05 Gemplus Card Int Procédé de génération de signatures DSA avec des appareils portables à bas coûts.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0186038A2 (fr) * 1984-12-13 1986-07-02 Casio Computer Company Limited Dispositif d'identification

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
B. SCHNEIER: "DIGITAL SIGNATURES", BYTE, vol. 18, no. 12, November 1993 (1993-11-01), PETERBOROUGH (US), XP000408886 *
SCHNORR C P: "Efficient signature generation by smart cards", JOURNAL OF CRYPTOLOGY, 1991, USA, vol. 4, no. 3, ISSN 0933-2790, pages 161 - 174, XP000573164 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254561B1 (en) 1997-05-15 2007-08-07 Comex Electronics Ab Method and device for performing electronic transactions
US7266197B1 (en) 1999-01-27 2007-09-04 France Telcom Method, system, device for proving the authenticity of an entity and/or the integrity and/or the authenticity of a message using specific prime factors
WO2000046946A2 (fr) * 1999-01-27 2000-08-10 France Telecom Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message
US7386122B1 (en) 1999-01-27 2008-06-10 France Telecom Method for proving the authenticity or integrity of a message by means of a public exponent equal to the power of two
WO2000045550A3 (fr) * 1999-01-27 2002-04-25 France Telecom Procede destine a prouver l'authenticite d'une entite ou l'integrite d'un message au moyen d'un exposant public egal a une puissance de deux
WO2000046946A3 (fr) * 1999-01-27 2002-10-10 France Telecom Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message
FR2824974A1 (fr) * 1999-01-27 2002-11-22 France Telecom Procede destine a prouver l'authenticite d'une entite ou l'integrite d'un message au moyen d'un exposant public egal a une puissance de deux.
FR2788908A1 (fr) * 1999-01-27 2000-07-28 France Telecom Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message
US7080254B1 (en) 1999-10-01 2006-07-18 France Telecom Method, system, device for proving authenticity of an entity or integrity of a message
CN100380862C (zh) * 1999-10-01 2008-04-09 法国电信公司 验证实体真实性或消息完整性的方法、系统、设备
WO2001026279A1 (fr) * 1999-10-01 2001-04-12 France Telecom Procede, systeme, dispositif a prouver l'authenticite d'une entite ou l'integrite d'un message
KR100844546B1 (ko) * 1999-10-01 2008-07-08 프랑스 텔레콤 엔티티의 진정성 또는 메시지의 무결성 검증방법, 시스템 및 장치
US20210167964A1 (en) * 2017-12-19 2021-06-03 Riddle & Code Gmbh Dongles and method for providing a digital signature
US11646889B2 (en) * 2017-12-19 2023-05-09 Riddle & Code Gmbh Dongles and method for providing a digital signature

Also Published As

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

Similar Documents

Publication Publication Date Title
WO1996033567A1 (fr) Procede de generation de signatures electroniques notamment pour cartes a puces
EP0656710B1 (fr) Procédé de génération de signatures DSA avec des appareils portables à bas coûts
EP0643513B1 (fr) Procédé de vérification de signatures pour un système de communications
EP2446579B1 (fr) Procédé d&#39;authentification mutuelle d&#39;un lecteur et d&#39;une étiquette radio
FR2759226A1 (fr) Protocole de verification d&#39;une signature numerique
EP1441313B1 (fr) Procédé cryptographique à clé publique pour la protection d&#39; une puce électronique contre la fraude
FR2760583A1 (fr) Systeme de verification de cartes de donnees
EP1166496B1 (fr) Procede d&#39;authentification et de signature de message utilisant des engagements de taille reduite et systemes correspondants
EP1807967B1 (fr) Procede de delegation securisee de calcul d&#39;une application bilineaire
FR2893797A1 (fr) Personnalisation d&#39;une carte bancaire pour d&#39;autres applications
EP1791292A1 (fr) Personnalisation d&#39;un circuit électronique
EP3767876A1 (fr) Procede de verification d&#39;une transaction dans une base de donnees de type chaine de blocs
FR3098947A1 (fr) Procédé de traitement d’une transaction émise depuis une entité de preuve
EP0909495B1 (fr) Procede de cryptographie a cle publique
CA2947920A1 (fr) Procede de chiffrement de donnees de moyens de paiement, moyen de paiement, serveur et programmes correspondants
EP0769768B1 (fr) Procédé cryptographique de protection contre la fraude
FR3033205A1 (fr) Procede de transaction sans support physique d&#39;un identifiant de securite et sans jeton, securise par decouplage structurel des identifiants personnels et de services.
WO2003055134A9 (fr) Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
EP1470663B1 (fr) Procede de generation et de verification de signatures electroniques
WO2004006497A1 (fr) Procede et dispositifs cryptographiques permettant d&#39;alleger les calculs au cours de transactions
WO1998051038A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d&#39;aleas
FR2733378A1 (fr) Procede de generation de signatures numeriques de messages
FR2850502A1 (fr) Procedes d&#39;authentification numerique et de signature numerique a faible cout calculatoire et systeme signataire
WO2008001009A1 (fr) Systeme et procede cryptographique a cle publique pour l&#39;authentification d&#39;une premiere entite par une seconde entite
WO2003025739A1 (fr) Procede securise de mise en oeuvre d&#39;un algorithme de cryptographie et composant correspondant

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

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

WWE Wipo information: entry into national phase

Ref document number: 1996915071

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 08765483

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1996915071

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1996915071

Country of ref document: EP