[go: up one dir, main page]

FR3150380A1 - Method for determining an encrypted message, associated refreshing, extraction and aggregation method - Google Patents

Method for determining an encrypted message, associated refreshing, extraction and aggregation method Download PDF

Info

Publication number
FR3150380A1
FR3150380A1 FR2306351A FR2306351A FR3150380A1 FR 3150380 A1 FR3150380 A1 FR 3150380A1 FR 2306351 A FR2306351 A FR 2306351A FR 2306351 A FR2306351 A FR 2306351A FR 3150380 A1 FR3150380 A1 FR 3150380A1
Authority
FR
France
Prior art keywords
encrypted
message
polynomial
encrypted message
space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2306351A
Other languages
French (fr)
Inventor
Philippe CHARTIER
Michel Koskas
Mohammed LEMOU
Florian MÉHATS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ravel Tech
RAVEL TECHNOLOGIES
Original Assignee
Ravel Tech
RAVEL TECHNOLOGIES
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 Ravel Tech, RAVEL TECHNOLOGIES filed Critical Ravel Tech
Priority to FR2306351A priority Critical patent/FR3150380A1/en
Priority to PCT/EP2024/067450 priority patent/WO2024261248A1/en
Publication of FR3150380A1 publication Critical patent/FR3150380A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

