FR2792789A1 - Procede de verification de signature ou d'authentification - Google Patents
Procede de verification de signature ou d'authentification Download PDFInfo
- Publication number
- FR2792789A1 FR2792789A1 FR9904975A FR9904975A FR2792789A1 FR 2792789 A1 FR2792789 A1 FR 2792789A1 FR 9904975 A FR9904975 A FR 9904975A FR 9904975 A FR9904975 A FR 9904975A FR 2792789 A1 FR2792789 A1 FR 2792789A1
- Authority
- FR
- France
- Prior art keywords
- value
- entity
- modulo
- public
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Finance (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé de vérification de signature ou d'authentification entre prouveur et vérifieur à partir d'un algorithme de calcul cryptographique asymétrique.Le prouveur calcule (1) au moins une valeur de prévalidation q, quotient de deux valeurs cryptographiques a, b par le modulo public n, et transmet au vérifieur cette valeur q. Le vérifieur calcule (3) les produits a*b et q*n et la différence a*b-q*n pour effectuer au moins une réduction modulaire en l'absence d'opération de division.Application à la vérification de signature ou d'authentification entre un prouveur, micro-ordinateur, et un vérifieur, carte à microprocesseur.
Description
<Desc/Clms Page number 1>
Procédé de vérification de signature ou d'authentification
La présente invention concerne un procédé permettant de rendre plus efficace, en temps de calcul, en RAM et ROM nécessaires, la vérification d'une signature ou d'une authentification asymétrique requérant quelques multiplications modulo n ou des grands nombres.
La présente invention concerne un procédé permettant de rendre plus efficace, en temps de calcul, en RAM et ROM nécessaires, la vérification d'une signature ou d'une authentification asymétrique requérant quelques multiplications modulo n ou des grands nombres.
Les algorithmes de signature ou d'authentification RSA et Rabin sont des exemples permettant la mise en #uvre de ce procédé.
Le procédé est plus particulièrement adapté en vue d'une mise en #uvre dans le cas où un ordinateur, par exemple un ordinateur personnel désigné par PC, qui génère une signature ou une authentification au moyen d'une clé secrète qui doit ensuite être vérifiée par une carte à microcalculateur. Le microcalculateur effectue cette vérification au moyen d'une clé publique. Il dispose de relativement peu de puissance en comparaison du PC.
Par "carte à microcalculateur", on entend un microcontrôleur monolithique standard, avec mémoire incorporée.
Actuellement la majorité des algorithmes à clé publique utilisés dans le monde effectuent des calculs modulo de "grands nombres". Par "grands nombres", on désigne des nombres entiers positifs et d'au moins 320 bits. Pour des raisons de sécurité, la communauté scientifique recommande même actuellement d'utiliser des nombres d'au moins 512 bits, voire 1024 bits pour la plupart des algorithmes, par exemple pour les algorithmes RSA ou Rabin.
Actuellement les cartes à microcalculateur sont amenées à dialoguer avec des ordinateurs ayant des
<Desc/Clms Page number 2>
capacités de calcul bien plus importantes qu'elles-mêmes.
De plus, pour des raisons de coût, on utilise souvent des cartes à microcalculateur sans coprocesseur arithmétique, et avec des ressources en mémoire (ROM, RAM et EEPROM) très limitées. De ce fait, les calculs normalement requis pour réaliser une vérification d'authentification, ou une vérification de signature à clé publique, utilisant des calculs modulo de grands nombres sont souvent très longs, voire impossible faute de mémoire suffisante, si l'on utilise les descriptions traditionnelles des algorithmes cryptographiques.
Dans la suite de la description on désigne par : # "prouveur" : l'entité qui veut être authentifiée, ou qui produit une signature. Elle effectue pour cela des calculs faisant intervenir la clé secrète de l'algorithme asymétrique utilisé. Il s'agira par exemple d'un ordinateur de type PC.
# "vérifieur" : l'entité qui vérifie l'authentification, ou qui vérifie la validité d'une signature. Elle effectue pour cela des calculs faisant intervenir uniquement la clé publique de l'algorithme cryptographique asymétrique utilisé. Il s'agira par exemple d'une carte à microcalculateur.
La présente invention a pour objet la mise en #uvre d'un procédé de vérification de signature et d'authentification permettant de remédier aux inconvénients précités inhérents à la capacité de calcul plus limitée d'une entité vérifieur, constituée par une carte à microcalculateur, vis-à-vis d'une entité prouveur, tel qu'un ordinateur personnel ou autre muni d'un dispositif lecteur de carte.
Un autre objet de la présente invention est en conséquence une simplification des opérations de calcul de
<Desc/Clms Page number 3>
certaines réductions modulaires du vérifieur grâce à la mise en #uvre de calculs supplémentaires du prouveur, la tâche du vérifieur étant ainsi simplifiée en l'absence de tout affaiblissement de la sécurité théorique de l'ensemble.
Le procédé de vérification de signature respectivement d'authentification au moyen d'un processus de calcul cryptographique asymétrique à clé privée et à clé publique, objet de la présente invention, ce procédé étant conduit entre une entité "prouveur" et une entité "vérifieur", l'entité prouveur effectuant des calculs cryptographiques à partir de la clé privée en vue d'effectuer un calcul de signature, respectivement une valeur d'authentification, et l'entité vérifieur à partir de cette valeur transmise effectuant des calculs cryptographiques à partir de cette clé publique en vue de procéder à cette vérification de signature, respectivement à cette authentification, les opérations de calcul cryptographique mettant en #uvre le calcul de multiplications modulo n ou des grands nombres, est remarquable en ce que, pour un processus de calcul cryptographique mettant en #uvre une clé publique, constituée par un exposant public e et un modulo public n, et une clé privée constituée par un exposant privé, d, ce procédé consiste à calculer, au niveau de l'entité prouveur, au moins une valeur de prévalidation et à transmettre de l'entité prouveur à l'entité vérifieur cette au moins une valeur de prévalidation, permettant à l'entité vérifieur d'effectuer au moins une réduction modulaire en l'absence de toute opération de division pour cette réduction modulaire.
Le procédé, objet de la présente invention, s'applique dans le cadre de tout dialogue ou protocole
<Desc/Clms Page number 4>
d'échange de messages entre une entité prouveur telle qu'un ordinateur personnel et une entité vérifieur telle qu'une carte à microcalculateur, en particulier dans le cadre de transactions bancaires, de contrôle d'accès ou analogue.
Il sera mieux compris à la lecture de la description ci-après et à l'observation des dessins dans lesquels : - la figure 1 représente un schéma illustratif du procédé, objet de la présente invention, mis en #uvre entre une entité prouveur et une entité vérifieur ; - la figure 2a représente un schéma illustratif du procédé, objet de la présente invention, mis en #uvre à partir d'un algorithme de Rabin en vérification d'authentification ; - la figure 2b représente un schéma illustratif du procédé, objet de la présente invention, mis en #uvre à partir d'un algorithme de Rabin en vérification de signature ; - la figure 3a représente un schéma illustratif du procédé, objet de la présente invention, mis en #uvre à partir d'un algorithme RSA en vérification d'authentification ; - la figure 3b représente un schéma illustratif du procédé, objet de la présente invention, mis en #uvre à partir d'un algorithme RSA en vérification de signature.
Une description plus détaillée du procédé, objet de l'invention, sera donnée en liaison avec la figure 1 et les figures suivantes.
Le procédé objet de l'invention met en #uvre, au niveau de l'entité vérifieur, des algorithmes à clé publique requérant des multiplications modulo n, ou des grands nombres, et les modifie légèrement en faisant faire
<Desc/Clms Page number 5>
le calcul d'un ou de plusieurs quotients q à l'extérieur, c'est-à-dire au niveau de l'entité prouveur, et en fournissant ce ou ces quotients au vérifieur. Ainsi le vérifieur peut plus facilement et plus rapidement calculer certaines multiplications modulaires : au lieu de calculer a*b modulo n, il aura juste à calculer a*b, q*n, et a*b-q*n, a, b désignant des valeurs des" calcul de vérification de signature ou d'authentification. Parfois, pour la sécurité il utilise cette dernière valeur d'une façon qui lui permettra de s'assurer que cette dernière valeur est bien comprise entre 1 et n. Lorsque l'on modifie ainsi un algorithme, en "précalculant" donc certains quotients, qui sont fournis au vérifieur afin de simplifier les calculs exécutés par ce dernier, on parle d'algorithme "sous-jacent" pour désigner l'algorithme initial dont on est parti, avant de faire cette modification. Ainsi, en référence à la figure 1, conformément à un aspect remarquable du procédé objet de la présente invention, le ou les quotients q, vérifiant la relation q=a*b/n, constituent une ou plusieurs valeurs de prévalidation transmises à l'entité vérifieur afin de permettre à l'entité vérifieur d'effectuer au moins une réduction modulaire en l'absence de toute opération de division pour cette réduction modulaire. En référence à la figure 1, on indique que le procédé objet de l'invention peut être mis en #uvre soit en vérification de 1'authentification, suite à l'envoi 0 d'une valeur d'incitation tel qu'un aléa a, calcul 1 en interne au niveau du prouveur d'une valeur de réponse b = admod n, et de la valeur de prévalidation q, transmission 2 de b et q du prouveur au vérifieur et calcul 3 par le vérifieur des quantités a*b, q*n et a*b-q*n pour procéder à la vérification de l'authentification, soit à la vérification
<Desc/Clms Page number 6>
de signature d'un message M, suite au calcul 1 au niveau du prouveur d'une signature S = Sd(M) du message M et de la valeur de prévalidation q, envoi 2 du vérifieur au prouveur de q, S et M, calcul 3 au niveau du vérifieur des quantités a*b = S*S, q*n et a*b-q*n pour procéder à la vérification de signature.
Dans la figure 1 et les figures suivantes, une flèche droite représente la transmission des valeurs précitées entre vérifieur et prouveur ou réciproquement et une boucle fléchée au niveau du prouveur ou du vérifieur représente la mise en #uvre d'un calcul interne au niveau du prouveur ou du vérifieur. Enfin, dans la suite de la description, on désigne par réponse R soit la valeur calculée b par chiffrement de l'aléa a dans le cas d'une vérification d'authentification b = ad mod n, soit la valeur de signature S = Sd (M) suite à la mise en présence du vérifieur et du prouveur.
Différents exemples de mise en #uvre du procédé objet de la présente invention seront maintenant décrits à partir des algorithmes sous-jacents, désignés par algorithmes RSA et algorithmes de Rabin.
Algorithmes RSA et de Rabin sous-jacents
L'algorithme RSA est le plus célèbre des algorithmes cryptographiques asymétriques. Il a été inventé par RIVEST, SHAMIR et ADLEMAN en 1978. On peut le trouver décrit dans : R. L. RIVEST, A. SHAMIR, L.M. ADLEMAN : A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, 21, n 2, 1978, pp. 120-126. ou dans les documents suivants : # ISO/IEC 9594-8/ITU-T X. 509, Information Technology -
Open Systems Interconnection- The Directory :
Authentication Framework ;
L'algorithme RSA est le plus célèbre des algorithmes cryptographiques asymétriques. Il a été inventé par RIVEST, SHAMIR et ADLEMAN en 1978. On peut le trouver décrit dans : R. L. RIVEST, A. SHAMIR, L.M. ADLEMAN : A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, 21, n 2, 1978, pp. 120-126. ou dans les documents suivants : # ISO/IEC 9594-8/ITU-T X. 509, Information Technology -
Open Systems Interconnection- The Directory :
Authentication Framework ;
<Desc/Clms Page number 7>
# ANSI X9.31-1, American National Standard, Public-Key
Cryptography Using Réversible Algorithms for the
Financial Services Industry, 1993.
Cryptography Using Réversible Algorithms for the
Financial Services Industry, 1993.
Ces documents sont introduits dans la présente description à titre de référence.
L'algorithme RSA utilise un nombre entier n qui est le produit de deux grands nombres premiers p et r, et un nombre entier e, premier avec ppcm(p-l,r-1), et tel que e # 1 modulo ppcm(p-l,r-1). Les entiers n et e constituent la clé publique. Le calcul en clé publique fait appel à la fonction a de Z/nZ dans Z/nZ définie par a(x)=x mod n. Le calcul en clé secrète fait appel à la fonction [alpha]-1(y)=yd mod n, où d est l'exposant secret, appelé aussi "clé secrète" ou "clé privée", défini par ed = 1 mod ppcm(p-l,r-1).
Notons n le modulo public RSA, notons d l'exposant secret RSA et notons e l'exposant public RSA.
Dans le cas d'une vérification d'authentification, le vérifieur génère un nombre aléatoire A modulo n, et l'envoie au prouveur. Celui ci calcule alors B= Admodulo n, et renvoie cette valeur B au vérifieur. Celui-ci accepte alors l'authentification si et seulement si: Be modulo n = A.
La plus petite valeur de e pour mettre en #uvre l'algorithme RSA est e = 3. Pour e = 2, on parle d'algorithme de Rabin ; celui-ci sera décrit ci-après dans la description. Cette valeur e = 3 est intéressante car elle permet au vérifieur de n'avoir à effectuer que deux multiplications modulaires.
L'algorithme de Rabin est en quelque sorte un algorithme RSA avec l'exposant public e = 2. En fait, lorsque e = 2, la fonction xe n'est pas bijective
<Desc/Clms Page number 8>
modulo n, lorsque n est le produit de deux nombres premiers > 2, on introduit donc des petites modifications dans l'utilisation de l'algorithme de Rabin par rapport au RSA.
On peut trouver une description de l'algorithme de Rabin dans : M. O. Rabin, Digitized Signatures and Public-Kéy Functions as intractable as Factorization, Technical Report LCS/TR- 212, M.I.T. Laboratory for Computer Science, 1979, introduit dans la présente demande de brevet à titre de référence.
Exemples de mise en #uvre du procédé objet de l'invention à partir des algorithmes de Rabin et RSA Algorithme de Rabin
Le procédé, objet de la présente invention, sera tout d'abord décrit dans un mode de réalisation particulier non limitatif à partir de l'algorithme de Rabin, soit pour e = 2.
Le procédé, objet de la présente invention, sera tout d'abord décrit dans un mode de réalisation particulier non limitatif à partir de l'algorithme de Rabin, soit pour e = 2.
## Vérification d'authentification
Ainsi que représenté en figure 2a, un exemple possible d'utilisation de l'algorithme de Rabin en vérification d'authentification est maintenant décrit.
Ainsi que représenté en figure 2a, un exemple possible d'utilisation de l'algorithme de Rabin en vérification d'authentification est maintenant décrit.
Notons n le modulo public. Le vérifieur génère un nombre aléatoire A modulo n, et l'envoie, 0, au prouveur. Celuici calcule alors un nombre B, et renvoie, 1, cette valeur B au vérifieur. Celui-ci accepte alors l'authentification si et seulement si : B*Bmodulo n est égal à l'une des quatre valeurs possibles suivantes : A, ou n-A, ou C*A modulo n, ou-C*A modulo n. C est un nombre fixé par le protocole, C = 2 le plus souvent.
Pour simplifier le processus de vérification, conformément au procédé objet de la présente invention, le prouveur n'envoie pas, en 2, la valeur B seule : il envoie
<Desc/Clms Page number 9>
B et Q, où Q est le quotient de B*B par le modulo public n. Le vérifieur vérifie alors que DAR = B*B - Q*n est bien égal à l'une des quatre valeurs suivantes : A, n-A, (C*A) modulo n, ou (-C*A) modulo n. De plus, il peut calculer (C*A) modulo n en calculant C*A, en gardant cette valeur si elle est < n, et en prenant la valeur C*A - n sinon. De même, il peut calculer (-C*A) modulo n en calculant n-C*A, en gardant cette valeur si elle est ≥ 0, et en prenant la valeur C*n - C*A sinon. Ainsi le vérifieur n'a plus aucune division à effectuer.
## Vérification de signature
Ainsi que représenté en figure 2b, et en conservant les mêmes notations que ci-dessus, on note M le message dont le vérifieur souhaite vérifier la signature S. La signature S est obtenue à partir de la clé privée d par S = Sd(M), Sd(M) désignant l'opération de calcul de signature du message M. Si S est une signature Rabin de M, alors le vérifieur vérifie normalement que S*S modulo n = f (M) ou n-f(M), ou (2*f(M) modulo n) ou (-2*f (M) modulo n), où f est une fonction publique standardisée du message M. Par exemple f est la fonction identité, ou bien est décrite dans une norme de signature ; par exemple on peut utiliser les opérations de paddage ou concaténation de la norme PKCS#1, établie pour du RSA normalement, confer les éléments descriptifs de cette norme ci-après dans la description.
Ainsi que représenté en figure 2b, et en conservant les mêmes notations que ci-dessus, on note M le message dont le vérifieur souhaite vérifier la signature S. La signature S est obtenue à partir de la clé privée d par S = Sd(M), Sd(M) désignant l'opération de calcul de signature du message M. Si S est une signature Rabin de M, alors le vérifieur vérifie normalement que S*S modulo n = f (M) ou n-f(M), ou (2*f(M) modulo n) ou (-2*f (M) modulo n), où f est une fonction publique standardisée du message M. Par exemple f est la fonction identité, ou bien est décrite dans une norme de signature ; par exemple on peut utiliser les opérations de paddage ou concaténation de la norme PKCS#1, établie pour du RSA normalement, confer les éléments descriptifs de cette norme ci-après dans la description.
En conservant les mêmes notations que ci-dessus, pour simplifier le processus de vérification de la signature, ainsi que représenté en figure 2b, dans le procédé objet de la présente invention, le prouveur n'envoie pas, en 2, la valeur S seule : il envoie S et Q, où Q est le quotient de S*S par le modulo public n. Le vérifieur vérifie alors que DSR = S*S - Q*n est bien égal
<Desc/Clms Page number 10>
à f(M), ou n-f(M), ou C*f(M) modulo n, ou -C*f(M) modulo n, où C est un nombre fixé par le protocole, C pouvant être pris égal à 2. Comme ces deux dernières valeurs peuvent être calculées modulo n en effectuant zéro ou une soustraction par n, le vérifieur n'a plus aucune division à calculer.
Algorithme RSA
Le procédé, objet de la présente invention, sera maintenant décrit dans un mode de réalisation particulier non limitatif à partir de l'algorithme RSA, soit pour e = 3.
Le procédé, objet de la présente invention, sera maintenant décrit dans un mode de réalisation particulier non limitatif à partir de l'algorithme RSA, soit pour e = 3.
## Vérification d'authentification
Ainsi que représenté en figure 3a, à partir d'un aléa A, pour simplifier le processus de vérification, dans la présente invention le prouveur n'envoie pas, en 2, la valeur B seule : il envoie B, Ql et Q2, où Ql est le quotient de B*B par le modulo public n, et où Q2 est le quotient de B*( B*B - Ql*n) par n. Le vérifieur vérifiera alors que DARSA = B* (B*B - Ql*n) -Q2*n est bien égal à A.
Ainsi que représenté en figure 3a, à partir d'un aléa A, pour simplifier le processus de vérification, dans la présente invention le prouveur n'envoie pas, en 2, la valeur B seule : il envoie B, Ql et Q2, où Ql est le quotient de B*B par le modulo public n, et où Q2 est le quotient de B*( B*B - Ql*n) par n. Le vérifieur vérifiera alors que DARSA = B* (B*B - Ql*n) -Q2*n est bien égal à A.
Ainsi le vérifieur n'a plus aucune division à effectuer.
## Vérification de signature
En conservant les mêmes notations que ci-dessus et en notant M le message dont le vérifieur souhaite vérifier la signature S, S est une signature RSA de M, alors le vérifieur vérifie normalement que Se modulo n = f(M), où f est une fonction publique standardisée du message M. Par exemple f est la fonction identité, ou bien est décrite dans une norme de signature RSA, comme par exemple la norme PKCS#1. La fonction publique normalisée peut consister à appliquer au message M une fonction de condensation SHA-1 pour obtenir un condensé de message CM, puis à concaténer à ce condensé de message une valeur constante.
En conservant les mêmes notations que ci-dessus et en notant M le message dont le vérifieur souhaite vérifier la signature S, S est une signature RSA de M, alors le vérifieur vérifie normalement que Se modulo n = f(M), où f est une fonction publique standardisée du message M. Par exemple f est la fonction identité, ou bien est décrite dans une norme de signature RSA, comme par exemple la norme PKCS#1. La fonction publique normalisée peut consister à appliquer au message M une fonction de condensation SHA-1 pour obtenir un condensé de message CM, puis à concaténer à ce condensé de message une valeur constante.
<Desc/Clms Page number 11>
Ainsi que représenté en figure 3b, et en conservant les mêmes notations que ci-dessus, pour simplifier le processus de vérification de la signature, dans le procédé, objet de la présente invention, le prouveur n'envoie pas, en 2, la valeur S seule : il envoie S, Ql et Q2, où Ql est le quotient de S*S par le modulo public n, et où Q2 est le quotient de S* S*S'- Ql*n) par n. Le vérifieur vérifiera alors que DSRSA = S*(S*S - Ql*n) -Q2*n est bien égal à f(M). Ainsi le vérifieur n'a plus aucune division à effectuer.
La fonction de condensation SHA-1 est une fonction publique de "condensation". Elle prend en entrée un message dont la taille peut aller de 0 octets à plusieurs Giga octets, et donne en sortie un "condensé" du message de 160 bits. Cette fonction est souvent utilisée dans des normes ou avec des algorithmes de signature, car elle est réputée être résistante aux collisions, c'est-à-dire que l'on ne sait pas trouver concrètement deux messages distincts qui ont le même condensé (il en existe mais on ne sait pas comment trouver un tel couple de messages).
Ceci permet de signer le condensé des messages plutôt que les messages eux-mêmes.
La norme PKCS#1 est une norme de signature RSA.
Elle décrit une fonction publique f. Cette fonction f est appliquée sur le message M à signer avec RSA avant de lancer l'opération d'exponentiation modulaire RSA proprement dite : la signature RSA de M sera donc S = (f(M))d module n, où n est le modulo public RSA et où d est l'exposant secret RSA. f utilise une fonction de condensation (par exemple SHA-1) suivie d'un paddage, ou concaténation, avec une constante.
<Desc/Clms Page number 12>
Pour une description plus détaillée, on peut consulter : PKCS#1, RSA Encryption Standard, version 2,1998, disponible à l'adresse suivante : ftp://ftp.rsa.com/pub/pkcs/doc/pkcs-iv2.doc dont la version éditée est introduite dans la présente demande à titre de référence.
L'invention consiste ainsi à fournir des données supplémentaires au vérifieur afin de lui faciliter les calculs. Pour précalculer ces données, ici des quotients constituant la ou les valeurs de pré-validation, on n'a pas besoin d'utiliser la clé secrète de l'algorithme. Cela signifie que ces données sont complètement redondantes par rapport aux valeurs transmises à la carte dans une utilisation "classique" de l'algorithme asymétrique. En fait, dans la version "classique", la carte sait retrouver elle-même ces quotients. Il n'y a donc aucune information supplémentaire fournie à la carte, au sens de la théorie de l'information, lorsqu'on met en #uvre le procédé, objet de la présente invention tel que décrit précédemment. Cela montre que la sécurité de l'ensemble n'est en rien affaiblie par rapport à la mise en oeuvre "classique" de l'algorithme.
Claims (13)
1. Procédé de vérification de signature respectivement d'authentification au moyen d'un processus de calcul cryptographique asymétrique à clé privée et à clé publique, entre une entité "prouveur" et une entité "vérifieur", l'entité prouveur effectuant des calculs cryptographiques à partir de ladite clé privée en vue d'effectuer un calcul de signature respectivement d'une valeur d'authentification constituant une valeur de réponse et l'entité vérifieur, à partir de cette valeur de réponse, effectuant des calculs cryptographiques à partir de ladite clé publique en vue de procéder à cette vérification de signature respectivement cette authentification, les opérations de calcul cryptographique mettant en #uvre le calcul de multiplications modulo n ou des grands nombres, caractérisé en ce que pour un processus de calcul cryptographique mettant en #uvre une clé publique, constituée par un exposant public e et un modulo public n, et une clé privée constituée par un exposant privé, celui-ci consiste : - à calculer au niveau de ladite entité prouveur au moins une valeur de pré-validation ; - à transmettre de l'entité prouveur à l'entité vérifieur ladite au moins une valeur de pré-validation, cette valeur de pré-validation permettant à l'entité vérifieur d'effectuer au moins une réduction modulaire en l'absence de toute opération de division pour cette réduction modulaire.
2. Procédé selon la revendication 1, caractérisé en ce que pour un exposant public e=2, le processus de calcul cryptographique étant basé sur un algorithme de RABIN, ladite au moins une valeur de pré-validation est constituée par une valeur unique, quotient Q du carré de
<Desc/Clms Page number 14>
ladite valeur de signature respectivement de réponse par ledit modulo public n, Q = R*R/n, où R désigne ladite valeur de signature de réponse à une authentification.
3. Procédé selon la revendication 2, caractérisé en ce que suite à la réception par ladite entité vérifieur de ladite valeur de réponse à une vérification d'authentification respectivement de signature d'un message (M) et de ladite au moins une valeur de prévalidation, constituée par ledit quotient, ce procédé consiste, au niveau de ladite entité vérifieur : - à calculer la différence (DAR, DSR) entre le carré de la valeur de réponse R*R et le produit Q*n dudit quotient Q par ledit modulo public n, (DAR, DSR) = R*R-Q*n ; - à vérifier l'égalité de ladite différence avec la valeur d'une fonction de cette valeur de réponse, en l'absence de toute opération de division par l'opération modulo n.
4. Procédé selon la revendication 1, caractérisé en ce que pour un exposant public e = 3, le processus de calcul cryptographique étant basé sur un algorithme RSA, ladite au moins une valeur de pré-validation est constituée par : - un premier quotient Q1 du carré R*R de ladite valeur de réponse R par ledit modulo public n ; - un deuxième quotient Q2 du produit de ladite valeur de réponse et de la différence entre le carré R*R de cette valeur de réponse et du produit dudit premier quotient Q1 et du modulo public n par ledit modulo public n, Q2 = R* (R*R - Q1*n)/n.
5. Procédé selon la revendication 4, caractérisé en ce que suite à la réception de ladite valeur de réponse R et de ladite au moins une valeur de pré-validation
<Desc/Clms Page number 15>
constituée par lesdits premier et deuxième quotients Q1, Q2, ledit procédé consiste, au niveau de ladite entité vérifieur : - à calculer la différence (DARSA, DSRSA) entre le produit de ladite valeur de réponse R et de la différence entre le carré R*R de cette valeur de réponse et le produit dudit premier quotient Q1 et du modulo public n et le produit dudit deuxième quotient Q2 et dudit modulo public n, (DARSA, DSRSA) = R* (R*R - Q1*n)-Q2*n ; - à vérifier l'égalité de cette différence avec la valeur d'une fonction de ladite valeur de réponse, en l'absence de toute opération de division par opération modulo n.
6. Procédé selon la revendication 3 ou 5, caractérisé en ce que pour une opération de vérification de signature d'un message (M), ladite fonction est une fonction publique normalisée f (M) de ce message M et consiste : - à appliquer à ce message une fonction de condensation pour obtenir un condensé de message CM ; - à concaténer à ce condensé de message une valeur constante.
7. Procédé selon l'une des revendications 3 ou 5, caractérisé en ce que pour une opération de vérification d'authentification, ce procédé consiste en outre à transmettre de l'entité vérifieur à l'entité prouveur une valeur d'incitation.
8. Procédé selon la revendication 7, caractérisé en ce que ladite valeur d'incitation est constituée par une valeur aléatoire A modulo n, ladite valeur de réponse R est constituée par une valeur chiffrée B, ladite fonction de la valeur de réponse est une fonction f(A) de ladite valeur aléatoire A.
<Desc/Clms Page number 16>
9. Procédé selon l'une des revendications 3 et 7, caractérisé en ce que ladite fonction f(A) de ladite valeur aléatoire A est une fonction parmi les fonctions f(A) = A, f(A) = n-A, f(A) = C*A modulo n, f(A) = -C*A modulo n.
10. Procédé selon la revendication 9, caractérisé en ce que, au niveau de l'entité vérifieur, le calcul de ladite fonction f(A) = C*A modulo n est effectué par calcul de la valeur C*A et mémorisation de cette valeur si C*A < n et par calcul et mémorisation de la valeur C*A-n sinon, et en ce que le calcul de ladite fonction f(A) = -C*A modulo n est effectué par calcul de la valeur -C*A et mémorisation de cette valeur si-C*A < n et par calcul de la valeur intermédiaire n-C*A, et, si cette valeur intermédiaire est supérieure ou égale à zéro, calcul et mémorisation de la valeur de C*n-C*a comme valeur affectée à la valeur de-C*A modulo n sinon, ce qui permet de vérifier l'égalité de ladite authentification en l'absence de toute division pour réduction modulaire.
11. Procédé selon les revendications 5 et 8, caractérisé en ce que ladite fonction f(A) de ladite valeur aléatoire A est la fonction f(A) = A, ce qui permet de vérifier l'égalité de ladite différence et la validité de ladite authentification, en l'absence d'opération de division pour réduction modulaire.
12. Procédé selon les revendications 1,2, 3 et 8, caractérisé en ce que ladite valeur de réponse, valeur chiffrée B, et ladite valeur de quotient Q sont concaténées préalablement à leur transmission de l'entité prouveur à l'entité vérifieur.
13. Utilisation du procédé selon l'une des revendications 1 à 12, l'entité vérifieur étant constituée
<Desc/Clms Page number 17>
par un système embarqué tel qu'une carte à microprocesseur et l'entité prouveur par un système lecteur de carte.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9904975A FR2792789B1 (fr) | 1999-04-20 | 1999-04-20 | Procede de verification de signature ou d'authentification |
PCT/FR2000/001047 WO2000064097A1 (fr) | 1999-04-20 | 2000-04-20 | Procede de verification de signature ou d'authentification |
JP2000613117A JP2002542716A (ja) | 1999-04-20 | 2000-04-20 | 署名または認証の検証方法 |
CN 00800922 CN1306713A (zh) | 1999-04-20 | 2000-04-20 | 签名或验证的检验方法 |
EP00922700A EP1090479A1 (fr) | 1999-04-20 | 2000-04-20 | Procede de verification de signature ou d'authentification |
BR0006073-9A BR0006073A (pt) | 1999-04-20 | 2000-04-20 | Método de verificação de assinatura ou de autenticação |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9904975A FR2792789B1 (fr) | 1999-04-20 | 1999-04-20 | Procede de verification de signature ou d'authentification |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2792789A1 true FR2792789A1 (fr) | 2000-10-27 |
FR2792789B1 FR2792789B1 (fr) | 2001-08-31 |
Family
ID=9544643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9904975A Expired - Fee Related FR2792789B1 (fr) | 1999-04-20 | 1999-04-20 | Procede de verification de signature ou d'authentification |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1090479A1 (fr) |
JP (1) | JP2002542716A (fr) |
CN (1) | CN1306713A (fr) |
BR (1) | BR0006073A (fr) |
FR (1) | FR2792789B1 (fr) |
WO (1) | WO2000064097A1 (fr) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7440571B2 (en) * | 2002-12-03 | 2008-10-21 | Nagravision S.A. | Method for securing software updates |
FR2877453A1 (fr) * | 2004-11-04 | 2006-05-05 | France Telecom | Procede de delegation securisee de calcul d'une application bilineaire |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0522473A2 (fr) * | 1991-07-08 | 1993-01-13 | Mitsubishi Denki Kabushiki Kaisha | Procédé et dispositif cryptographique de vérification d'identité |
EP0791877A1 (fr) * | 1996-02-26 | 1997-08-27 | France Telecom | Dispositif électronique délivrant une référence temporelle sûre pour la protection d'un logiciel |
-
1999
- 1999-04-20 FR FR9904975A patent/FR2792789B1/fr not_active Expired - Fee Related
-
2000
- 2000-04-20 CN CN 00800922 patent/CN1306713A/zh active Pending
- 2000-04-20 EP EP00922700A patent/EP1090479A1/fr not_active Withdrawn
- 2000-04-20 JP JP2000613117A patent/JP2002542716A/ja active Pending
- 2000-04-20 WO PCT/FR2000/001047 patent/WO2000064097A1/fr not_active Application Discontinuation
- 2000-04-20 BR BR0006073-9A patent/BR0006073A/pt not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0522473A2 (fr) * | 1991-07-08 | 1993-01-13 | Mitsubishi Denki Kabushiki Kaisha | Procédé et dispositif cryptographique de vérification d'identité |
EP0791877A1 (fr) * | 1996-02-26 | 1997-08-27 | France Telecom | Dispositif électronique délivrant une référence temporelle sûre pour la protection d'un logiciel |
Non-Patent Citations (1)
Title |
---|
CHANG C C ET AL: "AN ID-BASED SIGNATURE SCHEME BASED UPON RABIN'S PUBLIC KEY CRYPTOSYSTEM", PROCEEDINGS OF THE ANNUAL INTERNATIONAL CARNAHAN CONFERENCE ON SECURITY TECHNOLOGY,US,NEW YORK, IEEE, vol. CONF. 25, 1991, pages 139 - 141, XP000300422, ISBN: 0-7803-0120-X * |
Also Published As
Publication number | Publication date |
---|---|
EP1090479A1 (fr) | 2001-04-11 |
FR2792789B1 (fr) | 2001-08-31 |
CN1306713A (zh) | 2001-08-01 |
JP2002542716A (ja) | 2002-12-10 |
WO2000064097A1 (fr) | 2000-10-26 |
BR0006073A (pt) | 2001-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1441313B1 (fr) | Procédé cryptographique à clé publique pour la protection d' une puce électronique contre la fraude | |
WO2003056750A2 (fr) | Systeme cryptographique de signature de groupe | |
FR2759226A1 (fr) | Protocole de verification d'une signature numerique | |
WO2010046565A2 (fr) | Procédé de signature numérique en deux étapes | |
FR2760583A1 (fr) | Systeme de verification de cartes de donnees | |
EP2891268B1 (fr) | Signature de groupe utilisant un pseudonyme | |
EP1807967B1 (fr) | Procede de delegation securisee de calcul d'une application bilineaire | |
FR3015080A1 (fr) | Verification d'integrite de paire de cles cryptographiques | |
EP2377268A1 (fr) | Codage de points d'une courbe elliptique | |
CA2216607C (fr) | Procede de communication cryptographique asymetrique, et objet portatif associe | |
EP1904921A1 (fr) | Procede cryptographique pour la mise en oeuvre securisee d'une exponentiation et composant associe | |
EP1224765B1 (fr) | Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle publique de type rsa | |
FR2788909A1 (fr) | Procede d'authentification ou de signature a nombre de calculs reduit | |
FR2792789A1 (fr) | Procede de verification de signature ou d'authentification | |
FR2834153A1 (fr) | Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede | |
EP1520370B1 (fr) | Procédé et dispositifs cryptographiques permettant d'alleger les calculs au cours de transactions | |
FR2814619A1 (fr) | Procede d'encodage de messages longs schemas de signature electronique a base de rsa | |
EP1407575B1 (fr) | Procede pour effectuer une tache cryptographique au moyen d'une cle publique | |
Abd Rasid | Blockchain technology in e-voting: Comparative study | |
Singh et al. | Cryptanalysis of blind signature schemes | |
Seito | Cryptography and Financial Industry | |
Nguyen | MATHEMATICS OF BITCOIN | |
WO2002050658A1 (fr) | Procedes de contre-mesure dans un composant electronique mettant en ouvre un algorithme de cryptographie a cle publique de type rsa | |
Zhang et al. | A Loss Reportable E-Cash Scheme without TTP Based on ECC | |
FR2829333A1 (fr) | Procede de reduction de la taille d'une signature rsa ou rabin |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CA | Change of address | ||
TP | Transmission of property | ||
ST | Notification of lapse |
Effective date: 20081231 |