FR2788912A1 - Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers - Google Patents
Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers Download PDFInfo
- Publication number
- FR2788912A1 FR2788912A1 FR9912467A FR9912467A FR2788912A1 FR 2788912 A1 FR2788912 A1 FR 2788912A1 FR 9912467 A FR9912467 A FR 9912467A FR 9912467 A FR9912467 A FR 9912467A FR 2788912 A1 FR2788912 A1 FR 2788912A1
- Authority
- FR
- France
- Prior art keywords
- mod
- prime
- congruent
- modulo
- public
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- 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
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
- G07F7/10—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
- G07F7/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
- G06Q20/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/388—Payment protocols; Details thereof using mutual authentication without cards, e.g. challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
- G06Q20/40975—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners using encryption therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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/302—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 integer factorization problem, e.g. RSA or quadratic sieve [QS] 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/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/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- 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/3249—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 RSA or related signature schemes, e.g. Rabin scheme
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Finance (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
L'invention concerne les procédés destinés à prouver l'authenticité d'une entité et/ ou l'origine et l'intégrité d'un message.Le procédé selon l'invention met en oeuvre trois entités (un témoin, un pilote et un contrôleur). Le témoin dispose des facteurs premiers P1 , P2 ,... (p i ,... ) d'un module public n tel que n = p1 . p1 . p3 ...., Il calcul des engagements R en effectuant des opérations du type :R i equiv r i vx mod p i et des réponses D en effectuant des opérations du type :D i equiv r i . QA i dA QB i dB ... mod pi où r i est un aléa tel que 0 < r i < p1 . Le nombre d'opérations arithmétiques modulo p i à effectuer pour calculer chacun des engagements R i et chacune des réponses D i pour chacun des p i est réduit par rapport à ce qu'il serait si les opérations étaient effectuées modulo n.
Description
<Desc/Clms Page number 1>
Procédé, système, dispositif destinés à prouver l'authe;mtidté d'une entité et/ou l'intégrité et/ou l'authenticité d'un message aux moyens de facteurs premiers particuliers.
La présente invention concerne le domaine technique des procédés, des systèmes ainsi que des dispositifs destinés à prouver l'authenticité d'une entité et/ou l'intégrité et/ou l'authenticité d'un message.
Le brevet EP 0 311470 B1 dont les inventeurs sont Louis Guillou et Jean-
Jacques Quisquater décrit un tel procédé. On y fera ci-après référence en le désignant par les termes : "brevet GQ" ou "procédé GQ". Par la suite on désignera parfois par "GQ2", "invention GQ2" ou "technologie GQ2" de nouveaux développements de la technologie GQ faisant l'objet des demandes pendantes déposées le même jour que la présente demande par France Télécom, TDF et la Société Mathrizk et ayant pour inventeur Louis Guillou et Jean-Jacques Quisquater. Les traits caractéristiques de ces demandes pendantes sont rappelés chaque fois que cela est nécessaire dans la description qui suit.
Jacques Quisquater décrit un tel procédé. On y fera ci-après référence en le désignant par les termes : "brevet GQ" ou "procédé GQ". Par la suite on désignera parfois par "GQ2", "invention GQ2" ou "technologie GQ2" de nouveaux développements de la technologie GQ faisant l'objet des demandes pendantes déposées le même jour que la présente demande par France Télécom, TDF et la Société Mathrizk et ayant pour inventeur Louis Guillou et Jean-Jacques Quisquater. Les traits caractéristiques de ces demandes pendantes sont rappelés chaque fois que cela est nécessaire dans la description qui suit.
Selon le procédé GQ, une entité appelée " autorité de confiance " attribue une identité à chaque entité appelée " témoin " et en calcule la signature RSA ; durant un processus de personnalisation, l'autorité de confiance donne identité et signature au témoin. Par la suite, le témoin proclame : " Voici mon identité ;j'en connais la signature RSA. " Le témoin prouve sans la révéler qu'il connaît la signature RSA de son identité. Grâce à la clé publique de vérification RSA distribuée par l'autorité de confiance, une entité appelée " contrôleur " vérifie sans en prendre connaissance que la signature RSA correspond à l'identité proclamée. Les mécanismes utilisant le procédé GQ se déroulent " sans transfert de connaissance ". Selon le procédé GQ, le témoin ne connaît pas la clé privée RSA avec laquelle l'autorité de confiance signe un grand nombre d'identités.
La technologie GQ précédemment décrite fait appel à la technologie RSA.
<Desc/Clms Page number 2>
Mais si la technologie RSA dépend bel et bien de la factorisation du module n, cette dépendance n'est pas une équivalence, loin s'en faut, comme le démontrent les attaques dites "multiplicatives" contre les diverses normes de signature numérique mettant en oeuvre la technologie
RSA.
RSA.
L'objectif de la technologie GQ2 est double : d'une part, améliorer les performances par rapport à la technologie RSA ; d'autre part, éviter les problèmes inhérents à la technologie RSA. La connaissance de la clé privée
GQ2 est équivalente à la connaissance de la factorisation du module n.
GQ2 est équivalente à la connaissance de la factorisation du module n.
Toute attaque au niveau des triplets GQ2 se ramène à la factorisation du module n : il y a cette fois équivalence. Avec la technologie GQ2, la charge de travail est réduite, tant pour l'entité qui signe ou qui s'authentifie que pour celle qui contrôle. Grâce à un meilleur usage du problème de la factorisation, tant en sécurité qu'en performance, la technologie GQ2 évite les inconvénients présentés par la technologie RSA.
Le procédé GQ met en oeuvre des calculs modulo des nombres de 512 bits ou davantage. Ces calculs concernent des nombres ayant sensiblement la même taille élevés à des puissances de l'ordre de 216 + 1. Or les infrastructures microélectroniques existantes, notamment dans le domaine des cartes bancaires, font usage de microprocesseurs auto-programmables monolithiques dépourvus de coprocesseurs arithmétiques. La charge de travail liée aux multiples opérations arithmétiques impliquées par des procédés tels que le procédé GQ, entraîne des temps de calcul qui dans certains cas s'avèrent pénalisant pour les consommateurs utilisant des cartes bancaires pour acquitter leurs achats. Il est rappelé ici, qu'en cherchant à accroître la sécurité des cartes de paiement, les autorités bancaires posent un problème particulièrement délicat à résoudre. En effet, il faut traiter deux questions apparemment contradictoires : augmenter la sécurité en utilisant des clés de plus en plus longues et distinctes pour
<Desc/Clms Page number 3>
chaque carte tout en évitant que la charge de travail n'entraîne des temps de calcul prohibitifs pour les utilisateurs. Ce problème prend un relief particulier dans la mesure où, en outre, il convient de tenir compte de l'infrastructure en place et des composants microprocesseurs existants.
La technologie GQ2 apporte une solution à ce problème tout en renforçant la sécurité.
La technologie GQ2 met en oeuvre des facteurs premiers ayant des propriétés particulières. Différentes techniques existent pour produire ces facteurs premiers. La présente invention a pour objet un procédé permettant de produire de manière systématique de tels facteurs premiers.
Elle concerne aussi l'application qui peut être faite de ceux-ci plus particulièrement dans la mise en oeuvre de la technologie GQ2. On souligne dès à présent que ces facteurs premiers particuliers et le procédé permettant de les obtenir sont susceptibles d'application en dehors du champ de la technologie GQ2.
L'invention s'applique à un procédé (procédé GQ2) destiné à prouver à une entité contrôleur, - l'authenticité d'une entité et/ou - l'intégrité d'un message M associé à cette entité.
Cette preuve est établie au moyen de tout ou partie des paramètres suivants ou dérivés de ceux-ci: - un module public n constitué par le produit de f facteurs premiers p1,
pz, ... pf (f étant supérieur ou égal à 2), - un exposant public v ;
- m nombres de base gl, gz, ... gm entiers, distincts, (m étant supérieur ou égal à 1).
pz, ... pf (f étant supérieur ou égal à 2), - un exposant public v ;
- m nombres de base gl, gz, ... gm entiers, distincts, (m étant supérieur ou égal à 1).
Les nombres de base gi sont tels que les deux équations (1) et (2) :
s2 2 =gi mod n et x2 == m g mod n n'ont pas de solution en x dans l'anneau des entiers modulo n,
s2 2 =gi mod n et x2 == m g mod n n'ont pas de solution en x dans l'anneau des entiers modulo n,
<Desc/Clms Page number 4>
Le procédé selon l'invention permet de produire les f facteurs premiers P1., p, ... Pr. de telle sorte que les équations (1), (2) et (3) soient satisfaites. Le procédé selon l'invention comprend l'étape de choisir en premier :
#les m nombres de base g,,, g, ... gm, # la taille du module n,
#la taille des f facteurs premiers pl,, p, ... pf.
#les m nombres de base g,,, g, ... gm, # la taille du module n,
#la taille des f facteurs premiers pl,, p, ... pf.
Le procédé concerne le cas où l'exposant public v est de la forme : v=2k où k est un paramètre de sécurité plus grand que 1. On choisit également en premier le paramètre de sécurité k. Cette valeur particulière de l'exposant v est un des traits essentiels de la technologie GQ2.
De préférence, les m nombres de base gv g, ... g,o, sont choisis au moins en partie parmi les premiers nombres entiers. De préférence également, le paramètre de sécurité k est un petit nombre entier, notamment inférieur à 100. Avantageusement, la taille du module n est supérieure à plusieurs centaines de bits. Avantageusement également, les f facteurs premiers p1,, p2,, ... pf ont une taille voisine de la taille du module n divisé par le nombre f de facteurs.
Selon une caractéristique importante du procédé selon l'invention, les f
facteurs premiers p, p, ... p ne sont pas choisis de manière quelconque.
facteurs premiers p, p, ... p ne sont pas choisis de manière quelconque.
Parmi les ffacteurs premiers pl,, p, ... pf un certain nombre d'entre eux : e seront choisis congrus à 1 modulo 4. Ce nombre e de facteurs premiers peut être nul. Dans le cas où e est nul le module n sera ci-après qualifié de module basique, dans le cas où e > 0 le module n sera ci-après qualifié de module mixte. Les f-e autres facteurs premiers sont choisis congrus à 3 modulo 4. Ce nombre f-e de facteurs premiers est au moins égal à 2.
<Desc/Clms Page number 5>
Choix des f-e facteurs premiers congrus à 3 module 4
Pour produire les f-e facteurs premiers pv p, ... pf congrus à 3 modulo 4, on met en oeuvre les étapes suivantes : - on choisit le premier facteur premier p1 congru à 3 modulo 4 puis,
- on choisit le deuxième facteur premier p, tel que p2 soit complémentaire de p, par rapport au nombre de base gl. Pour choisir le facteur pi+1, on procède comme suit en distinguant deux cas : (l)Casoùi>m Dans le cas où i> m, on choisit le facteur pi+1 congru à 3 modulo 4.
Pour produire les f-e facteurs premiers pv p, ... pf congrus à 3 modulo 4, on met en oeuvre les étapes suivantes : - on choisit le premier facteur premier p1 congru à 3 modulo 4 puis,
- on choisit le deuxième facteur premier p, tel que p2 soit complémentaire de p, par rapport au nombre de base gl. Pour choisir le facteur pi+1, on procède comme suit en distinguant deux cas : (l)Casoùi>m Dans le cas où i> m, on choisit le facteur pi+1 congru à 3 modulo 4.
(2) Cas où i# m
Dans ce cas où i< m, on calcule le profil (Profll(g}) de g, par rapport aux i premiers facteurs premiers p;, ' si le Profil{g) est plat, on choisit le facteur pw tel que pi+1 soit complémentaire de p, par rapport à gi, ' sinon, on choisit parmi les i-1 nombres de bases g,, g2, ... g,., et toutes leurs combinaisons multiplicatives le nombre, ci-après dénommé g, tel que Profil{g) = Prol;(g;), on choisit ensuite pi+1 tel que ProfOi+1(gi) * Prol;+1 (g) . Les expressions "complémentaire", "profil", "profil plat" ont le sens défini dans la description.
Dans ce cas où i< m, on calcule le profil (Profll(g}) de g, par rapport aux i premiers facteurs premiers p;, ' si le Profil{g) est plat, on choisit le facteur pw tel que pi+1 soit complémentaire de p, par rapport à gi, ' sinon, on choisit parmi les i-1 nombres de bases g,, g2, ... g,., et toutes leurs combinaisons multiplicatives le nombre, ci-après dénommé g, tel que Profil{g) = Prol;(g;), on choisit ensuite pi+1 tel que ProfOi+1(gi) * Prol;+1 (g) . Les expressions "complémentaire", "profil", "profil plat" ont le sens défini dans la description.
Pour choisir le dernier facteur premier pf-eon procède comme suit, en distinguant trois cas :
(1)Casoùfe-1>m Dans le cas où f-e-1 > m, on choisit pf-econgru à 3 modulo 4. (2) Cas où f-e-1 = m
Dans le cas où f-e-1 = ni, on calcule Proril,-,,,(g.) par rapport aux f-e-1 premiers facteurs premiers, de p, à p a si ProfÙr-e-I(gm) est plat, on choisit Pr-e-I tel qu'il soit
(1)Casoùfe-1>m Dans le cas où f-e-1 > m, on choisit pf-econgru à 3 modulo 4. (2) Cas où f-e-1 = m
Dans le cas où f-e-1 = ni, on calcule Proril,-,,,(g.) par rapport aux f-e-1 premiers facteurs premiers, de p, à p a si ProfÙr-e-I(gm) est plat, on choisit Pr-e-I tel qu'il soit
<Desc/Clms Page number 6>
complémentaire de p, par rapport à gm , ' sinon, on procède comme il est ci-après stipulé.
On choisit parmi les m-1 nombres de bases de g, à gm-1 et toutes leurs combinaisons multiplicatives le nombre, ci-après dénommé g, tel que
Profili(g) = Profilai) puis, on choisit ensuite pf tel que ProfHg) Profila).
Profili(g) = Profilai) puis, on choisit ensuite pf tel que ProfHg) Profila).
(3) Cas où f e-1 < m Dans le cas où f-e-1 < m, on choisit pf-etel que les deux conditions suivantes soient satisfaites : (3.1) Première condition.
On calcule Proiîlf~e.1(gf.e~1) par rapport aux f-e-1 premiers facteurs premiers, de pl à Pr-e-I, Deux cas sont alors à considérer. Selon l'un ou l'autre de ces deux cas, la première condition sera différente.
On calcule Proiîlf~e.1(gf.e~1) par rapport aux f-e-1 premiers facteurs premiers, de pl à Pr-e-I, Deux cas sont alors à considérer. Selon l'un ou l'autre de ces deux cas, la première condition sera différente.
Si Profil f .1(gf-m) est plat, on choisit p tel qu'il satisfasse à la première condition d'être complémentaire de pl par rapport à g,,, (première condition selon le premier cas) sinon, on choisit parmi les f-e-1 nombres de bases de g, à gm-1 et toutes leurs combinaisons multiplicatives le nombre, ci-
après dénommé g, tel que Profil(g) = Proflf 1(gf~e-,) puis, on choisit ensuite p tel qu'il satisfasse à la condition d'être tel que Profila (g) Profilf-e (g",), (première condition selon le deuxième cas) (3. 2) Deuxième condition On sélectionne parmi l'ensemble des derniers nombres de bases de gf-eà gm
ceux dont le profil ProfHt-e-J(g} est plat puis, on choisit pre tel qu'il satisfasse à la condition d'être complémentaire de p1 par rapport à chacun des nombres de bases ainsi sélectionnés (deuxième condition).
après dénommé g, tel que Profil(g) = Proflf 1(gf~e-,) puis, on choisit ensuite p tel qu'il satisfasse à la condition d'être tel que Profila (g) Profilf-e (g",), (première condition selon le deuxième cas) (3. 2) Deuxième condition On sélectionne parmi l'ensemble des derniers nombres de bases de gf-eà gm
ceux dont le profil ProfHt-e-J(g} est plat puis, on choisit pre tel qu'il satisfasse à la condition d'être complémentaire de p1 par rapport à chacun des nombres de bases ainsi sélectionnés (deuxième condition).
Choix des e facteurs premiers congrus à 1 modulo 4 Pour produire les e facteurs premiers congrus à 1 modulo 4, on évalue chaque candidat facteur premier p , de pf-e à pf , en lui faisant subir les deux tests successifs suivants.
<Desc/Clms Page number 7>
(1) Premier test On calcule le symbole de Legendre de chaque nombre de base g,,de g1 à gm , par rapport au facteur premier p candidat,
#si le symbole de Legendre est égal à -l, on rejette le candidat p, # si le symbole de Legendre est égal à +1, on poursuit l'évaluation du candidat p en passant au nombre de base suivant puis, lorsque le dernier nombre de base a été pris en compte on passe au deuxième test, (2) Deuxième test, On calcule un nombre entier t tel que p-1 est divisible par 2t mais pas par
2+' puis, on calcule un entier s tel que s = (p-l+2t)/2M. On applique la clé ( s, p) à chaque valeur publique Gi pour obtenir un résultat r
r= G; 9 mod p Si r est égal à g, ou - gi, on poursuit le deuxième test en passant à la valeur publique Gi+1 suivante.
#si le symbole de Legendre est égal à -l, on rejette le candidat p, # si le symbole de Legendre est égal à +1, on poursuit l'évaluation du candidat p en passant au nombre de base suivant puis, lorsque le dernier nombre de base a été pris en compte on passe au deuxième test, (2) Deuxième test, On calcule un nombre entier t tel que p-1 est divisible par 2t mais pas par
2+' puis, on calcule un entier s tel que s = (p-l+2t)/2M. On applique la clé ( s, p) à chaque valeur publique Gi pour obtenir un résultat r
r= G; 9 mod p Si r est égal à g, ou - gi, on poursuit le deuxième test en passant à la valeur publique Gi+1 suivante.
Si r est différent de g, ou - Gi, on calcule un facteur u en appliquant l'algorithme ci-après spécifié pour un indice il allant de 1 à t-2.
L'algorithme met en oeuvre deux variables : w initialisée par r et jj = 2"
prenant des valeurs allant de 2 à 21"2 , ainsi qu'un nombre b obtenu par l'application de la clé ( (p-l)/2', p) à un résidu non quadratique de CG(p). L'algorithme consiste à répéter autant que nécessaire, la séquence suivante:
#Etape 1 : on calcule w2/G, (mod p).
prenant des valeurs allant de 2 à 21"2 , ainsi qu'un nombre b obtenu par l'application de la clé ( (p-l)/2', p) à un résidu non quadratique de CG(p). L'algorithme consiste à répéter autant que nécessaire, la séquence suivante:
#Etape 1 : on calcule w2/G, (mod p).
#Etape 2 : on élève le résultat à la puissance 2"'-'. Deux cas sont à considérer.
Premier cas Si on obtient +1 , on passe à la valeur publique Ci+, suivante et on poursuit le deuxième test pour cette valeur publique.
Deuxième cas.
<Desc/Clms Page number 8>
Ensuite, on poursuit l'algorithme pour la valeur suivante de l'indice ii.
A l'issue de l'algorithme, la valeur figurant dans la variable jj permet de calculer un nombre entier u par la relation jj = 2t-u puis, on calcule l'expression t-u. Deux cas se présentent : # si t-u < k , on rejette le candidat p
#si t-u z k, on continue l'évaluation du candidat p en passant à la valeur publique Gi+1 suivante puis, en poursuivant le deuxième test.
#si t-u z k, on continue l'évaluation du candidat p en passant à la valeur publique Gi+1 suivante puis, en poursuivant le deuxième test.
Le candidat p est accepté comme facteur premier congru à 1 modulo 4 si à l'issue du deuxième test, pour toutes les m valeurs publiques G; , il n'a pas été rejeté.
Application aux valeurs publiques et privées de GQ2 La présente invention concerne également un procédé (procédé GQ2) faisant application du procédé qui vient d'être décrit et qui permet, rappelons le, de produire f facteurs premiers pl,, p, ... Pfayant des propriétés particulières. Le procédé faisant application du procédé qui vient d'être décrit est destiné à prouver à une entité contrôleur, - l'authenticité d'une entité et/ou - l'intégrité d'un message M associé à cette entité, Cette preuve est établie au moyen de tout ou partie des paramètres suivants ou dérivés de ceux-ci:
- m couples de valeurs privées QI, Q2, Qm et publiques G,, G2, ...
- m couples de valeurs privées QI, Q2, Qm et publiques G,, G2, ...
Gm (m étant supérieur ou égal à 1), - le module public n constitué par le produit desdits f facteurs premiers Pu p2, ... Pf (f étant supérieur ou égal à 2), - l'exposant public v .
Ledit module, ledit exposant et lesdites valeurs sont liés par des relations du type :
G. Qv == 1 . mod n ou G == Qv mod fi .
G. Qv == 1 . mod n ou G == Qv mod fi .
<Desc/Clms Page number 9>
Ledit exposant v est tel que v = 2k où k est un paramètre de sécurité plus grand que 1 .
Ladite valeur publique G; est le carré gj2 du nombre de base gi inférieur aux f facteurs premiers Pu p2, ... pf. Le nombre de base g; est tel que les deux équations : x2 = gi mod n et x2 = gimod n n'ont pas de solution en x dans l'anneau des entiers modulo n et tel que l'équation : x" = gi2 mod n a des solutions en x dans l'anneau des entiers modulo n.
Ladite valeur publique G; est le carré gj2 du nombre de base gi inférieur aux f facteurs premiers Pu p2, ... pf. Le nombre de base g; est tel que les deux équations : x2 = gi mod n et x2 = gimod n n'ont pas de solution en x dans l'anneau des entiers modulo n et tel que l'équation : x" = gi2 mod n a des solutions en x dans l'anneau des entiers modulo n.
Ledit procédé met en #uvre selon les étapes suivantes une entité appelée témoin. Ladite entité témoin dispose des f facteurs premiers p, et/ou des paramètres des restes chinois des facteurs premiers et/ou du module public
n et/ou des m valeurs privées Q, et/ou des f.m composantes Qi, j (Qi, j Qi mod pj) des valeurs privées Q; et de l'exposant public v . Le témoin calcule des engagements R dans l'anneau des entiers modulo n .
n et/ou des m valeurs privées Q, et/ou des f.m composantes Qi, j (Qi, j Qi mod pj) des valeurs privées Q; et de l'exposant public v . Le témoin calcule des engagements R dans l'anneau des entiers modulo n .
Chaque engagement est calculé : soit en effectuant des opérations du type
R = rvmodn où r est un aléa tel que 0 < r< n, soit en effectuant des opérations du type
R, riv mod Pi où ri est un aléa associé au nombre premier p, tel que 0 < r; < p; , chaque r, appartenant à une collection d'aléas {r, , r , ... r}, puis en appliquant la méthode des restes chinois.
R = rvmodn où r est un aléa tel que 0 < r< n, soit en effectuant des opérations du type
R, riv mod Pi où ri est un aléa associé au nombre premier p, tel que 0 < r; < p; , chaque r, appartenant à une collection d'aléas {r, , r , ... r}, puis en appliquant la méthode des restes chinois.
Le témoin reçoit un ou plusieurs défis d. Chaque défi d comportant m entiers di ci-après appelés défis élémentaires. Le témoin calcule à partir de chaque défi d une réponse D,
<Desc/Clms Page number 10>
# soit en effectuant des opérations du type :
D - r . Q 1 dl Q2 Il.... Q. d"' mou ...1 n #soit en effectuant des opérations du type : D, = Z. Q1 dl . Qz d2.... Q4m dm d pi puis, en appliquant la méthode des restes chinois.
D - r . Q 1 dl Q2 Il.... Q. d"' mou ...1 n #soit en effectuant des opérations du type : D, = Z. Q1 dl . Qz d2.... Q4m dm d pi puis, en appliquant la méthode des restes chinois.
Le procédé est tel qu'il y a autant de réponses D que de défis d que d'engagements R, chaque groupe de nombres R, d, D constituant un triplet noté {R, d, D}.
De préférence, pour mettre en oeuvre, comme il vient d'être décrit, les
couples de valeurs privées Ql, Q2, ... Qm et publiques G,, G2, ... Gro , on utilise les facteurs premiers pl, P2' ... Pf et/ou les paramètres des restes chinois, les nombres de bases gu g2, ... gra et/ou les valeurs publiques Gl, G2, ... Gm pour calculer : - soit les valeurs privées Qui, Qz, ... Qm en extrayant une k ième racine carrée modulo n de gi, ou en prenant l'inverse d'une k ième racine carrée modulo n de Gi,
- soit les f.m composantes privées Qu des valeurs privées Qn Q2, ...
couples de valeurs privées Ql, Q2, ... Qm et publiques G,, G2, ... Gro , on utilise les facteurs premiers pl, P2' ... Pf et/ou les paramètres des restes chinois, les nombres de bases gu g2, ... gra et/ou les valeurs publiques Gl, G2, ... Gm pour calculer : - soit les valeurs privées Qui, Qz, ... Qm en extrayant une k ième racine carrée modulo n de gi, ou en prenant l'inverse d'une k ième racine carrée modulo n de Gi,
- soit les f.m composantes privées Qu des valeurs privées Qn Q2, ...
Qm , telles que QUi = Q; (mod p) , Plus particulièrement, pour calculer les f.m composantes privées Qj j des valeurs privées QI, Q2, ... Qu : - on applique la clé (s, pj) pour calculer z tel que z --- G;' (mod p3) - et on utilise les valeurs t et u .
Les valeurs t et u sont calculées comme il a été indiqué ci-dessus dans le cas où pj est congru à 1 modulo 4. Les valeurs t et u sont prises respectivement égales à 1 (t=l) et 0 (u=0) dans le cas où Pj est congru à 3 modulo 4.
Si la valeur u est nul, on considère l'ensemble des nombres zz tels que : ### zz soit égale à z ou tel que
<Desc/Clms Page number 11>
o " 0 zz soit égale au produit (mod pi) de z par chacune des 2Íi-t racines 2" ièmes primitives de l'unité, il allant de 1 à mi1îÇ(,t) . Si u est positif, on considère l'ensemble des nombres zz tels que zz soit
égale au produit (mod p) de za par chacune des 2k racines 2k urnes de l'unité, za désignant la valeur de la variable w à l'issue de l'algorithme cidessus décrit.
On en déduit au moins une valeur de la composante Z;,3. Elle est égale à zz lorsque l'équation G Qjv mcd n est utilisée ou bien elle est égale à l'inverse de zz modulo pj de zz lorsque l'équation G,. Qu' =- 1 . mod m est utilisée.
D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante de modes de réalisation préférentiels, donnés à titre de simples exemples illustratifs et non limitatifs, et des dessins annexés, parmi lesquels : - les figures 1A et 1D illustrant la fonction décrite par la suite "élever au carré dans CG(p)", dans les cas où/? est respectivement congru à 3 (mod
4), 5 (mod 8), 9 (mod 16) et 17 (mod 32) ; - la figure 2 illustre les solutions de l'équation (3a) discutée par la suite ;
- les figures 3 et 4 illustrent respectivement l'égalité G, = g2 sur un cycle avec un facteur premier p congru à 9 (mod 16) et sur une branche avec un facteur premier p congru à 65 (mod 128).
4), 5 (mod 8), 9 (mod 16) et 17 (mod 32) ; - la figure 2 illustre les solutions de l'équation (3a) discutée par la suite ;
- les figures 3 et 4 illustrent respectivement l'égalité G, = g2 sur un cycle avec un facteur premier p congru à 9 (mod 16) et sur une branche avec un facteur premier p congru à 65 (mod 128).
<Desc/Clms Page number 12>
Description
Rappelons l'objectif de la technologie GQ : l'authentification dynamique d'entités et de messages associés, ainsi que la signature numérique de messages.
Rappelons l'objectif de la technologie GQ : l'authentification dynamique d'entités et de messages associés, ainsi que la signature numérique de messages.
La version classique de la technologie GQ fait appel à la technologie RSA.
Mais, si la technologie RSA dépend bel et bien de la factorisation, cette dépendance n'est pas une équivalence, loin s'en faut, comme le démontrent les attaques dites multiplicatives contre diverses normes de signature numérique mettant en #uvre la technologie RSA.
Dans le cadre de la technologie GQ2, la présente partie de l'invention porte plus précisément sur la production des jeux de clés G02 destinés à assurer l'authentification dynamique et la signature numérique. La technologie GQ2 ne fait pas appel à la technologie RSA. L'objectif est double : d'une part, améliorer les performances par rapport à la technologie RSA ; part, éviter les problèmes inhérents à la technologie RSA. La clé privée GQ2 est la factorisation du module n. Toute attaque au niveau des triplets GQ2 se ramène à la factorisation du module n : y a cette fois équivalence.
Avec la technologie GQ2, la charge de travail est réduite, tant pour l'entité qui signe ou qui s'authentifie que pour celle qui contrôle. Grâce à un meilleur usage du problème de la factorisation, tant en sécurité qu'en performance, la technologie GQ2 concurrence la technologie RSA.
La technologie GQ2 utilise un ou plusieurs petits nombres entiers plus
grands que 1, disons m petits nombres entiers (m >~ 1) appelés nombres de base et notés par g,. Puis, on choisit une clé publique de vérification (v, n) de la manière suivante. L'exposant public de vérification v est 2* où k est un
petit nombre entier plus grand que 1 (k > 2). Le module public n est le produit d'au moins deux facteurs premiers plus grands que les nombres de
base, disons/facteurs premiers ifs 2) notés par p, de/?, ... pf Les/facteurs premiers sont choisis de façon à ce que le module public n ait les propriétés
grands que 1, disons m petits nombres entiers (m >~ 1) appelés nombres de base et notés par g,. Puis, on choisit une clé publique de vérification (v, n) de la manière suivante. L'exposant public de vérification v est 2* où k est un
petit nombre entier plus grand que 1 (k > 2). Le module public n est le produit d'au moins deux facteurs premiers plus grands que les nombres de
base, disons/facteurs premiers ifs 2) notés par p, de/?, ... pf Les/facteurs premiers sont choisis de façon à ce que le module public n ait les propriétés
<Desc/Clms Page number 13>
suivantes par rapport à chacun des m nombres de base de g, à gm, - D'une part, les équations (1) et (2) n'ont pas de solution en x dans l'anneau des entiers modulo n, c'est-à-dire que g, et -gi sont deux résidus non quadratiques (mod n).
* 2 = gi (mod n) (1) x2 # -gi (mod n) (2) - D'autre part, l'équation (3) a des solutions en x dans l'anneau des entiers modulo n.
x2k --- g2 (mod n) (3) Par la suite, ces propriétés sont encore appelées les principes GQ2.
x2k --- g2 (mod n) (3) Par la suite, ces propriétés sont encore appelées les principes GQ2.
La clé publique de vérification (v, n) étant fixée selon les nombres de base de g, à gm avec m# 1, chaque nombre de base g, détermine un couple de valeurs GQ2 comprenant une valeur publique G, et une valeur privée Q,:
soit m couples notés de G, Q. à Gm Qu. La valeur publique G, est le carré du nombre de base g, : soit G, = g@2. La valeur privée Q, est une des solutions à l'équation (3) ou bien l'inverse (mod n) d'une telle solution.
soit m couples notés de G, Q. à Gm Qu. La valeur publique G, est le carré du nombre de base g, : soit G, = g@2. La valeur privée Q, est une des solutions à l'équation (3) ou bien l'inverse (mod n) d'une telle solution.
De même que le module n se décompose en f facteurs premiers, l'anneau des entiers modulo n se décompose en f corps de Galois, de CG(p,) à CG(pf). Voici les projections des équations (1), (2) et (3) dans CG(p).
*2 =gi (mod PJ) (l.a) x2::~g (mod pi) (2.a) x2 k -g2 (mod P j ) (3.a) Chaque valeur privée Q, peut se représenter de manière unique par f composantes privées, une par facteur premier : Q, = (mod p). Chaque composante privée Qij est une solution à l'équation (3.a) ou bien l'inverse (mod pJ) d'une telle solution. Après que toutes les solutions possibles à chaque équation (3.a) aient été calculées, la technique des restes chinois permet d'établir toutes les valeurs possibles pour chaque valeur privée Q, à
partir de f composantes de Qd à Q, J : Q, = Restes Chinois (Q, ,, Q,,2' ... Q, f)
partir de f composantes de Qd à Q, J : Q, = Restes Chinois (Q, ,, Q,,2' ... Q, f)
<Desc/Clms Page number 14>
de manière à obtenir toutes les solutions possibles à l'équation (3).
Voici la technique des restes chinois : soient deux nombres entiers positifs premiers entre eux a et b tels que 0 < a < b, et deux composantes Xa de 0 à
a-1 et Xb de 0 à b-1 ; il s'agit de déterminer X= Restes Chinois (X, Xb), c'est-à-dire, le nombre unique X de 0 à a. b- tel que X -=X (moda) et =Z(mod6). Voici le paramètre des restes chinois : a {b (mod a)}-' (mod a). Voici l'opération des restes chinois : e ==xi (mod a) ; 8 = X-E ; si 8 est négatif, remplacer 8 par 8+a ; y= a . 8 (mod a) ; = y. 6 + . Lorsque les facteurs premiers sont rangés dans l'ordre croissant, du plus
petit p, au plus grand pp les paramètres des restes chinois peuvent être les suivants (il y en a f-1, c'est-à-dire, un de moins que de facteurs premiers). Le premier paramètre des restes chinois est a {P2 (mod p,)}-' (mod p,). Le second paramètre des restes chinois est = {PI,P2 (mod P3)} -1 (mod/?3). Le i ième paramètre des restes chinois est ,--- {P1'P2, ... p,-, (mod p,)} -1 (mod p,). Et ainsi de suite. Ensuite, en/-l opérations des restes chinois, on établit un
premier résultat (mod p2 fois/?,) avec le premier paramètre, puis, un second résultat (mod p,.p2 fois p,) avec le second paramètre, et ainsi de suite, jusqu'à un résultat (mod p,.... pf , fois pf), c'est-à-dire, (mod n).
a-1 et Xb de 0 à b-1 ; il s'agit de déterminer X= Restes Chinois (X, Xb), c'est-à-dire, le nombre unique X de 0 à a. b- tel que X -=X (moda) et =Z(mod6). Voici le paramètre des restes chinois : a {b (mod a)}-' (mod a). Voici l'opération des restes chinois : e ==xi (mod a) ; 8 = X-E ; si 8 est négatif, remplacer 8 par 8+a ; y= a . 8 (mod a) ; = y. 6 + . Lorsque les facteurs premiers sont rangés dans l'ordre croissant, du plus
petit p, au plus grand pp les paramètres des restes chinois peuvent être les suivants (il y en a f-1, c'est-à-dire, un de moins que de facteurs premiers). Le premier paramètre des restes chinois est a {P2 (mod p,)}-' (mod p,). Le second paramètre des restes chinois est = {PI,P2 (mod P3)} -1 (mod/?3). Le i ième paramètre des restes chinois est ,--- {P1'P2, ... p,-, (mod p,)} -1 (mod p,). Et ainsi de suite. Ensuite, en/-l opérations des restes chinois, on établit un
premier résultat (mod p2 fois/?,) avec le premier paramètre, puis, un second résultat (mod p,.p2 fois p,) avec le second paramètre, et ainsi de suite, jusqu'à un résultat (mod p,.... pf , fois pf), c'est-à-dire, (mod n).
L'objet de l'invention est une méthode pour produire au hasard n'importe quel jeu de clés GQ2 parmi tous les jeux possibles, à savoir : - produire au hasard n'importe quel module parmi tous les modules GQ2 possibles, c'est-à-dire, les modules assurant que, pour chacun des m nombres de base g,, les équations (1) et (2) n'ont pas de solution en x dans l'anneau des entiers modulo n alors que l'équation (3) en a.
- calculer toutes les solutions possibles à chacune des équations (3.a). La technique des restes chinois permet ensuite d'obtenir une valeur privée
Q, à partir de chaque jeu de f composantes de Q,, à Qifde manière à obtenir n'importe quelle solution en x à l'équation (3) parmi toutes les solutions possibles.
Q, à partir de chaque jeu de f composantes de Q,, à Qifde manière à obtenir n'importe quelle solution en x à l'équation (3) parmi toutes les solutions possibles.
<Desc/Clms Page number 15>
Q, = Restes Chinois (Q,.,, Q z, ... Q) Pour appréhender le problème, puis, comprendre la solution que nous donnons au problème, c'est-à-dire, l'invention, nous analysons tout d'abord l'applicabilité des principes de la technologie GQ2. Commençons par rappeler la notion de rang dans un corps de Galois CG (p) d'étudier les fonctions élever au carré dans CG(p) et prendre une racine carrée d'un résidu quadratique dans CG (p) Puis, analysons l'existence et le nombre de solutions en x dans CG (p) équations (l.a), (2. a) et (3.a).
Rang des éléments dans CG(p) Soit un nombre premier impaire et un nombre entier positif a plus petit que p. Définissons la suite {X}.
{X 1-= lx, = a; puis, pour i >~ 1, xl+1--- a.xi (mod p) } Calculons le terme pour l'indice i+p et utilisons le théorème de Fermat. z a p xi a.xl xi+1 (mod p) Par conséquent, la période de la suite {X} est/7-1 ou un diviseur de p-1. Cette période dépend de la valeur de a. Par définition, cette période est appelée le rang de a (mod p) . C'est l'indice d'apparition de l'unité dans la suite {X}.
Xrang(a,p) 1 (mod p)
Par exemple, lorsque (p-1)12 est un nombre premier impair p', le corps de Galois CG (p) un seul élément de rang 1 : c'est 1, un seul
élément de rang 2 : c'est -1, p'-1 éléments de rang/?', p'-1 éléments de rang 2.p c'est-à-dire, de rang p-1.
Par exemple, lorsque (p-1)12 est un nombre premier impair p', le corps de Galois CG (p) un seul élément de rang 1 : c'est 1, un seul
élément de rang 2 : c'est -1, p'-1 éléments de rang/?', p'-1 éléments de rang 2.p c'est-à-dire, de rang p-1.
Les éléments de CG (p) pour rang p-1 sont appelés les éléments primitifs ou encore, générateurs de CG(p). La dénomination est due au fait que leurs puissances successives dans CG (p), les termes de la suite {X} pour les indices allant de 1 à p-l, forment une permutation de tous les éléments non nuls de CG(p).
Soit un élément primitif y de CG (p). le rang de l'élément y'
<Desc/Clms Page number 16>
(mod p) en fonction de i et de p-1. Lorsque i est premier avec p-1, c'est
p-1. Lorsque i divise p-l, c'est (p-l)li. Dans tous les cas, c'est (p-1)lpgcd(p-1, i). La fonction d'Euler est notée par #. Par définition, n étant un nombre entier
positif, (p(n) est le nombre de nombres entiers positifs, plus petits que n et premiers avec n. Dans le corps CG(p), il y a donc cp(p-l) éléments primitifs.
p-1. Lorsque i divise p-l, c'est (p-l)li. Dans tous les cas, c'est (p-1)lpgcd(p-1, i). La fonction d'Euler est notée par #. Par définition, n étant un nombre entier
positif, (p(n) est le nombre de nombres entiers positifs, plus petits que n et premiers avec n. Dans le corps CG(p), il y a donc cp(p-l) éléments primitifs.
A titre d'illustration, voici la base de la technologie RSA. Le module public
n est le produit de f facteurs premiers, de/?, à pf avec/> 2, tel que pour chaque facteur premier PJ, l'exposant public v est premier avec pi-1. La clé (v, p) respecte le rang des éléments de CG(p) : elle les permute. La permutation inverse s'obtient par une clé (sJ' p) telle que p- divise v.-1.
n est le produit de f facteurs premiers, de/?, à pf avec/> 2, tel que pour chaque facteur premier PJ, l'exposant public v est premier avec pi-1. La clé (v, p) respecte le rang des éléments de CG(p) : elle les permute. La permutation inverse s'obtient par une clé (sJ' p) telle que p- divise v.-1.
Carrés et racines carrées dans CG(p) Les éléments x et p-x ont le même carré dans CG (p). clé (2, p) ne permute pas les éléments de CG (p) que p-1 est pair. Pour chaque nombre premier p, définissons un nombre entiert de la manière suivante :
p-1 est divisible par 2', mais pas par 2'', c'est-à-dire que/? est congru à 2'+1 (mod 2t+1). Par exemple, t = 1 lorsque p est congru à 3 (mod 4) ; t = 2 lorsque p est congru à 5 (mod 8) ; t = 3 lorsque p est congru à 9 (mod 16) ; t = 4 lorsque p est congru à 17 (mod 32) ; et ainsi de suite. Chaque nombre premier impair figure dans une et une seule catégorie : p figure dans la t ième catégorie. En pratique, si l'on considère un assez grand nombre de nombres premiers successifs, environ un sur deux figure dans la première catégorie, un sur quatre dans la deuxième, un sur huit dans la troisième, un sur seize dans la quatrième, et ainsi de suite ; en résumé, un sur 2' en moyenne figure dans la t ième catégorie.
p-1 est divisible par 2', mais pas par 2'', c'est-à-dire que/? est congru à 2'+1 (mod 2t+1). Par exemple, t = 1 lorsque p est congru à 3 (mod 4) ; t = 2 lorsque p est congru à 5 (mod 8) ; t = 3 lorsque p est congru à 9 (mod 16) ; t = 4 lorsque p est congru à 17 (mod 32) ; et ainsi de suite. Chaque nombre premier impair figure dans une et une seule catégorie : p figure dans la t ième catégorie. En pratique, si l'on considère un assez grand nombre de nombres premiers successifs, environ un sur deux figure dans la première catégorie, un sur quatre dans la deuxième, un sur huit dans la troisième, un sur seize dans la quatrième, et ainsi de suite ; en résumé, un sur 2' en moyenne figure dans la t ième catégorie.
Considérons le comportement de la fonction élever au carré dans CG(p) selon la parité du rang de l'argument.
- Il y a un seul élément fixe : c'est 1. Le carré de tout autre élément de
<Desc/Clms Page number 17>
rang impair est un autre élément ayant le même rang. Par conséquent, la
clé 2, p) permute l'ensemble des {p-1 )/2 éléments de rang impair, Le nombre de cycles de permutation dépend de la factorisation de --1)/2. Par exemple, lorsque (p-l)/2' est un nombre premier pil y a un grand cycle de permutation comportant/? '-1 éléments.
clé 2, p) permute l'ensemble des {p-1 )/2 éléments de rang impair, Le nombre de cycles de permutation dépend de la factorisation de --1)/2. Par exemple, lorsque (p-l)/2' est un nombre premier pil y a un grand cycle de permutation comportant/? '-1 éléments.
Le carré de tout élément de rang pair est un autre élément dont le rang est divisé par deux. Par conséquent, les éléments de rang pair se
répartissent sur (p-l)/2' branches ; chaque élément non nul de rang impair porte une branche de longueur t comportant 2t-1 éléments, à savoir : un élément de rang divisible par deux mais pas par quatre, puis, si t# 2, deux éléments de rang divisible par quatre mais pas par huit, puis, si t# 3, quatre éléments de rang divisible par huit mais pas par seize, puis, si t# 4, huit éléments de rang divisible par seize mais pas par 32, et ainsi de suite. Les 2t-I extrémités de chaque branche sont des résidus non quadratiques ; leur rang est divisible par 2t.
répartissent sur (p-l)/2' branches ; chaque élément non nul de rang impair porte une branche de longueur t comportant 2t-1 éléments, à savoir : un élément de rang divisible par deux mais pas par quatre, puis, si t# 2, deux éléments de rang divisible par quatre mais pas par huit, puis, si t# 3, quatre éléments de rang divisible par huit mais pas par seize, puis, si t# 4, huit éléments de rang divisible par seize mais pas par 32, et ainsi de suite. Les 2t-I extrémités de chaque branche sont des résidus non quadratiques ; leur rang est divisible par 2t.
Les figures 1A à 1D illustrent la fonction élever au carré dans CG (p) par un graphe orienté où chacun des p-1 éléments non nuls du corps trouve sa place : les résidus non quadratiques sont en blanc et les résidus quadratiques en noir ; parmi les résidus quadratiques, les éléments de rang impair sont encerclés.
Ces figures présentent respectivement : - figure lA : cas où p est congru à 3 (mod 4) ; - figure 1B : cas où p est congru à 5 (mod 8) ; figure 1C : cas où p est congru à 9 (mod 16) ; - figure 1D : cas où p est congru à 17 (mod 32).
<Desc/Clms Page number 18>
Voyons comment calculer une solution en x à l'équation x 2 = a (mod p) sachant que a est un résidu quadratique de CG(p), c'est-à-dire, comment prendre une racine carrée dans CG(p) . Il y a bien sûr plusieurs façons d'obtenir le même résultat : le lecteur pourra avantageusement consulter les pages 31 à 36 du livre de Henri Cohen, a Course in Computational Algebraic Number Theory, publié en 1993 par Springer à Berlin comme le volume 138 de la série Graduate Texts in Mathematics (GTM 138).
Calculons un nombre entier s = (p-l+2)/t+1 pour établir une clé (s, p). Soit : ((p+l)/4, p) lorsque p est congru à 3 (mod 4), ((p+3)/8, p) lorsque p est congru à 5 (mod 8), ((p+7)I16, p) lorsque p est congru à 9 (mod 16), ((p+15)/32, p) lorsque p est congru à 17 (mod 32), et ainsi de suite. - La clé (s, p) donne la racine carrée de rang impair de n'importe quel élément de rang impair. En effet, dans CG(p), r2/a vaut a élevé à la
puissance (2.(p-1+2I2 "')-1 = (p-l)/2'. Par conséquent, lorsque a est sur un cycle, la clé (s, p) transforme a en une solution que nous nommons w. L'autre solution est p-w.
puissance (2.(p-1+2I2 "')-1 = (p-l)/2'. Par conséquent, lorsque a est sur un cycle, la clé (s, p) transforme a en une solution que nous nommons w. L'autre solution est p-w.
- D'une manière générale, la clé (s, p) transforme tout résidu quadratique a en une première approximation de solution que nous nommons r.
Voici deux points clés, puis, l'ébauche d'une méthode pour améliorer pas à pas l'approximation jusqu' à une racine carrée de a.
Voici deux points clés, puis, l'ébauche d'une méthode pour améliorer pas à pas l'approximation jusqu' à une racine carrée de a.
- D'une part, puisque a est un résidu quadratique, la clé (2-', p) transforme certainement r2/a en 1.
- D'autre part, supposons que nous connaissons un résidu non
quadratique de CG(p) que nous nommons y ; la clé ((p-1)I2', p) transforme y en un élément que nous nommons b : c'est une racine 2'-' ième de -1 ; en effet, y(P-l)/2 -1 (mod p). Par conséquent, dans CG (p), le groupe multiplicatif des 2' racines 2' ièmes de l'unité est isomorphe au groupe multiplicatif des puissances de b pour les exposants de 1 à 2'.
quadratique de CG(p) que nous nommons y ; la clé ((p-1)I2', p) transforme y en un élément que nous nommons b : c'est une racine 2'-' ième de -1 ; en effet, y(P-l)/2 -1 (mod p). Par conséquent, dans CG (p), le groupe multiplicatif des 2' racines 2' ièmes de l'unité est isomorphe au groupe multiplicatif des puissances de b pour les exposants de 1 à 2'.
<Desc/Clms Page number 19>
- Pour se rapprocher d'une racine carrée de a, élevons r2/a à la puissance 2'2 (mod p) : le résultat est +1 ou -1. La nouvelle approximation reste r si le résultat est +1 ou bien devient b.r (mod
p) si le résultat est -1. Par conséquent, la clé (2''\ p) transforme certainement la nouvelle approximation en 1. On peut continuer à se rapprocher : au prochain pas, on ajustera s'il le faut en
multipliant par b2(modp) ; et ainsi de suite. L'algorithme suivant établit des approximations successives pour aboutir à une racine carrée de a à partir des nombres entiers r et b définis ci-dessus ; il utilise deux variables entières : w initialisée par r pour représenter les approximations successives et jj prenant des valeurs parmi les puissances de 2, de 2 à 2t-2.
p) si le résultat est -1. Par conséquent, la clé (2''\ p) transforme certainement la nouvelle approximation en 1. On peut continuer à se rapprocher : au prochain pas, on ajustera s'il le faut en
multipliant par b2(modp) ; et ainsi de suite. L'algorithme suivant établit des approximations successives pour aboutir à une racine carrée de a à partir des nombres entiers r et b définis ci-dessus ; il utilise deux variables entières : w initialisée par r pour représenter les approximations successives et jj prenant des valeurs parmi les puissances de 2, de 2 à 2t-2.
Pour i allant de 1 à t-2, répéter la séquence suivante :
- Calculer w2/a (mod/?), puis, élever le résultat à la puissance 2'"'"1 (mod p) : on doit obtenir +1ou -1. Lorsque l'on obtient -1, calculer jj = 2', puis, remplacer w par w.bIJ (modp). Lorsque l'on obtient +1, ne rien faire.
- Calculer w2/a (mod/?), puis, élever le résultat à la puissance 2'"'"1 (mod p) : on doit obtenir +1ou -1. Lorsque l'on obtient -1, calculer jj = 2', puis, remplacer w par w.bIJ (modp). Lorsque l'on obtient +1, ne rien faire.
A l'issue du calcul, w etp-w sont les deux racines carrées de a dans CG(p). En outre, nous apprenons que le rang de a dans CG (p) divisible par 2t/jj
mais pas par 2'Ijj. La pertinence de cette remarque apparaîtra par la suite.
mais pas par 2'Ijj. La pertinence de cette remarque apparaîtra par la suite.
Analyse des principes de la technologie GQ2 dans CG(p) Soit deux nombres entiers g et k plus grands que 1 et un nombre premier p plus grand que g. Analysons l'existence et le nombre de solutions en x dans CG (p) aux équations (l.a), (2.a) et (3.a).
Dans le corps de Galois CG (p), différents cas selon la valeur de
t, c'est-à-dire, selon la puissance de deux qui divise/?-!. Rappelons que p-1 est divisible par 2', mais pas par 2"', c' est-à-dire que p est congru à 2+ (mod 2'+'). L'analyse précédente nous donne une idée assez précise du problème posé ainsi qu'une ébauche de solution.
t, c'est-à-dire, selon la puissance de deux qui divise/?-!. Rappelons que p-1 est divisible par 2', mais pas par 2"', c' est-à-dire que p est congru à 2+ (mod 2'+'). L'analyse précédente nous donne une idée assez précise du problème posé ainsi qu'une ébauche de solution.
Lorsque t = 1, p est congru à 3 (mod 4). Les symboles de Legendre de g et
<Desc/Clms Page number 20>
-g par rapport à p sont différents ; tout résidu quadratique de CG(p) a deux racines carrées dans CG(p) : l'une est un résidu quadratique et l'autre un résidu non quadratique. D'une part, une des deux équations (La) ou (2.a) a deux solutions en x dans CG(p) et l'autre n'en a pas. D'autre part, l'équation (3.a) a deux solutions en x dans CG(p) quelle que soit la valeur de*.
Lorsque t = 2, p est congru à 5 (mod 8). Deux cas se présentent selon le symbole de Legendre de g par rapport àp. Lorsque le symbole vaut -1, g et -g sont deux résidus non quadratiques de CG(p) : les trois équations (La), (2.a) et (3.a) n'ont pas de solution en x dans CG (p). le symbole vaut +1, g et -g sont deux résidus quadratiques de CG(p), chaque équation (l.a) et (2.a) a deux solutions en x dans CG (p) ; deplus, le rang de 9 2 dans CG(p) est impair, ce qui implique que quelle que soit la valeur de k, l'équation (3.a) a quatre solutions en x dans CG(p) dont une seule de rang impair.
La figure 2 illustre les solutions à l'équation (3.a) avec k = 6 et p congru à 5 (mod 8), soit t = 2. Remarquons que, parce que le symbole de Legendre de 2
par rapport à p congru à 5 (mod 8) vaut -1,2(r1)14 (mod p) est alors une racine carrée de -1. On a donc :
p 5 (mod8) ; par conséquent : {2p) ~ -1 p-I
b 2 1 (mod p) ; donc b2 = -1 (mod p)
par rapport à p congru à 5 (mod 8) vaut -1,2(r1)14 (mod p) est alors une racine carrée de -1. On a donc :
p 5 (mod8) ; par conséquent : {2p) ~ -1 p-I
b 2 1 (mod p) ; donc b2 = -1 (mod p)
<Desc/Clms Page number 21>
Lorsque t = 3, p est congru à 9 (mod 16). Considérons le symbole de Legendre de g par rapport à p. Lorsque le symbole vaut -1, g et -g sont deux résidus non quadratiques de CG(p) : les trois équations (l.a), (2. a) et (3.a) n'ont pas de solution en x dans CG (p). le symbole vaut +1, g et-g sont deux résidus quadratiques de CG(p) ; chaque équation (La) et (2. a) a deux solutions en x dans CG(p) ; l'existence de solutions en x à l'équation (3.a) dépend du rang de 9' dans CG(p) : ce rang est impair ou divisible par deux, mais pas par quatre. Lorsque le rang de 9' dans CG(p) est divisible par deux, mais pas par quatre, l'équation (3.a) a quatre solutions en x dans CG (p) pourk = 2 ; elle n'en a pas pour k > 3 . Lorsque le rang de 9' dans CG(p) est impair, l'équation (3.a) a quatre solutions en x dans CG(p) pour k = 2 et huit pour k > 3 ; dans les deux cas, une seule est de rang impair.
Lorsque t = 4, p est congru à 17 (mod 32). Considérons le symbole de Legendre de g par rapport à p. Lorsque le symbole vaut -1, g et-g sont deux résidus non quadratiques de CG (p) : trois équations (l.a), (2.a) et (3.a) n'ont pas de solution en x dans CG (p). le symbole vaut +1, g et -g sont deux résidus quadratiques de CG(p) ; chaque équation (l.a) et (2.a) a deux solutions en x dans CG(p) ; l'existence de solutions en x à l'équation (3.a) dépend du rang de g2 dans CG (p) : rang est impair ou divisible par deux ou quatre, mais pas par huit. Lorsque le rang de 9' dans CG (p) est divisible par quatre, mais pas par huit, l'équation (3.a) a quatre
solutions en x dans CG(p) pour k = 2 ; elle n'en a pas pour > 3. Lorsque le rang de g 2 dans CG(p) est divisible par deux, mais pas par quatre, l'équation (3.a) a quatre solutions en x dans CG(p) pour k = 2 ou huit pour k = 3 ;
n'en a pas pour > 4. Lorsque le rang de g2 dans CG(p) est impair, l'équation (3.a) a quatre solutions en x dans CG(p) pour k = 2, huit pour
k = 3 et seize pour > 4 ; dans les trois cas, une seule est de rang impair. Et ainsi de suite, de sorte que le cas où p est congru à 1 (mod 4) peut se
solutions en x dans CG(p) pour k = 2 ; elle n'en a pas pour > 3. Lorsque le rang de g 2 dans CG(p) est divisible par deux, mais pas par quatre, l'équation (3.a) a quatre solutions en x dans CG(p) pour k = 2 ou huit pour k = 3 ;
n'en a pas pour > 4. Lorsque le rang de g2 dans CG(p) est impair, l'équation (3.a) a quatre solutions en x dans CG(p) pour k = 2, huit pour
k = 3 et seize pour > 4 ; dans les trois cas, une seule est de rang impair. Et ainsi de suite, de sorte que le cas où p est congru à 1 (mod 4) peut se
<Desc/Clms Page number 22>
résumer comme suit.
Lorsque/? est congru à 1 (mod 4), considérons le symbole de Legendre de g par rapport àp. Lorsque le symbole vaut -1, g et-g sont deux résidus non quadratiques de CG(p) : les trois équations (l.a), (2. a) et (3. a) n'ont pas de solution en x dans CG (p). le symbole vaut +1, g et -g sont deux résidus quadratiques de CG(p) ; chaque équation (l.a) et (2.a) a deux solutions en x dans CG(p). Définissons le nombre entier u : le rang de g2
dans CG(p) est divisible par 2", mais pas par 2"" ; la valeur de u figure parmi les t-1valeurs possibles, de 0 à t-2. L'existence et le nombre de solutions en x dans CG(p) à l'équation (3.a) dépend des valeurs de k, t et u.
dans CG(p) est divisible par 2", mais pas par 2"" ; la valeur de u figure parmi les t-1valeurs possibles, de 0 à t-2. L'existence et le nombre de solutions en x dans CG(p) à l'équation (3.a) dépend des valeurs de k, t et u.
Lorsque u est positif et k est supérieur à t-u, l'équation (3.a) n'a pas de solution en x dans CG (p). Lorsqueu est nul et k supérieur à t, l'équation (3.a) a 2' solutions en x dans CG(p). Lorsque k inférieur ou égal à t-u, l'équation (3. a) a 2k solutions enx dans CG(p).
Applicabilité des principes GQ2 dans les anneaux d'entiers modulo Pour que l'équation (1), respectivement (2), n'ait pas de solution en x dans l'anneau des entiers modulo n, il faut et il suffit que, pour au moins un des
facteurs premiers p, de p, à Pi' l'équation (l.a), respectivement (2.a), n'ait pas de solution en x dans CG(p).
facteurs premiers p, de p, à Pi' l'équation (l.a), respectivement (2.a), n'ait pas de solution en x dans CG(p).
Pour que l'équation (3) ait des solutions en x dans l'anneau des entiers modulo n, il faut et il suffit que, pour chacun des facteurs premiers p, de/?, pf, l'équation (3.a) ait des solutions en x dans CG(p).
L'équation (3) interdit tout facteur premier p congru à 1 (mod 4) dès que
pour l'un des nombres de base g, de g, à g, : ou bien, le symbole de Legendre de g par rapport à p est égal à -1 ; ou bien, le symbole de Legendre de g par rapport à p est égal à +1avec la condition : u positif et supérieur à t-k. Pour qu'un facteur premier p congru à 1 (mod 4) soit possible, il doit remplir l'une des deux conditions suivantes pour chacun des nombres de base g, de g, à gm, selon les deux nombres entiers t et u
pour l'un des nombres de base g, de g, à g, : ou bien, le symbole de Legendre de g par rapport à p est égal à -1 ; ou bien, le symbole de Legendre de g par rapport à p est égal à +1avec la condition : u positif et supérieur à t-k. Pour qu'un facteur premier p congru à 1 (mod 4) soit possible, il doit remplir l'une des deux conditions suivantes pour chacun des nombres de base g, de g, à gm, selon les deux nombres entiers t et u
<Desc/Clms Page number 23>
définis ci-dessus. Ou bien, le rang de G =g2 est impair dans CG (p), dire, u = 0, quelle que soit la valeur de k. Ou bien, le rang de G =g2 est pair dans CG (p), c'est-à-dire,u > 0, et il satisfait la condition : u + k# t.
Un produit de facteurs premiers congrus à 1 (mod 4) ne peut assurer l'ensemble des principes de la technologie GQ2. Chaque module GQ2 doit avoir au moins deux facteurs premiers congrus à 3 (mod 4) tels que, pour chaque nombre de base g, le symbole de Legendre de g par rapport à l'un diffère du symbole de Legendre de g par rapport à l'autre. Lorsque tous les facteurs premiers sont congrus à 3 (mod 4), on dira que le module GQ2 est basique. Lorsqu'en plus d'au moins deux facteurs premiers congrus à 3 (mod 4), le module inclut un ou plusieurs facteurs premiers congrus à 1 (mod 4), on dira que le module GQ2 est mixte.
Construction systématique de modules GQ2 Au départ, il faut fixer les contraintes globales à imposer au module n : une taille en bits (par exemple, 512 ou 1024 bits) ainsi qu'un nombre de bits successifs à 1 en poids forts (au moins un bien sûr, typiquement 16 ou 32 bits), un nombre f de facteurs premiers et un nombre e (pouvant être nul) de facteurs premiers devant être congrus à 1 (mod 4) ; les autres facteurs premiers, soitf-e facteurs, au moins deux, doivent être congrus à 3 (mod 4).
Le module n sera le produit de f facteurs premiers de tailles voisines.
Lorsque e = 0, on obtient un module GQ2 basique ; lorsque e > 0, on obtient un module GQ2 mixte. Un module basique est le produit de facteurs premiers tous congrus à 3 (mod 4). Un module GQ2 mixte apparaît donc comme le produit d'un module GQ2 basique par un ou plusieurs autres facteurs premiers congrus à 1 (mod 4). On produit d'abord des facteurs premiers congrus à 3 (mod 4). Ensuite, si e > 0, on produit des facteurs premiers congrus à 1 (mod 4).
Pour l'efficacité de la construction de modules GQ2, il vaut bien mieux sélectionner chaque candidat avant de chercher à savoir s'il est premier.
<Desc/Clms Page number 24>
Notés par g, g2 ... , les nombres de base figurent typiquement parmi les premiers nombres premiers : 2,3, 5,7, ... Faute d'indication contraire, les m nombres de base sont les m premiers nombres premiers : g, = 2, g2 3, g3 = 5, g4 = 7, ... Toutefois, notons les remarques suivantes : il faut éviter 2 si l'on escompte un facteur congru à 5 (mod 8) ; faut éviter 3 si l'on doit utiliser la clé publique (3, n) comme clé publique de vérification RSA.
Choix de f-e facteurs premiers congrus à 3 (mod 4) A partir du deuxième facteur, le programme demande et utilise un nombre de base par facteur. Pour le choix du dernier facteur congru à 3 (mod 4), le programme demande s'il y a d'autres nombres de base, c'est-à-dire, si m est égal ou supérieur à f-e, puis, si tel est le cas, demande et prend en compte
les derniers nombres de base, de gre à gm. Pour formaliser le choix des facteurs premiers congrus à 3 (mod 4), nous avons introduit une notion de profil ; le profil caractérise un nombre entier g par rapport à un ensemble de facteurs premiers plus grands que g et congrus à 3 (mod 4).
les derniers nombres de base, de gre à gm. Pour formaliser le choix des facteurs premiers congrus à 3 (mod 4), nous avons introduit une notion de profil ; le profil caractérise un nombre entier g par rapport à un ensemble de facteurs premiers plus grands que g et congrus à 3 (mod 4).
- Lorsqu'un nombre entier g a le même symbole de Legendre par rapport à deux facteurs premiers, on dit que les facteurs premiers sont équivalents par rapport à g. Sinon, ils sont complémentaires par rapport à g.
- Noté par Profila), le profil d'un nombre entier g par rapport à facteurs premiers PJ P2 ... pf est une séquence de/bits, un bit par facteur premier.
Le premier bit vaut 1 ; bit suivant vaut 1 ou 0 selon que le facteur suivant est équivalent ou complémentaire de/?, par rapport à g.
- Lorsque tous les bits d'un profil sont égaux à 1, on dit que le profil est plat. Dans un tel cas, tous les symboles de Legendre de g sont égaux à +1, ou bien, à -1. Lorsque le profil de g est non plat, les équations (1) et (2) n'ont pas de solution en x dans l'anneau des entiers modulo n.
- Par définition, le profil de g par rapport à un seul nombre premier congru à 3 (mod 4) est toujours plat. Cette extension permet de généraliser l'algorithme de choix des facteurs premiers congrus à 3 (mod 4).
<Desc/Clms Page number 25>
Lorsque les profils de deux nombres de base g, et g2 sont différents, ce qui implique au moins trois facteurs premiers congrus à 3 (mod 4), la
connaissance des deux valeurs privées Q, et Q2 induit la connaissance de deux décompositions différentes du module n. Lorsque les nombres de base sont des petits nombres premiers, le programme assure que les profils des
2''-1 combinaisons multiplicatives des f-e-1 premiers nombres de base sont tous différents : ils prennent toutes les valeurs possibles. La notion de profil ne s'étend pas aux facteurs premiers congrus à 1 (mod 4).
connaissance des deux valeurs privées Q, et Q2 induit la connaissance de deux décompositions différentes du module n. Lorsque les nombres de base sont des petits nombres premiers, le programme assure que les profils des
2''-1 combinaisons multiplicatives des f-e-1 premiers nombres de base sont tous différents : ils prennent toutes les valeurs possibles. La notion de profil ne s'étend pas aux facteurs premiers congrus à 1 (mod 4).
Premier facteur premier p1 congru à 3 (mod 4) : candidat doit être congru à 3 (mod 4), sans autre contrainte particulière.
Deuxième facteur premier p, congru à 3 (mod 4) avec prise en compte du premier nombre de base g, : Chaque candidat doit être complémentaire de/?, par rapport à g,.
Troisième facteur premierp3 congru à 3 (mod 4) avec prise en compte du deuxième nombre de base gz : Selon le profil de g2 par rapport aux deux premiers facteurs premiers p, et pz, deux cas se présentent. Lorsque Profila) est plat, chaque candidat doit être complémentaire de p, par rapport à g2. Sinon, on a Profila) = Profila) ; chaque candidat doit alors assurer que Profil3(g1) :1- Profila). Choix du i ième facteur premier pi+1 congru à 3 (mod 4) avec prise en compte du nombre de base g,: Selon le profil de g par rapport aux i
premiers facteurs premiers p,, pz, ... p,, deux cas se présentent. Lorsque Profil,(g,) est plat, chaque candidat doit être complémentaire de p, par rapport à g,. Sinon, parmi les i-1 nombres de base g,, gz, ... g,~, et toutes leurs combinaisons multiplicatives, gl.g2, ... , grg2.... g, ,, soit en tout 2'-'-1 nombres entiers, il existe un nombre entier g et un seul tel que Profila) = Profil,(g) ; chaque candidat doit alors assurer que Profil,+1(g() Profil,,,(g). Dernier facteur premier pf-e congru à 3 (mod 4) avec prise en compte du
nombre de base gH et des autres nombres de base de gf à gm : On prend en
premiers facteurs premiers p,, pz, ... p,, deux cas se présentent. Lorsque Profil,(g,) est plat, chaque candidat doit être complémentaire de p, par rapport à g,. Sinon, parmi les i-1 nombres de base g,, gz, ... g,~, et toutes leurs combinaisons multiplicatives, gl.g2, ... , grg2.... g, ,, soit en tout 2'-'-1 nombres entiers, il existe un nombre entier g et un seul tel que Profila) = Profil,(g) ; chaque candidat doit alors assurer que Profil,+1(g() Profil,,,(g). Dernier facteur premier pf-e congru à 3 (mod 4) avec prise en compte du
nombre de base gH et des autres nombres de base de gf à gm : On prend en
<Desc/Clms Page number 26>
compte les contraintes dues au nombre de base gj-e--l' tout comme ci-dessus. En outre, lorsque m est égal ou supérieur à f-e, chaque candidat doit assurer un profil non plat aux derniers nombres de base, de gf-e à gm, par rapport aux f-e facteurs premiers. Chaque candidat doit être complémentaire de p, par
rapport à tous les g, pour lesquels Profilj+l(g) est plat. En résumé, les facteurs premiers congrus à 3 (mod 4) sont choisis les uns en fonction des autres.
Pour i allant de 0 à f-e-1, pour choisir le rt-1 ième facteur premier congru à 3 (mod 4), le candidats+1 doit passer avec succès l'examen suivant : .' Si i > m ou si i = 0, alors le candidat pl+1 n'a pas d'autre contrainte ; il est donc accepté.
.' Si 0 < i zig m, alors le candidat Pi+1 doit prendre en compte le i ième nombre de base g,. On calcule le profil Profila,) du nombre de base g, par rapport aux i premiers facteurs premiers, de PI à pt. Selon le résultat, un et un seul des deux cas suivants se présente :
Si le profil est plat, alors le candidat pl+1doit être complémentaire de
pi par rapport à gai ; sinon, il faut le rejeter. Sinon, parmi les i-1 nombres de base et toutes leurs combinaisons multiplicatives, il y a un et un seul nombre que nous nommons g tel que Profil,(g) = Profil,(g,) ; alors le candidat pl+1 doit être tel que Profil,+i(g) Profil,+i(g,) ; sinon, il faut le rejeter.
r Si i+1 = f-e et i < m, c'est-à-dire, pour choisir le dernier facteur premier congru à 3 (mod 4) lorsqu'il reste des nombres de base, de gf-e à gm, qui n'ont pas encore été pris en compte, le candidat pf-e doit les prendre en compte : parmi ces derniers nombres de base, on sélectionne ceux dont le
profil Profilai (g;) est plat ; le candidate, doit être complémentaire de p1 par rapport à chacun des nombres de base ainsi sélectionnés ; sinon, il faut le rejeter.
Le candidat est accepté lorsqu'il a passé avec succès les tests appropriés.
<Desc/Clms Page number 27>
Choix de e facteurs premiers congrus à 1 (mod 4) Pour être acceptable, chaque candidat p congru à 1 (mod 4) doit remplir les conditions suivantes par rapport à chaque nombre de base de g1 à gm.
- Evaluons le symbole de Legendre de chaque nombre de base g, par rapport à p. Si le symbole vaut-1, rejetons le candidat p pour passer à un autre candidat. Si le symbole vaut +1, poursuivons l'évaluation du candidat. Notons que si le nombre entier 2 est utilisé comme nombre de base, alors tous les candidats congrus à 5 (mod 8) doivent être écartés : le nombre de base 2 est incompatible avec un facteur congru à 5 (mod 8).
- Calculons un nombre entier s = (p-l+2)/t+\ pour établir une clé (s, p). Appliquons la clé (s, p) à chaque valeur publique G, pour obtenir un résultat r. Deux cas se présentent.
Si r vaut g, ou -g,, alors u = 0. Dans ce cas et dans ce cas seulement,
G, est sur un cycle. Remarquons un cas trivial : G, est sur un cycle dès lors que p est congru à 5 (mod 8) et que le symbole de
Legendre de g, par rapport à p vaut + 1. Rappelons que G, = 4 est impossible dans ce cas.
G, est sur un cycle. Remarquons un cas trivial : G, est sur un cycle dès lors que p est congru à 5 (mod 8) et que le symbole de
Legendre de g, par rapport à p vaut + 1. Rappelons que G, = 4 est impossible dans ce cas.
Si r ne vaut ni g, ni g,, alors u > 0 ; notons que la clé ((p-\)/2', p) transforme tout résidu non quadratique y en un élément b qui est une racine 2' ième primitive de l'unité. L'algorithme suivant calcule u à partir de r et b en utilisant deux variables entières : w initialisée par r et jj prenant des valeurs de 2 à 2t-2.
Pour i allant de 1 à t-2, répéter la séquence suivante :
- Calculer wzlG, (mod p), puis, élever le résultat à la puissance 2'-'-' (mod p) : on doit obtenir +1 ou -1. Lorsque l'on obtient -1, calculer jj = 2', puis, remplacer w par w.1/ (mod p). Lorsque l'on obtient +1, ne rien faire.
- Calculer wzlG, (mod p), puis, élever le résultat à la puissance 2'-'-' (mod p) : on doit obtenir +1 ou -1. Lorsque l'on obtient -1, calculer jj = 2', puis, remplacer w par w.1/ (mod p). Lorsque l'on obtient +1, ne rien faire.
A l'issue du calcul, la variable w a pour valeur g, ou -g,. De plus, nous savons que le rang de G dans CG(p) est divisible par 2'ljj mais pas par
<Desc/Clms Page number 28>
2'+'Ijj, c' est-à-dire quejj détermine la valeur de u par jj = 2 - . Lorsque v est plus grand que jj, c'est-à-dire, k > t-u, rejeter le candidat pour passer à un autre. Lorsque v est plus petit ou égal àjj, c'est-à-dire, k < t-u, poursuivre l'évaluation du candidat.
Lorsque les f facteurs premiers ont été produits, le module public n est le
produit des f facteurs premiers PI, p2, ... pf L'entier non signé n peut se représenter par une séquence binaire ; cette séquence respecte les contraintes imposées au début du programme pour la taille en bits et pour le nombre de bits successifs à 1 en poids forts. Le choix des facteurs premiers assure les propriétés suivantes du module n par rapport à chacun des m
nombres de base g,, g2, ... gm. D'une part, les équations (1) et (2) n'ont pas de solution en x dans l'anneau des entiers modulo n. D'autre part, l'équation (3) a des solutions en x dans l'anneau des entiers modulo n.
produit des f facteurs premiers PI, p2, ... pf L'entier non signé n peut se représenter par une séquence binaire ; cette séquence respecte les contraintes imposées au début du programme pour la taille en bits et pour le nombre de bits successifs à 1 en poids forts. Le choix des facteurs premiers assure les propriétés suivantes du module n par rapport à chacun des m
nombres de base g,, g2, ... gm. D'une part, les équations (1) et (2) n'ont pas de solution en x dans l'anneau des entiers modulo n. D'autre part, l'équation (3) a des solutions en x dans l'anneau des entiers modulo n.
En résumé, les facteurs premiers congrus à 1 (mod 4) sont choisis indépendamment les uns des autres. Alors que les facteurs congrus à 3 (mod 4) prennent en compte progressivement les nombres de base, chaque facteur premier congru à 1 (mod 4) doit prendre en compte l'ensemble des contraintes imposées par chacun des nombres de base. Chaque facteur
premier congru à 1 (mod 4), soit p, des, à pf, doit avoir passé avec succès l'examen suivant en deux étapes.
premier congru à 1 (mod 4), soit p, des, à pf, doit avoir passé avec succès l'examen suivant en deux étapes.
1) L'étape (1) s'exécute successivement pour chacun des m nombres
de base de gi à g",. On calcule le symbole de Legendre du nombre de base courant g par rapport au candidate. Un et un seul des deux cas suivants se présente : Si le symbole vaut-1, on rejette le candidat. Sinon (le symbole vaut +1), on poursuit l'examen en passant au nombre de base g suivant à l'étape (1).
de base de gi à g",. On calcule le symbole de Legendre du nombre de base courant g par rapport au candidate. Un et un seul des deux cas suivants se présente : Si le symbole vaut-1, on rejette le candidat. Sinon (le symbole vaut +1), on poursuit l'examen en passant au nombre de base g suivant à l'étape (1).
Lorsque le candidat est acceptable pour l'ensemble des m nombres de base, on passe à l'étape (2).
2) L'étape (2) s'exécute successivement pour chacune des m valeurs
<Desc/Clms Page number 29>
On calcule un entier t tel que p-1 est divisible par 2' mais pas par 2'+', puis, un entier s = (p-1+2l)I2+', de façon à établir une clé (s,p). On applique la clé (s, p) à la valeur publique courante G g2 pour obtenir un résultat r, soit : r Gs (mod p) . Selon le résultat, un et un seul des deux cas suivants se présente : a) Si r est égal à g ou à -g, alors u = 0 ; poursuit l'examen du candidat en passant à la valeur publique G suivante à l'étape (2). b) Sinon, on calcule un nombre u positif, prenant une des valeurs de 1 à t-2, en appliquant l'algorithme suivant qui met en #uvre deux variables : jj prenant des valeurs allant de 2 à 2t-2 et w initialisée par r,
ainsi qu'un nombre entier b obtenu en appliquant une clé ((p-l)/2',) à un résidu non quadratique de CG(p).
ainsi qu'un nombre entier b obtenu en appliquant une clé ((p-l)/2',) à un résidu non quadratique de CG(p).
Pour un indice ii allant de 1 à t-2, on répète l'opération suivante :
On calcule w2IG (mod p), puis, on applique une clé (2"'',/?) au résultat pour obtenir +1 ou -1 (sinon, on a une preuve que le candidat n'est pas premier). Si l'on obtient -1, alors on calcule jj
= 2", puis, c == /1 (mod p), puis, on remplace w par w.c (modp), puis, on passe à l'indice ii suivant. Si l'on obtient +1, on passe à l'indice ii suivant.
On calcule w2IG (mod p), puis, on applique une clé (2"'',/?) au résultat pour obtenir +1 ou -1 (sinon, on a une preuve que le candidat n'est pas premier). Si l'on obtient -1, alors on calcule jj
= 2", puis, c == /1 (mod p), puis, on remplace w par w.c (modp), puis, on passe à l'indice ii suivant. Si l'on obtient +1, on passe à l'indice ii suivant.
A l'issue de l'algorithme, la valeur figurant dans la variable jj définit u
par la relation jj = 2 "; la valeur figurant dans la variable w est une racine carrée de G, c'est-à-dire, g ou -g (sinon, on a une preuve que le candidat n'est pas premier). Deux cas se présentent : # Si t-u < k, alors on rejette le candidat p parce que la branche où figure G n'est pas assez longue.
par la relation jj = 2 "; la valeur figurant dans la variable w est une racine carrée de G, c'est-à-dire, g ou -g (sinon, on a une preuve que le candidat n'est pas premier). Deux cas se présentent : # Si t-u < k, alors on rejette le candidat p parce que la branche où figure G n'est pas assez longue.
M Sinon (t-u >~ k), on poursuit l'évaluation du candidat en passant à la valeur publique G suivante à l'étape (2).
Lorsque le candidat est acceptable pour l'ensemble des m valeurs publiques,
<Desc/Clms Page number 30>
il est accepté comme facteur premier congru à 1 (mod 4).
Calcul des valeurs associées Pour obtenir les composantes privées, calculons toutes les solutions à l'équation (3.a) dans les deux cas les plus simples et les plus courants avant d'aborder le cas général.
Pour chaque facteur premier p, congru à 3 (mod 4), la clé ((p+1)I4, p) donne la racine carrée quadratique de n'importe quel résidu quadratique. On en déduit une manière de calculer une solution à l'équation (3.a) :
s, ((p+1 ) I 4)k (mod (p-1 )l2) ; puis, QJ Gaz (modp) ou bien plutôt, l'inverse (modp) d'une telle solution. s = (p 1 )I2-((p+ 1 ) l 4)k (mod (p - 1)/2) puis, QJ = G? (modp) Dans CG(p), il y a alors deux et seulement deux racines carrées de l'unité : +1 et -1 ; il y a donc deux solutions en x à l'équation (3.a) : les deux
nombres (3 et p Q, ont le même carré G (modp).
s, ((p+1 ) I 4)k (mod (p-1 )l2) ; puis, QJ Gaz (modp) ou bien plutôt, l'inverse (modp) d'une telle solution. s = (p 1 )I2-((p+ 1 ) l 4)k (mod (p - 1)/2) puis, QJ = G? (modp) Dans CG(p), il y a alors deux et seulement deux racines carrées de l'unité : +1 et -1 ; il y a donc deux solutions en x à l'équation (3.a) : les deux
nombres (3 et p Q, ont le même carré G (modp).
Pour chaque facteur premier Pj congru à 5 (mod 8), la clé ((pJ+3)l8, pi) donne la racine carrée de rang impair de n'importe quel élément de rang impair. On en déduit une solution à l'équation (3.a) :
Si ((pif+3) / 8)* (mod (p 1)14) ; puis, QJ == Glsl (modp) ou bien plutôt, l'inverse (mode) d'une telle solution. sj - (p 1 )/4-((p+3) / 8)k (mod (p]-1)l4); puis, Qtj = G,S' (modp) Dans CG(p), il y a alors quatre et seulement quatre racines quatrièmes de l'unité ; il y a donc quatre solutions en* à l'équation (3.a). Remarquons que 2 ' 1)/4 (mod p) est une racine carrée de -1 parce que le symbole de Legendre de 2 par rapport à p congru à 5 (mod 8) vaut -1. Si QIJ est une solution, alors -6, est une autre solution, ainsi que le produit (mod p) de QJ par une racine carrée de -1.
Si ((pif+3) / 8)* (mod (p 1)14) ; puis, QJ == Glsl (modp) ou bien plutôt, l'inverse (mode) d'une telle solution. sj - (p 1 )/4-((p+3) / 8)k (mod (p]-1)l4); puis, Qtj = G,S' (modp) Dans CG(p), il y a alors quatre et seulement quatre racines quatrièmes de l'unité ; il y a donc quatre solutions en* à l'équation (3.a). Remarquons que 2 ' 1)/4 (mod p) est une racine carrée de -1 parce que le symbole de Legendre de 2 par rapport à p congru à 5 (mod 8) vaut -1. Si QIJ est une solution, alors -6, est une autre solution, ainsi que le produit (mod p) de QJ par une racine carrée de -1.
Pour un facteur premier pl congru à 2+1 (mod 2'), la clé ((p 1+2/2'+', pJ# donne la racine carrée de rang impair de n'importe quel élément de rang impair. On peut donc calculer une solution à l'équation (3.a).
<Desc/Clms Page number 31>
- Calculons d'abord un nombre entier s s ((p 1+2/2'+,)k (mod (pi-\)l2t) pour établir une clé (s , p).
- Lorsque la clé (pJ-l + 2)12'+\ p) transforme G, en g, ou en - g,, le rang de G est impair dans CG(p) (u = 0). Alors, la clé (sJ' p) transforme G, en un nombre z : c'est la solution de rang impair à l'équation (3. a). Selon les
valeurs de t et de k, il y a encore min(2'-I, 2'-1) autres solutions sur une ou plusieurs branches. La branche de z2 porte une autre solution : c'est
p-z. Lorsque t > 2, la branche des porte deux autres solutions : c'est le produit de z par chacune des deux racines carrées de-1, c'est-à-dire, chacune des deux racines quatrièmes primitives de l'unité. Or, si y est un
résidu non quadratique de CG(p), alors, y'-"' (mod j) est une racine carrée de-1. D'une manière générale, pour i prenant chaque valeur de 1 à min(k, t), la branche de la puissance 2' ième de z porte zt-1 solutions : ce sont les produits (mod pJ) de z par chacune des 2'-' racines 2' ièmes primitives de l'unité. Or, si y est un résidu non quadratique de CG(p),
alors, y à la puissance (p 1)/2 est une racine 2" ième primitive de l'unité que nous nommons c. Les 2l-1 racines 2' ièmes primitives de l'unité sont les puissances impaires de c : c, c' (mod p), c5 (mod pJ), ... c à la
puissance 2'-1 (mod p).
valeurs de t et de k, il y a encore min(2'-I, 2'-1) autres solutions sur une ou plusieurs branches. La branche de z2 porte une autre solution : c'est
p-z. Lorsque t > 2, la branche des porte deux autres solutions : c'est le produit de z par chacune des deux racines carrées de-1, c'est-à-dire, chacune des deux racines quatrièmes primitives de l'unité. Or, si y est un
résidu non quadratique de CG(p), alors, y'-"' (mod j) est une racine carrée de-1. D'une manière générale, pour i prenant chaque valeur de 1 à min(k, t), la branche de la puissance 2' ième de z porte zt-1 solutions : ce sont les produits (mod pJ) de z par chacune des 2'-' racines 2' ièmes primitives de l'unité. Or, si y est un résidu non quadratique de CG(p),
alors, y à la puissance (p 1)/2 est une racine 2" ième primitive de l'unité que nous nommons c. Les 2l-1 racines 2' ièmes primitives de l'unité sont les puissances impaires de c : c, c' (mod p), c5 (mod pJ), ... c à la
puissance 2'-1 (mod p).
Lorsque la clé ((p 1+2I2'+', p) transforme G, en un nombre entier r qui n'est ni g, ni -g@, le rang de G, est pair dans CG(p) (u > 0). Alors, à condition que G, soit convenablement placé sur une branche assez longue, c'est-à-dire, t#k + u, il y a 2* solutions sur la branche où figure G. Pour calculer une racine 2kième, il suffit de réitérer k fois de rang l'algorithme de calcul de racine carrée donné ci-dessus, de façon à calculer les racines carrées des résultats successifs jusqu'à une solution z. Ce calcul peut bien sûr être optimisé pour approcher directement une racine 2k ième et ajuster ensuite une seule fois l'approximation d'une racine 2k ième pour atteindre une solution z. Pour obtenir toutes les autres
<Desc/Clms Page number 32>
solutions, remarquons tout d'abord que si y est un résidu non quadratique
de CG(p), alors, y à la puissance (pf 1)/2k est une racine 2k ième primitive de l'unité que nous nommons d. Les 2' racines 2k ièmes de l'unité sont les puissances successives de d: d, cf (mod/), d* (mod p), ... d à la puissance 2k 1 (mod p), d à la puissance 2* (mod p) qui vaut 1.
de CG(p), alors, y à la puissance (pf 1)/2k est une racine 2k ième primitive de l'unité que nous nommons d. Les 2' racines 2k ièmes de l'unité sont les puissances successives de d: d, cf (mod/), d* (mod p), ... d à la puissance 2k 1 (mod p), d à la puissance 2* (mod p) qui vaut 1.
Les 2ksolutions sur la branche où figure G1 sont les produits (mod p) de z par chacune de ces racines.
En résumé, pour calculer une composante pour le facteur premier p et le nombre de base g, connaissant k, t et u, on procède comme suit :
1) On calcule un nombre entier : s p-1+2')/2'+')' (mod (p-1)12) pour établir une clé (s,p). Puis, on applique la clé (s,p) à G pour obtenir z Gs (mod p). Selon la valeur de u, on passe à l'étape (2) ou (3).
1) On calcule un nombre entier : s p-1+2')/2'+')' (mod (p-1)12) pour établir une clé (s,p). Puis, on applique la clé (s,p) à G pour obtenir z Gs (mod p). Selon la valeur de u, on passe à l'étape (2) ou (3).
2) Si u = 0, z est la solution de rang impair à l'équation (3.a). Il y a encore
min(2k-1, z-1) autres solutions de rang pair sur une ou plusieurs branches, très exactement sur min(k, t) autres branches. Pour i allant de
1 à min(k, t), la branche de la puissance 2' ième de z porte 2'-' solutions : ce sont les produits (mod p) de z par chacune des 2t-1 racines 2' ièmes primitives de l'unité. La solution générique à l'équation (3.a) est représentée parzz. On passe à l'étape (4).
min(2k-1, z-1) autres solutions de rang pair sur une ou plusieurs branches, très exactement sur min(k, t) autres branches. Pour i allant de
1 à min(k, t), la branche de la puissance 2' ième de z porte 2'-' solutions : ce sont les produits (mod p) de z par chacune des 2t-1 racines 2' ièmes primitives de l'unité. La solution générique à l'équation (3.a) est représentée parzz. On passe à l'étape (4).
3) Si u > 0, toutes les solutions à l'équation (3.a) sont de rang pair. Il y en a 2* et elles figurent toutes sur la branche où figure G ; eneffet : t-u# k.
Pour calculer une solution, l'algorithme suivant met en #uvre deux variables : jj prenant des valeurs allant de 2 à 2l-2 et w initialisée par z,
ainsi qu'un nombre entier b obtenu en appliquant une clé ((p-\)/2',p) à un résidu non quadratique de CG(p).
ainsi qu'un nombre entier b obtenu en appliquant une clé ((p-\)/2',p) à un résidu non quadratique de CG(p).
On répète k fois de rang la séquence suivante :
Pour un indice ii allant de 1 à t-2, on répète l'opération suivante :
On calcule w2/G (mod p), puis, on applique une clé (2"'-', P) au résultat pour obtenir +1ou -1 (sinon, on a une preuve que p n'est
Pour un indice ii allant de 1 à t-2, on répète l'opération suivante :
On calcule w2/G (mod p), puis, on applique une clé (2"'-', P) au résultat pour obtenir +1ou -1 (sinon, on a une preuve que p n'est
<Desc/Clms Page number 33>
pas premier). Si l'on obtient-1, alors on calculer = 2", puis, c #bjj (mod p), puis, on remplace w par w.c (mod p) , puis, on passe à l'indice ii suivant. Si l'on obtient +1, on passe à l'indice ii suivant.
A l'issue de l'algorithme, la variable w a pour valeur za. Les 2k solutions sur la branche où figure G sont les produits (mod p) de za par chacune des 2k racines 2kièmes de l'unité. La solution générique à l'équation (3.a) est représentée par zz. On passe à l'étape (4).
4) Connaissant zz, on en déduit une valeur de composante : c'est l'inverse de zz modulo p lorsque l'équation G.Qv 1 (mod n) est utilisée et zz lorsque l'équation G # Qv (mod n) est utilisée.
Remarque. Il y a diverses méthodes pour obtenir les composantes privées et les valeurs privées. Connaissant une collection de/ composantes, c'est-àdire, les f composante pour un nombre de base donné, la technique des restes chinois permet de calculer la valeur privée correspondante. On voit ainsi que, pour une valeur publique G et un module n donnés, il peut y avoir plusieurs valeurs privées Q possibles. Il y en a quatre lorsque n est le produit de deux facteurs premiers congrus à 3 (mod 4) ; ily en a huit avec trois facteurs premiers congrus à 3 (mod 4) ; il y en a seize avec deux facteurs premiers congrus à 3 (mod 4) et un congru à 5 (mod 8). Un usage judicieux de ces multiples valeurs peut compliquer les attaques par analyse de la consommation électrique d'une carte à puce utilisant GQ2.
Ainsi, au fur et à mesure que t augmente, le programme se complique pour des cas de plus en plus rares. En effet, les nombres premiers se répartissent en moyenne comme suit : t = 1 pour un sur deux, t = 2 pour un sur quatre, t = 3 pour un sur huit, et ainsi de suite. De plus, les contraintes dues aux m nombres de base rendent les candidatures de moins en moins acceptables.
Quoi qu'il en soit, les modules mixtes font définitivement partie de la technologie GQ2 ; type du module GQ2 n'affecte en rien les protocoles d'authentification dynamique et de signature numérique.
<Desc/Clms Page number 34>
La figure 3 illustre G, = g12sur un cycle avec un facteur premier/? congru à 9 (mod 16), c'est-à-dire, t = 3, u = 0 ainsi que k # 3.
On peut noter que : p-1 b # y8 8 (mod p) b8 # 1 1 (mod p) b4 # -1 (mod p)
Les racines quatrièmes primitives de l'unité sont : b2 et b6.
Les racines quatrièmes primitives de l'unité sont : b2 et b6.
Les racines huitièmes primitives de l'unité sont : b, b3, b5 et b7.
La figure 4 illustre G, = g, 2 sur une branche avec un facteur premier p congru à 65 (mod 128), c' est-à-dire, t = 6, ainsi que k = 4 et u = 2.
Voici un premier jeu de clé GQ2 avec k = 6, soit v = 64, m = 3, soit trois
nombres de base : g, =.3" g2 = 5 et g3 = 7, et/= 3, soit un module à trois facteurs premiers : deux congrus à 3 (mod 4) et un à 5 (mod 8). Notons que g = 2 est incompatible avec un facteur premier congru à 5 (mod 8).
nombres de base : g, =.3" g2 = 5 et g3 = 7, et/= 3, soit un module à trois facteurs premiers : deux congrus à 3 (mod 4) et un à 5 (mod 8). Notons que g = 2 est incompatible avec un facteur premier congru à 5 (mod 8).
<Desc/Clms Page number 35>
p1 = 03CD2F4F21EOEAD60266D5CFCEBB6954683493E2E833
(2 P) --1 {3 IP) =+1 (5 IP) =-1 (7 IP) =+1 pz = 0583B097E8D8D777BAB3874F2E76659BB614F985EC1B (2 I P) - 1 (3 I P,) ~ ~1 (5 I PO ^ +1 (7 I P,) - 1 p3 = OC363CD93D6B3FEC78EE13D7BE9D84354B8FDD6DA1FD (2 Ip,) = -1 ; (3 lp,) = +1 ; (5 Ip) = +1 ; (7 Ip,) = +1 n =Pi .p2 p3 = FFFF81 CEA 149DCF2F72EB449C5724742FE2A3630D9 02CCOOEAFEE1B957F3BDC49BE9CBD4D94467B72AF28CFBB26144 CDF4BBDBA3C97578E29CC9BBEE8FB6DDDD Q1,1 = 0279C60D216696CD6F7526E23512DAE090CFF879FDDE Q2,1 = 7C977FC38F8413A284E9CE4EDEF4AEF35BF7793B89 Q3,1 = 6FB3B9C05A03D7CADA9A3425571EF5ECC54D7A7B6F Q1,2 = 0388EC6AA1E87613D832E2B80E5AE8C1DF2E74BFF502 Q2,2 = 04792CE70284D16E9A158C688A7B3FEAF9C40056469E Q3,2= FDC4A8E53E185A4BA793E93BEE5C636DA731BDCA4E Q1,3= 07BC1AB048A2EAFDAB59BD40CCF2F657AD8A6B573BDE Q2,3 = OAE8551E116A3AC089566DFDB3AE003CF174FC4E4877 Q3,3 = 01682D490041913A4EA5B80D16B685E4A6DD88070501
QI = D7ElCAF28192CED6549FF457708D50A7481572DD5F2C335D8 C69E22521B510B64454FB7A19AEC8D06985558E764C6991B05FC2A C74D9743435AB4D7CFOFF6557 Q2 = CB1ED6B1DD649B89B9638DC33876C98AC7AF689E9D1359E4
DB 17563B9B3DC582D5271949F3DBASA70C 108F561 A274405ASCB8 82288273ADE67353A5BC316C093 Q3 = 09AA6F4930E51A70CCDFA77442B10770DD1CD77490E3398A AD9DC50249C34312915E55917A1ED4D83AA3D607E3EB5C8B197 69723 853 7FE7A0195C5E8373EB74D Voici d'autres valeurs possibles pour les composantes liées au facteur p3 lequel est congru à 5 (mod 8).
(2 P) --1 {3 IP) =+1 (5 IP) =-1 (7 IP) =+1 pz = 0583B097E8D8D777BAB3874F2E76659BB614F985EC1B (2 I P) - 1 (3 I P,) ~ ~1 (5 I PO ^ +1 (7 I P,) - 1 p3 = OC363CD93D6B3FEC78EE13D7BE9D84354B8FDD6DA1FD (2 Ip,) = -1 ; (3 lp,) = +1 ; (5 Ip) = +1 ; (7 Ip,) = +1 n =Pi .p2 p3 = FFFF81 CEA 149DCF2F72EB449C5724742FE2A3630D9 02CCOOEAFEE1B957F3BDC49BE9CBD4D94467B72AF28CFBB26144 CDF4BBDBA3C97578E29CC9BBEE8FB6DDDD Q1,1 = 0279C60D216696CD6F7526E23512DAE090CFF879FDDE Q2,1 = 7C977FC38F8413A284E9CE4EDEF4AEF35BF7793B89 Q3,1 = 6FB3B9C05A03D7CADA9A3425571EF5ECC54D7A7B6F Q1,2 = 0388EC6AA1E87613D832E2B80E5AE8C1DF2E74BFF502 Q2,2 = 04792CE70284D16E9A158C688A7B3FEAF9C40056469E Q3,2= FDC4A8E53E185A4BA793E93BEE5C636DA731BDCA4E Q1,3= 07BC1AB048A2EAFDAB59BD40CCF2F657AD8A6B573BDE Q2,3 = OAE8551E116A3AC089566DFDB3AE003CF174FC4E4877 Q3,3 = 01682D490041913A4EA5B80D16B685E4A6DD88070501
QI = D7ElCAF28192CED6549FF457708D50A7481572DD5F2C335D8 C69E22521B510B64454FB7A19AEC8D06985558E764C6991B05FC2A C74D9743435AB4D7CFOFF6557 Q2 = CB1ED6B1DD649B89B9638DC33876C98AC7AF689E9D1359E4
DB 17563B9B3DC582D5271949F3DBASA70C 108F561 A274405ASCB8 82288273ADE67353A5BC316C093 Q3 = 09AA6F4930E51A70CCDFA77442B10770DD1CD77490E3398A AD9DC50249C34312915E55917A1ED4D83AA3D607E3EB5C8B197 69723 853 7FE7A0195C5E8373EB74D Voici d'autres valeurs possibles pour les composantes liées au facteur p3 lequel est congru à 5 (mod 8).
<Desc/Clms Page number 36>
Voici une racine carrée de -1 dans CG(P3) : c = 2'p'-"" (mod p3) ~ OC3000933A8S4E4CB309213F12CADS9FA7AD77SAAC37 Q',,, = C . Q,.3 (mod/>3) = 050616671372B87DEC9AEEAC68A3948E9562F714D76C Q'2 3 = c . QZ 3 (mod p3) ~ 06F308B529C9CE88D037D01002E7C838439DACC9F8AA Q '3 3 = C . Q3 3 (mod p3) 015BE9F4B92FI950A69766069F788E45439497463D58 Ce qui donne :
Q', = 676DF1BA369FF306F4A1001602BCESA008DB82882E87C148D0 D820A711121961 C93 76CB45C3 55945C5F2A9E5AFAAD7861886284A 9B319F9E4665211252D74580 Q = CAEC4F41752A228CF9B23B16B3921E47C059B9E0C68634C2C 64D6003156F30EF1BC02ADA25581C8FDE76AA14AB5CC60A2DE1C 565560B27E8AAOE6F4BCA7FE966 Q'3 = 2ACDF516 1 FE53B68CC7C 1 8B6AFE495815B46599F44C5 1 A6A A4E858B470E8E5C7D2200EF135239AFOB7230388A6A5BDD8EE15B OD094FC2BFA890BFDA669D973 5 Voici un second jeu de clés GQ2, avec k = 9, soit v = 512, m = 2, soit deux nombres de base : g, = 2 et g2 = 3, et/= 3, soit un module à trois facteurs premiers congrus à 3 (mod 4). p1 = 038S2103E40CD4F06FA7BAA9CC8D5BCE96E3984570CB
(2 p,) ~ -1 ; (3 1 p) = -1 ; et on trouve bien, (6 1 P ) = +1. pz = 062AC9EC42AA3E688DC2BC871C8315CB939089B61DD7 (2 p2) ~ +1 ; (3 1 P2) = -1 ; et on trouve bien, (6\p2) =-1. p3 = OBCADEC219FIDFBB8AB5FE808AOFFCB53458284ED8E3 (2 p3) ~ -1 ; (3 1 p,) = + 1 ; et on trouve bien, (6 p3) ~ -1. n = PI . p2 . P3 = FFFFS401 ECD9E537F 167A80COA9111986F7A8EBA4D 6698AD68FF670DE5D9D77DFF00716DC7539F7CBBCF969E73AOC49
<Desc/Clms Page number 37>
761B276A8E6B6977A2ID51669D039F1D7 Q1,1 = 0260BC7243C22450D566B5C6EF74AA29F2B927AF68E1 Q2,1 = 0326C12FC7991ECDC9BB8D7C1C4501BE1BAE9485300E Q1,2 = 02DOB4CC95A2DD435DOE22BFBB29C59418306F6CDOOA Q2,2 = 045ECB881387582E7C556887784D2671CA118E22FCF2
Q,,3 = BOC2BIF808D24F6376E3A534EB555EF54E6AEF5982 Q2,3 = OAB9F81DF462F58A52D937E6D81F48FFA4A87A9935AB Q1 = 27F7B9FC82C19ACAE47F3FE9560C3536A7E90F8C3C51E13C 35F32FD8C6823DF753685DD63555D2146FCDB9B28DA367327DD6 EDDA092DOCF 108DOAB708405DA46
Q2 = 230DOB9595E5AD388F1F447A69918905EBFB05910582E5BA64 9C94BOB2661 E49DF3 C9B42FEF 1 F37A7909B 1 C2DD54113ACF87C6 FI 1F19874DE7DC5D1DF2A9252D Dans la présente demande, on a décrit un procédé pour produire des jeux de clés GQ2, à savoir, des modules n et des couples de valeurs publique G et privée Q dans le cas où l'exposant v est égal à 2k. Ces jeux de clés sont utilisés pour mettre en #uvre un procédé destiné à prouver l'authenticité d'une entité et/ou l'intégrité et/ou l'authenticité d'un message ainsi que cela a été décrit.
Q,,3 = BOC2BIF808D24F6376E3A534EB555EF54E6AEF5982 Q2,3 = OAB9F81DF462F58A52D937E6D81F48FFA4A87A9935AB Q1 = 27F7B9FC82C19ACAE47F3FE9560C3536A7E90F8C3C51E13C 35F32FD8C6823DF753685DD63555D2146FCDB9B28DA367327DD6 EDDA092DOCF 108DOAB708405DA46
Q2 = 230DOB9595E5AD388F1F447A69918905EBFB05910582E5BA64 9C94BOB2661 E49DF3 C9B42FEF 1 F37A7909B 1 C2DD54113ACF87C6 FI 1F19874DE7DC5D1DF2A9252D Dans la présente demande, on a décrit un procédé pour produire des jeux de clés GQ2, à savoir, des modules n et des couples de valeurs publique G et privée Q dans le cas où l'exposant v est égal à 2k. Ces jeux de clés sont utilisés pour mettre en #uvre un procédé destiné à prouver l'authenticité d'une entité et/ou l'intégrité et/ou l'authenticité d'un message ainsi que cela a été décrit.
Dans les demandes pendantes déposées le même jour que la présente demande par France Télécom, TDF et la Société Math RiZK et ayant pour inventeurs Louis Guillou et Jean-Jacques Quisquater, les traits caractéristiques des procédés, systèmes et dispositifs destinés à prouver l'authenticité d'une entité et/ou l'intégrité et/ou l'authenticité d'un message ont été revendiqués. Ces deux demandes sont incorporées ici par référence.
Claims (13)
1. Dans un procédé destiné à prouver à une entité contrôleur, - l'authenticité d'une entité et/ou - l'intégrité d'un message M associé à cette entité, au moyen de tout ou partie des paramètres suivants ou dérivés de ceux-ci: - un module public n constitué par le produit de f facteurs premiers
Pi Pi Par (f étant supérieur ou égal à 2), - un exposant public v ;
- m nombres de base g,, g2, ... gn, entiers, distincts, (m étant supérieur ou égal à 1), les nombres de base g, étant tel que : les deux équations (1) et (2) :
Xl == g mod n et x2s-giïnodn n'ont pas de solution en x dans l'anneau des entiers modulo n, et tel que : l'équation (3): xv # gi2 mod n a des solutions en x dans l'anneau des entiers modulo n ; le procédé selon l'invention permettant de produire les f facteurs premiers
Pl" pz,, ... pf. de telle sorte que les équations (1), (2) et (3) soient satisfaites ; ledit procédé comprenant l'étape de choisir en premier :
#les m nombres de base g,,, g2 , ... gm, # la taille du module n,
#la taille des f facteurs premiers pl,, pz,, ... pf.
2. Procédé selon la revendication 1 tel que, dans le cas où l'exposant public v est de la forme : v=2k où k est un paramètre de sécurité plus grand que 1, on choisit également en premier le paramètre de sécurité k.
4. Procédé selon l'une quelconque des revendications 2 ou 3, tel que le paramètre de sécurité k est un petit nombre entier, notamment inférieur à 100.
5. Procédé selon l'une quelconque des revendications 1 à 4, tel que la taille du module n est supérieure à plusieurs centaines de bits.
6. Procédé selon l'une quelconque des revendications 1 à 5, tel que les f facteurs premiers p1,, p, ... pf ont une taille voisine de la taille du module n divisé par le nombre f de facteurs.
7. Procédé selon l'une quelconque des revendications 1 à 6, tel que parmi les f facteurs premiers p,,, p2,, ... pf - on choisit un nombre e de facteurs premiers congrus à 1 modulo 4, e pouvant être nul (dans le cas où e est nul le module n sera ci-après qualifié de module basique, dans le cas où e > 0 le module n sera ci-après qualifié de module mixte), - les f-e autres facteurs premiers sont choisis congrus à 3 modulo 4, f-e étant au moins égal à 2.
8. Procédé selon la revendication 7 tel que pour produire les f-e
facteurs premiers pl,, p, ... pr congrus à 3 modulo 4, on met en oeuvre les étapes suivantes : - on choisit le premier facteur premier p1 congru à 3 modulo 4, - on choisit le deuxième facteur premier p2 tel que p2 soit complémentaire de p, par rapport au nombre de base g1, - on choisit le facteur pi+1 en procédant comme suit en distinguant deux cas : (1) Cas où i> m ' on choisit le facteur pi+1 congru à 3 modulo 4, (2) Cas où i# m
<Desc/Clms Page number 40>
' on calcule le profil (profili(g de g, par rapport aux i premiers facteurs premiers p;, ' si le Profîl,(g,) est plat, on choisit le facteur PHI tel que p;+, soit complémentaire de p, par rapport à g;, #sinon, on choisit parmi les i-1 nombres de bases gi, gz, ... g;~1 et toutes leurs combinaisons multiplicatives le nombre, ci-après dénommé g, tel que Prîzl;(g) = Profila), on choisit ensuite pi+1 tel que Proâal,+1(g;) # Profïli+1(g), (les expressions "complémentaire", "profil", "profil plat" ayant le sens défini dans la description).
9. Procédé selon la revendication 8 tel que pour choisir le dernier facteur premier pf-e on procède comme suit, en distinguant trois cas : (l)Casoùf-e-l>m ' on choisit pf-e congru à 3 modulo 4,
(2)Casoùfe-1=m ' on calcule Profilr-e-l (gm) par rapport aux f-e-1 premiers facteurs premiers, de pt à pi - - si Profilr-e-l(grn) est plat, on choisit Pi-e-l tel qu'il soit complémentaire de p1 par rapport à gm, sinon, ... on choisit parmi les m-1 nombres de bases de g, à gm-1 et toutes leurs combinaisons multiplicatives le nombre, ci-après
dénommé g, tel que Proi,(g) = Prof'l;(g;), puis ... on choisit ensuite pi tel que Profilf e(g) Prof lf e(gm), (3) Cas où f-e-1 < m ' on choisit pf-e tel que les deux conditions suivantes soient satisfaites : (3.1) Première condition,
<Desc/Clms Page number 41>
bases de gf-e à gm ceux dont le profil Pro6lf.e-1 (g) est plat, puis ' on choisit pf-etel qu'il satisfasse à la deuxième condition d'être complémentaire de p1 par rapport à chacun des nombres de bases ainsi sélectionnés.
dénommé g, tel que Prof1](g) = ProfIlr.e-1 (gr-e-I), puis ... on choisit ensuite ptel qu'il satisfasse à la première condition d'être tel que Profî'4-,(g) ;É ProfnIr-e(gm), (3. 2) Deuxième condition, ' on sélectionne parmi l'ensemble des derniers nombres de
' on calcule Proffîlf.e.1(gir.e.I) par rapport aux f-e-1 premiers facteurs premiers, de p, à pst ' ' si ProÎil f 1(gr e-1) est plat, on choisit pf tel qu'il satisfasse à la première condition d'être complémentaire de pl par rapport à gf-e-l, ## sinon, ## on choisit parmi les f-e-1 nombres de bases de g1 à gm-1 et toutes leurs combinaisons multiplicatives le nombre, ci-après
10. Procédé selon les revendications 8 ou 9 tel que pour produire les e facteurs premiers congrus à 1 modulo 4, on évalue chaque candidat facteur premier p , de pf-eà pf , en lui faisant subir les deux tests successifs suivants : (1) Premier test - on calcule le symbole de Legendre de chaque nombre de base g, de g1 à gm , par rapport au facteur premier p candidat, # si le symbole de Legendre est égal à-1, on rejette le candidat p,
3 si le symbole de Legendre est égal à +1, on poursuit l'évaluation du candidat p en passant au nombre de base suivant, puis lorsque le dernier nombre de base a été pris en compte on passe au
<Desc/Clms Page number 42>
- on calcule un entier s tel que s = (p-l+2')/2t+1 , - on applique la clé ( s, p) à chaque valeur publique G, pour obtenir un résultat r r= Gis mod p ' si r est égal à g, ou - gi, on poursuit le deuxième test en passant à la valeur publique Ci+1 suivante, ' si r est différent de g, ou - g, , on calcule un facteur u en appliquant l'algorithme suivant : ' l'algorithme consiste à répéter la séquence suivante pour un indice ii allant de 1 à t-2 : ' ' l'algorithme met en oeuvre deux variables : w initialisée par r et jj = 2" prenant des valeurs allant de 2 à 2t-2, ainsi qu'un nombre b obtenu par l'application de la clé #(p-1)/2t, p) à un résidu non quadratique de CG (p), on itère les étapes 1 et 2 suivantes, ### étape 1 : on calcule w2/G1 (mod p), ### étape 2 : on élève le résultat à la puissance 2t-u-1 #### si on obtient +1 , on poursuit le deuxième test en passant à la valeur publique Gi+1 suivante, #### si on obtient-1, on calcule jj = 2" , puis on remplace w par w.bJJ (mod p), puis on poursuit l'algorithme pour la valeur suivante de l'indice ii, ' ' à l'issue de l'algorithme, la valeur figurant dans la variable permet de calculer un nombre entier u par la relation jj= 2t-u, puis on calcule l'expression t-u, deux cas se présentent : ### si t-u < k , on rejette le candidat p
deuxième test, (2) Deuxième test, - on calcule un nombre entier t tel que p-1 est divisible par 2t mais pas par 2t+1, puis
<Desc/Clms Page number 43>
### si t-u > k, on continue l'évaluation du candidat p en poursuivant le deuxième test en passant à la valeur publique Gi+1 suivante, le candidat p est accepté comme facteur premier congru à 1 modulo 4 si à l'issue du deuxième test, pour toutes les m valeurs publiques G, , il n'a pas été rejeté.
11. Procédé faisant application du procédé, selon l'une quelconque des revendications 1 à 10, permettant de produire f facteurs premiers p1,, p2,, ... pf , ledit procédé étant destiné à prouver à une entité contrôleur, - l'authenticité d'une entité et/ou - l'intégrité d'un message M associé à cette entité, au moyen de tout ou partie des paramètres suivants ou dérivés de ceux-ci:
- m couples de valeurs privées Qi. Q2, ... Qm et publiques G,, Gaz,...
aux f facteurs premiers p,, pz, ... pi; le nombre de base g, étant tel que : les deux équations : x 2 = gimod n et x2 mod n n'ont pas de solution en x dans l'anneau des entiers modulo II et tel que :
G. Qv == 1 . mod n ou Gi == Qv mod n ; ledit exposant v étant tel que v=2k où k est un paramètre de sécurité plus grand que 1 ; ladite valeur publique G, étant le carré gi2 du nombre de base g, inférieur
Gm (m étant supérieur ou égal à 1), - le module public n constitué par le produit des f facteurs premiers Pu p2, ...pf(f) étant supérieur ou égal à 2), - l'exposant public v ; ledit module, ledit exposant et lesdites valeurs étant liés par des relations du type:
<Desc/Clms Page number 44>
Du - r, . Q 1,1 dl . Qi>2 d2.... QjItt *# mod pi ## puis en appliquant la méthode des restes chinois ; ledit procédé étant tel qu'il y a autant de réponses D que de défis d que
D=r.Qldt.Q2....QmTOdn # soit ## en effectuant des opérations du type :
appartenant à une collection d'aléas {r, , r2 ... rf} , ## puis en appliquant la méthode des restes chinois ; - le témoin reçoit un ou plusieurs défis d ; défi d comportant m entiers di ci-après appelés défis élémentaires ; le témoin calcule à partir de chaque défi d une réponse D, # soit en effectuant des opérations du type :
R == rlvmod Pi où r; est un aléa associé au nombre premier p; tel que 0 < ri < p; , chaque ri
privées Qi et/ou des f.m composantes Q,, i (Q} j = Q, mod Pj) des valeurs privées Q, et de l'exposant public v ; - le témoin calcule des engagements R dans l'anneau des entiers modulo n ; chaque engagement étant calculé : soit en effectuant des opérations du type R =- rv mod n où r est un aléa tel que 0 < r < n, ' soit ## en effectuant des opérations du type
l'équation : xv#gi2 mod n a des solutions en x dans l'anneau des entiers modulo n ledit procédé met en #uvre selon les étapes suivantes une entité appelée témoin disposant des f facteurs premiers pi et/ou des paramètres des restes chinois des facteurs premiers et/ou du module public n et/ou des m valeurs
<Desc/Clms Page number 45>
d'engagements R, chaque groupe de nombres R, d, D constituant un triplet noté {R, d, D}.
12. Procédé selon la revendication 11tel que pour mettre en oeuvre
les couples de valeurs privées QI, Qz, ... Qm et publiques G,, Gz, ... Gm , on utilise les facteurs premiers p1, p2, ... pf et/ou les paramètres des restes chinois, les nombres de bases g1, g2, ...gm et/ou les valeurs publiques G1, G2, ... Gm pour calculer : - soit les valeurs privées Q1, Q2, ...Qm en extrayant une k ième racine carrée modulo n de G, , ou en prenant l'inverse d'une k ième racine carrée modulo n de G,, - soit les f.m composantes privées Q, j des valeurs privées Q1, Q2, ...
que zz soit égale au produit (mod pj) de za par chacune des 2' racines 2' ièmes de l'unité, za désignant la valeur de la variable w à l'issue de
composantes privées Qu, des valeurs privées Q,l Q2, ... Q,: - on applique la clé ( s, pj# pour calculer z tel que z - Gis (mod pj) - on utilise les valeurs t et u ' calculées comme indiqué ci-dessus dans le cas où pj est congru à 1 modulo 4 et ' prises respectivement égales à 1 (t=1) et 0 (u=0) dans le cas où pj est congru à 3 modulo 4, ## si u est nul on considère l'ensemble des nombres zz tels que : ### zz soit égale à z ou tel que ### zz soit égale au produit (mod Pj) de z par chacune des 2ii-t racines 2"ièmes primitives de l'unité, ii allant de 1 à min(k,t) , ## si u est positif on considère l'ensemble des nombres zz tels
Qm , telles que Q Qi (dnod Pj) ,
13. Procédé selon la revendication 12 tel que pour calculer les f.m
<Desc/Clms Page number 46>
l'algorithme mis en oeuvre dans la revendication 10, - on en déduit au moins une valeur de la composante Qi,jelle est égale à zz lorsque l'équation G, = Qiv mod n est utilisée ou bien elle est égale à l'inverse de zz modulo Pj de zz lorsque l'équation G,. Qiv = 1 . mod n est utilisée.
Priority Applications (41)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9912467A FR2788912B1 (fr) | 1999-01-27 | 1999-10-01 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers |
CN00804617A CN1408154A (zh) | 1999-01-27 | 2000-01-27 | 验证实体真实性和/或消息的完整性和/或真实性的方法,系统,设备 |
PCT/FR2000/000189 WO2000046947A2 (fr) | 1999-01-27 | 2000-01-27 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers |
PCT/FR2000/000190 WO2000045550A2 (fr) | 1999-01-27 | 2000-01-27 | Procede destine a prouver l'authenticite d'une entite ou l'integrite d'un message au moyen d'un exposant public egal a une puissance de deux |
EP00901656A EP1145472A3 (fr) | 1999-01-27 | 2000-01-27 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message |
CA002360887A CA2360887C (fr) | 1999-01-27 | 2000-01-27 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers |
AU22984/00A AU769464B2 (en) | 1999-01-27 | 2000-01-27 | Method, system, device for proving the authenticity of an entity and/or the integrity and/or the authenticity of message |
EP00901657.7A EP1145473B1 (fr) | 1999-01-27 | 2000-01-27 | Procédé, système, dispositif destinés à prouver l'authenticité d'une entité et/ou l'integrité et/ou l'authenticité d'un message aux moyens de facteurs premiers particuliers |
EP00901658.5A EP1145482B1 (fr) | 1999-01-27 | 2000-01-27 | Procédé destiné à prouver l'authenticité d'une entité ou l'intégrité d'un message au moyen d'un exposant public égal à une puissance de deux |
CA002361627A CA2361627A1 (fr) | 1999-01-27 | 2000-01-27 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message |
JP2000597914A JP2003519447A (ja) | 1999-01-27 | 2000-01-27 | エンティティの真正性および/またはメッセージの完全性および/または真正性を証明するための方法、システム、および装置 |
CNB008031975A CN100377520C (zh) | 1999-01-27 | 2000-01-27 | 证实实体的真实性、消息的完整性和/或真实性的方法和系统 |
JP2000596696A JP4772965B2 (ja) | 1999-01-27 | 2000-01-27 | エンティティの真正性および/またはメッセージの完全性を証明するための方法 |
US09/889,918 US7386122B1 (en) | 1999-01-27 | 2000-01-27 | Method for proving the authenticity or integrity of a message by means of a public exponent equal to the power of two |
US09/869,966 US7266197B1 (en) | 1999-01-27 | 2000-01-27 | Method, system, device for proving the authenticity of an entity and/or the integrity and/or the authenticity of a message using specific prime factors |
PCT/FR2000/000188 WO2000046946A2 (fr) | 1999-01-27 | 2000-01-27 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message |
CNB008047189A CN1322700C (zh) | 1999-01-27 | 2000-01-27 | 利用非对称密钥证明真实性或完整性的方法和计算机系统 |
CA002360954A CA2360954A1 (fr) | 1999-01-27 | 2000-01-27 | Procede destine a prouver l'authenticite d'une entite ou l'integrite d'un message au moyen d'un exposant public egal a une puissance de deux |
AU22985/00A AU769444B2 (en) | 1999-01-27 | 2000-01-27 | Method, system, device for proving the authenticity of an entity and/or the integrity and/or the authenticity of message using specific prime factors |
KR1020017009493A KR100676461B1 (ko) | 1999-01-27 | 2000-01-27 | 특정 소인수를 이용한 엔티티 인증성, 및 메시지의 무결성및(또는) 인증성 검증방법, 시스템 및 장치 |
KR1020017009492A KR20010108143A (ko) | 1999-01-27 | 2000-01-27 | 엔티티의 인증성, 메시지의 무결성 및/또는 인증성을검증하기 위한 방법, 시스템, 및 장치 |
KR1020017009491A KR100676460B1 (ko) | 1999-01-27 | 2000-01-27 | 2의 거듭제곱과 동등한 공개 지수를 이용한 엔티티 인증성및/또는 메시지의 무결성 검증방법 |
AU22986/00A AU769446C (en) | 1999-01-27 | 2000-01-27 | Method for proving the authenticity or integrity of a message by means of a public exponent equal to the power of two |
JP2000597915A JP4772189B2 (ja) | 1999-01-27 | 2000-01-27 | エンティティの真正性および/または特殊素因子を使用するメッセ−ジの完全性および/または真正性を証明するための方法、システム、及び装置 |
PCT/FR2000/002717 WO2001026279A1 (fr) | 1999-10-01 | 2000-09-29 | Procede, systeme, dispositif a prouver l'authenticite d'une entite ou l'integrite d'un message |
KR1020027004209A KR100844546B1 (ko) | 1999-10-01 | 2000-09-29 | 엔티티의 진정성 또는 메시지의 무결성 검증방법, 시스템 및 장치 |
US10/089,662 US7080254B1 (en) | 1999-10-01 | 2000-09-29 | Method, system, device for proving authenticity of an entity or integrity of a message |
CA002388084A CA2388084A1 (fr) | 1999-10-01 | 2000-09-29 | Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message |
EP00966248A EP1216537B1 (fr) | 1999-10-01 | 2000-09-29 | Procede, systeme, dispositif a prouver l'authenticite d'un entite ou l'integrite d'un message |
EP00966246A EP1216536A1 (fr) | 1999-10-01 | 2000-09-29 | Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message |
CNB008177309A CN100380862C (zh) | 1999-10-01 | 2000-09-29 | 验证实体真实性或消息完整性的方法、系统、设备 |
AU76699/00A AU765538B2 (en) | 1999-10-01 | 2000-09-29 | Set of particular keys for proving authenticity of an entity or the integrity of a message |
KR1020027004229A KR20020060189A (ko) | 1999-10-01 | 2000-09-29 | 엔티티의 인증성 또는 메시지의 무결성을 검증하기 위한특수 키 세트 |
AT00966248T ATE518327T1 (de) | 1999-10-01 | 2000-09-29 | Verfahren, system und vorrichtung zum beweis der authentizität einer einheit oder der integrität einer nachricht |
JP2001529121A JP2003511899A (ja) | 1999-10-01 | 2000-09-29 | エンティティの真正性及びメッセージの完全性を証明するための特定のキーのセット |
CN00815285.3A CN1215678C (zh) | 1999-10-01 | 2000-09-29 | 用于证明实体真实性和消息完整性的专用密钥集 |
PCT/FR2000/002715 WO2001026278A1 (fr) | 1999-10-01 | 2000-09-29 | Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message |
JP2001529122A JP2004527139A (ja) | 1999-10-01 | 2000-09-29 | エンティティの真性性またはメッセージの完全性を証明する方法、システム、および装置。 |
CA002386748A CA2386748C (fr) | 1999-10-01 | 2000-09-29 | Procede, systeme, dispositif a prouver l'authenticite d'une entite ou l'integrite d'un message |
AU76700/00A AU766102B2 (en) | 1999-10-01 | 2000-09-29 | Method, system, device for proving authenticity of an entity or integrity of a message |
JP2007258101A JP4809310B2 (ja) | 1999-10-01 | 2007-10-01 | エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9901065A FR2788910A1 (fr) | 1999-01-27 | 1999-01-27 | Procede, systeme, dispositif pour diminuer la charge de travail pendant une session destinee a prouver l'authenticite d'une entite et/ou l'origine et l'integrite d'un message |
FR9903770A FR2788911A1 (fr) | 1999-01-27 | 1999-03-23 | Procede, systeme, dispositif pour diminuer la charge de travail pendant une session destinee a prouver l'authenticite d'une entite et/ou l'origine et l'integrite d'un message |
FR9912467A FR2788912B1 (fr) | 1999-01-27 | 1999-10-01 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2788912A1 true FR2788912A1 (fr) | 2000-07-28 |
FR2788912B1 FR2788912B1 (fr) | 2002-08-09 |
Family
ID=26234789
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9903770A Pending FR2788911A1 (fr) | 1999-01-27 | 1999-03-23 | Procede, systeme, dispositif pour diminuer la charge de travail pendant une session destinee a prouver l'authenticite d'une entite et/ou l'origine et l'integrite d'un message |
FR9912468A Expired - Fee Related FR2824974B1 (fr) | 1999-01-27 | 1999-10-01 | Procede destine a prouver l'authenticite d'une entite ou l'integrite d'un message au moyen d'un exposant public egal a une puissance de deux. |
FR9912465A Expired - Fee Related FR2788908B1 (fr) | 1999-01-27 | 1999-10-01 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message |
FR9912467A Expired - Fee Related FR2788912B1 (fr) | 1999-01-27 | 1999-10-01 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9903770A Pending FR2788911A1 (fr) | 1999-01-27 | 1999-03-23 | Procede, systeme, dispositif pour diminuer la charge de travail pendant une session destinee a prouver l'authenticite d'une entite et/ou l'origine et l'integrite d'un message |
FR9912468A Expired - Fee Related FR2824974B1 (fr) | 1999-01-27 | 1999-10-01 | Procede destine a prouver l'authenticite d'une entite ou l'integrite d'un message au moyen d'un exposant public egal a une puissance de deux. |
FR9912465A Expired - Fee Related FR2788908B1 (fr) | 1999-01-27 | 1999-10-01 | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message |
Country Status (2)
Country | Link |
---|---|
KR (3) | KR100676460B1 (fr) |
FR (4) | FR2788911A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2822002A1 (fr) * | 2001-03-12 | 2002-09-13 | France Telecom | Authentification cryptographique par modules ephemeres |
FR2865590A1 (fr) * | 2004-01-23 | 2005-07-29 | France Telecom | Procede pour etablir, a partir d'un jeu de grands nombres premiers, un jeu de cles destine a prouver l'authenticite d'une entite ou l'integrite d'un message |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0311470A1 (fr) * | 1987-09-07 | 1989-04-12 | France Telecom | Procédés et systèmes d'authentification d'accréditations ou de messages à apport nul de connaissance et de signature de messages |
EP0381523A2 (fr) * | 1989-02-02 | 1990-08-08 | Kabushiki Kaisha Toshiba | Procédé de calcul assisté par serveur et unité distribuée de traitement d'information |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1989011706A1 (fr) * | 1988-05-19 | 1989-11-30 | Ncr Corporation | Procede et dispositif d'authentification |
FR2733379B1 (fr) * | 1995-04-20 | 1997-06-20 | Gemplus Card Int | Procede de generation de signatures electroniques, notamment pour cartes a puces |
DE69704684T2 (de) * | 1996-02-23 | 2004-07-15 | Fuji Xerox Co., Ltd. | Vorrichtung und Verfahren zur Authentifizierung von Zugangsrechten eines Benutzers zu Betriebsmitteln nach dem Challenge-Response-Prinzip |
-
1999
- 1999-03-23 FR FR9903770A patent/FR2788911A1/fr active Pending
- 1999-10-01 FR FR9912468A patent/FR2824974B1/fr not_active Expired - Fee Related
- 1999-10-01 FR FR9912465A patent/FR2788908B1/fr not_active Expired - Fee Related
- 1999-10-01 FR FR9912467A patent/FR2788912B1/fr not_active Expired - Fee Related
-
2000
- 2000-01-27 KR KR1020017009491A patent/KR100676460B1/ko active IP Right Grant
- 2000-01-27 KR KR1020017009492A patent/KR20010108143A/ko not_active Application Discontinuation
- 2000-01-27 KR KR1020017009493A patent/KR100676461B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0311470A1 (fr) * | 1987-09-07 | 1989-04-12 | France Telecom | Procédés et systèmes d'authentification d'accréditations ou de messages à apport nul de connaissance et de signature de messages |
EP0381523A2 (fr) * | 1989-02-02 | 1990-08-08 | Kabushiki Kaisha Toshiba | Procédé de calcul assisté par serveur et unité distribuée de traitement d'information |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2822002A1 (fr) * | 2001-03-12 | 2002-09-13 | France Telecom | Authentification cryptographique par modules ephemeres |
WO2002073876A3 (fr) * | 2001-03-12 | 2002-11-21 | France Telecom | Authentification cryptographique par modules ephemeres |
AU2002246210B2 (en) * | 2001-03-12 | 2006-04-27 | France Telecom | Cryptographic authentication with ephemeral modules |
US7415614B2 (en) | 2001-03-12 | 2008-08-19 | France Telecom | Cryptographic authentication with ephemeral modules |
US7822986B2 (en) | 2001-03-12 | 2010-10-26 | Louis Guillou | Cryptographic authentication with ephemeral modules |
FR2865590A1 (fr) * | 2004-01-23 | 2005-07-29 | France Telecom | Procede pour etablir, a partir d'un jeu de grands nombres premiers, un jeu de cles destine a prouver l'authenticite d'une entite ou l'integrite d'un message |
US7680271B2 (en) | 2004-01-23 | 2010-03-16 | Louis Guillou | Zero-knowledge proof cryptography methods and devices |
Also Published As
Publication number | Publication date |
---|---|
FR2788911A1 (fr) | 2000-07-28 |
FR2788912B1 (fr) | 2002-08-09 |
FR2788908B1 (fr) | 2003-09-26 |
KR20010108144A (ko) | 2001-12-07 |
FR2824974B1 (fr) | 2004-01-16 |
FR2788908A1 (fr) | 2000-07-28 |
KR20010108143A (ko) | 2001-12-07 |
KR100676460B1 (ko) | 2007-01-31 |
FR2824974A1 (fr) | 2002-11-22 |
KR100676461B1 (ko) | 2007-01-31 |
KR20010108142A (ko) | 2001-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1738517B1 (fr) | Procedes et dispositifs cryptographiques sans transfert de connaissance | |
FR2822002A1 (fr) | Authentification cryptographique par modules ephemeres | |
FR2620248A1 (fr) | Procedes d'authentification d'accreditations ou de messages a apport nul de connaissance et de signature de messages | |
EP0346180B1 (fr) | Dispositif de communication sécurisée de données | |
CA2360887C (fr) | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers | |
WO2006030107A1 (fr) | Procede de traitement de donnees, entite electronique et carte a microcircuit, notamment pour dechiffrer ou signer un message de façon securisee | |
CA2360953C (fr) | Procede d'authentification ou de signature a nombre de calculs reduit | |
WO2001026278A1 (fr) | Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message | |
EP0963638B1 (fr) | Procede de signature numerique | |
FR2747257A1 (fr) | Procede d'identification et/ou de signature | |
FR2788912A1 (fr) | Procede, systeme, dispositif destines a prouver l'authenticite d'une entite et/ou l'integrite et/ou l'authenticite d'un message aux moyens de facteurs premiers particuliers | |
EP1829279B1 (fr) | Procédé et dispositif de génération de clé pour un algorithme cryptographique | |
EP3840282A1 (fr) | Procédé de traitement cryptographique, dispositif électronique et programme d'ordinateur associés | |
EP0743775B1 (fr) | Procédé de signature numérique à connaissance nulle, permettant d'élaborer une signature résistant aux collisions | |
EP1989820B1 (fr) | Dispositif et procédé de hachage cryptographique | |
WO2001010078A1 (fr) | Schemas de signature a base de logarithme discret avec reconstitution partielle ou totale du message | |
KR100844546B1 (ko) | 엔티티의 진정성 또는 메시지의 무결성 검증방법, 시스템 및 장치 | |
EP3929726A1 (fr) | Procede de traitement cryptographique,dispositif electronique et programme d'ordinateur associes | |
FR2788910A1 (fr) | Procede, systeme, dispositif pour diminuer la charge de travail pendant une session destinee a prouver l'authenticite d'une entite et/ou l'origine et l'integrite d'un message | |
EP1496645A1 (fr) | Méthode d'encryption RSA d'une donnée de valeur imprévisible | |
FR2850502A1 (fr) | Procedes d'authentification numerique et de signature numerique a faible cout calculatoire et systeme signataire |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20090630 |