Cryptosystème homomorphe de Naccache-Stern
From Wikipedia, the free encyclopedia
En cryptologie, le cryptosystème homomorphe de Naccache-Stern est un chiffrement à clé publique introduit en 1998 par les cryptologues David Naccache et Jacques Stern[1]. La sécurité sémantique de ce cryptosystème repose sur le problème de la résiduosité supérieure[2], et il s'agit d'un système de chiffrement additivement homomorphe.
D'un point de vue historique, le cryptosystème de Naccache-Stern est une amélioration du cryptosystème de Benaloh-Fischer[3], lui-même une extension de celui de Goldwasser-Micali[4], dans une succession d'améliorations de bande passante de chiffrements homomorphes.
Génération de clés
Le cryptosystème s'appuie sur trois algorithmes correspondant respectivement à la génération de clés, au chiffrement, et au déchiffrement.
L'algorithme de génération de clé prend en entrée un paramètre de sécurité et retourne un couple de clés obtenues de la manière suivante[Note 1],[5] :
- Deux ensembles de nombres premiers[Note 2] et sont choisis, tous distincts. Le nombre est déterminé par l'algorithme en fonction de , et les premiers sont choisis « petits », en un sens précisé plus tard.
- Le produit des (resp. des ) est calculé et noté (resp. )
- Deux grands premiers sont alors choisis de sorte que et soient simultanément premiers.
- Le produit et calculé, et un élément d'ordre est choisi, où est la fonction d'Euler[Note 3].
La clé publique est alors définie comme et la clé privée correspondante est donnée par (ou , ce qui est équivalent).
Les nombreux tests de primalité intervenant lors de la génération de clés sont relativement coûteux, mais peuvent être en partie absorbés par une implémentation appropriée[1].
Chiffrement
L'algorithme de chiffrement prend en entrée un message et la clé publique . Un élément aléatoire est choisi[Note 4], puis le chiffré est obtenu en calculant .
Déchiffrement
L'algorithme de déchiffrement prend en entrée un chiffré et la clé privée . On calcule alors pour chaque On peut écrire ces équations en prenant pour base le générateur , à savoirPour un message chiffré, on a (resp. ) où (resp. ). En résolvant un logarithme discret modulo on obtient alors ce qui permet via le théorème chinois des restes de retrouver . Résoudre le logarithme discret est en général considéré difficile : c'est pourquoi les premiers ont été choisis petits, au sens qu'une recherche exhaustive de est possible.