FR3070517A1 - Systeme et procede d'authentification et de signature numerique - Google Patents
Systeme et procede d'authentification et de signature numerique Download PDFInfo
- Publication number
- FR3070517A1 FR3070517A1 FR1757933A FR1757933A FR3070517A1 FR 3070517 A1 FR3070517 A1 FR 3070517A1 FR 1757933 A FR1757933 A FR 1757933A FR 1757933 A FR1757933 A FR 1757933A FR 3070517 A1 FR3070517 A1 FR 3070517A1
- Authority
- FR
- France
- Prior art keywords
- signature
- sda
- sdb
- electronic device
- party
- 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.)
- Pending
Links
Classifications
-
- 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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3013—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
L'invention concerne un procédé (10, 20, 30) et un système (SD, SDa, SDb, VD) d'authentification et de signature numérique permettant à tout utilisateur (U, SD, SDa, SDb) de prouver son identité et l'authenticité de ses messages à tout autre utilisateur (VD). Un tel procédé peut être mis en œuvre par des dispositifs électroniques (SD, SDa, SDb, VD) dotés de ressources calculatoires limitées tels que des cartes à puce, des ordinateurs personnels, des passeports et des systèmes de contrôle à distance. La présente invention décrit une nouvelle variante de modèle de signature numérique de Schnorr réutilisant un composant nonce (k) pour plusieurs signatures sans pour autant compromettre la sécurité du système.
Description
SYSTÈME ET PROCÉDÉ D'AUTHENTIFICATION ET DE SIGNATURE NUMÉRIQUE
L'invention concerne le domaine des procédés et systèmes d'authentification et de signature numérique.
La popularité croissante des implémentations dites « légères » de tels systèmes et/ou procédés cryptographiques relance fortement l'intérêt de disposer de protocoles de sécurité offrant une très grande sécurité tout préservant les ressources matérielles des dispositifs électroniques qui les mettent en œuvre.
Un tel attrait s'est fait jour, il y a quelques dizaines d'années, avec l'avènement des cartes à puce notamment. Celles-ci ont peu à peu été agencées pour effectuer des opérations de cryptographie de complexité croissante, notamment pour la mise en œuvre de schémas de sécurité à clé publique. À l'époque, les processeurs cryptographiques disponibles étaient coûteux et volumineux.
La communauté de recherche a développé des procédés astucieux d'indentification et de signature numérique nécessitant de faibles ressources de calcul et de mémorisation pour leurs mises en œuvre respectives.
La présente invention s'inscrit dans cette démarche et concerne un procédé et un système associé d'identification numérique et de signature numérique ne requérant qu'une quantité limitée de ressources de calcul notamment.
Comme mentionné dans le document de brevet
US
4,748,668, la création de cartes d'identité infalsifiables basées sur la technologie émergente des cartes à puce a engendré d'importants problèmes pour de nombreuses applications dans les domaines commerciaux et militaires. Cette situation devient particulièrement sensible lorsque deux parties, respectivement un prouveur (prover selon une terminologie anglo-saxonne) A et un vérificateur (vérifier selon une terminologie anglosaxonne) B, sont adversaires, et que l'on veut rendre impossible à B de se muer en A, quand bien même B ait pu témoigner et vérifier plusieurs preuves d'identités arbitrairement choisies générées par A.
Les applications typiques concernent les domaines des passeports qui sont souvent inspectés et photocopiés par des gouvernements hostiles, des cartes de crédit dont les numéros peuvent être copiés sur des cartes vierges ou communiqués par téléphone, des mots de passe informatiques vulnérables aux pirates informatiques et aux écoutes électroniques réalisées par un commandement militaire et/ou un système de contrôle dont les terminaux peuvent se retrouver dans entre les mains d'un ennemi.
Trois niveaux de protection peuvent être distingués, parmi lesquels :
- « 1'Authentification », selon lequel A peut prouver à B qu'il est A, mais quelqu'un d'autre que A ne peut prouver à B qu'il est A ;
- « l'identification », selon lequel A peut prouver à B qu'il est A, mais B ne peut prouver à quelqu'un d'autre qu'il est A ;
- « la Signature », selon lequel A peut prouver à B qu'il est A, mais B ne peut prouver, même à lui-même, qu'il est A.
L'Authentification est utile uniquement contre des menaces externes lorsque deux parties A et B coopèrent.
La distinction entre deux schémas de sécurité basés respectivement sur l'identification et sur la Signature est subtile et se manifeste principalement lorsque la preuve est interactive et que le vérificateur B veut prouver ultérieurement l'existence de ladite preuve à un juge par exemple.
Avec un schéma de sécurité basé sur l'identification, un vérificateur B peut créer une transcription crédible communication imaginaire impliquant en choisissant soigneusement des questions et des réponses dans un dialogue donné, alors que dans un schéma de sécurité fondé sur la Signature, seule une communication réelle impliquant
A peut générer une transcription crédible.
Quoi qu'il en soit, dans de nombreuses applications commerciales et militaires, le problème principal consiste à détecter toute falsification en temps réel et ainsi refuser un service, un accès ou une réponse à un faussaire. Dans ces cas d'application, les notions de transcription et de juge ne sont pas pertinentes, et l'on peut s'appuyer indifféremment sur l'identification ou la Signature pour bâtir un schéma de sécurité.
L'invention est un perfectionnement de schémas de signature et d'identification dits de « Schnorr ». Il est donc opportun de rappeler tout d'abord le fonctionnement de tels schémas. Le Lecteur pourra si nécessaire puiser un enseignement technique plus détaillé en lien avec la notion de schéma de signature et d'identification de Schnorr, notamment au sein des publications « C.P. Schnorr, Efficient identification and signatures for Smart cards, in G. Brassard, ed. Advances in Cryptology—
Crypto '89, 239-252, Springer-Verlag, 1990 » et « Computer Science, nr. 435 and C.-P. Schnorr, Efficient Signature Génération by Smart Cards, J. Cryptology 4(3), ppl61-174 (1991).
Désignons le paramètre entier de sécurité λ qui est donné à tous les sous-algorithmes constituant le schéma de signature Schnorr. A l'heure actuelle, une valeur de λ égale à 160 est considérée comme suffisante et adaptée à la plupart des applications commerciales.
Les algorithmes sont randomisés sauf indication contraire. Désignons un échantillonnage aléatoire d'un ensemble fini X selon une distribution uniforme par xSRX. Si n est un nombre entier, notons Zn pour désigner l'anneau Z/nZ. Enfin, Zn* désigne les éléments inversibles de Zn.
Les signatures de Schnorr sont descendantes des signatures d'ElGamal, ces dernières étant décrites notamment dans le document T. ElGamal (1985) - A public key cryptosystem and a signature scheme based on discrète logarithms IEEE Trans Inf Theory. 31 (4) : 469-472.) . Lesdites signatures d'ElGamal sont connues pour leur sûreté prouvée dans le modèle de l'oracle aléatoire selon lequel la résolution d'instances génériques du problème du Logarithme Discret (DLP, pour Discrète Logarithm Problem selon une terminologie anglo-saxonne) est supposée dure.
Le schéma de signature Schnorr est un ensemble de quatre sous-algorithmes ou étapes.
Un premier sous-algorithme ou étape de configuration, que nous nommerons Setup(Λ), consiste en un procédé qui est fonction du paramètre de sécurité Λ. Un tel procédé Setup(À) consiste à choisir :
- deux grands nombres premiers p et q, tels que q>2À et p-l=0 modulo q ;
- un groupe cyclique G, sous-ensemble de Zp d'ordre premier q est également choisi, dans lequel on suppose que le problème du logarithme discret (DLP) est difficile, avec un générateur g appartenant audit groupe cyclique G ;
- une fonction de hachage H.
Les paramètres publics, ci-après parfois nommés collectivement par le vocable anglo-saxon « Parameters », p, q, g, G, H sont ainsi définis. Par ailleurs, nous utiliserons dans la suite du document, la notation « a mod b » pour caractériser l'opération de calcul du reste de la division euclidienne de a par b et ainsi désigner la notion de « modulo » par mesure de concision.
Un deuxième sous-algorithme ou étape de génération de clés qui est fonction desdits paramètres, que nous nommerons KeyGen(Parameters) consiste à :
- choisir un entier xER [2, q-1] comme clé de signature sk ;
- publier y = gx mod p comme clé publique pk.
Un troisième sous-algorithme ou étape de production d'une signature qui est fonction desdits paramètres et de la clé de signature sk, que nous nommerons Sign (Parameters, sk, m) , où m est un message à signer, consiste à :
choisir un nonce aléatoire kSRZq* ;
- calculer un engagement (ou commitment, selon une terminologie anglo-saxonne) r = gk mod p ;
- calculer e = H(m, r) et s = k-ex mod q.
- produire la signature {r, s}.
Un quatrième sous-algorithme ou étape de vérification de signature qui est fonction desdits paramètres, de la clé publique pk, du message m et de la signature préalablement produite {r, s}, que nous nommerons Verify(Parameters, pk, m, {r, s}) consiste à :
- calculer e = H(m, r) ;
- retourner un booléen de valeur « Vrai » (True selon une terminologie anglo-saxonne) si gsye = r mod p, ou retourner un booléen de valeur « Faux » (False selon une terminologie anglosaxonne) dans le cas contraire.
L'exponentiation modulaire nécessaire à l'exploitation d'un tel schéma de signature constitue généralement un « goulot d'étranglement » pour les dispositifs le mettant en œuvre. Des techniques dites d'accélération de l'exponentiation ont été développées. En effet, le problème du calcul des exponentiations modulaires est bien connu des personnes en charge de la mise en œuvre de crypto-systèmes basés sur le problème du Logarithme Discret DLP ou de crypto-systèmes RSA.
Dans le cas spécifique de la présente invention, nous voulons calculer r=gk mod p. Les stratégies suivantes ont été proposées, mais leur sécurité est souvent heuristique.
L'une desdites stratégies consiste par exemple à utiliser des extensions signées (uniquement applicables aux groupes pour lesquels l'inversion est efficace) . Il en est de même pour l'utilisation d'extensions Frobenius ou des méthodes GLV (Gallant-Lambert-Vanstone) / GLS (Galbraith-Lin-Scott) dont on peut connaître respectivement les principes en parcourant notamment les documents « R. P. Gallant, R. J. Lambert, and S. A. Vanstone. Faster point multiplication on elliptic curves with efficient endomorphisms - In J. Kilian, editor, CRYPTO, volume 2139 of Lecture Notes in Computer Science, pages 190-200. Springer, 2001 » et « S. D. Galbraith, X. Lin and M. Scott - Endomorphisms for faster elliptic curve cryptography on a large class of curves. J. Cryptology, 24(3):446-469, 2011 ».
Il en est de même pour les exponentiations dites par lots comme suggéré par D. M'Raïhi et D. Naccache dans le document « Batch Exponentiation : A Fast DLP-Based Signature Génération Strategy. ACM Conférence on Computer and Communications Security 1996: 58-61 ».
Les approches mentionnées ci-dessus fonctionnent pour des valeurs arbitraires de x. Alternativement, on peut choisir une valeur particulière de x avec certaines propriétés qui rendent le calcul plus rapide. Toutefois, il est possible que cela affaiblisse le Problème du Logarithme Discret DLP.
Ainsi, on peut :
- choisir x avec un faible poids de Hamming tel que proposé dans « Agnew, G.B., Mullin, R.C., Onyszchuk, I.M., Vanstone, S.A : An implémentation for a fast public-key cryptosystem. Journal of Cryptology 3(2), 6379 (1991) » ;
choisir x pour être une extension aléatoire de
Frobenius de faible poids de Hamming, comme cela a été décrit dans « Galbraith, S.D. : Mathematics of Public Key Cryptography. Cambridge University Press (2012) ;
- choisir x pour être donné par une chaîne d'addition aléatoire, comme proposé dans « Schroeppel, R., Orman, H.K., O'Malley, S.W., Spatscheck, O. : Fast key exchange with elliptic curve Systems. In: Coppersmith, D. (ed.) CRYPTO'95. LNCS, vol. 963, pp. 43-56. Springer, Heidelberg, Germany, Santa Barbara, CA, USA (Aug 27-31, 1995) » ;
- choisir x pour être un produit d'entiers de faibles poids de Hamming, comme suggéré dans « Hoffstein, J., Silverman, J.H. : Random small hamming weight products with applications to cryptography. Discrète Applied Mathematics 130(1), 37-49 (2003) and later broken in Cheon, J.H., Kim, H. : Analysis of low hamming weight products. Discrète Applied Mathematics 156(12), 2264-2269 (2008) ;
- choisir x pour être un petit élément aléatoire dans une représentation GLV, solution « cassée » par Aranha et al. comme décrit dans « Aranha, D.F., Fouque, P.A., Gérard, B., Kammerer, J.G., Tibouchi, M., Zapalowicz, J.C. : GLV/GLS décomposition, power analysis, and attacks on ECDSA signatures with single-bit nonce bias. In: Sarkar, P., Iwata, T. (eds.) ASIACRYPT 2014, Part I. LNCS, vol. 8873, pp. 262-281. Springer, Heidelberg, Germany, Kaoshiung, Taiwan, R.O.C. (Dec 7-11, 2014) .
Une troisième catégorie de méthodes d'accélération de l'exponentiation utilise de grands nombres de pré-calculs pour générer des paires aléatoires (x, gx mod p) . Un premier effort dans cette direction a été décrit dans le document « Schnorr, C.P. : Efficient identification and signatures for smart cards.
Brassard,
CRYPTO'89.
LNCS, vol. 435, pp.
239-252.
Springer,
Heidelberg,
Germany,
Santa Barbara, CA, USA (Aug
20-24, comme précisé dans le
Schnorr's preprocessing toutefois été rapidement document « de Rooij, for digital signature
P.
cassée
On schemes.
Journal of Cryptology 10(1), 1-16 (1997).
D'autres constructions ont été décrites, notamment dans les ouvrages suivants :
Brickell et al. Brickell, E.F.,
Gordon, D.M.,
McCurley, K.S., Wilson, D.B. : Fast exponentiation with precomputation (extended abstract) - Rueppel, R.A. (ed.) EUROCRYPT'92. LNCS, vol. 658, pp. 200-207. Springer, Heidelberg, Germany, Bala-tonfüred, Hungary (May 24-28,
1993) ;
Lee Lim, C.H., Lee, P.J.: More flexible exponentiation with precomputation - Desmedt, Y. (ed.) CRYPTO'94. LNCS, vol. 839, pp. 95-107. Springer, Heidelberg, Germany, Santa Barbara, CA, USA (Aug 21-25,
1994) ;
de Rooij, P. : Efficient exponentiation using precomputation and vector addition chains - Santis, A.D. (ed.) EUROCRYPT'94 . LNCS, vol. 950, pp. 389-399. Springer, Heidelberg, Germany, Perugia, Italy (May 9-12,
1995) .
La première solution prouvée comme étant sûre est due à Boyko et al., comme décrit dans le document « Boyko, V., Peinado, M., Venkatesan, R. : Speeding up discrète log and factoring based schemes via precomputations. In: Nyberg, K. (ed.) EUROCRYPT'98. LNCS, vol. 1403, pp. 221235. Springer, Heidelberg, Germany, Espoo, Finland (May
- Jun 4, 1998) . Cette méthode est désormais connue sous le sigle BPV.
La méthode BPV a été étendue ou perfectionnée dans la littérature suivante « Nguyen, P.Q., Stern, J.: The hardness of the hidden subset sum problem and its cryptographie implications. In: Wiener, M.J. (ed.)
CRYPTO'99. LNCS, vol. 1666, pp. 31-46. Springer, Heidelberg, Germany, Santa Barbara, CA, USA (Aug 15-19, 1999) ».
Cette méthode améliorée se dénomme E-BPV (pour méthode BPV étendue) , où la preuve de sécurité de la méthode BPV a également été donnée, comme mentionné dans les documents :
Nguyen, P.Q., Shparlinski, I.E., Stern, J.: Distribution of modular sums and the security of the server aided exponentiation. In: Cryptography and
Computational Number Theory, pp. 331-342. Springer (2001) ;
- Coron, J., M'Raïhi, D., Tymen, C.: Fast génération of pairs (k, [k]p) for Koblitz elliptic curves. In:
Vaudenay, S., Youssef, A.M. (eds.) Selected Areas in Cryptography, 8th Annual International Workshop, SAC 2001 Toronto, Ontario, Canada, August 16-17, 2001, Revised
Papers. Lecture Notes in Computer Science, vol. 2259, pp. 151-164. Springer (2001).
La méthode BPV s'appuie sur le pré-calcul et le stockage d'un ensemble de paires (k [i] , gk[1] mod p) . Une paire « aléatoire » (r, gr mod p) est générée en choisissant un sous-ensemble de k[i], en définissant r comme étant leur somme, et en calculant gr mod p correspondant par la multiplication des gk[1] mod p respectivement choisis. L'algorithme ou le procédé de pré-calcul E-BPV est une généralisation de celui de BPV. E-BPV dispose des paramètres (u, n, h) , où n est le nombre de paires pré-calculées, u est le nombre de paires choisies parmi toutes les paires pré-calculées afin de générer une nouvelle paire aléatoire et h encode la puissance maximale à laquelle chaque valeur pré-calculée peut être potentiellement élevée. Intuitivement, plus h et u sont grands, plus grande sera l'entropie introduite dans la paire pré-calculée durant la mise en œuvre dudit algorithme. Cependant, plus les valeurs de h et u sont élevées, plus le nombre de calculs est grand pour chaque paire générée (x, gx mod p) . En d'autres termes, la méthode PBV correspond à une méthode E-BPV pour laquelle le paramètre h prend la valeur 0 ou 1. En tant que telles, les méthodes BPV et E-BPV partagent les mêmes paires pré-calculées.
Pour garantir un niveau de sécurité acceptable, le nombre de paires pré-calculées parmi lesquelles lesdits sous-ensembles doivent être choisis doit être suffisamment grand. Il faut en outre utiliser suffisamment de paires pour générer un nouveau couple et h doit être suffisamment grand. Nous pouvons prudemment déterminer le nombre de requêtes de signature transmises par l'adversaire à 2128. Pour la présente invention, pour une sécurité de 128 bits, la taille d'exposant P peut être définie comme valant 3072. Comme suggéré dans « Nguyen, P.Q., Shparlinski, I.E., Stern, J. : Distribution of modular sums and the security of the server aided exponentiation - Cryptography and Computational Number Theory, pp. 331-342. Springer (2001) », nous pouvons définir n = u, et contraindre hu>23400 .
En optimisant 2u+h sous cette contrainte, on trouve (h, u)=(176, 455). Cela correspond à 1087 multiplications modulaires. Comme il sera exposé par la suite, la présente invention permet de réutiliser le résultat de cette exponentiation modulaire pour signer 12 fois, c'est-à-dire un coût amorti de 90 multiplications par signature, pour environ 170ko de stockage. Alternativement, nous pouvons satisfaire les contraintes de sécurité en définissant n = 2048, h = 100, u = 320, ce qui correspond à environ 770ko de stockage, procure un coût amorti de 62 multiplications modulaires par signature (toujours pour des lots de 12 signatures).
Dans la mise en œuvre de la présente invention, le problème d'optimisation sous contraintes est résolu pour trouver les meilleurs coefficients, c'est-à-dire le plus faible nombre de multiplications pour une capacité de mémoire donnée. A titre d'exemple de mise en œuvre préféré mais non limitatif, il apparaît pertinent d'utiliser une accélération selon Brickell et al., telle que décrite par exemple dans le document « Brickell, E.F., Gordon, D.M., McCurley, K.S., Wilson, D.B. : Fast exponentiation with precomputation (extended abstract) Rueppel, R.A. (ed.) EUROCRYPT'92. LNCS, vol. 658, pp. 200-207. Springer, Heidelberg, Germany, Balatonfüred, Hungary (May 24-28, 1993).
L'invention permet de répondre à tout ou partie des inconvénients soulevés par les solutions connues.
Parmi les nombreux avantages apportés par l'invention, nous pouvons mentionner que celle-ci améliore grandement l'algorithme de signature numérique populaire publié par Schnorr en 1989 (notamment dans le document « C.P. Schnorr, Efficient identification and signatures for smart cards, in G. Brassard, ed. Advances in Cryptology—Crypto '89, 239-252, Springer-Verlag, 1990. Lecture Notes in Computer Science, nr. 435 and C.-P. Schnorr, Efficient Signature Génération by Smart Cards, J. Cryptology 4(3), ppl61-174 (1991)) de sorte que l'exploitation d'un tel algorithme amélioré soit moins exigeante en ressources de calcul pour le ou les dispositifs électroniques qui le mettent en œuvre. A titre d'exemple, nous pouvons supposer que le dispositif électronique signataire, tel qu'une carte à puce, peut ne comporter qu'une mémoire de données de taille restreinte, par exemple quatre mille bits.
Une telle restriction en matière de capacité mémoire, entraîne des compromis capacité mémoire-temps d'exécution, qui ne sont généralement pas pertinents pour les paramètres typiques de Schnorr. L'invention propose ainsi un schéma de signature et d'indentification particulièrement optimisé, conférant des performances accrues au regard des schéma Schnorr connus, quand bien même de tels schémas bénéficieraient d'optimisations découlant de l'intégration de techniques de pré-calcul évoquées précédemment. Il en résulte une étape d'élaboration de signature accélérée.
Un tel électronique nouveau procédé et tout dispositif ou appareil le mettant en œuvre procurent ainsi une amélioration certaine aux schémas d'identification et de signature de Schnorr basés sur le logarithme discret.
L'invention s'applique également à la plupart des dérivés de l'algorithme d'identification et de signature de Schnorr, tels que le Digital Signature Standard (FIPS PUB 186-4: Digital Signature Standard (DSS)).
La théorie de la présente invention est basée sur la difficulté de calculer des logarithmes discrets modulo un grand nombre premier p. Un protocole connexe fournissant l'identification et la signature est le schéma Schnorr mentionné ci-dessus, mais le nouveau protocole au sens de la présente invention est expérimentalement deux à six fois plus rapide que les protocoles connus et fournit une réponse concrète aux problèmes d'identification et de signature. Le procédé optimisé ainsi que tout dispositif électronique qui le met en œuvre ne nécessitent aucune tierce partie ou centre de confiance qui connaîtrait des clés mères ou des secrets appartenant aux utilisateurs.
Dans un déploiement typique, un utilisateur générerait sa paire de clés et soumettrait sa clé publique, probablement avec d'autres données d'identification d'utilisateur, des fins de certification à une infrastructure à clés publiques ou PKI, pour Public Key Infrastructure, selon une terminologie anglo-saxonne). Aucune autre interaction avec une telle ICP n'est nécessaire grâce à
1' invention pour générer ou vérifier des preuves d'identité ou de signature. En outre, un nombre illimité d'utilisateurs peut rejoindre le système sans dégrader ses performances.
L'interaction entre signataires ou prouveurs sous la forme avantageuse mais non limitative de cartes à puce) n'autorisera pas des vérificateurs (généralement sous la forme de terminaux de point de vente, par exemple) à reproduire des signatures existantes, à créer de nouvelles identités ou à modifier des identités existantes. Étant donné qu'aucune information n'est divulguée lors d'une telle interaction, la durée de vie d'une carte à puce ne dépend plus de la fréquence à laquelle elle est utilisée à cette fin.
Comme évoqué précédemment, le système de signature Schnorr prouvé sûr sécurisé est populaire et efficace. Cependant, chaque signature nécessite une exponentiation modulaire à un grand nombre aléatoire (puissance) nouvellement généré (c'est-à-dire un nonce), qui est généralement une opération très coûteuse en ressource et en temps. L'essor des dispositifs connectés relance l'intérêt pour les algorithmes de signature à ressources limitées. La présente invention décrit ainsi une variante des signatures de Schnorr qui mutualise les efforts d'exponentiation entre des signatures successives effectuées par le même dispositif électronique signataire ou prouveur.
Combinée avec des techniques de pré-calcul, qui si elles étaient simplement associées à l'algorithme Schnorr original ne produiraient pas de résultats ou de performances pertinents, la présente invention amortit le coût de l'exponentiation sur plusieurs signatures, ces dernières partageant un même nonce (nombre arbitraire destiné à être utilisé une seule fois) . Alors que le partage d'un nonce détruit la sécurité des signatures classiques de Schnorr, une telle pratique n'engendre pas un problème de sécurité pour un procédé d'identification et de signature conforme à l'invention. Un tel procédé ou schéma selon l'invention est prouvé comme étant sûr, asymptotiquement plus rapide que le schéma de Schnorr original, lorsqu'il est combiné avec des techniques de pré-calcul efficaces : expérimentalement, un schéma conforme à l'invention est deux à six fois plus rapide pour un même nombre de signatures lors de l'utilisation d'un Mégaoctet (1 Mo) de stockage statique.
A cette fin, il est notamment prévu un procédé mis en œuvre par une première unité de traitement d'un dispositif électronique prouveur comportant une première mémoire de données et des premiers moyens de communication assurant une communication avec un dispositif électronique vérificateur tiers, ladite première mémoire de données et lesdits premiers moyens de communication du dispositif électronique prouveur coopérant avec ladite première unité de traitement de ce dernier. Pour permettre la mise en œuvre d'un schéma de type Schnorr particulièrement optimisé, l'invention prévoit que la première mémoire de données enregistre un premier nombre premier p de P bits et L nombres premiers q[l],..., q[L] de Q bits tels que p=2q[l]x...xq[L]+l. L étant supérieur à 1, P et Q étant deux entiers. Lorsque le processus démarre une variable index i est initialisée à une valeur déterminée dite valeur initiale d'index. En outre, un tel procédé est agencé pour qu'il comporte :
une étape pour :
o si la valeur de i est égale à ladite valeur initiale d'index, produire un engagement r=gk mod p, g étant un générateur appartenant à un groupe cyclique G sous-ensemble de Zp* d'ordre p-1 et k étant un nonce choisi aléatoirement dans Zq ;
o mouvementer la valeur de i, celle-ci demeurant inférieure à L ;
o déclencher l'émission, par les premiers moyens de communication à destination dudit dispositif électronique vérificateur tiers, dudit index i et de l'engagement r ;
une étape pour :
o produire une réponse s[i], à partir de k et d'un défi m[i], ce dernier étant préalablement produit par le dispositif électronique vérificateur tiers et réceptionné par les premiers moyens de communication ;
o transmettre ladite réponse s[i] produite audit dispositif électronique vérificateur tiers.
Selon un mode de réalisation préféré, P=LQ+1.
Un tel procédé selon l'invention peut avantageusement comporter une étape pour produire des clés respectivement privée x et publique y, de sorte que la clé secrète x soit choisie de manière aléatoire dans Zp* et que la clé publique y consiste en y = gx mod p.
Pour communiquer une clé publique à tout dispositif susceptible d'interagir, l'étape pour produire des clés peut en outre provoquer une transmission de ladite clé publique y à destination du dispositif électronique vérificateur tiers par les premiers moyens de communication.
Pour mettre en application un schéma de signature numérique et de vérification optimisé, l'étape pour élaborer la réponse s[i] d'un procédé mis en œuvre par un dispositif prouveur conforme à l'invention peut consister à :
produire une composante additionnelle ρ[ί]={0,1}λ de λ bits, pour une valeur de i donnée comprise entre 1 et L, λ étant un paramètre de sécurité entier prédéterminé ;
calculer e[i]=H(m[i],r,p[i]) et s[i]=k-e[i]x mod q[i] , H étant une fonction de hachage prédéterminée ;
produire une signature du message m[i] consistant en l'ensemble de valeurs {r,s[i],p[i]} ;
déclencher la {r, s [i] , p [i] } transmission de ladite signature par les premiers moyens de communication à destination du dispositif électronique vérificateur tiers.
En variante pour mettre en application un schéma d'authentification optimisé, l'étape pour élaborer la réponse s[i] d'un procédé mis en œuvre par un dispositif prouveur conforme à l'invention peut consister à produire s[i]=k-m[i]x mod q[i] pour une valeur d'index i donnée.
Quelle que soit l'application visée, avantageusement, un procédé mis en œuvre par un dispositif électronique prouveur selon l'invention peut comprendre une étape pour produire, choisir et/ou enregistrer dans la première mémoire de données, les paramètres de mise en œuvre dudit procédé, parmi lesquels les valeurs de q[i], pour tout i compris entre 1 et L, ainsi que les valeurs de P et de Q, L étant la partie entière de P/Q.
Selon un deuxième objet, l'invention concerne un procédé de vérification d'une signature mis en œuvre par une deuxième unité de traitement d'un dispositif électronique vérificateur comportant une deuxième mémoire de données et des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers agencé pour produire et transmettre une signature d'un message m[i] selon un procédé conforme à l'invention et tel qu'exprimé précédemment. Ladite deuxième mémoire de données et lesdits deuxièmes moyens de communication du dispositif électronique vérificateur coopèrent avec ladite deuxième unité de traitement de ce dernier. Pour permettre la mise en place d'un schéma de signature et de vérification de signature sûr et efficace, la deuxième mémoire de données enregistre, en tant que paramètres de mise en œuvre dudit procédé de vérification d'une signature, un premier nombre premier p de P bits et L nombres premiers q[l],..., q[L] de Q bits tels que p=2q[l]x...xq[L]+l. Lesdits paramètres étant de valeurs identiques à celles exploitées par ledit dispositif électronique prouveur tiers pour élaborer une signature d'un message. En outre, ledit procédé comporte :
une première étape pour :
ο recevoir, par les deuxièmes moyens de communication, la valeur d'un index i produite par le dispositif électronique prouveur tiers ;
ο déclencher l'émission, par les deuxièmes moyens de communication à destination dudit dispositif électronique prouveur tiers, la teneur du message m[i] à signer;
une étape pour :
o réceptionner par les deuxièmes moyens de communication ladite signature du message m[i], produite par le dispositif électronique prouveur tiers sous la forme d'un ensemble de valeurs {r,s[i],p[i]}), et o vérifier si s[i] appartient ou non à l'ensemble de valeurs {0, ...,q[i]-1} étant donnée la valeur q[i] enregistrée dans la deuxième mémoire de données ;
dans la négative, une étape pour rejeter la signature transmise par le dispositif électronique prouveur tiers ;
dans l'affirmative, une étape pour :
o calculer e[i]=H(m[i],r,p[i]),
H étant une fonction de hachage prédéterminée et exploitée par prouveur tiers le dispositif électronique (SD, SDa, SDb) pour produire ladite signature ;
o vérifier si ( gs [1] ye [1]/r ) (p_1) /q[1] = 1 mod p, y étant la clé publique du dispositif électronique prouveur tiers (SD, SDa, ADb) , préalablement enregistrée dans la deuxième mémoire de données.
Si ( gs tu ye tu/r ) (p-i)/q[ij ψ i mod p, un te]_ procédé comporte en outre une étape pour rejeter la signature transmise par le dispositif électronique prouveur tiers.
En revanche, si (gs [1] ye[1]/r ) /q[1] = 1 mod p, ledit procédé comporte une étape pour reconnaître la validité de la signature.
Selon un troisième objet, l'invention concerne un procédé d'authentification d'un dispositif électronique prouveur tiers mettant en œuvre un procédé conforme à l'invention selon lequel une réponse s[i] consiste en s[i]=k-m[i]x mod q[i] pour une valeur d'index i donnée. Un tel procédé d'authentification est destiné à être mis en œuvre par une deuxième unité de traitement d'un dispositif électronique vérificateur comportant une deuxième mémoire de données et des deuxièmes moyens de communication assurant une communication avec ledit dispositif électronique prouveur tiers, ladite deuxième mémoire de données et lesdits deuxièmes moyens de communication du dispositif électronique vérificateur coopérant avec ladite deuxième unité de traitement de ce dernier. Selon l'invention, il est prévu que la deuxième mémoire de données enregistre, en tant que paramètres de mise en œuvre dudit procédé d'authentification, un premier nombre premier p de P bits et L nombres premiers q[l],..., q[L] de Q bits tels que p=2q[l]x...xq[L]+l. L étant supérieur à 1, P et Q étant deux entiers. Lesdits paramètres étant de valeurs identiques à celles exploitées par ledit dispositif électronique prouveur tiers. Par ailleurs, un tel procédé d'authentification comporte :
une première étape pour recevoir par les deuxièmes moyens de communication la valeur d'un index i produite par le dispositif électronique prouveur tiers ;
une étape pour déclencher l'émission, par les deuxièmes moyens de communication à destination dudit dispositif électronique prouveur tiers, la teneur d'un message défi m[i] SRZq[i] ;
une étape pour :
o réceptionner, par les deuxièmes moyens de communication, une réponse s[i] audit message défi m[i], ladite réponse s[i] étant produite par le dispositif électronique prouveur tiers (SD, SDa, SDb) à partir du message défi m[i] ;
o vérifier si la réponse s[i] appartient ou non à l'ensemble de valeurs {0,...,q[i]-1} étant donnée la valeur q[i] enregistrée dans la deuxième mémoire de données ;
dans la négative, une étape pour rejeter la demande d'authentification du dispositif électronique prouveur tiers ;
dans l'affirmative, une étape pour vérifier si ( gs [1] ym[1]/r ) (p_1) /q[1] = 1 mod p, y étant la clé publique du dispositif électronique prouveur tiers préalablement enregistrée dans la deuxième mémoire de données.
Si ( gs [i] yMi]/r ) (p-ij/qu; ψ i mod p, un te]_ procédé d'authentification comporte en outre une étape pour rejeter la demande d'authentification du dispositif électronique prouveur tiers. En revanche, si ( gs [1] ym[1]/r ) (p_1)/q[1] = 1 mod p, ledit procédé comporte une étape pour accepter la demande d'authentification du dispositif électronique prouveur tiers.
Par ailleurs, pour adapter un équipement conventionnel pour que celui-ci se mue en dispositif électronique prouveur selon l'invention, celle-ci prévoit en outre un produit programme d'ordinateur comportant des instructions de programme qui, lorsqu'elles sont :
préalablement enregistrées dans une première mémoire de programmes d'un tel dispositif électronique prouveur comportant en outre une première unité de traitement agencée pour interpréter lesdites instructions, une première mémoire de données, des premiers moyens de communication assurant une communication avec un dispositif électronique vérificateur tiers, lesdites premières mémoires de données et de programmes et lesdits premiers moyens de communication coopérant avec ladite première unité de traitement ;
exécutées ou interprétées par ladite première unité de traitement, provoquent la mise en œuvre d'un procédé conforme à 1'invention.
Ainsi, l'invention concerne en outre un dispositif de signature ou prouveur comportant, une première unité de traitement, une première mémoire de données, une première mémoire de programmes, des premiers moyens de communication assurant une communication avec un dispositif électronique vérificateur tiers, lesdites premières mémoires de données et de programmes et lesdits premiers moyens de communication coopérant avec ladite première unité de traitement. Une adaptation selon l'invention consiste en ce que ladite première mémoire de programmes comporte les instructions d'un produit programme d'ordinateur selon l'invention et tel qu'exprimé ci-avant et en ce que ladite première unité de traitement est agencée pour interpréter les instructions dudit produit programme d'ordinateur.
Il en est de même pour adapter un équipement de sorte qu'il se mue en dispositif électronique vérificateur de signature selon l'invention, celle-ci concerne également un produit programme d'ordinateur comportant des instructions de programme qui, lorsqu'elles sont :
préalablement enregistrées dans une deuxième mémoire de programmes d'un dispositif électronique vérificateur comportant en outre une deuxième unité de traitement agencée pour interpréter lesdites instructions, une deuxième mémoire de données, des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers, lesdites deuxièmes mémoires et lesdits deuxièmes moyens de communication coopérant avec ladite deuxième unité de traitement ;
exécutées ou interprétées par ladite deuxième unité de traitement, provoquent la mise en œuvre d'un procédé de vérification de signature conforme à l'invention.
Ainsi, l'invention concerne en outre un dispositif de vérificateur de signature comportant, une deuxième unité de traitement, une deuxième mémoire de données, une deuxième mémoire de programmes, des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers, lesdites deuxièmes mémoires de données et de programmes et lesdits deuxièmes moyens de communication coopérant avec ladite deuxième unité de traitement. Une adaptation selon l'invention consiste en ce que ladite deuxième mémoire de programmes comporte les instructions d'un produit programme d'ordinateur selon l'invention et tel qu'exprimé ci-dessus et en ce que ladite deuxième unité de traitement est agencée pour interpréter les instructions dudit produit programme d'ordinateur.
En variante, l'invention prévoit un produit programme d'ordinateur comportant des instructions de programme qui, lorsqu'elles sont :
préalablement enregistrées dans une deuxième mémoire de programmes d'un dispositif électronique vérificateur comportant en outre une deuxième unité de traitement agencée pour interpréter lesdites instructions, une deuxième mémoire de données, des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers, lesdites deuxièmes mémoires et lesdits deuxièmes moyens de communication coopérant avec ladite deuxième unité de traitement ;
exécutées ou interprétées par ladite deuxième unité de traitement, provoquent la mise en œuvre d'un procédé d'authentification conforme à l'invention.
L'invention concerne ainsi un dispositif d'authentification comportant, une deuxième unité de traitement, une deuxième mémoire de données, une deuxième mémoire de programmes, des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers, lesdites deuxièmes mémoires de données et de programmes et lesdits deuxièmes moyens de communication coopérant avec ladite deuxième unité de traitement. Une adaptation selon l'invention consiste en ce que ladite deuxième mémoire de programmes comporte les instructions d'un produit programme d'ordinateur selon l'invention et tel qu'exprimé ci-dessus et en ce que ladite deuxième unité de traitement est agencée pour interpréter les instructions dudit produit programme d'ordinateur.
Selon un autre objet, l'invention concerne un système de signature, d'identification et/ou d'authentification comportant un premier dispositif électronique de signature ou prouveur selon l'invention et un deuxième dispositif électronique vérificateur de signature ou d'authentification également conforme à l'invention, lesdits premier et deuxième dispositifs coopérant via des premiers et deuxièmes moyens de communication respectifs.
De manière globale, l'invention concerne une variante particulièrement optimisée d'un procédé de type Schnorr, sous la forme d'un procédé de signature et d'identification mis en œuvre traitement d'un électronique électronique respectives prouveur et vérificateur d'un d'un par les premier deuxième unités de dispositif dispositif système de signature et d'identification selon l'invention, comportant une première étape pour produire, par le premier dispositif électronique prouveur, une signature {r,s[i],p [i] } d'un message m[i] selon un procédé conforme à l'invention et une deuxième étape pour vérifier la validité de ladite signature par le deuxième dispositif électronique vérificateur selon un procédé de vérification de signature également conforme à l'invention.
Enfin, l'invention concerne également une variante particulièrement optimisée à un procédé de type Schnorr, sous la forme d'un procédé d'authentification mis en œuvre par les unités de traitement respectives d'un premier dispositif électronique prouveur et d'un deuxième dispositif électronique vérificateur d'un système de signature et d'identification selon l'invention, comportant une étape pour produire, par le premier dispositif électronique prouveur, une réponse s[i] à un défi m[i] selon un procédé conforme à l'invention et une deuxième étape pour accepter ou rejeter une authentification par le deuxième dispositif électronique vérificateur selon un procédé d'authentification également conforme à l'invention.
Dans les figures et dans la description détaillée suivante, certaines libertés ont été prises en ce qui concerne le détails des modes de communication, des liaisons de données entre un dispositif électronique d'identification ou prouveur (représenté et décrit selon un mode de réalisation préféré mais non limitatif en tant qu'une carte à puce) d'une partie communicante ou entité A et un dispositif électronique de vérification (représenté et décrit selon un mode de réalisation préféré mais non limitatif en tant qu'un terminal de paiement apte à coopérer avec une carte à puce) d'une partie ou entité B. Une telle communication entre les dispositifs de A et de B peut se traduire par une liaison électrique filaire ou en variante par une liaison sans fil, par exemple par voie radiofréquence, et s'appuie sur tout protocole de communication adapté.
Pour mettre en œuvre un procédé de signature, d'identification ou de vérification, un dispositif électronique selon l'invention, dont
1'architecture fonctionnelle n'est pas décrite dans les figures, comporte une ou plusieurs unités de traitement, par exemple sous la forme d'un ou plusieurs microprocesseurs ou microcontrôleurs comprenant, ou coopérant avec, une ou plusieurs mémoires, pour certaines n'autorisant qu'un accès en lecture, pour stocker de l'information et/ou un ou plusieurs programmes d'ordinateur requis pour effectuer les opérations décrites ultérieurement. De tels appareils ou dispositifs comportent en outre des moyens de communication ou module d'entrées et sorties leur permettant d'interagir. Les mémoires sont respectivement des mémoire de données pour enregistrer des paramètres de fonctionnement ou des données produites et des mémoire de programmes pour enregistrer les instructions de produits programmes d'ordinateur qui, lors de leur interprétation par l'unité de traitement concernée, provoque la mise en œuvre d'un procédé d'application idoine. La génération de nombres aléatoires peut être réalisée par tout moyen connu, par exemple au moyen d'une diode de bruit (ou noise diode selon une terminologie anglo-saxonne), coopérant ou partie d'une unité de traitement, servant de source de génération aléatoire de bits selon une discrimination appropriée pour obtenir une sortie binaire aléatoire. Habituellement et généralement, on utilise des nombres de 1024 bits. Des tailles d'entiers plus grandes (par exemple 2048 bits) peuvent être utilisées pour des niveaux de sécurité plus élevés, comme cela est évident pour un homme du métier.
De même, la formule p=2q[l]x...xq[L]+l peut être substituée par p=2Aq[l]x...xq[L]+l où Δ est un entier positif quelconque. Une telle variante pourrait permet permettre une qénération un peu plus rapide des paramètres p, q [ 1 ] ,q [L] comme cela est évident pour un homme du métier.
D'autres caractéristiques et avantages apparaîtront plus clairement à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent parmi lesquelles :
- la figure 1 est un schéma fonctionnel décrivant partiellement un procédé de signature mis en œuvre par un dispositif de signature ou « prouveur » conforme à l'invention, tel qu'une carte à puce par exemple, plus précisément les étapes de configuration SetUp et de génération de clés KeyGen précédemment évoquées ;
- la figure 2 est un schéma fonctionnel décrivant les interactions entre un procédé de signature et un procédé de vérification de signature mis en œuvre respectivement par un dispositif de signature ou « prouveur » et un dispositif « vérificateur », par exemple un terminal de paiement, impliqué dans un schéma de signature et d'identification conforme à l'invention ;
- la figure 3 est un schéma fonctionnel décrivant précisément un exemple de réalisation d'un procédé de signature et d'un procédé de vérification de signature, lesdits procédés étant conformes à l'invention ;
- la figure 4 est un schéma fonctionnel décrivant précisément un exemple de schéma d'authentification conforme à l'invention.
L'intuition et le schéma général de l'invention sont les suivants : l'algorithme de signature original de Schnorr utilise un grand nombre premier p et un nombre premier q divisant p-1, ledit nombre premier q étant de taille inférieure à celle du nombre premier p. La sécurité d'un tel système de signature connu repose sur le problème du logarithme discret dans un sous-groupe d'ordre q du groupe multiplicatif de champ fini Zp (où p1 mod q = 0) . Habituellement, le nombre premier p est choisi pour être suffisamment grand pour résister aux méthodes de calcul d'index pour résoudre le problème de logarithme discret (par exemple une taille de 3072 bits offre un niveau de sécurité de 128 bits) . Le nombre premier q est quant à lui suffisamment grand pour résister aux algorithmes de racine carrée (square-root algorithms selon une terminologie anglo-saxonne). Ainsi, par exemple, un nombre q de 256 bits est suffisant généralement pour offrir un niveau de sécurité de 128 bits. L'intuition sous jacente à un procédé selon l'invention, et à tout dispositif électronique mettant en œuvre ce dernier, consiste à considérer un nombre premier p tel que p-1 a plusieurs facteurs différents q[i] assez grands pour résister aux attaques dites de l'anniversaire (birthday attacks, selon une terminologie anglosaxonne) , en particulier p=l+2q[1]χ...xq[L], L étant supérieur à 1.
Etant donné un tel nombre premier p, plusieurs signatures Schnorr « orthogonales » peuvent partager le même composant d'engagement r = gk mod p, où k est une valeur aléatoire ou un nonce. La situation est différente avec les signatures Schnorr standard où, si un nonce k est réutilisé, la clé de signature secrète révélée .
Avantageusement, il apparaît que dans ce cadre inventif r peut être calculé rapidement.
sk est nouveau
Dans le protocole original de Schnorr, un nonce k est choisi uniformément au hasard dans Zq. Cependant, pour être sécurisé, un procédé selon l'invention nécessite que k soit sélectionné dans un ensemble plus grand Zp_i, ce qui engendre un surcroît de calcul considérable pour produire un engagement r. L'invention permet de surmonter cette difficulté en générant un engagement r selon des techniques de pré-calcul qui permettent qu'une exponentiation soit sous-linéaire en la taille de l'opérande. Une fois l'exponentiation rendue souslinéaire, les schémas d'identification et d'identification conformes à l'invention sont plus efficaces que dans le cadre original de Schnorr car, l'engagement calculé une seule signature, r est utilisé pour générer non pas mais L signatures, amortissant ainsi le coût des opérations de pré-calculs.
A l'instar d'un schéma de Schnorr et de l'algorithme de signature numérique DSA (Digital Signature Algorithm, selon une terminologie anglo-saxonne), comme l'indique à titre d'exemple préféré mais non limitatif la figure 1, un procédé de signature 10 selon l'invention, mis en œuvre par un dispositif électronique de signature SD, par exemple une carte à puce SDa agencée pour comporter dans une mémoire de programmes les instructions d'un programme d'ordinateur idoine, comporte deux premières étapes pour générer des clés. La première étape 11 consiste à choisir des paramètres d'algorithmes qui peuvent être partagés entre différents utilisateurs du système, tandis que la deuxième étape 12 consiste à calculer les clés publique y et privée x pour un seul utilisateur. Le système de signature et d'identification conforme à l'invention peut être qualifié de système « à état » ou encore de « stateful scheme » selon une terminologie anglo-saxonne. Cette caractéristique signifie qu'un dispositif électronique signataire conserve une variable dans une mémoire non volatile et met à jour ladite variable pendant ou après chaque session de signature. Dans un procédé conforme à l'invention, cette variable d'état est de petite taille (généralement un octet) et a pour fonction de mémoriser l'index i de q[i] à utiliser dans l'élaboration de la signature courante (ou durant une session d'identification) ainsi que les valeurs k et gk mod p. Plus précisément, un schéma de signature et d'identification selon l'invention est un schéma de signature à état, dans lequel le dispositif électronique signataire SD signe un message et conserve un état correspondant aux valeurs k, gk mod p et i désignant le nombre premier q[i] utilisé pour la signature courante. Cependant, un tel procédé est plus compact et pratique pour décrire une signature pour L messages simultanés.
Un procédé de signature 10 selon l'invention comporte donc une étape 11 de génération de paramètres, une étape 12 de génération de clés par utilisateur (dispositif électronique associé), une étape de génération de signature 13. Un procédé de vérification de signature 20 est quant à lui mis en œuvre par un dispositif électronique vérificateur VD. L'association des deux procédés 10 et 20 constitue un schéma de signature et d'identification conforme à l'invention.
Nous pouvons mentionner qu'un tel schéma est à divulgation nulle de connaissance, comme l'indique de manière détaillée la figure 4, plus loin. Dans ladite description détaillée dudit schéma, les termes et notations mathématiques considérées comme usuelles en cryptographie, connues de l'homme du métier, sont utilisées, sans explications, ni définitions complémentaires .
L'étape 11 de génération de paramètres, également appelée processus de configuration, est illustrée en figure 1. Une telle étape 11 consiste tout d'abord à choisir une fonction de hachage cryptographique approuvée
H. La fonction de hash SHA-2 standard (selon FIPS 180-4:
Secure Hash Standard (SHS), mars 2012) constitue un choix typique bien que non limitatif. Le haché délivré peut être tronqué pour être d'une taille équivalente à celle d'une paire de clés. L'étape 11 consiste à présent à déterminer les longueurs P et Q des clés. La longueur d'une clé constitue la mesure principale de la force cryptographique de ladite clé. Habituellement, P est un multiple de 64 compris entre 512 et 4096 bits (inclus). Q doit être inférieure ou égale à la longueur du haché délivré par la fonction de hachage H. Typiquement, Q est comprise entre 160 et 512 bits. Nous désignons par L le rapport approximatif entre P et Q, c'est-à-dire, comme étant égal à la valeur entière du rapport P/Q, soit L=Floor[P/Q] selon une notation anglo-saxonne. Dans ce qui suit, on suppose que P=LQ+1 par mesure de simplification. Ainsi P=3072 et Q=256 sont des valeurs de sécurité concrètes correspondant au calcul de l'index actuel pour résoudre des problèmes logarithme discret. Choisir L=12, P=3072 et Q=256 correspond à un niveau de sécurité de 128 bits. De tels choix pour H, P et Q peuvent être prédéterminés par programmation ou via des paramètres de configurations enregistrées dans une mémoire de données du dispositif électronique SD mettant en œuvre le procédé de signature 10.
L'étape 11 consiste à présent, selon un mode de réalisation préféré mais non limitatif, à :
- générer L-l nombres premiers q[1],...,q[L-l] , chaque q[i] étant d'une longueur de Q bits ;
- générer un dernier nombre premier q[L] de taille Q bits de sorte que p=2q [ 1 ] χ . . . xq [L] +1 soit un nombre premier ;
- choisir q, un générateur du groupe Zp* d'ordre p-1.
Les paramètres d'un schéma de signature et d'identification selon l'invention, ci-après parfois désignés par le vocable anglo-saxon « Parameters » sont ainsi constitués et forment l'ensemble (p, {q[l],..., q [L] }, H, g) . Ces paramètres sont enregistrés dans une mémoire de données d'un dispositif électronique de signature SD conforme à l'invention. Lesdits paramètres peuvent être partagés entre différents utilisateurs du système, c'est-à-dire entre une pluralité de dispositifs électroniques conformes à l'invention. Cela signifie que pour certains dispositifs électroniques conformes à l'invention, l'étape 11 de configuration précédemment décrite est remplacée par une étape, non pas d'élaboration mais de chargement en mémoires de données, desdits paramètres. Réciproquement, pour un dispositif de signature mettant en œuvre l'élaboration des paramètres, l'étape 11 peut être complétée par une étape de sortie ou d'exportation des valeurs desdits paramètres produits.
Nous pouvons remarquer que l'élaboration desdits paramètres peut éventuellement être réalisée par un dispositif électronique tiers, optionnellement dédié à cet effet comme un serveur PS comportant une unité de traitement propre et des mémoires, et/ou non agencé pour mettre en œuvre une signature selon l'invention.
En liaison avec les figures 1 et 2, le procédé 10 comporte à présent une étape 12 de génération étape propre à chaque utilisateur, c'est-à-dire de clés, à chaque dispositif électronique de signature SD mettant en œuvre ledit procédé de signature 10.
Cette étape de génération de clés, également désigné ci-après parfois processus
KeyGen », est également décrit à titre d'exemple par la figure 1.
Connaissant un ensemble de paramètres (P, consiste à calculer les clés publique y et privée x, dédiées à un seul utilisateur, soit un dispositif électronique de signature
SD conforme à
1'invention.
Ainsi le processus décrite à titre d'exemple non limitatif par la figure
1, comporte les étapes suivantes :
choisir une clé secrète aléatoire xGRZp* .
La clé secrète x, notée ci-dessous sk, est maintenue confidentielle pour un utilisateur donné, ou pour un dispositif signature SD, tel qu'une carte électronique de à puce SDa ou
SDb ;
calculer la clé publique correspondante y=gx mod p. La clé publique y pour cet utilisateur particulier, ou dispositif électronique de signature SD, dénommée ci-après pk, peut être rendue publique contrairement à la clé sk.
Lorsqu'un utilisateur U éligible postule pour obtenir un dispositif électronique de signature SD conforme à l'invention, par exemple sous la forme avantageuse d'une carte à puce, ledit dispositif électronique de signature SD élabore une clé publique y comme indiqué ci-dessus, mettant en œuvre une étape similaire à l'étape 12 décrite précédemment. Cette clé publique peut être soumise à un organisme certificateur PKI, associée à une chaîne I contenant toutes informations pertinentes concernant l'utilisateur U, comme à titre d'exemples non limitatifs un nom d'utilisateur, une adresse, un numéro d'identification, une description physique, une autorisation ou une habilitation de sécurité, etc. Ladite chaîne I peut en outre comporter des informations complémentaires, propres au dispositif électronique de signature SD en cours de personnalisation, comme la carte SDb, telles qu'une date d'expiration, des limitations ou critères de validité, etc. Comme il s'agit d'informations vérifiées dans la mise en œuvre d'un schéma de signature et d'identification conforme à l'invention, il est primordial d'inclure suffisamment de variabilité afin de rendre un utilisateur unique au regard de pairs et d'en vérifier leur exactitude.
Le procédé de signature 10 comporte à présent une étape 13 de génération de signature, également désigné parfois ci-après par le vocable anglo-saxon Sign.
L'un des avantages d'un schéma de signature et d'identification conforme à l'invention découle de la génération composante de signatures. En d'engagement r=gk mod particulier, la même p peut être partagée pour L signatures définies par le processus ci-dessous, en liaison avec l'étape 13 présentée en figures 1, 2 et 3.
Ladite étape 13 consiste tout d'abord à choisir 131 par une méthode aléatoire un nonce kSRZp, tel que k n'est pas divisible par q[i] pour tout i£{l,...,L}, et à calculer l'engagement r=gk mod p.
Le dispositif électronique de signature, en l'espèce la carte à puce SDb en figure 2, mettant en œuvre un procédé de signature 10 conforme à l'invention peut à présent signer, en une étape 132, avec cet engagement, non pas un seul message, mais L messages m [ 1 ],..., m [L] , comme décrit ci-après en liaison avec les figures 2 et 3.
En effet, en exploitant le paramètre de sécurité ΛΕΝ, ledit paramètre À étant mis à la disposition de tout équipement conforme à l'invention, l'étape 132 consiste à choisir aléatoirement pour chaque message m[i], i=l,...,L, des composantes additionnelles de À bits (ou λ-bit postfix, selon une terminologie anglo-saxonne) p [i] = { 0, 1 }λ.
En outre, ladite étape 132 consiste à calculer s [i]=k-e[i]x mod q[i] pour i£{l,...,L}.
Enfin, l'étape 132 consiste à produire et délivrer les L signatures {r,s[i],p[i]} ou, sous un formalisme plus compact, {r, s [ 1], . . . ,s [L], p[1],...,p[L] }.
Comme évoqué ci-dessus, selon l'invention, l'engagement r peut être produit lors d'une session particulière déterminée par une ou plusieurs valeurs déterminées de l'index i. A titre d'exemple de mise en œuvre préféré, une telle valeur déterminée peut être une valeur initiale comme par exemple la valeur nulle ou 0.
En complément, de la production de la valeur courante dudit engagement, la valeur de l'index i peut être mouvementée, c'est-à-dire par exemple avantageusement incrémentée d'une unité. Ainsi, pour une valeur d'index différente de 0, l'engagement r n'est pas à nouveau calculé ou produit.
Nous pouvons ainsi, à titre d'exemple de réalisation non limitatif, décrire une telle étape 131 comme suit :
Tout si i=0, produire un engagement r=gk mod p, g étant un générateur appartenant à un groupe cyclique G sous-ensemble de k étant un nonce choisi dans incrémenter i d'une unité ;
si i>L alors réinitialiser i
Zp* d'ordre p-1 et
Zq ;
autre mode de réalisation équivalent, exploitant une valeur caractéristique de i, distincte de
0, provoquant la production de l'engagement r, ou une technique alternative pour mouvementer i, pourrait être retenu en variante ou en complément de cet exemple.
En liaison avec la figure 3 notamment, de son côté, un dispositif électronique vérificateur de signature VD, tel qu'un terminal de paiement par exemple, met en œuvre un procédé de vérification de signature 20.
Un tel procédé de vérification de signature 20, également désigné ci-après par le vocable anglo-saxon
VerifySignature(Parameters, pk, m[i], (r, s[i], p[i]), i) comporte les étapes suivantes. Un tel procédé 20 sousentend que, préalablement, pour des i, y et r donnés et transmis, à l'issue de l'étape 131, par un dispositif de signature SD, ainsi que pour un message m[i] donné et délivré, en une étape 20a, par un dispositif de vérification VD audit dispositif de signature SD, ce dernier a élaboré puis retourné, conformément à l'étape 132, une signature {r,s[i],p [i] } donnée.
Une première étape 21, d'un procédé de vérification de signature 20 mis en œuvre par un dispositif VD, consiste à vérifier tout d'abord que, pour un i donné, s [i]G{0, ...,q[i]—1}. Si tel n'est pas le cas, situation illustrée en figure 3 par le lien 21n, la signature est considérée comme non valide. En une étape 23, un résultat binaire Faux, ou « False » selon une terminologie anglosaxonne, peut être produit.
Dans
1'affirmative, situation illustrée en figure 3 par le lien 21y, une deuxième étape 22 consiste à calculer et à vérifier que la négative, situation illustrée en figure 3 par le lien 22n, la signature est considérée comme non valide et un résultat binaire de valeur « Faux » (ou False, selon une terminologie anglo-saxonne) peut être produit en une étape 23. Dans l'affirmative, situation illustrée en figure 3 par le lien 22y, la signature est reconnue valide. Un résultat binaire de valeur « Vrai » (ou True selon une terminologie anglo-saxonne) peut être produit en une étape 24.
Nous pouvons remarquer qu'un schéma de signature et d'identification selon l'invention est mathématiquement correct pour la raison suivante. Prenons g, y, r, s[i] et p[i] produits comme décrit ci-dessus en liaison avec les étapes 12 et 13, respectivement mettant en œuvre les processus KeyGen et Sign pour un message donné m[i].
Nous pouvons vérifier que ( gs [1] ye [1]/r ) (p 1|/q[11 = j_ mod p. Par la définition de s [i] , il existe uGZ tel que gs[1] = gke[i]x+uq[ij . j-en découle que gs[1]ye[1]gk = guq[1] mod p. Portant ceci à la puissance (p-1)/q[i] , on obtient gu(p~ 1)=1 puisque l'ordre du groupe multiplicatif Zp* est p-1.
Nous pouvons remarquer en outre, que contrairement à un schéma Schnorr connu, dans l'étape 13 ou « Sign » d'un schéma de signature et d'identification conforme à l'invention, une composante p [i] aléatoire est ajoutée dans l'élaboration d'une signature pour rendre l'argument de la fonction de hachage imprédictible.
En liaison avec la figure 4 et selon une variante du présent schéma de signature et d'identification conforme à l'invention, un dispositif électronique vérificateur VD peut identifier un dispositif électronique signataire SD possédant une clé secrète x en utilisant un protocole à divulgation nulle de connaissance. Un procédé d'authentification selon l'invention entre une partie communicante SD, qui, dans le cas de l'authentification, est généralement appelée un prouveur, et une autre partie communicante VD, appelée généralement un vérificateur, comprend des étapes préliminaires de génération de paramètres et de génération de clés utilisateur, identiques à celles du procédé de signature et d'identification détaillées en lien avec les figures 1 et
2, en l'espèce, les étapes 11 et 12 du procédé 10.
Dans la description détaillée du processus d'authentification ci-après en liaison avec la figure 4, les termes, notations mathématiques et cryptographiques connues de l'homme du métier sont utilisés sans explications, ni définitions additionnelles.
A l'instar du schéma illustré en figure 3, le même composant d'engagement r = gk mod p est partagé pour L sessions d'authentification.
Pour cela, le dispositif électronique prouveur SD met en œuvre un traitement 14, en lieu et place du traitement 13 étudié précédemment. Un tel traitement 14 comporte une première étape 141, consistant à choisir un nonce aléatoire kSRZp, tel que k n'est pas divisible par q[i] pour tout i£{l, ..., L}, calculer l'engagement r = gk mod p et transmettre r et i à un dispositif vérificateur VD.
Le traitement 14 comporte à présent, de manière éventuellement itérative, pour un i compris entre 1 et L :
une étape 142 pour réceptionner, en réponse à ladite émission notamment de l'index i, un nombre aléatoire m[i]SRZq[i] transmis par le dispositif électronique vérificateur VD ;
une étape 143 pour calculer et émettre, à destination dudit dispositif vérificateur VD, une réponse s[i]=k-m[i]x mod q[i].
De son côté, le dispositif électronique vérificateur VD met en œuvre un traitement 30 comportant :
une étape 31 pour réceptionner, en provenance d'un dispositif électronique prouveur SD, les éléments r et/ou i, voire y si ledit dispositif électronique vérificateur VD ne connaît pas déjà la clé publique y du dispositif électronique prouveur SD ;
une étape 32 pour choisir et émettre le nombre aléatoire m[i]GRZq[ij évoqué précédemment en lien avec l'étape 142, à destination du dispositif électronique prouveur SD ;
une étape 33 pour réceptionner, depuis le dispositif électronique prouveur SD, la réponse s[i] et tester si ladite réponse s[i] appartient ou non à l'ensemble de valeurs { 0, . . . , q [ i ] -1} ;
dans la négative, situation illustrée par le lien 33n en figure 4, une étape 34 pour produire un résultat de valeur booléenne « Faux », ou False selon une terminologie anglo-saxonne, signifiant que le processus d'authentification a échoué ;
dans l'affirmative, situation illustrée par le lien 33y en figure 4, une étape 35 pour évaluer la relation ( gs [1] ym[1]/r ) (p_1) /q[1] = 1 mod p ;
si ladite dernière évaluation se révèle vraie, situation illustrée par le lien 35y en figure 4, une étape 36 pour avantageusement produire un résultat booléen de valeur « Vrai », ou « True » selon une terminologie anglo-saxonne, signifiant l'acceptation de 1'authentification.
Si la relation ( gs [1] ym[1]/r ) (p_1) /q[1] = 1 mod p se révèle fausse, situation illustrée par le lien 35n en figure 4, l'étape 33 est mise en œuvre pour signifier l'échec de
1'authentification.
Un schéma de signature, d'identification ou d'authentification conforme
1'invention est particulièrement avantageux puisqu'il est asymptotiquement plus basé sur Schnorr, rapide qu'un processus de signature notamment lorsque le calcul de l'engagement r = gk mod p est associé à des techniques de pré-calcul efficaces pour effectuer des opérations d'exponentiation sur des grands nombres. De telles techniques sont connues de l'homme du métier et ont été brièvement présentées en début du présent document.
Quel que soit le schéma conforme à l'invention retenu, de manière plus générale, nous pouvons remarquer que la réponse s[i] produite à l'étape 132 ou 143, consiste plus généralement à produire une réponse s [i] sous la forme d'un polynôme multivarié, que nous pouvons noter s [i] = Polynôme(r, m[i], p[i] , x, k, e[i]) modulo q[i], prenant comme arguments r, m[i], p[i], x, k et/ou e [i] où e [i] est un haché cryptographique de r, m[i] et/ou p[i].
L'invention a été décrite lors de son utilisation pour la réalisation d'un schéma de signature et d'identification, voire d'authentification, mettant en scène un dispositif électronique de signature ou prouveur sous la forme avantageuse d'une carte à puce. L'invention ne saurait être limitée à seul type de dispositif électronique.
D'autres modifications peuvent être envisagées sans sortir du cadre de la présente invention défini par les revendications ci-annexées.
Claims (20)
- REVENDICATIONS1. Procédé (10) mis en œuvre par une première unité de traitement d'un dispositif électronique prouveur (SD, SDa, SDb) comportant une première mémoire de données et des premiers moyens de communication assurant une communication avec un dispositif électronique vérificateur tiers (VD), ladite première mémoire de données et lesdits premiers moyens de communication du dispositif électronique prouveur (SD, SDa, SDb) coopérant avec ladite première unité de traitement de ce dernier, caractérisé en ce que :la première mémoire de données enregistre un premier nombre premier p de P bits, L nombres premiers q[l],..., q [L] de Q bits tels que p=2q[l]x...xq[L]+l, L étant supérieur à 1, P et Q étant deux entiers ;la première mémoire de données enregistre une valeur déterminée de i, dite valeur initiale d'index ;et en ce que ledit procédé comporte :- une étape (131, 141) pour :o si la valeur de i est égale à ladite valeur initiale d'index, produire un engagement r=gk mod p, g étant un générateur appartenant à un groupe cyclique G sous-ensemble de Zp* d'ordre p-1 et k étant un nonce choisi dans Zq ;o mouvementer la valeur de i, celle-ci n'excédant pas L ;o déclencher l'émission, par les premiers moyens de communication à destination dudit dispositif électronique vérificateur tiers (VD), dudit index i et de l'engagement r ;une étape (13, 132, 14, 143) pour :o produire une réponse s[i], à partir de k et d'un défi m[i], ce dernier étant préalablement produit par le dispositif électronique vérificateur tiers (VD) et réceptionné (132, 142) par les premiers moyens de communication ;o transmettre ladite réponse s[i] produite audit dispositif électronique vérificateur tiers (VD) .
- 2. Procédé selon la revendication précédente, pour lequel P=LQ+1.
- 3. Procédé selon l'une quelconque des revendications précédentes, comportant une étape (12) pour produire des clés respectivement privée x et publique y, de sorte que la clé secrète x soit choisie de manière aléatoire dans RZP* et que la clé publique y consiste en y = gx mod p.
- 4. Procédé selon la revendication précédente, pour lequel l'étape (12) pour produire des clés provoque en outre une transmission de ladite clé publique y à destination du dispositif électronique vérificateur tiers (VD) par les premiers moyens de communication.
- 5. Procédé selon l'une quelconque des revendications précédentes, pour lequel l'étape (13, 132) pour élaborer la réponse s[i] consiste à :produire une composante additionnelle p[i] = {0, 1}λ de À bits, pour une valeur de i donnée comprise entre 1 et L, λ étant un paramètre de sécurité entier prédéterminé ;calculer e[i]=H(m[i],r,p[i]) et s[i]=k-e[i]x mod q[i], H étant une fonction de hachage prédéterminée ;produire une signature du message m[i] consistant en l'ensemble de valeurs {r,s[i],p[i]} ;déclencher la transmission de ladite signature
{r, s [i] , p [i] } par les premiers moyens de communication à destination du dispositif électronique vérificateur tiers (VD). - 6. Procédé selon l'une quelconque des revendications 1 à 4, pour lequel l'étape (14, 143) pour élaborer la réponse s[i] consiste à produire s[i]=k-m[i]x mod q[i] pour une valeur d'index i donnée.
- 7. Procédé selon l'une quelconque des revendications précédentes, comprenant une étape (11) pour produire, choisir et/ou enregistrer dans la première mémoire de données, les paramètres de mise en œuvre dudit procédé (10), parmi lesquels la valeur du premier p, les valeurs de q[i], pour tout i compris entre 1 et L, ainsi que les valeurs de P et de Q, L étant la partie entière de P/Q.
- 8. Procédé (20) de vérification d'une signature mis en œuvre par une deuxième unité de traitement d'un dispositif électronique vérificateur (VD) comportant une deuxième mémoire de données et des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers (SD, SDa, SDb) aqencé pour produire et transmettre une signature d'un message m[i] selon un procédé (10) conforme à la revendication 5, ladite deuxième mémoire de données et lesdits deuxièmes moyens de communication du dispositif électronique vérificateur coopérant avec ladite deuxième unité de traitement de ce dernier, caractérisé en ce que :la deuxième mémoire de données enregistre, en tant que paramètres de mise en œuvre dudit procédé de vérification d'une signature (20), un premier nombre premier p de P bits, L nombres premiers q[l],q [L] de Q bits tels que p=2q[l]x...xq[L]+l, L étant supérieur à 1, P et Q étant deux entiers, lesdits paramètres étant de valeurs identiques à celles exploitées par ledit dispositif électronique prouveur tiers (SD, SDa, SDb) pour élaborer une signature d'un message ;et en ce que ledit procédé (20) comporte :une première étape (20a) pour :
ο recevoir, par les deuxièmes moyens de communication, la valeur d'un index i produite par le dispositif électronique prouveur tiers (SD, SDa, SDb) ; o déclencher l'émission, par les deuxièmes moyens de communication à destination dudit dispositif électronique prouveur tiers (SD, SDa, SDb) , la teneur du message m[i] à signer;une étape (21) pour :ο réceptionner par les deuxièmes moyens de communication ladite signature du message m[i], produite par le dispositif électronique prouveur tiers (SD, SDa, SDb) sous la forme d'un ensemble de valeurs {r,s[i],p[i]}), et ο vérifier si s[i] appartient ou non à l'ensemble de valeurs {0, ...,q[i]-1} étant donnée la valeur q[i] enregistrée dans la deuxième mémoire de données ;dans la négative (21n) , une étape pour rejeter (23) la signature transmise par le dispositif électronique prouveur tiers (SD, SDa, SDb) ;dans l'affirmative (21y), une étape (22) pour : ο calculer e[i]=H(m[i],r,p[i]),H étant une fonction de hachage prédéterminée et exploitée par le dispositif électronique prouveur tiers (SD, SDa, SDb) pour produire ladite signature ;ο vérifier si ( gs [1] ye [1]/r ) (p_1) /q[1] = 1 mod p, y étant la clé publique du dispositif électronique prouveur tiers (SD, SDa, ADb) , préalablement enregistrée dans la deuxième mémoire de données ;dans la négative (22n) , une étape pour rejeter (23) la signature transmise par le dispositif électronique prouveur tiers (SD, SDa, SDb) ;dans l'affirmative (22y), une étape pour reconnaître (24) la validité de la signature. - 9. Procédé (30) d'authentification d'un dispositif électronique prouveur tiers (SD, SDa, SDb) mettant en œuvre un procédé selon la revendication 6, ledit procédé d'authentification étant mis en œuvre par une deuxième unité de traitement d'un dispositif électronique vérificateur (VD) comportant une deuxième mémoire de données et des deuxième moyens de communication assurant une communication avec ledit dispositif électronique prouveur tiers (SD, SDa, SDb), ladite deuxième mémoire de données et lesdits deuxièmes moyens de communication du dispositif électronique vérificateur (VD) coopérant avec ladite deuxième unité de traitement de ce dernier, caractérisé en ce que :la deuxième mémoire de données enregistre, en tant que paramètres de mise en œuvre dudit procédé de vérification d'une signature (20), un premier nombre premier p de P bits, L nombres premiers q[l],q [L] de Q bits tels que p=2q [ 1 ] x...xq [L] +1, L étant supérieur à 1, P et Q étant deux entiers, lesdits paramètres étant de valeurs identiques à celles exploitées par ledit dispositif électronique prouveur tiers (SD, SDa, SDb) ;et en ce que ledit procédé (30) comporte :une première étape (31) pour recevoir par les deuxièmes moyens de communication la valeur d'un index i produite par le dispositif électronique prouveur tiers (SD, SDa, SDb) ;une étape pour déclencher l'émission, par les deuxièmes moyens de communication à destination dudit dispositif électronique prouveur tiers (SD, SDa, SDb), la teneur d'un message défi m[i] ÉRZq[i] Z une étape (33) pour :o réceptionner, par les deuxièmes moyens de communication, une réponse s[i] audit message défi m[i], ladite réponse s[i] étant produite par le dispositif électronique prouveur tiers (SD, SDa, SDb) à partir du message défi m[i] ;o vérifier si la réponse s[i] appartient ou non à l'ensemble de valeurs {0,...,q[i]-1} étant donnée la valeur q[i] enregistrée dans la deuxième mémoire de données ;dans la négative (33n), une étape pour rejeter (34) la demande d'authentification du dispositif électronique prouveur tiers (SD, SDa, SDb) ;dans l'affirmative (33y), une étape (35) pour vérifier si ( gs [1] ym[1]/r ) /q[1] = 1 mod p, y étant la clé publique du dispositif électronique prouveur tiers (SD, SDa, ADb) préalablement enregistrée dans la deuxième mémoire de données ;si (35n) (gs Al yMi]/r) (p-i)/q[ij ψ i mod p, une étape pour rejeter (34) la demande d'authentification du dispositif électronique prouveur tiers (SD, SDa, SDb);si (35y) (gs Al yMi]/r) (p-i)/q[±] = i moc[ p, une étape pour accepter la demande d'authentification du dispositif électronique prouveur tiers (SD, SDa, SDb) .
- 10. Procédé selon l'une quelconque des revendications 1 à 7, pour lequel l'étape (131, 141) pour produire l'engagement r consiste en un procédé comprenant une étape de pré-calcul.
- 11. Procédé selon les revendications 5 ou 6, pour lequel la réponse s[i] est un polynôme multivarié s[i] = Polynôme(r, m[i], p[i], x, k, e[i]) modulo q[i] dans r, m[i], p[i], x, k, e[i] où e[i] est un haché cryptoqraphique de r, m[i] et/ou p[i].
- 12. Produit programme d'ordinateur comportant des instructions de programme qui, lorsqu'elles sont :préalablement enregistrées dans une première mémoire de programmes d'un dispositif électronique prouveur (SD, SDa, SDb) comportant en outre une première unité de traitement agencée pour interpréter lesdites instructions, une première mémoire de données, des premiers moyens de communication assurant une communication avec un dispositif électronique vérificateur tiers (VD) , lesdites premières mémoires de données et de programmes et lesdits premiers moyens de communication coopérant avec ladite première unité de traitement ;exécutées ou interprétées par ladite première unité de traitement, provoquent la mise en œuvre d'un procédé (10) selon l'une quelconque des revendications 1 à 7.
- 13. Produit programme d'ordinateur comportant des instructions de programme qui, lorsqu'elles sont : préalablement enregistrées dans une deuxième mémoire de programmes d'un dispositif électronique vérificateur (VD) comportant en outre une deuxième unité de traitement agencée pour interpréter lesdites instructions, une deuxième mémoire de données, des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers (SD, SDa, SDb), lesdites deuxièmes mémoires de données et de programmes et lesdits deuxièmes moyens de communication coopérant avec ladite deuxième unité de traitement ; exécutées ou interprétées par ladite deuxième unité de traitement, provoquent la mise en œuvre d'un procédé (20) de vérification de signature selon la revendications 8 .
- 14. Produit programme d'ordinateur comportant des instructions de programme qui, lorsqu'elles sont :préalablement enregistrées dans une deuxième mémoire de programmes d'un dispositif électronique vérificateur (VD) comportant en outre une deuxième unité de traitement agencée pour interpréter lesdites instructions, une deuxième mémoire de données, des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers (SD, SDa, SDb), lesdites deuxièmes mémoires de données et de programmes et lesdits deuxièmes moyens de communication coopérant avec ladite deuxième unité de traitement ; exécutées ou interprétées par ladite deuxième unité de traitement, provoquent la mise en œuvre d'un procédé (30) d'authentification selon la revendication 9.
- 15. Dispositif de signature ou prouveur (SD, SDa, SDb) comportant une première unité de traitement, une première mémoire de données, une première mémoire de programmes, des premiers moyens de communication assurant une communication avec un dispositif électronique vérificateur tiers (VD), lesdites premières mémoires de données et de programmes et lesdits premiers moyens de communication coopérant avec ladite première unité de traitement, caractérisé en ce que ladite première mémoire de programmes comporte les instructions d'un produit programme d'ordinateur selon la revendication 12 et en ce que ladite première unité de traitement est agencée pour interpréter les instructions dudit produit programme d'ordinateur.
- 16. Dispositif de vérificateur de signature (VD) comportant une deuxième unité de traitement, une deuxième mémoire de données, une deuxième mémoire de programmes, des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers (SD, SDa, SDb), lesdites deuxièmes mémoires de données et de programmes et lesdits deuxièmes moyens de communication coopérant avec ladite deuxième unité de traitement, caractérisé en ce que ladite deuxième mémoire de programmes comporte les instructions d'un produit programme d'ordinateur selon la revendication 13 et en ce que ladite deuxième unité de traitement est agencée pour interpréter les instructions dudit produit programme d'ordinateur.
- 17. Dispositif d'authentification (VD) comportant une deuxième unité de traitement, une deuxième mémoire de données, une deuxième mémoire de programmes, des deuxièmes moyens de communication assurant une communication avec un dispositif électronique prouveur tiers (SD, SDa, SDb), lesdites deuxièmes mémoires de données et de programmes et lesdits deuxièmes moyens de communication coopérant avec ladite deuxième unité de traitement, caractérisé en ce que ladite deuxième mémoire de programmes comporte les instructions d'un produit programme d'ordinateur selon la revendication 14 et en ce que ladite deuxième unité de traitement est agencée pour interpréter les instructions dudit produit programme d'ordinateur.
- 18. Système de signature, d'identification et/ou d'authentification comportant un premier dispositif électronique de signature ou prouveur (SD, SDa, SDb) selon la revendication 15 et un deuxième dispositif électronique vérificateur de signature ou d'authentification (VD) selon la revendication 16 ou la revendication 17, lesdits premier et deuxième dispositifs coopérant via des premiers et deuxièmes moyens de communication respectifs.
- 19. Procédé de signature et d'identification mis en œuvre par les unités de traitement respectives d'un premier dispositif électronique prouveur (SD, SDa, SDb) et d'un deuxième dispositif électronique vérificateur (VD) d'un système de signature et d'identification selon la revendication précédente, comportant une première étape pour produire, par le premier dispositif électronique prouveur (SD, SDa, SDb), une signature { r, s [ i ] , p [ i ] } d'un message m[i] selon un procédé (10) conforme à la revendication 5 et une deuxième étape pour vérifier la validité de ladite signature par le deuxième dispositif électronique vérificateur (VD) selon un procédé de vérification de signature (20) conforme à la revendication 8.
- 20. Procédé d'authentification mis en œuvre par les unités de traitement respectives d'un premier dispositif électronique prouveur (SD, SDa, SDb) et d'un deuxième dispositif électronique vérificateur (VD) d'un système de signature et d'identification selon la revendication 18, comportant une étape pour produire, par le premier dispositif électronique prouveur (SD, SDa, SDb), une réponse s[i] à un défi m[i] selon un procédé conforme à la revendication 6 et une deuxième étape pour accepter ou rejeter une authentification par le dispositif électronique vérificateur (VD) deuxième selon un procédé d'authentification revendication 9.conforme
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1757933A FR3070517A1 (fr) | 2017-08-29 | 2017-08-29 | Systeme et procede d'authentification et de signature numerique |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1757933 | 2017-08-29 | ||
FR1757933A FR3070517A1 (fr) | 2017-08-29 | 2017-08-29 | Systeme et procede d'authentification et de signature numerique |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3070517A1 true FR3070517A1 (fr) | 2019-03-01 |
Family
ID=61003061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1757933A Pending FR3070517A1 (fr) | 2017-08-29 | 2017-08-29 | Systeme et procede d'authentification et de signature numerique |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3070517A1 (fr) |
-
2017
- 2017-08-29 FR FR1757933A patent/FR3070517A1/fr active Pending
Non-Patent Citations (2)
Title |
---|
"Chapter 10: Identification and Entity Authentication ED - Menezes A J; Van Oorschot P C; Vanstone S A", 1 October 1996 (1996-10-01), XP001525010, ISBN: 978-0-8493-8523-0, Retrieved from the Internet <URL:http://www.cacr.math.uwaterloo.ca/hac/> * |
BEUNARDEAU MARC ET AL: "Reusing Nonces in Schnorr Signatures", 12 August 2017, MEDICAL IMAGE COMPUTING AND COMPUTER-ASSISTED INTERVENTION - MICCAI 2015 : 18TH INTERNATIONAL CONFERENCE, MUNICH, GERMANY, OCTOBER 5-9, 2015; PROCEEDINGS; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CH, ISBN: 978-3-642-38287-1, ISSN: 0302-9743, XP047466042 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3010177B1 (fr) | Procédé d'authentification d'un dispositif client auprès d'un serveur à l'aide d'un élément secret | |
EP3091689B1 (fr) | Procédé de génération d'une signature de message à partir d'un jeton de signature chiffré à l'aide d'une fonction de chiffrement homomorphique | |
FR2759226A1 (fr) | Protocole de verification d'une signature numerique | |
EP2347541B1 (fr) | Systéme d'autentification | |
FR2760583A1 (fr) | Systeme de verification de cartes de donnees | |
FR2822002A1 (fr) | Authentification cryptographique par modules ephemeres | |
EP2345202A2 (fr) | Procédé de signature numérique en deux étapes | |
FR2735307A1 (fr) | Systeme d'identification a cle | |
EP1166496B1 (fr) | Procede d'authentification et de signature de message utilisant des engagements de taille reduite et systemes correspondants | |
WO2000042734A1 (fr) | Procede cryptographique a cles publique et privee | |
EP3174241A1 (fr) | Méthode d'établissement d'une communication sécurisée de bout en bout entre le terminal d'un utilisateur et un objet connecté | |
FR3059802A1 (fr) | Procede de generation d'une signature electronique d'un document associe a un condensat | |
EP1400056B1 (fr) | Procede d'authentification cryptographique | |
EP3965361B1 (fr) | Echange de données entre un client et un dispositif distant, par exemple un module sécurisé | |
CN107659411B (zh) | 加密货币中条件可追踪用户签名的方法和系统 | |
EP0666664B1 (fr) | Procédé de signature numérique et d'authentification de messages utilisant un logarithme discret avec un nombre réduit de multiplications modulaires | |
WO2003055134A9 (fr) | Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede | |
FR3070517A1 (fr) | Systeme et procede d'authentification et de signature numerique | |
EP4012972A1 (fr) | Méthode de divulgation sélective de données via une chaine de blocs | |
FR2842052A1 (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 | |
WO2019122679A1 (fr) | Procédé cryptographique de signature de groupe | |
FR2836768A1 (fr) | Procede et dispositif pour former une signature numerique | |
EP4070502A1 (fr) | Procédé de cogénération d'un matériel cryptographique partagé, dispositifs, système et programme d'ordinateur correspondant | |
WO2003021864A2 (fr) | Procede de reduction de la taille d'une signature rsa ou rabin |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLSC | Publication of the preliminary search report |
Effective date: 20190301 |
|
RX | Complete rejection |