Brevet FR3135854A1 — publié le 20231124

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 Fourniture sécurisée de clefs pour un cryptage totalement homomorphe 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. 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. 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. 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. 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. 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. 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 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. 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 (s 0 , ..., s N ) 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 (rand 0 , ..., rand 629 ), 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.