Repr´ esentation des Nombres et Algorithmes
Impl´ ementation Compl` etement RNS du Sch´ ema de Chiffrement de Fan et Vercauteren
Vincent Zucca
Ann´ ee 2016-2017
Th´ eor` eme des Restes Chinois
Si q P Z est produit d’entiers premiers entre eux deux ` a deux tq
1, . . . , q
ku formant la “base RNS”, on a l’isomorphisme d’anneaux :
Z{qZ – Z{q
1Z ˆ . . . ˆ Z{q
kZ
Residue Number Systems
“Gros” x P r0, qq X Z Ø k petits r´ esidus px mod q
1, . . . , x mod q
kq.
Arithm´ etique en parall` ele, sans retenue p`, ´, ˆ, ˜q sur les r´ esidues.
Syst` eme de repr´ esentation non positionnel.
Ñ la repr´ esentation RNS d’un nombre x d´ epend de la base choisie.
Comment convertir les r´ esidues de x d’un base B vers une base B
1?
Rappels sur le RNS et FV
Pour convertir les r´ esidus d’un nombre x d’une base B vers une base B
1il est n´ ecessaire de “reconstruire” x depuis ses r´ esidus dans la base B : Exercice : Conversion(s) bas´ ee(s) sur le CRT
Soit B “ tm
1, ¨ ¨ ¨ , m
ku une base RNS d’intervalle dynamique r0, MrXZ et x un entier repr´ esent´ e dans B par ses r´ esidus px
1, ..., x
kq.
1
Montrer que y “ ř
ki“1
ˇ ˇ ˇ x
im
iM ˇ ˇ ˇ
miM m
iest bien d´ efini et que y “ x ` αM .
2
Donner un encadrement de α.
3
En d´ eduire un algorithme de conversion “inexacte” de base.
4
Soit m
sktel que m
sk^ M “ 1, montrer que si m
skě k alors α “ ˇ
ˇ py ´ x
skqM
´1ˇ ˇ
msk.
5
En d´ eduire un algorithme de conversion “exacte” de base.
Conversion de base B
q“ t q
1, . . . , q
ku Ñ B “ t m
1, . . . , m
`u
Conversion rapide mais non-exacte : x dans B
qÑ |x|
q` αq dans B.
ù Rapide mais on a un “q-overflow” α P r0, krXZ .
Si besoin, rajouter un moduli m
sk` a B
qpour corriger α efficacement (M´ ethode de Shenoy et Kumaresan).
Application :
On a deux bases RNS B “ t13, 17u, B
1“ t11, 19u et m
sk“ 5. Convertir
x
B“ p9, 16q, x
sk“ 2 vers B
1avec les deux m´ ethodes vues ci dessus.
Rappels sur le RNS et FV
Conversion de base B
q“ tq
1, . . . , q
ku Ñ B “ tm
1, . . . , m
`u
Conversion rapide mais non-exacte : x dans B
qÑ |x|
q` αq dans B.
ù Rapide mais on a un “q-overflow” α P r0, krXZ .
Si besoin, rajouter un moduli m
sk` a B
qpour corriger α efficacement (M´ ethode de Shenoy et Kumaresan).
Solution : y “ 373
Conversion rapide : p10, 12q
α “ |py ´ x
skq221
´1|
5“ 1
Shenoy Kumaresan : p9, 0q
Contexte : R
q– pZ{q ZqrX s{pX
n` 1q
Optimisations classique pour l’arithm´ etique sur...
...les coefficients: Residue Number Systems
pas de contrainte sur la forme de q : Ñ q “ q
1. . . q
k(“petits” modulis premiers entre eux et de mˆ eme taille).
Z{q Z – Z{q
1Z ˆ . . . ˆ Z{q
kZ
...les polynˆ omes : Number Theoretic Transform
Produit polynomial optimis´ e avec n une puissance de 2 : O pn log
2pnqq.
Les deux repr´ esentations sont compatibles.
Rappels sur le RNS et FV
Tableau des repr´ esentations
Coˆ ut pour
monter/descendre Entiers Polyˆ omes Utilit´ e
positionnel coefficients comparaison, division, arrondis sur coeff.
Opn
log
2pqq2qOpkn
log
2pnqqRNS coefficients optimisation
arithm´ etique enti` ere
RNS NTT optimisation
arithm´ etique polynomiale
Tableau des repr´ esentations
Coˆ ut pour
monter/descendre Entiers Polyˆ omes Utilit´ e
positionnel coefficients comparaison, division, arrondis sur coeff.
Opn
log
2pqq2qOpkn
log
2pnqqRNS coefficients optimisation
arithm´ etique enti` ere
RNS NTT optimisation
arithm´ etique polynomiale
utilis´e dansDecandMult
Rappels sur le RNS et FV
Tableau des repr´ esentations
Coˆ ut pour
monter/descendre Entiers Polyˆ omes Utilit´ e
positionnel coefficients comparaison, division, arrondis sur coeff.
Opn
log
2pqq2qOpkn
log
2pnqqRNS coefficients optimisation
arithm´ etique enti` ere
RNS NTT optimisation
arithm´ etique polynomiale
possible de
§
χ
keyet χ
err: des distributions “´ etroites” sur R
q;
§
U : distribution uniforme sur R
qG´ eneration de cl´ es
1
Tirer s Ð χ
key2
Tirer p a, e q Ð U ˆ χ
err3
Retourner pk “ p p
0, p
1q “ pr´p as ` e qs
q, a q (´ echantillon RLWE) sk “ s
Chiffrement
rms
tP R
t` a chiffrer, cl´ e publique pk,
1
Tirer p e
1, e
2, u q Ð pχ
errq
2ˆ U
2
Retourner p c
0, c
1q “ pr∆r m s
t` p
0u ` e
1s
q, r p
1u ` e
2s
qq (∆ “ t
qtu)
rc
0` c
1s s
q“ ∆rms
t` v (mod q) avec v : “bruit frais”
D´ echiffrement compl` etement RNS
Le d´ echiffrement original
pc
0, c
1q chiffrant rms
tavec un bruit v : rc
0` c
1ss
q“ ∆rms
t` v ` qr
1
normalisation :
qt¨ r c
0` c
1s s
q“ r m s
t`
vq1` tr
2
arrondis : t
qt¨ rc
0` c
1s s
qs “ rms
t` t
vq1s ` tr Si }v }
8“ maxp|v
i|q ă B
decñ t
vq1s “ 0
Decp c, skq “ rt
qt¨ r c
0` c
1s s
qss
t“ rr m s
t` tr s
t“ r m s
t.
Probl` eme pour la repr´ esentation (non positionelle) RNS
Comment calculer pt
qt¨ xs mod tq en RNS?
Calculer un arrondi en RNS
En RNS on peut faire une division exacte efficacement, on calcule donc : Z t
q ¨ x V
“ tx ´ |tx |
qq ` b, pb P t0, 1uq
1
Conversion rapide de |tx |
q(en RNS) vers la base RNS tt u:
FastBconvptx , q, ttuq “ |tx |
q` αq mod t pα P r0, krXZq
2 tx´p|tx|q`αqq
q
“ t
qt¨ xu ´ α “ t
qt¨ xs ´ E mod t (with E “ α ` b ď k ) Remarque : comme tx ” 0 rts, on calcule seulement
´p|tx|qq`αqqmod t Il y a une erreur...
Il faut corriger l’erreur E pour avoir un d´ echiffrement correct.
D´ echiffrement compl` etement RNS
Corriger l’erreur
Ecrivons dans ´ Z: tx “ t
qt¨ xsq ` rtx s
qen multipliant par γ P N : Y
γ
tq¨ x U
´ E “ γ Y
tq
¨ x U
` Y
γ
rtxsqqU
´ E
Exercice
Supposons que l’on ait un saut ε ą 0 i.e. (´
q2` ε ă rtx s
qă
q2´ ε).
Montrer que si γε ě k `
12on a:
”Y γ
tq¨ x
U
´ E ı
γ
“ Y
γ
rtxsqqU
´ E
Strat´ egie
1
Calculer tγ
qt¨ xs modulo t et modulo γ
2
Utiliser le reste centr´ e modulo γ pour corriger l’erreur.
Dec
RNSppc
0, c
1q, s, γq
Require: pc
0, c
1q un chiffr´ e de rms
t, et s la cl´ e secr` ete, tout deux dans la base q, un entier γ premier avec t et q .
Ensure: r m s
t1: for m P tt, γu do
2: s
pmqÐ FastBconvp´γtpc
0` c
1sq, q, tmuq ¨ |q
´1|
m3: end for
4: s ˜
pγqÐ rs
pγqs
γ5: m
ptqÐ rps
ptq´ s ˜
pγqq ˆ |γ
´1|
ts
t6: return m
ptqR´ esum´ e
Meilleure complexit´ e asymptotique O pn
3q Ñ O pn
2log
2pnqq.
Flexible en terme de parall´ elisation.
Borne sur le bruit modifi´ ee : } v }
8ă
∆´|q|2 t´
k∆γ.
(profondeur inchang´ ee en pratique)
Multiplication homomorphique compl` etement RNS
Multiplication homomorphique originale de pc
0, c
1q par pc
01, c
11q
1
Produit : p˜ c
0, c ˜
1, c ˜
2q “ pc
0c
01, c
0c
11` c
01c
1, c
1c
11q dans Z (reconstruire)
2
Division + Arrondis : c ˆ
i“ t
qt¨ c ˜
is
ù rˆ c
0` c ˆ
1s ` c ˆ
2s
2s
q“ ∆rm
1m
2s
t` v
11mod q
3
Relin´ earisation : p c ˆ
0` c ˆ
2s
2, c ˆ
1q ÝÝÝÝÑ pˆ
s privatec
0` c ˆ
2ps
2` e ` asq, c ˆ
1´ aˆ c
2q
§
Bruit trop “gros” p}ˆ c
2ˆ e}
8ă q{2 ˆ nB
errq Ñ Solution originale :
§
D´ ecomposer c ˆ
2“ b
0` b
1ω ` . . . ` b
`ω
`´1en base ω
§
Cl´ e publique de relin´ earisation: prs
2¨ p1, ω, . . . , ω
`´1q ` Ý Ñ e ` Ý Ñ a ss
q, ´Ý Ñ a q
§
Bruit plus faible }pb
0, b
1, . . . , b
`q ¨ Ý Ñ e }
8ă `ω{2 ˆ nB
errProbl` emes pour la repr´ esentation RNS
Reconstruction dans Z , division et arrondis, d´ ecomposition en base ω...
Multiplication homomorphique compl` etement RNS
Probl` eme 1 : calculer le produit p c ˜
0, c ˜
1, c ˜
2q in Z .
Ñ Solution : }˜ c
i}
8ă„ nq
2: ne pas reconstruire dans Z ,
1
Conversion rapide des r´ esidus dans la deuxi` eme base B
sk“ B Y tm
sku;
2
Calculer p˜ c
0, c ˜
1, c ˜
2q in q Y B
sk.
Probl` eme 2: division et arrondis des c ˆ
i“ t
qt¨ c ˜
is en RNS. Ñ Solution: partie enti` ere au lieu de l’arrondis dans B
sk,
2
c ˆ
iÐ FastBconvSKp˜ c
i, B
sk, qq (pas de multiple du module de B).
Problem 3: d´ ecomposer c ˆ
2en base ω dans la base q. ÑSolution: d´ ecomposer c ˆ
2“fa¸con RNS”,
1
c ˆ
2“
´
|ˆ c
2¨
qq1|
q1, ¨ ¨ ¨ , |ˆ c
2¨
qqk|
qk¯
;
2
evk
RNS“ ˆ ”´
|s
2qq1
|
q, ¨ ¨ ¨ , |s
2qqk
|
q¯
` Ý Ñ e ` Ý Ñ a s ı
q
, Ñ Ý a
˙
.
Multiplication homomorphique compl` etement RNS
Probl` eme 1: calculer les produits p c ˜
0, c ˜
1, c ˜
2q }˜ c
i}
8ă„ nq
2: pas de reconstruction dans Z.
Ñ Juste prendre une base plus grande que tq
1, . . . , q
ku Solution : introduire une deuxi` eme base B
Etape ´ base q
1, . . . , q
kbase B Y t mu ˜ 0 c
i, c
j11 c
i, c
j1 conversion rapidenon-exacte
c
i` qu
i, c
j1` qu
j1` a r´eduire
2 c ˆ
iÐ MRed q
m˜pc
i` qu
iq
3 ˜ c
0Ð c
0ˆ c
01, etc c ˜
0Ð c ˆ
0ˆ c ˆ
01, etc
Seulement des conversions de base RNS non-exactes mais rapides
Multiplication homomorphique compl` etement RNS
Probl` eme 1 : calculer le produit p c ˜
0, c ˜
1, c ˜
2q in Z .
Ñ Solution : }˜ c
i}
8ă„ nq
2: ne pas reconstruire dans Z ,
1
Conversion rapide des r´ esidus dans la deuxi` eme base B
sk“ B Y tm
sku;
2
Calculer p˜ c
0, c ˜
1, c ˜
2q in q Y B
sk.
Probl` eme 2: division et arrondis des c ˆ
i“ t
qt¨ c ˜
is en RNS.
Ñ Solution: partie enti` ere au lieu de l’arrondis dans B
sk,
1
FastBconvp˜ c
i, q, B
skq et calcule de la partie enti` ere dans B
sk;
2
c ˆ
iÐ FastBconvSKp˜ c
i, B
sk, qq (pas de multiple du module de B).
Problem 3: d´ ecomposer c ˆ
2en base ω dans la base q. ÑSolution: d´ ecomposer c ˆ
2“fa¸con RNS”,
c ˆ
2“ |ˆ c
2¨
q|
q1, ¨ ¨ ¨ , |ˆ c
2¨
q|
qk;
2
evk
RNS“ ˆ ”´
|s
2qq1
|
q, ¨ ¨ ¨ , |s
2qqk
|
q¯
` Ý Ñ e ` Ý Ñ a s ı
q
, Ñ Ý a
˙
.
Multiplication homomorphique compl` etement RNS
Probl` eme 2 : division et arrondis c ˆ
i“ t
qt¨ c ˜
is en RNS Contexte ‰ d´ echiffrement, aucune garantie d’avoir un saut .
ñ On ne peut pas obtenir un arrondi RNS correct avec la γ-correction.
Solution : partie enti` ere au lieu de l’arrondi
Etape ´ base q
1, . . . , q
kbase B Y tm
sku
0 c ˜
ic ˜
i1 t c ˜
iconversion rapide
non-exacte
|t c ˜
i|
q` q u ˜
i2 ˆ c
iÐ
t˜ci´p|t˜cqi|q`q˜uiqin B Y tm
sku
3 c ˆ
i“ t
qt¨ c ˜
is ` e
i (}ei}8ďk)conversion rapide
exacte
ˆ c
i, |ˆ c
i|
msk(on utilise|ˆci|msk pour corriger l’overflow)
Probl` eme 1 : calculer le produit p c ˜
0, c ˜
1, c ˜
2q in Z .
Ñ Solution : }˜ c
i}
8ă„ nq
2: ne pas reconstruire dans Z ,
1
Conversion rapide des r´ esidus dans la deuxi` eme base B
sk“ B Y tm
sku;
2
Calculer p˜ c
0, c ˜
1, c ˜
2q in q Y B
sk.
Probl` eme 2: division et arrondis des c ˆ
i“ t
qt¨ c ˜
is en RNS.
Ñ Solution: partie enti` ere au lieu de l’arrondis dans B
sk,
1
FastBconvp˜ c
i, q, B
skq et calcule de la partie enti` ere dans B
sk;
2
c ˆ
iÐ FastBconvSKp˜ c
i, B
sk, qq (pas de multiple du module de B).
Problem 3: d´ ecomposer c ˆ
2en base ω dans la base q.
ÑSolution: d´ ecomposer c ˆ
2“fa¸ con RNS”,
1
c ˆ
2“
´
|ˆ c
2¨
qq1|
q1, ¨ ¨ ¨ , |ˆ c
2¨
qqk|
qk¯
;
2
evk
RNS“ ˆ ”´
|s
2qq1
|
q, ¨ ¨ ¨ , |s
2qqk
|
q¯
` Ý Ñ e ` Ý Ñ a s ı
q
, Ñ Ý a
˙
.
Multiplication homomorphique compl` etement RNS
Probl` eme 3 : Acc` es ` a un syst` eme positionel
D´ ecomposer c ˆ
2“ b
0` b
1ω ` . . . ` b
`ω
`´1en base ω (positional).
Rappel : remplacer c ˆ
2ˆ e
}.}„ nqB
errù pb
0, b
1, . . . , b
`q ¨ Ý Ñ e
}.}„ n`ωB
errSolution : utiliser la representation RNS...
ˆ
c
2“ b
0` b
1ω ` . . . ` b
`ω
`´1pb
i“ |tˆ c
2ω
´iu|
ωq ˆ
c
2“ d
1qq1
` d
2qq2
` . . . ` d
kqqk
modq pd
i“ |ˆ c
2qqi|
qiq } b
i}
8„ } d
i}
8ñ }p b
0, b
1, . . . , b
`q ¨ Ý Ñ e }
8„ }p d
1, d
2, . . . , d
kq ¨ Ý Ñ e }
8ñ la borne `ω ˆ nB
errdevient kω ˆ nB
errÑ si ω „ q
i(i.e. ` “ k), la representation RNS a un effet ´ equivalent.
Eval. key: s
2¨ p1, ω, . . . , ω
`´1q ` Ý Ñ e ` Ý Ñ a s ù s
2¨ p
qq1
, . . . ,
qqk
q ` Ý Ñ e ` Ý Ñ a s
R´ esum´ e
Op´ erations coˆ uteuses dans Z ù Conversions de base rapide.
Le bruit croit de mani` ere ´ equivalente (pas d’impact sur la profondeur) . Mˆ eme nombre de produit polynomiaux ñ Mˆ eme complexit´ e asymptotique.
Meilleure complexit´ e pour les op´ erations sur les coefficients.
Peut ˆ etre compl` etement parall´ elis´ e.
Implentation Logicielle
C++ utilisant NFLlib (pour l’arithm´ etique polynomiale dans
Ravec NTT) , compar´ ee avec
aune approche standart avec NFLlib+GMP 6.1.0, Ordinateur portable avec Fedora 22, un i7-4810MQ CPU @ 2.80GHz, g++ v5.3.1, Hyper-Threading et Turbo Boost d´ esactiv´ es.
ahttps://github.com/CryptoExperts/FV-NFLlib
R´ esultats - Facteurs d’acc´ el´ eration
ν taille des modulis (bit)
log
2pnq11 12 13 14 15
30
k3 6 13 26 53
62
k1 3 6 12 25
t “ 2
10γ “ 2
8 (suffisant en pratique)11 12 13 14 15
5 10 15 20
log2pnq
Decryption ν“30 ν“62
11 12 13 14 15
2 3 4
log2pnq
Multiplication ν“30 ν“62