• Aucun résultat trouvé

Réduction modulaire de Montgomery, version digitale

1 .3 Conversions de bases et réduction modulaire RNS 1.3.1Extensions/Conversions de base

Algorithme 7 Réduction modulaire de Montgomery, version digitale

Données: Une taille de mot β, quatre entiers x, t, p, u exprimés en base βtels que pgcdpβ, pq  1, 0 ¤ p   βn, 0¤ x   pβt, et un entier précalculable u |p|1β P v0, βv. Résultat: s1 p, sP v0, 2pv. 1 début 2 sÐ x 3 pour iÐ 0 à t  1 faire 4 qÐ u  s0mod β

/* s0 est le digit de poids faible de s en base

β, i. e. smod β */

5 ps Ð s p  qq

6 s¡¡β 1

/* décalage d’un digit vers la droite : division par β */

Le principe de l’Algorithme 7 est de réduire l’entier x modulo p sans uti-liser d’opération coûteuse de division, mais uniquement des additions, multi-plications et décalages.

L’idée fondamentale est de rajouter à x une valeur z telle que x z reste congruente à x modulo p, tout en étant multiple de β. Selon la taille de z, en divisant x z par β, ce qui n’est qu’un simple décalage des digits, alors il est possible d’obtenir un résultat s  x z

β suffisamment proche de p. Pour que x z vérifie ces conditions, il est naturel de choisir z  xp1

