WO2023242429A1 - Procédé de détermination homomorphe du signe d'un message par dilatation, procédés et dispositifs associés - Google Patents

Procédé de détermination homomorphe du signe d'un message par dilatation, procédés et dispositifs associés Download PDF

Info

Publication number
WO2023242429A1
WO2023242429A1 PCT/EP2023/066324 EP2023066324W WO2023242429A1 WO 2023242429 A1 WO2023242429 A1 WO 2023242429A1 EP 2023066324 W EP2023066324 W EP 2023066324W WO 2023242429 A1 WO2023242429 A1 WO 2023242429A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
encrypted
homomorphic
messages
calculation
Prior art date
Application number
PCT/EP2023/066324
Other languages
English (en)
Inventor
Philippe CHARTIER
Michel Koskas
Mohammed LEMOU
Florian MEHATS
Original Assignee
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 Technologies filed Critical Ravel Technologies
Publication of WO2023242429A1 publication Critical patent/WO2023242429A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test

Definitions

  • DESCRIPTION TITLE Method for homomorphic determination of the sign of a message by dilation, associated methods and devices TECHNICAL FIELD [0001] The technical field is that of homomorphic cryptography methods, devices and systems. TECHNOLOGICAL BACKGROUND [0002] Homomorphic cryptography, which makes it possible to perform calculations or data processing on encrypted data, without first decrypting them, has attracted a lot of attention recently. [0003] 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, because this personal data tends to circulate more and more in the digital systems environments that we use on a daily basis.
  • Encryptid and homomorphic processing techniques appear to be a very promising solution, because they make it possible to process data while preserving the anonymity and private nature of this data in a particularly secure manner; not being decrypted during processing.
  • Homomorphic cryptography methods therefore respond, among other things, to the technical challenge of allowing: - an external, generally remote services and processing server to perform “blind” operations on data encrypted, without decrypting them, this server not having the necessary key to decrypt the data, - the data, encrypted, being provided by another, distinct entity (a client, in the IT sense), which, in turn, has the encryption key.
  • These data processing operations may consist of carrying out individual operations, data by data, to format them or filter them by example.
  • LWE learning with errors
  • a second technique, implemented in this process then consists of adding: - the sign (in its encrypted version) of the non-expanded message p, knowing that 0 is assigned if the message p is located in a zone of uncertainty, including in particular a central interval, centered on 0, of width e, with - the sign (in its encrypted version) of the dilated message pm, this sign being assigned an attenuation coefficient att[i] which reduces its contribution , compared to the sign of the initial message p.
  • any of the processes presented above is executed by a computer (programmed or otherwise arranged to execute the process in question), that is to say a device or a electronic system (optionally distributed among several remote, remote devices) comprising at least one processor for executing logical operations, and a memory device for storing data.
  • a computer programmed or otherwise arranged to execute the process in question
  • a device or a electronic system comprising at least one processor for executing logical operations, and a memory device for storing data.
  • the cryptographic system 1 can also include a recipient entity 4, distinct from the server 3, the result of the homomorphic processing carried out by the server 3 (result which is itself encrypted) being transmitted to this recipient entity 4, via a channel communication channel 6.
  • the recipient entity 4 can be the entity 2 itself, and the communication channels 5 and 6 can form the same bidirectional communication channel.
  • the complete encrypted message can also be explicitly reconstructed, from these components, in the form which directly corresponds to an encrypted version of ⁇ (encryption by learning with error, with the same key s).
  • each component ci is decrypted (to obtain the plain component ⁇ i), before recomposing the complete message in plain text ⁇ .
  • Each component ci is decrypted, by a decryption module having the private key s, by calculating the quantity bi-ai.s (which is equal to ⁇ i+ei), and rounding the result to the nearest value of the discrete torus Tpi, thus removing the noise component ei to finally obtain ⁇ i.
  • the encrypted component ci obtained by thus encrypting the component ⁇ i can also be noted [0100]
  • the encryption scheme is presented above in the case where the message ⁇ belongs to the discrete torus Tp.
  • the attenuation coefficients a(k) are preferably chosen such that their sum att[o ],+...+ att[kj+... att[Ki] is less than 1/2.
  • the result of this sum calculation then belongs to the torus T (which facilitates its subsequent use, in the encryption scheme used here).
  • This condition as well as the particular decay condition mentioned above, can be obtained for example by choosing, for the coefficients att[k], the value AR k , where the ratio R of this geometric sequence is less than 1/2, and where A is less than (1 -R)/2.
  • each packet can, for example, include 2 to 5 terms.
  • step S2 is executed r-1 times.
  • Figure 12 is a table which, for this example, groups together the values of the Bézout coefficients Vj, the values of the “dilated” Bézout coefficients (which also illustrates that these values remain advantageously small, although allowing an expansion of the message), and values of the quantity which intervenes in the calculation of the noise affecting the encrypted messages dilated.
  • the function is a piecewise constant function with possible discontinuities at points such that either [00171]
  • the function g ⁇ being odd with right-hand discontinuities in ⁇ /2 and in 1/2- ⁇ /2, a natural choice for the parameter ⁇ is under duress either
  • the server 3 will for example be programmed so as to execute the following operations: - decomposition of the function f in the form of a linear combination of translated Heaviside functions, i.e. where the coefficients ⁇ j are integers and where the abscissa of the points of discontinuity belong to the interval [-1/4, 1/4], - calculation of the quantity each term being determined, homomorphically, as indicated above for the Heaviside H function.
  • the server 31 of the exemplary embodiment of Figure 3 is programmed to perform these operations.
  • the module 310 of this server performs the homomorphic subtraction Then the module 30 determines the quantity h from Cd.
  • the module 311 then carries out the operations and delivers the corresponding results, Maxh and Minh.
  • the quantities Maxh and Minh could be determined by - homomorphically determining an encrypted version of denoted h', then - by calculating the quantity h'.c b +(1 -h').c a (for the maximum) and h'.c a +(1 -h').c b (for the minimum ).
  • the quantities Maxh and Minh could each be determined from a numerical version of the sign of the difference
  • the server 32 of the exemplary embodiment of Figure 4 is programmed to execute a process for sorting an encrypted database DB.
  • This database includes at least, in a first location of the database, a first encrypted message c a , and in a second location of the database, a second encrypted message c b .
  • This sorting method comprises at least: - a writing, in the first location, of the quantity Maxh presented above, determined from c a and c b , or, respectively, of the quantity Minh presented above above (determined from c a and c b ), and - a writing, in the second location, of the quantity Minh, or, respectively, of the quantity Maxh.
  • the first and second locations in question can for example each be identified, in the database, by an indexing number associated with the location considered (for example a line number, in a form database matrix).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Procédé de détermination homomorphe du caractère positif ou négatif d'un message μ à partir d'un message chiffré c correspondant, chiffré par une méthode de type apprentissage avec erreur, le message μ appartenant au tore discret Tp ou à un espace en bijection avec Tp, avec Formula (p) les entiers pi étant premiers entre eux, le message chiffré c étant formé de q composantes Ci, avec Formula (c), vi étant le coefficient de Bézout associé à l'entier pi. Le procédé comprend au moins une dilatation du message chiffé c conformément à la formule (c[1]), où p est un nombre impair supérieur ou égal à 3. Le procédé comprend aussi une fusion de quantités représentatives du signe de c et du signe de c[1].

Description

DESCRIPTION TITRE : Procédé de détermination homomorphe du signe d’un message par dilatation, procédés et dispositifs associés DOMAINE TECHNIQUE [0001] Le domaine technique est celui des méthodes, dispositifs et systèmes de cryptographie homomorphe. ARRIERE-PLAN TECHNOLOGIQUE [0002] La cryptographie homomorphe, qui permet d'effectuer des calculs ou des traitements de données sur des données chiffrées, sans les déchiffrer au préalable, a suscité beaucoup d'attention dernièrement. [0003] 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 que nous utilisons au quotidien. [0004] Dans ce contexte, les techniques de chiffrement et traitement homomorphe 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 l'anonymat et le caractère privé de ces données, ces dernières n'étant pas déchiffrées pendant leur traitement. [0005] 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. [0006] 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. Mais les applications les plus notables concernent des opérations de comparaison entre données, de tri ou de regroupement. Il est donc très utile de disposer d’outil permettant de réaliser de manière efficace des comparaisons entre données chiffrées, et cela de manière homomorphe. [0007] La cryptographie homomorphe peut être basée sur le schéma de cryptage dit "apprentissage avec erreur" (« learning with errors » ou LWE, en anglais), dans lequel le message crypté c=(a,b) 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. [0008] 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 µ. [0009] Lorsque l'on additionne deux messages cryptés, on obtient un message crypté, qui est une version cryptée de la somme (des deux messages initiaux non cryptés, dont la composante de bruit est plus élevée que pour les deux messages cryptés initiaux. [0010] Ainsi, pour empêcher le terme de bruit d'augmenter et de croître au cours du traitement des données, une procédure de rafraîchissement, généralement appelée "bootstrapping", est exécutée de manière répétée. Cette procédure produit une version rafraîchie de c, c'est-à-dire un message crypté c' qui est décrypté lui aussi en tant µ (lorsqu'il est décrypté en utilisant s), mais dont la composante de bruit est plus petite que celle de c. Cette procédure de boostrapping est extrêmement utile et ingénieuse, mais elle est aussi très consommatrice, en termes de ressources de calcul (en particulier parce que les opérations impliquées doivent être effectuées de manière homomorphique), d'autant plus qu'elle doit être exécutée très régulièrement. [0011] Le schéma de chiffrement homomorphe décrit ci-dessus, qui combine "apprentissage avec erreur" et bootstrapping a ainsi l’inconvénient d’être généralement très lourd à mettre en oeuvre, nécessitant une puissance ou un temps de calcul très importants.
[0012] Pour faciliter les opérations en question, il est alors choisi, en général, de d’opérer sur des messages binaires (c'est-à-dire des messages dont la valeur est soit 0 soit 1 ). Les outils, complexes (notamment pour le boostrapping), qui ont été développés pour mettre en oeuvre ce type de schéma cryptographique, sont ainsi des outils adaptés à des messages binaires.
[0013] Pour effectuer des opérations homomorphes sur un message plus long, le message est décomposé 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 ou opération binaire, et propager cette retenue à l'opération binaire suivante. Il s'agit donc d'un processus série, très consommateur, en termes de temps de calcul. De plus, chaque opération binaire est effectuée de manière homomorphe, ce qui multiplie le nombre d'opérations homomorphes (et donc coûteuses en temps).
[0014] Dans ce contexte, il serait donc utile de disposer d’une technique de cryptographie homomorphe plus efficace sur le plan calculatoire, et adaptée notamment à des opérations de traitement de base de données, par exemple de type comparaison ou tri.
RESUME
[0015] La présente technologie concerne alors un procédé de détermination homomorphe du caractère positif ou négatif d’un message μ à partir d’un message chiffré c correspondant, sans déchiffrement du message chiffré c, le message chiffré c correspondant au message μ chiffré par une méthode de type apprentissage avec erreur, - le message μ appartenant au tore discret
Figure imgf000005_0001
ou à un espace en bijection avec Tp, avec Ies entiers pi
Figure imgf000005_0002
Figure imgf000005_0004
étant premiers entre eux, le message chiffré c étant formé de q composantes ci, avec vi étant le coefficient de Bézout
Figure imgf000005_0003
associé à l’entier pi, défini par ui pi + vi p/pi = 1 , - le procédé comprenant : - une étape de mise à l’échelle, comprenant une détermination d’un message chiffré dilaté c[1] conformément à la formule suivante est un
Figure imgf000006_0001
nombre impair supérieur ou égal à 3, et - une étape de fusion, comprenant un calcul de la somme F0(c) + F1(c[1]) où F0 et F1 désignent respectivement une opération de calcul homomorphe d’une quantité att[0].gε, et d’une quantité att[1].gε, gε étant une fonction en escalier qui est nulle sur un intervalle central ]-ε/2, ε/2[ et qui a deux valeurs distinctes de part et d’autre de cet intervalle central, le coefficient att[1] étant inférieur au coefficient att[0]. [0016] Les coefficients att[0] et att[1] sont par exemple tels que (att[0] + att[1]).gε reste compris entre -1/2 et 1/2. [0017] La décomposition du message chiffré c en ces q composantes indépendantes ci, et la recomposition du message c à parti de ces composantes ci est réalisée en appliquant le théorème des restes chinois. [0018] Le message en clair correspondant, µ, peut d’ailleurs être décomposé en q composantes µi (et recomposé à partir de celles-ci), de la même manière. [0019] De nombreuses opérations sur le message chiffré c, par exemple une addition homomorphe (figure 6), une multiplication homomorphe (figure 7), ou une opération de bootstraping, peuvent être réalisées composante par composante, en traitant les q composantes ci du message c, indépendamment les uns des autres, sans avoir à propager aucune retenue entre eux. [0020] On tire ainsi partie de la décomposition particulière du théorème chinois, pour traiter en parallèle, indépendamment, les différentes composantes ci du message chiffré c, ce qui permet un traitement accéléré, par rapport à une décomposition binaire avec propagation de retenues (chiffrées). [0021] Il est noté que les différentes composantes ci correspondent à des « sous- messages » chiffrés, associés chacun (par chiffrement) à l’un des « sous-messages » µi composant le message en clair total µ (figure 5). [0022] Prévoir d’utiliser une telle décomposition, pour développer une technique de cryptographie homomorphe plus efficace, est très loin d’être immédiat. En effet, comme mentionné ci-dessus, la plupart des outils de cryptographie homomorphique actuellement disponibles sont adaptés spécifiquement aux messages binaires. Ainsi, pour mettre au point une telle technique, il a fallu aller à l'encontre des pratiques et préjugés habituels et développer des outils spécifiques (et élaborés) destinés à des messages plus longs que juste binaire (i.e. : pour traiter les sous-messages µi, qui ne sont pas seulement binaire, à deux valeurs, puisqu’ils peuvent prendre pi valeurs, avec pi = 3, 7, 11 ou encore 17, par exemple), sans même savoir si un traitement homomorphique direct de « longs » messages était réellement possible ou non, ou s'il pouvait être exécuté efficacement ou non. En particulier, la mise en place d’un tel schéma de chiffrement a nécessité d’élaborer un nouveau schéma de multiplication homomorphe et une nouvelle méthode de boostrapping. Ce n'est qu'une fois ces nouveaux outils mis au point que les inventeurs ont pu être sûrs de la faisabilité et de l’intérêt d’un tel schéma, à décomposition via the théorème des restes chinois. [0023] Ces nouveaux outils (nouveau boostrapping, et nouvelle multiplication homomorphe pour sous-messages « longs » non-binaires) sont décrits en détail dans la demande de brevet PCT/IB2020/001147, non encore publiée, et qui a été déposée par le même déposant. [0024] Cette avancée, basée sur ces nouveaux outils de calcul homomorphe, et sur cette utilisation du théorème des restes chinois, permet de traiter des messages longs (pouvant prendre par exemple 7×11×13×17×19 = 323323 valeurs différentes). [0025] Néanmoins, comme indiqué en préambule, une opération très utile dans le domaine du traitement de données (en particulier pour le traitement de bases de données à caractère personnel ou privé) est la comparaison de deux messages (de deux données) l’un avec l’autre, par exemple pour trier une base de données ou pour réaliser des extractions dans celle-ci. [0026] Une manière de comparer deux messages (pour déterminer lequel est le plus grand) est de calculer leur différence, puis de déterminer le signe de la différence. [0027] Le calcul homomorphe de la différence de deux messages, construits comme indiqué ci-dessus (à partir de sous-messages indépendants, via le théorème des restes chinois), ne pose pas de difficulté particulière, et peut être réalisée composante par composante. En revanche, la détermination homomorphe du signe d’un tel message présente des difficultés.
[0028] En effet, le signe du message « complet » μ n’a pas de lien avec les signes respectifs des différentes composantes μi qui le compose. Le signe du message p ne peut donc pas être déterminé composante par composante.
[0029] Cela est illustré par l’exemple numérique suivant, où
Figure imgf000008_0001
Les deux messages ont tous deux un signe positif ; Leurs
Figure imgf000008_0002
Les signes des
Figure imgf000008_0003
composantes du message sont donc (-1 ,1 ) pour le message 2/15, et (1 ,1 ) pour le message 7/15 alors que ces messages sont tous les deux positifs, ce qui illustre bien que le signe du message complet ne peut pas être déduit du signe de ses composantes.
[0030] Or la détermination du signe du message complet p, directement à partir du message chiffré complet c (et sans déchiffrement de ses composantes), pose des difficultés, à cause de la discontinuité de la fonction signe en 0 et à cause de la composante de bruit e présente dans le message chiffré complet c (avec e = Err(μ ) = composante qui est nettement plus importante que pour les messages
Figure imgf000008_0004
individuels pi. Ainsi, lorsque μ est assez proche 0, du fait de cette composante de bruit importante pour c, une détermination (homomorphe) fiable du caractère positif ou négatif de μ, directement à partir du message chiffré c, n’est plus possible.
[0031] Cette difficulté est d’autant plus marquée que les valeurs de p, qui appartiennent à Tp, p=p1x...xpq, peuvent être nettement plus proches de 0 que les valeurs des messages individuels μ1 ... μq, qui appartiennent, elles à Tpi, ou TPi. Autrement dit, les différents éléments du tore discret Tp sont beaucoup plus proches les uns des autres que les éléments du tore discret Tp1, ou Tpi (en plus d’être affectés par une composante de bruit plus importante).
[0032] On notera que les difficultés en question se posent lorsque la valeur de p est proche de 0 ou des extrémités 1/2 et -1/2 du tore. En revanche, pour les valeurs éloignées de ces points (par exemple pour les valeurs proches de 1 /4, ou de -1/4), une détermination fiable du signe du message p est possible directement, à partir de son chiffré c, via une opération de bootstrapping incluant l’évaluation de la fonction signe. [0033] Pour surmonter la difficulté mentionnée ci-dessus, deux techniques ingénieuses ont été mises au point par les inventeurs.
[0034] La première technique permet de mettre à l’échelle le message u, plus précisément de le dilater, en opérant directement sur sa version chiffrée c, sans dilater en ne dilatant la de bruit e. Cette opération de dilatation, réalisée éventuellement pour plusieurs coefficients de dilatation de plus en plus grands, permet (s’il y a lieu) de faire sortir le message du voisinage de 0 pour l’amener dans une zone où son signe peut être déterminé de manière faible, avec une probabilité d’erreur très faible, comme illustré schématiquement sur la figure 8.
[0035] Cette dilatation de la valeur du message, mais pas du bruit associé, est réalisée en calculant le message chiffré dilaté C[1] comme suit : c[1] = où le coefficient de dilatation p est un nombre impair,
Figure imgf000009_0001
supérieur ou égal à 3.
[0036] Ainsi, dans la somme plutôt que de multiplier le sous-message
Figure imgf000009_0002
chiffré Ci par (ce qui augmenterait sa composante de bruit), c’est le coefficient vi que l’on multiplie par
Figure imgf000009_0004
[0037] Et comme les coefficients de Bézout sont définis à chacun à pi près (i.e. : modulo pi), on peut conserver une valeur réduite pour le ‘coefficient’ qui
Figure imgf000009_0003
multiplie Ci, dans cette somme, ce qui permet de dilater c (plus précisément : dilater p), en ne dilatant quasiment pas sa composante de bruit e.
[0038] Cette opération de dilatation sans bruit est très utile si la valeur du message p est proche de 0, comme expliqué ci-dessus. En revanche, si la valeur de p est déjà suffisamment grande avant dilatation (par exemple proche de 1/4), l’opération de dilatation, en augmentant la valeur de p, va modifier son signe (du fait de la cyclicité du tore), conduisant ainsi à un résultat erroné. Il faudrait donc ne dilater le message que si nécessaire.
[0039] Mais justement, dans un protocole de cryptographie homomorphe, la valeur initiale du message n’est pas connue, et les opérations sont exécutées en quelque sorte en aveugle, toujours sous forme chiffrée. Ainsi, on ne peut pas savoir, a priori, s’il est nécessaire de dilater le message, ou s’il faut, au contraire s’abstenir de le dilater. [0040] Une deuxième technique, mise en œuvre dans ce procédé, consiste alors à sommer : - le signe (dans sa version chiffrée) du message non dilaté p, sachant que 0 est attribué si le message p est située dans une zone d’incertitude, comprenant notamment un intervalle central, centré sur 0, de largeur e, avec - le signe (dans sa version chiffrée) du message dilaté pm, ce signe étant affecté d’un coefficient d’atténuation att[i] qui réduit sa contribution, par rapport au signe du message initial p.
[0041] Ainsi, si le message initial p a une valeur assez grande pour déterminer son signe sans erreur, c’est le premier terme qui dominera, dans cette somme (grâce au coefficient d’atténuation att[i]), et qui fixera le signe de l’ensemble de la somme (tandis que le signe du dilaté, qui est « faux », verra sa contribution écrasée).
[0042] Au contraire, si le message initial est dans la zone d’incertitude en question (avec un signe ne pouvant être déterminé de manière fiable), alors, dans cette somme, le premier terme est nul, et le signe de la somme est fixé par le signe du dilaté, qui, cette fois-ci, a au contraire une valeur correcte, correspondant au signe de c lui-même.
[0043] Cette procédure, de somme pondérée par des coefficients de plus en plus petits, peut être généralisée au cas où plusieurs dilatations successives sont nécessaires pour sortir de la zone d’incertitude.
[0044] Pour déterminer de manière homomorphe le signe du message p à partir de son chiffré c, mais en affectant la valeur 0 à ce résultat lorsque le message se trouve dans la zone d’incertitude en question, on applique de manière homomorphe une fonction ge ou att[o].ge à p (cette fonction étant appliquée lors d’un boostrapping avec calcul de fonction intégré), où ge est une fonction en escalier : - qui est nulle sur un intervalle central ]-e/2, e/2[, qui a deux valeurs distinctes, par exemple -1 et +1 (cas de la figure 9), de - part et d’autre de cet intervalle central, et - qui est nulle près des extrémités du tore, sur les intervalles ]1/2-e/2, 1/2[ et [-1/2, -1/2+e/2[. [0045] Les deux techniques mentionnées ci-dessus permettent une détermination homomorphe du signe d’un message, décomposé en sous-messages sur la base du théorème des restes chinois. Elles permettent plus généralement d’appliquer n’importe quelle fonction constante par morceau à un tel message (par exemple la fonction de Heaviside, ou une autre fonction ayant plus de deux morceaux distincts, sur l’intervalle [-1/2, 1/2[.
[0046] Outre les caractéristiques mentionnées ci-dessus, le procédé qui vient d’être présenté peut comporter une ou plusieurs des caractéristiques optionnelles suivantes, considérées individuellement ou selon toutes les combinaisons techniquement envisageables : - l’étape de mise à l’échelle comprend des déterminations de plusieurs messages chiffrés dilatés c[k], l’entier k variant de 1 à K-1 , chaque message chiffré dilaté étant déterminé conformément à la formule suivante c[k] =
Figure imgf000011_0005
, et dans lequel le caractère positif ou négatif du message p est déterminé en fonction de c et en fonction des différents messages chiffrés dilatés
Figure imgf000011_0006
- l’étape de fusion comprend une étape de fusion d’un paquet au cours de laquelle la somme suivante est calculée :
Figure imgf000011_0004
Fm(c[m]), où Fk désigne une opération de calcul homomorphe de la quantité att[k].ge, où att[k] est un coefficient d’atténuation inférieur à 1 , la suite de coefficients att[k], k=0..m étant décroissante et telle : que la somme des coefficients d’atténuation, successifs à l’un des coefficients d’atténuation donné de la suite, est inférieure audit coefficient d’atténuation donné ; il s’agit par exemple d’une suite géométrique de raison inférieure à
Figure imgf000011_0003
- m est inférieur à K ; - l'étape de fusion comprend les étapes suivantes
S1 : fusions par paquets, chaque paquet regroupant m termes, chaque fusion d'un paquet correspondant au calcul du résultat intermédiaire
Figure imgf000011_0001
i étant le numéro du paquet,
Figure imgf000011_0002
- S2 : fusions par paquets des résultats intermédiaires resi, chaque fusion d'un paquet de m’ résultats intermédiaires correspondant au calcul d’un nouveau résultat intermédiaire res'j =
Figure imgf000012_0001
étant le numéro du paquet, désignant une opération de calcul
Figure imgf000012_0002
homomorphe d’une quantité
Figure imgf000012_0011
- l'étape S2 étant répétée jusqu'à n'obtenir qu'un seul résultat, auquel est appliqué l’opération
Figure imgf000012_0003
, qui fournit un résultat final qui est une version chiffrée du signe du message μ. - le nombre K-1 de messages chiffrés dilatés pris en compte est tel que
Figure imgf000012_0004
Figure imgf000012_0005
- lequel la largeur ε de l’intervalle central est inférieure à
Figure imgf000012_0006
[0047] La présente technologie concerne également un procédé pour appliquer de manière homomorphe la fonction de Heaviside H, qui est nulle pour les valeurs négatives et égale à 1 sinon, le procédé comprenant l’exécution du procédé de détermination du caractère positif ou négatif du message μ tel que décrit ci-dessus, la fonction gε étant choisie nulle pour les valeurs négatives et égale à 1 pour les valeurs positives.
[0048] La présente technologie concerne aussi un procédé pour appliquer de manière homomorphe une fonction f constante par morceaux à un message μ, la fonction f ayant t morceaux distincts, le procédé comprenant : - une décomposition de la fonction f sous la forme d’une combinaison linéaire de fonctions de Heaviside translatées, soit où les
Figure imgf000012_0007
coefficients αj sont des entiers et où les abscisses
Figure imgf000012_0008
des points de discontinuité appartiennent à l’intervalle [-1/4, 1/4], - un calcul de la quantité chaque terme étant
Figure imgf000012_0009
Figure imgf000012_0010
déterminé, de manière homomorphe, conformément au procédé pour appliquer de manière homomorphe la fonction de Heaviside H qui vient d’être présenté. [0049] La présente technologie concerne aussi un procédé pour déterminer de manière homomorphe le maximum de deux messages µa et µb, à partir des messages chiffrés correspondants ca et cb, sans déchiffrement des messages chiffrés ca et cb, le procédé comprenant : - une détermination homomorphe de la quantité H(µa - µb), la fonction de Heaviside H étant appliquée comme indiqué ci-dessus, la version chiffrée de H(µa - µb) ainsi déterminée étant notée h, et - le calcul de la quantité Maxh=h.ca+(1-h).cb - ou, une détermination homomorphe de la quantité H(µb - µa), la fonction de Heaviside H étant appliquée comme indiqué ci-dessus, la version chiffrée de H(µb - µa) ainsi déterminée étant notée h’, et le calcul de la quantité h’.cb+(1-h’).ca . [0050] La présente technologie concerne aussi un procédé pour déterminer de manière homomorphe le minimum de deux messages µa et µb, à partir des messages chiffrés correspondants ca et cb, sans déchiffrement des messages chiffrés ca et cb, le procédé comprenant : - une détermination homomorphe de la quantité H(µa - µb), la fonction de Heaviside H étant appliquée comme indiqué ci-dessus, la version chiffrée de H(µa - µb) ainsi déterminée étant notée h, et - le calcul de la quantité Minh=h.cb+(1-h).ca - ou, une détermination homomorphe de la quantité H(µb - µa), la fonction de Heaviside H étant appliquée comme indiqué ci-dessus, la version chiffrée de H(µb - µa) ainsi déterminée étant notée h’, et le calcul de la quantité h’.ca+(1-h’).cb . [0051] La présente technologie concerne aussi un procédé de tri d’une base de données, la base de données comprenant au moins, dans un premier emplacement de la base de données, un premier message chiffré ca, et dans un deuxième emplacement de la base de données, un deuxième message chiffré cb, le procédé comprenant au moins une écriture, dans le premier emplacement, de la quantité Maxh déterminée conformément au procédé présenté ci-dessus, ou de la quantité Minh, déterminée conformément au procédé présenté ci-dessus. [0052] Selon un aspect de la présent technologie, l'un quelconque des procédé présentées ci-dessus est exécuté par un ordinateur (programmé ou autrement agencé pour exécuter le procédé en question), c'est-à-dire un dispositif ou un système électronique (éventuellement réparti entre plusieurs dispositifs distants, à distance) comprenant au moins un processeur pour exécuter des opérations logiques, et un dispositif de mémoire pour stocker des données. [0053] La présente technologie concerne aussi une méthode de communication et traitement chiffrés, comprenant les étapes suivantes : - chiffrement d’au moins un message µ, avec une clef privée s, par un client, sous la forme d’un message chiffré c, par une méthode de type apprentissage avec erreur, le message µ appartenant au tore discret
Figure imgf000014_0003
ou à un espace en bijection avec
Figure imgf000014_0004
Figure imgf000014_0001
avec , les entiers pi étant premiers entre eux, le message chiffré
Figure imgf000014_0005
c=(c1,...ci,...cq) étant formé de q composantes ci, avec
Figure imgf000014_0007
étant le coefficient de Bézout associé à l’entier pi
Figure imgf000014_0002
, défini par
Figure imgf000014_0006
- transmission du message chiffré c, ou d’une base de données chiffrée contenant le message chiffré c, par le client, à un serveur distinct du client et ne disposant pas de la clef privée s, via un canal de communication, - traitement du message chiffré c, ou d’une différence entre le message chiffré c et un autre message chiffré, ou de la base de données chiffrées contenant le message chiffré c, par le serveur, de manière homomorphe, conformément à l’un quelconque des procédé décrits ci-dessus, - émission du résultat dudit traitement homomorphe, par le serveur. [0054] Dans cette méthode, l’étape de chiffrement est optionnelle. Par ailleurs, l’étape de transmission ou celle d’émission pourrait être omise, dans cette méthode. [0055] La présente technologie concerne aussi un serveur de traitement cryptographique, comprenant au moins un module de communication et un module de calcul : - le module de communication étant configuré pour recevoir, de la part d’une entité externe au serveur, un message chiffré c ou une base de données chiffrée contenant le message chiffré c, le message chiffré c correspondant à un message µ chiffré par une méthode de type apprentissage avec erreur, le message µappartenant au tore discret
Figure imgf000015_0001
p ou à un espace en bijection avec
Figure imgf000015_0003
les entiers pi
Figure imgf000015_0002
étant premiers entre eux, le message chiffré c=(c1,...ci,...cq) étant formé de q composantes ci, avec étant le coefficient de
Figure imgf000015_0004
Bézout associé à l’entier pi, défini par
Figure imgf000015_0005
- le module de calcul étant programmé pour traiter le message chiffré c, ou une différence entre le message chiffré c et un autre message chiffré, ou la base de données chiffrée contenant le message chiffré c, de manière homomorphe, sans déchiffrement du message c, conformément à l’un quelconque des procédés (de traitement) décrits ci-dessus. [0056] Le module de communication peut être configuré pour émettre aussi le résultat dudit traitement homomorphe. [0057] La présente technologie concerne aussi un système cryptographique comprenant : - le serveur de traitement cryptographique tel que décrit ci-dessus, - un client, configuré pour chiffrer au moins le message µ, sous la forme du message chiffré c, et pour communiquer le message chiffré c, ou une base de données chiffrée contenant le message chiffré c, au serveur via un canal de communication. [0058] La présente technologie et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent. BREVE DESCRIPTION DES FIGURES [0059] Les figures sont présentées à titre indicatif et nullement limitatif. [0060] [Fig. 1] représente schématiquement un système cryptographique mettant en œuvre la présente technologie. [0061] [Fig. 2] représente schématiquement un exemple de réalisation d’un serveur de traitement cryptographique pouvant être employé dans le système de la figure 1. [0062] [Fig.3] représente schématiquement un autre exemple de réalisation d’un serveur de traitement cryptographique pouvant être employé dans le système de la figure 1. [0063] [Fig. 4] représente schématiquement encore un autre exemple de réalisation d’un serveur de traitement cryptographique pouvant être employé dans le système de la figure 1, notamment pour réaliser des opérations de traitement de bases de données chiffrées. [0064] [Fig.5] représente schématiquement une opération de chiffrement mise en œuvre dans un tel système. [0065] [Fig. 6] représente schématiquement une opération d’addition homomorphe, composante pas composante, pour deux messages qui ont été chiffrés en employant l’opération de chiffrement de la figure 5. [0066] [Fig. 7] représente schématiquement une opération de multiplication homomorphe, composante pas composante, entre deux messages qui ont été chiffrés en employant l’opération de chiffrement de la figure 5. [0067] [Fig. 8] représente schématiquement l’effet d’une opération de mise à l’échelle sur un message dont on cherche à déterminer le signe. [0068] [Fig. 9] représente schématiquement une fonction employée pour déterminer, de manière homomorphe, le caractère positif ou négatif d’un tel message. [0069] [Fig.10] représente schématiquement une méthode de fusion par paquets, employée pour déterminer, de manière homomorphe, le caractère positif ou négatif d’un tel message. [0070] [Fig. 11] montre un algorithme (en pseudocode) mettant en œuvre cette méthode de fusion par paquets. [0071] [Fig.12] regroupe, sous forme d’un tableau, des valeurs de coefficients de Bézout, et de coefficients de Bézout « dilatés » employée pour déterminer, de manière homomorphe, le caractère positif ou négatif d’un tel message, pour un exemple de réalisation. DESCRIPTION DETAILLEE [0072] La figure 1 représente, de manière synoptique, un système cryptographique 1 comprenant : - un serveur de traitement cryptographique, 3, et - une entité 2, distincte du serveur 3, configurée pour transmettre au serveur 3 un ou des messages, sous forme chiffrée, par exemple sous la forme d’une base de données chiffrée DB. [0073] Le serveur 3 est configuré pour effectuer des opérations de traitement (application de fonction, comparaison, trie) sur le ou les messages chiffrés reçus, et cela de manière homomorphe, c’est-à-dire sans déchiffrement des messages. Le serveur 3 ne dispose d’ailleurs pas de la clef de chiffrement privé ayant servi à produire le ou les messages chiffrés, à partir d’un ou plusieurs messages en clair non chiffrés. [0074] L’entité en question, 2, distincte du serveur de traitement, peut-être une base de données externe, ou un client (au sens informatique), configuré pour chiffrer un ou des messages (et, éventuellement, pour collecter au préalable ces messages), avec une clef privé s, avant de transmettre le ou les messages chiffrés correspondant au serveur 3, le ou les messages étant par exemple accompagnés d’une requête de traitement. [0075] Un canal de communication 5 relie l’entité 2 et le serveur 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’agit s’agir d’un canal de communication sans fil, ou de communication filaire. L’entité 2 et le serveur 3 peuvent être distants l’un de l’autre, par exemple être situés dans des bâtiments différents. Mais il peut aussi s’agir d’entités 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). [0076] Le système cryptographique 1 peut aussi comprendre une entité destinataire 4, distincte du serveur 3, le résultat du traitement homomorphe réalisé par le serveur 3 (résultat qui est lui-même chiffré) étant transmis à cette entité destinataire 4, via un canal de communication 6. 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. [0077] Le serveur 3 comprend un module de communication, pour recevoir et/ou émettre des données (en pratique un ou des messages chiffrés, regroupés par exemple sous la forme de la base de données chiffrée DB), et un module de calcul, pour réaliser les opérations de traitement homomorphe mentionnées plus haut. [0078] Les modules en question peuvent prendre 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 lui-même peut ainsi prendre la forme d’un dispositif électronique propre. [0079] Les modules en question 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 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). [0080] Le serveur 3 peut être programmé pour réaliser de manière homomorphe différentes opérations de traitement. [0081] Il peut par exemple être programmé pour appliquer une fonction par morceaux à un message. C’est le cas pour le serveur 30 correspondant à l’exemple de réalisation de la figure 2. La fonction par morceaux en question peut par exemple être la fonction signe Sign (qui vaut +1 si le message est positif, -1 s’il est négatif, et 0 si le message est nul), ou la fonction de Heaviside H (qui vaut 0 si le message est nul ou négatif, et +1 sinon), ou une fonction par morceaux f à plus de deux morceaux. [0082] Le serveur peut aussi être programmé pour comparer deux messages chiffrés ca et cb, en déterminant le maximum ou le minimum de ces deux messages. C’est le cas pour le serveur 31 correspondant à l’exemple de réalisation de la figure 3. [0083] Le serveur peut aussi être programmé pour effectuer un tri (classement) de tels messages, afin de trier une base de données chiffrée DB (sans la déchiffrer), pour produire une base de données DB’ totalement ou partiellement triée, par exemple. C’est le cas pour le serveur 32 correspondant à l’exemple de réalisation de la figure 4. [0084] Ces différentes applications s’appuient sur un outil commun, qui est un procédé de détermination homomorphe du caractère positif ou négatif d’un message (par exemple via le calcul homomorphe de la fonction signe, ou de la fonction de heaviside), ou, plus généralement, de détermination de la position de ce message par rapport à une discontinuité d’une fonction par morceaux. [0085] Dans la suite, on décrit : - le schéma de chiffrement employé, basé sur la méthode de chiffrement dite « apprentissage avec erreur », et sur une décomposition basée sur le théorème des restes chinois, puis - le procédé de détermination homomorphe du caractère positif ou négatif d’un message. [0086] Enfin, on donne des détails supplémentaires concernant les applications en question. [0087] Schéma de chiffrement [0088] Comme indiqué plus haut, le schéma de chiffrement employé s’appuie sur une décomposition en composantes, ou autrement dit en sous-messages, basée sur le théorème des restes chinois. [0089] Dans ce schéma, chaque message initial x, non chiffré, appartient à
Figure imgf000019_0003
Figure imgf000019_0001
avec les entiers pi
Figure imgf000019_0002
étant premiers entre eux. [0090] Ce message peut donc être décomposé en q composantes xi, appartenant chacune à
Figure imgf000019_0004
avec xi=x mod(pi) (c’est-à-dire modulo(pi)), pour i=1…q. Cette décomposition est réalisée lors de l’étape D, sur la figure 5. [0091] Pour chaque composante xi, une composante réduite µi = xi/pi appartenant au tore discret Tpi est ensuite calculée, ici. [0092] Le message (en clair) µ=x/p, associé à x, et qui appartient au Tore discret Tp, peut ainsi être décomposé en ces q composantes µi, avec
Figure imgf000019_0005
[0093] Inversement, il est possible de reconstruire le message complet µ à partir de ses composantes µi, en calculant la quantité suivante :
Figure imgf000020_0001
étant le coefficient de Bézout associé à l’entier pi, défini par
Figure imgf000020_0002
[0094] Chaque composante µi est ensuite chiffrée, lors de l’étape E, selon la méthode dite apprentissage avec erreur, avec une clef privée s, pour déterminer une composante chiffrée ci. La composante chiffrée ci=(ai,bi) est déterminée comme suit: - sélection aléatoire d’un vecteur ai, et - calcul de la quantité bi=µi+ei+ai.s où ei est une composante de bruit, ajoutée à µi+ai.s. [0095] Lorsque µi appartient, comme ici, à Tpi, la composante de bruit ei appartient au tore T=[-1/2,1/2[. [0096] Le message chiffré complet peut être représenté par ses q composantes ci, i=1…q, sous la forme C=(c1,...ci,...cq). Le message chiffré complet peut aussi être reconstruit explicitement, à partir de ces composantes, sous la forme
Figure imgf000020_0003
ce qui correspond directement à une version chiffrée de µ
Figure imgf000020_0004
(chiffrement par apprentissage avec erreur, avec la même clef s). Le terme b du message chiffré c=(a,b) appartient au tore T=[-1/2, 1/2[, de même que les termes bi de ses différentes composantes ci=(ai,bi). [0097] Pour déchiffrer c (ou, de manière équivalente, C) chaque composante ci est déchiffrée (pour obtenir la composante en clair µi), avant de recomposer le message complet en clair µ. [0098] Chaque composante ci est déchiffrée, par un module de déchiffrement disposant de la clef privée s, en calculant la quantité bi-ai.s (qui est égales à µi+ei), et en arrondissant le résultat à la plus proche valeur du tore discret Tpi, retirant ainsi la composante de bruit ei pour obtenir finalement µi. [0099] La composante chiffrée ci, obtenue en chiffrant ainsi la composante µi peut aussi être notée
Figure imgf000020_0005
[0100] Le schéma de chiffrement est présenté ci-dessus dans le cas où le message µ appartient au tore discret Tp. Ce schéma de chiffrement peut toutefois être appliqué aussi lorsque le message µ appartient à un ensemble discret en bijection avec Tp, par exemple lorsque le message appartient à
Figure imgf000021_0001
Figure imgf000021_0002
[00101] Quoi qu’il en soit, comme indiqué dans la partie « résumé », ce schéma de chiffrement, basé sur une décomposition selon le théorème des restes chinois, permet de réaliser de manière très efficace des opérations sur le message µ (ou, de manière équivalente, sur le message x), de manière homomorphe, directement à partir du message chiffré C=(c1,...ci,...cq), sans déchiffrer C. En effet, plusieurs opérations, dont l’addition, la soustraction, la multiplication, et le boostrapping (ou « rafraichissement ») peuvent être réalisée directement à partir du message C, en traitant les composantes ci de c indépendamment les unes des autres (et donc, possiblement, en parallèle les unes des autres), et sans avoir à propager de retenue. [00102] L’addition homomorphe de deux messages C1 et C2 tels que décrits ci- dessus, chacun sous forme cryptée, est ainsi réalisée comme suit (figure 6) :
Figure imgf000021_0003
la quantité
Figure imgf000021_0009
étant égale à la somme terme à terme de
Figure imgf000021_0004
Figure imgf000021_0005
[00103] De même, la multiplication homomorphe de tels messages C1 et C2 tels que décrits ci-dessus, chacun sous forme cryptée, est réalisé comme suit (figure 7): [00104]
Figure imgf000021_0006
[00105] où
Figure imgf000021_0007
désigne une opération de multiplication homomorphe de deux messages appartenant à Tpi×Tpi, décrite en détail dans la demande de brevet PCT/IB2020/001147, non encore publiée, et qui a été déposée par le même déposant (paragraphes 118 à 134, et revendication initiale 6 de cette demande antérieure ; dans cette demande antérieure, les notations sont généralement identiques aux notations employées ici, mais la notation µ remplace la notation m, et la notation q remplace la notation r). [00106] De la même manière, une version « rafraichie » C’ du message chiffré C peut être déterminée en calculant, composante par composante, la quantité suivante où G désigne une opération de bootstrapping pour
Figure imgf000021_0008
messages appartenant à Tpi (et qui applique en même temps une fonction g au message en clair). Cette opération de boostrapping est décrite plus en détail dans la demande de brevet PCT/IB2020/001147 précitée, aux paragraphes 85 à 117, et dans la revendication initiale 3 de cette demande antérieure. [00107] Détermination homomorphe du caractère positif ou négatif d’un message [00108] Comme expliqué dans la partie « résumé », contrairement aux opérations d’addition, soustraction, multiplication et boostrapping, le signe du message µ ne peut pas être déterminé, à partir des signes respectifs des composantes de ce message. [00109] Et déterminer directement le signe du message µ, à partir de sa version chiffrée c présente des difficultés (expliquées en détail dans la partie « résumé »), car le message chiffré c est affecté d’une composante de bruit importante
Figure imgf000022_0002
, qui empêche une détermination fiable du signe lorsque µ est proche de 0.
Figure imgf000022_0001
[00110] D’ailleurs, plus généralement, comme les éléments de Tp sont proches (plus proches les uns des autres que ceux de Tpi), et comme la composante de bruit e est importante (plus grande que la composante de bruit ei affectant la composante ci), il n’est généralement pas possible de déchiffrer directement, de manière fiable, le message chiffré c (le déchiffrement passant par un déchiffrement de chaque composante ci, puis une recomposition de µ). [00111] A titre d’exemple, - pour
Figure imgf000022_0003
23, - et pour des composantes de bruit individuelles ei dont l’amplitude est choisie de manière à obtenir un déchiffrement correct pour chaque composantes ci, avec une probabilité de 1-10-10, - on peut démontrer que la probabilité d’un déchiffrement erroné d’un message µ appartenant à Tp est supérieure à 0,65, ce qui montre bien qu’un déchiffrement direct et fiable de c (ou une détermination directe et fiable de son signe) n’est pas possible en pratique. [00112] Comme expliqué dans la partie « résumé », deux techniques originales sont proposées pour surmonter cette difficulté, et afin de déterminer de manière homomorphe la caractère positif ou négatif du message μ, de manière fiable, à partir directement de sa version chiffrée complète c. Il s’agit en l’occurrence d’une technique de mise à l’échelle sans bruit (ou avec peu de bruit) ajouté, et d’une technique de fusion de signes, présentées plus en détail ci-dessous.
[00113] Mise à l’échelle sans bruit
[00114] Lorsque le message p est proche 0, ou des bords 1/2 et -1/2 du tore T, il se trouve dans une zone d’incertitude, où son signe ne peut pas être déterminé de manière fiable.
[00115] Une opération de mise à l’échelle, plus précisément de dilatation, qui, de manière remarquable, n’augmente pas le bruit affectant le message, peut alors permettre de faire sortir la valeur du message de cette zone d’incertitude (figure 8). La zone d’incertitude en question correspond aux intervalles : ]-e/2,e/2[, ]1/2-e/2, 1/2[ et [- 1/2, -1/2+e/2[ (où e est un paramètre, présenté plus loin).
[00116] Cette opération de mise à l’échelle consiste à calculer un message chiffré dilaté c[1], à partir du message c (plus précisément, à partir de ses composantes Ci), conformément à la formule suivante où le
Figure imgf000023_0004
coefficient de dilatation p est un nombre impair supérieur ou égal à 3, et inférieur à p.
[00117] Comme expliqué plus haut, cette opération permet de dilater le message μ, mais sans augmenter (ou n’en augmentant que peu) la composante de bruit associée.
[00118] On comprend qu’une telle dilatation permet, pour certaines valeurs de p, de faire sortir la valeur en question de la zone d’incertitude. Mais, pour d’autres valeurs plus petites, une dilatation plus importante peut être nécessaire pour sortir de cette zone d’incertitude.
[00119] De manière remarquable, en considérant la suite on
Figure imgf000023_0003
montre que, pour
Figure imgf000023_0002
- Si
Figure imgf000023_0001
alors il existe un entier
Figure imgf000023_0005
tel que pour tout on
Figure imgf000023_0006
a tandis que
Figure imgf000023_0008
autrement dit, dans la suite
Figure imgf000023_0007
il existe bien un coefficient de dilatation pour lequel le message dilaté
Figure imgf000023_0010
est hors de la zone d’incertitude (i.e. : de signe déterminable) et de
Figure imgf000023_0009
même signe que µ (dans la suite il s’agit du premier coefficient de dilatation pour lequel sort de la zone d’incertitude), et
Figure imgf000024_0001
- Si
Figure imgf000024_0002
alors il existe un entier
Figure imgf000024_0003
tel que pour tout
Figure imgf000024_0004
on a tandis que
Figure imgf000024_0005
Figure imgf000024_0006
Figure imgf000024_0007
[00120] Démonstration de l’existence de k* et encadrement de sa valeur [00121] Ce résultat peut être démontré comme suit. [00122] Toute d’abord, on note que :
Figure imgf000024_0008
[00123] Par ailleurs, si / ∈ 1/2 ^ a′, 1/2 , alors 1/2 ^ / ∈!0, a′!, et, de même que ci- dessus, on a :
Figure imgf000024_0009
[00124] En prenant le symétrique modulo 1, on obtient alors que si
Figure imgf000024_0015
alors mod
Figure imgf000024_0016
Figure imgf000024_0017
[00125] Supposons maintenant que
Figure imgf000024_0018
, Soit
Figure imgf000024_0019
le plus grand entier tel que p"0/ ∈!0, a′ pour tout k=1..k*-1. Un tel entier existe puisque
Figure imgf000024_0020
∞ si k → ∞. Alors, comme p"0/ ` a′, on a
Figure imgf000024_0010
[00126] Ainsi, en utilisant que on obient que
Figure imgf000024_0021
Figure imgf000024_0022
existe, et vaut où désigne la valeur entière immédiatement
Figure imgf000024_0011
Figure imgf000024_0012
supérieure. [00127] Une démonstration symétrique montre que, lorsque
Figure imgf000024_0023
existe aussi et vaut
Figure imgf000024_0013
[00128] En considérant la plus petite valeur de µ sur Tp, à savoir 1/(2p), ainsi que la valeur la plus proche de 1/2, à savoir 1/2 – 1/(2p), on obtient par ailleurs l’encadrement suivant pour k* :
Figure imgf000024_0014
[00129] Et, plus particulièrement, en considérant la plus grande valeur de e’ adaptée à ce protocole, à savoir on a aussi :
Figure imgf000025_0001
Figure imgf000025_0002
[00130] Comme la valeur du message p n’est pas connue (puisque chiffrée), il est prévu, lors de l’étape de mise à l’échelle, de calculer plusieurs messages chiffrés dilatés c[k], avec un coefficient de dilatation
Figure imgf000025_0003
de plus en plus grand, jusqu’à être sûr que la valeur du message dilaté soit sortie de la zone d’incertitude.
Figure imgf000025_0004
[00131] Autrement dit, on calcule plusieurs messages chiffrés dilatés c[k], avec un coefficient de dilatation
Figure imgf000025_0005
pour k=1 ...K-1 , avec K choisi suffisamment grand pour que K-1 soit supérieur ou égal à l’entier k* présenté ci-dessus (i.e. : de manière à être sûr, que, dans la suite k=1 ...K-1 , on sorte à un moment de la zone d’incertitude).
Figure imgf000025_0006
[00132] Pour cela, vu l’encadrement de la valeur de k* établit ci-dessus, on choisit ici K de sorte que
Figure imgf000025_0007
[00133] K peut ainsi être choisi comme suit : voire comme
Figure imgf000025_0008
suit .
Figure imgf000025_0009
[00134] Lors de l’étape de mise à l’échelle, chaque message chiffré dilaté est déterminé conformément à la formule suivante
Figure imgf000025_0010
k=1 ...K-1 .
[00135] Comme expliqué dans la partie « résumé », dans la suite
Figure imgf000025_0014
pour k<k*, le signe de ne peut généralement pas être déterminé de
Figure imgf000025_0011
manière fiable à partir de sa version chiffrée c[k], pour k=k*, le signe de
Figure imgf000025_0012
peut être déterminé de manière fiable à partir de sa version chiffrée c[k], et il est égal au signe du message μ, et pour k > k*, le signe de peut être faux, c’est-à-dire ne plus être égal au
Figure imgf000025_0013
signe de p.
[00136] Le différents messages chiffrés dilatés c[k], k=1..K-1 sont alors pris en compte d’une particulière, lors de l’étape de fusion, pour déduire de ces messages chiffrés le signe du message p (signe qui est d’ailleurs obtenu lui aussi sous forme chiffrée, puisqu’il s’agit d’un procédé de calcul homomorphe).
[00137] Fusion
[00138] Dans la suite c[k], k=0..K-1 (où c[0]=c), on ne sait pas quel message chiffré dilaté est celui permettant une détermination de signe fiable (i.e.: correspond à un message dilaté situé hors de la zone d'incertitude), et identique au signe de p. Aussi, l'ensemble de ces messages est pris en compte, ici, pour déterminer le signe de p : - a) en affectant la valeur 0 au signe (ou une fonction représentative du signe) de chaque message dilaté, s'il est dans la zone d'incertitude, et - b) en pondérant le signe (ou une fonction représentative du signe) de chaque message dilaté avec un coefficient de pondération att[k] qui décroit lorsque k augmente, pour donner plus de poids au signe du premier message chiffré dilaté de "signe" est non nul (i.e. : premier message dilaté qui est hors de la zone d'incertitude), par rapport aux signes de messages chiffrés dilatés suivants (dont le signe peut être "faux", c'est à dire différent de celui de p).
[00139] Le calcul d'une somme pondérée de ces signes (ou de valeurs représentatives de ces signes) permet alors d'obtenir, de manière homomorphe, un résultat qui est positif, négatif ou nul (par exemple de valeur +1/4, -1/4, 0 ; ou +1/3, - 1/3, 0), selon que le message μ est positif, négatif ou nul.
[00140] En effet, dans cette somme : - les termes correspondant à k<k* sont nuis ; - le premier terme non nul, associé au message dilaté (en pratique, un
Figure imgf000026_0001
terme Fk*(c[k*]), présenté ci-dessous), a un signe qui est celui de μ, et - les termes suivants, correspondant à k>k*, ont possiblement des signes arbitraires, mais ne modifient pas le signe de la somme, du fait du caractère décroissant des coefficients d'atténuation att[k] (plus précisément, du fait que la suite de coefficients att[k] est telle que : la somme des coefficients d’atténuation, successifs à l’un quelconque des coefficients d’atténuation de la suite, est inférieur audit coefficient d’atténuation, ce qui peut être obtenu par exemple avec une suite géométrique de raison inférieure à 1/2). [00141] En pratique, pour mettre en oeuvre cette technique de fusion, on calcule, pour chaque message chiffré dilaté c[k] une quantité Fk(c[k]), où Fk désigne une opération de calcul homomorphe de la quantité ge, où même directement, comme ici, une opération de calcul homomorphe de la quantité att[k].ge, où ge est une fonction en escalier : - qui est nulle sur un intervalle central ]-e/2, e/2[, - qui a deux valeurs distinctes, par exemple -1 et +1 (cas de la figure 9), de part et d’autre de cet intervalle central, et - qui est nulle près des extrémités du tore, sur les intervalles ]1/2-e/2, 1/2[ et [-1/2, -1/2+e/2[.
[00142] Le choix de cette fonction ge (plutôt que de la fonction signe Sign) permet d'attribuer la valeur 0 à un message dilaté situé dans la zone d'incertitude, dans la somme mentionnée ci-dessus.
[00143] En pratique, la quantité Fk(c[k]) est évaluée lors d'une opération de bootstrapping (au cours de laquelle on rafraîchit le bruit, et, en plus, on évalue la fonction considérée).
[00144] Pour ce qui est maintenant du calcul de la somme, c'est à dire de la fusion en elle-même, elle pourrait éventuellement être réalisée directement, en calculant la quantité F0(c) + F1(c[1])+...+ Fk(c[k])+...+ FK-I (C[K-1 ]), notamment lorsque K est petit.
[00145] Dans ce cas, lorsque les deux valeurs distinctes de ge (pour un message respectivement positif et négatif) sont -1 et +1 , les coefficients d'atténuation a(k) sont choisis de préférence tels que leur somme att[o],+...+ att[kj+... att[K-i] soit inférieur à 1/2. Le résultat de ce calcul de somme appartient alors au tore T (ce qui facilite son utilisation ultérieure, dans le schéma de chiffrement employé ici). Cette condition, ainsi que la condition de décroissance particulière mentionnée plus haut, peut être obtenue par exemple en choisissant, pour les coefficients att[k], la valeur A.Rk, où la raison R de cette suite géométrique est inférieure à 1/2, et où A est inférieur à (1 -R)/2.
[00146] Ainsi, à titre d'exemple, on pourrait choisir R=1/2, et A=1/4, soit att[k]=1/22+k.
On pourrait aussi choisir R=1/3, et A=1/3, soit att[kj=1 /31+k.
[00147] Néanmoins, une difficulté se présente lors du calcul d'une telle somme (en particulier si K est grand). Lorsque le premier terme non nul de la suite Fk(c[k]), k=0...K- 1 correspond à une valeur de k assez grande, il est multiplié par un coefficient d'atténuation att[k] petit, et a donc lui-même une valeur petite qui est alors noyée dans le bruit (bruit qui, de manière inhérente, affecte cette somme, puisqu'il s'agit du résultat d'un calcul homomorphe, et qu'il est donc fourni sous forme chiffrée, et donc bruitée). Cet effet peut empêcher une détermination correcte du signe de la somme, et donc du signe du message μ.
[00148] Pour résoudre cette difficulté, on peut, comme ici, fusionner les termes par paquets de quelques termes seulement (pour que, dans chaque paquet, les coefficients d’atténuation restent relativement grands), et cela plusieurs fois de suite pour réaliser cette fusion de manière progressive. Chaque paquet peut, à titre d’exemple, comprendre de 2 à 5 termes.
[00149] Plus précisément, cette fusion par paquets peut être réalisée en exécutant les étapes suivantes : - S1 : fusions par paquets, chaque paquet regroupant m termes, chaque fusion d'un paquet correspondant au calcul du résultat intermédiaire i étant le
Figure imgf000028_0001
numéro du paquet, - S2 : fusions par paquets des résultats intermédiaires resi, chaque fusion d'un paquet de m’ résultats intermédiaires correspondant au calcul d’un nouveau résultat intermédiaire
Figure imgf000028_0002
Figure imgf000028_0003
j étant le numéro du paquet, désignant une opération de calcul homomorphe
Figure imgf000028_0004
d’une quantité
Figure imgf000028_0005
- l'étape S2 étant répétée jusqu'à n'obtenir qu'un seul résultat, auquel est appliqué l’opération
Figure imgf000028_0006
qui fournit un résultat final qui est une version chiffrée du signe du message p.
[00150] On peut par exemple avoir m’=m.
[00151] Cette méthode de fusion progressive par paquets est représentée de manière schématique sur la figure 10 pour un cas où K=8 et où chaque paquet comprend deux termes, soit m=m’=2 (l'étape S2 étant alors exécutée deux fois). [00152] Sur cette figure, chaque flèche représente une opération de boostrapping, avec évaluation de la quantité att[k].ge pour les termes de type Fk(), ou avec évaluation de la quantité pour les termes de type
Figure imgf000029_0002
[00153] s est une autre largeur d'incertitude, employée pour fusionner les résultats intermédiaires mentionnés plus haut (la fonction est définie de la même manière
Figure imgf000029_0003
que ge, mais en remplaçant ε par
Figure imgf000029_0004
est par exemple égal à 1/(2N), où N-1 est le degrés du polynôme spécifique de bootstrapping Wg[X] (voir la revendication 3 de la demande PCT/IB2020/001147,), aussi noté v[X].
[00154] La structure de ce calcul de fusion par paquets reste la même que celle de la figure 10 lorsque K a une valeur différente (différente de 8), et lorsque le nombre m de termes par paquets est différent (différent de 2).
[00155] Ainsi, à titre d’exemple, un algorithme en pseudo-code pour réaliser cette fusion par paquet, pour un exemple de réalisation dans lequel K=27 et m=3 (l’étape S2 étant aussi exécutée deux fois, et l’étape S1 une fois) est représenté sur la figure 1 1.
[00156] Quoiqu’il en soit, lors d’une telle fusion par paquets, pour chaque paquet de m termes, les coefficient atténuation de la somme pondérée, att[k], k=0..m-1 satisfont les mêmes conditions que précédemment (décroissante avec k, somme des coefficients suivants un coefficient donné inférieure à ce coefficient donné, somme complète, de 0 à m-1 , inférieure à 1/2).
[00157] Par commodité, on peut supposer que K=mr (dans l'exemple de la figure
10, m=2 et r = 3, par exemple), et m’=m. Dans ce cas, l’étape S2 est exécutée r-1 fois.
[00158] Dans ce cas, le résultat de l'ensemble de l'opération de fusion progressive par paquets (résultat qui est le signe de μ, chiffré) peut s'exprimer directement comme :
Figure imgf000029_0001
Figure imgf000029_0005
[00159] Considérations sur le bruit [00160] Une démonstration détaillée permet de prouver que le procédé présenté ci- dessus permet effectivement une détermination homomorphe du signe d’un message p, directement à partir du message chiffré c correspondant, avec une probabilité d’erreur très faible.
[00161] A titre d’exemple, dans un cas où : - le message μ appartient à Tp, avec
Figure imgf000030_0001
p8 = 7 x 11 x 13 x 17 x 19 x 23 x 25 x 27 (soit p=5 019 589 575 > 232), en choisissant les valeurs suivantes pour les paramètres du procédé de détermination du signe :
Figure imgf000030_0002
on montre que la probabilité d’erreur dans la détermination homomorphe du signe de μ est inférieure à 1 ,03 .10-9 (ce qui est très faible), - les paramètres du schéma de chiffrement étant quant à eux : n=412 (n est le nombre de composantes de la clef secrète s, qui appartient à Bn, où B={0,1 }, un paramètre de collapsing I valant quant à lui l=4) , N=1024, et un écart-type σ(ei) de la composante de bruit affectant chaque composante Ci qui vaut
Figure imgf000030_0003
(ce qui correspond à un niveau de bruit permettant 200 additions homomorphes sans boostrapping entre elles).
[00162] La figure 12 est un tableau qui, pour cet exemple, regroupe les valeurs des coefficients de Bézout Vj, les valeurs des coefficients de Bézout « dilatés » (ce qui illustre d’ailleurs que ces valeurs restent avantageusement
Figure imgf000030_0004
petites, bien que permettant une dilatation du message), et des valeurs de la quantité qui intervient dans le calcul du bruit affectant les messages chiffrés
Figure imgf000030_0005
dilatés.
[00163] Détails concernant la fonction qε, et son émulation par boostrappinq
[00164] Les détails ci-dessous sont présentés pour un exemple de réalisation pour lequel les coefficients d’atténuation valent att[kj=1 /(22+k). Ils peuvent être transposés à d’autres valeurs des coefficients d’atténuation.
[00165] Tout d’abord, on suppose que :
Figure imgf000030_0006
où les δ[k] de
Figure imgf000031_0001
sont définis par
Figure imgf000031_0002
[00166] Les inventeurs ont alors démontré qu’il existe alors k* tel que
Figure imgf000031_0003
[00167] Emulation de la fonction gε [00168] Comme détaillé dans la demande de brevet PCT/IB2020/001147, le but est de construire un polynôme v[X] tel que,
Figure imgf000031_0004
pour émuler la fonction gε sous forme chiffrée lors d’une opération de boostrapping. [00169] Choix du paramètre ε [00170] Par construction, la fonction
Figure imgf000031_0009
est une fonction constante par morceaux avec de possibles discontinuités aux points tels que
Figure imgf000031_0010
Figure imgf000031_0005
soit
Figure imgf000031_0006
[00171] La fonction gε étant impaire avec des discontinuités à droite en ε/2 et en 1/2-ε/2, un choix naturel pour le paramètre ε est
Figure imgf000031_0007
sous la contrainte
Figure imgf000031_0008
soit
Figure imgf000032_0001
[00172] Construction du polynôme v[X] Pour toute fonction F de Z dans T, 2N-périodique, et telle que
Figure imgf000032_0004
Figure imgf000032_0005
il existe un unique polynôme v de
Figure imgf000032_0003
Figure imgf000032_0006
Les coefficients vj de ce polynôme sont donnés par
Figure imgf000032_0013
3 ,
Figure imgf000032_0007
Pour un k donné, i est donc suffisant de définir F sur {0,…,N-1}, comme suit :
Figure imgf000032_0002
de sorte que
Figure imgf000032_0008
soit
Figure imgf000032_0009
Pour ce choix de polynôme et du paramètre ε, la relation (2) ci-dessus est effectivement satisfaite, sans erreur. Arrondis Lors d’une opération de boostrapping, la valeur prise par µ dans la relation (2) est obtenue à partir de
Figure imgf000032_0014
pour
Figure imgf000032_0015
en arrondissant les valeurs de et dans
Figure imgf000032_0016
comme suit
Figure imgf000032_0010
et en remplaçant par
Figure imgf000032_0011
Figure imgf000032_0012
On notera que d’autres variantes sont envisageables pour réaliser ces arrondis. Le processus d’arrondi en question introduit des erreurs, dont on tient compte via les termes δ[k], dans la formule (1). On a ainsi, en tenant compte de la relation (2) et de la définition des δ[k] :
Figure imgf000033_0001
[00179] La fonction boostrappée complète, qui fournit une valeur chiffrée de est
Figure imgf000033_0002
Figure imgf000033_0003
[00180] On remarquera que la définition des δ[k] peut être changée comme suit
Figure imgf000033_0004
de sorte que la relation (3) reste valable.
[00181] Boostrapping de la fonction signe
[00182] Dans un cas où 1/2k+2 n’est pas trop petit (coefficients d’atténuation pas trop petits), le signe de p peut être obtenu par exemple en calculant la quantité suivante (ce qui correspond à une fusion directe, et non progressive par paquets) :
Figure imgf000033_0005
[00183] Exemples d’applications
[00184] Calcul homomorphe de la fonction de Heaviside
[00185] Pour appliquer de manière homomorphe la fonction de Heaviside H au message p, on applique le procédé de détermination homomorphe du signe présenté ci-dessus, mais en choisissant, pour la fonction gε, les valeurs 0 sur [-1/2+e/2, -e/2], et +1 sur [e/2,1/2-e/2] (au lieu de -1 et +1 ).
[00186] Calcul homomorphe d’une fonction constante par morceaux quelconque
[00187] Pour appliquer une fonction f constante par morceaux quelconque au message p, la fonction f ayant t morceaux distincts, le serveur 3 sera par exemple programmé de manière à exécuter les opérations suivantes : - décomposition de la fonction f sous la forme d’une combinaison linéaire de fonctions de Heaviside translatées, soit
Figure imgf000034_0001
où les coefficients αj sont des entiers et où les abscisses des points de
Figure imgf000034_0010
discontinuité appartiennent à l’intervalle [-1/4, 1/4], - calcul de la quantité chaque terme étant
Figure imgf000034_0002
Figure imgf000034_0003
déterminé, de manière homomorphe, comme indiqué ci-dessus pour la fonction de Heaviside H.
[00188] Comparaison : détermination homomorphe du maximum et du minimum
[00189] Soit μa et μb deux messages, avec ca et cb les messages chiffrés correspondants, obtenus avec le schéma de chiffrement présenté plus haut.
[00190] On note h la version chiffrée de déterminée comme expliqué ci-
Figure imgf000034_0004
dessus (calcul de la fonction de Heaviside).
[00191] Du fait de la linéarité des opérations de chiffrement employées ici, la quantité h.ca+(1 -h).cb est une version chiffrée de qui n’est autre que le maximum max
Figure imgf000034_0005
[00192] Calculer ainsi la quantité Maxh=h.ca+(1 -h). cb permet donc d’obtenir, de manière homomorphe, une version chiffrée de
Figure imgf000034_0006
[00193] De même, calculer la quantité Minh=h.cb+(1 -h).ca permet d’obtenir, de manière homomorphe, une version chiffrée de minimum de
Figure imgf000034_0012
Figure imgf000034_0011
[00194] Le serveur 31 de l’exemple de réalisation de la figure 3 est programmé pour effectuer ces opérations. Le module 310 de ce serveur effectue la soustraction homomorphe Puis le module 30 détermine la quantité h à partir de Cd. Le
Figure imgf000034_0007
module 311 effectue ensuite les opérations et délivre les
Figure imgf000034_0008
résultats correspondants, Maxh et Minh.
[00195] En variante, les quantités Maxh et Minh pourraient être déterminées en - déterminant de manière homomorphe une version chiffrée de
Figure imgf000034_0009
notée h’ , puis - en calculant la quantité h’.cb+(1 -h’).ca (pour le maximum) et h’.ca+(1 -h’).cb (pour le minimum). [00196] En variante encore, les quantités Maxh et Minh pourraient être déterminées chacune à partir d’une version chiffrée du signe de la différence
Figure imgf000035_0001
[00197] Tri d’une base de données
[00198] Pouvoir déterminer de manière homomorphe le maximum et/ou minimum de deux messages est particulièrement intéressant car cela permet de réaliser, de manière homomorphe aussi, un tri (un classement, par exemple par ordre croissant ou décroissant) d’un ensemble de messages chiffrés.
[00199] De nombreux algorithmes de tri sont en effet basés sur une étape élémentaire (réitérée) de comparaison message par message, c’est-à-dire entre deux messages, parmi ceux à trier. L’un des deux messages est alors remplacé par le maximum des deux messages, tandis que l’autre message est remplacé par le minimum de ces deux messages.
[00200] Le serveur 32 de l’exemple de réalisation de la figure 4 est programmé pour exécuter un procédé de tri d’une basse de données chiffrée DB.
[00201] Cette base de données comprend au moins, dans un premier emplacement de la base de données, un premier message chiffré ca, et dans un deuxième emplacement de la base de données, un deuxième message chiffré cb.
[00202] Ce procédé de tri comprend au moins : - une écriture, dans le premier emplacement, de la quantité Maxh présentée ci-dessus, déterminée à partir de ca et cb, ou, respectivement, de la quantité Minh présentée ci-dessus (déterminée à partir de ca et cb), et - une écriture, dans le deuxième emplacement, de la quantité Minh, ou, respectivement, de la quantité Maxh.
[00203] Les premier et deuxième emplacements en question peuvent par exemple être repérés chacun, dans la base de données, par un numéro d’indexation associé à l’emplacement considéré (par exemple un numéro de ligne, dans une base de données de forme matricielle).

Claims

REVENDICATIONS [Revendication 1] Procédé de détermination homomorphe du caractère positif ou négatif d’un message µ à partir d’un message chiffré c correspondant, sans déchiffrement du message chiffré c, le message chiffré c correspondant au message µ étant chiffré par une méthode de type apprentissage avec erreur, le message µ appartenant au tore discret p ou à un espace en
Figure imgf000036_0001
bijection avec Tp, avec les entiers pi étant premiers entre eux, le message
Figure imgf000036_0002
chiffré c étant formé de q composantes ci, avec
Figure imgf000036_0003
étant le coefficient de Bézout associé à l’entier pi, défini par
Figure imgf000036_0004
le procédé comprenant : - une étape de mise à l’échelle, comprenant une détermination d’un message chiffré dilaté c[1] conformément à la formule suivante
Figure imgf000036_0005
Figure imgf000036_0006
est un nombre impair supérieur ou égal à 3, et - une étape de fusion, comprenant un calcul de la somme F0(c) + F1(c[1]) où F0 et F1 désignent respectivement une opération de calcul homomorphe d’une quantité att[0].gε, et d’une quantité att[1].gε, gε étant une fonction en escalier qui est nulle sur un intervalle central ]-ε/2, ε/2[ et qui a deux valeurs distinctes de part et d’autre de cet intervalle central, le coefficient att[1] étant inférieur au coefficient att[0]. [Revendication 2] Procédé selon la revendication précédente, dans lequel l’étape de mise à l’échelle comprend des déterminations de plusieurs messages chiffrés dilatés c[k], l’entier k variant de 1 à K-1, chaque message chiffré dilaté étant déterminé conformément à la formule suivante
Figure imgf000036_0007
et dans lequel le caractère positif ou négatif du message µ est déterminé en fonction de c et en fonction des différents messages chiffrés dilatés c[k], k=1..K-1. [Revendication 3] Procédé selon la revendication précédente, dans lequel l’étape de fusion comprend une étape de fusion d’un paquet au cours de laquelle la somme suivante est calculée : F0(c) + F1(c[1])+…+ Fk(c[k])+…+ Fm(c[m]), où Fk désigne une opération de calcul homomorphe de la quantité att[k].gε, où att[k] est un coefficient d’atténuation inférieur à 1, la suite de coefficients att[k], k=0..m étant décroissante et telle : que la somme des coefficients d’atténuation, successifs à l’un des coefficients d’atténuation donné de la suite, est inférieure audit coefficient d’atténuation donné. [Revendication 4] Procédé selon la revendication précédente, dans lequel m est inférieur à K, et dans lequel l'étape de fusion comprend les étapes suivantes : - S1 : fusions par paquets, chaque paquet regroupant m termes, chaque fusion d'un paquet correspondant au calcul du résultat intermédiaire resi=F0(c[(i-1).m]) + F1(c[(i-1).m+1])+…+ Fk(c[(i-1).m+k])+…+ Fm-1(c[i.m-1]), i étant le numéro du paquet, - S2 : fusions par paquets des résultats intermédiaires resi, chaque fusion d'un paquet de m’ résultats intermédiaires correspondant au calcul d’un nouveau résultat intermédiaire
Figure imgf000037_0001
Figure imgf000037_0002
j étant le numéro du paquet,
Figure imgf000037_0003
désignant une opération de calcul homomorphe d’une quantité
Figure imgf000037_0006
- l'étape S2 étant répétée jusqu'à n'obtenir qu'un seul résultat, auquel est appliqué l’opération
Figure imgf000037_0004
qui fournit un résultat final qui est une version chiffrée du signe du message µ. [Revendication 5] Procédé selon l’une des revendications 2 à 4, dans lequel le nombre K-1 de messages chiffrés dilatés pris en compte est tel que
Figure imgf000037_0005
[Revendication 6] Procédé selon l’une des revendications précédentes, dans lequel la largeur ε de l’intervalle central est inférieure à
Figure imgf000037_0007
[Revendication 7] Procédé pour appliquer de manière homomorphe la fonction de Heaviside H, qui est nulle pour les valeurs négatives et égale à 1 sinon, le procédé comprenant l’exécution du procédé de détermination du caractère positif ou négatif du message µ selon l’une quelconque des revendications précédentes, la fonction gε étant choisie nulle pour les valeurs négatives et égale à 1 pour les valeurs positives. [Revendication 8] Procédé pour appliquer de manière homomorphe une fonction f constante par morceaux à un message µ, la fonction f ayant t morceaux distincts, le procédé comprenant : - une décomposition de la fonction f sous la forme d’une combinaison linéaire de fonctions de Heaviside translatées, soit
Figure imgf000038_0001
où les coefficients αj sont des entiers et où les abscisses βj des points de discontinuité appartiennent à l’intervalle [-1/4, 1/4], - un calcul de la quantité chaque terme étant
Figure imgf000038_0002
Figure imgf000038_0003
déterminé, de manière homomorphe, conformément au procédé de la revendication précédente. [Revendication 9] Procédé pour déterminer de manière homomorphe le maximum de deux messages µa et µb, à partir des messages chiffrés correspondants ca et cb, sans déchiffrement des messages chiffrés ca et cb, le procédé comprenant : - une détermination homomorphe de la quantité H(µa - µb), conformément au procédé selon la revendication 7, la version chiffrée de H(µa - µb) ainsi déterminée étant notée h, et le calcul de la quantité Maxh=h.ca+(1-h).cb, - ou, une détermination homomorphe de la quantité H(µb - µa), conformément au procédé selon la revendication 7, la version chiffrée de H(µb - µa) ainsi déterminée étant notée h’, et le calcul de la quantité h’.cb+(1-h’).ca . [Revendication 10] Procédé pour déterminer de manière homomorphe le minimum de deux messages µa et µb, à partir des messages chiffrés correspondants ca et cb, sans déchiffrement des messages chiffrés ca et cb, le procédé comprenant : - une détermination homomorphe de la quantité H(µa - µb), conformément au procédé selon la revendication 7, la version chiffrée de H(µa - µb) ainsi déterminée étant notée h, et le calcul de la quantité Minh=h.cb+(1-h).ca, - ou, une détermination homomorphe de la quantité H(µb - µa), conformément au procédé selon la revendication 7, la version chiffrée de H(µb - µa) ainsi déterminée étant notée h’, et le calcul de la quantité h’.ca+(1-h’).cb . [Revendication 11] Procédé de tri d’une base de données, la base de données comprenant au moins, dans un premier emplacement de la base de données, un premier message chiffré ca, et dans un deuxième emplacement de la base de données, un deuxième message chiffré cb, le procédé comprenant au moins une écriture, dans le premier emplacement, de la quantité Maxh déterminée conformément au procédé de la revendication 9, ou de la quantité Minh, déterminée conformément au procédé de la revendication 10. [Revendication 12] Méthode de communication et traitement chiffrés, comprenant les étapes suivantes : - Chiffrement d’au moins un message µ, avec une clef privée s, par un client (2), sous la forme d’un message chiffré c, par une méthode de type apprentissage avec erreur, le message µ appartenant au tore discret ou à un espace en bijection avec
Figure imgf000039_0001
Tp, avec
Figure imgf000039_0002
les entiers pi étant premiers entre eux, le message chiffré c=(c1,...ci,...cq) étant formé de q composantes ci, avec
Figure imgf000039_0005
Figure imgf000039_0003
étant le coefficient de Bézout associé à l’entier pi, défini par
Figure imgf000039_0004
- Transmission du message chiffré c, ou d’une base de données chiffrée contenant le message chiffré c, par le client (2), à un serveur (3 ; 30 ; 31 ; 32) distinct du client (2) et ne disposant pas de la clef privée s, via un canal de communication (5), - Traitement du message chiffré c, ou d’une différence entre le message chiffré c et un autre message chiffré, ou de la base de données chiffrées (DB) contenant le message chiffré c, par le serveur (3 ; 30 ; 31 ; 32), de manière homomorphe, conformément au procédé selon l’une quelconque des revendications précédentes, - Emission du résultat (res, DB’) dudit traitement homomorphe, par le serveur (3 ; 30 ; 31 ; 32). [Revendication 13] Serveur (3 ; 30 ; 31 ; 32) de traitement cryptographique, comprenant au moins un module de communication et un module de calcul : - Le module de communication étant configuré pour recevoir, de la part d’une entité externe au serveur, un message chiffré c ou une base de données chiffrée (DB) contenant le message chiffré c, le message chiffré c correspondant à un message µ chiffré par une méthode de type apprentissage avec erreur, le message µ appartenant au tore discret ou à un espace en bijection avec
Figure imgf000040_0001
Tp, avec les entiers pi étant premiers entre eux, le message
Figure imgf000040_0002
chiffré c=(c1,...ci,...cq) étant formé de q composantes ci, avec
Figure imgf000040_0005
étant le coefficient de Bézout associé à l’entier pi,
Figure imgf000040_0003
défini par
Figure imgf000040_0004
- Le module de calcul étant programmé pour traiter le message chiffré c, ou une différence entre le message chiffré c et un autre message chiffré, ou la base de données chiffrée (DB) contenant le message chiffré c, de manière homomorphe, sans déchiffrement du message c, conformément au procédé selon l’une quelconque des revendications 1 à 11, - Le module de communication étant configuré aussi pour émettre le résultat (res, DB’) dudit traitement homomorphe. [Revendication 14] Système cryptographique (1) comprenant : - le serveur (3 ; 30 ; 31 ; 32) de traitement cryptographique selon la revendication précédente, - un client (2), configuré pour chiffrer au moins le message µ, sous la forme du message chiffré c, et pour communiquer le message chiffré c, ou une base de données chiffrée (DB) contenant le message chiffré c, au serveur (3 ; 30 ; 31 ; 32) via un canal de communication (5).
PCT/EP2023/066324 2022-06-17 2023-06-16 Procédé de détermination homomorphe du signe d'un message par dilatation, procédés et dispositifs associés WO2023242429A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2205957 2022-06-17
FR2205957A FR3136920B1 (fr) 2022-06-17 2022-06-17 Procédé de détermination homomorphe du signe d’un message par dilatation, procédés et dispositifs associés

Publications (1)

Publication Number Publication Date
WO2023242429A1 true WO2023242429A1 (fr) 2023-12-21

Family

ID=83438742

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/066324 WO2023242429A1 (fr) 2022-06-17 2023-06-16 Procédé de détermination homomorphe du signe d'un message par dilatation, procédés et dispositifs associés

Country Status (2)

Country Link
FR (1) FR3136920B1 (fr)
WO (1) WO2023242429A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020001147A1 (fr) 2018-06-26 2020-01-02 中兴通讯股份有限公司 Antenne de terminal mobile, et terminal mobile

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020001147A1 (fr) 2018-06-26 2020-01-02 中兴通讯股份有限公司 Antenne de terminal mobile, et terminal mobile

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BOURSE FLORIAN ET AL: "Fast Homomorphic Evaluation of Deep Discretized Neural Networks", 24 July 2018, SAT 2015 18TH INTERNATIONAL CONFERENCE, AUSTIN, TX, USA, SEPTEMBER 24-27, 2015; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER, BERLIN, HEIDELBERG, PAGE(S) 483 - 512, ISBN: 978-3-540-74549-5, XP047482297 *
HALEVI SHAI ET AL: "An Improved RNS Variant of the BFV Homomorphic Encryption Scheme", 3 February 2019, ADVANCES IN DATABASES AND INFORMATION SYSTEMS; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CHAM, PAGE(S) 83 - 105, ISBN: 978-3-319-10403-4, XP047502870 *
ILARIA CHILLOTTI ET AL: "TFHE: Fast Fully Homomorphic Encryption over the Torus", vol. 20180510:205538, 8 May 2018 (2018-05-08), pages 1 - 59, XP061025748, Retrieved from the Internet <URL:http://eprint.iacr.org/2018/421.pdf> [retrieved on 20180508] *
ZEYU LIU ET AL: "Large-Precision Homomorphic Sign Evaluation using FHEW/TFHE Bootstrapping", vol. 20220217:184249, 17 February 2022 (2022-02-17), pages 1 - 28, XP061070275, Retrieved from the Internet <URL:https://eprint.iacr.org/2021/1337.pdf> [retrieved on 20220217] *

Also Published As

Publication number Publication date
FR3136920B1 (fr) 2024-05-31
FR3136920A1 (fr) 2023-12-22

Similar Documents

Publication Publication Date Title
EP3535923B1 (fr) Méthode de classification sécurisée utilisant une opération de transchiffrement
EP2116000B1 (fr) Procéée d&#39;authentification unique d&#39;un utilisateur auprès de fournisseurs de service
FR3097353A1 (fr) Méthode d’apprentissage collaboratif d’un réseau de neurones artificiels sans divulgation des données d’apprentissage
WO2009095574A2 (fr) Procede et entite de chiffrement symetrique probabiliste
EP2119095B1 (fr) Procede de chiffrement a l&#39;aide de codes correcteurs d&#39;erreurs
EP2282441A1 (fr) Procédé sécurisé de reconstruction d&#39;une mesure de référence d&#39;une donnée confidentielle à partir d&#39;une mesure bruitée de cette donnée, notamment pour la génération de clés cryptographiques
EP1869823B1 (fr) Procédé de communication entre un lecteur et un marqueur d&#39;identification sans fil, lecteur et marqueur associés
EP0346180B1 (fr) Dispositif de communication sécurisée de données
EP1959572B1 (fr) Procédé de décodage à passage de messages et à convergence forcée
FR2808948A1 (fr) Systeme et methode pour authentifier de maniere unique chaque reproduction d&#39;un groupe de documents electroniques
EP3545641B1 (fr) Procédé de chiffrement cherchable
EP2457344B1 (fr) Procede de conversion d&#39;un premier chiffre en un deuxieme chiffre
WO2000045549A1 (fr) Procede d&#39;authentification ou de signature a nombre de calculs reduit
WO2023242429A1 (fr) Procédé de détermination homomorphe du signe d&#39;un message par dilatation, procédés et dispositifs associés
EP1829279A2 (fr) Procede et dispositif d&#39;execution d&#39;un calcul cryptographique
EP3857810B1 (fr) Procédé cryptographique de comparaison sécurisée de deux données secrètes x et y
EP1523823A2 (fr) Procede de generation de cles electroniques pour procede de cryptographie a cle publique et objet portatif securise mettant en oeuvre le procede
WO2005107206A1 (fr) Procede de transmission d’un fichier de donnees numeriques au travers de reseaux de telecommunications
EP1989820B1 (fr) Dispositif et procédé de hachage cryptographique
EP3552346B1 (fr) Procédé d&#39;émission d&#39;un message, procédé de réception, dispositif d&#39;émission, dispositif de réception et système de communication associés
EP3869368A1 (fr) Procede et dispositif de detection d&#39;anomalie
EP0743775B1 (fr) Procédé de signature numérique à connaissance nulle, permettant d&#39;élaborer une signature résistant aux collisions
EP4150852B1 (fr) Procédé, systèmes et services cryptographiques d&#39;évaluation de fonctions univariées à valeurs réelles sur des données chiffrées
EP4262141A1 (fr) Methode d&#39;interrogation confidentielle multi-utilsateur de la présence d&#39;un enregistrement dans une base de données
FR3135854A1 (fr) Fourniture sécurisée de clefs pour un cryptage totalement homomorphe

Legal Events

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

Ref document number: 23734502

Country of ref document: EP

Kind code of ref document: A1