[go: up one dir, main page]

WO2021165625A1 - Method for calculating a session key, and method for recovering such a session key - Google Patents

Method for calculating a session key, and method for recovering such a session key Download PDF

Info

Publication number
WO2021165625A1
WO2021165625A1 PCT/FR2021/050300 FR2021050300W WO2021165625A1 WO 2021165625 A1 WO2021165625 A1 WO 2021165625A1 FR 2021050300 W FR2021050300 W FR 2021050300W WO 2021165625 A1 WO2021165625 A1 WO 2021165625A1
Authority
WO
WIPO (PCT)
Prior art keywords
recovery
value
equal
user
values
Prior art date
Application number
PCT/FR2021/050300
Other languages
French (fr)
Inventor
Ghada ARFAOUI
Olivier Sanders
Adina Ioana NEDELCU
Original Assignee
Orange
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange filed Critical Orange
Publication of WO2021165625A1 publication Critical patent/WO2021165625A1/en

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/308Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information retaining data, e.g. retaining successful, unsuccessful communication attempts, internet access, or e-mail, internet telephony, intercept related information or call content
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Definitions

  • the present invention belongs to the general field of cryptography. It relates more particularly to a method for calculating a session key for securing a communication session between two user entities. It also relates to a method for recovering, during a communication session between such user entities, said session key by at least one entity which differs from said two user entities.
  • the invention finds a particularly advantageous application, although in no way limiting, in the aid for the investigation concerning the nature of exchanges carried out between two user entities, in particular when these exchanges are likely to relate to a conflicting situation, for example. example in a professional environment.
  • Some of these encryption techniques consist in particular in calculating a single secret key which is therefore intended to be commonly used by said two user entities during a future communication session.
  • Said secret key also called “session key”, therefore constitutes a secret shared by said user entities, and is determined by each of them at the end of a calculation method involving exchanges of different cryptographic values.
  • the session key determined by the two user entities can, although being a priori secret, be the subject of a recovery request sent by an entity, called a “recovery entity”, and authorized by an entity, called an “authorization entity”.
  • recovery reference is made here to the recovery of the session key by the recovery entity.
  • This lawyer can therefore initiate a dialogue with an appropriate service in the department to which said employee belongs, such as for example a service in charge of human resources and which therefore plays the role here of said recovery entity. If the lawyer authorizes it, the human resources department can launch a procedure for recovering the session key used during a communication session between the employee and his line manager who here play the role of said user entities. In this way, the human resources department can have access, with the help of the network administrator, to the messages exchanged between the employee and his line manager thanks to the session key thus retrieved, and therefore ultimately observe the harassment situation. .
  • the method for calculating the session key conventionally comprises transmission, from a first user entity to a second user entity, of a set of values.
  • a transmission takes place in particular via the communication network managed by said at least one management entity which therefore plays the role of intermediary between said two user entities.
  • the values of this set are values calculated by said first user entity as a function of a secret key which is specific to it as well as respective public keys of the management, authorization and recovery entities.
  • the second user entity transmits, via the network managed by said at least one management entity and to the first user entity, another set of values which it has itself calculated as a function of a secret key which it receives. is clean as well as said respective public keys of the management, authorization and recovery entities.
  • each user entity calculates the session key from all or part of the values received from the other user entity.
  • a recovery entity requests to recover the session key thus calculated by the user entities and used by them during a communication session, and obtains the authorization to do so from the authorization entity, a recovery method based on cooperation between said management, authorization and recovery entities is implemented.
  • the management entity transmits to the authorization and recovery entities one of the values, called the “pivot value” which has been the subject of a transmission between the user entities during the method of calculating the session key.
  • Each of the management, authorization and recovery entities then calculates, as a function of this value transmitted by the management entity as well as of a secret key which is specific to it, an intermediate value.
  • the management and authorization entities transmit their respective intermediate values to the recovery entity which can determine the session key from these received intermediate values as well as from its own intermediate value.
  • said second recovery entity would necessarily have to receive, from the management entity, said pivot value.
  • this pivot value is essential for the calculations making it possible to retrieve the session key, given the way in which said session key is calculated by the user entities. It is therefore understood that the two recovery entities would share the same pivot value, and consequently also the same public key so that each is able to recover the same session key, which goes against possible independence. required between them.
  • the object of the present invention is to remedy all or part of the drawbacks of the prior art, in particular those set out above, by proposing a solution which makes it possible to calculate a session key intended to be used by two user entities to communicate with each other in a secure manner during a communication session, while offering the possibility for two recovery entities to recover said session key anonymously one vis-à-vis the other.
  • the invention relates to a method for calculating a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being put in.
  • Said method comprises steps of:
  • a value K equal to 1 B 1 ( ⁇ 1 u) x B 2 ( ⁇ 2 u) x B 3 (( ⁇ 3 + ⁇ 4) u), where ⁇ m , m ranging from 1 to 4, is a quantity function of pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and of a data associated with ⁇ m ,
  • the values B 1 , B 2 and B 3 are respectively raised to the powers ⁇ 1 xu, ⁇ 2 xu and (0 3 + ⁇ 4 ) x u.
  • the values A 1 , A 2 and A 3 are respectively raised to the powers ⁇ 1 xv, ⁇ 2 xv and ( ⁇ 3 + ⁇ 4 ) x v.
  • Said calculation method differs remarkably from the prior art in that it makes it possible to calculate values C 3 and C 4 from which the recovery devices can perform processing to recover the session key, as is detailed later.
  • the calculation method according to the invention is not satisfied with allowing two user devices to communicate with each other thanks to the calculated session key, but also offers the possibility that said session key can be retrieved by two communication entities. recovery and anonymously to each other.
  • the calculation method may also include one or more of the following characteristics, taken in isolation or in any technically possible combination.
  • Such arrangements make it possible to verify whether the calculation of W by at least one of said recovery entities E 3 , E 4 is not tainted with an error, such an error possibly having its origin, for example, in the fact that the recovery entity. recovery in question is corrupted or else poorly configured to perform the invention. In this way, it is possible to block a recovery entity E 3 , E 4 whose calculation of W is erroneous in order to prevent it subsequently from recovering the session key.
  • the invention also proposes different modes of implementation of the calculation method, in which one or more checks are carried out in order to determine whether the different values respectively calculated by the devices U 1 , U 2 and E 1 are erroneous or not, and , in the event of an erroneous calculation, allow said calculation method to be stopped.
  • the management device E 1 checks if, for a given bilinear coupling e:
  • - e [C 3 , g] is equal to e [D, pk ⁇ E 3 ⁇ ]
  • - e [C 4 , g] is equal to e [D, pk ⁇ E 4 ⁇ ]
  • U user device 1 upon receipt of the value D from the user device U 2, U user device 1 calculates a value D equal to A n and checks that said value D is equal to said value D, the calculation method being stopped if said equality is not verified.
  • a user device Ui, i ranging from 1 to 2 is associated with a public key pk ⁇ Ui ⁇ as well as a private key sk ⁇ Ui ⁇ , and:
  • the user device U 1 determines, by means of its private key sk ⁇ U 1 ⁇ , a signature ⁇ 1 of a message function of pk ⁇ U 1 ⁇ , pk ⁇ U 2 ⁇ , A, A 1 , A 2 , A 3 , A 4 , A 5 and N 1 , where N 1 is a random value, the signature ⁇ 1 and the value N 1 also being transmitted to the user device U 2 via the management device E 1 ,
  • the user device U 2 determines, by means of its private key sk ⁇ U 2 ⁇ , a signature ⁇ 2 of a message function of pk ⁇ U 1 ⁇ , pk ⁇ U 2 ⁇ , B, D, B 1 , B 2 , B 3 and N 2 , where N 2 is a random value, as well as a signature ⁇ 3 of a message function of pk ⁇ U 1 ⁇ , pk ⁇ U 2 ⁇ , B, D, C 3 , C 4 and N 3 , where N 3 is a random value, the signatures ⁇ 2 , ⁇ 3 and the values N 2 , N 3 also being transmitted to the user device U 1 via the management device E 1 , the signature ⁇ 1 being verified by the management device E 1 before its transmission to the user device U 2 , as well as by said user device U 2 after transmission, and the signatures ⁇ 2 and ⁇ 3 being verified by the management device E 1 before their respective transmissions to the user device U 1 , as well as by said
  • the random value N 1 corresponds for example to a number of the “nonce” type, this designation being well known to those skilled in the art. This remark also applies to the other random values N 2 , N 3 and N 4 described below.
  • the invention relates to a method of communication between two user devices U 1 , U 2 during a communication session implemented via a communication network managed by at least one management device E 1 , said communication session being secured by means of a session key that can be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3 , E 4 , a user device Ui, i ranging from 1 to 2 , being associated with a public key pk ⁇ Ui ⁇ as well as with a private key sk ⁇ Ui ⁇ , a device Ej, j ranging from 1 to 4 , being associated to a public key pk ⁇ Ej ⁇ and a private key sk ⁇ E j ⁇ , pk ⁇ E j ⁇ being equal to g sk ⁇ Ej ⁇ where g is a generator of a group of prime order p, a public value W equal to g (sk sk ⁇ E 3 ⁇ ⁇
  • a user device Ui, i ranging from 1 to 2 is associated with a public key pk ⁇ Ui ⁇ as well as a private key sk ⁇ Ui ⁇ , and the session key is calculated in accordance with a calculation method according to the invention.
  • the invention relates to a method for recovering a session key by means of which a communication session between two user devices U 1 , U 2 can be secured, said communication session being implemented via a communication network managed by at least one management device E 1 , said recovery method being implemented following at least one request for recovery of said session key authorized by an authorization device E 2 and sent by a recovery among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk ⁇ Ej ⁇ as well as with a private key sk ⁇ Ej ⁇ , pk ⁇ Ej ⁇ being equal to g sk ⁇ Ej ⁇ where g is a generator of a group of prime order p, a public value W equal to g (sk sk ⁇ E 3 ⁇ ⁇ 4 ⁇ E) having been calculated by at least one recovery device E 3 , E 4 , and said session key being calculated in accordance with a method of calculating the invention.
  • Said recovery process comprises steps of:
  • the value D is respectively raised to the power ⁇ 1 x sk ⁇ E 1 ⁇ and ⁇ 2 x sk ⁇ E 2 ⁇ .
  • the values C 4 and C 3 are respectively raised to the powers ( ⁇ 3 + ⁇ 4 ) x sk ⁇ E 3 ⁇ and ( ⁇ 3 + ⁇ 4 ) x sk ⁇ E 4 ⁇ .
  • the recovery method according to the invention therefore offers the two recovery devices E 3 and E 4 the possibility of recovering the session key that the user devices U 1 , U 2 have calculated and that they use to communicate with each other during the communication session.
  • the recovery of said session key by the recovery devices E 3 , E 4 is carried out completely invisible (ie undetectable) for said user devices U 1 , U 2 . This results from the fact that the recovery of the session key does not require values known only from said user devices U 1 or U 2 .
  • the management device E 1 and the authorization device E 2 both use, during the recovery process, the value D initially exchanged between the user devices U 1 , U 2 during the calculation process.
  • the session key (the value D is therefore seen as a pivot value from which intermediate values represented by T 1 and T 2 are calculated), the calculation of the value T 3 (respectively T 4 ) by the recovery E 3 (respectively E 4 ) not based in any way on this value D.
  • each of the recovery devices E 3 , E 4 uses values which are specific to it to determine the last value T 3 , T 4 from which it is possible to retrieve the session key.
  • the recovery devices E 3 , E 4 it is particularly advantageous for the recovery devices E 3 , E 4 to recover the session key respectively from the values T 3 , T 4 .
  • the recovery method has the advantage of allowing the recovery devices E 3 , E 4 to recover the session key independently from one another given that each of these devices uses a different value, and therefore ultimately its own public key.
  • the fact that the session key can be recovered independently by the recovery devices E 3 , E 4 is important in multiple contexts, in particular when the recovery entities which respectively hold said recovery devices are independent of each other, and must remain so.
  • the recovery process may further include one or more of the following characteristics, taken in isolation or in any technically possible combination.
  • the value C 3 is also transmitted by the management device E 1 to the recovery device E 3 ,
  • the value C 4 is also transmitted by the management device E 1 to the recovery device E 4 .
  • said session key is calculated in accordance with a calculation method according to the invention, and:
  • the management device E 1 transmits, before the calculations of the values T 2 as well as T 3 and / or T 4 , the signatures ⁇ 1 , ⁇ 2 , ⁇ 3 as well as the values A, A 1 , A 2 , A 3 , A 4 , A 5 , N 1 , B, B 1 , B 2 , B 3 , N 2 , N 3 to the authorization device E 2 as well as to the recovery device among two recovery devices E 3 , E 4 ,
  • the authorization device E 2 verifies the signatures ⁇ 1 , ⁇ 2 , ⁇ 3 before calculating the value T 2 ,
  • said recovery device from among two recovery devices E 3 , E 4 verifies the signatures ⁇ 1 , ⁇ 2 , ⁇ 3 before calculating the value T 3 and / or T 4 , the recovery process being stopped as soon as the number of unverified signatures reaches a given threshold.
  • the invention relates to a set of computer programs comprising instructions for the implementation of a method for calculating a session key according to the invention or of a communication method according to the. invention or of a recovery method according to the invention when said set of programs is executed by one or more computers.
  • a program of said set of programs can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in n any other desirable shape.
  • the invention relates to an information or recording medium readable by a computer on which is recorded a set of computer programs according to the invention or a computer program belonging to a set of computer programs. computer according to the invention.
  • the information or recording medium can be any entity or device capable of storing the program (s).
  • the medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or else a magnetic recording means, for example a floppy disk or a disk. hard.
  • the information or recording medium can be a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means.
  • the set of programs according to the invention, or a program of said set of programs can in particular be downloaded over an Internet type network.
  • the information or recording medium can be an integrated circuit in which the program or programs are incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
  • the invention relates to a user device U 1 for calculating a session key for securing a communication session between said user device U 1 and a user device U 2 , said communication session being implemented via a communication network managed by a management device E 1 , the session key possibly being the subject of at least one recovery request authorized by a device d authorization E 2 and issued by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk ⁇ Ej ⁇ as well as with a private key Ej ⁇ sk ⁇ , ⁇ Ej ⁇ pk being equal to g sk ⁇ Ej ⁇ where g is a generator of a group of prime order p.
  • Said user device U 1 comprises:
  • a first calculation module configured to calculate values A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk ⁇ E 1 ⁇ u, pk ⁇ S 2 ⁇ u pk ⁇ 3 ⁇ E u, E pk ⁇ 4 ⁇ u, W u, u being a secret value U of the device 1, and W is a public value calculated by at least one recovery device E 3, E 4 and equal to g (sk sk ⁇ E 3 ⁇ ⁇ 4 ⁇ E),
  • a communication module configured to transmit said values A, A 1 , A 2 , A 3 , A 4 , A 5 to the user device U 2 via the management device E 1 , said communication module also being configured to receive , from the user U and device 2 via the management device E 1, the values B, B 1, B 2, B 3, C 3, C 4, D calculated by said U user device 2 and respectively equal to g v, pk ⁇ E 1 ⁇ v, pk ⁇ S 2 ⁇ v W v, a 3 n, a 4 n, a n, v being a secret value U device 2,
  • a second calculation module configured to calculate a value K equal to 1 B 1 ( ⁇ 1 u) x B 2 ( ⁇ 2 U) x B 3 (( ⁇ 3 + ⁇ 4) u), where ⁇ m , m ranging from 1 to 4, is a quantity function of pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and of a data associated with ⁇ m .
  • the invention relates to a user device U 2 for calculating a session key for securing a communication session between said user device U 2 and a user device U 1 , said communication session being implemented via a communication network managed by a management device E 1 , the session key being able to be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk ⁇ Ej ⁇ as well as a private key sk ⁇ Ej ⁇ , pk ⁇ Ej ⁇ being equal to g sk ⁇ Ej ⁇ where g is a generator of a group of prime order p.
  • Said user device U 2 comprises:
  • a communication module configured to receive, from the user device U 1 and via the management device E 1 , values A, A 1 , A 2 , A 3 , A 4 , A 5 calculated by the user device U 1 and respectively equal to g u, pk ⁇ E 1 ⁇ u, pk ⁇ 2 ⁇ E u, E 3 ⁇ pk ⁇ u, pk ⁇ S 4 ⁇ u, W u, u being a secret value U of the device 1, and W is a public value calculated by at least one recovery device E 3, E 4 and equal to g (sk sk ⁇ E 3 ⁇ ⁇ 4 ⁇ E),
  • a first calculation module configured to calculate B, B values 1, B 2, B 3, C 3, C 4, D respectively equal to v g, pk ⁇ E 1 ⁇ v, pk ⁇ E2 ⁇ v W v, a 3 n, a 4 n, a n, v being a secret value U 2 device
  • said communication module further being configured to transmit said values B, B 1, B 2 , B 3 , C 3 , C 4 , D to the device U 1 via the management entity E 1
  • - a second calculation module configured to calculate a K value equal to 2 A 1 ( ⁇ ⁇ 1) x A 2 ( ⁇ 2 ⁇ ) x A 5 (( ⁇ 1 + ⁇ 4) ⁇ ), where ⁇ m , m ranging from 1 to 4, is a quantity function of pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and of a data associated with ⁇ m .
  • the invention relates to a management device E 1 of a communication network via which a communication session between two user devices U 1 , U 2 is intended to be implemented, said communication session being secure.
  • a session key that can be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, associated with a public key pk ⁇ ej ⁇ and a private key sk ⁇ ej ⁇ , pk ⁇ Ej ⁇ being equal to g sk ⁇ Ej ⁇ where g is a generator of 'a first-order group p.
  • Said management device E 1 comprises a communication module, configured to transmit:
  • a storage module configured to store at least C 3 , C 4 , D,
  • a calculation module configured to calculate a value equal to D T 1 ( ⁇ 1 E sk ⁇ 1 ⁇ ), where ⁇ 1 is a hash function of an amount of pk ⁇ E 1 ⁇ , ⁇ pk ⁇ E 2 , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and data associated with ⁇ 1 , said communication module being further configured to transmit:
  • the invention relates to an authorization device E 2 for authorizing at least one request for the recovery of a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being implemented via a communication network managed by a management device E 1 and said at least one recovery request being sent by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, associated with a public key pk ⁇ Ej ⁇ and a private key sk ⁇ Ej ⁇ pk ⁇ Ej ⁇ being equal to g sk ⁇ Ej ⁇ where g is a generator first order group p.
  • Said authorization device E 2 comprises a communication module, configured for:
  • - receiving, from the management device 1 E, a value D stored by said management device E 1 and equal to A n, A being equal to u g, u and v being respective secret values user devices U 1 and U 2, and further comprises a calculating module configured to calculate a value equal to T 2 D ( ⁇ 2 ⁇ Sk ⁇ E 2), where ⁇ 2 is a hash function of an amount of pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and data associated with ⁇ 2 , said communication module being further configured to transmit said value T 2 to said recovery device among two recovery devices E 3 , E 4 .
  • the invention relates to a recovery device E 3 , E 4 capable of sending a request for recovery of a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being implemented via a communication network managed by a management device E 1 and said at least one recovery request being authorized by an authorization device E 2 , a device Ej, j ranging from 1 to 4 , being associated with a public key pk ⁇ Ej ⁇ and a private key sk ⁇ Ej ⁇ pk ⁇ Ej ⁇ being equal to g sk ⁇ Ej ⁇ where g is a generator of a group of order prime p .
  • Said recovery device E 3 , E 4 comprises a communication module configured for:
  • ⁇ 1 is a hash function of an amount of pk ⁇ E 1 ⁇ , ⁇ pk E 2 ⁇ , ⁇ pk ⁇ E 3, E 4 ⁇ ⁇ pk and data associated to ⁇ 1 and a value C equal to a 3 3 n or C 4 value equal to a 4 n
  • a 3 is equal to pk ⁇ E ⁇ u 3 and A 4 being equal to pk ⁇ E ⁇ u 4, u and v being respective secret values U user devices 1 and U 2
  • ⁇ 2 is a hash function of an amount of pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and a data associated with ⁇ 2 .
  • Said recovery device E 3 , E 4 further comprises:
  • a first calculation module configured to calculate a public value W equal to g (sk sk ⁇ E 3 ⁇ ⁇ 4 ⁇ E),
  • a second calculation module configured to calculate a value equal to T 3 C 4 (( ⁇ 3 + ⁇ 4) sk ⁇ 3 ⁇ E) if the value received from the management device E 1 among the three values C and C 4 is said value C 4 or a value T equal to 4 C 3 (( ⁇ 3 + ⁇ 4) 4 ⁇ E ⁇ sk) if the value received from the management device E 1 among the values C 3 and C 4 is said value C 3 ,
  • the invention relates to a system for calculating a session key, said system comprising user device U 1 according to the invention, a user device U 2 according to the invention as well as a management device E 1 according to the invention.
  • the invention relates to a system for recovering a session key calculated by a user device U 1 according to the invention and also calculated by a user device U 2 according to the invention, said system comprising a device management E 1 according to the invention, an authorization device E 2 according to the invention and two recovery devices E 3 , E 4 according to the invention.
  • FIG. 1 schematically shows, in its environment, an embodiment of a computing system according to the invention, said computing system comprising a user device U 1 , a user device U 2 and a management device E 1 ;
  • FIG. 2 schematically represents an example of the hardware architecture of the user device U 1 of FIG. 1;
  • FIG. 3 diagrammatically represents an example of the hardware architecture of the user device U 2 of FIG. 1;
  • FIG. 4 diagrammatically represents an example of the hardware architecture of the management device E 1 of FIG. 1;
  • FIG. 5 represents, in the form of a flowchart, the main steps of a method for calculating the session key according to the invention, as they are implemented by the calculation system of FIG. 1;
  • FIG. 6 represents, in the form of a flowchart, a first particular mode of implementation of the calculation method of FIG. 5;
  • FIG. 7 represents, in the form of a flowchart, a second particular embodiment of the calculation method of FIG. 5;
  • FIG. 8 represents, in the form of a flowchart, a third particular embodiment of the calculation method of FIG. 5;
  • FIG. 9 diagrammatically represents, in its environment, an embodiment of a system for the recovery of a session key calculated by the devices U 1 , U 2 of the calculation system of FIG. 1, said system for the recovery comprising the management device E 1 , an authorization device E 2 and two recovery devices E 3 and E 4 ;
  • FIG. 10 diagrammatically represents an example of the hardware architecture of the authorization device E 2 of FIG. 9;
  • FIG. 11 schematically represents an example of the hardware architecture of the recovery device E 3 of FIG. 1;
  • FIG. 1 2 schematically shows an example of hardware architecture of the recovery device E 4 of Figure 1;
  • FIG. 1 3 represents, in the form of a flowchart, the main steps of the method for recovering a session key according to the invention, as implemented by the recovery system of FIG. 9;
  • FIG. 14 represents, in the form of a flowchart, a particular embodiment of the recovery method of FIG. 1 3 .
  • FIG. 1 schematically represents, in its environment, an embodiment of a calculation system 10 according to the invention.
  • the calculation system 10 comprises two user devices U 1 , U 2 .
  • the user devices U 1 , U 2 are mobile terminals owned by respective user entities.
  • a mobile terminal is for example a smart phone or “smartphone”, a digital tablet, a laptop computer, etc.
  • the user entity holding a user device Ui, i being an index ranging from 1 to 2 is for its part a natural person.
  • the communication network used by said user devices U 1 , U 2 to send and receive messages between them is managed by at least one management device E 1 .
  • This management device E 1 is typically owned by a management entity.
  • said management device E 1 is a fixed computer owned by a natural person.
  • the invention remains applicable regardless of the nature of said management device E 1 as soon as the latter is configured for, as is described in more detail later: - transmitting, via said communication network, messages that the user devices U 1 , U 2 send to each other, the management device E 1 thus fulfilling a function of relaying messages between the user devices U 1 , U 2 ,
  • the invention also remains applicable in the case where the management entity is a legal person and / or at least one of the user entities is a legal person, this aspect not constituting a limiting factor of the invention. .
  • said communication network is a wireless network.
  • a wireless communication network only constitutes an alternative embodiment of the invention.
  • the message exchange (s) between the user devices U 1 , U 2 , and via the management device E 1 take place during a communication session which is implemented via said communication network.
  • said user devices U 1 , U 2 are configured to calculate, in cooperation with the management device E 1 , a session key to secure such a communication session, by implementing a method of calculating a session key detailed later. Having regard to this cooperation between the various devices of the system 10, said system 10 has as its objective the calculation of a session key.
  • a session key is linked to the communication session for which it is calculated.
  • the session key is only valid for the duration of the communication session associated with it.
  • two distinct communication sessions are respectively associated with two distinct session keys.
  • the session key can be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3. , E 4 .
  • recovery refers here to the recovery of the session key by a recovery entity.
  • authorization E 2 and recovery devices E 3 , E 4 their respective hardware and software configurations as well as the aspects of the invention relating to the possibility of recovering the session key are described in more detail later.
  • Ton used thereafter a usual notation cryptography wherein an exponentiation is represented by the symbol ""; and “g x” represents “g x power” or “g x”; the product of x and y is represented by a point: “. “, Or” x ", or nothing; thus "xy”, “xxy” and “xy” represent "x multiplied by y”.
  • Each device is associated with a public key as well as a private key. More precisely, the following notations are adopted:
  • a user device Ui i ranging from 1 to 2
  • Ui is associated with a public key pk ⁇ Ui ⁇ as well as a private key sk ⁇ Ui ⁇ (said public key pk ⁇ Ui ⁇ being, in a manner known per se, associated with, ie calculated from, the private key sk ⁇ Ui ⁇ in this embodiment), and
  • a device Ej, j ranging from 1 to 4 is associated with a public key pk ⁇ Ej ⁇ and a private key sk ⁇ Ej ⁇ pk ⁇ Ej ⁇ being equal to g sk ⁇ Ej ⁇ where g is a generator of a group G of prime order p (said public key pk ⁇ Ei ⁇ being, in a manner known per se, associated with, ie calculated from, the private key sk ⁇ Ei ⁇ in this embodiment) .
  • the group G, the generator g and the prime number p are parameters made public and obtained by means of an initialization method (also called “Setup” in the description. English literature) parameterized by a parameter l called “security parameter” aiming to define a homogeneous level of security between potentially very different cryptographic algorithms. More particularly, to speak of a level of security defined by the parameter l amounts to considering a level of security at least equivalent to that obtained by virtue of a symmetric algorithm whose key comprises l bits. By way of example, said security parameter l comprises 1 2 8 bits.
  • said “Setup” initialization method also makes it possible to generate, in addition to the parameters G, g and p, a bilinear coupling e on the group G as well as a hash function H which are also made public.
  • the hash function H is able to transform any string of bits into an integer, for example an integer between 0 and p-1.
  • Said hash function H can correspond to a standardized function, such as for example the SHA 2 56 function ("SHA" being the acronym of the English expression "Secure Hash Algorithm”) or even the SHA 3 function.
  • Such a “Setup” initialization method is carried out conventionally by means of suitable software means, such as for example a computer program dedicated to cryptographic computation and executed by a computer type processing device.
  • Said processing device may be a device external to the computing system 10 or else be one of the devices of said computing system 10 or else one of said authorization E 2 or recovery devices E 3 , E 4 .
  • said “Setup” initialization method is well known to those skilled in the art, and is therefore not described further here.
  • FIG. 2 schematically represents an example of the hardware architecture of the user device U 1 according to the invention.
  • the user device U 1 has the hardware architecture of a computer.
  • said user device U 1 comprises, in particular, a processor 1_U 1 , a random access memory 2_U 1 , a ROM 3_U 1 and a non-volatile memory 4_U 1 . It also has 5_U 1 communication means.
  • the communication means 5_U 1 allow in particular the user device U 1 to send, via said management device E 1 , cryptographic values to the user device U 2 , as well as to receive, also via said management device E 1 , values cryptographic data originating from said user device U 2 .
  • the communication means 5_U 1 comprise a communication interface compatible with the nature of the communication network, namely wireless in this exemplary embodiment.
  • the communication interface means of communication 5_U 1 is not wired and qu'apte to implement any suitable protocol known to the skilled person (WiFi, Bluetooth, 3G, 4G, 5G, etc. ).
  • the communication interface would be adapted accordingly.
  • the read-only memory 3_U 1 of the user device U 1 constitutes a recording medium in accordance with the invention, readable by the processor 1_U 1 and on which is recorded a computer program PROG_U 1 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for calculating a session key according to the invention.
  • the program PROG_U 1 defines functional modules of the user device U 1 , which are based on or control the hardware elements 2_U 1 to 5_U 1 of said user device U 1 mentioned above, and which include in particular:
  • a first calculation module MOD_CALC1_U 1 configured to calculate values A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk ⁇ E 1 ⁇ u, pk ⁇ E2 ⁇ u, E 3 ⁇ pk ⁇ u, pk ⁇ S 4 ⁇ u, W u, u being a secret value U of the device 1 randomly chosen in the group Z / pZ, and W being a public value calculated by the least one recovery device E 3, E 4 and equal to g (sk sk ⁇ E 3 ⁇ ⁇ 4 ⁇ E),
  • a MOD_COM_U 1 communication module configured to transmit said values A, A 1 , A 2 , A 3 , A 4 , A 5 to the user device U 2 via the management device E 1 , said MOD_COM_U 1 communication module being in further configured to receive, from the user device U 2 and via the management device E 1 , values B, B 1 , B 2 , B 3 , C 3 , C 4 , D calculated by said user device U 2 and respectively equal to v g, pk ⁇ E 1 ⁇ v, pk ⁇ S 2 ⁇ v W v, a 3 n, a 4 n, a n, v being a secret value U device 2 pulled randomly in the Z / pZ group,
  • a second module MOD_CALC2_U configured to calculate a K value equal to 1 B 1 ( ⁇ 1 u) x B 2 ( ⁇ 2 U) x B 3 (( ⁇ 3 + ⁇ 4) u), where ⁇ m , m ranging from 1 to 4, is a quantity function of pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and of a data associated with ⁇ m .
  • said quantity is generated using the hash function H mentioned above and obtained following the implementation of the initialization method "Setup". Furthermore, in this example, said data item associated with ⁇ m corresponds to said index m.
  • ⁇ m is equal to H (pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ , m), the part of the argument of H formed by values pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ corresponding to a concatenation of the bits forming each of said values pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ .
  • ⁇ m corresponds to a quantity function of pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and a data associated with ⁇ m , this quantity being of reduced size by contribution to the sum of the respective sizes of pk ⁇ E 1 ⁇ , pk ⁇ E 2 ⁇ , pk ⁇ E 3 ⁇ , pk ⁇ E 4 ⁇ and the data associated with ⁇ m .
  • said first and second calculation modules MOD_CALC1_U 1 , MOD_CALC2_U 1 are integrated into one and the same calculation module, called “general module”.
  • said general module comprises means configured in a hardware and / or software manner to perform the functions associated with each of said first and second calculation module MOD_CALC1_U 1 , MOD_CALC2_U 1 .
  • the user device U 2 also has the hardware architecture of a computer, an example of which is illustrated schematically in FIG. 3.
  • said user device U 2 comprises, in particular, a processor 1_U 2 , a random access memory 2_L) 2 , a read only memory 3_L) 2 and a non-volatile memory 4_L) 2 . It also has means of communication 5_L) 2 .
  • the communication means 5_L) 2 in particular allow the user device U 2 to send (respectively receive), via said management device E 1 , cryptographic values to the user device U 1 (respectively from the user device U 1 ), and are similar, at least as regards the communication interface, to the communication means 5_U 1 described above for the user device U 1 .
  • the read only memory 3_L) 2 of the user device U 2 constitutes a recording medium in accordance with the invention, readable by the processor 1_U 2 and on which is recorded a computer program PROG_L) 2 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for calculating a session key according to the invention.
  • the program PROG_ U 2 defines functional modules of the user device U 2 , which are based on or control the hardware elements 2_U2 to 5_U 2 of said user device U 2 mentioned above, and which include in particular: - a communication module MOD_COM_L) 2 , configured to receive, from the user device U 1 and via the management device E 1 , said values A, A 1 , A 2 , A 3 , A 4 , A 5 calculated by the user device U 1 ,
  • a first calculation module MOD_CALCl_L) 2 configured to calculate said values B, B 1 , B 2 , B 3 , C 3 , C 4 , D
  • said communication module MOD_CALCl_L) 2 being further configured to transmit said values B , B 1 , B 2 , B 3 , C 3 , C 4 , D to the device U 1 via the management entity E 1 ,
  • a second calculation module MOD_CALC2_L configured to calculate a K value equal to 2 A 1 ( ⁇ ⁇ 1) x A 2 ( ⁇ 2) x A 5 (( ⁇ 3 + ⁇ 4.) ⁇ ).
  • said first and second calculation modules MOD_CALCl_L) 2 , MOD_CALC2_L) 2 are integrated into one and the same calculation module, called “general module”.
  • said general module comprises means configured in a hardware and / or software manner to perform the functions associated with each of said first and second calculation module MOD_CALCl_U 2 , MOD_CALC2_U 2 .
  • the management device E 1 also has the hardware architecture of a computer, an example of which is illustrated schematically in FIG. 4.
  • said management device E 1 comprises, in particular, a processor I_E 1 , a random access memory 2_E 1 , a read only memory 3_E 1 and a non-volatile memory 4_E 1 . It also has means of communication 5_E 1 .
  • the communication means 5_E 1 notably allow the management device E 1 to transmit cryptographic values between the user devices U 1 and U 2 and are similar, at least as regards the communication interface, to the communication means 5_U 1 and 5_U 2 described above for user devices U 1 and U 2 .
  • the read only memory 3_E 1 of the management device E 1 constitutes a recording medium in accordance with the invention, readable by the processor I_E 1 and on which is recorded a computer program PROG_E 1 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for calculating a session key according to the invention.
  • the program PROG_ E 1 defines functional modules of the management device E 1 , which are based on or control the hardware elements 2_E 1 to 5_E 1 of said management device E 1 mentioned above, and which notably include a communication module MOD_COM_E 1 , configured to transmit:
  • said storage module MOD_MEM_E 1 may correspond to all or part of the non-volatile memory 4_E 1 fitted to the management device E 1 .
  • said computer programs PROG_U 1 , PROG_L) 2 and PROG_E 1 can belong to the same set of computer programs, each device U 1 , U 2 , E 1 being capable to obtain, for example via a download and thanks to the means of communication which equip it, the program PROG_U 1 , PROG_L) 2 , PROG_E 1 which is associated with it from said set of programs.
  • FIG. 5 represents, in the form of a flowchart, the main steps of the method for calculating the session key according to the invention, as implemented by the calculation system 10 of FIG. 1.
  • Said calculation method is executed during a communication session between the user devices U 1 , U 2 , said communication session being implemented via the communication network managed by the management entity E 1 and for example initiated by user device U 1 .
  • this user device can therefore be U 2 as an alternative.
  • the hash function used for the calculation of ⁇ m , m ranging from 1 to 4 is the hash function H obtained following the implementation of the initialization method "Setup ".
  • the calculation process is carried out while a public value W equal to g (sk sk ⁇ ⁇ E 3 ⁇ E4 ⁇ ) has already been calculated by at least one recovery device E 3, E 4 .
  • This calculation is implemented by a first calculation module MOD_CALCl_E 3 , MOD_CALCl_E 4 equipping said at least one recovery device E 3 , E 4 .
  • the hardware and software configuration of said at least one recovery device E 3 , E 4 including in particular said calculation module MOD_CALCl_E 3 , MOD_CALCl_E 4 , is detailed later in relation to aspects of the invention relating to the possibility to retrieve the session key.
  • the public value W is calculated by each of the two recovery entities E 3 and E 4 .
  • Proceeding in this way offers the possibility of verifying whether the calculation of W by at least one of said recovery entities E 3 , E 4 is not vitiated by an error, such an error being able for example to find its origin in the fact that the entity recovery device in question is corrupted or else poorly configured to perform the invention.
  • an error being able for example to find its origin in the fact that the entity recovery device in question is corrupted or else poorly configured to perform the invention.
  • the calculation method firstly comprises a step F10 for calculating, by the user device U 1 , said values A, A 1 , A 2 , A 3 , A 4 , A 5 .
  • This calculation step F10 is implemented by the first calculation module MOD_CALC1_U 1 equipping said user device U 1 .
  • the secret value u is determined during a communication session. Consequently, the value A, which is itself also calculated during said communication session, can be considered as being a public key of the user device U 1 dedicated to this session.
  • the calculation method comprises a step F20 of transmitting said values A, A 1 , A 2 , A 3 , A 4 , A 5 to the user device U 2 via the management device E 1 .
  • This transmission step F 2 0 is implemented by the communication modules MOD_COM_U 1 , MOD_COM_L) 2 , MOD_COM_E 1 respectively equipping said devices U 1 , U 2 , E 1 .
  • the calculation method then comprises a step F30 of calculation, by the user device U 2 , of said values B, B 1 , B 2 , B 3 , C 3 , C 4 , D.
  • This calculation step F30 is implemented by the first calculation module MOD_CALCl_L) 2 equipping said user device U 2 .
  • the secret value v is determined during the communication session. Consequently, the value B, which is itself also calculated during said communication session, can be considered as being a public key of the user device U 2 dedicated to this session.
  • the calculation method comprises a step F40 of transmitting said values B, B 1 , B 2 , B 3 , C 3 , C 4 , D to the user device U 1 via the management device E 1 which stores C 3 , C 4 and D during this transmission.
  • This transmission step F40 is implemented by the communication modules MOD_COM_U 1 , MOD_COM_L) 2 , MOD_COM_E 1 respectively equipping said devices U 1 , U 2 , E 1 .
  • said storage is implemented by the storage module MOD_MEM_E 1 equipping said management device E 1 .
  • the calculation method also comprises a step F50 of calculation, by the user device U 1, said value K equal to 1 B 1 ( ⁇ 1 u) x B 2 ( ⁇ 2 U) x B 3 (( ⁇ 3 + ⁇ 4 ) u).
  • Said calculation step F50 is implemented by the second calculation module MOD_CALC2_U 1 equipping the user device U 1 .
  • U user device 2 calculates in a step F60 of the calculation procedure said value K 2 equal to A 1 ( ⁇ ⁇ 1) x A 2 ( ⁇ 2 ⁇ ) x A 5 ( ( ⁇ 3 + ⁇ 4 ) ⁇ ).
  • Said calculation step F760 is implemented by the second calculation module MOD_CALC2_L) 2 equipping the user device U 2 .
  • calculation steps F50 and F60 are executed in a synchronized manner.
  • the calculation step F50 is executed before the calculation step F60, or else vice versa.
  • said calculation steps F50 and F60 are executed in a synchronized manner.
  • the user devices U 1 and U 2 are respectively in possession of the values K 1 and K 2 .
  • these values K 1 and K 2 are equal to each other, as can easily be verified.
  • Said values K 1 and K 2 therefore correspond to said session key from which said user devices U 1 and U 2 can communicate in a secure manner during the communication session.
  • the remainder of the description aims to detail different modes of implementation of the calculation method, in which one or more checks are carried out in order to determine whether the different values respectively calculated by the devices U 1 , U 2 and E 1 are erroneous or no, and, in the event of an erroneous calculation, allow said calculation process to be stopped.
  • FIG. 6 represents, in the form of a flowchart, a first particular mode of implementation of the calculation method of FIG. 5.
  • the bilinear coupling involved in the verification calculations detailed below is the bilinear coupling e obtained following the implementation of the “Setup” initialization method.
  • the management device E 1 verifies (for example using a verification module not illustrated in the figures), during the transmission of the values A, A 1 , A 2 , A 3 , A 4 , A 5 from user device U 1 to user device U 2 , if:
  • step F40 the management device E 1 checks, during the transmission of the values B, B 1 , B 2 , B 3 , C 3 , C 4 , D of the user device U 2 to user device U 1 , if:
  • the calculation method is then stopped as soon as the number of unverified equalities reaches a given threshold. No limitation is attached to the value of said threshold. For example, the calculation method can be stopped as soon as the first considered equality is not verified.
  • step F 2 0 or step F40 the order in which said equalities are considered during each transmission (step F 2 0 or step F40) is not limiting, the choice of a particular order constituting only one variant. implementation of the invention.
  • FIG. 7 represents, in the form of a flowchart, a second particular embodiment of the calculation method of FIG. 5.
  • the user device U 1 calculates (step F45_l, for example implemented by means of a third calculation module of the user device U 2 not illustrated in the figures), following the reception of the D value from user device U 2 , a value D ′ equal to A v and verifies (for example using a verification module not illustrated in the figures) that said value D ′ is equal to said value D.
  • FIG. 8 represents, in the form of a flowchart, a third particular embodiment of the calculation method of FIG. 5.
  • the user device U 1 determines (step F15, for example implemented by means of a module for determining the signature of the user device U 1 not illustrated in the figures), by means of its private key sk ⁇ U 1 ⁇ , a signature ⁇ 1 of a message M 1 function of pk ⁇ U 1 ⁇ , pk ⁇ U 2 ⁇ , A, A 1 , A 2 , A 3 , A 4 , A 5 and N 1 , where N 1 is a value random, the signature ⁇ 1 and the value N 1 also being transmitted to the user device U 2 via the management device E 1 .
  • the user device U 2 determines (step F 3 5, for example implemented by means of a signature determination module of the user device U 2 not illustrated in the figures), by means of its private key sk ⁇ U 2 ⁇ , a signature ⁇ 2 of a message M 2 function of pk ⁇ L) 1 ⁇ , pk ⁇ U 2 ⁇ , B, D, B 1 , B 2 , B 3 and N 2 , where N 2 is a random value, as well as a signature ⁇ 3 of a message M 3 function of pk ⁇ U 1 ⁇ , pk ⁇ U 2 ⁇ , B, D, C 3 , C 4 and N 3 , where N 3 is a random value , the signatures ⁇ 2 , ⁇ 3 and the values N 2 , N 3 also being transmitted to the user device U 1 via the management device E 1 .
  • the signature ⁇ 1 is verified (step F 2 0) by the management device E 1 before its transmission to the user device U 2 , as well as by said user device U 2 (step F 2 5) after transmission.
  • the signatures ⁇ 2 and ⁇ 3 are verified (step F40) by the management device E 1 before their respective transmissions to the user device U 1 , as well as by said user device U 1 (step F45_ 2 ) after transmission.
  • These verifications are for example implemented by verification modules respectively equipping the user device U 2 and the management device E 1 , and not illustrated in the figures.
  • the calculation method is stopped as soon as the number of unverified signatures reaches a given threshold.
  • this threshold can be equal to 1.
  • cryptographic signature also called digital signature or else electronic signature
  • verification of a cryptographic signature are well known to those skilled in the art, and are therefore not detailed further here. It is recalled only that the determination and verification of such signatures makes it possible to authenticate the devices at the origin of the calculations of the various data and values exchanged on the communication network.
  • said first, second and third particular modes described above with reference respectively to FIGS. 7, 8 and 9, can be combined with one another in any technically operable combination.
  • said first and second particular modes can be implemented during the calculation process.
  • said second and third particular modes can be implemented during said calculation method.
  • said first, second and third particular modes are all three implemented during the calculation process. Proceeding in this way advantageously makes it possible to optimize the security of said calculation method.
  • the user devices U 1 , U 2 can communicate securely by implementing a communication method according to the invention.
  • the implementation of such a communication method is carried out in a manner known per se, the user devices U 1 , U 2 using said session key to encrypt the messages they wish to exchange via the managed communication network. by the management device E 1 and during the communication session during which the session key was calculated.
  • the session key K 1 , K 2 can be the subject of at least one recovery request authorized by the authorization device E 2 and sent by a recovery device from among said two recovery devices E 3 , E 4 .
  • the remainder of the description now aims to detail the aspects of the invention linked to the recovery of said session key K 1 , K 2 by said recovery devices E 3 , E 4 .
  • FIG. 9 schematically represents, in its environment, an embodiment of a system 2 0 for the recovery of the session key K 1 , K 2 calculated by said devices U 1 , U 2 .
  • the system 2 0 for the recovery of the session key K 1 , K 2 comprises the management device E 1 of the calculation system 10 described above with reference to FIG. 1.
  • said system 2 0 for the recovery of the session key K 1 , K 2 comprises said authorization device E 2 , the latter being held by a management entity.
  • said authorization device E 2 is a fixed computer owned by a natural person.
  • authorization device E 2 when the latter is configured to send and receive, via the communication network, messages comprising one or more cryptographic values, as well as performing various cryptographic processing (calculations, or even verification of cryptographic signatures), as described in more detail later.
  • the system 2 0 for the recovery of the session key K 1 , K 2 also comprises said two recovery devices E 3 and E 4 respectively held by two separate recovery entities.
  • each recovery device E 3 , E 4 is a fixed computer owned by a natural person.
  • each recovery device is configured to receive, via the communication network, messages comprising one or more cryptographic values, as well as perform various cryptographic processing (calculations, or even verification of cryptographic signatures), as described in more detail later.
  • the invention also remains applicable in the case where the authorization entity is a legal person and / or at least one of the recovery entities is a legal person, this aspect not constituting a limiting factor. of the invention.
  • the management device E 1 , the authorization device E 2 as well as the recovery device E 3 or the recovery device E 4 are configured to cooperate with each other so that said recovery devices E 3 and / or E 4 can recover the session key K 1 , K 2 during the communication session during which said session key K 1 , K 2 is calculated by the user devices U 1 , U 2 , by implementing a method for recovering said session key K 1 , K 2 according to the invention.
  • the program PROG_E 1 of the management device E 1 defines a communication module MOD_COM_E 1 as well as a storage module MOD_MEM_E 1 .
  • Said program PROG_E 1 also defines a module MOD_CALC_E 1, configured to calculate a value equal to D T 1 ( ⁇ 1 E sk ⁇ 1 ⁇ ).
  • said communication module MOD_COM_E 1 is also configured to transmit:
  • FIG. 10 schematically represents an example of hardware architecture of the authorization device E 2 according to the invention.
  • the authorization device E 2 has the hardware architecture of a computer.
  • said authorization device E 2 comprises, in particular, a processor 1_E 2 , a random access memory 2_E 2 , a read only memory 3_E 2 and a non-volatile memory 4_E 2 . It also has means of communication 5_E 2 .
  • the communication means 5_E 2 notably allow the authorization device E 2 to send (respectively receive) cryptographic values to the recovery devices E 3 , E 4 (respectively from the management device E 1 ), as well as d '' send an authorization message for a recovery request, and are similar, at least as regards the communication interface, to the communication means described above for the user devices U 1 , U 2 or else for the management system E 1 .
  • the read only memory 3_ Ei of the authorization device E 2 constitutes a recording medium in accordance with the invention, readable by the processor 1_E 2 and on which is recorded a computer program PROG_E 2 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for recovering the session key K 1 , K 2 according to the invention.
  • the program PROG_E 2 defines functional modules of the authorization device E 2 , which are based on or control the hardware elements 2_E 2 to 5_E 2 of said authorization device E 2 mentioned above, and which include in particular a communication module MOD_COM_E 2 , configured for:
  • the issuance of an authorization for said at least one retrieval request is effected by means of a message whose format conforms to a given telecommunications standard.
  • FIG. 11 schematically represents an example of the hardware architecture of the recovery device E 3 according to the invention.
  • the recovery device E 3 has the hardware architecture of a computer.
  • said recovery device E 3 comprises, in particular, a processor 1_E 3 , a random access memory 2_E 3 , a read only memory 3_E 3 and a non-volatile memory 4_E 3 . It also has means of communication 5_E 3 .
  • the communication means 5_E 3 notably allow the recovery device E 3 to receive cryptographic values originating from the management device E 1 and from the authorization device E 2 , and are similar, at least as regards the interface of communication, to the communication means described above for the user devices U 1 , U 2 , the management device E 1 or even the authorization device E 2 .
  • the read only memory 3_E 3 of the recovery device E 3 constitutes a recording medium in accordance with the invention, readable by the processor 1_E 3 and on which is recorded a computer program PROG_E 3 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for recovering the session key K 1 , K 2 according to the invention.
  • the program PROG_E 3 defines functional modules of the recovery device E 3 , which are based on or control the hardware elements 2_E 3 to 5_E 3 of said authorization device E 3 mentioned above, and which notably include a communication module MOD_COM_E 3 , configured for: - issue a request to retrieve the session key K 1 , K 2 ,
  • said first calculation module MOD_CALCl_E 3 configured to calculate said public value W, as already mentioned before,
  • a second calculation module MOD_CALC2_E 3 configured to calculate a value T 3 equal to
  • a third calculation module MOD_CALC3_E 3 configured to calculate a value K 3 equal to T 1 x T 2 x T 3 .
  • the transmission of a recovery request is carried out thanks to a message whose format conforms to a given telecommunications standard, typically the same standard as that used by the authorization device E 2 for sending an authorization message.
  • FIG. 12 schematically represents an example of hardware architecture of the recovery device E 4 according to the invention.
  • the recovery device E 4 has the hardware architecture of a computer.
  • said recovery device E 4 comprises, in particular, a processor 1_E 4 , a random access memory 2_E 4 , a read only memory 3_E 4 and a non-volatile memory 4_E 4 . It also has means of communication 5_E 4 .
  • the communication means 5_E 4 notably allow the recovery device E 4 to receive cryptographic values originating from the management device E 1 and from the authorization device E 2 , and are similar, at least as regards the interface of communication, to the communication means described above for the user devices U 1 , U 2 , the management device E 1 or even the authorization device E 2 .
  • the read only memory 3_E 4 of the recovery device E 4 constitutes a recording medium in accordance with the invention, readable by the processor 1_E 4 and on which is recorded a computer program PROG_E 4 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for recovering the session key K 1 , K 2 according to the invention.
  • the program PROG_E 4 defines functional modules of the recovery device E 4 , which are based on or control the hardware elements 2_E 4 to 5_E 4 of said recovery device E 4 mentioned above, and which include in particular a communication module MOD_COM_E 4 , configured for :
  • a second calculation module MOD_CALC2_E 4 configured to calculate a value equal to T 4 C 3 (( ⁇ 3 + ⁇ 4) 4 ⁇ E ⁇ sk),
  • a third calculation module MOD_CALC3_E 4 configured to calculate a value K 4 equal to T 1 x T 2 x T 4 .
  • said first, second and third calculation modules MOD_CALCl_E q , MOD_CALC2_E q , MOD_CALC3_E q , q being an index equal to 3 or 4 are integrated into one and the same calculation module, called "general module ".
  • said general module comprises means configured in a hardware and / or software manner to perform the functions associated with each of said first, second module and third calculation modules MOD_CALCl_E q , MOD_CALC2_E q , MOD_CALC3_E q .
  • said computer programs PROG_E 1 , PROG_E 2 , PROG_E 3 , PROG_E 4 can belong to the same set of computer programs, each device E 1 , E 2 , E 3 , E 4 being able to obtain, for example via a download and thanks to the means of communication which equip it, the program PROG_E 1 , PROG_E 2 , PROG_E 3 , PROG_E 4 which is associated with it from among said set of programs.
  • FIG. 13 represents, in the form of a flowchart, the main steps of the method for recovering the session key K 1 , K 2 according to the invention, as implemented by the system 2 0 for recovering the data. figure 9.
  • Said recovery method is implemented during the communication session during which the session key K 1 , K 2 is calculated by the user devices U 1 , U 2 , it being understood that said session key K 1 , K 2 is already calculated at the time of the implementation of said recovery method and that said user devices U 1 , U 2 are therefore able to communicate with each other in a secure manner.
  • the recovery method firstly comprises a step R10 of transmission, by the management device E 1 , of the value D to the authorization device E 2 . Furthermore, during this transmission step R10, and given that as well as each of the recovery devices E 3 , E 4 has issued a recovery request accepted by the authorization device E 2 , the values C 4 and C 3 are transmitted respectively to the recovery device E 3 and to the recovery device E 4 . It should be noted that this transmission step R10 is implemented by the communication module MOD_COM_E 1 equipping said management device E 1 .
  • the recovery process then comprises a step R20 to calculate, by the management device E 1, said value T 1 equal to D (1 ⁇ sk ⁇ E 1 ⁇ ). This calculation step R20 is implemented by the calculation module MOD_CALC_E 1 equipping the management device E 1 .
  • the recovery method further comprises a calculation step R40, the E2 enabling device, said value T 2 equal to D ( ⁇ 2 E sk ⁇ 2 ⁇ ).
  • This calculation step R40 is implemented by the calculation module MOD_CALC_E 2 equipping the authorization device E 2 .
  • said value T 2 is then transmitted by the authorization device E 2 to the two recovery devices E 3 and E 4 during a step R50 of the recovery process .
  • This transmission step R50 is implemented by the communication module MOD_COM_E 2 equipping the authorization device E 2 .
  • the recovery method further comprises a step R60 for calculating said value T 3 by the recovery device E 3 .
  • This calculation step R60 is implemented by the second calculation module MOD_CALC2_E 3 equipping the recovery device E 3 .
  • the recovery method comprises a step R70 for calculating said value T 4 by the recovery device E 4 .
  • This calculation step R70 is implemented by the second calculation module MOD_CALC_E 4 equipping the recovery device E 4 .
  • the recovery method comprises a step R80 for calculating said value K 3 by the recovery device E 3 .
  • This calculation step R80 is implemented by the third calculation module MOD_CALC3_E 3 equipping the recovery device E 3 .
  • the recovery method comprises a step R90 for calculating said value K 4 by the recovery device E 4 .
  • This calculation step R90 is implemented by the third calculation module MOD_CALC3_E 4 equipping the recovery device E 4 .
  • the recovery devices E 3 and E 4 are respectively in possession of the values K 3 and K 4 .
  • these values K 3 and K 4 are not only equal to each other, but also equal to said values K 1 and K 2 , as can easily be verified. Said values K 3 and K 4 therefore correspond to said recovered session key.
  • the recovery method according to the invention therefore offers the two recovery devices E 3 and E 4 the possibility of recovering the session key that the user devices U 1 , U 2 have calculated and that they use to communicate with each other during the communication session.
  • the recovery devices E 3 , E 4 respectively recover the session key from the values T 3 , T 4 . Indeed, the use of a different value for each of these entities induces the possibility for each of them to have their own public keys.
  • the fact that the session key can be recovered anonymously by the recovery devices E 3 , E 4 is important in many contexts, in particular when the recovery entities which respectively hold said recovery devices are independent of each other, and must remain so.
  • the first application example described incorporates the elements introduced previously with regard to the case of an employee who is the victim of harassment by his line manager.
  • the lawyer ie the authorization entity of the company has the possibility of authorizing two independent recovery entities to retrieve the session key, namely the human resources service of the department to which it belongs. the employee and the social assistance service belonging to a department other than that of the employee, while preserving this independence.
  • these two different services can therefore each recover the session key that would be used by said employee and said line manager during a communication session, for example in the form of instant message exchanges (" chat ”in Anglo-Saxon literature) via an internal communication network of the company, this network being managed by the network administrator of the company.
  • chat instant message exchanges
  • this network being managed by the network administrator of the company.
  • the employee nor the line manager could realize that their exchanges during the communication session are listened to by the recovery entities.
  • a recovery entity would also not be able to know that the other recovery entity has access to these exchanges.
  • the second example of application refers for its part to user entities which are legitimate physical users (ie having a valid subscription) of a mobile communication network managed by a telecommunications operator.
  • a telecommunications operator Within the framework of current regulations relating to the protection of the data of said users (eg General Data Protection Regulation known as "RGPD"), said telecommunications operator is obliged to protect user communications from an external attacker but also from himself .
  • RGPD General Data Protection Regulation
  • the current architecture of mobile networks does not make it possible to guarantee such protection insofar as the only possible encryption mode is a link encryption mode (also called “link encryption” in the English literature).
  • link encryption mode also called “link encryption” in the English literature.
  • each intermediate node in the communication network encrypts and decrypts the messages transmitted between users, thus opening the way to potential security breaches if, for example, a node were to suffer an attack.
  • the invention advantageously makes it possible to provide much more effective protection of user data, while offering the possibility for authorized recovery entities to have access to a session key used by two users.
  • uch more effective protection we refer here to an end-to-end encryption mode (also called “end-to-end” in the English literature) since only the users of the network have access to the messages that they exchange using the calculated session key.
  • the authorization entity corresponds to a judicial entity, such as for example a judge,
  • the recovery entities E 3 , E 4 correspond to law enforcement and security entities, such as for example two policies with distinct attribution powers so as to be independent from one another.
  • FIG. 14 represents, in the form of a flowchart, a particular mode of implementation of the recovery method of FIG. 1 3 .
  • the various cryptographic signatures ⁇ 1 , ⁇ 2 , ⁇ 3 are verified.
  • the object of these signature checks is, as already described above, to authenticate the devices at the origin of the calculations of the various data and values exchanged on the communication network, and, in the case where an authentication is not guaranteed, allow the said recovery process to be stopped.
  • the management device E 1 transmits, before the calculations of the values T 2 and T 3 , the signatures o 1 , ⁇ 2 , ⁇ 3 as well as the values A, A 1 , A 2 , A 3 , A 4 , A 5 , N 1 , B, B 1 , B 2 , B 3 , N 2 , N 3 to the authorization device E 2 as well as to the two recovery devices E 3 and E 4 .
  • This transmission is for example carried out at the same time as that of the values D, C 3 and C 4 (step R10).
  • the authorization device E 2 then checks the signatures ⁇ 1 , ⁇ 2 , ⁇ 3 (step R 3 5) before calculating the value T 2 .
  • Said recovery device E 3 verifies the signatures ⁇ 1 , ⁇ 2 , ⁇ 3 (step R55) before calculating the value T 3 .
  • Said recovery device E 4 verifies the signatures ⁇ 1 , ⁇ 2 , ⁇ 3 (step R65) before calculating the value T 4 .
  • the recovery process is stopped as soon as the number of unverified signatures reaches a given threshold.
  • this threshold is equal to 1.
  • the session key has been described until now by considering that the session key was recovered during a communication session between the user devices U 1 , U 2 .
  • the session key can be recovered in a deferred manner on the basis of the communications exchanged between the user devices U 1 , U 2 and recorded and then stored, for example in a database.
  • the signatures considered so far in the invention are the signatures ⁇ 1 , ⁇ 2 , ⁇ 3 .
  • the management device E 1 can calculate, during the calculation method and before the transmission of the signatures ⁇ 2 , ⁇ 3 to the user device U 1 , and by means of its private key sk ⁇ E 1 ⁇ , a signature ⁇ 4 of a message M 4 function of pk ⁇ U 1 ⁇ , pk ⁇ U 2 ⁇ , A, B, D and N 4 , where N 4 is a random value.
  • the signature ⁇ 4 and the value N 4 are transmitted, during the recovery process, by the management device E 1 to the recovery devices E 3 , E 4 , for example at the same time as the other signatures ⁇ 1 , ⁇ 2 , ⁇ 3 .
  • the signature ⁇ 4 can therefore be verified by each of said recovery devices E 3 , E 4 .
  • the value C 3 is also transmitted by the management device E 1 to the recovery device E 3 ,
  • the value C 4 is also transmitted by the management device E 1 to the recovery device E 4 .
  • the invention also covers the possibility according to which the public value W is calculated during a step of the method for calculating the session key.
  • the calculation system 10 also includes the recovery device (s) E 3 , E 4 having calculated this public value W.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Computer And Data Communications (AREA)

Abstract

The invention relates to a method for calculating a session key for two user devices U1, U2 intended to communicate, via a network managed by a management device E1, a request for recovering the key which can be authorised by an authorisation device E2 and issued by a recovery device E3, E4, a device Ej being associated with a private key sk{Ej} as well as with a public key pk{Ej} equal to g^sk{Ej}, g being a generator of a group, and a public value W equal to g^(sk{E3}sk{E4}) which has been calculated by at least one device E3, E4. The method comprises the steps of: - calculating (F10), by means of the device U1, values A, A1, A2, A3, A4, A5 which are respectively equal to g^u, pk{E1}^u, pk{E2}^u, pk{E3}^u, pk{E4}^u, W^u and transmitted (F20) to the device U2, u being a secret value of the device U1, - calculating (F30), by means of the device U2, values B, B1, B2, B3, C3, C4, D which are respectively equal to g^v, pk{E1}^v, pk{E2}^v, W^v, A3^v, A4^v, A^v and transmitted (F40) to the device U1, v being a secret value of the device U2, - calculating (F50), by means of the device U1, a value K1 equal to B1^(α1u) x B2^(α2u) x B3^((α3+α4)u), wherein αm is a hash of a quantity that is a function of pk{E1}, pk{E2}, pk{E3}, pk{E4} and a datum associated with αm, - calculating (F60), by means of the device U2, a value K2 equal to Α1^(α1v) x A2^(α2v) x A5((α3+α4)v).

Description

Procédé de calcul d'une clé de session, procédé de récupération d'une telle clé de session Method for calculating a session key, method for recovering such a session key
Technique antérieure Prior art
La présente invention appartient au domaine général de la cryptographie. Elle concerne plus particulièrement un procédé de calcul d'une clé de session pour la sécurisation d'une session de communication entre deux entités utilisatrices. Elle concerne également un procédé de récupération, au cours d'une session de communication entre de telles entités utilisatrices, de ladite clé de session par au moins une entité qui diffère desdites deux entités utilisatrices. L'invention trouve une application particulièrement avantageuse, bien que nullement limitative, dans l'aide à l'investigation concernant la nature d'échanges effectués entre deux entités utilisatrices, en particulier lorsque ces échanges sont susceptibles de se rapporter à une situation conflictuelle, par exemple en milieu professionnel. The present invention belongs to the general field of cryptography. It relates more particularly to a method for calculating a session key for securing a communication session between two user entities. It also relates to a method for recovering, during a communication session between such user entities, said session key by at least one entity which differs from said two user entities. The invention finds a particularly advantageous application, although in no way limiting, in the aid for the investigation concerning the nature of exchanges carried out between two user entities, in particular when these exchanges are likely to relate to a conflicting situation, for example. example in a professional environment.
A ce jour, on connaît de multiples techniques de chiffrement permettant de sécuriser des messages échangés entre deux entités. Ces techniques de chiffrement s'appuient sur des algorithmes de cryptographie ayant essentiellement pour but la détermination de clés grâce auxquelles deux entités, dites « entités utilisatrices » peuvent chiffrer/déchiffrer les messages qu'elles s'échangent. To date, many encryption techniques are known which make it possible to secure messages exchanged between two entities. These encryption techniques are based on cryptography algorithms having essentially for purpose the determination of keys thanks to which two entities, called “user entities” can encrypt / decrypt the messages which they exchange.
Certaines de ces techniques de chiffrement consistent notamment à calculer une seule clé secrète qui est dès lors destinée à être communément utilisée par lesdites deux entités utilisatrices au cours d'une future session de communication. Ladite clé secrète, encore dite « clé de session », constitue donc un secret partagé par lesdites entités utilisatrices, et est déterminée par chacune d'elles au terme d'un procédé de calcul impliquant des échanges de différentes valeurs cryptographiques. Some of these encryption techniques consist in particular in calculating a single secret key which is therefore intended to be commonly used by said two user entities during a future communication session. Said secret key, also called “session key”, therefore constitutes a secret shared by said user entities, and is determined by each of them at the end of a calculation method involving exchanges of different cryptographic values.
Ces échanges de valeurs cryptographiques s'effectuent classiquement via un réseau de communication géré par au moins une entité dite « entité de gestion » et sur lequel est également destiné à s'appuyer, une fois la clé de session calculée, la future session de communication entre lesdites entités utilisatrices. These exchanges of cryptographic values are conventionally carried out via a communication network managed by at least one so-called “management entity” and on which the future communication session is also intended to rely, once the session key has been calculated. between said user entities.
Dans des situations particulières, il importe que la clé de session déterminée par les deux entités utilisatrices puisse, bien qu'étant a priori secrète, faire l'objet d'une demande de récupération émise par une entité, dite « entité de récupération », et autorisée par une entité, dite « entité d'autorisation ». Par « récupération », il est fait référence ici au recouvrement de la clé de session par l'entité de récupération. In particular situations, it is important that the session key determined by the two user entities can, although being a priori secret, be the subject of a recovery request sent by an entity, called a “recovery entity”, and authorized by an entity, called an “authorization entity”. By “recovery”, reference is made here to the recovery of the session key by the recovery entity.
Le fait de récupérer ladite clé de session permet notamment à l'entité de récupération, d'avoir accès aux échanges partagés entre les entités, afin par exemple d'en déterminer la nature. Une telle possibilité se révèle être d'une importance particulière dans de multiples contextes. The fact of recovering said session key allows the recovery entity in particular to have access to the exchanges shared between the entities, in order for example to determine the nature thereof. Such a possibility turns out to be of particular importance in multiple contexts.
A titre purement illustratif, on peut citer le cas d'un salarié appartenant à un département d'une entreprise et qui est victime de harcèlement de la part du responsable hiérarchique dudit département. Ce harcèlement peut par exemple être caractérisé à partir de messages électroniques échangés, sous couvert du secret via une clé de session, entre le salarié et le responsable hiérarchique. Ces messages transitent en outre via un réseau de communication interne à l'entreprise et géré par un administrateur réseau qui joue donc ici le rôle de ladite entité de gestion. Afin de faire reconnaître cette situation de harcèlement, ledit salarié peut s'adresser à un tiers de confiance comme par exemple un juriste de ladite entreprise et qui joue ici le rôle de ladite entité d'autorisation. Ce juriste peut dès lors engager un dialogue avec un service approprié du département auquel appartient ledit salarié, comme par exemple un service chargé des ressources humaines et qui joue donc le rôle ici de ladite entité de récupération. Si le juriste l'y autorise, le service des ressources humaines peut lancer une procédure de récupération de la clé de session utilisée lors d'une session de communication entre le salarié et son responsable hiérarchique qui jouent ici le rôle desdites entités utilisatrices. De cette manière, le service des ressources humaines peut avoir accès, avec le concours de l'administrateur réseau, aux messages échangés entre le salarié et son responsable hiérarchique grâce à la clé de session ainsi récupérée, et donc in fine constater la situation de harcèlement. For purely illustrative purposes, we can cite the case of an employee belonging to a department of a company and who is the victim of harassment on the part of the hierarchical manager of said department. This harassment can for example be characterized from electronic messages exchanged, under cover of secrecy via a session key, between the employee and the line manager. These messages also pass through a communication network internal to the company and managed by a network administrator who therefore plays the role of said management entity here. In order to have this situation of harassment recognized, said employee may contact a trusted third party such as for example a lawyer from said company and who here plays the role of said authorization entity. This lawyer can therefore initiate a dialogue with an appropriate service in the department to which said employee belongs, such as for example a service in charge of human resources and which therefore plays the role here of said recovery entity. If the lawyer authorizes it, the human resources department can launch a procedure for recovering the session key used during a communication session between the employee and his line manager who here play the role of said user entities. In this way, the human resources department can have access, with the help of the network administrator, to the messages exchanged between the employee and his line manager thanks to the session key thus retrieved, and therefore ultimately observe the harassment situation. .
En pratique, le procédé de calcul de la clé de session comporte conventionnellement une transmission, d'une première entité utilisatrice vers une deuxième entité utilisatrice, d'un ensemble de valeurs. Une telle transmission s'effectue notamment via le réseau de communication géré par ladite au moins une entité de gestion qui joue dès lors le rôle d'intermédiaire entre lesdites deux entités utilisatrices. Les valeurs de cet ensemble sont des valeurs calculées par ladite première entité utilisatrice en fonction d'une clé secrète qui lui est propre ainsi que de clés publiques respectives des entités de gestion, d'autorisation et de récupération. En retour, la deuxième entité utilisatrice transmet, via le réseau géré par ladite au moins une entité de gestion et vers la première entité utilisatrice, un autre ensemble de valeurs qu'elle a elle-même calculées en fonction d'une clé secrète qui lui est propre ainsi que desdites clés publiques respectives des entités de gestion, d'autorisation et de récupération. Finalement, chaque entité utilisatrice calcule la clé de session à partir de tout ou partie des valeurs reçues de la part de l'autre entité utilisatrice. In practice, the method for calculating the session key conventionally comprises transmission, from a first user entity to a second user entity, of a set of values. Such a transmission takes place in particular via the communication network managed by said at least one management entity which therefore plays the role of intermediary between said two user entities. The values of this set are values calculated by said first user entity as a function of a secret key which is specific to it as well as respective public keys of the management, authorization and recovery entities. In return, the second user entity transmits, via the network managed by said at least one management entity and to the first user entity, another set of values which it has itself calculated as a function of a secret key which it receives. is clean as well as said respective public keys of the management, authorization and recovery entities. Finally, each user entity calculates the session key from all or part of the values received from the other user entity.
Par la suite, lorsqu'une entité de récupération demande à récupérer la clé de session ainsi calculée par les entités utilisatrices et utilisée par celles-ci au cours d'une session de communication, et obtient l'autorisation de le faire de la part de l'entité d'autorisation, un procédé de récupération basé sur une coopération entre lesdites entités de gestion, d'autorisation et de récupération est mis en oeuvre. En particulier, l'entité de gestion transmet aux entités d'autorisation et de récupération une des valeurs, dite « valeur pivot » ayant fait l'objet d'une transmission entre les entités utilisatrices au cours du procédé de calcul de la clé de session. Chacune des entités de gestion, d'autorisation et de récupération calcule alors, en fonction de cette valeur transmise par l'entité de gestion ainsi que d'une clé secrète qui lui est propre, une valeur intermédiaire. Enfin, les entités de gestion et d'autorisation transmettent leurs valeurs intermédiaires respectives à l'entité de récupération qui peut déterminer la clé de session à partir de ces valeurs intermédiaires reçues ainsi que de sa propre valeur intermédiaire. Bien qu'efficace dans le cas où une seule entité de récupération est concernée, cette manière de procéder (calcul de la clé de session, récupération de ladite clé de session) ne permet néanmoins pas de traiter de façon satisfaisante le cas où une deuxième entité de récupération souhaiterait également récupérer ladite clé de session afin d'accéder aux communications échangées au cours d'une session de communication entre les deux entités utilisatrices. Subsequently, when a recovery entity requests to recover the session key thus calculated by the user entities and used by them during a communication session, and obtains the authorization to do so from the authorization entity, a recovery method based on cooperation between said management, authorization and recovery entities is implemented. In particular, the management entity transmits to the authorization and recovery entities one of the values, called the “pivot value” which has been the subject of a transmission between the user entities during the method of calculating the session key. . Each of the management, authorization and recovery entities then calculates, as a function of this value transmitted by the management entity as well as of a secret key which is specific to it, an intermediate value. Finally, the management and authorization entities transmit their respective intermediate values to the recovery entity which can determine the session key from these received intermediate values as well as from its own intermediate value. Although effective in the case where only one recovery entity is concerned, this way of proceeding (calculation of the session key, recovery of said session key) does not nevertheless make it possible to deal satisfactorily with the case where a second entity recovery would also wish to recover said session key in order to access the communications exchanged during a communication session between the two user entities.
En effet, si un tel cas était envisagé, ladite deuxième entité de récupération devrait nécessairement recevoir, en provenance de l'entité de gestion, ladite valeur pivot. Cela résulte du fait que cette valeur pivot est essentielle aux calculs permettant de récupérer la clé de session, étant donné la façon dont est calculée ladite clé de session par les entités utilisatrices. On comprend dès lors que les deux entités de récupération partageraient la même valeur pivot, et en conséquence également la même clé publique afin que chacune soit en mesure de récupérer la même clé de session, ce qui va à l'encontre d'une indépendance éventuellement requise entre celles-ci. Indeed, if such a case were envisaged, said second recovery entity would necessarily have to receive, from the management entity, said pivot value. This results from the fact that this pivot value is essential for the calculations making it possible to retrieve the session key, given the way in which said session key is calculated by the user entities. It is therefore understood that the two recovery entities would share the same pivot value, and consequently also the same public key so that each is able to recover the same session key, which goes against possible independence. required between them.
Par « indépendance » entre entités de récupération, il est fait référence ici à des situations dans lesquelles il peut être exigé que lesdites entités de récupération soient autonomes entre elles. Autrement dit, dans ces situations, deux entités de récupération doivent pouvoir disposer de leur propres clés, et non avoir à partager la même. Par ailleurs, chacune de ces entités de récupération doit pouvoir procéder aux calculs de récupération d'une clé de session sans la collaboration de ladite autre entité. By “independence” between recovery entities, reference is made here to situations in which it may be required that said recovery entities be independent from one another. In other words, in these situations, two recovery entities must be able to have their own keys, and not have to share the same one. Furthermore, each of these recovery entities must be able to perform the calculations for recovering a session key without the collaboration of said other entity.
Pour illustrer une telle situation, et en reprenant l'exemple précédent relatif à une situation de harcèlement vécu par un salarié d'une entreprise, on pourrait considérer le cas où le juriste (i.e. l'entité d'autorisation) envisagerait, pour des raisons de déontologie, d'autoriser deux entités à récupérer la clé de session : d'une part, ledit service des ressources humaines du département auquel appartient le salarié, et, d'autre part, un autre service, par exemple un service d'assistance sociale, appartenant à un département autre que celui du salarié. Le fait de considérer un département autre que celui auquel appartient le salarié relèverait d'une intention légitime de la part du juriste, à savoir éviter que ledit service des ressources humaines soit considéré comme juge et partie étant donné son appartenance au département du salarié. To illustrate such a situation, and taking the previous example relating to a situation of harassment experienced by an employee of a company, we could consider the case where the lawyer (ie the authorization entity) would consider, for reasons of ethics, to authorize two entities to retrieve the session key: on the one hand, said human resources service of the department to which the employee belongs, and, on the other hand, another service, for example an assistance service social, belonging to a department other than that of the employee. The fact of considering a department other than that to which the employee belongs would come under a legitimate intention on the part of the lawyer, namely to prevent the said human resources department from being considered as judge and party given its membership in the employee's department.
Il n'en reste pas moins que les mises en oeuvre proposées dans l'état de la technique, et mentionnées ci-avant, ne permettent pas de répondre à cette problématique (i.e. respect de l'indépendance entre deux entités de récupération si celle-ci est exigée), étant donné que les deux services concernés dans cet exemple seraient tous les deux conduits à utiliser la même clé. En conséquence, l'anonymat de leurs calculs respectifs pour récupérer la clé de session pourrait être compromis. The fact remains that the implementations proposed in the state of the art, and mentioned above, do not make it possible to respond to this problem (ie respect for the independence between two recovery entities if this ci is required), since the two services involved in this example would both be forced to use the same key. As a result, the anonymity of their respective calculations to retrieve the session key could be compromised.
Exposé de l'invention Disclosure of the invention
La présente invention a pour objectif de remédier à tout ou partie des inconvénients de l'art antérieur, notamment ceux exposés ci-avant, en proposant une solution qui permette de calculer une clé de session destinée à être utilisée par deux entités utilisatrices pour communiquer entre elles de manière sécurisée au cours d'une session de communication, tout en offrant la possibilité à deux entités de récupération de récupérer ladite clé de session de manière anonyme l'une vis-à-vis de l'autre. The object of the present invention is to remedy all or part of the drawbacks of the prior art, in particular those set out above, by proposing a solution which makes it possible to calculate a session key intended to be used by two user entities to communicate with each other in a secure manner during a communication session, while offering the possibility for two recovery entities to recover said session key anonymously one vis-à-vis the other.
A noter que l'on utilise ici une notation habituelle en cryptographie dans laquelle : une élévation à une puissance est représentée au moyen du symbole « ˄ » ; ainsi : « g˄x » représente « g puissance x », soit « gx » ; le produit de x et y est schématisé par un point : « . », ou « x », ou rien ; ainsi « x.y », « x x y » et « xy » représentent « x multiplié par y ». Note that a usual notation is used here in cryptography wherein an exponentiation is represented by the symbol ""; and "g x" represents "g x power" or "g x"; the product of x and y is represented by a point: “. ", Or" x ", or nothing; thus "xy", "xxy" and "xy" represent "x multiplied by y".
A cet effet, et selon un premier aspect, l'invention concerne un procédé de calcul d'une clé de session pour la sécurisation d'une session de communication entre deux dispositifs utilisateurs U1, U2, ladite session de communication étant mise en oeuvre via un réseau de communication géré par au moins un dispositif de gestion E1, la clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, une valeur publique W égale à g˄(sk{E3}sk{E4}) ayant été calculée par au moins un dispositif de récupération E3, E4. To this end, and according to a first aspect, the invention relates to a method for calculating a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being put in. works via a communication network managed by at least one management device E 1 , the session key being able to be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk {Ej} as well as a private key sk {Ej}, pk {Ej} being equal to g sk {Ej} where g is a generator of a group of prime order p, a public value W equal to g (sk sk {E 3} {4} E) having been calculated by at least one device recovery E 3 , E 4 .
Ledit procédé comporte des étapes de : Said method comprises steps of:
- calcul, par le dispositif utilisateur U1, de valeurs A, A1, A2, A3, A4, A5 respectivement égales à g˄u, pk{E1}˄u, pk{E2}˄u, pk{E3}˄u, pk{E4}˄u, W˄u, et transmises au dispositif utilisateur U2 via le dispositif de gestion E1, u étant une valeur secrète du dispositif U1, - calculating, by the user device U 1, values of A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk {E 1} u, pk {S 2} u pk {3} E u, E pk {4} u, u W, U and forwarded to the user device 2 via the management device E 1, u being a secret value U of the device 1,
- calcul, par le dispositif utilisateur U2, de valeurs B, B1, B2, B3, C3, C4, D respectivement égales à g˄v, pk{E1}˄v, pk{E2}˄v, W˄v, A3 ˄n, A4 ˄n, A˄n et transmises au dispositif utilisateur U1 via le dispositif de gestion E1 qui mémorise au moins C3, C4 et D, v étant une valeur secrète du dispositif U2, - calculating, by the user device U 2 values of B, B 1, B 2, B 3, C 3, C 4, D respectively equal to v g, pk {E 1} v, pk {E2} v W v, a 3 n, a 4 n, a n and transmitted to the user device U 1 via the management device E 1 which stores at least C 3, C 4 and D v is a value secret of device U 2 ,
- calcul, par le dispositif utilisateur U1, d'une valeur K1 égale à B1 ˄1u) x B2 ˄( α2u) x B3 ˄((α34)u), où αm , m allant de 1 à 4, est une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à αm , - calculation by the user U device 1, a value K equal to 1 B 1 1 u) x B 2 2 u) x B 3 ((α 3 + α 4) u), where α m , m ranging from 1 to 4, is a quantity function of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and of a data associated with α m ,
- calcul, par le dispositif utilisateur U2, d'une valeur K2 égale à A1 ˄1ν) x A2 ˄2v) x A5 ˄((α3+ α4)ν), les valeurs K1 et K2 correspondant à ladite clé de session. - calculation by the user U device 2, having a K value equal to 2 A 1 ν 1) x A 2 2 v) × A 5 ((α 3 + α 4) ν), the values K 1 and K 2 corresponding to said session key.
Par « via le dispositif de gestion E1 », on fait référence ici au fait que des données sont transmises via ledit réseau de communication géré par le dispositif de gestion E1, ce dernier remplissant donc ainsi une fonction de relais de messages entre les dispositifs utilisateurs U1, U2. By "via the management device E 1 ", reference is made here to the fact that data is transmitted via said communication network managed by the management device E 1 , the latter thus fulfilling a function of relaying messages between the devices. users U 1 , U 2 .
Il importe de noter que dans l'écriture de la valeur K1, les valeurs B1, B2 et B3 sont respectivement élevées aux puissances α1 x u, α2 x u et (03 + α4) x u. De manière similaire, dans l'écriture de la valeur K2, les valeurs A1, A2 et A3 sont respectivement élevées aux puissances α1 x v, α2 x v et (α3 + α4) x v. It is important to note that in writing the value K 1 , the values B 1 , B 2 and B 3 are respectively raised to the powers α 1 xu, α 2 xu and (0 3 + α 4 ) x u. Similarly, in the writing of the value K 2 , the values A 1 , A 2 and A 3 are respectively raised to the powers α 1 xv, α 2 xv and (α 3 + α 4 ) x v.
Ledit procédé de calcul se distingue de manière remarquable de l'art antérieur en ce qu'il permet de calculer des valeurs C3 et C4 à partir desquelles les dispositifs de récupération peuvent effectuer des traitements pour récupérer la clé de session, comme cela est détaillé ultérieurement. Said calculation method differs remarkably from the prior art in that it makes it possible to calculate values C 3 and C 4 from which the recovery devices can perform processing to recover the session key, as is detailed later.
Autrement dit, le procédé de calcul selon l'invention ne se contente pas de permettre à deux dispositifs utilisateurs de communiquer entre eux grâce à la clé de session calculée, mais offre également la possibilité que ladite clé de session puisse être récupérée par deux entités de récupération et de manière anonyme l'une vis-à-vis de l'autre. In other words, the calculation method according to the invention is not satisfied with allowing two user devices to communicate with each other thanks to the calculated session key, but also offers the possibility that said session key can be retrieved by two communication entities. recovery and anonymously to each other.
Dans des modes particuliers de mise en oeuvre, le procédé de calcul peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. In particular embodiments, the calculation method may also include one or more of the following characteristics, taken in isolation or in any technically possible combination.
Dans des modes particuliers de mise en oeuvre, lequel la valeur publique W est calculée par chacune des deux entités de récupération E3 et E4. In particular embodiments, in which the public value W is calculated by each of the two recovery entities E 3 and E 4 .
De telles dispositions permettent de vérifier si le calcul de W par au moins une desdites entités de récupération E3, E4 n'est pas entaché d'erreur, une telle erreur pouvant par exemple trouver son origine dans le fait que l'entité de récupération en question est corrompue ou bien encore mal configurée pour exécuter l'invention. De cette manière, il est possible de bloquer une entité de récupération E3, E4 dont le calcul de W est erroné afin de l'empêcher ultérieurement de récupérer la clé de session. Such arrangements make it possible to verify whether the calculation of W by at least one of said recovery entities E 3 , E 4 is not tainted with an error, such an error possibly having its origin, for example, in the fact that the recovery entity. recovery in question is corrupted or else poorly configured to perform the invention. In this way, it is possible to block a recovery entity E 3 , E 4 whose calculation of W is erroneous in order to prevent it subsequently from recovering the session key.
L'invention propose également différents modes de mise en oeuvre du procédé de calcul, dans lesquels une ou plusieurs vérifications sont effectuées afin de déterminer si les différentes valeurs respectivement calculées par les dispositifs U1, U2 et E1 sont erronées ou non, et, en cas de calcul erroné, permettre l'arrêt dudit procédé de calcul. The invention also proposes different modes of implementation of the calculation method, in which one or more checks are carried out in order to determine whether the different values respectively calculated by the devices U 1 , U 2 and E 1 are erroneous or not, and , in the event of an erroneous calculation, allow said calculation method to be stopped.
Dans des modes particuliers de mise en oeuvre, lors de la transmission des valeurs A, A1, A2, A3, A4, A5 du dispositif utilisateur U1 vers le dispositif utilisateur U2, le dispositif de gestion E1 vérifie si, pour un couplage bilinéaire e donné : In particular embodiments, during the transmission of the values A, A 1 , A 2 , A 3 , A 4 , A 5 from the user device U 1 to the user device U 2 , the management device E 1 checks if, for a given bilinear coupling e:
- e[A1,g] est égal à e[A,pk{E1}], - e [A 1 , g] is equal to e [A, pk {E 1 }],
- e[A2,g] est égal à e[A,pk{E2}], - e [A 2 , g] is equal to e [A, pk {E 2 }],
- e[A3,g] est égal à e[A,pk{E3}], - e [A 3 , g] is equal to e [A, pk {E 3 }],
- e[A4,g] est égal à e[A,pk{E4}], - e [A 4 , g] is equal to e [A, pk {E 4 }],
- e[A5,g] est égal à e[A,W], et, lors de la transmission des valeurs B, B1, B2, B3, C3, C4, D du dispositif utilisateur U2 vers le dispositif utilisateur U1, le dispositif de gestion E1 vérifie si : - e [A 5 , g] is equal to e [A, W], and, when transmitting values B, B 1 , B 2 , B 3 , C 3 , C 4 , D from user device U 2 to the user device U 1 , the management device E 1 checks whether:
- e[B1,g] est égal à e[B,pk{E1}], - e [B 1 , g] is equal to e [B, pk {E 1 }],
- e[B2,g] est égal à e[B,pk{E2}], - e [B 2 , g] is equal to e [B, pk {E 2 }],
- e[B3,g] est égal à e[B,W], - e [B 3 , g] is equal to e [B, W],
- e[C3,g] est égal à e[D,pk{E3}], - e[C4,g] est égal à e[D,pk{E4}], - e [C 3 , g] is equal to e [D, pk {E 3 }], - e [C 4 , g] is equal to e [D, pk {E 4 }],
- e[D,g] est égal à e[A,B], le procédé de calcul étant stoppé dès lors que le nombre d'égalités non vérifiées atteint un seuil donné. - e [D, g] is equal to e [A, B], the calculation method being stopped as soon as the number of unverified equalities reaches a given threshold.
Dans des modes particuliers de mise en oeuvre, suite à la réception de la valeur D en provenance du dispositif utilisateur U2, le dispositif utilisateur U1 calcule une valeur D' égale à A˄n et vérifie que ladite valeur D' est égale à ladite valeur D, le procédé de calcul étant stoppé si ladite égalité n'est pas vérifiée. In particular modes of implementation, upon receipt of the value D from the user device U 2, U user device 1 calculates a value D equal to A n and checks that said value D is equal to said value D, the calculation method being stopped if said equality is not verified.
Dans des modes particuliers de mise en oeuvre, un dispositif utilisateur Ui, i allant de 1 à 2, est associé à une clé publique pk{Ui} ainsi qu'à une clé privée sk{Ui}, et : In particular embodiments, a user device Ui, i ranging from 1 to 2, is associated with a public key pk {Ui} as well as a private key sk {Ui}, and:
- le dispositif utilisateur U1 détermine, au moyen de sa clé privée sk{U1}, une signature δ1 d'un message fonction de pk{U1}, pk{U2}, A, A1, A2, A3, A4, A5 et N1, où N1 est une valeur aléatoire, la signature δ1 et la valeur N1 étant également transmises au dispositif utilisateur U2 via le dispositif de gestion E1, - the user device U 1 determines, by means of its private key sk {U 1 }, a signature δ 1 of a message function of pk {U 1 }, pk {U 2 }, A, A 1 , A 2 , A 3 , A 4 , A 5 and N 1 , where N 1 is a random value, the signature δ 1 and the value N 1 also being transmitted to the user device U 2 via the management device E 1 ,
- le dispositif utilisateur U2 détermine, au moyen de sa clé privée sk{U2}, une signature δ2 d'un message fonction de pk{U1}, pk{U2}, B, D, B1, B2, B3 et N2, où N2 est une valeur aléatoire, ainsi qu'une signature δ3 d'un message fonction de pk{U1}, pk{U2}, B, D, C3, C4 et N3, où N3 est une valeur aléatoire, les signatures δ2, δ3 et les valeurs N2, N3 étant également transmises au dispositif utilisateur U1 via le dispositif de gestion E1, la signature δ1 étant vérifiée par le dispositif de gestion E1 avant sa transmission au dispositif utilisateur U2, ainsi que par ledit dispositif utilisateur U2 après transmission, et les signatures δ2 et δ3 étant vérifiées par le dispositif de gestion E1 avant leurs transmissions respectives au dispositif utilisateur U1, ainsi que par ledit dispositif utilisateur U1 après transmission, le procédé de calcul étant stoppé dès lors que le nombre de signatures non vérifiées atteint un seuil donné. - the user device U 2 determines, by means of its private key sk {U 2 }, a signature δ 2 of a message function of pk {U 1 }, pk {U 2 }, B, D, B 1 , B 2 , B 3 and N 2 , where N 2 is a random value, as well as a signature δ 3 of a message function of pk {U 1 }, pk {U 2 }, B, D, C 3 , C 4 and N 3 , where N 3 is a random value, the signatures δ 2 , δ 3 and the values N 2 , N 3 also being transmitted to the user device U 1 via the management device E 1 , the signature δ 1 being verified by the management device E 1 before its transmission to the user device U 2 , as well as by said user device U 2 after transmission, and the signatures δ 2 and δ 3 being verified by the management device E 1 before their respective transmissions to the user device U 1 , as well as by said user device U 1 after transmission, the calculation method being stopped as soon as the number of unverified signatures reaches a given threshold.
La valeur aléatoire N1 correspond par exemple à un nombre de type « nonce », cette désignation étant bien connue de l'homme de l'art. Cette remarque s'applique également aux autres valeurs aléatoires N2, N3 et N4 décrites ci-après. The random value N 1 corresponds for example to a number of the “nonce” type, this designation being well known to those skilled in the art. This remark also applies to the other random values N 2 , N 3 and N 4 described below.
Selon un deuxième aspect, l'invention concerne un procédé de communication entre deux dispositifs utilisateurs U1, U2 au cours d'une session de communication mise en oeuvre via un réseau de communication géré par au moins un dispositif de gestion E1, ladite session de communication étant sécurisée au moyen d'une clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif utilisateur Ui, i allant de 1 à 2 , étant associé à une clé publique pk{Ui} ainsi qu'à une clé privée sk{Ui}, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, une valeur publique W égale à g˄(sk{E3}sk{E4}) ayant été calculée par au moins un dispositif de récupération E3, E4, ladite clé de session étant calculée conformément à un procédé de calcul selon l'invention. According to a second aspect, the invention relates to a method of communication between two user devices U 1 , U 2 during a communication session implemented via a communication network managed by at least one management device E 1 , said communication session being secured by means of a session key that can be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3 , E 4 , a user device Ui, i ranging from 1 to 2 , being associated with a public key pk {Ui} as well as with a private key sk {Ui}, a device Ej, j ranging from 1 to 4 , being associated to a public key pk {Ej} and a private key sk {E j}, pk {E j} being equal to g sk {Ej} where g is a generator of a group of prime order p, a public value W equal to g (sk sk {E 3} {4} E) having been calculated by at least one recovery device E 3, E 4, said session key being calculated according to a calculation method according to the invention.
Dans des modes particuliers de mise en oeuvre, un dispositif utilisateur Ui, i allant de 1 à 2, est associé à une clé publique pk{Ui} ainsi qu'à une clé privée sk{Ui}, et la clé de session est calculée conformément à un procédé de calcul selon l'invention. In particular embodiments, a user device Ui, i ranging from 1 to 2, is associated with a public key pk {Ui} as well as a private key sk {Ui}, and the session key is calculated in accordance with a calculation method according to the invention.
Selon un troisième aspect, l'invention concerne un procédé de récupération d'une clé de session au moyen de laquelle une session de communication entre deux dispositifs utilisateurs U1, U2 peut être sécurisée, ladite session de communication étant mise en oeuvre via un réseau de communication géré par au moins un dispositif de gestion E1, ledit procédé de récupération étant mis en oeuvre suite à au moins une demande de récupération de ladite clé de session autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, une valeur publique W égale à g˄(sk{E3}sk{E4}) ayant été calculée par au moins un dispositif de récupération E3, E4, et ladite clé de session étant calculée conformément à un procédé de calcul l'invention. According to a third aspect, the invention relates to a method for recovering a session key by means of which a communication session between two user devices U 1 , U 2 can be secured, said communication session being implemented via a communication network managed by at least one management device E 1 , said recovery method being implemented following at least one request for recovery of said session key authorized by an authorization device E 2 and sent by a recovery among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk {Ej} as well as with a private key sk {Ej}, pk {Ej} being equal to g sk {Ej} where g is a generator of a group of prime order p, a public value W equal to g (sk sk {E 3} {4} E) having been calculated by at least one recovery device E 3 , E 4 , and said session key being calculated in accordance with a method of calculating the invention.
Ledit procédé de récupération comporte des étapes de : Said recovery process comprises steps of:
- transmission, par le dispositif de gestion E1, de la valeur D au dispositif d'autorisation E2 ainsi que de la valeur C4 au dispositif de récupération E3 si ladite au moins une demande de récupération est émise par ledit dispositif E3 et/ou de la valeur C3 au dispositif de récupération E4 si ladite au moins une demande de récupération est émise par ledit dispositif E4, transmission, by the management device E 1 , of the value D to the authorization device E 2 as well as of the value C 4 to the recovery device E 3 if said at least one recovery request is sent by said device E 3 and / or the value C 3 to the recovery device E 4 if said at least one recovery request is sent by said device E 4 ,
- calcul, par le dispositif de gestion E1, d'une valeur T 1 égale à D˄1sk{E1}) et transmise audit dispositif de récupération parmi deux dispositifs de récupération E3, E4, - calculating, by the management device E 1, a value T 1 equal to D (1 α sk {E 1}) and transmitted to said recovery device of two recovery devices E 3, E 4,
- calcul, par le dispositif d'autorisation E2, d'une valeur T2 égale à D˄2sk{E2}) et transmise audit dispositif de récupération parmi deux dispositifs de récupération E3, E4, - calculating, by E 2 authorization device, a T 2 value equal to α 2 D {sk} {E 2) and transmitted to said recovery device of two recovery devices E 3, E 4,
- calcul, par ledit dispositif de récupération parmi deux dispositifs de récupération E3, E4, d'une valeur T3 égale à C4 ˄((α34)sk{E3}) si la demande de récupération est émise par ledit dispositif E3 et/ou d'une valeur T4 égale à C3 ˄((α34)sk{E4}) si la demande de récupération est émise par ledit dispositif E4, - calculating, by said recovery device of two recovery devices E 3, E 4, a value T equal to 3 C 4 ((α 3 + α 4) E {sk} 3) whether the retrieval request is emitted by said device E 3 and / or a value T equal to 4 C 3 ((α 3 + α 4) 4} E {sk) whether the retrieval request is issued by said E 4 device,
- calcul, par ledit dispositif de récupération parmi deux dispositifs de récupération E3, E4, d'une valeur K3 égale à T1 x T2 x T3 et/ou d'une valeur K4 égale à T1 x T2 x T4, les valeurs K3 et K4 correspondant à ladite clé de session récupérée. - calculation, by said recovery device from among two recovery devices E 3 , E 4 , of a value K 3 equal to T 1 x T 2 x T 3 and / or of a value K 4 equal to T 1 x T 2 x T 4 , the values K 3 and K 4 corresponding to said recovered session key.
Il importe de noter que dans l'écriture des valeurs T1 et T2, la valeur D est respectivement élevée à la puissance α1 x sk{E1} et α2 x sk{E2}. De manière similaire, dans l'écriture des valeurs T3 et T4, les valeurs C4 et C3 sont respectivement élevées aux puissances (α3 + α4) x sk{E3} et (α3 + α4) x sk{E4}. Le procédé de récupération selon l'invention offre donc la possibilité aux deux dispositifs de récupération E3 et E4 de récupérer la clé session que les dispositifs utilisateurs U1, U2 ont calculée et qu'ils utilisent pour communiquer entre eux au cours de la session de communication. It is important to note that in writing the values T 1 and T 2 , the value D is respectively raised to the power α 1 x sk {E 1 } and α 2 x sk {E 2 }. Similarly, in writing the values T 3 and T 4 , the values C 4 and C 3 are respectively raised to the powers (α 3 + α 4 ) x sk {E 3 } and (α 3 + α 4 ) x sk {E 4 }. The recovery method according to the invention therefore offers the two recovery devices E 3 and E 4 the possibility of recovering the session key that the user devices U 1 , U 2 have calculated and that they use to communicate with each other during the communication session.
La récupération de ladite clé de session par les dispositifs de récupération E3, E4 s'effectue de manière complètement invisible (i.e. indétectable) pour lesdits dispositifs utilisateurs U1, U2. Cela résulte du fait que la récupération de la clé de session ne nécessite pas de valeurs connues seulement desdits dispositifs utilisateurs U1 ou U2. The recovery of said session key by the recovery devices E 3 , E 4 is carried out completely invisible (ie undetectable) for said user devices U 1 , U 2 . This results from the fact that the recovery of the session key does not require values known only from said user devices U 1 or U 2 .
De manière plus spécifique, le dispositif de gestion E1 et le dispositif d'autorisation E2 utilisent tous les deux, lors du procédé de récupération, la valeur D initialement échangées entre les dispositifs utilisateurs U1, U2 lors du procédé de calcul de la clé de session (la valeur D est dès lors vue comme une valeur pivot à partir de laquelle des valeurs intermédiaires représentées par T1 et T2 sont calculées), le calcul de la valeur T3 (respectivement T4) par le dispositif de récupération E3 (respectivement E4) ne se basant nullement sur cette valeur D. Autrement dit, et contrairement à l'état de la technique, chacun des dispositifs de récupération E3, E4 utilise des valeurs qui lui sont propres pour déterminer la dernière valeur T3, T4 à partir de laquelle il est possible de récupérer la clé de session. More specifically, the management device E 1 and the authorization device E 2 both use, during the recovery process, the value D initially exchanged between the user devices U 1 , U 2 during the calculation process. the session key (the value D is therefore seen as a pivot value from which intermediate values represented by T 1 and T 2 are calculated), the calculation of the value T 3 (respectively T 4 ) by the recovery E 3 (respectively E 4 ) not based in any way on this value D. In other words, and unlike the state of the art, each of the recovery devices E 3 , E 4 uses values which are specific to it to determine the last value T 3 , T 4 from which it is possible to retrieve the session key.
Par ailleurs, il est particulièrement avantageux que les dispositifs de récupération E3, E4 récupèrent la clé de session respectivement à partir des valeurs T3, T4. En effet, le procédé de récupération a pour avantage de permettre aux dispositifs de récupération E3, E4 de récupérer la clé de session de manière indépendante l'un vis-à-vis de l'autre étant donné que chacun de ces dispositifs utilise une valeur différente, et donc in fine une clé publique qui lui est propre. Furthermore, it is particularly advantageous for the recovery devices E 3 , E 4 to recover the session key respectively from the values T 3 , T 4 . Indeed, the recovery method has the advantage of allowing the recovery devices E 3 , E 4 to recover the session key independently from one another given that each of these devices uses a different value, and therefore ultimately its own public key.
Le fait que la clé de session puisse être récupérée de manière indépendante par les dispositifs de récupération E3, E4 a son importance dans de multiples contextes, en particulier lorsque les entités de récupération qui détiennent respectivement lesdits dispositifs de récupération sont indépendantes entre elles, et doivent le demeurer. The fact that the session key can be recovered independently by the recovery devices E 3 , E 4 is important in multiple contexts, in particular when the recovery entities which respectively hold said recovery devices are independent of each other, and must remain so.
Dans des modes particuliers de mise en oeuvre, le procédé de récupération peut comporter en outre l'une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles. In particular embodiments, the recovery process may further include one or more of the following characteristics, taken in isolation or in any technically possible combination.
Dans des modes particuliers de mise en oeuvre, indépendamment du nombre de demande de récupération émise : In particular modes of implementation, regardless of the number of recovery requests sent:
- la valeur C3 est également transmise par le dispositif de gestion E1 au dispositif de récupération E3, - the value C 3 is also transmitted by the management device E 1 to the recovery device E 3 ,
- la valeur C4 est également transmise par le dispositif de gestion E1 au dispositif de récupération E4. - the value C 4 is also transmitted by the management device E 1 to the recovery device E 4 .
De telles dispositions permettent de renforcer la sécurité du procédé de récupération en ce que cela permet d'éviter la détermination de l'origine d'une demande de récupération. En effet, étant donné que chaque dispositif de récupération E3, E4 reçoit les deux valeurs C3, C4, il devient impossible de distinguer ces dispositifs de récupération E3, E4 entre eux en ce qui concerne leurs demandes de récupération éventuelles. Such arrangements make it possible to reinforce the security of the recovery process in that it makes it possible to avoid determining the origin of a recovery request. Indeed, given that each recovery device E 3 , E 4 receives the two values C 3 , C 4 , it becomes impossible to distinguish these recovery devices E 3 , E 4 from one another with regard to their possible recovery requests.
Dans des modes particuliers de mise en oeuvre, ladite clé de session est calculée conformément à un procédé de calcul selon l'invention, et : In particular embodiments, said session key is calculated in accordance with a calculation method according to the invention, and:
- le dispositif de gestion E1 transmet, avant les calculs des valeurs T2 ainsi que T3 et/ou T4, les signatures δ1, δ2, δ3 ainsi que les valeurs A, A1, A2, A3, A4, A5, N1, B, B1, B2, B3, N2, N3 au dispositif d'autorisation E2 ainsi qu'au dispositif de récupération parmi deux dispositifs de récupération E3, E4,- the management device E 1 transmits, before the calculations of the values T 2 as well as T 3 and / or T 4 , the signatures δ 1 , δ 2 , δ 3 as well as the values A, A 1 , A 2 , A 3 , A 4 , A 5 , N 1 , B, B 1 , B 2 , B 3 , N 2 , N 3 to the authorization device E 2 as well as to the recovery device among two recovery devices E 3 , E 4 ,
- le dispositif d'autorisation E2 vérifie les signatures δ1, α2, δ3 avant le calcul de la valeur T2,- the authorization device E 2 verifies the signatures δ 1 , α 2 , δ 3 before calculating the value T 2 ,
- ledit dispositif de récupération parmi deux dispositifs de récupération E3, E4 vérifie les signatures δ1, δ2, δ3 avant le calcul de la valeur T3 et/ou T4, le procédé de récupération étant stoppé dès lors que le nombre de signatures non vérifiées atteint un seuil donné. - said recovery device from among two recovery devices E 3 , E 4 verifies the signatures δ 1 , δ 2 , δ 3 before calculating the value T 3 and / or T 4 , the recovery process being stopped as soon as the number of unverified signatures reaches a given threshold.
Selon un quatrième aspect, l'invention concerne un ensemble de programmes d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé de calcul d'une clé de session selon l'invention ou d'un procédé de communication selon l'invention ou d'un procédé de récupération selon l'invention lorsque ledit ensemble de programmes est exécuté par un ou plusieurs ordinateurs. According to a fourth aspect, the invention relates to a set of computer programs comprising instructions for the implementation of a method for calculating a session key according to the invention or of a communication method according to the. invention or of a recovery method according to the invention when said set of programs is executed by one or more computers.
Un programme dudit ensemble de programmes peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. A program of said set of programs can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in n any other desirable shape.
Selon un cinquième aspect, l'invention concerne un support d'informations ou d'enregistrement lisible par un ordinateur sur lequel est enregistré un ensemble de programmes d'ordinateur selon l'invention ou un programme d'ordinateur appartenant à un ensemble de programmes d'ordinateur selon l'invention. According to a fifth aspect, the invention relates to an information or recording medium readable by a computer on which is recorded a set of computer programs according to the invention or a computer program belonging to a set of computer programs. computer according to the invention.
Le support d'informations ou d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le ou les programmes. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur. The information or recording medium can be any entity or device capable of storing the program (s). For example, the medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or else a magnetic recording means, for example a floppy disk or a disk. hard.
D'autre part, le support d'informations ou d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. L'ensemble de programmes selon l'invention, ou un programme dudit ensemble de programmes, peut être en particulier téléchargé sur un réseau de type Internet. On the other hand, the information or recording medium can be a transmissible medium such as an electrical or optical signal, which can be conveyed via an electrical or optical cable, by radio or by other means. The set of programs according to the invention, or a program of said set of programs, can in particular be downloaded over an Internet type network.
Alternativement, le support d'informations ou d'enregistrement peut être un circuit intégré dans lequel le ou les programmes sont incorporés, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. Alternatively, the information or recording medium can be an integrated circuit in which the program or programs are incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
Selon un sixième aspect, l'invention concerne un dispositif utilisateur U1 pour le calcul d'une clé de session pour la sécurisation d'une session de communication entre ledit dispositif utilisateur U1 et un dispositif utilisateur U2, ladite session de communication étant mise en oeuvre via un réseau de communication géré par un dispositif de gestion E1, la clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p. According to a sixth aspect, the invention relates to a user device U 1 for calculating a session key for securing a communication session between said user device U 1 and a user device U 2 , said communication session being implemented via a communication network managed by a management device E 1 , the session key possibly being the subject of at least one recovery request authorized by a device d authorization E 2 and issued by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk {Ej} as well as with a private key Ej {sk}, {Ej} pk being equal to g sk {Ej} where g is a generator of a group of prime order p.
Ledit dispositif utilisateur U1 comporte : Said user device U 1 comprises:
- un premier module de calcul, configuré pour calculer des valeurs A, A1, A2, A3, A4, A5 respectivement égales à g˄u, pk{E1}˄u, pk{E2}˄u, pk{E3}˄u, pk{E4}˄u, W˄u, u étant une valeur secrète du dispositif U1, et W étant une valeur publique calculée par au moins un dispositif de récupération E3, E4 et égale à g˄(sk{E3}sk{E4}), - a first calculation module configured to calculate values A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk {E 1} u, pk {S 2} u pk {3} E u, E pk {4} u, W u, u being a secret value U of the device 1, and W is a public value calculated by at least one recovery device E 3, E 4 and equal to g (sk sk {E 3} {4} E),
- un module de communication, configuré pour transmettre lesdites valeurs A, A1, A2, A3, A4, A5 au dispositif utilisateur U2 via le dispositif de gestion E1, ledit module de communication étant en outre configuré pour recevoir, en provenance du dispositif utilisateur U2 et via le dispositif de gestion E1, des valeurs B, B1, B2, B3, C3, C4, D calculées par ledit dispositif utilisateur U2 et respectivement égales à g˄v, pk{E1}˄v, pk{E2}˄v, W˄v, A3 ˄n, A4 ˄n, A˄n, v étant une valeur secrète du dispositif U2, - a communication module, configured to transmit said values A, A 1 , A 2 , A 3 , A 4 , A 5 to the user device U 2 via the management device E 1 , said communication module also being configured to receive , from the user U and device 2 via the management device E 1, the values B, B 1, B 2, B 3, C 3, C 4, D calculated by said U user device 2 and respectively equal to g v, pk {E 1} v, pk {S 2} v W v, a 3 n, a 4 n, a n, v being a secret value U device 2,
- un deuxième module de calcul, configuré pour calculer une valeur K1 égale à B1 ˄1u) x B2 ˄2U) x B3 ˄((α34)u), où αm , m allant de 1 à 4, est une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à αm . - a second calculation module configured to calculate a value K equal to 1 B 1 1 u) x B 2 2 U) x B 3 ((α 3 + α 4) u), where α m , m ranging from 1 to 4, is a quantity function of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and of a data associated with α m .
Selon un septième aspect, l'invention concerne un dispositif utilisateur U2 pour le calcul d'une clé de session pour la sécurisation d'une session de communication entre ledit dispositif utilisateur U2 et un dispositif utilisateur U1, ladite session de communication étant mise en oeuvre via un réseau de communication géré par un dispositif de gestion E1, la clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p. According to a seventh aspect, the invention relates to a user device U 2 for calculating a session key for securing a communication session between said user device U 2 and a user device U 1 , said communication session being implemented via a communication network managed by a management device E 1 , the session key being able to be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk {Ej} as well as a private key sk {Ej}, pk {Ej} being equal to g sk {Ej} where g is a generator of a group of prime order p.
Ledit dispositif utilisateur U2 comporte : Said user device U 2 comprises:
- un module de communication, configuré pour recevoir, en provenance du dispositif utilisateur U1 et via le dispositif de gestion E1, des valeurs A, A1, A2, A3, A4, A5 calculées par le dispositif utilisateur U1 et respectivement égales à g˄u, pk{E1}˄u, pk{E2}˄u, pk{E3}˄u, pk{E4}˄u, W˄u, u étant une valeur secrète du dispositif U1, et W étant une valeur publique calculée par au moins un dispositif de récupération E3, E4 et égale à g˄(sk{E3}sk{E4}), - a communication module, configured to receive, from the user device U 1 and via the management device E 1 , values A, A 1 , A 2 , A 3 , A 4 , A 5 calculated by the user device U 1 and respectively equal to g u, pk {E 1} u, pk {2} E u, E 3 {pk} u, pk {S 4} u, W u, u being a secret value U of the device 1, and W is a public value calculated by at least one recovery device E 3, E 4 and equal to g (sk sk {E 3} {4} E),
- un premier module de calcul, configuré pour calculer des valeurs B, B1, B2, B3, C3, C4, D respectivement égales à g˄v, pk{E1}˄v, pk{E2}˄v, W˄v, A3 ˄n, A4 ˄n, A˄n, v étant une valeur secrète du dispositif U2, ledit module de communication étant en outre configuré pour transmettre lesdites valeurs B, B1, B2, B3, C3, C4, D au dispositif U1 via l'entité de gestion E1, - un deuxième module de calcul, configuré pour calculer une valeur K2 égale à A1 ˄1ν) x A2 ˄2ν) x A5 ˄((α14)ν) , où αm , m allant de 1 à 4, est une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à αm . - a first calculation module configured to calculate B, B values 1, B 2, B 3, C 3, C 4, D respectively equal to v g, pk {E 1} v, pk {E2} v W v, a 3 n, a 4 n, a n, v being a secret value U 2 device, said communication module further being configured to transmit said values B, B 1, B 2 , B 3 , C 3 , C 4 , D to the device U 1 via the management entity E 1 , - a second calculation module configured to calculate a K value equal to 2 A 1 ν 1) x A 2 2 ν) x A 5 ((α 1 + α 4) ν), where α m , m ranging from 1 to 4, is a quantity function of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and of a data associated with α m .
Selon un huitième aspect, l'invention concerne un dispositif de gestion E1 d'un réseau de communication via lequel est destinée à être mise en oeuvre une session de communication entre deux dispositifs utilisateurs U1, U2, ladite session de communication étant sécurisée au moyen d'une clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p. According to an eighth aspect, the invention relates to a management device E 1 of a communication network via which a communication session between two user devices U 1 , U 2 is intended to be implemented, said communication session being secure. by means of a session key that can be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, associated with a public key pk {ej} and a private key sk {ej}, pk {Ej} being equal to g sk {Ej} where g is a generator of 'a first-order group p.
Ledit dispositif de gestion E1 comporte un module de communication, configuré pour transmettre : Said management device E 1 comprises a communication module, configured to transmit:
- du dispositif utilisateur U1 vers le dispositif utilisateur U2, des valeurs A, A1, A2, A3, A4, A5 respectivement égales à g˄u, pk{E1}˄u, pk{E2}˄u, pk{E3}˄u, pk{E4}˄u, W˄u, u étant une valeur secrète du dispositif U1, et W étant une valeur publique calculée par au moins un dispositif de récupération E3, E4 et égale à g˄(sk{E3}sk{E4}), - the user device U 1 to U user device 2, the values A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk {E 1} u, pk {E 2 u}, {pk} u E 3, E 4} {pk u, W u, u being a secret value U of the device 1, and W is a public value calculated by at least one recovery device E 3 , E 4 and equal to g (sk sk {E 3} {4} E),
- du dispositif utilisateur U2 vers le dispositif utilisateur U1, des valeurs B, B1, B2, B3, C3, C4, D respectivement égales à g˄v, pk{E1}˄v, pk{E2}˄v, W˄v, A3 ˄n, A4 ˄n, A˄n, v étant une valeur secrète du dispositif U2, et comporte en outre : - U 2 U user device to the user device 1, values of B, B 1, B 2, B 3, C 3, C 4, D respectively equal to v g, pk {E 1} v, pk { E 2} v W v, a 3 n, a 4 n, a n, v being a secret value U of device 2, and further comprises:
- un module de mémorisation, configuré pour mémoriser au moins C3, C4, D, - a storage module, configured to store at least C 3 , C 4 , D,
- un module de calcul, configuré pour calculer une valeur T1 égale à D˄1sk{E1}), où α1 est un hachage d'une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à α1, ledit module de communication étant en outre configuré pour transmettre : - a calculation module configured to calculate a value equal to D T 1 1 E sk {1}), where α 1 is a hash function of an amount of pk {E 1}, {pk} E 2 , pk {E 3 }, pk {E 4 } and data associated with α 1 , said communication module being further configured to transmit:
- la valeur D au dispositif d'autorisation E2, - the value D to the authorization device E 2 ,
- la valeur C4 au dispositif E3 si ladite au moins une demande de récupération est émise par ledit dispositif E3 et/ou la valeur C3 au dispositif E4 si ladite au moins une demande de récupération est émise par ledit dispositif E4, the value C 4 to the device E 3 if said at least one recovery request is sent by said device E 3 and / or the value C 3 to the device E 4 if said at least one recovery request is sent by said device E 4 ,
- la valeur T1 audit dispositif de récupération parmi deux dispositifs de récupération E3, E4.- the value T 1 to said recovery device among two recovery devices E 3 , E 4 .
Selon un neuvième aspect, l'invention concerne un dispositif d'autorisation E2 pour autoriser au moins une demande de récupération d'une clé de session pour la sécurisation d'une session de communication entre deux dispositifs utilisateurs U1, U2, ladite session de communication étant mise en oeuvre via un réseau de communication géré par un dispositif de gestion E1 et ladite au moins une demande de récupération étant émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p. Ledit dispositif d'autorisation E2 comporte un module de communication, configuré pour :According to a ninth aspect, the invention relates to an authorization device E 2 for authorizing at least one request for the recovery of a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being implemented via a communication network managed by a management device E 1 and said at least one recovery request being sent by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, associated with a public key pk {Ej} and a private key sk {Ej} pk {Ej} being equal to g sk {Ej} where g is a generator first order group p. Said authorization device E 2 comprises a communication module, configured for:
- émettre, à destination dudit au moins un dispositif de récupération parmi deux dispositifs de récupération E3, E4, une autorisation de ladite au moins demande de récupération, - send, to said at least one recovery device from among two recovery devices E 3 , E 4 , an authorization of said at least recovery request,
- recevoir, en provenance du dispositif de gestion E1, une valeur D mémorisée par ledit dispositif de gestion E1 et égale à A˄n, A étant égale à g˄u, u et v étant des valeurs secrètes respectives des dispositifs utilisateurs U1 et U2, et comprend en outre un module de calcul, configuré pour calculer une valeur T2 égale à D˄2Sk{E2}), où α2 est un hachage d'une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à α2, ledit module de communication étant en outre configuré pour transmettre ladite valeur T2 audit dispositif de récupération parmi deux dispositifs de récupération E3, E4. - receiving, from the management device 1 E, a value D stored by said management device E 1 and equal to A n, A being equal to u g, u and v being respective secret values user devices U 1 and U 2, and further comprises a calculating module configured to calculate a value equal to T 2 D 2 {Sk} E 2), where α 2 is a hash function of an amount of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and data associated with α 2 , said communication module being further configured to transmit said value T 2 to said recovery device among two recovery devices E 3 , E 4 .
Selon un dixième aspect, l'invention concerne un dispositif de récupération E3, E4 apte à émettre une demande de récupération d'une clé de session pour la sécurisation d'une session de communication entre deux dispositifs utilisateurs U1, U2, ladite session de communication étant mise en oeuvre via un réseau de communication géré par un dispositif de gestion E1 et ladite au moins une demande de récupération étant autorisée par un dispositif d'autorisation E2, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p. According to a tenth aspect, the invention relates to a recovery device E 3 , E 4 capable of sending a request for recovery of a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being implemented via a communication network managed by a management device E 1 and said at least one recovery request being authorized by an authorization device E 2 , a device Ej, j ranging from 1 to 4 , being associated with a public key pk {Ej} and a private key sk {Ej} pk {Ej} being equal to g sk {Ej} where g is a generator of a group of order prime p .
Ledit dispositif de récupération E3, E4 comporte un module de communication configuré pour :Said recovery device E 3 , E 4 comprises a communication module configured for:
- émettre une demande de récupération de la clé de session, - issue a request to retrieve the session key,
- recevoir, en provenance du dispositif de gestion E1, une valeur T1 égale à D˄1sk{E1}), où α1 est un hachage d'une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à α1, ainsi qu'une valeur C3 égale à A3 ˄n ou une valeur C4 égale à A4 ˄n, A3 étant égale à pk{E3}˄u et A4 étant égale à pk{E4}˄u, u et v étant des valeurs secrètes respectives des dispositifs utilisateurs U1 et U2, - receiving, from the management device E 1, a value T 1 equal to D (1 α sk {E 1}), where α 1 is a hash function of an amount of pk {E 1}, {pk E 2}, {pk} E 3, E 4} {pk and data associated to α 1 and a value C equal to a 3 3 n or C 4 value equal to a 4 n, A 3 is equal to pk {E} u 3 and A 4 being equal to pk {E} u 4, u and v being respective secret values U user devices 1 and U 2,
- recevoir, en provenance du dispositif d'autorisation E2, une valeur T2 égale à D˄2sk{E2}), où α2 est un hachage d'une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à α2. - receiving from the E 2 authorization device, a value equal to T 2 D 2 {sk} E 2), where α 2 is a hash function of an amount of pk {E 1}, pk {E 2 }, pk {E 3 }, pk {E 4 } and a data associated with α 2 .
Ledit dispositif de récupération E3, E4 comporte en outre : Said recovery device E 3 , E 4 further comprises:
- un premier module de calcul, configuré pour calculer une valeur publique W égale à g˄(sk{E3}sk{E4}), - a first calculation module configured to calculate a public value W equal to g (sk sk {E 3} {4} E),
- un deuxième module de calcul, configuré pour calculer une valeur T3 égale à C4 ˄((α34)sk{E3 }) si la valeur reçue en provenance du dispositif de gestion E1 parmi les valeurs C3 et C4 est ladite valeur C4 ou une valeur T4 égale à C3 ˄((α34)sk{E4}) si la valeur reçue en provenance du dispositif de gestion E1 parmi les valeurs C3 et C4 est ladite valeur C3, - a second calculation module configured to calculate a value equal to T 3 C 4 ((α 3 + α 4) sk {3} E) if the value received from the management device E 1 among the three values C and C 4 is said value C 4 or a value T equal to 4 C 3 ((α 3 + α 4) 4} E {sk) if the value received from the management device E 1 among the values C 3 and C 4 is said value C 3 ,
- un troisième module de calcul, configuré pour calculer une valeur K3 égale à T1 x T2 x T3 ou une valeur K4 égale à T1 x T2 x T4. Selon un onzième aspect, l'invention concerne un système de calcul d'une clé de session, ledit système comportant dispositif utilisateur U1 selon l'invention, un dispositif utilisateur U2 selon l'invention ainsi qu'un dispositif de gestion E1 selon l'invention. a third calculation module, configured to calculate a value K 3 equal to T 1 x T 2 x T 3 or a value K 4 equal to T 1 x T 2 x T 4 . According to an eleventh aspect, the invention relates to a system for calculating a session key, said system comprising user device U 1 according to the invention, a user device U 2 according to the invention as well as a management device E 1 according to the invention.
Selon un douzième aspect, l'invention concerne un système pour la récupération d'une clé de session calculée par un dispositif utilisateur U1 selon l'invention et également calculée par un dispositif utilisateur U2 selon l'invention, ledit système comportant un dispositif de gestion E1 selon l'invention, un dispositif d'autorisation E2 selon l'invention et deux dispositifs de récupération E3, E4 selon l'invention. According to a twelfth aspect, the invention relates to a system for recovering a session key calculated by a user device U 1 according to the invention and also calculated by a user device U 2 according to the invention, said system comprising a device management E 1 according to the invention, an authorization device E 2 according to the invention and two recovery devices E 3 , E 4 according to the invention.
Brève description des dessins Brief description of the drawings
D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : Other characteristics and advantages of the present invention will emerge from the description given below, with reference to the appended drawings which illustrate an exemplary embodiment thereof without any limiting nature. In the figures:
- la figure 1 représente schématiquement, dans son environnement, un mode de réalisation d'un système de calcul selon l'invention, ledit système de calcul comportant un dispositif utilisateur U1, un dispositif utilisateur U2 et un dispositif de gestion E1 ; - Figure 1 schematically shows, in its environment, an embodiment of a computing system according to the invention, said computing system comprising a user device U 1 , a user device U 2 and a management device E 1 ;
- la figure 2 représente schématiquement un exemple d'architecture matérielle du dispositif utilisateur U1 de la figure 1 ; FIG. 2 schematically represents an example of the hardware architecture of the user device U 1 of FIG. 1;
- la figure 3 représente schématiquement un exemple d'architecture matérielle du dispositif utilisateur U2 de la figure 1 ; FIG. 3 diagrammatically represents an example of the hardware architecture of the user device U 2 of FIG. 1;
- la figure 4 représente schématiquement un exemple d'architecture matérielle du dispositif de gestion E1 de la figure 1 ; FIG. 4 diagrammatically represents an example of the hardware architecture of the management device E 1 of FIG. 1;
- la figure 5 représente, sous forme d'ordinogramme, les principales étapes d'un procédé de calcul de la clé de session selon l'invention, telles qu'elles sont mises en oeuvre par le système de calcul de la figure 1 ; FIG. 5 represents, in the form of a flowchart, the main steps of a method for calculating the session key according to the invention, as they are implemented by the calculation system of FIG. 1;
- la figure 6 représente, sous forme d'ordinogramme, un premier mode particulier de mise en oeuvre du procédé de calcul de la figure 5 ; FIG. 6 represents, in the form of a flowchart, a first particular mode of implementation of the calculation method of FIG. 5;
- la figure 7 représente, sous forme d'ordinogramme, un deuxième mode particulier de mise en oeuvre du procédé de calcul de la figure 5 ; FIG. 7 represents, in the form of a flowchart, a second particular embodiment of the calculation method of FIG. 5;
- la figure 8 représente, sous forme d'ordinogramme, un troisième mode particulier de mise en oeuvre du procédé de calcul de la figure 5 ; FIG. 8 represents, in the form of a flowchart, a third particular embodiment of the calculation method of FIG. 5;
- la figure 9 représente schématiquement, dans son environnement, un mode de réalisation d'un système pour la récupération d'une clé de session calculée par les dispositifs U1, U2 du système de calcul de la figure 1, ledit système pour la récupération comportant le dispositif de gestion E1, un dispositif d'autorisation E2 ainsi deux dispositifs de récupération E3 et E4 ; FIG. 9 diagrammatically represents, in its environment, an embodiment of a system for the recovery of a session key calculated by the devices U 1 , U 2 of the calculation system of FIG. 1, said system for the recovery comprising the management device E 1 , an authorization device E 2 and two recovery devices E 3 and E 4 ;
- la figure 10 représente schématiquement un exemple d'architecture matérielle du dispositif d'autorisation E2 de la figure 9 ; - la figure 11 représente schématiquement un exemple d'architecture matérielle du dispositif de récupération E3 de la figure 1 ; FIG. 10 diagrammatically represents an example of the hardware architecture of the authorization device E 2 of FIG. 9; FIG. 11 schematically represents an example of the hardware architecture of the recovery device E 3 of FIG. 1;
- la figure 12 représente schématiquement un exemple d'architecture matérielle du dispositif de récupération E4 de la figure 1 ; - Figure 1 2 schematically shows an example of hardware architecture of the recovery device E 4 of Figure 1;
- la figure 13 représente, sous forme d'ordinogramme, les principales étapes du procédé de récupération d'une clé de session selon l'invention, telles qu'elles sont mises en oeuvre par le système de récupération de la figure 9 ; FIG. 1 3 represents, in the form of a flowchart, the main steps of the method for recovering a session key according to the invention, as implemented by the recovery system of FIG. 9;
- la figure 14 représente, sous forme d'ordinogramme, un mode particulier de mise en oeuvre du procédé de récupération de la figure 13. FIG. 14 represents, in the form of a flowchart, a particular embodiment of the recovery method of FIG. 1 3 .
Description des modes de réalisation Description of the embodiments
La figure 1 représente schématiquement, dans son environnement, un mode de réalisation d'un système 10 de calcul selon l'invention. FIG. 1 schematically represents, in its environment, an embodiment of a calculation system 10 according to the invention.
Conformément à l'invention, le système 10 de calcul comporte deux dispositifs utilisateurs U1, U2. According to the invention, the calculation system 10 comprises two user devices U 1 , U 2 .
Dans le mode de réalisation illustré par la figure 1, les dispositifs utilisateurs U1, U2 sont des terminaux mobiles détenus par des entités utilisatrices respectives. Un tel terminal mobile est par exemple un téléphone intelligent ou « smartphone », une tablette numérique, un ordinateur portable, etc. L'entité utilisatrice détenant un dispositif utilisateur Ui, i étant un indice allant de 1 à 2 , est quant à elle une personne physique. In the embodiment illustrated by FIG. 1, the user devices U 1 , U 2 are mobile terminals owned by respective user entities. Such a mobile terminal is for example a smart phone or “smartphone”, a digital tablet, a laptop computer, etc. The user entity holding a user device Ui, i being an index ranging from 1 to 2 , is for its part a natural person.
Il convient toutefois de noter qu'aucune limitation n'est attachée à la nature desdits dispositifs utilisateurs U1, U2 dès lors que ces derniers sont configurés pour émettre et recevoir entre eux, via un réseau de communication, des messages comportant une ou plusieurs valeurs cryptographiques, ainsi que réaliser des calculs sur la base de valeurs cryptographiques, comme cela est décrit plus en détail ultérieurement. Ainsi, il est possible d'envisager qu'au moins un desdits dispositifs utilisateurs U1, U2 soit un terminal fixe. Par ailleurs, rien n'exclut de considérer que lesdits dispositifs utilisateurs U1, U2 ne soient pas tous les deux des terminaux. It should however be noted that no limitation is attached to the nature of said user devices U 1 , U 2 as long as the latter are configured to send and receive between them, via a communication network, messages comprising one or more cryptographic values, as well as performing calculations based on cryptographic values, as described in more detail later. Thus, it is possible to envisage that at least one of said user devices U 1 , U 2 is a fixed terminal. Moreover, nothing excludes considering that said user devices U 1 , U 2 are not both terminals.
Le réseau de communication utilisé par lesdits dispositifs utilisateurs U1, U2 pour émettre et recevoir des messages entre eux est géré par au moins un dispositif de gestion E1. Ce dispositif de gestion E1 est typiquement détenu par une entité de gestion. The communication network used by said user devices U 1 , U 2 to send and receive messages between them is managed by at least one management device E 1 . This management device E 1 is typically owned by a management entity.
Dans le mode de réalisation illustré par la figure 1, ledit dispositif de gestion E1 est un ordinateur fixe détenu par une personne physique. In the embodiment illustrated by FIG. 1, said management device E 1 is a fixed computer owned by a natural person.
Néanmoins, là encore, l'invention reste applicable indépendamment de la nature dudit dispositif de gestion E1 dès lors que ce dernier est configuré pour, comme cela est décrit plus en détail ultérieurement : - transmettre, via ledit réseau de communication, des messages que les dispositifs utilisateurs U1, U2 émettent à destination l'un de l'autre, le dispositif de gestion E1 remplissant donc ainsi une fonction de relais de messages entre les dispositifs utilisateurs U1, U2, Nevertheless, here again, the invention remains applicable regardless of the nature of said management device E 1 as soon as the latter is configured for, as is described in more detail later: - transmitting, via said communication network, messages that the user devices U 1 , U 2 send to each other, the management device E 1 thus fulfilling a function of relaying messages between the user devices U 1 , U 2 ,
- réaliser des traitements cryptographiques variés (calculs, voire également vérification de signatures cryptographiques et/ou vérification d'égalités dans des modes particuliers de réalisation),- performing various cryptographic processing (calculations, or even verification of cryptographic signatures and / or verification of equality in particular embodiments),
- émettre des messages comportant des valeurs cryptographiques à destination de dispositifs autres que lesdits dispositifs utilisateurs U1, U2. - send messages comprising cryptographic values to devices other than said user devices U 1 , U 2 .
Il convient de noter que l'invention reste également applicable dans le cas où l'entité de gestion est une personne morale et/ou au moins une des entités utilisatrices est une personne morale, cet aspect ne constituant pas un facteur limitant de l'invention. It should be noted that the invention also remains applicable in the case where the management entity is a legal person and / or at least one of the user entities is a legal person, this aspect not constituting a limiting factor of the invention. .
Pour la suite de la description, on considère de manière nullement limitative que ledit réseau de communication est un réseau non filaire. Le fait de considérer un réseau de communication non filaire ne constitue cependant qu'une variante de réalisation de l'invention. Rien n'exclut en effet d'envisager un réseau de communication filaire dès lors que les dispositifs utilisateurs U1, U2 et le dispositif de gestion E1 sont aptes à l'exploiter, c'est-à-dire aptes à communiquer via celui-ci. For the remainder of the description, it is considered in no way limiting that said communication network is a wireless network. However, considering a wireless communication network only constitutes an alternative embodiment of the invention. Nothing in fact excludes considering a wired communication network when the user devices U 1 , U 2 and the management device E 1 are able to use it, that is to say able to communicate via this one.
Le ou les échanges de messages entre les dispositifs utilisateurs U1, U2, et via le dispositif de gestion E1, s'effectuent au cours d'une session de communication qui est mise en oeuvre via ledit réseau de communication. En outre, et conformément à l'invention, lesdits dispositifs utilisateurs U1, U2 sont configurés pour calculer, en coopération avec le dispositif de gestion E1, une clé de session pour sécuriser une telle session de communication, en mettant en oeuvre un procédé de calcul d'une clé de session détaillé ultérieurement. Eu égard à cette coopération entre les différents dispositifs du système 10, ledit système 10 a pour objectif le calcul d'une clé de session. The message exchange (s) between the user devices U 1 , U 2 , and via the management device E 1 , take place during a communication session which is implemented via said communication network. In addition, and in accordance with the invention, said user devices U 1 , U 2 are configured to calculate, in cooperation with the management device E 1 , a session key to secure such a communication session, by implementing a method of calculating a session key detailed later. Having regard to this cooperation between the various devices of the system 10, said system 10 has as its objective the calculation of a session key.
En conséquence, une clé de session est liée à la session de communication pour laquelle elle est calculée. Autrement dit, une session de communication étant par nature limitée dans le temps, la clé de session n'est valide que pour la durée de la session de communication qui lui est associée. En outre, et de manière préférée, deux sessions de communication distinctes sont respectivement associées à deux clés de session distinctes. As a result, a session key is linked to the communication session for which it is calculated. In other words, a communication session being by nature limited in time, the session key is only valid for the duration of the communication session associated with it. In addition, and preferably, two distinct communication sessions are respectively associated with two distinct session keys.
Par ailleurs, et conformément à l'invention, la clé de session peut faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4. Furthermore, and in accordance with the invention, the session key can be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3. , E 4 .
Comme déjà mentionné auparavant, par « récupération », il est fait référence ici au recouvrement de la clé de session par une entité de récupération. La nature desdits dispositifs d'autorisation E2 et de récupération E3, E4, leurs configurations matérielles et logicielles respectives ainsi que les aspects de l'invention relatifs à la possibilité de recouvrer la clé de session sont décrits plus en détail ultérieurement. As already mentioned previously, the term “recovery” refers here to the recovery of the session key by a recovery entity. The nature of said authorization E 2 and recovery devices E 3 , E 4 , their respective hardware and software configurations as well as the aspects of the invention relating to the possibility of recovering the session key are described in more detail later.
A noter que Ton utilise par la suite une notation habituelle en cryptographie dans laquelle : une élévation à une puissance est représentée au moyen du symbole « ˄ » ; ainsi : « g˄x » représente « g puissance x », soit « gx » ; le produit de x et y est schématisé par un point : « . », ou « x », ou rien ; ainsi « x.y », « x x y » et « xy » représentent « x multiplié par y ». Note that Ton used thereafter a usual notation cryptography wherein an exponentiation is represented by the symbol ""; and "g x" represents "g x power" or "g x"; the product of x and y is represented by a point: “. ", Or" x ", or nothing; thus "xy", "xxy" and "xy" represent "x multiplied by y".
Chaque dispositif est associé à une clé publique ainsi qu'à une clé privée. Plus précisément, on adopte les notations suivantes : Each device is associated with a public key as well as a private key. More precisely, the following notations are adopted:
- un dispositif utilisateur Ui, i allant de 1 à 2 , est associé à une clé publique pk{Ui} ainsi qu'à une clé privée sk{Ui} (ladite clé publique pk{Ui} étant, de manière connue en soi, associée à, i.e. calculée à partir de, la clé privée sk{Ui} dans ce mode de réalisation), et - a user device Ui, i ranging from 1 to 2, is associated with a public key pk {Ui} as well as a private key sk {Ui} (said public key pk {Ui} being, in a manner known per se, associated with, ie calculated from, the private key sk {Ui} in this embodiment), and
- un dispositif Ej, j allant de 1 à 4, est associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe G d'ordre premier p (ladite clé publique pk{Ei} étant, de manière connue en soi, associée à, i.e. calculée à partir de, la clé privée sk{Ei} dans ce mode de réalisation). - a device Ej, j ranging from 1 to 4, is associated with a public key pk {Ej} and a private key sk {Ej} pk {Ej} being equal to g sk {Ej} where g is a generator of a group G of prime order p (said public key pk {Ei} being, in a manner known per se, associated with, ie calculated from, the private key sk {Ei} in this embodiment) .
Pour la suite de la description, on considère de manière nullement limitative que le groupe G, le générateur g et le nombre premier p sont des paramètres rendus publics et obtenus au moyen d'une méthode d'initialisation (encore dite « Setup » dans la littérature anglo-saxonne) paramétrée par un paramètre l dit « paramètre de sécurité » visant à définir un niveau de sécurité homogène entre des algorithmes cryptographiques potentiellement très différents. Plus particulièrement, parler d'un niveau de sécurité défini par le paramètre l revient à considérer un niveau de sécurité au moins équivalent à celui obtenu grâce à un algorithme symétrique dont la clé comporte l bits. A titre d'exemple, ledit paramètre de sécurité l comporte 128 bits. For the remainder of the description, it is considered in no way limiting that the group G, the generator g and the prime number p are parameters made public and obtained by means of an initialization method (also called “Setup” in the description. English literature) parameterized by a parameter l called “security parameter” aiming to define a homogeneous level of security between potentially very different cryptographic algorithms. More particularly, to speak of a level of security defined by the parameter l amounts to considering a level of security at least equivalent to that obtained by virtue of a symmetric algorithm whose key comprises l bits. By way of example, said security parameter l comprises 1 2 8 bits.
De manière conventionnelle, ladite méthode d'initialisation « Setup » permet également de générer, en sus des paramètres G, g et p, un couplage bilinéaire e sur le groupe G ainsi qu'une fonction de hachage H qui sont également rendus publics. De manière conventionnelle, la fonction de hachage H est apte à transformer toute chaîne de bits en un nombre entier, par exemple un nombre entier compris entre 0 et p-1. Ladite fonction de hachage H peut correspondre à une fonction standardisée, comme par exemple la fonction SHA 256 (« SHA » étant l'acronyme de l'expression anglo-saxonne « Secure Hash Algorithm ») ou bien encore la fonction SHA 3. Conventionally, said “Setup” initialization method also makes it possible to generate, in addition to the parameters G, g and p, a bilinear coupling e on the group G as well as a hash function H which are also made public. Conventionally, the hash function H is able to transform any string of bits into an integer, for example an integer between 0 and p-1. Said hash function H can correspond to a standardized function, such as for example the SHA 2 56 function ("SHA" being the acronym of the English expression "Secure Hash Algorithm") or even the SHA 3 function.
La mise en oeuvre d'une telle méthode d'initialisation « Setup » s'effectue classiquement grâce à des moyens logiciels adaptés, comme par exemple un programme informatique dédié au calcul cryptographique et exécuté par un dispositif de traitement de type ordinateur. Ledit dispositif de traitement peut être un dispositif externe au système 10 de calcul ou bien encore être l'un des dispositifs dudit système 10 de calcul ou bien encore être l'un desdits dispositifs d'autorisation E2 ou de récupération E3, E4. En tout état de cause, ladite méthode d'initialisation « Setup » est bien connue de l'homme de l'art, et n'est donc pas décrite plus avant ici. The implementation of such a “Setup” initialization method is carried out conventionally by means of suitable software means, such as for example a computer program dedicated to cryptographic computation and executed by a computer type processing device. Said processing device may be a device external to the computing system 10 or else be one of the devices of said computing system 10 or else one of said authorization E 2 or recovery devices E 3 , E 4 . In any event, said “Setup” initialization method is well known to those skilled in the art, and is therefore not described further here.
Il convient toutefois de noter que l'invention ne se limite à la mise en oeuvre de ladite méthode d'initialisation « Setup ». En effet, toute méthode connue de l'homme de l'art pour générer des clés publiques/privées, notamment via un générateur d'un groupe d'ordre premier, ainsi qu'un couplage bilinéaire sur un tel groupe et une fonction de hachage peut être mise en oeuvre, et le choix d'une méthode particulière ne constitue qu'une variante d'implémentation de l'invention. La figure 2 représente schématiquement un exemple d'architecture matérielle du dispositif utilisateur U1 selon l'invention. It should however be noted that the invention is not limited to the implementation of said “Setup” initialization method. Indeed, any method known to those skilled in the art for generating public / private keys, in particular via a generator of a first order group, as well as a bilinear coupling on such a group and a hash function can be implemented, and the choice of a particular method constitutes only one variant of implementation of the invention. FIG. 2 schematically represents an example of the hardware architecture of the user device U 1 according to the invention.
Tel qu'illustré par la figure 2, le dispositif utilisateur U1 selon l'invention dispose de l'architecture matérielle d'un ordinateur. Ainsi, ledit dispositif utilisateur U1 comporte, notamment, un processeur 1_U1, une mémoire vive 2_U1, une mémoire morte 3_U1 et une mémoire non volatile 4_U1. Il dispose en outre de moyens de communication 5_U1. As illustrated by FIG. 2, the user device U 1 according to the invention has the hardware architecture of a computer. Thus, said user device U 1 comprises, in particular, a processor 1_U 1 , a random access memory 2_U 1 , a ROM 3_U 1 and a non-volatile memory 4_U 1 . It also has 5_U 1 communication means.
Les moyens de communication 5_U1 permettent notamment au dispositif utilisateur U1 d'émettre, via ledit dispositif de gestion E1, des valeurs cryptographiques vers le dispositif utilisateur U2, ainsi que recevoir, également via ledit dispositif de gestion E1, des valeurs cryptographiques en provenance dudit dispositif utilisateur U2. A cet effet, les moyens de communication 5_U1 comportent une interface de communication compatible avec la nature du réseau de communication, à savoir non filaire dans cet exemple de réalisation. Ainsi, l'interface de communication des moyens de communication 5_U1 est également non filaire, ainsi qu'apte à mettre en oeuvre tout protocole adapté connu de l'homme du métier (Wifi, Bluetooth, 3G, 4G, 5G, etc.). Bien entendu, si, suivant d'autres exemples de réalisation, la nature du réseau de communication était filaire, l'interface de communication serait adaptée en conséquence. The communication means 5_U 1 allow in particular the user device U 1 to send, via said management device E 1 , cryptographic values to the user device U 2 , as well as to receive, also via said management device E 1 , values cryptographic data originating from said user device U 2 . To this end, the communication means 5_U 1 comprise a communication interface compatible with the nature of the communication network, namely wireless in this exemplary embodiment. Thus, the communication interface means of communication 5_U 1 is not wired and qu'apte to implement any suitable protocol known to the skilled person (WiFi, Bluetooth, 3G, 4G, 5G, etc. ). Of course, if, according to other exemplary embodiments, the nature of the communication network was wired, the communication interface would be adapted accordingly.
La mémoire morte 3_U1 du dispositif utilisateur U1 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 1_U1 et sur lequel est enregistré un programme d'ordinateur PROG_U1 conforme à l'invention, comportant des instructions pour l'exécution d'au moins une partie des étapes du procédé de calcul d'une clé de session selon l'invention. Le programme PROG_U1 définit des modules fonctionnels du dispositif utilisateur U1, qui s'appuient ou commandent les éléments matériels 2_U1 à 5_U1 dudit dispositif utilisateur U1 cités précédemment, et qui comprennent notamment : The read-only memory 3_U 1 of the user device U 1 constitutes a recording medium in accordance with the invention, readable by the processor 1_U 1 and on which is recorded a computer program PROG_U 1 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for calculating a session key according to the invention. The program PROG_U 1 defines functional modules of the user device U 1 , which are based on or control the hardware elements 2_U 1 to 5_U 1 of said user device U 1 mentioned above, and which include in particular:
- un premier module de calcul MOD_CALC1_U1, configuré pour calculer des valeurs A, A1, A2, A3, A4, A5 respectivement égales à g˄u, pk{E1}˄u, pk{E2}˄u, pk{E3}˄u, pk{E4}˄u, W˄u, u étant une valeur secrète du dispositif U1 tirée aléatoirement dans le groupe Z/pZ, et W étant une valeur publique calculée par au moins un dispositif de récupération E3, E4 et égale à g˄(sk{E3}sk{E4}),- a first calculation module MOD_CALC1_U 1 configured to calculate values A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk {E 1} u, pk {E2} u, E 3 {pk} u, pk {S 4} u, W u, u being a secret value U of the device 1 randomly chosen in the group Z / pZ, and W being a public value calculated by the least one recovery device E 3, E 4 and equal to g (sk sk {E 3} {4} E),
- un module de communication MOD_COM_U1, configuré pour transmettre lesdites valeurs A, A1, A2, A3, A4, A5 au dispositif utilisateur U2 via le dispositif de gestion E1, ledit module de communication MOD_COM_U1 étant en outre configuré pour recevoir, en provenance du dispositif utilisateur U2 et via le dispositif de gestion E1, des valeurs B, B1, B2, B3, C3, C4, D calculées par ledit dispositif utilisateur U2 et respectivement égales à g˄v, pk{E1}˄v, pk{E2}˄v, W˄v, A3 ˄n, A4 ˄n, A˄n, v étant une valeur secrète du dispositif U2 tirée aléatoirement dans le groupe Z/pZ, a MOD_COM_U 1 communication module, configured to transmit said values A, A 1 , A 2 , A 3 , A 4 , A 5 to the user device U 2 via the management device E 1 , said MOD_COM_U 1 communication module being in further configured to receive, from the user device U 2 and via the management device E 1 , values B, B 1 , B 2 , B 3 , C 3 , C 4 , D calculated by said user device U 2 and respectively equal to v g, pk {E 1} v, pk {S 2} v W v, a 3 n, a 4 n, a n, v being a secret value U device 2 pulled randomly in the Z / pZ group,
- un deuxième module de calcul MOD_CALC2_U1, configuré pour calculer une valeur K1 égale à B1 ˄1u) x B2 ˄2U) x B3 ˄((α34)u), où αm , m allant de 1 à 4, est une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à αm . - a second module MOD_CALC2_U 1, configured to calculate a K value equal to 1 B 1 1 u) x B 2 2 U) x B 3 ((α 3 + α 4) u), where α m , m ranging from 1 to 4, is a quantity function of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and of a data associated with α m .
A titre d'exemple nullement limitatif, ladite quantité est générée en utilisant la fonction de hachage H mentionnée auparavant et obtenue suite à la mise en oeuvre de la méthode d'initialisation « Setup ». En outre, dans cet exemple, ladite donnée associée à αm correspond audit indice m. En résumé, on a que αm est égal à H(pk{E1}, pk{E2}, pk{E3}, pk{E4}, m), la partie de l'argument de H formé des valeurs pk{E1}, pk{E2}, pk{E3}, pk{E4} correspondant à une concaténation des bits formant chacune desdites valeurs pk{E1}, pk{E2}, pk{E3}, pk{E4}. By way of non-limiting example, said quantity is generated using the hash function H mentioned above and obtained following the implementation of the initialization method "Setup". Furthermore, in this example, said data item associated with α m corresponds to said index m. In summary, we have that α m is equal to H (pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 }, m), the part of the argument of H formed by values pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } corresponding to a concatenation of the bits forming each of said values pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 }.
Il convient toutefois de noter qu'aucune limitation n'est attachée à la fonction de hachage pouvant être considérée pour le calcul de αm . Autrement dit, rien n'exclut de considérer une fonction de hachage qui diffère de ladite fonction H, l'homme de l'art étant en mesure d'avoir accès ou de générer une fonction de hachage différente de H. De plus, rien n'exclut non plus de considérer une donnée associée à αm qui ne soit pas égale à m, comme par exemple une donnée égale à f(m) où f est une fonction strictement croissante à valeurs entières. It should however be noted that no limitation is attached to the hash function that can be considered for the calculation of α m . In other words, nothing excludes considering a hash function which differs from said function H, the person skilled in the art being able to access or generate a hash function different from H. Moreover, nothing is 'also excludes considering a datum associated with α m which is not equal to m, such as for example a datum equal to f (m) where f is a strictly increasing function with integer values.
Enfin, l'invention n'est pas plus limitée par le fait que le calcul de αm s'effectue grâce à une fonction de hachage. Ainsi, rien n'exclut d'envisager toute autre méthode connue de l'homme du métier pour que αm corresponde à une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à αm , cette quantité étant de taille réduite par apport à la somme des tailles respectives de pk{E1}, pk{E2}, pk{E3}, pk{E4} et de la donnée associée à αm . Finally, the invention is no more limited by the fact that the calculation of α m is carried out by virtue of a hash function. Thus, nothing excludes considering any other method known to those skilled in the art so that α m corresponds to a quantity function of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and a data associated with α m , this quantity being of reduced size by contribution to the sum of the respective sizes of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and the data associated with α m .
Dans un exemple particulier de réalisation, lesdits premier et deuxième modules de calcul MOD_CALC1_U1, MOD_CALC2_U1 sont intégrés dans un seul et même module de calcul, dit « module général ». A cet effet, ledit module général comporte des moyens configurés de manière matérielle et / ou logicielle pour réaliser les fonctions associées à chacun desdits premier et deuxième module de calcul MOD_CALC1_U1, MOD_CALC2_U1. In a particular exemplary embodiment, said first and second calculation modules MOD_CALC1_U 1 , MOD_CALC2_U 1 are integrated into one and the same calculation module, called “general module”. To this end, said general module comprises means configured in a hardware and / or software manner to perform the functions associated with each of said first and second calculation module MOD_CALC1_U 1 , MOD_CALC2_U 1 .
Le dispositif utilisateur U2 selon l'invention dispose également de l'architecture matérielle d'un ordinateur, dont un exemple est illustré de manière schématique par la figure 3. The user device U 2 according to the invention also has the hardware architecture of a computer, an example of which is illustrated schematically in FIG. 3.
Ainsi, ledit dispositif utilisateur U2 comporte, notamment, un processeur 1_U2, une mémoire vive 2_L)2, une mémoire morte 3_L)2 et une mémoire non volatile 4_L)2. Il dispose en outre de moyens de communication 5_L)2. Thus, said user device U 2 comprises, in particular, a processor 1_U 2 , a random access memory 2_L) 2 , a read only memory 3_L) 2 and a non-volatile memory 4_L) 2 . It also has means of communication 5_L) 2 .
Les moyens de communication 5_L)2 permettent notamment au dispositif utilisateur U2 d'émettre (respectivement recevoir), via ledit dispositif de gestion E1, des valeurs cryptographiques vers le dispositif utilisateur U1 (respectivement en provenance du dispositif utilisateur U1), et sont similaires, au moins en ce qui concerne l'interface de communication, aux moyens de communication 5_U1 décrits ci-avant pour le dispositif utilisateur U1. The communication means 5_L) 2 in particular allow the user device U 2 to send (respectively receive), via said management device E 1 , cryptographic values to the user device U 1 (respectively from the user device U 1 ), and are similar, at least as regards the communication interface, to the communication means 5_U 1 described above for the user device U 1 .
La mémoire morte 3_L)2 du dispositif utilisateur U2 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 1_U2 et sur lequel est enregistré un programme d'ordinateur PROG_L)2 conforme à l'invention, comportant des instructions pour l'exécution d'au moins une partie des étapes du procédé de calcul d'une clé de session selon l'invention. Le programme PROG_ U2 définit des modules fonctionnels du dispositif utilisateur U2, qui s'appuient ou commandent les éléments matériels 2_U2 à 5_U 2 dudit dispositif utilisateur U2 cités précédemment, et qui comprennent notamment : - un module de communication MOD_COM_L)2, configuré pour recevoir, en provenance du dispositif utilisateur U1 et via le dispositif de gestion E1, lesdites valeurs A, A1, A2, A3, A4, A5 calculées par le dispositif utilisateur U1, The read only memory 3_L) 2 of the user device U 2 constitutes a recording medium in accordance with the invention, readable by the processor 1_U 2 and on which is recorded a computer program PROG_L) 2 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for calculating a session key according to the invention. The program PROG_ U 2 defines functional modules of the user device U 2 , which are based on or control the hardware elements 2_U2 to 5_U 2 of said user device U 2 mentioned above, and which include in particular: - a communication module MOD_COM_L) 2 , configured to receive, from the user device U 1 and via the management device E 1 , said values A, A 1 , A 2 , A 3 , A 4 , A 5 calculated by the user device U 1 ,
- un premier module de calcul MOD_CALCl_L)2, configuré pour calculer lesdites valeurs B, B1, B2, B3, C3, C4, D, ledit module de communication MOD_CALCl_L)2 étant en outre configuré pour transmettre lesdites valeurs B, B1, B2, B3, C3, C4, D au dispositif U1 via l'entité de gestion E1, - a first calculation module MOD_CALCl_L) 2 , configured to calculate said values B, B 1 , B 2 , B 3 , C 3 , C 4 , D, said communication module MOD_CALCl_L) 2 being further configured to transmit said values B , B 1 , B 2 , B 3 , C 3 , C 4 , D to the device U 1 via the management entity E 1 ,
- un deuxième module de calcul MOD_CALC2_L)2, configuré pour calculer une valeur K2 égale à A1 ˄1ν) x A2 ˄(a.2ν) x A5 ˄((α34)ν) . - a second calculation module MOD_CALC2_L) 2, configured to calculate a K value equal to 2 A 1 ν 1) x A 2 2) x A 5 ((α 3 + α 4.) Ν ).
Dans un exemple particulier de réalisation, lesdits premier et deuxième modules de calcul MOD_CALCl_L)2, MOD_CALC2_L)2 sont intégrés dans un seul et même module de calcul, dit « module général ». A cet effet, ledit module général comporte des moyens configurés de manière matérielle et / ou logicielle pour réaliser les fonctions associées à chacun desdits premier et deuxième module de calcul MOD_CALCl_U2, MOD_CALC2_U2. In a particular exemplary embodiment, said first and second calculation modules MOD_CALCl_L) 2 , MOD_CALC2_L) 2 are integrated into one and the same calculation module, called “general module”. For this purpose, said general module comprises means configured in a hardware and / or software manner to perform the functions associated with each of said first and second calculation module MOD_CALCl_U 2 , MOD_CALC2_U 2 .
Enfin, le dispositif de gestion E1 selon l'invention dispose également de l'architecture matérielle d'un ordinateur, dont un exemple est illustré de manière schématique par la figure 4. Finally, the management device E 1 according to the invention also has the hardware architecture of a computer, an example of which is illustrated schematically in FIG. 4.
Ainsi, ledit dispositif de gestion E1 comporte, notamment, un processeur l_E1, une mémoire vive 2_E1, une mémoire morte 3_E1 et une mémoire non volatile 4_E1. Il dispose en outre de moyens de communication 5_E1. Thus, said management device E 1 comprises, in particular, a processor I_E 1 , a random access memory 2_E 1 , a read only memory 3_E 1 and a non-volatile memory 4_E 1 . It also has means of communication 5_E 1 .
Les moyens de communication 5_E1 permettent notamment au dispositif de gestion E1 de transmettre des valeurs cryptographiques entre les dispositifs utilisateurs U1 et U2 et sont similaires, au moins en ce qui concerne l'interface de communication, aux moyens de communication 5_U1 et 5_U2 décrits ci-avant pour les dispositifs utilisateurs U1 et U2. The communication means 5_E 1 notably allow the management device E 1 to transmit cryptographic values between the user devices U 1 and U 2 and are similar, at least as regards the communication interface, to the communication means 5_U 1 and 5_U 2 described above for user devices U 1 and U 2 .
La mémoire morte 3_E1 du dispositif de gestion E1 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur l_E1 et sur lequel est enregistré un programme d'ordinateur PROG_E1 conforme à l'invention, comportant des instructions pour l'exécution d'au moins une partie des étapes du procédé de calcul d'une clé de session selon l'invention. Le programme PROG_ E1 définit des modules fonctionnels du dispositif de gestion E1, qui s'appuient ou commandent les éléments matériels 2_E1 à 5_E1 dudit dispositif de gestion E1 cités précédemment, et qui comprennent notamment un module de communication MOD_COM_E1, configuré pour transmettre : The read only memory 3_E 1 of the management device E 1 constitutes a recording medium in accordance with the invention, readable by the processor I_E 1 and on which is recorded a computer program PROG_E 1 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for calculating a session key according to the invention. The program PROG_ E 1 defines functional modules of the management device E 1 , which are based on or control the hardware elements 2_E 1 to 5_E 1 of said management device E 1 mentioned above, and which notably include a communication module MOD_COM_E 1 , configured to transmit:
- du dispositif utilisateur U1 vers le dispositif utilisateur U2, lesdites valeurs A, A1, A2, A3, A4, A5,- from user device U 1 to user device U 2 , said values A, A 1 , A 2 , A 3 , A 4 , A 5 ,
- du dispositif utilisateur U2 vers le dispositif utilisateur U1, lesdites valeurs B, B1, B2, B3, C3, C4, D, et qui comprennent en outre un module de mémorisation MOD_MEM_E1, configuré pour mémoriser au moins les valeurs C3, C4, D. - from the user device U 2 to the user device U 1 , said values B, B 1 , B 2 , B 3 , C 3 , C 4 , D, and which further include a storage module MOD_MEM_E 1 , configured to store at minus the values C 3 , C 4 , D.
A titre d'exemple nullement limitatif, ledit module de mémorisation MOD_MEM_E1 peut correspondre à tout ou partie la mémoire non volatile 4_E1 équipant le dispositif de gestion E1. Il importe de noter que, conformément à l'invention, lesdits programmes d'ordinateur PROG_U1, PROG_L)2 et PROG_E1 peuvent appartenir à un même ensemble de programmes d'ordinateur, chaque dispositif U1, U2, E1 étant apte à obtenir, par exemple via un téléchargement et grâce aux moyens de communication qui l'équipent, le programme PROG_U1, PROG_L)2, PROG_E1 qui lui est associé à partir dudit ensemble de programmes. By way of non-limiting example, said storage module MOD_MEM_E 1 may correspond to all or part of the non-volatile memory 4_E 1 fitted to the management device E 1 . It should be noted that, in accordance with the invention, said computer programs PROG_U 1 , PROG_L) 2 and PROG_E 1 can belong to the same set of computer programs, each device U 1 , U 2 , E 1 being capable to obtain, for example via a download and thanks to the means of communication which equip it, the program PROG_U 1 , PROG_L) 2 , PROG_E 1 which is associated with it from said set of programs.
La figure 5 représente, sous forme d'ordinogramme, les principales étapes du procédé de calcul de la clé de session selon l'invention, telles qu'elles sont mises en oeuvre par le système 10 de calcul de la figure 1. FIG. 5 represents, in the form of a flowchart, the main steps of the method for calculating the session key according to the invention, as implemented by the calculation system 10 of FIG. 1.
Ledit procédé de calcul est exécuté au cours d'une session de communication entre les dispositifs utilisateurs U1, U2, ladite session de communication étant mise en oeuvre via le réseau de communication géré par l'entité de gestion E1 et par exemple initiée par le dispositif utilisateur U1. Aucune limitation n'est cependant attachée au dispositif utilisateur à l'origine de ladite session de communication, ce dispositif utilisateur pouvant donc être U2 en alternative. Said calculation method is executed during a communication session between the user devices U 1 , U 2 , said communication session being implemented via the communication network managed by the management entity E 1 and for example initiated by user device U 1 . No limitation is however attached to the user device at the origin of said communication session, this user device can therefore be U 2 as an alternative.
Pour la suite de la description, on considère que la fonction de hachage utilisée pour le calcul de αm , m allant de 1 à 4, est la fonction de hachage H obtenue suite à la mise en oeuvre de la méthode d'initialisation « Setup ». For the remainder of the description, it is considered that the hash function used for the calculation of α m , m ranging from 1 to 4, is the hash function H obtained following the implementation of the initialization method "Setup ".
Conformément à l'invention, le procédé de calcul est mis en oeuvre alors qu'une valeur publique W égale à g˄(sk{E3 }sk{E4}) a déjà été calculée par au moins un dispositif de récupération E3, E4. Ce calcul est mis en oeuvre par un premier module de calcul MOD_CALCl_E3, MOD_CALCl_E4 équipant ledit au moins un dispositif de récupération E3, E4. Comme évoqué auparavant, la configuration matérielle et logicielle dudit au moins un dispositif de récupération E3, E4, dont notamment ledit module de calcul MOD_CALCl_E3, MOD_CALCl_E4, est détaillée ultérieurement en rapport avec les aspects de l'invention relatifs à la possibilité de récupérer la clé de session. According to the invention, the calculation process is carried out while a public value W equal to g (sk sk} {E 3 {E4}) has already been calculated by at least one recovery device E 3, E 4 . This calculation is implemented by a first calculation module MOD_CALCl_E 3 , MOD_CALCl_E 4 equipping said at least one recovery device E 3 , E 4 . As mentioned previously, the hardware and software configuration of said at least one recovery device E 3 , E 4 , including in particular said calculation module MOD_CALCl_E 3 , MOD_CALCl_E 4 , is detailed later in relation to aspects of the invention relating to the possibility to retrieve the session key.
On comprend bien entendu que si W est calculée par le dispositif de récupération E3, ce calcul s'effectue en élevant à la puissance sk{E3}, qui est la clé secrète de E3, la quantité g˄sk{E4} qui correspond à pk{E4} et qui est donc publique. Inversement, si W est calculée par le dispositif de récupération E4, ce calcul s'effectue en élevant à la puissance sk{E4}, qui est la clé secrète de E4, la quantité g˄sk{E3} qui correspond à pk{E3} et qui est donc publique. Is of course understood that if W is calculated by the recovering device E 3, this calculation is carried out by raising to the power E {sk} 3, which is the secret key of E 3, the quantity g sk {E4} which corresponds to pk {E 4 } and which is therefore public. Conversely, if W is calculated by the recovering device E 4, this calculation is carried out by raising the power sk {S 4}, which is the secret key E 4, the amount g sk E {3} which corresponds at pk {E 3 } and which is therefore public.
Dans un exemple plus particulier de mise en oeuvre, la valeur publique W est calculée par chacune des deux entités de récupération E3 et E4. Procéder ainsi offre la possibilité de vérifier si le calcul de W par au moins une desdites entités de récupération E3, E4 n'est pas entaché d'erreur, une telle erreur pouvant par exemple trouver son origine dans le fait que l'entité de récupération en question est corrompue ou bien encore mal configurée pour exécuter l'invention. De cette manière, il est possible d'empêcher le calcul de la clé de session par les dispositifs utilisateurs U1, U2. In a more particular example of implementation, the public value W is calculated by each of the two recovery entities E 3 and E 4 . Proceeding in this way offers the possibility of verifying whether the calculation of W by at least one of said recovery entities E 3 , E 4 is not vitiated by an error, such an error being able for example to find its origin in the fact that the entity recovery device in question is corrupted or else poorly configured to perform the invention. In this way, it is possible to prevent the calculation of the session key by the user devices U 1 , U 2 .
Dès lors, le procédé de calcul comporte tout d'abord une étape F10 de calcul, par le dispositif utilisateur U1, desdites valeurs A, A1, A2, A3, A4, A5. Cette étape de calcul F10 est mise en oeuvre par le premier module de calcul MOD_CALC1_U1 équipant ledit dispositif utilisateur U1. Il convient de noter que la valeur secrète u est déterminée au cours de session de communication. Dès lors, la valeur A, qui est elle aussi calculée au cours de ladite session de communication, peut être considérée comme étant une clé publique du dispositif utilisateur U 1 dédiée à cette session. Therefore, the calculation method firstly comprises a step F10 for calculating, by the user device U 1 , said values A, A 1 , A 2 , A 3 , A 4 , A 5 . This calculation step F10 is implemented by the first calculation module MOD_CALC1_U 1 equipping said user device U 1 . It should be noted that the secret value u is determined during a communication session. Consequently, the value A, which is itself also calculated during said communication session, can be considered as being a public key of the user device U 1 dedicated to this session.
Puis, le procédé de calcul comporte une étape F20 de transmission desdites valeurs A, A1, A2, A3, A4, A5 au dispositif utilisateur U2 via le dispositif de gestion E1. Cette étape F20 de transmission est mise en oeuvre par les modules de communication MOD_COM_U1, MOD_COM_L)2, MOD_COM_E1 équipant respectivement lesdits dispositifs U1, U2, E1. Then, the calculation method comprises a step F20 of transmitting said values A, A 1 , A 2 , A 3 , A 4 , A 5 to the user device U 2 via the management device E 1 . This transmission step F 2 0 is implemented by the communication modules MOD_COM_U 1 , MOD_COM_L) 2 , MOD_COM_E 1 respectively equipping said devices U 1 , U 2 , E 1 .
Le procédé de calcul comporte alors une étape F30 de calcul, par le dispositif utilisateur U2, desdites valeurs B, B1, B2, B3, C3, C4, D. Cette étape F30 de calcul est mise en oeuvre par le premier module de calcul MOD_CALCl_L)2 équipant ledit dispositif utilisateur U2. The calculation method then comprises a step F30 of calculation, by the user device U 2 , of said values B, B 1 , B 2 , B 3 , C 3 , C 4 , D. This calculation step F30 is implemented by the first calculation module MOD_CALCl_L) 2 equipping said user device U 2 .
Suivant des dispositions similaires à celles mentionnées ci-avant en ce qui concerne la valeur A, la valeur secrète v est déterminée au cours de la session de communication. Dès lors, la valeur B, qui est elle aussi calculée au cours de ladite session de communication, peut être considérée comme étant une clé publique du dispositif utilisateur U2 dédiée à cette session. According to arrangements similar to those mentioned above with regard to the value A, the secret value v is determined during the communication session. Consequently, the value B, which is itself also calculated during said communication session, can be considered as being a public key of the user device U 2 dedicated to this session.
Puis, le procédé de calcul comporte une étape F40 de transmission desdites valeurs B, B1, B2, B3, C3, C4, D au dispositif utilisateur U1 via le dispositif de gestion E1 qui mémorise C3, C4 et D au cours de cette transmission. Cette étape F40 de transmission est mise en oeuvre par les modules de communication MOD_COM_U1, MOD_COM_L)2, MOD_COM_E1 équipant respectivement lesdits dispositifs U1, U2, E1. En outre, ladite mémorisation est mise en oeuvre par le module de mémorisation MOD_MEM_E1 équipant ledit dispositif de gestion E1. Then, the calculation method comprises a step F40 of transmitting said values B, B 1 , B 2 , B 3 , C 3 , C 4 , D to the user device U 1 via the management device E 1 which stores C 3 , C 4 and D during this transmission. This transmission step F40 is implemented by the communication modules MOD_COM_U 1 , MOD_COM_L) 2 , MOD_COM_E 1 respectively equipping said devices U 1 , U 2 , E 1 . In addition, said storage is implemented by the storage module MOD_MEM_E 1 equipping said management device E 1 .
Le procédé de calcul comporte également une étape F50 de calcul, par le dispositif utilisateur U1, de ladite valeur K1 égale à B1 ˄1u) x B2 ˄2U) x B3 ˄((α34)u). Ladite étape F50 de calcul est mise en oeuvre par le deuxième module de calcul MOD_CALC2_U1 équipant le dispositif utilisateur U1. The calculation method also comprises a step F50 of calculation, by the user device U 1, said value K equal to 1 B 1 1 u) x B 2 2 U) x B 3 ((α 3 + α 4 ) u). Said calculation step F50 is implemented by the second calculation module MOD_CALC2_U 1 equipping the user device U 1 .
Le dispositif utilisateur U2 , quant à lui, calcule au cours d'une étape F60 du procédé de calcul ladite valeur K2 égale à A1 ˄1ν) x A2 ˄2ν) x A5 ˄((α34)ν). Ladite étape F760 de calcul est mise en oeuvre par le deuxième module de calcul MOD_CALC2_L)2 équipant le dispositif utilisateur U2. U user device 2, meanwhile, calculates in a step F60 of the calculation procedure said value K 2 equal to A 1 ν 1) x A 2 2 ν) x A 5 (3 + α 4 ) ν). Said calculation step F760 is implemented by the second calculation module MOD_CALC2_L) 2 equipping the user device U 2 .
Aucune limitation n'est attachée à l'ordre dans lequel lesdites étapes de calcul F50 et F60 sont exécutées. Par exemple, l'étape de calcul F50 est exécutée avant l'étape de calcul F60, ou bien inversement. Selon encore un autre exemple, lesdites étapes de calcul F50 et F60 sont exécutées de manière synchronisée. No limitation is attached to the order in which said calculation steps F50 and F60 are executed. For example, the calculation step F50 is executed before the calculation step F60, or else vice versa. According to yet another example, said calculation steps F50 and F60 are executed in a synchronized manner.
En définitive, à l'issue du procédé de calcul, les dispositifs utilisateurs U1 et U2 sont respectivement en possession des valeurs K1 et K2. Or, ces valeurs K1 et K2 sont égales entre elles, comme cela peut être vérifié aisément. Lesdites valeurs K1 et K2 correspondent dès lors à ladite clé de session à partir de laquelle lesdits dispositifs utilisateurs U1 et U2 peuvent communiquer de manière sécurisée au cours de la session de communication. La suite de la description vise à détailler différents modes de mise en oeuvre du procédé de calcul, dans lesquels une ou plusieurs vérifications sont effectuées afin de déterminer si les différentes valeurs respectivement calculées par les dispositifs U1, U2 et E1 sont erronées ou non, et, en cas de calcul erroné, permettre l'arrêt dudit procédé de calcul. Ultimately, at the end of the calculation method, the user devices U 1 and U 2 are respectively in possession of the values K 1 and K 2 . However, these values K 1 and K 2 are equal to each other, as can easily be verified. Said values K 1 and K 2 therefore correspond to said session key from which said user devices U 1 and U 2 can communicate in a secure manner during the communication session. The remainder of the description aims to detail different modes of implementation of the calculation method, in which one or more checks are carried out in order to determine whether the different values respectively calculated by the devices U 1 , U 2 and E 1 are erroneous or no, and, in the event of an erroneous calculation, allow said calculation process to be stopped.
La figure 6 représente, sous forme d'ordinogramme, un premier mode particulier de mise en oeuvre du procédé de calcul de la figure 5. FIG. 6 represents, in the form of a flowchart, a first particular mode of implementation of the calculation method of FIG. 5.
Dans ledit premier mode particulier illustré par la figure 6, le couplage bilinéaire intervenant dans les calculs de vérification détaillés ci-après est le couplage bilinéaire e obtenu suite à la mise en oeuvre de la méthode d'initialisation « Setup ». In said first particular mode illustrated by FIG. 6, the bilinear coupling involved in the verification calculations detailed below is the bilinear coupling e obtained following the implementation of the “Setup” initialization method.
Tel qu'illustré par la figure 6, et dans un premier temps, au cours de l'étape F20 le dispositif de gestion E1 vérifie (par exemple grâce à un module de vérification non illustré sur les figures), lors de la transmission des valeurs A, A1, A2, A3, A4, A5 du dispositif utilisateur U1 vers le dispositif utilisateur U2, si : As illustrated by FIG. 6, and initially, during step F20, the management device E 1 verifies (for example using a verification module not illustrated in the figures), during the transmission of the values A, A 1 , A 2 , A 3 , A 4 , A 5 from user device U 1 to user device U 2 , if:
- e[A1,g] est égal à e[A,pk{E1}], - e [A 1 , g] is equal to e [A, pk {E 1 }],
- e[A2,g] est égal à e[A,pk{E2}], - e [A 2 , g] is equal to e [A, pk {E 2 }],
- e[A3,g] est égal à e[A,pk{E3}], - e [A 3 , g] is equal to e [A, pk {E 3 }],
- e[A4,g] est égal à e[A,pk{E4}], - e [A 4 , g] is equal to e [A, pk {E 4 }],
- e[A5,g] est égal à e[A,W]. - e [A 5 , g] is equal to e [A, W].
Puis, dans un deuxième temps, au cours de l'étape F40 le dispositif de gestion E1 vérifie, lors de la transmission des valeurs B, B1, B2, B3, C3, C4, D du dispositif utilisateur U2 vers le dispositif utilisateur U1, si : Then, in a second step, during step F40, the management device E 1 checks, during the transmission of the values B, B 1 , B 2 , B 3 , C 3 , C 4 , D of the user device U 2 to user device U 1 , if:
- e[B1,g] est égal à e[B,pk{E1}], - e [B 1 , g] is equal to e [B, pk {E 1 }],
- e[B2,g] est égal à e[B,pk{E2}], - e [B 2 , g] is equal to e [B, pk {E 2 }],
- e[B3,g] est égal à e[B,W], - e [B 3 , g] is equal to e [B, W],
- e[C3,g] est égal à e[D,pk{E3}], - e [C 3 , g] is equal to e [D, pk {E 3 }],
- e[C4,g] est égal à e[D,pk{E4}], - e [C 4 , g] is equal to e [D, pk {E 4 }],
- e[D,g] est égal à e[A,B]. - e [D, g] is equal to e [A, B].
Le procédé de calcul est alors stoppé dès lors que le nombre d'égalités non vérifiées atteint un seuil donné. Aucune limitation n'est attachée à la valeur dudit seuil. Par exemple, le procédé de calcul peut être stoppé dès que la première égalité considérée n'est pas vérifiée. The calculation method is then stopped as soon as the number of unverified equalities reaches a given threshold. No limitation is attached to the value of said threshold. For example, the calculation method can be stopped as soon as the first considered equality is not verified.
En outre, il importe de noter que l'ordre dans lequel lesdites égalités sont considérées au cours de chaque transmission (étape F20 ou étape F40) n'est pas limitatif, le choix d'un ordre particulier ne constituant qu'une variante d'implémentation de l'invention. In addition, it should be noted that the order in which said equalities are considered during each transmission (step F 2 0 or step F40) is not limiting, the choice of a particular order constituting only one variant. implementation of the invention.
La figure 7 représente, sous forme d'ordinogramme, un deuxième mode particulier de mise en oeuvre du procédé de calcul de la figure 5. FIG. 7 represents, in the form of a flowchart, a second particular embodiment of the calculation method of FIG. 5.
Dans ledit deuxième mode particulier illustré par la figure 7, le dispositif utilisateur U1 calcule (étape F45_l, par exemple mise en oeuvre grâce à un troisième module de calcul du dispositif utilisateur U2 non illustré sur les figures), suite à la réception de la valeur D en provenance du dispositif utilisateur U2, une valeur D' égale à Av et vérifie (par exemple grâce à un module de vérification non illustré sur les figures) que ladite valeur D' est égale à ladite valeur D. In said second particular mode illustrated by FIG. 7, the user device U 1 calculates (step F45_l, for example implemented by means of a third calculation module of the user device U 2 not illustrated in the figures), following the reception of the D value from user device U 2 , a value D ′ equal to A v and verifies (for example using a verification module not illustrated in the figures) that said value D ′ is equal to said value D.
Le procédé de calcul étant alors stoppé si ladite égalité entre les valeurs D' et D n'est pas vérifiée. The calculation method then being stopped if said equality between the values D ′ and D is not verified.
La figure 8 représente, sous forme d'ordinogramme, un troisième mode particulier de mise en oeuvre du procédé de calcul de la figure 5. FIG. 8 represents, in the form of a flowchart, a third particular embodiment of the calculation method of FIG. 5.
Dans ledit troisième mode particulier illustré par la figure 8, différentes signatures cryptographiques sont calculées par les dispositifs utilisateurs U1, U2, ces signatures étant en outre vérifiées. In said third particular mode illustrated by FIG. 8, various cryptographic signatures are calculated by the user devices U 1 , U 2 , these signatures being further verified.
Plus particulièrement, le dispositif utilisateur U1 détermine (étape F15, par exemple mise en oeuvre grâce à un module de détermination de signature du dispositif utilisateur U1 non illustré sur les figures), au moyen de sa clé privée sk{U1}, une signature δ1 d'un message M1 fonction de pk{U1}, pk{U2}, A, A1, A2, A3, A4, A5 et N1, où N1 est une valeur aléatoire, la signature δ1 et la valeur N1 étant également transmises au dispositif utilisateur U2 via le dispositif de gestion E1. More particularly, the user device U 1 determines (step F15, for example implemented by means of a module for determining the signature of the user device U 1 not illustrated in the figures), by means of its private key sk {U 1 }, a signature δ 1 of a message M 1 function of pk {U 1 }, pk {U 2 }, A, A 1 , A 2 , A 3 , A 4 , A 5 and N 1 , where N 1 is a value random, the signature δ 1 and the value N 1 also being transmitted to the user device U 2 via the management device E 1 .
Le dispositif utilisateur U2, quant à lui, détermine (étape F35, par exemple mise en oeuvre grâce à un module de détermination de signature du dispositif utilisateur U2 non illustré sur les figures), au moyen de sa clé privée sk{U2}, une signature δ2 d'un message M2 fonction de pk{L)1}, pk{U2}, B, D, B1, B2, B3 et N2, où N2 est une valeur aléatoire, ainsi qu'une signature δ3 d'un message M3 fonction de pk{U1}, pk{U2}, B, D, C3, C4 et N3, où N3 est une valeur aléatoire, les signatures δ2, δ3 et les valeurs N2, N3 étant également transmises au dispositif utilisateur U1 via le dispositif de gestion E1. The user device U 2 , for its part, determines (step F 3 5, for example implemented by means of a signature determination module of the user device U 2 not illustrated in the figures), by means of its private key sk { U 2 }, a signature δ 2 of a message M 2 function of pk {L) 1 }, pk {U 2 }, B, D, B 1 , B 2 , B 3 and N 2 , where N 2 is a random value, as well as a signature δ 3 of a message M 3 function of pk {U 1 }, pk {U 2 }, B, D, C 3 , C 4 and N 3 , where N 3 is a random value , the signatures δ 2 , δ 3 and the values N 2 , N 3 also being transmitted to the user device U 1 via the management device E 1 .
Enfin, la signature δ1 est vérifiée (étape F20) par le dispositif de gestion E1 avant sa transmission au dispositif utilisateur U2, ainsi que par ledit dispositif utilisateur U2 (étape F25) après transmission. De plus, les signatures δ2 et δ3 sont vérifiées (étape F40) par le dispositif de gestion E1 avant leurs transmissions respectives au dispositif utilisateur U1, ainsi que par ledit dispositif utilisateur U1 (étape F45_2) après transmission. Ces vérifications sont par exemple mises en oeuvre par des modules de vérification équipant respectivement le dispositif utilisateur U2 et le dispositif de gestion E1, et non illustrés sur les figures. Finally, the signature δ 1 is verified (step F 2 0) by the management device E 1 before its transmission to the user device U 2 , as well as by said user device U 2 (step F 2 5) after transmission. In addition, the signatures δ 2 and δ 3 are verified (step F40) by the management device E 1 before their respective transmissions to the user device U 1 , as well as by said user device U 1 (step F45_ 2 ) after transmission. These verifications are for example implemented by verification modules respectively equipping the user device U 2 and the management device E 1 , and not illustrated in the figures.
Le procédé de calcul est stoppé dès lors que le nombre de signatures non vérifiées atteint un seuil donné. Par exemple, ce seuil peut être égal à 1. The calculation method is stopped as soon as the number of unverified signatures reaches a given threshold. For example, this threshold can be equal to 1.
La notion de signature cryptographique (encore nommée signature numérique ou bien signature électronique), ainsi que celle de vérification d'une signature cryptographique, sont bien connues de l'homme de l'art, et ne sont par conséquent pas détaillées plus avant ici. On rappelle uniquement que la détermination et la vérification de telles signatures permet d'authentifier les dispositifs à l'origine des calculs des différentes données et valeurs échangées sur le réseau de communication. The concept of cryptographic signature (also called digital signature or else electronic signature), as well as that of verification of a cryptographic signature, are well known to those skilled in the art, and are therefore not detailed further here. It is recalled only that the determination and verification of such signatures makes it possible to authenticate the devices at the origin of the calculations of the various data and values exchanged on the communication network.
Il importe de noter que lesdits premier, deuxième et troisième modes particuliers, décrits ci- avant en référence respectivement aux figures 7, 8 et 9, sont combinables entre eux selon toutes combinaisons techniquement opérables. Par exemple, lesdits premier et deuxième modes particuliers peuvent être mis en œuvre au cours du procédé de calcul. Selon un autre exemple, lesdits deuxième et troisième modes particuliers peuvent être mis en œuvre au cours dudit procédé de calcul. It should be noted that said first, second and third particular modes, described above with reference respectively to FIGS. 7, 8 and 9, can be combined with one another in any technically operable combination. For example, said first and second particular modes can be implemented during the calculation process. According to another example, said second and third particular modes can be implemented during said calculation method.
Dans un exemple préféré, lesdits premier, deuxième et troisième modes particuliers sont tous les trois mis en œuvre au cours du procédé de calcul. Procéder de cette manière permet avantageusement d'optimiser la sécurité dudit procédé de calcul. In a preferred example, said first, second and third particular modes are all three implemented during the calculation process. Proceeding in this way advantageously makes it possible to optimize the security of said calculation method.
Une fois la clé de session K1, K2 calculée par les dispositifs utilisateurs U1, U2, lesdits dispositifs utilisateurs U1, U2 peuvent communiquer de manière sécurisée en mettant en œuvre un procédé de communication selon l'invention. La mise en œuvre d'un tel procédé de communication s'effectue de manière connue en soi, les dispositifs utilisateurs U1, U2 utilisant ladite clé de session pour chiffrer les messages qu'ils souhaitent s'échanger via le réseau de communication géré par le dispositif de gestion E1 et pendant la session de communication au cours de laquelle a été calculée la clé de session. Once the session key K 1 , K 2 has been calculated by the user devices U 1 , U 2 , said user devices U 1 , U 2 can communicate securely by implementing a communication method according to the invention. The implementation of such a communication method is carried out in a manner known per se, the user devices U 1 , U 2 using said session key to encrypt the messages they wish to exchange via the managed communication network. by the management device E 1 and during the communication session during which the session key was calculated.
Comme mentionné auparavant, la clé de session K1, K2 peut faire l'objet d'au moins une demande de récupération autorisée par le dispositif d'autorisation E2 et émise par un dispositif de récupération parmi lesdits deux dispositifs de récupération E3, E4. La suite de la description vise à détailler désormais les aspects de l'invention liés à la récupération de ladite clé de session K1, K2 par lesdits dispositifs de récupération E3, E4. As mentioned previously, the session key K 1 , K 2 can be the subject of at least one recovery request authorized by the authorization device E 2 and sent by a recovery device from among said two recovery devices E 3 , E 4 . The remainder of the description now aims to detail the aspects of the invention linked to the recovery of said session key K 1 , K 2 by said recovery devices E 3 , E 4 .
La figure 9 représente schématiquement, dans son environnement, un mode de réalisation d'un système 20 pour la récupération de la clé de session K1, K2 calculée par lesdits dispositifs U1, U2. FIG. 9 schematically represents, in its environment, an embodiment of a system 2 0 for the recovery of the session key K 1 , K 2 calculated by said devices U 1 , U 2 .
Le système 20 pour la récupération de la clé de session K1, K2 comporte le dispositif de gestion E1 du système 10 de calcul décrit ci-avant en référence à la figure 1. The system 2 0 for the recovery of the session key K 1 , K 2 comprises the management device E 1 of the calculation system 10 described above with reference to FIG. 1.
Par ailleurs, et tel qu'illustré par la figure 9, ledit système 20 pour la récupération de la clé de session K1, K2 comporte ledit dispositif d'autorisation E2, ce dernier étant détenu par une entité de gestion. Moreover, and as illustrated by FIG. 9, said system 2 0 for the recovery of the session key K 1 , K 2 comprises said authorization device E 2 , the latter being held by a management entity.
Dans le présent mode de réalisation, ledit dispositif d'autorisation E2 est un ordinateur fixe détenu par une personne physique. In the present embodiment, said authorization device E 2 is a fixed computer owned by a natural person.
Il convient toutefois de noter qu'aucune limitation n'est attachée à la nature dudit dispositif d'autorisation E2 dès lors que ce dernier est configuré pour émettre et recevoir, via le réseau de communication, des messages comportant une ou plusieurs valeurs cryptographiques, ainsi que réaliser des traitements cryptographiques variés (calculs, voire également vérification de signatures cryptographiques), comme cela est décrit plus en détail ultérieurement. It should however be noted that no limitation is attached to the nature of said authorization device E 2 when the latter is configured to send and receive, via the communication network, messages comprising one or more cryptographic values, as well as performing various cryptographic processing (calculations, or even verification of cryptographic signatures), as described in more detail later.
Enfin, et tel qu'illustré par la figure 9, le système 20 pour la récupération de la clé de session K1, K2 comporte également lesdits deux dispositifs de récupération E3 et E4 respectivement détenus par deux entités de récupération distinctes. Finally, and as illustrated by FIG. 9, the system 2 0 for the recovery of the session key K 1 , K 2 also comprises said two recovery devices E 3 and E 4 respectively held by two separate recovery entities.
Dans le présent mode de réalisation, chaque dispositif de récupération E3, E4 est un ordinateur fixe détenu par une personne physique. In this embodiment, each recovery device E 3 , E 4 is a fixed computer owned by a natural person.
Néanmoins, là encore, l'invention reste applicable indépendamment de la nature desdits deux dispositifs de récupération E3 et E4, dès lors que chaque dispositif de récupération est configuré pour recevoir, via le réseau de communication, des messages comportant une ou plusieurs valeurs cryptographiques, ainsi que réaliser des traitements cryptographiques variés (calculs, voire également vérification de signatures cryptographiques), comme cela est décrit plus en détail ultérieurement. Nevertheless, here again, the invention remains applicable regardless of the nature of said two recovery devices E 3 and E 4 , since each recovery device is configured to receive, via the communication network, messages comprising one or more cryptographic values, as well as perform various cryptographic processing (calculations, or even verification of cryptographic signatures), as described in more detail later.
Il convient par ailleurs de noter que l'invention reste également applicable dans le cas où l'entité d'autorisation est une personne morale et/ou au moins une des entités de récupération est une personne morale, cet aspect ne constituant pas un facteur limitant de l'invention. It should also be noted that the invention also remains applicable in the case where the authorization entity is a legal person and / or at least one of the recovery entities is a legal person, this aspect not constituting a limiting factor. of the invention.
Conformément à l'invention, le dispositif de gestion E1, le dispositif d'autorisation E2 ainsi que le dispositif de récupération E3 ou le dispositif de récupération E4 sont configurés pour coopérer entre eux afin que lesdits dispositifs de récupération E3 et/ou E4 puissent récupérer la clé de session K1, K2 au cours de la session de communication lors de laquelle ladite clé de session K1, K2 est calculée par les dispositifs utilisateurs U1, U2, en mettant en oeuvre un procédé de récupération de ladite clé de session K1, K2 selon l'invention. According to the invention, the management device E 1 , the authorization device E 2 as well as the recovery device E 3 or the recovery device E 4 are configured to cooperate with each other so that said recovery devices E 3 and / or E 4 can recover the session key K 1 , K 2 during the communication session during which said session key K 1 , K 2 is calculated by the user devices U 1 , U 2 , by implementing a method for recovering said session key K 1 , K 2 according to the invention.
Comme déjà mentionné auparavant, le programme PROG_E1 du dispositif de gestion E1 définit un module de communication MOD_COM_E1 ainsi qu'un module de mémorisation MOD_MEM_E1. Ledit programme PROG_E1 définit également un module de calcul MOD_CALC_E1, configuré pour calculer une valeur T1 égale à D˄1sk{E1}). As already mentioned before, the program PROG_E 1 of the management device E 1 defines a communication module MOD_COM_E 1 as well as a storage module MOD_MEM_E 1 . Said program PROG_E 1 also defines a module MOD_CALC_E 1, configured to calculate a value equal to D T 1 1 E sk {1}).
Par ailleurs, outre les fonctions de transfert de valeurs entre les dispositifs utilisateurs U1, U2 qui lui revient de mettre en oeuvre et qui sont décrites ci-avant, ledit module de communication MOD_COM_E1 est également configuré pour transmettre : Furthermore, in addition to the functions of transferring values between the user devices U 1 , U 2 which it is responsible for implementing and which are described above, said communication module MOD_COM_E 1 is also configured to transmit:
- la valeur D au dispositif d'autorisation E2, - the value D to the authorization device E 2 ,
- la valeur C4 au dispositif E3 si ladite au moins une demande de récupération est émise par ledit dispositif E3 et/ou la valeur C3 au dispositif E4 si ladite au moins une demande de récupération est émise par ledit dispositif E4, the value C 4 to the device E 3 if said at least one recovery request is sent by said device E 3 and / or the value C 3 to the device E 4 if said at least one recovery request is sent by said device E 4 ,
- la valeur T1 à chacun des dispositifs de récupération E3, E4 ayant émis une demande de récupération de la clé de session K1, K2. the value T 1 to each of the recovery devices E 3 , E 4 having sent a request for recovery of the session key K 1 , K 2 .
La figure 10 représente schématiquement un exemple d'architecture matérielle du dispositif d'autorisation E2 selon l'invention. FIG. 10 schematically represents an example of hardware architecture of the authorization device E 2 according to the invention.
Tel qu'illustré par la figure 10, le dispositif d'autorisation E2 selon l'invention dispose de l'architecture matérielle d'un ordinateur. Ainsi, ledit dispositif d'autorisation E2 comporte, notamment, un processeur 1_E2, une mémoire vive 2_E2, une mémoire morte 3_E2 et une mémoire non volatile 4_E2. Il dispose en outre de moyens de communication 5_E2. As illustrated by FIG. 10, the authorization device E 2 according to the invention has the hardware architecture of a computer. Thus, said authorization device E 2 comprises, in particular, a processor 1_E 2 , a random access memory 2_E 2 , a read only memory 3_E 2 and a non-volatile memory 4_E 2 . It also has means of communication 5_E 2 .
Les moyens de communication 5_E2 permettent notamment au dispositif d'autorisation E2 d'émettre (respectivement recevoir) des valeurs cryptographiques vers les dispositifs de récupération E3, E4 (respectivement en provenance du dispositif de gestion E1), ainsi que d'émettre un message d'autorisation d'une demande de récupération, et sont similaires, au moins en ce qui concerne l'interface de communication, aux moyens de communication décrits ci-avant pour les dispositifs utilisateurs U1, U2 ou bien pour le dispositif de gestion E1. La mémoire morte 3_ Ei du dispositif d'autorisation E2 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 1_E2 et sur lequel est enregistré un programme d'ordinateur PROG_E2 conforme à l'invention, comportant des instructions pour l'exécution d'au moins une partie des étapes du procédé de récupération de la clé de session K1, K2 selon l'invention. Le programme PROG_E2 définit des modules fonctionnels du dispositif d'autorisation E2, qui s'appuient ou commandent les éléments matériels 2_E2 à 5_E2 dudit dispositif d'autorisation E2 cités précédemment, et qui comprennent notamment un module de communication MOD_COM_E2, configuré pour : The communication means 5_E 2 notably allow the authorization device E 2 to send (respectively receive) cryptographic values to the recovery devices E 3 , E 4 (respectively from the management device E 1 ), as well as d '' send an authorization message for a recovery request, and are similar, at least as regards the communication interface, to the communication means described above for the user devices U 1 , U 2 or else for the management system E 1 . The read only memory 3_ Ei of the authorization device E 2 constitutes a recording medium in accordance with the invention, readable by the processor 1_E 2 and on which is recorded a computer program PROG_E 2 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for recovering the session key K 1 , K 2 according to the invention. The program PROG_E 2 defines functional modules of the authorization device E 2 , which are based on or control the hardware elements 2_E 2 to 5_E 2 of said authorization device E 2 mentioned above, and which include in particular a communication module MOD_COM_E 2 , configured for:
- émettre, à destination dudit au moins un dispositif de récupération parmi deux dispositifs de récupération E3, E4, une autorisation de ladite au moins demande de récupération, - send, to said at least one recovery device from among two recovery devices E 3 , E 4 , an authorization of said at least recovery request,
- recevoir, en provenance du dispositif de gestion E1, la valeur D mémorisée par ledit dispositif de gestion E1 et égale à Av, et qui comprennent en outre un module de calcul MOD_CALC_E2, configuré pour calculer une valeur T2 égale à D˄2Sk{E2}), ledit module de communication MOD_COM_E2 étant en outre configuré pour transmettre ladite valeur T2 audit dispositif de récupération parmi deux dispositifs de récupération E3, E4. - receive, from the management device E 1 , the value D stored by said management device E 1 and equal to A v , and which further include a calculation module MOD_CALC_E 2 , configured to calculate a value T 2 equal to D 2 {Sk} E 2), said communication module MOD_COM_E 2 being further configured to transmit said value T 2 to said recovery device of two recovery devices E 3, E 4.
A titre d'exemple nullement limitatif, l'émission d'une autorisation de ladite au moins demande de récupération s'effectue grâce à un message dont le format est conforme à une norme de télécommunication donnée. By way of non-limiting example, the issuance of an authorization for said at least one retrieval request is effected by means of a message whose format conforms to a given telecommunications standard.
La figure 11 représente schématiquement un exemple d'architecture matérielle du dispositif de récupération E3 selon l'invention. FIG. 11 schematically represents an example of the hardware architecture of the recovery device E 3 according to the invention.
Tel qu'illustré par la figure 11, le dispositif de récupération E3 selon l'invention dispose de l'architecture matérielle d'un ordinateur. Ainsi, ledit dispositif de récupération E3 comporte, notamment, un processeur 1_E3, une mémoire vive 2_E3, une mémoire morte 3_E3 et une mémoire non volatile 4_E3. Il dispose en outre de moyens de communication 5_E3. As illustrated by FIG. 11, the recovery device E 3 according to the invention has the hardware architecture of a computer. Thus, said recovery device E 3 comprises, in particular, a processor 1_E 3 , a random access memory 2_E 3 , a read only memory 3_E 3 and a non-volatile memory 4_E 3 . It also has means of communication 5_E 3 .
Les moyens de communication 5_E3 permettent notamment au dispositif de récupération E3 de recevoir des valeurs cryptographiques en provenance du dispositif de gestion E1 et du dispositif d'autorisation E2, et sont similaires, au moins en ce qui concerne l'interface de communication, aux moyens de communication décrits ci-avant pour les dispositifs utilisateurs U1, U2, le dispositif de gestion E1 ou bien encore le dispositif d'autorisation E2. The communication means 5_E 3 notably allow the recovery device E 3 to receive cryptographic values originating from the management device E 1 and from the authorization device E 2 , and are similar, at least as regards the interface of communication, to the communication means described above for the user devices U 1 , U 2 , the management device E 1 or even the authorization device E 2 .
La mémoire morte 3_E3 du dispositif de récupération E3 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 1_E3 et sur lequel est enregistré un programme d'ordinateur PROG_E3 conforme à l'invention, comportant des instructions pour l'exécution d'au moins une partie des étapes du procédé de récupération de la clé de session K1, K2 selon l'invention. Le programme PROG_E3 définit des modules fonctionnels du dispositif de récupération E3, qui s'appuient ou commandent les éléments matériels 2_E3 à 5_E3 dudit dispositif d'autorisation E3 cités précédemment, et qui comprennent notamment un module de communication MOD_COM_E3, configuré pour : - émettre une demande de récupération de la clé session K1, K2, The read only memory 3_E 3 of the recovery device E 3 constitutes a recording medium in accordance with the invention, readable by the processor 1_E 3 and on which is recorded a computer program PROG_E 3 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for recovering the session key K 1 , K 2 according to the invention. The program PROG_E 3 defines functional modules of the recovery device E 3 , which are based on or control the hardware elements 2_E 3 to 5_E 3 of said authorization device E 3 mentioned above, and which notably include a communication module MOD_COM_E 3 , configured for: - issue a request to retrieve the session key K 1 , K 2 ,
- recevoir, en provenance du dispositif de gestion E1, ladite valeur T1 ainsi que ladite valeur C4,- receiving, from the management device E 1 , said value T 1 as well as said value C 4 ,
- recevoir, en provenance du dispositif d'autorisation E2, ladite valeur T2, et qui comprennent en outre : - receive, from the authorization device E 2 , said value T 2 , and which further include:
- ledit premier module de calcul MOD_CALCl_E3, configuré pour calculer ladite valeur publique W, comme déjà mentionné auparavant, - said first calculation module MOD_CALCl_E 3 , configured to calculate said public value W, as already mentioned before,
- un deuxième module de calcul MOD_CALC2_E3, configuré pour calculer une valeur T3 égale à- a second calculation module MOD_CALC2_E 3 , configured to calculate a value T 3 equal to
C4 ˄((α3+ α4)sk{E3}), C 4 ((α 3 + α 4) E sk {3}),
- un troisième module de calcul MOD_CALC3_E3, configuré pour calculer une valeur K3 égale à T1 x T2 x T3. - a third calculation module MOD_CALC3_E 3 , configured to calculate a value K 3 equal to T 1 x T 2 x T 3 .
A titre d'exemple nullement limitatif, l'émission d'une demande de récupération s'effectue grâce à un message dont le format est conforme à une norme de télécommunication donnée, typiquement la même norme que celle utilisée par le dispositif d'autorisation E2 pour l'émission d'un message d'autorisation. By way of non-limiting example, the transmission of a recovery request is carried out thanks to a message whose format conforms to a given telecommunications standard, typically the same standard as that used by the authorization device E 2 for sending an authorization message.
La figure 12 représente schématiquement un exemple d'architecture matérielle du dispositif de récupération E4 selon l'invention. FIG. 12 schematically represents an example of hardware architecture of the recovery device E 4 according to the invention.
Tel qu'illustré par la figure 12 , le dispositif de récupération E4 selon l'invention dispose de l'architecture matérielle d'un ordinateur. Ainsi, ledit dispositif de récupération E4 comporte, notamment, un processeur 1_E4, une mémoire vive 2_E4, une mémoire morte 3_E4 et une mémoire non volatile 4_E4. Il dispose en outre de moyens de communication 5_E4. As illustrated by FIG. 12, the recovery device E 4 according to the invention has the hardware architecture of a computer. Thus, said recovery device E 4 comprises, in particular, a processor 1_E 4 , a random access memory 2_E 4 , a read only memory 3_E 4 and a non-volatile memory 4_E 4 . It also has means of communication 5_E 4 .
Les moyens de communication 5_E4 permettent notamment au dispositif de récupération E4 de recevoir des valeurs cryptographiques en provenance du dispositif de gestion E1 et du dispositif d'autorisation E2, et sont similaires, au moins en ce qui concerne l'interface de communication, aux moyens de communication décrits ci-avant pour les dispositifs utilisateurs U1, U2, le dispositif de gestion E1 ou bien encore le dispositif d'autorisation E2. The communication means 5_E 4 notably allow the recovery device E 4 to receive cryptographic values originating from the management device E 1 and from the authorization device E 2 , and are similar, at least as regards the interface of communication, to the communication means described above for the user devices U 1 , U 2 , the management device E 1 or even the authorization device E 2 .
La mémoire morte 3_E4 du dispositif de récupération E4 constitue un support d'enregistrement conforme à l'invention, lisible par le processeur 1_E4 et sur lequel est enregistré un programme d'ordinateur PROG_E4 conforme à l'invention, comportant des instructions pour l'exécution d'au moins une partie des étapes du procédé de récupération de la clé de session K1, K2 selon l'invention. Le programme PROG_E4 définit des modules fonctionnels du dispositif de récupération E4, qui s'appuient ou commandent les éléments matériels 2_E4 à 5_E4 dudit dispositif de récupération E4 cités précédemment, et qui comprennent notamment un module de communication MOD_COM_E4, configuré pour : The read only memory 3_E 4 of the recovery device E 4 constitutes a recording medium in accordance with the invention, readable by the processor 1_E 4 and on which is recorded a computer program PROG_E 4 in accordance with the invention, comprising instructions for the execution of at least part of the steps of the method for recovering the session key K 1 , K 2 according to the invention. The program PROG_E 4 defines functional modules of the recovery device E 4 , which are based on or control the hardware elements 2_E 4 to 5_E 4 of said recovery device E 4 mentioned above, and which include in particular a communication module MOD_COM_E 4 , configured for :
- émettre une demande de récupération de la clé session K1, K2, - issue a request to retrieve the session key K 1 , K 2 ,
- recevoir, en provenance du dispositif de gestion E1, ladite valeur T1 ainsi que ladite valeur C3,- receiving, from the management device E 1 , said value T 1 as well as said value C 3 ,
- recevoir, en provenance du dispositif d'autorisation E2, ladite valeur T2, et qui comprennent en outre : - ledit premier module de calcul M0D_CALC1_E4, configuré pour calculer ladite valeur publique W, comme déjà mentionné auparavant, - receive, from the authorization device E 2 , said value T 2 , and which further include: - said first calculation module M0D_CALC1_E 4 , configured to calculate said public value W, as already mentioned before,
- un deuxième module de calcul MOD_CALC2_E4, configuré pour calculer une valeur T4 égale à C3 ˄((α34)sk{E4}), - a second calculation module MOD_CALC2_E 4, configured to calculate a value equal to T 4 C 3 ((α 3 + α 4) 4} E {sk),
- un troisième module de calcul MOD_CALC3_E4, configuré pour calculer une valeur K4 égale à T1 x T2 x T4. - a third calculation module MOD_CALC3_E 4 , configured to calculate a value K 4 equal to T 1 x T 2 x T 4 .
Dans un exemple particulier de réalisation, lesdits premier, deuxième et troisième modules de calcul MOD_CALCl_Eq, MOD_CALC2_Eq, MOD_CALC3_Eq, q étant un indice égal à 3 ou 4, sont intégrés dans un seul et même module de calcul, dit « module général ». A cet effet, ledit module général comporte des moyens configurés de manière matérielle et / ou logicielle pour réaliser les fonctions associées à chacun desdits premier, deuxième module et troisième modules de calcul MOD_CALCl_Eq, MOD_CALC2_Eq, MOD_CALC3_Eq. In a particular exemplary embodiment, said first, second and third calculation modules MOD_CALCl_E q , MOD_CALC2_E q , MOD_CALC3_E q , q being an index equal to 3 or 4, are integrated into one and the same calculation module, called "general module ". To this end, said general module comprises means configured in a hardware and / or software manner to perform the functions associated with each of said first, second module and third calculation modules MOD_CALCl_E q , MOD_CALC2_E q , MOD_CALC3_E q .
Il importe de noter que, conformément à l'invention, lesdits programmes d'ordinateur PROG_E1, PROG_E2, PROG_E3, PROG_E4 peuvent appartenir à un même ensemble de programmes d'ordinateur, chaque dispositif E1, E2, E3, E4 étant apte à obtenir, par exemple via un téléchargement et grâce aux moyens de communication qui l'équipent, le programme PROG_E1, PROG_E2, PROG_E3, PROG_E4 qui lui est associé parmi ledit ensemble de programmes. It should be noted that, in accordance with the invention, said computer programs PROG_E 1 , PROG_E 2 , PROG_E 3 , PROG_E 4 can belong to the same set of computer programs, each device E 1 , E 2 , E 3 , E 4 being able to obtain, for example via a download and thanks to the means of communication which equip it, the program PROG_E 1 , PROG_E 2 , PROG_E 3 , PROG_E 4 which is associated with it from among said set of programs.
Pour la suite de la description, on considère de manière nullement limitative que deux de demandes de récupération de la clé de session K1, K2 ont été respectivement émises par les dispositifs de récupération E3 et E4 auprès du dispositif d'autorisation E2, et que chacune de ces demandes de récupération a été autorisée par ledit dispositif d'autorisation E2. For the remainder of the description, it is considered in no way limiting that two requests for recovery of the session key K 1 , K 2 were respectively sent by the recovery devices E 3 and E 4 to the authorization device E 2 , and that each of these recovery requests has been authorized by said authorization device E 2 .
La figure 13 représente, sous forme d'ordinogramme, les principales étapes du procédé de récupération de la clé de session K1, K2 selon l'invention, telles qu'elles sont mises en oeuvre par le système 20 de récupération de la figure 9. FIG. 13 represents, in the form of a flowchart, the main steps of the method for recovering the session key K 1 , K 2 according to the invention, as implemented by the system 2 0 for recovering the data. figure 9.
Ledit procédé de récupération est mis en oeuvre au cours de la session de communication pendant laquelle la clé de session K1, K2 est calculée par les dispositifs utilisateurs U1, U2, étant entendu que ladite clé de session K1, K2 est déjà calculée au moment de la mise en oeuvre dudit procédé de récupération et que lesdits dispositifs utilisateurs U1, U2 sont dès lors en mesure de communiquer entre eux de manière sécurisée. Said recovery method is implemented during the communication session during which the session key K 1 , K 2 is calculated by the user devices U 1 , U 2 , it being understood that said session key K 1 , K 2 is already calculated at the time of the implementation of said recovery method and that said user devices U 1 , U 2 are therefore able to communicate with each other in a secure manner.
Tel qu'illustré par la figure 13, le procédé de récupération comporte tout d'abord une étape R10 de transmission, par le dispositif de gestion E1, de la valeur D au dispositif d'autorisation E2. Par ailleurs, au cours de cette étape R10 de transmission, et étant donné que ainsi que chacun des dispositifs de récupération E3, E4 a émis une demande de récupération acceptée par le dispositif d'autorisation E2, les valeurs C4 et C3 sont transmises respectivement au dispositif de récupération E3 et au dispositif de récupération E4. Il est à noter que cette étape R10 de transmission est mise en oeuvre par le module de communication MOD_COM_E1 équipant ledit dispositif de gestion E1. Le procédé de récupération comporte ensuite une étape R20 de calcul, par le dispositif de gestion E1, de ladite valeur T1 égale à D˄1sk{E1}). Cette étape R20 de calcul est mise en oeuvre par le module de calcul MOD_CALC_E1 équipant le dispositif de gestion E1. As illustrated by FIG. 1 3 , the recovery method firstly comprises a step R10 of transmission, by the management device E 1 , of the value D to the authorization device E 2 . Furthermore, during this transmission step R10, and given that as well as each of the recovery devices E 3 , E 4 has issued a recovery request accepted by the authorization device E 2 , the values C 4 and C 3 are transmitted respectively to the recovery device E 3 and to the recovery device E 4 . It should be noted that this transmission step R10 is implemented by the communication module MOD_COM_E 1 equipping said management device E 1 . The recovery process then comprises a step R20 to calculate, by the management device E 1, said value T 1 equal to D (1 α sk {E 1}). This calculation step R20 is implemented by the calculation module MOD_CALC_E 1 equipping the management device E 1 .
Etant donné que ainsi que chacun des dispositifs de récupération E3, E4 a émis une demande de récupération acceptée par le dispositif d'autorisation E2, ladite valeur T1 est ensuite transmise par le dispositif de gestion E1 aux deux dispositifs de récupération E3 et E4 au cours d'une étape R30 du procédé de récupération. Cette étape R30 de transmission est mise en oeuvre par le module de communication MOD_COM_E1 équipant le dispositif de gestion E1. Given that thus each of the recovery devices E 3 , E 4 has issued a recovery request accepted by the authorization device E 2 , said value T 1 is then transmitted by the management device E 1 to the two recovery devices E 3 and E 4 during a step R30 of the recovery process. This transmission step R30 is implemented by the communication module MOD_COM_E 1 equipping the management device E 1 .
Le procédé de récupération comporte également une étape R40 de calcul, par le dispositif d'autorisation E2, de ladite valeur T2 égale à D˄2sk{E2}). Cette étape R40 de calcul est mise en oeuvre par le module de calcul MOD_CALC_E2 équipant le dispositif d'autorisation E2. The recovery method further comprises a calculation step R40, the E2 enabling device, said value T 2 equal to D 2 E sk {2}). This calculation step R40 is implemented by the calculation module MOD_CALC_E 2 equipping the authorization device E 2 .
En raison à nouveau de l'émission des deux demandes de récupération, ladite valeur T2 est ensuite transmise par le dispositif d'autorisation E2 aux deux dispositifs de récupération E3 et E4 au cours d'une étape R50 du procédé de récupération. Cette étape R50 de transmission est mise en oeuvre par le module de communication MOD_COM_E2 équipant le dispositif d'autorisation E2. Once again due to the transmission of the two recovery requests, said value T 2 is then transmitted by the authorization device E 2 to the two recovery devices E 3 and E 4 during a step R50 of the recovery process . This transmission step R50 is implemented by the communication module MOD_COM_E 2 equipping the authorization device E 2 .
Le procédé de récupération comporte en outre une étape R60 de calcul de ladite valeur T3 par le dispositif de récupération E3. Cette étape R60 de calcul est mise en oeuvre par le deuxième module de calcul MOD_CALC2_E3 équipant le dispositif de récupération E3. The recovery method further comprises a step R60 for calculating said value T 3 by the recovery device E 3 . This calculation step R60 is implemented by the second calculation module MOD_CALC2_E 3 equipping the recovery device E 3 .
De manière similaire, le procédé de récupération comporte une étape R70 de calcul de ladite valeur T4 par le dispositif de récupération E4. Cette étape R70 de calcul est mise en oeuvre par le deuxième module de calcul MOD_CALC_E4 équipant le dispositif de récupération E4. Similarly, the recovery method comprises a step R70 for calculating said value T 4 by the recovery device E 4 . This calculation step R70 is implemented by the second calculation module MOD_CALC_E 4 equipping the recovery device E 4 .
Aucune limitation n'est attachée à l'ordre dans lequel lesdites étapes de calcul R60 et R70 sont exécutées. Par exemple, l'étape de calcul R60 est exécutée avant l'étape de calcul R70, ou bien inversement. Selon encore un autre exemple, lesdites étapes de calcul R60 et R70 sont exécutées de manière synchronisée. No limitation is attached to the order in which said calculating steps R60 and R70 are executed. For example, the calculation step R60 is executed before the calculation step R70, or else vice versa. According to yet another example, said calculation steps R60 and R70 are executed in a synchronized manner.
Enfin, le procédé de récupération comporte une étape R80 de calcul de ladite valeur K3 par le dispositif de récupération E3. Cette étape R80 de calcul est mise en oeuvre par le troisième module de calcul MOD_CALC3_E3 équipant le dispositif de récupération E3. Finally, the recovery method comprises a step R80 for calculating said value K 3 by the recovery device E 3 . This calculation step R80 is implemented by the third calculation module MOD_CALC3_E 3 equipping the recovery device E 3 .
De manière similaire, le procédé de récupération comporte une étape R90 de calcul de ladite valeur K4 par le dispositif de récupération E4. Cette étape R90 de calcul est mise en oeuvre par le troisième module de calcul MOD_CALC3_E4 équipant le dispositif de récupération E4. Similarly, the recovery method comprises a step R90 for calculating said value K 4 by the recovery device E 4 . This calculation step R90 is implemented by the third calculation module MOD_CALC3_E 4 equipping the recovery device E 4 .
Aucune limitation n'est attachée à l'ordre dans lequel lesdites étapes de calcul R80 et R90 sont exécutées. Par exemple, l'étape de calcul R80 est exécutée avant l'étape de calcul R90, ou bien inversement. Selon encore un autre exemple, lesdites étapes de calcul R80 et R90 sont exécutées de manière synchronisée. No limitation is attached to the order in which said calculating steps R80 and R90 are executed. For example, the calculation step R80 is executed before the calculation step R90, or else vice versa. According to yet another example, said calculation steps R80 and R90 are executed in a synchronized manner.
En définitive, à l'issue du procédé de récupération, les dispositifs de récupération E3 et E4 sont respectivement en possession des valeurs K3 et K4. Or, ces valeurs K3 et K4 sont non seulement égales entre elles, mais également égales auxdites valeurs K1 et K2, comme cela peut être vérifié aisément. Lesdites valeurs K3 et K4 correspondent dès lors à ladite clé de session récupérée. Ultimately, at the end of the recovery process, the recovery devices E 3 and E 4 are respectively in possession of the values K 3 and K 4 . However, these values K 3 and K 4 are not only equal to each other, but also equal to said values K 1 and K 2 , as can easily be verified. Said values K 3 and K 4 therefore correspond to said recovered session key.
Le procédé de récupération selon l'invention offre donc la possibilité aux deux dispositifs de récupération E3 et E4 de récupérer la clé session que les dispositifs utilisateurs U1, U2 ont calculée et qu'ils utilisent pour communiquer entre eux au cours de la session de communication. The recovery method according to the invention therefore offers the two recovery devices E 3 and E 4 the possibility of recovering the session key that the user devices U 1 , U 2 have calculated and that they use to communicate with each other during the communication session.
Il est particulièrement avantageux que les dispositifs de récupération E3, E4 récupèrent respectivement la clé de session à partir des valeurs T3, T4. En effet, l'usage d'une valeur différente pour chacune de ces entités induit la possibilité pour chacune d'entre elles de disposer de leurs propres clés publiques. It is particularly advantageous that the recovery devices E 3 , E 4 respectively recover the session key from the values T 3 , T 4 . Indeed, the use of a different value for each of these entities induces the possibility for each of them to have their own public keys.
Le fait que la clé de session puisse être récupérée de manière anonyme par les dispositifs de récupération E3, E4 a son importance dans de multiples contexte, en particulier lorsque les entités de récupération qui détiennent respectivement lesdits dispositifs de récupération sont indépendantes entre elles, et doivent le demeurer. The fact that the session key can be recovered anonymously by the recovery devices E 3 , E 4 is important in many contexts, in particular when the recovery entities which respectively hold said recovery devices are independent of each other, and must remain so.
Pour rappel, par « indépendance » entre entités de récupération, il est fait référence ici à des situations dans lesquelles il peut être exigé que lesdites entités de récupération soient autonomes entre elles. Autrement dit, dans ces situations, une entité de récupération n'est pas soumise à l'autorité de l'autre entité de récupération, et doit donc pouvoir être en mesure de réaliser ses calculs de récupération sans collaboration avec ladite autre entité de récupération. As a reminder, by “independence” between recovery entities, reference is made here to situations in which it may be required that said recovery entities be independent from one another. In other words, in these situations, a recovery entity is not subject to the authority of the other recovery entity, and must therefore be able to perform its recovery calculations without collaboration with said other recovery entity.
Deux exemples d'application de la présente invention sont désormais décrits à titre nullement limitatif, afin d'illustrer, notamment, deux contextes distincts dans lesquels les entités de récupération détenant les dispositifs de récupération sont indépendantes entre elles. Two examples of application of the present invention are now described without limitation, in order to illustrate, in particular, two distinct contexts in which the recovery entities holding the recovery devices are independent of one another.
Le premier exemple d'application décrit reprend les éléments introduits auparavant en ce qui concerne le cas d'un salarié victime de harcèlement de la part de son responsable hiérarchique. Grâce à l'invention, le juriste (i.e. l'entité d'autorisation) de l'entreprise a la possibilité d'autoriser deux entités de récupération indépendantes à récupérer la clé de session, à savoir le service des ressources humaines du département auquel appartient le salarié et le service d'assistance sociale appartenant à un département autre que celui du salarié, tout en préservant cette indépendance. The first application example described incorporates the elements introduced previously with regard to the case of an employee who is the victim of harassment by his line manager. Thanks to the invention, the lawyer (ie the authorization entity) of the company has the possibility of authorizing two independent recovery entities to retrieve the session key, namely the human resources service of the department to which it belongs. the employee and the social assistance service belonging to a department other than that of the employee, while preserving this independence.
Grâce à l'invention, ces deux différents services peuvent donc récupérer chacun la clé de session qui serait utilisée par ledit salarié et ledit responsable hiérarchique au cours d'une session de communication, par exemple sous la forme d'échanges de messages instantanés (« chat » dans la littérature anglo-saxonne) via un réseau de communication interne de l'entreprise, ce réseau étant géré par l'administrateur réseau de l'entreprise. Ni le salarié et ni le responsable hiérarchique ne pourraient se rendre compte que leurs échanges lors de la session de communication sont écoutés par les entités de récupération. En outre, une entité de récupération ne serait non plus pas en mesure de savoir que l'autre entité de récupération a accès à ces échanges. Thanks to the invention, these two different services can therefore each recover the session key that would be used by said employee and said line manager during a communication session, for example in the form of instant message exchanges (" chat ”in Anglo-Saxon literature) via an internal communication network of the company, this network being managed by the network administrator of the company. Neither the employee nor the line manager could realize that their exchanges during the communication session are listened to by the recovery entities. In addition, a recovery entity would also not be able to know that the other recovery entity has access to these exchanges.
Le deuxième exemple d'application fait référence quant à lui à des entités utilisatrices qui sont des utilisateurs physiques légitimes (i.e. ayant un abonnement valide) d'un réseau de communication mobile géré par un opérateur de télécommunications. Dans le cadre de la réglementation actuelle relative à la protection des données desdits utilisateurs (ex : Règlement Général sur la Protection des Données dit « RGPD »), ledit opérateur de télécommunications est dans l'obligation de protéger les communications des utilisateurs d'un attaquant externe mais également de lui-même. L'architecture actuelle des réseaux mobiles ne permet cependant pas de garantir une telle protection dans la mesure où le seul mode de chiffrement envisageable est un mode de chiffrement de liaison (encore dit « link encryption » dans la littérature anglo-saxonne). Autrement dit, chaque nœud intermédiaire dans le réseau de communication chiffre et déchiffre les messages transmis entre utilisateurs, ouvrant ainsi la voie à de potentielles failles de sécurité si par exemple un nœud venait à subir une attaque. The second example of application refers for its part to user entities which are legitimate physical users (ie having a valid subscription) of a mobile communication network managed by a telecommunications operator. Within the framework of current regulations relating to the protection of the data of said users (eg General Data Protection Regulation known as "RGPD"), said telecommunications operator is obliged to protect user communications from an external attacker but also from himself . However, the current architecture of mobile networks does not make it possible to guarantee such protection insofar as the only possible encryption mode is a link encryption mode (also called “link encryption” in the English literature). In other words, each intermediate node in the communication network encrypts and decrypts the messages transmitted between users, thus opening the way to potential security breaches if, for example, a node were to suffer an attack.
Aussi, l'invention permet avantageusement de fournir une protection beaucoup plus efficace des données des utilisateurs, tout en offrant la possibilité à des entités de récupération habilitées d'avoir accès à une clé de session utilisée par deux utilisateurs. Par « protection beaucoup plus efficace », on fait référence ici à un mode de chiffrement de bout en bout (encore dit « end-to-end » dans la littérature anglo-saxonne) puisque seuls les utilisateurs du réseau ont accès aux messages qu'ils échangent grâce à la clé de session calculée. Also, the invention advantageously makes it possible to provide much more effective protection of user data, while offering the possibility for authorized recovery entities to have access to a session key used by two users. By "much more effective protection", we refer here to an end-to-end encryption mode (also called "end-to-end" in the English literature) since only the users of the network have access to the messages that they exchange using the calculated session key.
A titre purement illustratif pour ce deuxième exemple d'application, on peut considérer le cas où l'opérateur de télécommunication représente donc, au sens de l'invention, l'entité de gestion qui détient le dispositif de gestion E1, et où : Purely by way of illustration for this second example of application, we can consider the case where the telecommunications operator therefore represents, within the meaning of the invention, the management entity which owns the management device E 1 , and where:
- l'entité d'autorisation correspond à une entité judiciaire, comme par exemple un juge,- the authorization entity corresponds to a judicial entity, such as for example a judge,
- les entités de récupération E3, E4 correspondent à des entités de maintien de l'ordre et de la sécurité, comme par exemple deux polices aux compétences d'attribution distinctes de sorte à être indépendantes entre elles. the recovery entities E 3 , E 4 correspond to law enforcement and security entities, such as for example two policies with distinct attribution powers so as to be independent from one another.
La figure 14 représente, sous forme d'ordinogramme, un mode particulier de mise en œuvre du procédé de récupération de la figure 13. FIG. 14 represents, in the form of a flowchart, a particular mode of implementation of the recovery method of FIG. 1 3 .
Dans le mode particulier illustré par la figure 13, les différentes signatures cryptographiques δ1, δ2, δ3 sont vérifiées. L'objet de ces vérifications de signatures est, comme déjà décrit auparavant, d'authentifier les dispositifs à l'origine des calculs des différentes données et valeurs échangées sur le réseau de communication, et, dans le cas où une authentification n'est pas garantie, permettre l'arrêt dudit procédé de récupération. In the particular mode illustrated by FIG. 1 3 , the various cryptographic signatures δ 1 , δ 2 , δ 3 are verified. The object of these signature checks is, as already described above, to authenticate the devices at the origin of the calculations of the various data and values exchanged on the communication network, and, in the case where an authentication is not guaranteed, allow the said recovery process to be stopped.
Plus particulièrement, le dispositif de gestion E1 transmet, avant les calculs des valeurs T2 et T3, les signatures o1, δ2, δ3 ainsi que les valeurs A, A1, A2, A3, A4, A5, N1, B, B1, B2, B3, N2, N3 au dispositif d'autorisation E2 ainsi qu'aux deux dispositifs de récupération E3 et E4. Cette transmission est par exemple effectuée en même temps que celle des valeurs D, C3 et C4 (étape R10). More particularly, the management device E 1 transmits, before the calculations of the values T 2 and T 3 , the signatures o 1 , δ 2 , δ 3 as well as the values A, A 1 , A 2 , A 3 , A 4 , A 5 , N 1 , B, B 1 , B 2 , B 3 , N 2 , N 3 to the authorization device E 2 as well as to the two recovery devices E 3 and E 4 . This transmission is for example carried out at the same time as that of the values D, C 3 and C 4 (step R10).
Ces valeurs A, A1, A2, A3, A4, A5, N1, B, B1, B2, B3, N2, N3 sont, comme cela était déjà le cas pour les valeurs D, C3 et C4, mémorisées par le dispositif de gestion E1 avant leurs transmissions respectives aux différents dispositifs E2, E3 et E4. These values A, A 1 , A 2 , A 3 , A 4 , A 5 , N 1 , B, B 1 , B 2 , B 3 , N 2 , N 3 are, as was already the case for the D values , C 3 and C 4 , stored by the management device E 1 before their respective transmissions to the various devices E 2 , E 3 and E 4 .
Le dispositif d'autorisation E2 vérifie alors les signatures δ1, δ2, δ3 (étape R35) avant le calcul de la valeur T2. Ledit dispositif de récupération E3 vérifie les signatures δ1, δ2, δ3 (étape R55) avant le calcul de la valeur T3. The authorization device E 2 then checks the signatures δ 1 , δ 2 , δ 3 (step R 3 5) before calculating the value T 2 . Said recovery device E 3 verifies the signatures δ 1 , δ 2 , δ 3 (step R55) before calculating the value T 3 .
Ledit dispositif de récupération E4 vérifie les signatures δ1, δ2, δ3 (étape R65) avant le calcul de la valeur T4. Said recovery device E 4 verifies the signatures δ 1 , δ 2 , δ 3 (step R65) before calculating the value T 4 .
Le procédé de récupération est stoppé dès lors que le nombre de signatures non vérifiées atteint un seuil donné. Par exemple, ce seuil est égal à 1. The recovery process is stopped as soon as the number of unverified signatures reaches a given threshold. For example, this threshold is equal to 1.
L'invention a été décrite jusqu'à présent en considérant que la clé de session était récupérée au cours d'une session de communication entre les dispositifs utilisateurs U1, U2. Il n'en reste pas moins que l'invention reste applicable au cas où la clé de session est récupérée en dehors d'une telle session de communication. A titre d'exemple nullement limitatif, la clé de session peut être récupérée de manière différée sur la base des communications échangées entre les dispositifs utilisateurs U1, U2 et enregistrées puis stockées, par exemple dans une base de données. The invention has been described until now by considering that the session key was recovered during a communication session between the user devices U 1 , U 2 . The fact remains that the invention remains applicable in the case where the session key is recovered outside of such a communication session. By way of non-limiting example, the session key can be recovered in a deferred manner on the basis of the communications exchanged between the user devices U 1 , U 2 and recorded and then stored, for example in a database.
Par ailleurs, les signatures considérées jusqu'à présent dans l'invention, aussi bien pour le procédé de calcul que pour le procédé de récupération, sont les signatures δ1, δ2, δ3. Cela étant, rien n'exclut qu'une ou plusieurs autres signatures, en sus desdites signatures δ1, δ2, δ3, soient calculées et vérifiées. Par exemple, le dispositif de gestion E1 peut calculer, au cours du procédé de calcul et avant la transmission des signatures δ2, δ3 au dispositif utilisateur U1, et au moyen de sa clé privé sk{E1}, une signature δ4 d'un message M4 fonction de pk{U1}, pk{U2}, A, B, D et N4, où N4 est une valeur aléatoire. La signature δ4 et la valeur N4 sont transmises, au cours du procédé de récupération, par le dispositif de gestion E1 aux dispositifs de récupération E3, E4, par exemple en même temps que les autres signatures δ1, δ2, δ3. La signature δ4 peut dès lors être vérifiée par chacun desdits dispositifs de récupération E3, E4. Furthermore, the signatures considered so far in the invention, both for the calculation method and for the recovery method, are the signatures δ 1 , δ 2 , δ 3 . However, nothing excludes that one or more other signatures, in addition to said signatures δ 1 , δ 2 , δ 3 , are calculated and verified. For example, the management device E 1 can calculate, during the calculation method and before the transmission of the signatures δ 2 , δ 3 to the user device U 1 , and by means of its private key sk {E 1 }, a signature δ 4 of a message M 4 function of pk {U 1 }, pk {U 2 }, A, B, D and N 4 , where N 4 is a random value. The signature δ 4 and the value N 4 are transmitted, during the recovery process, by the management device E 1 to the recovery devices E 3 , E 4 , for example at the same time as the other signatures δ 1 , δ 2 , δ 3 . The signature δ 4 can therefore be verified by each of said recovery devices E 3 , E 4 .
L'invention a également été décrite jusqu'à présent en considérant que, lors du procédé de récupération, les deux dispositifs de récupération E3 et E4 émettent chacun une demande de récupération de la clé de session. Toutefois, l'invention reste applicable au cas où un seul de ces dispositifs de récupération émet une demande de récupération. The invention has also been described until now by considering that, during the recovery method, the two recovery devices E 3 and E 4 each issue a request for recovery of the session key. However, the invention remains applicable in the case where only one of these recovery devices issues a recovery request.
En outre, rien n'exclut d'envisager, suivant un exemple particulier de mise en oeuvre, que, indépendamment du nombre de demande de récupération émise, In addition, nothing excludes considering, according to a particular example of implementation, that, independently of the number of recovery requests issued,
- la valeur C3 est également transmise par le dispositif de gestion E1 au dispositif de récupération E3, - the value C 3 is also transmitted by the management device E 1 to the recovery device E 3 ,
- la valeur C4 est également transmise par le dispositif de gestion E1 au dispositif de récupération E4. - the value C 4 is also transmitted by the management device E 1 to the recovery device E 4 .
De telles dispositions permettent de renforcer la sécurité du procédé de récupération en ce que cela permet d'éviter la détermination de l'origine d'une demande de récupération. En effet, étant donné que chaque dispositif de récupération E3, E4 reçoit les deux valeurs C3, C4, il devient impossible de distinguer ces dispositifs de récupération E3, E4 entre eux en ce qui concerne leurs demandes de récupération éventuelles. Enfin, il est à noter que le procédé de récupération a été décrit jusqu'à présent en considérant que les différentes étapes de transmission et de calcul (étapes R10 à R90) sont mises en oeuvre alors même que les demandes de récupération par les dispositifs de récupération E3, E4 ont été préalablement émises et autorisées. Il n'en reste pas moins que le procédé de récupération selon l'invention couvre également le cas où, selon un mode particulier de mise en oeuvre, des étapes d'émission et d'autorisation desdites demandes de récupération et d'autorisation sont incluses dans ledit procédé de récupération. Such arrangements make it possible to reinforce the security of the recovery process in that it makes it possible to avoid determining the origin of a recovery request. Indeed, given that each recovery device E 3 , E 4 receives the two values C 3 , C 4 , it becomes impossible to distinguish these recovery devices E 3 , E 4 from one another with regard to their possible recovery requests. . Finally, it should be noted that the recovery method has been described so far by considering that the different transmission and calculation steps (steps R10 to R90) are implemented even though the recovery requests by the recovery devices. recovery E 3 , E 4 were previously issued and authorized. The fact remains that the recovery method according to the invention also covers the case where, according to a particular embodiment, steps of issuing and authorizing said recovery and authorization requests are included. in said recovery process.
De manière sensiblement similaire, l'invention couvre également la possibilité selon laquelle la valeur publique W est calculée au cours d'une étape du procédé de calcul de la clé de session. Dans ce cas, le système 10 de calcul comporte également le ou les dispositifs de récupération E3, E4 ayant calculé cette valeur publique W. In a substantially similar manner, the invention also covers the possibility according to which the public value W is calculated during a step of the method for calculating the session key. In this case, the calculation system 10 also includes the recovery device (s) E 3 , E 4 having calculated this public value W.

