FR2756122A1 - Procede de signature et/ou d'authentification de messages electroniques - Google Patents

Procede de signature et/ou d'authentification de messages electroniques Download PDF

Info

Publication number
FR2756122A1
FR2756122A1 FR9614158A FR9614158A FR2756122A1 FR 2756122 A1 FR2756122 A1 FR 2756122A1 FR 9614158 A FR9614158 A FR 9614158A FR 9614158 A FR9614158 A FR 9614158A FR 2756122 A1 FR2756122 A1 FR 2756122A1
Authority
FR
France
Prior art keywords
key
message
keys
module
sep
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
Application number
FR9614158A
Other languages
English (en)
Other versions
FR2756122B1 (fr
Inventor
Jacques Stern
David Naccache
Dit Vehel Francois Levy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Gemplus SA
Original Assignee
Gemplus Card International SA
Gemplus SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gemplus Card International SA, Gemplus SA filed Critical Gemplus Card International SA
Priority to FR9614158A priority Critical patent/FR2756122B1/fr
Priority to CA002271989A priority patent/CA2271989A1/fr
Priority to EP97947096A priority patent/EP0940021A1/fr
Priority to JP10523288A priority patent/JP2001503162A/ja
Priority to PCT/FR1997/002086 priority patent/WO1998023061A1/fr
Publication of FR2756122A1 publication Critical patent/FR2756122A1/fr
Application granted granted Critical
Publication of FR2756122B1 publication Critical patent/FR2756122B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
    • G06Q20/40975Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

La présente invention concerne le domaine de la signature et/ou de l'authentification de messages électroniques dans lequel un algorithme de calcul utilise des clefs numériques (N, e, d) implantées sur des cartes à puce; les clefs comportant, notamment, un nombre entier appelé module N. Le procédé, selon l'invention, prévoit que plusieurs clefs (N, e, d), (N, e', d') comportent un module (N) identique et que ces clefs seront consacrées à la signature, la vérification et/ou à l'authentification de messages. L'invention s'applique notamment, à la reconnaissance de l'utilisateur des clefs de la carte ou à la reconnaissance des services utilisés par un ou par plusieurs utilisateurs.

Description

PROCÉDÉ DE SIGNATURE ET/OU D'AUTHENTIFICATION DE
MESSAGES ÉLECTRONIQUES.
La présente invention concerne un procédé de signature et/ou d'authentification de messages électroniques.
Elle est particulièrement destinée à être mise en oeuvre à l'aide d'un appareil portable à microprocesseur du type carte à puce électronique11.
Afin de préserver l'exclusivité de certains services, une carte à puce comporte généralement des clefs numériques, une clef numérique étant constituée par une chaîne de caractères numériques qui sera utilisée par un algorithme de calcul pour signer ou pour authentifier des messages échangés entre la carte et un organe vérifieur comme un terminal de lecture ou une autorité centrale, ou encore pour authentifier la carte utilisée.
On peut également utiliser de telles clefs pour crypter les messages transmis. Les messages peuvent ensuite être décryptés uniquement par un organe possesseur soit d'une clef égale à la clef de cryptage (on parle alors de cryptographie symétrique), soit d'une clef correspondante (cryptographie asymétrique) à la clef de cryptage secrète.
Par exemple, il s'agit de signer des messages envoyés par une 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 vérifiée d'abord par le terminal de lecture dans lequel est faite la transaction, ensuite par une autorité centrale qui gère les transactions.
Par la suite, on utilisera indifféremment les expressions "signature électronique't et "signature numérique" ou bien les expressions "clef numérique" et "clef électronique". En effet, la signature à l'aide de clefs constituées de chaînes numériques se prête tout particulièrement à la signature de messages transmis par voie électronique.
Une signature électronique est calculée à l'aide d'une série de règles de calcul définies par un algorithme et un ensemble de paramètres utilisés dans ces calculs. La signature permet à la fois de s'assurer de l'identité du signataire (car elle fait intervenir un exposant secret propre au signataire) et l'intégrité du message signé (car 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; opération appellée vérification.
L'authentification est une opération de vérification particulière au cours de laquelle le terminal ou l'autorité centrale vérifie seulement une signature de la carte, avant tout échange de messages significatifs. Au cours de cette procédure, l'organe vérifieur envoie un message quelconque à la carte qui le retourne signé. L'organe vérifieur peut alors authentifier la signature de ce message.
L'authentification fait de préférence intervenir une clef numérique différente de celle réservée aux opérations de signature/vérification de messages.
Le procédé de signature et d'authentification qui va être décrit est destiné en particulier à être utilisé avec un algorithme normalisé appelé RSA du nom des ses inventeurs (Rivest, Shamir et Adleman) dont on peut trouver une description dans le brevet US 4,405,829.
La génération de signature RSA fait intervenir un exposant secret. La vérification fait intervenir un exposant public qui correspond à l'exposant secret mais ne lui est pas identique. Chaque utilisateur possède une paire d'exposants (secret, public). Les exposants publics peuvent être connus de tous, alors que les exposants secrets ne sont jamais dévoilés. Toute personne a la capacité de vérifier la signature d'un utilisateur en se servant de l'exposant public de celui-ci, mais seul le possesseur de l'exposant secret peut générer une signature correspondant à la paire d'exposants.
Plus précisément, les clefs électroniques RSA comportent trois paramètres (N,e,d) appelés respectivement module N, exposant public e, et exposant secret d. Les deux premiers nombres (N,e) peuvent être lus sur la carte à puce, où ils sont mémorisés, et sont dénommés paramètres publics. En revanche, l'exposant secret d est mémorisé dans une zone mémoire protégée de la carte qui ne peut être lue de l'extérieur. Seuls les circuits de calcul protégés de la carte peuvent accéder en lecture à l'exposant secret d.
Les clefs électroniques sont implantées dans une carte en programmant une mémoire morte EEPROM. Les paramètres publics (N,e) sont implantés dans une zone de la mémoire EEPROM accessible en lecture par un terminal. Au contraire, l'exposant secret d est implanté dans une zone protégée de la mémoire EEPROM, l'exposant d n'étant fourni qu'au processeur de la carte pour ses calculs.
Chaque paramètre est constitué par un nombre entier numérique. La longueur du module N est généralement supérieure ou égale à 512 bits. En pratique, chaque paramètre d'un triplet (N,e,d) a en moyenne une longueur de 512 bits. Toutefois, l'exposant public e est souvent plus court afin d'accélérer la vérification de la signature.
Nous allons rappeler dans ce qui suit le déroulement d'une opération de signature électronique, de vérification, d'authentification, de cryptage et de décryptage de messages dans le cas de l'utilisation de l'algorithme de calcul RSA.
Pour obtenir la signature S d'un message M, au moyen d'une clef dont les paramètres publics sont (N,e,d), la carte à puce met en oeuvre le calcul suivant
Md modulo N = S.
La carte émet alors le couple (M,S), c'est-à-dire le message accompagné de sa signature S. La carte émet ou le terminal va lire les paramètres (N,e) qui ont servi au calcul de la signature S du message M.
Le terminal peut alors vérifier la signature S en mettant en oeuvre le calcul suivant
Se mod N = M'.
Le terminal vérifie alors que M' est égal à M.
L'opération d'authentification entre une carte et un organe vérifieur consiste pour la carte à prouver son identité à l'organe vérifieur.
Pour cela, l'organe vérifieur envoie un message X aléatoire à la carte ; la carte calcule la signature A de ce message à partir des paramètres (N',e',d') d'une autre clef RSA en mettant en oeuvre la relation suivante
xd mod N = A.
L'organe vérifieur lit ou reçoit le module N' et l'exposant public e' et peut alors décoder un tel message aléatoire signé A pour obtenir le message X' en mettant en oeuvre la relation suivante
Aer mod N' = X'.
L'authentification est alors effectuée par cet organe vérifieur en comparant X et X'. Si le message aléatoire X et le message décodé X' correspondent, la signature est authentifiée.
L'usurpation d'une signature est rendue impossible par l'inaccessibilité de l'exposant secret d et par le fait que les trois paramètres (N,e,d) sont de grands nombres binaires.
La quantité de calcul et le temps nécessaires pour trouver un exposant secret d solution des équations précédentes est considérable et elle rend tout à fait improbable sa découverte.
Par exemple, sur les cartes à puces utilisées couramment, une clef RSA comporte trois nombres binaires de 512 bits chacun. On notera qu'une seule clef occupe alors une place mémoire de 192 Octets.
Une autre fonction des clefs numériques et de l'algorithme RSA est de préserver la confidentialité d'un échange de messages entre la carte et le terminal ou l'autorité centrale.
La confidentialité est obtenue par le cryptage et le décryptage des messages échangés. Le cryptage d'un message M est obtenu par l'algorithme RSA, en réalisant l'opération binaire suivante
Me mod N = C.
Le cryptage est donc obtenu par une opération similaire à la signature, mais en utilisant alors l'exposant public e au lieu de l'exposant secret d.
Réciproquement, le décryptage peut être représenté par l'opération binaire suivante
cd mod N = M.
La carte peut ainsi décrypter le message crypté C l'aide du module N et de l'exposant secret d de sa clef numérique.
On notera que la confidentialité est préservée puisque le décryptage nécessite la connaissance de l'exposant secret d, dont la découverte est quasiimpossible comme on l'a vu.
De façon générale, tout triplet (N,e,d) de nombres entiers doit respecter la condition mathématique
e d = 1 mod E(N) où E(N), appelée "indicatrice d'Euler", désigne le nombre d'entiers premiers avec N et inférieurs à N.
Dans la pratique, plusieurs clefs peuvent être implantées sur une carte à puce, chaque clef donnant l'accès à un service différent. La mémoire EEPROM doit alors contenir autant de triplets (Nl,el,dl) (N2,e2,d2)...,(Ni,ei,di) qu'il y a de clefs.
Un inconvénient de l'utilisation de tels algorithmes pour des cartes à puce, dans le cas où plusieurs clefs sont prévues, est l'occupation d'une mémoire morte EEPROM de grande capacité. Selon l'exemple précédent, une carte disposant de dix clefs
RSA de 192 Octets, nécessite une mémoire morte EEPROM d'environ 2 kO.
Un autre inconvénient vient du grand nombre de clefs à générer du fait de la grande quantité de cartes à programmer sachant que chaque carte comporte plusieurs clefs. En effet, le temps de calcul est élevé lors de la conception des clefs numériques. Le choix de chaque module N et de chaque paire d'exposant (e,d) de chaque clef nécessite une série d'opérations complexes pour vérifier des conditions mathématiques garantissant la sûreté et l'inviolabilité.
Un objet de la présente invention est d'optimiser l'espace mémoire d'une carte à puce et de simplifier les opérations de signature et d'authentification.
Un autre objet de l'invention est de garantir la sûreté et l'inviolabilité du codage numérique.
De façon surprenante, ces objets sont atteints selon l'invention en utilisant des clefs numériques (N,el,dl),(N,e2,d2),...,(N,ei,di) comportant un module N identique, deux clefs se distinguant en ce que la paire d'exposants (el, dl) d'une clef est différent de la paire d'exposant (ei, di) d'une autre clef, et en réservant de telles clefs à des procédures de signature, de vérification et/ou d'authentification.
En particulier, seule une clef numérique (N,el,dl) parmi les clefs numériques (N,el,dl),...,(N,ei,di) comportant un module N identique pourra servir à des procédure de cryptage et/ou de décryptage.
Selon l'invention, il est prévu d'utiliser un procédé de signature et/ou d'authentification de messages électroniques dans lequel un algorithme de calcul utilise des clefs électroniques afin de signer les messages et/ou afin d'authentifier les messages, les clefs étant constituées de chaînes de caractères numériques et implantées sur des cartes à puce, une clef comportant notamment un triplet (N,e,d) de nombres entiers
- un module (N),
- un exposant public (e) et
- un exposant secret (d) deux clefs se distinguant en ce que le triplet (N,e,d) d'une clef est différent du triplet (N',e',d') de l'autre clef, le procédé étant caractérisé en ce que plusieurs clefs (N,e,d), (N,e',d') comportent un module (N) identique notamment afin de reconnaître un utilisateur ou une utilisation identique de la carte, et en ce que ces clefs sont consacrées à la signature, à la vérification et/ou à l'authentification de messages.
Selon une variante, l'invention est réalisée en utilisant un procédé dans lequel, parmi les clefs (N,e,d) , (N,e',d') , (N,e",d") ayant un module (N) identique, au plus une clef (N,e,d) sert à un cryptage et/ou à un décryptage de messages.
L'invention est réalisée de préférence avec un procédé dans lequel la signature d'un message (M) est précédée d'une opération de hachage.
Enfin l'invention prévoit de réaliser une carte (C1) à puce électronique comportant une mémoire contenant des clefs électroniques (N,e,d) utilisées pour signer et/ou authentifier des messages électroniques, les clefs (N,e,d) étant constituées de chaînes de caractères numériques stockées dans la mémoire, une clef (N,e,d) comportant notamment un triplet de nombres entiers
- un module (N)
- un exposant public (e) et
- un exposant secret (d) deux clefs (NO,eO,dO),(Nl,e3,d3) se distinguant en ce que le triplet (NO,eO,dO) d'une clef est différent du triplet (Nl,e7,d7) de l'autre clef, caractérisée en ce que une clef (NO,eO,dO) de la carte comporte un module (NO) identique au module (NO) d'une autre clef (NO,el,dl),(NO,e5,d5) de cette carte (C1) ou d'une autre carte (C2).
La réalisation de l'invention sera mieux comprise à la lecture de la description et des dessins qui vont suivre ; sur les dessins annexés
- la figure 1 représente un schéma de cartes à puce utilisant un procédé de signature, de vérification et/ou d'authentification de messages électroniques selon l'invention.
La figure 1 illustre schématiquement l'implantation de plusieurs clefs numériques (NO,eO,dO)...(Nl,e3',d3') sur deux cartes différentes avec le procédé selon l'invention.
Une première carte à puce C1 est représentée en deux parties, une partie publique P1 et une partie secrète S1, représentant respectivement la zone accessible et la zone protégée de la mémoire morte
EEPROM de la carte C1.
Une seconde carte à puce C2 est représentée de façon analogue avec une partie publique P2 et une partie secrète S2 représentant les zones accessibles et protégées de sa mémoire morte.
Une première série de paramètres NO,Nl,eO,eO',el,el',e2,e2',e3,e3' est représentée dans la partie publique P1 de la carte C1. La première série correspond à des modules et à des exposants publics stockés dans la zone accessible de la mémoire morte de la première carte Cl.
Une deuxième série de paramètres dO,dO' ,dl,dl' ,d2,d2' ,d3,d3' est représentée dans la partie secrète S1 de la carte C1. La deuxième série correspond à des exposants secrets stockés dans la zone protégée de la mémoire morte de la première carte C1.
De même, sur la seconde carte C2, dans la partie publique P2, on voit une troisième série de paramètres NO,N1,N2, e4,e4',e5,e5',e6,e6',e7,e7' et, dans la partie secrète S2, une quatrième série de paramètres d4,d4',d5,d5',d6,d6',d7,d7'. La troisième série de paramètres correspond à des modules et à des exposants publics stockés dans la zone accessible de la mémoire morte EEPROM, la quatrième série correspondant à des exposants secrets stockés dans la zone protégée de la mémoire morte EEPROM de la seconde carte C2.
Ces paramètres groupés en triplets (N,e,d) forment alors des clefs numériques permettant des opérations de signature/vérification, ou d'authentification ou de cryptage/décryptage précédemment décrites.
Le tableau ci-après indique deux groupes de clefs numériques formées par exemple en reprenant les séries de paramètres des cartes C1 et C2 de la figure 1 et l'utilisation de ces clefs pour des opérations de signature/vérification, d'authentification et de cryptage/décryptage selon l'invention.
Figure img00100001
<tb>
CARTE <SEP> CLEF <SEP> AUTO <SEP> INTI <SEP> SIGNATURE/ <SEP> CRYPTAGE
<tb> <SEP> NUMÉRIQUE <SEP> FICATION <SEP> VERIFI
<tb> <SEP> -CATION <SEP> DÉCRYP <SEP>
<tb> <SEP> -TAGE
<tb> <SEP> Cl <SEP> (NO, <SEP> eO <SEP> , <SEP> dO) <SEP> oui <SEP> oui
<tb> <SEP> (NO, <SEP> eO', <SEP> dO') <SEP> oui <SEP> non
<tb> <SEP> (NO, <SEP> el, <SEP> dl) <SEP> oui <SEP> non
<tb> <SEP> (NO, <SEP> el', <SEP> dl') <SEP> oui <SEP> non
<tb> <SEP> (NO, <SEP> e2 <SEP> , <SEP> d2) <SEP> oui <SEP> non
<tb> <SEP> (NO, <SEP> e2', <SEP> d2') <SEP> oui <SEP> non
<tb> <SEP> (N1, <SEP> e3 <SEP> , <SEP> d3 <SEP> ) <SEP> oui <SEP> non
<tb> <SEP> (N1, <SEP> e3', <SEP> d3') <SEP> oui <SEP> non
<tb> <SEP> C2 <SEP> (NO, <SEP> e4 <SEP> , <SEP> d4 <SEP> ) <SEP> oui <SEP> non
<tb> <SEP> (NO, <SEP> e4', <SEP> d4') <SEP> oui <SEP> non
<tb> <SEP> (No, <SEP> e5 <SEP> , <SEP> dus <SEP> ) <SEP> oui <SEP> non
<tb> <SEP> (NO, <SEP> e5', <SEP> d5') <SEP> oui <SEP> non
<tb> <SEP> (Nl,e6,d6) <SEP> oui <SEP> oui
<tb> <SEP> (N1, <SEP> e6', <SEP> d6') <SEP> oui <SEP> non
<tb> <SEP> (N2, <SEP> e7 <SEP> , <SEP> d7) <SEP> oui <SEP> oui
<tb> <SEP> (N2, <SEP> e7', <SEP> d7') <SEP> oui <SEP> non
<tb>
Dans la deuxième colonne intitulée clef numérique, on voit que la carte C1 comporte six clefs (NO,eO,dO), (NO,eO',dO'), (NO,el,dl), (NO,el',dl'), (NO,e2,d2) et (NO,e2',d2'), ayant le même module NO.
Les opérations d'authentification utilisent de préférence des clefs distinctes des clefs de signature/vérification, même si ces opérations concernent un même service de la carte.
Ces clefs de signature/vérification et d'authentification peuvent cependant avoir le même module. Ainsi, dans l'exemple du tableau, on a indiqué que parmi les six clefs de la carte C1 ayant le module
NO, trois clefs (paires d'exposants (eO,dO), (el,dl) et (e2,d2)) sont consacrées aux opérations de signature/vérification, tandis que trois autres clefs (paires d'exposant (eO',dO') (el',dl') et (e2',d2')) sont consacrées à des authentifications.
De manière générale, chaque clef ayant le module commun NO peut être associée à l'utilisation d'un service distinct. Par exemple, les trois clefs (NO,eO,dO), (NO,el,dl) et (NO,e2,d2) peuvent correspondre à trois comptes bancaires de l'utilisateur de la carte C1. Chaque paire d'exposants (eO,dO), (el,dl) et (e2,d2) est alors associée à une signature électronique distincte correspondant à chacun des comptes.
Toutefois, comme l'indique la dernière colonne du tableau, il est prévu que seule une des six clefs comportant un module NO identique, la clef (NO,eO,dO) soit utilisée pour des opérations de cryptagedécryptage.
Ainsi, le module NO n'est pas utilisé dans deux clefs de cryptage-décryptage distinctes. Les conditions de sûreté et d'inviolabilité des opérations de cryptage sont alors respectées.
La seconde partie du tableau indique que la carte C2 possède quatre clefs (NO,e4,d4), (NO,e4',d4'), (NO,e5,d5) et (NO,e5',d5') comportant le même module
NO. On voit ainsi qu'un module commun NO peut être prévu sur des cartes C1, C2 différentes.
Cependant, comme le module NO est dans cet exemple utilisé par la clef (NO,eO,dO) de la carte C1 pour des opérations de cryptage-décryptage, aucune opération de cryptage-décryptage ne doit être effectuée par la clef (NO,e4,d4) ou la clef (NO,e4',d4') ou la clef (NO,e5,d5) ou la clef (NO, e5', d5') de la seconde carte C2.
Ce cas illustre une application de l'invention dans lequel un module identique NO est commun à plusieurs cartes. Par exemple, les clefs (NO,eO,dO) et (NO,e4,d4) correspondent à un même service ou une même application prévus pour ces cartes.
Le tableau précédent montre une autre série de clefs (Nl,e3,d3), (Nl,e3',d3'), (Nl,e6,d6) et (N1, e6', d6') ayant un module N1 identique. Dans cette autre série, seule la clef (Nl,e6,d6) attachée à la carte C2 permet des opérations de cryptage-décryptage.
En somme selon une caractéristique du procédé selon l'invention, plusieurs clefs comportent un module identique et ces clefs sont consacrées à la signature et/ou à l'authentification de messages.
Et selon une variante du procédé selon l'invention, parmi de telles clefs ayant un module identique , au plus une clef sert à un cryptage et/ou à un décryptage de messages.
Cependant, afin d'assurer le maximum de sécurité on prévoit des précautions dans le choix des exposants publics comme cela est détaillé dans la suite.
Première précaution, une propriété mathématique va limiter le choix des exposants publics eO,...,ei relatifs à un module N identique.
Chacun de ces exposants publics, noté ek, ne doit pas être un diviseur du plus petit commun multiple (en abrégé ppcm) des autres exposants publics e0,... ,ekl, ek+l ei relatifs au même module.
La réalisation de cette première précaution est en particulier obtenue en choisissant les exposants publics eO,...,ei parmi les nombres premiers. En effet, il est mathématiquement impossible qu'un nombre premier soit diviseur d'un multiple d'autres nombres premiers.
Cependant, comme le calcul des nombres premiers de grande taille représente un nombre considérable de calculs, une autre méthode peut être suivie. Elle consiste à choisir les exposants publics eO,...,ei de façon aléatoire parmi de très grands nombres. On peut alors montrer que la probabilité de découverte des clefs est extrêmement faible. Cette démonstration ne rentre pas dans le cadre de la présente demande.
A titre d'exemple cependant, considérons le choix de seize exposants eO,...,e16 de façon aléatoire parmi les nombres binaires de 180 bits ; Dans ce cas, la probabilité qu'un des exposants ek soit diviseur du ppcm des autres est d'une chance sur 270 chances.
Selon un autre exemple, le choix de 256 exposants eO,...,256 parmi les nombres binaires de 512 bits correspond à une probabilité inférieure à 2-166.
Cette méthode, bien que moins rigoureuse, permet d'obtenir une sûreté élevée tout en économisant du temps de calcul.
Deuxième précaution, on prévoit de hacher les messages avant de les signer. Pour cela, on peut utiliser un algorithme de hachage de type connu. Cette complication multiplie le nombre d'opérations nécessaires pour découvrir les clefs numériques et rend cette éventualité tout à fait improbable.
Typiquement les algorithmes de hachage sont des fonctions aléatoires faisant correspondre à des chaînes binaires, comme un message M, des nombres inférieurs à un entier P, de manière pseudo-aléatoire. Le résultat du hachage du message M est ainsi un condensé de taille binaire fixe, la taille de l'entier P.
De façon avantageuse on utilisera un algorithme de hachage SHA, c'est-à-dire conforme à la norme "Secure
Hash Standard" publiée par le National Institute of
Standards and Technology.
Notons que si l'on applique un algorithme de hachage dont la taille des résultats, c'est-à-dire la taille de l'entier P, est nettement inférieure à la taille des modules NO,N1,..., il est préférable d'appliquer un hachage répété. Lors d'un hachage répété le message M est tronqué en sous-messages m,m',... et chaque sous-message est traité isolément par l'algorithme de hachage.
Par exemple, si les clefs numériques comportent des paramètres N,e,d d'environ 512 bits et que le résultat de l'algorithme de hachage utilisé donne des résultats ayant une dimension de 128 ou 160 bits, il sera préférable d'appliquer un tel hachage répété.
Un mode de réalisation préféré de l'invention prévoit d'utiliser une fonction h de hachage faisant appel à l'exposant public e et au message M, notée sous la forme suivante
H = h(e,M),
H étant le résultat du hachage, c'est à dire le message haché.
Ainsi l'opération de signature précédée du hachage suit la relative suivante
S=Hd mod N = (h (e, M))d mod N.
Réciproquement, l'opération de vérification sera effectuée en vérifiant la relation suivante
se mod N = h(e, M).
Cette procédure de hachage a l'avantage de donner une sûreté importante au procédé de signature et d'authentification.
Un mode de réalisation préféré de l'invention prévoit en outre d'utiliser une fonction complexe de chiffrement f avant le cryptage. On obtient ainsi un codage d'ordre 2 avec deux méthodes de codage distinctes, ce qui renforce la sûreté du cryptage.
Des algorithmes répondant à des normes d'encryptage de données tel des algorithmes DES (Data Enscryption
Standard) peuvent ainsi être utilisés pour réaliser une fonction f de chiffrement symétrique.
Par exemple, on peut choisir une fonction f de chiffrement, faisant appel au message M à chiffrer et à un paramètre k, et notée sous la forme suivante
F = f(k,M)
F étant le message chiffre.
Etant symétrique, la fonction f admet une fonction inverse, notée f1, vérifiant la relation suivante
M = f1(k,M)
Pour rendre l'opération de chiffrement plus complexe, donc plus sûre, le paramètre k est de préférence obtenu par hachage de l'exposant public e, selon la relation suivante
k = h(e)
Le message chiffré F est donc obtenu, selon ce mode de réalisation, après le calcul suivant
F = f(h(e),M)
Finalement, l'opération de chiffrement-cryptage correspond à la relation suivante
C= Fe mod N = [f(h(e),M)]e mod N
où C est le message chiffré puis crypté comme établi précédemment.
Réciproquement, l'opération de décryptagedéchiffrement est effectuée selon le calcul suivant
M = fl(h(e),Cd mod N)
La démonstration de la sûreté du procédé et le calcul particulièrement complexe des probabilités infinitésimale de découverte des clefs ne sera pas détaillé dans la présente demande.
Une dernière précaution consistera à limiter le nombre de cartes à puce et plus précisément le nombre i des clefs (N,ei,di) comportant un module N identique
Une des applications particulièrement intéressante du procédé selon l'invention est justement l'émission de cartes en série limitée comportant un module N identique. Ce module servant à reconnaître par exemple un groupe d'utilisateurs ou un service utilisé en commun.
L'utilisation de clefs comportant un même module permet d'envisager de pouvoir signer au nom d'un groupe tout en distinguant l'identité de chaque signataire avec l'exposant utilisé.
Une autre application du procédé selon l'invention est l'implantation sur une même carte de plusieurs clefs (N,ei,di) ayant le même module N pour reconnaître l'utilisateur ou permettre la reconnaissance d'un groupe de services offert par un même prestataire.
Enfin, une application particulière est l'identification des cartes avant leur personnalisation c'est-à-dire avant leur remise à l'utilisateur avec des clefs propres à l'utilisateur. Dans la pratique, les mémoire des cartes à puce sont initialement chargées avec des clefs de transport pour les tester et les distinguer au milieu d'un lot. Les cartes connues comportent un numéro d'identification de la carte, noté Id.
Ce numéro d'identification Id est par sécurité transmis sous la forme signée suivante
S(Id) = Idd modulo N (N,e,d) étant les paramètres de la clef appelée clef de transport. Lors de la personnalisation, cette clef est remplacée par une nouvelle clef propre à l'utilisateur.
On pourra avec le procédé selon l'invention réutiliser le module N déjà stocké dans la clef de transport en modifiant seulement le couple d'exposants (e,d).
Un avantage de l'invention est la limitation de la taille mémoire utilisée par les clefs numériques dans la mémoire morte EEPROM ou ROM. On peut ainsi utiliser des composants de dimensions réduites ou utiliser la zone mémoire inoccupée pour stocker d'autres données.
Un autre avantage du procédé selon l'invention et de réduire les échanges entre une carte et le terminal ou l'autorité centrale. En effet, le terminal peut stocker le module N commun à plusieurs clefs en évitant de le recharger lors d'un changement de la clef utilisée.
Enfin, le procédé selon l'invention procure un gain de temps de calcul important lors de la génération des clefs numériques puisque les modules N, ayant fait l'objet de calculs complexes, peuvent être utilisés plusieurs fois.

