WO2021110518A1 - Procédé de cogénération d'un matériel cryptographique partagé, dispositifs, système et programme d'ordinateur correspondant - Google Patents

Procédé de cogénération d'un matériel cryptographique partagé, dispositifs, système et programme d'ordinateur correspondant Download PDF

Info

Publication number
WO2021110518A1
WO2021110518A1 PCT/EP2020/083427 EP2020083427W WO2021110518A1 WO 2021110518 A1 WO2021110518 A1 WO 2021110518A1 EP 2020083427 W EP2020083427 W EP 2020083427W WO 2021110518 A1 WO2021110518 A1 WO 2021110518A1
Authority
WO
WIPO (PCT)
Prior art keywords
cogeneration
shared
function
parameters
hazard
Prior art date
Application number
PCT/EP2020/083427
Other languages
English (en)
Inventor
Rémi GÉRAUD
Original Assignee
Banks And Acquirers International Holding
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 Banks And Acquirers International Holding filed Critical Banks And Acquirers International Holding
Priority to CA3163728A priority Critical patent/CA3163728A1/fr
Priority to US17/782,474 priority patent/US20230006812A1/en
Priority to EP20817192.6A priority patent/EP4070502A1/fr
Publication of WO2021110518A1 publication Critical patent/WO2021110518A1/fr

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/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]