Claims

Revendications Claims
[Revendication 1] Procédé de calcul d'une clé de session pour la sécurisation d'une session de communication entre deux dispositifs utilisateurs U1, U2, ladite session de communication étant mise en oeuvre via un réseau de communication géré par au moins un dispositif de gestion E1, la clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, une valeur publique W égale à g˄(sk{E3}sk{E4}) ayant été calculée par au moins un dispositif de récupération E3, E4, ledit procédé comportant des étapes de : [Claim 1] Method for calculating a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being implemented via a communication network managed by at least one management device E 1 , the session key being able to be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, associated with a public key pk {Ej} and a private key sk {Ej} pk {Ej} being equal to g sk {Ej} where g is a generating a first group of order p, a public value W equal to g (sk sk {E 3} {4} E) having been calculated by at least one recovery device E 3, E 4, said method comprising stages of:
- calcul (F10), par le dispositif utilisateur U1, de valeurs A, A1, A2, A3, A4, A5 respectivement égales à g˄u, pk{El}˄u, pk{E2 }˄u, pk{E3}˄u, pk{E4}˄u, W˄u, et transmises (F20) au dispositif utilisateur U2 via le dispositif de gestion E1, u étant une valeur secrète du dispositif U1, - computation (F10) by the user device U 1, values of A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk {El} u, pk {E2} u, E 3 {pk} u, pk {E4} u, W u, and transmitted (F 2 0) to U user device 2 via the management device E 1, u being a secret value U of the device 1 ,
- calcul (F30), par le dispositif utilisateur U2, de valeurs B, B1, B2, B3, C3, C4, D respectivement égales à g˄v, pk{El}˄v, pk{E2 }˄v, W˄v, A3 ˄n, A4 ˄n, A˄n et transmises au dispositif utilisateur U1 via le dispositif de gestion E1 qui mémorise au moins C3, C4 et D (F40), v étant une valeur secrète du dispositif U2, - calculation (3 F 0) by the user device U 2 values of B, B 1, B 2, B 3, C 3, C 4, D respectively equal to v g, pk {El} v, pk E {v 2}, W v, A 3 n, A 4 n, A n and transmitted to the user device U 1 via the management device E 1 which stores at least C 3, C 4 and D ( F40), v being a secret value of the device U 2 ,
- calcul (F50), par le dispositif utilisateur U1, d'une valeur K1 égale à B1 ˄1u) x B2 ˄2U) x B3 ˄((α34)u), où αm , m allant de 1 à 4, est une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à αm , - computation (F50) by the user U device 1, a value K equal to 1 B 1 1 u) x B 2 2 U) x B 3 ((α 3 + α 4) u), where α m , m ranging from 1 to 4, is a quantity function of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and of a data associated with α m ,
- calcul (F60), par le dispositif utilisateur U2, d'une valeur K2 égale à A1 ˄1ν) x A2 ˄2ν) x A5 ˄((α3 +a4)ν), les valeurs K1 et K2 correspondant à ladite clé de session. - computation (F60) by the user U device 2, having a K value equal to 2 A 1 ν 1) x A 2 2 ν) x A 5 ((α 3 + a4) ν ), the values K 1 and K 2 corresponding to said session key.
[Revendication 2] Procédé selon la revendication 1, dans lequel, suite à la réception de la valeur D en provenance du dispositif utilisateur U2, le dispositif utilisateur U1 calcule une valeur D' égale à A˄n et vérifie que ladite valeur D' est égale à ladite valeur D (F45), le procédé de calcul étant stoppé si ladite égalité n'est pas vérifiée. [Claim 2] The method of claim 1, wherein, upon receipt of the value D from the user device U 2, U 1 the user device calculates a value D equal to A n and checks that said value D 'is equal to said value D (F45), the calculation method being stopped if said equality is not verified.
[Revendication 3] Procédé selon l'une quelconque des revendications 1 à 2, dans lequel un dispositif utilisateur Ui, i allant de 1 à 2, est associé à une clé publique pk{Ui} ainsi qu'à une clé privée sk{Ui}, et dans lequel : [Claim 3] Method according to any one of claims 1 to 2, in which a user device Ui, i ranging from 1 to 2, is associated with a public key pk {Ui} as well as with a private key sk {Ui }, and in which:
- le dispositif utilisateur U1 détermine (F15), au moyen de sa clé privée sk{U1}, une signature δ1 d'un message (M1) fonction de pk{U1}, pk{U2}, A, A1, A2, A3, A4, A5 et N1, où N1 est une valeur aléatoire, la signature δ1 et la valeur N1 étant également transmises au dispositif utilisateur U2 via le dispositif de gestion E1, - the user device U 1 determines (F15), by means of its private key sk {U 1 }, a signature δ 1 of a message (M 1 ) function of pk {U 1 }, pk {U 2 }, A , A 1 , A 2 , A 3 , A 4 , A 5 and N 1 , where N 1 is a random value, the signature δ 1 and the value N 1 also being transmitted to the user device U 2 via the management system E 1 ,
- le dispositif utilisateur U2 détermine (F35), au moyen de sa clé privée sk{U2}, une signature δ2 d'un message (M2) fonction de pk{U1}, pk{L)2}, B, D, B1, B2, B3 et N2, où N2 est une valeur aléatoire, ainsi qu'une signature δ3 d'un message (M3) fonction de pk{U1}, pk{L)2}, B, D, C3, C4 et N3, où N3 est une valeur aléatoire, les signatures δ2, δ3 et les valeurs N2, N3 étant également transmises au dispositif utilisateur U1 via le dispositif de gestion E1, la signature δ1 étant vérifiée (F20) par le dispositif de gestion E1 avant sa transmission au dispositif utilisateur U2, ainsi que par ledit dispositif utilisateur U2 (F35) après transmission, et les signatures δ2 et δ3 étant vérifiées (F40) par le dispositif de gestion E1 avant leurs transmissions respectives au dispositif utilisateur U1, ainsi que par ledit dispositif utilisateur U1 (F45_2)après transmission, le procédé de calcul étant stoppé dès lors que le nombre de signatures non vérifiées atteint un seuil donné. - the user device U 2 determines (F 3 5), by means of its private key sk {U 2 }, a signature δ 2 of a message (M 2 ) function of pk {U 1 }, pk {L) 2 }, B, D, B 1 , B 2 , B 3 and N 2 , where N 2 is a random value, as well as a signature δ 3 of a message (M 3 ) function of pk {U 1 }, pk {L) 2 }, B, D, C 3 , C 4 and N 3 , where N 3 is a random value, the signatures δ 2 , δ 3 and the values N 2 , N 3 also being transmitted to the user device U 1 via the management device E 1 , the signature δ 1 being verified (F 2 0) by the management device E 1 before its transmission to the user device U 2 , as well as by said user device U 2 (F 3 5) after transmission , and the signatures δ 2 and δ 3 being verified (F40) by the management device E 1 before their respective transmissions to the user device U 1 , as well as by said user device U 1 (F45_ 2 ) after transmission, the calculation method being stopped as soon as the number of signat unverified ures reaches a given threshold.
[Revendication 4] Procédé de communication entre deux dispositifs utilisateurs U1, U2 au cours d'une session de communication mise en oeuvre via un réseau de communication géré par au moins un dispositif de gestion E1, ladite session de communication étant sécurisée au moyen d'une clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif utilisateur Ui, i allant de 1 à 2, étant associé à une clé publique pk{Ui} ainsi qu'à une clé privée sk{Ui}, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, une valeur publique W égale à g˄(sk{E3}sk{E4}) ayant été calculée par au moins un dispositif de récupération E3, E4, ladite clé de session étant calculée conformément à un procédé de calcul selon l'une quelconque des revendications 1 à 2. [Claim 4] Method of communication between two user devices U 1 , U 2 during a communication session implemented via a communication network managed by at least one management device E 1 , said communication session being secured to the means of a session key that can be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3 , E 4 , a user device Ui, i ranging from 1 to 2, being associated with a public key pk {Ui} as well as with a private key sk {Ui}, a device Ej, j ranging from 1 to 4, being associated with a public key pk { ej} and a private key sk {ej}, pk {Ej} being equal to g sk {Ej} where g is a generator of a group of prime order p, a public value W equal to g (sk {E 3 } sk {E 4 }) having been calculated by at least one recovery device E 3 , E 4 , said session key being calculated in accordance with to a calculation method according to any one of claims 1 to 2.
[Revendication 5] Procédé selon la revendication 4, dans lequel un dispositif utilisateur Ui, i allant de 1 à 2, est associé à une clé publique pk{Ui} ainsi qu'à une clé privée sk{Ui}, et dans lequel la clé de session est calculée conformément à un procédé de calcul selon la revendication 3. [Claim 5] A method according to claim 4, in which a user device Ui, i ranging from 1 to 2, is associated with a public key pk {Ui} as well as with a private key sk {Ui}, and in which the session key is calculated according to a calculation method according to claim 3 .
[Revendication 6] Procédé de récupération d'une clé de session au moyen de laquelle une session de communication entre deux dispositifs utilisateurs U1, U2 peut être sécurisée, ladite session de communication étant mise en oeuvre via un réseau de communication géré par au moins un dispositif de gestion E1, ledit procédé de récupération étant mis en oeuvre suite à au moins une demande de récupération de ladite clé de session autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, une valeur publique W égale à g˄(sk{E3}sk{E4}) ayant été calculée par au moins un dispositif de récupération E3, E4, et ladite clé de session étant calculée conformément à un procédé de calcul selon l'une quelconque des revendications 1 à 3, ledit procédé de récupération comportant des étapes de : [Claim 6] A method of recovering a session key by means of which a communication session between two user devices U 1 , U 2 can be secured, said communication session being implemented via a communication network managed by au at least one management device E 1 , said recovery method being implemented following at least one request for recovery of said session key authorized by an authorization device E 2 and emitted by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk {Ej} as well as with a private key sk {Ej}, pk {Ej} being equal to g sk {Ej} where g is a generator of a group of prime order p, a public value W equal to g (sk sk {E 3} {4} E) having been calculated by at least one recovery device E 3 , E 4 , and said session key being calculated in accordance with a calculation method according to any one of claims 1 to 3 , said recovery method comprising steps of:
- transmission (R10), par le dispositif de gestion E1, de la valeur D au dispositif d'autorisation E2 ainsi que de la valeur C4 au dispositif de récupération E3 si ladite au moins une demande de récupération est émise par ledit dispositif E3 et/ou de la valeur C3 au dispositif de récupération E4 si ladite au moins une demande de récupération est émise par ledit dispositif E4, - transmission (R10), by the management device E 1 , of the value D to the authorization device E 2 as well as of the value C 4 to the recovery device E 3 if said at least one recovery request is issued by said device E 3 and / or from the value C 3 to the recovery device E 4 if said at least one recovery request is sent by said device E 4 ,
- calcul ( R20), par le dispositif de gestion E1, d'une valeur T1 égale à D˄1sk{E1}) et transmise (R30) audit dispositif de récupération parmi deux dispositifs de récupération E3, E4, - calculation (R20), by the management device E 1, a value T 1 equal to D (1 α sk {E 1}) and transmitted (R30) to said recovery device of two recovery devices E 3, E 4 ,
- calcul (R40), par le dispositif d'autorisation E2, d'une valeur T2 égale à D˄2sk{E2}) et transmise (R50) audit dispositif de récupération parmi deux dispositifs de récupération E3, E4, - calculation (R40) by the authorization device E2, a value equal to T 2 D 2 {sk} E 2) and transmitted (R50) to said recovery device of two recovery devices E 3 , E 4 ,
- calcul (R60, R70), par ledit dispositif de récupération parmi deux dispositifs de récupération E3,- calculation (R60, R70), by said recovery device among two recovery devices E 3 ,
E4, d'une valeur T3 égale à C4 ˄((α34)sk{E3}) si la demande de récupération est émise par ledit dispositif E3 et/ou d'une valeur T4 égale à C3 ˄((α34)sk{E4}) si la demande de récupération est émise par ledit dispositif E4, E 4, of a value T equal to 3 C 4 ((α 3 + α 4) E {sk} 3) whether the retrieval request is issued by said device E 3 and / or T value equal 4 -C 3 ((α 3 + α 4) 4} E {sk) whether the retrieval request is issued by said E 4 device,
- calcul (R80, R90), par ledit dispositif de récupération parmi deux dispositifs de récupération E3,- calculation (R80, R90), by said recovery device from among two recovery devices E 3 ,
E4, d'une valeur K3 égale à T1 x T2 x T3 et/ou d'une valeur K4 égale à T1 x T2 x T4, les valeurs K3 et K4 correspondant à ladite clé de session récupérée. E 4 , with a value K 3 equal to T 1 x T 2 x T 3 and / or a value K 4 equal to T 1 x T 2 x T 4 , the values K 3 and K 4 corresponding to said key session retrieved.
[Revendication 7] Procédé selon la revendication 6, dans lequel, indépendamment du nombre de demande de récupération émise : [Claim 7] A method according to claim 6, wherein, regardless of the number of retrieval requests issued:
- la valeur C3 est également transmise par le dispositif de gestion E1 au dispositif de récupération E3, - the value C 3 is also transmitted by the management device E 1 to the recovery device E 3 ,
- la valeur C4 est également transmise par le dispositif de gestion E1 au dispositif de récupération E4. - the value C 4 is also transmitted by the management device E 1 to the recovery device E 4 .
[Revendication 8] Procédé selon l'une quelconque des revendications 6 à 7, dans lequel ladite clé de session est calculée conformément à un procédé de calcul selon la revendication 3 , et dans lequel : [Claim 8] A method according to any one of claims 6 to 7, wherein said session key is calculated according to a calculation method according to claim 3 , and wherein:
- le dispositif de gestion E1 transmet (R10), avant les calculs des valeurs T2 ainsi que T3 et/ou T4, les signatures δ1, δ2, δ3 ainsi que les valeurs A, A1, A2, A3, A4, A5, N1, B, B1, B2, B3, N2, N3 au dispositif d'autorisation E2 ainsi qu'au dispositif de récupération parmi deux dispositifs de récupération E3, E4 , - le dispositif d'autorisation E2 vérifie (R35) les signatures δ1, δ3 δ a2v,ant le calcul de la valeur T2,- the management device E 1 transmits (R10), before the calculations of the values T 2 as well as T 3 and / or T 4 , the signatures δ 1 , δ 2 , δ 3 as well as the values A, A 1 , A 2 , A 3 , A 4 , A 5 , N 1 , B, B 1 , B 2 , B 3 , N 2 , N 3 to the authorization device E 2 as well as to the recovery device among two recovery devices E 3 , E 4 , - the authorization device E 2 checks (R 3 5) the signatures δ 1 , δ 3 δ a 2 v, before calculating the value T 2 ,
- ledit dispositif de récupération parmi deux dispositifs de récupération E3, E4 vérifie (R55, R65) les signatures δ1, δ2, δ3 avant le calcul de la valeur T3 et/ou T4, le procédé de récupération étant stoppé dès lors que le nombre de signatures non vérifiées atteint un seuil donné. - said recovery device from among two recovery devices E 3 , E 4 verifies (R55, R65) the signatures δ 1 , δ 2 , δ 3 before calculating the value T 3 and / or T 4 , the recovery method being stopped when the number of unverified signatures reaches a given threshold.
[Revendication 9] Ensemble de programmes d'ordinateur comportant des instructions pour la mise en oeuvre d'un procédé de calcul d'une clé de session selon l'une quelconque des revendications 1 à 3 ou d'un procédé de communication selon l'une quelconque des revendications 4 à 5 ou d'un procédé de récupération selon l'une quelconque des revendications 6 à 8 lorsque ledit ensemble de programmes d'ordinateur est exécuté par un ou plusieurs ordinateurs. [Claim 9] Set of computer programs comprising instructions for implementing a method for calculating a session key according to any one of claims 1 to 3 or a communication method according to any one of claims 4 to 5 or a recovery method according to any one of claims 6 to 8 when said set of computer programs are executed by one or more computers.
[Revendication 10] Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un ensemble de programmes d'ordinateur selon la revendication 9 ou un programme d'ordinateur appartenant à un ensemble de programmes d'ordinateur selon la revendication 9. [Claim 10] A computer readable recording medium on which is recorded a set of computer programs according to claim 9 or a computer program belonging to a set of computer programs according to claim 9.
[Revendication 11] Dispositif utilisateur U1 pour le calcul d'une clé de session pour la sécurisation d'une session de communication entre ledit dispositif utilisateur U1 et un dispositif utilisateur U2, ladite session de communication étant mise en oeuvre via un réseau de communication géré par un dispositif de gestion E1, la clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, ledit dispositif utilisateur U1 comportant : [Claim 11] User device U 1 for calculating a session key for securing a communication session between said user device U 1 and a user device U 2 , said communication session being implemented via a network communication managed by a management device E 1 , the session key being the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3, E 4, a device Ej, j ranging from 1 to 4, associated with a public key pk {Ej} and a private key sk {Ej} pk {Ej} being equal to g sk {Ej } where g is a generator of a prime order group p, said user device U 1 comprising:
- un premier module de calcul, configuré pour calculer des valeurs A, A1, A2, A3, A4, A5 respectivement égales à g˄u, pk{E1}˄u, pk{E2}˄u, pk{E3}˄u, pk{E4}˄u, W˄u, u étant une valeur secrète du dispositif U1, et W étant une valeur publique calculée par au moins un dispositif de récupération E3, E4 et égale à g˄(sk{E3}sk{E4}), - a first calculation module configured to calculate values A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk {E 1} u, pk {S 2} u pk {3} E u, E pk {4} u, W u, u being a secret value U of the device 1, and W is a public value calculated by at least one recovery device E 3, E 4 and equal to g (sk sk {E 3} {4} E),
- un module de communication, configuré pour transmettre lesdites valeurs A, A1, A2, A3, A4, A5 au dispositif utilisateur U2 via le dispositif de gestion E1, ledit module de communication étant en outre configuré pour recevoir, en provenance du dispositif utilisateur U2 et via le dispositif de gestion E1, des valeurs B, B1, B2, B3, C3, C4, D calculées par ledit dispositif utilisateur U2 et respectivement égales à g˄v, pk{E1}˄v, pk{E2}˄v, W˄v, A3 ˄n, A4 ˄n, A˄n, v étant une valeur secrète du dispositif U2, - a communication module, configured to transmit said values A, A 1 , A 2 , A 3 , A 4 , A 5 to the user device U 2 via the management device E 1 , said communication module also being configured to receive , from the user U and device 2 via the management device E 1, the values B, B 1, B 2, B 3, C 3, C 4, D calculated by said U user device 2 and respectively equal to g v, pk {E 1} v, pk {S 2} v W v, a 3 n, a 4 n, a n, v being a secret value U device 2,
- un deuxième module de calcul, configuré pour calculer une valeur K1 égale à B1 ˄1u) x B2 ˄2U) x B3 ˄((α34)u) , où αm , m allant de 1 à 4, est une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à αm . - a second calculation module configured to calculate a value K equal to 1 B 1 1 u) x B 2 2 U) x B 3 ((α 3 + α 4) u), where α m , m ranging from 1 to 4, is a quantity function of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and a data associated with α m .
[Revendication 12 ] Dispositif utilisateur U2 pour le calcul d'une clé de session pour la sécurisation d'une session de communication entre ledit dispositif utilisateur U2 et un dispositif utilisateur U1, ladite session de communication étant mise en oeuvre via un réseau de communication géré par un dispositif de gestion E1, la clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, ledit dispositif utilisateur U2 comportant : [Claim 1 2 ] User device U 2 for calculating a session key for securing a communication session between said user device U 2 and a user device U 1 , said communication session being implemented via a communication network managed by a management device E 1 , the session key being the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3, E 4, a device Ej, j ranging from 1 to 4, associated with a public key pk {Ej} and a private key sk {Ej} pk {Ej} being equal to g sk { Ej} where g is a generator of a prime order group p, said user device U 2 comprising:
- un module de communication, configuré pour recevoir, en provenance du dispositif utilisateur U1 et via le dispositif de gestion E1, des valeurs A, A1, A2, A3, A4, A5 calculées par le dispositif utilisateur U1 et respectivement égales à g˄u, pk{E1}˄u, pk{E2}˄u, pk{E3}˄u, pk{E4}˄u, W˄u, u étant une valeur secrète du dispositif U1, et W étant une valeur publique calculée par au moins un dispositif de récupération E3, E4 et égale à g˄(sk{E3}sk{E4}), - a communication module, configured to receive, from the user device U 1 and via the management device E 1 , values A, A 1 , A 2 , A 3 , A 4 , A 5 calculated by the user device U 1 and respectively equal to g u, pk {E 1} u, pk {2} E u, E 3 {pk} u, pk {S 4} u, W u, u being a secret value U of the device 1, and W is a public value calculated by at least one recovery device E 3, E 4 and equal to g (sk sk {E 3} {4} E),
- un premier module de calcul, configuré pour calculer des valeurs B, B1, B2, B3, C3, C4, D respectivement égales à g˄v, pk{E1}˄v, pk{E2}˄v, W˄v, A3 ˄n, A4˄n, A˄n, v étant une valeur secrète du dispositif U2, ledit module de communication étant en outre configuré pour transmettre lesdites valeurs B, B1, B2, B3, C3, C4, D au dispositif U1 via l'entité de gestion E1, - a first calculation module configured to calculate B, B values 1, B 2, B 3, C 3, C 4, D respectively equal to v g, pk {E 1} v, pk {E2} v W v, a 3 n, a 4 n, a n, v being a secret value U 2 device, said communication module further being configured to transmit said values B, B 1, B 2, B 3 , C 3 , C 4 , D to the device U 1 via the management entity E 1 ,
- un deuxième module de calcul, configuré pour calculer une valeur K2 égale à A1 ˄1ν) x A2 ˄2ν) x A5 ˄((α34)ν), où αm , m allant de 1 à 4, est une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à αm . - a second calculation module configured to calculate a K value equal to 2 A 1 ν 1) x A 2 2 ν) x A 5 ((α 3 + α 4) ν), where α m , m ranging from 1 to 4, is a quantity function of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and of a data associated with α m .
[Revendication 13 ] Dispositif de gestion E1 d'un réseau de communication via lequel est destinée à être mise en oeuvre une session de communication entre deux dispositifs utilisateurs U1, U2, ladite session de communication étant sécurisée au moyen d'une clé de session pouvant faire l'objet d'au moins une demande de récupération autorisée par un dispositif d'autorisation E2 et émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à gsk{Ej} où g est un générateur d'un groupe d'ordre premier p, ledit dispositif de gestion E1 comportant un module de communication, configuré pour transmettre : [Claim 1 3 ] Management device E 1 of a communication network via which a communication session between two user devices U 1 , U 2 is intended to be implemented, said communication session being secured by means of a session key that can be the subject of at least one recovery request authorized by an authorization device E 2 and sent by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4, being associated with a public key pk {Ej} as well as a private key sk {Ej}, pk {Ej} being equal to g sk {E j } where g is a generator of a group of first order p, said management device E 1 comprising a communication module, configured to transmit:
- du dispositif utilisateur U1 vers le dispositif utilisateur U2, des valeurs A, A1, A2, A3, A4, A5 respectivement égales à g˄u, pk{E1}˄u, pk{E2}˄u, pk{E3}˄u, pk{E4}˄u, W˄u, u étant une valeur secrète du dispositif U1, et W étant une valeur publique calculée par au moins un dispositif de récupération E3, E4 et égale à g˄(sk{E3}sk{E4}), - the user device U 1 to U user device 2, the values A, A 1, A 2, A 3, A 4, A 5 respectively equal to g u, pk {E 1} u, pk {E 2 u}, {pk} u E 3, E 4} {pk u, W u, u being a secret value U of the device 1, and W is a public value calculated by at least one recovery device E 3 , E 4 and equal to g (sk sk {E 3} {4} E),
- du dispositif utilisateur U2 vers le dispositif utilisateur U1, des valeurs B, B1, B2, B3, C3, C4, D respectivement égales à g˄v, pk{E1}˄v, pk{E2}˄v, W˄v, A3 ˄n, A4 ˄n, A˄n, v étant une valeur secrète du dispositif U2, et comportant en outre : - from user device U 2 to user device U 1 , values B, B 1 , B 2 , B 3 , C 3 , C 4 , D respectively equal to v g, pk {E 1} v, pk {S 2} v W v, A 3 n, A 4 n, A n, v being a secret value U device 2 , and further comprising:
- un module de mémorisation, configuré pour mémoriser au moins C3, C4, D, - a storage module, configured to store at least C 3 , C 4 , D,
- un module de calcul, configuré pour calculer une valeur T1 égale à D˄1sk{E1}), où α1 est un hachage d'une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à α1, ledit module de communication étant en outre configuré pour transmettre : - a calculation module configured to calculate a value equal to D T 1 1 E sk {1}), where α 1 is a hash function of an amount of pk {E 1}, {pk} E 2 , pk {E 3 }, pk {E 4 } and data associated with α 1 , said communication module being further configured to transmit:
- la valeur D au dispositif d'autorisation E2 , - the value D to the authorization device E 2 ,
- la valeur C4 au dispositif E3 si ladite au moins une demande de récupération est émise par ledit dispositif E3 et/ou la valeur C3 au dispositif E4 si ladite au moins une demande de récupération est émise par ledit dispositif E4, the value C 4 to the device E 3 if said at least one recovery request is sent by said device E 3 and / or the value C 3 to the device E 4 if said at least one recovery request is sent by said device E 4 ,
- la valeur T1 audit dispositif de récupération parmi deux dispositifs de récupération E3, E4. - the value T 1 to said recovery device among two recovery devices E 3 , E 4 .
[Revendication 14] Dispositif d'autorisation E2 pour autoriser au moins une demande de récupération d'une clé de session pour la sécurisation d'une session de communication entre deux dispositifs utilisateurs U1, U2, ladite session de communication étant mise en oeuvre via un réseau de communication géré par un dispositif de gestion E1 et ladite au moins une demande de récupération étant émise par un dispositif de récupération parmi deux dispositifs de récupération E3, E4, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, ledit dispositif d'autorisation E2 comportant un module de communication, configuré pour : [Claim 14] Authorization device E 2 for authorizing at least one request for recovery of a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being put in work via a communication network managed by a management device E 1 and said at least one recovery request being sent by a recovery device from among two recovery devices E 3 , E 4 , a device Ej, j ranging from 1 to 4 , being associated with a public key pk {Ej} and a private key sk {Ej} pk {Ej} being equal to g sk {Ej} where g is a generator of a group of order prime p , said authorization device E 2 comprising a communication module, configured for:
- émettre, à destination dudit au moins un dispositif de récupération parmi deux dispositifs de récupération E3, E4, une autorisation de ladite au moins demande de récupération, - send, to said at least one recovery device from among two recovery devices E 3 , E 4 , an authorization of said at least recovery request,
- recevoir, en provenance du dispositif de gestion E1, une valeur D mémorisée par ledit dispositif de gestion E1 et égale à A˄n, A étant égale à g˄u, u et v étant des valeurs secrètes respectives des dispositifs utilisateurs U1 et U2, et comprenant en outre un module de calcul, configuré pour calculer une valeur T2 égale à D˄2Sk{E2}), où α2 est un hachage d'une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à α2, ledit module de communication étant en outre configuré pour transmettre ladite valeur T2 audit dispositif de récupération parmi deux dispositifs de récupération E3, E4. - receiving, from the management device 1 E, a value D stored by said management device E 1 and equal to A n, A being equal to u g, u and v being respective secret values user devices U 1 and U 2, and further comprising a calculation module, configured to calculate a value equal to T 2 D 2 {Sk} E 2), where α 2 is a hash function of an amount of pk {E 1 }, pk {E 2 }, pk {E 3 }, pk {E 4 } and data associated with α 2 , said communication module being further configured to transmit said value T 2 to said recovery device among two recovery devices E 3 , E 4 .
[Revendication 15] Dispositif de récupération E3, E4 apte à émettre une demande de récupération d'une clé de session pour la sécurisation d'une session de communication entre deux dispositifs utilisateurs U1, U2, ladite session de communication étant mise en oeuvre via un réseau de communication géré par un dispositif de gestion E1 et ladite au moins une demande de récupération étant autorisée par un dispositif d'autorisation E2, un dispositif Ej, j allant de 1 à 4, étant associé à une clé publique pk{Ej} ainsi qu'à une clé privée sk{Ej}, pk{Ej} étant égale à g˄sk{Ej} où g est un générateur d'un groupe d'ordre premier p, ledit dispositif de récupération E3, E4 comportant un module de communication configuré pour :[Claim 15] Recovery device E 3 , E 4 capable of sending a request for recovery of a session key for securing a communication session between two user devices U 1 , U 2 , said communication session being set. implemented via a communication network managed by a management device E 1 and said at least one recovery request being authorized by an authorization device E 2 , a device Ej, j ranging from 1 to 4, associated with a public key pk {Ej} and a private key sk {Ej} pk {Ej} being equal to g sk {Ej} where g is a generator of a first order group p, said recovery device E 3 , E 4 comprising a communication module configured for:
- émettre une demande de récupération de la clé de session, - issue a request to retrieve the session key,
- recevoir, en provenance du dispositif de gestion E1, une valeur T1 égale à D˄1sk{E1}), où α1 est un hachage d'une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à α1, ainsi qu'une valeur C3 égale à A3 ˄n ou une valeur C4 égale à A4 ˄n, A3 étant égale à pk{E3}˄u et A4 étant égale à pk{E4}˄u, u et v étant des valeurs secrètes respectives des dispositifs utilisateurs U1 et U2, - receiving, from the management device E 1, a value T 1 equal to D (1 α sk {E 1}), where α 1 is a hash function of an amount of pk {E 1}, {pk E 2}, {pk} E 3, E 4} {pk and data associated to α 1 and a value C equal to a 3 3 n or C 4 value equal to a 4 n, A 3 is equal to pk {E} u 3 and A 4 being equal to pk {E} u 4, u and v being respective secret values U user devices 1 and U 2,
- recevoir, en provenance du dispositif d'autorisation E2, une valeur T2 égale à D˄2sk{E2}), où α2 est un hachage d'une quantité fonction de pk{E1}, pk{E2}, pk{E3}, pk{E4} et d'une donnée associée à α2, ledit dispositif de récupération E3, E4 comportant en outre : - receiving from the E 2 authorization device, a value equal to T 2 D 2 {sk} E 2), where α 2 is a hash function of an amount of pk {E 1}, pk {E 2 }, pk {E 3 }, pk {E 4 } and data associated with α 2 , said recovery device E 3 , E 4 further comprising:
- un premier module de calcul, configuré pour calculer une valeur publique W égale à g˄(sk{E3}sk{E4}), - a first calculation module configured to calculate a public value W equal to g (sk sk {E 3} {4} E),
- un deuxième module de calcul, configuré pour calculer une valeur T3 égale à C4 ˄((α34)sk{E3}) si la valeur reçue en provenance du dispositif de gestion E1 parmi les valeurs C3 et C4 est ladite valeur C4 ou une valeur T4 égale à C3 ˄((α34)sk{E4}) si la valeur reçue en provenance du dispositif de gestion E1 parmi les valeurs C3 et C4 est ladite valeur C3, - a second calculation module configured to calculate a value equal to T 3 C 4 ((α 3 + α 4) sk {3} E) if the value received from the management device E 1 among the three values C and C 4 is said value C 4 or a value T equal to 4 C 3 ((α 3 + α 4) 4} E {sk) if the value received from the management device E 1 among the values C 3 and C 4 is said value C 3 ,
- un troisième module de calcul, configuré pour calculer une valeur K3 égale à T1 x T2 x T3 ou une valeur K4 égale à T1 x T2 x T4. a third calculation module, configured to calculate a value K 3 equal to T 1 x T 2 x T 3 or a value K 4 equal to T 1 x T 2 x T 4 .
[Revendication 16] Système de calcul d'une clé de session, ledit système comportant dispositif utilisateur U1 selon la revendication 11, un dispositif utilisateur U2 selon la revendication 12 ainsi qu'un dispositif de gestion E1 selon la revendication 13. [Claim 16] A system for calculating a session key, said system comprising user device U 1 according to claim 11, a user device U 2 according to claim 1 2 and a management device E 1 according to claim 1 3 .
[Revendication 17] Système pour la récupération d'une clé de session calculée par un dispositif utilisateur U1 selon la revendication 11 et également calculée par un dispositif utilisateur U2 selon la revendication 12, ledit système comportant un dispositif de gestion E1 selon la revendication 13, un dispositif d'autorisation E2 selon la revendication 14 et deux dispositifs de récupération E3, E4 selon la revendication 15. [Claim 17] System for the recovery of a session key calculated by a user device U 1 according to claim 11 and also calculated by a user device U 2 according to claim 1 2 , said system comprising a management device E 1 according to claim 1 3 , an authorization device E 2 according to claim 14 and two recovery devices E 3 , E 4 according to claim 15.
PCT/FR2021/050300 2020-02-19 2021-02-19 Method for calculating a session key, and method for recovering such a session key WO2021165625A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2001666A FR3107414A1 (en) 2020-02-19 2020-02-19 Method for calculating a session key, method for recovering such a session key
FRFR2001666 2020-02-19

Publications (1)

Publication Number Publication Date
WO2021165625A1 true WO2021165625A1 (en) 2021-08-26

Family

ID=71094473

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2021/050300 WO2021165625A1 (en) 2020-02-19 2021-02-19 Method for calculating a session key, and method for recovering such a session key

Country Status (2)

Country Link
FR (1) FR3107414A1 (en)
WO (1) WO2021165625A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907618A (en) * 1997-01-03 1999-05-25 International Business Machines Corporation Method and apparatus for verifiably providing key recovery information in a cryptographic system
WO2001022654A1 (en) * 1999-09-20 2001-03-29 Deutsche Telekom Ag Method of recovering a cryptographic session key
US6249585B1 (en) * 1998-04-08 2001-06-19 Network Associates, Inc Publicly verifiable key recovery

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995019672A2 (en) * 1994-01-13 1995-07-20 Bankers Trust Company Cryptographic system and method with key escrow feature
US5937066A (en) * 1996-10-02 1999-08-10 International Business Machines Corporation Two-phase cryptographic key recovery system
JP2000165373A (en) * 1998-11-25 2000-06-16 Toshiba Corp Enciphering device, cryptographic communication system, key restoration system and storage medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907618A (en) * 1997-01-03 1999-05-25 International Business Machines Corporation Method and apparatus for verifiably providing key recovery information in a cryptographic system
US6249585B1 (en) * 1998-04-08 2001-06-19 Network Associates, Inc Publicly verifiable key recovery
WO2001022654A1 (en) * 1999-09-20 2001-03-29 Deutsche Telekom Ag Method of recovering a cryptographic session key

Also Published As

Publication number Publication date
FR3107414A1 (en) 2021-08-20

Similar Documents

Publication Publication Date Title
EP1529369B1 (en) Method for secure data exchange between two devices
EP2819052B1 (en) Method and server for processing a request for a terminal to access a computer resource
EP3078155B1 (en) Method of updating a file tree stored on a storage server
EP2720199B1 (en) Secured method for controlling the opening of locking devices by means of messages using symmetric encryption
CA2221016C (en) Process for recovering keys implemented for highly encrypting messages
EP1829280A2 (en) Secured authentication method for providing services on a data transmission network
WO2019115943A1 (en) Technique for protecting a cryptographic key by means of a user password
WO2003107587A1 (en) Interface method and device for the on-line exchange of contents data in a secure manner
EP3965361B1 (en) Data exchange between a client and a remote device, for example a secure module
EP1949590A1 (en) Method for the secure deposition of digital data, associated method for recovering digital data, associated devices for implementing methods, and system comprising said devices
EP3917073A1 (en) Efficient secure session establishment for anonymity in 5g networks
WO2018130761A1 (en) Method for end-to-end transmission of a piece of encrypted digital information, application of this method and object implementing this method
EP4062584A1 (en) Secure method for data exchange between a terminal and a server
WO2021165625A1 (en) Method for calculating a session key, and method for recovering such a session key
WO2019228853A1 (en) Method for establishing keys for controlling access to a service or a resource
EP3857810B1 (en) Cryptographic method of secure comparison of two secret data x and y
WO2021074527A1 (en) Method for managing a public key database, method for authenticating public keys, and server device and client device implementing these methods
FR3071943B1 (en) CONTROL OF ACCESS TO A SERVICE
WO2023062095A1 (en) Method and device for transferring a communication from one base station to another
EP3340096B1 (en) Method for configuring a cryptographic program intended for being run by a terminal
WO2016156737A1 (en) Method for obtaining a list of at least one piece of sensitive data
WO2024153437A1 (en) Methods for signing data and providing signed data, and associated terminal and server
FR2763192A1 (en) Data transmission using encoded data, with encoding key recovery system
WO2007138229A2 (en) Method for secure access to an encrypted resource
WO2007101966A1 (en) Authenticating a computer device at user level

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21711616

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21711616

Country of ref document: EP

Kind code of ref document: A1