29.06.2015 Views

rapport_M2_09_2012

rapport_M2_09_2012

rapport_M2_09_2012

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

homomorphes du systèmes sont quasi-immédiates, pour c 1 = m 1 + k 1 I et c 2 = m 2 + k 2 I,<br />

on a :<br />

c 1 + c 2 = m 1 + m 2 + (k 1 + k 2 )I et c 1<br />

. c 2 = m 1<br />

. m 2 + (m 1 k 2 + m 2 k 1 + k 1 k 2 )I<br />

On peut déjà remarquer que le bruit est beaucoup plus affecté par une multiplication<br />

qu’une addition. Approximativement, une addition double le bruit alors qu’une multiplication<br />

l’élève au carré. Si un trop grand nombre d’opérations est effectué, le bruit devient<br />

trop grand et la procédure de déchiffrement retourne un message erroné. Cependant, en<br />

évaluant régulièrement la procédure de déchiffrement de manière homomorphe, on peut<br />

éviter que cela arrive, et c’est exactement ce que fait le bootstrapping : étant donné un<br />

chiffré c de m, cette procédure retourne un chiffré c ′ de m où le bruit k ′ contenu dans c ′<br />

est plus petit que le bruit k contenu dans c : ||k ′ || < ||k||.<br />

Cependant, pour pouvoir évaluer la fonction de déchiffrement de façon homomorphe,<br />

il est nécessaire que celle-ci soit suffisamment simple, ce qui n’est pas le cas initialement.<br />

Pour faire face à ce problème, Gentry réduit la complexité du circuit de déchiffrement 13<br />

en publiant un ensemble de vecteurs dont la somme d’une partie d’entre eux est égale à<br />

la clé secrète. Ce problème est connu sous le nom de "[Sparse] Subset Sum Problem", et<br />

est prouvé NP-complet.<br />

L’idée de Gentry est de partir d’un schéma dit "somewhat homomorphic encryption<br />

scheme" qui peut évaluer des additions et des multiplications tant que le bruit n’est pas<br />

trop grand, et de lui appliquer la procédure de bootstrap. Le schéma initial est basé sur le<br />

"Ideal Coset Problem", cependant, pour appliquer la procédure de bootstrap en réduisant<br />

la complexité du circuit de déchiffrement repose sur le "Sparse Subset Sum Problem".<br />

6.4 Cryptosystèmes complètement homomomorphes<br />

6.4.1 Cryptosystème de van Dijk, Gentry, Halevi et Vaikuntanathan<br />

Ce schéma se veut plus simple qu’efficace comme le précisent les auteurs [56]. L’idée<br />

est que la somme de deux nombres proches d’un multiple de p est également proche d’un<br />

multiple de p, de même pour le produit.<br />

– KeyGen : Soit p un entier impair de η bits. Pour i = 0, . . . , τ, soit x i = pq i + r i où<br />

q i ← [0, 2γ p [ et r i ←] − 2 ρ , 2 ρ [. Réorganiser les x i de sorte que x 0 soit le plus grand.<br />

pk = (x 0 , . . . , x τ ).<br />

– Enc : Soit m ∈ {0, 1}. Choisir un sous-ensemble aléatoire S de (0, 1, . . . , τ) et un<br />

nombre r ∈] − 2 ρ , 2 ρ [ au hasard, retourner c = [m + 2r + 2 ∑ i∈S x i] x0<br />

– Dec : Retourner m = [[c] p ] 2<br />

– Add : Soit c 1 = Enc pk (m 1 ) et c 2 = Enc pk (m 2 ). [c 1 + c 2 ] x0 est un chiffré valide de<br />

m 1 + m 2 tant que le bruit n’est pas trop grand.<br />

– Mul : Soit c 1 = Enc pk (m 1 ) et c 2 = Enc pk (m 2 ). [c 1 × c 2 ] x0 est un chiffré valide de<br />

m 1 × m 2 tant que le bruit n’est pas trop grand.<br />

13. "Squashing the Decryption Circuit : The Encrypter Starts Decryption !" cf. [24] sections 1.5 et 10<br />

40

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!