Definitions

  • Disclosure relates to the area of encryption. More particularly, the disclosure relates to the generation of basic cryptographic materials, serving to secure data exchanged between two devices. Such situations can for example be encountered in the field of Internet of Things (IoT): smart metering, smart parking, health, environmental monitoring and other applications are typical examples of system requiring data encryption. While cost and energy efficiency are the main factors contributing to the popularity of commercial devices in the field of GIoT, security features are increasingly sought after.
  • the payment functions which are implemented either online or offline are also based on confidentiality of the data exchanged between the devices involved in the payment transaction itself, for example a smartphone and a payment terminal or else. a personal computer and a server of an online merchant.
  • a primality test makes it possible to determine this integer is prime or not, and we stop as soon as a prime number is obtained.
  • the prime number theorem ensures that a prime number is found after a reasonable number of tries.
  • the method requires the use of a rapid primality test.
  • a probabilistic test is implemented, such as the Miller-Rabin primality test or a variant of such a test. There is no guarantee that the number is really prime, but we only get a high probability that it is.
  • these operations are now integrated as standard in many devices and / or many code libraries and used as standard.
  • the aforementioned devices are equipped with chips which can implement data encryption protocols in an accelerated manner, making the latter more or less transparent for the system.
  • the mere description of the mathematical principles on which the algorithm is based is not sufficient.
  • the concrete implementation requires taking into account other parameters which are essential for safety.
  • the pair private key, public key
  • the pair must be generated by a truly random process, a process which, even if it had to be known, does not make it possible to reconstitute the private key.
  • a natural solution is to use an external device, such as an HSM or a remote server, to provide a random source. Since communication has a cost, only a random number ("seed") is usually provided, from which a pseudo-random bit sequence is derived. However, the transmission of this random number by the remote server itself uses an encryption algorithm which uses ... a random number. Thus, the solution consisting in using a remote device itself comes up against the necessary prior implementation of an encryption solution based on a random number which is of course generated on the device qualified as “unsecured”. Such a flaw, hardware, allows an attacker to capture (or infer or choose) the random number and obtain all the pseudo-random bits used by the device, which is of course not desirable.
  • the disclosure makes it possible to respond at least in part to the problems posed by the prior art. More particularly, the disclosure relates to a method of cogeneration of a shared cryptographic material, method implemented within a first electronic device, said first electronic device being connected to a second electronic cogeneration device and to a third device. cogeneration electronics.
  • Such a method comprises: a step of determining a shared encryption material, as a function of said set of ECG cogeneration parameters; a step of transmitting said shared encryption material; a step of receiving corresponding shared encryption material from other devices; a step of calculating a shared hazard, as a function of said shared encryption equipment and of said set of ECG cogeneration parameters; a step of transmitting a masked form of said shared hazard; a step of receiving masked forms of the corresponding shared hazards from the other devices; a step of calculating the final hazard, as a function of the masked forms of said shared hazards and of said set of ECG cogeneration parameters.
  • the step of determining the shared encryption material, as a function of said set of ECG cogeneration parameters comprises: a step of selecting, within a cyclic group G, a number sx, plus small than p; a step of calculating the shared encryption material by performing an operation of the number sx with the generator g of the group G.
  • the operation implemented is for example a multiplication or an exponentiation and it varies as a function of the group selected, which makes it possible to increase security.
  • the step of calculating the shared random, as a function of said shared encryption equipment and of said set of ECG cogeneration parameters comprises: a step of obtaining a random number rx; a step of calculating the shared random number rx from the random number rx and the shared encryption materials pkx, pky, pkz and a hash function H;
  • each participant uses the data provided by the other participants and by himself to generate a shared hazard.
  • the step of calculating the final hazard, as a function of the masked shapes of said shared hazards and of said set of ECG cogeneration parameters comprises: a step of adding the masked shapes; and a step of hashing, using a hash function H, the result of the previous addition, delivering the final randomness.
  • the cyclic group belongs to the group comprising: Curve25519; sec256p; head 25619;
  • said hash function belongs to the group comprising:
  • the cogeneration method further comprises a step of verifying the validity of the final hazard comprising a generation of a random number and a calculation of a hash value of a sum of said random number and the final hazard.
  • each device participating in cogeneration is able to verify that the other devices have the same final shared hazard.
  • the disclosure also relates to a cogeneration device for shared cryptographic material, a method implemented within a first electronic device, said first electronic device being connected to a second electronic cogeneration device and to a third electronic control device.
  • cogeneration Such a device comprises: means for determining a shared encryption material, as a function of said set of cogeneration parameters; means for transmitting said shared encryption material; means for receiving corresponding shared encryption material from other devices; means for calculating a shared hazard, as a function of said shared encryption equipment and of said set of cogeneration parameters; means for transmitting a masked form of said shared hazard; means for receiving, in masked form, the corresponding shared hazards coming from the other devices; means for calculating the final hazard, as a function of the masked forms of said shared hazards and of said set of cogeneration parameters.
  • Such a device can be in the form of a user communication terminal, provided with a general-purpose processor, not necessarily secure. It can also take the form of a “secure element” or equivalent, also present within (or connected to a) user communication terminal, comprising a secure processor. It can also take the form of a remote server. It can also take the form of a payment terminal or an authentication terminal, having secure data processing components.
  • the disclosure also relates to a cogeneration system of shared cryptographic material.
  • a cogeneration system of shared cryptographic material comprises at least three cogeneration devices as presented above, connected together. More particularly, in one embodiment, such a system can comprise a user communication terminal, provided with a general-purpose processor, not necessarily secure; a “secure element” or equivalent, also present within (or connected to) the user communication terminal, comprising a secure processor; a remote server, connected to the communication terminal.
  • These three devices each implement the method described above to result, within the framework of this system, in the generation of a definitive hazard as proposed.
  • the various steps of the methods according to the present disclosure are implemented by one or more software or computer programs, comprising software instructions intended to be executed by a data processor of an execution device according to the present technique and being designed to control the execution of the various steps of the methods, implemented at the level of the communication terminal, of the electronic execution device and / or of the remote server, within the framework of a distribution of the treatments to perform and determined by scripted source codes.
  • the present technique is also aimed at programs, capable of being executed by a computer or by a data processor, these programs comprising instructions for controlling the execution of the steps of the methods as mentioned above.
  • a program 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 any other. desirable shape.
  • the present technique is also aimed at an information medium readable by a data processor, and comprising instructions of a program as mentioned above.
  • the information medium can be any entity or device capable of storing the program.
  • the medium can include 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 mobile medium (memory card) or a hard disk or an SSD.
  • the information 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 program according to the present technique can in particular be downloaded from an Internet type network.
  • the information medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
  • the present technique is implemented by means of software and / or hardware components.
  • module can correspond in this document as well to a software component, as to a hardware component or to a set of hardware and software components.
  • a software component corresponds to one or more computer programs, one or more sub-programs of a program, or more generally to any element of a program or software capable of implementing a function or a set of functions, as described below for the relevant module.
  • Such a software component is executed by a data processor of a physical entity (terminal, server, gateway, set-top-box, router, etc.) and is capable of accessing the material resources of this physical entity (memories, recording media, communication bus, electronic input / output cards, user interfaces, etc.).
  • a hardware component corresponds to any element of a hardware set (or hardware) capable of implementing a function or a set of functions, according to what is described below for the module concerned. It may be a programmable hardware component or with an integrated processor for executing software, for example an integrated circuit, a smart card, a memory card, an electronic card for executing a firmware ( firmware), etc.
  • FIG 1 shows the general principle of the cogeneration process
  • FIG. 2 shows a particular embodiment of the cogeneration process of FIG. 1;
  • FIG. 3 illustrates a cogeneration device
  • the general principle of the present technique is based on the implementation of a tripartite generation of a random number.
  • a server is called upon which will be responsible for providing such a number, with however the risk that this number (or else the pseudo-random number derived from this number) is intercepted, thus rendering the use of such a remote server unnecessary and costly.
  • the proposed method overcomes this problem linked to the potential interception and / or manipulation of a random number which is generated remotely by a server. More particularly, a symmetrical method of cogeneration (in the creation sense) of a random number involving three (at least) data processing devices is proposed. The method described makes it possible to obtain a high quality random number while reducing or eliminating the risks of fraud or interception of this random number.
  • the present technique relates to a method of cogeneration of a shared cryptographic material, a method implemented within a first electronic device, said electronic device being connected to a second electronic cogeneration device by means of a communication network, said second electronic device also implementing the method of cogeneration of the shared cryptographic material, the method being characterized in that it is further implemented by a third electronic cogeneration device, connected to said first electronic device cogeneration system and said second electronic cogeneration device.
  • the cogeneration process is based on the common use, by the three devices which are part of the cogeneration, of a set of cogeneration parameters.
  • this set of parameters comprises in particular a cyclic group G (or a subgroup of a cyclic group), of generator g and of order p.
  • This set also includes a common hash function H.
  • This set of cogeneration parameters is denoted ECG.
  • ECG ECG cogeneration parameters
  • each part of the cogeneration implements an identical process. The object of this cogeneration is to overcome the possible deficiencies of one of the three devices, in order to ultimately obtain a high quality random number, without the risk of this number being exposed or manipulated.
  • the cogeneration is tripartite and that it is implemented by three electronic devices named respectively ⁇ A ⁇ , ⁇ B ⁇ and ⁇ C ⁇ .
  • the device ⁇ B ⁇ is a general public device in which there is no confidence in the quality of the random numbers that it generates. This does not mean that it is a poor quality generation device, but only that this device may possibly be subjected to external disturbances and / or to manipulations making its operation uncertain, and therefore to which we do not. don't trust, as a matter of principle.
  • the device ⁇ B ⁇ wishes to exchange, with the device ⁇ A ⁇ , data, in a confidential manner (that is to say that one wishes to encrypt the content of the exchanges from ⁇ A ⁇ to ⁇ B ⁇ and reciprocally.
  • ⁇ C ⁇ a third device ⁇ C ⁇ is involved, which is connected to ⁇ A ⁇ and ⁇ B ⁇ .
  • ⁇ A ⁇ and ⁇ C ⁇ are not subject to external disturbances, for example because ⁇ A ⁇ and ⁇ C ⁇ are remote, protected servers and they are out of reach of any disturbance , and / or because ⁇ A ⁇ and ⁇ C ⁇ are protected against external attacks and have hardware protection solutions making their monitoring or manipulation difficult or even impossible for an attacker.
  • the device ⁇ A ⁇ can be a remote server, for example a banking server or even a medical server, while the device ⁇ C ⁇ can be a server (also a banking server or a specific generation server) or even a server.
  • particular cogeneration device specifically dedicated to this task (it can be an independent device, integrated or connected to the device ⁇ A ⁇ or to the device ⁇ B ⁇ , such as for example a dedicated chip or even a USB dongle, well that such implementations are not privileged).
  • a trusted device ⁇ A ⁇ capable of generating high quality randomness (using any known high quality generation technique.
  • the method comprises several steps, some involving data exchanges between the three parties.
  • the following method is implemented by each device ( ⁇ A ⁇ , ⁇ B ⁇ , ⁇ C ⁇ ), and it comprises, for a device x , belonging to the set ( ⁇ A ⁇ , ⁇ B ⁇ , ⁇ C ⁇ ): a step of determining (P10) a shared encryption material (pkx), as a function of said set of ECG cogeneration parameters; a step of transmitting (P20) said of a shared encryption material (pkx); a step of receiving (P30) of the corresponding shared encryption materials (pky, pkz) coming from the other devices; a step of calculating (P40) of a shared hazard (mx), as a function of said shared encryption materials (pkx, pky, pkz) and of said set of ECG cogeneration parameters; a step of transmitting (P50) a masked form (Ox)
  • the method of the present technique makes it possible to ensure that even if ⁇ B ⁇ is compromised, the final hazard is of a sufficient quality to ensure a high efficiency of the encryption which will result from the use of this hazard.
  • the method of the present technique makes it possible to ensure that the hazard transmitted by the server complementary (which by analogy could be considered as the device ⁇ C ⁇ ) is not compromised, manipulated or intercepted and for good reason: in the present technique, the device ⁇ C ⁇ never transmits any random, but a masked form of 'a shared hazard, this masked form constituting, in the end, only one component of the final hazard. As understood, this masked form is not intended to be unmasked (i.e.
  • the initial hazard is masked (scrambled) to form a value which itself will be used to form the final shared hazard.
  • each participant ⁇ A ⁇ , ⁇ B ⁇ , ⁇ C ⁇
  • ⁇ A ⁇ , ⁇ B ⁇ , ⁇ C ⁇ is able to check that the final hazard is correct by comparing its own final hazard with the final hazard obtained by the other participants.
  • two of the participants ⁇ A ⁇ and ⁇ C ⁇ are secure (a priori), it is not possible a priori to deceive them.
  • the random value produced by ⁇ B ⁇ is really masked: the random value, which is masked, can therefore be initially equal to zero without any participant in the exchange being able to detect it (except the producer of this value of course). which would produce this "non-random" value (ie for example 0 or some other predetermined value) in an attempt to influence the randomness could not influence the randomness of the result.
  • this "non-random" value ie for example 0 or some other predetermined value
  • the process of the present technique has been described in general. Some steps of it are a function of the ECG cogeneration parameter set. In particular, it is not it is not always necessary to have a cyclic group in order to be able to implement the proposed technique, and other parameters can be used if they prove to be more suited to the concrete application situation.
  • the step of determining (P10) the shared encryption material (pkx), as a function of said set of ECG cogeneration parameters comprises: a step of selecting, within the cyclic group G (or a subgroup of the cyclic group G), of a number sx, smaller than p; a step of calculating the shared encryption material (pkx) by performing an operation of the number sx with the generator g of the group G;
  • the step of calculating (P40) of the shared random (mx), as a function of said shared encryption materials (pkx, pky, pkz) and of said set of ECG cogeneration parameters comprises: a step of obtaining a random number rx; a step of calculating the shared random number mx from the random number rx and the shared encryption materials pkx, pky, pkz and the hash function H;
  • this calculation follows a particular rule as a function of a rank that the device has in the set of devices.
  • hXY H (pkA, pkB, pkC, [sX] pkY).
  • the step of calculating (P70) of the final hazard (ad), as a function of the masked forms (Ox, Oy, Oz) of said shared hazards (mx, my, mz) and of said set of ECG cogeneration parameters comprises: a step of adding the masked forms (Ox, Oy, Oz); and a step of hashing, using the hash function H, the result of the previous addition, delivering the final random (ad).
  • ⁇ A] (trusted device) sends a random rT to ⁇ B ⁇ ;
  • ⁇ B ⁇ responds to ⁇ A ⁇ by transmitting the result Res of the calculation H (ad, rT);
  • ⁇ A ⁇ checks that H (ad, rT) matches the result H (ad, rT) that ⁇ B ⁇ transmitted.
  • any hash function can be used (SHA-1, MD5, etc.).
  • the use of the SHA-3 function in SHAKE128 mode in particular
  • the size of the output result for example 256 bits, which represents an advantage in the context of the calculation of the hazard.
  • this function it is possible to determine in advance what the size of the integer resulting from the hash will be and therefore to adapt this size, for example to the respective capacities of the devices. ⁇ A ⁇ and ⁇ B ⁇ in order to ensure a compromise between the need for security and the processing capacities, in particular of the device ⁇ B ⁇ .
  • the selected output size is 256 bits. This means that the final random has a length of 256 bits.
  • An electronic device capable of carrying out the hazard cogeneration treatment as presented above is presented.
  • An electronic device comprises a memory 31, a processing unit 32 equipped for example with a microprocessor, and controlled by a computer program 33, implementing the method as described above.
  • the present technique is implemented in the form of an application installed on this device.
  • Such a device comprises, depending on the embodiments: means for determining a shared encryption material, as a function of said set of cogeneration parameters; means for transmitting said shared encryption material; means for receiving corresponding shared encryption material from other devices; means for calculating a shared hazard, as a function of said shared encryption equipment and of said set of cogeneration parameters; means for transmitting a masked form of said shared hazard; means for receiving, in masked form, the corresponding shared hazards coming from the other devices; means for calculating the final hazard, as a function of the masked forms of said shared hazards and of said set of cogeneration parameters.
  • these means are implemented by means of modules and / or components, for example secure. They thus make it possible to keep confidential the data necessary for the definition of useful keys in a cryptosystem for data encryption.

Abstract

La divulgation se rapporte à un procédé de cogénération d'un matériel cryptographique partagé, procédé mis en œuvre au sein d'un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération. Un tel procédé comprend: - une étape de détermination (P10) d'un matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG; - une étape de transmission (P20) dudit d'un matériel de chiffrement partagé (pkx) - une étape de réception (P30) des matériels de chiffrement partagés (pky, pkz) correspondants en provenance des autres dispositifs; - une étape de calcul (P40) d'un alea partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG; - une étape de transmission (P50) d'une forme masquée (Ox) dudit alea partagé (mx); - une étape de réception (P60) de forme masquées (Oy, Oz) des aléas partagés (my, mz) correspondants en provenance des autres dispositifs; - une étape de calcul (P70) de l'aléa définitif (ad), en fonction des formes masquées (Ox, Oy,Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG.

Description

Titre : Procédé de cogénération d'un matériel cryptographique partagé, dispositifs, système et programme d'ordinateur correspondant
1. Domaine technique
La divulgation se rapporte au domaine du chiffrement. Plus particulièrement, la divulgation se rapporte à la génération de matériels cryptographiques de base, servant à sécuriser des données échangées entre deux dispositifs. De telles situations peuvent par exemple se rencontrer dans le domaine de l'Internet des objets (loT) : le comptage intelligent, le stationnement intelligent, la surveillance de la santé, de l'environnement et d'autres applications sont des exemples typiques de système nécessitant un chiffrement de données. Alors que le coût et l'efficacité énergétique sont les principaux facteurs qui contribuent à la popularité des appareils commerciaux dans le domaine de GIoT, les fonctionnalités de sécurité sont de plus en plus recherchées. Les fonctions de paiement, qui sont mises en oeuvre soit en ligne soit hors ligne reposent également sur une confidentialité des données échangées entre les dispositifs qui interviennent dans l'opération de paiement elle-même, par exemple un smartphone et un terminal de paiement ou encore un ordinateur personnel et un serveur d'un marchand en ligne.
2. Technique antérieure
Le chiffrement des échanges réalisées entre deux parties est une problématique vielle de plusieurs millénaires. Avec l'apparition des systèmes informatisés et le développement de théorie mathématiques adéquates, les techniques de chiffrement ont gagné en sécurité et en efficacité. Notamment, des cryptosystèmes complexes ont fait leur apparition, comme par exemple RSA (pour « Rivest, Shamir et Adleman. ») ont permis de sécuriser de nombreux systèmes à travers le monde. Avec l'évolution des technologies, de nombreux dispositifs sont équipés de capacités de chiffrement et de déchiffrement en utilisant des algorithmes efficaces, publiés et testés afin de garantir la confidentialité des échanges de données, souvent matériellement. C'est par exemple le cas de l'algorithme RSA 2048. Cependant, cet algorithme, comme d'autres, reposent sur la détermination de nombres aléatoires.
Plus particulièrement, pour RSA, la génération d'un couple de clefs (privée/publique) demande de choisir deux nombres premiers de grande taille, de façon qu'il soit calculatoirement impossible de factoriser leur produit (c'est-à-dire de déterminer, à partir de leur seul produit, les deux entiers qui ont été utilisés pour obtenir ce produit).
Pour déterminer un nombre premier de grande taille, on utilise un procédé qui fournit à la demande un entier impair aléatoire d'une taille suffisante : un test de primalité permet de déterminer ce nombre entier est premier ou non, et on s'arrête dès qu'un nombre premier est obtenu. Le théorème des nombres premiers assure que l'on trouve un nombre premier au bout d'un nombre raisonnable d'essais. La méthode requiert l'utilisation d'un test de primalité rapide. Ainsi, en règle générale un test probabiliste est mis en oeuvre, tel que le test de primalité de Miller- Rabin ou une variante d'un tel test. Rien ne garantit que le nombre soit réellement premier, mais on obtient uniquement une forte probabilité qu'il le soit. Typiquement, ces opérations sont désormais intégrées de manière standard dans de nombreux dispositif et/ou de nombreuses bibliothèques de codes et utilisées de manière standard. Ainsi, les dispositifs précités sont équipés de puces qui peuvent mettre en oeuvre de manière accélérée des protocoles de chiffrement de données, rendant celui-ci plus ou moins transparent pour le système.
Cependant, pour RSA ou d'autres cryptosystèmes, la seule description des principes mathématiques sur lesquels repose l'algorithme n'est pas suffisante. La mise en oeuvre concrète demande de tenir compte d'autres paramètres qui sont essentielles pour la sécurité. Par exemple le couple (clé privée, clé publique) doit être engendré par un procédé réellement aléatoire, procédé qui même s'il devait être connu, ne permet pas de reconstituer la clé privée.
Or, bien que les algorithmes cryptographiques de confidentialité et d'authenticité sont pris en charge matériellement sur une classe courante de périphériques, comme expliqué précédemment, il n'existe généralement pas, dans le matériel grand public, de prise en charge adéquate de la génération de nombres aléatoires (également appelé « seed » dans la littérature) : en effet, une protection de la prise en charge de la génération de nombres aléatoire nécessite d'appliquer des dispositifs matériels qui interviennent comme des boucliers rendant la génération des nombres aléatoires insensibles aux perturbations extérieures, ce qui coûte cher et est donc négligé par les fabricants. Ainsi, il est souvent possible de manipuler passivement (ou activement) la source embarquée de génération de nombres aléatoires, et ainsi possible de saper la sécurité fournie par des algorithmes cryptographiques (autrement) puissants. En d'autres termes, en modifiant la manière dont les nombres aléatoires sont produits, il est possible de réduire de manière importante la complexité des problèmes mathématiques sous-jacents à l'obtention de clés privées, et ainsi réduire ou anéantir l'efficacité d'un algorithme de chiffrement pourtant réputé efficace.
C'est typiquement la situation dans laquelle se trouvent les appareils mobiles grand public ou des dispositifs de l'IoT qui ne sont pas conçus pour la cryptographie. Ils n'incorporent pas de composants matériels ni de logiciels dédiés à la génération d'aléa de haute qualité. Au mieux, certains appareils haut de gamme sont équipés d'un « module de sécurité » dont la conception et les sources d'entropie sont généralement gardées secrètes et ne peuvent donc pas être auditées.
Une solution naturelle consiste à utiliser un périphérique externe, tel qu'un HSM ou un serveur distant, pour fournir une source aléatoire. Comme la communication a un coût, seule un nombre aléatoire (« seed ») est généralement fourni, à partir de duquel une séquence de bits pseudo-aléatoires est dérivée. Or la transmission de ce nombre aléatoire par le serveur distant utilise lui -même un algorithme de chiffrement qui utilise... un nombre aléatoire. Ainsi, la solution consistant à utiliser un dispositif distant se heurte elle-même à la nécessaire implémentation préalable d'une solution de chiffrement à base de nombre aléatoire qui est bien entendu généré sur le dispositif qualifié de « non sécurisé ». Une telle faille, matérielle, permet à un attaquant de capturer (ou d'inférer ou choisir) le nombre aléatoire et d'obtenir tous les bits pseudo-aléatoires utilisés par le périphérique, ce qui n'est bien sûr pas souhaitable.
Ainsi, pour établir un canal de communication sécurisé avec le périphérique consommateur, en premier lieu, des nombres aléatoires de haute qualité sont nécessaires. Il existe donc un besoin de fournir une méthode d'obtention d'un nombre aléatoire sécurisé qui permette d'obtenir des nombres aléatoires qualitatifs en toute sécurité.
3. Résumé de l'invention
La divulgation permet de répondre en partie au moins aux problématiques posées par l'art antérieur. Plus particulièrement, la divulgation se rapporte à un procédé de cogénération d'un matériel cryptographique partagé, procédé mis en oeuvre au sein d'un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération. Un tel procédé comprend : une étape de détermination d'un matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ECG ; une étape de transmission dudit d'un matériel de chiffrement partagé une étape de réception de matériels de chiffrement partagés correspondants en provenance des autres dispositifs ; une étape de calcul d'un aléa partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ECG ; une étape de transmission d'une forme masquée dudit aléa partagé ; une étape de réception de formes masquées des aléas partagés correspondants en provenance des autres dispositifs ; une étape de calcul de l'aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération ECG.
Ainsi, il est permis d'obtenir un aléa définitif de grande qualité (i.e. dont la probabilité qu'il soit aléatoire est très élevée) de manière simple et ce même si l'in des dispositifs participant à son élaboration est compromis.
Selon un mode de réalisation particulier, l'étape de détermination du matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ECG comprend : une étape de sélection, au sein d'un groupe cyclique G, d'un nombre sx, plus petit que p ; une étape de calcul du matériel de chiffrement partagé en effectuant une opération du nombre sx avec le générateur g du groupe G.
Ainsi, il est possible d'obtenir un matériel de chiffrement sécurisé. L'opération mise en oeuvre est par exemple une multiplication ou une exponentiation et elle varie en fonction du groupe sélectionné ce qui permet d'augmenter la sécurité.
Selon un mode de réalisation particulier, l'étape de calcul de l'aléa partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ECG comprend : une étape d'obtention d'un nombre aléatoire rx ; une étape de calcul de l'aléa partagé rx à partir du nombre aléatoire rx et des matériels de chiffrement partagés pkx, pky, pkz et d'une fonction de hachage H ;
Ainsi, chaque participant utilise les données fournies par les autres participants et par lui-même pour générer un aléa partagé.
Selon une caractéristique particulière, l'étape de calcul de l'aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération ECG comprend : une étape d'addition des formes masquées ; et une étape de hachage, à l'aide d'une fonction de hachage H, du résultat de l'addition précédente, délivrant m'aléa définitif.
Ainsi, aucun des participant ne peut influencer négativement (i.e. dans le sens d'une moindre sécurité) la génération de l'aléa définitif.
Selon un mode de réalisation particulier, le groupe cyclique appartient au groupe comprenant : Curve25519 ; sec256p ; head 25619 ;
Curve448.
Selon un mode de réalisation particulier ladite fonction de hachage appartient au groupe comprenant :
SHA-1 ;
MD5 ;
SHA-3, en mode SHAKE128 ;
Selon une caractéristique particulière, le Procédé de cogénération comprend en outre une étape de vérification de la validité de l'aléa définitif comprenant une génération d'un nombre aléatoire et un calcul d'une valeur de hachage d'une somme dudit nombre aléatoire et l'aléa définitif.
Ainsi, chaque dispositif participant à la cogénération est en mesure de vérifier que les autres dispositifs possèdent le même aléa définitif partagé.
La divulgation se rapporte également à un dispositif de cogénération d'un matériel cryptographique partagé, procédé mis en oeuvre au sein d'un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération. Un tel dispositif comprend : des moyens de détermination d'un matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ; des moyens de transmission dudit d'un matériel de chiffrement partagé des moyens de réception des matériels de chiffrement partagés correspondants en provenance des autres dispositifs ; des moyens de calcul d'un aléa partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ; des moyens de transmission d'une forme masquée dudit aléa partagé ; des moyens de réception de forme masquées des aléas partagés correspondants en provenance des autres dispositifs ; des moyens de calcul de l'aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération. Un tel dispositif peut se présenter sous la forme d'un terminal de communication d'utilisateur, muni d'un processeur généraliste, non nécessairement sécurisé. Il peut également prendre la forme d'un « secure element » ou équivalent, également présent au sein d'un (ou connecté à un) terminal de communication d'utilisateur, comprenant un processeur sécurisé. Il peut également prendre la forme d'un serveur distant. Il peut également prendre la forme d'un terminal de paiement ou d'un terminal d'authentification, disposant de composants de traitement de données sécurisés.
La divulgation se rapporte également à un système de cogénération d'un matériel cryptographique partagé. Un tel système comprend au moins trois dispositifs de cogénération tel que présentés précédemment connectés entre eux. Plus particulièrement, dans un mode de réalisation, un tel système peut comprendre un terminal de communication d'utilisateur, muni d'un processeur généraliste, non nécessairement sécurisé ; un « secure element » ou équivalent, également présent au sein du (ou connecté au) terminal de communication d'utilisateur, comprenant un processeur sécurisé ; un serveur distant, connecté au terminal de communication. Ces trois dispositifs mettent chacun en oeuvre le procédé précédemment décrit pour aboutir, dans le cadre de ce système, à la génération d'un aléa définitif tel que proposé.
Selon une implémentation préférée, les différentes étapes des procédés selon la présente divulgation sont mises en oeuvre par un ou plusieurs logiciels ou programmes d'ordinateur, comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un dispositif d'exécution selon la présente technique et étant conçu pour commander l'exécution des différentes étapes des procédés, mis en oeuvre au niveau du terminal de communication, du dispositif électronique d'exécution et/ou du serveur distant, dans le cadre d'une répartition des traitements à effectuer et déterminés par un codes source scripté.
En conséquence, la présente technique vise aussi des programmes, susceptibles d'être exécutés par un ordinateur ou par un processeur de données, ces programmes comportant des instructions pour commander l'exécution des étapes des procédés tel que mentionnés ci-dessus.
Un programme 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.
La présente technique vise aussi un support d'informations lisible par un processeur de données, et comportant des instructions d'un programme tel que mentionné ci-dessus.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. 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 un support mobile (carte mémoire) ou un disque dur ou un SSD.
D'autre part, le support d'informations 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. Le programme selon la présente technique peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
Selon un mode de réalisation, la présente technique est mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme "module" peut correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et logiciels.
Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Un tel composant logiciel est exécuté par un processeur de données d'une entité physique (terminal, serveur, passerelle, set-top-box, routeur, etc.) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc.).
De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, une carte à mémoire, une carte électronique pour l'exécution d'un micrologiciel (firmware), etc.
Chaque composante du système précédemment décrit met bien entendu en œuvre ses propres modules logiciels.
Les différents modes de réalisation mentionnés ci-dessus sont combinables entre eux pour la mise en œuvre de la présente technique. 4. Brève description des dessins
D'autres caractéristiques et avantages apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels :
La figure 1 expose le principe général du procédé de cogénération ;
La figure 2 expose un mode de réalisation particulier du procédé de cogénération de la figure 1 ;
La figure 3 illustre un dispositif de cogénération.
5. Description détaillée
Le principe général de la présente technique repose sur la mise en oeuvre d'une génération tripartite d'un nombre aléatoire. Comme explicité précédemment, en lien avec l'art antérieur, lorsque l'on souhaite obtenir un nombre aléatoire de qualité sur un dispositif d'utilisateur classique (de type smartphone, loT, etc.), on fait appel à un serveur qui va se charger de fournir un tel nombre, avec cependant le risque que ce nombre (ou bien que le nombre pseudo aléatoire dérivé de ce nombre) soit intercepté, rendant ainsi inutile et coûteux le recours à un tel serveur distant.
Le procédé proposé permet de surmonter ce problème lié à la potentielle interception et/ou manipulation d'un nombre aléatoire qui est généré à distance par un serveur. Plus particulièrement, il est proposé un procédé symétrique de cogénération (au sens création) d'un nombre aléatoire faisant intervenir trois dispositifs (au moins) de traitement de données. Le procédé décrit permet d'obtenir un nombre aléatoire d'une grande qualité tout en réduisant ou annulant les risques de fraude ou d'interception de ce nombre aléatoire.
Ainsi, la présente technique se rapporte à un procédé de cogénération d'un matériel cryptographique partagé, procédé mis en oeuvre au sein d'un premier dispositif électronique, ledit dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération par l'intermédiaire d'un réseau de communication, ledit deuxième dispositif électronique mettant également en oeuvre le procédé de cogénération du matériel cryptographique partagé, le procédé étant caractérisé en ce qu'il est en outre mis en oeuvre par un troisième dispositif électronique de cogénération, connecté audit premier dispositif électronique de cogénération et audit deuxième dispositif électronique de cogénération. Plus particulièrement, selon la présente technique, le procédé de cogénération est basé sur l'utilisation commune, par les trois dispositifs parties à la cogénération, d'un ensemble de paramètres de cogénération. Selon la présente technique, dans un mode de réalisation particulier, cet ensemble de paramètres comprend notamment un groupe cyclique G (ou un sous-groupe d'un groupe cyclique), de générateur g et d'ordre p. Cet ensemble comprend également une fonction de hachage commune H. Cet ensemble de paramètres de cogénération est noté ECG. Dans un mode de réalisation, général, en connaissance de ces paramètres de cogénération ECG, chaque partie à la cogénération met en oeuvre un procédé identique. L'objet de cette cogénération est de pallier les déficiences éventuelles d'un des trois dispositifs, pour au final, obtenir un nombre aléatoire de grande qualité, sans risque que ce nombre soit exposé ou manipulé.
Pour les besoins de l'exposé, on considère que la cogénération est tripartite et qu'elle est mise en oeuvre par trois dispositifs électroniques nommés respectivement {A}, {B} et {C}. On considère également que le dispositif {B} est un dispositif grand public auquel on n'accorde pas de confiance quant à la qualité des nombres aléatoire qu'il génère. Cela ne signifie pas qu'il s'agisse d'un dispositif de génération de mauvaise qualité, mais uniquement que ce dispositif peut éventuellement être soumis à des perturbations extérieures et/ou à des manipulations rendant son fonctionnement incertain, et donc auquel on n'accorde pas de confiance, par principe. On suppose également que le dispositif {B} souhaite échanger, avec le dispositif {A}, des données, de manière confidentielle (c'est-à-dire que l'on souhaite chiffrer le contenu des échanges de {A} vers {B} et réciproquement.
Dans le cadre de la présente technique, on fait donc intervenir un troisième dispositif {C}, qui est connecté à {A} et {B}. On considère que {A} et {C} ne sont pas soumis à des perturbations extérieures, par exemple parce que {A} et {C} sont des serveurs distants, protégés et qu'ils se trouvent hors d'atteinte d'éventuelles perturbation, et/ou parce que {A} et {C} sont protégés contre les attaques extérieures et disposent de solutions de protections matérielles rendant leur surveillance ou manipulation difficile voire impossible pour un attaquant.
Ainsi, le dispositif {A} peut être un serveur distant, par exemple un serveur bancaire ou encore un serveur médical, tandis que la dispositif {C} peut être un serveur (également un serveur bancaire ou un serveur de génération spécifique) ou encore un dispositif de cogénération particulier, spécifiquement dédié à cette tâche (il peut s'agir d'un dispositif indépendant, intégré ou connecté au dispositif {A} ou au dispositif {B}, comme par exemple une puce dédiée ou encore un dongle USB, bien que de telles mises en oeuvre ne soient pas privilégiées). En d'autres termes, dans le contexte de la présente invention, il existe deux dispositifs : un dispositif de confiance {A}, capable de générer un caractère aléatoire de haute qualité (en utilisant n'importe quelle technique de génération de haute qualité connue de l'homme du métier); et un autre dispositif {B}, capable d'effectuer toute opération déterministe mais auquel on n'accorde pas de crédit pour générer un caractère aléatoire de haute qualité. On considéré que ces dispositifs communiquent ensemble, mais on ne suppose pas qu'un canal sécurisé a déjà été établi entre eux. En effet, établir un tel canal nécessite généralement une source de qualité aléatoire de grande qualité ; ou nécessite que le périphérique {B} incorpore des clés secrètes cryptographiques. Le problème avec cette deuxième situation est que le stockage sécurisé de clés secrètes dans {B} peut être difficile, car dans le contexte des attaquants de type « boîte blanche », une telle clé peut être extraite. Avec les conceptions typiques à clé publique, la fuite d'une telle clé de déchiffrement annule immédiatement le schéma.
Ainsi, on propose de résoudre ce problème en introduisant un troisième dispositif de confiance {C} et un protocole tripartite permettant d'obtenir en toute sécurité sur un caractère aléatoire partagé.
Selon la présente technique, le procédé comprend plusieurs étapes, certaines impliquant des échanges de données entre les trois parties. Selon la présente technique, dans un mode de réalisation décrit en relation avec la figure 1, le procédé suivant est mis en oeuvre par chaque dispositif ({A}, {B}, {C}), et il comprend, pour un dispositif x, appartenant à l'ensemble ({A}, {B}, {C}) : une étape de détermination (P10) d'un matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG ; une étape de transmission (P20) dudit d'un matériel de chiffrement partagé (pkx) une étape de réception (P30) des matériels de chiffrement partagés (pky, pkz) correspondants en provenance des autres dispositifs ; une étape de calcul (P40) d'un aléa partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG ; une étape de transmission (P50) d'une forme masquée (Ox) dudit aléa partagé (mx) ; une étape de réception (P60) de forme masquées (Oy, Oz) des aléas partagés (my, mz) correspondants en provenance des autres dispositifs ; une étape de calcul (P70) de l'aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG.
Ainsi, à la différence du procédé classique, n'impliquant que deux dispositifs {A} et {B}, le procédé de la présente technique permet d'assurer que même si {B} est compromis, l'aléa définitif est d'une qualité suffisante pour permettre d'assurer une efficacité importante du chiffrement qui résultera de l'utilisation de cet aléa. De plus, à la différence de l'autre procédé classique, impliquant l'utilisation d'un serveur complémentaire transmettant directement un aléa au dispositif {B}, le procédé de la présente technique permet d'assurer que l'aléa transmis par le serveur complémentaire (qui par analogie pourrait être considéré comme le dispositif {C}) n'est pas compromis, manipulé ou intercepté et pour cause : dans la présente technique, le dispositif {C} ne transmet jamais d'aléa, mais une forme masqué d'un aléa partagé, cette forme masquée ne constituant, au final, qu'une composante de l'aléa définitif. Comme compris, cette forme masquée n'est pas destinée à être démasquée (c'est-à-dire pas destinée, pour le récipiendaire de la forme masquée, à obtenir la valeur initiale), puisque l'aléa est définitif est calculé en fonction des formes masquées, et non pas en fonction des aléas partagés. L'aléa initial est masqué (brouillé) pour former une valeur qui elle-même va être utilisée pour former l'aléa partagé final.
Par ailleurs, comme l'ensemble des dispositifs ({A}, {B}, {C}) participent à génération du même aléa définitif, chaque participant ({A}, {B}, {C}), est en mesure de vérifier que l'aléa définitif est correct en comparant son propre aléa définitif avec l'aléa définitif obtenu par les autres participants. Or comme deux des participants ({A} et {C}) sont sécurisés (a priori), il n'est pas possible à priori de tromper ceux-ci. On note par ailleurs qu'avec trois participants (ou plus), au moins l'un d'entre eux masque la valeur aléatoire produite par l'autre (i.e. dans le cas de trois participants, la valeur aléatoire produite par {B} est réellement masquée : la valeur aléatoire, qui est masquée, peut donc être initialement égale à zéro sans qu'aucun participant à l'échange ne puisse le détecter (sauf le producteur de cette valeur bien entendu). Dès lors, un intervenant mal intentionné, qui produirait cette valeur « non aléatoire » (i.e. par exemple 0 ou une autre valeur prédéterminée) pour tenter d'influencer l'aléa ne pourrait pas influencer le caractère aléatoire du résultat. Bien entendu, plus le nombre de participants est important, plus les chances d'obtenir un résultat non conforme diminuent.
Le procédé de la présente technique a été décrit d'une manière générale. Certaines étapes de celui-ci sont fonction de l'ensemble de paramètres de cogénération ECG. Notamment, il n'est pas toujours nécessaire de disposer d'un groupe cyclique pour pouvoir mettre en oeuvre la technique proposée, et d'autres paramètres peuvent être utilisés s'il s'avère qu'ils sont plus adaptés à la situation concrète d'application.
On décrit ci-après, en relation avec la figure 2, chaque étape de mise en oeuvre du procédé général présenté précédemment, dans un certain mode de réalisation.
L'étape de détermination (P10) du matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG comprend : une étape de sélection, au sein du groupe cyclique G (ou d'un sous-groupe du groupe cyclique G), d'un nombre sx, plus petit que p ; une étape de calcul du matériel de chiffrement partagé (pkx) en effectuant une opération du nombre sx avec le générateur g du groupe G ; L'opération en question peut être une opération additive ou une opération multiplicative, en fonction de la nature du groupe G. cette opération est notée, dans ce mode de réalisation entre crochets [] ; ainsi, pkx = [sx]g. L'étape de de calcul (P40) de l'aléa partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG comprend : une étape d'obtention d'un nombre aléatoire rx ; une étape de calcul de l'aléa partagé mx à partir du nombre aléatoire rx et des matériels de chiffrement partagés pkx, pky, pkz et de la fonction de hachage H ;
Dans ce mode de réalisation, ce calcul suit une règle particulière en fonction d'un rang que le dispositif possède dans l'ensemble de dispositifs.
Ainsi, le dispositif {A} calcule spécifiquement : mA = xA + hAB + hAC ;
Ainsi, le dispositif {B} calcule spécifiquement : mB = xB - hBA + hBC ;
Ainsi, le dispositif {B} calcule spécifiquement : mC = xC - hCA - hCB ;
Pour chacun de ces calculs spécifiques on définit hXY = H(pkA, pkB, pkC, [sX] pkY).
En fonctions des modes de réalisation, et du nombre de dispositifs impliqués, il est bien sur envisageable de définir d'autres expressions de l'aléa partagé mx.
Le calcul de la forme masquée (Ox) dudit aléa partagé (mx) est réalisée en effectuant une opération sur le groupe, comme pour le calcul du matériel de chiffrement partagé. Plus particulièrement, la forme masquée Ox = [mx]g. Toujours dans ce mode de réalisation, l'étape de calcul (P70) de l'aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG comprend : une étape d'addition des formes masquées (Ox, Oy, Oz) ; et une étape de hachage, à l'aide de la fonction de hachages H, du résultat de l'addition précédente, délivrant m'aléa définitif (ad).
Cet aléa définitif est donc bien la combinaison de l'ensemble des aléas précédemment obtenus, et on note que le procédé présenté est fabriqué de sorte que le résultat obtenu est H([xA + xB + xC]g) qui représente un aléa de la qualité escomptée. D'autres formes et mode de réalisation de ce protocole peuvent être envisagés, conduisant à un résultat similaire ou identique.
Ainsi, on évite d'utiliser des clés secrètes à long terme et des problèmes causés par un mauvaise aléa (seed). En outre, il est également possible pour (A) de vérifier que (B) a reçu le bon aléa (seed), car les deux dispositifs connaissent sa valeur. Par exemple, le protocole de connaissance zéro suivant peut être utilisé :
{A] (dispositif de confiance) envoie un aléa rT à {B} ;
{B} répond à {A} en transmettant le résultat Res du calcul H (ad, rT) ;
{A} vérifie que H (ad, rT) correspond au résultat H (ad, rT) que {B} a transmis.
Lorsque le résultat est identique, cela signifie que l'aléa définitif (ad) produit par {B} est identique à celui produit par {A}, et donc que cet aléa définitif est bien fonction d'un aléa de bonne qualité rC qui a été créé par {C}, sans que cet aléa rC n'ait subit de transformation, de malveillance ou d'usurpation. Ceci est particulièrement vrai puisque le protocole de connaissance zéro utilisé précédemment peut également être mis en oeuvre entre {A} et {C} afin de valider la connaissance définitif (ad) par {A} et {C}.
On note également, que selon la présente technique, il est avantageux de disposer de trois (ou plus) participants : l'un d'eux masque la valeur aléatoire produite par le dispositif (B). Ainsi, rB peut effectivement être nul dans le protocole ci-dessus, sans que cela n'affecte la qualité de la valeur aléatoire définitive (ad) obtenue à la fin du procédé.
A titre indicatif, une implémentation concrète de la technique précédemment décrite peut- être mise avec les groupes cycliques suivants : Curve25519 ; sec256p, head 25619, Curve448. Ces groupes permettent de générer des aléas de bonne qualité en accord avec la présente technique.
Par ailleurs, toute fonction de hachage peut être utilisée (SHA-1, MD5, etc.). Cependant, l'utilisation de la fonction SHA-3 (en mode SHAKE128 notamment) présente l'avantage de pouvoir sélectionner la taille du résultat de sortie, par exemple 256 bits, ce qui représente un avantage dans le cadre du calcul de l'aléa. En d'autres termes, avec l'utilisation de cette fonction, il est possible de déterminer, à l'avance quelle sera la taille de l'entier résultant du hachage et donc d'adapter cette taille, par exemple aux capacités respectives des dispositifs {A} et {B} afin d'assurer un compromis entre le besoin de sécurité et les capacités de traitement, notamment du dispositif {B}. Dans un mode de réalisation particulier, adapté à l'utilisation de terminaux de communication mobiles (de type smartphone), la taille de sortie sélectionnée est de 256bits. Cela signifie que l'aléa définitif possède une longueur de 256 bits.
On présente, en relation avec la figure 3, une architecture simplifiée d'un dispositif électronique apte à effectuer le traitement de cogénération d'aléa tel que présenté précédemment. Un dispositif électronique comprend une mémoire 31, une unité de traitement 32 équipée par exemple d'un microprocesseur, et pilotée par un programme d'ordinateur 33, mettant en oeuvre le procédé tel que précédemment décrit. Dans au moins un mode de réalisation, la présente technique est mise en oeuvre sous la forme d'une application installée sur ce dispositif. Un tel dispositif comprend, en fonction des modes de réalisation : des moyens de détermination d'un matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ; des moyens de transmission dudit d'un matériel de chiffrement partagé des moyens de réception des matériels de chiffrement partagés correspondants en provenance des autres dispositifs ; des moyens de calcul d'un aléa partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ; des moyens de transmission d'une forme masquée dudit aléa partagé ; des moyens de réception de forme masquées des aléas partagés correspondants en provenance des autres dispositifs ; des moyens de calcul de l'aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération.
Comme explicité précédemment, ces moyens sont mis en oeuvre par l'intermédiaire de modules et/ou de composants, par exemple sécurisés. Ils permettent ainsi de maintenir confidentielles les données nécessaires à la définition de clés utiles dans un cryptosystème pour le chiffrement de données.
PAGE LAISSÉE INTENTIONNELLEMENT
EN BLANC

Claims

Revendications
1. Procédé de cogénération d'un matériel cryptographique partagé, procédé mis en oeuvre au sein d'un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération, procédé caractérisé en ce qu'il comprend : une étape de détermination (P10) d'un matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG ; une étape de transmission (P20) dudit d'un matériel de chiffrement partagé (pkx) une étape de réception (P30) des matériels de chiffrement partagés (pky, pkz) correspondants en provenance des autres dispositifs ; une étape de calcul (P40) d'un aléa partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG ; une étape de transmission (P50) d'une forme masquée (Ox) dudit aléa partagé (mx) ; une étape de réception (P60) de forme masquées (Oy, Oz) des aléas partagés (my, mz) correspondants en provenance des autres dispositifs ; une étape de calcul (P70) de l'aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG
2. Procédé de cogénération selon la revendication 1 caractérisé en ce que l'étape de détermination (P10) du matériel de chiffrement partagé (pkx), en fonction dudit ensemble de paramètres de cogénération ECG comprend : une étape de sélection, au sein d'un groupe cyclique G, d'un nombre sx, plus petit que p ; une étape de calcul du matériel de chiffrement partagé (pkx) en effectuant une opération du nombre sx avec le générateur g du groupe G.
3. Procédé de cogénération selon la revendication 1 caractérisé en ce que l'étape de calcul (P40) de l'aléa partagé (mx), en fonction desdits matériels de chiffrement partagés (pkx, pky, pkz) et dudit ensemble de paramètres de cogénération ECG comprend : une étape d'obtention d'un nombre aléatoire rx ; une étape de calcul de l'aléa partagé rx à partir du nombre aléatoire rx et des matériels de chiffrement partagés pkx, pky, pkz et d'une fonction de hachage H ;
4. Procédé de cogénération selon la revendication 1 caractérisé en ce que l'étape de calcul (P70) de l'aléa définitif (ad), en fonction des formes masquées (Ox, Oy, Oz) desdits aléas partagés (mx, my, mz) et dudit ensemble de paramètres de cogénération ECG comprend : une étape d'addition des formes masquées (Ox, Oy, Oz) ; et une étape de hachage, à l'aide d'une fonction de hachage H, du résultat de l'addition précédente, délivrant m'aléa définitif (ad).
5. Procédé de cogénération selon la revendication 2 caractérisé en ce que le groupe cyclique G appartient au groupe comprenant :
Curve25519 ; sec256p ; head 25619 ;
Curve448.
6. Procédé de cogénération selon l'une des revendications 3 et 4 caractérisé en ce que ladite fonction de hachage appartient au groupe comprenant :
SHA-1 ;
MD5 ;
SHA-3, en mode SHAKE128 ;
7. Procédé de cogénération selon la revendication 1 caractérisé en ce qu'il comprend en outre une étape de vérification de la validité de l'aléa définitif (ad) comprenant une génération d'un nombre aléatoire et un calcul d'une valeur de hachage d'une somme dudit nombre aléatoire et l'aléa définitif.
8. Dispositif de cogénération d'un matériel cryptographique partagé, procédé mis en oeuvre au sein d'un premier dispositif électronique, ledit premier dispositif électronique étant connecté à un deuxième dispositif électronique de cogénération et à un troisième dispositif électronique de cogénération, dispositif caractérisé en ce qu'il comprend : Des moyens de détermination d'un matériel de chiffrement partagé, en fonction dudit ensemble de paramètres de cogénération ;
Des moyens de transmission dudit d'un matériel de chiffrement partagé
Des moyens de réception des matériels de chiffrement partagés correspondants en provenance des autres dispositifs ;
Des moyens de calcul d'un aléa partagé, en fonction desdits matériels de chiffrement partagés et dudit ensemble de paramètres de cogénération ;
Des moyens de transmission d'une forme masquée dudit aléa partagé ;
Des moyens de réception de forme masquées des aléas partagés correspondants en provenance des autres dispositifs ;
Des moyens de calcul de l'aléa définitif, en fonction des formes masquées desdits aléas partagés et dudit ensemble de paramètres de cogénération.
9. Système de cogénération d'un matériel cryptographique partagé caractérisé en ce qu'il comprend au moins trois dispositifs de cogénération selon la revendication 8, connectés entre eux.
10. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution d'un procédé de cogénération d'un matériel cryptographique partagé selon l'une des revendications 1 à 7, lorsqu'il est exécuté sur un ordinateur.
PCT/EP2020/083427 2019-12-05 2020-11-25 Procédé de cogénération d'un matériel cryptographique partagé, dispositifs, système et programme d'ordinateur correspondant WO2021110518A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CA3163728A CA3163728A1 (fr) 2019-12-05 2020-11-25 Procede de cogeneration d'un materiel cryptographique partage, dispositifs, systeme et programme d'ordinateur correspondant
US17/782,474 US20230006812A1 (en) 2019-12-05 2020-11-25 Method for cogenerating a shared cryptographic material, devices, system and corresponding computer program
EP20817192.6A EP4070502A1 (fr) 2019-12-05 2020-11-25 Procédé de cogénération d'un matériel cryptographique partagé, dispositifs, système et programme d'ordinateur correspondant

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1913816A FR3104356B1 (fr) 2019-12-05 2019-12-05 Procédé de cogénération d’un matériel cryptographique partagé, dispositifs, système et programme d’ordinateur correspondant
FRFR1913816 2019-12-05

Publications (1)

Publication Number Publication Date
WO2021110518A1 true WO2021110518A1 (fr) 2021-06-10

Family

ID=70456850

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/083427 WO2021110518A1 (fr) 2019-12-05 2020-11-25 Procédé de cogénération d'un matériel cryptographique partagé, dispositifs, système et programme d'ordinateur correspondant

Country Status (5)

Country Link
US (1) US20230006812A1 (fr)
EP (1) EP4070502A1 (fr)
CA (1) CA3163728A1 (fr)
FR (1) FR3104356B1 (fr)
WO (1) WO2021110518A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979794B2 (en) * 2015-09-17 2018-05-22 Ericsson Ab Entropy sharing in a large distributed system based on entropy verification by an entropy broker

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979794B2 (en) * 2015-09-17 2018-05-22 Ericsson Ab Entropy sharing in a large distributed system based on entropy verification by an entropy broker

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EWA SYTA ET AL: "Scalable Bias-Resistant Distributed Randomness", IACR, INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH, vol. 20170322:091634, 22 March 2017 (2017-03-22), pages 1 - 17, XP061022720, DOI: 10.1109/SP.2017.45 *
MARK MANULIS ET AL: "Modeling Leakage of Ephemeral Secrets in Tripartite/Group Key Exchange", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS,COMMUNICATIONS AND COMPUTER SCIENCES, ENGINEERING SCIENCES SOCIETY, TOKYO, JP, vol. E96-A, no. 1, 1 January 2013 (2013-01-01), pages 101 - 110, XP001581210, ISSN: 0916-8508, DOI: 10.1587/TRANSFUN.E96.A.101 *

Also Published As

Publication number Publication date
FR3104356A1 (fr) 2021-06-11
FR3104356B1 (fr) 2021-12-31
EP4070502A1 (fr) 2022-10-12
US20230006812A1 (en) 2023-01-05
CA3163728A1 (fr) 2021-06-10

Similar Documents

Publication Publication Date Title
EP3010177B1 (fr) Procédé d'authentification d'un dispositif client auprès d'un serveur à l'aide d'un élément secret
EP2345202B1 (fr) Procédé de signature numérique en deux étapes
WO2019088979A1 (fr) Chiffrement authentifié par seuil de plusieurs parties
EP2127197A2 (fr) Chiffrement broadcast base sur identite
EP1529369A1 (fr) Proc d d' change s curis d'informations entre deux dispositifs
FR2760583A1 (fr) Systeme de verification de cartes de donnees
FR2952778A1 (fr) Procede de transmission de donnees securise et systeme de chiffrement et de dechiffrement permettant une telle transmission
EP1151576A1 (fr) Procede cryptographique a cles publique et privee
FR2985127A1 (fr) Procede d'authentification entre un lecteur et une etiquette radio
FR3046274A1 (fr) Procede de transmission de donnees, procede de reception de donnees, dispositifs et programmes correspondants
FR3113800A1 (fr) Echange de données entre un client et un dispositif distant, par exemple un module sécurisé
EP3799350A1 (fr) Procédé de cryptage
EP2919412B1 (fr) Procédé et système de chiffrement/déchiffrement de données à clé distante et vérification préalable de jeton
WO2021110518A1 (fr) Procédé de cogénération d'un matériel cryptographique partagé, dispositifs, système et programme d'ordinateur correspondant
EP4012972A1 (fr) Méthode de divulgation sélective de données via une chaine de blocs
EP3526946B1 (fr) Procédé de chiffrement, procédé de déchiffrement, dispositif et programme d'ordinateur correspondant
WO1998051038A1 (fr) Generateur pseudo-aleatoire base sur une fonction de hachage pour systemes cryptographiques necessitant le tirage d'aleas
WO2008113952A2 (fr) Chiffrement base sur identite
EP3842970B1 (fr) Procédé de vérification du mot de passe d'un dongle, programme d'ordinateur, dongle et terminal utilisateur associés
FR3134908A1 (fr) Procédé et système de gestion des droits d’accès dans une transaction équitable de données numériques
FR3070517A1 (fr) Systeme et procede d'authentification et de signature numerique
FR3102024A1 (fr) Procédé de gestion d’une base de données de clés publiques, procédé d’authentification de clés publiques, et dispositifs serveur et client mettant en œuvre ces procédés
FR3029667A1 (fr) Procede d'encapsulation d'une cle de session
WO2007026092A1 (fr) Authentification anonyme et non tracable retroactivement d'un objet electronique par une entite d'authentification
WO2007138229A2 (fr) Procede d'acces securise a une ressource cryptee

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: 20817192

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 3163728

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020817192

Country of ref document: EP

Effective date: 20220705