Si le chiffrement existe depuis des milliers d'années, la cryptographie programmable est une technologie moderne. Décrite comme une "cryptographie à usage général ... [ou] un langage expressif pour les revendications", l'idée est qu'une primitive cryptographique telle qu'une preuve ZK pourrait être rendue suffisamment flexible et adaptable pour qu'un développeur puisse programmer presque n'importe quelle fonction au-dessus d'elle. Il peut exister une chaîne logique ininterrompue entre le moment où quelqu'un clique sur un bouton sur un site web et la preuve mathématique qui garantit la sécurité d'une opération cryptographique.
https://youtu.be/qAfprVCBhdQ?t=1024
Alors que la cryptographie traditionnelle s'appuie sur des ensembles fixes de fonctionnalités, ce qui oblige un cryptographe compétent à construire un système spécialisé pour chaque nouveau mécanisme, la cryptographie programmable permet aux développeurs de déployer des propriétés et des fonctionnalités cryptographiques dans un langage plus proche de ce qu'ils comprennent déjà. Les développeurs qui ne sont pas des experts en cryptographie disposent ainsi d'une interface plus familière.
Les preuves ZK ont été conçues pour la première fois en 1989 mais sont restées essentiellement théoriques jusqu'en 2012, date à laquelle un type de preuve ZK appelé zk-SNARK a été découvert. Cette nouvelle primitive a permis aux preuves ZK de prouver ou d'authentifier pratiquement n'importe quelle fonction ou calcul arbitraire.
Depuis que zkSNARKS est devenu possible, les ressources et les talents ont afflué pour construire zCash, zkRollups, zkEVM et une foule d'autres applications commençant par la lettre z. Il s'est avéré que les systèmes décentralisés comme Ethereum, et les chaînes de blocs en général, étaient la motivation parfaite pour intéresser les gens à la cryptographie, transformant un domaine de recherche autrefois peu pratique en un écosystème actif avec des applications réelles pour les utilisateurs finaux.
Rien ne garantit que le calcul multipartite (MPC), le chiffrement entièrement homomorphe (FHE) et l'obscurcissement indiscernable (iO) suivront la même voie que ZK, en devenant plus pratiques, plus optimisés et plus polyvalents au fil du temps. Mais à ce stade précoce, c'est certainement possible.
Si vous considérez la cryptographie programmable comme un type d'ordinateur numérique, construit sur la base de certaines hypothèses qui permettent d'obtenir certaines propriétés et garanties, nous en sommes encore au stade du matériel. Nous sommes encore en train de réfléchir à la meilleure façon de construire les portes logiques ou les circuits de ce nouvel ordinateur.
Pour mieux comprendre le paysage général de la cryptographie programmable, commençons par évaluer très approximativement où se situent MPC, FHE et IO par rapport à ZK et les uns par rapport aux autres. Dans cette section, et en réalité dans toutes les sections qui suivront, nous renoncerons à la nuance, à la précision et à la formalité au profit de la simplicité et de l'accessibilité.
La façon la plus simple d'aborder la cryptographie est de se demander quelles informations sont cachées ou secrètes. Et ce que le système prouve ou révèle.
Vous pouvez également considérer que chacun de ces systèmes représente un ami commun imaginaire. Wikipedia appelle cet ami "Tony". Tony est infaillible, incorruptible et totalement digne de confiance. Le travail de Tony consiste à garder des secrets. Dans le tableau ci-dessous, considérez les "éléments privés" comme les secrets que Tony peut garder en toute confiance, les "cas d'utilisation" comme les tâches que Tony pourrait raisonnablement accomplir, et l'"aspect pratique" comme l'habileté avec laquelle Tony pourrait accomplir ces tâches aujourd'hui.
Les tableaux ci-dessus sont destinés à donner une idée générale des différents domaines de la cryptographie programmable. Maintenant, allons un peu plus loin et examinons ce que font les PPM, la FHE et l'iO, ainsi que quelques informations intéressantes sur chaque domaine.
Le calcul multipartite (MPC) permet à de nombreuses parties de calculer conjointement une fonction convenue sans révéler aucune donnée aux autres participants. Avec le MPC, le même calcul est appliqué aux données de chacun, mais les données de chaque partie sont gardées secrètes. Les valeurs intermédiaires resteraient également secrètes. Seule la sortie est révélée à la fin.
Contrairement à ZK, MPC est collaboratif. Il permet à différentes parties de collaborer à un même calcul, chacune apportant ses propres données, afin d'obtenir un résultat mutuel souhaité par tous.
Nous pouvons comparer ZK et MPC dans le contexte d'un système d'intelligence artificielle pour obtenir plus de contexte. ZK permettrait d'authentifier ou de vérifier qu'une donnée provient d'une personne réelle ou du téléphone d'une personne. Le MPC est plus adapté à la formation d'un système d'IA car différents individus, groupes ou organisations peuvent partager des données sensibles avec le système d'IA tout en étant sûrs que ces données ne seront pas divulguées à d'autres personnes.
Le MPC a été conçu en 1982 par Andrew Yao pour résoudre une expérience de pensée appelée le "problème du millionnaire", dans laquelle deux millionnaires veulent savoir qui est le plus riche sans se dire l'un à l'autre combien ils ont d'argent. La solution consistait à utiliser des circuits brouillés, ce qui, selon Vitalik Buterin, qui explique souvent les concepts cryptographiques, est également l'un des moyens les plus élémentaires de comprendre le MPC.
[Avant d'apprendre ce qu'est un circuit brouillé, vous devez savoir ce qu'est un circuit arithmétique en général. Si l'idée des circuits vous est inconnue, vous trouverez ici une explication simple].
Le MPC est un processus interactif en plusieurs étapes au cours duquel le millionnaire n° 1 (Alice l'embrouilleuse) doit d'abord créer le circuit, saisir sa valeur nette, puis la transformer en une forme brouillée ou cryptée avant de la transmettre au millionnaire n° 2 (Bob l'évaluateur). Lorsque Bob met la main sur le circuit, son travail consiste à ajouter sa propre valeur nette, puis à évaluer ou à faire fonctionner le circuit pour s'assurer qu'il est correct. Enfin, Bob décrypte le résultat final et, par exemple, apprend qu'Alice est plus riche, mais n'apprend jamais qu'Alice est en fait beaucoup plus riche et qu'il n'aurait pas dû faire de suppositions.
Le problème du millionnaire et la solution des circuits brouillés ont joué un rôle crucial dans les premiers développements du MPC. Mais son application était limitée. Une version plus complexe et plus nuancée du problème, appelée le problème du millionnaire socialiste, vérifie si les deux millionnaires sont également riches, au lieu de révéler lequel a le plus d'argent. Cette différence subtile a permis d'étendre considérablement la fonctionnalité du MPC, mais a nécessité des solutions et des techniques cryptographiques plus complexes qui dépassent le cadre de cet article.
Le chiffrement entièrement homomorphe (FHE) permet d'effectuer des calculs sur des données chiffrées. Il peut exécuter une fonction sur des données cryptées comme si elles étaient restées non cryptées. La sortie de la fonction n'est décryptée que par la partie disposant de la clé secrète. Si nous considérons le cryptage comme une boîte noire qui cache des secrets, l'ESF garantit que les données et les calculs sur ces données restent à l'intérieur de cette boîte noire.
Bien qu'il n'y ait pas d'expériences de pensée célèbres comme le problème du millionnaire pour le MPC, le FHE résout une faiblesse fondamentale en matière de sécurité : "la nécessité de décrypter avant de traiter les données".
https://www.zama.ai/post/the-revolution-of-fhe
Dans le contexte de l'intelligence artificielle, la FHE permet de crypter toutes les données échangées entre l'utilisateur (détenteur de la clé secrète) et le système d'intelligence artificielle. L'utilisateur interagit normalement avec le système, mais il peut être certain que l'IA n'a jamais "appris" quoi que ce soit sur les données fournies. Toute l'interaction serait cryptée. L'IA n'apprend jamais ce que vous avez tapé ou demandé, quelles images vous avez envoyées ou qui les a envoyées, mais elle peut quand même répondre comme si elle connaissait ces informations.
Si elle fonctionne, la FHE sera l'une des technologies de préservation de la vie privée les plus puissantes qui soient. Et qui sait ? Dans 10 ans, nous aurons peut-être même des FHE-EVM.
Par rapport aux PPM et au ZK, la FHE se situe - pour l'instant - à l'extrémité la plus théorique ou la moins pratique du spectre. La technologie n'a été considérée comme réalisable qu'en 2009, lorsque Craig Gentry a trouvé un moyen de gérer le bruit.
Les opérations FHE sont très intensives en termes de calcul car du "bruit" est ajouté au cours du processus de cryptage afin de renforcer la sécurité. Le bruit dans la FHE est une petite valeur aléatoire ajoutée au texte en clair (données non chiffrées) avant qu'il ne soit transformé en texte chiffré (données chiffrées). Chaque opération augmente le bruit. Alors que les opérations d'addition et de soustraction n'entraînent qu'une augmentation négligeable du bruit, la multiplication est plus coûteuse en termes de calcul, ce qui entraîne une augmentation significative du bruit. Ainsi, à mesure que la complexité d'un programme augmente, le bruit - l'espace nécessaire pour accueillir le bruit et les ressources informatiques nécessaires pour traiter le bruit - s'accumule.
La percée de Gentry a été une technique appelée bootstrapping, qui pourrait réduire le bruit et permettre plus de calculs sur les données cryptées dans les systèmes FHE. Le bootstrapping prend le texte chiffré et le déchiffre de manière homomorphique, ce qui signifie qu'il réduit le niveau de bruit d'un élément de données chiffré sans en révéler la nature. Le résultat est un texte chiffré avec un bruit prédéfini beaucoup plus faible, ce qui nous permet d'effectuer d'autres calculs sur le texte chiffré. Le Bootstrapping, en général, nous permet de contourner la nécessité de disposer d'un espace plus important pour la croissance du bruit à mesure que la complexité du calcul augmente. Nous pouvons limiter l'espace à quelques opérations et procéder à des amorçages répétés pour effectuer des calculs de taille arbitraire sans compromettre les données d'origine.
Selon le schéma FHE, l'amorçage peut prendre plusieurs minutes ou quelques millisecondes. Si l'amorçage est plus lent, le coût de calcul peut être réparti en l'appliquant à plusieurs cryptogrammes à la fois. Si l'amorçage est plus rapide, il s'accompagne généralement d'un compromis qui consiste à ne travailler qu'avec de petits morceaux de texte en clair (généralement 8 bits) à la fois pour rester efficace.
Si FHE transforme tous les éléments du calcul en une boîte noire, alors iO transforme le calcul lui-même en une boîte noire.
L'obscurcissement de l'indiscernabilité (iO) est considéré comme le système cryptographique le plus puissant dans le domaine des possibilités théoriques. Dans un article, iO est décrit comme un "outil maître à partir duquel presque tous les autres protocoles cryptographiques pourraient être construits" et les experts en cryptographie le qualifient de "joyau de la couronne" et de "primitive cryptographique qui les domine tous".
Selon Amit Sahai, le professeur connu pour avoir expliqué les preuves ZK aux enfants, et l'un des chercheurs qui a conçu un moyen de construire iO sur la base d'hypothèses bien fondées, iO fonctionne selon un paradigme fondamentalement différent des systèmes cryptographiques précédents. L'OI suppose que l'adversaire peut déjà lire dans votre esprit (métaphore de votre ordinateur). Vos secrets sont déjà connus et ne peuvent donc pas être cachés. La seule chose que vous puissiez faire est d'obscurcir ce que l'adversaire peut déjà voir.
L'intérêt d'iO est de rendre deux fonctions ou calculs également obscurs. Si vous transformez deux calculs en une forme indiscernable l'une de l'autre, vous pouvez cacher le fonctionnement du programme. Si vous ne pouvez pas faire la différence entre deux programmes, vous ne savez pas lequel des deux programmes est exécuté, et aucune information ne peut être déduite de l'un ou l'autre, si ce n'est qu'ils exécutent tous deux la même fonction. Les deux programmes prennent les mêmes entrées et produisent les mêmes sorties, mais iO fait en sorte que personne ne puisse comprendre comment.
Avec iO, vous pouvez dissimuler la structure de tout type de fonction, y compris la quasi-totalité des fonctions qui composent la cryptographie. En d'autres termes, en occultant presque tout, vous obtenez la cryptographie programmable la plus générale sur laquelle d'autres primitives peuvent être programmées.
Techniquement, il existe une boîte noire plus grande qu'iO. C'est ce qu'on appelle littéralement l'obscurcissement de la boîte noire. Mais celle-ci reste impossible.
Personne ne savait comment construire iO jusqu'en 2013, lorsque des cartes multilinéaires ont été proposées par Garg, Gentry, Halevi, Raykova, Sahai, Waters. Un programme informatique peut être décomposé comme des pièces de puzzle, puis masqué à l'aide de cartes multilinéaires. Les pièces masquées pouvaient être réassemblées pour obtenir la même fonctionnalité que le programme original sans en révéler le fonctionnement interne.
Les cartes multilinéaires sont une généralisation des cartes ou paires bilinéaires utilisées dans la cryptographie des courbes elliptiques (ECC). Bien que les cartes bilinéaires soient à la base des systèmes cryptographiques existants tels que les signatures BLS, elles ne sont pas assez complexes ou expressives pour l'iO. Bien que les cartes multilinéaires puissent gérer iO, cette nouvelle structure algébrique était facilement attaquable et n'était pas sûre, de sorte que les cryptographes n'étaient généralement pas satisfaits de pouvoir compter sur les cartes multilinéaires. Le champ est à nouveau bloqué.
En 2020, Jain, Lin et Sahai ont proposé une solution qui, bien qu'inhabituelle et nouvelle, était suffisamment simple pour que les cryptographes puissent la raisonner. Au lieu de s'appuyer sur de nouvelles hypothèses telles que les cartes multilinéaires, cette version d'iO pourrait être construite sur des hypothèses plus standard et bien fondées qui ont été étudiées pendant des décennies, telles que l'apprentissage avec des erreurs (LWE). Avec cette dernière avancée, iO est redevenu réalisable. Le Saint-Graal était encore à portée de main.
Chaque système cryptographique repose sur des hypothèses mathématiques et des techniques cryptographiques différentes. Aucune avancée ne résout à elle seule tous les problèmes d'un système. Au contraire, les découvertes suivent une série imprévisible de petits pas et de grands sauts qui modifient les hypothèses et les techniques existantes, ce qui conduit à son tour à d'autres percées et découvertes. Et pour chaque découverte qui a fonctionné, beaucoup d'autres n'ont pas fonctionné.
Lors d'une présentation sur l'OI, M. Sahai a décrit le domaine comme étant dans une "nature sauvage", où l'on ne sait même pas ce que l'on ne comprend pas et quels sont les bons problèmes à résoudre.
Les équipes comme PSE travaillent principalement sur l'aspect pratique ou appliqué de la cryptographie programmable, en se concentrant sur des primitives comme ZK et MPC avec des hypothèses bien fondées qui ont été testées au combat, relativement optimisées et considérées comme sûres et efficaces. Bien qu'il reste encore beaucoup d'optimisations à faire, ZK est aujourd'hui tout à fait praticable. Mais il fut aussi un temps où ZK était confiné dans la nature sauvage.
Pour maximiser le nombre d'outils cryptographiques préservant la vie privée, garantissant la sécurité, vérifiant les revendications, auxquels le monde a accès, nous devrions au moins garder un œil sur l'horizon de ce qui est à venir, car personne ne peut prédire ce qui sera pratique dans dix ans.
La présentation de M. Sahai comprend une citation tirée d'un article de Steven Weinberg paru dans Nature en 2003 et intitulé "Four Golden Lessons" (Quatre leçons d'or), qui met en évidence une autre raison de travailler sur ce qui n'est pas encore réalisable.
"Lorsque j'enseignais au Massachusetts Institute of Technology à la fin des années 1960, un étudiant m'a dit qu'il voulait étudier la relativité générale plutôt que le domaine sur lequel je travaillais, la physique des particules élémentaires, parce que les principes de la relativité générale étaient bien connus, alors que la physique des particules élémentaires lui paraissait être un véritable fouillis. J'ai été frappé par le fait qu'il venait de donner une excellente raison de faire le contraire... Mon conseil est de s'attaquer aux désordres - c'est là que se trouve l'action".
La cryptographie programmable est étudiée par diverses équipes, dont PSE et 0xPARC, coorganisateurs d'un événement de deux jours appelé Programmable Cryptography Conference, qui se tiendra à Istanbul, en Turquie, le 16 novembre & 17, 2023.
Venez dire bonjour !
Ou retrouvez PSE en ligne sur Discord.
Si le chiffrement existe depuis des milliers d'années, la cryptographie programmable est une technologie moderne. Décrite comme une "cryptographie à usage général ... [ou] un langage expressif pour les revendications", l'idée est qu'une primitive cryptographique telle qu'une preuve ZK pourrait être rendue suffisamment flexible et adaptable pour qu'un développeur puisse programmer presque n'importe quelle fonction au-dessus d'elle. Il peut exister une chaîne logique ininterrompue entre le moment où quelqu'un clique sur un bouton sur un site web et la preuve mathématique qui garantit la sécurité d'une opération cryptographique.
https://youtu.be/qAfprVCBhdQ?t=1024
Alors que la cryptographie traditionnelle s'appuie sur des ensembles fixes de fonctionnalités, ce qui oblige un cryptographe compétent à construire un système spécialisé pour chaque nouveau mécanisme, la cryptographie programmable permet aux développeurs de déployer des propriétés et des fonctionnalités cryptographiques dans un langage plus proche de ce qu'ils comprennent déjà. Les développeurs qui ne sont pas des experts en cryptographie disposent ainsi d'une interface plus familière.
Les preuves ZK ont été conçues pour la première fois en 1989 mais sont restées essentiellement théoriques jusqu'en 2012, date à laquelle un type de preuve ZK appelé zk-SNARK a été découvert. Cette nouvelle primitive a permis aux preuves ZK de prouver ou d'authentifier pratiquement n'importe quelle fonction ou calcul arbitraire.
Depuis que zkSNARKS est devenu possible, les ressources et les talents ont afflué pour construire zCash, zkRollups, zkEVM et une foule d'autres applications commençant par la lettre z. Il s'est avéré que les systèmes décentralisés comme Ethereum, et les chaînes de blocs en général, étaient la motivation parfaite pour intéresser les gens à la cryptographie, transformant un domaine de recherche autrefois peu pratique en un écosystème actif avec des applications réelles pour les utilisateurs finaux.
Rien ne garantit que le calcul multipartite (MPC), le chiffrement entièrement homomorphe (FHE) et l'obscurcissement indiscernable (iO) suivront la même voie que ZK, en devenant plus pratiques, plus optimisés et plus polyvalents au fil du temps. Mais à ce stade précoce, c'est certainement possible.
Si vous considérez la cryptographie programmable comme un type d'ordinateur numérique, construit sur la base de certaines hypothèses qui permettent d'obtenir certaines propriétés et garanties, nous en sommes encore au stade du matériel. Nous sommes encore en train de réfléchir à la meilleure façon de construire les portes logiques ou les circuits de ce nouvel ordinateur.
Pour mieux comprendre le paysage général de la cryptographie programmable, commençons par évaluer très approximativement où se situent MPC, FHE et IO par rapport à ZK et les uns par rapport aux autres. Dans cette section, et en réalité dans toutes les sections qui suivront, nous renoncerons à la nuance, à la précision et à la formalité au profit de la simplicité et de l'accessibilité.
La façon la plus simple d'aborder la cryptographie est de se demander quelles informations sont cachées ou secrètes. Et ce que le système prouve ou révèle.
Vous pouvez également considérer que chacun de ces systèmes représente un ami commun imaginaire. Wikipedia appelle cet ami "Tony". Tony est infaillible, incorruptible et totalement digne de confiance. Le travail de Tony consiste à garder des secrets. Dans le tableau ci-dessous, considérez les "éléments privés" comme les secrets que Tony peut garder en toute confiance, les "cas d'utilisation" comme les tâches que Tony pourrait raisonnablement accomplir, et l'"aspect pratique" comme l'habileté avec laquelle Tony pourrait accomplir ces tâches aujourd'hui.
Les tableaux ci-dessus sont destinés à donner une idée générale des différents domaines de la cryptographie programmable. Maintenant, allons un peu plus loin et examinons ce que font les PPM, la FHE et l'iO, ainsi que quelques informations intéressantes sur chaque domaine.
Le calcul multipartite (MPC) permet à de nombreuses parties de calculer conjointement une fonction convenue sans révéler aucune donnée aux autres participants. Avec le MPC, le même calcul est appliqué aux données de chacun, mais les données de chaque partie sont gardées secrètes. Les valeurs intermédiaires resteraient également secrètes. Seule la sortie est révélée à la fin.
Contrairement à ZK, MPC est collaboratif. Il permet à différentes parties de collaborer à un même calcul, chacune apportant ses propres données, afin d'obtenir un résultat mutuel souhaité par tous.
Nous pouvons comparer ZK et MPC dans le contexte d'un système d'intelligence artificielle pour obtenir plus de contexte. ZK permettrait d'authentifier ou de vérifier qu'une donnée provient d'une personne réelle ou du téléphone d'une personne. Le MPC est plus adapté à la formation d'un système d'IA car différents individus, groupes ou organisations peuvent partager des données sensibles avec le système d'IA tout en étant sûrs que ces données ne seront pas divulguées à d'autres personnes.
Le MPC a été conçu en 1982 par Andrew Yao pour résoudre une expérience de pensée appelée le "problème du millionnaire", dans laquelle deux millionnaires veulent savoir qui est le plus riche sans se dire l'un à l'autre combien ils ont d'argent. La solution consistait à utiliser des circuits brouillés, ce qui, selon Vitalik Buterin, qui explique souvent les concepts cryptographiques, est également l'un des moyens les plus élémentaires de comprendre le MPC.
[Avant d'apprendre ce qu'est un circuit brouillé, vous devez savoir ce qu'est un circuit arithmétique en général. Si l'idée des circuits vous est inconnue, vous trouverez ici une explication simple].
Le MPC est un processus interactif en plusieurs étapes au cours duquel le millionnaire n° 1 (Alice l'embrouilleuse) doit d'abord créer le circuit, saisir sa valeur nette, puis la transformer en une forme brouillée ou cryptée avant de la transmettre au millionnaire n° 2 (Bob l'évaluateur). Lorsque Bob met la main sur le circuit, son travail consiste à ajouter sa propre valeur nette, puis à évaluer ou à faire fonctionner le circuit pour s'assurer qu'il est correct. Enfin, Bob décrypte le résultat final et, par exemple, apprend qu'Alice est plus riche, mais n'apprend jamais qu'Alice est en fait beaucoup plus riche et qu'il n'aurait pas dû faire de suppositions.
Le problème du millionnaire et la solution des circuits brouillés ont joué un rôle crucial dans les premiers développements du MPC. Mais son application était limitée. Une version plus complexe et plus nuancée du problème, appelée le problème du millionnaire socialiste, vérifie si les deux millionnaires sont également riches, au lieu de révéler lequel a le plus d'argent. Cette différence subtile a permis d'étendre considérablement la fonctionnalité du MPC, mais a nécessité des solutions et des techniques cryptographiques plus complexes qui dépassent le cadre de cet article.
Le chiffrement entièrement homomorphe (FHE) permet d'effectuer des calculs sur des données chiffrées. Il peut exécuter une fonction sur des données cryptées comme si elles étaient restées non cryptées. La sortie de la fonction n'est décryptée que par la partie disposant de la clé secrète. Si nous considérons le cryptage comme une boîte noire qui cache des secrets, l'ESF garantit que les données et les calculs sur ces données restent à l'intérieur de cette boîte noire.
Bien qu'il n'y ait pas d'expériences de pensée célèbres comme le problème du millionnaire pour le MPC, le FHE résout une faiblesse fondamentale en matière de sécurité : "la nécessité de décrypter avant de traiter les données".
https://www.zama.ai/post/the-revolution-of-fhe
Dans le contexte de l'intelligence artificielle, la FHE permet de crypter toutes les données échangées entre l'utilisateur (détenteur de la clé secrète) et le système d'intelligence artificielle. L'utilisateur interagit normalement avec le système, mais il peut être certain que l'IA n'a jamais "appris" quoi que ce soit sur les données fournies. Toute l'interaction serait cryptée. L'IA n'apprend jamais ce que vous avez tapé ou demandé, quelles images vous avez envoyées ou qui les a envoyées, mais elle peut quand même répondre comme si elle connaissait ces informations.
Si elle fonctionne, la FHE sera l'une des technologies de préservation de la vie privée les plus puissantes qui soient. Et qui sait ? Dans 10 ans, nous aurons peut-être même des FHE-EVM.
Par rapport aux PPM et au ZK, la FHE se situe - pour l'instant - à l'extrémité la plus théorique ou la moins pratique du spectre. La technologie n'a été considérée comme réalisable qu'en 2009, lorsque Craig Gentry a trouvé un moyen de gérer le bruit.
Les opérations FHE sont très intensives en termes de calcul car du "bruit" est ajouté au cours du processus de cryptage afin de renforcer la sécurité. Le bruit dans la FHE est une petite valeur aléatoire ajoutée au texte en clair (données non chiffrées) avant qu'il ne soit transformé en texte chiffré (données chiffrées). Chaque opération augmente le bruit. Alors que les opérations d'addition et de soustraction n'entraînent qu'une augmentation négligeable du bruit, la multiplication est plus coûteuse en termes de calcul, ce qui entraîne une augmentation significative du bruit. Ainsi, à mesure que la complexité d'un programme augmente, le bruit - l'espace nécessaire pour accueillir le bruit et les ressources informatiques nécessaires pour traiter le bruit - s'accumule.
La percée de Gentry a été une technique appelée bootstrapping, qui pourrait réduire le bruit et permettre plus de calculs sur les données cryptées dans les systèmes FHE. Le bootstrapping prend le texte chiffré et le déchiffre de manière homomorphique, ce qui signifie qu'il réduit le niveau de bruit d'un élément de données chiffré sans en révéler la nature. Le résultat est un texte chiffré avec un bruit prédéfini beaucoup plus faible, ce qui nous permet d'effectuer d'autres calculs sur le texte chiffré. Le Bootstrapping, en général, nous permet de contourner la nécessité de disposer d'un espace plus important pour la croissance du bruit à mesure que la complexité du calcul augmente. Nous pouvons limiter l'espace à quelques opérations et procéder à des amorçages répétés pour effectuer des calculs de taille arbitraire sans compromettre les données d'origine.
Selon le schéma FHE, l'amorçage peut prendre plusieurs minutes ou quelques millisecondes. Si l'amorçage est plus lent, le coût de calcul peut être réparti en l'appliquant à plusieurs cryptogrammes à la fois. Si l'amorçage est plus rapide, il s'accompagne généralement d'un compromis qui consiste à ne travailler qu'avec de petits morceaux de texte en clair (généralement 8 bits) à la fois pour rester efficace.
Si FHE transforme tous les éléments du calcul en une boîte noire, alors iO transforme le calcul lui-même en une boîte noire.
L'obscurcissement de l'indiscernabilité (iO) est considéré comme le système cryptographique le plus puissant dans le domaine des possibilités théoriques. Dans un article, iO est décrit comme un "outil maître à partir duquel presque tous les autres protocoles cryptographiques pourraient être construits" et les experts en cryptographie le qualifient de "joyau de la couronne" et de "primitive cryptographique qui les domine tous".
Selon Amit Sahai, le professeur connu pour avoir expliqué les preuves ZK aux enfants, et l'un des chercheurs qui a conçu un moyen de construire iO sur la base d'hypothèses bien fondées, iO fonctionne selon un paradigme fondamentalement différent des systèmes cryptographiques précédents. L'OI suppose que l'adversaire peut déjà lire dans votre esprit (métaphore de votre ordinateur). Vos secrets sont déjà connus et ne peuvent donc pas être cachés. La seule chose que vous puissiez faire est d'obscurcir ce que l'adversaire peut déjà voir.
L'intérêt d'iO est de rendre deux fonctions ou calculs également obscurs. Si vous transformez deux calculs en une forme indiscernable l'une de l'autre, vous pouvez cacher le fonctionnement du programme. Si vous ne pouvez pas faire la différence entre deux programmes, vous ne savez pas lequel des deux programmes est exécuté, et aucune information ne peut être déduite de l'un ou l'autre, si ce n'est qu'ils exécutent tous deux la même fonction. Les deux programmes prennent les mêmes entrées et produisent les mêmes sorties, mais iO fait en sorte que personne ne puisse comprendre comment.
Avec iO, vous pouvez dissimuler la structure de tout type de fonction, y compris la quasi-totalité des fonctions qui composent la cryptographie. En d'autres termes, en occultant presque tout, vous obtenez la cryptographie programmable la plus générale sur laquelle d'autres primitives peuvent être programmées.
Techniquement, il existe une boîte noire plus grande qu'iO. C'est ce qu'on appelle littéralement l'obscurcissement de la boîte noire. Mais celle-ci reste impossible.
Personne ne savait comment construire iO jusqu'en 2013, lorsque des cartes multilinéaires ont été proposées par Garg, Gentry, Halevi, Raykova, Sahai, Waters. Un programme informatique peut être décomposé comme des pièces de puzzle, puis masqué à l'aide de cartes multilinéaires. Les pièces masquées pouvaient être réassemblées pour obtenir la même fonctionnalité que le programme original sans en révéler le fonctionnement interne.
Les cartes multilinéaires sont une généralisation des cartes ou paires bilinéaires utilisées dans la cryptographie des courbes elliptiques (ECC). Bien que les cartes bilinéaires soient à la base des systèmes cryptographiques existants tels que les signatures BLS, elles ne sont pas assez complexes ou expressives pour l'iO. Bien que les cartes multilinéaires puissent gérer iO, cette nouvelle structure algébrique était facilement attaquable et n'était pas sûre, de sorte que les cryptographes n'étaient généralement pas satisfaits de pouvoir compter sur les cartes multilinéaires. Le champ est à nouveau bloqué.
En 2020, Jain, Lin et Sahai ont proposé une solution qui, bien qu'inhabituelle et nouvelle, était suffisamment simple pour que les cryptographes puissent la raisonner. Au lieu de s'appuyer sur de nouvelles hypothèses telles que les cartes multilinéaires, cette version d'iO pourrait être construite sur des hypothèses plus standard et bien fondées qui ont été étudiées pendant des décennies, telles que l'apprentissage avec des erreurs (LWE). Avec cette dernière avancée, iO est redevenu réalisable. Le Saint-Graal était encore à portée de main.
Chaque système cryptographique repose sur des hypothèses mathématiques et des techniques cryptographiques différentes. Aucune avancée ne résout à elle seule tous les problèmes d'un système. Au contraire, les découvertes suivent une série imprévisible de petits pas et de grands sauts qui modifient les hypothèses et les techniques existantes, ce qui conduit à son tour à d'autres percées et découvertes. Et pour chaque découverte qui a fonctionné, beaucoup d'autres n'ont pas fonctionné.
Lors d'une présentation sur l'OI, M. Sahai a décrit le domaine comme étant dans une "nature sauvage", où l'on ne sait même pas ce que l'on ne comprend pas et quels sont les bons problèmes à résoudre.
Les équipes comme PSE travaillent principalement sur l'aspect pratique ou appliqué de la cryptographie programmable, en se concentrant sur des primitives comme ZK et MPC avec des hypothèses bien fondées qui ont été testées au combat, relativement optimisées et considérées comme sûres et efficaces. Bien qu'il reste encore beaucoup d'optimisations à faire, ZK est aujourd'hui tout à fait praticable. Mais il fut aussi un temps où ZK était confiné dans la nature sauvage.
Pour maximiser le nombre d'outils cryptographiques préservant la vie privée, garantissant la sécurité, vérifiant les revendications, auxquels le monde a accès, nous devrions au moins garder un œil sur l'horizon de ce qui est à venir, car personne ne peut prédire ce qui sera pratique dans dix ans.
La présentation de M. Sahai comprend une citation tirée d'un article de Steven Weinberg paru dans Nature en 2003 et intitulé "Four Golden Lessons" (Quatre leçons d'or), qui met en évidence une autre raison de travailler sur ce qui n'est pas encore réalisable.
"Lorsque j'enseignais au Massachusetts Institute of Technology à la fin des années 1960, un étudiant m'a dit qu'il voulait étudier la relativité générale plutôt que le domaine sur lequel je travaillais, la physique des particules élémentaires, parce que les principes de la relativité générale étaient bien connus, alors que la physique des particules élémentaires lui paraissait être un véritable fouillis. J'ai été frappé par le fait qu'il venait de donner une excellente raison de faire le contraire... Mon conseil est de s'attaquer aux désordres - c'est là que se trouve l'action".
La cryptographie programmable est étudiée par diverses équipes, dont PSE et 0xPARC, coorganisateurs d'un événement de deux jours appelé Programmable Cryptography Conference, qui se tiendra à Istanbul, en Turquie, le 16 novembre & 17, 2023.
Venez dire bonjour !
Ou retrouvez PSE en ligne sur Discord.