L’invention concerne un procédé de détermination d’un message chiffré c(X) correspondant à une version chiffrée d’un message µ(X), le message µ(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans . Le procédé comprend une étape de chiffrement du message µ(X) par chiffrement totalement homomorphe, à partir d’une clé privée s(X), en le message chiffré c(X) se présentant sous la forme d’un polynôme appartenant à un espace , avec Tq[X] un espace de polynômes de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans et un polynôme cyclotomique d’ordre M, avec , t un nombre premier strictement supérieur à 3 et α un nombre entier non nul ou , avec ti des nombres premiers et αi des entiers non nuls, au moins l’un des nombres premiers ti étant strictement supérieur à 3. Figure à publier avec l’abrégé : Figure 1 The invention relates to a method for determining an encrypted message c(X) corresponding to an encrypted version of a message µ(X), the message µ(X) being in the form of a polynomial of degree less than or equal to N-1 whose coefficients have values in . The method comprises a step of encrypting the message µ(X) by totally homomorphic encryption, from a private key s(X), in the encrypted message c(X) being in the form of a polynomial belonging to a space , with Tq[X] a space of polynomials of degree less than or equal to N-1 whose coefficients have values in and a cyclotomic polynomial of order M, with , t a prime number strictly greater than 3 and α a non-zero integer or , with ti prime numbers and αi non-zero integers, at least one of the prime numbers ti being strictly greater than 3. Figure to be published with the abstract: Figure 1

Description

Procédé de détermination d’un message chiffré, procédé de rafraîchissement, d’extraction et d’agrégation associésMethod for determining an encrypted message, associated refreshing, extraction and aggregation method DOMAINE TECHNIQUE DE L’INVENTIONTECHNICAL FIELD OF THE INVENTION

La présente invention concerne de manière générale le domaine de la cryptographie homomorphe.The present invention relates generally to the field of homomorphic cryptography.

L’invention concerne plus particulièrement un procédé de détermination d’un message chiffré.The invention relates more particularly to a method for determining an encrypted message.

Elle concerne également des procédés de rafraîchissement, d’extraction et d’agrégation associés.It also relates to associated refreshing, extraction and aggregation processes.

Elle concerne enfin un dispositif de détermination d’un message chiffré et un système cryptographique comprenant un tel dispositif.Finally, it concerns a device for determining an encrypted message and a cryptographic system comprising such a device.

ARRIERE-PLAN TECHNOLOGIQUE DE L’INVENTIONTECHNOLOGICAL BACKGROUND OF THE INVENTION

La cryptographie homomorphe, qui permet d'effectuer des calculs ou des traitements sur des données chiffrées, sans les déchiffrer au préalable, a suscité beaucoup d'attention dernièrement.Homomorphic cryptography, which allows calculations or processing to be performed on encrypted data without first decrypting it, has attracted a lot of attention recently.

En effet, le traitement numérique de données personnelles est devenu omniprésent dans notre vie quotidienne. La protection de la confidentialité de ces données, et de la vie privée des individus concernés est donc devenue critique, car ces données personnelles ont tendance à circuler de plus en plus dans les environnements en systèmes digitaux utilisés au quotidien.Indeed, the digital processing of personal data has become omnipresent in our daily lives. Protecting the confidentiality of this data, and the privacy of the individuals concerned, has therefore become critical, as this personal data tends to circulate more and more in the digital systems environments used on a daily basis.

Dans ce contexte, les techniques de chiffrement et traitement homomorphes apparaissent comme une solution très prometteuse, car elles permettent de traiter des données tout en préservant de manière particulièrement sûre le caractère privé de ces données, ces dernières n'étant pas déchiffrées pendant leur traitement.In this context, homomorphic encryption and processing techniques appear to be a very promising solution, because they make it possible to process data while preserving the privacy of this data in a particularly secure manner, since the latter is not decrypted during processing.

Les méthodes de cryptographie homomorphe répondent donc, entre autres, à l’enjeu technique qui consiste à permettre :

  • à un serveur de services et traitements, externe, généralement distant, d’effectuer des opérations « en aveugle » sur des données chiffrées, sans les déchiffrer, ce serveur ne disposant d’ailleurs pas de la clef nécessaire pour déchiffrer les données,
  • les données, chiffrées, étant fournies par une autre entité, distincte (un client, au sens informatique), qui, elle, dispose de la clef de chiffrement.
Homomorphic cryptography methods therefore respond, among other things, to the technical challenge of enabling:
  • to an external, generally remote, service and processing server to perform “blind” operations on encrypted data, without decrypting it, this server not having the key necessary to decrypt the data,
  • the data, encrypted, being provided by another, distinct entity (a client, in the IT sense), which has the encryption key.

Ces opérations de traitement de données peuvent consister à effectuer des opérations individuelles, donnée par donnée, pour les mettre en forme ou les filtrer par exemple. Elles peuvent aussi concerner des opérations de comparaison entre données, de tri ou d’agrégation.These data processing operations may consist of performing individual operations, data by data, to format or filter them for example. They may also involve data comparison, sorting or aggregation operations.

La cryptographie homomorphe peut être basée sur le schéma de cryptage dit "apprentissage avec erreur" («learning with errors» ou LWE, selon l’appellation d’origine anglosaxonne couramment utilisée), dans lequel le message crypté est dérivé du message non crypté μ selon la formule suivante : b=μ+e+a.s, où :

  • s est une clé secrète,
  • a est un vecteur choisi au hasard, pour projeter la clé secrète s, et
  • e est une composante de bruit aléatoire, ajoutée à μ+a.s.
Homomorphic cryptography can be based on the so-called " learning with errors " ( LWE ) encryption scheme, in which the encrypted message is derived from the unencrypted message μ according to the following formula: b=μ+e+as, where:
  • s is a secret key,
  • a is a randomly chosen vector, to project the secret key s, and
  • e is a random noise component, added to μ+as

Pour décrypter le message, une personne possédant la clé secrète s peut calculer la quantité b-a.s (égale à μ+e), puis arrondir le résultat pour supprimer la composante de bruit e et retrouver le message μ. Bien entendu, le terme de bruit e doit être et rester suffisamment petit si l'on veut pouvoir récupérer le message μ.To decrypt the message, a person with the secret key s can calculate the quantity b-a.s (equal to μ+e), then round the result to remove the noise component e and recover the message μ. Of course, the noise term e must be and remain sufficiently small if the message μ is to be recovered.

Des opérations homomorphes, telles que par exemple l’addition de deux messages cryptés, sont mises en œuvre sur les messages cryptés afin de permettre leur traitement sans les déchiffrer. Ces opérations peuvent devenir particulièrement complexes lorsqu’il est question de traiter des messages sous la forme d’entiers longs.Homomorphic operations, such as the addition of two encrypted messages, are implemented on encrypted messages to allow their processing without decrypting them. These operations can become particularly complex when dealing with messages in the form of long integers.

Pour effectuer des opérations homomorphes sur un message (en clair) plus long, il est alors d’usage habituel de décomposer le message concerné en messages binaires (décomposition binaire classique). Chaque message binaire est crypté séparément et l'opération est ensuite effectuée, de manière homomorphe, bit par bit. Mais dans ce processus, il faut tenir compte de la retenue (chiffrée) résultant de chaque addition binaire, et propager cette retenue à l'opération binaire suivante. Il s'agit donc d'un processus en série, gourmand en temps. En outre, chaque opération binaire est effectuée de manière homomorphe, ce qui multiplie le nombre d'opérations homomorphes (et rend donc complexe la mise en œuvre complète de l’opération).To perform homomorphic operations on a longer (plaintext) message, it is then common practice to decompose the message concerned into binary messages (classical binary decomposition). Each binary message is encrypted separately and the operation is then performed, homomorphically, bit by bit. But in this process, it is necessary to take into account the (encrypted) carry resulting from each binary addition, and to propagate this carry to the next binary operation. It is therefore a serial process, consuming in time. In addition, each binary operation is performed homomorphically, which multiplies the number of homomorphic operations (and therefore makes the complete implementation of the operation complex).

Dans ce contexte, l’invention concerne une méthode de chiffrement homomorphe qui permet de traiter efficacement des messages plus longs que des messages binaires.In this context, the invention relates to a homomorphic encryption method which allows to efficiently process messages longer than binary messages.

L’invention concerne un procédé de détermination d’un message chiffré c(X) correspondant à une version chiffrée d’un message µ(X), le message µ(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans un espace avec p un nombre entier non nul, N étant un nombre entier non nul,
ledit procédé comprenant une étape de chiffrement du message µ(X) par chiffrement totalement homomorphe, à partir d’une clé privée s(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1, en le message chiffré c(X) se présentant sous la forme d’un polynôme appartenant à un espace , avecT q[X] un espace de polynômes de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans avec q un nombre entier non nul supérieur à p et un polynôme cyclotomique d’ordre M, avec , t un nombre premier strictement supérieur à 3 et α un nombre entier non nul ou , avec tides nombres premiers et αides entiers non nuls, au moins l’un des nombres premiers tiétant strictement supérieur à 3.
The invention relates to a method for determining an encrypted message c(X) corresponding to an encrypted version of a message µ(X), the message µ(X) being in the form of a polynomial of degree less than or equal to N-1 whose coefficients have values in a space with p a non-zero integer, N being a non-zero integer,
said method comprising a step of encrypting the message µ(X) by totally homomorphic encryption, from a private key s(X) in the form of a polynomial of degree less than or equal to N-1, in the encrypted message c(X) in the form of a polynomial belonging to a space , with T q [X] a space of polynomials of degree less than or equal to N-1 whose coefficients have values in with q a non-zero integer greater than p and a cyclotomic polynomial of order M, with , t a prime number strictly greater than 3 and α a non-zero integer or , with t i prime numbers and α i non-zero integers, at least one of the prime numbers t i being strictly greater than 3.

Ainsi, l’utilisation des polynômes cyclotomiques pour le message chiffré permet d’améliorer le traitement cryptographique de messages longs. En effet, le traitement homomorphe de messages longs est grandement facilité par les propriétés des polynômes cyclotomiques.Thus, the use of cyclotomic polynomials for the encrypted message allows to improve the cryptographic processing of long messages. Indeed, the homomorphic processing of long messages is greatly facilitated by the properties of cyclotomic polynomials.

D’une part, l’utilisation des polynômes cyclotomiques pour le message chiffré, en considérant un jeu de paramètres donné (c’est-à-dire avec des valeurs de p et t fixées) permet de considérer des messages longs, autres que sous forme binaire pour le traitement cryptographique homomorphe. D’autre part, dans le cas de messages de tailles usuelles, l’utilisation des polynômes cyclotomiques pour la détermination du message chiffré permet d’améliorer les performances des traitements cryptographiques (en particulier, d’améliorer la vitesse de mise en œuvre de ces traitements cryptographiques).On the one hand, the use of cyclotomic polynomials for the encrypted message, considering a given set of parameters (i.e. with fixed values of p and t) allows to consider long messages, other than in binary form for homomorphic cryptographic processing. On the other hand, in the case of messages of usual sizes, the use of cyclotomic polynomials for the determination of the encrypted message allows to improve the performance of cryptographic processing (in particular, to improve the speed of implementation of these cryptographic processings).

Selon cet aspect de l’invention, le chiffrement totalement homomorphe est mis en œuvre par une fonction de chiffrement polynômial à coefficients dans un espace défini par un toreT.According to this aspect of the invention, the fully homomorphic encryption is implemented by a polynomial encryption function with coefficients in a space defined by a torus T .

L’invention concerne également un procédé de de transformation d’un message chiffré c(X) déterminé selon le procédé introduit précédemment en un élément chiffré , ledit élément chiffré appartenant à un sous-espace de l’espace , comprenant une étape de détermination dudit élément chiffré par application d’une application linéaire au message µ(X), ladite application linéaire étant un opérateur trace défini de la manière suivante : , avec G un sous-ensemble des entiers compris entre 0 et M-1 et premiers avec M et des poids prédéfinis.The invention also relates to a method for transforming an encrypted message c(X) determined according to the method introduced previously into an encrypted element. , said encrypted element belonging to a subspace of space , comprising a step of determining said encrypted element by applying a linear application to the message µ(X), said linear application being a trace operator defined as follows: , with G a subset of the integers between 0 and M-1 and prime to M and predefined weights.

Ainsi, l’opérateur trace introduit permet de transformer le message chiffré, sans le déchiffrer. L’utilisation de l’opérateur trace permet par exemple de « nettoyer » le message chiffré (sans le déchiffrer) afin de ne conserver que certains termes utiles pour l’application visée.Thus, the trace operator introduced allows the encrypted message to be transformed, without decrypting it. Using the trace operator allows, for example, the encrypted message to be "cleaned" (without decrypting it) in order to keep only certain terms useful for the intended application.

L’invention concerne également un procédé de rafraîchissement du message chiffré c correspondant à une version chiffrée d’un message ρ, ledit message ρ étant défini dans le toreT, ledit procédé de rafraîchissement comprenant une étape de détermination d’un message chiffré rafraîchi c’, le message chiffré rafraîchi c’ comprenant une composante de bruit e’ plus petite qu’une composante de bruit e du message chiffré c, le message chiffré rafraîchi c’ étant déterminé sur la base d’un polynôme obtenu selon le procédé de détermination tel qu’introduit précédemment.The invention also relates to a method for refreshing the encrypted message c corresponding to an encrypted version of a message ρ, said message ρ being defined in the torus T , said refreshing method comprising a step of determining a refreshed encrypted message c', the refreshed encrypted message c' comprising a noise component e' smaller than a noise component e of the encrypted message c, the refreshed encrypted message c' being determined on the basis of a polynomial obtained according to the determination method as introduced previously.

Selon cet aspect de l’invention, l’étape de détermination du message chiffré rafraîchi c’ comprend une étape de calcul d’un coefficient d’ordre zéro du polynôme avec un polynôme de rafraîchissement fonctionnel appartenant à l’espace , avec , la notation correspondant à l’entier le plus proche du nombre x et la notation correspondant à l’opérateur modulo.According to this aspect of the invention, the step of determining the refreshed encrypted message c' comprises a step of calculating a zero-order coefficient of the polynomial with a functional refresh polynomial belonging to the space , with , the notation corresponding to the integer closest to the number x and the notation corresponding to the modulo operator.

L’invention concerne également un procédé d’extraction d’un élément chiffré homomorphe cβd’un message chiffré c(X) se présentant sous la forme d’un polynôme appartenant à l’espace , le message chiffré c(X) étant déterminé par un procédé de détermination tel qu’introduit précédemment, l’élément chiffré homomorphe cβétant obtenu par détermination du coefficient d’ordre 0 d’un polynôme , étant un polynôme cyclotomique d’ordre M, avec , t étant un nombre premier strictement supérieur à 3 et α un nombre entier non nul, étant un nombre entier non nul, ledit élément chiffré homomorphe cβcorrespondant à un élément chiffré d’une combinaison linéaire de coefficients du message µ(X).The invention also relates to a method for extracting a homomorphic encrypted element c β from an encrypted message c(X) in the form of a polynomial belonging to the space , the encrypted message c(X) being determined by a determination method as introduced previously, the homomorphic encrypted element c β being obtained by determining the coefficient of order 0 of a polynomial , being a cyclotomic polynomial of order M, with , t being a prime number strictly greater than 3 and α a non-zero integer, being a non-zero integer, said homomorphic encrypted element c β corresponding to an encrypted element of a linear combination of coefficients of the message µ(X).

Selon cet aspect de l’invention, le procédé d’extraction comprend une étape de détermination du nombre entier non nul β de manière à vérifier l’inégalité suivante : , ledit élément chiffré homomorphe cβcorrespondant à un élément chiffré d’un coefficient d’ordre β du message µ(X).According to this aspect of the invention, the extraction method comprises a step of determining the non-zero integer β so as to verify the following inequality: , said homomorphic encrypted element c β corresponding to an encrypted element of a coefficient of order β of the message µ(X).

L’invention concerne également un procédé d’agrégation d’une pluralité de messages chiffrés c(i), i étant un entier naturel, chaque message chiffré c(i)appartenant à un espaceT n+1, n étant un entier naturel non nul, chaque message chiffré c(i)correspondant à une version chiffrée d’un message µ(i)associé, ce chiffrement étant mis en œuvre par l’intermédiaire d’une clé de chiffrement privée s, le procédé d’agrégation comprenant des étapes de :
- détermination d’une clé chiffrée selon le procédé de détermination tel qu’introduit précédemment, et
- agrégation de ladite pluralité de messages chiffrés c(i)de manière à obtenir un message chiffré se présentant sous la forme d’un polynôme.
The invention also relates to a method for aggregating a plurality of encrypted messages c (i) , i being a natural integer, each encrypted message c (i) belonging to a space T n+1 , n being a non-zero natural integer, each encrypted message c (i) corresponding to an encrypted version of an associated message µ (i) , this encryption being implemented by means of a private encryption key s, the aggregation method comprising steps of:
- determination of an encrypted key according to the determination method as previously introduced, and
- aggregating said plurality of encrypted messages c (i) so as to obtain an encrypted message appearing in the form of a polynomial.

Selon cet aspect de l’invention, le message chiffré se présentant sous la forme d’un polynôme est déterminé sur la base d’un chiffrement polynômial à coefficients dans l’espace défini par le toreT.According to this aspect of the invention, the encrypted message appearing in the form of a polynomial is determined on the basis of a polynomial encryption with coefficients in the space defined by the torus T .

L’invention concerne en outre un dispositif de détermination d’un message chiffré c(X) correspondant à une version chiffrée d’un message µ(X), le message µ(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans un espace avec p un nombre entier non nul, N étant un nombre entier non nul,
le dispositif de détermination comprenant au moins un processeur et un dispositif de mémorisation, le processeur comprenant :
- un module de chiffrement du message µ(X) par chiffrement totalement homomorphe, à partir d’une clé privée s(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1, en le message chiffré c(X) se présentant sous la forme d’un polynôme appartenant à un espace , avecT q[X] un espace de polynômes de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans avec q un nombre entier non nul supérieur à p et un polynôme cyclotomique d’ordre M, avec , t un nombre premier strictement supérieur à 3 et α un nombre entier non nul ou , avec tides nombres premiers et αi des entiers non nuls, au moins l’un des nombres premiers tiétant strictement supérieur à 3.
The invention further relates to a device for determining an encrypted message c(X) corresponding to an encrypted version of a message µ(X), the message µ(X) being in the form of a polynomial of degree less than or equal to N-1 whose coefficients have values in a space with p a non-zero integer, N being a non-zero integer,
the determination device comprising at least one processor and a storage device, the processor comprising:
- a module for encrypting the message µ(X) by totally homomorphic encryption, from a private key s(X) in the form of a polynomial of degree less than or equal to N-1, in the encrypted message c(X) in the form of a polynomial belonging to a space , withT q[X] a space of polynomials of degree less than or equal to N-1 whose coefficients have values in with q a non-zero integer greater than p and a cyclotomic polynomial of order M, with , t a prime number strictly greater than 3 and α a non-zero integer or , with tiprime numbers and αi non-zero integers, at least one of the prime numbers tibeing strictly greater than 3.

L’invention concerne également un système cryptographique comprenant :
- un dispositif de détermination d’un message chiffré c(X) tel qu’introduit précédemment, et
- un serveur de traitement cryptographique configuré pour mettre en œuvre au moins une opération de traitement cryptographique sur le message chiffré c(X).
The invention also relates to a cryptographic system comprising:
- a device for determining an encrypted message c(X) as introduced previously, and
- a cryptographic processing server configured to implement at least one cryptographic processing operation on the encrypted message c(X).

L’invention concerne enfin un programme d’ordinateur comprenant des instructions exécutables par un processeur et conçues pour mettre en œuvre un procédé tel qu’introduit précédemment lorsque que ces instructions sont exécutées par ledit processeur.The invention finally relates to a computer program comprising instructions executable by a processor and designed to implement a method as introduced previously when these instructions are executed by said processor.

L’invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent.The invention and its various applications will be better understood by reading the description which follows and by examining the figures which accompany it.

BREVE DESCRIPTION DES FIGURESBRIEF DESCRIPTION OF THE FIGURES

D'autres caractéristiques et avantages de l'invention ressortiront clairement de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles :Other characteristics and advantages of the invention will emerge clearly from the description given below, for information purposes only and in no way limiting, with reference to the appended figures, among which:

représente schématiquement un exemple de système cryptographique conforme à l’invention, schematically represents an example of a cryptographic system in accordance with the invention,

représente, sous forme de logigramme, un exemple d’un procédé de détermination d’un message chiffré conforme à l’invention, represents, in the form of a flowchart, an example of a method for determining an encrypted message in accordance with the invention,

représente, sous forme de logigramme, un exemple d’un procédé d’extraction conforme à l’invention, represents, in the form of a flowchart, an example of an extraction method in accordance with the invention,

représente, sous forme de logigramme, un exemple d’un procédé d’agrégation conforme à l’invention, et represents, in the form of a flowchart, an example of an aggregation method in accordance with the invention, and

représente, sous forme de logigramme, un exemple d’un procédé de rafraîchissement conforme à l’invention. represents, in the form of a flowchart, an example of a refreshing method according to the invention.

DESCRIPTION DETAILLEEDETAILED DESCRIPTION

La présente invention vise à améliorer le traitement homomorphe des messages. Plus particulièrement, la présente invention concerne une méthode de chiffrement homomorphe qui permet ensuite d’effectuer des opérations sur des messages chiffrés sans les déchiffrer. Selon la présente invention, ces messages chiffrés sont associés à des messages en clair (i.e. des messages non chiffrés) dont chacun est plus long qu’un seul bit et qui sont traités, de manière homomorphe, sans être décomposés en messages binaires individuels.The present invention aims to improve the homomorphic processing of messages. More particularly, the present invention relates to a homomorphic encryption method which then makes it possible to perform operations on encrypted messages without decrypting them. According to the present invention, these encrypted messages are associated with plaintext messages (i.e. unencrypted messages) each of which is longer than a single bit and which are processed, in a homomorphic manner, without being broken down into individual binary messages.

Par définition dans la présente description, l’expression «message en clair», désigne un message non chiffré. Autrement dit, un message en clair peut être exploité (par exemple lors de sa transmission ou de sa mémorisation) sans nécessiter un recours à un déchiffrement, ni à une technique de traitement homomorphe.By definition in this description, the expression " plaintext message " means an unencrypted message. In other words, a plaintext message can be exploited (for example during its transmission or its storage) without requiring recourse to decryption, nor to a homomorphic processing technique.

Pour mettre en œuvre cette méthode, l’invention concerne tout d’abord un système cryptographique 1. La représente, de manière schématique, un exemple d’un tel système cryptographique 1.To implement this method, the invention firstly concerns a cryptographic system 1. The schematically represents an example of such a cryptographic system 1.

Comme cela est représenté sur cette figure, le système cryptographique 1 comprend une entité 2, un serveur de traitement cryptographique 3 et une entité destinataire 4.As shown in this figure, the cryptographic system 1 comprises an entity 2, a cryptographic processing server 3 and a recipient entity 4.

L’entité 2 est configurée pour chiffrer un ou des messages (et, éventuellement, pour collecter au préalable ces messages), avec une clé de chiffrement privée s. Cette entité 2 comprend par exemple un dispositif 2A de détermination d’un message chiffré c(X) tel que cela est décrit par la suite. Le dispositif 2A de détermination du message chiffré c(X) comprend par exemple un processeur et un dispositif de mémorisation (non représentés).The entity 2 is configured to encrypt one or more messages (and, optionally, to collect these messages beforehand), with a private encryption key s. This entity 2 comprises, for example, a device 2A for determining an encrypted message c(X) as described below. The device 2A for determining the encrypted message c(X) comprises, for example, a processor and a storage device (not shown).

Cette entité 2 est également configurée pour transmettre le ou les messages chiffrés correspondant au serveur de traitement cryptographique 3. Le ou les messages chiffrés transmis sont par exemple accompagnés d’une requête de traitement (à destination notamment du serveur de traitement cryptographique 3).This entity 2 is also configured to transmit the corresponding encrypted message(s) to the cryptographic processing server 3. The encrypted message(s) transmitted are for example accompanied by a processing request (in particular to the cryptographic processing server 3).

Pour cela, l’entité 2 comprend par exemple un ensemble de modules fonctionnels. Chacun des différents modules est par exemple réalisé au moyen d’instructions de programme d’ordinateur mémorisées dans une mémoire de l’entité 2 et conçues pour mettre en œuvre le module concerné lorsque ces instructions sont exécutées par un processeur de l’entité 2.For this purpose, the entity 2 comprises, for example, a set of functional modules. Each of the different modules is, for example, produced by means of computer program instructions stored in a memory of the entity 2 and designed to implement the module concerned when these instructions are executed by a processor of the entity 2.

En pratique, l’entité 2 est distincte du serveur de traitement cryptographique 3. Cette entité 2 par exemple une base de données externe, ou un client (au sens informatique).In practice, entity 2 is distinct from cryptographic processing server 3. This entity 2 is, for example, an external database, or a client (in the IT sense).

Le serveur de traitement cryptographique 3 est configuré pour effectuer des opérations de traitement (application de fonction, extraction, rafraîchissement, tri) sur le ou les messages chiffrés reçus. Ce traitement cryptographique est mis en œuvre de manière homomorphe, c’est-à-dire sans déchiffrement des messages. Le serveur de traitement cryptographique 3 ne dispose d’ailleurs pas de la clé de chiffrement privée s ayant servi à produire le ou les messages chiffrés, à partir d’un ou plusieurs messages en clair non chiffrés. En d’autres termes, le serveur de traitement cryptographique 3 est programmé pour mettre en œuvre de manière homomorphe différentes opérations de traitement.The cryptographic processing server 3 is configured to perform processing operations (function application, extraction, refreshing, sorting) on the encrypted message(s) received. This cryptographic processing is implemented homomorphically, i.e. without decryption of the messages. The cryptographic processing server 3 does not have the private encryption key s used to produce the encrypted message(s), from one or more unencrypted plaintext messages. In other words, the cryptographic processing server 3 is programmed to implement different processing operations homomorphically.

Le serveur de traitement cryptographique 3 comprend par exemple un module de communication, pour recevoir et/ou émettre des données (en pratique un ou des messages chiffrés), et un module de calcul, pour réaliser les opérations de traitement cryptographique homomorphe mentionnées plus haut.The cryptographic processing server 3 comprises, for example, a communication module, for receiving and/or transmitting data (in practice one or more encrypted messages), and a calculation module, for carrying out the homomorphic cryptographic processing operations mentioned above.

Les modules en question sont par exemple de la forme d’un circuit électronique dédié, tel qu’une carte de communication (pour le module de communication), ou un circuit de calcul cryptographique comprenant au moins un processeur ou un circuit programmable, et une mémoire (pour le module de calcul). Le serveur de traitement cryptographique 3 lui-même peut ainsi prendre la forme d’un dispositif électronique propre.The modules in question are for example in the form of a dedicated electronic circuit, such as a communication card (for the communication module), or a cryptographic calculation circuit comprising at least one processor or one programmable circuit, and a memory (for the calculation module). The cryptographic processing server 3 itself can thus take the form of its own electronic device.

En variante, les modules du serveur de traitement cryptographique peuvent aussi prendre chacun la forme d’un ensemble d’instructions dont l’exécution par un système informatique (par exemple par un ordinateur) conduit à la réalisation d’étapes de réception et/ou émission de données (pour le module de communication), ou de traitement de données (pour le module de calcul cryptographique). Le serveur de traitement cryptographique 3 peut en particulier prendre la forme de services informatiques délocalisés, disponibles, via un réseau de communication (par exemple via internet, ou via un intranet), dans une structure informatique délocalisée, par exemple de type « cloud » (structure délocalisée sur plusieurs dispositifs électroniques supports distincts, et distants les uns des autres, mis en réseau).Alternatively, the modules of the cryptographic processing server may also each take the form of a set of instructions whose execution by a computer system (for example by a computer) leads to the performance of steps of receiving and/or transmitting data (for the communication module), or of processing data (for the cryptographic calculation module). The cryptographic processing server 3 may in particular take the form of delocalized IT services, available, via a communication network (for example via the Internet, or via an intranet), in a delocalized IT structure, for example of the “cloud” type (delocalized structure on several separate electronic support devices, distant from each other, networked).

Un canal de communication 5 relie l’entité 2 et le serveur de traitement cryptographique 3. Il s’agit par exemple d’un canal de communication pour lequel les données transmisses sont susceptibles d’être interceptées. Il peut s’agir d’un canal de communication sans fil, ou de communication filaire.A communication channel 5 connects the entity 2 and the cryptographic processing server 3. This is, for example, a communication channel for which the transmitted data is likely to be intercepted. It may be a wireless communication channel, or a wired communication channel.

En pratique, l’entité 2 et le serveur de traitement cryptographique 3 peuvent être distants l’un de l’autre, par exemple être situés dans des bâtiments différents.In practice, entity 2 and cryptographic processing server 3 may be distant from each other, for example located in different buildings.

En variante, il peut aussi s’agir d’éléments appartenant à un même système informatique, par exemple au sein d’un même dispositif électronique (par exemple au sein d’un même ordinateur, ou d’un même dispositif électronique portatif).Alternatively, it may also be elements belonging to the same computer system, for example within the same electronic device (for example within the same computer, or the same portable electronic device).

Comme cela est représenté sur la , le système cryptographique 1 comprend également l’entité destinataire 4. Cette entité destinataire 4 est configurée pour recevoir le résultat du traitement cryptographique mis en œuvre, par le serveur de traitement cryptographique 3 (résultat qui est lui-même chiffré car le traitement réalisé est un traitement cryptographique homomorphe). L’entité destinataire 4 est ici distincte du serveur de traitement cryptographique 3.As shown in the , the cryptographic system 1 also comprises the recipient entity 4. This recipient entity 4 is configured to receive the result of the cryptographic processing implemented by the cryptographic processing server 3 (result which is itself encrypted because the processing carried out is a homomorphic cryptographic processing). The recipient entity 4 is here distinct from the cryptographic processing server 3.

Un canal de communication 6 relie le serveur de traitement cryptographique 3 et l’entité destinataire 4. Ce canal de communication 6 est configuré pour transmettre le résultat du traitement cryptographique depuis le serveur de traitement cryptographique 3 vers l’entité destinataire 4. Il s’agit par exemple d’un canal de communication pour lequel les données transmises sont susceptibles d’être interceptées. Il peut s’agit d’un canal de communication sans fil, ou de communication filaire.A communication channel 6 connects the cryptographic processing server 3 and the recipient entity 4. This communication channel 6 is configured to transmit the result of the cryptographic processing from the cryptographic processing server 3 to the recipient entity 4. This is for example a communication channel for which the transmitted data is likely to be intercepted. It may be a wireless communication channel, or a wired communication channel.

En variante, l’entité destinataire 4 peut être l’entité 2 elle-même, et les canaux de communication 5 et 6 peuvent former un même canal de communication bidirectionnel.Alternatively, the recipient entity 4 may be the entity 2 itself, and the communication channels 5 and 6 may form the same bidirectional communication channel.

La présente invention concerne tout d’abord un procédé de détermination d’un message chiffré c(X). Ce procédé de détermination est par exemple mis en œuvre par le dispositif 2A de détermination du message chiffré c(X) de l’entité 2 du système cryptographique 1. De manière générale, le procédé de détermination est mis en œuvre par ordinateur.The present invention firstly relates to a method for determining an encrypted message c(X). This determination method is for example implemented by the device 2A for determining the encrypted message c(X) of the entity 2 of the cryptographic system 1. Generally speaking, the determination method is implemented by computer.

La est un logigramme représentant un exemple de procédé de détermination du message chiffré c(X) mis en œuvre par le système cryptographique 1 décrit précédemment.There is a flowchart representing an example of a method for determining the encrypted message c(X) implemented by the cryptographic system 1 described above.

De manière générale, ce procédé de détermination vise à déterminer le message chiffré c(X) correspondant à une version chiffrée d’un message en clair µ(X).In general, this determination method aims to determine the encrypted message c(X) corresponding to an encrypted version of a plain message µ(X).

Comme le montre la figure 2, le procédé débute à l’étape E2, lors de laquelle l’entité 2 reçoit le message en clair µ(X). Ici, ce message en clair µ(X) se présente sous la forme d’un polynôme de degré inférieur ou égal à N-1 avec N un nombre entier non nul. Ce polynôme présente des coefficients dont les valeurs sont prises dans un espaceT p dit « tore discret », avec p un nombre entier non nul. Plus particulièrement, le tore discretT p est défini de la manière suivante : .As shown in Figure 2, the method begins at step E2, during which entity 2 receives the plaintext message µ(X). Here, this plaintext message µ(X) is in the form of a polynomial of degree less than or equal to N-1 with N a non-zero integer. This polynomial has coefficients whose values are taken in a space T p called a "discrete torus", with p a non-zero integer. More particularly, the discrete torus T p is defined as follows: .

Le procédé se poursuit ensuite à l’étape E4. Lors de cette étape, l’entité 2 reçoit une clé de chiffrement privée s(X). Cette clé de chiffrement privée s(X) est également un polynôme de degré inférieur ou égal à N-1. Les coefficients du polynôme représentant la clé de chiffrement privée s(X) sont à valeurs dans l’espace ℤ.The method then continues to step E4. In this step, entity 2 receives a private encryption key s(X). This private encryption key s(X) is also a polynomial of degree less than or equal to N-1. The coefficients of the polynomial representing the private encryption key s(X) have values in the space ℤ.

Il est important de noter ici que la clé de chiffrement privée s(X) n’est connue que de l’entité 2 (dans le système cryptographique 1). En particulier, cette clé de chiffrement privée s(X) n’est par exemple pas connue du serveur de traitement cryptographique 3 qui met en œuvre les différentes opérations de traitement sur le message chiffré c(X).It is important to note here that the private encryption key s(X) is known only to entity 2 (in cryptographic system 1). In particular, this private encryption key s(X) is not known, for example, to the cryptographic processing server 3 which implements the various processing operations on the encrypted message c(X).

Le procédé de détermination comprend ensuite l’étape E6 de détermination du message chiffré c(X). En d’autres termes, cette étape E6 correspond à une étape de chiffrement du message en clair µ(X), à partir de la clé de chiffrement privée s(X), de manière à déterminer le message chiffré c(X).The determination method then comprises step E6 of determining the encrypted message c(X). In other words, this step E6 corresponds to a step of encrypting the plaintext message µ(X), from the private encryption key s(X), so as to determine the encrypted message c(X).

De manière avantageuse selon l’invention, le chiffrement mis en œuvre lors de cette étape E6 est un chiffrement totalement homomorphe (ou FHE pour «Fully Homomorphic Encryption» selon l’appellation d’origine anglosaxonne couramment utilisée.Advantageously according to the invention, the encryption implemented during this step E6 is a fully homomorphic encryption (or FHE for “ Fully Homomorphic Encryption ” according to the commonly used Anglo-Saxon name).

Dans cette description, on entend par l’expression «chiffrement totalement homomorphe», un système de chiffrement qui permet d'exécuter, sans limitation sur le nombre d’exécutions, des fonctions analytiques directement sur des données chiffrées tout en obtenant les mêmes résultats chiffrés que si les fonctions étaient exécutées sur du texte en clair.In this description, the term " fully homomorphic encryption " means an encryption system that allows analytic functions to be performed directly on encrypted data without any limitation on the number of executions while obtaining the same encrypted results as if the functions were performed on plaintext.

De manière avantageuse selon l’invention, le message chiffré c(X) se présente sous la forme d’un polynôme appartenant à un espace défini de la manière suivante . L’espaceT q[X] est un espace de polynômes de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans le tore discret avec q un nombre entier non nul supérieur à p (introduit précédemment pour définir le tore discret utilisé pour les valeurs des coefficients du polynôme définissant le message en clair µ(X)).Advantageously according to the invention, the encrypted message c(X) is in the form of a polynomial belonging to a space defined as follows . The space T q [X] is a space of polynomials of degree less than or equal to N-1 whose coefficients have values in the discrete torus with q a non-zero integer greater than p (introduced previously to define the discrete torus used for the values of the coefficients of the polynomial defining the plaintext message µ(X)).

La notation désigne un polynôme cyclotomique d’ordre M. Par définition, et de manière connue, le polynôme cyclotomique d’ordre M correspond au polynôme unitaire dont les racines complexes sont exactement les racines primitives M-ièmes de l’unité.The rating denotes a cyclotomic polynomial of order M. By definition, and as is known, the cyclotomic polynomial of order M corresponds to the unitary polynomial whose complex roots are exactly the M-th primitive roots of unity.

Il est à noter que le degré du polynôme cyclotomique d’ordre M est égal à . Ce degré correspond au nombre d’entiers non négatifs inférieurs à M et premiers avec M. Le degré correspond alors à la fonction indicatrice d’Euler usuelle.It is worth noting that the degree of the cyclotomic polynomial of order M is equal to . This degree corresponds to the number of non-negative integers less than M and prime to M. The degree then corresponds to the usual Euler indicator function.

De manière avantageuse selon l’invention, l’ordre M est défini par , avec t un nombre premier strictement supérieur à 3 et α un nombre entier non nul ou , avec tides nombres premiers et αides entiers non nuls, au moins l’un des nombres premiers tiétant strictement supérieur à 3. Le symbole ∏ correspond à l’opération produit.Advantageously according to the invention, the order M is defined by , with t a prime number strictly greater than 3 and α a non-zero integer or , with t i prime numbers and α i non-zero integers, at least one of the prime numbers t i being strictly greater than 3. The symbol ∏ corresponds to the product operation.

Ainsi, l’utilisation des polynômes cyclotomiques pour le message chiffré permet d’améliorer le traitement cryptographique de messages longs. En effet, le traitement homomorphe (c’est-à-dire par application d’opérations homomorphes au message chiffré selon le procédé conforme à l’invention) de messages longs est grandement facilité par les propriétés des polynômes cyclotomiques.Thus, the use of cyclotomic polynomials for the encrypted message makes it possible to improve the cryptographic processing of long messages. Indeed, the homomorphic processing (i.e. by applying homomorphic operations to the encrypted message according to the method according to the invention) of long messages is greatly facilitated by the properties of cyclotomic polynomials.

D’une part, l’utilisation des polynômes cyclotomiques pour le message chiffré, en considérant un jeu de paramètres donné (c’est-à-dire avec des valeurs de p et t fixées) permet de considérer des messages longs, autres que sous forme binaire pour le traitement cryptographique homomorphe. D’autre part, dans le cas de messages de tailles usuelles, l’utilisation des polynômes cyclotomiques pour la détermination du message chiffré permet d’améliorer les performances des traitements cryptographiques (en particulier, d’améliorer la vitesse de mise en œuvre de ces traitements cryptographiques).On the one hand, the use of cyclotomic polynomials for the encrypted message, considering a given set of parameters (i.e. with fixed values of p and t) allows to consider long messages, other than in binary form for homomorphic cryptographic processing. On the other hand, in the case of messages of usual sizes, the use of cyclotomic polynomials for the determination of the encrypted message allows to improve the performance of cryptographic processing (in particular, to improve the speed of implementation of these cryptographic processings).

Dans un premier exemple préféré de mise en œuvre de la présente invention, l’ordre M est défini de la manière suivante : , avec t un nombre premier strictement supérieur à 3 et α un entier non nul. De préférence, le nombre premier t est supérieur à 23. Par exemple, le nombre premier t est égal à 31.In a first preferred example of implementation of the present invention, the order M is defined as follows: , with t a prime number strictly greater than 3 and α a non-zero integer. Preferably, the prime number t is greater than 23. For example, the prime number t is equal to 31.

Dans ce cas, la relation suivante est vérifiée :In this case, the following relationship holds:

. .

En pratique, le polynôme cyclotomique d’ordre M est défini ici (pour le cas ) de la manière suivante : . Par ailleurs, la relation suivante est vérifiée : .In practice, the cyclotomic polynomial of order M is defined here (for the case ) in the following manner: . Furthermore, the following relationship is verified: .

Par ailleurs, dans ce cas, le degré du polynôme cyclotomique est donné par : .Moreover, in this case, the degree of the cyclotomic polynomial is given by: .

Ce mode de réalisation est particulièrement intéressant car, l’utilisation d’un nombre premier t supérieur ou égal 3 et le choix d’une taille p de message qui coïncide avec t ( ), permet de s’affranchir de la condition de compatibilité mentionnée dans la suite (usuellement connue sous le nom de condition de néga-cyclicité dans le cas où ). L’absence de cette condition de compatibilité dans le cas de la présente invention permet, comme indiqué précédemment, d’améliorer le traitement cryptographique de messages plus longs (pour des paramètres donnés) ou d’améliorer les performances des traitements cryptographiques mis en œuvre sur les messages de tailles usuelles. De tels avantages ne peuvent pas être obtenus dans le cas où sans se restreindre uniquement au traitement de messages binaires ( ).This embodiment is particularly interesting because the use of a prime number t greater than or equal to 3 and the choice of a message size p which coincides with t ( ), allows to free oneself from the compatibility condition mentioned in the following (usually known under the name of nega-cyclicity condition in the case where ). The absence of this compatibility condition in the case of the present invention allows, as indicated above, to improve the cryptographic processing of longer messages (for given parameters) or to improve the performance of cryptographic processing implemented on messages of usual sizes. Such advantages cannot be obtained in the case where without being limited to the processing of binary messages ( ).

Par ailleurs, le fait que le degré du polynôme cyclotomique ( ) dépende des deux paramètres ( et ) permet de l’ajuster au mieux afin de cibler une valeur de sécurité de chiffrement plus adaptée. Cet avantage ne peut pas non plus être obtenu dans le cas où ou dans le cas où le degré est une puissance de 2. Cet ajustement des deux paramètres permet également d’améliorer les performances des traitements cryptographiques mis en œuvre.Furthermore, the fact that the degree of the cyclotomic polynomial ( ) depends on the two parameters ( And ) allows to adjust it as best as possible in order to target a more suitable encryption security value. This advantage cannot be obtained either in the case where or in the case where the degree is a power of 2. This adjustment of the two parameters also makes it possible to improve the performance of the cryptographic treatments implemented.

Dans un second exemple préféré de mise en œuvre de la présente invention, l’ordre M est défini de la manière suivante : , avec t1et t2des nombres premiers strictement supérieurs à 3 et α1, α2des entiers non nuls. De préférence, les nombres premiers t1et t2sont supérieurs à 23.In a second preferred example of implementation of the present invention, the order M is defined as follows: , with t 1 and t 2 prime numbers strictly greater than 3 and α 1 , α 2 non-zero integers. Preferably, the prime numbers t 1 and t 2 are greater than 23.

Dans ce cas, les relations suivantes sont vérifiées, avec t1et t2des nombres premiers distincts strictement supérieurs à 3 :In this case, the following relations hold, with t 1 and t 2 distinct prime numbers strictly greater than 3:

. .

En pratique, le chiffrement totalement homomorphe est mis en œuvre par application, au message en clair µ(X) (et avec l’utilisation de la clé de chiffrement privée s(X)), d’une fonction de chiffrement polynômial à coefficients dans l’espace défini par le tore T. En d’autres termes, le chiffrement totalement homomorphe est mis en œuvre par une fonction de chiffrement polynômial basé sur la méthode dite d’"apprentissage avec erreur" (LWE). Autrement dit encore, le chiffrement totalement homomorphe est mis en œuvre par application d’une fonction de type TRLWE (pour «Torus Ring Learning With Errors»).In practice, fully homomorphic encryption is implemented by applying, to the plaintext message µ(X) (and with the use of the private encryption key s(X)), a polynomial encryption function with coefficients in the space defined by the torus T. In other words, fully homomorphic encryption is implemented by a polynomial encryption function based on the so-called " learning with error " (LWE) method. In other words, fully homomorphic encryption is implemented by applying a TRLWE (for " Torus Ring Learning With Errors ") type function.

De manière avantageuse selon la présente invention, l’utilisation du polynôme cyclotomique d’ordre M permet d’exprimer de manière pratique le modulo (aussi noté dans la présente description).Advantageously according to the present invention, the use of the cyclotomic polynomial of order M makes it possible to express in a practical manner the modulo (also noted in this description).

On considère un polynôme de degré inférieur ou égal à M-1.We consider a polynomial of degree less than or equal to M-1.

Selon le premier exemple préféré introduit précédemment, avec , et en notant , l’expression suivante, correspondant au résultat du polynôme R modulo , est vérifiée :According to the first preferred example introduced previously, with , and noting , the following expression, corresponding to the result of the polynomial R modulo , is verified:

. .

Selon le deuxième exemple préféré introduit précédemment, avec , et en notant , l’expression suivante, correspondant au résultat du polynôme R modulo , est vérifiée :According to the second preferred example introduced previously, with , and noting , the following expression, corresponding to the result of the polynomial R modulo , is verified:

, avec un polynôme de degré . , with a polynomial of degree .

Dans le cas où α1= α2= 1, le polynôme s’exprime de la manière suivante :In the case where α 1 = α 2 = 1, the polynomial is expressed as follows:

. .

En pratique, les opérations de multiplication, , et de division par sont par exemple mises en œuvre directement. En variante, elles peuvent être mises en œuvre en utilisant une transformée de Fourier modulo .In practice, multiplication operations, , and division by are for example implemented directly. Alternatively, they can be implemented using a Fourier transform modulo .

Comme indiqué précédemment, le système cryptographique 1 (et plus particulièrement le serveur de traitement cryptographique 3) est configuré pour mettre en œuvre, de manière homomorphe, différentes opérations de traitement des messages chiffrés.As previously indicated, the cryptographic system 1 (and more particularly the cryptographic processing server 3) is configured to implement, in a homomorphic manner, different operations for processing encrypted messages.

Ces différentes opérations de traitement s’appuient toutes sur un outil commun, à savoir le procédé de détermination d’un message chiffré tel qu’introduit précédemment. Autrement dit, quelle que soit l’opération de traitement considérée, elle s’appuie sur un message chiffré déterminé selon le procédé décrit précédemment (c’est-à-dire un message chiffré défini à partir du polynôme cyclotomique d’ordre M, avec les propriétés définies précédemment).These different processing operations all rely on a common tool, namely the method for determining an encrypted message as introduced above. In other words, whatever the processing operation considered, it relies on an encrypted message determined according to the method described above (i.e. an encrypted message defined from the cyclotomic polynomial of order M, with the properties defined above).

Le système cryptographique 1 est par exemple configuré pour mettre en œuvre des opérations d’extraction, d’agrégation (ou «packing» selon la terminologie d’origine anglosaxonne couramment utilisée) et de rafraîchissement (ou «boostrapping» selon l’appellation d’origine anglosaxonne couramment utilisée) telles que décrites ci-après.The cryptographic system 1 is for example configured to implement extraction, aggregation (or “ packing ” according to the commonly used terminology of Anglo-Saxon origin) and refresh (or “ boostrapping ” according to the commonly used terminology of Anglo-Saxon origin) operations as described below.

Opération d’extractionExtraction operation

Cette opération de traitement vise à extraire un élément chiffré homomorphe cβassocié à un message chiffré c(X). Ce message chiffré c(X) est obtenu par la mise en œuvre du procédé de détermination décrit précédemment. En d’autres termes, le message chiffré c(X) se présente sous la forme d’un polynôme appartenant à l’espace précédemment introduit (les coefficients de ce polynôme étant à valeurs dansT q).This processing operation aims to extract a homomorphic encrypted element c β associated with an encrypted message c(X). This encrypted message c(X) is obtained by implementing the determination method described above. In other words, the encrypted message c(X) is in the form of a polynomial belonging to the space previously introduced (the coefficients of this polynomial having values in T q ).

β est défini comme un nombre entier non nul inférieur ou égal au degré du polynôme représentant le message chiffré c(X) (β est donc inférieur ou égal à N-1). Par convention dans la présente description, on note alors que si , (en d’autres termes, avec cette convention, on définit comme ).β is defined as a non-zero integer less than or equal to the degree of the polynomial representing the encrypted message c(X) (β is therefore less than or equal to N-1). By convention in this description, we then note that if , (in other words, with this convention, we define as ).

On considère ici le polynôme cyclotomique d’ordre M, avec , avec t un nombre premier strictement supérieur à 3 et α un nombre entier non nul.We consider here the cyclotomic polynomial of order M, with , with t a prime number strictly greater than 3 and α a non-zero integer.

La présente invention concerne ici un procédé d’extraction de l’élément chiffré homomorphe cβdu message chiffré c(X). La représente, sous forme de logigramme, un exemple d’un procédé d’extraction conforme à l’invention.The present invention relates here to a method for extracting the homomorphic encrypted element c β from the encrypted message c(X). The represents, in the form of a flowchart, an example of an extraction method in accordance with the invention.

Ce procédé d’extraction est par exemple mis en œuvre par le serveur de traitement cryptographique 3 du système cryptographique 1. De manière générale, le procédé d’extraction est mis en œuvre par ordinateur.This extraction method is for example implemented by the cryptographic processing server 3 of the cryptographic system 1. Generally speaking, the extraction method is implemented by computer.

Comme le montre la figure 3, le procédé d’extraction débute à l’étape E10. Lors de cette étape, le système cryptographique 1 (et plus particulièrement le serveur de traitement cryptographique 3) détermine un polynôme . La notation correspond à l’opérateur modulo.As shown in Figure 3, the extraction process begins at step E10. During this step, the cryptographic system 1 (and more particularly the cryptographic processing server 3) determines a polynomial . The notation corresponds to the modulo operator.

Le procédé d’extraction comprend ensuite l’étape E12. Lors de cette étape, le système cryptographique 1 détermine le coefficient d’ordre zéro du polynôme . L’élément chiffré homomorphe cβest en lien avec ce coefficient d’ordre zéro du polynôme .The extraction method then comprises step E12. During this step, the cryptographic system 1 determines the zero-order coefficient of the polynomial . The homomorphic encrypted element c β is related to this zeroth order coefficient of the polynomial .

Puis, le procédé d’extraction se poursuit à l’étape E14 lors de laquelle le système cryptographique 1 compare la quantité à la quantité . En particulier, le système cryptographique 1 évalue si la quantité est supérieure ou égale à la quantité .Then, the extraction process continues to step E14 during which the cryptographic system 1 compares the quantity to the quantity . In particular, cryptographic system 1 evaluates whether the quantity is greater than or equal to the quantity .

Si, à l’étape E14, le système cryptographique 1 identifie que la quantité est supérieure ou égale à la quantité , le procédé se poursuit à l’étape E16. Lors de cette étape E16, le système cryptographique 1 détermine l’élément chiffré homomorphe cβcomme correspondant à une combinaison linéaire de coefficients du message µ(X). En d’autres termes, le coefficient d’ordre zéro déterminé (à l’étape E12) correspond au résultat obtenu par chiffrement d’une combinaison linéaire de plusieurs coefficients du message µ(X).If, at step E14, the cryptographic system 1 identifies that the quantity is greater than or equal to the quantity , the method continues in step E16. In this step E16, the cryptographic system 1 determines the homomorphic encrypted element c β as corresponding to a linear combination of coefficients of the message µ(X). In other words, the zero-order coefficient determined (in step E12) corresponds to the result obtained by encryption of a linear combination of several coefficients of the message µ(X).

Ainsi, lors de cette étape E16, le système cryptographique 1 extrait, en tant qu’élément chiffré homomorphe cβ, cette combinaison linéaire (par l’intermédiaire du coefficient d’ordre zéro du polynôme ).Thus, during this step E16, the cryptographic system 1 extracts, as a homomorphic encrypted element c β , this linear combination (via the zero-order coefficient of the polynomial ).

Si à l’étape E14, le système cryptographique 1 identifie que la quantité est inférieure à la quantité , le procédé se poursuit à l’étape E18. Ici, le système cryptographique 1 identifie plus particulièrement que la quantité vérifie l’inégalité suivante : .If at step E14, the cryptographic system 1 identifies that the quantity is less than the quantity , the method continues at step E18. Here, the cryptographic system 1 identifies more particularly that the quantity verifies the following inequality: .

A l’étape E18, le système cryptographique 1 détermine alors l’élément chiffré homomorphe cβcomme correspondant à un élément chiffré du coefficient d’ordre β du message en clair µ(X) sur la base du coefficient d’ordre zéro du polynôme déterminé à l’étape E12. En d’autres termes, le coefficient d’ordre zéro déterminé correspond au résultat obtenu par chiffrement du coefficient d’ordre β du message en clair µ(X). Autrement dit encore, le système cryptographique 1 extrait, du message chiffré c(X) (par l’intermédiaire du coefficient d’ordre zéro du polynôme ), l’élément chiffré homomorphe cβcorrespondant au résultat obtenu par chiffrement du coefficient d’ordre β du message en clair µ(X).In step E18, the cryptographic system 1 then determines the homomorphic encrypted element c β as corresponding to an encrypted element of the coefficient of order β of the plaintext message µ(X) on the basis of the coefficient of order zero of the polynomial determined in step E12. In other words, the zero-order coefficient determined corresponds to the result obtained by encryption of the β-order coefficient of the plaintext message µ(X). In other words, the cryptographic system 1 extracts, from the encrypted message c(X) (via the zero-order coefficient of the polynomial ), the homomorphic encrypted element c β corresponding to the result obtained by encryption of the order coefficient β of the plaintext message µ(X).

En variante, dans le cas d’un nombre β quelconque, le procédé d’extraction fournit, en sortie, un élément chiffré de la combinaison linéaire : .Alternatively, in the case of any number β, the extraction method provides, as output, an encrypted element of the linear combination : .

Opération dOperation d ’agrégation'aggregation (ou «(Or " packingpacking »)»)

Cette opération d’agrégation vise à regrouper différents éléments chiffrés scalaires obtenus par une méthode connue de chiffrement homomorphe dans le toreT(ou chiffrement TLWE pour «Torus Learning With Errors») en un élément chiffré sous forme polynômiale (associé à un chiffrement TRLWE).This aggregation operation aims to group together different scalar encrypted elements obtained by a known method of homomorphic encryption in the torus T (or TLWE encryption for " Torus Learning With Errors ") into an encrypted element in polynomial form (associated with a TRLWE encryption).

La présente invention concerne alors un procédé d’agrégation mettant en œuvre l’application visée. La représente, sous forme de logigramme, un exemple de procédé d’agrégation conforme à l’invention.The present invention then relates to an aggregation method implementing the targeted application. represents, in the form of a flowchart, an example of an aggregation method in accordance with the invention.

Ce procédé d’agrégation est par exemple mis en œuvre par le serveur de traitement cryptographique 3 du système cryptographique 1. De manière générale, le procédé d’agrégation est mis en œuvre par ordinateur.This aggregation process is for example implemented by the cryptographic processing server 3 of the cryptographic system 1. Generally speaking, the aggregation process is implemented by computer.

Comme le montre la figure 4, le procédé débute à l’étape E20 lors de laquelle le système cryptographique 1 (et plus particulièrement le serveur de traitement cryptographique 3) reçoit une pluralité de messages chiffrés c(i), avec i un entier naturel défini tel que et .As shown in Figure 4, the method begins at step E20 during which the cryptographic system 1 (and more particularly the cryptographic processing server 3) receives a plurality of encrypted messages c (i) , with i a natural integer defined such that And .

Chaque message chiffré c(i)appartient à l’ensembleT n+1, n étant un entier naturel non nul (c’est-à-dire que ).Each encrypted message c (i) belongs to the set T n+1 , n being a non-zero natural integer (i.e. ).

En pratique, chaque message chiffré c(i)correspond au résultat du chiffrement homomorphe dans le toreT, d’un message en clair µ(i)scalaire correspondant. Ce chiffrement est mis en œuvre par l’intermédiaire d’une clé de chiffrement privée s définie dans l’espace (c’est-à-dire que ).In practice, each encrypted message c (i) corresponds to the result of the homomorphic encryption in the torus T , of a corresponding scalar plaintext message µ (i) . This encryption is implemented by means of a private encryption key s defined in the space (that is to say that ).

En d’autres termes, chaque message chiffré c(i)correspond à un chiffrement TLWE du message en clair µ(i)scalaire correspondant, à l’aide de la clé de chiffrement privée s.In other words, each encrypted message c (i) corresponds to a TLWE encryption of the corresponding scalar plaintext message µ (i) , using the private encryption key s.

Le procédé se poursuit ensuite à l’étape E22. Lors de cette étape, la clé de chiffrement privée s est chiffrée de manière homomorphe à l’aide d’une clé . La clé se présente sous la forme d’un polynôme de degré inférieur ou égal à N-1 appartenant à l’espace (avec le polynôme cyclotomique d’ordre M). Cette clé permet l’agrégation des différents messages chiffrés c(i)obtenus à l’aide d’un chiffrement TLWE en un élément chiffré sous forme polynômiale. En d’autres termes, cette clé sous forme polynômiale permet la mise en œuvre d’un chiffrement TRLWE.The method then continues to step E22. In this step, the private encryption key s is homomorphically encrypted using a key . The key is presented in the form of a polynomial of degree less than or equal to N-1 belonging to the space (with the cyclotomic polynomial of order M). This key allows the aggregation of the different encrypted messages c (i) obtained using a TLWE encryption into an encrypted element in polynomial form. In other words, this key in polynomial form allows the implementation of TRLWE encryption.

Comme le montre la figure 4, le procédé comprend ensuite l’étape E24 lors de laquelle une pluralité de messages chiffrés c(i)est regroupée sous la forme d’un polynôme de degré inférieur ou égal à N-1 de manière à obtenir un message chiffré se présentant sous la forme d’un polynôme. Ce polynôme chiffré de forme polynômiale est construit de telle manière à correspondre à un chiffrement polynômial à coefficients dans le toreT(chiffrement TRLWE) d’un message en clair se présentant sous forme polynômiale. Ce chiffrement TRLWE est mis en œuvre à l’aide de la clé chiffrée déterminée à l’étape E22. En d’autres termes, .As shown in Figure 4, the method then comprises step E24 during which a plurality of encrypted messages c (i) are grouped in the form of a polynomial of degree less than or equal to N-1 so as to obtain an encrypted message appearing in the form of a polynomial. This encrypted polynomial of polynomial form is constructed in such a way as to correspond to a polynomial encryption with coefficients in the torus T (TRLWE encryption) of a message in plaintext appearing in polynomial form. This TRLWE encryption is implemented using the encrypted key determined in step E22. In other words, .

Les coefficients sont définis dans l’ensemble {0, …, N-1}. La quantité L est une matrice destinée à modifier les messages en clair µ(i)scalaires de telle sorte que si une opération d’extraction (telle que décrite précédemment) est mise en œuvre après l’opération d’agrégation, le résultat obtenu correspond à un élément chiffré du message en clair µ(i)scalaire correspondant.The coefficients are defined in the set {0, …, N-1}. The quantity L is a matrix intended to modify the scalar µ (i) plaintext messages such that if an extraction operation (as described above) is implemented after the aggregation operation, the result obtained corresponds to an encrypted element of the corresponding scalar µ (i) plaintext message.

Dans le cas où , cette matrice L est par exemple un opérateur linéaire qui, aux éléments associe les éléments avec : , avec et .In case , this matrix L is for example a linear operator which, at the elements associates the elements with : , with And .

En pratique, on définit chaque message chiffré c(i)de la manière suivante : . On définit également avec , , et .In practice, we define each encrypted message c (i) as follows: . We also define with , , And .

Pour l’opération d’agrégation, une clé d’agrégation KPac est également définie : , avec , , . Cette clé d’agrégation KPac est construite de telle manière qu’elle permet d’obtenir le polynôme chiffré avec les propriétés recherchées (décrites précédemment).For the aggregation operation, an aggregation key KPac is also defined: , with , , . This KPac aggregation key is constructed in such a way that it allows obtaining the encrypted polynomial with the desired properties (described previously).

On utilise la notation suivante : .We use the following notation: .

Ainsi, la décomposition des composantes de l’élément s’écrit : avec un reste usuel associé à cette décomposition en base B. Ce reste vérifie .Thus, the decomposition of the components of the element is written: with a usual remainder associated with this decomposition in base B. This remainder verifies .

On obtient ensuite la relation suivante : .We then obtain the following relationship: .

De plus, par construction de la clé d’agrégation, la relation suivante peut être écrite : avec, la notation ATdésignant la transposée d’une matrice A quelconque (ici l’opérateur transposée est appliqué au vecteur ), et correspondant à une erreur de chiffrement de .Furthermore, by construction of the aggregation key, the following relation can be written: with the notation A T designating the transpose of any matrix A (here the transpose operator is applied to the vector ), And corresponding to an encryption error of .

Ainsi : .So : .

Par identification, il peut alors être déduit : et .By identification, it can then be deduced: And .

Ainsi, l’opération d’agrégation proposée selon l’invention est telle qu’elle permet, si une opération d’extraction est appliquée ensuite, d’aboutir directement au résultat à un élément chiffré correspondant au résultat du chiffrement d’un coefficient du message en clair.Thus, the aggregation operation proposed according to the invention is such that it allows, if an extraction operation is subsequently applied, to directly arrive at the result of an encrypted element corresponding to the result of the encryption of a coefficient of the clear message.

En variante, il est possible d’omettre la matrice L dans la définition du message . Dans ce cas, l’opération d’agrégation permet d’obtenir, si une opération d’extraction est appliquée ensuite, un élément chiffré de .Alternatively, it is possible to omit the L matrix in the message definition . In this case, the aggregation operation allows to obtain, if an extraction operation is subsequently applied, an encrypted element of .

OpérationOperation d’agrégation (« packing ») en utilisant lesaggregation (“packing”) using the opérateurs «operators " tracestraces »»

Cette autre opération d’agrégation vise à transformer un élément chiffré scalaire obtenu par une méthode connue de chiffrement homomorphe dans le toreT(ou chiffrement TLWE pour «Torus Learning With Errors») en un élément chiffré sous forme polynômiale (associé à un chiffrement TRLWE), en utilisant les opérateurs traces.This other aggregation operation aims to transform a scalar encrypted element obtained by a known method of homomorphic encryption in the torus T (or TLWE encryption for " Torus Learning With Errors ") into an encrypted element in polynomial form (associated with a TRLWE encryption), using the trace operators.

Un opérateur trace (également appelé « trace » dans cette description) est une transformation linéaire sur les polynômes, de la forme :A trace operator (also called "trace" in this description) is a linear transformation on polynomials, of the form:

, avec un polynôme défini dans l’espace , G un sous-ensemble des entiers compris entre 0 et M-1 et des poids prédéfinis. La notation correspond, dans la présente description, à l’opérateur trace. En variante, le sous-ensemble G peut être défini sur la base d’entiers compris entre 0 et M-1 et premiers avec M. , with a polynomial defined in space , G a subset of the integers between 0 and M-1 and predefined weights. The notation corresponds, in the present description, to the trace operator. Alternatively, the subset G can be defined on the basis of integers between 0 and M-1 and prime with M.

Les poids et le sous-ensemble G dépendent de la transformation voulue du polynôme P. Ici, on désire obtenir un chiffrement du polynôme P transformé obtenu. Le chiffrement de ce résultat obtenu par la transformation du polynôme P se fait de manière homomorphe, à partir de l’expression de la trace indiquée précédemment.The weights and the subset G depend on the desired transformation of the polynomial P. Here, we want to obtain an encryption of the transformed polynomial P obtained. The encryption of this result obtained by the transformation of the polynomial P is done homomorphically, from the expression of the trace previously indicated.

En pratique, ces traces sont utilisées pour ”nettoyer” certains polynômes, c’est-à-dire pour obtenir un élément chiffré du polynôme dans lequel seuls certains termes sont conservés (à savoir, les termes utiles pour l’application visée).In practice, these traces are used to “clean” certain polynomials, that is, to obtain a numerical element of the polynomial in which only certain terms are preserved (namely, the terms useful for the intended application).

A cet effet, la présente invention concerne alors un procédé de transformation d’un message chiffré obtenu selon le procédé de détermination décrit précédemment. Ce procédé de transformation vise à transformer le message chiffré en un message transformé . De manière avantageuse, ce procédé est mis en œuvre sans amplification du bruit, malgré la présence d’un facteur multiplicatif dans la trace (telle que définie ci-dessus).To this end, the present invention then relates to a method of transforming an encrypted message. obtained according to the determination method described above. This transformation method aims to transform the encrypted message into a transformed message Advantageously, this method is implemented without noise amplification, despite the presence of a multiplicative factor in the trace (as defined above).

Ce procédé de transformation comprend alors une étape de détermination de l’élément transformé par application d’une application linéaire appliquée au message µ(X). De manière avantageuse selon l’invention, cette application linéaire est l’opérateur trace tel que défini précédemment et avec µ(X) en tant que polynôme P.This transformation process then includes a step of determining the transformed element by applying a linear application applied to the message µ(X). Advantageously according to the invention, this linear application is the trace operator as defined previously and with µ(X) as a polynomial P.

Le procédé de transformation permet alors d’obtenir l’élément transformé qui est une version transformée du message chiffré . L’élément transformé appartient à l’espace .The transformation process then makes it possible to obtain the transformed element which is a transformed version of the encrypted message . The transformed element belongs to space .

Ce procédé de transformation permet alors, par l’intermédiaire de l’ensemble G des valeurs de d (donc les éléments choisis dans la somme), de sélectionner uniquement certains termes du polynôme définissant le message chiffré .This transformation process then allows, via the set G of values of d (therefore the elements chosen in the sum), to select only certain terms of the polynomial defining the encrypted message. .

Les traces sont en général exprimées dans le cadre de la théorie de Galois concernant les extensions de corps. Les ensembles G correspondent dans ce cas à des groupes dits « groupes de Galois ». Ces traces ont plusieurs applications : elles permettent notamment, comme visé dans la présente invention, de mettre en œuvre un chiffrement TRLWE d’un message scalaire à partir d’un élément chiffré TLWE de .Traces are generally expressed in the framework of Galois theory concerning field extensions. The sets G correspond in this case to groups called "Galois groups". These traces have several applications: they allow in particular, as aimed at in the present invention, to implement a TRLWE encryption of a scalar message. from a TLWE encrypted element of .

Ici, on considère que , avec t un nombre premier strictement supérieur à 3. Par ailleurs, . Here, we consider that , with t a prime number strictly greater than 3. Furthermore, .

La présente invention concerne alors une variante du procédé d’agrégation, basée sur la détermination des traces. Un exemple de cette variante du procédé d’agrégation (nommé également autre procédé d’agrégation dans la suite) est décrit ci-après.The present invention then relates to a variant of the aggregation method, based on the determination of traces. An example of this variant of the aggregation method (also called another aggregation method in the following) is described below.

Cet autre procédé d’agrégation est par exemple mis en œuvre par le serveur de traitement cryptographique 3 du système cryptographique 1. De manière générale, l’autre procédé d’agrégation est mis en œuvre par ordinateur.This other aggregation method is for example implemented by the cryptographic processing server 3 of the cryptographic system 1. Generally speaking, the other aggregation method is implemented by computer.

Cet autre procédé d’agrégation débute par une première étape lors de laquelle le système cryptographique 1 (et plus particulièrement le serveur de traitement cryptographique 3) reçoit un message chiffré . Ce message chiffré c est obtenu par chiffrement d’un message en clair à l’aide d’une clé , avec .This other aggregation process begins with a first step during which the cryptographic system 1 (and more particularly the cryptographic processing server 3) receives an encrypted message . This encrypted message is obtained by encrypting a clear message. using a key , with .

Par définition, on écrit .By definition, we write .

On définit également : , et .We also define: , And .

Il est observé que ne correspond pas à un élément chiffré sous forme polynômiale (associé à un chiffrement TRLWE) de l’élément (dans l’espace défini précédemment).It is observed that does not correspond to a polynomially encrypted element (associated with a TRLWE cipher) of the element (in space previously defined).

Cependant, il est observé que : , avec .However, it is observed that: , with .

La deuxième étape de cet autre procédé d’agrégation vise donc à évaluer un élément chiffré (selon le procédé de chiffrement introduit précédemment) du coefficient d’ordre 0 du polynôme dans l’espace . Ici, le but est de réussir à chiffrer le coefficient d’ordre 0 par l’intermédiaire de polynômes (c’est-à-dire avec un chiffrement TRLWE). Les traces sont un outil adapté pour faire cela.The second step of this other aggregation process therefore aims to evaluate an encrypted element (according to the encryption process introduced previously) of the zeroth order coefficient of the polynomial in space . Here, the goal is to successfully encrypt the zeroth order coefficient using polynomials (i.e. with a TRLWE encryption). Traces are a suitable tool for doing this.

Cette deuxième étape est donc mise en œuvre en utilisant les traces. Plus particulièrement, la relation suivante est donnée :This second step is therefore implemented using traces. More specifically, the following relation is given:

. .

Dans cette égalité, le sous-ensemble G est l’ensemble des nombres entiers d compris entre 0 et M-1 et qui sont premiers avec M. Et, en faisant le lien à la définition de la trace introduite précédente, ici, les poids sont égaux à : . Utiliser cette égalité pour permet d’obtenir un chiffrement TRLWE du coefficient d’ordre 0, c’est-à-dire du coefficient .In this equality, the subset G is the set of integers d between 0 and M-1 and which are prime with M. And, making the link to the definition of the trace introduced above, here, the weights are equal to: . Use this equality to allows to obtain a TRLWE encryption of the coefficient of order 0, that is to say of the coefficient .

De manière avantageuse grâce à la théorie de Galois, la trace précédente peut être décomposée en traces partielles de la manière suivante, avec correspondant à un sous-ensemble de l’ensemble G : . Il est par exemple possible de choisir et et et où est un générateur du groupe (la notation désignant le groupe des éléments inversibles pour la multiplication, c’est-à-dire des entiers premiers avec M).Advantageously thanks to Galois theory, the previous trace can be decomposed into partial traces in the following manner, with corresponding to a subset of the set G: . For example, it is possible to choose And And and where is a generator of the group (the notation denoting the group of invertible elements for multiplication, that is, of integers prime to M).

En pratique, cette décomposition est la plus fine possible de manière à être effectuée au maximum. De manière avantageuse, l’utilisation de cette décomposition en traces partielles permet de diminuer le coût de calcul associé à l’opération d’agrégation, d’accélérer l’opération d’agrégation et de diminuer l’erreur obtenue à la fin de l’opération.In practice, this decomposition is as fine as possible so as to be carried out to the maximum. Advantageously, the use of this decomposition into partial traces makes it possible to reduce the computational cost associated with the aggregation operation, to accelerate the aggregation operation and to reduce the error obtained at the end of the operation.

Le facteur présent dans l’équation indiquée au paragraphe [00149] peut être distribué sur chacune des traces partielles de manière à obtenir un élément chiffré du coefficient d’ordre 0, c’est-à-dire du coefficient . Par exemple, dans l’expression donnée de la décomposition en traces partielles introduite, le facteur impliqué dans chacune des traces partielles est de . De manière avantageuse, l’erreur de chiffrement n’est ainsi pas augmentée.The postman present in the equation indicated in paragraph [00149] can be distributed on each of the partial traces so as to obtain a numerical element of the coefficient of order 0, that is to say of the coefficient . For example, in the given expression of the partial trace decomposition introduced, the factor involved in each of the partial traces is . Advantageously, the encryption error is thus not increased.

Opération de rafraRefresh operation îî chissement (ou «chissement (or " bootstrappingbootstrapping »)»)

L’opération de rafraîchissement (généralement appelée «bootstrapping») vise à empêcher l’augmentation d’un terme de bruit au cours du traitement des messages chiffrés. La présente invention concerne donc ici un procédé de rafraîchissement d’un message chiffré c. Ce message chiffré c est ici un message chiffré obtenu par chiffrement du message en clair µ (scalaire). Plus particulièrement, le message µ en clair est défini dans le toreT p, tandis que le message chiffré c est défini dans l’espaceT n+1.The refresh operation (generally called " bootstrapping ") aims to prevent the increase of a noise term during the processing of encrypted messages. The present invention therefore relates here to a method for refreshing an encrypted message c. This encrypted message c is here an encrypted message obtained by encryption of the plaintext message µ (scalar). More particularly, the plaintext message µ is defined in the torus T p , while the encrypted message c is defined in the space T n+1 .

De manière connue, le message chiffré c est défini par . Ce message chiffré est dérivé du message en clair µ par l’intermédiaire de la formule suivante : b=μ+e+a.s, où e est la composant de bruit (aléatoire) associée au message chiffré c et s la clé de chiffrement privée.As is known, the encrypted message c is defined by . This encrypted message is derived from the plaintext message µ by the following formula: b=μ+e+as, where e is the noise (random) component associated with the encrypted message c and s is the private encryption key.

En pratique, le message chiffré c est obtenu par une méthode connue de chiffrement homomorphe dans le toreT(ou chiffrement TLWE pour «Torus Learning With Errors») appliquée au message en clair µ et par l’intermédiaire de la clé de chiffrement privée s. Il est important de noter que le serveur de traitement cryptographique 3 ne possède pas la clé de chiffrement privée s (et n’est donc pas en mesure de déchiffrer le message chiffré c).In practice, the encrypted message c is obtained by a known method of homomorphic encryption in the torus T (or TLWE encryption for " Torus Learning With Errors ") applied to the plaintext message µ and by means of the private encryption key s. It is important to note that the cryptographic processing server 3 does not have the private encryption key s (and is therefore not able to decrypt the encrypted message c).

Le procédé de rafraîchissement vise donc à produire une version rafraîchie du message chiffré c, c’est-à-dire un autre message chiffre c’ (dit « message chiffré rafraîchi c’ » dans la suite). Ce message chiffré rafraîchi c’ est également déchiffré en tant que message en clair µ (lorsqu’il est déchiffré en utilisant la clé de chiffrement privée s), mais dont la composante de bruit associée est plus petite que la composante de bruit e du message chiffré c.The refresh method therefore aims to produce a refreshed version of the encrypted message c, i.e. another encrypted message c’ (hereinafter called “refreshed encrypted message c’”). This refreshed encrypted message c’ is also decrypted as a plaintext message µ (when decrypted using the private encryption key s), but whose associated noise component is smaller than the noise component e of the encrypted message c.

Par ailleurs, si on introduit, au préalable, une fonction agissant sur l’espace de messages définis dans le toreT p, alors l’opération de rafraîchissement peut également fournir un élément chiffré rafraîchi c’ de .Furthermore, if we first introduce a function acting on the message space defined in the torus T p , then the refresh operation can also provide a refreshed encrypted element c' of .

La représente, sous forme de logigramme, un exemple du procédé de rafraîchissement conforme à l’invention.There represents, in the form of a flowchart, an example of the refreshing method according to the invention.

Ce procédé de rafraîchissement est par exemple mis en œuvre par le serveur de traitement cryptographique 3 du système cryptographique 1. De manière générale, le procédé de rafraîchissement est mis en œuvre par ordinateur.This refresh method is for example implemented by the cryptographic processing server 3 of the cryptographic system 1. Generally speaking, the refresh method is implemented by computer.

Comme cela est représenté sur la , le procédé de rafraîchissement débute à l’étape E30 lors de laquelle le système cryptographique 1 (et plus particulièrement le serveur de traitement cryptographique 3) reçoit le message chiffré c. Comme indiqué précédemment, le message chiffré c a été obtenu, préalablement à la mise en œuvre du procédé de rafraîchissement, par chiffrement du message en clair µ, à l’aide de la clé de chiffrement privée s.As shown in the , the refresh method begins at step E30 during which the cryptographic system 1 (and more particularly the cryptographic processing server 3) receives the encrypted message c. As indicated previously, the encrypted message c was obtained, prior to the implementation of the refresh method, by encrypting the plaintext message µ, using the private encryption key s.

Lors de cette étape E30, le serveur de traitement cryptographique 3 reçoit également une version publique chiffrée BK (« Bootstrap key » selon la terminologie d’origine anglosaxonne couramment utilisée) de la clé de chiffrement privée s (en utilisant une autre clé de chiffrement). Plus particulièrement, La version publique chiffrée BK est obtenue par chiffrement de la clé de chiffrement privée s selon le procédé de chiffrement décrit précédemment.During this step E30, the cryptographic processing server 3 also receives an encrypted public version BK (“Bootstrap key” according to the commonly used Anglo-Saxon terminology) of the private encryption key s (using another encryption key). More particularly, the encrypted public version BK is obtained by encrypting the private encryption key s according to the encryption method described above.

Puis, le procédé se poursuit à l’étape E32. Lors de cette étape, le serveur de traitement cryptographique 3 détermine un polynôme défini par l’expression suivante . Le polynôme est ici un polynôme de rafraîchissement fonctionnel qui appartient à l’espace , avec . Dans cette expression, µ correspond au message en clair (et appartient donc au toreT). Dans la présente description, la notation correspondant à l’entier le plus proche du nombre x et la notation correspondant à l’opérateur modulo. est le polynôme cyclotomique d’ordre M (comme introduit précédemment).Then, the method continues at step E32. During this step, the cryptographic processing server 3 determines a polynomial defined by the following expression . The polynomial is here a functional refresh polynomial which belongs to the space , with . In this expression, µ corresponds to the plaintext message (and therefore belongs to the torus T ). In the present description, the notation corresponding to the integer closest to the number x and the notation corresponding to the modulo operator. is the cyclotomic polynomial of order M (as introduced previously).

En pratique, ce polynôme de rafraichissement fonctionnel est déterminé selon un algorithme spécifique (décrit ci-après). En pratique, cet algorithme permet de déterminer les coefficients du polynôme de rafraîchissement fonctionnel en fonction de valeurs d’une fonction (introduite ci-après). L’algorithme selon l’invention couvre les cas et .In practice, this functional refresh polynomial is determined according to a specific algorithm (described below). In practice, this algorithm allows to determine the coefficients of the functional refresh polynomial based on values of a function (introduced below). The algorithm according to the invention covers the cases And .

En pratique, la détermination du polynôme de rafraîchissement fonctionnel est équivalente à la détermination d’une fonction g(µ) dite fonction de rafraîchissement définie par l’expression suivante : , si la fonction de rafraîchissement g(µ) satisfait les deux propriétés décrites aux paragraphes suivants ([00167] et [00168]).In practice, the determination of the functional refresh polynomial is equivalent to the determination of a function g(µ) called the refresh function defined by the following expression: , if the refresh function g(µ) satisfies the two properties described in the following paragraphs ([00167] and [00168]).

Par construction, cette fonction de rafraîchissement g(µ) est une fonction par morceaux : , avec , i=0, …, M-1.By construction, this refresh function g(µ) is a piecewise function: , with , i=0, …, M-1.

Par ailleurs, la fonction de rafraîchissement satisfait la relation suivante (dite « condition de compatibilité) : .Le polynôme de rafraichissement fonctionnel est alors déterminé sur la base de la fonction de rafraîchissement g.Furthermore, the refresh function satisfies the following relationship (called the “compatibility condition): .The functional refresh polynomial is then determined based on the refresh function g.

Les valeurs de la fonction de rafraîchissement g(µ) doivent coïncider avec les valeurs de la fonction définie dans l’espaceT p. Autrement dit, la relation suivante doit être vérifiée : .The values of the refresh function g(µ) must coincide with the values of the function defined in the space T p . In other words, the following relation must be verified: .

Deux cas peuvent ensuite être distingués.Two cases can then be distinguished.

Si , la condition de compatibilité vérifiée par g impose des contraintes sur les quantités , avec F une fonction définie dans l’espace ℤ et à valeurs dans l’espace ℤ. Cela s’écrit alors sous la forme suivante : . En pratique, cette dernière relation est satisfaite par une large classe de fonctions mais n’est pas satisfaite pour toutes les fonctions . Pour la satisfaire automatiquement, il suffit de remplacer la fonction par la fonction avec .If , the compatibility condition verified by g imposes constraints on the quantities , with F a function defined in the space ℤ and with values in the space ℤ. This is then written in the following form: . In practice, this latter relation is satisfied by a wide class of functions but is not satisfied for all functions. . To satisfy it automatically, simply replace the function by function with .

Dans ce cas ( ), un choix optimal pour le polynôme de rafraîchissement fonctionnel est donné, en fonction de la fonction des valeurs prises par la fonction , par l’expression suivante : .In this case ( ), an optimal choice for the functional refresh polynomial is given, as a function of the values taken by the function , by the following expression: .

La fonction de rafraîchissement g est dans ce cas une fonction en escalier dont la largeur de chaque palier autour de messages est .The refresh function g is in this case a staircase function with the width of each step around messages East .

Si p et t sont premiers entre eux, il n’y a pas de contraintes particulières sur les quantités . Il est alors question de trouver une fonction de rafraîchissement g qui satisfait l’expression suivante : . Plus précisément, il est alors question de déterminer toutes les valeurs à partir des relations suivantes , tout en permettant à la fonction en escalier g d’avoir les paliers les plus larges possibles.If p and t are coprime, there are no special constraints on the quantities . It is then a question of finding a refresh function g which satisfies the following expression: . More precisely, it is then a question of determining all the values from the following relationships , while allowing the staircase function g to have the widest possible landings.

L’étape E32 décrite vise à déterminer le polynôme de rafraîchissement fonctionnel .The described step E32 aims to determine the functional refresh polynomial .

Selon un mode de réalisation de l’invention, la détermination de ce polynôme de rafraîchissement fonctionnel revient à déterminer, de manière optimale, les coefficients du polynôme de rafraîchissement fonctionnel (impliqués dans la définition de la fonction de rafraîchissement g) de telle manière que :According to one embodiment of the invention, the determination of this functional refresh polynomial amounts to determining, in an optimal manner, the coefficients of the functional refresh polynomial (involved in the definition of the refresh function g) such that:

, avec , des valeurs positives aussi grandes que possibles. , with , positive values as large as possible.

Cela revient alors à déterminer les valeurs de la fonction de rafraîchissement g aux points .This then amounts to determining the values of the refresh function g at the points .

Si , la solution optimale est obtenue pour .If , the optimal solution is obtained for .

Si p et t sont premiers entre eux, la détermination des coefficients du polynôme de rafraichissement fonctionnel se décompose en les sous-étapes suivantes.If p and t are coprime, the determination of the coefficients of the functional refresh polynomial is broken down into the following sub-steps.

La première sous-étape vise à exprimer la condition de compatibilité introduite précédemment sous la forme de M relations de compatibilité obtenues pour . Le système formé de ces M relations de compatibilité satisfaites par la fonction de rafraîchissement g est équivalent aux relations suivantes : , pour .The first sub-step aims to express the previously introduced compatibility condition in the form of M compatibility relations obtained for . The system formed by these M compatibility relations satisfied by the refresh function g is equivalent to the following relationships: , For .

La deuxième sous-étape vise à utiliser les relations déterminées lors de la précédente étape pour déterminer la fonction g. En d’autres termes, il s’agit de résoudre le système d’équations de manière à déterminer les valeurs prises par la fonction de rafraîchissement g à tous les points .The second sub-step aims to use the relations determined in the previous step to determine the function g. In other words, it is a question of solving the system of equations in such a way as to determine the values taken by the refresh function g at all points .

Pour chaque indice j fixé, avec , l’algorithme détermine l’indice i compris entre 0 et M-1, parmi l’ensemble des indics i qui vérifient la relation et qui soit le plus éloigné du message le plus proche. On note cet indice. En d’autres termes, l’indice réalise le maximum suivant : .For each fixed index j, with , the algorithm determines the index i between 0 and M-1, among the set of indices i which verify the relation and which is the furthest from the message the closest. We note this index. In other words, the index achieves the following maximum: .

Les valeurs de la fonction de rafraîchissement g prises en tous les points sont alors données par les relations suivantes :The values of the refresh function g taken at all points are then given by the following relations:

pour et et For And And

. .

Cette deuxième sous-étape est répétée pour l’ensemble des relations équivalentes j, avec . Cela permet alors d’obtenir les valeurs prises par la fonction de rafraîchissement g à tous les points .This second substep is repeated for the set of equivalent relations j, with . This then makes it possible to obtain the values taken by the refresh function g at all points .

Puis, lors d’une troisième sous-étape, le système cryptographique 3 détermine les coefficients du polynôme de rafraîchissement fonctionnel selon l’expression suivante : , avec et .Then, in a third sub-step, the cryptographic system 3 determines the coefficients of the polynomial functional refresh according to the following expression: , with And .

De manière avantageuse, cette mise en œuvre permet de déterminer le polynôme de rafraîchissement fonctionnel optimal satisfaisant les conditions énoncées précédemment.Advantageously, this implementation allows to determine the functional refresh polynomial optimal satisfying the conditions stated above.

Le message chiffré rafraîchi c’ est ensuite dérivé (étape E34). Ce message chiffré rafraîchi c’ est obtenu par une méthode connue de chiffrement homomorphe dans le toreT(ou chiffrement TLWE) du coefficient d’ordre 0 de ce polynôme . Ce chiffrement homomorphe est mis en œuvre en utilisant la version publique chiffrée BK de la clé de chiffrement privée s.The refreshed encrypted message c' is then derived (step E34). This refreshed encrypted message c' is obtained by a known method of homomorphic encryption in the torus T (or TLWE encryption) of the coefficient of order 0 of this polynomial . This homomorphic encryption is implemented using the encrypted public version BK of the private encryption key s.

L’utilisation du polynôme cyclotomique d’ordre M dans ce procédé de rafraîchissement est particulièrement avantageux car elle permet d’améliorer considérablement les performances des processus de traitement (en particulier les calculs homomorphes) impliquant des messages plus longs (et non traités en format binaires). En effet, le processus de rafraîchissement connu ne permet pas de traiter les messages sous la forme d’entiers longs sans utiliser le format binaire. Ici, grâce à l’utilisation des polynômes cyclotomiques, il est possible de réaliser ce traitement pour des messages sous forme d’entiers longs. En particulier, l’utilisation du polynôme cyclotomique d’ordre M permet d’effectuer le calcul homomorphe et le rafraîchissement du message chiffré c pendant la même opération, sur ces messages sous la forme d’entiers longs.The use of the cyclotomic polynomial of order M in this refreshing method is particularly advantageous because it allows to considerably improve the performance of the processing processes (in particular homomorphic calculations) involving longer messages (and not processed in binary format). Indeed, the known refreshing process does not allow to process messages in the form of long integers without using the binary format. Here, thanks to the use of cyclotomic polynomials, it is possible to carry out this processing for messages in the form of long integers. In particular, the use of the cyclotomic polynomial of order M allows to perform the homomorphic calculation and the refreshing of the encrypted message c during the same operation, on these messages in the form of long integers.

Le procédé de rafraîchissement se termine par l’étape E36. Lors de cette étape, le serveur de traitement cryptographique 3 procède à l’extraction du message chiffré rafraîchi c’.The refresh process ends with step E36. During this step, the cryptographic processing server 3 extracts the refreshed encrypted message c’.

De manière avantageuse, le message chiffré rafraîchi c’ présente une composante de bruit e’ plus petite que la composante de bruit e associé au message chiffré c.
Advantageously, the refreshed encrypted message c' has a noise component e' smaller than the noise component e associated with the encrypted message c.

Claims (12)

Procédé de détermination d’un message chiffré c(X) correspondant à une version chiffrée d’un message µ(X), le message µ(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans un espace avec p un nombre entier non nul, N étant un nombre entier non nul,
ledit procédé comprenant une étape de chiffrement du message µ(X) par chiffrement totalement homomorphe, à partir d’une clé privée s(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1, en le message chiffré c(X) se présentant sous la forme d’un polynôme appartenant à un espace , avecT q[X] un espace de polynômes de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans avec q un nombre entier non nul supérieur à p et un polynôme cyclotomique d’ordre M, avec , t un nombre premier strictement supérieur à 3 et α un nombre entier non nul ou , avec tides nombres premiers et αides entiers non nuls, au moins l’un des nombres premiers tiétant strictement supérieur à 3.
Method for determining an encrypted message c(X) corresponding to an encrypted version of a message µ(X), the message µ(X) being in the form of a polynomial of degree less than or equal to N-1 whose coefficients have values in a space with p a non-zero integer, N being a non-zero integer,
said method comprising a step of encrypting the message µ(X) by totally homomorphic encryption, from a private key s(X) in the form of a polynomial of degree less than or equal to N-1, in the encrypted message c(X) in the form of a polynomial belonging to a space , with T q [X] a space of polynomials of degree less than or equal to N-1 whose coefficients have values in with q a non-zero integer greater than p and a cyclotomic polynomial of order M, with , t a prime number strictly greater than 3 and α a non-zero integer or , with t i prime numbers and α i non-zero integers, at least one of the prime numbers t i being strictly greater than 3.
Procédé de détermination selon la revendication 1, dans lequel le chiffrement totalement homomorphe est mis en œuvre par une fonction de chiffrement polynômial à coefficients dans un espace défini par un toreT.A determination method according to claim 1, wherein the fully homomorphic encryption is implemented by a polynomial encryption function with coefficients in a space defined by a torus T. Procédé de transformation d’un message chiffré c(X) déterminé selon la revendication 1 ou 2 en un élément chiffré , ledit élément chiffré appartenant à un sous-espace de l’espace , comprenant une étape de détermination dudit élément chiffré par application d’une application linéaire au message µ(X), ladite application linéaire étant un opérateur trace défini de la manière suivante : , avec G un sous-ensemble des entiers compris entre 0 et M-1 et premiers avec M et des poids prédéfinis.Method for transforming an encrypted message c(X) determined according to claim 1 or 2 into an encrypted element , said encrypted element belonging to a subspace of space , comprising a step of determining said encrypted element by applying a linear application to the message µ(X), said linear application being a trace operator defined as follows: , with G a subset of the integers between 0 and M-1 and prime to M and predefined weights. Procédé de rafraîchissement du message chiffré c correspondant à une version chiffrée d’un message ρ, ledit message ρ étant défini dans le toreT, ledit procédé de rafraîchissement comprenant une étape de détermination d’un message chiffré rafraîchi c’, le message chiffré rafraîchi c’ comprenant une composante de bruit e’ plus petite qu’une composante de bruit e du message chiffré c, le message chiffré rafraîchi c’ étant déterminé sur la base d’un polynôme obtenu selon le procédé de détermination selon la revendication 1 ou 2.Method for refreshing the encrypted message c corresponding to an encrypted version of a message ρ, said message ρ being defined in the torus T , said refreshing method comprising a step of determining a refreshed encrypted message c', the refreshed encrypted message c' comprising a noise component e' smaller than a noise component e of the encrypted message c, the refreshed encrypted message c' being determined on the basis of a polynomial obtained according to the determination method according to claim 1 or 2. Procédé de rafraîchissement selon la revendication 4, dans lequel l’étape de détermination du message chiffré rafraîchi c’ comprend une étape de calcul d’un coefficient d’ordre zéro du polynôme avec un polynôme de rafraîchissement fonctionnel appartenant à l’espace , avec , la notation correspondant à l’entier le plus proche du nombre x et la notation correspondant à l’opérateur modulo.A refreshing method according to claim 4, wherein the step of determining the refreshed encrypted message c' comprises a step of calculating a zero-order coefficient of the polynomial with a functional refresh polynomial belonging to the space , with , the notation corresponding to the integer closest to the number x and the notation corresponding to the modulo operator. Procédé d’extraction d’un élément chiffré homomorphe cβd’un message chiffré c(X) se présentant sous la forme d’un polynôme appartenant à l’espace , le message chiffré c(X) étant déterminé par un procédé de détermination selon la revendication 1 ou 2, l’élément chiffré homomorphe cβétant obtenu par détermination du coefficient d’ordre 0 d’un polynôme , étant un polynôme cyclotomique d’ordre M, avec , t étant un nombre premier strictement supérieur à 3 et α un nombre entier non nul, étant un nombre entier non nul, ledit élément chiffré homomorphe cβcorrespondant à un élément chiffré d’une combinaison linéaire de coefficients du message µ(X).Method for extracting a homomorphic encrypted element c β from an encrypted message c(X) in the form of a polynomial belonging to the space , the encrypted message c(X) being determined by a determination method according to claim 1 or 2, the homomorphic encrypted element c β being obtained by determining the coefficient of order 0 of a polynomial , being a cyclotomic polynomial of order M, with , t being a prime number strictly greater than 3 and α a non-zero integer, being a non-zero integer, said homomorphic encrypted element c β corresponding to an encrypted element of a linear combination of coefficients of the message µ(X). Procédé d’extraction selon la revendication 6, comprenant une étape de détermination du nombre entier non nul β de manière à vérifier l’inégalité suivante : , ledit élément chiffré homomorphe cβcorrespondant à un élément chiffré d’un coefficient d’ordre β du message µ(X).Extraction method according to claim 6, comprising a step of determining the non-zero integer β so as to verify the following inequality: , said homomorphic encrypted element c β corresponding to an encrypted element of a coefficient of order β of the message µ(X). Procédé d’agrégation d’une pluralité de messages chiffrés c(i), i étant un entier naturel, chaque message chiffré c(i)appartenant à un espaceT n+1, n étant un entier naturel non nul, chaque message chiffré c(i)correspondant à une version chiffrée d’un message µ(i)associé, ce chiffrement étant mis en œuvre par l’intermédiaire d’une clé de chiffrement privée s, le procédé d’agrégation comprenant des étapes de :
- détermination d’une clé chiffrée selon le procédé de détermination selon les revendications 1 ou 2, et
- agrégation de ladite pluralité de messages chiffrés c(i)de manière à obtenir un message chiffré se présentant sous la forme d’un polynôme.
Method for aggregating a plurality of encrypted messages c (i) , i being a natural integer, each encrypted message c (i) belonging to a space T n+1 , n being a non-zero natural integer, each encrypted message c (i) corresponding to an encrypted version of an associated message µ (i) , this encryption being implemented by means of a private encryption key s, the aggregation method comprising steps of:
- determination of an encrypted key according to the determination method according to claims 1 or 2, and
- aggregating said plurality of encrypted messages c (i) so as to obtain an encrypted message appearing in the form of a polynomial.
Procédé d’agrégation selon la revendication 8, dans lequel le message chiffré se présentant sous la forme d’un polynôme est déterminé sur la base d’un chiffrement polynômial à coefficients dans l’espace défini par le toreT.The aggregation method of claim 8, wherein the encrypted message appearing in the form of a polynomial is determined on the basis of a polynomial encryption with coefficients in the space defined by the torus T . Dispositif (2A) de détermination d’un message chiffré c(X) correspondant à une version chiffrée d’un message µ(X), le message µ(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans un espace avec p un nombre entier non nul, N étant un nombre entier non nul,
le dispositif (2A) de détermination comprenant au moins un processeur et un dispositif de mémorisation, le processeur comprenant :
- un module de chiffrement du message µ(X) par chiffrement totalement homomorphe, à partir d’une clé privée s(X) se présentant sous la forme d’un polynôme de degré inférieur ou égal à N-1, en le message chiffré c(X) se présentant sous la forme d’un polynôme appartenant à un espace , avecT q[X] un espace de polynômes de degré inférieur ou égal à N-1 dont les coefficients sont à valeurs dans avec q un nombre entier non nul supérieur à p et un polynôme cyclotomique d’ordre M, avec , t un nombre premier strictement supérieur à 3 et α un nombre entier non nul ou , avec tides nombres premiers et αi des entiers non nuls, au moins l’un des nombres premiers tiétant strictement supérieur à 3.
Device (2A) for determining an encrypted message c(X) corresponding to an encrypted version of a message µ(X), the message µ(X) being in the form of a polynomial of degree less than or equal to N-1 whose coefficients have values in a space with p a non-zero integer, N being a non-zero integer,
the determination device (2A) comprising at least one processor and a storage device, the processor comprising:
- a module for encrypting the message µ(X) by totally homomorphic encryption, from a private key s(X) in the form of a polynomial of degree less than or equal to N-1, in the encrypted message c(X) in the form of a polynomial belonging to a space , withT q[X] a space of polynomials of degree less than or equal to N-1 whose coefficients have values in with q a non-zero integer greater than p and a cyclotomic polynomial of order M, with , t a prime number strictly greater than 3 and α a non-zero integer or , with tiprime numbers and αi non-zero integers, at least one of the prime numbers tibeing strictly greater than 3.
Système cryptographique (1) comprenant :
- un dispositif (2A) de détermination d’un message chiffré c(X) selon la revendication 11, et
- un serveur de traitement cryptographique (3) configuré pour mettre en œuvre au moins une opération de traitement cryptographique sur le message chiffré c(X).
Cryptographic system (1) comprising:
- a device (2A) for determining an encrypted message c(X) according to claim 11, and
- a cryptographic processing server (3) configured to implement at least one cryptographic processing operation on the encrypted message c(X).
Programme d’ordinateur comprenant des instructions exécutables par un processeur et conçues pour mettre en œuvre un procédé selon l’une quelconque des revendications 1 à 9 lorsque que ces instructions sont exécutées par ledit processeur.Computer program comprising instructions executable by a processor and designed to implement a method according to any one of claims 1 to 9 when these instructions are executed by said processor.
FR2306351A 2023-06-21 2023-06-21 Method for determining an encrypted message, associated refreshing, extraction and aggregation method Pending FR3150380A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2306351A FR3150380A1 (en) 2023-06-21 2023-06-21 Method for determining an encrypted message, associated refreshing, extraction and aggregation method
PCT/EP2024/067450 WO2024261248A1 (en) 2023-06-21 2024-06-21 Method for determining an encrypted message, and associated refreshing, extracting and aggregating method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2306351A FR3150380A1 (en) 2023-06-21 2023-06-21 Method for determining an encrypted message, associated refreshing, extraction and aggregation method
FR2306351 2023-06-21

Publications (1)

Publication Number Publication Date
FR3150380A1 true FR3150380A1 (en) 2024-12-27

Family

ID=88839781

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2306351A Pending FR3150380A1 (en) 2023-06-21 2023-06-21 Method for determining an encrypted message, associated refreshing, extraction and aggregation method

Country Status (2)

Country Link
FR (1) FR3150380A1 (en)
WO (1) WO2024261248A1 (en)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHEN HAO ET AL: "Efficient Homomorphic Conversion Between (Ring) LWE Ciphertexts", 9 June 2021, TOPICS IN CRYPTOLOGY - CT-RSA 2020 : THE CRYPTOGRAPHERS' TRACK AT THE RSA CONFERENCE 2020, SAN FRANCISCO, CA, USA, FEBRUARY 24-28, 2020, SPRINGER, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, PAGE(S) 460 - 479, XP047597920 *
JOYE MARC: "SoK: Fully Homomorphic Encryption over the [Discretized] Torus", IACR TRANSACTIONS ON CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS, 31 August 2022 (2022-08-31), pages 661 - 692, XP093080781, Retrieved from the Internet <URL:https://marcjoye.github.io/papers/Joy22dtorus.pdf> [retrieved on 20230911], DOI: 10.46586/tches.v2022.i4.661-692 *
LIN CHENGYU ET AL: "XSPIR: Efficient Symmetrically Private Information Retrieval from Ring-LWE", 25 September 2022, 20220925, PAGE(S) 217 - 236, XP047634693 *

Also Published As

Publication number Publication date
WO2024261248A1 (en) 2024-12-26

Similar Documents

Publication Publication Date Title
EP3301617B1 (en) Methods for secure learning of parameters of a convolutional neural network, and secure classification of input data
EP3535923B1 (en) Method for secure classification using a transcryption operation
EP3751468A1 (en) Method for collaborative learning of an artificial neural network without revealing learning data
EP3078155B1 (en) Method of updating a file tree stored on a storage server
EP3091689B1 (en) Method for generating a message signature from a signature token encrypted by means of an homomorphic encryption function
EP1151576B1 (en) Public and private key cryptographic method
EP2127197A2 (en) Identity based broadcast encryption
EP2301187A1 (en) Terminal for strong authentication of a user
EP2457344B1 (en) Method for converting a first digit into a second digit
EP3545641B1 (en) Searchable encryption method
EP1938503B1 (en) Method for secure transmission of data
FR3150380A1 (en) Method for determining an encrypted message, associated refreshing, extraction and aggregation method
EP4150852A1 (en) Cryptographic method, systems and services for evaluating univariate or multivariate real-valued functions on encrypted data
WO2013024230A2 (en) Device and method for compressing public keys for a fully homomorphic encryption algorithm
EP3857810B1 (en) Cryptographic method of secure comparison of two secret data x and y
EP3008851B1 (en) System and method for delegating bilinear pairing computations to a server
EP3840282A1 (en) Cryptographic processing method, associated electronic device and computer program
WO2010072963A1 (en) Polyphase decomposition of a filter bench for oversampled ofdm
FR3136920A1 (en) Method for homomorphic determination of the sign of a message by dilation, associated methods and devices
FR3150381A1 (en) Method for extracting a homomorphic encrypted element from a homomorphic encrypted list and method for inserting a homomorphic encrypted element into a homomorphic encrypted list
CA2280952A1 (en) Cryptographic system comprising a ciphering and deciphering system and a key escrow system and associated appliances and devices
WO2024184144A1 (en) Method for refreshing an encrypted message for homomorphic cryptography, and homomorphic cryptography method
WO2009122095A2 (en) White-box protection for cryptographic algorithms including calculation of a quadratic form
FR2892251A1 (en) CRYPTOGRAPHIC METHOD IMPLEMENTING AN IDENTITY-BASED ENCRYPTION SYSTEM
FR3150382A1 (en) Method for detecting the presence of a homomorphic encrypted element in a homomorphic encrypted set

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20241227