Repr´ esentation de Nombres pour les Algorithmes
Choix de l’Arithm´ etique pour une Impl´ ementation R´ ealiste de FV
Vincent Zucca
Ann´ ee 2016-2017
Probl´ ematique
Les ´ el´ ements de base appartiennent ` a R q – pZ{q ZqrX s{pX n ` 1q Param` etres r´ ealistes de s´ ecurit´ e ùñ q et n tr` es grand.
Temps produit na¨ıf de 2 ´ el´ ements dans R q
§
n “ 2048 et log
2pqq “ 95 Ñ 1.824 s.
§
n “ 4096 et log
2pqq “ 190 Ñ 7,872 s.
§
n “ 8192 et log
2pqq “ 390 Ñ 35,419 s.
§
n “ 16384 et log
2pqq “ 790 Ñ 188.657 s.
Imaginez pour une multiplication homomorphique !
ùñ Utiliser des repr´ esentations adapt´ ees pour acc´ el´ erer les calculs
Arithm´ etique sur les coefficients
Pas de contraintes sur la forme du module q.
ùñ choisir q comme produit de k premiers entre eux q 1 , ¨ ¨ ¨ , q k . Les q i sont choisis de mˆ eme taille (id´ ealement un mot machine).
Le CRT donne l’isomorphisme d’anneau R q – R q
1ˆ ¨ ¨ ¨ ˆ R q
kùñ Arithm´ etique en parall` ele sur k corps de taille log 2 pq q{k.
Coˆ ut multiplication O plog 2 pqq 2 q Ñ O pplog 2 pq q{kq 2 q.
Remarque : au lieu de repr´ esenter a P R q comme un tableau de n coefficients, on le repr´ esente comme une matrice avec n ˆ k coefficients.
Application
q “ 221 “ 13 ˆ 17, donner la repr´ esentation en RNS du chiffr´ e pr´ ec´ edent c “ p49X ´ 30, 13X ` 73q.
Solution
c “ pp´3X ´ 4, ´5q, p´2X ` 4, ´4X ` 5qq
Grˆ ace au RNS on obtient les timings suivants pour des moduli de 32 bits : n “ 2048 et log 2 pq q “ 95 : 1.824 s Ñ 1.634 s.
n “ 4096 et log 2 pq q “ 190 : 7,872 s Ñ 6,608 s.
n “ 8192 et log 2 pq q “ 390 : 35,419 s Ñ 26,894 s.
n “ 16384 et log 2 pqq “ 790 : 188.657 s Ñ 105,651 s.
Le passage au RNS n’est pas suffisant, autre chose domine le calcul.
Transform´ ee de Fourier Discr` ete
La transform´ ee de Fourier Discr` ete d’un polynˆ ome a P CrX s de degr´ e n est l’´ evaluation de a en les racines n-i` eme de l’unit´ e pω i q n i“1 .
TFD : C n rX s ÝÑ C n pa 0 , ¨ ¨ ¨ , a n q ÞÑ
˜ n´1
ř
j “0
a j ω i j
¸ n
i“1
C’est une application bijective, que l’on peut calculer (ainsi que son inverse) en O pn log 2 pnqq grˆ ace ` a l’algorithme de Cooley-Tukey.
Ñ n doit ˆ etre une puissance de 2.
Polynˆ omes repr´ esent´ es en TFD ùñ multiplication lin´ eaire en n.
Une fois en TFD, l’arithm´ etique se parall´ elise ind´ ependemment sur les
n composantes.
Transform´ ee de Fourier Discr` ete
Multiplier deux polynˆ omes a et b de degr´ e n ´ 1 :
Repr´ esenter les deux polynˆ omes avec 2n coefficents (avec n z´ eros).
Calculer la TFD de a et b avec les racines 2n-i` emes de l’unit´ e.
Calculer TFD p c q “ TFDp a q ˆ TFD p b q coordonn´ ees par coordonn´ ees.
Calculer la TFD inverse de TFD pc q.
Cˆ out total : TFD ` Multiplication ` TFD ´1 Ñ O pn log 2 pnqq
Et dans les corps de nombres ?
Number Theoretic Transform (NTT)
Le principe de la transform´ ee de Fourier Discr` ete peut se g´ en´ eraliser ` a tout corps de nombres admettant des racines de l’unit´ e.
Exercice
Soit q un nombre premier, montrer que q ” 1 rns si et seulement si F q
admet des racines n-i` emes de l’unit´ e.
Pour utiliser la NTT dans R q – R q
1ˆ ¨ ¨ ¨ ˆ R q
kon doit : Utiliser des modulis q i premiers.
Choisir chaque q i ” 1 r2ns.
Probl` eme
On se retrouve avec un polynˆ ome de degr´ e 2n ´ 2. Il faut donc utiliser un
algorithme de r´ eduction pour le r´ eduire modulo X n ` 1.
Algorithme de R´ eduction Polynˆ omial
Que connaissez-vous ? Barrett Ñ O pn log 2 pnqq Montgomerry Ñ O pn log 2 pnqq
La complexit´ e de la multiplication dans R q reste en O pn log 2 pnqq.
Mais la constante cach´ ee dans le O augmente...
En fait, dans notre cas, on peut faire la r´ eduction directement...
Remarquons qu’en ´ evaluant les polynˆ omes en les racines 2n-i` emes de
l’unit´ e on calcule le r´ esultat modulo X 2n ´ 1.
Retour sur la NTT
Il s’agit de trouver des racines n-i` emes de ´1 dans F q . Exercice
Soit ψ P F q une racine primitive 2n-i` eme de l’unit´ e :
1
Montrer que ψ est une racine primitive n-i` eme de ´1 et que ω “ ψ 2 est une racine primitive n-i` eme de 1.
2
D´ ecrire l’ensemble des racines n-i` emes de ´1 de F q ` a l’aide de ψ et ω.
3
Lorsque q ” 1 r2ns montrez, utilisant des NTTs de taille n, comment multiplier deux ´ el´ ements a et b de R q .
Application
Soit a “ ´X ` 2 et b “ 5X ´ 3 deux ´ el´ ements de pZ{13 ZqrX s{pX 2 ` 1q.
Calculer le produit de a et b en utilisant l’algorithme pr´ esent´ e
pr´ ecedemment (ψ “ 5, ψ ´1 “ ´5, ω “ ´1 et ω ´1 “ ´1, 2 ´1 “ ´6).
Retour sur la NTT
Il s’agit de trouver des racines n-i` emes de ´1 dans F q . Exercice
Soit ψ P F q une racine primitive 2n-i` eme de l’unit´ e :
1
Montrer que ψ est une racine primitive n-i` eme de ´1 et que ω “ ψ 2 est une racine primitive n-i` eme de 1.
2
D´ ecrire l’ensemble des racines n-i` emes de ´1 de F q ` a l’aide de ψ et ω.
3