EP1216536A1 - Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message - Google Patents

Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message

Info

Publication number
EP1216536A1
EP1216536A1 EP00966246A EP00966246A EP1216536A1 EP 1216536 A1 EP1216536 A1 EP 1216536A1 EP 00966246 A EP00966246 A EP 00966246A EP 00966246 A EP00966246 A EP 00966246A EP 1216536 A1 EP1216536 A1 EP 1216536A1
Authority
EP
European Patent Office
Prior art keywords
mod
numbers
key
private
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP00966246A
Other languages
German (de)
English (en)
Inventor
Louis Guillou
Jean-Jacques Quisquater
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Math RiZK
Telediffusion de France ets Public de Diffusion
Orange SA
Original Assignee
Math RiZK
Telediffusion de France ets Public de Diffusion
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from FR9912467A external-priority patent/FR2788912B1/fr
Application filed by Math RiZK, Telediffusion de France ets Public de Diffusion, France Telecom SA filed Critical Math RiZK
Publication of EP1216536A1 publication Critical patent/EP1216536A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/302Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic 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

Definitions

  • the present invention relates to the technical field of methods, systems and devices intended to prove the authenticity of an entity and / or the integrity and / or the authenticity of a message.
  • Patent EP 0 311 470 B 1 the inventors of which are Louis Guillou and Jean-Jacques Quisquater, describes such a process. We will refer to it below by designating it by the terms: "GQ patent” or "GQ process”. Subsequently, we will sometimes designate by "GQ2", “invention GQ2” or “GQ2 technology” new developments in GQ technology which are the subject of pending requests filed on the same day as this request by France Telecom, TDF and the Company Mathrizk and having as inventor Louis Guillou and Jean-Jacques Quisquater. The characteristic features of these pending applications are recalled whenever necessary in the description which follows.
  • an entity called "trusted authority” assigns an identity to each entity called “witness” and calculates the RSA signature; during a personalization process, the trusted authority gives identity and signature to the witness. Thereafter, the witness proclaims: "Here is my identity; I know the RSA signature.” The witness proves without revealing it that he knows the RSA signature of his identity. Thanks to the public RSA verification key distributed by the trusted authority, an entity called “controller” verifies without knowing that the RSA signature corresponds to the proclaimed identity. The mechanisms using the GQ process take place "without knowledge transfer”. According to the GQ method, the witness does not know the RSA private key with which the trusted authority signs a large number of identities.
  • the GQ technology previously described uses RSA technology.
  • the GQ2 technology avoids the drawbacks presented by the RSA technology.
  • the GQ method implements modulo calculations of numbers of 512 bits or more. These calculations relate to numbers having substantially the same size raised to powers of the order of 2 16 + 1.
  • the existing microelectronic infrastructures in particular in the field of bank cards, make use of monolithic self-programmable microprocessors devoid of arithmetic coprocessors .
  • the workload linked to the multiple arithmetic operations involved in processes such as the GQ process leads to calculation times which in some cases prove to be penalizing for consumers using bank cards to pay for their purchases.
  • GQ2 technology implements prime factors with specific properties. Different techniques exist to produce these prime factors.
  • the subject of the present invention is a method for systematically producing such prime factors. It also relates to the application which can be made of these more particularly in the implementation of the GQ2 technology. It is emphasized now that these particular prime factors and the process for obtaining them are capable of application outside the field of GQ2 technology.
  • the invention applies to a method intended to prove to a controlling entity
  • Such a method implements: - a public module n constituted by the product of f prime factors Pi, p 2 , ... p f (f being greater than or equal to 2) or implementing the f prime factors,
  • G m (m being greater than or equal to 1) or parameters derived therefrom.
  • Said module and said private and public values are linked by relationships of the type:
  • the method according to the invention comprises the step of producing the f prime factors p lj5 p 2 , ... p f and / or the m base numbers gj,, g 2 , ... g m so that the following conditions are satisfied.
  • each of the equations: x v ⁇ & 2 mod n (1) has solutions at x in the ring of integers modulo n.
  • the method according to the invention for producing the f prime factors p x , p ⁇ , ... p f , and / or the m base numbers gj, g 2 , ... g m comprises the step of choosing first :
  • the m base numbers g l5 g 2 , ... g m are chosen at least in part from the first whole numbers.
  • the security parameter k is a small integer, in particular less than 100.
  • the size of the module n is greater than several hundred bits.
  • the f prime factors p x , p 2 , ... p f have a size close to the size of the module n divided by the number f of factors.
  • step 1 we apply the key p) to w / g (modp),
  • step 2 we replace c by c 2 (modp).
  • the value of h sought is that obtained the last time that the application of the key ⁇ l p), in accordance with step 1, produced a result equal to -1.
  • the 2 mm (k ' t) possible values of Q jj are equal to the product of w by any of the roots 2 m (kt) -ths of the unit in CG (P j ).
  • the 2 k possible values of Q; j belong to the set of products of w by the roots 2 k + hl -th primitives of the unit in CG (p j ).
  • the invention also relates to a method applying the method for producing the prime factors p j , p 2 , ... p f or the m base numbers g 1? , g ... g m . Said method is intended to prove to a controlling entity
  • Said method implements according to the steps below an entity called a witness.
  • Said witness entity has the prime factors p ; and / or parameters of the Chinese remains of the prime factors and / or of the public module n and / or of the m private values Q; and / or fm private components Q i; j private values Q ; and the public exhibitor.
  • the witness calculates commitments R in the ring of integers modulo n.
  • the witness receives one or more challenges d.
  • Each challenge d comprising m integers d; hereinafter called basic challenges.
  • the witness calculates from each challenge of a response D,
  • Said method is such that there are as many responses D as there are challenges d and commitments R.
  • Each group of numbers R, d, D constitutes a triplet denoted ⁇ R, d, D ⁇ .
  • GQ schemes are dynamic authentication of entities and messages as well as the digital signature of messages. These are "without knowledge transfer” schemes.
  • An entity proves it knows one or more private numbers.
  • Another controlling entity it knows the corresponding public number (s).
  • the proving entity wants to convince the controlling entity without revealing the private number (s), so that it can be used as many times as necessary.
  • Each GQ scheme is based on a public module composed of large secret prime numbers.
  • a public exponent v and a public module n together form a verification key ⁇ v, n) meaning "raise to the power v modulo n" and implemented by means of one or more generic equations, all of the same type, direct : G ⁇ Q (mod n) or inverse: GxQ v ⁇ 1 (mod n).
  • the type has an effect on the course of the calculations within the entity which controls, not within the entity which proves; in fact, security scans confuse the two types.
  • Each generic equation links a public number G and a private number Q together forming a pair of numbers ⁇ G, Q ⁇ .
  • each GQ scheme implements one or more pairs of numbers ⁇ G, Q ⁇ for the same key (v, n).
  • a classic version of GQ schemes here called GO uses an RSA digital signature scheme.
  • the verification key (v, n) is then an RSA public key where the odd exponent v is preferably a prime number.
  • Each GQ1 scheme generally uses a single pair of numbers ⁇ G, Q ⁇ : the public number G is deduced from identification data according to a format mechanism which is an integral part of the RSA digital signature scheme.
  • the private number Q or its inverse modulo n is an RSA signature of the identification data.
  • the proving entity demonstrates the knowledge of an RSA signature of its own identification data and this proof does not reveal the signature which therefore remains secret to be used as many times as needed.
  • GQl schemes generally implement two levels of keys: the private RSA signature key is reserved for an authority accrediting entities distinguished from one another by identification data. It is said that such a scheme is "identity-based".
  • a smart card issuer uses its RSA private key when issuing each card to calculate a private number Q which it registers as a diversified private key in the card; or, a client on a computer network uses its RSA private key at each session entry to calculate a private number Q which will be the ephemeral private key of the client during the session.
  • the proving entities, smart cards or session clients, know an RSA signature of their identification data; they do not know the RSA private key which, in the hierarchy of keys, is at the level immediately above.
  • the objective of GQ2 is indeed to reduce the workloads, not only of the entity which proves but also of the entity which controls.
  • the proving entity demonstrates knowledge of a decomposition of its own module and this proof does not reveal the decomposition which therefore remains secret to be used as many times as necessary.
  • the security of the GQ2 protocol is equivalent to the factorization of the module.
  • Each proving entity has its own module n.
  • GQ2 implements a parameter k, a small number greater than 1 fixing a public exponent v - 2 and one or more pairs of numbers ⁇ G ,, Q) at ⁇ G m , Q.
  • Each public number G is the square of a small number g ⁇ greater than 1 and called "base number". All the proving entities can use the same public number (s) G, at G m .
  • the factorization of the module n and the private number (s) Q ⁇ to Q m are then at the same level in the hierarchy of keys.
  • Each set of elementary GQ2 keys is defined by two necessary and sufficient conditions.
  • the module n must include at least two prime factors congruent to 3 (mod 4) with respect to which the Legendre symbol of g differs. Consequently, any module composed of prime factors of which none or only one is congruent to 3 (mod 4) does not allow not to establish a set of elementary GQ2 keys, which favors the prime factors congruent to 3 (mod 4). However, by taking large prime numbers at random, it turns out that they are approximately half congruent to 3 (mod 4) and half to 1 (mod 4). As a result, many RSA modules in use do not allow the establishment of elementary GQ2 key sets.
  • k- ⁇ successive squares modulo n transform it into a number q ⁇ which is a square root of G, in the ring of integers modulo not.
  • the number q t is one of the two numbers ⁇ g or ng, or different from the two numbers g and ng t:, we say that it is trivial or not.
  • n which divides q ⁇ -g ' divides neither qg t nor q + g ,. Any non trivial number q t therefore reveals a decomposition of the module n.
  • n pgcd (n, q r g) xpgcd (n, q + g)
  • the second principle broadens the first condition of elementary GQ2.
  • the elementary GQ2 key sets are part of the generalized GQ2 key sets which allow the use of any module, that is to say any composition of large prime numbers congruent regardless of 3 or 1 (mod 4) at least two of which are distinct.
  • many sets of generalized GQ2 keys do not are not elementary GQ2 key sets. Each set of generalized GQ2 keys is in one of the following two cases.
  • the present invention relates to complementary sets of GQ2 keys, by definition, these sets of generalized GQ2 keys which are not elementary. In addition to the two preceding principles, such a game must satisfy a third principle.
  • the root ⁇ * + + 1 l is trivial and at least one root ⁇ , 1 to ⁇ i is non trivial.
  • the root ⁇ + is non trivial and appears among the 2xz roots ⁇ ⁇ , to ⁇ ⁇ .
  • 2 / _1 -l numbers including the f- ⁇ independent numbers and the corresponding 2 -1 - / numbers.
  • X b ⁇ X ( ⁇ ao ⁇ b).
  • the number ⁇ ⁇ ⁇ b (mod ⁇ ) ⁇ "1 (mod a) is the parameter of the Chinese remains.
  • X ⁇ X b (mod a) y X — x; if y is negative, replace y by y + az ⁇ axy (mod a)
  • X zxb + X b
  • the first parameter is ⁇ (p 2 (mod / ?,)) '(mod / ?,).
  • the second parameter is ⁇ ⁇ (p xp 2 (mo ⁇ p) '1 (mod / ⁇ ,).
  • the z ' -th parameter is ⁇ ⁇ (p x x ... p ⁇ X (mod p)) ⁇ l (modp). - And so on.
  • Rank of numbers in CG (p) - Let an odd prime number p and a number a be smaller than?, That is to say 0 ⁇ a ⁇ p.
  • Galois CG (p) has a number of rank 1: it's 1, a number of rank
  • ⁇ (n) is the number of numbers smaller than n and prime with n.
  • CG (p) there are ⁇ (/? - l) generators.
  • the rank clearly shows the basics of RSA.
  • the module n is the product of / prime factors>, hp f with / ⁇ 2. For each prime factor / ⁇ of?, Kp p the public exponent e must be prime with /? - l.
  • the key (e, p) respects the rank of the elements of CG (p): it permutes the elements of CG (p); there is a number d, usually the smallest possible, such as? y -l divides exd-l.
  • the ⁇ dp inverse permutation of the GC elements (/;).
  • the null element is fixed. It is 0.
  • the rank is not defined for the null element to which no other element is attached; the null element is isolated.
  • the unit element is fixed. It is 1, the only element of rank 1. All the roots of the unit in CG (p) are found in the branch connected with
  • y be a non-quadratic residue of CG (p), any; the key ⁇ (p - ⁇ ) l2 ', p) transforms y into a root 2' ⁇ '-th primitive of -1 denoted by b; indeed, we have ⁇ ⁇ -l (mod p). Consequently, in CG (p), the powers of b for the exponents of 1 to 2 M are the 2 ' " ' roots of the unit other than 1: they make up the branch connected with 1.
  • each element of even rank is placed in a branch; each branch has a number of rank divisible by two but not by four, then, if t ⁇ 2, two numbers of rank divisible by four but not by eight, then, if t ⁇ 3, four numbers of rank divisible by eight but not by sixteen, then, if t ⁇ 4, eight numbers of rank divisible by sixteen but not by 32, and so on.
  • branches are similar to the branch attached to 1; the 2 leaves of each branch are non-quadratic residues; each branch has 2-1 elements and is attached to an element of odd rank; there are (pl) / 2 l branches which all have the same length t.
  • the square of any element of odd rank other than the unit element is another element before the same rank.
  • the key (2, p) permutes the set of (p - ⁇ ) l2 'elements of odd rank.
  • the permutation is broken down into permutation cycles. The number of cycles depends on the factorization of (pl) / 2 '. For each divisor p 'of (p - ⁇ ) / 2', there is a cycle comprising the ⁇ (/? ') Elements of rank /?'.
  • FIGS. 1A to ID each illustrate a fragment of a graph for /? congruent respectively to 3 (mod 4), 5 (mod 8), 9 (mod 16) and 17 (mod 32).
  • the leaves on the branches are represented by white circles; these are non-quadratic residues.
  • the nodes in the branches are represented by gray circles; they are quadratic elements of even rank.
  • the nodes in the cycles are represented by black circles; they are quadratic elements of odd rank.
  • Square roots in CG (p) Knowing that a is a quadratic residue of CG (p), let's see how to calculate a solution to the equation x 2 ⁇ a (mod p), that is to say "take a root square ”in CG (p).
  • the key (s, p) transforms any quadratic residue a into a first approximation of solution which we name r. Since a is a quadratic residue, the key (2 ⁇ p) certainly transforms r i a into 1.
  • c ' is to say u> 0 and u + k ⁇ t, there are 2 k solutions, all of even rank and in the branch.
  • Figure 2B illustrates this case.
  • a number ⁇ which is +1 or -1 depending on whether Q is in the part of the graph attached to g, or to -g.
  • Each set of / components ⁇ , ... ⁇ ; / ⁇ is a square root of unity in CG (p. This root is trivial or not depending on whether the / components are equal or not; we then say that the set of / components is constant or variable, which translates whether the number q t is trivial or not.
  • the demand / prime factor generator to determine m base numbers.
  • the first prime numbers: 2, 3, 5, 7, ... are examined to assess their compatibility with each of the / major prime factors / ?, at p f
  • g 2 is not compatible with p ⁇ 5 (mod 8)
  • 2 can enter into the composition of a basic number.
  • a basic number can thus be obtained by dialing numbers which individually are not suitable.
  • the generator requests m basic numbers and characteristics of the module such as a size in bits (for example, 512, 768, 1024, 1536, 2048) and a number of successive bits to 1 in most significant (for example , 1, 8, 16, 24, 32) to determine 2 prime factors.
  • m basic numbers and characteristics of the module such as a size in bits (for example, 512, 768, 1024, 1536, 2048) and a number of successive bits to 1 in most significant (for example , 1, 8, 16, 24, 32) to determine 2 prime factors.
  • g, g 2 ... g m the basic numbers generally appear among the first prime numbers: 2, 3, 5, 7, 1 1, ... or else they are combinations of the first prime numbers.
  • n will be the product of / prime factors of neighboring sizes, namely the size assigned to the module divided by /
  • Second principle The following three procedures correspond to different implementations of the second principle.
  • the second principle can be reinforced to the point of requiring that each number ⁇ /, at q m be non-trivial.
  • the role of basic numbers is then balanced; whether or not to balance the second principle has an effect on certain aspects of demonstrating the security of the scheme.
  • x / numbers ⁇ j when there are /> 2 distinct prime factors, among the m numbers ⁇ q x ... q, we can require that there be at least one subset def-l independent numbers.
  • the three procedures use x / numbers ⁇ j; defined as follows.
  • a first procedure checks that at least one set ⁇ , ... ⁇ ; ⁇ is variable or zero, that is to say that at least one number q to q m is non trivial or can be chosen non trivial.
  • a second procedure checks that each set ⁇ ; l ... ⁇ is variable or zero, that is to say that each number q x to q m is non trivial or can be chosen non trivial. - For i ranging from 1 to m, for j ranging from 1 to /
  • a third procedure checks that for each pair of prime factors p jX etp ft with 1 ⁇ j ⁇ j 2 ⁇ / there is at least one set ⁇ , ... ⁇ ⁇ where ⁇ yl is zero or different from ⁇ / ; 2 . It clearly fails when m is smaller than fl. When it succeeds, among the m numbers q x to q m , there is at least one set of fl numbers independent with respect to the prime factors. - For / ' , going from 1 h fl and for / going from / + l to / for i going from 1 to m,
  • the procedure uses the two Legendre symbols (g
  • p -1, go to the next value of /.
  • ⁇ (n) ppcm ((?, - l) / 4, (p 2 -l) I ⁇ ).
  • ⁇ (n) 33331A13DA4304A5CFD617BD6F834311642121543334F40C3D5
  • the key ( ⁇ , n) transforms g, ⁇ 11 into a private number Q 2 which reveals a decomposition. Indeed, 11 is not in the same position in the two bodies.
  • the private key can still be represented by the two first factors, the parameter of Chinese remains and eight private components.
  • ⁇ (p 2 (mod / ?,)) "1 (modp,) ADE4E77B703F5FDEAC5B9AAE825D649 E06692D15FBF0DF737B115DC4D012FD1D
  • the various possible representations of the private key GQ2 prove to be equivalent: they all come down to the knowledge of the factorization of the module n which is the real private key GQ2.
  • the representation of the private key GQ2 has an effect on the progress of the calculations within the entity which proves, not within the entity which controls.
  • the classic representation of GO private keys consists in storing m private numbers Q t and the public verification key
  • the optimal representation in terms of workloads consists in storing the parameter k, the / prime factors p, mxf private components Q tj and fl parameters of the Chinese remainders.
  • the optimal representation in terms of size of private key consists in storing the parameter k, the m base numbers g and the / prime factors p, then, to start each use by establishing either m private numbers Q ⁇ and the module n to reduce to the first representation, or else mxf private components Q tj and fl parameters of the Chinese remainders to reduce to the second.
  • GQ2 diagrams do not allow a simple distinction to be made between two entities using the same module.
  • each entity that proves has its own GQ2 module.
  • GQ2 modules with four prime factors, two of which are known to one entity and the other two to another.
  • Dynamic authentication The dynamic authentication mechanism is intended to prove to an entity called a controller the authenticity another entity called demonstrator as well as the authenticity of a possible associated message M, so that the controller makes sure that it is indeed the demonstrator and possibly that he and the demonstrator speak well of the same message M
  • the associated message M is optional, which means that it can be empty.
  • the dynamic authentication mechanism is a sequence of four acts: an act of commitment, an act of challenge, an act of response and an act of control.
  • the demonstrator plays the acts of engagement and response.
  • the controller plays the acts of challenge and control.
  • a witness can be isolated, so as to isolate the most sensitive parameters and functions of the demonstrator, that is to say, the production of commitments and responses.
  • the witness has the parameter k and the private key GQ2, that is to say, the factorization of the module n according to one of the three representations mentioned above: “the / prime factors and the m base numbers , • the mxf private components, the / prime factors and / -l parameters of the Chinese remainders, • the m private numbers and the module n.
  • the witness may correspond to a particular embodiment, for example, • a smart card connected to a PC forming the demonstrator together, or, • programs particularly protected within a PC, or, • programs particularly protected at within a smart card.
  • the witness thus isolated is similar to the witness defined below within the signatory.
  • the witness produces one or more commitments R, then as many responses D to as many challenges d.
  • Each set (R, d, D) constitutes a triplet GQ2.
  • the demonstrator also has, if necessary, a hash function and a message M.
  • the controller has the module n, for example, from a directory of public keys or again from a public key certificate; the case if necessary, it also has the same hash function and a message M '.
  • the public parameters GQ2, namely the numbers k, and g, to g m can be given to the controller by the demonstrator.
  • the controller is able to reconstruct an engagement R 'from any challenge d and any response D.
  • the parameters k Qt m inform the controller.
  • the m base numbers of g, at g m are the first m prime numbers.
  • Each challenge d must have m elementary challenges noted from d to d m : one per basic number.
  • Each elementary challenge from d to d m is a number from 0 to 2 A ⁇ '-1 (the numbers from v / 2 to v-1 are not used).
  • each challenge is coded by m times kl bits
  • each challenge has 16 bits transmitted over four nibbles.
  • the number (kl) xm determines the security provided by each GQ2 triplet: an impostor who, by definition, does not know the factorization of the module has exactly a chance of success on 2 ⁇ k ⁇ l) Xm .
  • (kl) xm is 15 to 20, a triplet is sufficient to reasonably ensure dynamic authentication.
  • triples can be produced in parallel; it can also be produced in sequence, that is to say, repeating the execution of the mechanism.
  • the act of engagement includes the following operations.
  • the witness does not use the Chinese remains, he has the parameter k, the m private numbers from Q to Q m and the module n; it randomly and privately draws one or more hazards r (0 ⁇ r ⁇ n); then, by k successive square elevations (mod n), it transforms each hazard r into an engagement R.
  • each collection includes a hazard r by prime factor / ?, (0 ⁇ r ⁇ p); then, by k successive square elevations (modp), it transforms each hazard r into an engagement component R.
  • R 2 01168CEC0F661EAA15157C2C287C6A5B34EE28F8EB4D8D34085
  • the demonstrator transmits to the controller all or part of each engagement R, or else, a hash code H obtained by ha each engagement R and a message M.
  • the demonstrator transmits each response D to the controller.
  • control consists in controlling that each triplet ⁇ R, d, D ⁇ checks an equation of the following type for a non-zero value.
  • the controller then calculates a hash code H 'by hashing each restored engagement R' and a message M '. Dynamic authentication is successful when the controller thus finds what he received at the end of the act of engagement, that is to say, all or part of each engagement R, or else, the code hash H.
  • a sequence of elementary operations transforms the response D into an engagement R '.
  • the sequence includes k squares (mod ri) separated by kl divisions or multiplications (mod ⁇ ) by basic numbers.
  • mod ri mod ri
  • kl divisions or multiplications mod ⁇
  • basic numbers For the i th division or multiplication, which takes place between the i th square and the t ' + l th square, the i th bit of the elementary challenge d x indicates whether to use g ,, the ith bit of the elementary challenge d 2 indicates whether to use g 2 , ... up to the i th bit of the elementary challenge d m which indicates whether to use g m .
  • the digital signature mechanism allows an entity called signatory to produce signed messages and an entity called a controller to verify signed messages.
  • Message M is any binary sequence: it can be empty.
  • the message M is signed by adding to it a signature appendix which includes one or more commitments and / or challenges, as well as the corresponding responses.
  • the controller has module n, for example, from a public key directory or from a public key certificate; it also has the same hash function.
  • the public parameters GQ2, namely the numbers k, m and g, to g m can be given to the controller by the demonstrator, for example, by putting them in the signature appendix.
  • each elementary challenge from d to d m , is a number from 0 to 2 * ⁇ '-l (the numbers v / 2 to v-1 are not used).
  • each challenge d must have m elementary challenges noted from d x to d m , as many as basic numbers.
  • the m basic numbers from g, to g m , are the first m prime numbers.
  • the signing operation is a sequence of three acts: an act of commitment, an act of challenge and an act of response.
  • Each act produces one or more GQ2 triplets each comprising: an engagement R ( ⁇ 0), a challenge d composed of m elementary challenges denoted by d x , d 2 , ... d m and a response! ) ( ⁇ 0).
  • the signatory has a hash function, the parameter k and the private key GQ2, that is to say, the factorization of the module n according to one of the three representations mentioned above.
  • the witness has the parameter k and the private key GQ2, that is to say, the factorization of the module n according to one of the three representations mentioned above.
  • the witness thus isolated is similar to the witness defined within the demonstrator.
  • the act of engagement includes the following operations.
  • each collection has a random r by prime factor / ?, (0 ⁇ r ⁇ / ?,); then, by k successive squared elevations (modp), it transforms each hazard r into an engagement component R
  • the response act includes the following operations. When the witness has the m private numbers Q x to Q m and the module n, he calculates one or more responses D using each hazard r of the act of engagement and the private numbers according to the elementary challenges.
  • each collection of response components includes one component per prime factor.
  • the signatory signs the message M by adding to it a signature appendix comprising: either, each triplet GQ2, that is to say, each engagement R, each challenge d and each response D, - or, each engagement R and each corresponding response D, or each challenge d and each corresponding response D.
  • the progress of the verification operation depends on the content of the signature appendix. We distinguish the three cases. If the appendix includes one or more triplets, the operation of control comprises two independent processes of which the chronology is indifferent. The controller accepts the signed message if and only if the following two conditions are met.
  • each triplet must be consistent (an appropriate relation of the following type must be verified) and admissible (the comparison must be made on a non-zero value).
  • the triplet (s) must be linked to the message M.
  • d d x d 2 ... d m , identical to those extracted from the result Hash (, R)
  • the control operation begins with the reconstruction of one or more challenges d 'by hashing all the commitments R and the message M.
  • d' dd ...
  • the controller must hash all the commitments R 'and the message M so as to reconstruct each challenge d.
  • d d x d 2 ... d m , identical to those extracted from the result Hash (, R ')
  • the controller accepts the signed message if and only if each reconstructed challenge is identical to the corresponding challenge appearing in the appendix.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Peptides Or Proteins (AREA)
  • Stored Programmes (AREA)
  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

Jeux de clés particuliers destinés à prouver l'authenticité d'une entité ou l'intégrité d'un message.
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 311 470 B 1 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.
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. 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 œuvre la technologie 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. 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 œuvre 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 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 œuvre 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 œuvre 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é destiné à prouver à une entité contrôleur,
- l'authenticité d'une entité et/ou
- l'intégrité d'un message M associé à cette entité. Un tel procédé met en œuvre : - un module public n constitué par le produit de f facteurs premiers Pi, p2, ... pf (f êtant supérieur ou égal à 2) ou mettant en œuvre les f facteurs premiers,
- m nombres de base entiers g , g2 , ... gm distincts (m étant supérieur ou égal à 1), g; étant inférieur aux f facteurs premiers p , p2, ... pf , - m couples de valeurs privées Q,, Q2, ... Qm et publiques G15 G2, ...
Gm (m étant supérieur ou égal à 1) ou des paramètres dérivés de ceux-ci. Ledit module et lesdites valeurs privées et publiques sont liés par des relations du type :
Gj . Qj V ≡ 1 . mod n ou G; ≡ Q^mod n ladite valeur publique Gj étant le carré ; 2 du nombre de base, v désignant un exposant public de la forme : v = 2k où k est un paramètre de sécurité plus grand que 1. Le procédé selon l'invention comprend l'étape de produire les f facteurs premiers plj5 p2 , ... pf et/ou les m nombres de base gj, , g2 , ... gm de telle sorte que les conditions suivantes soient satisfaites.
Première condition :
Selon la première condition, chacune des équations : xv ≡ &2 mod n (1) a des solutions en x dans l'anneau des entiers modulo n.
Deuxième condition :
Selon la deuxième condition, dans le cas où G; ≡ Qj v mod n, parmi les m nombres q; obtenus en élevant Q; au carré modulo n, k-1 fois de rang, l'un d'entre eux est différent de ± gj (c'est-à-dire est non trivial).
Selon la deuxième condition, dans le cas où Gj . Q;v ≡ 1 mod n, parmi les m nombres q, obtenus en élevant l'inverse de Q; modulo n au carré modulo n, k-1 fois de rang, l'un d'entre eux est différent de ± gj (c'est-à-dire est non trivial). II est précisé ici que selon une notation courante ± g; représente les nombres j et n-gj.
Troisième condition :
Selon la troisième condition, parmi les 2m équations : x2 ≡ g mod n (2) au moins l'une d'entre elles a des solutions en x dans l'anneau des entiers modulo n.
Le procédé selon l'invention pour produire les f facteurs premiers px , p^, ... pf , et/ou les m nombres de base gj , g2 , ... gm comprend l'étape de choisir en premier :
• le paramètre de sécurité k,
• les m nombres de base gl 5 g2 , ... gm, et/ou les f facteurs premiers p1)5 p2, ... pf , selon qu'il s'agit respectivement de produire les f facteurs premiers plj5 p2 , ... pf ou les m nombres de base gt , g2 , ... gm .
De préférence, les m nombres de base gl5 g2, ... gm, sont choisis au moins en partie parmi les premiers nombres entiers.
De préférence, le paramètre de sécurité k est un petit nombre entier, notamment inférieur à 100. De préférence, la taille du module n est supérieure à plusieurs centaines de bits.
De préférence, les f facteurs premiers px , p2 , ... pf ont une taille voisine de la taille du module n divisé par le nombre f de facteurs.
Pour tester la première condition, on vérifie la compatibilité des nombres k, p, g en mettant en œuvre l'algorithme ci-après, où h désigne un nombre tel que 2h divise le rang de g par rapport à p et tel que 2h+1 ne le divise pas. On calcule h à partir du symbole de Legendre (g | p) et d'un nombre b égal à une racine 2' - ième primitive de l'unité dans CG(p), où le symbole de
Legendre (g, | Pj) et t ont le sens défini ci-après dans la description. Voici les étapes de cet algorithme :
• si (g | p) = -1 alors h= t,
• si (g | p) = +1 avec t = 1 , alors h= 0,
• si (g | p) = +1 avec t > 1, on procède comme indiqué ci-après. On applique la clé ((p-1+21)/ 2t+1, p) à G, on obtient ainsi un résultat w : • si w = +g, alors h = 0,
• si w = p-g, alors h ≈ +1.
Si w est différent de +g ou de p-g (dans ce cas t est supérieur à 2), on met en œuvre un sous-module de calcul. On initialise la variable c en lui attribuant la valeur b, puis on itère les étapes suivantes du sous-module de calcul pour des valeurs de i allant de t- 1 à 2 : étape 1 : on applique la clé p) à w/g(modp),
* si le résultat obtenu est égal à +1 , on passe à l'étape 2,
* si le résultat obtenu est égal à -1, on attribue à h la valeur i et on remplace w par w.c(modp), étape 2 : on remplace c par c2 (modp).
La valeur de h recherchée est celle obtenue la dernière fois où l'application de la clé {l p), conformément à l'étape 1, a produit un résultat égal à -1.
On rappelle que : - k, g, p sont incompatibles lorsque h>l et lorsque k+h >t+l ,
- k, g, p sont compatibles lorsque h = 0 ou 1, quelle que soit la valeur de k, ou lorsque h>l et lorsque k+h < t+1.
Pour tester la deuxième condition, on vérifie qu'au moins un jeu {δ, t ... δl f} est variable ou nul, (δ à le sens défini ci-après dans la description). Pour tester la troisième condition, on vérifie qu'il existe un nombre de base g, de g, à gm tel que les f symboles de Legendre (g, | p^ à (g, | pf) soient tous égaux à +1 ou bien les f symboles de Legendre (-g Pi) à (-g, l pf) soient tous égaux à + 1.
Pour calculer les f.m composantes privées Q; . des valeurs privées Q,, Q2, ... Qm (Qi, j ≡ Qiinod Pj), dans le cas où G; ≡ Q;v mod n, on procède comme suit, en distinguant les cas selon les valeurs de t.
Cas où t = 1 (c'est-à-dire si pj≡ 3 (mod4)).
• on calcule un nombre s} tel que s} ≡ ((p + l)/4)k (mod(Pj -l)/2),
• on en déduit la clé \ s , p ), • on applique la clé \ sJ5 p à G; ,
• on obtient ainsi : w ≡ G; SJ (mod p ).
Les deux valeurs possibles de Q; j sont w, Pj -w. Cas où t = 2 (c'est-à-dire si p^ 5 (modδ)) :
• on calcule un nombre s} tel que s ≡ ((pj + 3)/8)k (mod(pi -l)/4), • on en déduit la clé ( sJ5 p^,
• on applique la clé ( sJ5 p^ à G; ,
• on obtient ainsi : w ≡ G; SJ (mod pj) et w'≡ w.z(mod p^, où z a le sens défini ci-après dans la description. Les quatre valeurs possibles de Qi; J- sont w, pj -w, w', Pj -w'.
Cas où t >2 (c'est-à-dire si Pj≡ 2'+l (mod2t+1)) avec h=0 ou avec h = 1,
• on calcule Sj tel que Sj ≡ (ty -1 + )l 2t+1)k (mod(pj -1)/ 2%
• on en déduit la clé ( s,, p ,
• on applique la clé ( s,, p ) à G, , • on obtient ainsi : w ≡ G; SJ (mod p^.
Les 2mm(k't) valeurs possibles de Qj j sont égales au produit de w par l'une quelconque des racines 2m (k t)-ièmes de l'unité dans CG(Pj).
Cas où t >2 (c'est-à-dire si ρ}≡ 2l+l (mod2t+1)) avec h>l et avec h+k < t+1,
• on calcule ^ tel que Sj≡ ((p_, -1 + T)l 2 +1)k+h-1(mod(pJ -1)/ 2% • on en déduit la clé ( sJ5 p^,
• on applique la clé ( sJ5 p^ à la puissance 2h~l -ième de G; ,
• on obtient ainsi w,
Les 2k valeurs possibles de Q; j appartiennent à l'ensemble des produits de w par les racines 2k+h l -ièmes primitives de l'unité dans CG(pj). Pour calculer les composantes privées Qt } dans le cas où G; . Q; v ≡ 1 . mod n, on substitue s, par ((p} -l)/2*) - s, dans la clé ( sJ3 p,). L'invention concerne également un procédé faisant application de la méthode permettant de produire les f facteurs premiers pj , p2 , ... pf ou les m nombres de base g1?, g ... gm. Ledit procédé est 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 m couples de valeurs privées Qx, Q2, ... Qm et publiques G,, G2, ... Gm (m étant supérieur ou égal à 1) ou des paramètres dérivés de ceux-ci, notamment au moyen des composantes privées Q .
Ledit procédé met en œuvre selon les étapes ci-après 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 privées Qi; j des valeurs privées Q; et de l'exposant public.
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 ≡ rvmod n où r est un aléa tel que 0 < r < n,
• soit en appliquant la méthode des restes chinois après avoir effectué des opérations du type où est un aléa associé au nombre premier p; tel que 0 < r{ < pt , chaque r; appartenant à une collection d'aléas {rt , r2 , ... rf}.
Le témoin reçoit un ou plusieurs défis d. Chaque défi d comportant m entiers d; 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 :
D ≡ r . Qr dl . Q2 d2. ... Qm dm mod n
• soit en appliquant la méthode des restes chinois après avoir effectué des opérations du type : Di ≡ ri . Qi 1 . Qi 2 d2. ... Q. m dm mod pi
Ledit procédé est tel qu'il y a autant de réponses D que de défis d et d'engagements R. Chaque groupe de nombres R, d, D constitue un triplet noté {R, d, D}. Description
Les objectifs des schémas GQ sont rauthentification dynamique d'entités et de messages ainsi que la signature numérique de messages. Ce sont des schémas « sans transfert de connaissance ». Une entité prouve : elle connaît un ou plusieurs nombres privés. Une autre entité contrôle : elle connaît le ou les nombres publics correspondants. L'entité qui prouve veut convaincre l'entité qui contrôle sans révéler le ou les nombres privés, de façon à pouvoir les utiliser autant de fois que de besoin. Chaque schéma GQ repose sur un module public composé de grands nombres premiers secrets. Un exposant public v et un module public n forment ensemble une clé de vérification \v, n) signifiant « élever à la puissance v modulo n » et mise en œuvre au moyen d'une ou plusieurs équations génériques, toutes du même type, direct : G ≡ Q (mod n) ou inverse : GxQv ≡ 1 (mod n). Le type a un effet sur le déroulement des calculs au sein de l'entité qui contrôle, pas au sein de l'entité qui prouve ; en fait, les analyses de sécurité confondent les deux types. Chaque équation générique lie un nombre public G et un nombre privé Q formant ensemble un couple de nombres {G, Q} . En résumé, chaque schéma GQ met en œuvre un ou plusieurs couples de nombres {G, Q} pour la même clé (v, n). Une version classique de schémas GQ, appelée ici GO fait appel à un schéma RSA de signature numérique. La clé de vérification (v, n) est alors une clé publique RSA où l'exposant v impair est de préférence un nombre premier. Chaque schéma GQ1 utilise en général un seul couple de nombres {G, Q} : le nombre public G est déduit de données d'identification selon un mécanisme de format qui fait partie intégrante du schéma RSA de signature numérique. Le nombre privé Q ou bien son inverse modulo n est une signature RSA des données d'identification. L'entité qui prouve démontre la connaissance d'une signature RSA de ses propres données d'identification et cette preuve ne révèle pas la signature qui reste donc secrète pour être utilisée autant de fois que de besoin.
Les schémas GQl mettent généralement en œuvre deux niveaux de clés : la clé privée de signature RSA est réservée à une autorité accréditant des entités se distinguant les unes des autres par des données d'identification. On dit qu'un tel schéma est « basé sur l'identité ». Ainsi, un émetteur de cartes à puce utilise sa clé privée RSA à l'émission de chaque carte pour calculer un nombre privé Q qu'il inscrit comme clé privée diversifiée dans la carte ; ou encore, un client sur un réseau d'ordinateurs utilise sa clé privée RSA à chaque entrée en session pour calculer un nombre privé Q qui sera la clé privée éphémère du client durant la session. Les entités qui prouvent, cartes à puce ou clients en session, connaissent une signature RSA de leurs données d'identification ; elles ne connaissent pas la clé privée RSA qui, dans la hiérarchie des clés, se trouve au niveau immédiatement supérieur. Cependant, une authentification dynamique d'entités par GQl avec un module de 768 bits au niveau d'une autorité demande à peu près la même charge de travail qu'une authentification dynamique d'entités par RSA avec un module de 512 bits à trois facteurs premiers au niveau de chaque entité, ce qui permet à l'entité qui prouve d'utiliser la technique des restes chinois en calculant un résultat modulo chacun des facteurs premiers avant de calculer un résultat modulo leur produit.
Toutefois, la hiérarchie de clés entre une autorité et les entités accréditées n'est pas obligatoire. On peut utiliser GQl avec un module propre à l'entité qui prouve, ce qui permet d'utiliser la technique des restes chinois pour réduire les charges de travail de l'entité qui prouve, ce qui ne change pas fondamentalement la charge de travail de l'entité qui contrôle, mis à part le fait qu'un module au niveau de l'entité qui prouve peut être plus court qu'un module au niveau de l'autorité, par exemple 512 bits comparés à 768 bits. Lorsque l'entité connaît les facteurs premiers de son propre module, pourquoi faire appel à un schéma RSA de signature numérique ?? Une autre version de schémas GO. appelée ici GQ2 élémentaire, fait appel directement au problème de la factorisation d'un module n. Dans ce contexte, « directement » signifie « sans faire appel à la signature RSA ». L'objectif de GQ2 est bien de réduire les charges de travail, non seulement de l'entité qui prouve mais aussi de l'entité qui contrôle. L'entité qui prouve démontre la connaissance d'une décomposition de son propre module et cette preuve ne révèle pas la décomposition qui reste donc secrète pour être utilisée autant de fois que de besoin. La sécurité du protocole GQ2 est équivalente à la factorisation du module. Chaque entité qui prouve dispose de son propre module n. Chaque schéma
GQ2 met en œuvre un paramètre k, petit nombre plus grand que 1 fixant un exposant public v - 2 et un ou plusieurs couples de nombres {G,, Q ) à {Gm, Q . Chaque nombre public G est le carré d'un petit nombre gι plus grand que 1 et appelé « nombre de base ». Toutes les entités qui prouvent peuvent utiliser le ou les mêmes nombres publics G, à Gm. La factorisation du module n et le ou les nombres privés Qχ à Qm sont alors au même niveau dans la hiérarchie des clés. Chaque jeu de clés GQ2 élémentaires est défini par deux conditions nécessaires et suffisantes.
- Pour chaque nombre de base, aucune des deux équations x2 ≡ ±gι (mod n) n'a de solution en x dans l'anneau des entiers modulo n, c'est-à-dire que les nombres ±gt sont deux résidus non quadratiques modulo n.
- Pour chaque nombre de base, l'équation A ≡ g (mod n) où v = 2k a des solutions en x dans l'anneau des entiers modulo n. Le nombre privé Qt ou son inverse modulo n est n'importe laquelle de ces solutions. Compte tenu de la deuxième condition, pour que les nombres ±g: soient deux résidus non quadratiques modulo n, le module n doit comporter au moins deux facteurs premiers congrus à 3 (mod 4) par rapport auxquels le symbole de Legendre de g diffère. Par conséquent, tout module composé de facteurs premiers dont aucun ou un seul est congru à 3 (mod 4) ne permet pas d'établir un jeu de clés GQ2 élémentaires, ce qui privilégie les facteurs premiers congrus à 3 (mod 4). Or en prenant au hasard des grands nombres premiers, il s'avère qu'ils sont environ pour moitié congrus à 3 (mod 4) et pour moitié à 1 (mod 4). De ce fait, beaucoup de modules RSA en usage ne permettent pas d'établir des jeux de clés GQ2 élémentaires.
Nous introduisons ici les jeux de clés GQ2 généralisées pour surmonter cette limitation afin de pouvoir utiliser des techniques GQ2 avec n'importe quel module, en particulier, n'importe quel module RSA ; ils reposent sur deux principes nécessaires et suffisants. Le premier principe reproduit la deuxième condition de GQ2 élémentaire.
— Pour chaque nombre de base gl à gm, l'équation xv ≡ g2 (mod n) où v = 2k a des solutions en x dans l'anneau des entiers modulo n.
Parce que le nombre privé Q: ou bien son inverse modulo n est une solution à l'équation, k-\ carrés successifs modulo n le transforment en un nombre qι qui est une racine carrée de G, dans l'anneau des entiers modulo n. Selon que le nombre qt est égal à l'un des deux nombres gι ou n-g, ou différent des deux nombres gt et n-g:, nous disons qu'il est trivial ou non. Lorsqu'un nombre qι est non trivial, n qui divise q^-g' ne divise ni q-gt ni q+g,. Tout nombre qt non trivial révèle donc une décomposition du module n. n = pgcd(n, qrg)xpgcd(n, q+g)
Le deuxième principe élargit la première condition de GQ2 élémentaire.
— Parmi les nombres q à qm, au moins un nombre qt est non trivial. Observons que si un nombre qι existe alors que les nombres ±g sont deux résidus non quadratiques dans l'anneau des entiers modulo n, le nombre qι est manifestement non trivial. Ainsi, les jeux de clés GQ2 élémentaires font bien partie des jeux de clés GQ2 généralisées qui permettent d'utiliser n'importe quel module, c'est-à-dire toute composition de grands nombres premiers congrus indifféremment à 3 ou à 1 (mod 4) dont au moins deux sont distincts. Par contre, beaucoup de jeux de clés GQ2 généralisées ne sont pas des jeux de clés GQ2 élémentaires. Chaque jeu de clés GQ2 généralisées est dans l'un des deux cas suivants.
- Lorsque les 2xra nombres ±g, à ±gm sont tous des résidus non quadratiques, c'est un jeu de clés GQ2 élémentaires. - Lorsque parmi les 2xra nombres ±g, à ±gm, il y a au moins un résidu quadratique, ce n'est pas un jeu de clés GQ2 élémentaires; c'est ce que nous appelons ici un jeu de clés GQ2 complémentaires.
La présente invention porte sur les jeux de clés GQ2 complémentaires, par définition, ces jeux de clés GQ2 généralisées qui ne sont pas élémentaires. Outre les deux principes précédents, un tel jeu doit satisfaire un troisième principe.
— Parmi les 2xm nombres ±g, à ±gm, il y a au moins un résidu quadratique. Pour appréhender le problème et comprendre la solution que nous en donnons, c'est-à-dire l'invention, analysons d'abord la décomposition du module n révélée par un nombre q non trivial, puis rappelons la technique des restes chinois, puis, la notion de rang dans un corps de Galois CG(p) ; puis, étudions les fonctions « élever au carré » dans CG(p) et « prendre une racine carrée » d'un résidu quadratique dans CG(p) ; enfin, analysons l'applicabilité des trois principes énoncés ci-dessus. Analyse des décompositions du module — De même que le module n se décompose en /facteurs premiers px à pp l'anneau des entiers modulo n se décompose en/corps de Galois CG(p,) à CG^). Dans chaque corps, il y a deux racines carrées de l'unité, à savoir ±1. Dans l'anneau, il y a donc 2f racines carrées de l'unité. Chaque nombre privé 0] à Qm définit un nombre Δ = qt I gι (mod n) qui est une de ces 2 racines carrées de l'unité dans l'anneau ; en d'autres termes, n divise Δ2-l .
• Lorsque qι est trivial, c'est-à-dire Δ = ±1 , n divise Δ— 1 ou bien Δ+l et donc Δ ne révèle pas de décomposition du module n.
• Lorsque qt est non trivial, c'est-à-dire Δ ≠ ±1 , n ne divise ni Δ-l ni Δ + l et donc Δ révèle une décomposition, n = pgcd(«, Δ-l)xpgcd(«, Δ+l), résultant de la valeur de Δ dans chaque corps : le ou les facteurs premiers divisant Δ-l d'un côté, celui ou ceux divisant Δ+l de l'autre. Examinons les règles de composition multiplicative des nombres q. Deux nombres {q q2) donnent un nombre composé q xq2 (mod n).
- Lorsque q est non trivial et q2 trivial, le nombre composé qxxq2 (mod ) est non trivial ; il révèle la même décomposition que qv
- Lorsque q et q2 sont non triviaux et Δ, = ±Δ2, le nombre composé qλxq2 (mod n) est trivial ; il ne révèle pas de décomposition. - Lorsque q et q2 sont non triviaux et Δ, ≠ ±Δ2, le nombre composé q xq2
(mod n) est non trivial ; il révèle une troisième décomposition. Trois nombres {qx, q2, q3} donnent quatre nombres composés {qxxq2, χq3, q2xq3, qχq2x 3 (mod n)}, soit un total de sept nombres ; m nombres donnent ainsi 2m-m-\ nombres composés, soit un total de 2m-l nombres. Considérons un jeu de clés GQ2 généralisées comportant i nombres de base g, à g, et i nombres privés Qx à Qt donnant nombres qλ à qt et donc i nombres Δ, à Δ qui sont des racines de l'unité. Cherchons à prendre en compte un autre nombre de base gι+x par un nombre privé Qι+X donnant un nombre q -i t _+,l et donc une racine Δ i++l1. • Le total des 2'+I-l nombres comporte autant de nombres non triviaux dans chacun des deux cas suivants.
- La racine Δ *++1l est triviale et au moins une racine Δ, 1 à Δ i est non triviale.
- La racine Δ+, est non triviale et figure parmi les 2xz racines ±Δ, à ±Δ .
• Dans le cas où la racine Δ+, est non triviale et ne figure pas parmi les 2xi racines ±Δ, à ±Δ , chaque nombre composé où figure qι+x est non trivial.
Par conséquent, lorsque parmi m nombres qx à qm, au moins un est non trivial, plus de la moitié du total des 2m-l nombres sont non triviaux. Par définition, nous disons que / < / nombres non triviaux {qv q2, ... q sont indépendants par rapport au module n lorsque chacun des 2 -/-1 nombres composés correspondants est non trivial, c'est-à-dire que, au total, les 2 -1 nombres sont tous non triviaux. Chacun de ces 2 -1 nombres révèle alors une décomposition différente du module n.
- Lorsque les /facteurs premiers sont distincts, il y a 2 _1-l décompositions du module n. Alors, si f-\ nombres q sont indépendants, il y a une correspondance biunivoque entre les 2/~'-l décompositions et un total de
2/_1-l nombres comprenant les f-\ nombres indépendants et les 2 -1-/ nombres composés correspondants.
Restes chinois — Soient deux nombres α et b premiers entre eux tels que 0 < a < b, et deux nombres J de 0 à a-\ et Xb de 0 à b-\ ; il s'agit de déterminer le nombre unique X de 0 à axb-\ tel que Xa ≡ X (moά a) et
Xb ≡ X (τaoά b). Le nombre α ≡ {b (mod α)}"1 (mod a) est le paramètre des restes chinois. Voici l'opération élémentaire des restes chinois. x ≡ Xb (mod a) y = X—x ; si y est négatif, remplacer y par y+a z ≡ axy (mod a) X= zxb + Xb
En résumé, nous écrivons : X= Restes Chinois (Xa, Xb).
Lorsque /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 un de moins que de facteurs premiers, c'est-à-dire/ !).
- Le premier paramètre est ≡ (p2 (mod /?,)) ' (mod/?,).
- Le second paramètre est β ≡ (p xp2 (moάp )'1 (mod/λ,).
- Le z'-ième paramètre est λ ≡ (pxx ... pι X (mod p))~l (modp). - Et ainsi de suite.
En^l opérations élémentaires, on établit un nombre X de 0 à n-\ à partir de tout jeu de/composantes de , à ^ avec de 0 hp-l :
- un premier résultat ( odpxxp2) avec le premier paramètre,
- puis, un second résultat (mod pxxp2xp3) avec le second paramètre, - jusqu'au résultat final (mod n =pxxp2x - .. p) avec le dernier paramètre. En résumé, étant donnés les facteurs premiers p à pp chaque élément de l'anneau des entiers modulo n a deux représentations équivalentes :
- /nombres Xx hXp une composante par facteur premier : X ≡ X (mod/?), - un nombre X de 0 à n- 1 , X = Restes Chinois (X , X2, ... X^.
Rang des nombres dans CG(p) — Soit un nombre premier impair p et un nombre a plus petit que ?, c'est-à-dire 0 < a <p. Par définition, le rang de a par rapport à p est la période de la suite {X} définie par {xx = a ; puis, pour i ≥ 1, +1 ≡ αxx ( od p)} . Grâce au théorème de Fermât, nous obtenons : x ≡ apxxι ≡ axx: ≡ xι+x (modp). Par conséquent, le rang d'un nombre a par rapport à un nombre premier/? est/?-l ou un diviseur de/?-l.
Par exemple, lorsque (p-\)l2 est un nombre premier impair/? ', le corps de
Galois CG(p) comporte un nombre de rang 1 : c'est 1, un nombre de rang
2 : c'est -\,p -1 nombres de rang/? ' et/? -1 nombres de rang 2xp ' =/?-l . Dans CG( ?), tout nombre de rang p-\ est un « générateur ». La dénomination est due au fait que les puissances successives d'un générateur dans CG( »), c'est-à-dire les termes de la suite {X} pour les indices de 1 p-l , forment une permutation de tous les éléments non nuls de CG(/?). Soit un générateur y de CG(p). Evaluons le rang du nombre y (modp) en fonction de et de/?-l . Lorsque i est premier avec p-\, c'est/?-l . Lorsque i divise p-l, c'est (p-\)li. Dans tous les cas, c'est ( ?-l)/pgcd(/?-l, i). Par définition, la fonction d'Euler φ(n) est le nombre de nombres plus petits que n et premiers avec n. Dans CG(p), il y a φ(/?-l) générateurs. A titre d'illustration, le rang fait bien comprendre les bases du RSA. Le module n est le produit de/facteurs premiers >, hpf avec/≥ 2. Pour chaque facteur premier /^ de ?, kpp l'exposant public e doit être premier avec /?-l . Alors, la clé (e, p) respecte le rang des éléments de CG(p ) : elle permute les éléments de CG(p) ; il existe un nombre d, généralement le plus petit possible, tel que ?y-l divise exd-l . La clé \d p inverse la permutation des éléments de CG(/?;). Ces / permutations, une dans chaque corps CG(px) à CG(p , se traduisent dans l'anneau des entiers modulo n par la permutation RSA résumée par la clé publique (e, n). Il existe un nombre d, généralement le plus petit possible, tel que ppcm(p -\, p -l, ... p-\) divise dxe-\ . Pour chaque facteur premier/? de ?, à^ on a rf ≡ (mod/?-l). La permutation RSA résumée par la clé publique (e, n) est inversée par la clé privée {d, n). Carrés dans CG(p) — Définissons un nombre t tel que p-\ est divisible par 2', mais pas par 2/+1. Chaque grand nombre premier figure dans une et une seule catégorie : t = l, t = 2, t = 3, t = 4, et ainsi de suite. Si l'on considère un assez grand nombre de nombres premiers successifs, environ un sur deux figure dans la première catégorie où p est congru à 3 (mod 4), un sur quatre dans la deuxième où p est congru à 5 (mod 8), un sur huit dans la troisième où p est congru à 9 (mod 16), un sur seize dans la quatrième oùp est congru à 17 (mod 32), et ainsi de suite ; en moyenne, un sur 2l figure dans la t-ième catégorie oùp est congru à 2'+l (mod 2'+1). Parce que les nombres x etp-x ont le même carré dans CG(p), la clé (2, p) ne permute pas CG(p). La fonction « élever au carré » dans CG(p) peut se représenter par un graphe orienté où chaque élément non nul du corps trouve sa place. Analysons la structure du graphe en branches et en cycles selon la parité du rang de chaque élément.
L'élément nul est fixe. C'est 0. Le rang n'est pas défini pour l'élément nul auquel aucun autre élément ne se rattache ; l'élément nul est isolé. L'élément unité est fixe. C'est 1 , le seul élément de rang 1. Toutes les racines de l'unité dans CG(p) se trouvent dans la branche se rattachant à
1. Soit y un résidu non quadratique de CG(p), n'importe lequel ; la clé \(p-\)l2', p) transforme y en une racine 2'~'-ième primitive de -1 notée par b ; en effet, on a ^ ≡ -l (mod p). Par conséquent, dans CG(p), les puissances de b pour les exposants de 1 à 2M sont les 2'"' racines de l'unité autres que 1 : elles composent la branche se rattachant à 1.
Le carré de tout élément de rang pair est un autre élément dont le rang est divisé par deux. Par conséquent, chaque élément de rang pair se place dans une branche ; chaque branche comporte un nombre de rang divisible par deux mais pas par quatre, puis, si t ≥ 2, deux nombres de rang divisible par quatre mais pas par huit, puis, si t ≥ 3, quatre nombres de rang divisible par huit mais pas par seize, puis, si t ≥ 4, huit nombres de rang divisible par seize mais pas par 32, et ainsi de suite.
Toutes les branches sont semblables à la branche rattachée à 1 ; les 2 feuilles de chaque branche sont des résidus non quadratiques ; chaque branche comporte 2-1 éléments et se rattache à un élément de rang impair ; il y a (p-l)/2l branches qui ont toutes la même longueur t.
Le carré de tout élément de rang impair autre que l'élément unité est un autre élément avant le même rang. La clé (2,p) permute l'ensemble des (p-\)l2' éléments de rang impair. La permutation se décompose en cycles de permutation. Le nombre de cycles dépend de la factorisation de (p-l)/2'. Pour chaque diviseur p' de (p-\)/2', il y a un cycle comportant les φ(/?') éléments de rang /?'. Rappelons que par définition, la fonction d'Euler φ( est le nombre de nombres plus petits que /?' et premiers avec /?'. Par exemple lorsque /?' = (p-\)l2l est premier, les p -1 nombres de rang/?' forment un grand cycle de permutation.
Les figures 1A à ID illustrent chacune un fragment de graphe pour /? congru respectivement à 3 (mod 4), 5 (mod 8), 9 (mod 16) et 17 (mod 32).
Les feuilles sur les branches sont représentées par des ronds blancs ; ce sont des résidus non quadratiques.
Les nœuds dans les branches sont représentés par des ronds gris ; ce sont des éléments quadratiques de rang pair.
Les nœuds dans les cycles sont représentés par des ronds noirs ; ce sont des éléments quadratiques de rang impair. Racines carrées dans CG(p) — Sachant que a est un résidu quadratique de CG(p), voyons comment calculer une solution à l'équation x2 ≡ a (mod p), c'est-à-dire « prendre une racine carrée » dans CG(p). Il y a bien sûr plusieurs façons d'obtenir le même résultat : on pourra consulter les pages 31 à 36 du livre de Henri Cohen, a Course in Computational Algebraic
Number Theory, publié en 1993 par Springer à Berlin comme volume 138 de la série Graduate Texts in Mathematics (GTM 138). Le nombre s = (/?-l+2')/2'+1 donne une clé (s,p) qui vaut :
{(p+\)IA, p) lorsque/? est congru à 3 (mod 4), ((/?+3)/8, ?) lorsque/? est congru à 5 (mod 8),
((/?+7)/16, ?) lorsque/? est congru à 9 (mod 16),
((/?+15)/32, /?) lorsque/» est congru à 17 (mod 32), et ainsi de suite.
- La clé (s, p) transforme tout élément d'un cycle en l'élément précédent dans le cycle. Lorsque a est de rang impair, c'est la solution de rang impair ; nous la nommons w. En effet, dans CG(p), w2/a vaut a élevé à la puissance (2x(/?-l+2y2'+1)-l = (p-\)l2'. L'autre solution est de rang pair ; c'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. Puisque a est un résidu quadratique, la clé (2χ p) transforme certainement r i a en 1.
Pour se rapprocher d'une racine carrée de a, élevons r la à la puissance 2'~2 (mod ) pour obtenir +1 ou -1. La nouvelle approximation reste r si le résultat est +1 ou bien devient bxr {modp) si le résultat est -1, sachant que b désigne n'importe quelle racine 2'-ième primitive de 1 dans le corps CG(p). Par conséquent, la clé \2'~2, p) transforme la nouvelle approximation en 1. On peut encore se rapprocher en utilisant la clé et en multipliant par b2 (modp) s'il le faut, et ainsi de suite. L'algorithme suivant résout l'équation. Il utilise les nombres a, b, p, r et t définis ci-dessus et deux variables : c représente les corrections successives et w les approximations successives. Au début de l'algorithme, c = b et w = r. A l'issue du calcul, les deux solutions sont w Qtp-w. Pour i allant de t-2 à 1 , répéter la séquence suivante :
- Appliquer la clé (2',/?) au nombre w2/a (modp) pour obtenir +1 ou -1. - Lorsque l'on obtient -1 , remplacer w par wxc (modp).
- Remplacer c par c (mod/?).
Applicabilité des principes — Par définition, nous disons qu'un paramètre k, un nombre de base g et un facteur premier p sont compatibles lorsque l'équation x ≡ g (mod/?) où l'exposant v vaut 2A a des solutions en x dans le corps CG(p). Les nombres et g sont petits et plus grands que 1. Le nombre p est un grand nombre premier.
- Lorsque t = 1, c'est-à-dire/? ≡ 3 (mod 4), l'équation a deux solutions.
- Lorsque t = 2, c'est-à-dire ? ≡ 5 (mod 8), selon le symbole de Legendre de g par rapport à/?, l'équation a quatre solutions si (g\p) = +1 ; elle n'a pas de solution si (g\p) = -1.
- Lorsque t > 2, c'est-à-dire ? ≡ 1 (mod 8), soit u le nombre tel que 2" divise le rang du nombre public G = g par rapport à /?, mais que 2"+1 ne le divise pas ; par conséquent, u est égal à l'un des nombres de 0 à t-1. L'équation n'a aucune solution si u > 0 et k+u > t ; elle a 2k solutions si k+u < t ; elle a 2' solutions si u = 0 et k > t.
Il y a donc deux types de compatibilité selon que G est dans un cycle ou bien en position appropriée dans une branche.
Lorsque G est dans un cycle, c'est-à-dire u - 0 quelle que soit la valeur de À:, il y a une solution de rang impair dans le cycle et des solutions de rang pair disséminées dans a = min(k, t) branches consécutives rattachées au cycle, soit 2α solutions en tout. La figure 2A illustre ce cas avec k ≥ t = 3, c'est-à-dire un facteur premier congru à 9 (mod 16), ce qui impose u = 0. Lorsque G est en position appropriée dans une branche, c'est-à-dire u > 0 et u+k < t, il y a 2k solutions, toutes de rang pair et dans la branche. La figure 2B illustre ce cas. Etant donné un paramètre k, il y a donc deux types de facteurs premiers selon que la valeur de t est inférieure à & ou bien supérieure ou égale à k. - Pour tout facteur premier p] tel que t < k, chaque G doit être dans un cycle et il n'y a pas de solution dans la branche rattachée à G . Définissons un nombre Δ^ qui vaut +1 ou -1 selon que g, ou -g; est dans le cycle. Il n'y a pas de choix pour aucun des m nombres Δ à Δ . La figure 3 A illustre un cas t < k : G est dans un cycle avec un facteur premier/? congru à 9 (mod 16), c'est-à-dire, u = 0, t = 3 avec k > 3.
Pour tout facteur premier pj tel que t ≥ k, chaque G, doit être tel que u+k < t, c'est-à-dire, ou bien dans un cycle avec u = 0 ou bien en position appropriée dans une branche avec 1 < u ≤ t-k. Définissons un nombre Δ qui vaut +1 ou -1 selon que Q se trouve dans la partie de graphe rattachée à g, ou à -g. Il y a le choix pour chacun des m nombres Δ à Amj ; chaque nombre Δtj peut être individuellement basculé d'une valeur à l'autre. La figure 3B illustre un cas t ≥ k : G est dans une branche avec un facteur premier p congru à 17 (mod 32), c'est-à-dire, u = 1, t = 4 avec k = 3. Chaque jeu de / composantes {Δ , ... Δ;/} est une racine carrée de l'unité dans CG(p . Cette racine est triviale ou pas selon que les / composantes sont égales ou pas ; nous disons alors que le jeu de / composantes est constant ou variable, ce qui traduit le fait que le nombre qt est trivial ou pas.
Par conséquent, lorsqu'un nombre qt est non trivial, le jeu de /composantes { Δ , ... Aιf} résume une décomposition du module. Il est donc possible de tester les principes avant de calculer les composantes privées Qt .
- Lorsqu'un nombre public G est dans un cycle pour un facteur premier pp le nombre Δ vaut +1 ou -1 selon que g ou -g est dans le cycle. Lorsque p} ≡ 3 (mod 4), c'est le symbole de Legendre : Δ = - Lorsqu'un nombre public G est en position appropriée dans une branche pour un facteur premier/?^ on peut déterminer la valeur à donner à Δ avant de calculer la composante privée Qu. Production de jeux de clés — Etant donné un paramètre k, il y a deux stratégies.
Ou bien le générateur demande/ facteurs premiers afin de déterminer m nombres de base. Les premiers nombres premiers : 2, 3, 5, 7, ... sont examinés pour évaluer leur compatibilité avec chacun des / grands facteurs premiers /?, à pf Bien que g = 2 ne soit pas compatible avec p ≡ 5 (mod 8), 2 peut entrer dans la composition d'un nombre de base.
En effet, lorsque deux nombres sont en position similaire dans une branche, leur produit est plus près du cycle, tout comme un carré rapproche du cycle. On peut ainsi obtenir un nombre de base en composant des nombres qui individuellement ne conviennent pas. - Ou bien le générateur demande m nombres de base et des caractéristiques du module telle qu'une taille en bits (par exemple, 512, 768, 1024, 1536, 2048) et un nombre de bits successifs à 1 en poids forts (par exemple, 1, 8, 16, 24, 32) afin de déterminer / > 2 facteurs premiers. Notés par g, g2 ... gm, les nombres de base figurent généralement parmi les premiers nombres premiers : 2, 3, 5, 7, 1 1, ... ou bien ce sont des combinaisons des premiers nombres premiers. Faute d'indication contraire, ce sont les m premiers nombres premiers : g, = 2, g2 = 3, g3 = 5, g4 = 7, ... Notons que p ≡ 5 (mod 8) n'est pas compatible avec g = 2. Le module n sera le produit de /facteurs premiers de tailles voisines, à savoir la taille assignée au module divisée par/
Premier principe — Le paramètre k, chaque facteur premier/? allant de/?, à pf et chaque nombre de base g allant de g, à gm doivent être compatibles. Définissons un nombre h tel que 2h divise le rang de g par rapport à/?, alors que 2Λ+1 ne le divise pas. Pour calculer le nombre h, la procédure suivante utilise le symbole de Legendre (g\p) et un nombre b, racine 2'-ième primitive de l'unité dans CG(p).
- Si (g\p) = +1 avec t = 1 , retourner « h = 0 ».
- Si p) à G pour obtenir un résultat appelé w.
Si w = +g, retourner « h = 0 ».
Si w =p-g, retourner « h = 1 ».
Sinon, mettre c à ? et pour / allant de t-1 à 2,
- appliquer la clé (2', p) à w/g (modp) pour obtenir ±1, - si -1 , mettre h à i et remplacer w par wxc (modp),
- remplacer c par c2 (mod/?). Retourner « valeur de h de 2 à t-1 ».
- Si (g\p) = -1, retourner « h = t ».
Rappelons que k, g et p sont incompatibles lorsque u > 0 avec &+M > t ; ils sont compatibles lorsque h = 0 ou 1, quelle que soit la valeur de k, et également lorsque h > \ avec &+A < t+1.
Second principe — Les trois procédures suivantes correspondent à différentes implémentations du second principe. Dans certaines implémentations, le second principe peut être renforcé au point d'exiger que chaque nombre </, à qm soit non trivial. Le rôle des nombres de base est alors équilibré ; le fait d'équilibrer ou pas le second principe a un effet sur certains aspects de démonstration de la sécurité du schéma. Enfin, lorsqu'il y a/> 2 facteurs premiers distincts, parmi les m nombres {qx ... q , on peut exiger qu'il y ait au moins un sous ensemble def-l nombres indépendants. Les trois procédures utilisent x/ nombres δj ; définis comme suit.
Lorsque p est tel que t < k, pour i allant de 1 à m, δ, = Δ , c'est-à-dire +1 si A 'J = 0 et — 1 si A u = 1.
Lorsque pj est tel que t ≥ k, pour allant de 1 à m, δ, = 0, ce qui indique que Δ à Amj peuvent être choisis en fonction du deuxième principe. Une première procédure vérifie qu'au moins un jeu {δ , ... δ; } est variable ou nul, c'est-à-dire qu'au moins un nombre q à qm est non trivial ou peut être choisi non trivial.
Pour i allant de 1 à w et/' allant de 1 à/ - si δ = 0 ou ≠ δ ,, retourner « succès ».
Retourner « échec ». Une deuxième procédure vérifie que chaque jeu {δ; l ... δ est variable ou nul, c'est-à-dire que chaque nombre qx à qm est non trivial ou peut être choisi non trivial. - Pour i allant de 1 à m, pour j allant de 1 à/
- si δ, j = 0 ou ≠ δ ,, passer à la valeur suivante de . Retourner « échec ».
Retourner « succès ». Une troisième procédure vérifie que pour chaque paire de facteurs premiers pjX etpft avec 1 <j <j2 </ il y a au moins un jeu {δ , ... δ^} où δyl est nul ou différent de δ/;2. Elle échoue manifestement lorsque m est plus petit que f-l . Lorsqu'elle réussit, parmi les m nombres qx à qm, il y a au moins un ensemble de f-l nombres indépendants par rapport aux/facteurs premiers. - Pour/', allant de 1 h f-l et pour/ allant de/+l à/ pour i allant de 1 à m,
- si διjX = 0 ou ≠ διJ2, passer aux valeurs suivantes de/, et/. Retourner « échec ».
Retourner « succès ». Lorsqu'une procédure échoue, le générateur de jeux de clés GQ2 suit sa stratégie parmi les deux stratégies possibles :
- changer l'un des m nombres de base en gardant les/facteurs premiers,
- changer l'un des/facteurs premiers en gardant les m nombres de base. Troisième principe — La procédure suivante détermine si le jeu de clés GQ2 généralisées en cours de production ou déjà produit est un jeu de clés GQ2 élémentaires, c'est-à-dire que les 2x nombres ±g, à ±gm sont tous des résidus non quadratiques, ou bien, un jeu de clés GQ2 complémentaires, c'est-à-dire que parmi les 2x nombres ±g, à ±gm, il y a au moins un résidu quadratique.
La procédure utilise les deux symboles de Legendre (g | p et (-g: \ p pour i allant de 1 à m et pour/' allant de 1 à/ Pour i allant de 1 à m, pour / allant de 1 à/ - si (g | p = -1 , passer à la valeur suivante de /.
Retourner «jeu de clés GQ2 complémentaires ». pour y allant de 1 à/
- si (-g \ p) - -l, passer à la valeur suivante de . Retourner «jeu de clés GQ2 complémentaires ». - Retourner « jeu de clés GQ2 élémentaires ».
Composantes privées — Pour une équation de type direct : xv ≡ g2 (modp , les calculs suivants établissent toutes les valeurs possibles de la composante privée Q . Les deux cas les plus simples et les plus courants, c'est-à-dire t = 1 et t = 2, sont suivis par le cas plus complexe, c'est-à-dire t > 2. Pour t = 1, c'est-à-dire ^ ≡ 3 (mod 4), la clé {(p + l)IA,p) donne la racine carrée quadratique de n'importe quel résidu quadratique dans CG^). On en déduit un nombre s ≡ ((p + l)/4)k (mod (p-l)l2), ce qui donne une clé \spp) transformant G en w ≡ G'1 (modp). Q est égal à w ou bien kp-w. Pour t = 2, c'est-à-dire } ≡ 5 (mod 8), la clé ((/?+3)/8, /?) donne la racine carrée de rang impair de n'importe quel élément de rang impair dans
CG(p ). On en déduit un nombre s ≡ ((/?+3)/8)A (mod (p-l)/4), ce qui donne une clé (s ,p) transformant G en w ≡ G"J (mod p). Remarquons que z ≡ 2te 1)/4 (modp) est une racine carrée de -1 parce que 2 est un résidu non quadratique dans CG(JD ). Qtj est égal à w ou bien p-w ou bien encore à w' ≡ wxz (modp) ou bien kp-w'.
Pour ?. ≡ 2'+l (mod 2'+1) avec f > 2, la clé {(p-l+2 l p donne la racine carrée de rang impair de n'importe quel élément de rang impair. Le test de compatibilité entre k, g et ? a donné la valeur de h, puis celle de u. - Lorsque G est dans un cycle (u = 0, quelle que soit la valeur de k), on établit un nombre Sj ≡ ((prl+2 l2,+ κ (mod (prl)l2 . La clé (sp P) transforme G en la solution de rang impair w ≡ G J (mod p). Il y des solutions de rang pair réparties dans min(k, t) branches consécutives rattachées au cycle, disons dans α branches. Q est égal au produit de w par n'importe laquelle des racines 2 -ièmes de l'unité dans CG(p).
- Lorsque G est en position appropriée dans une branche (u > 0, u+k ≤ t), toutes les solutions sont dans la même branche que G, branche rattachée à un cycle par la puissance 2"-ième du nombre G . On établit un nombre s ≡ ((p-l+2y2'+ +u (mod (p-l)/2). La clé is p) transforme la puissance 2"-ième de G en un nombre de rang impair w. L'ensemble des produits de w par les racines 2i+"-ièmes primitives de l'unité dans CG(/>) comprend les 2k valeurs de Qtj.
Lorsque p est tel que t ≥ k, le nombre b étant une racine 2'-ième primitive de l'unité dans CG^), la puissance 2'~"-ième de b dans CG^) existe ; c'est une racine 2A-ième primitive de l'unité. Multiplier Q par une racine 2*-ième primitive de l'unité permet de basculer la valeur du nombre Δ .
Pour une équation de type inverse : 1 ≡ xvxg2 (modp), il suffit de remplacer le nombre s par ((p-i i^-s dans la clé \s ,/? ), ce qui revient à inverser la valeur de Qt dans CG(p). Exemple de jeu de clés à deux facteurs premiers congrus à 5 (mod 8)
/?, = E6C83BF428689AF8C35E07EDD06F9B39A659829A58B79CD894C
435C95F32BF25 2 = HBF8A68A0817BFCC00F15731C8B70CEF9204A34133A0DEF862
829B2EEA74873D n =pxp2 = FFFF8263434F173D0F2E76B32D904F56F4A5A6A50008C43
D32B650E9AB9AAD2EB713CD4F9A97C4DBDA3828A3954F296458D5
F42C0126F5BD6B05478BE0A80ED1
Voici les symboles de Legendre des tout premiers nombres premiers.
(2\px) = -l;Q\Pl) = -l (5\px) = +l;(7\px) = -l;
(11 |^) = +1;(13 |Λ) = -1;(17|A) = +1;
Dans CG(?,), le rang est impair pour -5, -11 et 17.
(2\p2) = -l;(3\p2) = +l;(5\p) = +l;(7\p2) = +l;
(ll |/?2) = +l;(13|/?2) = -l;(17|/?2) = -l;
Dans CG(/?2), le rang est impair pour 3, -5, 7 et 11.
La fonction de Carmichael est λ(n) = ppcm(( ?,-l)/4, (p2-l)IΛ). λ(n) = 33331A13DA4304A5CFD617BD6F834311642121543334F40C3D5
7A9C8558555D5BDAA2EF6AED17B9E3794F51A65A1B37239B18FA9
B0F618627D8C7E1D8499C1B Avec k = 9, on utilise le nombre σ ≡ λ(n) - ((l+λ(n))/2)9 (mod λ(n)) comme exposant privé, de façon à utiliser des équations génériques de type inverse. σ - 01E66577BC997CAC273671E187A35EFD25373ABC9FE6770E7446
C0CCEF2C72AF6E89D0BE277CC6165F 1007187AC58028BD2416D4CC
1121E7A7A8B6AE186BB4B0 Les nombres 2, 3, 7, 13 et 17 ne conviennent pas comme nombre de base.
La clé (σ, n) transforme g, = 5 en un nombre privé Qx qui ne révèle pas de décomposition. En effet, dans les deux corps, -5 est sur un cycle.
Q = 818C23AF3DE333FAECE88A71C4591A70553F91D6C0DD5538EC
0F2AAF909B5BDAD491FD8BF 13F 18E3DA3774CCE 19D0097BC4BD4 7C5D6E0E7EBF6D89FE3DC5176C
La clé (σ, n) transforme g, ≈ 11 en un nombre privé Q2 qui révèle une décomposition. En effet, 11 n'est pas en même position dans les deux corps.
Q2 = 25F9AFDF177993BE8652CE6E2C728AF31B6D66154D3935AC535
196B07C19080DC962E4E86ACF40D01FDC454F2565454F290050DA05 2089EEC96A 1 B7DEB92CC A7
La clé (σ, n) transforme g3 = 21 = 3x7 en un nombre privé ( , qui révèle une décomposition.
Q2 = 78A8A2F30FEB4A5233BC05541AF7B684C2406415EA1DD67D18 A0459A1254121E95D5CAD8A1FE3ECFE0685C96CC7EE86167D99532
B3A96B6BF9D93CAF8D4F6AF0
La clé (σ, n) transforme g4 = 26 = 2x13 en un nombre privé Q4 qui révèle une décomposition.
Q4 = 6F1748A6280A200C38824CA34C939F97DD2941DAD300030E481 B738C62BF8C673731514D1978AF5655FE493D659514A6CE897AB76C
01E50B5488C5DAD12332E5
La clé privée peut encore se représenter par les deux facteurs premiers, le paramètre des restes chinois et huit composantes privées. ≡ (p2 (mod/?,))"1 (modp,) = ADE4E77B703F5FDEAC5B9AAE825D649 E06692D15FBF0DF737B115DC4D012FD1D
Q ≡ Q (modp) = 7751A9EE18A8F5CE44AD73D613A4F465E06C6F9
AF4D229949C74DD6C 18D76FAF
Ôι,2 ≡ Q\ (mod/?2) = A9EB5FA1B2A981AA64CF88C382923DB64376F5F
D48152C08EEB61 14F31B7665F Ô2,ι Qi (mod ,) = D5A7D33C5FB75A033F2F0E8B20274B957FA3400
4ABB2C2AC1CA3F5320C5A9049
02,2 ≡ Qi (mod 2) = 76C9F5EFD066C73A2B5CE9758DB512DFC011F5B
5 AF7DA8D39A961 CC876F2DD8F
Ô3,ι ≡ Qi (mod ?,) = 2FEC0DC2DCA5BA7290B27BC8CC85C938A514B 8F5CFD55820A174FB5E6DF7B883
Ô3.2 ≡ Qi (mod/?2) = 010D488E6B0A38A1CC406CEE0D55DE59013389D
8549DE493413F34604A 160C 1369
Q Λ ≡ Q (mod/?,) = A2B32026B6F82B6959566FADD9517DB8ED85246
52145EE159DF3DC0C61FE3617 £4,2 ≡ Q (mod ?2) = 01 1A3BB9B607F0BD71BBE25F52B305C224899E5 F1F8CDC2FE0D8F9FF62B3C9860F
Polymorphisme de la clé privée GQ2 — Les diverses représentations possibles de la clé privée GQ2 s'avèrent équivalentes : elles se ramènent toutes à la connaissance de la factorisation du module n qui est la véritable clé privée GQ2. La représentation de la clé privée GQ2 a un effet sur le déroulement des calculs au sein de l'entité qui prouve, pas au sein de l'entité qui contrôle. Voici les trois principales représentations possibles de la clé privée GQ2. 1) La représentation classique des clés privées GO consiste à stocker m nombres privés Qt et la clé publique de vérification
(v, n) ; pour les schémas GQ2, cette représentation est concurrencée par les deux suivantes. 2) La représentation optimale en termes de charges de travail consiste à stocker le paramètre k, les / facteurs premiers p , mxf composantes privées Qtj et f-l paramètres des restes chinois. 3) La représentation optimale en termes de taille de clé privée consiste à stocker le paramètre k, les m nombres de base g et les /facteurs premiers p , puis, à commencer chaque utilisation en établissant ou bien m nombres privés Qι et le module n pour se ramener à la première représentation, ou bien mxf composantes privées Qtj et f-l paramètres des restes chinois pour se ramener à la seconde.
Parce que la sécurité du mécanisme d' authentification dynamique ou de signature numérique équivaut à la connaissance d'une décomposition du module, les schémas GQ2 ne permettent pas de distinguer simplement deux entités utilisant le même module. Généralement, chaque entité qui prouve dispose de son propre module GQ2. Toutefois, on peut spécifier des modules GQ2 à quatre facteurs premiers dont deux sont connus d'une entité et les deux autres d'une autre.
Authentification dynamique — Le mécanisme d' authentification dynamique est destiné à prouver à une entité appelée contrôleur l'authenticité d'une autre entité appelée démonstrateur ainsi que l'authenticité d'un éventuel message associé M, de sorte que le contrôleur s'assure qu'il s'agit bien du démonstrateur et éventuellement que lui et le démonstrateur parlent bien du même message M. Le message associé M est optionnel, ce qui signifie qu'il peut être vide.
Le mécanisme d' authentification dynamique est une séquence de quatre actes : un acte d'engagement, un acte de défi, un acte de réponse et un acte de contrôle. Le démonstrateur joue les actes d'engagement et de réponse. Le contrôleur joue les actes de défi et de contrôle. Au sein du démonstrateur, on peut isoler un témoin, de manière à isoler les paramètres et les fonctions les plus sensibles du démonstrateur, c'est-à- dire, la production des engagements et des réponses. Le témoin dispose du paramètre k et de la clé privée GQ2, c'est-à-dire, de la factorisation du module n selon l'une des trois représentations évoquées ci-dessus : « les / facteurs premiers et les m nombres de base, • les mxf composantes privées, les/facteurs premiers et/-l paramètres des restes chinois, • les m nombres privés et le module n.
Le témoin peut correspondre à une réalisation particulière, par exemple, • une carte à puce reliée à un PC formant ensemble le démonstrateur, ou encore, • des programmes particulièrement protégés au sein d'un PC, ou encore, • des programmes particulièrement protégés au sein d'une carte à puce. Le témoin ainsi isolé est semblable au témoin défini ci-après au sein du signataire. A chaque exécution du mécanisme, le témoin produit un ou plusieurs engagements R, puis, autant de réponses D à autant de défis d. Chaque ensemble {R, d, D) constitue un triplet GQ2.
Outre qu'il comprend le témoin, le démonstrateur dispose également, le cas échéant, d'une fonction de hachage et d'un message M. Le contrôleur dispose du module n, par exemple, à partir d'un annuaire de clés publiques ou encore à partir d'un certificat de clés publique ; le cas échéant, il dispose également de la même fonction de hachage et d'un message M'. Les paramètres publics GQ2, à savoir les nombres k, et g, à gm peuvent être donnés au contrôleur par le démonstrateur. Le contrôleur est apte à reconstituer un engagement R ' à partir de n'importe quel défi d et de n'importe quelle réponse D. Les paramètres k Qt m renseignent le contrôleur. Faute d'indication contraire, les m nombres de base de g, à gm sont les m premiers nombres premiers. Chaque défi d doit comporter m défis élémentaires notés de d à dm : un par nombre de base. Chaque défi élémentaire de d à dm est un nombre de 0 à 2A~'-1 (les nombres de v/2 à v-1 ne sont pas utilisés). Typiquement, chaque défi est codé par m fois k-l bits
(et non pas m fois k bits). Par exemple, avec k = 5 et m = 4 nombres de base 5, 11, 21 et 26, chaque défi comporte 16 bits transmis sur quatre quartets. Lorsque les (k-l)xm défis possibles sont également probables, le nombre (k-l)xm détermine la sécurité apportée par chaque triplet GQ2 : un imposteur qui, par définition, ne connaît pas la factorisation du module n a exactement une chance de succès sur 2{k~l)Xm. Lorsque (k-l)xm vaut de 15 à 20, un triplet suffit à assurer raisonnablement l' authentification dynamique. Pour atteindre n'importe quel niveau de sécurité, on peut produire des triplets en parallèle ; on peut également en produire en séquence, c'est-à- dire, répéter l'exécution du mécanisme.
1) L'acte d'engagement comprend les opérations suivantes. Lorsque le témoin n'utilise pas les restes chinois, il dispose du paramètre k, des m nombres privés de Q à Qm et du module n ; il tire au hasard et en privé un ou plusieurs aléas r (0 < r < n) ; puis, par k élévations successives au carré (mod n), il transforme chaque aléa r en un engagement R.
R ≡ X (mod n) Voici un exemple avec le jeu de clés précédent sans les restes chinois. r = 5E94B894AC24AF843131F437ClB1797EF562CFA53AB8AD426Cl AC016F 1 C89CFDA13120719477C3E2FB4B4566088E10EF9C010E8F09 C60D981512198126091996
R = 6BBF9FFA5D509778D0F93AE074D36A07D95FFC38F70C8D7E330 0EBF234FA0BC20A95152A8FB73DE81FAEE5BF4FD3EB7F5EE3E36D 7068D083EF7C93F6FDDF673A Lorsque le témoin utilise les restes chinois, il dispose du paramètre k, des/ facteurs premiers de /?, kpp de f-l paramètres des restes chinois et des mxf composantes privées Qtj ; il tire au hasard et en privé une ou plusieurs collections de / aléas : chaque collection comporte un aléa r par facteur premier/?, (0 < r <p) ; puis, par k élévations successives au carré (modp), il transforme chaque aléa r en une composante d'engagement R .
Ri ≡ r? (mod pt) Pour chaque collection de /composantes d'engagement, le témoin établit un engagement selon la technique des restes chinois. Il y a autant d'engagements que de collections d'aléas. R = Restes Chinois(R„ R2, ... R)
Voici un exemple avec le jeu de clés précédent et avec les restes chinois. r, = 5C6D37F0E97083C8D120719475E080BBBF9F7392F11F3E244FDF0
204E84D8CAE
Rx = 3DDF516EE3945CB86D20D9C49E0DA4D42281D07A76074DD4FE C5C7C5E205DF66 r2 = AC8F85034AC78112071947C457225E908E83A2621B0154ED15DB
FCB9A4915AC3
R2 = 01168CEC0F661EAA15157C2C287C6A5B34EE28F8EB4D8D34085
8079BCAE4ECB016 R = Restes Chinoise, , R) = OAE51D90CB4FDC3DC757C56E063C9ED8
6BE153B71FC65F47C123C27F082BC3DD15273D4A923804718573F2F0 5E991487D 17DAE0AAB7DF0D0FFA23E0FE59F95F0 Dans les deux cas, le démonstrateur transmet au contrôleur tout ou partie de chaque engagement R, ou bien, un code de hachage H obtenu en hachant chaque engagement R et un message M.
2) L'acte de défi consiste à tirer au hasard un ou plusieurs défis d composés chacun de m défis élémentaires dx d2 ... dm ; chaque défi élémentaire dt est l'un des nombres de 0 à v/2-1. d = d d2 ... dm
Voici un défi pour les deux exemples, c'est-à-dire avec k = 5 et m ≈ 4. d = 1011 = 11 = 'B' ; d2 = 0011 = 3 ; d3 = 0110 = 6 ; 4 = 1001 = 9, d = dx I I d | \ d3 | I 4 = 1011001 1 01101001 = B3 69 Le contrôleur transmet au démonstrateur chaque défi d. 3) L'acte de réponse comporte les opérations suivantes.
Lorsque le témoin n'utilise pas les restes chinois, il dispose du paramètre k, des m nombres privés de Q à Qm et du module n ; il calcule une ou plusieurs réponses D en utilisant chaque aléa r de l'acte d'engagement et les nombres privés selon les défis élémentaires. D ≡ rx Q^ x Q 2 x...Q^ (mod n)
Voici la suite de l'exemple sans les restes chinois.
D = 027E6E808425BF2B401FD00B15B642B1A8453BE8070D86C0A787 0E6C1940F7A6996C2D871EBE611812532AC5875E0E116CC8BA648FD 8E86BE0B2ABCC3CCBBBE4 Lorsque le témoin utilise les restes chinois, il dispose du paramètre k, des/ facteurs premiers de /?, kpp de f-l paramètres des restes chinois et des mxf composantes privées Qtj ; il calcule une ou plusieurs collections de / composantes de réponse en utilisant chaque collection d'aléas de l'acte d'engagement : chaque collection de composantes de réponse comporte une composante par facteur premier.
Di ≡ ri xQl d} x Q2 dj x ...Qχd;i (mod /?,) Pour chaque collection de composantes de réponse, le témoin établit une réponse selon la technique des restes chinois. Il y a autant de réponses que de défis. D = Restes Chinois( „ D2, ... D)
Voici la suite de l'exemple avec les restes chinois.
Dx = r xQx x dlxQ2 d2xQ3 dixQ4 * (mod/?,) =
C71F86F6FD8F955E2EE434BFA7706E38E5E715375BC2CD2029A4BD 572A9EDEE6 = r2xQX 2 d xQ21 ΛxQ32*xQ4? (modp) =
0BE022F4A20523F98E9F5DBEC0E10887902F3AA48C864A6C354693A
D0B59D85E
D = 90CE7EA43CB8EA89ABDD0C814FB72ADE74F02FE6F098ABB98 C8577A660B9CFCEAECB93BE1BCC356811BF12DD667E2270134C907
3B9418CA5EBF5191218D3FDB3
Dans les deux cas, le démonstrateur transmet chaque réponse D au contrôleur.
4) L'acte de contrôle consiste à contrôler que chaque triplet {R, d, D} vérifie une équation du type suivant pour une valeur non nulle.
Gfl (mod ri) ou bien, à rétablir chaque engagement : aucun ne doit être nul.
R≡ D1 (mod n)
Eventuellement, le contrôleur calcule ensuite un code de hachage H' en hachant chaque engagement rétabli R ' et un message M'. L' authentification dynamique est réussie lorsque le contrôleur retrouve ainsi ce qu'il a reçu à l'issue de l'acte d'engagement, c'est-à-dire, tout ou partie de chaque engagement R, ou bien, le code de hachage H.
Par exemple, une séquence d'opérations élémentaires transforme la réponse D en un engagement R '. La séquence comprend k carrés (mod ri) séparés par k-l divisions ou multiplications (mod ή) par des nombres de base. Pour la i ième division ou multiplication, qui s'effectue entre le i ième carré et le t'+l ième carré, le i ième bit du défi élémentaire dx indique s'il faut utiliser g,, le ième bit du défi élémentaire d2 indique s'il faut utiliser g2, ... jusqu'au i ième bit du défi élémentaire dm qui indique s'il faut utiliser gm.
Voici la fin de l'exemple sans les restes chinois. D = 027E6E808425BF2B401FD00B15B642B1A8453BE8070D86C0A787
0E6C1940F7A6996C2D871EBE611812532AC5875E0E116CC8BA648FD
8E86BE0B2ABCC3CCBBBE4
Elever au carré modulo n :
88B A681 DD641 D37D7 A7D9818D0DBEA82174073997C6C32F7FCAB3 0380C4C6229B0706D 1 AF6EBD84617771C31B4243C2F0376CAF5DCE
B644F098FAF3B1EB49B39
Multiplier par 5 fois 26 = 130, soit '82' modulo n :
6ECAB A65 A91 C22431 C413E4EC7C7B39FDE 14C9782C94FD6FA3CA
AD7AFE192B9440C1113CB8DBC45619595D263C1067D3D0A840FDE0 08B415028AB3520A6AD49D
Elever au carré modulo n :
0236D25049A5217B 13818B39AFB009E4D7D52B 17486EBF844D64CF7
5C4F652031041328B29EBF0829D54E3BD 17D AD218174 A01 E6E3 AA65
0C6FD62CC274426607 Multiplier par 21 , soit ' 15' modulo n :
2E7F40960A8BBF1899A06BBB6970CFC5B47C88E8F1 15B5DA594504
A92834BA405559256A705ABAB6E7F6AE82F4F33BF9E91227F0ACFA
4A052C91 ABF389725E93
Elever au carré modulo n : B802171 179648AD687E672D3A32640E2493BA2E82D5DC87DBA2B2C
C0325E7A71C50E8AE02E299EF868DD3FB916EBCBC0C5569B53D42
DAD49C956D8572E1285B0
Multiplier par 5 fois 11 fois 21 = 1155, soit '483' modulo n :
3305560276310DEFEC1337EB5BB5810336FDB28E91B350D485B09188 E0C4F1D67E68E9590DB7F9F39C22BDB453301362501 1248A8DC417C
667B419D27CB 1 1F72
Elever au carré modulo n :
8871C494081ABD1AEB8656C38B9BAAB57DBA72A4BD4EF9029ECB FFF540E55138C9F22923963151FD0753145DF70CE22E9D019990E41D
B6104005EEB7B1170559
Multiplier par 5 fois 1 1 fois 26 = 1430, soit '596' modulo n :
2CF5F76EEBF128A0701B56F837FF68F81A6A5D175D0AD67A14DAE
C6FB68C362B1DC0ADD6CFC004FF5EEACDF794563BB09A17045EC FFF88F5136C7FBC825BC50C
Elever au carré modulo n :
6BBF9FFA5D509778DOF93AE074D36A07D95FFC38F70C8D7E3300EB
F234FA0BC20A95152A8FB73DE81FAEE5BF4FD3EB7F5EE3E36D7O6
8D083EF7C93F6FDDF673A On retrouve bien l'engagement R. L' authentification est réussie.
Voici la fin de l'exemple avec les restes chinois.
D = 90CE7EA43CB8EA89ABDD0C814FB72ADE74F02FE6F098ABB98
C8577A660B9CFCEAECB93BE1BCC356811BF12DD667E2270134C907
3B9418CA5EBF5191218D3FDB3 Elever au carré modulo n :
770192532E9CED554A8690B88F16D013010C903172B266C1133B136E
BE3EB5F13B170DD41F4ABE14736ADD3A70DFA43121B6FC5560CD
D4B4845395763C792A68
Multiplier par 5 fois 26 = 130, soit '82' modulo n : 6EE9BEF9E52713004971ABB9FBC31 145318E2A703C8A2FB3E144E77
86397CD8D 1910E70FA86262DB771 AD 1565303 AD6E4CC6E90AE3646
B461D3521420E240FD4
Elever au carré modulo n :
D9840D9A8E80002C4D0329FF97D7AD163D8FA98F6AF8FE2B2160B2 126CBBDFC734E39F2C9A39983A426486BC477F20ED2CA59E664C23
CA0E04E84F2F0AD65340
Multiplier par 21 , soit '15' modulo n :
D7DD7516383F78944F2C901 16E1 BEE0CCDC8D7CEC5D7D 1795ED33 BFE8623DB3D2E5B6C5F62A56A2DF4845A94F32BF3CAC360C7782B
5941924BB4BE91F86BD85F
Elever au carré modulo n :
DD34020DD0804C0757F29A0CBBD7B46A1 B AF949214F74FDFE021 B
626ADAFBAB5C3F1602095DA39D70270938AE362F2DAE0B91485531 0C7BCA328A4B2643DCCDF
Multiplier par 5 fois 11 fois 21 = 1155, soit '483' modulo n :
038EF55B4C826D189C6A48EFDD9DADBD2B63A7D675A0587C85596
18EA2D83DF552D24EAF6BE983FB4AFB3DE7D4D2545190F1B1F946
D327A4E9CA258C73A98F57 Elever au carré modulo n :
D1232F50E30BC6B7365CC2712E5CAE079E47B971DA03185B33E918E
E6E99252DB3573CC87C604B327E5B20C7AB920FDF142A8909DBBA1
C04A6227FF18241C9FE
Multiplier par 5 fois 1 1 fois 26 = 1430, soit '596' modulo n : 3CC768F12AEDFCD4662892B9174A21D1F0DD9127A54AB63C984019
BED9BF88247EF4CCB56D71E0FA30CFB0FF28B7CE45556F744C1FD7
51BFBCA040DC9CBAB744
Elever au carré modulo n :
0AE51D90CB4FDC3DC757C56E063C9ED86BE153B71FC65F47C123C 27F082BC3DD15273D4A923804718573F2F05E991487D17DAE0AAB7
DF0D0FFA23E0FE59F95F0
On retrouve bien l'engagement R. L' authentification est réussie.
Signature numérique
Le mécanisme de signature numérique permet à une entité appelée signataire de produire des messages signés et à une entité appelée contrôleur de vérifier des messages signés. Le message M est une séquence binaire quelconque : il peut être vide. Le message M est signé en lui adjoignant un appendice de signature qui comprend un ou plusieurs engagements et / ou défis, ainsi que les réponses correspondantes.
Le contrôleur dispose du module n, par exemple, à partir d'un annuaire de clés publiques ou encore à partir d'un certificat de clés publique ; il dispose également de la même fonction de hachage. Les paramètres publics GQ2, à savoir les nombres k, m et g, à gm peuvent être donnés au contrôleur par le démonstrateur, par exemple, en les mettant dans l'appendice de signature.
Les nombres k et m renseignent le contrôleur. D'une part, chaque défi élémentaire, de d à dm, est un nombre de 0 à 2*~'-l (les nombres v/2 à v-1 ne sont pas utilisés). D'autre part, chaque défi d doit comporter m défis élémentaires notés de dx à dm, autant que de nombres de base. En outre, faute d'indication contraire, les m nombres de base, de g, à gm, sont les m premiers nombres premiers. Avec (k-l)xm valant de 15 à 20, on peut signer avec quatre triplets GQ2 produits en parallèle ; avec (k-l)xm valant 60 ou plus, on peut signer avec un seul triplet GQ2. Par exemple, avec k = 9 et m = 8, un seul triplet GQ2 suffit ; chaque défi comporte huit octets et les nombres de base sont 2, 3, 5, 7, 11, 13, 17 et 19.
L'opération de signature est une séquence de trois actes : un acte d'engagement, un acte de défi et un acte de réponse. Chaque acte produit un ou plusieurs triplets GQ2 comprenant chacun : un engagement R (≠ 0), un défi d composé de m défis élémentaires notés par dx, d2, ... dm et une réponse !) (≠ 0).
Le signataire dispose d'une fonction de hachage, du paramètre k et de la clé privée GQ2, c'est-à-dire, de la factorisation du module n selon l'une des trois représentations évoquées ci-dessus. Au sein du signataire, on peut isoler un témoin qui exécute les actes d'engagement et de réponse, de manière à isoler les fonctions et les paramètres les plus sensibles du démonstrateur. Pour calculer engagements et réponses, le témoin dispose du paramètre k et de la clé privée GQ2, c'est-à-dire, de la factorisation du module n selon l'une des trois représentations évoquées ci-dessus. Le témoin ainsi isolé est semblable au témoin défini au sein du démonstrateur.
Il peut correspondre à une réalisation particulière, par exemple, • une carte à puce reliée à un PC formant ensemble le signataire, ou encore, • des programmes particulièrement protégés au sein d'un PC, ou encore, • des programmes particulièrement protégés au sein d'une carte à puce. 1) L'acte d'engagement comprend les opérations suivantes.
Lorsque le témoin dispose des m nombres privés Qx à Qm et du module n, il tire au hasard et en privé un ou plusieurs aléas r (0 < r < ri) ; puis, par k élévations successives au carré (mod n), il transforme chaque aléa r en un engagement R. R ≡ rv (mod n)
Lorsque le témoin dispose des / facteurs premiers de /?, à pf et des mxf composantes privées Qυ, il tire au hasard et en privé une ou plusieurs collections de / aléas : chaque collection comporte un aléa r par facteur premier/?, (0 < r </?,) ; puis, par k élévations successives au carré (modp), il transforme chaque aléa r en une composante d'engagement R
Rt ≡ η (mod ;?,.) Pour chaque collection de /composantes d'engagement, le témoin établit un engagement selon la technique des restes chinois. Il y a autant d'engagements que de collections d'aléas. R = Restes Chinois(R„ R2, ... R)
2) L'acte de défi consiste à hacher tous les engagements R et le message à signer M pour obtenir un code de hachage à partir duquel le signataire forme un ou plusieurs défis comprenant chacun m défis élémentaires ; chaque défi élémentaire est un nombre de 0 à v/2-1 ; par exemple, avec k = 9 et m = 8, chaque défi comporte huit octets. Il y a autant de défis que d'engagements. d = dx d^ ... dm, extraits du résultat Hash( , R) 3) L'acte de réponse comporte les opérations suivantes. Lorsque la témoin dispose des m nombres privés Qx à Qm et du module n, il calcule une ou plusieurs réponses D en utilisant chaque aléa r de l'acte d'engagement et les nombres privés selon les défis élémentaires. D ≡ r x X (mod ) Lorsque le témoin dispose des / facteurs premiers de /?, à pf et des mxf composantes privées Qt , il calcule une ou plusieurs collections de / composantes de réponse en utilisant chaque collection d'aléas de l'acte d'engagement : chaque collection de composantes de réponse comporte une composante par facteur premier.
Dl ≡ rl xXl (mod ?;) Pour chaque collection de composantes de réponse, le témoin établit une réponse selon la technique des restes chinois. Il y a autant de réponses que de défis. D = Restes Chinois^,, D2, ... D)
Le signataire signe le message M en lui adjoignant un appendice de signature comprenant : ou bien, chaque triplet GQ2, c'est-à-dire, chaque engagement R, chaque défi d et chaque réponse D, - ou bien, chaque engagement R et chaque réponse D correspondante, ou bien, chaque défi d et chaque réponse D correspondante. Le déroulement de l'opération de vérification dépend du contenu de l'appendice de signature. On distingue les trois cas. Au cas où l'appendice comprend un ou plusieurs triplets, l'opération de contrôle comporte deux processus indépendants dont la chronologie est indifférente. Le contrôleur accepte le message signé si et seulement si les deux conditions suivantes sont remplies.
D'une part, chaque triplet doit être cohérent (une relation appropriée du type suivant doit être vérifiée) et recevable (la comparaison doit se faire sur une valeur non nulle).
R x G?1 (mod n)
Par exemple, on transforme la réponse D par une séquence d'opérations élémentaires : k carrés (mod n) séparés par k-l multiplications ou divisions (mod ri) par des nombres de base. Pour la ième multiplication ou division, qui s'effectue entre le i ième carré et le i+l ième carré, le i ième bit du défi élémentaire dx indique s'il faut utiliser g,, le i ième bit du défi élémentaire d2 indique s'il faut utiliser g2, ... jusqu'au i ième bit du défi élémentaire dm qui indique s'il faut utiliser gm. On doit ainsi retrouver chaque engagement R présent dans l'appendice de signature.
D'autre part, le ou les triplets doivent être liés au message M. En hachant tous les engagements R et le message M, on obtient un code de hachage à partir duquel on doit retrouver chaque défi d. d = dx d2 ... dm, identiques à ceux extraits du résultat Hash( , R) Au cas où l'appendice ne comprend pas de défi, l'opération de contrôle commence par la reconstitution de un ou plusieurs défis d ' en hachant tous les engagements R et le message M. d' = d d ... d'm, extraits du résultat Hash( , R) Ensuite, le contrôleur accepte le message signé si et seulement si chaque triplet est cohérent (une relation appropriée du type suivant est vérifiée) et recevable (la comparaison se fait sur une valeur non nulle).
R x (mod n) Au cas où l'appendice ne comprend pas d'engagement, l'opération de contrôle commence par la reconstitution de un ou plusieurs engagements R ' selon une des deux formules suivantes, celle qui est appropriée. Aucun engagement rétabli ne doit être nul.
R'≡ D2 (mod n)
Ensuite, le contrôleur doit hacher tous les engagements R ' et le message M de façon à reconstituer chaque défis d. d = dx d2 ... dm, identiques à ceux extraits du résultat Hash( , R ') Le contrôleur accepte le message signé si et seulement si chaque défi reconstitué est identique au défi correspondant figurant en appendice.

