EP0766894A1 - Procede de generation de signatures electroniques notamment pour cartes a puces - Google Patents
Procede de generation de signatures electroniques notamment pour cartes a pucesInfo
- Publication number
- EP0766894A1 EP0766894A1 EP96915071A EP96915071A EP0766894A1 EP 0766894 A1 EP0766894 A1 EP 0766894A1 EP 96915071 A EP96915071 A EP 96915071A EP 96915071 A EP96915071 A EP 96915071A EP 0766894 A1 EP0766894 A1 EP 0766894A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- signature
- card
- coupon
- verification
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/10—Mechanisms 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/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
- G06Q20/40975—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3234—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Definitions
- the invention relates to a method for generating digital signatures of electronic messages.
- the method is particularly applicable to the signing of messages by portable devices of the microprocessor chip card type.
- this involves signing messages sent by the card to a reading terminal or to a central authority; or again, it involves making a transaction (electronic check) and signing this transaction so that it can be authenticated first by the reading terminal in which the transaction is made, then by a central authority which manages the transactions.
- the object of the invention is to modify known methods, in particular to make them adaptable to microprocessor cards which do not have sufficient hardware resources (processor, memories) to quickly carry out mathematical operations on large numbers.
- Known algorithms notably the DSA algorithm, use large numbers to generate the signatures with a sufficient degree of security. To better understand the invention, we will first recall what the DSA algorithm is.
- a DSA signature consists of a pair ⁇ r, s ⁇ of large numbers represented in the computers by long strings of binary digits (160 digits).
- the digital signature is calculated using a series of calculation rules, defined by the algorithm, and a set of parameters used in these calculations.
- the signature allows both to certify the identity of the signatory (because it involves a secret key specific to the signatory) and the integrity of the signed message (because it involves the message itself).
- the algorithm allows on the one hand to generate signatures, and on the other hand to verify signatures.
- DSA signature generation involves a secret key.
- the verification involves a public key which corresponds to the secret key but is not identical to it.
- Each user has a pair of keys (secret, public). Public keys can be known to everyone, while secret keys are never revealed.
- Secret public
- Public keys can be known to everyone, while secret keys are never revealed.
- anyone has the ability to verify a user's signature using their public key, but only the owner of the secret key can generate a signature corresponding to the key pair.
- the parameters of the DSA algorithm are as follows:
- the integers p, q, and g are system parameters that can be published and / or shared by a group of users.
- the keys, secret and public, of a signatory are respectively x and y.
- the parameter k, random, must be regenerated for each new signature.
- the parameters x and k are used for the generation of signatures and must be kept secret.
- the signatory calculates the signature ⁇ r, s ⁇ by:
- the signature ⁇ r, s ⁇ is sent to the verifier.
- the verifier is generally the terminal in which the smart card which sends the message m and the signature ⁇ r, s ⁇ is inserted.
- this value [g ul .y u2 mod p] mod q is precisely equal to r if its the value (m + xr) / s mod q. Consequently, the terminal receives r and s and verifies that v is indeed equal to r to accept the signature, or to reject it otherwise.
- the terms signatory or signatory body, or proving device, or smart card will be used interchangeably to designate the device which emits the signature and which will generally be a smart card.
- verifier or verifier body or verifier device, or verifier terminal, or even control authority, to designate the device that receives the signature and verifies it to accept or reject a transaction or a message.
- the simplest application of the invention is the issuance of a signature by a smart card to a reading terminal in which the card is inserted, the terminal performing the verification function and being connected or not to an authority central management.
- One of the aims of the present invention is to increase the security of generation and verification of digital electronic signatures, by minimizing the computing and memory means which must be present in the smart card to produce the signatures.
- the invention proposes that the verification by a verifier (terminal) of the signature sent by the signatory (card) uses a step of timing the duration elapsing between an instant when a datum (in principle random ) is sent by the verifier to the signatory (card) and the moment when the signature (using this random data) returns to the verifier. If the elapsed time is too long, this means that the signature calculation processing by the signatory is abnormal and the signature is rejected even if its authenticity is confirmed by the verifier.
- this solution allows, as we will see, to keep the same signature security while using low hardware resources (computing power and memories) in the smart card. Low resources lead to the need to modify the procedures for generating and verifying signatures, but this is to the detriment of security.
- the timing step according to the invention restores a sufficient level of security.
- the first aspect of the invention consists in an electronic signature process, comprising the generation of a digital signature by a signatory body which calculates this signature using random data sent by a verifier body, and the verification of the signature by verifier which verifies whether a mathematical condition involving the signature sent and the random datum is fulfilled, this method being characterized in that the verification of the signature sent by the signatory to the verifier also uses a step of timing the elapsed time between an instant when the random data is sent by the verifier to the signatory and the instant when the signature using this data returns to the verifier after calculation by the signatory, the signature being accepted if the elapsed time is less than a determined threshold and if the mathematical condition is verified.
- the function f is chosen to be sufficiently complex so that the duration of the search for a value s from this equality in the absence of knowledge of the secret key is much greater, even if it is done by a powerful computer, at the time of calculation and transmission by the card of the value s from r and the secret key, and this even if the card uses a not very powerful microprocessor (microprocessor of 8 bits at 20 MHz for example ).
- microprocessor microprocessor of 8 bits at 20 MHz for example.
- the function f comprises mathematical calculations followed by a complex hash function.
- the first part of signature r is established by other mathematical calculations, followed by the same complex hash function.
- This complex hash function is preferably, as will be explained below, a complex compression function resulting in a reduction in the length of the bit strings obtained by the mathematical calculations carried out.
- a hash function is a logical processing function of binary strings, which makes it possible to obtain a character string of determined length from another character string of the same length or of different length.
- a complex hash function can be obtained by successive hashes and / or mathematical calculations involving the results of several hashes. Compression can be obtained at the end by taking as a result a modular value, modulo 2 e , where e is the length of the chain finally desired.
- a new solution is proposed for processing smaller numbers in the smart card, in digital signature algorithms of the kind in which the signature involves two numbers, r and s , only the number s involving the secret key of the card and the message to be sent.
- This second aspect of the invention is an improvement to a method for generating signatures which has been described in French patent application 93 14466.
- DSA is an example
- the number r depends neither on the message m sent by the card, nor on the secret key contained in the card. It only depends on fixed numbers for the application considered, and on random numbers; for example, these numbers are g, p, q and k in the DSA algorithm. It is therefore useless to have r calculated by the card, because this consumes a significant computation time. Rather, a series of n possible r values, denoted r ⁇ , is calculated in advance by a certified central authority, i being an index ranging from 1 to n.
- the numbers r ⁇ are precalculated certificates, also called "signature coupons". They are only part of the signature to be sent, and they can be prepared and stored in advance on the card.
- the index i represents the coupon index used during a given signature.
- the invention described here makes it possible to reconcile the concern for a guarantee of authenticity with the use of smaller rj_ signature coupons.
- the signature generation involves the sending of a coupon r ⁇ and a signature complement s calculated from at least r and x, d.
- the signature verification algorithm includes a mathematical calculation followed by the same function complex compression than that used to prepare the coupon, and the result is compared to the coupon for signature verification.
- the compression function is preferably a complex hash function which requires a fairly long computation time. This gives significant security to the signature generation and verification process. We therefore combine the advantage of a good guarantee of authenticity of signature with the possibility of saving only small coupons in the card, therefore the possibility of saving a lot. If, in addition, we use the timing mentioned above, we can see that the guarantee of authenticity can be strengthened to a very high degree.
- the signature calculation of course involves the message m that we want to sign, to guarantee not only the authenticity of the signature but also the integrity of the transmitted message.
- the formula for calculating the coupon ri is preferably established from a hazard J generated at the start by the card and stored in the card to be reused when the coupon is used for the establishment of a signature.
- the verifying terminal sends a random a to the card and then starts the timer; it is also expected that the establishment of the signature complement necessarily uses this hazard a and that signature verification also requires this hazard a.
- the signature complement s is preferably established by a calculation involving a hash function SHA (m, a) of the message and of this hazard a, the same hash function being used for signature verification.
- the additional signature s is preferably established by a calculation involving a hazard J stored in the card and having served to establish the signature coupon. More preferably, this calculation of s involves a hash function SHA (x, J, i) relating to this hazard J and to an index i representing the number of the coupon used, this same hash function having been previously used during of the long binary chain calculation provided for in the calculation of the corresponding coupon.
- This hashing function preferably also involves the secret key x of the card.
- the additional signature s is preferably established by a calculation involving a hash function of the coupon SHA (ri), the same hash function
- a method for generating digital signatures of messages by a signatory device and for verifying these signatures by a verifier device, the signatory device comprising means of calculation, communication and data retention comprising at least one electrically programmable non-volatile memory, according to which encrypted data are prepared constituting signature coupons ri which are loaded into the non-volatile memory and which the signatory device uses to sign messages, mainly characterized in that: the coupons are compressed by application of a compression function, also called hash function, by a certified authority before being loaded into the memory, and in that it comprises the following exchanges: - a message m is transmitted and this message must be certified by a signature; the signatory sends a laughed coupon to the verifier, - the verifier sends a random number a to the signatory and starts a stopwatch, the signatory calculates the signature s of the message and sends it to the verifier,
- a compression function also called hash function
- FIG. 1 describes the flowchart of a card implementing the proposed system by the present invention
- FIG. 2 describes the data transmitted between the card and the terminal when the coupon is used
- FIG. 3 describes the flow diagram of a terminal implementing the system proposed by the present invention
- FIG. 4 shows the data transmitted between the card and the authority during the loading coupons and organizing the memory of a card after loading n coupons.
- the main advantage of signature coupons precalculated according to the method of the invention lies in the speed of calculation of a signature by a card based on a simple 8-bit microcontroller and the low memory occupancy of stored coupons.
- the signature calculation can be done in approximately 300 ms, transmission time included, and each coupon can use from two to four bytes of EPROM or EEPROM memory.
- the signature generation process breaks down into two distinct phases: the loading of the coupons by the authority that issued the card, then the use of these coupons by the card, facing a terminal that does not know the secret x from the menu.
- a hash function of a number represented by a string of bits, consists in the production of another string of bits of determined length, length which is or is not the same as that of the starting string, and this starting from logical functions executed on groups of bits of the starting chain.
- Simple hash functions are used, noted SHA (ch) for hashing a string ch.
- These functions can be conventional hash functions, such as those published in the recent American standard SHA (Secure Hash Algorithm - FIPS PUB XX, from February 1, 1993, in "Digital Signature Standard”).
- These functions can be the MDA or MD5 function or a hash based on the DES (Data Encryption Standard) algorithm.
- Other functions, called complex hashing will also be used. Their characteristic used here is not so much to be a hash function as to be a slowing function imposed during certain signal processing, and also to be a compression function reducing the length of the signature coupons that we want to save in the smart card.
- H (ch) This slowing and compression function is denoted below H (ch) for the processing of a chain ch. All kinds of deceleration and compression functions could be used in the invention.
- H (ch) SHA [SHA ⁇ SHA (ch) ⁇ S ch) mod p] mod 2 e , where e is the desired length for the coupons, for example 16 to 40 bits or a few bytes.
- H H (g x mod p); H is the function of deceleration and compression.
- the card calculates for each i the value SHA (x, J, i) and sends it to the control authority; this calculates the numbers ⁇ ⁇ .
- the authority sends the ri numbers to the card which stores them in memory, keeping the link with the reference i.
- the ki numbers are not kept.
- ki represents the random number k, modified with each new signature. But instead of being issued by the verifying terminal at the time of a signature, it will be recalculated at the appropriate time by the card. As it depends on i and that an index coupon i is used only once, ki is renewed each time.
- the following protocol is used after transmission of the message m (preferably in the form of a hashed function of the real message, according to a hash function known to the terminal receiving the message):
- the card - extracts state i from the counter
- the terminal then generates a hazard a, to trigger the generation of the second signature part s; this sending constitutes in a way the launching of an à la carte challenge because the verifying terminal simultaneously starts a stopwatch to measure the response time of the card to this challenge.
- This formula involves the coupon ri, the secret x of the card, the message m sent, the number ki, and the hazard sent by the verifier as a challenge.
- SHA (ri) is preferably used rather than r to use a coupon value in the form of a longer chain than ri which is a very short chain. This enhances security. But of course, if we use xSHA (ri) instead of xri and SHA (m, a) instead of m, the verification formula must take this into account, and we will see later that this is what is done. Other variants of signature calculation can be provided, provided that the verification formula takes this into account.
- the terminal stops the stopwatch and performs the calculations for verifying the authenticity of the signature. If the signature has been correctly calculated according to the above formula, then we can verify that we must have the following equality:
- the checker has ri, s, q, p, g, m, a, the simple hash function SHA, and the deceleration and compression function H. It therefore checks the equality ci -above.
- the signature is accepted by the verifier. If one of the two conditions is not met, it is not accepted.
- the invention is applicable to the signature of electronic checks and then makes it possible to make such checks with smart cards at low cost (resulting from the use of an 8-bit microprocessor and a non-volatile memory of limited size. ).
- the message m can represent a transaction carried out by the card with the terminal which is for example the payment terminal of a merchant.
- This message is signed.
- the terminal checks the signature to accept the message, therefore the transaction, but this terminal is also connected to a central management authority (a bank for example) which must itself be able to check the message and the authenticity of the signature before debit the signatory's account on the one hand and / or credit the merchant's account on the other.
- a central management authority a bank for example
- each smart card consists of a processing unit (CPU) 11, a communication interface 10, a random access memory 13 (RAM) and / or a non-writable memory (ROM) 14 and / or a writable or rewritable non-volatile memory (EPROM OR EEPROM) 15.
- CPU processing unit
- RAM random access memory
- ROM non-writable memory
- EPROM OR EEPROM EEPROM
- the processing unit 11 and / or the ROM 14 of the smart card contain calculation programs or resources corresponding to the execution of the calculation steps carried out by the card when loading the coupons and when signing a message or the issuance of an electronic check.
- These programs include in particular the calculation rules for generating s and the rules for using the SHA hash function.
- the calculation unit and the programs in ROM also include the resources necessary for modular multiplications, additions and reductions. Some of these operations can be grouped together (for example, the modular reduction can be directly integrated into the multiplication).
- the RAM of the card contains the message M and the hazard a to which the hash function SHA (m, a) or SHA (m, i, a) applies for example.
- the non-volatile memory 15 typically contains the parameters q, x, J and the set of coupons
- index i is in a non-volatile counter incremented with each new generation of signature and reset to zero when loading coupons.
- the processing unit of the control card via address and data buses 16 and the interface of communication 10, read and write operations in memory 13, 14, and 15.
- Each smart card is protected from the outside world by physical protections 17. These protections should be sufficient to prevent any unauthorized entity from obtaining the secret key x.
- the techniques most used today in this area are the integration of the chip into a security module and the equipment of the chips of devices capable of detecting variations in temperature, light, as well as voltages and frequencies of abnormal clock. Particular design techniques such as scrambling of memory access are also used.
- the terminal itself consists of at least one processing unit (CPU) 30 and memory resources 32, 33, 34.
- the CPU 30 controls, via the address and data buses 35 and the communication interface 31, the read and write operations in the memories 32, 33, 34.
- the authority's CPU 30 and / or ROM 34 contain calculation programs or resources making it possible to implement the calculation rules and hash functions, deceleration and compression, multiplication, addition, modular inversion, modular exponentiation and reduction, necessary to calculate coupons and verify signature. Some of these operations can be grouped together (modular multiplication and reduction for example).
Abstract
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
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.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9504753 | 1995-04-20 | ||
FR9504753A FR2733378B3 (fr) | 1995-04-20 | 1995-04-20 | Procede de generation de signatures numeriques de messages |
FR9507668A FR2733379B1 (fr) | 1995-04-20 | 1995-06-27 | Procede de generation de signatures electroniques, notamment pour cartes a puces |
FR9507668 | 1995-06-27 | ||
PCT/FR1996/000612 WO1996033567A1 (fr) | 1995-04-20 | 1996-04-22 | Procede de generation de signatures electroniques notamment pour cartes a puces |
Publications (1)
Publication Number | Publication Date |
---|---|
EP0766894A1 true EP0766894A1 (fr) | 1997-04-09 |
Family
ID=26231904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP96915071A Withdrawn EP0766894A1 (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) |
Families Citing this family (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE512748C2 (sv) | 1997-05-15 | 2000-05-08 | Access Security Sweden Ab | Förfarande, aktivt kort, system samt användning av aktivt kort för att genomföra en elektronisk transaktion |
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 |
US7047416B2 (en) * | 1998-11-09 | 2006-05-16 | First Data Corporation | Account-based digital signature (ABDS) system |
US6820202B1 (en) * | 1998-11-09 | 2004-11-16 | First Data Corporation | Account authority digital signature (AADS) system |
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 |
FR2788911A1 (fr) * | 1999-01-27 | 2000-07-28 | France Telecom | Procede, systeme, dispositif pour diminuer la charge de travail pendant une session destinee a prouver l'authenticite d'une entite et/ou l'origine et l'integrite d'un message |
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 |
CA2388084A1 (fr) | 1999-10-01 | 2001-04-12 | France Telecom | Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message |
KR100844546B1 (ko) * | 1999-10-01 | 2008-07-08 | 프랑스 텔레콤 | 엔티티의 진정성 또는 메시지의 무결성 검증방법, 시스템 및 장치 |
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 |
US6789189B2 (en) * | 2000-08-04 | 2004-09-07 | First Data Corporation | Managing account database in ABDS system |
US7082533B2 (en) * | 2000-08-04 | 2006-07-25 | First Data Corporation | Gauging risk in electronic communications regarding accounts in ABDS system |
US7010691B2 (en) * | 2000-08-04 | 2006-03-07 | First Data Corporation | ABDS system utilizing security information in authenticating entity access |
US7552333B2 (en) | 2000-08-04 | 2009-06-23 | First Data Corporation | Trusted authentication digital signature (tads) system |
US6978369B2 (en) * | 2000-08-04 | 2005-12-20 | First Data Corporation | Person-centric account-based digital signature system |
US6983368B2 (en) * | 2000-08-04 | 2006-01-03 | First Data Corporation | Linking public key of device to information during manufacture |
US7558965B2 (en) * | 2000-08-04 | 2009-07-07 | First Data Corporation | Entity authentication in electronic communications by providing verification status of device |
US7096354B2 (en) * | 2000-08-04 | 2006-08-22 | First Data Corporation | Central key authority database in an ABDS system |
EP1316168A4 (fr) | 2000-08-04 | 2006-05-10 | First Data Corp | Procede et systeme d'utilisation de communications electroniques pour un contrat electronique |
FR2814620B1 (fr) * | 2000-09-28 | 2002-11-15 | Gemplus Card Int | Procede de transmission accelere de signature electronique |
WO2002073877A2 (fr) * | 2001-03-09 | 2002-09-19 | Pascal Brandys | Systeme et procede de verification d'utilisateur et de donnees |
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 |
JP2006527430A (ja) * | 2003-06-04 | 2006-11-30 | マスターカード インターナショナル インコーポレーテッド | 商業取引における顧客認証システム及び方法 |
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 |
US20060156013A1 (en) * | 2005-01-07 | 2006-07-13 | Beeson Curtis L | Digital signature software using ephemeral private key and system |
US20060153367A1 (en) * | 2005-01-07 | 2006-07-13 | Beeson Curtis L | Digital signature system based on shared knowledge |
US7693277B2 (en) * | 2005-01-07 | 2010-04-06 | First Data Corporation | Generating digital signatures using ephemeral cryptographic key |
US7869593B2 (en) * | 2005-01-07 | 2011-01-11 | First Data Corporation | Software for providing based on shared knowledge public keys having same private key |
US20060153369A1 (en) * | 2005-01-07 | 2006-07-13 | Beeson Curtis L | Providing cryptographic key based on user input data |
US20060153370A1 (en) * | 2005-01-07 | 2006-07-13 | Beeson Curtis L | Generating public-private key pair based on user input data |
US7490239B2 (en) * | 2005-01-07 | 2009-02-10 | First Data Corporation | Facilitating digital signature based on ephemeral private key |
US20060153364A1 (en) * | 2005-01-07 | 2006-07-13 | Beeson Curtis L | Asymmetric key cryptosystem based on shared knowledge |
US7936869B2 (en) * | 2005-01-07 | 2011-05-03 | First Data Corporation | Verifying digital signature based on shared knowledge |
US7593527B2 (en) * | 2005-01-07 | 2009-09-22 | First Data Corporation | Providing digital signature and public key based on shared knowledge |
US8020005B2 (en) | 2005-12-23 | 2011-09-13 | Scout Analytics, Inc. | Method and apparatus for multi-model hybrid comparison system |
US20070198712A1 (en) * | 2006-02-07 | 2007-08-23 | Biopassword, Inc. | Method and apparatus for biometric security over a distributed network |
US7526412B2 (en) * | 2006-03-31 | 2009-04-28 | Biopassword, Inc. | Method and apparatus for multi-distant weighted scoring system |
US20070300077A1 (en) * | 2006-06-26 | 2007-12-27 | Seshadri Mani | Method and apparatus for biometric verification of secondary authentications |
GB2443863B (en) * | 2006-10-30 | 2011-05-11 | Hewlett Packard Development Co | Method and system for generating data transaction id |
US7774607B2 (en) * | 2006-12-18 | 2010-08-10 | Microsoft Corporation | Fast RSA signature verification |
CN104200145B (zh) | 2007-09-24 | 2020-10-27 | 苹果公司 | 电子设备中的嵌入式验证系统 |
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 |
JP6065284B2 (ja) * | 2012-02-22 | 2017-01-25 | パナソニックIpマネジメント株式会社 | リーダ装置、それを搭載するデータ処理装置および真偽判定方法 |
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 |
AU2013404001B2 (en) | 2013-10-30 | 2017-11-30 | Apple Inc. | Displaying relevant user interface objects |
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 |
AU2015382255A1 (en) * | 2015-02-09 | 2016-10-06 | Hitachi, Ltd. | Business coordination system and business coordination method |
US9940637B2 (en) | 2015-06-05 | 2018-04-10 | Apple Inc. | User interface for loyalty accounts and private label accounts |
US20160358133A1 (en) | 2015-06-05 | 2016-12-08 | Apple Inc. | User interface for loyalty accounts and private label accounts for a wearable device |
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 |
JP6736686B1 (ja) | 2017-09-09 | 2020-08-05 | アップル インコーポレイテッドApple Inc. | 生体認証の実施 |
KR102185854B1 (ko) | 2017-09-09 | 2020-12-02 | 애플 인크. | 생체측정 인증의 구현 |
EP3502941B1 (fr) * | 2017-12-19 | 2021-01-20 | Riddle & Code GmbH | Clés matérielles et procédé pour fournir une signature numérique |
US11170085B2 (en) | 2018-06-03 | 2021-11-09 | Apple Inc. | Implementation of biometric authentication |
US10860096B2 (en) | 2018-09-28 | 2020-12-08 | Apple Inc. | Device control using gaze information |
US11100349B2 (en) | 2018-09-28 | 2021-08-24 | Apple Inc. | Audio assisted enrollment |
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 |
US11169830B2 (en) | 2019-09-29 | 2021-11-09 | Apple Inc. | Account management user interfaces |
KR102451495B1 (ko) | 2019-09-29 | 2022-10-06 | 애플 인크. | 계정 관리 사용자 인터페이스들 |
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 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61139873A (ja) * | 1984-12-13 | 1986-06-27 | Casio Comput Co Ltd | 認証方式 |
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. |
-
1995
- 1995-06-27 FR FR9507668A patent/FR2733379B1/fr not_active Expired - Lifetime
-
1996
- 1996-04-22 US US08/765,483 patent/US5910989A/en not_active Expired - Fee Related
- 1996-04-22 WO PCT/FR1996/000612 patent/WO1996033567A1/fr not_active Application Discontinuation
- 1996-04-22 JP JP53153296A patent/JP3433258B2/ja not_active Expired - Fee Related
- 1996-04-22 EP EP96915071A patent/EP0766894A1/fr not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
See references of WO9633567A1 * |
Also Published As
Publication number | Publication date |
---|---|
JP3433258B2 (ja) | 2003-08-04 |
JPH10506727A (ja) | 1998-06-30 |
FR2733379B1 (fr) | 1997-06-20 |
WO1996033567A1 (fr) | 1996-10-24 |
US5910989A (en) | 1999-06-08 |
FR2733379A1 (fr) | 1996-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0766894A1 (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'authentification mutuelle d'un lecteur et d'une étiquette radio | |
FR2759226A1 (fr) | Protocole de verification d'une signature numerique | |
EP1441313B1 (fr) | Procédé cryptographique à clé publique pour la protection d' une puce électronique contre la fraude | |
FR2760583A1 (fr) | Systeme de verification de cartes de donnees | |
EP1166496B1 (fr) | Procede d'authentification et de signature de message utilisant des engagements de taille reduite et systemes correspondants | |
EP1807967B1 (fr) | Procede de delegation securisee de calcul d'une application bilineaire | |
FR2893797A1 (fr) | Personnalisation d'une carte bancaire pour d'autres applications | |
EP1791292A1 (fr) | Personnalisation d'un circuit électronique | |
EP3767876A1 (fr) | Procede de verification d'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'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'alleger les calculs au cours de transactions | |
EP0980607A1 (fr) | Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d'aleas | |
FR2733378A1 (fr) | Procede de generation de signatures numeriques de messages | |
FR2850502A1 (fr) | Procedes d'authentification numerique et de signature numerique a faible cout calculatoire et systeme signataire | |
WO2008001009A1 (fr) | Systeme et procede cryptographique a cle publique pour l'authentification d'une premiere entite par une seconde entite | |
WO2003025739A1 (fr) | Procede securise de mise en oeuvre d'un algorithme de cryptographie et composant correspondant |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19961217 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): BE CH DE FR GB IT LI |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
17Q | First examination report despatched |
Effective date: 20031106 |
|
18W | Application withdrawn |
Effective date: 20031024 |