Académique Documents
Professionnel Documents
Culture Documents
THÈSE
pour l’obtention du
par
Florent Bernard
Composition du jury
Nous montrons ensuite que l'ar hite ture développée peut être utilisée omme boîte
noire pour ee tuer la rédu tion modulaire.
Nous étudions également la mise en pla e d'une ontre-mesure additive au niveau des
données qui permet de se prémunir de ertaines attaques basées sur la DPA. Nous mon-
trons en parti ulier, que la mise en pla e d'une telle ontre-mesure ne provoque qu'une
faible augmentation du temps de al ul (moins de 5%).
Mots- lés: Cryptographie, Système binaire (mathématiques), Cir uits integrés à la de-
mande, Fourier, transformation de, Multipli ation (arithmétique), Algorithme de Mont-
gomery
Study of arithmeti algorithms and
their hardware implementation
Abstra t
Modular multipli ation is the main operation in most of asymmetri ryptography proto-
ols (Die-Hellman key ex hange, RSA, ECDSA).
Thus hardware implementation of this operation needs attention.
Strategy used for implementation onsists in minimizing the number of kinds of elementary
operation in the algorithm. Then we obtain a family of s alable hardware improving time-
area tradeos in omparison to previous s alable hardware.
Then onsidering the hardware developed as a bla k-box, we show how to perform
modular redu tion with this hardware.
We also study how to add an additive ountermeasure against DPA atta ks with a slow
extra- omputational time (less than 5%).
Keywords: Cryptography, Binary system (mathemati s), Appli ation Spe i Integrated
Cir uits, Fourier transformation, Multipli ation (arithmeti ), Montgomery algorithm
Remer iements
Il y a longtemps que je voulais é rire es quelques lignes. D'une part, elles marquent la n
de la thèse (et don de la réda tion !) et d'autre part ar es trois années passées m'ont
permis de ren ontrer de nombreuses personnes que je tiens enn à remer ier i i.
Dans un premier temps, je voudrais remer ier Madame Christiane Frougny, professeur
à l'université Paris 8, qui me fait l'honneur de présider le jury de ette thèse.
Je remer ie également Monsieur Reynald Ler ier du Centre d'Ele tronique de l'Arme-
ment (Celar), ainsi que Monsieur Arnaud Tisserand hargé de re her he CNRS au La-
boratoire d'Informatique, de Robotique et de Mi roéle tronique de Montpellier (Lirmm)
d'avoir a epté de juger e travail de thèse.
En parti ulier, la ren ontre ave Reynald Ler ier en ours de thèse m'aura permis de
pré iser et d'améliorer ertains points on ernant l'ar hite ture matérielle proposée dans
e do ument de thèse. La rele ture attentive de e mémoire et les onseils prodigués par
Arnaud Tisserand me seront d'une grande utilité pour améliorer la qualité de e do-
ument et des arti les qui, je l'espère, suivront. Qu'ils soient tous les deux remer iés de
m'avoir fait partager leur expérien e.
Si la phase de réda tion d'une thèse est une étape di ile, la tâ he de rele ture n'a rien a
lui envier. Aussi mes remer iements vont à Monsieur Jean-Claude Bajard, professeur à
l'université de Montpellier 2 et Monsieur Viktor Fis her, professeur à l'université Jean
Monet de Saint-Etienne qui ont bien voulu a epter le rle di ile de rapporteur.
Leur omplémentarité en algorithmique et implémentation, qui sont les deux thèmes prin-
ipaux de ette thèse, est pré ieuse et nul doute que leurs onseils me seront protables.
A présent, je souhaite remer ier Monsieur Claude Carlet, professeur à l'université Paris
8, pour la onan e qu'il m'a a ordée en en adrant ma thèse sur e sujet plus appliqué
que théorique et don assez éloigné de son domaine de re her he.
Lors de dis ussions informelles, nous avons également pu é hanger des points de vue sur
le monde de l'enseignement et de la re her he qu'il onnait parti ulièrement bien. Ses
onseils et sa vision de e monde m'auront é lairé sur ertaines idées pré onçues que je
pouvais avoir.
Mes remer iements vont ensuite à mes deux o-dire teurs, Philippe Guillot, maître de
onféren e à l'université Paris 8 et Alain Sauzet, ryptologue hez Thales Communi a-
tions. Il m'est di ile (surtout après l'étape laborieuse de réda tion) de représenter par
quelques mots et phrases e que vous m'avez apporté durant es trois années, tant sur le
plan humain que s ientique. Je vais toutefois essayer tout en sa hant que les o asions
de vous exprimer ma re onnaissan e ne manqueront pas.
sous un autre angle (bases RNS arrée, représentation de Fourier). Et même si ertaines de
es idées n'ont pas abouti, elles restent de très bons souvenirs d'exploration s ientique .
Le sujet très appliqué de ma thèse et le besoin rapide de résultats pratiques ont fait que je
me suis mis à l'aspe t re her he a adémique en deuxième (voire troisième) temps. Je sais
que ela n'aurait pas été possible sans ton soutien et le fait que tu as toi même travaillé
pré edemment dans un ontexte industriel dont tu omprends les besoins pratiques.
Nous avons eu l'o asion de dis uter longuement, sur de nombreux sujets s ientiques
ou non, et je suis persuadé que nous auront en ore d'autres o asions de renouveller es
dis ussions. Alors simplement et très sin èrement, mer i.
Alain, la onan e que tu m'as a ordée tout au long de la thèse aura été un véritable
moteur, me permettant d'avan er et de m'impliquer dans ette problématique industrielle
qui donne tout son sens à une thèse CIFRE. J'ai ons ien e que aser l'en adrement d'une
thèse dans ton emploi du temps aura été un problème di ile. C'est pourquoi je voudrais
i i te dire que j'ai appré ié à leur juste valeur tous es moments pré ieux dans lesquels le
taux de travail aura été maximal, débou hant la plupart du temps sur une problématique
laire à résoudre.
Ta polyvalen e entre le monde théorique et le monde de l'implémentation matérielle et
logi ielle m'a ouvert les yeux sur l'importan e qu'il y a à ommuniquer au sein d'un servi e
où les ompéten es de ha un sont variées. Ces ompéten es sont omme des briques, la
ommuni ation jouant le rle de iment dans l'optique de mener à bien une mission donnée.
Mer i aussi pour tous es moments beau oup plus informels que sont les dis ussions autour
du afé des lève tt , le fameux vélo de servi e, les (loooongs) trajets en RER, et . . .Je
n
sais que ton seul regret sera GF (2 ), mais je voulais garder une o asion de travailler de
nouveau ave toi :-) Alors à très bientt.
J'aimerai ensuite remer ier François Larbey et Eri Garrido pour leur a ueil et la onan e
qu'ils m'ont a ordé durant es trois années au sein du Servi e Crypto-Composant, ainsi
que tous les membres de e servi e qui auront pris le temps d'é outer mes présentations,
mes omplaintes et bien d'autres hoses. Qu'ils soient Crypto : Sandrine (et les longues
dis ussions que nous avons eues), Philippe (et les parties de squash endiablées !), Olivier
(et sa psy hologie appliquée mais jamais expliquée !). Ou qu'ils soient omposant :
Ri hard (et son vélo !), Vin ent F. et Norbert (que j'aurai embêtés à la fois ave mes
questions sur l'implémentation et mes servi es à la table !), Erwann et Olivier (les footeux
du hallenge !), Vin ent M. et Laurent (les inséparables !), Jean-Charles (le pongiste !) et
Patri e (le omplémentaire temporel d'Alain !).
Ceux qui sont partis vers d'autres horizons mais que j'aurai eu la han e de onnaître :
Olivier, Sabine, Sébastien, Cédri et Christine. Et les nouveaux venus : Sandra, Renaud,
David, Guillaume, Pas al ( !).
Mer i à tous pour votre bonne humeur et sympathie, qui ont été ertains jour, une sour e
de motivation ertaine pour braver les transports parisiens. Sa hez que les portes de l'al-
tiligérie vous sont grande ouvertes !
Je voudrai à présent adresser trois remer iements plus parti uliers.
Le premier à Sylvain, ollègue stagiaire puis thésard embarqué dans le même bateau.
v
Tu auras pris le temps d'é outer mes lamentations, de omprendre mes problématiques
et de m'apporter tes idées. De plus, les délires de thésards fatigués et les moments de
dé ompression (yetis, Muse, laques, squash, ping, tness, . . .) ont été autant de petits
moments très pré ieux et absolument né essaire !
Le se ond est adressé à Vin ent, ompagnon de rails, ompagnon de voisinage mais sur-
tout ollègue appré ié et estimé. Tu auras pris le temps de m'é outer, m'orienter dans
mes re her hes, essayant de omprendre e que je voulais réaliser en m'apportant ton
expérien e en ar hite ture matérielle et tes idées. La thèse n'aurait pas onnu de résultats
si rapides sans ta rigueur et ton aide simple et e a e. Un grand mer i pour ton soutien
professionel, ton sens de l'analyse et ta gentillesse.
Le dernier est adressé à Yogi. Je sais que tu as traversé une étape di ile au ours de ma
thèse et que tu m'as quand même soutenu, é outé, onseillé en m'a ueillant hez toi, tu
as toute mon admiration et ma re onnaissan e.
Mer i à mes parents et mes beaux-parents pour leur soutien in onditionnel et leurs en-
ouragements qui ont été autant de bouées d'oxygène dans les moments de doute.
Mer i à Emilie qui m'a supporté et me supporte au quotidien ! En parti ulier, mer i à la
syn hronisation de tes ho hements de tête :-).
Ton soutien et ta onan e sont pré ieux.
Mer i à Jules d'avoir laissé dormir son papa lorsqu'il se levait tt le matin et de l'avoir
supporté en phase de réda tion.
Enn, un mer i tout parti ulier à mon on le et à mon grand-père, Mar et Mauri e
Jamond, pour m'avoir transmis leur uriosité s ientique.
A mon grand-père...
viii
Table des matières
Introdu tion 1
I Étude algorithmique 7
1 Opérations arithmétiques et représentations des entiers 9
1.1 Représentation en numération de position . . . . . . . . . . . . . . . . 9
2 Complexité algorithmique 15
2.1 Évaluation du oût d'un algorithme . . . . . . . . . . . . . . . . . . . . 15
ix
x Table des matières
3.2.1 La division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Montgomery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
II Implémentation 45
4 Algorithme et opérations élémentaires 47
4.1 Algorithme de multipli ation modulaire de Montgomery . . . . . . . . 47
5 Opérateurs élémentaires 51
5.1 Multipli ation-addition : P = xi yj + zj + u(j) . . . . . . . . . . . . . . 51
6.3.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.1.2 Surfa e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
7.2.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9 Contre-mesures DPA 89
9.1 Masquage des données . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
xiii
xiv Table des gures
Table des algorithmes
xv
xvi Table des algorithmes
Introdu tion
1
3
Contexte
Les travaux de ette thèse s'ins rivent dans la réalisation d'un dispositif matériel destiné
à ee tuer des al uls requis par la ryptographie asymétrique.
La notion de ryptographie asymétrique (ou ryptographie à lé publique) est apparue
pour la première fois en 1976 [29℄.
Suite à la présentation du prin ipe général par Die et Hellman, de nombreux ryptosys-
tèmes asymétriques ont été proposés.
On peut iter le ryptosystème RSA (R. Rivest, A. Shamir, L. Adleman) [1℄, le ryptosys-
tème El Gamal [32℄, ou en ore les ryptosystèmes basés sur les ourbes elliptiques (ECC :
Ellipti Curve Cryptosystem) [46℄, [54℄.
La sé urité de es proto oles ryptographiques est basée sur la di ulté de résoudre
ertains problèmes mathématiques omme la fa torisation de grands nombres (RSA) ou
le problème du logarithme dis ret dans un groupe y lique (El Gamal, ECC).
Elle dépend de la taille des nombres impliqués dans es ryptosystèmes.
Pour RSA, on onsidère un nombre N, produit de deux grands nombres premiers p et q.
La taille de N est de l'ordre du millier de bits (2048 bits, 4096 bits).
En e qui on erne le ryptosystème El Gamal, les al uls sont réalisés dans un orps ni
GF (p) = Z/pZ où p est un nombre premier dont la taille est également de l'ordre du
millier de bits.
Enn, dans le ryptosystème ECC, les al uls sont également ee tués dans GF (p) où p
est un nombre premier de taille inférieure, de l'ordre de 160 bits à 256 bits.
La stru ture ommune dans laquelle sont ee tués les al uls est un anneau quotient noté
(Z/NZ, +, ×). L'opération de multipli ation dans ette stru ture est la multipli ation
modulo N.
Dans es proto oles, l'utilisation de la multipli ation modulaire est intensive. Les perfor-
man es obtenues reposent en grande partie sur :
Problématiques d'implémentation
Lorsqu'il s'agit d'implémenter une opération dans un matériel donné, les exigen es sont
fortes. En parti ulier, il faut que l'implémentation utilise le moins de ressour es matérielles
possible an de limiter les oûts de fabri ation, que la onsommation éle trique soit faible
et que le temps d'exé ution soit ourt.
Ce i est parti ulièrement vrai dans un ontexte industriel où il faut être ompétitif à
moindre oût.
Il est lair que minimiser tous es paramètres n'est pas hose aisée. Généralement, un gain
en temps d'exé ution se paie par un sur oût matériel. Ré iproquement, un gain matériel
onduit à un temps d'exé ution plus long.
On parle alors de ompromis à trouver entre le temps d'exé ution et la surfa e né essaire
à l'implémentation.
4
A défaut de minimiser toutes es quantités, nous her hons à obtenir le meilleur ompromis
temps-surfa e dans un environnement de ontraintes données.
En améliorant le ompromis temps-surfa e, on obtient à surfa e équivalente un meilleur
temps d'exé ution. De même, à temps d'exé ution égaux, on obtient une diminution de
la surfa e.
Si le ompromis temps-surfa e est amélioré en her hant à minimiser la surfa e, alors en
revenant à la surfa e initiale (si la te hnologie utilisée le permet), le temps d'exé ution
est plus ourt.
L'étude algorithmique est une étape importante pour l'implémentation. Cependant ette
étude n'est pas susante, il faut prendre en ompte un ertain nombre de ontraintes.
Parmi elles- i, il y a les ontraintes matérielles :
la te hnologie utilisée (ASIC, FPGA)
la fréquen e imposée ou dépendante de la te hnologie utilisée
la surfa e disponible
bibliothèques des fondeurs, outils de synthèse
Et des ontraintes dépendant des fon tionnalités exigées dans le ahier des harges parmi
lesquelles :
le temps d'exé ution souhaité
le débit des données
l'ar hite ture doit être résistante aux attaques par anaux a hés : timing-atta k, SPA
(Simple Power Analysis), DPA (Dierential Power Analysis)
l'ar hite ture doit être réutilisable sans modi ation matérielle si la taille des données
augmente
Parmi elles- i, on s'intéresse à une implémentation sur ible ASIC. L'ar hite ture déve-
loppée doit être réutilisable sans modi ation pour diérentes tailles de N.
De nombreuses implémentations de la multipli ation modulaires existent : [64℄, [31℄, [47℄,
[19℄, [35℄, [67℄, [36℄, [25℄, [13℄, [49℄, [48℄, [51℄, [33℄, [50℄, [30℄ . . .
Comparer obje tivement es implémentations est une tâ he di ile et l'est d'autant plus
que les ontraintes sont nombreuses et variées. Ces implémentations n'utilisent pas toutes
la même te hnologie, la même surfa e ou en ore n'ont pas les mêmes fon tionnalités, 'est
pourquoi nous nous atta herons à omparer les ar hite tures ayant les mêmes fon tion-
nalités et des ontraintes matérielles voisines.
Plan du do ument
Dans un premier temps (partie I), une étude est réalisée an de hoisir l'algorithme adé-
quat pour l'implémentation de la multipli ation modulaire.
Dans ette partie, le hapitre 1 est onsa ré aux diérentes représentations des nombres
et montre la réper ussion du hoix d'une représentation sur l'e a ité d'un algorithme.
Le hapitre 2 présente les outils permettant d'évaluer les algorithmes et montre que la
omplexité asymptotique ne sut pas lorsque on souhaite implémenter un algorithme.
Le hapitre 3 est onsa ré à la multipli ation modulaire et à sa réalisation algorithmique.
5
Après l'étude des diérentes te hniques de multipli ation et de rédu tion modulaire, nous
montrons pour quelles raisons notre hoix se porte sur un algorithme de multipli ation
modulaire de Montgomery pour l'implémentation. Cet algorithme est alors étudié en dé-
tail et généralisé.
L'algorithme de Montgomery est utilisé en représentation de Montgomery an de laisser
ette représentation stable par multipli ation modulaire de Montgomery. Nous générali-
sons l'utilisation de ette représentation et proposons une amélioration de la onversion
entre ette représentation et la représentation lassique en n de hapitre.
Dans la partie III, nous présentons trois améliorations et utilisations de l'ar hite ture.
Le hapitre 8 montre qu'il est possible de réduire un nombre de 2n + 2 hires modulo
un nombre de n hires en ee tuant trois appels à l'ar hite ture proposée en partie ??.
Toutefois, l'ordre dans lequel doivent être introduits les données dans l'ar hite ture est
important.
Dans le hapitre 9, nous montrons omment mettre en pla e une ontre-mesure additive
au niveau des données pour un faible sur oût matériel et une légère augmentation du
temps de al ul.
Enn, dans le hapitre 10, une amélioration signi ative du ompromis temps-surfa e de
notre ar hite ture est présenté.
sont présentées. L'intérêt théorique est d'obtenir un algorithme de multipli ation modu-
laire sub-quadratique en O(n log(n)). En revan he, e résultat est di ilement exploitable
dans l'optique d'une réalisation pratique de la multipli ation modulaire.
Première partie
Étude algorithmique
7
Chapitre 1
Opérations arithmétiques et
représentations des entiers
Une dénition d'un algorithme donnée dans [56℄ est la suivante : "Un algorithme est
une suite d'a tions, plus ou moins élémentaires, qui permet de résoudre, pas à pas, un
problème posé, en un temps ni."
La notion d'opération élémentaire sous-entend d'avoir déni une représentation des en-
tiers.
Il y a de nombreuses façons de représenter les entiers qui onduisent, pour un algorithme
donné, à des performan es variées.
9
10 Chapitre 1. Opérations arithmétiques et représentations des entiers
Remarque 1.
Il est possible de se passer du fait que A soit non nul. Dans e as, nous perdons l'uni ité
de la dé omposition en base r.
En revan he l'é riture de ertains algorithmes en est fa ilitée. Les opérandes peuvent avoir
′ ′
la même longueur quitte à rajouter un nombre susant de 0 au niveau des poids forts.
La dénition de la longueur de A devient alors : |A| = max{i ∈ N | ai 6= 0}
Dans la suite, nous optons pour ette solution.
La représentation en numération de position est parfaitement adaptée pour ee tuer les
al uls dans notre vie ourante.
En revan he, pour une ma hine et en fon tion des opérations à ee tuer, ette représen-
tation peut avoir des limites.
Pour illustrer e i, un bon exemple est l'opération d'addition dont l'algorithme lassique
est présenté i-après.
Du point de vue d'un opérateur humain, les al uls sont fait séquentiellement dans un
ertain ordre. Le fait de les faire des poids faibles vers les poids fort (à ause de la déter-
mination des retenues) n'est don pas une ontrainte importante pour lui.
1.2. Représentations redondantes 11
Pour une ma hine ou un ir uit par ontre ela peut poser un problème. En parti ulier,
si la ma hine possède plusieurs opérateurs élémentaires tels que le ième opérateur réalise
l'opération élémentaire ai + bi + c, on parle d'additionneur parallèle. Dans e as, l'ad-
ditionneur parallèle reçoit simultanément tous les hires des opérandes et le temps de
al ul dépend de la valeur des entrées. Si la retenue se propage de bout en bout de l'addi-
tionneur parallèle, le temps de al ul est le pire temps et est proportionnel à la longueur
des opérandes.
Ces représentations ont en ommun la parti ularité remarquable de proposer des algo-
rithmes d'addition dans lesquels, à haque itération, la retenue déterminée ne dépend que
des paramètres de l'itération ourante et pas de la retenue pré édente.
La propagation de la retenue est don limitée. Sous es représentations, les additions sont
don très rapides.
La plus utilisée est la représentation à retenue onservée ( arry save ). Les entiers en
base 2 sont représentés en utilisant les hires 0, 1 et 2.
Cha un de es hires est représenté par deux bits dont il est la somme.
Par exemple, (1, 0)(0, 1)(1, 1)(0, 0) en notation arry-save, représente le nombre 16 =
(1 + 0) × 2 + (0 + 1) × 22 + (1 + 1) × 21 + (0 + 0) × 20 .
3
Une addition en représentation arry save est ee tuée en prenant une entrée en repré-
sentation arry save et l'autre entrée en représentation de position en base 2.
Le résultat de ette addition est en représentation arry save et peut être réutilisé pour
une nouvelle addition sans qu'il y ait besoin d'ee tuer de onversion entre les repré-
sentations.
12 Chapitre 1. Opérations arithmétiques et représentations des entiers
Une variante de ette méthode est la méthode borrow save , les entiers en base 2 sont
ette fois représentés en utilisant les hires 0, 1 et −1.
Chaque hire est représenté par deux bits dont il est la diéren e.
Par exemple, (1, 0)(0, 1)(1, 1)(0, 0) en notation borrow-save, représente le nombre 4=
(1 − 0) × 2 + (0 − 1) × 22 + (1 − 1) × 21 + (0 − 0) × 20 .
3
Les opérations de multipli ation et d'addition dans l'anneau produit sont parti ulièrement
intéressantes puisque elles sont dénies omposante par omposante.
Du point de vue d'une implémentation, ela signie que les additions et les multipli a-
tions peuvent être exé utées simultanément et indépendamment sur plusieurs omposants.
Pour ette raison, il est important de her her des isomorphismes d'anneaux dont l'image
est un anneau produit.
Remarque 2.
Le théorème Chinois s'énon e dans un adre plus général dans tout anneau prin ipal onte-
nant des éléments premiers deux à deux. Nous restreignons son énon é à Z qui est l'anneau
qui nous intéresse dans ette thèse.
Cette représentation semble don prometteuse dans une optique d'implémentation d'algo-
rithmes de ryptographie asymétrique qui utilisent massivement les opérations d'addition
et de multipli ation.
Cependant, les opérations de division et de omparaison sous ette représentation sont
très oûteuses et il faut ee tuer des onversions, également oûteuses, entre les représen-
tations [28℄.
de Z[X] de degré n.
Le produit de P (X) par Q(X) est un polynme R(X) de Z[X] de degré 2n dont les
oe ients sont donnés par :
X
ri = pj qi−j pour 0 ≤ i ≤ 2n
j≤i
2n+1
Les oe ients du polynme produit forment don un (2n + 1)-uplet de Z qui est le
n+1
produit de onvolution dis ret des éléments de Z : (p0 , . . . , pn ) et (q0 , . . . , qn ).
Les représentations polynomiales sont très intéressantes puisque elles sont à la base d'une
grande famille d'algorithmes de multipli ation par évaluation-interpolation (multipli ation
de Karatsuba, multipli ation de Toom-Cook, multipli ation par transformée de Fourier).
Chapitre 2
Complexité algorithmique
Il est évident qu'évaluer un algorithme par son temps d'exé ution sur une ma hine donnée
dépend d'un grand nombre de fa teurs autres que l'algorithme lui même. En parti ulier,
on peut iter la qualité du ode assembleur retourné par le ompilateur et la vitesse d'exé-
ution de la ma hine.
Il onvient don de donner une analyse de l'algorithme qui soit indépendante des fa teurs
matériels. Donald Knuth [45℄ fut un des premiers à systématiser e genre d'analyse.
Pour évaluer la omplexité d'un algorithme, il faut hoisir une unité de mesure. Cette
unité de mesure est le nombre d'opérations élémentaires. Elle est fon tion de la taille des
données et peut également dépendre de la valeur des données.
15
16 Chapitre 2. Complexité algorithmique
Nombre d'opérations
élémentaires (en millier)
t 7−→ 125t2
3.0 t 7−→ t3
2.5
2.0
1.5
1.0
0.5
0
t
0 25 50 75 100 125 150
Taille des opérandes
(Nombre de hires)
n
d'opérations élémentaires (an t + · · · + a1 t + a0 ), on retient omme oût de l'algorithme,
seulement le terme de plus haut degré de e polynme.
Selon les notations de Landau, on dira que l'algorithme a un oût en O(tn ).
Du point de vue de la omplexité asymptotique, tous les algorithmes ayant un oût s'ex-
primant sous la forme d'un polynme de degré n en la taille des données, sont équivalents.
D'un point de vue pratique, 'est à dire quand les tailles des données manipulées sont
onnues et qu'on veut par exemple implémenter un algorithme parti ulier sur une taille
donnée, l'évaluation asymptotique d'un algorithme a des limites.
3
En eet, si un algorithme en O(t ) est asymptotiquement moins bon qu'un algorithme en
2
O(t ), il est important de s'intéresser à e que a he la notation O . On parle alors de seuil
d'e a ité.
2
Par exemple, entre un algorithme qui né essite 125t opérations et un algorithme qui
3 3
né essite t opérations, il sera plus intéressant d'utiliser l'algorithme de oût t que l'al-
2
gorithme de oût 125t pour des valeurs de t inférieures à 125, même si l'algorithme en
2
O(t ) sera for ément meilleur à partir de ette taille.
Dans notre exemple, la valeur du seuil peut sembler petite. En ore une fois, tout dépend
de la représentation de nombre hoisie et, dans e as pré is, de la base utilisée. Si elle- i
3 2
est la base 2, l'algorithme en O(t ) sera plus e a e que elui en O(t ) pour des nombres
de 125 bits ou plus. En revan he si la base utilisée est le mot ma hine (32 bits ou 64
bits) le seuil est alors beau oup plus élevé : 4000 ou 8000 bits, e qui peut rendre er-
tains algortihmes, pourtant asymptotiquement meilleurs, omplètement ine a es pour
des appli ations pratiques.
Pour plus de pré isions sur les seuils d'e a ité des prin ipaux algorithmes de multipli-
ation, on pourra onsulter la do umentation de la bibilothèque GMP [63℄.
2.3. Compromis temps-surfa e 17
D'un point de vue industriel, on her he à minimiser les oûts de fabri ation tout en
onservant un temps d'exé ution satisfaisant. La surfa e matérielle est don un paramètre
très important dans le hoix ou le développement d'une solution matérielle.
Idéalement, il faudrait réussir à minimiser simultanément le temps d'exé ution et la surfa e
matérielle e qui n'est malheureusement pas possible : une rédu tion du temps de al ul
impliquant souvent une augmentation de la surfa e matérielle.
Par exemple, si on doit exé uter n al uls indépendants, il est possible de les exé uter
su essivement sur un unique opérateur matériel. En revan he, si on her he à obtenir
un temps d'exé ution rapide, il est possible de réaliser les al uls simultanément sur n
opérateurs matériels.
Dans le premier as, on parle de omplexité en temps (le temps d'exé ution dépend du
nombre de al uls à ee tuer), dans le deuxième as de omplexité en surfa e (la surfa e
matérielle dépend du nombre de al uls à ee tuer).
Il s'agit alors de trouver le meilleur ompromis possible en fon tion de la te hnologie uti-
lisée, entre la surfa e matérielle disponible et le temps d'exé ution.
Il onvient don de proposer une famille de solutions pouvant s'adapter à diverses ontraintes
matérielles.
18 Chapitre 2. Complexité algorithmique
Chapitre 3
La multipli ation modulaire
La multipli ation modulaire est l'opération de base de la ryptographie asymétrique (RSA,
ECDSA, proto ole d'é hange de lé de Die-Hellman, . . .). Ce hapitre est onsa ré en-
tièrement à ette opération et à sa réalisation algorithmique.
Les référen es qui traitent de l'étude des algorithmes d'addition, de multipli ation, de
division, sont très nombreuses. Aussi, nous présentons sommairement es algorithmes et
donnons les référen es adéquates qui les étudient en détail.
A travers l'étude des méthodes de multipli ation modulaire, nous verrons quels algo-
rithmes sont souhaitables dans l'optique d'une implémentation matérielle.
Remarque 5.
L'anneau quotient Z/NZ est l'ensemble des lasses d'équivalen e pour la relation de
ongruen e modulo N.
Si l'abus de langage onsistant à onfondre la lasse d'équivalen e ave son représentant
anonique est ommunément admis, il est souhaitable dans ertains as de onsidérer un
autre représentant.
Par exemple, la lasse d'un entier x (notée x) est un élément de Z/NZ déni par :
x = {x + k × N | k ∈ Z}.
Le représentant anonique est l'unique élément de la lasse ompris entre 0 et N − 1. Un
autre représentant est obtenu en additionnant un multiple de N au représentant anonique.
19
20 Chapitre 3. La multipli ation modulaire
Pour haque i, on al ule les produits partiels ai B que l'on somme au fur et à mesure à
haque itération.
Cette opération né essite n2 multipli ations élémentaires et 2n2 additions. La multipli a-
tion s olaire a don un oût quadratique en la taille des données.
Knuth dans [45℄ pose la question de savoir si haque algorithme de multipli ation demande
un temps d'exé ution proportionnel à n2 lorsque n augmente.
La réponse est non et de plus, pour tout ε > 0, il existe un algorithme de multipli ation
1+ε
de deux nombres de n hires en base r qui a une omplexité en O(n ).
Autrement dit, il existe un algorithme de multipli ation de deux entiers représentés en
numération de position, ave une omplexité asymptotique quasi-linéaire en la taille des
opérandes.
Ce résultat n'a malheureusement qu'un (faible [45℄) intérêt théorique.
La onstante mis en jeu dans la notation de Landau roît rapidement lorsque ε diminue.
3.1. Multipli ation 21
k
X l
X
i
A(X) = Ai X et B(X) = Bi X i
i=0 i=0
k+l
X X
P (X) = Pi X i ave Pi = Aj Bm
i=0 j+m=i
Ainsi, supposons que nous ayons hoisi x0 , x1 ,. . ., xk+l points, la résolution du système
linéaire suivant déterminera le polynme produit P.
P0 + x0 P1 + · · · + x0k+l Pk+l = A(x0 )B(x0 )
P0 + x1 P1 + · · · + x1k+l Pk+l = A(x1 )B(x1 )
.
.
.
P0 + xi P1 + · · · + xik+l Pk+l = A(xi )B(xi )
.
.
.
k+l
P0 + xk+l P1 + · · · + xk+l Pk+l = A(xk+l )B(xk+l )
2. les entiers A(xi ) et B(xi ) ne doivent pas être de taille trop élevée.
Ce prin ipe général permet de retrouver les méthodes bien onnues de multipli ation
ré ursive omme Karatsuba ou la méthode de Toom-Cook que nous rappelons i-après.
Remarque 6.
Quitte à rajouter au plus un 0 devant le hire de poids fort des opérandes, on peut
supposer que n est pair.
n
A priori, le al ul de AB = A0 B0 + (A1 B0 + A0 B1 )r 2 + A1 B1 r n né essite 4 multipli ations
de taille moitié e qui ne représente au un gain par rapport à la méthode lassique.
L'idée de Karatsuba est d'é rire AB de la manière suivante :
n
AB = A0 B0 + ((A0 + A1 )(B0 + B1 ) − A0 B0 − A1 B1 ) r 2 + A1 B1 r n
e qui né essite seulement 3 multipli ations au lieu de 4 et donne une omplexité asymp-
totique en O nlog2 (3) e qui est sub-quadratique (log2 (3) ≈ 1.585).
La méthode de Karatsuba est un as parti ulier du prin ipe général rappelé pré édem-
ment.
En eet, les polynmes onsidérés sont
A(X) = A0 + A1 X et B(X) = B0 + B1 X
Remarque 7.
P (X)
L'évaluation d'un polynme au point ∞ est en fait plus pré isément P (∞) = lim deg(P ) =
X→∞ X
Pdeg(P ) le terme de plus haut degré du polynme onsidéré.
La résolution (rendue triviale par le hoix des xi ) de e système, donne les oe ients de
P (X) :
P0 = A0 B0
P1 = (A0 + A1 )(B0 + B1 ) − A0 B0 − A1 B1
P2 = A1 B1
n n n n
Puis, le polynme P (X) est évalué en r2 et P (r 2 ) = A(r 2 )B(r 2 ) = AB .
Pour plus de détails sur l'algorithme ré ursif de Karatsuba ( as favorable où n est une
puissan e de 2), on pourra onsulter ave intérêt [69℄ dans lequel on trouve également
une estimation des seuils d'e a ité des prin ipaux algorithmes de multipli ation par
évaluation-interpolation par rapport à la méthode lassique.
A(X) = A0 + A1 X + A2 X 2 et B(X) = B0 + B1 X + B2 X 2
Remarque 8.
Dans [68℄, les auteurs présentent des hoix optimaux de points d'interpolation qui per-
mettent de minimiser le nombre d'opérations né essaires à l'inversion du système.
Dans [56℄, on trouve une des ription très omplète de la transformée de Fourier dis rète
et de son appli ation à la multipli ation de deux entiers.
3.2.1 La division
La division est sans doute l'algorithme de al ul multipré ision le plus ompliqué et le
plus oûteux en temps de al ul.
Pour j de 0 à n − t faire qj ← 0
Tant que A ≥ Br n−t faire qn−t ← qn−t + 1, A ← A − Br n−t
r
/* Si bt−1 ≥ 2 (normalisation du diviseur) ette étape est réalisée au plus une fois */
Pour i de n − 1 à t faire j k
ai r+ai−1
Si ai = bt−1 alors qi−t ← r − 1 sinon qi−t = bt−1
/* Estimation des quotients partiels */
Tant que qi−t (bt−1 r + bt−2 ) > ai r 2 + ai−1 r + ai−2 faire qi−t ← qi−t − 1
A ← A − qi−t Br i−t
i−t
Si A < 0 alors A ← A + Br et qi−t ← qi−t − 1
/* Corre tion de l'estimation */
R←A
Retourne (Q, R)
Dans la division, il faut déterminer des quotients partiels (les qi−t ). Cette opération élé-
mentaire est plus longue que la détermination des produits partiels dans l'algorithme de
multipli ation. Don , même si les algorithmes de multipli ation et de division ont la même
2
omplexité asymptotique en O(n ), le temps d'exé ution de l'algorithme de division est
supérieur à elui de la multipli ation.
D'un point de vue implémentation, même si la division n'est pas fréquemment appelée,
elle représente un temps de al ul très important pour la plupart des appli ations numé-
riques [9℄,[57℄.
En ryptographie asymétrique, un usage intensif de la rédu tion modulaire est né essaire,
il est alors globalement trop oûteux de réaliser ette rédu tion par division.
Nous n'entrerons pas plus dans les détails on ernant la division. De nombreux arti les
et rapports sont onsa rés à ette opération et à ses variantes (division exa te lorsque le
dividende est un multiple du diviseur, division ré ursive, division sans reste dans laquelle
on ne s'intéresse qu'au quotient, et . . .).
Pour plus de détails sur la division ou plus généralement sur le al ul multipré ision, on
pourra onsulter les référen es suivantes : [69℄, [60℄, [59℄ et [38℄.
26 Chapitre 3. La multipli ation modulaire
Des alternatives à la division ont été proposées, d'une part pour diminuer le temps de
al ul de l'algorithme lassique (voir [60℄), d'autre part pour permettre la su ession des
phases de multipli ation et de rédu tion modulaire sans perte de temps.
Le pré- al ul est relativement peu oûteux s'il y a un grand nombre de rédu tions modu-
laires à faire ave un même module, omme 'est le as pour l'exponentiation modulaire.
Approximation de Newton
La méthode de Newton est une méthode générale pour trouver la valeur appro hée d'une
solution d'une équation de type f (x) = 0 où f est une fon tion dénie et dérivable sur un
intervalle I, dont la dérivée ne s'annule pas.
La méthode est rappelée gure 3.1.
La méthode de Newton permet d'obtenir la solution de l'équation f (x) = 0 ave une
onvergen e quadratique. De plus, 'est une méthode auto- orre tri e, 'est à dire que le
nombre de hires exa ts double à haque itération.
Cette méthode peut être utilisée pour al uler l'inverse du diviseur N en onsidérant la
1
fon tion f (x) = − N . La suite ainsi obtenue est donnée par la relation de ré urren e :
x
2
xk+1 = 2xk − Nxk .
Au prix du al ul de l'inverse de N une fois pour toutes, toutes les rédu tions modulaires
d'une exponentiation modulaire peuvent don être faites au prix d'une multipli ation et
d'une soustra tion.
3.2. Rédu tion modulaire 27
y = f (x)
f (xk )
f (xk ) f (xk )
tan(αk ) = f ′ (xk ) = xk −xk+1 ⇒ xk+1 = xk − f ′ (xk )
f (xk+1 )
αk
xk+1 xk
d'exponentiation modulaire.
Les opérations restantes pour obtenir l'estimation du quotient sont alors des multipli a-
tions ainsi que des divisions triviales par une puissan e de la base de représentation. Ces
dernières reviennent à ee tuer des dé alages vers la partie de poids faible des opérandes.
Nous ne détaillons pas plus et algorithme dont les détails peuvent être trouvés dans [52℄.
En revan he, nous présentons rapidement l'idée générale de l'amélioration de l'algorithme
de Barret proposée par J.F. Dhem [27℄.
La méthode proposée permet d'aner l'estimation du quotient en rajoutant deux para-
28 Chapitre 3. La multipli ation modulaire
mètres α et β.
j k
P rn+α
r n+β N
Qe = α−β
r
Remarque 10.
On retrouve la méthode de Barret en prenant omme paramètres α=n et β = −1.
Une variante de l'algorithme de Barret a été proposée par J.J. Quisquater [61℄.
Dans ette variante, le quotient est dé oupé de la manière suivante :
P 2n+c
Q = n+c
2 N
n+c
P 2
et l'étape de rédu tion est P − n+c N.
2 N
| {z }
N′
′
Un nouveau module N est onsidéré qui a la parti ularité d'avoir c bits de poids fort
P
égaux à 1. Par suite, l'évaluation du quotient est triviale puisqu'il sut de lire les
2n+c
bits de poids forts de P .
′
Tous les al uls sont réalisés ave le module N et une dé-normalisation doit être ee tuée
à la n du pro essus d'exponentiation modulaire an de retrouver un résultat modulo N.
Pour plus de pré isions sur ette méthode et ses optimisations, on pourra onsulter la
thèse de J.F. Dhem [26℄, dans laquelle on trouve également une amélioration du al ul de
j k
2n+c
.
N
Méthode de Montgomery
La méthode de Montgomery est basée sur le même prin ipe général qui onsiste à pré-
al uler un inverse et rempla er les divisions par des divisions triviales qui sont de simples
dé alages.
Cependant, par rapport aux méthodes de Barret et Quisquater, le prin ipe est fonda-
mentalement diérent. Alors que elles- i sont basées sur une estimation du quotient à
partir des poids forts, la méthode de Montgomery est basée sur une identité de Bézout
qui renverse l'ordre dans lequel sont traités les opérandes. L'intérêt prin ipal est de
rendre l'estimation du quotient basée sur les poids faibles.
Ce i est parti ulièrement intéressant puisque ette appro he de poids faible est ompatible
3.2. Rédu tion modulaire 29
ave les additions et les multipli ations. L'estimation du quotient peut don être ee tuée
dès que la partie de poids faible est onnue.
Le prin ipe de ette rédu tion modulaire, introduit par P. Montgomery en 1985 [55℄, est
rappelé dans le théorème suivant.
P +M ×N
1. est un entier
R
P +M ×N
2. ≡ P × R−1 mod N
R
P +M ×N
3. < 2N
R
Remarque 11.
L'existen e de N′ est justiée par le fait que R et N sont premiers entre eux.
Preuve :
1.
P +M ×N mod R = P + (P × N ′ mod R) × N mod R
= P + P × (N ′ × N) mod R
= P + P × (−1 mod R) mod R
= 0 mod R
Ce i signie que R divise P +M ×N et montre le premier point.
P +M ×N
2. Pour le deuxième point, soit S l'entier .
R
Alors,
S ×R =P +M ×N
Don
S×R≡P mod N
Et omme R et N sont premiers entre eux
S ≡ P × R−1 mod N
P +M ×N NR + RN
< = 2N
R R
e qui a hève la preuve.
La rédu tion modulaire de Montgomery est parti ulière puisqu'elle ne donne pas une
−1
rédu tion de la forme P mod N mais une rédu tion ave un fa teur supplémentaire R .
Un al ul supplémentaire doit être ee tué pour supprimer ette quantité. Celui- i est
réalisé en multipliant P × R
−1
mod N par la quantité R2 mod N qui peut être pré-
al ulée une fois pour toutes.
Puis, le résultat de ette multipli ation peut être réduit selon la méthode de Montgomery,
pour donner :
(P × R−1 mod N) × (R2 mod N) × R−1 mod N ≡ P mod N
Le point 3. du dernier théorème montre qu'au plus une soustra tion par N doit être réa-
lisée pour avoir le représentant anonique (entre 0 et N − 1).
Cette méthode est parti ulièrement e a e si les divisions par R et opérations modulo R
sont triviales.
En représentation en numération de position, R est hoisi omme étant une puissan e de
la base de représentation. De e fait, les opérations de division par R onsistent en de
simples dé alages vers la partie de poids faible des opérandes.
Les opérations modulo R onsistent à lire uniquement la partie de poids faible du résul-
tat. Pour le al ul de M = P × N ′ mod R, il n'est don pas né essaire d'ee tuer la
multipli ation en totalité mais seulement la moitié des al uls an de déterminer la partie
de poids faible du résultat.
Par la suite, pour s'aran hir du problème du fa teur supplémentaire R−1 non souhaité,
nous verrons que la notion de représentation de Montgomery est parti ulièrement intéres-
sante pour le al ul de multipli ations modulaires su essives.
L'entrela ement des phases de multipli ation et de rédu tion modulaire est généralement
basé sur le s héma de Hörner.
3.3. Entrela ement 31
'est à dire
n−1
X
AB mod N = (ai B)r i mod N
i=0
= (. . . ((an−1 B mod N)r + an−2 B mod N)r + . . . )r + a0 B mod N
P (0) = 0
P (i) = P (i − 1)r + an−i B mod N
Justi ation :
Il est fa ile de montrer par ré urren e sur i que :
i−1
X
P (i) ≡ an−j−1 Br i−j−1 mod N
j=0
n−1
X
P (n) = an−j−1Br n−j−1 mod N = AB mod N
j=0
A haque itération, un produit partiel ai B est généré puis est ajouté au résultat pré é-
dent. Le tout est alors réduit modulo N e qui permet de maîtriser la taille des résultats
intermédiaires.
La rédu tion des produits partiels peut être ee tuée par une des méthodes de Barret,
Quisquater vues pré édemment.
Remarque 12.
A ause du fa teur R−1 , la méthode de rédu tion de Montgomery ne peut pas dire tement
être appliquée sur le s héma de Hörner. Nous traitons don séparément la multipli ation
modulaire de Montgomery.
32 Chapitre 3. La multipli ation modulaire
A ×m B = A × B × R−1 mod N
Représentation de Montgomery
La représentation de Montgomery peut être dénie en toute généralité.
A = AR mod N
Remarque 13.
1. Par opposition, on dit que A est en représentation lassique.
Proposition 1 (Stabilité).
La représentation de Montgomery est stable par :
Preuve :
Cette représentation est parti ulièrement intéressante pour les al uls né essitant une su -
ession de multipli ations modulaires et/ou d'additions modulaires.
Une onversion de la représentation lassique vers la représentation de Montgomery doit
être ee tuée au début d'un pro essus d'exponentiation modulaire, puis tous les al uls
peuvent être ee tués en représentation de Montgomery. Enn, une onversion de la re-
présentation de Montgomery vers la représentation lassique est né essaire à la n de
l'exponentiation modulaire.
Conversions
Les onversions entre représentation de Montgomery et représentation lassique peuvent
être ee tuées grâ e à des multipli ations de Montgomery.
Proposition 2 (Conversions).
Soit Γ = R2 mod N
Soit A un entier ompris entre 0 et N −1 et soit A son représentant de Montgomery.
A ×m Γ = A
A ×m 1 = A
Preuve :
A ×m Γ = A × R2 × R−1 mod N
1. = AR mod N
= A
A ×m 1 = (AR mod N) × 1 × R−1 mod N
2.
= A mod N
Les justi ations de la validité de et algorithme sont dé rites dans [52℄. Il nous semble
ependant intéressant de pré iser ertains points on ernant les étapes de et algorithme.
La détermination de mi est faite de sorte que ai B + mi N + S soit divisible par r.
Comme pré isé pré édemment, il n'est pas né essaire de faire la multipli ation (s0 +
ai b0 )N ′ dans sa totalité, mais uniquement de déterminer la partie de poids faible du
résultat. On parle de multipli ation partie-basse.
À haque itération, le résultat S est stri tement inférieur à 2N .
La majoration de ette étape est importante puisque elle- i indique la taille et la
représentation des résultats intermédiaires.
La soustra tion nale est présente pour assurer que la sortie soit omprise entre 0 et
N − 1.
Ce i peut paraître ane dotique mais est en fait ru ial. En eet, dans le as de al ul
de multipli ations modulaires su essives, il faut s'assurer que les sorties des multi-
pli ations modulaires puissent être réutilisées omme entrées pour les multipli ations
modulaires suivantes.
Ce i nous onduit à dénir la notion de ompatibilité entrées/sortie pour un algorithme.
Remarque 14.
La sortie S de l'algorithme 3.3.3 est inférieure à N. Elle est don représentable par n
hires en base r. En revan he lors des al uls intermédiaires, la quantité S est inférieure
à 2N − 1 et doit don être représentée par n+1 hires en base r.
Les majorations intermédiaires sont très importantes pour l'implémentation. Elles dé-
nissent l'espa e de mémoire né essaire pour le sto kage des variables intermédiaires. Nous
pré iserons dans la suite la taille de es quantités.
Ainsi, dans l'algorithme 3.3.3 (présenté dans [52℄), on peut répertorier les types d'opéra-
tion suivants :
1 multipli ation-addition partie basse
1 multipli ation partie-basse
2 multipli ations-additions
1 soustra tion
Se passer de soustra tion nale implique d'avoir une sortie omprise entre 0 et 2N − 1.
Or la sortie et les entrées doivent être ompatibles, il est don né essaire que les entrées
soient également omprises entre 0 et 2N − 1.
L'algorithme sans soustra tion nale présenté i-après est valide uniquement en rajoutant
la ondition r≥4 :
Remarque 15.
Les preuves par ré urren e étant assez simple, nous ne présentons que le passage de i à
i + 1. L'initialisation et l'hérédité étant triviales.
Validité de l'algorithme :
1. Variable intermédiaire :
Par ré urren e sur i, il est fa ile de montrer que S(i) < 3N , pour i ompris entre 0
etn:
ai B+mi N +S(i) (r−1)2N +(r−1)N +3N 3rN −3N +3N
S(i + 1) = r
< r
= r
= 3N
i−1
X
i
r S(i) ≡ aj Br j mod N , pour i ompris entre 0 et n
j=0
En eet,
i i ai B + mi N + S(i)
r S(i + 1) = r
r
i−1
X
i+1 i i
r S(i + 1) ≡ ai Br + mi Nr + aj Br j mod N
j=0
i
X
i+1
r S(i + 1) ≡ aj Br j mod N
j=0
Soit
S(n + 1) ≡ ABr −n−1 mod N
(b) Il reste à prouver que S(n + 1) < 2N .
On a vu que S(n) < 3N .
De plus, A < 2N don an ≤ 1 et à l'itération suivante,
2N + (r − 1)N + 3N (4 + r)N
S(n + 1) < = ≤ 2N puisque r≥4
r r
e qui a hève la preuve de la validité de l'algorithme.
3.3. Entrela ement 37
Remarque 16.
Si r < 4, la variable intermédiaire est représenté par un hire de plus.
Une itération supplémentaire est également né essaire pour que la sortie nale soit om-
prise entre 0 et 2N − 1.
Dans la suite, nous supposons que r ≥ 4, on parle alors d'algorithme de Montgomery en
grande base.
Algorithme 3.5: Multipli ation de Montgomery sans soustra tion nale simplié
(MMn S )
Validité de l'algorithme :
1. Variable intermédiaire :
Par ré urren e sur i, il est fa ile de montrer que S(i) ≤ (2r + 1)N − r , pour
0≤i≤n+1 :
mi N +S(i)
S(i + 1) = ai B + r
≤ (r − 1)(2N − 1) + (r−1)N +(2r+1)N
r
−r
i−1
X
i−1
r S(i) ≡ aj Br j mod N , pour i ompris entre 0 et n+1
j=0
En eet,
i−1 i−1 mi N + S(i)
r S(i + 1) = r ai B +
r
i−1
X
i i i−1
r S(i + 1) ≡ ai Br + mi Nr + aj Br j mod N
j=0
i
X
r i S(i + 1) ≡ aj Br j mod N
j=0
Don
S(n + 2) ≡ ABr −n−1 mod N
(b) Il reste à prouver que S(n + 2) < 2N .
On a vu que S(n) ≤ (2r + 1)N − r .
A l'itération suivante, B < 2N et A < 2N don an ≤ 1, d'où
≤ 2N − 1 + 3N − 1 = 5N − 2
Puis,
(r−1)N +5N −2
S(n + 2) ≤ r
(r+4)N −2
≤ r
< (r+4)N
r
≤ 2N puisque r≥4
La sortie est don bien ompatible ave les entrées, e qui a hève la preuve de
la validité de l'algorithme.
3.4. Étude approfondie - Généralisation 39
Dans l'algorithme MMn S (algorithme 3.3.4.0 page 37), il y a don deux types d'opéra-
tions, une multipli ation partie basse et deux multipli ations additions.
Nous pouvons remarquer que la rédu tion du nombre de type d'opération dans l'algo-
rithme onduit à une augmentation du nombre d'itérations dans l'algorithme ainsi qu'une
augmentation de la taille des données.
En revan he, d'un point de vue de l'implémentation matérielle, le séquen ement des opé-
rations est plus simple et les besoins matériels moins important.
Cet algorithme, retenu pour l'implémentation, sera étudié plus pré isément dans la se tion
suivante. Avant ela, nous proposons de généraliser la représentation de Montgomery.
Proposition 3.
Soit R la onstante de Montgomery asso iée à l'algorithme ModMul.
Soit A = AR mod N le représentant de Montgomery de A.
e =
A ModMul(A, Γ)
≡ A(R2 mod N)R−1 mod N
≡ AR mod N
≡ A mod N
Il existe don un entier jA tel que : e = A + jA N
A
e−A
jA N = A
e
A−A
L'uni ité est obtenue par onstru tion : jA = N
Deux as sont à onsidérer :
1. Si e ≤ N − 1,
A −N + 1 ≤ A
alors e − A ≤ N − 1.
Ce qui implique que jA = 0.
Remarque 18 (Stabilité).
Soit ModMul un algorithme de multipli ation de Montgomery.
La représentation de Montgomery algorithmique n'est pas stable par appel à ModMul.
C'est à dire que dans le as général,
g 6= ModMul(A,
AB e B)
e
En revan he, si e
A et e
B sont deux représentants de Montgomery algorithmiques, alors il
existe un unique entier naturel æAB tel que :
g = ModMul(A,
AB e B)
e + εN
Bien qu'il y ait perte de stabilité, les représentants de Montgomery algorithmiques sont
toujours ongrus à la représentation de Montgomery. Tous les al uls faits ave les repré-
sentants de Montgomery algorithmiques peuvent don être vus omme les al uls faits
en représentation de Montgomery ave le rajout d'un terme iN qui ne hange rien à la
ongruen e modulo N.
Remarque 19.
Il est très important de noter que le passage de la représentation de Montgomery algorith-
mique à la représentation lassique donne une ongruen e et non une égalité.
La onversion n'assure absolument pas le fait que e 1)
ModMul(A, est ompris entre 0 et
N − 1. Ce i dépend de l'algorithme utilisé.
Remarque 20.
Dans les implémentations, r est souvent une puissan e de 2. De e fait, la ondition r≥4
implique que les nombres onsidérés sont représentés par des hires odés au minimum
sur 2 bits.
L'algorithme généralisé est présenté i-après. Seules les onditions de majoration des en-
trées sont absentes e qui hange la taille de la variable intermédiaire S(·) et de la sortie
S mais pas la ongruen e modulo N obtenue en sortie.
42 Chapitre 3. La multipli ation modulaire
Remarque 21.
La multipli ation modulaire de Montgomery est ommutative. En revan he, dans l'algo-
rithme 3.4.3 on fait jouer un rle parti ulier à A puisque e sont ses hires que l'on
séquen e.
Dans la proposition qui suit, et ordre est important
Preuve :
3. Pour i entier ompris entre 1 et n, il est fa ile de montrer (par ré urren e sur i) que
:
(r i+1 − 1)(N − 1) + (r i − 1)N
S(i + 1) ≤
ri
En eet ai ≤ r − 1 et B ≤ N − 1 don ,
(r i+1 −1)(N −1)+(r i −1)N
(r − 1)N + ri
S(i + 2) ≤ (r − 1)(N − 1) +
r
r i+1 (r − 1)(N − 1) + r i (r − 1)N + (r i+1 − 1)(N − 1) + (r i − 1)N
≤
r i+1
(r − r )(N − 1) + (r − r i )N + (r i+1 − 1)(N − 1) + (r i − 1)N
i+2 i+1 i+1
≤
r i+1
(r i+2 − 1)(N − 1) + (r i+1 − 1)N
≤
r i+1
3.4. Étude approfondie - Généralisation 43
(r i + 1)N − 1
S(i + 1) =
ri
En eet, pour i ompris entre 1 et n, ai = 0 don
i
(r − 1)N + (r +1)N ri
−1
S(i + 2) ≤
r
r i (r − 1)N + (r i + 1)N − 1
≤
r i+1
(r i+1 + 1)N − 1
≤
r i+1
En parti ulier pour i = n,
N −1
S(n + 2) ≤ N +
r n+1
N −1
Et omme N < rn , <1
r n+1
Don S(n + 2) < N + 1 'est à dire, puisque S(n + 2) est entier :
S(n + 2) ≤ N
(b) Pour i de 1 à n + 1,
S(i) = rS(i + 1) − mi N
Et si S(i + 1) = N , alors S(i) = N
En eet,
S(i) = rS(i + 1) − mn+1 N
= (r − mn+1 )N
Comme mn+1 < r , S(i) > 0.
44 Chapitre 3. La multipli ation modulaire
Remarque 22.
Dans le 4.(a) de la preuve, on pourrait penser gagner une itération puisque : S(n + 1) ≤
N −1 n
N+ et N < r , don S(n + 1) ≤ N .
rn
Or l'intérêt de la multipli ation par 1 est de onvertir la représentation de Montgomery
en représentation lassique. Le problème qui se pose si on enlève la dernière itération, se
situe au niveau de la onstante de Montgomery.
En eet, le fa teur supplémentaire serait r −n au lieu de r −n−1, e qui n'est pas ompatible
ave la représentation de Montgomery liée à la onstante de Montgomery de l'algorithme
MMn Sg : R = r n+1.
En eet dans [19℄, T. Blum et C. Paar montrent que la onversion par ette méthode
donne une représentation lassique inférieure à N ave une probabilité élevée de 1 − R1 où
R désigne la onstante de Montgomery.
Puis dans [66℄, C.D. Walter montre que sous la ondition 2N < r m−1 , où m désigne
le nombre d'itérations dans l'algorithme utilisé, la multipli ation de Montgomery par 1
donne le bon résultat si et seulement si l'entrée de la multipli ation est diérente de N.
Dans [37℄, la ondition sur le module est améliorée par rapport au résultat de Walter.
Dans es arti les, l'algorithme de Montgomery sans soustra tion nale MMS est utilisé
en base r ≥ 4.
45
Chapitre 4
Algorithme et opérations élémentaires
La deuxième opération est utilisée deux fois dans le al ul de l'itération prin ipale :
ai B + mi Nr +S
1. Cal ul de T = mi Nr +S
2. Cal ul de S = ai B + T
Dans la première expression, il y a une division par r. Cette division est une division
exa te, 'est à dire que mi N + S est un multiple de r .
De plus, la division par r est en fait un simple dé alage d'un hire vers les hires de
poids faible de mi N + S puisque r est la base de numération.
L'opération xi Y + Z porte sur des nombres. Elle doit être détaillée en terme d'opérations
élémentaires sur les hires de Y et de Z.
47
48 Chapitre 4. Algorithme et opérations élémentaires
Dans les deux bou les qui suivent, P est une variable lo ale représentée par deux hires
en base r , P = (p0 , p1 )r , u(j) est un hire. (En pratique, u(j) est mis à jour à haque
itération dans une seule variable u. Le (j) permet de repérer l'étape à laquelle est utilisée
ette valeur.)
u(0) = 0
Pour j de 0 à n faire
P = ai bj + tj + u(j)
sj = p0
u(j + 1) = p1
sn+1 = u(n + 1)
Remarque 23.
Dans le λ ≤ r − 3 tel que bn ≤ λ. Alors pour l'itération n, on
as général, soit un entier
a P ≤ (r − 1)λ + 2(r − 1) = (λ + 1)r + r − λ − 2, don u(n + 1) ≤ λ + 1, 'est à dire
sn+1 ≤ λ + 1
En parti ulier i i bn ≤ 1 don P ≤ 2r + (r − 3), don u(n + 1) ≤ 2, 'est à dire sn+1 ≤ 2
mi N +S
Le al ul de T = r
est réalisé, au dé alage près, par le même type de bou le :
u(0) = 0
Pour j de 0 à n faire
P = mi Nj + sj + u(j)
tj−1 = p0
u(j + 1) = p1
tn = u(n + 1) + sn+1
Remarque 24.
Pour l'itération n, on a Nn = 0 don P ≤ 2(r − 1) = r + r − 2 don u(n + 1) ≤ 1 et don
tn ≤ (λ + 1) + 1 = λ + 2.
Dans le as parti ulier, où λ = 1, on obtient bn ≤ 3.
On voit i i l'importan e de la minoration de λ par r − 3 pour que tn < r et don que tn
soit un hire.
De plus, la minoration de la base r par 4 est également importante.
En eet, si r < 4, tn doit alors être représenté par deux hires en base r. Parler du
hire tn dans e as n'a don plus de sens.
L'opération élémentaire de plus bas-niveau est don une opération sur les hires des
opérandes, 'est l'opération :
P = xi yj + zj + u(j)
Nous avons déterminé deux types d'opérations élémentaires :
Ces deux opérations élémentaires ont une appro he hire de poids faible en tête .
Ce i rend leur séquen ement plus e a e, ar il n'y a pas de temps d'attente du résultat
omplet de l'une pour ee tuer l'autre omme nous allons le voir dans la partie 5.
50 Chapitre 4. Algorithme et opérations élémentaires
Chapitre 5
Opérateurs élémentaires
Comme xi , yj et zj sont onnus, nous suggérons d'ee tuer ette opération séparément et
d'ajouter u(j) dès que ette quantité est déterminée.
Cependant, le temps de al ul de l'opération xi yj + zj est quasiment le même que elui
de l'opération omplète.
Nous suggérons alors de pipeliner l'opération xi yj + zj et d'ajouter la quantité u(j) or-
respondante à mesure que les résultats de xi yj + zj sont disponibles.
Dénition 11 (Pipeline).
Un pipeline est une stru ture de type FIFO (First In First Out) onstitué de portes logiques
et de registres.
Un opérateur est dit pipeliné s'il peut être vu omme une FIFO.
La profondeur de pipeline d'un opérateur orrespond aux nombre de registres internes de
et opérateur (les registres servant au sto kage du résultat ne sont pas pris en ompte).
Exemple 1.
Ainsi un opérateur matériel de profondeur de pipeline 4 possède 4 registres internes sans
ompter les registres de résultat (voir la gure 5.1).
51
52 Chapitre 5. Opérateurs élémentaires
En revan he, il faut un ertain nombre de y les d'horloge avant que les premières sorties
soient a essibles. Ce nombre de y les, appelé laten e, dépend de la profondeur de pipe-
line du omposant.
Dès que la première sortie est déterminée, on parle de régime établi . En régime établi, une
nouvelle sortie est disponible à haque nouveau y le d'horloge.
Entrées R1 R2 Sortie
j xi yj zj R11 R10 R21 R20 p′1 p′0
0 9 5 1 0 0 0 0 0 0
1 9 4 9 − − 0 0 0 0
2 9 8 7 − − − − 0 0
3 9 7 8 − − − − 4 6
4 9 1 1 − − − − 4 5
0 0 0 − − − − 7 9
0 0 − − 7 1
0 0 1 0
Ainsi, le résultat de 9 × 5 + 1 = 46 est présent dans les registres de sortie p′1 et p′0 à la
ligne j = 3. Celui de 9 × 4 + 9 = 45 est présent dans es mêmes registres à la ligne j = 4,
et . . .
La première sortie signi ative ( orrespondant à l'entrée d'indi e j = 0), est un nombre
p′ = p′1 p′0 omprenant une partie de poids fort et une partie de poids faible.
Cette partie de poids fort doit être additionnée ave la partie de poids faible de la sortie
suivante. Cette addition peut provoquer une retenue qu'il faudra reporter à l'itération
suivante.
Exemple 3.
Entrées R1 R2 Sortie
j xi yj zj R11 R10 R21 R20 p′1 p′0 T emp carry p0
0 9 5 1 0 0 0 0 0 0 0 0 0
1 9 4 9 − − 0 0 0 0 0 0 0
2 9 8 7 − − − − 0 0 0 0 0
3 9 7 8 − − − − 4 6 0 0 0
4 9 1 1 − − − − 4 5 4 0 6
0 0 0 − − − − 7 9 4 0 9
0 0 0 0 0 − − 7 1 7 1 3
0 0 0 0 0 0 0 1 0 7 0 9
0 0 0 0 0 0 0 0 0 1 0 7
0 0 0 0 0 0 0 0 0 0 0 1
Ainsi, on trouve dans le registre p0 , les hires su xi Y + Z (9 ×
essifs du résultat de
17845 + 18791), hire de poids faible en tête : 9 × 17845 + 18791 = 179396
54 Chapitre 5. Opérateurs élémentaires
Cependant, plus la profondeur de pipeline est élevée, plus il faut de registres pour sauve-
garder les résultats intermédiaires et don plus le omposant de multipli ation-addition
sera oûteux en surfa e matérielle.
On retrouve i i le problème du ompromis temps-surfa e : ave une fréquen e élevée, il est
possible d'obtenir un temps d'exé ution rapide, mais il faut rajouter de la surfa e (sto-
kage des résultats intermédiaires). A l'opposé, si on est ontraint par la surfa e matérielle,
le omposant de multipli ation-addition sera plus petit mais la fréquen e d'utilisation sera
moins élevée ( e qui peut être intéressant si il y a des ontraintes de onsommation), le
temps d'exé ution sera don plus long.
Remarque 28.
La quantité u(j) n'apparaît pas expli itement ave ette méthode. u(j) orrespond en fait
à T emp + carry .
xi yj zj
b b b
Multiplieur-additionneur
pipeliné
b b
p′1 p′0
b
T emp
1 b b
Additionneur
1 b
carry p0
b
La gure 5.2 présente l'agen ement des deux omposants élémentaires suivant :
Multiplieur-additionneur pipeliné réalisant l'opération xi yj + zj
′
Additionneur réalisant l'opération p0 + T emp + carry = p0 + r × carry
b
On rappelle que b est le nombre de bits des hires : r = 2 . C'est aussi la taille du bus
des données d'un point de vue matériel.
5.2. Multipli ation partie basse : mi = s0 N ′ mod r 55
mi est déterminé en ee tuant une multipli ation partielle de s0 ( hire de poids faible
′
de S ) ave la onstante pré- al ulée une fois pour toute N . Seule la partie de poids faible
est retenue lors de ette multipli ation.
Cette opération a un temps d'exé ution plus long que elui d'une addition. Il est don
également suggéré de pipeliner ette opération.
Le temps d'exé ution de ette opération est plus ourt que elui de l'opération de multipli ation-
addition, il est raisonnable (et vérié en pratique) de supposer que la profondeur de pi-
peline de ette opération est inférieure à elle de l'opération de multipli ation-addition.
56 Chapitre 5. Opérateurs élémentaires
Chapitre 6
Des ription fon tionnelle de
l'ar hite ture matérielle
Rappelons ( f : remarque 26) qu'une addition supplémentaire est ee tuée dans la bou le
mi N +S
de al ul de T = .
r
Cette addition prend deux entrées (sur 1 bit et 2 bits respe tivement) et donne une sortie
sur 2 bits (on a montré que le résultat de ette addition est au plus égal à 3, représentable
par 2 bits).
Il faut don prévoir quelques portes logiques supplémentaires pour réaliser ette opéra-
tion.
Cette addition étant réalisée très rapidement par rapport à une addition sur des hires
en grande base, il n'est pas né essaire de prévoir un registre supplémentaire pour sauve-
garder le résultat.
Les deux bou les qui séquen ent l'opération élémentaire P ← xi yj + zj + c sont similaires,
à un dé alage d'indi e près orrespondant à la division par r .
Ce dé alage dans l'ar hite ture, est modélisé par le saut d'un registre. Ce registre, noté
Stab1 n'est pas utilisé pendant le dé alage (multipli ation T ← mi Nr +S ).
En revan he, dans la multipli ation S ← ai B + T , le hire sn+1 est déterminé à la n
de la bou le de al ul de ette multipli ation. Ce hire doit être sto ké jusqu'à la n de
la multipli ation ave dé alage puisqu'il est additionné ave tn à la n de ette se onde
bou le.
L'idée est don d'utiliser le registre Stab1 pour le sto kage de sn+1 pendant la multipli a-
tion ave dé alage.
57
58 Chapitre 6. Des ription fon tionnelle de l'ar hite ture matérielle
Une mémoire de type FIFO est également né essaire pour retarder les sorties an qu'elles
soient syn hronisées ave les entrées de la multipli ation modulaire suivante.
Enn, des multiplexeurs sont né essaires pour aiguiller les entrées et les sorties des om-
posants élémentaires en fon tion des étapes de l'algorithme. Leur rle et omportement
sont dé rits dans la partie traitant le séquen ement.
Fon tionnellement, le s héma de l'ar hite ture est présenté gure 6.1 :
ai bj nj
Sortie
b b b
b b b
0 1 0 1
mux1 mux1
b b
xi yj zj b
Multiplieur
-additionneur
pipeliné
b b
p′1 p′0
b
0 Temp
1 1
0 1 b b
mux2 1
FIFO
Additionneur
1 b
carry p0
n′ = −n−1
0 mod r b
b b
2 1 mux3
0 1
Add
Multiplieur 2
1 0
b mux2
b
mi nrebm Stab1 nreb mux3
i
1 0
1 0 b b
b
b mux2
Fig. 6.1 Des ription fon tionnelle de l'ar hite ture matérielle
Remarque 29.
Les doubles barres // pla ées au niveau du mux2 sous le registre Stab1 symbolisent le fait
que sur les b bits du registre Stab1 , on ne onserve que les 2 bits de poids faible. Ce i sert
notamment pour l'addition sn+1 + tn où seulement les deux bits de poids faible du ontenu
de Stab1 sont né essaires.
Pour le mux2 au dessus de Stab1, 'est le ontraire. On étend les 2 bits du résultat de
l'addition sn+1 + tn , à une taille de b bits ave b − 2 zéros pour les poids forts et les deux
bits du résultat de l'addition pour les poids faibles.
6.2. Paramètres de syn hronisation 59
Remarque 30.
Les variables nrebmi et nreb sont dénies dans la partie 6.2.
Dénition 13.
On note ρa , la profondeur de pipeline du multiplieur-additionneur et ρb elle du multiplieur
partie basse.
1. La longueur des données est plus ourte que le nombre de y les né essaires à l'ob-
tention d'une sortie.
Dans e as, toutes les entrées auront été introduites avant que la première sortie
ne soit disponible.
Or ette sortie est né essaire pour que le al ul suivant puisse avoir lieu. Il faut don
retarder les entrées suivantes an qu'elles soient syn hronisées ave ette sortie.
Nous modélisons es oups d'attente par le rajout d'un ertain nombre de '0' sur les
poids faibles des nouvelles entrées.
Ce as n'est évidemment pas favorable puisque il y a un ertain nombre de y les
pendant lesquels le multiplieur fait des al uls inutiles.
2. Au ontraire, lorsque la longueur des données est plus grande que le nombre de
y les né essaires à l'obtention d'une sortie, il faut retarder les sorties an qu'elles
soient syn hronisées ave les entrées suivantes.
C'est le rle de la mémoire de type FIFO.
An de pouvoir réaliser une multipli ation modulaire de taille quel onque ave la des rip-
tion de l'ar hite ture faite pré édemment, il faut introduire des variables ( oups d'attente,
rebou lages ou nombre d'espa es mémoires né essaires pour retarder les sorties) pour
syn hroniser les sorties d'une multipli ation-addition ave les entrées de la multipli ation-
addition suivante. Ces variables sont fon tions des onstantes liées à l'ar hite ture maté-
rielle (ρa , ρb ) d'une part et de la longueur des données n qui est variable d'autre part.
Preuve :
Le nombre de y les é oulés entre l'introdu tion de b0 dans le multiplieur-additionneur et
la présen e de la sortie orrespondante dans le registre Stab1 est onstant quelque soit la
longueur des opérandes et est égal à ρa + 3.
D'autre part, il faut n+1 y les pour que tous les hires de B soient introduits dans
le multiplieur-additionneur. Ce i signie en parti ulier que la multipli ation-addition sui-
e
vante ne peut pas débuter avant le n + 2 y le.
mi N +S
La multipli ation-addition suivante (T ← ) peut débuter sous les deux onditions
r
suivantes :
mi doit être déterminé
s0 doit être déterminé et présent dans Stab1
mi est déterminé à partir de la valeur de s0 présente dans le registre s0 de l'additionneur
après ρa + 2 y les. mi est don présent dans le registre de sortie du multiplieur partie
basse après ρa + 2 + ρb + 1 = ρa + ρb + 3 y les.
Don il faut que ρa + ρb + 3 ≤ n + 1, 'est à dire ρa + ρb + 2 ≤ n.
ρa + ρb + 2 > n
Contrairement au as pré édent, mi n'est pas déterminé alors que tous les hires de
B sont entrés dans le multiplieur-additionneur. En revan he, s0 est déterminé puisque
s0 est né essaire au al ul de mi .
Il faut don retarder s0 du nombre de y les né essaires à la détermination de mi soit
ρb + 1.
Don nreg = ρb + 1.
Les autres valeurs des paramètres de syn hronisation sont obtenues de façon similaire.
Ces valeurs gurent dans le tableau i-après.
ρa + ρb + 2 ≤ n ρa + ρb + 2 > n
(⇒ ρa + 2 ≤ n) ρa + 2 ≤ n ρa + 2 > n
n′reg n − ρa − 2 n − ρa − 2 0
n′lat 0 0 ρa + 2 − n
nreg n − ρa − 1 ρb + 1
nlat 0 ρa + ρb + 2 − n
nrebmi n − ρa − ρb − 2 0
nreb n + nlat − 1 = n − 1 n + nlat − 1 = ρa + ρb + 1
Grâ e à es paramètres de syn hronisation, une multipli ation de Montgomery selon l'al-
gorithme MMn S est toujours réalisable quelque soit la taille du module. Seul le séquen e-
ment des opérations et la valeur des paramètres de syn hronisation hangent en fon tion
des tailles onsidérées.
Le seul fa teur limitant est l'espa e mémoire qui n'est pas illimité. Il faut don dénir une
taille maximale nmax de module pour dimensionner la FIFO.
La taille de la FIFO est toujours inférieure à la taille maximale du module.
La quantité exa te de mémoire né essaire dans ette FIFO est de (nmaxreg − 1) × b bits.
6.3. Séquen ement 63
Remarque 32.
Cette é riture de B n'est pas utilisée pour le premier al ul a0 B . En eet, elui- i n'attend
au un résultat pré édent : a0 B = a0 B + 0 et peut débuter puisque b0 est onnu.
Remarque 33.
N est représenté ave un hire de poids fort à 0. Ce i est dû au fait que dans la bou le
de al ul de T, on doit onsidérer Nn qui n'existe pas. On rajoute don formellement un
Nn nul pour rendre l'itération générique.
Le séquen ement tient ompte des paramètres de laten e. On utilisera don l'é riture de
B et N i-dessus.
L'algorithme de Montgomery utilisé est é rit omme le séquen ement de multipli ations-
additions et de multipli ation partie basse. Les paramètres de laten e sont dénis de
manière à pouvoir en haîner les deux types de multipli ation-addition : S ← ai B + T et
T ← mi Nr +S .
Outre le premier al ul S ← a0 B dans lequel B n'a pas de hires de laten e, l'algorithme
mi N +S
peut être vu omme le séquen ement du ouple d'opération T ← , S ← ai B + T
r
pris dans et ordre, i variant de 1 à n.
Justi ation :
mi N +S
L'itération de l'algorithme prin ipal onsiste à al uler :
r
S ← ai B +
Nous avons partagé ette itération en deux multipli ations additions :
mi N +S
T ←
r
S ← ai B + T
Lors de la première itération, T est al ulé ave S ontenant le résultat de l'opération
initiale a0 B .
Les n + 1 + nlat hires de N sont introduits en série, hire de poids faible en tête, dans
le multiplieur-additionneur.
64 Chapitre 6. Des ription fon tionnelle de l'ar hite ture matérielle
Les multiplexeurs ont plusieurs états qui sont ommandées par des signaux de ontrle
en fon tion des étapes de l'algorithme.
Nous introduisons une variable µ − code pour dé rire le omportement des multiplexeurs.
Cette variable µ − code permet de repérer fon tionnellement le numéro du oup d'hor-
loge onsidéré.
Par exemple, lorsque µ − code = 1, les données a0 et b0 sont présentées en entrée du
multiplieur-additionneur.
Proposition 7 (mux1).
Si µ − code
< n + 1, alors mux1 = 0
Si (µ − code − (n + 1) mod τn ) < n + 1 + nlat , alors mux1 = 1
Sinon :
Sinon mux1 = 0
Justi ation :
Initialement, mux1 est dans la position 0. Il reste dans ette position les n premiers y les
(1 ≤ µ − code ≤ n).
Remarque 34.
Lorsque ette addition est réalisée, la retenue de l'additionneur trois entrées est réinitialisée
à 0 puisque une nouvelle addition ommen e.
Ce i est fait par un signal de reset au niveau de l'additionneur.
Cette addition est réalisée une seule fois par itération prin ipale (bou le sur i dans l'al-
gorithme MMn S ). Elle est réalisée à la n de la multipli ation ave dé alage.
Ce i signie que mux2 n'est jamais deux fois de suite dans l'état 1 et qu'il est inutile de
onsidérer le as parti ulier de la première multipli ation a0 B .
Proposition 8 (mux2).
Si µ −
code < ρa + 2n + 4 + nlat , alors mux2 = 0
Si µ − code ≡ ρa + 2n + 4 + nlat mod τn , alors mux2 = 1
Sinon
Sinon mux2 = 0
Justi ation :
Le hire de poids faible (s0 ) du produit a0 × b0 est dans le registre de sortie de l'addi-
tionneur au y le µ − code = ρa + 3.
sn est don dans e même registre au y le µ − code = ρa + 3 + n. Comme sn orrespond
à l'entrée de a0 et bn , les entrées suivantes sont don les hires de N et m1 .
Or l'addition doit être réalisée lorsque tn−1 se trouve dans le registre de sortie de l'addi-
tionneur puisque à e moment on dispose de la bonne valeur de carry à ajouter à sn+1
pour déterminer tn .
mux2 doit don être dans l'état 1 lorsque tn−1 se trouve dans le registre de sortie de l'ad-
ditionneur, 'est à dire au oup d'horloge (ρa + 3 + n) + nlat + n + 1 = ρa + 2n + nlat + 4. (Il
ne faut pas oublier qu'ave le dé alage, tn−1 orrespond au al ul de m1 × (0 = Nn ) + sn ).
Le omportement général se déduit par périodi ité.
66 Chapitre 6. Des ription fon tionnelle de l'ar hite ture matérielle
Ce dé alage d'indi e est réalisé par le saut d'un registre. En eet, t0 est déterminé ave un
temps de retard par rapport à la multipli ation-addition lassique puisque il orrespond
au al ul de mi N1 + S1 et pas mi N0 + S0 .
De e fait, la valeur t0 ne doit pas passer dans le registre Stab1 an de rattraper le retard
dû au dé alage.
Proposition 9 (mux3).
Si µ − code
< ρa + n + 5, alors mux3 = 0
Si µ − code − (ρa + n + 5) mod τn < n + nlat , alors mux3 = 1
Sinon :
Sinon mux3 = 0
Justi ation :
Initialement, mux3 est dans l'état 0 (multipli ation lassique). Il passe à 1 lorsque sn+1
est dans le registre Stab1 . Or sn est dans p0 au y le ρa + 3 + n ( f : omportement de
mux2). Don sn+1 est dans e même registre au y le ρa + n + 4, et dans Stab1 au y le
suivant : ρa + n + 5.
Le dé alage intervient lorsque la donnée sn+1 est présente dans le registre Stab1 .
A et instant, le registre p0 de l'additionneur est, suivant la valeur de nlat , soit à 0 (si
nlat 6= 0), soit il ontient la valeur de t0 .
Ce dé alage doit être ee tué jusqu'à e que tn−1 soit déterminé.
En eet, lorsque tn−1 est dans le registre p0 de l'additionneur, alors au y le suivant, tn est
déterminé dans Stab1 par addition de u(n + 1) ave sn+1 , et tn−1 se trouve dans la FIFO.
Le dé alage prend alors n, les données tn−1 et tn étant de nouveau dans deux registres
su essifs.
mux3 reste don dans l'état 1 durant n + nlat y les.
Remarque 35.
Comme nous l'avons déjà dit, le dé alage orrespond au saut du registre Stab1 qui est
alors utilisé pour le rebou lage de sn+1 . Le rebou lage de sn+1 intervient don au même
moment que le dé alage. Don le hangement d'état de mux3 de 0 à 1 indique également
qu'il faut rebou ler la valeur sn+1 dans le registre Stab1 .
Ce rebou lage à lieu nreb fois, puis l'addition sn+1 + u(n + 1) est ee tuée pour déterminer
tn et le dé alage prend n.
On déduit don que n + nlat = nreb + 1.
6.3. Séquen ement 67
Cette remarque permet de dénir et de dé rire fa ilement la ommande de rebou lage reb.
Le omportement de reb est dé rit en même temps que elui de mux3 ( f : remarque 35).
On en déduit don :
Si µ − code < ρa + n + 5, alors reb = 0
Si µ − code − (ρa + n + 5) mod τn < nreb , alors reb = 1
Sinon :
Sinon reb = 0
La ommande rebmi indique à quel moment il faut rebou ler la valeur de mi dans le
registre de sortie du multiplieur partie basse.
Les deux états sont :
0 : pas de rebou lage
1 : rebou lage
Justi ation :
Initialement, rebmi = 0.
m1 est présent dans le registre de sortie du multiplieur partie basse à la n du y le
µ − code = ρa + ρb + 4. En eet, m1 est déterminé à l'aide de s0 qui est lui même présent
dans le registre p0 à la n du y le µ − code = ρa + 3 ( f : omportement de mux2). Il sert
don d'entrée au multiplieur partie basse qui donne le résultat après ρb + 1 y les, soit à
µ − code = ρa + ρb + 4.
Il faut rebou ler ette valeur à partir de e moment là, au moins n + 1 fois an que ette
entrée soit la même pour tous les hires de n. Il faut également tenir ompte de la va-
leur de nrebm qui est le nombre de rebou lages né essaires de m1 dans le as où m1 est
i
déterminé avant le par ours de tous les hires de B .
Le nombre de rebou lage total de m1 est don : n + 1 + nrebm .
i
Par périodi ité, on en déduit le omportement général de rebmi :
68 Chapitre 6. Des ription fon tionnelle de l'ar hite ture matérielle
Les résultats sur le séquen ement sont repris dans le tableau de synthèse suivant :
Si µ − code
< n + 1, alors mux1 = 0
mux1 Si (µ − code − (n + 1) mod τn ) < n + 1 + nlat , alors mux1 = 1
Sinon :
Sinon mux1 = 0
Si µ − code < ρa + 2n + 4 + nlat , alors mux2 = 0
mux2 Si µ − code ≡ ρa + 2n + 4 + nlat mod τn , alors mux2 = 1
Sinon
Sinon mux2 = 0
Si µ − code < ρa + n + 5, alors mux3 = 0
mux3 Si µ − code − (ρa + n + 5) mod τn < n + nlat , alors mux3 = 1
Sinon :
Sinon mux3 = 0
Si µ − code < ρa + n + 5, alors reb = 0
reb Si µ − code − (ρa + n + 5) mod τn < nreb , alors reb = 1
Sinon :
Sinon reb = 0
Si µ − code < ρa + n + 4, alors rebmi = 0
Sinon :
rebmi
Si µ − code − (ρa + n + 4) mod τn < n + 1 + nrebmi , alors rebmi = 1
Sinon rebmi = 0
Chapitre 7
Résultats - Comparaison ave l'art
antérieur
7.1 Résultats
L'implémentation que nous proposons est faite en toute généralité et peut répondre à
diverses ontraintes matérielles.
Le hoix de la taille du bus interne (b bits) et des profondeurs de pipeline ρa et ρb déter-
minent la taille et les performan es de l'ar hite ture (La FIFO n'est pas pris en ompte
i i puisque sa taille dépend de la taille maximale du module).
Un hoix de b faible onduira à une ar hite ture é onomique en nombre de portes logiques.
En revan he, omme r = 2b , le nombre n de hires du module sera élevé e qui implique
un temps d'exé ution important.
Une fois l'ar hite ture synthétisée et grâ e aux paramètres de syn hronisation et au sé-
quen ement orrespondant, une multipli ation modulaire de Montgomery est toujours
réalisable pourvu que l'espa e mémoire de la FIFO soit susamment grand par rapport
à la taille du module onsidéré.
Le séquen ement est alors entièrement déterminé en fon tion du seul paramètre n de la
taille du module.
Cette valeur s'obtient fa ilement. En eet, les paramètres de syn hronisation font qu'une
nouvelle entrée est introduite dans le multiplieur à haque y le (en in luant les éventuels
69
70 Chapitre 7. Résultats - Comparaison ave l'art antérieur
Remarque 36.
Le hire de poids faible de la sortie est disponible dès le y le : (n + 1)(2n + 2 + n′lat +
nlat ) + 1.
Cela est intéressant si on doit al uler plusieurs multipli ations modulaires su essives
2
omme 1.5n × log2 (r)
'est le as pour l'exponentiation modulaire : on é onomise environ
y les pour un exposant équilibré (50% de '0' et 50% de '1') de log2 (r) × n bits.
64
Par exemple, pour une exponentiation modulaire 1024 bits et une base r = 2 , ela
représente une é onomie de 12288 y les sur un total de plus de 276000 y les, soit une
é onomie d'un peu plus de 4% du temps de al ul.
7.1.2 Surfa e
Les omposants élémentaires ont été synthétisés pour une ible ASIC en te hnologie
0.35µm SMARTCARD ave une fréquen e d'utilisation visée de 50 MHz.
Les synthèses ont été ee tuées (Synopsys DC) pour des tailles de bus interne de 32 bits
et 64 bits, ainsi que pour plusieurs profondeurs de pipeline an de satisfaire la ontrainte
de fréquen e de 50 MHz qui nous était imposée.
Les fréquen es maximales sont obtenues pour diérentes profondeurs de pipeline. En ita-
lique, sont indiquées les fréquen es Maximale inférieure à 50 MHz qui ne sont pas admis-
sibles par rapport à la ontrainte xée.
Multiplieur-additionneur
32 3 74.25 ≈ 9K
4 91.06
pipeliné
2 33.72
b b 64 3 44.50 ≈ 31K
LSB MSB 4 54.21
7.2. Compromis Surfa e-Temps et omparaison ave l'art antérieur 71
pipeliné
1 29.5
64 2 41.91 ≈ 14K
b 3 55.03
LSB
Additionneur 3 entrées
X Y arry
Hors mémoire (FIFO), le oût en nombre de portes logiques dans la te hnologie utilisée
i i est d'environ 15 000 portes pour l'ar hite ture ave un bus interne de 32 bits (ρa = 2 et
ρb = 1) et 50 000 portes pour l'ar hite ture 64 bits (ρa = 4 et ρb = 3). (Il y a 6×b bas ules
1 bit à rajouter au nombre de portes pris par les omposants, e qui représente, pour les
bas ules, un total de 1200 portes environ pour l'ar hite ture 32 bits et 2400 portes pour
l'ar hite ture 64 bits).
De plus, toutes n'ont pas la même exibilité. Si la plupart des implémentations sont li-
mitées à traiter des tailles xes, d'autres au ontraire permettent de re evoir des données
de tailles variables.
Il n'est don pas toujours évident de trouver, parmi toutes les implémentations existantes,
elle qui onviendra le mieux à un environnement et des ontraintes matérielles donnés.
Plus di ile en ore, est de donner des omparaisons sur les performan es d'implémenta-
tions de es ar hite tures.
Le but de ette dernière se tion est de faire un tour d'horizon des types d'implémentations
existants et de voir quelles sont leurs performan es à la fois en temps d'exé ution et en
surfa e matérielle.
Nous montrerons ainsi que le ompromis temps-surfa e obtenu ave notre implémentation
est amélioré par rapport aux solutions existantes.
7.2.1 Préambule
Avant de ommen er, il faut noter qu'il est extrêmement di ile de omparer deux ar hi-
te tures. Bien souvent les ibles (FPGAs ou ASICs) ne sont pas les mêmes, les tailles de
bus interne et les fréquen e de fon tionnement dièrent d'une ar hite ture à une autre,
et la plupart du temps les fon tionnalités propres aux ar hite tures sont diérentes (peut
re evoir les modules de taille variable, supporte diérents type d'algorithmes, et . . .).
Ainsi nombreux sont les arti les qui présentent des implémentations de la multipli ation
modulaire seule et s'atta hent à omparer leur implémentation de ette opération à une
autre.
Il ressort de l'étude de es arti les que les moyens de omparaison ne se font pratiquement
que sur deux ritères (les plus important) : le temps mis pour ee tuer une multipli ation
modulaire et la surfa e o upée par le ir uit réalisant ette opération.
Ces deux quantités s'expriment respe tivement en µs ou en nombre de y les, et en
nombres de portes (Nand équivalent) ou nombre de ellule élémentaire (CLB, LE, LC)
selon la ible matérielle hoisie (ASIC ou FPGA).
de la retenue.
En août 2000, Johann Groÿs hädl propose une implémentation de la multipli ation mo-
dulaire ave l'algorithme de Barret [35℄. Son étude a donné naissan e à une ar hite ture
dédiée à la multipli ation modulaire : le RSAγ rypto hip.
Ses prin ipales ara téristiques sont un oeur omposé d'un multiplieur rapide 1056× 16
bits fon tionnant à une fréquen e de 200 MHz. Combiné aux te hniques de re odage de
Booth [20℄ et l'utilisation du CRT dans le as de l'exponentiation modulaire, ette ar hi-
te ture ore un temps d'exé ution très rapide : une multipli ation modulaire 1024 bits
est réalisée en 227 y les, soit 1.14µs à 200 MHz. Une exponentiation RSA 1024 bits est
alors réalisée en 1.75 ms à 200 MHz (exposant ave 50% de 1 et 50% de 0).
Cette rapidité d'exé ution se paye par un oût matériel important : l'ar hite ture o upe
2
une surfa e d'environ 70 mm de sili ium en te hnologie CMOS 0.6µm (environ 250000
portes logiques).
Le même auteur a présenté en mai 2001 une nouvelle ar hite ture toujours basée sur l'al-
gorithme de rédu tion modulaire de Barret, mais qui est ette fois uniée dans le sens
où ette ar hite ture peut traiter à la fois des multipli ations sur GF (p) ou sur G(2n ).
Cette implémentation utilise massivement des CSA (Carry Save Adder) pour limiter la
propagation de retenue lors du al ul d'additions de très grands nombres.
Ave ette nouvelle ar hite ture, une multipli ation sur GF (p) est réalisée en 1.5⌈log2 (p)⌉
m
y les (environ 1536 pour un nombre p de 1024 bits), et une multipli ation dans GF (2 )
est réalisée en m y les.
L'auteur prétend que ette ar hite ture est légèrement plus oûteuse en terme de res-
sour es matérielles que le multiplieur pré édent. Le problème de la limitation de l'ar hi-
te ture à une taille donnée est toujours présente.
On trouve très peu d'implémentations de la multipli ation modulaire utilisant ette re-
présentation.
En eet, dans e type d'ar hite ture il faut transmettre simultanément les hires d'un des
deux fa teurs à toutes les ellules parallèles ontenant les hires de l'autre fa teur, e qui
représente une harge importante et tend à augmenter la surfa e et diminuer la fréquen e.
Ainsi, la plupart des auteurs se sont rapidement tournés vers d'autres types d'ar hite -
tures, notamment les ar hite tures systoliques qui ombinées ave l'algorithme de Montgo-
mery orent une solution performante en terme de débit pour le al ul de la multipli ation
modulaire.
Pour repérer e phénomène, des modèles re tangulaires ont d'abord été proposés pour
réaliser une multipli ation modulaire. Une ligne pour haque itération, et autant de lignes
que né essaire pour réaliser la multipli ation modulaire.
De nombreuses ar hite tures systoliques ont été proposées dans la littérature s ientique.
Le hoix de la base est un point important puisque il onditionne la taille de la ellule
élémentaire ainsi que le nombre de ellules élémentaires que va omporter l'ar hite ture.
Le prin ipe général est dé rit dans de nombreux arti les traitant de la multipli ation mo-
dulaire systolique [64℄, [31℄, [47℄, [65℄, [62℄.
Dans l'algorithme de Montgomery, l'étape suivante (ou une de ses variantes) doit être
S(i)+ai B+mi N
implémentée : S(i + 1) ← .
r
Cette équation de traduit sur les bits (ou digits) de B , N et S par :
On remarque i i, les deux sens de propagation diérent : si la j eme ellule réalise ette
opération, S(i + 1)j−1 est transmis à la ellule pré édente et c(i)j+1 à la ellule suivante.
S(i)j in
Nj in bj in
mi out registre mi mi in
registre Nj registre bj
ai out registre ai ai in
Multiplieur Multiplieur
mi × N j ai × bj
Additionneur
c(i)j+1 out registre S(i)j S(i)j + mi Nj + ai bj + c(i)j
registre c(i)j c(i)j in
Le s héma 7.2 montre le âblage de es ellules élémentaires en ligne dans lequel on observe
les deux sens de propagation :
ai j + 1e ai je ai j − 1e ai
mi CE mi CE mi CE mi
Un problème de rendement est mis en éviden e par l'étude de l'utilisation des ellules,
une ellule n'est utilisée qu'un temps sur 2.
Dès 1993, C.D. Walter [64℄, [31℄ propose d'ee tuer une autre multipli ation pendant les
temps morts des ellules.
Ce i est réalisable si la deuxième multipli ation ne dépend pas de la première. Walter pré-
ise que lors du al ul d'une exponentiation modulaire de type RSA, un hoix judi ieux
de l'algorithme square and multiply permet de réaliser ette en haînement et d'utiliser
ainsi pleinement les ellules de l'ar hite ture.
Enn, ette méthode est intéressante pour le dé hirement RSA, ar l'utilisation du théo-
rème Chinois permet l'utilisation de deux exponentiations modulaires parallèles et peuvent
être réalisées en utilisant pleinement toutes les ellules, et e quelque soit l'algorithme d'ex-
ponentiation utilisé.
Une autre idée de Walter dans [67℄, est de supprimer un multiplieur de la ellule élémen-
taires, ainsi les deux multipli ations sont faites l'une après l'autre sur la même ellule. Les
avantages de ette méthode sont un gain matériel important (l'ar hite ture est environ
deux fois moins oûteuse en terme de ressour es matérielles) puisque l'additionneur de la
ellule est également plus petit.
Enn, une autre idée que l'on trouve dans [23℄, est d'insérer des al uls dans les temps
morts des ellules an de réduire leur nombre de moitié sans augmenter le nombre de
y les que prend une multipli ation modulaire.
Un autre problème, qui s'avère être dis riminatoire de plus en plus souvent, est le manque
de souplesse de es ar hite tures.
Elles sont en eet dénies pour une taille xe et ne peuvent pas traiter des al uls sur des
tailles plus grandes.
Les al uls sur des tailles plus petites pouvant évidemment toujours être fait sur es ar hi-
te tures systoliques mais ave un temps d'exé ution orrespondant à la taille pour laquelle
7.2. Compromis Surfa e-Temps et omparaison ave l'art antérieur 77
En e qui on erne les performan es en temps d'exé ution d'une multipli ation modulaire,
toutes les ar hite tures systoliques ont la même omplexité : une multipli ation modulaire
n
de taille n bits est réalisée en 3 −1 y les où w désigne la taille des hires des opérandes.
w
Il est à noter qu'une nouvelle multipli ation peut débuter dès que le hire de poids faible
n
du résultat est onnu, 'est à dire au bout de 2 y les, e i est parti ulièrement intéres-
w
sant lors de l'exponentiation modulaire.
n
En surfa e, le oût est elui de ellules élémentaires.
w
Dans les diérents arti les traitant du sujet, les performan es en temps sont ependant
variables.
Ce i est dû à plusieurs fa teurs déjà évoqués pré édemment : ible matérielle hoisie et
taille de la base de représentation.
Dans [67℄, Walter dis ute du hoix de ette base. Les avantages d'un hoix d'une base
32 64
élevée (r = 2 ou r = 2 ) sont, outre le faible nombre de y les né essaires au al ul
d'une multipli ation modulaire, le fait que es tailles orrespondent aux tailles employées
dans les pro esseurs a tuels. De e fait, les multiplieurs existants sur es bases, sont le
fruit d'années d'optimisation.
L'in onvénient majeur de e hoix de base est le oût matériel important que onstituent
64 multiplieurs 32×32-bits pour une multipli ation modulaire de taille 1024 bits.
Enn, Walter souligne qu'une ar hite ture systolique réalisée pour la base 2 est la plus
intéressante en terme de ressour es matérielles (un multiplieur est par exemple réduit à
une simple porte AND). Cependant le hoix d'une base légèrement plus grande ore un
meilleur ompromis temps-surfa e.
Ainsi, dans [18℄, la base r = 24 semble rendre optimal le ompromis temps-surfa e sur un
FPGA Xilinx XC4000 pour son implémentation la plus rapide.
Ave une fréquen e maximale de 63.7 MHz, une exponentiation RSA (sans utilisation du
CRT) est al ulée en 11.95 ms ave 6633 CLB (soit environ 496 y les pour une mul-
tipli ation modulaire 1024 bits) pour son ar hite ture la plus rapide, et 40.50 ms ave
4865 CLB (soit environ 1680 y les pour une multipli ation modulaire 1024 bits). Il est à
noter que la solution la plus rapide ore un bien meilleur ompromis temps-surfa e que
la deuxième solution.
Cependant le problème d'évolutivité de l'ar hite ture reste présent ave l'utilisation des
ar hite tures systoliques.
Ainsi, plus ré emment, des auteurs se sont inspirés de la version logi ielle de l'algorithme
de Montgomery an d'en dériver une implémentation hardware, non limitée à une taille
xée.
78 Chapitre 7. Résultats - Comparaison ave l'art antérieur
L'année suivante, au ours de la onféren e CHES'00, les mêmes auteurs et Erkay Sava³,
proposent à partir de l'ar hite ture pré édente, une ar hite ture uniée apable d'ee -
m
tuer des multipli ations à la fois sur GF (p) et GF (2 ) [48℄. Cette ar hite ture dière
de la pré édente par le hangement au niveau des additionneurs pouvant dans elle- i
supporter deux modes : le mode lassique ave retenue pour les additions entières, et le
mode addition parallèle sur les bits pour traiter l'addition dans GF (2m ). Ce i se fait au
détriment d'un léger sur oût matériel par rapport à l'ar hite ture pré édente. Les perfor-
man es ne sourent pas de es modi ations.
En 2001, lors de la onféren e CHES'01, Ten a, Koç, et Todorov [51℄, proposent une ver-
sion modiée de l'algorithme de Montgomery en par ourant l'opérande X non plus bit par
bit mais 3 bits par 3 bits. Ce i est ensé réduire le nombre de y les né essaires au al ul
d'une multipli ation modulaire. De plus la te hnique de re odage de Booth est utilisée
an de réduire le nombre d'opérations pour le al ul des produits partiels. Une ompa-
raison est faite ave la version pré édente (en base 2), et ette méthode n'est meilleure
qu'ave la te hnique de re odage de Booth. La ellule élémentaire étant plus omplexe,
un hemin ritique plus long et don une fréquen e maximale plus petite doit être utilisée.
Le nombre de y les est réduit mais la durée d'un y le étant plus long, le gain en temps
n'est pas signi atif. On peut faire le même type de remarque on ernant l'espa e o upé,
le nombre de ellules élémentaires est plus faible, mais la surfa e o upée par une ellule
élémentaire est plus importante.
De plus, Gaubatz [33℄ pré ise que le re odage de Booth est lié à la propagation de la
m
retenue, don ine a e pour une arithmétique sur GF (2 ), ette ar hite ture n'est don
pas intéressante dans l'optique d'une ar hite ture uniée omme elle présentée en [48℄.
7.2. Compromis Surfa e-Temps et omparaison ave l'art antérieur 79
Dans sa thèse [33℄, Gaubatz propose également une ar hite ture évolutive basée sur les
travaux de Koç et Ten a. Son ar hite ture est également uniée et ore de bonnes per-
forman es au vu des ar hite tures pré édentes. Par exemple pour une surfa e onstituée
d'environ 33000-34000 portes et une taille de mots de 32 bits, le nombre de y les pour
une multipli ation modulaire de 1024 bits est de 1183 y les, la fréquen e utilisée est
alors d'environ 30 MHz. Il est à noter que pour des tailles de mots supérieures à 16 bits,
les résultats donnés par Gaubatz sont des estimations. Il pré ise ependant que le taux
d'erreur de es estimations est inférieur à 3%.
Les ar hite tures évolutives sont don très intéressantes. Elles permettent de hoisir en
fon tion de ontraintes données, (nombre de portes maximal admissible, temps maximal
d'exé ution visé) la meilleure onguration possible lors de la synthèse. Mais leur plus
grand intérêt est de ne pas être limité à une seule taille d'opérandes. Ainsi, une ar hi-
te ture peut être onçue pour ee tuer majoritairement des al uls elliptiques (la plus
grande partie du temps de al ul étant ons rée à des multipli ations modulaires sur 256
bits), mais également des exponentiations modulaires de type RSA sur 1024 bits et e i
sans qu'il y ait besoin de modier l'ar hite ture existante.
Enn, les ar hite tures uniées, sont plus oûteuses en terme de surfa e, mais restent,
évidemment, plus intéressantes que deux ar hite tures séparées.
2. La solution proposée, une fois implémentée doit être apable de faire des al uls sur
des modules de taille variable.
Ces deux niveaux de exibilité, sont présents dans les ar hite tures proposées par Ten a,
Koç, Todorov et qui sont reprises par Gaubatz.
A notre onnaissan e, es ar hite tures orent le ompromis temps-surfa e le plus inté-
ressant parmi les ar hite tures satisfaisant les deux niveaux de exibilité i-dessus.
Nous proposons don de omparer le ompromis temps-surfa e que nous obtenons ave
elui de es ar hite tures.
Ainsi, les ar hite tures pour les bus 32 et 64 bits ont été synthétisées et des estimations
pour les bus 16 et 8 bits ont été faites à partir des résultats obtenus pour les bus 32 et 64
bits.
Nous donnons également une estimation pour une ar hite ture ayant un bus interne de
largeur 128 bits.
Le tableau suivant présente les résultats obtenus en terme de surfa e matérielle pour les
bus 8, 16, 32 et 64 bits.
Pour la omparaison, nous nous basons sur la synthèse qu'a ee tué Gunnar Gaubatz
[33℄. Les ar hite tures qu'il propose sont onstituées d'un ertain nombre de ellules élé-
mentaires pipelinées.
Plusieurs largeurs de bus interne sont onsidérées, et pour ha une d'entre elles, plusieurs
niveaux de pipeline de ellules élémentaires sont testés.
Il y a don des sauts sur le graphique en fon tion du nombre de ellules onsidérées.
En e qui on erne la ourbe obtenue pour notre ar hite ture (FB_256), les 4 points ob-
tenus (de gau he à droite) orrespondent aux 4 largeurs de bus utilisées : 8 bits, 16 bits,
32 bits et 64 bits respe tivement.
Les résultats sont présentés pour des tailles de module de 256 bits (gure 7.3) et 1024
bits (gure 7.4).
En é helle logarithmique, on onstate que le nombre de y les pour une multipli ation
modulaire dé roît linéairement en fon tion de la surfa e o upée.
Cependant, la ourbe présente une inexion lorsque la surfa e augmente. Ce i s'explique
64
par le fait qu'en base élevée (dans e as 2 ) le nombre de hires né essaires pour re-
présenter un entier de 256 bits est 4.
Nous sommes dans le as où le nombre de hires est petit devant les profondeurs de
pipeline, les paramètres de laten e sont don élevés et pénalisent le temps d'exé ution.
Les deux paramètres (largeur de bus et nombre de ellules élémentaires) des ar hite tures
de Gaubatz permettent d'obtenir un seuil plus élevé (en faisant varier le nombre de el-
lules) à partir duquel l'inexion se produit.
7.2. Compromis Surfa e-Temps et omparaison ave l'art antérieur 81
100
10
1 10 100 1000
Nombre de portes logiques (kG)
Fig. 7.3 Comparaison du ompromis temps-surfa e pour une multipli ation modulaire
256 bits
Mais dans la plupart des as, l'ar hite ture que nous obtenons ore un meilleur ompro-
mis temps-surfa e.
De plus, pour des nombres plus grands, le seuil à partir duquel l'inexion se produit pour
notre ar hite ture est plus grand. C'est e que l'on onstate sur la ourbe de ompromis
temps-surfa e pour une multipli ation modulaire de 1024 bits.
Dans e as, le ompromis obtenu est toujours meilleur que les ar hite tures de Gaubatz.
Ce résultat est présenté gure 7.4.
82 Chapitre 7. Résultats - Comparaison ave l'art antérieur
10000
Nombre de cycles
1000
100
1 10 100 1000
Nombre de portes logiques (kG)
Fig. 7.4 Comparaison du ompromis temps-surfa e pour une multipli ation modulaire
1024 bits
Troisième partie
Utilisations de l'ar hite ture et
améliorations
83
Chapitre 8
Rédu tion modulaire (boîte noire)
Dans ertains as, il peut être né essaire d'ee tuer une rédu tion modulaire sur un
nombre dont la taille est le double de la taille du module.
Si N désigne le module, représenté par n hires en base r , il s'agit de réduire un nombre
de 2n hires modulo N .
Le but de ette partie est de montrer que l'ar hite ture de multipli ation modulaire dé-
veloppée peut être utilisée pour ee tuer ette rédu tion modulaire. L'intérêt étant de
pouvoir réaliser un autre type d'opération que elui pour laquelle est prévue l'ar hite -
ture, sans augmenter la surfa e.
Nous montrerons qu'il est même possible de réduire des nombres de taille 2n + 2 hires
modulo N.
Dans la suite, l'ar hite ture est onsidérée omme une boîte noire, 'est à dire que nous
l'utilisons sans modi ation.
On onsidère don ModMul orrespondant à ette boîte noire.
l'opération
−n−1
Pour deux nombres A et B tels que A, B < 2N , on a ModMul(A, B) ≡ ABr mod N
et ModMul(A, B) < 2N .
Nous supposons disposer d'une primitive de al ul ModAdd qui réalise l'opération A+B
mod 2N pour A et B deux nombres stri tement inférieurs à 2N .
Remarque 37.
1. Une primitive ModAdd réduisant modulo N fon tionne aussi, mais est plus res-
tri tive. I i, la rédu tion modulo 2N sutà produire une sortie ompatible ave les
entrées de ModMul.
2. Une implémentation de proto oles ryptographiques basés sur les ourbes elliptiques
ontient des additionneurs modulaires. La supposition d'en avoir un à disposition
est don raisonnable.
8.1 Problématique
N est le module représenté par n hires en base r.
85
86 Chapitre 8. Rédu tion modulaire (boîte noire)
Le dé oupage partie haute (XH ) - partie basse (XB ) est fait de manière à tenir ompte de
n+1
la onstante de Montgomery R = r intrinsèquement liée à l'algorithme MMn S hoisi
pour la multipli ation modulaire de Montgomery.
X est don égal à XB + RXH .
Remarque 38. Dans l'étape 4, la sortie peut être égale à N. Dans e as, un unique test
permet de renvoyer 0 au lieu de la sortie.
Deux points sont alors à vérier pour que la méthode proposée soit valide :
8.3. Validité de la méthode proposée 87
Proposition 11.
Soit A = (an . . . a1 a0 ) un nombre quel onque représenté par n+1 hires en base r.
Soit B un nombre inférieur stri tement à N .
Alors
1. ModMul(A, B) < 2N
2. Dans la bou le réalisant la multipli ation ave dé alage : T ← mi Nr +S (voir 4.2),
l'addition tn = sn+1 + u(n + 1) reste une addition 2 bits par 1 bit ave sn+1 ≤ 1.
Remarque 39.
La démonstration du deuxième point est ru iale ar elle justie le fait que l'additionneur
utilisé pour l'addition sn+1 + u(n + 1) sut et ne né essite au une modi ation.
On démontre en fait que l'addition est dans e as parti ulier une addition de 1 bit ave
1 bit e qui est une ondition plus restri tive que la ondition qui nous est imposée.
Justi ations :
u(0) = 0
Pour j de 0 à n faire
P = ai bj + tj + u(j)
sj = p0
u(j + 1) = p1
sn+1 = u(n + 1)
Cela signie que XH peut avoir, à la pla e des deux hires de poids forts nuls X2n et
X2n+1 , deux hires quel onques.
Autrement dit, ave ette méthode, il est possible de réduire un nombre de 2n + 2 hires
en base r par un module de n hires en base r grâ e à l'ar hite ture matérielle développée.
88 Chapitre 8. Rédu tion modulaire (boîte noire)
Chapitre 9
Contre-mesures DPA
Pour fon tionner, un ir uit onsomme du ourant éle trique, produit un rayonnement
éle tro-magnétique et plus simplement met un ertain temps pour réaliser une opération.
Ces quantités physiques mesurables sont appelées fuites d'information .
Un attaquant qui a a ès au omposant, peut hoisir des messages à hirer, les trans-
mettre au omposant et ainsi ré upérer le message hiré mais aussi mesurer les fuites
d'information émises durant le fon tionnement.
Il peut ainsi produire un ertain nombre de ourbes de onsommation et par analyse dif-
férentielle de es ourbes, potentiellement ré upérer des informations (poids de Hamming
par exemple) sur les données se rètes qu'utilise le omposant.
Il est don important de proposer des ontre-mesures an de protéger les implémentations
de primitives ryptographiques. Le prin ipe général est de masquer les données se rètes
an que l'attaquant ne puisse pas exploiter les informations obtenues par analyse de
onsommation.
L'in onvénient majeur de la mise en pla e de ontre-mesure est bien souvent le sur oût
en temps de al ul que ela génère.
Pour plus de pré ision sur les attaques DPA et les diérents types de ontre-mesure, on
pourra onsulter les nombreuses référen es traitant de es sujets : [43℄, [22℄, [24℄, [34℄, [41℄,
[40℄, [2℄, [53℄.
Nous proposons de protéger l'ar hite ture développée ontre les attaques DPA, par la
mise en pla e d'une ontre-mesure additive au niveau des données.
Nous verrons que la mise en pla e de ette ontre-mesure provoque une faible augmenta-
tion du temps de al ul.
89
90 Chapitre 9. Contre-mesures DPA
DPA.
Le prin ipe général du masquage des données et de rendre elles- i aléatoires an d'empê-
her l'attaquant de ré upérer des informations sur es données par analyse diérentielle
des ourbes de onsommation.
Cependant, le al ul modulaire ee tué doit orrespondre au résultat attendu. C'est à
dire qu'un démasquage doit être ee tué à la n du pro essus an de ré upérer le résultat
attendu (message hiré par exemple).
Remarque 40.
Ces deux masquages ne sont don pas on urrents mais omplémentaires. L'un doit être
utilisé pour ertains moduli parti uliers re ommandés par le NIST et l'autre pour masquer
la donnée nulle. Il est don important que la mise en pla e d'un masquage parti ulier ne
nuise pas à la mise en pla e de l'autre.
9.2. Représentation de Montgomery étendue 91
Dans le as de l'algorithme MMn S , on sait que Se < 2N e qui implique que æS ∈ {0, 1}
La représentation de Montgomery étendue est une extension de la représentation de Mont-
gomery algorithmique permettant de s'aran hir du lien qui ratta he la représentation
algorithmique à un algorithme donné.
L'idée de ette représentation est d'autoriser l'entier jS à appartenir à un ensemble plus
grand que {0, 1}.
Un masquage additif d'une donnée peut don être vu omme une représentation de Mont-
gomery étendue de ette donnée.
L'idée est d'utiliser l'ar hite ture matérielle ave les données masquées additivement pour
al uler la multipli ation modulaire.
On note r ′ = 2k .
On suppose que k ≤ b, 'est à dire que jA est représenté par un seul hire en base r.
Dénition 23.
On dénit le représentant de Montgomery étendue de A lié à jA par :
b = A + jA × N
A
Proposition 12.
b ≤ r′N − 1
A
b peut être représenté
A par n+1 hires en base b = (αn . . . α1 α0 )
r, A ave αn ≤ r ′ − 1
Preuve :
b = A + jA × N
A
≤ (N − 1) + (r ′ − 1) × N
≤ r′ × N − 1
Et
r ′ × N − 1 ≤ r ′ (r n − 1) − 1
≤ (r ′ − 1)r n + |r n −{z
r ′ − 1}
<r n
Soit A et B deux entiers ompris entre 0 et N −1, dont les représentations de Montgomery
lassique sont respe tivement A et B .
Soit k un entier naturel non nul et soient jA et jB deux aléas représentés par k bits.
b = A + jA × N et B
Soit A b = B + jB × N les représentations étendues de A et B liées à
jA et jB respe tivement.
Cependant, il faut déterminer une ondition sur k an de rendre la sortie de et algo-
rithme ompatible ave les entrées. C'est à dire qu'il faut s'assurer que la sortie Sb est de
la forme : S + jS × N , ave jS ≤ r ′ − 1.
Proposition 13.
b
Si 2 ≤k ≤b−1 alors
b B)
MMn Sg (A, b ≤ r′N − 1
9.3. Mise en pla e d'une ontre-mesure additive 93
Preuve :
Dans l'algorithme MMn Sg , pour i ompris entre 0 et n−1, on peut montrer (par ré urren e
sur i) que :
(r i+1 − 1)(r ′ N − 1) + (r i − 1)N
S(i + 1) ≤
ri
Or an ≤ r ′ − 1, don
Or k ≤ b − 1, don
r′ < r
Par suite,
r ′2
r ′2 < rr ′ 'est à dire < r′
r
b
Or
2
≤ k, don
r ′2
= 22k−b est un entier
r
On en déduit que
r ′2
≤ r′ − 1
r
Soit
r ′2
1+ ≤ r′
r
En revenant à la majoration de S(n + 2), ela signie que S(n + 2) < r ′ N 'est à dire que
S(n + 2) ≤ r ′ N − 1
94 Chapitre 9. Contre-mesures DPA
Remarque 42.
b
La ompatibilité est assurée si 2 ≤ k ≤ b − 1.
Comme on her he à avoir l'aléa le plus grand possible tel que la sortie de l'algorithme
soit ompatible ave les entrées, on peut prendre k = b − 1.
Si k = b, la majoration de S(n + 2) devient,
e qui n'est pas ompatible ave les entrées qui sont inférieures stri tement à rN dans e
as.
...
Très rapidement, en moins de dix itérations, les données en sortie ne sont plus masquées.
La taille des jsortie en sortie dé roît rapidement, il y a un problème de ompression de
ette taille. La rédu tion modulaire de Montgomery est vi time de son su ès !
En revan he on observe que lors de la première multipli ation (une élévation au arré dans
et exemple), la ompression observée est faible : de l'ordre de deux bits.
L'idée est de rajouter un aléa dans l'algorithme MMn Sg pour éviter e phénomène de
ompression et ainsi relever la taille des jsortie en sortie an que les données restent
masquées tout au long du pro essus d'exponentiation modulaire.
Nous proposons don de masquer additivement la sortie de l'algorithme MMn Sg
Proposition 14.
Soit δ un aléa représenté par k ′ bits.
′
Si k ≤ k − 1 ≤ b − 2, alors
b B)
δ × N + MMn Sg (A, b ≤ r′N − 1
Preuve :
Lors de la preuve de la proposition 13, nous avons établi que :
r ′2
S(n + 2) < N 1 +
r
′
Don puisque δ ≤ 2k − 1
k′ r ′2
δ × N + S(n + 2) < N 2 +
r
r ′2
Or
r
= 22k−b don ,
k′ 2k−b
δ × N + S(n + 2) < N 2 + 2
Or k′ ≤ k − 1 et −b ≤ −k − 1, don
δ × N + S(n + 2) < N 2k−1 + 22k−k−1
< N(2 × 2k−1 ) = r ′ N
96 Chapitre 9. Contre-mesures DPA
Don
δ × N + S(n + 2) ≤ r ′ N − 1
De la même façon que pour jS qui est représenté au maximum par k = b − 1 bits, on
her he à avoir l'aléa δ le plus grand admissible. La proposition 14 nous permet de prendre
δ = k − 1 = b − 2.
Le même programme d'exponentiation modulaire a alors été exé uté en rajoutant le mas-
quage additif au niveau de la sortie de MMn Sg .
Les tailles onsidérées sont b = 64 bits, k = 63 bits et k ′ = 62 bits.
...
9.3. Mise en pla e d'une ontre-mesure additive 97
i = 5 :
j_T=2dd31 f40e73550f j_T=2dd31 f40e73550f j_sortie=42803a7297e6274a
i = 4 :
j_T=42803a7297e6274a j_T=42803a7297e6274a j_sortie=4496d1adde727 6f
i = 4 :
j_A=43d 9 bd504029bd j_T=4496d1adde727 6f j_sortie=25db31015eb 0d89
i = 3 :
j_T=25db31015eb 0d89 j_T=25db31015eb 0d89 j_sortie= 783755f1ab 8df1
i = 2 :
j_T= 783755f1ab 8df1 j_T= 783755f1ab 8df1 j_sortie=29aeda492378e818
i = 1 :
j_T=29aeda492378e818 j_T=29aeda492378e818 j_sortie=3323d0119060bf3e
i = 0 :
j_T=3323d0119060bf3e j_T=3323d0119060bf3e j_sortie=406499a8f0f0040f
Le problème de ompression a disparu, puisque la sortie est minorée par δ×N où δ est
représenté par 62 bits.
Ce i signie, que l'additionneur doit être modié an de pouvoir additionner un hire
de k ≤b−1 bits ave un hire de 1 bit pour un résultat sur au plus b bits.
S = Sb × r −n−1 mod N
Ce qui implique en parti ulier que S doit être ompris entre 0 et N − 1, et que S n'est
plus masquée.
Ave la modi ation faite sur l'additionneur, nous montrons qu'un appel à l'algorithme
b permet le démasquage de la sortie ainsi que sa
MMn Sg (1, S) onversion en représentation
lassique.
1. b ≤N
MMn Sg (1, S)
2. b 6≡ 0 mod N ,
De plus, si S alors b 6= N
MMn Sg (1, S)
Preuve :
1. La preuve est basée sur le même prin ipe que le point 4 de la proposition 4 page 42
de la partie 3.4.3.
mi N + S(i)
L'itération prin ipale pour i ompris entre 1 et n+1 est S(i + 1) =
r
puisque les (ai )i≥1 sont nuls.
Il est alors fa ile de montrer (par ré urren e sur i) que pour i ompris entre 1 et
n+1 :
(r i + r ′ − 1)N − 1
S(i + 1) ≤
ri
Et don en parti ulier, pour i = n + 1,
(r n+1 + r ′ − 1)N − 1
S(n + 2) ≤
r n+1
9.4. Réper ussion sur le ompromis temps-surfa e 99
S(n + 2) < N + 1
S(i + 1) < 2N
C'est immédiat :
(r i + r ′ − 1)N − 1 (r ′ − 1)N
S(i + 1) = < N + < 2N
ri ri
D'un point de vue du temps de al ul, le sur oût est également très faible.
Proposition 16.
Soit TM\ le nombre de y les né essaires à la réalisation de l'algorithme \
MMn Sg .
M n Sg
Alors,
TM\ = (n + 1)(2n + 3 + n′lat + nlat ) +n
M n Sg | {z }
TM Mn S
Justi ation :
TM\
M n Sg
− TM Mn S n
τ := =
TM Mn S TM Mn S
n TM Mn S TM\
M n Sg
τ
4 90 94 4, 44%
8 180 188 4, 44%
16 595 611 2, 69%
32 2211 2243 1, 45%
La mise en pla e d'une ontre-mesure additive pour l'ar hite ture développée est peu
oûteuse, que e soit en terme de surfa e supplémentaire (additionneur plus gros : ajout
d'un nombre xe de portes logiques, proportionnel à la largeur du bus de donnée de
l'additionneur) ou en terme de temps de al ul additionnel.
Un point intéressant est que le sur oût relatif dé roît lorsque n augmente, e qui rend le
ompromis temps-surfa e de l'ar hite ture plus intéressant à mesure que n augmente.
Chapitre 10
Améliorations du ompromis
temps-surfa e
Dans sa thèse [18℄, T. Blum présente des simpli ations possibles pour l'algorithme de
Montgomery en base 2 puis les mêmes simpli ations en grande base.
En parti ulier, un des algorithmes permet de se passer de la détermination de mi mais
onduit à une augmentation de la taille du module et don une augmentation de la taille
des données.
L'algorithme né essite plus d'itérations pour obtenir la sortie. De plus, la onversion entre
la représentation de Montgomery et la représentation lassique est rendue di ile en rai-
son de l'augmentation de la taille des données.
Cet algorithme n'est pas retenu par Blum pour l'implémentation.
Lorsque nous avons hoisi l'algorithme pour l'implémentation, la stratégie adoptée a été
de réduire le nombre de types d'opérations élémentaires.
En eet, nous n'utilisons qu'une seule ellule quelque soit la taille du module. Cette ellule
ontient autant d'opérateurs élémentaires que de types d'opérations élémentaires.
101
102 Chapitre 10. Améliorations du ompromis temps-surfa e
Or
e −1
N mod r = (N ′ × N)−1 mod r
C'est à dire
e −1
N mod r = (−N0−1 × N0 )−1 mod r = −1 mod r
Don e
S + mi N est divisible par r si et seulement si mi = s0 .
Autrement dit, mi est déterminé par simple le ture du poids faible de S et non plus par
un al ul de multipli ation partie basse.
La ontre-partie est que les entrées de ette version de l'algorithme ne sont plus inférieure
ou égale à 2N , mais inférieure ou égale à e,
2N où e
N a un hire de plus que le module N.
L'algorithme né essite une itération supplémentaire et haque itération omporte des don-
nées d'un hire de plus que dans l'algorithme MMn S ( f : algorithme 3.3.4.0 page ??).
Cet algorithme est obtenu en réé rivant l'algorithme MMn S en rajoutant une itération
étant donné que le module e
N à un hire de plus que N .
Il onvient également de rempla er mi par s0 et supprimer l'étape de détermination de mi .
Toutes les propriétés établies ave l'algorithme MMn Sg sont valables pour l'algorithme
MMn+1 Se.
En parti ulier, la validité de e dernier se déduit de la validité de MMne Sg .
Dans sa thèse [18℄, T. Blum é rit qu'il doit être possible de déterminer le nombre de
soustra tions de N qu'il faut ee tuer sur la sortie obtenue pour ramener le résultat dans
le bon rang, mais pré ise que et aspe t n'a pas été étudié.
Sa solution est alors de faire ette unique étape de rédu tion modulaire à l'extérieur de
son ar hite ture, en logi iel par exemple.
Ce i n'est pas problématique étant donné que ette rédu tion est ee tuée une seule fois
à la n d'un long pro essus d'exponentiation modulaire.
Le temps de al ul de ette rédu tion est don minime par rapport au temps de al ul de
l'exponentiation modulaire.
Nous montrons en fait qu'une orre tion nale ee tuée ave l'ar hite ture matérielle sans
opérateur de multipli ation partie basse est possible et permet d'avoir une solution entiè-
rement matérielle pour le al ul d'une exponentiation modulaire.
10.3.1 Problématique
Nous souhaitons passer de la sortie Se en représentation de Montgomery ave R = r n+2
et telle que Se < 2N
e à la représentation lassique S orrespondante prise dans l'ensemble
{0, . . . , N}.
104 Chapitre 10. Améliorations du ompromis temps-surfa e
Preuve :
1. Évident
2. Pour le deuxième point, il sut de remarquer que pour tout i ompris entre 1 et
n + 2, alors rS(i) ≡ S(i − 1) mod N .
Don
r n+2 S(n + 2) ≡ S(0) mod N
'est à dire
e −n−2
S ≡ Sr mod N
10.3. Corre tion nale 105
N (2N ′ +r i −1)−1
(a) Pour tout i ompris entre 0 et n + 2, S(i) ≤ ri
2N ′ N − N − 1
(b) <1
r n+2
En eet,
Comme r ≥ 4,
2N ′ N − N − 1 < r n+2
e qui donne le résultat attendu.
D'après a) pour i = n + 2,
N(2N ′ + r n+2 − 1) − 1
S(n + 2) ≤
r n+2
Ce que l'on peut réé rire
2N ′ N − N − 1
S(n + 2) ≤ N +
r n+2
Puis l'inégalité démontrée en b) permet d'armer
S(n + 2) < N + 1
S(n + 2) ≤ N
(
Se 6= 0
S=N si et seulement si
Se ≡ 0 mod N
106 Chapitre 10. Améliorations du ompromis temps-surfa e
⇒ :
Montrons que pour tout entier i ompris entre 0 et n + 1,
S(i + 1) 6= 0 S(i) 6= 0
⇒
S(i + 1) ≡ 0 mod N S(i) ≡ 0 mod N
⇐ :
Par hypothèse, il existe un entier naturel k non nul tel que Se = kN .
Une ré urren e triviale sur i permet de montrer que pour tout entier i ompris
entre 0 et n + 1, il existe ki un entier naturel non nul tel que S(i + 1) = ki N .
En parti ulier, pour i = n + 1, il existe kn+1 un entier naturel non nul tel que
S(n + 2) = kn+1 N .
De plus, nous avons montré que S(n + 2) ≤ N .
Ce i implique for ément que kn+1 = 1, autrement dit que S = N.
Nous suggérons de faire ette multipli ation partie basse dans le multiplieur-additionneur
et de ne s'intéresser qu'à la partie basse du résultat.
En eet, le multiplieur-additionneur al ule xi × yj + zj . Don en parti ulier, si zj = 0,
il al ule la multipli ation xi × yj . Il sut alors de ne s'intéresser qu'à la partie basse du
résultat.
L'in onvénient est que le multiplieur-additionneur est sous-utilisé pour ette étape de
al ul.
Mais omme la orre tion nale est faite une seule fois à la n d'un long pro essus de
multipli ations modulaires su essives, ette sous-utilisation n'est pas trop pénalisante et
permet d'obtenir un pro essus d'exponentiation modulaire entièrement réalisé en matériel.
10.4. Résultats 107
10.4 Résultats
L'ar hite ture obtenue en supprimant le multiplieur partie-basse est présenté gure 10.1.
ai bj nj
Sortie
b b b b
b b b b
0 1 0 1
mux1 mux1
b b
zj b
xi yj
Multiplieur
-additionneur
pipeliné
b b
p′1 p′0
b
0 Temp
1 1
0 1
b b
mux2 1
FIFO
Additionneur
1 b
carry p0
2 1 mux3
0 1
Add
2
b b b
1 0
mux2
b
Stab1 nreb mux3
1 0
1 0 b b
b mux2
Ce gain matériel ne dépend pas de la taille du module. En revan he, il dépend de la taille
du bus interne.
Le gain relatif est à peu près onstant, 'est à dire que de manière générale on gagne
≈ 27% de surfa e quelque soit la taille du module et la largeur de bus interne.
Le sur oût est don de 4n + 7 y les par rapport à l'algorithme TM Mn S si on ne tient pas
ompte de la laten e (n
g g′
lat = nlat = 0).
Soit un sur oût relatif de
4n + 7
τ=
(n + 1)(2n + 3 + nlat + n′lat )
Quelques exemples numériques sont donnés dans le tableau suivant pour la base r = 264 .
Taille du module (en bits) 256 512 1024 2048
n 4 8 16 32
Sur oût relatif % 0 16, 17 11, 93 6, 10
Le sur oût relatif dé roît lorsque n augmente, alors que le gain matériel reste onstant.
Le ompromis temps-surfa e est don de plus en plus intéressant à mesure que n augmente.
Remarque 43.
Pour le module de taille 256 bits, les temps de al ul sont les mêmes ave les deux mé-
thodes, il n'y a don pas de sur oût.
Cela est dû aux paramètres de laten e qui sont plus élevés pour MMn S que pour MMn+1 Se.
Les résultats obtenus pour des opérandes de 1024 bits sont présentés dans la gure 10.2.
La ourbe Mixte1024_ oeur.dat orrespond à l'ar hite ture initiale présentée gure 6.1
page 58.
La ourbe LH1024_ oeur.dat orrespond à l'ar hite ture sans multiplieur partie-basse.
Remarque 44.
Le fait de se passer du mutliplieur partie-basse permet d'é onomiser des ressour es maté-
rielles.
En revan he, si on souhaite privilégier le temps d'exé ution, il est possible d'augmenter
la taille du bus interne an de onserver la même surfa e que la onguration ave le
multiplieur partie-basse. Ce i a pour onséquen e de diminuer la quantité n et par suite
le nombre de y les né essaires à la réalisation d'une multipli ation modulaire.
La surfa e est don in hangée, mais le temps d'exé ution est plus rapide.
Remarque 45.
Nous avons également étudié la mise en série de deux ellules telles que dé rite en gure
10.1.
Le ompromis temps-surfa e obtenu est moins bon qu'ave une seule ellule. Cela s'explique
assez fa ilement en terme de rendement.
En eet, une nouvelle donnée est introduite à haque y le, le régime établi est don plus
long à mettre en pla e puisque il faut traverser les deux ellules.
Pendant le temps de traversée de la première ellule, la deuxième ellule ne fait au un
al ul et don a un rendement moins important que la première ellule.
Cela rend le ompromis temps-surfa e moins intéressant que dans la onguration ave
une seule ellule.
10.4. Résultats 109
10000
Nombre de cycles
1000
100
0.1 1 10 100 1000
Nombre de portes logiques (kG)
Fig. 10.2 Compromis temps-surfa e amélioré pour une multipli ation modulaire 1024
bits
110 Chapitre 10. Améliorations du ompromis temps-surfa e
Quatrième partie
Multipli ation modulaire parallèle :
Problématique et perspe tives
111
Chapitre 11
Problématique et intérêts
En ryptographie asymétrique, il est fait une utilisation intensive de la multipli ation
modulaire. La perspe tive d'avoir des représentations de nombres dans lesquelles la mul-
tipli ation a un oût linéaire en la taille des données est parti ulièrement intéressant et
laisse à priori espérer la possibilité d'avoir une multipli ation modulaire parallèle.
Malheureusement, dans es représentations la division et les opérations de omparaisons
sont souvent omplexes.
Or nous disposons d'algorithmes de rédu tion modulaire qui ne né essitent pas de division
(Montgomery, Barret). Il est don naturel de her her à adapter es algorithmes dans les
systèmes de représentations où la multipli ation peut être ee tuée linéairement.
Ce travail a été réalisé pour la représentation modulaire (ou représentation RNS) intro-
duite dans la partie 1.3. L'asso iation de ette représentation ave l'algorithme de Mont-
gomery a fait l'objet de nombreuses publi ations, en parti ulier par l'équipe du Lirmm
(Laboratoire d'Informatique, de Robotique et de Mi roéle tronique de Montpellier) [4℄,
[5℄, [6℄, [8℄.
Le prin ipe général des algorithmes de Montgomery et de Barret, est de rempla er les
divisions par le module N, par des opérations modulo R et des opérations de divisions
par R.
Ave un hoix judi ieux de R et en utilisant une représentation en numération de position,
es opérations sont triviales.
En revan he en représentation modulaire, si le al ul modulo R est trivial (le hoix de R
est le produit des moduli de la base RNS), les opérations de divisions par R sont om-
plexes.
Il onvient alors de hanger de base RNS an de pouvoir al uler l'opération de division
par R plus simplement.
1. L'espa e de sto kage doit être augmenté pour sto ker les éléments des deux bases
2. Les onversions entre les deux bases ( omportant ha une n moduli) ont un oût en
113
114 Chapitre 11. Problématique et intérêts
O(n2 )
3. Deux hangements de base sont né essaires pour une multipli ation de Montgomery
2. Quels hoix de R permet de rendre triviales les opérations modulo R et division par
R dans la représentation utilisée.
3. Comment rester le plus longtemps possible dans une représentation donnée et ainsi
limiter le nombre de onversions entre les représentations utilisées ?
4. Comment mettre en pla e des méthodes de onversion entre les représentations qui
soient peu oûteuse ?
Ces problèmes sont di iles à résoudre et la plupart d'entre eux restent ouverts.
L'idée est de proter de la transformation de Fourier rapide (FFT) de oût O(n log(n))
pour passer de la représentation polynomiale à la représentation de Fourier.
Dans e hapitre, nous utilisons une représentation polynomiale des nombres et à partir
de elle- i introduisons la représentation de Fourier obtenue gra e à l'utilisation de la
transformée de Fourier rapide.
L'algorithme de rédu tion modulaire de Montgomery est rappelé dans sa version entière,
puis une version polynomiale est présentée. Enn, les di ultés ren ontrées pour étendre
et algorithme en représentation de Fourier sont présentées.
Un polynme de degré stri tement inférieur à n peut être vu omme un élément de l'an-
n
neau quotient A[X]/(X − 1).
115
116 Chapitre 12. Représentation de Fourier et algorithme de Montgomery
L'anneau produit An muni des lois d'additions terme à terme (notée +) et de multi-
pli ation terme à terme (ou produit de Cau hy) (notée ·) est appelé anneau produit des
oe ients de Fourier.
n−1
X n−1
X
i
Fω−1 : (b
a0 , . . . , b
an−1 ) 7−→ P (X) = ai X ave ai = n −1
aj ω −ij
b
i=0 j=0
Remarque 46.
L'isomorphisme ré iproque peut être vu de manière al ulatoire omme Fω−1 = n−1 Fω−1 .
Remarque 47.
L'opération de multipli ation dans A[X]/(X n − 1) orrespond à la multipli ation de poly-
n
nmes modulo X − 1.
La transformée de Fourier de e produit orrespond don au produit de Cau hy dans l'an-
n
neau produit A dont le oût est linéaire en n.
An d'ee tuer une rédu tion modulaire sur un produit de polynme, il est né essaire
n
que l'anneau A[X]/(X − 1) puisse ontenir le polynme produit.
n
Or, si PA (X) et PB (X) sont deux éléments de A[X]/(X − 1), leur produit PC (X) n'est
n
pas dans A[X]/(X − 1), puisque deg(PC ) est a priori supérieur à n.
12.2. Algorithme de rédu tion modulaire de Montgomery 117
Il est don né essaire de onsidérer un deuxième isomorphisme entre les anneaux (A[X]/(X 2n −
1), +, ×) et (A2n , +, ·).
Comme dans la proposition 19, L'isomorphisme est donné par
Remarque 48.
Pour distinguer les représentations de Fourier dans An et dans A2n , nous utiliserons la
n 2n
notation x
b pour désigner elle dans A et x
e pour désigner elle dans A
Cha un des entiers impliqués dans et algorithme peut être vu omme un polynme. En
revan he les opérations ee tuées dans et algorithme sont des opérations sur les évalua-
tions de es polynmes en r, et non sur les polynmes eux-mêmes.
′
C'est à dire qu'il faut bien distinguer l'opération Q = ΠN mod R de l'opération Q(X) =
(1)
PΠ (X)PN (X) mod R(X) qui ont un sens mathématique diérent.
Un autre exemple signi atif est elui du produit AB . Le polynme PAB asso ié au produit
AB est diérent du polynme produit PA (X) × PB (X).
−1
Enn, notons que PN (X) mod R(X) et N −1 mod R sont également à diéren ier.
n−1
X n−1
X
Entrées : PA (X) = i
ai X , PB (X) = bi X i
i=0 i=0
Sortie : PS (X) ≡ PA (X) × PB (X) × R(X)−1 mod PN (X) ave deg(PS (X)) < n
Algorithme : RedModpol(A(X), B(X))
PΠ (X) ← PA (X) × PB (X)
(1)
Q(X) = PΠ (X) × PN (X) mod R(X)
PΠ (X) + Q(X) × PN (X)
PS (X) ←
R(X)
Retourne PS (X)
Il est fa ile de vérier que haque polynme évalué en 4 donne l'entier asso ié.
S = 40
S'il est évident que S 6= PS (4), le polynme PS (X) permet néanmoins de retrouver le bon
résultat.
En eet,PS (4) = −314/3, 3 étant inversible modulo N = 217, il est aisé de vérier que
−314 × 3−1 mod N est égal à 40, 'est-à-dire S.
Remarque 49.
Si la ondition suivante (portant sur les entiers) R(r) est premier ave PN (r) est
satisfaite, alors l'algorithme nous permet d'obtenir une sortie PS (X) vériant PS (r) ≡
ABR(r)−1 mod N .
Le problème majeur de la version polynomiale est que nous ne maîtrisons pas les oe-
ients de PS (X), eux- i sont en général rationnels et numérateurs et/ou dénominateurs
sont plus grands que la base de numération r. Ces oe ients peuvent également être
négatifs.
L'appli ation de la transformée de Fourier à la multipli ation de grands entiers est faite
en prenant omme anneau de base un anneau du type Z/NZ, les oe ients cj doivent
don être inférieurs stri tement à N.
Or dans une base de numération r , les oe ients al et bk sont ompris entre 0 et r − 1.
Lorsqu'il s'agit d'ee tuer le produits de deux polynmes dont les oe ients sont a=
(al )0≤l≤m−1 et b = (bk )0≤k≤m−1 , le polynme produit a pour oe ients les éléments du
produit de onvolution a ∗ b.
On obtient don une ondition né essaire sur N , en fon tion de la longueur des polynmes
m et la base de représentation des entiers asso iés r:
Proposition 20.
n(r − 1)2 < M
Dans tous les as, s'il y a roissan e onstante de la taille des oe ients, des opérations
de onversions sont né essaires entre les représentations.
D'une part entre la représentation de Fourier et la représentation polynomiale, mais aussi
entre la représentation polynomiale et la représentation en numération de position.
Cette dernière est utile pour ramener les oe ients des polynmes entre 0 et r − 1.
An de limiter le oût en temps de al ul lié à es nombreuses onversions entre les trois
représentations (numération de position, polynomiale, de Fourier), nous avons étudié les
possibilités de rester dans une représentation donnée (la représentation de Fourier).
C'est l'objet du hapitre suivant.
Chapitre 13
Comment rester en représentation de
Fourier ?
Malgré l'in onvénient majeur de l'algorithme de Montgomery en version polynomiale, il
est tout de même intéressant de her her un algorithme de multipli ation modulaire en
version polynomiale an de tirer prot de la omplexité linéaire de la multipli ation en
représentation de Fourier.
Un autre avantage est que les onversions entre représentation polynomiale et représen-
tation de Fourier ont un oût asymptotique en O(n log n) grâ e à l'utilisation de la FFT
(Fast Fourier Transform) alors que la méthode RNS utilisant le théorème hinois a des
2
oûts de onversions plus importants en O(n ).
Il faut ependant noter que les opérations élémentaires en représentation de Fourier sont
les opérations de l'anneau A et que elui- i ne doit pas être surdimensioné.
Plus pré isément on her he don une te hnique de rédu tion modulaire utilisant des
opérations modulo R(X) et division par R(X) e a es en supposant que l'on a déjà al ulé
le produit en représentation de Fourier, le but étant alors de rester dans la représentation
de Fourier.
2. Extension de la représentation :
Connaissant la représentation de Fourier d'un polynme de A[X]/(X n − 1), trouver
2n
la représentation de Fourier du même polynme vu omme élément de A[X]/(X −
1)
3. Traduire l'opération : div R(X) où R(X) sera probablement Xn − 1
121
122 Chapitre 13. Comment rester en représentation de Fourier ?
Justi ations :
On utilise l'égalité suivante :
+ + +
a0 a0 + a4 a0
e a0
e
+ + −
a1 a1 + a5 a4
e a1
e
+ − ×θ 0 +
a2 a2 + a6 a2
e a2
e
+ − ×θ 2 −
a3 a3 + a7 a6
e a3
e
− ×θ 0 + +
a4 a1
e a4
e
− ×θ 1 + −
a5 a5
e a5
e
− ×θ 2 − ×θ 0 +
a6 a3
e a6
e
− ×θ 3 − ×θ 2 −
a7 a7
e a7
e
Cette FFT d'ordre 8 onduit à distinguer une sous-FFT d'ordre 4 (n), qui orrespond (à
l'ordre miroir près) à la transformée de Fourier du polynme Pa (X) mod X n − 1 ( adre
pointillé).
Ce résultat se généralise dans le as général où n est une puissan e de 2 et on lut la
justi ation.
13.1. Problèmes à résoudre 123
Remarque 50.
Cela signie que pour réduire un polynme modulo X n − 1, on ne onserve que les oe-
ients pairs de sa représentation de Fourier.
A[X]/(X n − 1) −→ A[X]/(X 2n − 1)
n−1
X 2n−1
X
i : i
PA (X) = ai X 7−→ PA (X) = ai X i ave ai = 0 si i≥n
i=0 i=0
Proposition 22 (Extension).
Soit b
a = (b
a0 , b an−1 ) la représentation de Fourier d'un polynme PA (X) de A[X]/(X n −
a1 , . . . , b
1).
Alors e
a = (b a0 , e
a1 , b
a1 , e
a3 , . . . , b
an−1 , e
a2n−1 ) est la représentation de Fourier dans A2n de
i(PA (X)), où les e a2j+1 sont donnés pour 0 ≤ j ≤ n − 1 par :
e
a1 b
a0
e
a3 b
a1
.. = K ..
. .
e
a2n−1 b
an−1
Remarque 51.
Cela signie que pour étendre la représentation de Fourier de An à A2n , il sut de al uler
seulement les oe ients impairs de la nouvelle représentation.
Les oe ients pairs, sont simplement eux de la représentation dans An pris dans l'ordre.
Lemme 1.
Soit b
a = (b
a0 , b an−1 ) la représentation de Fourier d'un polynme PA (X) de A[X]/(X n −
a1 , . . . , b
1).
Si e
a est la représentation de Fourier de i(PA (X)),
alors
∀j ∈ {0, . . . , n − 1}, e
a2j = b
aj
Preuve :
Reprenons le diagramme papillon pré édent toujours ave 2n = 8 mais ave ette fois les
oe ients ai = 0 pour i ≥ 4.
Don , PA (X) est un polynme déterminé par 4 oe ients, a0 , a1 , a2 et a3 et i(PA (X))
est déterminé par es 4 mêmes oe ients et par 4 oe ients nuls.
+ + +
a0 a0 a0
e a0
e
+ + −
a1 a1 a4
e a1
e
+ − ×θ 0 +
a2 a2 a2
e a2
e
+ − ×θ 2 −
a3 a3 a6
e a3
e
− ×θ 0 + +
0 a1
e a4
e
− ×θ 1 + −
0 a5
e a5
e
− ×θ 2 − ×θ 0 +
0 a3
e a6
e
− ×θ 3 − ×θ 2 −
0 a7
e a7
e
Le prin ipe est le même que dans la preuve de la proposition 21, on isole une FFT d'ordre
divisé par 2.
Les oe ients d'indi e i ≥ 4 étant nuls, ette FFT orrespond alors exa tement à la FFT
d'ordre 4 (toujours à l'ordre miroir près) de PA (X).
On en déduit que a0 = b
e 0, e
a2 = b
a1 , e
a4 = b
a2 et e
a6 = b
a3 .
Ce résultat se généralise également fa ilement dans le as général où n est une puissan e
de deux et on lut la preuve du Lemme.
Preuve de la proposition 22 :
On onsidère e
a la représentation de Fourier de i(PA (X)).
Par le lemme, nous savons déjà que ∀j ∈ {0, . . . , n − 1}, e
a2j = b
aj
e
a0 a0
e
a1 a1
.
..
= V dM2n (θ) .
..
e
a2n−1 a2n−1
On onsidère la matri e V dMnI (θ), extraite de la matri e V dM2n (θ), et onstituée des n
lignes impaires et des n premières olonnes. Le terme générique de ette matri e est don
θ(2i+1)j pour 0 ≤ i, j ≤ n − 1.
Comme les oe ients an , . . . , a2n−1 sont nuls, on a l'égalité :
e
a1 a0
e a1
a3
.. = V dMnI (θ) ..
. .
ea2n−1 an−1
Or
e
a0 a0
e
a2 a1
.
.
= V dMn (ω) ..
. .
e
a2n−2 an−1
don
e
a1 e
a0
e
a3 e
a2
.
.
= V dMnI (θ)V dMn−1 (ω) .
.
. .
e
a2n−1 e
a2n−2
Posons K = V dMnI (θ)V dMn−1 (ω) et notons ki,j son terme générique pour 0 ≤ i, j ≤ n − 1.
Alors
n−1
X
ki,j = θ(2i+1)l n−1 θ−2lj
l=0
n−1
X
= n −1
(θ2i+1−2j )k
l=0
−1 1 − (θ2i+1−2j )n
= n ar 1 − θ2i+1−2j est inversible dans A
1 − (θ2i+1−2j )
Or 1 − (θ2i+1−2j )n = 2 ar θ est une ra ine 2n ième prin ipale de l'unité,
Or ω = θ2 ,
126 Chapitre 13. Comment rester en représentation de Fourier ?
D'où
ki,j = 2n−1 (1 − θω i−j )−1
Le fait que K est une matri e ir ulante est alors triviale, il sut de remarquer que
ki+1,j+1 = ki,j .
Elle est alors entièrement déterminée par sa première ligne (i = 0) dont les oe ients
sont les kj = 2n−1 (1 − θω −j )−1 pour 0 ≤ j ≤ n − 1.
Le troisième problème reste malheureusement ouvert, et à moins d'ee tuer les onver-
sions entre représentation de Fourier et représentation polynomiale (puis représentation
en numération de position), nous n'avons pas trouvé de méthode plus simple pour rester
en représentation de Fourier.
e
A/(X 2α − 1) A2α
Fθ
i j
e
A/(X α − 1) Aα
Fω
Une autre façon de voir que le oût est en O(n log(n)) est d'utiliser que la matri e K
obtenue est ir ulante.
En eet, une matri e ir ulante est diagonalisable dans une base de ve teurs propres qui
sont les ve teurs propres de la matri e de Vandermonde.
127
129
Contexte
L'opération de multipli ation modulaire est entrale en ryptographie asymétrique. En
fon tion des ryptosystèmes utilisés, la taille du module peut varier de 160 à plusieurs
milliers de bits. Il onvient don de proposer une implémentation de ette opération
réutilisable sans modi ation pour diérentes tailles de moduli.
L'implémentation de la multipli ation modulaire est soumise à de nombreuses ontraintes
matérielles et fon tionnelles. De fait, l'étude algorithmique seule ne sut pas à proposer
des implémentations e a es. Il faut s'atta her à déterminer le ompromis temps-surfa e
le plus adapté par rapport aux ontraintes données et orienter l'étude algorithmique en
e sens.
Etude algorithmique
L'algorithme de Montgomery a une omplexité asymptotique et une omplexité pratique
pro he des algorithmes de Barret ou Quisquater (en O(n2 )). Bien que es méthodes aient
un oût similaire, 'est pourtant l'algorithme de Montgomery qui est retenu dans la ma-
jorité des implémentations de la multipli ation modulaire. Ce i malgré un in onvénient :
la méthode de Montgomery produit un fa teur supplémentaire non souhaité.
La notion de représentation de Montgomery permet de supprimer et in onvénient et de
rester dans la même représentation tout au long d'un pro essus d'exponentiation modu-
laire.
Après avoir déni la notion de représentation de Montgomery algorithmique, nous avons
proposé une amélioration de la méthode de onversion entre ette représentation et la re-
présentation lassique. Cette onversion (multipli ation de Montgomery par 1) peut être
ee tuée sans ondition sur le module ontrairement à l'art antérieur.
L'in onvénient du fa teur supplémentaire dans l'algorithme de Montgomery est don mi-
neur. La préféren e de et algorithme par rapport aux autres te hniques de rédu tion
modulaire est très ertainement liée à l'appro he hires de poids faible en tête de
ette méthode.
En eet, ontrairement aux méthodes de division, de Barret ou de Quisquater pour réaliser
la rédu tion modulaire, le prin ipe de la méthode de Montgomery onsiste à déterminer
le quotient en se basant sur la partie de poids faible du nombre à réduire.
Ce i est parti ulièrement intéressant puisque ette appro he est ompatible ave le sens
de al ul d'une addition ou d'une multipli ation. Il n'est alors pas né essaire d'attendre
un résultat omplet pour ee tuer le al ul suivant.
D'un point de vue matériel, ela permet l'utilisation de stru tures pipelinées. Ainsi le
hemin ritique est réduit et la fréquen e d'utilisation est plus élevée, rendant le temps
d'exé ution plus ourt.
L'algorithme de Montgomery est don parfaitement adapté pour une réalisation matérielle
de la multipli ation modulaire.
130
Implémentation
La stratégie utilisée pour l'implémentation de la multipli ation modulaire sur une ible
ASIC selon un algorithme de Montgomery est de réduire le nombre de types d'opérations
élémentaires dans l'algorithme.
L'étude algorithmique a été menée en e sens et a abouti à un algorithme de Montgomery
généralisé MMn Sg qui peut être vu omme le séquen ement de deux types d'opérations
élémentaires :
Chaque opération élémentaire est asso iée à un opérateur matériel dédié à sa réalisation.
La stratégie utilisée a alors pour onséquen e dire te de réduire le nombre d'opérateurs
matériels orrespondants et don la surfa e né essaire à l'implémentation.
De plus quelque soit la taille du module, une seule ellule élémentaire est utilisée dans
l'ar hite ture développée. Cette ellule omprend un multiplieur-additionneur, un addi-
tionneur ainsi qu'un multiplieur partie-basse.
Contrairement aux solutions existantes, la taille de l'ar hite ture n'est don pas fon tion
du nombre de ellules élémentaires mais dépend de la largeur du bus interne.
Ainsi l'ar hite ture développée peut être utilisée pour diérentes ontraintes de surfa e
en faisant varier la largeur du bus interne. Si ette quantité diminue, le nombre de hires
des nombres augmentent. Le nombre de y les né essaires à la réalisation d'une multipli-
ation modulaire est alors plus élevé et le temps d'exé ution plus long.
On obtient don diérentes ongurations répondant à diverses ontraintes temps-surfa e.
L'introdu tion des paramètres de syn hronisation et d'une mémoire de type FIFO rend
l'ar hite ture réutilisable pour diérentes tailles de moduli, répondant ainsi à l'obje tif
prin ipal xé en début de thèse.
Ces paramètres permettent également de dé rire pré isément le séquen ement de l'ar hi-
te ture pour réaliser la multipli ation modulaire.
La taille de la FIFO dépend de la taille maximale du module. Il est important de noter
que ette taille est toujours inférieure à la taille maximale du module onsidéré.
Le ompromis temps-surfa e obtenu est meilleur que eux proposés dans l'art antérieur
pour des ar hite tures ayant les mêmes ontraintes. Cependant si la largeur du bus interne
est trop grande devant la taille (en bits) du module, il y a une dégradation importante
des résultats dûe aux paramètres de laten e trop élevés. Il onvient don de dimensionner
la largeur du bus de façon à minimiser les paramètres de laten e.
Nous avons également vu qu'il est possible de mettre en pla e une ontre-mesure additive
au niveau des données an de se protéger ontre ertaines attaques DPA. Le sur oût en
temps de al ul est très faible (moins de 5%) et dé roît si la taille du module augmente.
Le sur oût matériel onsiste à élargir une entrée d'un additionneur de 2 à b bits (b dési-
gnant la largeur du bus interne). Ce sur oût est également très faible.
An que l'aléa soit de taille assez grande, la largeur du bus interne doit être élevée puisque
l'aléa est représenté par un hire.
Notons que ette idée n'est pas naturelle, puisque le ompromis temps-surfa e obtenu est
meilleur lorsque on rallonge le temps d'exé ution de l'algorithme. Elle peut même sembler
paradoxale puisque en her hant à diminuer la surfa e, on obtient un ompromis plus
intéressant qui nous indique alors que pour la surfa e initiale, le temps d'exé ution est
meilleur.
Don diminuer la surfa e permet de diminuer le temps de al ul (si le ompromis obtenu
est meilleur).
Des algorithmes existent et des implémentations ont été réalisées notamment en repré-
sentation modulaire. Cependant des hangements de bases oûteux sont né essaires pour
ee tuer les deux types d'opération modulo R et division par R.
L'idée d'utiliser une représentation de Fourier an d'obtenir une onversion entre les bases
moins oûteuse que elle de la représentation RNS est une idée intéressante.
Cependant les problèmes ren ontrés au niveau du dimensionnement de l'anneau et le fait
de on ilier trois représentations (numération de position, représentation polynomiale et
représentation de Fourier) rendent l'utilisation de ette méthode parti ulièrement déli ate
pour des appli ations on rètes.
Une voie qui n'a pas été explorée en e qui on erne les représentations polynomiales, et
qui onstitue un sujet de re her he à part entière, est l'utilisation de la représentation de
Lagrange et des systèmes PMNS (Polynomial Modular Number System).
Sur e sujet, on pourra se référer aux référen es suivantes : [10℄, [7℄.
C'est sans doute, dans l'état a tuel des hoses, la voie la plus explorée et la plus porteuse
de résultats on ernant la multipli ation modulaire en représentation polynomiale.
Bibliographie
[1℄ L. Adleman, R. L. Rivest, and A. Shamir. A method for obtaining digital signatures
and publi -key ryptosystems. Commun. ACM, 21(2) :120126, 1978.
[2℄ M-L. Akkar. Attaques et méthodes de prote tion de systèmes ryptographiques em-
barqués. PhD thesis, Université de Versailles Saint-Quentin en Yvelynes, 2004.
[3℄ A. Avizienis. Signed-digit number representations for fast parallel arithmeti . IRE
Transa tions on ele troni omputersMathemati s of Computation, (10) :389400,
Reprinted in E.E. Swartzlander, Computer Arithmeti , Vol. 2, IEEE Computer So-
iety Press Tutorial, Los Alamitos, CA, 1990., 1961.
[4℄ J-C. Bajard, L-S. Didier, and P. Kornerup. An RNS montgomery modular multipli a-
tion algorithm. In COMPARITH : Pro eedings of the 13th Symposium on Computer
Arithmeti . The Computer So iety of the IEEE, IEEE Computer So iety Press, 1997.
[5℄ J-C. Bajard, L-S. Didier, and P. Kornerup. Montgomery modular multipli ation in
residue arithmeti , 2000.
[6℄ J-C. Bajard, L-S. Didier, and P. Kornerup. Modular Multipli ation and Base Ex-
tensions in Residue Number Systems. In Pro . 15th IEEE Symposium on Computer
Arithmeti , pages 5965, 2001.
[7℄ J-C. Bajard and C. Imbert, L.and Negre. Arithmeti operations in nite elds of
medium prime hara teristi using the lagrange representation. journal IEEE Tran-
sa tions on Computers, 55(9) :11671177, Sept 2006.
[8℄ J-C. Bajard and L. Imbert. A full rns implementation of rsa. IEEE Trans. Comput.,
53(6) :769774, 2004.
[9℄ J-C. Bajard and J-M Muller. Cal ul et arithmétique des ordinateurs (Traité IC2,
série Informatique et systèmes d'information), pages 3237. 2-7462-0861-X. Hermes
s ien e edition, 05-2004.
[10℄ J-C. Bajard and T. Plantard. Arithmeti operations in the polynomial modular num-
ber system. In ARITH '05 : Pro eedings of the 17th IEEE Symposium on Computer
Arithmeti , pages 206213, Washington, DC, USA, 2005. IEEE Computer So iety.
[11℄ P. Barret. Implementing the Rivest, Shamir and Adleman Publi -Key En ryption Al-
gorithm on a Standard Digital Signal Pro essor. In Springer-Verlag, editor, Advan es
in ryptology : Crypto'86, LCNS263, pages 311323, 1987.
[12℄ P. Barret. Communi ations authenti ation and se urity using publi key en ryption
- a design for implementation -. Master's thesis, Oxford University, Sep 1984.
133
134 Bibliographie
[16℄ F. Bernard, E. Garrido, and A. Sauzet. Opérateur de rédu tion modulaire amélioré.
o
Dépt de brevet n : FR 07 04087, 2007.
[17℄ F. Bernard and A. Sauzet. Pro édé de masquage du résultat d'une opération de
o
multipli ation modulaire et dispositif asso ié. Dépt de brevet n : FR 07 04087,
2007.
[21℄ E. F. Bri kell. A fast modular multipli ation algorithm with appli ation to two key
ryptography. In Chaum et al. (eds.), editor, Advan es in ryptology - CRYPTO '82,
pages 5160, New York, 1983.
[22℄ J-S. Coron. Resistan e against dierential power analysis for ellipti urve rypto-
systems. In CHES 1999, pages 292302.
[24℄ E. Dabbish, T. Messerges, and R. Sloan. Power Analysis Atta ks of Modular Ex-
ponentiation in Smart ards. In CHES 1999, volume 1717 of LNCS, pages 144157,
1999.
[25℄ A. Daly and W. Marnane. E ient ar hite tures for implementing montgomery
modular multipli ation and rsa modular exponentiation on re ongurable logi . In
FPGA'02, Monterey, California, USA, February 24-26 2002.
[26℄ J-F. Dhem. Design of an e ient publi -key ryptographi library for RISC-based
smart ards. PhD thesis, Université Catholique de Louvain, May 1998.
[27℄ J-F. Dhem. Modied version of the barret algorithm. Te hni al report, Jul 94.
[28℄ L-S. Didier. Division et multipli ation modulaire en représentation modulaire. PhD
thesis, Université de Proven e, 1998.
[29℄ W. Die and M. E. Hellman. New dire tions in ryptography. IEEE Transa tions
on Information Theory, 22 :644654, 1976.
[32℄ T. ElGamal. A publi -key ryptosystem and a signature s heme based on dis rete
logarithms. IEEE Transa tions on Information Theory, IT-31(4) :469472, 1984.
[33℄ G. Gaubatz. Versatile Montgomery Multiplier Ar hite tures. PhD thesis, Wor ester
Polyte hni Institute, April 2002.
[35℄ J. Groÿs hädl. High speed RSA hardware based on Brret's modular redu tion me-
thod. In CHES'00, 2000.
[36℄ J. Groÿs hädl. A bit-serial unied multiplier ar hite ture for nite elds GF (p) and
GF (2m ). In CHES'01, 2001.
[37℄ G. Ha hez and J-J Quisquater. Montgomery Exponentiation with no Final Subtra -
tions : Improved Results. Le ture Notes in Computer S ien e, 1965 :293, 2001.
[40℄ J. Jae, B Jun, and P. Ko her. Dierential Power Analysis. Te hni al report, Cryp-
tography Resear h, 1998.
[41℄ J. Jae, B Jun, and P. Ko her. Introdu tion to Dierential Power Analysis and
Related Atta ks. Te hni al report, Cryptography Resear h, 1998.
[42℄ T. Jebelean. An algorithm for exa t division. Journal of Symboli Computation 15,
pages 169180, 1993.
[43℄ M. Joye and C. Tymen. Prote tions against dierential analysis for ellipti urve
ryptography. In CHSE 2001, pages 377390.
[48℄ Ç. K. Koç, E. avas, and A. F. Ten a. A s alable and unied multiplier ar hite ture
m
for nite eld GF (p) and GF (2 ). In CHES'00, 2000.
[49℄ Ç. K. Koç and A. F. Ten a. A s alable ar hite ture for Montgomery multipli ation.
In CHES'99, 1999.
136 Bibliographie
[50℄ Ç. K. Koç and A. F. Ten a. A s alable ar hite ture for Modular Multipli ation based
on Montgomery's algorithm. IEEE Transa tions on omputers, 52(9), september
2003.
[52℄ A. Menezes, P. Van Oors hot, and S. Vanstone. Handbook of Applied Cryptography,
hapter 14, pages 595620. 1997.
[53℄ T. Messerges. Power Analysis Atta ks and Countermeasures for Cryptographi Al-
gorithms. PhD thesis, University of Illinois, 2000.
[57℄ S.F. Oberman and M.J. Flynn. Design Issues in Floating-Point Division. Te hni al
Report CSL-TR-94-647, Stanford, CA 94305-2140, 1994.
[58℄ D. S. Phatak. Fast modular redu tion for large wordlengths via one linear and one
y li onvolution. In ARITH '05 : Pro eedings of the 17th IEEE Symposium on
Computer Arithmeti , pages 179186, Washington, DC, USA, 2005. IEEE Computer
So iety.
[59℄ M. Quer ia. Cal ul multipré sion. http ://pauilla .inria.fr/ quer-
ia/papers/multipre ision.ps.gz.
[60℄ M. Quer ia. Division et ra ine arrée rapides. http ://pauilla .inria.fr/ quer-
ia/papers/divrap.ps.gz.
[61℄ J-J. Quisquater. Fast modular exponentiation without division. Rump Session of
Euro rypt, 1990.
[63℄ The GMP team. GNU Multiple Pre ision Arithmeti Library.
http ://gmplib.org/gmp-man-4.2.2.pdf, 4.2.2 edition, August 2007.
[64℄ C. D. Walter. Systoli Modular Multipli ation. IEEE Transa tions on Computers,
42(3) :376378, Mar h 1993.
[66℄ C. D. Walter. Montgomery Exponentiation Needs No Final Substra tions. Ele troni s
Letters, O tober 1999.
[67℄ C. D. Walter. A linear systoli array for exponentiation. IEEE Computers and Digital
Te hniques, 147(5) :323328, Sept 2000.
137
[68℄ A. Zanoni and M. Bodrato. Integer and polynomial multipli ation : Towards optimal
toom- ook matri es. ISSAC 2007, July - August 2007.
[69℄ P. Zimmermann. Arithmétique en pré ision arbitraire. Te hni al Report 4272, IN-
RIA, 2001.