Claims

Revendications
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é ; ledit procédé mettant en œuvre :
- un module public n constitué par le produit de f facteurs premiers pv p2, ... pf ( êtant supérieur ou égal à 2) ou mettant en œuvre les f facteurs premiers ;
- m nombres de base entiers gL, g2 , ... gm distincts (m étant supérieur ou égal à 1), g; étant inférieur aux f facteurs premiers pv p,, ... pf ;
- m couples de valeurs privées Qv Q2, ... Qm et publiques G15 G,, ... Gm (m étant supérieur ou égal à 1) ou des paramètres dérivés de ceux-ci ; ledit module et lesdites valeurs privées et publiques étant liés par des relations du type : G;. Qj v ≡ 1 mod n ou G; ≡ Q; v mod n ladite valeur publique Gj étant le carré j 2 du nombre de base, v désignant un exposant public de la forme : v = 2k où k est un paramètre de sécurité plus grand que 1 ; le procédé selon l'invention comprenant l'étape de produire les f facteurs premiers px , p2 , ... pf et/ou les m nombres de base gx , g2 , ... gm de telle sorte que les conditions suivantes soient satisfaites :
Première condition : chacune des équations : xv ≡ g; 2 mod n (1) a des solutions en x dans l'anneau des entiers modulo n ;
Deuxième condition : dans le cas où G; ≡ Q;' mod n, parmi les m nombres q; obtenus en élevant Q; au carré modulo n, k-1 fois de rang, l'un d'entre eux est différent de ± gj (c'est-à-dire est non trivial), dans le cas où G Q; V ≡ 1 mod n, parmi les m nombres q; obtenus en élevant l' inverse de Q; modulo n au carré modulo n, k-1 fois de rang, l'un d'entre eux est différent de ± ; (c'est-à-dire est non trivial) ; Troisième condition : parmi les 2m équations : x2 ≡ gj mod n (2) au moins l'une d'entre elles a des solutions en x dans l'anneau des entiers modulo n ; le procédé selon l'invention pour produire les f facteurs premiers px , p2, ... pf , et/ou les m nombres de base gx , g2 ... gm comprenant l'étape de choisir en premier :
• le paramètre de sécurité k, • les m nombres de base g1 ? g, , ... gm, et/ou les f facteurs premiers px , p2 , ... pf
2. Procédé selon la revendication 1 tel que les m nombres de base gv g,, ... gm, sont choisis au moins en partie parmi les premiers nombres entiers.
3. Procédé selon l'une des revendications 1 ou 2, tel que le paramètre de sécurité k est un petit nombre entier, notamment inférieur à 100.
4. Procédé selon l'une quelconque des revendications 1 à 3, tel que la taille du module n est supérieure à plusieurs centaines de bits.
5. Procédé selon l'une quelconque des revendications 1 à 4, tel que les f facteurs premiers px , p2, ... pf ont une taille voisine de la taille du module n divisé par le nombre f de facteurs.
6. Procédé selon l'une quelconques des revendications 1 à 5 tel que pour tester la première condition, on vérifie la compatibilité des nombres k, p, g en mettant en œuvre l'algorithme ci-après :
- on désigne par h un nombre tel que 2h divise le rang de g par rapport à p et tel que 2h+1 ne le divise pas,
- on calcule h à partir du symbole de Legendre (g | p) et d'un nombre b égal à une racine 2'- ième primitive de l'unité dans CG(p),
• si (g | p) = -1 alors h= t, • si (g | p) = + 1 avec t = 1 , alors h= 0,
• si (g | p) = +1 avec t > 1, alors on applique la clé ((p-1+21)/ 2t+1, p) à G, on obtient ainsi un résultat w :
• • si w = +g, alors h = 0,
• • si w = p-g, alors h = +1, • • sinon, on met en œuvre le sous-module de calcul ci- après, en initialisant la variable c en lui attribuant la valeur b, puis en itérant les étapes suivantes pour des valeurs de i allant de t-1 à 2 : étape 1 : on applique la clé (21, p) à w/g(modp), * si le résultat obtenu est égal à +1 , on passe à l'étape 2, * si le résultat obtenu est égal à -1, on attribue à h la valeur i et on remplace w par w.c(modp), étape 2 : on remplace c par c2 (modp), la valeur de h recherchée est celle obtenue la dernière fois où l'application de la clé (21, p). conformément à l'étape 1, a produit un résultat égal à -1 , (on rappelle que
- k, g, p sont incompatibles lorsque h>l et lorsque k+h >t+l,
- k, g, p sont compatibles lorsque h = 0 ou 1, quelle que soit la valeur de k, ou lorsque h>l et lorsque k+h ≤ t+1).
(dans ledit algorithme, le symbole de Legendre et t ont le sens défini dans la description).
7. Procédé selon la revendication 6 tel que pour tester la deuxième condition, on vérifie qu'au moins un jeu {δ, Λ ... ôl f} est variable ou nul,
(ô à le sens défini dans la description).
8. Procédé selon la revendication 7 tel que pour tester la troisième condition, on vérifie qu'il existe un nombre de base g, de [ à gm tel que les f symboles de Legendre (g, | p) à (g, | pf) soient tous égaux à +1 ou bien les f symboles de Legendre (-g, | p) à (-g, | pf) soient tous égaux à +1.
9. Procédé selon l'une quelconques des revendications 1 à 8 tel que pour calculer les f.m composantes privées Q^ j des valeurs privées Q15 Q2,
• •• Qm( ι, j Qi °d Pj), dans le cas où Gj ≡ Q;v mod n :
- si t = 1 (c'est-à-dire si p^ 3 (mod4)) :
• on calcule un nombre s tel que s ≡ ((p + l)/4)k (mod(Pj -l)/2),
• on en déduit la clé ( s , p ), • on applique la clé ( sJ5 p ) à Gj ,
• on obtient ainsi : w ≡ G; SJ (mod p ),
• les deux valeurs possibles de Qj ^ sont w, Pj -w,
- si t = 2 (c'est-à-dire si p ≡ 5 (mod8)) :
• on calcule un nombre s tel que s} ≡ ((p + 3)/8)k (mod(pJ -l)/4), • on en déduit la clé ( s , p ),
• on applique la clé ( sJ5 p ) à Gf ,
• on obtient ainsi : w ≡ Gj SJ (mod p ) et w'≡ w.z(mod p^,
• les quatre valeurs possibles de Q. . sont w, p -w, w' , p} -w' , (dans ledit algorithme z a le sens défini dans la description). - si t >2 (c'est-à-dire si Pj≡ 2l + l (mod2t+1)) et si h=0 ou si h = 1,
• on calcule s} tel que ^ ≡ ((pj -1 + 2)! 2t+1)k (mod(Pj -1)/ 2),
• on en déduit la clé ( s , p ),
• on applique la clé ( sJ5 p ) à G; ,
• on obtient ainsi : w ≡ G} SJ (mod p ), • les 2mm(k t) valeurs possibles de Q; sont égales au produit de w par l'une quelconque des racines 2mιn(k t)-ièmes de l'unité dans CG(Pj),
- si t >2 (c'est-à-dire si p ≡ 2l + l (mod2t+1)) et si h>l et si h+k < t+1,
• on calcule ^ tel que Sj ≡ ((Pj -1 + 2)1 2t+1) +h"1(mod(pJ -1)/ 2l),
• on en déduit la clé ( s , p ), • on applique la clé ( s , j) à la puissance 2h l -ième de G; ,
• on obtient ainsi w,
• les 2k valeurs possibles de Qj j appartiennent à l'ensemble des produits de w par les racines 2 +h l -ièmes primitives de l'unité dans CG j).
10. Procédé selon la revendication 9 tel que pour calculer les composantes privées Qj j dans le cas où Gf . Q ≡ 1 . mod n, on substitue s} par ((p, -l)/2l) - Sj dans la clé ( sJ5 p:).
11. Procédé faisant application du procédé, selon l'une quelconque des revendications 1 à 8, permettant de produire les f facteurs premiers p , p2 , ... pf ou les m nombres de base g g2 , ... gm ; 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 m couples de valeurs privées Qv Q2, ... Qm et publiques Gj, G2, ... Gm (m étant supérieur ou égal à 1) ou des paramètres dérivés de ceux-ci, notamment au moyen des composantes privées Qj j ; ledit procédé mettant en œuvre selon les étapes ci-après une entité appelée témoin ; ladite entité témoin disposant des f facteurs premiers pjet ou des paramètres des restes chinois des facteurs premiers ; et/ou du module public n et/ou des m valeurs privées Qf et/ou des f.m composantes privées Qj j des valeurs privées Qjβt 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 ≡ rΛ mod n où rest un aléa tel que 0 < r< n, • soit
•• en effectuant des opérations du type Ri ≡ rj V mod p; où r. est un aléa associé au nombre premier p; tel que 0 < r-j < P; , chaque r{ appartenant à une collection d'aléas {rl , r2 , ... rf} ,
•• 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 dj 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 :
D ≡ r . Qx dl . Q2 d2. ... Qm dm mod n • soit
•• en effectuant des opérations du type :
Di ≡ ri . Q d\ Qi 2. ... Q,m dm 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 et d'engagements R, chaque groupe de nombres R, d, D constituant un triplet noté {R, d, D}.
EP00966246A 1999-10-01 2000-09-29 Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message Withdrawn EP1216536A1 (fr)

Applications Claiming Priority (9)

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
FR9912468 1999-10-01
FR9912467 1999-10-01
FR9912465 1999-10-01
FR9912465A 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
FR9912468A 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.
FR0009644 2000-07-21
FR0009644 2000-07-21
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

Publications (1)

Publication Number Publication Date
EP1216536A1 true EP1216536A1 (fr) 2002-06-26

Family

ID=27445921

Family Applications (2)

Application Number Title Priority Date Filing Date
EP00966246A Withdrawn 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
EP00966248A Expired - Lifetime EP1216537B1 (fr) 1999-10-01 2000-09-29 Procede, systeme, dispositif a prouver l'authenticite d'un entite ou l'integrite d'un message

Family Applications After (1)

Application Number Title Priority Date Filing Date
EP00966248A Expired - Lifetime EP1216537B1 (fr) 1999-10-01 2000-09-29 Procede, systeme, dispositif a prouver l'authenticite d'un entite ou l'integrite d'un message

Country Status (8)

Country Link
US (1) US7080254B1 (fr)
EP (2) EP1216536A1 (fr)
JP (3) JP2004527139A (fr)
CN (2) CN1215678C (fr)
AT (1) ATE518327T1 (fr)
AU (2) AU765538B2 (fr)
CA (2) CA2388084A1 (fr)
WO (2) WO2001026279A1 (fr)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2842052B1 (fr) * 2002-07-05 2004-09-24 France Telecom Procede et dispositifs cryptographiques permettant d'alleger les calculs au cours de transactions
JP5328186B2 (ja) * 2008-03-21 2013-10-30 ルネサスエレクトロニクス株式会社 データ処理システム及びデータ処理方法
CN102396178B (zh) * 2009-04-24 2014-12-10 日本电信电话株式会社 信息生成装置、方法
JP5593850B2 (ja) 2010-05-31 2014-09-24 ソニー株式会社 認証装置、認証方法、プログラム、及び署名生成装置
JP5594034B2 (ja) * 2010-07-30 2014-09-24 ソニー株式会社 認証装置、認証方法、及びプログラム
JP5790287B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
EP2966803A1 (fr) * 2014-07-11 2016-01-13 Thomson Licensing Procédé et dispositif de génération de clé cryptographique
CN106304054B (zh) * 2016-08-29 2019-06-07 西安电子科技大学 一种lte***中的保护数据完整性的方法及装置
CN110519051B (zh) * 2019-08-22 2021-06-01 武汉理工大学 r参数和秘密双乘积的SM9签名协同生成方法及***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2620248B1 (fr) * 1987-09-07 1989-11-24 France Etat Procedes d'authentification d'accreditations ou de messages a apport nul de connaissance et de signature de messages
AU622915B2 (en) 1988-05-19 1992-04-30 Ncr Corporation Method and device for authentication
EP0381523A3 (fr) * 1989-02-02 1993-03-03 Kabushiki Kaisha Toshiba Procédé de calcul assisté par serveur et unité distribuée de traitement d'information
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO0126278A1 *

Also Published As

Publication number Publication date
CN100380862C (zh) 2008-04-09
AU7669900A (en) 2001-05-10
CA2388084A1 (fr) 2001-04-12
AU766102B2 (en) 2003-10-09
JP4809310B2 (ja) 2011-11-09
CA2386748C (fr) 2008-11-25
WO2001026279A1 (fr) 2001-04-12
CN1387714A (zh) 2002-12-25
CN1215678C (zh) 2005-08-17
EP1216537B1 (fr) 2011-07-27
ATE518327T1 (de) 2011-08-15
US7080254B1 (en) 2006-07-18
JP2003511899A (ja) 2003-03-25
EP1216537A1 (fr) 2002-06-26
AU765538B2 (en) 2003-09-18
WO2001026278A1 (fr) 2001-04-12
JP2008048451A (ja) 2008-02-28
CA2386748A1 (fr) 2001-04-12
JP2004527139A (ja) 2004-09-02
CN1433609A (zh) 2003-07-30
AU7670000A (en) 2001-05-10

Similar Documents

Publication Publication Date Title
EP1738517B1 (fr) Procedes et dispositifs cryptographiques sans transfert de connaissance
EP0311470B1 (fr) Procédés et systèmes d&#39;authentification d&#39;accréditations ou de messages à apport nul de connaissance et de signature de messages
EP1151576B1 (fr) Procede cryptographique a cles publique et privee
JP4809310B2 (ja) エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス
EP0346180B1 (fr) Dispositif de communication sécurisée de données
EP2296308A1 (fr) Procédé de signature de chiffrement de messages à sécurité renforcée, procédé de vérification de signature, dispositifs et produits programmes d&#39;ordinateur correspondants
EP1145473B1 (fr) Procédé, système, dispositif destinés à prouver l&#39;authenticité d&#39;une entité et/ou l&#39;integrité et/ou l&#39;authenticité d&#39;un message aux moyens de facteurs premiers particuliers
CA2360953C (fr) Procede d&#39;authentification ou de signature a nombre de calculs reduit
FR2716058A1 (fr) Procédé de signature numérique et d&#39;authentification de messages utilisant un logarithme discret.
FR2773027A1 (fr) Procede de signature numerique
FR2877453A1 (fr) Procede de delegation securisee de calcul d&#39;une application bilineaire
FR2831738A1 (fr) Procede cryptographique a cle publique base sur les groupes de tresses
EP0743775B1 (fr) Procédé de signature numérique à connaissance nulle, permettant d&#39;élaborer une signature résistant aux collisions
FR2788912A1 (fr) Procede, systeme, dispositif destines a prouver l&#39;authenticite d&#39;une entite et/ou l&#39;integrite et/ou l&#39;authenticite d&#39;un message aux moyens de facteurs premiers particuliers
FR3070517A1 (fr) Systeme et procede d&#39;authentification et de signature numerique
KR20020060189A (ko) 엔티티의 인증성 또는 메시지의 무결성을 검증하기 위한특수 키 세트
FR2850502A1 (fr) Procedes d&#39;authentification numerique et de signature numerique a faible cout calculatoire et systeme signataire
FR2836768A1 (fr) Procede et dispositif pour former une signature numerique
WO2011027071A1 (fr) Procédé cryptographique d&#39;abonnement anonyme a un service

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20020408

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

AX Request for extension of the european patent

Free format text: AL;LT;LV;MK;RO;SI

17Q First examination report despatched

Effective date: 20061214

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20070403