β p. Ainsi, x z   2pβ, et donc s   2p. Il est possible de mener la réduction à terme en exécutant une comparaison finale entre s et p. Néanmoins, lorsqu’il s’agit d’enchaîner les calculs dans Z{pZ, la réduction partielle dans v0, 2pv garantit

la limitation de la croissance des résultats intermédiaires, ce qui est suffisant pour notre propos. Il est alors toujours possible d’effectuer cette comparaison uniquement sur le résultat final d’une exponentiation modulaire par exemple. s n’est pas exactement le résultat souhaité puisque s xβ1mod p. Lorsque

cet algorithme de réduction est utilisé pour effectuer de nombreux calculs dans

Z{pZ, une solution est de travailler sur une représentation différente des

don-nées en utilisant la représentation de Montgomery. Elle s’obtient en appliquant initialement à tout calcul l’automorphisme deZ{pZ de multiplication par |β|p. Si px, yq P Z{pZ2, alors leurs représentants sont par définition |xβ|p et |yβ|p. Notamment, il vient directement que cette représentation est stable par addi-tion :|xβ|p |yβ|p |px yq β|p. Un intérêt réel est que cette représentation est aussi stable par multiplication dansZ{pZ, dès lors que la réduction de

Mont-gomery est utilisée. En effet, en réduisant |xβ|p |yβ|p   p2   pβ, le résultat produit n’est autre quexyβ2 |β|1p 

p  |xyβ|p. La condition d’appliquer cet automorphisme préalablement aux calculs devient peu contraignante lorsqu’il s’agit d’effectuer des exponentiations modulaires, opération centrale dans bon nombre de cryptosystèmes.

Détaillons rapidement le coût de l’Algorithme 7. Il est clair que l’étape 4 est une multiplication entre deux entiers constitués d’un seul digit, soit une EMul. De même, l’étape suivante est constituée d’une multiplication entre l’entier p sur n digits, et q qui n’est qu’un mot simple, soit une Mulβpn, 1q  n EMul et n 1 EAdd, ce qui donne alors un résultat sur n 1 digits. Suit alors une addition entre a, entier de t n mots, et un entier de n 1 digits, soit une ma-joration par t n EAdd en tenant compte des propagations de retenue. Ainsi, le coût d’une réduction modulaire d’un entier x   pβt par p   βn est majoré par :

CRedMontDigpt, nq  t pn 1q EMulβ tpt 2n  1q EAddβ. (1.29)

Il peut s’avérer avantageux, lors de calculs successifs dans un anneauZ{pZ,

de ne pas effectuer une réduction modulo p systématiquement. S’il s’agit par exemple de calculer une somme

k

°

i1aibi mod p, où p   βn et ai, bi   p pour tout i, alors en appliquant une seule réduction finale sur la somme ce cal-cul nécessite au plus pk 1qn2 

1 rlogβpkqs pn 1q EMul. En comparai-son, l’utilisation de k réductions successives amène à un coût total majoré par kn2 knpn 1q  2kn2 kn EMul. Ce genre de schéma de calculs consistant en des sommes de produits privilégie donc une approche dite de « réduction fainéante ». Les sommes de produits apparaissant couramment dans les cryp-tosystèmes à base de courbes elliptiques et de couplages notamment, ce genre de schéma de réduction fainéante se révèle d’autant plus intéressant pour le cas du RNS puisque la complexité temporelle des produits aibi est alors li-néaire en le nombre de β-digits des facteurs ai et bi (à cause de l’indépendance des multiplications menées dans les canaux RNS). Ce fait a été exploité pour optimiser les implantations RNS de telles fonctions cryptographiques (Bajard et al. 2006a, Duquesne et Guillermin 2011, Cheung et al. 2011, Bajard et al. 2013a).

Multiplication modulaire RNS

La plupart des systèmes cryptographiques modernes recourent très lar-gement à l’utilisation de calculs dans de grands corps finis Fp. Pour rendre le RNS compétitif dans le contexte de la cryptographie asymétrique, dispo-ser d’un algorithme de multiplication modulaire efficace est crucial. Les al-gorithmes les plus efficaces (Bajard et al. 2001) reposent sur une adaptation de l’Algorithme 7 de réduction de Montgomery, où, pour réduire x modulo p, il s’agit foncièrement de calculer la division exacte x |xp1|βp

β . Travaillant dans une base RNS B, la première idée clef est de substituer la valeur β par M. De ce fait, le calcul de q  xp1

M se fait aisément sur les résidus de x et u  p1

M dans B. Cependant, un problème se pose à l’étape suivante puisque le calcul de la somme x qp dansBcause la perte de toute l’informa-tion contenue dans les résidus de q. Et la division par M est bien sûr impossible à exécuter directement dansB. Le second point clef est donc d’utiliser une base RNS auxiliaire B1, première avec B, au sein de laquelle il est possible de me-ner les calculs à terme. Les procédures de conversion de base sont utilisées pour calculer les résidus de q dans cette base annexe. Le schéma général de la procédure qui en découle est détaillé dans l’Algorithme 8, et est illustré par la Figure 1.4.

Algorithme 8 :RedModRNSpB,B1, x, pq :

Données: Deux bases copremièresB etB1, un entier x représenté par ses résidus dans les deux bases, un modulus p représenté par ses résidus précalculés dans la base auxiliaireB1, et deux procédures de conversion de base notées Bex1et Bex2; les résidus précalculés de l’entierp1

M dansB, et deM1

M1

dansB1; toutes ces données vérifient les hypothèses de la Table 1.1.

Résultat: Les résidus dansBYB1 de sxM1

p.

1 début

2 qB Ðxp1

M

M /* en // dans B */

3 pqB1 Ð Bex1pB,B1, qBq /* 1ère conversion de q vers B1 */

4 tB1 Ð |x pq p|M1 /* en // dans B1 */

5 sB1 ÐtM1

M1 /* en // dans B1 */

6 sB Ð Bex2pB1,B, sB1q /* 2nde conversion de s vers B */

Remarque 1.11 La valeur pq  Bex1pB, qBq peut être non complètement réduite modulo M, et donc être de la forme q δM avec δ P N suivant la conversion utilisée. Si la conversion est complètement réduite, alors pq  q. Dans tous les cas, lorsque les tailles de M et M1 sont convenablement choisies, alors il est toujours possible d’avoir s  x pqp

M 

x qp

M δ p  p2 δq p   M1. De plus, le résultat s vérifie bien s xM1mod p. La

seconde conversion Bex2pB1,B, sB1q doit être complètement réduite afin d’obtenir les résidus du même entier s à la fois dans la baseB et dans la baseB1.

Remarque 1.12 Les conditions sur les basesB etB1 imposées parHkw dans la Table 1.1 garantissent que sB1 est converti de manière exacte par Bexkwc. En effet, vu la Remarque 1.8, pq

Hypothèses Hmrs Hkw Hsk

Bex1 Bexmrs Bexkw Bexcrt

Bex2 Bexmrs Bexkwc Bexsk

redondance   msk ¥` 1 coprimalités M^ M1p 1 M ^ M1p 1 M ^ mskM1p 1, msk^ M1  1 taille x   σp2, σ¥ 4   σp2, σ¥ 4   pn 1q2 p2 tailleB M ¡ σpσ p p1∆kwq M¡ pn 1q2p tailleB1 M1 ¡ 2p M1¡ 2p p1αkwq M1 ¡ pn 1q p taille s   2p   2p   pn 1q p

Table 1.1 – Hypothèses pour l’Algorithme 8.

vérifie pq   p1 ∆kwq M, et il vient alors : s x pqp M   σ p2 p1 ∆kwq Mp M   p1  ∆kwq Mp p1 ∆kwq Mp M  2p   p1  αkwq M1.

De la même manière que pour l’Algorithme 7, la réduction modulaire réa-lisée par l’Algorithme 8 ne met pas en œuvre le test final sur la valeur s pour sa réduction complète dans v0, pv. Un tel test ne s’avère pas forcément utile tant que les calculs n’ont pas été menés à leur terme. La taille de la base RNS principale intervenant dans la réduction modulaire peut être calibrée de ma-nière à ce qu’aucun dépassement de capacité ne soit possible si l’entrée de l’algorithme est le résultat d’une multiplication entre deux entiers ayant été réduit par l’algorithme de Montgomery par exemple. Ceci explique la condi-tion σ ¥ 4 dans la Table 1.1. Ceci permet par la même occasion de dériver un algorithme d’exponentiation modulaire de l’Algorithme 8.

Une comparaison entre s et p nécessiterait de passer par un système de représentation positionnel comme le MRS. Si Bex2 est une conversion de type Bexmrs, la comparaison devient bien sûr facilement réalisable à cause du carac-tère positionnel du MRS. Dans le cas contraire, une approche du même type que celles suggérées par Walter (1999), Hachez et Quisquater (2000), Gueron (2002) est possible. À savoir, si M ¡ 4p, alors en appliquant une réduction sur une sortie précédente s de l’Algorithme 8 et vérifiant donc s   2p, nous avons s pqM   p 1

2. Par conséquent, il ne reste plus qu’à vérifier une éventuelle égalité avec p, ce qui se réalise directement sur les résidus vu l’injectivité du RNS.

Remarque 1.13 Comme la valeur q calculée dans la base M est un produit modulaire modulo M, il est inutile d’adjoindre un modulus redondant msk à la base B. En effet, le résidu qsk de q ne peut a priori être obtenu facilement. En revanche, cela devient possible pour s dans la base B1, sous l’hypothèse d’avoir accès aux résidus xsk et psk parmi les entrées de l’algorithme. Comme s est le résultat de la division exacte de t  x pqp par M, alors ssk s’obtient facilement partM1

msk. Étant donné que la taille deB1 vérifie s  M1,

sskest effectivement une information redondante des résidus sB1. Par conséquent, il est possible d’utiliser Bexsk pour la seconde conversion.

conver-Figure 1.4 – Illustration de l’Algorithme 8 de réduction modulaire RNS.

sions de base utilisées, à savoir : C Bex1 B,B1, .

C Bex2 B,B1, .

n MMElB 2` MMElB1 ` AMElB1. (1.30) De nombreuses optimisations sont possibles dans le cas de l’exponentiation modulaire pour réduire le nombre total de multiplications nécessaires en en intégrant une partie dans les valeurs précalculées (Gandino et al. 2011; 2012). Par exemple, le calcul des coefficients ξq,i,B lorsque la première conversion de base Bex1 est de type Bexcrt ou Bexkw peut être court-circuité en utilisant les résidus précalculés ui   ppM

iq1

mi

quadratique en le nombre de digits de p, l’avantage de la réduction modulaire RNS est sa flexibilité puisqu’elle s’applique à tout type de modulus p.

Suivant le choix des procédures de conversion de base, les conditions im-posées sur les tailles des bases B et B1 peuvent varier et ont en particulier pour but de garantir que la taille de l’entrée puisse être celle du produit de deux valeurs réduites, afin de permettre la réalisation efficace d’une multi-plication modulaire. La Table 1.1 résume trois principaux ensembles d’hypo-thèses associées à l’Algorithme 8 correspondant à trois choix possibles pour le couple (Bex1, Bex2) qui sont (Bexmrs, Bexmrs), (Bexcrt, Bexsk) (Bajard et al. 2001), et (Bexkw, Bexkwc) (Kawamura et al. 2000).

La flexibilité de la condition sur la taille de l’entrée x via le coefficient σ et sa répercussion sur la taille minimale de M dans Hmrs,Hsk et Hkw est due à Guillermin (2010). Si les produits étaient systématiquement réduits modulo 2p, σ 4 suffirait. En effet, le produit de deux valeurs préalablement réduites est, de fait, plus petit que 4p2. Néanmoins, il se trouve, comme dans le cas d’une réduction de Montgomery classique, qu’il est plus intéressant pour cer-taines situations nécessitant le calcul de nombreuses sommes de produits de n’effectuer qu’une réduction finale.

La multiplication classique en RNS a en effet le précieux avantage d’être linéaire en le nombre de moduli des bases RNS, puisqu’elle ne nécessite que n ` MMEl. Néanmoins, la multiplication modulaire reste, elle, quadratique à cause des opérations de conversion de base qui nécessitentOpn`q MMEl. Afin de tirer parti de l’efficacité du RNS dans l’exécution des opérations basiques d’addition et de multiplication, la « réduction fainéante » se révèle très intéres-sante, par exemple dans le cas d’algorithmes utilisés en cryptographie basée sur les courbes elliptiques comme souligné plus tôt. Un calcul du coût de la réduction modulaire d’une somme de produits, détaillé par la suite, permet de montrer l’influence de la linéarité de la multiplication en RNS.

Par soucis de simplicité, les basesBetB1sont supposées contenir un même nombre n de moduli de taille β. La taille n de ces bases est celle de logβppq (cf. Table 1.1). Ainsi, l’application d’une réduction fainéante en RNS, avec réduction modulaire de type Kawamura et al., pour le calcul d’une somme

k

°

i1aibi mod p, où les termes ai et bi sont supposés réduits modulo p, nécessite

donc 2kn MMEl pour les k produits de la somme, et 2n2 5n MMEl pour la réduction modulaire, soit un coût total de

2n2 p2k 5qn MMElβ.

À titre de comparaison, la discussion précédente concernant le calcul du coût de l’Algorithme 7 montre qu’une approche standard nécessiterait dans ce cas

pk 1qn2 

1 rlogβpkqs pn 1q EMulβ.

Par la suite, la multiplication modulaire RNS naturellement associée à l’Al-gorithme 8 de réduction modulaire et appliquée aux résidus dans BYB1 de deux entiers x et y sera notée MulModRNSpB,B1, x, y, pq. La contrainte sur la taille des entiers x et y concerne alors simplement la taille du produit qui doit vérifier la borne donnée dans la Table 1.1.

Remarque 1.14 La représentation de Montgomery d’un nombre x est obtenue par le calcul de la