Réunion de rentrée du CLUSIR ISFA Chiffrement complètement homomorphe Fully Homomorphic Encryption (FHE) Fabien Laguillaumie 1 & Damien Stehlé 2 1 Professeur Univ Lyon 1/ISFA LIP 2 Professeur ENS de Lyon LIP mercredi 19 septembre 2011 1 / 22
AriC Équipe-projet INRIA du Laboratoire de l Informatique du Parallélisme (UMR CNRS - ENS de Lyon - UCB Lyon 1 - INRIA 5668) Florent de Dinechin, 25 membres 1 Vers la conception automatique d opérateurs et de fonctions 2 Nouvelles techniques mathématiques pour l approximation de fonctions 3 Algorithmique des réseaux euclidiens et applications 4 Méthodes numériques garanties 5 Algèbre linéaire complexity Nouvelles applications Calcul haute performance Cryptographie Traitement du signal automate design Linear Algebra use Arithmetic Operators + Elementary Functions Computing Cores Euclidean Lattices DSP Filters validate 2 / 22
Introduction Cryptographie = conception de protocoles sûrs confidentialité - authenticité - intégrité Cryptographie à clé publique : Concept : Diffie & Hellman 76 Le secret est secret une clé publique est disponible sk pk Premières réalisations : RSA 78 factorisation McEliece 78 décodage de codes aléatoires Elgamal 84 log discret dans (F q) Koblitz / Miller 85 log discret sur des courbes 3 / 22
Introduction Que signifie sûr? dépend des applications modèle de sécurité pour une primitive cryptographique preuve de sa sécurité prouver = réduire un problème difficile P à une attaque contre le schéma Π instance I of P A Π solution to I Exhiber des problèmes difficiles : problèmes NP difficiles (e g, réseaux euclidiens) problèmes arithmétiques : log discret, factorisation N = p q (record in January 2010 : 768 bits) 4 / 22
Introduction Public-Key Cryptography : Protocols e-cash e-voting anonymous access Cryptographic Primitives encryption signatures Algorithmics hardness of arithmetic problems efficient operations 5 / 22
Introduction Public-Key Cryptography : Protocols e-cash e-voting anonymous access Cryptographic Primitives encryption signatures Algorithmics hardness of arithmetic problems efficient operations be strong - be fast - be functional 5 / 22
Le chiffrement Définition informelle Alice KG Bob pk B sk B E m c c m D Génération du couple de clés (sk, pk) (Key Generation) Chiffrement d un message (Encryption) Déchiffrement d un chiffré (Decryption) 6 / 22
Le chiffrement : sécurité Intuitivement : il doit être impossible de déchiffrer un message chiffré sans la clé secrète En réalité, on veut plus : Un message chiffré ne donne pas un bit d information sur le clair sous-jacent 7 / 22
Le chiffrement : sécurité Intuitivement : il doit être impossible de déchiffrer un message chiffré sans la clé secrète En réalité, on veut plus : Un message chiffré ne donne pas un bit d information sur le clair sous-jacent même si un adversaire a un accès à une machine qui lui déchiffre les chiffrés de son choix 7 / 22
Le chiffrement : sécurité Intuitivement : il doit être impossible de déchiffrer un message chiffré sans la clé secrète En réalité, on veut plus : Un message chiffré ne donne pas un bit d information sur le clair sous-jacent même si un adversaire a un accès à une machine qui lui déchiffre les chiffrés de son choix Le niveau de sécurité maximale d un protocole de chiffrement est l indistinguabilité des chiffrés sous une attaque à chiffrés choisis 7 / 22
Chiffrement homomorphe 8 / 22
Chiffrement homomorphe Rivest, Adleman, Dertouzos 1978 : Can we do arbitrary computations on data while it remains encrypted, without ever decrypting it? ils proposent l exponentiation et la fonction RSA comme homomorphisme additif et multiplicatif : 9 / 22
Chiffrement homomorphe Rivest, Adleman, Dertouzos 1978 : Can we do arbitrary computations on data while it remains encrypted, without ever decrypting it? ils proposent l exponentiation et la fonction RSA comme homomorphisme additif et multiplicatif : g x g y = g x+y x e (mod N) y e (mod N) = (x y) e (mod N) 9 / 22
Chiffrement homomorphe (M, ) espace des messages, (C, ) espace des chiffrés Encrypt(m 1 ) Encrypt(m 2 ) = Encrypt(m 1 m 2 ) Elgamal (logarithme discret) Encrypt(m 1 ) Encrypt(m 2 ) = Encrypt(m 1 m 2 ) Paillier (factorisation) Encrypt(m 1 ) Encrypt(m 2 ) = Encrypt(m 1 + m 2 ) 10 / 22
Chiffrement homomorphe (M, ) espace des messages, (C, ) espace des chiffrés Encrypt(m 1 ) Encrypt(m 2 ) = Encrypt(m 1 m 2 ) Elgamal (logarithme discret) Encrypt(m 1 ) Encrypt(m 2 ) = Encrypt(m 1 m 2 ) Paillier (factorisation) Encrypt(m 1 ) Encrypt(m 2 ) = Encrypt(m 1 + m 2 ) Additions ou multiplications, mais pas les deux! 10 / 22
Chiffrement homomorphe Une longue histoire : Goldwasser and Micali (84), Benaloh (88), Naccache and Stern (98), or Okamoto and Uchiyama (98), Damgård and Jurik (01) Boneh, Goh and Nissim (BGN) (05) nombre arbitraire de + et une A quoi ça sert? chiffrement vérifiable, cherchable vote électronique interrogation anonyme de base de données enchères 11 / 22
Chiffrement homomorphe Exemple : Vote électronique Candidats : X, Y, Z Électeurs : V 1, V 2,,V n 12 / 22
Chiffrement homomorphe Exemple : Vote électronique Candidats : X, Y, Z Électeurs : V 1, V 2,,V n Candidats Électeurs X Y Z V 1 1 0 0 V 2 1 0 0 V 3 0 0 1 V n 0 1 0 Total Tot X Tot Y Tot Z 12 / 22
Chiffrement homomorphe Exemple : Vote électronique Candidats : X, Y, Z Électeurs : V 1, V 2,,V n Candidats Électeurs X Y Z V 1 C 1,X = Enc(1, pk A ) C 1,Y = Enc(0, pk A ) C 1,Z = Enc(0, pk A ) V 2 C 2,X = Enc(1, pk A ) C 2,Y = Enc(0, pk A ) C 2,Z = Enc(0, pk A ) V 3 C 3,X = Enc(0, pk A ) C 3,Y = Enc(0, pk A ) C 3,Z = Enc(1, pk A ) V n C n,x = Enc(0, pk A ) C n,y = Enc(1, pk A ) C n,z = Enc(0, pk A ) Total??? 12 / 22
Chiffrement homomorphe Exemple : Vote électronique Candidats : X, Y, Z Électeurs : V 1, V 2,,V n Candidats Électeurs X Y Z V 1 C 1,X = Enc(1, pk A ) C 1,Y = Enc(0, pk A ) C 1,Z = Enc(0, pk A ) V 2 C 2,X = Enc(1, pk A ) C 2,Y = Enc(0, pk A ) C 2,Z = Enc(0, pk A ) V 3 C 3,X = Enc(0, pk A ) C 3,Y = Enc(0, pk A ) C 3,Z = Enc(1, pk A ) V n C n,x = Enc(0, pk A ) C n,y = Enc(1, pk A ) C n,z = Enc(0, pk A ) Total??? Solution triviale : déchiffrer tous les votes et calculer les totaux 12 / 22
Chiffrement homomorphe Exemple : Vote électronique Candidats : X, Y, Z Électeurs : V 1, V 2,,V n Candidats Électeurs X Y Z V 1 C 1,X = Enc(1, pk A ) C 1,Y = Enc(0, pk A ) C 1,Z = Enc(0, pk A ) V 2 C 2,X = Enc(1, pk A ) C 2,Y = Enc(0, pk A ) C 2,Z = Enc(0, pk A ) V 3 C 3,X = Enc(0, pk A ) C 3,Y = Enc(0, pk A ) C 3,Z = Enc(1, pk A ) V n C n,x = Enc(0, pk A ) C n,y = Enc(1, pk A ) C n,z = Enc(0, pk A ) Total??? Utiliser un chiffrement homomorphe (Enc(m 1 ) Enc(m 2 ) = Enc(m 1 + m 2 )) : n i=1 C i,x = Enc(Tot X, pk A ) n i=1 C i,y = Enc(Tot Y, pk A ) n i=1 C i,z = Enc(Tot Z, pk A ) 12 / 22
Chiffrement homomorphe Exemple : Vote électronique Candidats : X, Y, Z Électeurs : V 1, V 2,,V n Candidats Électeurs X Y Z V 1 C 1,X = Enc(1, pk A ) C 1,Y = Enc(0, pk A ) C 1,Z = Enc(0, pk A ) V 2 C 2,X = Enc(1, pk A ) C 2,Y = Enc(0, pk A ) C 2,Z = Enc(0, pk A ) V 3 C 3,X = Enc(0, pk A ) C 3,Y = Enc(0, pk A ) C 3,Z = Enc(1, pk A ) V n C n,x = Enc(0, pk A ) C n,y = Enc(1, pk A ) C n,z = Enc(0, pk A ) Total??? Utiliser un chiffrement homomorphe (Enc(m 1 ) Enc(m 2 ) = Enc(m 1 + m 2 )) : n i=1 C i,x = Enc(Tot X, pk A ) n i=1 C i,y = Enc(Tot Y, pk A ) n i=1 C i,z = Enc(Tot Z, pk A ) 3 déchiffrements de l autorité A 12 / 22
Chiffrement homomorphe Exemple : Vote électronique Candidats : X, Y, Z Électeurs : V 1, V 2,,V n Candidats Électeurs X Y Z V 1 C 1,X = Enc(1, pk A ) C 1,Y = Enc(0, pk A ) C 1,Z = Enc(0, pk A ) V 2 C 2,X = Enc(1, pk A ) C 2,Y = Enc(0, pk A ) C 2,Z = Enc(0, pk A ) V 3 C 3,X = Enc(0, pk A ) C 3,Y = Enc(0, pk A ) C 3,Z = Enc(1, pk A ) V n C n,x = Enc(0, pk A ) C n,y = Enc(1, pk A ) C n,z = Enc(0, pk A ) Total??? exemple simplifié système de vote Helios (http://heliosvotingorg/) 12 / 22
Chiffrement complètement homomorphe 13 / 22
Chiffrement complètement homomorphe Craig Gentry (PhD Standford) - IBM Fully homomorphic encryption using ideal lattices Proc of STOC 2009, ACM, 169-178 (2009) 10 Emerging Technologies 2011 (Technology reviews) http://wwwtechnologyreviewcom/tr10/?year=2011 Forbes : An MIT Magic Trick : Computing On Encrypted Databases Without Ever Decrypting Them DARPA Will Spend $ 20 Million To Search For Crypto s Holy Grail Developments : Bristol, ENS de Lyon, IBM, Microsoft, MIT, Stanford, Toronto 14 / 22
Chiffrement complètement homomorphe Key Generation : KeyGen(k) (pk, evk, sk) Encryption : Encrypt(m, pk) c m {0, 1} Decryption : Decrypt(c, sk) m Homomorphic evaluation : Eval(f, c 1,, c l, evk) c f où f : {0, 1} l {0, 1} est représenté par un circuit arithmétique booléen (portes ET et OU) Un FHE doit être compact : la taille du chiffré après l évaluation homomorphe en dépend ni de l, ni de la complexité de f Sécurité : indistinguabilité des chiffrés contre des attaques à clairs choisis 15 / 22
Chiffrement complètement homomorphe Key Generation : KeyGen(k) (pk, evk, sk) Encryption : Encrypt(m, pk) c m {0, 1} Decryption : Decrypt(c, sk) m Homomorphic evaluation : Eval(f, c 1,, c l, evk) c f où f : {0, 1} l {0, 1} est représenté par un circuit arithmétique booléen (portes ET et OU) Un FHE doit être compact : la taille du chiffré après l évaluation homomorphe en dépend ni de l, ni de la complexité de f Sécurité : indistinguabilité des chiffrés contre des attaques à clairs choisis Théorème Un chiffrement homomorphe (malléable) ne peut pas atteindre le niveau de sécurité maximal (IND-CCA2) 15 / 22
Chiffrement complètement homomorphe On ne chiffre plus que les données : on chiffre les calculs! Circuit privacy : f n est pas connu du client Multi-hop homomorphism Applications : Private Information Retrieval somewhat HE suffisant un utilisateur veut obtenir l entrée n o i d une base de données sans révéler l indice i au propriétaire de la base de données Recherche dans des données chiffrées Calcul déporté vérifiable 16 / 22
Chiffrement complètement homomorphe La technique de Gentry : somewhat homomorphic encryption (SWHE) évalue une classe limitée de fonctions (polynômes de petits degrés) une méthode de boostrapping un SWHE qui peut évaluer sa propre fonction de déchiffrement peut être transformé en un schéma plus expressif bootstrappable HE + circular security FHE circular security = sûr même lorsque l attaquant connaît un chiffré de la clé secrète squashing the decryption circuit réduire la taille du circuit de déchiffrement 17 / 22
Chiffrement complètement homomorphe La sécurité des instantiations courantes repose sur la difficulté de problèmes du type pcgd approché : pq 1 + r 1 pq 2 + r 2 Étant donné retrouver p pq k + r k sac-à-dos recherche de vecteurs courts dans des réseaux 18 / 22
Chiffrement complètement homomorphe Somewhat homomorphic encryption à clé secrète KeyGen(ρ) : sk = p un grand premier evk = {x i = pq i + r i } 0 i γ q i entiers croissants et r i petits entiers Encrypt(m {0, 1}, sk) : c = pq + 2r + m Eval(evk, C, c 1,, c l ) c add = c 1 + c 2 (mod x 0 ) c mul = (((c 1 c 2 (mod x γ )) (mod x γ 1 )) (mod x 0 )) Decrypt(c, sk) m = (c (mod p)) (mod 2) 19 / 22
Chiffrement complètement homomorphe Le déchiffrement fonctionne à condition que le bruit 2r est suffisamment petit c 1 + c 2 = p(q 1 + q 2 ) + 2(r 1 + r 2 ) + (m 1 + m 2 ) c 1 c 2 = p(q 1 c 2 + q 2 c 1 pq 1 q 2 ) + 2(2r 1 r 2 + r 1 m 2 + r 2 m 1 ) + (m 1 m 2 ) réduire modulo x i permet de conserver une taille correcte pour le chiffré, sans augmenter trop le bruit Rothblum : somewhat HE à clé secrète somewhat HE à clé publique 20 / 22
Chiffrement complètement homomorphe Timings : Gentry-Halevy 2010 : 70Mo < pk < 23Go 30 secondes < boostrapping operation < 30 minutes Gentry-Halevi-Smart 2012 : évaluation homomorphe d AES-128 (sans bootstrapping) : 36 heures 256 Go de RAM Lauter-Naehrig-Vaikuntanathan (Microsoft) variante supportant 1 et beaucoup de + comparable à BGN 21 / 22
Chiffrement complètement homomorphe Problèmes ouverts : Implantations réalistes? Sélection des opérations homomorphes? Peut-on apprendre f (m 1,, m l )? Évaluer précisément les meilleures attaques contre les FHE Signatures? A-t-on vraiment besoin de FHE? Vice president of Software Research at IBM Charles Lickel described the technique as being similar to enabling a layperson to perform flawless neurosurgery while blindfolded, and without later remembering the episode 22 / 22