Claims (10)

REVENDICATIONS
1. Procédé de signature, de vérification et/ou d'authentification de messages électroniques dans lequel un algorithme de calcul utilise des clefs électroniques afin de signer les messages et/ou afin d'authentifier les messages, les clefs étant constituées de chaînes de caractères numériques et implantées sur des cartes à puce, une clef comportant notamment un triplet (N,e,d) de nombres entiers
- un module (N),
- un exposant public (e) et
- un exposant secret (d), deux clefs se distinguant en ce que le triplet (N,e,d) d'une clef est différent du triplet (N',e',d') de l'autre clef, le procédé étant caractérisé en ce que plusieurs clefs (N,e,d), (N,e',d') comportent un module (N) identique notamment afin de reconnaître un utilisateur ou une utilisation identique de la carte, et en ce que ces clefs sont consacrées à la signature, à la vérification et/ou à l'authentification de messages.
2. Procédé selon la revendication 1 dans lequel une opération de signature d'un message (M) avec une clef (N,e,d) consiste à calculer un message signé (S) en fonction (g(M,N,d)) du message (M), du module (N) et de l'exposant secret (d) de la clef (N,e,d) et/ou dans lequel une opération de vérification consiste à calculer un message vérifié (M') en fonction (g(S,N,e)) d'un message signé (S), du module (N) et de l'exposant public (e) de la clef (N,e,d).
3. Procédé selon la revendication 1 ou 2 dans lequel une opération d'authentification d'un message (A) avec une clef (N', e', d') consiste à transmettre un message aléatoire (X), à recevoir un message aléatoire signé (A), à calculer un message authentifié (X') en fonction (g(A,N',e')) du message aléatoire signé (A), du module (N') et de l'exposant public (e') de la clef (N',e',d') et à comparer le message authentifié (X') au message aléatoire (X).
4. Procédé selon l'une des revendications précédentes, dans lequel, parmi les clefs (N,e,d),(N,e',d'),(N,e",d") ayant un module (N) identique, au plus une clef (N,e,d) sert à un cryptage et/ou à un décryptage de messages.
5. Procédé selon la revendication 4 dans lequel une opération de cryptage d'un message (M), avec la clef (g(M,N,e)) consiste à calculer un message crypté (C) en fonction (g(C,N,d)) du message (M), du module (N) et de l'exposant public (e) de la clef (N,e,d) et/ou dans lequel une opération de décryptage avec la clef (N,e,d) consiste à calculer un message décrypté (M) en fonction (g(C,N,d)) d'un message crypté (C), du module (N) et de l'exposant secret (d) de la clef (N,e,d).
6. Procédé selon la revendication 4 ou 5, dans lequel une opération de cryptage est précédée d'un chiffrement et/ou dans lequel une opération de décryptage est suivie d'une déchiffrement, une opération de chiffrement ou de déchiffrement mettant en oeuvre une fonction inversible (f, et et exposant public (e).
7. Procédé selon l'une des revendications précédentes dans lequel la signature du message (M) est précédée d'une opération de hachage.
8. Procédé selon l'une des revendications précédentes dans lequel, parmi les exposants publics (el,e2,...,ei) des clefs (N,el,dl), (N,e2,d2),...,(N,ei,di) comportant un module (N) identique, chacun (ek) de ces exposants publics n'est pas un diviseur du plus petit commun multiple des autres exposants publics (el,e2,...,ek-l,ek+l,...,ei) relatifs au module (N) identique.
9. Carte à puce mettant en oeuvre un procédé selon l'une des revendications précédentes.
10. Carte (C1) à puce électronique comportant une mémoire contenant des clefs électroniques (N,e,d) utilisées pour signer et/ou authentifier des messages électroniques, les clefs (N,e,d) étant constituées de chaînes de caractères numériques stockées dans la mémoire, une clef (N,e,d) comportant notamment un triplet de nombres entiers
- un module (N)
- un exposant public (e) et
- un exposant secret (d) deux clefs (NO,eO,dO),(Nl,e3,d3) se distinguant en ce que le triplet (NO,eO,dO) d'une clef est différent du triplet (Nl,e3,d3) de l'autre clef, caractérisée en ce que une clef (NO,eO,dO) de la carte comporte un module (NO) identique au module (NO) d'une autre clef (NO,el,dl),(NO,eS, d5) de cette carte (C1) ou d'une autre carte (C2).
FR9614158A 1996-11-20 1996-11-20 Procede de signature et/ou d'authentification de messages electroniques Expired - Fee Related FR2756122B1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR9614158A FR2756122B1 (fr) 1996-11-20 1996-11-20 Procede de signature et/ou d'authentification de messages electroniques
CA002271989A CA2271989A1 (fr) 1996-11-20 1997-11-20 Procede de signature et/ou d'authentification de messages electroniques
EP97947096A EP0940021A1 (fr) 1996-11-20 1997-11-20 Procede de signature et/ou d'authentification de messages electroniques
JP10523288A JP2001503162A (ja) 1996-11-20 1997-11-20 電子メッセージの署名および/または認証方法
PCT/FR1997/002086 WO1998023061A1 (fr) 1996-11-20 1997-11-20 Procede de signature et/ou d'authentification de messages electroniques

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9614158A FR2756122B1 (fr) 1996-11-20 1996-11-20 Procede de signature et/ou d'authentification de messages electroniques

Publications (2)

Publication Number Publication Date
FR2756122A1 true FR2756122A1 (fr) 1998-05-22
FR2756122B1 FR2756122B1 (fr) 1999-02-12

Family

ID=9497820

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9614158A Expired - Fee Related FR2756122B1 (fr) 1996-11-20 1996-11-20 Procede de signature et/ou d'authentification de messages electroniques

Country Status (5)

Country Link
EP (1) EP0940021A1 (fr)
JP (1) JP2001503162A (fr)
CA (1) CA2271989A1 (fr)
FR (1) FR2756122B1 (fr)
WO (1) WO1998023061A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2803961A1 (fr) 2000-01-19 2001-07-20 Ghislain Moret Systeme de securisation des transactions lors d'achats par correspondance

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19848378C2 (de) * 1998-09-05 2000-11-30 Orga Kartensysteme Gmbh Verfahren zur Verifizierung der digitalen Signatur einer Nachricht
DE19952944A1 (de) * 1999-11-03 2001-05-23 Siemens Ag Verfahren und System zum Prüfen der Zugangsberechtigung zu einem Computer oder dergleichen
US9949115B2 (en) 2014-06-10 2018-04-17 Qualcomm Incorporated Common modulus RSA key pairs for signature generation and encryption/decryption

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0624014A2 (fr) * 1993-05-05 1994-11-09 Addison M. Fischer Dispositif personnel de certification notarielle de la date et de l'heure
FR2718309A1 (fr) * 1994-03-31 1995-10-06 Korea Telecommunication Procédé d'échange d'identification et de génération de signature électronique.

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0624014A2 (fr) * 1993-05-05 1994-11-09 Addison M. Fischer Dispositif personnel de certification notarielle de la date et de l'heure
FR2718309A1 (fr) * 1994-03-31 1995-10-06 Korea Telecommunication Procédé d'échange d'identification et de génération de signature électronique.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2803961A1 (fr) 2000-01-19 2001-07-20 Ghislain Moret Systeme de securisation des transactions lors d'achats par correspondance
WO2001054085A2 (fr) 2000-01-19 2001-07-26 Centre National De La Recherche Scientifique Systeme et procede de securisation des transmissions d'informations

Also Published As

Publication number Publication date
WO1998023061A1 (fr) 1998-05-28
FR2756122B1 (fr) 1999-02-12
JP2001503162A (ja) 2001-03-06
EP0940021A1 (fr) 1999-09-08
CA2271989A1 (fr) 1998-05-28

Similar Documents

Publication Publication Date Title
EP0675614B1 (fr) Dispositif pour l&#39;échange sécurisé de données du genre RSA limité à la signature numérique et la vérification des messages et carte à microcircuit comportant un tel dispositif
US6178507B1 (en) Data card verification system
EP0311470B1 (fr) Procédés et systèmes d&#39;authentification d&#39;accréditations ou de messages à apport nul de connaissance et de signature de messages
FR2834403A1 (fr) Systeme cryptographique de signature de groupe
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
FR2759226A1 (fr) Protocole de verification d&#39;une signature numerique
FR2958101A1 (fr) Infrastructure de gestion de bi-cles de securite de personnes physiques (igcp/pki)
EP1791292B1 (fr) Personnalisation d&#39;un circuit électronique
FR2893797A1 (fr) Personnalisation d&#39;une carte bancaire pour d&#39;autres applications
FR2892252A1 (fr) Procede et dispositif de creation d&#39;une signature de groupe et procede et dispositif de verification d&#39;une signature de groupe associes.
EP1166496A1 (fr) Procede d&#39;authentification et de signature de message utilisant des engagements de taille reduite et systemes correspondants
EP0878934A1 (fr) Procédé d&#39;identification à clé publique utilisant deux fonctions de hachage
FR2699300A1 (fr) Procédé d&#39;authentification d&#39;un ensemble informatique par un autre ensemble informatique.
EP1400056B1 (fr) Procede d&#39;authentification cryptographique
EP0461983B1 (fr) Procédé de transfert de secret, par échange de deux certificats entre deux microcalculateurs s&#39;authentifiant réciproquement
EP1240630A1 (fr) Procede pour authentifier un objet portatif, objet portatif correspondant, et appareil pour mettre en oeuvre le procede
FR2756122A1 (fr) Procede de signature et/ou d&#39;authentification de messages electroniques
EP2614491A1 (fr) Procede simplifie de personnalisation de carte a puce et dispositif associe
EP4012972A1 (fr) Méthode de divulgation sélective de données via une chaine de blocs
EP1522168B1 (fr) Procede, systeme et support informatique de securisation de transmission de messages
EP0980607A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d&#39;aleas
FR2948839A1 (fr) Procede d&#39;authentification securisee d&#39;acces a des donnees chiffrees
EP1470663A1 (fr) Procede de generation et de verification de signatures electroniques
FR2814617A1 (fr) Procede cryptographique de chiffrement de messages et d&#39;identication de supports homologue
FR2713420A1 (fr) Procédé de génération de signatures DSA avec des appareils portables à bas coûts.

Legal Events

Date Code Title Description
CD Change of name or company name
TP Transmission of property
ST Notification of lapse

Effective date: 20160729