FR3135854A1 - Fourniture sécurisée de clefs pour un cryptage totalement homomorphe - Google Patents
Fourniture sécurisée de clefs pour un cryptage totalement homomorphe Download PDFInfo
- Publication number
- FR3135854A1 FR3135854A1 FR2204682A FR2204682A FR3135854A1 FR 3135854 A1 FR3135854 A1 FR 3135854A1 FR 2204682 A FR2204682 A FR 2204682A FR 2204682 A FR2204682 A FR 2204682A FR 3135854 A1 FR3135854 A1 FR 3135854A1
- Authority
- FR
- France
- Prior art keywords
- key
- data value
- electronic device
- data
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Telephonic Communication Services (AREA)
Abstract
Fourniture sécurisée de clefs pour un cryptage totalement homomorphe
La présente description concerne un Procédé comprenant : - la génération, par un dispositif informatique (400), d'une première clef () et d'une clef d'amorçage () ; - la fourniture de la première clef et d'un identifiant (id) de la clef d'amorçage à un dispositif électronique (100) et la fourniture de la clef d'amorçage et de l'identifiant à un serveur (102) ; - le cryptage totalement homomorphe, par le dispositif électronique, d'une première valeur de donnée, stockée dans le dispositif électronique, à l'aide de la première clef ; et - la fourniture, par le dispositif électronique, de la première valeur de donnée cryptée () et de l'identifiant, au serveur.
Figure pour l'abrégé : Fig. 4
Description
La présente description concerne de façon générale le domaine du cryptage et, en particulier, le domaine du cryptage de données totalement homomorphe.
Le cryptage totalement homomorphe est une forme de cryptage qui permet de mettre en œuvre correctement des opérations sur les données cryptées sans décrypter préalablement les données. Cela permet, en particulier, de mettre en œuvre les opérations dans un environnement non sécurisé, tel que lors de l'utilisation d'un serveur appartenant à un tiers, sans que la confidentialité des données ne soit compromise. Les données sont stockées par un dispositif électronique et sont cryptées par ce dispositif électronique avant d'être fournies au serveur. Les données résultantes provenant des calculs par le serveur sur les données cryptées sont renvoyées au dispositif électronique sous forme de données cryptées. Une fois décryptées, les données résultantes sont les mêmes que si elles avaient été obtenues en appliquant les opérations de calcul directement sur les données non cryptées.
Un cryptage totalement homomorphe peut être utilisé pour un stockage et un calcul externalisés préservant la confidentialité. Cela permet à des données d'être cryptées et externalisées vers d'autres environnements pour être traitées, tout en demeurant cryptées.
Des algorithmes de cryptage totalement homomorphe présentent l'avantage de renvoyer le résultat avec un bruit relativement faible, ce qui n'est pas le cas d'autres algorithmes de cryptage homomorphe. Cet avantage est obtenu grâce à l'utilisation d'une clef d'amorçage dans l'exécution des opérations sur les données cryptées. Toutefois, il y a des problèmes techniques pour mettre en œuvre des algorithmes de cryptage totalement homomorphe.
Il existe un besoin dans le domaine d'un procédé et d'un dispositif destinés à mettre en œuvre des algorithmes totalement homomorphes qui pallient un ou plusieurs problèmes de l'art antérieur.
Un mode de réalisation prévoit un procédé comprenant :
- la génération, par un dispositif informatique, d'une première clef et d'une clef d'amorçage ;
- la fourniture de la première clef et d'un identifiant de la clef d'amorçage à un dispositif électronique et la fourniture de la clef d'amorçage et de l'identifiant à un serveur
- le cryptage totalement homomorphe, par le dispositif électronique, d'une première valeur de donnée, stockée dans le dispositif électronique, à l'aide de la première clef ;
- la fourniture, par le dispositif électronique, de la première valeur de donnée cryptée et de l'identifiant, au serveur.
- la génération, par un dispositif informatique, d'une première clef et d'une clef d'amorçage ;
- la fourniture de la première clef et d'un identifiant de la clef d'amorçage à un dispositif électronique et la fourniture de la clef d'amorçage et de l'identifiant à un serveur
- le cryptage totalement homomorphe, par le dispositif électronique, d'une première valeur de donnée, stockée dans le dispositif électronique, à l'aide de la première clef ;
- la fourniture, par le dispositif électronique, de la première valeur de donnée cryptée et de l'identifiant, au serveur.
Selon un mode de réalisation, le procédé précédent comprend en outre la mise en œuvre, par le serveur, de la première opération sur la deuxième valeur de donnée conformément à un algorithme de traitement totalement homomorphe basé sur la première valeur de donnée cryptée et la clef d'amorçage.
Selon un mode de réalisation, le procédé précédent comprend en outre :
- la réception, par le dispositif électronique, d'une deuxième valeur de donnée provenant du serveur ; et
- la génération d'une troisième valeur de donnée par un décryptage totalement homomorphe de la deuxième valeur de donnée à l'aide de la première clef, la troisième valeur de donnée correspondant au résultat d'une première opération appliquée à la première valeur de donnée.
- la réception, par le dispositif électronique, d'une deuxième valeur de donnée provenant du serveur ; et
- la génération d'une troisième valeur de donnée par un décryptage totalement homomorphe de la deuxième valeur de donnée à l'aide de la première clef, la troisième valeur de donnée correspondant au résultat d'une première opération appliquée à la première valeur de donnée.
Selon un mode de réalisation, le dispositif électronique comprend un circuit sécurisé, le procédé comprenant en outre, après la fourniture de la première clef, le stockage de la première clef dans le circuit sécurisé.
Selon un mode de réalisation, le dispositif électronique comprend un processeur cryptographique et dans lequel le cryptage totalement homomorphe de la première valeur de donnée comprend :
- la génération, par le processeur cryptographique, d'une première valeur de donnée intermédiaire en codant la première valeur de donnée ; et
- l'application d'un algorithme de cryptage totalement homomorphe à la première valeur de donnée intermédiaire, par le processeur cryptographique et à l'aide de la première clef, le cryptage résultant en la première valeur de donnée cryptée.
- la génération, par le processeur cryptographique, d'une première valeur de donnée intermédiaire en codant la première valeur de donnée ; et
- l'application d'un algorithme de cryptage totalement homomorphe à la première valeur de donnée intermédiaire, par le processeur cryptographique et à l'aide de la première clef, le cryptage résultant en la première valeur de donnée cryptée.
Selon un mode de réalisation, le décryptage totalement homomorphe de la deuxième valeur comprend :
- l'application d'un algorithme de décryptage totalement homomorphe à la deuxième valeur de donnée par le processeur cryptographique et à l'aide de la première clef, le décryptage résultant en une troisième valeur de donnée intermédiaire ; et
- le décodage de la troisième valeur de donnée intermédiaire, par le processeur cryptographique, résultant en la troisième valeur de donnée.
- l'application d'un algorithme de décryptage totalement homomorphe à la deuxième valeur de donnée par le processeur cryptographique et à l'aide de la première clef, le décryptage résultant en une troisième valeur de donnée intermédiaire ; et
- le décodage de la troisième valeur de donnée intermédiaire, par le processeur cryptographique, résultant en la troisième valeur de donnée.
Selon un mode de réalisation, le traitement totalement homomorphe de la première valeur de donnée cryptée est effectué par un réseau neuronal mis en œuvre dans le serveur.
Selon un mode de réalisation, un ou plusieurs neurones du réseau neuronal sont configurés pour effectuer une opération d'amorçage à l'aide de la clef d'amorçage.
Selon un mode de réalisation, la première clef est une séquence de N mots de bits, chacun des N mots comprenant un nombre M de bits, et dans lequel l'algorithme de cryptage comprend :
a) la génération de J+1 nombres aléatoires, où J+1 est égal à N*M ;
b) le calcul de la somme du produit des bits de la clef secrète avec des nombres aléatoires correspondants ; et
c) l'addition de la valeur de donnée à crypter à la somme.
a) la génération de J+1 nombres aléatoires, où J+1 est égal à N*M ;
b) le calcul de la somme du produit des bits de la clef secrète avec des nombres aléatoires correspondants ; et
c) l'addition de la valeur de donnée à crypter à la somme.
Selon un mode de réalisation, l'ordre des additions dans l'étape b) est choisi aléatoirement par le processeur cryptographique.
Selon un mode de réalisation, la première clef est stockée dans une mémoire du dispositif électronique masquée avec un masque aléatoire, le démasquage étant effectué pendant l'exécution de l'algorithme de cryptage.
Selon un mode de réalisation, l'étape b) comprend en outre le calcul d'une somme supplémentaire des nombres aléatoires pour lesquels le bit correspondant de la clef secrète est 0.
Un mode de réalisation prévoit un système comprenant :
- un dispositif informatique configuré pour générer une première clef, et une clef d'amorçage, pour fournir la première clef et un identifiant de la clef d'amorçage à un dispositif électronique et pour fournir la clef d'amorçage et l'identifiant à un serveur ; et
- le dispositif électronique étant configuré pour :
crypter conformément à un algorithme de cryptage totalement homomorphe une première valeur de donnée, à l'aide de la première clef ; et
fournir la première valeur de donnée cryptée et l'identifiant au serveur.
- un dispositif informatique configuré pour générer une première clef, et une clef d'amorçage, pour fournir la première clef et un identifiant de la clef d'amorçage à un dispositif électronique et pour fournir la clef d'amorçage et l'identifiant à un serveur ; et
- le dispositif électronique étant configuré pour :
crypter conformément à un algorithme de cryptage totalement homomorphe une première valeur de donnée, à l'aide de la première clef ; et
fournir la première valeur de donnée cryptée et l'identifiant au serveur.
Selon un mode de réalisation, le système précédent comprend en outre le serveur configuré pour :
calculer, conformément à un traitement totalement homomorphe basé sur la première valeur de donnée cryptée et la clef d'amorçage, une deuxième valeur de donnée ; et
fournir la deuxième valeur de donnée au dispositif électronique,
le dispositif électronique étant en outre configuré pour générer une troisième valeur de donnée en appliquant, à la deuxième valeur de donnée, un algorithme de décryptage totalement homomorphe qui utilise la première clef, la troisième valeur de donnée correspondant au résultat d'une première opération appliquée à la première valeur de donnée.Brève description des dessins
calculer, conformément à un traitement totalement homomorphe basé sur la première valeur de donnée cryptée et la clef d'amorçage, une deuxième valeur de donnée ; et
fournir la deuxième valeur de donnée au dispositif électronique,
le dispositif électronique étant en outre configuré pour générer une troisième valeur de donnée en appliquant, à la deuxième valeur de donnée, un algorithme de décryptage totalement homomorphe qui utilise la première clef, la troisième valeur de donnée correspondant au résultat d'une première opération appliquée à la première valeur de donnée.Brève description des dessins
Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :
la représente schématiquement un exemple d'un système mettant en œuvre un algorithme cryptographique totalement homomorphe ;
la représente des exemples d'opérations de cryptage totalement homomorphe et illustre les propriétés d'une cryptographie totalement homomorphe ;
la représente un réseau utilisé dans une cryptographie totalement homomorphe ;
la représente un réseau et représente une résolution d'un problème du vecteur le plus proche ;
la représente un réseau et représente une erreur de bruit induite par le traitement de données cryptées par des algorithmes cryptographique partiellement homomorphe ;
la représente schématiquement un système configuré pour mettre en œuvre un algorithme cryptographique totalement homomorphe selon un mode de réalisation de la présente description ;
la représente schématiquement un dispositif électronique configuré pour mettre en œuvre des algorithmes de cryptage et de décryptage totalement homomorphe selon un exemple de mode de réalisation de la présente description ;
la est un organigramme représentant des opérations effectuées par le système pour mettre en œuvre et exécuter un algorithme cryptographique totalement homomorphe selon un mode de réalisation de la présente description ;
la est un organigramme représentant des opérations effectuées par le dispositif électronique pour crypter et/ou décrypter des données selon un exemple de mode de réalisation de la présente description ;
la est un organigramme représentant des opérations effectuées par le dispositif électronique pour crypter et/ou décrypter des données selon un autre exemple de mode de réalisation de la présente description ;
la est un organigramme représentant des opérations effectuées par le dispositif électronique pour crypter et/ou décrypter des données selon un autre exemple de mode de réalisation de la présente description ; et
la est un organigramme représentant des opérations effectuées par le dispositif électronique pour crypter et/ou décrypter des données selon encore un autre exemple de mode de réalisation de la présente description.
De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques.
Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés.
Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments.
Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures.
Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près.
La représente schématiquement un exemple d'un système mettant en œuvre un algorithme de chiffrement totalement homomorphe.
Par exemple, un dispositif électronique 100 contient des données, telles que des données médicales, qui doivent être traitées par un serveur externe 102 afin de, par exemple, établir un diagnostic. Par exemple, le dispositif électronique 100 n'a pas suffisamment de mémoire et/ou de ressources de traitement pour pouvoir effectuer le traitement des données. Dans l'exemple de la , le serveur 102 comprend un réseau neuronal configuré pour traiter les données.
Le traitement, par le serveur 102, est par exemple à effectuer sans mettre en danger la confidentialité des données. Pour cela, les données sont envoyées au serveur 102 sous une forme cryptée, dans une communication 104. En particulier, cette forme cryptée résulte du fait qu'une donnée traitée par le serveur 102 n'est pas décryptée avant le traitement par le serveur 102 et donc le résultat du traitement est également sous forme cryptée, sans qu'aucune nouvelle opération de cryptage ne soit nécessaire. Par exemple, le réseau neuronal mis en œuvre par le serveur 102 est configuré pour effectuer des opérations sur les données cryptées et pour fournir un résultat crypté qui est renvoyé au dispositif électronique 100 dans une communication 106.
Le dispositif électronique 100 est ensuite configuré pour décrypter le résultat crypté reçu. Ce décryptage résulte en un résultat non crypté, correspondant à celui qui aurait été obtenu si les données d'origine non cryptées avaient été fournies au serveur 102.
Selon un mode de réalisation, le cryptage des données, par le dispositif électronique 100, leur traitement, par le serveur 102, résultant en des données de sortie cryptées et le décryptage des données de sortie cryptées par le dispositif électronique 100 est effectué conformément à une cryptographie totalement homomorphe.
Les algorithmes de cryptage et de décryptage appliqués par le dispositif électronique 100 sont par exemple basés sur l'utilisation d'une clef secrète .
Par exemple, la clef secrète est une clef symétrique et le cryptage des données, par le dispositif électronique 100, et le décryptage des données de sortie cryptées, également par le dispositif électronique 100, est basé sur une cryptographie symétrique, utilisant la clef secrète .
Afin de réduire le bruit qui peut être présent à la sortie des opérations, qui comporte généralement des additions et/ou des multiplications, une ou plusieurs opérations d'amorçage sont généralement effectuées pendant le traitement des données cryptées. Ainsi, le serveur 102 est par exemple configuré pour effectuer une ou plusieurs opérations d'amorçage à l'aide d'une clef d'amorçage . Par exemple, l'opération d'amorçage est appliquée par au moins un des neurones du réseau neuronal, et dans certains cas par tout ou partie des neurones du réseau neuronal. La technique d'amorçage est connue de la personne du métier et est, par exemple, décrite de façon détaillée dans la publication "Improved Programmable Bootstrapping with Larger Precision and Efficient Arithmetic Circuits for TFHE" publiée dans Advances in Cryptology – ASIACRYPT 2021.
La clef d'amorçage est par exemple générée sur la base de la clef secrète . La taille d'une telle clef d'amorçage est généralement grande, par exemple, entre 10 et 20 mégaoctets, ce qui, dans certains cas, peut être plus grand que la capacité de stockage du dispositif électronique 100. En outre ou alternativement, le calcul d'une telle clef d'amorçage implique une puissance de calcul relativement élevée, ce qui, dans certains cas, est au-delà des capacités du dispositif électronique 100. Comme la clef secrète ne doit pas être communiquée au serveur 102, la génération de la clef d'amorçage ne doit pas être effectuée par le serveur 102.
Bien que la représente un exemple dans lequel les données sont des données médicales et dans lequel le traitement des données médicales cryptées est effectué par un réseau neuronal, dans des variantes de mode de réalisation, les données pourraient être un autre type de données confidentielles ou sensibles, et le traitement de ces données par le serveur 102 pourrait impliquer d'autres moyens en plus, ou à la place, du réseau neuronal.
La représente des exemples d'opérations de cryptage totalement homomorphe et illustre les propriétés d'une cryptographie totalement homomorphe.
Comme cela est représenté par des blocs 200 et 202 en figure 2, un algorithme de cryptage totalement homomorphe (ENCRYPT) utilisant la clef secrète et appliqué à des données en clair et résulte en des données cryptées et respectivement. On écrit : , et , où est la fonction de cryptage résultant de l'application de l'algorithme de cryptage totalement homomorphe.
En outre, le décryptage de la donnée cryptée résulte en la donnée en clair . On écrit , où est la fonction de décryptage qui inverse la fonction de cryptage . De façon similaire, le décryptage de la donnée cryptée résulte en la donnée en clair . On écrit .
Le principe des algorithmes chiffrement totalement homomorphe est d'être homomorphes en addition et en multiplication, comme cela est représenté par des blocs 204 et 206 en .
Le bloc 204 représente la propriété d'homomorphisme en addition : le cryptage de l'addition des données en clair et est égal à l'addition des données cryptées et , c'est-à-dire : .
De façon similaire, le bloc 206 représente la propriété d'homomorphisme en multiplication : le cryptage du produit des données en clair et est égal au produit des données cryptées et , c'est-à-dire : .
En pratique, le serveur 102 est configuré pour recevoir un nombre N de données cryptées , où pour chaque appartenant à l'ensemble , correspond au cryptage, par le dispositif électronique 100, d'une donnée en clair . Le serveur 102 est en outre configuré pour appliquer une opération , correspondant à une combinaison d'additions et de multiplications, aux données cryptées à . En d'autres mots, le serveur 102 est configuré pour générer la donnée cryptée . Des algorithmes de chiffrement totalement homomorphe sont tels que le décryptage, par le dispositif électronique 100, de la donnée cryptée est égal à une donnée en clair qui est identique à la donnée qui aurait été obtenue par l'application de l'opération aux données en clair à . En d'autres mots :
Toutefois, les propriétés de stabilité homomorphe par l'application d'une pluralité d'additions et de multiplications sont encore vérifiées par des algorithmes chiffrement totalement homomorphe. En effet, l'accumulation d'additions et plus particulièrement de multiplications dans des algorithmes seulement partiellement homomorphes amène un bruit dans des valeurs intermédiaires manipulées par le serveur 102. Cela résulte en le fait que la donnée décryptée ne correspond pas exactement à la valeur de .
La figure 3A représente un réseau 300 utilisé dans des algorithmes de chiffrement totalement homomorphe. Le réseau 300 est décrit complétement par une base constituée de deux vecteurs et . Le réseau 300 comprend tous les vecteurs qui pourraient être écrits comme , où et appartiennent à l'ensemble des entiers .
Dans l'exemple représenté par le réseau 300, et et le réseau est un réseau euclidien équivalent à l'ensemble . Un vecteur du réseau 300 est par exemple égal au vecteur et le vecteur est ensuite désigné par les coordonnées .
En pratique, les réseaux utilisés dans une cryptographie totalement homomorphe sont décrits par une base comprenant des milliers de dimensions, par exemple entre 6000 et 7000 dimensions. En outre, en pratique, les vecteurs et ne sont pas nécessairement orthogonaux.
La représente un réseau et représente une résolution d'un problème du vecteur le plus proche.
Dans une cryptographie totalement homomorphe et partiellement homomorphe, des réseaux sont utilisés pour créer des problèmes NP (de l'anglais "nondeterministic polynomial time", temps polynomial non déterministe), tels que le problème du vecteur le plus proche. Par exemple, une condition préalable pour faire du problème de réseau un problème NP est de considérer une base de réseau comprenant des vecteurs non orthogonaux.
Par exemple, une donnée cryptée est représentée par un vecteur . Le vecteur n'appartient pas au réseau 300, c'est-à-dire que le vecteur ne peut pas être écrit sous forme d'une combinaison linéaire de et avec des coefficients entiers.
Le décryptage du vecteur consiste par exemple à résoudre le problème du vecteur le plus proche, c'est-à-dire à trouver le vecteur du réseau 300 pour lequel une distance, par exemple la norme euclidienne, par rapport au vecteur est minimale. Dans l'exemple représenté en figure 3B, ce vecteur le plus proche est un vecteur .
Le problème du vecteur le plus proche est un exemple d'une approche qui peut être appliquée afin d'effectuer une cryptographie sur la base du réseau. En outre, ou selon une variante, d'autre problèmes, tels que le problème du point le plus proche, ou le problème du vecteur le plus court, peuvent être utilisés pour crypter et/ou décrypter des données.
La représente une erreur de bruit induite par le traitement de données cryptées par des algorithmes de cryptage partiellement homomorphes.
Par exemple, le vecteur est une donnée cryptée calculée par le serveur 102 en effectuant plusieurs additions et/ou multiplications sur des données d'entrée fournies par le dispositif électronique 100. Dans l'exemple illustré par la figure 3C, le résultat non crypté attendu est la valeur vectorielle . Toutefois, l'algorithme utilisé dans cet exemple est seulement partiellement homomorphe. Par conséquent, le résultat crypté peut comprendre du bruit et/ou des erreurs. Le bruit est par exemple dû aux problèmes mathématiques sur lesquels se fonde le schéma de cryptage et/ou de décryptage, par exemple le problème de vecteur le plus proche. En même temps que s'effectuent les opérations appliquées aux données, le bruit augmente, les augmentations étant particulièrement élevées lorsque les opérations sont des multiplications.
Dans l'exemple de la figure 3C, un vecteur résoud le problème du vecteur le plus proche pour la valeur cryptée . Le décryptage par le dispositif électronique 100 du résultat crypté conduit ainsi à une mauvaise donnée décryptée, en d'autres mots, dans ce cas, avec les notations introduites en relation avec la ,
Pour éviter l'accumulation d'erreurs, des algorithmes totalement homomorphes impliquent l'utilisation d'une étape d'amorçage, effectuée par le serveur 102, pendant le traitement, pour éliminer les erreurs dans les opérations effectuées. Cette étape est basée sur l'utilisation d'une clef d'amorçage . La clef d'amorçage est par exemple générée à partir de la clef secrète .
Dans un exemple, la clef secrète est une clef secrète LWE (de l'anglais "Learning With Errors", apprentissage par erreurs) et la clef d'amorçage est une clef publique calculée à partir de la clef secrète LWE et à partir d'une clef secrète GLWE (de l'angais "General Learning With Errors", apprentissage général par erreurs) S. La clef secrète GLWE S est par exemple générée par le dispositif 100, afin de générer la clef d'amorçage . La clef d'amorçage consiste alors, par exemple, en une liste d'un nombre de textes chiffrés GGSW (de l'anglais "General Gentry, Sahai and Walter", général de Gentry, Sahai et Walter), le nombre étant par exemple égal à 630. Chaque texte chiffré GGSW crypte, à l'aide de la clef secrète GLWE S, un bit de la clef secrète LWE .
La génération d'une clef d'amorçage est connue de la personne du métier et est par exemple décrite plus en détail dans la publication "Programmable Bootstrapping Enables Efficient Homomorphic Inference of Deep Neuronal Networks" de Ilaria Chillotti, Marc Joyce publiée dans Cyber Security Cryptography and Machine Learning, 2021.
L'étape d'amorçage est par exemple effectuée, par le serveur 102, après chaque addition et/ou multiplication, ou après un nombre donné d'additions et/ou de multiplications. Plus particulièrement, l'étape d'amorçage est par exemple effectuée par le réseau neuronal, par chaque neurone ou à différentes phases du traitement.
L'étape d'amorçage consiste par exemple en une application d'une fonction de décryptage à l'aide de la clef d'amorçage . Ce décryptage est par exemple appliqué à un cryptage GLWE , sous la clef secrète GLWE S, du texte chiffré LWE . Ensuite, le décryptage utilisant la clef d'amorçage est tel que
Toutefois, en pratique, ce décryptage est obtenu par le serveur 102 grâce à des opérations connues sous le nom de rotation à l'aveugle (en anglais "Blind Rotation") ou extraction d'échantillon (en anglais "Sample Extraction") également décrites dans la publication susmentionnée. Pour cette raison, le dispositif 100 envoie également par exemple au serveur 102 le cryptage GLWE, utilisant la clef secrète S, d'un polynôme construit de façon appropriée V(X). Par exemple, le polynôme V(X) est un polynôme avec les coefficients suivants , où chaque valeur différente de 0 est répétée fois, alors que les 0 sont répétés fois et où est l'ensemble de tous les messages possibles, alors que est le nombre maximal de bits le moins significatifs susceptibles de stocker le bruit dans un texte en clair. En d'autres mots, il est possible de récupérer le texte en clair original aussi longtemps que le bruit est inférieur à .
Enfin, l'étape d'amorçage comporte une opération de permutation de clef afin de revenir à un cryptage sous la clef initiale , où .
Toutefois, la génération de la clef d'amorçage , par le dispositif électronique 100, peut ne pas être possible en raison de son coût élevé en termes de capacité et de puissance de calcul et en termes de temps. De plus, la dimension importante d'une clef d'amorçage ne permet pas toujours son stockage sur le dispositif électronique 100 avant d'être envoyée au serveur 102.
De plus, cela n'a aucun sens de fournir la clef secrète au serveur 102 afin de le laisser générer lui-même la clef d'amorçage .
Selon un mode de réalisation qui sera maintenant décrit en relation avec la figure 4, la clef secrète est par exemple générée par un dispositif informatique pendant la fabrication du dispositif électronique 100. Selon ce mode de réalisation, le dispositif informatique est en outre configuré pour générer la clef d'amorçage , par exemple à partir de la clef secrète et pour la fournir directement au serveur 102.
La figure 4 représente schématiquement un système 402 configuré pour mettre en œuvre un algorithme de chiffrement totalement homomorphe selon un mode de réalisation. Le système 402 comprend le dispositif informatique, référencé 400 en figure 4, utilisé pour générer la clef d'amorçage , le dispositif électronique 100 et le serveur 102.
Selon un mode de réalisation, le dispositif informatique 400 est configuré pour générer la clef secrète et pour la fournir, de façon sécurisée, au dispositif électronique 100. Le dispositif informatique 400 est en outre configuré pour générer la clef d'amorçage et pour fournir la clef d'amorçage au serveur 102.
Selon un mode de réalisation, le dispositif informatique 400 est en outre configuré pour fournir la clef secrète au dispositif électronique 100 en association avec un identifiant . Cet identifiant est également fourni au serveur 102 en association avec la clef d'amorçage . Le serveur 102 stocke par exemple la clef d'amorçage en association avec l'identifiant .
Selon un mode de réalisation, le dispositif électronique 100 est configuré pour crypter des données en clair à l'aide de la clef secrète afin de générer des données cryptées à et pour fournir ces données cryptées, en association avec l'identifiant , au serveur 102. Le serveur 102 est par exemple configuré pour identifier, sur la base de l'identifiant , la clef d'amorçage associée à la clef secrète et qui peut être utilisée pendant le traitement des données cryptées en provenance du dispositif électronique 100. Par exemple, le serveur 102 stocke également d'autres identifiants en association avec d'autres clefs d'amorçage, qui sont par exemple utilisées pour traiter des données cryptées provenant d'autres dispositifs, similaires au dispositif électronique 100.
Le serveur 102 comprend par exemple un réseau neuronal 404 configuré pour appliquer un traitement totalement homomorphe, à l'aide de la clef d'amorçage , aux données cryptées à . Le serveur 102 est par exemple configuré en outre par exemple pour fournir la clef d'amorçage qui est stockée en association avec l'identifiant , au réseau neuronal 404. Le réseau neuronal 404 est par exemple configuré pour exécuter ensuite des opérations, par exemple en appliquant la fonction , sur les données cryptées à et pour effectuer des étapes d'amorçage utilisant la clef d'amorçage , par exemple en appliquant la fonction de décryptage au résultat de la fonction . Le réseau neuronal 404 fournit en sortie un résultat crypté et le fournir au dispositif électronique 100. Par exemple, la donnée cryptée est telle que :
Le dispositif électronique 100 est configuré par exemple pour appliquer ensuite l'algorithme de décryptage, par exemple la fonction , à la donnée de sortie cryptée ’ pour générer un résultat en clair . En d'autres mots, le résultat en clair est égal à .
La représente schématiquement le dispositif électronique 100 comprenant un circuit intégré 500 configuré pour mettre en œuvre un algorithme de cryptage totalement homomorphe selon un mode de réalisation de la présente description.
Le dispositif électronique 100 est par exemple une carte IC (de l'anglais "integrated circuit", circuit intégré), un téléphone intelligent, un circuit microprocesseur, etc.
Le circuit intégré 500 du dispositif électronique 100 comprend par exemple une mémoire volatile 502 (RAM), par exemple une mémoire vive, et une mémoire non volatile 504 (NV MEM), telle qu'une mémoire flash. La mémoire non volatile 504 stocke par exemple des données 506 (DATA). Les données 506 sont par exemple des données sensibles ou confidentielles, telles que des données personnelles (données médicales, données bancaires, données de vote électronique, etc.). Par exemple, les données 506 comprennent les données en clair à .
Le circuit intégré 500 comprend en outre par exemple un processeur non sécurisé 514 (CPU), une interface 516 (INTERFACE) et un générateur de nombres aléatoires 518 (RN GENERATOR) reliés à la mémoire volatile 502 et à la mémoire non volatile 504 par l'intermédiaire d'un bus 512. Dans certains modes de réalisation, le générateur de nombres aléatoires 518 est un générateur de nombres pseudo-aléatoires (PRNG).
Selon un mode de réalisation, le circuit intégré 500 comprend en outre par exemple un circuit sécurisé 520 (SEC CIRCUIT), parfois également désigné comme étant un élément sécurisé, relié au bus 512. Le circuit sécurisé 520 est par exemple configuré pour stocker une clef secrète 522 (SECRET KEY) d'une façon non volatile. La clef secrète 522 a par exemple été générée précédemment par le dispositif informatique 400 et est stockée par le circuit sécurisé 520 en association avec l'identifiant . Le stockage de la clef secrète 522 et de l'identifiant dans une mémoire du circuit sécurisé 520 est par exemple effectué pendant une étape de fabrication du dispositif électronique 100 et dans un environnement sécurisé. Le circuit sécurisé 520 est par exemple configuré en outre pour stocker des instructions des algorithmes totalement homomorphes 510 (FHE ALGO). Par exemple, les algorithmes totalement homomorphes comprennent la fonction de cryptage et la fonction de décryptage .
Selon un mode de réalisation, lorsque le processeur 514 déclenche un traitement des données 506 par le serveur 102, les données 506 sont fournies à une mémoire volatile du circuit sécurisé 520 et la clef secrète 522 est également par exemple chargée depuis une mémoire non volatile du circuit sécurisé 520 dans la mémoire volatile du circuit sécurisé. Le circuit sécurisé 520 effectue ensuite par exemple l'algorithme de cryptage sur les données. Par exemple, les données en clair à et la clef secrète sont stockées dans la mémoire volatile du circuit sécurisé 520 et le processeur du circuit sécurisé 520 est configuré pour appliquer la fonction de cryptage à chaque valeur de donnée en clair à en utilisant la clef secrète , afin de générer N valeurs de données cryptées à , de telle sorte que pour tout appartenant à l'ensemble , .
L'interface 516 est par exemple configurée pour fournir les données cryptées à au serveur 102. La fourniture des données cryptées au serveur 102 est par exemple effectuée au moins partiellement par l'intermédiaire de communications sans fil et dans certains modes de réalisation par l'intermédiaire d'un ou de plusieurs réseaux intermédiaires, tels que l'internet.
La est un organigramme représentant des opérations effectuées par le système 402 de la afin de mettre en œuvre et d'exécuter un algorithme de chiffrement totalement homomorphe selon un mode de réalisation. Ces opérations sont effectuées en particulier par le dispositif informatique 400, par le circuit sécurisé 520, par le dispositif électronique 100, et dans des circuits particuliers du dispositif électronique 100 autres que le circuit sécurisé, et par le serveur 102.
le dispositif informatique 400 génère par exemple la clef secrète et la clef d'amorçage dans une étape 600 (GENERATE KEYS). La génération prend par exemple place dans un environnement sécurisé, par exemple pendant la fabrication du dispositif électronique 100.
Le dispositif informatique 400 fournit par exemple ensuite la clef secrète au circuit sécurisé 520 du dispositif électronique 100 dans une étape 602 (PROVIDE SECRET KEY). La fourniture de la clef secrète est par exemple effectuée dans l'environnement sécurisé et au moyen d'une communication sécurisée. Le dispositif informatique 400 fournit en outre, dans l'étape 602 ou dans une étape séparée, l'identifiant au circuit sécurisé 520 du dispositif électronique 100. L'identifiant est par exemple stocké dans la mémoire non volatile 504 du dispositif électronique 100. Dans un autre exemple, l'identifiant est stocké, en association avec la clef secrète , dans un élément mémoire non volatile du circuit sécurisé 520. Dans certains modes de réalisation, l'identifiant est un numéro de série, ou un autre identifiant unique, du dispositif électronique 100.
Le dispositif informatique 400 fournit en outre la clef d'amorçage , en association avec l'identifiant , au serveur 102 et/ou au réseau neuronal 404 dans une étape 604 (PROVIDE BOOTSTRAPPING KEY).
Pendant l'utilisation du dispositif électronique 100, le dispositif électronique 100 déclenche par exemple une requête de traitement de données par le serveur 102. Par exemple, le dispositif électronique 100 comporte une ou plusieurs applications logicielles configurées pour enregistrer les données et pour déterminer le moment auquel les données doivent être transmises au serveur 102 pour un traitement de données supplémentaire. Par exemple, le traitement de données est trop coûteux en termes de besoins en puissance ou de ressources de calcul pour être effectué par le dispositif électronique 100 lui-même.
Avant d'être cryptées en utilisant l'algorithme totalement homomorphe, les données en clair sont par exemple tout d'abord converties, dans une étape 606 (ENCODE DATA), en une représentation qui permet leur cryptage.
Par exemple, le cryptage utilise un algorithme de cryptage totalement homomorphe à base de tore. Les données en clair sont converties, dans l'étape 606, en des valeurs, chacune appartenant au tore réel, où le tore réel est équivalent à l'ensemble de nombres réels modulo 1.
Les données codées sont ensuite cryptées dans une étape 608 (ENCRYPT DATA) par le circuit sécurisé 520 conformément à un algorithme de cryptage totalement homomorphe, à l'aide de la clef secrète . Par exemple, l'algorithme de cryptage utilisé dans l'étape 608 est un algorithme de cryptage totalement homomorphe à base de tore et est compris dans les algorithmes 510.
Les données cryptées et l'identifiant sont ensuite par exemple fournies, par exemple par l'interface 516, au serveur 102.
Dans une étape 610 (COMPUTE AND BOOTSTRAPPING), le serveur 102 récupère la clef d'amorçage grâce à l'identifiant . Les données cryptées et la clef d'amorçage sont ensuite par exemple appliquées en tant que données d'entrée au réseau neuronal 404. Le réseau neuronal 404 est par exemple configuré pour effectuer une ou plusieurs opérations, par exemple une combinaison d'additions homomorphes et/ou de multiplications homomorphes, sur les données d'entrée par une succession de couches de neurones du réseau neuronal. La clef d'amorçage est par exemple utilisée sur les valeurs de données de sortie de chaque couche afin d'éliminer le bruit résultant de l'application d'additions et de multiplications homomorphes aux données cryptées. Dans un autre exemple, la clef d'amorçage est utilisée par chaque neurone après les opérations de traitement de données appliquées par le neurone. Le réseau neuronal 404 fournit en sortie un résultat crypté, correspondant au traitement des données cryptées. Le serveur 102 fournit ensuite le résultat crypté au dispositif électronique 100.
La clef secrète est par exemple chargée dans la mémoire volatile du circuit sécurisé 520 avec le résultat crypté. Le circuit sécurisé 520 est par exemple configuré pour effectuer, dans une étape 612 (DECRYPT RESULT), le décryptage du résultat crypté. Le décryptage est effectué en utilisant l'algorithme de décryptage totalement homomorphe basé sur la clef secrète . Le décryptage résulte en les données décryptées.
Les données décryptées sont ensuite décodées par le dispositif électronique 102 dans une étape 614 (DECODE DATA) conformément à un algorithme de décodage, qui est par exemple l'inverse du schéma de codage utilisé dans l'étape 606. Les données résultant de cette opération de décodage correspondent par exemple au résultat du traitement des données en clair d'origine. En particulier, les données décodées correspondent par exemple aux données qui auraient été obtenues si le traitement avait été effectué directement sur les données en clair.
De plus, comme le dispositif électronique 100 ne manipule pas la clef d'amorçage , la durée du traitement de données impliquant cette clef d'amorçage dépend seulement de la capacité de calcul du serveur 102.
La figure 7 est un organigramme représentant des opérations effectuées par le dispositif électronique 100, par exemple par le circuit sécurisé 520 et le générateur de nombres aléatoires 518 du dispositif électronique 100, pour crypter une valeur de donnée en clair et/ou pour décrypter une donnée cryptée selon un exemple de mode de réalisation. La figure 7 est basée sur un exemple dans lequel la valeur de donnée en clair a 8 octets, toutefois la personne du métier comprendra comment le procédé pourrait être adapté à des valeurs de données en clair d'autres longueurs.
Par exemple, la clef secrète comprend 10 mots chacun de 64 bits. D'autres formats sont bien entendu possibles. En effet, le nombre de 10 mots formant la clef secrète et le nombre de 64 bits dans chaque mot sont présentés à titre d'exemple et ne sont pas limitatifs.
Dans une étape 700 (GENERATION OF ), un nombre 630 de nombres aléatoires à sont générés, par exemple par le générateur de nombres aléatoires 518. Le nombre 630 de nombres aléatoires est donné à titre d'exemple et n'est, bien sûr, pas limitatif. En outre, la donnée en clair à crypter a par exemple 8 octets
Dans une étape 701 (INITIALIZATION ), une variable est initialisée, par exemple à la valeur 0.
Dans une étape 702, une variable itérative est initialisée par exemple à la valeur 0.
Dans une étape 703, une variable itérative est initialisée par exemple à la valeur 0.
Dans une étape 704 ( ?), il est déterminé, par le circuit sécurisé 520, si le bit du mot de la clef secrète est égal à 1. Si le bit du mot de la clef secrète est égal à 1 (branche Y), le processus se poursuit par une étape 705 ( ). Dans l'étape 705, la variable est incrémentée par le nombre aléatoire .
Dans le cas où il est déterminé dans l'étape 704 que le bit du mot de la clef secrète n'est pas égal à 1 (branche N), ou après la réalisation de l'étape 705, le processus se poursuit par une étape 706 ((j<63) && (64*i+j<629)?).
Dans l'étape 706, il est par exemple déterminé, par le circuit sécurisé 520, si la variable itérative est inférieure à 63 et si la valeur est inférieure à 629. Dans l'affirmative (branche Y), la variable itérative est incrémentée à la valeur dans une étape 707 ( ) et le processus reprend à l'étape 704.
Si, dans l'étape 706, il est déterminé que la variable itérative est égale à 63 ou que la valeur est supérieure à 629 (branche N), il est ensuite déterminé, dans une étape 708 ( ?) si la variable itérative est inférieure à 9. Dans l'affirmative (branche Y), le processus se poursuit par une étape 709 ( ) dans laquelle la variable itérative est incrémentée à la valeur . Après l'étape 709, le processus reprend à l'étape 703.
Si, dans l'étape 708, il est déterminé que la variable itérative est égale à 9 (branche N), la donnée en clair est alors ajoutée à la variable pour générer une valeur dans une étape 710 ( ). Le processus de cryptage s'achève ensuite par exemple dans une étape 711 (END) et la valeur de donnée cryptée de sortie est par exemple égale à la séquence composée par les 630 nombres aléatoires de 8 octets et un dernier nombre de 8 octets ( ).
Pour décrypter une valeur de donnée cryptée générée par le serveur 102, le processus implique par exemple la réutilisation, par le circuit sécurisé 520, des 630 nombres aléatoires à . La valeur de donnée cryptée est par exemple une séquence comprenant, en tant que ses 630 premières valeurs, les 630 nombres aléatoires à , et en tant que sa dernière valeur, une valeur résultant des opérations appliquées par le serveur 102 à une ou plusieurs valeurs . Le circuit sécurisé 520 est par exemple configuré pour effectuer les étapes 701 à 709 jusqu'à ce que, dans l'étape 708, la valeur itérative . Ensuite, l'opération 710 est remplacée par une opération dans laquelle la valeur de donnée décryptée est obtenue en soustrayant la nouvelle variable de la dernière valeur de la donnée cryptée .
La figure 8 est un organigramme représentant des opérations effectuées par le dispositif électronique 100 pour crypter et/ou décrypter des données selon un autre exemple de mode de réalisation. En particulier, la figure 8 représente une variante au procédé de la figure 7 dans laquelle une contre-mesure est mise en œuvre contre des attaques contre le dispositif électronique 100 dans laquelle un attaquant peut tenter d'obtenir la valeur de la clef secrète. La contre-mesure de la figure 8 implique le brouillage de l'ordre des mots traités dans le processus de cryptage décrit en relation avec la . Cette contre-mesure est par exemple effectuée afin de contrecarrer des attaques par canal auxiliaire ou des attaques par analyse de la consommation. Certaines étapes de la sont identiques à des étapes de la et ont été désignées avec de mêmes références numériques.
Dans une étape 800 (GENERATION OF ), 630 nombres aléatoires à sont générés, comme dans une réalisation de l'étape 700. En outre, dans l'étape 800, un nombre aléatoire est généré. Par exemple le nombre aléatoire est généré avec la condition qu'il appartient à un ensemble d'entiers de la forme , où est un entier. Dans l'exemple illustré par la figure 8, mais d'autres valeurs sont bien entendu possibles pour l'entier .
Après l'étape 800, les étapes 701 et 702 consistant à initialiser la variable et la variable itérative , décrites en relation avec la , sont exécutées par le processeur cryptographique 508.
Ensuite, dans une étape 801 ( ) il est déterminé si le résultat de l'opération est inférieur à 9.
Dans l'affirmative (branche Y), la variable itérative est initialisée à 0 dans l'étape 703.
Dans une étape 804 ( ?), similaire à l'étape 704 si ce n'est l'indice du mot ( est remplacé par ), il est déterminé si le bit du mot est égal à 1. Si c'est le cas (branche Y), le processus se poursuit par une étape 805 ( ), dans laquelle la variable est incrémentée avec la donnée aléatoire .
Si, dans l'étape 804, il est déterminé que le bit du mot de la clef secrète n'est pas égal à 1, ou après l'étape 805, le processus se poursuit par une étape 806 ((j<63) && (64*(i^xorindex)+j<629)?).
L'étape 806 est similaire à l'étape 706, si ce n'est qu'il est par exemple déterminé si la variable itérative est inférieure à 63 et si la valeur est inférieure à 629.
Si, dans l'étape 806, il est déterminé que la variable itérative est inférieure à 63 et que la valeur est inférieure à 629 (branche Y), le processus se poursuit par l'étape 707 et revient ensuite à l'étape 804.
Si, dans l'étape 806, il est déterminé que la variable itérative est égale à 63 ou que la valeur est supérieure à 629 (branche N), le processus se poursuit par l'étape 808 ( ?). L'étape 808 est similaire à l'étape 708, si ce n'est que la valeur seuil pour la variable itérative est 16 et plus 9. En effet, si , cela signifie que tous les mots de la clef secrète ont été traités dans la succession d'étapes 703, 804, 805 et 706.
Si la variable itérative est inférieure à 16 (branche Y) ou si, dans l'étape 801, il est déterminé que la valeur est égale à 9, le processus se poursuit par l'étape 709. Après l'étape 709, dans laquelle la variable itérative est incrémentée, le processus revient à l'étape 801.
Si, dans l'étape 808, il est déterminé que la variable itérative est égale à 16 (branche N), alors la donnée en clair est ajoutée à la variable dans l'étape 710 ( ). Le processus de cryptage s'achève ensuite par exemple par une étape 711 (END) et la valeur de donnée cryptée de sortie est par exemple égale à la séquence ( ).
Le décryptage d'une donnée cryptée est ensuite similaire à celui décrit en relation avec la .
La figure 9 est un organigramme représentant des opérations effectuées par le dispositif électronique 100 pour crypter et/ou décrypter des données selon un autre exemple de mode de réalisation. En particulier, la figure 9 représente la mise en œuvre d'une contre-mesure supplémentaire, en masquant les mots traités dans le processus de cryptage décrit en relation avec la . Il serait également possible d'appliquer la technique de masquage de la au procédé de la , en d'autres mots de mettre en œuvre le masquage sans brouiller l'ordre.
Selon un mode de réalisation, la clef secrète est stockée masquée dans l'élément sécurisé 520. Par exemple, chaque mot de la clef secrète , avec , est masqué avec un masque . Le circuit sécurisé 520 stocke par exemple 10 mots masqués à . Par exemple, les masques à sont générés aléatoirement par le générateur de nombres aléatoires 518.
Après la réalisation d'étapes 800, 701, 702 et 801, qui sont identiques à celles de la figure 8 et, si la valeur est inférieure à 9 (branche Y de l'étape 801), le mot masqué de l'index est par exemple chargé dans la mémoire volatile du circuit sécurisé 520, et est démasqué dans une étape 900 ( ). Dans l'étape 900, le mot démasqué est par exemple obtenu en appliquant une opération au mot masqué et au masque . La valeur du mot démasqué est ensuite par exemple affectée à une variable .
Après l'étape 900, la variable itérative est par exemple initialisée dans l'étape 703. Ensuite, dans une étape 901, il est par exemple déterminé si le bit de la variable est égal à 1.
Après l'étape 901, le procédé se poursuit par exemple conformément à la séquence d'étapes 805, 806, 707, 808, 709, 710 et 711, comme cela a été décrit en relation avec la .
La valeur de donnée cryptée de sortie est par exemple égale à la séquence ( ) et le décryptage d'une donnée cryptée est ensuite similaire à celle décrite en relation avec la .
La figure 10 est un organigramme représentant des opérations effectuées par le dispositif électronique pour crypter et/ou décrypter des données selon encore un autre exemple de mode de réalisation. En particulier, la figure 10 représente la mise en œuvre d'une contre-mesure supplémentaire qui est appliquée par rapport au procédé de la figure 9. Cette contre-mesure implique l'exécution d'une opération factice lorsque le bit du mot de la clef secrète n'est pas égal à 1 (étapes 704, 804 et 901 de la ). Cette contre-mesure contrecarre des attaques par analyse de consommation. Il serait également possible d'appliquer la technique d'opération factice de la au procédé de la ou 8, en d'autres mots de mettre en œuvre des opérations factices sans brouiller l'ordre et/ou sans masquer la clef.
Après l'étape 800, le procédé de la figure 10 comprend par exemple une étape 1000 (INITIALIZATION , ) qui remplace l'étape 701 de la figure 9. Dans l'étape 1000, la variable est initialisée, par exemple à la valeur 0, et une variable factice est également initialisée, par exemple à 0.
Le processus se poursuit ensuite comme le processus décrit en relation avec la figure 9, jusqu'à la réalisation de l'étape 901. L'étape 901 de la figure 10 est identique à celle de la figure 9, si ce n'est, si le bit n'est pas égal à 1, qu'une étape 1001 ( ) est mise en œuvre avant l'étape 706. Dans l'étape 1001, la variable factice est incrémentée avec la valeur du nombre aléatoire . En effet, afin de rendre non distinguable si le bit vérifié dans l'étape 901 est égal à 1 ou non, des additions similaires sont effectuées à la fois dans les étapes 805 et 1001 après les branches de sortie Y et N respectivement de l'étape 804. De cette façon, si une attaque par analyse de consommation survient, il sera difficile de déduire les valeurs des bits considérés dans l'étape 901 (ou de façon similaire dans l'étape 704 ou 804 de la ou 8).
Selon un mode de réalisation, pour éviter des attaques par modèle, toutes les opérations sont effectuées bit à bit à 32 bits ou 64 bits, en fonction de l'architecture du circuit intégré 500.
Un avantage des modes de réalisation décrits est que la clef d'amorçage est directement fournie au serveur 102 sans être générée par le dispositif électronique 100.
Un autre avantage d'au moins certains des modes de réalisation décrits est que la clef secrète est stockée de façon sécurisée, dans le circuit sécurisé 520.
Un autre avantage d'au moins certains des modes de réalisation décrits est que la clef secrète est en outre protégée par la mise en œuvre de contre-mesures pendant son utilisation pendant les cryptage et décryptage totalement homomorphe de valeurs de données.
Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. En particulier, les contre-mesures décrites en relation avec les figures 7 à 10 peuvent être dissociées. De plus, le secret est présentée comme étant une séquence de 10 mots de 64 bits chacun, mais d'autres représentations sont possibles. En particulier, le nombre de mots et les nombres de bits peuvent être modifiés.
Enfin, la mise en œuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Par exemple, la mise en œuvre du circuit sécurisé 500 sera à la portée de la personne du métier.
Claims (14)
- Procédé de fourniture de clefs pour un cryptage totalement homomorphe comprenant :
- la génération, par un dispositif informatique (400), d'une première clef ( ) et d'une clef d'amorçage ( ) ;
- la fourniture de la première clef et d'un identifiant (id) de la clef d'amorçage à un dispositif électronique (100) et la fourniture de la clef d'amorçage et de l'identifiant à un serveur (102) ;
- le cryptage totalement homomorphe, par le dispositif électronique, d'une première valeur de donnée ( ), stockée dans le dispositif électronique, à l'aide de la première clef ; et
- la fourniture, par le dispositif électronique, de la première valeur de donnée cryptée ( ) de l'identifiant, au serveur. - Procédé selon la revendication 1, comprenant en outre :
- la réception, par le dispositif électronique (100), d'une deuxième valeur de donnée ( ) provenant du serveur (102) ; et
- La génération d'une troisième valeur de donnée ( ) par un décryptage totalement homomorphe de la deuxième valeur de donnée à l'aide de la première clef ( ), la troisième valeur de donnée correspondant au résultat d'une première opération ( ) appliquée à la première valeur de donnée ( ). - Procédé selon la revendication 2, comprenant en outre la l’exécution, par le serveur (102), de la première opération sur la deuxième valeur de donnée (
) selon un algorithme de traitement totalement homomorphe sur la base de la première valeur de donnée cryptée ( ) et de la clef d'amorçage ( ). - Procédé selon la revendication 2 ou 3, dans lequel le dispositif électronique (100) comprend un circuit sécurisé (520), le procédé comprenant en outre, après la fourniture de la première clef (K), le stockage de la première clef dans le circuit sécurisé.
- Procédé selon l'une quelconque des revendications 2 à 4, dans lequel le dispositif électronique (100) comprend un processeur cryptographique (508) et dans lequel le cryptage totalement homomorphe de la première valeur de donnée (
) comprend :
- la génération, par le processeur cryptographique, d'une première valeur de donnée intermédiaire en codant la première valeur de donnée ; et
- l'application d'un algorithme de cryptage totalement homomorphe à la première valeur de donnée intermédiaire, par le processeur cryptographique et à l'aide de la première clef (K), le cryptage résultant en la première valeur de donnée cryptée ( ). - Procédé selon la revendication 5, dans lequel le décryptage totalement homomorphe de la deuxième valeur (
) comprend :
- l'application d'un algorithme de décryptage totalement homomorphe à la deuxième valeur de donnée par le processeur cryptographique (508) et à l'aide de la première clef ( ), le décryptage résultant en une troisième valeur de donnée intermédiaire ; et
- le décodage de la troisième valeur de donnée intermédiaire, par le processeur cryptographique, résultant en la troisième valeur de donnée ( ). - Procédé selon l'une quelconque des revendications 3 à 6, dans lequel le traitement totalement homomorphe de la première valeur de donnée cryptée (
) est effectué par un réseau neuronal (404) implémenté dans le serveur (102). - Procédé selon la revendication 7, dans lequel un ou plusieurs neurones du réseau neuronal (404) sont configurés pour effectuer une opération d'amorçage à l'aide de la clef d'amorçage (
). - Procédé selon l'une quelconque des revendications 3 à 8, dans lequel la première clef est une séquence de N mots (s0, ..., sN) de bits, chacun des N mots comprenant un nombre M de bits, et dans lequel l'algorithme de cryptage comprend :
a) la génération de J+1 nombres aléatoires (rand0, ..., rand629), où J+1 est égal à N*M ;
b) le calcul de la somme du produit des bits de la clef secrète avec des nombres aléatoires correspondants ; et
c) l'addition de la valeur de donnée à crypter à la somme. - Procédé selon la revendication 9, dans lequel l'ordre des additions à l'étape b) est choisi aléatoirement par le processeur cryptographique.
- Procédé selon l'une quelconque des revendications 1 à 10, dans lequel la première clef est stockée dans une mémoire du dispositif électronique masquée avec un masque aléatoire, le démasquage étant effectué pendant l'exécution de l'algorithme de cryptage.
- Procédé selon l'une quelconque des revendications 9 à 11, dans lequel l'étape b) comprend en outre le calcul d'une somme supplémentaire des nombres aléatoires pour lesquels le bit correspondant de la clef secrète est 0.
- Système comprenant :
- un dispositif informatique (400) configuré pour générer une première clef ( ), et une clef d'amorçage ( ), pour fournir la première clef et un identifiant ( ) de la clef d'amorçage à un dispositif électronique (100) et pour fournir la clef d'amorçage et l'identifiant à un serveur (102) ; et
- le dispositif électronique étant configuré pour :
crypter conformément à un algorithme de cryptage totalement homomorphe une première valeur de donnée ( ), à l'aide de la première clef ; et
fournir la première valeur de donnée cryptée ( ) et l'identifiant au serveur. - Système selon la revendication 13, comprenant en outre le serveur (102) configuré pour :
calculer, conformément à un traitement totalement homomorphe sur la base de la première valeur de donnée cryptée ( ) et de la clef d'amorçage ( ), une deuxième valeur de donnée (c) ; et
fournir la deuxième valeur de donnée au dispositif électronique (100),
le dispositif électronique étant en outre configuré pour générer une troisième valeur de donnée ( ) en appliquant, à la deuxième valeur de donnée, un algorithme de décryptage totalement homomorphe qui utilise la première clef (K), la troisième valeur de donnée correspondant au résultat d'une première opération ( ) appliquée à la première valeur de donnée.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2204682A FR3135854B1 (fr) | 2022-05-17 | 2022-05-17 | Fourniture sécurisée de clefs pour un cryptage totalement homomorphe |
| US18/314,534 US20230379136A1 (en) | 2022-05-17 | 2023-05-09 | Secure provision of keys for fully homomorphic encryption |
| EP23172237.2A EP4280530A1 (fr) | 2022-05-17 | 2023-05-09 | Fourniture sécurisée de clés pour chiffrement entièrement homomorphe |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2204682 | 2022-05-17 | ||
| FR2204682A FR3135854B1 (fr) | 2022-05-17 | 2022-05-17 | Fourniture sécurisée de clefs pour un cryptage totalement homomorphe |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR3135854A1 true FR3135854A1 (fr) | 2023-11-24 |
| FR3135854B1 FR3135854B1 (fr) | 2025-01-03 |
Family
ID=83188361
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR2204682A Active FR3135854B1 (fr) | 2022-05-17 | 2022-05-17 | Fourniture sécurisée de clefs pour un cryptage totalement homomorphe |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20230379136A1 (fr) |
| EP (1) | EP4280530A1 (fr) |
| FR (1) | FR3135854B1 (fr) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12500733B2 (en) * | 2023-11-21 | 2025-12-16 | Belfort Labs Bv | Method for accelerating bootstrapping in a cryptographic application |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2020206695A1 (fr) * | 2019-04-12 | 2020-10-15 | Hangzhou Nuowei Information Technology Co., Ltd. | Système de propriété décentralisée et de partage sécurisé de données de santé personnalisées |
| US11595210B2 (en) * | 2019-05-06 | 2023-02-28 | Inferati Inc. | Accurate, real-time and secure privacy-preserving verification of biometrics or other sensitive information |
-
2022
- 2022-05-17 FR FR2204682A patent/FR3135854B1/fr active Active
-
2023
- 2023-05-09 EP EP23172237.2A patent/EP4280530A1/fr active Pending
- 2023-05-09 US US18/314,534 patent/US20230379136A1/en active Pending
Non-Patent Citations (2)
| Title |
|---|
| BOURSE FLORIAN ET AL: "Fast Homomorphic Evaluation of Deep Discretized Neural Networks", 24 July 2018, 16TH EUROPEAN CONFERENCE - COMPUTER VISION - ECCV 2020, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, PAGE(S) 483 - 512, XP047605033 * |
| ILARIA CHILLOTTI ET AL: "Programmable Bootstrapping Enables Efficient Homomorphic Inference of Deep Neural Networks", vol. 20210127:133406, 25 January 2021 (2021-01-25), pages 1 - 18, XP061051918, Retrieved from the Internet <URL:https://eprint.iacr.org/2021/091.pdf> [retrieved on 20210125] * |
Also Published As
| Publication number | Publication date |
|---|---|
| US20230379136A1 (en) | 2023-11-23 |
| EP4280530A1 (fr) | 2023-11-22 |
| FR3135854B1 (fr) | 2025-01-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2380305B1 (fr) | Circuit de cryptographie, protégé notamment contre les attaques par observation de fuites d'information par leur chiffrement | |
| EP1151576B1 (fr) | Procede cryptographique a cles publique et privee | |
| EP2232765A2 (fr) | Procede et entite de chiffrement symetrique probabiliste | |
| FR3033965A1 (fr) | ||
| WO2003024017A2 (fr) | Procede de securisation d'une quantite secrete | |
| EP2638660B1 (fr) | Protection contre les ecoutes passives | |
| EP2415199B1 (fr) | Procede pour effectuer une tache cryptographique dans un composant electronique | |
| EP3502899A1 (fr) | Procédé de détermination d'une somme d'intégrité, programme d'ordinateur et entité électronique associés | |
| EP2166696A1 (fr) | Protection de l'intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature | |
| EP2983083B1 (fr) | Procede de cryptographie sur courbe elliptique comprenant une detection d'erreur | |
| EP3300292B1 (fr) | Procédé de chiffrement ou de déchiffrement protégé contre des attaques par canaux cachés | |
| CA2867241A1 (fr) | Procede de cryptage d'une pluralite de donnees en un ensemble securise | |
| FR3135854A1 (fr) | Fourniture sécurisée de clefs pour un cryptage totalement homomorphe | |
| EP2159952A1 (fr) | Protection d'un algorithme de chiffrement | |
| WO2001082525A1 (fr) | Procede de calcul d'une donnee de controle de cle cryptographique | |
| EP1804161B1 (fr) | Détection de perturbation dans un calcul cryptographique | |
| EP3579491A1 (fr) | Procédé de détermination d'inverse modulaire et dispositif de traitement cryptographique associé | |
| WO2009068658A1 (fr) | Procedes et dispositifs de cryptage et de decryptage d'un message de donnees a cle secrete aleatoire | |
| EP3843327A1 (fr) | Procédé de codage d'un motif d'intégrité cryptographique de faible taille et dispositifs associés | |
| FR2942560A1 (fr) | Procede de traitement de donnees impliquant une exponentiation et un dispositif associe. | |
| FR2867289A1 (fr) | Procede et dispositif pour accomplir une operation cryptographique | |
| WO2024083855A1 (fr) | Clés cryptographiques en boite blanche | |
| EP4270855A1 (fr) | Protection contre les attaques par canal auxiliaire a l aide d'un masquage carre | |
| EP3716044A1 (fr) | Protection d'un calcul itératif | |
| EP2147368A1 (fr) | Procede de generation de chaines de bits pseudo-aleatoires |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PLFP | Fee payment |
Year of fee payment: 2 |
|
| PLSC | Publication of the preliminary search report |
Effective date: 20231124 |
|
| PLFP | Fee payment |
Year of fee payment: 3 |
|
| PLFP | Fee payment |
Year of fee payment: 4 |