Vous êtes sur la page 1sur 155

Équipe MAATICAH École doctorale CLI

EA 4005 Cognition, Langage et Interaction

Étude des algorithmes arithmétiques et


leur implémentation matérielle

THÈSE

présentée et soutenue publiquement le 15 octobre 2007

pour l’obtention du

Doctorat de l’université de Saint-Denis – Paris 8


(spécialité informatique)

par

Florent Bernard

Composition du jury

Présidente : MME. Christiane Frougny, (Université Paris 8, Paris)


Directeur : M. Claude Carlet (Université Paris 8, Paris)
Co-directeurs : M. Philippe Guillot (Université Paris 8, Paris)
M. Alain Sauzet (Thales Communication, Paris)
Rapporteurs : M. Jean-Claude Bajard (Lirmm, Montpellier)
M. Viktor Fis her (Laboratoire Hubert Curien, Saint-Etienne)
Examinateurs : M. Reynald Ler ier (CELAR, Rennes)
M. Arnaud Tisserand (Lirmm, Montpellier)
Résumé
La multipli ation modulaire est l'opération prin ipale de la plupart des proto oles de
ryptographie asymétrique (E hange de lé de Die-Hellman, RSA, ECDSA).
Il est don important d'a order un soin parti ulier à la réalisation matérielle de ette
opération.

Le travail de thèse onsiste à proposer une solution matérielle exible implémentant la


multipli ation modulaire pour une ible ASIC.
On prend en ompte deux niveaux de exibilité :
 L'implémentation doit être réalisable quelque soit la surfa e matérielle donnée.
 Une fois l'ar hite ture réalisée, elle- i doit pouvoir traiter des données de taille variable.
Après une étude algorithmique justiant le hoix de la méthode de Montgomery, l'algo-
rithme de Montgomery est étudié en détail en vu de son implémentation matérielle.

La stratégie visant à minimiser le nombre de type d'opérations élémentaires dans l'al-


gorithme onduit à une famille d'ar hite tures exibles orant un meilleur ompromis
temps-surfa e que dans l'art antérieur.

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%).

Enn, nous étudions une version de l'algorithme de Montgomery en représentation de


Fourier e qui permet d'obtenir un algorithme de oût asymptotique O(n log(n)) mais
malheureusement peu e a e en pratique.

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.

In this work, we propose a hardware implementation of modular multipli ation for an


ASIC target.
We onsider two levels of s alability :
 Implementation must t any hip area
 Design must be reused for dierent sizes of moduli
After an algorithmi study we show why Montgomery algorithm is preferred. Then this
algorithm is studied in details in order to pro eed at its hardware implementation.

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%).

Finally, a Montgomery algorithm using Fourier representation is studied with an asymp-


toti ost in O(n log(n)) but ine ient for pra ti al appli ation.

Keywords: Cryptography, Binary system (mathemati s), Appli ation Spe i Integrated
Cir uits, Fourier transformation, Multipli ation (arithmeti ), Montgomery algorithm

Université de Saint-Denis, Paris 8


Thales Communi ations
Département de Mathématiques
Servi e Crypto Composant
Equipe MAATICAH
160 boulevard de Valmy
2 rue de la liberté
92704 Colombes
93526 Saint-Denis Cedex
iii

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.

Philippe, tu as été une sour e d'inspiration et de motivation onstante. Je sortais de


nos réunions  regoné  par tes nombreuses idées et pistes lorsque je te présentais un
problème ren ontré ou que j'avais simplement une baisse de motivation.
Ta vision de l'algorithmie et de la ré ursivité nous ont permis d'aborder ertains problèmes
iv

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.

le 14 janvier 2008 à Saint-Etienne ( !)


Florent Bernard
vi
vii

A mon grand-père...
viii
Table des matières

Table des gures xi

Table des algorithmes xiii

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

1.2 Représentations redondantes . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3 Représentations modulaires . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3.1 Anneaux produits . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3.2 Théorème Chinois . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.4 Représentation polynomiale . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Complexité algorithmique 15
2.1 Évaluation du oût d'un algorithme . . . . . . . . . . . . . . . . . . . . 15

2.2 Complexité asymptotique et omplexité en pratique . . . . . . . . . . . 15

2.3 Compromis temps-surfa e . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 La multipli ation modulaire 19


3.1 Multipli ation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.1 Multipli ation s olaire . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.2 Multipli ation par évaluation-interpolation . . . . . . . . . . . . 21

3.2 Rédu tion modulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

ix
x Table des matières

3.2.1 La division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2.2 Les alternatives à la division . . . . . . . . . . . . . . . . . . . . 26

3.3 Entrela ement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.3.1 S héma de Hörner . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3.2 Multipli ation modulaire de Montgomery - Représentation de

Montgomery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.3.3 Algorithme entrela é de Montgomery . . . . . . . . . . . . . . . 33

3.3.4 Variantes de l'algorithme de Montgomery . . . . . . . . . . . . 35

3.4 Étude approfondie - Généralisation . . . . . . . . . . . . . . . . . . . . 39

3.4.1 Représentation de Montgomery algorithmique . . . . . . . . . . 39

3.4.2 Conversions algorithmiques . . . . . . . . . . . . . . . . . . . . 41

3.4.3 Algorithme généralisé . . . . . . . . . . . . . . . . . . . . . . . 41

3.4.4 Conversion nale - art antérieur . . . . . . . . . . . . . . . . . . 44

II Implémentation 45
4 Algorithme et opérations élémentaires 47
4.1 Algorithme de multipli ation modulaire de Montgomery . . . . . . . . 47

4.2 Opérations élémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5 Opérateurs élémentaires 51
5.1 Multipli ation-addition : P = xi yj + zj + u(j) . . . . . . . . . . . . . . 51

5.2 Multipli ation partie basse : mi = s0 N ′ mod r . . . . . . . . . . . . . 55

6 Des ription fon tionnelle de l'ar hite ture matérielle 57


6.1 Agen ement des omposants élémentaires . . . . . . . . . . . . . . . . 57

6.2 Paramètres de syn hronisation . . . . . . . . . . . . . . . . . . . . . . . 59

6.3 Séquen ement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.3.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.3.2 Comportement de mux1 . . . . . . . . . . . . . . . . . . . . . . 64

6.3.3 Comportement de mux2 . . . . . . . . . . . . . . . . . . . . . . 65

6.3.4 Comportement de mux3 . . . . . . . . . . . . . . . . . . . . . . 66

6.3.5 Rebou lage reb . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6.3.6 Rebou lage rebmi . . . . . . . . . . . . . . . . . . . . . . . . . . 67


xi

7 Résultats - Comparaison ave l'art antérieur 69


7.1 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

7.1.1 Temps d'exé ution . . . . . . . . . . . . . . . . . . . . . . . . . 69

7.1.2 Surfa e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

7.2 Compromis Surfa e-Temps et omparaison ave l'art antérieur . . . . . 71

7.2.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

7.2.2 Implémentation selon l'algorithme de Barret . . . . . . . . . . . 72

7.2.3 Implémentation selon l'algorithme de Montgomery . . . . . . . 73

7.2.4 Comparaison des ompromis temps-surfa e . . . . . . . . . . . . 79

III Utilisations de l'ar hite ture et améliorations 83


8 Rédu tion modulaire (boîte noire) 85
8.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

8.2 Méthode proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

8.3 Validité de la méthode proposée . . . . . . . . . . . . . . . . . . . . . . 86

9 Contre-mesures DPA 89
9.1 Masquage des données . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

9.2 Représentation de Montgomery étendue . . . . . . . . . . . . . . . . . 91

9.3 Mise en pla e d'une ontre-mesure additive . . . . . . . . . . . . . . . . 91

9.3.1 Données masquées . . . . . . . . . . . . . . . . . . . . . . . . . 91

9.3.2 Problème de ompression . . . . . . . . . . . . . . . . . . . . . 94

9.3.3 Masquage additif de la sortie . . . . . . . . . . . . . . . . . . . 95

9.3.4 Démasquage - Corre tion nale . . . . . . . . . . . . . . . . . . 98

9.4 Réper ussion sur le ompromis temps-surfa e . . . . . . . . . . . . . . 99

10 Améliorations du ompromis temps-surfa e 101


10.1 Algorithme de Montgomery sans détermination de mi . . . . . . . . . . 101

10.2 Validité de l'algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . 102

10.3 Corre tion nale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

10.3.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

10.3.2 Solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . 104

10.4 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107


xii Table des matières

IV Multipli ation modulaire parallèle : Problématique et pers-


pe tives 111
11 Problématique et intérêts 113

12 Représentation de Fourier et algorithme de Montgomery 115


12.1 Transformée de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

12.1.1 Anneau quotient de polynmes . . . . . . . . . . . . . . . . . . 115

12.1.2 Anneau produit des oe ients de Fourier . . . . . . . . . . . . 116

12.1.3 Transformée de Fourier . . . . . . . . . . . . . . . . . . . . . . . 116

12.2 Algorithme de rédu tion modulaire de Montgomery . . . . . . . . . . . 117

12.2.1 Version entière . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

12.2.2 Version polynomiale . . . . . . . . . . . . . . . . . . . . . . . . 118

12.2.3 Dimensionnement de l'anneau . . . . . . . . . . . . . . . . . . . 119

13 Comment rester en représentation de Fourier ? 121


13.1 Problèmes à résoudre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

13.2 Expli itation des morphismes intervenant . . . . . . . . . . . . . . . . 126

Con lusion 127


Bibliographie 133
Table des gures

2.1 Croissan e omparée de t 7→ 125t2 et t 7→ t3 . . . . . . . . . . . . . . . . . 16

3.1 Méthode de résolution de l'équation f (x) = 0 par la méthode de Newton . 27

5.1 Opérateur pipeliné de profondeur 4 . . . . . . . . . . . . . . . . . . . . . . 52


5.2 Réalisation matérielle de l'opération de Multipli ation-addition . . . . . . . 54

6.1 Des ription fon tionnelle de l'ar hite ture matérielle . . . . . . . . . . . . . 58

7.1 Cellule élémentaire d'une ar hite ture systolique . . . . . . . . . . . . . . . 75


7.2 Pipeline des ellules élémentaires . . . . . . . . . . . . . . . . . . . . . . . 76
7.3 Comparaison du ompromis temps-surfa e pour une multipli ation modu-
laire 256 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.4 Comparaison du ompromis temps-surfa e pour une multipli ation modu-
laire 1024 bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

10.1 Suppression du multiplieur partie-basse . . . . . . . . . . . . . . . . . . . . 107


10.2 Compromis temps-surfa e amélioré pour une multipli ation modulaire 1024
bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

13.1 Transformée de Fourier rapide d'ordre 8 . . . . . . . . . . . . . . . . . . . 122

xiii
xiv Table des gures
Table des algorithmes

1.1 Algorithme d'addition multipré ision . . . . . . . . . . . . . . . . . . . 10

3.1 Algorithme de multipli ation multipré ision . . . . . . . . . . . . . . . 20


3.2 Division multipré ision . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Multipli ation de Montgomery . . . . . . . . . . . . . . . . . . . . . . 33
3.4 Multipli ation de Montgomery sans soustra tion nale . . . . . . . . . 35
3.5 Multipli ation de Montgomery sans soustra tion nale simplié (MMn S ) 37
3.6 Généralisation de MMn S . . . . . . . . . . . . . . . . . . . . . . . . . 41

9.1 Algorithme de Montgomery ave ontre-mesure additive . . . . . . . . 97

10.1 Algorithme de Montgomery sans multipli ation partie-basse . . . . . . 102


10.2 Corre tion nale pour la méthode de Blum . . . . . . . . . . . . . . . 104

12.1 Multipli ation et rédu tion modulaire de Montgomery . . . . . . . . . 117


12.2 Rédu tion modulaire de Montgomery - version polynomiale . . . . . . 118

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 :

1. le hoix de l'algorithme de multipli ation modulaire

2. le soin apporté à son implémentation matérielle.

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.

La partie II présente l'implémentation de l'algorithme hoisi.


En parti ulier, une stratégie d'implémentation onsistant à utiliser une seule ellule d'opé-
rateurs matériels est développée. L'obje tif est de minimiser le nombre de types d'opéra-
tions élémentaires an de réduire le nombre d'opérateurs matériels asso iés onstituant
la ellule ( hapitre 4 et 5).
L'ar hite ture matérielle et son séquen ement sont présentés dans le hapitre 6 et la no-
tion de paramètres de syn hronisation est introduite. Nous montrons que es paramètres
permettent de satisfaire la ontrainte prin ipale de réutilisation de l'ar hite ture pour dif-
férentes tailles de module et répondent également à diérentes ontraintes temps-surfa e.
Enn, les résultats obtenus sont présentés dans le hapitre 7. La omparaison ave l'art
antérieur montre que notre ar hite ture ore un meilleur ompromis temps-surfa e.

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é.

Finalement, la partie IV s'intéresse aux représentations des nombres dans lesquelles la


multipli ation peut être ee tuée terme à terme.
Ces représentations sont intéressantes puisque la multipli ation peut être ee tuée ave
un oût linéaire en la taille des données (au lieu d'un oût quadratique). En revan he dans
elles- i, l'opération de division est problématique.
L'idée généralement utilisée est alors d'ee tuer une rédu tion modulaire du produit ob-
tenu en utilisant une te hnique de rédu tion modulaire ne né essitant pas de division
(Barret, Montgomery). Des hangements de représentation sont alors né essaires pour ef-
fe tuer les opérations de rédu tion modulaire.
L'obje tif de ette partie est d'étudier la possibilité de rester dans une représentation
donnée en ee tuant le moins de hangement de représentation possible.
La représentation étudiée dans ette partie est la représentation de Fourier. Des ten-
tatives pour rester dans ette représentation en ee tuant un minimum de onversions
6

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."

Un algorithme de al ul d'une opération arithmétique donnée (addition, soustra tion, mul-


tipli ation, division) est don une suite d'opérations élémentaires, permettant d'obtenir,
pas à pas et en temps ni, le résultat de l'opération arithmétique onsidérée.

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.

1.1 Représentation en numération de position


Notre système de numération dé imale est un as parti ulier du théorème général de
numération de position en base r.

Théorème 1. (Théorème de numération position en base r)


Soit r un entier supérieur ou égal à 2.
Soit A un entier naturel non nul.
Alors il existe un unique entier naturel n et une unique suite d'entiers (a0 , . . . , an−1 ) telle
que :
∀i ∈ {0, . . . , n − 1}, 0 ≤ ai ≤ r − 1
an−1 6= 0
n−1
X
A= ai r i
i=0

9
10 Chapitre 1. Opérations arithmétiques et représentations des entiers

Dénition 1. (Représentation en numération de position)


L'unique suite (a0 , . . . , an−1 ) de la proposition pré édente s'appelle la représentation de
position de A.
n s'appelle la longueur de A.
Les entiers ai ompris entre 0 et r−1 sont appelés hires (digits en anglais).
Dans le as parti ulier de la base 2, e sont des bits.
Dans la suite, nous utiliserons l'abus de langage onsistant à onfondre un hire et un
nombre de un hire.

On note A = (an−1 an−2 . . . a0 )r le nombre A et n = |A|.


Lorsque il n'y a pas d'ambiguïté sur la base r, nous noterons A = (an−1 an−2 . . . a0 ) dans
un sou i de ne pas alourdir les notations.

Lorsque un entier a une représentation en numération de position, on peut également


parler d'entier long ou d'entier multipré ision.

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.

Algorithme 1.1: Algorithme d'addition multipré ision

Entrées : A = (an−1 . . . a0 ), B = (bn−1 . . . b0 )


Sortie : S = (sn . . . s0 ) telle que S = A + B
Algorithme : Add(A, B)
c←0
pour i allant de 0 à n − 1 faire
si ← ai + bi + c mod r
Si ai + bi + c < r alors c ← 0
Sinon c ← 1
sn ← c
retourne 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.

Prin ipalement à ause du problème de propagation de la retenue, la représentation de


position des entiers est pénalisante pour une implémentation rapide de l'addition.

D'autres systèmes de numération permettent de s'aran hir de es problèmes.

1.2 Représentations redondantes


Les représentations redondantes sont basées sur un prin ipe ommun qui est de représen-
ter les entiers en base r non plus ave les hires de l'ensemble {0, . . . , r − 1}, mais ave
des hires pris dans un ensemble de ardinal supérieur.
Dans e as, il existe plusieurs représentations d'un même nombre, il y a don perte d'uni-
ité de la représentation.

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.

Nous énumérons trois représentations redondantes parti ulières :


 La plus élèbre est ertainement la représentation d'Avizienis [3℄, appelée aussi repré-
sentation à " hires signés".
Dans ette représentation, la base r doit être stri tement supérieure à 2.
Le prin ipe est d'utiliser des hires qui sont ompris entre −a et +a où a est un entier
r+1
tel que
2
≤ a ≤ r − 1.

 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

L'algorithme d'addition borrow-save mélange également deux systèmes de numération


(borrow-save et représentation de position). Le résultat de ette addition est également
en représentation borrow save .

Pour plus de détails sur es représentations, les algorithmes d'addition orrespondants et


les implémentations, on pourra onsulter [9℄, dont ette partie est fortement inspirée.

1.3 Représentations modulaires


1.3.1 Anneaux produits
Dénition 2.
Soient(A1 , +, ·) et (A2 , +, ·) deux anneaux.
L'ensemble A1 × A2 muni des lois dénies par :

(a1 , a2 ) + (a′1 , a′2 ) = (a1 + a′1 , a′2 + a′2 )


(a1 , a2 ) · (a′1 , a′2 ) = (a1 a′1 , a2 a′2 )

est un anneau appelé l'anneau produit de A1 par A2 .


L'élément neutre pour l'addition de A1 × A2 est le ouple (0, 0) et elui pour la multipli-
ation le ouple (1, 1).

Cette dénition se généralise (par ré urren e) pour un nombre ni d'anneaux.

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.

1.3.2 Théorème Chinois


Un isomorphisme d'anneaux parti ulier dont l'image est un anneau produit est donné par
le théorème Chinois.
1.4. Représentation polynomiale 13

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.

Théorème 2 (Théorème Chinois dans Z).


Soit n un entier naturel non nul.
Soit (m1 , . . . , mn ) un n-uplet d'éléments de Z premiers entre eux deux à deux.
Alors il existe un isomorphisme d'anneau

ϕ : Z/ (m1 × · · · × mn ) Z −→˜ Z/m1 Z × · · · × Z/mn Z


x 7−→ (x mod m1 , . . . , x mod mn )

Ce théorème fait orrespondre à tout entier x stri tement inférieur à un produit de


nombres premiers entre eux deux à deux, un unique ve teur (x1 , . . . , xn ) de Z/m1 Z ×
· · · × Z/mn Z.
Cet unique ve teur est la représentation modulaire (ou représentation RNS : Residue
Number System) de l'entier x dans la base (m1 , . . . , mn ).

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℄.

1.4 Représentation polynomiale


n−1
X
A un entier naturel A= ai r i , représenté en numération de position en base r , on peut
i=0
asso ier de manière naturelle le polynme de Z[X] :

PA (X) = a0 + a1 X + · · · + an−1 X n−1

L'évaluation de PA en r permet alors de retrouver A.

Si on onsidère le produit de deux nombres A et B représentés en numération de position,


on peut é rire :
A × B = PA (r) × PB (r) = (PA × PB )(r)
Il y a don un lien dire t entre le produit de deux entiers et le produit de deux polynmes
où PA × PB désigne le polynme produit de PA par PB .

Propriété 1 (Produit de Polynmes) .


Soit P (X) = p0 + p1 X + · · · + pn X n et Q(X) = q0 + q1 X + · · · + qn−1 X n deux polynmes
14 Chapitre 1. Opérations arithmétiques et représentations des entiers

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

Dénition 3 (Produit de onvolution dis ret) .


Soit p = (p0 , . . . , pn ) et q = (q0 , . . . , qn ) deux éléments de Zn+1 .
On appelle produit de onvolution dis ret de p et q l'élément de Z2n+1 noté p∗q tel que :
X
(p ∗ q)i = 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 ).

Remarque 3 (Mise en garde).


A deux entiers A et B, on peut asso ier les polynmes PA (X) et PB (X).
Puis on peut al uler, d'une part le produit entier AB et d'autre part le produit polynomial
PA × PB .
Or AB étant PAB (X).
un entier, on peut lui asso ier un polynme
Il faut alors prendre garde au fait que, dans le as général, PAB 6= PA × PB .
Ce i est en parti dû au fait que les oe ients de PAB sont ompris entre 0 et r − 1, alors
que eux de de PA × PB sont les éléments du produit de onvolution dis ret PA ∗ PB et sont
don plus grand que r . Dans l'optique d'une implémentation de la multipli ation utilisant
ette représentation, il faudra alors prendre garde à maîtriser la taille des oe ients lors
de multipli ations su essives ou prévoir de propager les parties hautes des oe ients
vers les oe ients de plus haut degré.

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

2.1 Évaluation du oût d'un algorithme


Entre deux algorithmes réalisant une opération (mathématique par exemple), omment
hoisir elui qui sera le plus rapide et dans quelles onditions ?
La théorie de la omplexité algorithmique s'intéresse à ette question.

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.

Remarque 4 (Complexité moyenne).


Lorsque un algorithme a un temps d'exé ution qui est fon tion des valeurs des données,
il onvient de s'intéresser à la omplexité en moyenne de l'algorithme. Cela onsiste à
al uler la moyenne des omplexités obtenues lorsqu'on par ourt l'ensemble des paramètres
d'entrée de l'algorithme.

Le hoix de la représentation des nombres dénit à la fois la notion d'opération élémentaire


mais aussi la taille des nombres onsidérés. La omplexité d'un algorithme dépend don
fortement du hoix de la représentation des nombres.

2.2 Complexité asymptotique et omplexité en pratique


Un algorithme est, dans la majorité des as, évalué asymptotiquement, 'est à dire sur
des données de grande taille.
Ainsi, si t est la taille des données d'un algorithme qui né essite une quantité polynomiale

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)

Fig. 2.1  Croissan e omparée de t 7→ 125t2 et t 7→ t3

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

2.3 Compromis temps-surfa e


La omplexité algorithmique (asymptotique et en pratique) est indispensable pour évaluer
l'e a ité d'un algorithme.
Cependant, pour réaliser une implémentation matérielle d'un algorithme, d'autres ritères
d'évaluation sont à prendre en onsidération. Parmi eux- i, on peut iter :
 La te hnologie utilisée ;
 La surfa e matérielle disponible ;
 La fréquen e de l'horloge ;
 La onsommation éle trique ;
 La résistan e aux attaques par anaux a hés.

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.

Commençons par donner une dénition de la multipli ation modulaire.

Dénition 4. (Multipli ation modulaire)


La multipli ation modulaire est l'opération de multipli ation dans un anneau quotient de
type Z/NZ où N est un entier naturel.

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.

L'anneau quotient Z/NZ étant onstruit à partir de la relation d'équivalen e "avoir le


même reste dans la division eu lidienne par N ", il est pratique d'utiliser la dénition
suivante :

Dénition 5. (Dénition pratique de la multipli ation modulaire)


La multipli ation modulaire onsiste à ee tuer la multipli ation de deux nombres donnés
et à prendre le reste du produit obtenu dans la division par un troisième nombre appelé
module.

19
20 Chapitre 3. La multipli ation modulaire

Cette opération se dé ompose don à priori en deux phases :


 une phase de multipli ation
 une phase de rédu tion modulo N
Nous présentons les prin ipales méthodes de multipli ation existantes ainsi que les mé-
thodes qui permettent d'ee tuer une rédu tion modulaire. Nous verrons également qu'il
est possible (et même souhaitable) d'entrela er les phases de multipli ation et les phases
de rédu tion modulaire.

3.1 Multipli ation


Nous rappelons l'algorithme lassique, souvent appelé multipli ation s olaire, utilisé pour
ee tuer ette opération.

3.1.1 Multipli ation s olaire


Algorithme 3.1: Algorithme de multipli ation multipré ision

Entrées : A = (an−1 . . . a0 ), B = (bn−1 . . . b0 )


Sortie : S = (s2n−1 . . . s0 ) telle que S = A × B
Algorithme : Mul(A, B)
pour i allant de 0 à n − 1 faire
c←0
s0 ← 0
pour j allant de 0 à n − 1 faire
P ← si+j + ai × bj + c
si+j ← P mod r
c ← P div r
si+n ← c
retourne S

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

Ce i rend e type d'algorithme totalement ine a e en pratique pour de faibles valeurs


de ε.

3.1.2 Multipli ation par évaluation-interpolation


Le but de es méthodes est de réduire la omplexité asymptotique de la multipli ation.

Prin ipe général


Considérons A et B deux nombres de taille r. n en base
A et B peuvent être vus omme deux polynmes de Z[X] de degrés k et l respe tivement :

k
X l
X
i
A(X) = Ai X et B(X) = Bi X i
i=0 i=0

et tels qu'il existe un élément α de N tel que A(α) = A et B(α) = B .


Le produit de es deux polynmes est un polynme P ∈ Z[X] tel que :

k+l
X X
P (X) = Pi X i ave Pi = Aj Bm
i=0 j+m=i

Or d'après le théorème de Lagrange, un polynme de degré k est entièrement déterminé


par son évaluation en k + 1 points distin ts deux à deux : x0 , x1 ,. . ., xk .
La détermination des k + l + 1 oe ients de P peut don se faire en hoisissant k + l + 1
points deux à deux distin ts, et en évaluant A(X)B(X) en es points.
Il faut don résoudre un système linéaire de k + l + 1 équations dont les k + l + 1 in onnues
sont les oe ients de P .

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 )

Les points d'évaluation doivent être hoisis de sorte que :

1. le système doit être fa ile à résoudre

2. les entiers A(xi ) et B(xi ) ne doivent pas être de taille trop élevée.

Un hoix judi ieux de es points permet de résoudre fa ilement le système linéaire si la


taille de elui i n'est pas trop élevée.
22 Chapitre 3. La multipli ation modulaire
 log(2k−1) 
De manière générale, la omplexité asymptotique de ette méthode est en O n log(k)
[45℄ où k désigne le degré des polynmes A(X) et B(X) (i i on suppose que A(X) et
B(X) ont même degré).
log(2k−1)
On retrouve ainsi le résultat théorique pré édent : O (n1+ε ) en remarquant que n log(k) =
(
log 2− 1
1+ log(k)k
) log(2− k1 )
n , ave
log(k)
−→ 0.
k→∞

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.

Multipli ation de Karatsuba


Le prin ipe de la multipli ation de Karatsuba et Ofman [44℄, onsiste à dé ouper les
fa teurs de taille n d'une multipli ation ha un en deux parties de taille moitié.
Si A et B sont les deux fa teurs de taille n en base r, on les é rit sous la forme A =
n n
A0 + A1 r 2 et B = B0 + B1 r 2.

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

Le polynme produit est P (X) = A(X)B(X) = P0 + P1 X + P2 X 2 .


Nous devons hoisir 3 points x0 , x1 et x2 pour déterminer entièrement le polynme P (X).
Les points hoisis sont x0 = 0, x1 = 1 et x2 = ∞.

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é.

Ainsi, P (∞) = P2 , A(∞) = A1 et B(∞) = B1 .


3.1. Multipli ation 23

Le système linéaire obtenu est le suivant :



 P0 = A(0)B(0) = A0 B0
P0 + P1 + P2 = A(1)B(1) = (A0 + A1 )(B0 + B1 )

P2 = A(∞)B(∞) = A1 B1

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.

Multipli ation de Toom-Cook


Si la méthode de Karatsuba onsiste à dé ouper les opérandes en 2 parties, la méthode de
Toom-Cook suggère de dé ouper les opérandes en 3 parties. La omplexité asymptotique
1.465
est améliorée : O(n ).

Les polynmes onsidérés sont :

A(X) = A0 + A1 X + A2 X 2 et B(X) = B0 + B1 X + B2 X 2

Les points d'évaluation sont les suivants : x0 = 0, x1 = 1, x2 = 2, x3 = −1 etx4 = ∞.


La résolution formelle du système donne les oe ients du polynme produit P :


 P0 = A(0)B(0)


 P1 = 2A(2)B(2) − 21 A(0)B(0) − 31 A(−1)B(−1) + A(1)B(1) − 16 A(2)B(2)
P2 = −A(∞)B(∞) − A(0)B(0) + 21 A(−1)B(−1) + 21 A(1)B(1)



 P3 = −2A(∞)B(∞) + 12 A(0)B(0) − 61 A(−1)B(−1) − 21 A(1)B(1) + 16 A(2)B(2)

P4 = A(∞)B(∞)
Si la omplexité asymptotique est meilleure en dé oupant les opérandes en 3, on se rend
ompte que la résolution du système est plus ompliquée que pour la méthode de Karat-
suba.
Si on dé oupe les opérandes en plus de parties (4 ou 5 par exemple), e phénomène
s'amplie et le gain en omplexité asymptotique est plus faible que pour les passages de
1 nombre à 2 nombres ou de 2 nombres à 3 nombres.
En général, les implémentations des méthodes d'évaluation-interpolation sont faites ave
les méthodes de Karatsuba ou Toom-Cook mais il est rare que le dé oupage des opérandes
dépasse 2 ou 3. Les méthodes utilisant la transformée de Fourier rapide (FFT) sont alors
préférées.
24 Chapitre 3. La multipli ation modulaire

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.

Multipli ation à base de transformée de Fourier rapide


La multipli ation utilisant la transformée de Fourier rapide peut être vu omme un as
parti ulier des algorithmes d'évaluation-interpolation.
I i, les points d'évaluation sont des ra ines n-ièmes de l'unité.
Ce hoix présente deux avantages [56℄ :
 L'interpolation d'un polynme en les ra ines de l'unité revient à l'évaluation du poly-
nme en es mêmes ra ines.
 Il existe une méthode d'évaluation rapide (FFT : Fast Fourier Transform) si n est lisse
(puissan e de 2 par exemple).
La omplexité asymptotique d'une telle méthode de multipli ation est en O(n log n). En
pratique ette méthode de multipli ation n'est utilisée que pour des nombres de plusieurs
dizaines de milliers de bits en raison de son seuil d'e a ité élevé [63℄.

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 Rédu tion modulaire


Lorsque le produit a été al ulé (par une des méthodes pré édentes par exemple), il faut
ee tuer une rédu tion modulaire sur elui- i, 'est à dire déterminer un reste au sens de
la division eu lidienne.
Pour ela l'idée naturelle est justement d'ee tuer une division.

Remarque 9 (Rédu tion ave des moduli parti uliers) .


Dans ette partie, nous ne traitons pas le as parti ulier des moduli de la forme : 2k ±1 pour
lesquels la rédu tion la modulaire orrespond à un dé alage et une soustra tion/addition.

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.

L'algorithme est rappelé i-dessous :

Algorithme 3.2: Division multipré ision

Entrées : A = (an−1 . . . a0 ), B = (bt−1 . . . b0 ), ave n ≥ t ≥ 1, bt−1 6= 0


Sortie : Quotient Q = (qn−t . . . q1 q0 ) et reste R = (rt−1 . . . r1 r0 ) A = BQ + R et
0≤R<B
Algorithme : Div(A, B)
3.2. Rédu tion modulaire 25

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.

Outre le temps de al ul important, un in onvénient majeur de l'opération de division est


l'ordre dans lequel est réalisée ette opération.
La division est une opération réalisée des poids forts vers les poids faibles alors que la
multipli ation et l'addition sont deux opérations qui sont réalisées dans le sens ontraire.
Lorsqu'on veut en haîner une opération de multipli ation ave une phase de rédu tion
modulaire par division, il est né essaire d'attendre le n de la multipli ation pour avoir
a ès aux poids forts et ainsi ommen er la division.
De plus, une fois que la division ommen e il est né essaire d'attendre la n de elle- i
pour ommen er une nouvelle multipli ation, et ...

Il y a don une perte de temps dûe à l'attente systématique du résultat omplet. De e


fait, la méthode de rédu tion modulaire par division ne semble pas e a e dans l'optique
du al ul de plusieurs multipli ations modulaires su essives.

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.

3.2.2 Les alternatives à la division


Pré isons que le terme  alternative  n'est pas ex lusif : dans toutes les méthodes qui
suivent, il y a des divisions ! Il semblerait urieux d'ailleurs de pouvoir al uler des restes
sans ee tuer au une  division  au sens large du terme.

Le prin ipe de es alternatives est de réduire l'importan e qualitative et/ou quantitative


de la division. C'est à dire de faire des divisions triviales (par une puissan e de la base de
représentation) ou d'en faire moins (pré- al ul servant pour tout un pro essus de rédu tion
modulaire utilisant un même module).
Dans es  alternatives , nous retrouvons un prin ipe général que nous présentons i i.

Prin ipe général


L'idée ommune de es méthodes de rédu tion onsiste à pré- al uler une fois pour toute
un  inverse  du module et de faire des multipli ations et dé alages en réutilisant e
pré- al ul.

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 .

On her he à réduire P modulo N, 'est à dire R tel que R = P − Q × N. L'inverse du


module étant al ulé une fois pour toutes par Q
ette méthode, on obtient le quotient
en multipliant P par l'inverse de N . Puis le reste R est obtenu en soustrayant Q×N de P .

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

Fig. 3.1  Méthode de résolution de l'équation f (x) = 0 par la méthode de Newton

Méthode de Barret et de Quisquater


En 1984 [12℄ puis 1986 [11℄, P. Barret propose une méthode de rédu tion modulaire qui
a l'avantage de simplier la détermination du quotient en se passant de l'opération de
division.
P 
La problématique réside dans la détermination du quotient
j k Q= N
.
P r 2n1
L'idée de Barret est d'é rire Q= r n−1 N r n+1
, puis d'estimer le quotient Q par la quan-
 j 2n k 
⌊ rn−1
P
⌋ r
N
tité Qe = r n+1
ave Q − 2 ≤ Qe ≤ Q.
j 2n
k
r
On note µ= N
l'  inverse  de N qui est al ulé une seule fois pour un long pro essus

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.

Un hoix judi ieux de es deux paramètres permet d'aner l'estimation du quotient :


Q − 1 ≤ Qe ≤ Q.
De plus, il est possible de maîtriser ette erreur tout au long d'un pro essus d'exponentia-
tion modulaire et d'ee tuer une seule orre tion à la n de l'exponentiation modulaire
e qui représente une amélioration signi ative de l'algorithme de Barret.
L'algorithme détaillé ainsi que le hoix des paramètres α et β sont détaillés dans la thèse
de J.F. Dhem [26℄.

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.

Théorème 3 (Rédu tion de Montgomery) .


Soit R un entier tel que R > N et tel que R soit premier ave N.
Soit P un entier tel que 0 ≤ P < NR.
′ −1
Soit N = −N mod R.

Si M = P × N mod R, alors

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

e qui montre le deuxième point.


30 Chapitre 3. La multipli ation modulaire

3. Enn, P < NR et M < R, don

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.

3.3 Entrela ement


En ryptographie asymétrique, de grands nombres sont utilisés (plusieurs milliers de bits
pour RSA). Dans ertains systèmes embarqués où l'espa e est limité (les artes à pu es
par exemple), le sto kage du produit de deux grands nombres est problématique.
Il est don souhaitable de proposer des algorithmes dans lesquels les phases de multipli-
ation et de rédu tion modulaire sont entrela ées.

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

3.3.1 S héma de Hörner


Soit A et B deux nombres entiers, ave A représenté en numération de position : A=
(an−1 . . . a1 a0 ).
Alors
n−1
!
X
AB mod N = ai r i ×B mod N
i=0

'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

Ce qui se al ule itérativement grâ e à l'itération de Hörner, i variant de 1 à 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

La sortie est don

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

3.3.2 Multipli ation modulaire de Montgomery - Représentation


de Montgomery
Multipli ation modulaire de Montgomery
Dénition 6 (Multipli ation modulaire de Montgomery) .
Soit A et B deux entiers ompris entre 0 et N − 1.
Soit R un entier premier ave N.
On note A ×m B la multipli ation modulaire de Montgomery telle que :

A ×m B = A × B × R−1 mod N

Le fa teur R−1 étant problématique pour le al ul de multipli ations modulaires su es-


sives, il est pratique de dénir la représentation de Montgomery.

Représentation de Montgomery
La représentation de Montgomery peut être dénie en toute généralité.

Dénition 7 (Représentant de Montgomery) .


Soit R un entier premier ave le module N.
Soit A un entier ompris entre 0 et N − 1.
On appelle représentant de Montgomery de A l'entier A tel que :

A = AR mod N

Remarque 13.
1. Par opposition, on dit que A est en représentation lassique.

2. Le représentant de Montgomery de A est unique.

Proposition 1 (Stabilité).
La représentation de Montgomery est stable par :

1. Multipli ation modulaire de Montgomery : A ×m B = AB


2. Addition modulaire : A + B mod N = A + B

Preuve :

A ×m B = (AR mod N) × (BR mod N) × R−1 mod N


1. = (AB)R mod N
= AB
A + B mod N = (AR mod N) + (BR mod N) mod N
2. = (A + B)R mod N
= A+B

3.3. Entrela ement 33

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.

1. Représentation lassique −→ Représentation de Montgomery


Cette onversion peut être réalisée par la multipli ation de Montgomery suivante :

A ×m Γ = A

2. Représentation de Montgomery −→ Représentation lassique


Cette onversion peut être réalisée par la multipli ation de Montgomery suivante :

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


3.3.3 Algorithme entrela é de Montgomery


L'algorithme de multipli ation modulaire de Montgomery présenté i-après est elui que
l'on trouve dans [52℄. Celui- i réalise l'opération de multipli ation modulaire de Montgo-
n
mery telle qu'elle est dénie dans la se tion 3.3.2 ave R = r .
Cet algorithme requiert don la ondition que r soit premier ave N. Cette ondition est
la plupart du temps réalisée puisque r est généralement une puissan e de 2 et N est un
entier impair (nombre premier impair ou produit de deux nombres premiers impairs).
34 Chapitre 3. La multipli ation modulaire

Algorithme 3.3: Multipli ation de Montgomery

Entrées : A = (an−1 . . . a0 ), B = (bn−1 . . . b0 ) ave 0 ≤ A, B < N


Pré- al ul : N ′ = −N0−1 mod r
Sortie : S = (sn−1 . . . s1 s0 ) telle que : S = ABr−n mod N
Algorithme : MM(A, B)
S←0
Pour i de 0 à n − 1 faire
mi ← (s0 + ai b0 )N ′ mod r
S ← ai B+mr i N +S
Si S ≥ N , alors S ← S − N
Retourne S

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.

Dénition 8 (Compatibilité entrées-sortie) .


Lorsque la sortie d'un algorithme peut être réutilisée en tant qu'entrée de e même algo-
rithme, 'est à dire lorsque la sortie remplit les mêmes onditions que elles satisfaites
par l'entrée, on dit que la sortie est ompatible ave l'entrée.

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.

De nombreuses variantes de l'algorithme de Montgomery existent. Dans la suite, nous


étudions es diérentes versions an de hoisir parmi elles- i, l'algorithme le plus adapté
à l'implémentation que nous voulons faire de la multipli ation modulaire.
3.3. Entrela ement 35

3.3.4 Variantes de l'algorithme de Montgomery


La stratégie retenue dans e travail en vue de l'implémentation est d'asso ier à haque
type d'opération un opérateur matériel dédié. De e fait, nous her hons à minimiser le
nombre de type d'opérations diérentes dans l'algorithme de Montgomery an de réduire
le nombre d'opérateurs matériels asso iés et par suite de réduire la surfa e né essaire à
l'implémentation.

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

La première variante onsiste à supprimer l'opération de soustra tion nale.

Algorithme de Montgomery sans soustra tion nale


Se passer de soustra tion nale est intéressant à plus d'un titre.
En eet, outre le gain matériel lié à la suppression de l'opérateur de soustra tion, le fait
de ne plus avoir de soustra tion onditionnelle permet une exé ution en temps onstant
de l'algorithme quelque soit la valeur des données.
Le temps d'exé ution de l'algorithme est don dé orrélé des données introduites e qui
permet de se prémunir des attaques de type  timing-atta k .

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 :

Algorithme 3.4: Multipli ation de Montgomery sans soustra tion nale

Entrées : A = (an an−1 . . . a0 ), B = (bn bn−1 . . . b0 ) ave 0 ≤ A, B < 2N


Pré- al ul : N ′ = −N0−1 mod r
Variable intermédiaire : S(·) = (sn sn−1 . . . s1 s0 ) < 3N ave sn ≤ 2
≡ ABr −n−1 mod N
Sortie : S = (sn . . . s1 s0 ) telle que : SS < 2N
Algorithme : MMS (A, B)
S(0) ← 0
Pour i de 0 à n faire
mi ← (s0 + ai b0 )N ′ mod r
S(i + 1) ← ai B+mri N +S(i)
Retourne S(n + 1)
36 Chapitre 3. La multipli ation modulaire

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

Ainsi pour i ompris entre 0 et n,


S(i) < 3N ≤ 3(r n − 1) = 2r n + (r n − 3)
don sn ≤ 2 .
2. Sortie de l'algorithme :

(a) Par ré urren e sur i, on peut montrer que

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

En parti ulier pour i = n, on obtient


n
X
n+1
r S(n + 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.

Simpli ation de la détermination de mi


Le al ul de mi = (ai b0 + s0 )N ′ mod r omporte une multipli ation-addition partie basse
suivi d'une multipli ation partie-basse.

L'idée est de rempla er B par B = rB .
′ ′
De e fait, b0 = 0 et la détermination de mi devient : mi = s0 N mod r e qui permet
d'é onomiser une multipli ation-addition partie basse.

Le fait de faire les al uls ave B à la pla e de B n'est pas problématique puisque le
′ −α
résultat sera de la forme : AB r mod N , 'est à dire : ABr −α+1 mod N .

Le hangement de B à B se réper ute don au niveau de l'exposant de r .

L'algorithme modié est présenté i-après.

Algorithme 3.5: Multipli ation de Montgomery sans soustra tion nale simplié
(MMn S )

Entrées : A = (an an−1 . . . a0 ), B = (bn bn−1 . . . b0 ) ave 0 ≤ A, B < 2N


Pré- al ul : N ′ = −N0−1 mod r
Variable intermédiaire : S(·) = (sn+1 sn . . . s1 s0 ) ≤ (2r + 1)N − r ave sn+1 ≤ 2
≡ ABr −n−1 mod N
Sortie : S = (sn . . . s1 s0 ) telle que : SS < 2N
Algorithme : MMn S(A, B)
S(0) ← 0
Pour i de 0 à n faire
mi ← s0 N ′ mod r
S(i + 1) ← ai B + mi N r+S(i)
mn+1 ← s0 N ′ mod r
S(n + 2) ← mn+1 N +S(n+1)
r
Retourne S(n + 2)

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

≤ (r − 1)(2N − 1) + 3N − 1 = (2r + 1)N − r


38 Chapitre 3. La multipli ation modulaire

Ainsi pour i ompris entre 0 et n + 1,


S(i) ≤ (2r + 1)N − r ≤ (2r + 1)(r n − 1) − r = 2r n+1 + (r n − 3r − 1)
don sn+1 ≤ 2.
2. Sortie de l'algorithme :

(a) Par ré urren e sur i, on peut montrer que

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

En parti ulier pour i = n, on obtient


n
X
n
r S(n + 1) ≡ aj Br j mod N
j=0

Puis à l'itération suivante,

r n+1 S(n + 2) = r n mn+1 N + r n S(n + 1)


X n
≡ 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ù

S(n + 1) ≤ 2N − 1 + (r−1)N +(2r+1)N


r
−r

≤ 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.

3.4 Étude approfondie - Généralisation


Dans la se tion 3.3.2, nous avons déni la représentation de Montgomery d'un entier om-
pris entre 0 et N − 1.
Comme les représentants de Montgomery peuvent être al ulés par appel à des multi-
pli ations de Montgomery, nous introduisons la notion de représentation de Montgomery
algorithmique.

3.4.1 Représentation de Montgomery algorithmique


La dénition de représentation de Montgomery se généralise mais la propriété de stabilité
n'est pas dire tement onservée. De plus ette dénition est dire tement ratta hée à un
algorithme de multipli ation modulaire de Montgomery.

Plus pré isément :

Dénition 9 (Notation et terminologie).


Soit ModMul un algorithme tel que pour deux entrées A et B , la sortie soit un entier
−1
naturel S tel que : S ≡ ABR mod N où R est un entier premier ave N .
Un tel algorithme est appelé un algorithme de multipli ation de Montgomery et R est ap-
pelé onstante de Montgomery.

On note S = ModMul(A, B) pour signier que S est la sortie de l'algorithme ModMul


ave pour paramètres d'entrée A et B.

Dénition 10 (Représentation de Montgomery algorithmique).


Soit ModMul un algorithme de multipli ation de Montgomery et R la onstante de Mont-
gomery asso iée à ModMul.
Soit A une entrée de et algorithme et soit Γ ≡ R2 mod N la deuxième entrée de l'algo-
rithme.
On appelle représentation de Montgomery algorithmique de A, l'entier e
A tel que : e=
A
ModMul(A, Γ)
40 Chapitre 3. La multipli ation modulaire

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.

Alors, il existe un unique entier naturel jA tel que : e = A + jA N


A
Preuve :

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.

2. Sinon, Ae > N − 1 alors 0 < A


e − A, e qui implique que jA > 0.
Don jA est un entier naturel.

Remarque 17 (Uni ité) .
L'uni ité de jA permet d'armer que pour un algorithme donné, le représentant de Mont-
gomery algorithmique d'un entier A est unique.

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.

De e fait, les onversions entre représentation de Montgomery algorithmique et représen-


tation lassique peuvent être dénies algorithmiquement.
3.4. Étude approfondie - Généralisation 41

3.4.2 Conversions algorithmiques


Soit ModMul un algorithme de multipli ation de Montgomery et soit R la onstante de
Montgomery asso iée à et algorithme.
Les onversions entre représentation de Montgomery algorithmique et représentation las-
sique peuvent être ee tuées grâ e à des appels à ModMul.

Le passage de la représentation lassique à la représentation de Montgomery algorith-


mique réside dans la dénition même de la représentation de Montgomery algorithmique.
En eet, la représentation de Montgomery algorithmique d'un entier A est dénie omme
la sortie de l'algorithme ModMul(A, Γ).

Le onversion ré iproque est obtenue en ee tuant un appel à e 1).


ModMul(A,
En eet,
e 1) ≡ AR × 1 × R−1
ModMul(A, mod N
≡ A mod 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é.

Cependant, il est possible de généraliser l'algorithme MMn S et de donner des propriétés


générales dépendant de la majoration faite sur les entrées. Les propriétés établies dans la
se tion suivante seront réutilisées dans les as parti uliers des parties II et III.

3.4.3 Algorithme généralisé


Nous rappelons que l'algorithme MMn S est valide pour r ≥ 4.

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.

Dans l'algorithme MMn S , l'itération i = 0 est parti ulière puisque m0 = 0 et m0 N +


S(0) = 0.
De e fait, la détermination de S(1) est réduite au al ul de a0 B et peut être positionnée
en dehors de la bou le.

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

Algorithme 3.6: Généralisation de MMn S


Entrées : A = an an−1 . . . a0 , B = bn bn−1 . . . b0
Pré- al ul : N ′ = −N0−1 mod r
Sortie : S ≡ ABr−n−1 mod N
Algorithme : MMn Sg (A, B)
S(1) ← a0 B
Pour i de 1 à n faire
mi ← s0 N ′ mod r
S(i + 1) ← ai B + mi N r+S(i)
mn+1 ← s0 N ′ mod r
S(n + 2) ← mn+1 N +S(n+1)
r
Retourne S(n + 2)

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

Proposition 4 (Majorations et valeurs parti ulières).


1. Si A = 0 ou B = 0 alors MMn Sg (A, B) = 0
2. Si A ≤ 2N − 1 et B ≤ 2N − 1, alors MMn Sg (A, B) ≤ 2N − 1

3. Si A est quel onque et B ≤ N − 1, alors MMn Sg (A, B) ≤ 2N − 1

4. Si A = 1 et B ≤ 2N − 1, alors MMn Sg (A, B) ≤ N


De plus, si B 6= N , alors MMn Sg (A, B) 6= N .

Preuve :

1. C'est évident : à haque itération, S(i) = 0.


2. On est dans le as parti ulier de l'algorithme MMn S dont la validité a été prouvée.

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

En parti ulier, pour i=n :

(r n+1 − 1)(N − 1) + (r n − 1)N


S(n + 1) ≤
rn
Et
(r n+1 −1)(N −1)+(r n −1)N
(r − 1)N + rn
S(n + 2) ≤
r
C'est à dire

(r n+1 − 1)(N − 1) + (r n+1 − 1)N


S(n + 2) ≤ < 2N
r n+1
Don MMn Sg (A, B) ≤ 2N − 1
4. (a) Pour i entier ompris entre 1 et n, on montre par ré urren e que :

(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

Or, pour i ompris entre 1 et n+1


(r i−1 + 1)N − 1
S(i) ≤ < 2N
r i−1
Pour i ompris entre 1 et n + 1, on a don :

0 < S(i) < 2N
⇒ S(i) = N
S(i) multiple de N

Don si S(n + 2) = N , alors par suite S(1) = N .

Par ontraposition, on en déduit que si S(1) 6= N alors S(n + 2) 6= N e qui


on lut la preuve.


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.

3.4.4 Conversion nale - art antérieur


Comme nous l'avons déjà mentionné (partie 3.4.2), la multipli ation de Montgomery par
1 permet de onvertir la représentation de Montgomery en représentation lassique.
Le fait que la sortie de l'algorithme soit inférieure à N n'a pas été immédiat lorsqu'on
regarde l'art antérieur.

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.

La proposition 4 montre don un résultat identique pour l'algorithme MMn Sg . Le résultat


est amélioré par rapport à l'art antérieur puisque dans notre as, il n'y a au une ondition sur le module.
Deuxième partie
Implémentation

45
Chapitre 4
Algorithme et opérations élémentaires

4.1 Algorithme de multipli ation modulaire de Mont-


gomery
L'algorithme retenu pour l'implémentation est l'algorithme MMn S (algorithme 3.3.4.0
page 37) en base r ≥ 4.
En pratique, la base utilisée pourra être beau oup plus grande que 4. Mais e qui suit est
valable pour toute base de numération plus grande ou égale à 4.
Dans et algorithme, il y a deux types d'opérations :
 une opération de multipli ation partie basse : mi = s0 N ′ mod r
 une opération de multipli ation-addition : xi Y + Z ave xi un hire (mi ou ai ), Y
un nombre (N ou B respe tivement) et Z un nombre orrespondant au résultat de la
multipli ation-addition pré édente.

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.

4.2 Opérations élémentaires


Les al uls de S et T sont semblables, la seule diéren e réside dans le dé alage d'indi e
sur les hires de T pour prendre en ompte la division par r.

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.)

Le al ul de S = ai B + T est réalisé par la bou le suivante :

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.

Remarque 25 (Dé alage) .


Dans ette bou le, le premier al ul de P donne for ément une valeur de p0 nulle. L'indi e
−1 pour t, indique que e premier hire nul n'est pas signi atif et orrespond à la division
par r .
4.2. Opérations élémentaires 49

Remarque 26 (Addition nale).


Dans ette bou le également, il est né essaire d'ee tuer une addition nale : tn = u(n +
1) + sn+1 .
Cette addition n'est pas onsidérée omme étant une opération élémentaire puisque 'est
une addition d'un bit ave un nombre de deux bits dont le résultat ne peut ex éder 3
(représenté par deux bits). D'un point de vue matériel, il n'est pas né essaire de rajouter
un registre pour sauvegarder e résultat au vu du faible temps de al ul de ette opération.
8 16
Ce i est parti ulièrement vrai lorsque la base r est élevée : 2 , 2 , ...

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 :

1. Opération de multipli ation partie basse : mi = s0 N ′ mod r


2. Opération de multipli ation-addition : P = xi yj + zj + u(j)
L'algorithme MMn S est don vu omme le séquen ement de es deux opérations élémen-
taires.

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

5.1 Multipli ation-addition : P = xiyj + zj + u(j)


Dans l'opération xi yj + zj + u(j), xi , yj etzj sont données alors que u(j) est la partie
haute du al ul réalisé lors de l'itération j − 1. Ce i signie qu'il faut attendre le résultat
omplet de l'opération avant de ommen er l'opération suivante. Le temps de al ul de
l'opération de multipli ation-addition étant long, ette solution n'est pas satisfaisante.

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.

Pré isons la dénition de "pipeline" utilisée i i.

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).

Dénition 12 (Temps de transfert).


Le temps de transfert d'un opérateur est le temps é oulé entre l'entrée des données dans
l'opérateur et la sortie.

L'intérêt du pipeline est de pouvoir  dé ouper  un opérateur donné ayant un temps de


transfert important en sous-opérateur dont les temps de transferts sont plus rapides. Ce i

51
52 Chapitre 5. Opérateurs élémentaires

logique logique logique logique logique

registre registre registre registre registre registre


d'entrée intermédiaire 1 intermédiaire 2 intermédiaire 3 intermédiaire 4 de sortie

Fig. 5.1  Opérateur pipeliné de profondeur 4

permet d'augmenter le débit des données.


La stru ture de type FIFO permet de sauvegarder les résultats intermédiaires dans les
registres internes et d'introduire de nouveaux paramètres d'entrée à haque nouveau y le
d'horloge. De e fait, le taux de travail de haque sous-opérateur est maximisé.

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.

Remarque 27 (Chemin ritique) .


Nous avons parlé de dé ouper l'opérateur en sous-opérateurs de temps de transfert plus
rapides. Il faut pré iser i i que les temps de transfert doivent être égaux ou très pro hes.
Le hemin de données orrespondant au plus grand temps de transfert est appelé hemin
ritique. C'est e temps de transfert qui détermine la fréquen e de l'horloge.
De fait, plus e temps est ourt plus la fréquen e est élevée et le débit important.

Un exemple numérique de al ul de l'opération xi Y + Z est présenté i-dessous.

Exemple 2 (Exemple numérique) .


On hoisit la base de représentation égale à 10, xi = 9, Y = 17845, Z = 18791 par
exemple.
On doit al uler S = 9 × 17845 + 18791.

On suppose que l'opération xi yj + zj est pipelinée, de profondeur de pipeline 2.


Le tableau suivant indique la progression du al ul de xi Y + Z .
Nous notons par -, les valeurs que ontiennent les registres intermédiaires. Ces valeurs
orrespondent aux résultats intermédiaires du al ul de xi yj + zj .
La dernière olonne du tableau indique les résultats su essifs des opérations xi yj + zj .
′ ′ ′
Ces résultats sont représentés par un nombre (p ) de deux hires (p0 , p1 )10 .
5.1. Multipli ation-addition : P = xi yj + zj + u(j) 53

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.

Nous introduisons les registres supplémentaires suivant :


 T emp : pour sto ker la partie haute en attendant son addition ave la partie basse de
la sortie suivante.
 carry : le registre de retenue.
 p0 : la partie de poids faible du résultat de l'addition.
Le tableau pré édent est repris dans l'exemple suivant en tenant ompte de es registres :

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

Le pipeline de l'opération de multipli ation-addition (xi Y + Z ), permet l'utilisation d'une


fréquen e d'horloge élevée (en théorie elle d'un additionneur réalisant l'opération p′0 +
T emp + carry = p0 + r × carry en un y le).
Idéalement, il faut hoisir la profondeur de pipeline de façon à e que les temps de trans-
fert des sous-opérateurs soient égaux au temps de transfert de l'additionneur.

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

Fig. 5.2  Réalisation matérielle de l'opération de Multipli ation-addition

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

5.2 Multipli ation partie basse : mi = s0 N ′ mod r


Dans la bou le prin ipale de l'algorithme, il faut à haque itération, déterminer mi , le
hire qui rend la quantité mi N + S divisible par r.

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

6.1 Agen ement des omposants élémentaires


L'ar hite ture matérielle né essite les omposants élémentaires suivants :

 Multiplieur-additionneur pipeliné réalisant l'opération xi yj + zj



 Additionneur réalisant l'opération p0 + T emp + carry

 Multiplieur partie basse réalisant l'opération s0 n

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

partie basse pipeliné b b b

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.

6.2 Paramètres de syn hronisation


La des ription de l'ar hite ture est faîte en toute généralité. Nous n'avons pas pré isé
les tailles de bus interne (b), du module (n), les profondeurs de pipeline des opérateurs
élémentaires.

Dénition 13.
On note ρa , la profondeur de pipeline du multiplieur-additionneur et ρb elle du multiplieur
partie basse.

Lorsque l'ar hite ture est réalisée, es paramètres sont xés.

En revan he, les données sont de taille variable.


Deux as de gures peuvent se présenter en fon tion de la taille des données :

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.

Ces variables sont appelées paramètres de syn hronisation et permettent de satisfaire le


se ond niveau de exibilité, à savoir de pouvoir ee tuer des multipli ations modulaires
de taille variable une fois l'ar hite ture réalisée.

On distingues trois types de paramètres :


60 Chapitre 6. Des ription fon tionnelle de l'ar hite ture matérielle

1. Paramètres de rebou lage :


Leur rle est d'indiquer le nombre de rebou lages né essaires d'une valeur dans son
registre.

Dénition 14 (Rebou lage de mi ).


mi N +S
Lorsque mi est déterminé, la multipli ation
r
peut débuter. La valeur de mi
doit être rebou lée dans son registre pendant toute la durée de la multipli ation.
Le nombre de rebou lages né essaires est noté nrebmi .
D'un point de vue matériel, ela signie que le registre ontenant mi n'est pas modié
pendant nrebmi y les.

Dénition 15 (Rebou lage de sn+1 ).


De même, lorsque sn+1 est déterminé, ette valeur doit être sauvegardée un ertain
nombre de y les dans Stab1 an de l'additionner ave tn à la n de la multipli ation
mi N +S
T ← r
.
Ce nombre de y les est noté nreb .
2. paramètres de laten e :
Ceux- i sont utilisés dans le as où la longueur des opérandes est plus petite que le
nombre de y les né essaires à l'obtention d'une sortie.
Comme nous l'avons expliqué pré édemment, on modélise les  oups d'attente 
par le rajout d'un ertain nombre de `0' sur les poids faible des entrées suivantes.
On distingue deux paramètres en fon tion de la multipli ation onsidérée :

Dénition 16 (Retardement de l'entrée N ).


Lorsque mi n'est pas en ore déterminé, le al ul de mi N ne peut pas débuter. Il faut
don retarder l'arrivée de N. Pour ela, on rajoute un ertain nombre de '0' avant
le premier hire de poids faible de N.
Ce nombre de `0' est noté nlat .
Dénition 17 (Retardement de l'entrée B ).
De même,lorsque la multipli ation ai B + T ne peut pas être ee tuée ar le premier
hire de T n'est pas détermine, il faut retarder l'entrée de B dans le multiplieur.
La même te hnique est utilisée, on rajoute un ertain nombre de `0' avant le premier
hire de poids faible de B.
Ce nombre de `0' est noté n′lat .
3. paramètres de sauvegarde :
Ces paramètres ont le rle inverse des paramètres de laten e et sont utiles lorsque
la longueur des opérandes est plus grande que le nombre de y les né essaires à
l'obtention d'une sortie.
Il faut alors sauvegarder les sorties le temps que tous les paramètres de l'itération
ourante soient entrés dans le multiplieur-additionneur.
Étant donné qu'une nouvelle sortie est disponible à haque oups d'horloge, il faudra
un ertain nombre d'espa e mémoire de b bits pour sauvegarder les sorties su es-
sives.
On distingue également deux as en fon tion de la multipli ation onsidérée :
6.2. Paramètres de syn hronisation 61

Dénition 18 (Sauvegarde de la sortie S ).


Dans le as de l'opération S = ai B + T , le nombre d'espa es mémoire pour retarder
l'arrivée des hires de S dans le multiplieur-additionneur est noté nreg .

Dénition 19 (Sauvegarde de la sortie T ).


mi N +S
Pour l'opération T = r
, on note n′reg le nombre d'espa es mémoire né essaires
pour retarder les hires de T.
En é rivant les onditions de syn hronisation des sorties d'une multipli ation ave les en-
trées de la multipli ation suivante, il est fa ile (bien que fastidieux) d'obtenir les valeurs
des paramètres de syn hronisation.

Par exemple pour nreg :

Proposition 5 (Valeur de nreg ).


Si ρa + ρb + 2 ≤ n, alors nreg = n − ρa − 1.
Sinon nreg = ρb + 1

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.

On distingue alors deux as :


 ρa + ρb + 2 ≤ n
Dans e as, mi est déterminé avant que tous les hires de B soient passés dans le
multiplieur-additionneur.
De plus, ρa + ρb + 2 ≤ n ⇒ ρa + 3 ≤ n + 1 don s0 est également déterminé dans Stab1
avant que les hires de B soient passés dans le multiplieur-additionneur.
Comme la multipli ation suivante ne pas peut débuter avant n+2 y les, il faut retarder
s0 de n + 2 − (ρa + 3) = n − ρa − 1 y les.
Don nreg = n − ρa − 1
62 Chapitre 6. Des ription fon tionnelle de l'ar hite ture matérielle

 ρ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

Remarque 31 (Dimensionnement de la FIFO).


Nous avons vu que le registre Stab1 a un fon tionnement parti ulier. Cependant il est
in lus dans le dé ompte de nreg .
n′reg ne prend pas en ompte e registre puisque n′reg est utilisé lors de la multipli ation
ave dé alage.
On remarque également que nreg > n′reg . La FIFO doit don avoir une taille de au moins
(nreg − 1) × b bits.

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

6.3 Séquen ement


6.3.1 Généralités
B est représenté (de manière fon tionnelle) par n′lat `0' avant le premier hire de poids
faible de B et par les n + 1 hires de B en base r .

Par exemple, si nlat = 3 alors B = (bn . . . b1 b0 000).

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.

De même, N est représenté par N = (0Nn−1 . . . N1 N0 0| .{z


. . 0}).
nlat

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.

Proposition 6 (Périodi ité) .


Le séquen ement des multipli ations-additions de la bou le prin ipale de l'algorithme MMn S
est périodique de période 2n + 2 + nlat + n′lat .
Dans la suite ette période sera notée τ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

Puis, lorsque tous es


hires ont été introduits, les paramètres de laten e font qu'il est
possible de ommen er la multipli ation-additionS ← ai B + T . Les n + 1 + n′lat hires
de B peuvent alors être introduits e qui détermine la nouvelle valeur de S .
L'itération suivante peut débuter en ee tuant les même types d'opération ave la nouvelle
valeur S.
On en déduit don le omportement périodique du séquen ement de période n + 1 + nlat +
n + 1 + n′lat = 2n + 2 + nlat + n′lat

Il sut don de dé rire le séquen ement sur le as parti ulier a0 B d'une part, et sur les
2n + 2 + n′lat + nlat données suivantes. Puis, on déduit le séquen ement global par pério-

di ité de période 2n + 2 + nlat + nlat .

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.

Le omportement de haque multiplexeur est maintenant pré isé.

6.3.2 Comportement de mux1


mux1 est un multiplexeur à deux positions indiquant quel type d'entrée doit être pris au
niveau du multiplieur-additionneur le y le suivant.
Les deux positions sont :
 0 : xi = ai et yj = bj sont pris en entrée.
 1 : xi = mi et yj = Nj sont pris en entrée.

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).

A la n du n + 1-ème y le, les données présentées en entrée du multiplieur-additionneur


sont a0 et bn , tous les hires de B ont don été par ourus.
Au y le suivant, les entrées m1 et le premier hire de N doivent être pris omme entrée
du multiplieur-additionneur.
6.3. Séquen ement 65

Il faut don que mux1 soit dans la position 1 à la n du y le n + 1.


mux1 reste dans ette position pendant que les n + 1 + nlat hires de N sont présentés
en entrée du multiplieur-additionneur et repasse dans la position'0' au 2n + 2 + nlat .
y le
Le omportement général se déduit par périodi ité de période τn = 2n + 2 + n′lat + nlat

6.3.3 Comportement de mux2


mi N +S
A la n de la bou le de al ul de T ← r
, une addition (2 bits) × (1 bit) doit être
réalisée.
mux2 est un multiplexeur à deux positions qui dénit à quel moment doit être faite ette
addition sn+1 + tn .
On rappelle que sn+1 est sto kée dans Stab1 .

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.

Les deux positions de mux2 sont :


 0 : L'addition sn+1 + tn ne peut être ee tuée, tn n'est pas en ore déterminé.
 1 : tn est déterminé, l'addition sn+1 + tn peut être ee tuée.

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

6.3.4 Comportement de mux3


mi N +S
Lors de la multipli ation , un dé alage vers les hires de poids faible doit être
r
ee tué pour tenir ompte de la division par r .
mux3 est un multiplexeur à deux positions indiquant à quel moment on ee tue le dé a-
lage.
Les deux positions sont :
 0 : Le dé alage n'est pas ee tué.
 1 : Le dé alage est ee tué.

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.

Le omportement général se déduit alors par périodi ité.

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.

6.3.5 Rebou lage reb


Cette ommande représente les instants pour lesquels sn+1 doit être rebou lé dans le
registre Stab1 .
Les deux états sont :
 0 : pas de rebou lage
 1 : rebou lage

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

6.3.6 Rebou lage rebm i

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

Proposition 10 (Rebou rebmi ).


lage
Si µ − code < ρa + n + 4, alors rebmi = 0
Sinon :

Si µ − code − (ρa + n + 4) mod τn < n + 1 + nrebmi , alors rebmi = 1
Sinon rebmi = 0

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.

7.1.1 Temps d'exé ution


Pour une taille de module donnée, le nombre de y les né essaire est toujours le même
indépendamment de la valeur des données. Cela est parti ulièrement intéressant dans une
optique de résistan e aux  timing-atta ks .
Le nombre de y les né essaire au al ul d'une multipli ation modulaire selon l'algorithme
MMn S est :

TM Mn S = (n + 1)(2n + 3 + nlat + n′lat ) y les

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

nlat et n′lat '0').


Le nombre de y les peut don être vu omme la somme de :
 n + 1 y les pour a0 B
 n(2n + 2 + nlat + n′lat ) y les pour les n itérations prin ipales ai B + mi Nr +S
 nlat + n + 1 y les pour mn+1rN +S
 n′lat + n + 1 y les pour obtenir tous les hires de la dernière sortie

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.

La surfa e est donnée en nombre de portes Nand équivalent.

Les résultats obtenus sont les suivants :

Multiplieur additionneur pipeliné


X Y S
b b b Bus Pipeline FMAX (MHz) Nb Portes
2 60.49

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

Multipli ation partie basse


X Y

b b Bus Pipeline FMAX (MHz) Nb Portes


0 31.77

Multiplieur partie basse


32 1 57.19 ≈ 4K

pipeliné
1 29.5
64 2 41.91 ≈ 14K
b 3 55.03
LSB

Additionneur 3 entrées
X Y arry

b b 1 Bus FMAX (MHz) Nb Portes


32 200 800
64 166 1400
Additionneur 3 entrées

Bus FMAX (MHz) Nb Portes


32 50 400
b 1 64 50 800
S 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).

7.2 Compromis Surfa e-Temps et omparaison ave l'art


antérieur
Il existe de nombreuses implémentations de la multipli ation modulaire. Elles sont basées,
pour la plupart d'entre elles, sur l'algorithme de Montgomery.
D'autres utilisent l'algorithme de Barret et ertaines sont basées sur des représentations
de nombres qui autorisent une implémentation parallèle des algorithmes.
72 Chapitre 7. Résultats - Comparaison ave l'art antérieur

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).

Ces deux éléments de omparaison sont inséparables et antagonistes.


Entre les ar hite tures très rapides mais o upant une surfa e matérielle importante et
elles qui au ontraire o upent une surfa e plus faible mais ont un temps d'exé ution
long, il faut essayer de trouver le meilleur ompromis entre temps d'exé ution et surfa e
o upée en fon tion des ontraintes matérielles qui sont imposées.

7.2.2 Implémentation selon l'algorithme de Barret


L'algorithme de multipli ation modulaire de Barret a été implémenté dans un premier
temps par Paul Barret lui même [11℄. On trouve ependant très peu d'implémentations
de et algorithme, l'algorithme de Montgomery lui étant préféré très ertainement grâ e
à son appro he privilégiant les hires de poids faible et ompatible ave la propagation
7.2. Compromis Surfa e-Temps et omparaison ave l'art antérieur 73

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).

La te hnique de Barret utilisée i i pour la détermination du quotient est une estimation


faite sur la partie de poids fort du résultat de la multipli ation. Ce i rend d'une part le
haînage de plusieurs multipli ations plus lent (il est né essaire d'attendre la n de la
multipli ation pour onnaître la partie de poids fort), et d'autre part e i rend di ile la
prise en ompte de taille arbitraire. L'ar hite ture présentée par Groÿs hädl est en eet
limitée à une seule taille de module : 1024 bits.

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.

7.2.3 Implémentation selon l'algorithme de Montgomery


Dans l'algorithme de Montgomery l'étape la plus oûteuse en temps de al ul est elle de
S +a B+mi N m N +Si
la détermination de la somme (Si+1 ← i i ou Si+1 ← ai B + i ).
r r
On trouve diérentes stratégies pour limiter le temps de al ul né essaire à la propagation
de la retenue liée à l'addition. Ce temps peut en eet être long au regard de la taille des
nombres employés (512 à plusieurs milliers de bits).
Les deux prin ipales stratégies sont d'une part les ar hite tures utilisant une représenta-
tion redondante et d'autre part les ar hite tures systoliques.
74 Chapitre 7. Résultats - Comparaison ave l'art antérieur

Les ar hite tures redondantes


Bri kell [21℄ a été un des premiers à proposer des implémentations matérielles de la mul-
tipli ation modulaire.
La méthode onsiste à ee tuer une multipli ation modulaire par additions su essives.
Ces additions sont réalisées en parallèle grâ e à la représentation redondante.
Les résultats intermédiaires sont alors onservés sous forme redondante, la onversion en
numération de position étant réalisée uniquement à la n du pro essus.

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.

Les ar hite tures systoliques


Une ar hite ture systolique est généralement onstituée d'une ligne de ellules élémen-
taires. Cha une de es ellules peut transmettre des données de manière syn hrone ave
les deux ellules voisines. Ce i résout le problème de la distribution d'une même quantité
à toutes les ellules omme 'est le as dans l'ar hite ture de Bri kell.
Une des parti ularités de es ar hite tures est qu'il y a deux sens de propagation de l'in-
formation, un pour ha une des deux ellules voisines.

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.

Certaines ar hite tures implémentent l'algorithme en base 2 et permettent l'utilisation


d'une fréquen e élevée.
De plus, la plupart du temps les algorithmes sont simpliés en base 2.
Un autre avantage de l'utilisation de ette base est que la ellule élémentaire est très
simple : la réalisation de la multipli ation est réduite à une porte AND.
En revan he le nombre de ellules élémentaires est plus important et le nombre de y les
également.
7.2. Compromis Surfa e-Temps et omparaison ave l'art antérieur 75

D'autres ar hite tures au ontraire, implémentent l'algorithme en base supérieure à 2.


Les bases r = 22 , 24 , 28 et 216 sont le plus souvent employées.
Plus la base est grande plus la ellule élémentaire est omplexe don oûteuse en terme
de ressour es matérielles. De plus, la fréquen e d'horloge faiblit à mesure que la base
augmente en raison d'un hemin ritique plus long.
Cependant, le nombre de es ellules est moins important et le nombre de y les est réduit
d'un fa teur orrespondant à la puissan e de 2 utilisée pour la base.

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℄.

On rappelle rapidement e prin ipe i-dessous.

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 :

S(i + 1)j−1 + r × c(i)j+1 = S(i)j + ai × bj + mi × Nj + c(i)j

pour tout j ave c(i)0 = 0.

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.

Le s héma 7.1 donne la des ription générale d'une ellule élémentaire.

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

Nj out bj out S(i + 1)j−1 out

Fig. 7.1  Cellule élémentaire d'une ar hite ture systolique


76 Chapitre 7. Résultats - Comparaison ave l'art antérieur

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 :

Nj+1 bj+1 Nj bj Nj−1 bj−1


S(i)j+1 S(i)j S(i)j−1

cj+2 (i) cj+1 (i) cj (i) cj−1 (i)

ai j + 1e ai je ai j − 1e ai

mi CE mi CE mi CE mi

S(i + 1)j S(i + 1)j−1 S(i + 1)j−2

Fig. 7.2  Pipeline des ellules élémentaires

Les ar hite tures systoliques posent ependant ertains problèmes.

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

ette ar hite ture est réalisée.

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.

A l'opposé, le hoix de la base r = 2 a le prin ipal in onvénient de devoir réaliser les


nombreuses é ritures des sorties de haque ellule dans les registres e qui prend plus de
temps que la multipli ation en elle même qui est réduit à la traversée d'une porte AND.

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

Les ar hite tures exibles ( s alable hardware )


Pour la première fois en 1999 une ar hite ture non limitée à une seule taille de module
est proposée par Ten a et Koç au ours de la onféren e CHES'99 [49℄.
Leur implémentation est basée sur l'algorithme lassique de Montgomery. Dans leur ver-
sion, un des opérandes est onsidéré bit par bit, alors que l'autre opérande et le module
sont onsidérés hire par hire, les hires ayant une taille de w bits.
L'opération que doit réaliser une ellule élémentaire est une addition sur es hires. Les
auteurs déterminent le nombre maximal de ellules en fon tion du nombre de hires du
module.
Ils pré isent qu'il est possible d'utiliser moins de ellules que e maximum à ondition de
rajouter des registres entre les ellules an de retarder l'arrivée des données.
Ce i provoque alors une dégradation du temps d'exé ution. De plus pour une surfa e don-
née, plusieurs ongurations peuvent être étudiées an de tirer prot du meilleur temps
d'exé ution en fon tion de la taille des hires et du nombre de ellules utilisées.
Ainsi, en te hnologie 1.2µm CMOS, et pour une multipli ation modulaire de 1024 bits,
ils testent diérentes ongurations qui respe tent une surfa e donnée de 19000 portes
environ.
Le résultat est la réalisation de ette multipli ation modulaire pour w = 36 bits en 3107
y les, soit 34.177 µs à 90 MHz. 10 ellules élémentaires sont alors utilisées.

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.

Quelque soit l'algorithme utilisé et la méthode d'implémentation employée, il est systé-


matiquement question de ompromis entre le nombre de y les, la fréquen e d'horloge et
la surfa e.
Il est don important, non pas de donner des omparaisons uniquement en terme de vi-
tesse d'exé ution ou bien de surfa e, mais de omparer les ompromis temps-surfa e que
proposent es ar hite tures.
De plus, nous nous intéressons aux ar hite tures répondant aux mêmes ontraintes que
les ntres, à savoir :

1. La solution proposée doit être implémentable sur toute taille de ir uit

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.

7.2.4 Comparaison des ompromis temps-surfa e


Contrairement aux autres implémentations, notre ar hite ture utilise une seule ellule.
L'élément variable qui permet d'obtenir plusieurs solutions en terme de surfa e matérielle
80 Chapitre 7. Résultats - Comparaison ave l'art antérieur

est la largeur du bus interne.


Cet élément doit être xé avant la synthèse matérielle en fon tion de la surfa e matérielle
disponible.

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.

Largeur du bus (bits) Nombre de portes (kG)


8 1, 5
16 4, 6
32 15
64 50
128 180

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

Compromis surface-temps 256 bits


10000
’Gaubatz_256_a’
’Gaubatz_256_b’
’Gaubatz_256_c’
’Gaubatz_256_d’
’FB_256’

Nombre de cycles 1000

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

Compromis surface-temps 1024 bits


100000
’Gaubatz_1024_a’
’Gaubatz_1024_b’
’Gaubatz_1024_c’
’Gaubatz_1024_d’
’FB_1024’

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)

X est représenté par 2n hires en base r également.

X = (00x2n−1 . . . xn+1 )(xn xn−1 . . . x1 x0 )


| {z } | {z }
XH XB

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 .

Le but est de réduire X modulo N en utilisant les primitives existantes ModMul et


ModAdd.

8.2 Méthode proposée


Outre l'élément γ déjà pré- al ulé (γ = R2 mod N ) qui sert à
al uler les représentants
′ 3
de Montgomery, il faut ee tuer le pré- al ul supplémentaire suivant : γ = R mod N .

γ et γ′ sont supposés réduits modulo N 'est à dire ompris entre 0 et N − 1.

Les étapes de al ul sont les suivantes :



S0 ≡ XB R mod N
1. S0 = ModMul(XB , γ) 'est à dire que
S0 ≤ 2N − 1

′ S1 ≡ XH R2 mod N
2. S1 = ModMul(XH , γ ) 'est à dire que
S1 ≤ 2N − 1

S2 ≡ (XB + XH R)R mod N
3. S2 = ModAdd(S0 , S1 ) 'est à dire que
S2 ≤ 2N − 1

 S ≡ (XB + XH R) mod N
| {z }
4. S = ModMul(S2 , 1) 'est à dire que X

S≤N

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.

8.3 Validité de la méthode proposée


L'algorithme utilisé dans l'ar hite ture est MMn S . Les entrées de et algorithme sont
telles que A ≤ 2N − 1 et B ≤ 2N − 1 e qui implique que an et bn sont ≤ 1.
Or selon le dé oupage de X en partie haute et partie basse, xn est quel onque et plus
for ément inférieur à 1.

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 :

1. Dans la partie 3.4.3 traitant de l'étude générale de l'algorithme ModMul, le troi-


sième point de la proposition 4 permet de on lure.

2. Pour montrer que sn+1 ≤ 2, on s'intéresse à la dernière itération de la bou le de


al ul de S ← an B + T . (Pour les autres itérations, rien ne hange puisque les ai
pour i < n sont quel onques omme dans le as où A < 2N )
On rappelle la bou le de al ul i-après :

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)

Comme B < N , bn = 0, don lors de l'itération j = n, on a P = an bn + u(n) + tn =


u(n) + tn , don u(n + 1) ≤ 1. C'est à dire sn+1 ≤ 1.

La méthode proposée est don bien valide.
On peut remarquer que XH et XB sont utilisés de la même manière dans l'algorithme (ils
jouent tous les deux le rle de A).

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.

9.1 Masquage des données


Nous présentons rapidement les te hniques de masquage des données. Le but est i i d'in-
troduire le masquage additif qui sera utilisé pour protéger l'ar hite ture ontre les attaques

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).

On distingue deux types de masquage : le masquage multipli atif et le masquage additif.


On se pla e dans le as parti ulier où les opérations sont faites modulo N.
Dénition 20 (Masquage multipli atif ) .
Soit S un entier.
Soit γ un entier aléatoire.
S ′ = S × γ mod N est appelé masquage multipli atif de S.
Ce type de masquage est ee tué ave un entier γ de même taille que le module. Ce i est
né essaire pour ertains moduli parti uliers ontenant de longues séries de 0 ou de 1 dans
leur é riture binaire. En parti ulier, les moduli des ourbes re ommandées par le NIST.
Ce masquage est utilisé pour des al uls sur ourbes elliptiques en représentant les points
par des oordonnées homogènes.
L'in onvénient prin ipal est que la donnée nulle est non-masquée.

Le démasquage est ee tué par le al ul de l'inverse de γ modulo N (opération oûteuse)


et la multipli ation du résultat nal par γ −1 mod N .

Le masquage additif est dénit i-après et permet de pallier à ertains in onvénients du


masquage multipli atif.

Dénition 21 (Masquage additif ) .


S un entier.
Soit
γ un entier aléatoire.
Soit

S = S + γ × N est appelé masquage additif de S.
Ce masquage est ee tué ave un entier γ généralement beau oup plus petit que la taille
du module. De e fait, ontrairement au masquage multipli atif, e masquage n'est pas
adapté aux moduli des ourbes NIST.
En revan he, la donnée 0 est masquée et les al uls de masquage/démasquage sont moins
oûteux que dans le as multipli atif.

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

9.2 Représentation de Montgomery étendue


Nous avons introduit dans 3.4.1, la dénition de représentation de Montgomery algorith-
mique.
En parti ulier, nous avons établi dans la proposition 3 le lien, pour un entier S, entre la
représentation e).
lassique (S ) et la représentation algorithmique (S

Pré isément, il existe un unique entier naturel jS tel que Se = S + jS N .

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}.

Dénition 22 (Représentation de Montgomery étendue).


Soit S un entier ompris entre 0 et N − 1.
S'il existe jS ∈ N tel que b
S = S + jS N , alors l'entier Sb est une représentation de Mont-
gomery étendue de S.

Remarque 41 (perte d'uni .


ité)
Un entier a plusieurs représentations de Montgomery étendues (dont la représentation de
Montgomery algorithmique et la représentation lassique), et toutes sont ongrues à sa
représentation lassique modulo N.

Un masquage additif d'une donnée peut don être vu omme une représentation de Mont-
gomery étendue de ette donnée.

9.3 Mise en pla e d'une ontre-mesure additive


L'algorithme utilisé pour l'implémentation de la multipli ation modulaire peut être onsi-
déré omme une su ession de multipli ations-additions.
Or par dénition, la mise en pla e d'une ontre-mesure additive est une multipli ation-
addition.
Don si l'aléa peut être représenté par un hire, la multipli ation-addition peut être réa-
lisée par la bou le de multipli ation lassique vue dans la partie 4.2.

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.

9.3.1 Données masquées


Soit A un entier ompris entre 0 et N −1 et A sa représentation de Montgomery lassique.
Soit k un entier naturel non nul et soit jA un aléa représenté par k bits.
92 Chapitre 9. Contre-mesures DPA

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

Don b peut être représenté par n+ 1


A hires en base b = αn . . . α1 α0 , ave αn ≤ r ′ −1.
r, A


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.

La proposition 12 assure que b et B


A b sont inférieurs à r′N − 1 et sont représentables par
n+1 hires en base r.
On peut don utiliser es représentations étendues en tant qu'entrées de l'algorithme gé-
néralisé MMn Sg (algorithme 3.4.3 page 42) étudié dans la partie 3.4.3.

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.

La proposition suivante assure la ompatibilité.

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

(r n −1)(r ′ N −1)+(r n−1 −1)N


′ ′
(r − 1)N + r n−1
S(n + 1) ≤ (r − 1)(r N − 1) +
r
r n (r ′ − 1)(r ′N − 1) + (r n − 1)N + (r n − 1)(r ′ N − 1)

rn
(r n r ′ − 1)(r ′N − 1) + (r n − 1)N

rn
A l'itération suivante,

(r n r ′ −1)(r ′ N −1)+(r n −1)N


(r − 1)N + rn
S(n + 2) ≤
r
r n (r − 1)N + (r n r ′ − 1)(r ′ N − 1) + (r n − 1)N

r n+1
N(r n+1 − 1) + (r n r ′ − 1)(r ′ N − 1)

 n+1 r n+1 ′
′2 n

r +r r −r −1 rn r′ − 1
≤ N n+1

 r r n+1
′2
r
⇒ S(n + 2) < N 1+
r

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,

S(n + 2) < (1 + r)N

e qui n'est pas ompatible ave les entrées qui sont inférieures stri tement à rN dans e
as.

9.3.2 Problème de ompression


La ompatibilité assurée par la proposition 13 est né essaire an que les appels su essifs
de l'algorithme MMn Sg ne génèrent pas des sorties de plus en plus grandes.
b = S + jS × N . La proposition arme
La sortie de l'algorithme MMn Sg est de la forme S

don que jS < r , mais par ontre ne donne au une information sur une minoration de jS .

Un programme d'exponentiation modulaire selon l'algorithme  square and multiply  a


été réalisé pour observer la valeur des jS en sortie.
Le message à b est
hirer A représenté par n+1 hires en base r = 264 et est masqué par
un aléa de 63 bits (représenté en hexadé imal) onformément à la proposition 13.

Les résultats sont inquiétants :

Masque (j_S) donné en entrée : 6f5a4d1 0f678749


i = 509 :
j_T=6f5a4d1 0f678749 j_T=6f5a4d1 0f678749 j_sortie=2893619a7171af7e
i = 508 :
j_T=2893619a7171af7e j_T=2893619a7171af7e j_sortie= 5633ab411298d0
i = 507 :
j_T= 5633ab411298d0 j_T= 5633ab411298d0 j_sortie= 1850f849852ff7
i = 507 :
j_A=6f5a4d1 0f678749 j_T= 1850f849852ff7 j_sortie= 8d 4f6 f886b1
i = 506 :
j_T= 8d 4f6 f886b1 j_T= 8d 4f6 f886b1 j_sortie= 41 52 a7 7
i = 506 :
j_A=6f5a4d1 0f678749 j_T= 41 52 a7 7 j_sortie= 17f747 65d
i = 505 :
j_T= 17f747 65d j_T= 17f747 65d j_sortie= 1e1
i = 504 :
j_T= 1e1 j_T= 1e1 j_sortie= 0
i = 504 :
j_A=6f5a4d1 0f678749 j_T= 0 j_sortie= 0
i = 503 :
j_T= 0 j_T= 0 j_sortie= 0
i = 503 :
j_A=6f5a4d1 0f678749 j_T= 0 j_sortie= 0
i = 502 :
9.3. Mise en pla e d'une ontre-mesure additive 95

j_T= 0 j_T= 0 j_sortie= 0


i = 501 :
j_T= 0 j_T= 0 j_sortie= 0

...

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

9.3.3 Masquage additif de la sortie


Il est important de vérier que le rajout d'un masquage additif sur la sortie de l'algorithme
MMn Sg onserve la ompatibilité établie en proposition 13.
C'est l'objet de la proposition suivante qui donne une ondition né essaire sur la taille de
l'aléa utilisé pour e masquage additif.

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.

Les résultats sont rassurants :

Masque (j_S) donné en entrée :


43d 9 bd504029bd
i = 509 :
j_T=43d 9 bd504029bd j_T=43d 9 bd504029bd j_sortie=140751eba65dd385
i = 508 :
j_T=140751eba65dd385 j_T=140751eba65dd385 j_sortie= 746497ad3d7412
i = 507 :
j_T= 746497ad3d7412 j_T= 746497ad3d7412 j_sortie=351b5d68b03df4a9
i = 506 :
j_T=351b5d68b03df4a9 j_T=351b5d68b03df4a9 j_sortie=3441 d163b90ddb8
i = 505 :
j_T=3441 d163b90ddb8 j_T=3441 d163b90ddb8 j_sortie=1b f69b24b89096f
i = 505 :
j_A=43d 9 bd504029bd j_T=1b f69b24b89096f j_sortie=333a13211 dfa106
i = 504 :
j_T=333a13211 dfa106 j_T=333a13211 dfa106 j_sortie=1ba60a7 8fe2288e
i = 504 :
j_A=43d 9 bd504029bd j_T=1ba60a7 8fe2288e j_sortie= deb8fbaa819f8ea
i = 503 :
j_T= deb8fbaa819f8ea j_T= deb8fbaa819f8ea j_sortie=38426248a0459b38
i = 503 :
j_A=43d 9 bd504029bd j_T=38426248a0459b38 j_sortie= e02302f679fe453
i = 502 :
j_T= e02302f679fe453 j_T= e02302f679fe453 j_sortie= f49a2673 18eb3
i = 502 :
j_A=43d 9 bd504029bd j_T= f49a2673 18eb3 j_sortie=121 b522 4b259b
i = 501 :
j_T=121 b522 4b259b j_T=121 b522 4b259b j_sortie=38139f09fd3 ee a
i = 501 :
j_A=43d 9 bd504029bd j_T=38139f09fd3 ee a j_sortie=413f3f5797e87f 3
i = 500 :
j_T=413f3f5797e87f 3 j_T=413f3f5797e87f 3 j_sortie=3a10f890732b 814
i = 500 :
j_A=43d 9 bd504029bd j_T=3a10f890732b 814 j_sortie=28d b53ba3d6a8 f

...
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

j_S en sortie al ulé :


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 nous permet de dénir un algorithme général de multipli ation de Montgomery


prenant en ompte les ontre-mesures additives :

Algorithme 9.1: Algorithme de Montgomery ave ontre-mesure additive

Entrées : δ ≤ 2b − 2, Ab = (αnαn−1 . . . α0 ), Bb = (βn βn−1 . . . β0 ) ave αn , βn ≤ r′ − 1.


Pré- al ul : N ′ = −N0−1 mod r
Sortie : Sb ≡ AbBr
b −n−1 mod N
Algorithme : MM \ b b
n Sg (A, B, δ)
S(1) ← α0 Bb
Pour i de 1 à n faire
mi ← s0 N ′ mod r
S(i + 1) ← αi Bb + mi N +S(i)
r
mn+1 ← s0 N ′ mod r
S(n + 2) ← δ × N + mn+1 N +S(n+1)
r
Retourne S(n + 2)

Dans et algorithme, on retrouve les bou les de al ul de T ← mi N +S


et b+T
S ← αi B
r
détaillées dans la partie 4.2.

On se trouve dans le as général ave bn ≤ r ′ − 1.


Si on se réfère à la remarque 23 page 48 de la partie 4.2, il faut vérier que r ′ − 1 ≤ r − 3.
r r r
Or 4 ≤ r , don 2 ≤ , 'est à dire 2 ≤ r − , puis ≤r−2
2 2 2
′ k b−1 r
De plus, r = 2 ≤ 2 = 2.
′ r
D'où r − 1 ≤ − 1 ≤ r − 3.
2
98 Chapitre 9. Contre-mesures DPA

Cette ondition étant vériée, on en déduit que sn+1 ≤ r ′ .

La remarque 24 page 48 de la partie 4.2, nous indique alors que tn ≤ r ′ + 1.

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.

9.3.4 Démasquage - Corre tion nale


A la n du pro essus d'exponentiation modulaire, nous souhaitons ré upérer la représen-
tation lassique de Sb, 'est à dire l'entier S tel que :

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.

La sortie Sb ≤ r ′ N − 1 est r′ fois trop grande.

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.

Proposition 15 (Corre tion nale) .

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

Or (r ′ − 1)N − 1 < rN < r n+1 don

S(n + 2) < N + 1

C'est à dire que


S(n + 2) ≤ N
2. La preuve est la même que le point 4.b) de la proposition 4.
Il sut juste de vérier que pour i ompris entre 1 et 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

On peut don en on lure que si b = N


MMn Sg (1, S) alors S(2) = N d'après la
proposition 4.
Puis S(1) = rS(2) − m1 N = (r − m1 )N e qui montre que Sb ≡ 0 mod N .
Le résultat du point 2 s'en déduit alors par ontraposition.

9.4 Réper ussion sur le ompromis temps-surfa e


Le sur oût en surfa e est très faible puisque il s'agit de modier seulement une entrée de
l'additionneur réalisant l'opération sn+1 + u(n + 1).

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 :

Les algorithmes MMn S MM


et\ n Sg opèrent sur des données de même taille. La seule
diéren e est que les données an et bn de l'algorithme MMn S sont majorées par 1, mais
sont tout de même représentées par b bits ave b − 1 '0' en poids fort.
Dans l'algorithme MM\ ′
n Sg , les données αn et βn sont majorées par r − 1 mais sont éga-
lement représentées par b bits.
mn+1 N +S
De e fait jusqu'au al ul de , le nombre de y les ne hange pas.
r
100 Chapitre 9. Contre-mesures DPA

En revan he, il faut ompter n y les supplémentaires pour additionner δN au résultat


pré édent.

Le sur oût relatif est don :

TM\
M n Sg
− TM Mn S n
τ := =
TM Mn S TM Mn S

Ainsi pour b = 64, on a le tableau suivant :

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.

Le fait de se passer de la multipli ation partie-basse nous a semblé intéressant et onduit


en eet à une amélioration importante du ompromis temps-surfa e omme nous allons
le voir dans ette partie.

10.1 Algorithme de Montgomery sans détermination


de mi
Il est possible de se passer de la multipli ation partie-basse en onsidérant non plus le

module N mais un multiple parti ulier du module : N × N que l'on note N e . On rappelle
′ −1
que N = −N0 mod r .

Ave e nouveau module, la quantité e


S + mi N est divisible par r si et seulement si
mi = e −1 mod r .
−s0 N

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 .

Pour prendre en ompte le fait que le  module  onsidéré est e , toutes


N les données sont
notées ave un tilde, par exemple e.
X

Cet algorithme noté MMn+1 Se est présenté i-dessous :

Algorithme 10.1: Algorithme de Montgomery sans multipli ation partie-basse

Entrées : Ae = (ean+1 . . . ea0 ) < 2Ne , Be = (ebn+1 . . . eb0 ) < 2Ne


Variable Temporaire : Se = (esn+2 . . . se0 )r ave Se ≤ 2(r + 1)Ne − r.
Sortie : Se ≡ Ae × Be × r−n−2 mod Ne et Se < 2Ne
Algorithme : MMn+1 S( e A, e B)
e
Se ← e a0 B e
Pour i de 1 à n + 1 faire
Se = eai Be + se0 Ne +Se
r
e e e +Se
s0 N
S= r
Retourner S e

10.2 Validité de l'algorithme


Soit n
e e.
N
la taille de
L'algorithme MMn+1 Se peut être vu omme l'algorithme généralisé MMn e Sg utilisant le
module e
N e ′
à la pla e de N et N = 1 pour rendre la détermination de mi triviale.
10.3. Corre tion nale 103

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 .

Comme le fait remarquer Blum, la sortie Se de l'algorithme est en représentation de Mont-


n+2
gomery ave une onstante de Montgomery R = r et ette sortie n'est pas omprise
entre 0 et N − 1.
Se est en eet de l'ordre de grandeur de rN et est stri tement inférieure à e.
2N
Il faut don ee tuer une orre tion nale.

10.3 Corre tion nale


Nous pouvons é rire une proposition similaire au point 4 de la proposition 4 de la partie
3.4.3.

Proposition 17 (Corre tion nale) .


Si Se < 2N
e, e S)
alors MMn+1 S(1, e ≤N e
De plus, si Se 6= N
e , alors MMn+1 S(1,
e S) e 6= N
e.

Si e résultat est satisfaisant dans le as de l'algorithme MMn S puisqu'il permet d'ob-


tenir une sortie en représentation lassique et dans le rang souhaité, il ne l'est pas pour
l'algorithme MMn+1 Se.
En eet, la sortie obtenue est inférieure à e
N mais elle est de l'ordre de r fois trop grande
par rapport à N.

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

Formellement, nous her hons à déterminer algorithmiquement l'entier S dans l'ensemble


{0, . . . , N} tel que Se = Sr n+2 mod N
e, en utilisant l'ar hite ture matérielle sans multi-
plieur partie-basse.

10.3.2 Solution proposée


Nous proposons d'utiliser l'algorithme MMn+1 S , ave le module N représenté par n+1
hires en base r ave Nn = 0.
Il est important que et algorithme soit utilisé ave une taille n+1 an d'être ompatible
ave la onstante de Montgomery utilisée dans ette représentation : R = r n+2 .

Algorithme 10.2: Corre tion nale pour la méthode de Blum

Entrées : 1, Se = (esn+1 . . . se0 )r < 2Ne


Pré- al ul : N ′ = −N0−1 mod r.
Variable Temporaire : S(·) = (sn+1 . . . s0 )r .
Sortie : S ≡ 1 × Se × r−n−2 mod N et S ≤ N
Algorithme : MMn+1 S(1, S) e
S(0) ← Se
Pour i de 1 à n + 2 faire
mi = s0 N ′ mod r
S(i) = mi ×N +S(i−1)
r
Retourner S(n + 2)

La proposition suivante prouve la validité de l'algorithme et donne le résultat attendu :

Proposition 18 (Corre tion nale par l'algorithme MMn+1 S ).


Soit S la sortie de l'algorithme e.
MMn+1 S(1, S)
Alors :
1. Si Se = 0 alors S = 0
2. S ≡ Sre −n−2 mod N
(
Se 6= 0
3. S ≤ N ave égalité si et seulement si
Se ≡ 0 mod N

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

3. Pour e dernier point, nous démontrons les deux propriétés suivantes :

N (2N ′ +r i −1)−1
(a) Pour tout i ompris entre 0 et n + 2, S(i) ≤ ri

La preuve de e point s'ee tue fa ilement par ré urren e sur i.


 mi N +S(i)

S(i + 1) = ≤ (r−1)Nr +S(i)
r
 ′ i −1)−1 
 (r − 1)N + N (2N +rri

 ≤ 
 r 
 N(2N ′ + r i+1 − 1) − 1 

r i+1

2N ′ N − N − 1
(b) <1
r n+2
En eet,

2N ′ N − N − 1 ≤ 2(r − 1)(r n − 1) − N − 1 < 2r n+1 − 2r n

Comme r ≥ 4,
2N ′ N − N − 1 < r n+2
e qui donne le résultat attendu.

On peut don démontrer le troisième point.

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

et omme S(n + 2) est un entier, on en déduit don

S(n + 2) ≤ N

Il reste à montrer l'équivalen e :

(
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

Soit i ∈ {0, . . . , n + 1}, alors S(i) = rS(i + 1) − mi N


Par hypothèse, et omme S(i + 1) est positif, il existe un entier naturel non nul
k tel que S(i + 1) = kN .
Don S(i) = (rk −
 mi )N , or k ≥ 1 don rk − mi ≥ r − mi > 0.
S(i) 6= 0
Ce i signie que
S(i) ≡ 0 mod N
L'impli ation étant démontrée,
 une ré urren e triviale sur i permet d'armer que
S(0) 6= 0
si S(n + 2) = N alors
S(0) ≡ 0 mod N
Ce i a hève la preuve on ernant la première impli ation. (S = S(n + 2) et
Se = S(0))

 ⇐ :
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.


L'algorithme utilise la multipli ation partie basse qu'on a voulu é onomiser.


Il n'est bien évidemment pas question de rajouter un opérateur de multipli ation partie
basse.

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

Fig. 10.1  Suppression du multiplieur partie-basse

Pour un bus interne de 32


bits, le gain matériel par rapport à l'ar hite ture présentée
4000
gure 6.1 page 58 est d'environ 4000 portes, soit un gain relatif de ≈ 27%.
15000
Pour un bus interne de 64 bits, le gain est d'environ 14000 portes, soit un gain relatif de
14000
50000
≈ 28%.

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 nombre de y les né essaires à la réalisation de la multipli ation modulaire selon l'al-


gorithme MMn+1 Se est obtenu en remplaçant n par n+1 dans la formule de al ul de
TM Mn S .
108 Chapitre 10. Améliorations du ompromis temps-surfa e

C'est à dire que,


TM Mn+1 Se = (n + 2)(2n + 5 + n
g g′
lat + nlat )

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

Compromis surface-temps 1024 bits


100000
’Gaubatz_1024_a’
’Gaubatz_1024_b’
’Gaubatz_1024_c’
’Gaubatz_1024_d’
’Mixte1024_coeur.dat’
’LH1024_coeur.dat’

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.

Cette méthode a plusieurs in onvénients :

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

4. Il n'y a pas de relation d'ordre dans es représentations. De e fait, il n'est pas


possible de omparer dire tement deux nombres en utilisant leur expression dans
une base RNS.

Ces in onvénients nous permettent de formuler un ertain nombres de problèmes à ré-


soudre an de rendre e genre de méthode performante.

1. Comment trouver un dimensionnement optimal de l'anneau de al ul, 'est à dire


l'anneau dans lequel sont ee tuées les opérations élémentaires ?

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.

Nous nous sommes ependant intéressés à es problèmes en essayant d'utiliser la repré-


sentation de Fourier.

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.

De nombreux problèmes sont également posés par l'utilisation de ette représentation.


En parti ulier la maîtrise de l'a roissement de la taille des oe ients lorsque plusieurs
multipli ations modulaires su essives sont ee tuées est un problème ré urrent.
Chapitre 12
Représentation de Fourier et
algorithme de Montgomery
Nous avons introduit la représentation polynomiale dans la se tion 1.4 et vu le lien entre
la représentation polynomiale et la représentation en numération de position.
En parti ulier, nous avons rappelé la relation entre le produit de deux nombres (A et B)
représentés en numération de position, le produit des polynmes asso iés (PA et PB ) ainsi
que le polynme représentant le produit AB .

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.

12.1 Transformée de Fourier


12.1.1 Anneau quotient de polynmes
Soit n un entier naturel non nul. Et soit (A, +, ×) un anneau ommutatif unitaire que
nous hoisirons intègre (pour avoir l'équivalen e entre ra ine primitive de l'unité et ra ine
prin ipale de l'unité).

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).

Les lois de et anneau sont :


 l'addition lassique des polynmes, notée +
n
 la multipli ation modulo X − 1, notée ×m

115
116 Chapitre 12. Représentation de Fourier et algorithme de Montgomery

12.1.2 Anneau produit des oe ients de Fourier


Soit (a0 , . . . , an−1 ) un n-uplet d'éléments de A.

Dénition 24 (Représentation de Fourier - Anneau produit) .


Soit ω une ra ine n-ième prin ipale de l'unité, alors l'élément b
a = (b
a0 , . . . , b
an−1 ) de An ,
tel que
n−1
X
pour 0 ≤ i ≤ n − 1, b
ai = aj ω ij
j=0

est appelé représentation de Fourier de (a0 , . . . , an − 1).

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.

12.1.3 Transformée de Fourier


Proposition 19 (Isomorphisme d'anneau).
Les anneaux (A[X]/(X n − 1), +, ×) et (An , +, ·) sont isomorphes.
L'isomorphisme est donné par

Fω : P (X) 7−→ (P (ω i))i=0..n−1

Cet isomorphisme est appelé transformée de Fourier.


L'isomorphisme ré iproque est donné par

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.

L'opération de multipli ation modulo X n −1 est don triviale en représentation de Fourier.

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

Fθ : P (X) 7−→ (P (θi ))i=0..2n−1

où θ est une ra ine 2n ième prin ipale de l'unité.

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

12.2 Algorithme de rédu tion modulaire de Montgo-


mery
L'algorithme de Montgomery utilisé i i est un algorithme de rédu tion modulaire.
En eet, l'idée est d'ee tuer la multipli ation en représentation de Fourier an de proter
du oût linéaire de ette opération.
La multipli ation est don ee tuée séparément. La rédu tion modulaire de Montgomery
s'applique alors sur le produit obtenu.

An de transposer l'algorithme de rédu tion modulaire de Montgomery en représentation


de Fourier, il faut donner une version polynomiale de et algorithme.
Cette version est elle même une adaptation de la version entière rappelée i-après.

12.2.1 Version entière


N = (Nn−1 . . . N1 N0 ) désigne le module représenté en numération de position en base r.
n
On pose R = r et on suppose que R et N sont premiers entre eux.
′ −1
On pose N = −N mod R.

Algorithme 12.1: Multipli ation et rédu tion modulaire de Montgomery

Entrées : A = (an−1 . . . a0 ), B = (bn−1 . . . b0 )


Sortie : S = ABR−1 mod N
Algorithme : RedMod(A, B)
Π ← AB
Q = ΠN ′ mod R
Π + QN
S←
R
Si S ≥ N , S ← S − N
Retourne S
118 Chapitre 12. Représentation de Fourier et algorithme de Montgomery

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.

12.2.2 Version polynomiale


On onsidère les polynmes asso iés aux entiers de l'algorithme pré édent.
n−1
X
On pose don PN (X) = Ni X i .
i=0
PuisR(X) = X n − 1 et on suppose que PN (X) et R(X) sont premiers entre eux de
(1) −1
manière à dénir PN (X) = −PN (X) mod R(X).

Algorithme 12.2: Rédu tion modulaire de Montgomery - version polynomiale

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)

Donnons un exemple d'utilisation de et algorithme.

Exemple 4 (multipli ation modulaire en base 4 ).


Considérons les entiers suivants et leurs polynmes asso iés :
 N = (217)10 , PN (X) = 1 + 2X + X 2 + 3X 3
 A = (94)10 , PA (X) = 2 + 3X + X 2 + X 3
 B = (187)10 , PB = 3 + 2X + 3X 2 + 2X 3
 R = (255)10 , R(X) = X 4 − 1
12.2. Algorithme de rédu tion modulaire de Montgomery 119

Il est fa ile de vérier que haque polynme évalué en 4 donne l'entier asso ié.

L'algorithme de Montgomery en version entier donne le résultat suivant :

S = 40

L'algorithme de Montgomery en version polynomiale donne le résultat suivant :

PS (X) = −5X 2 − 16/3X − 10/3

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.

Ce i rajoute don une ondition supplémentaire sur l'utilisation de la version polynomiale


de l'algorithme : il faut que les dénominateurs qui apparaissent dans le al ul soient
inversibles modulo N, an de pouvoir traduire le résultat polynomial obtenu en résultat
entier.

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.

Ce point est important ar pour traduire l'algorithme de Montgomery en version polyno-


miale dans la représentation de Fourier, il faut maîtriser la taille des oe ients.

12.2.3 Dimensionnement de l'anneau


Les oe ients doivent appartenir à l'anneau A, si la taille de es oe ients roît de
façon in ontrlable, l'anneau ne pourra pas ontenir ette roissan e il y a alors perte des
données.
Si l'anneau est dimensionné de manière à prendre en ompte ette roissan e, les opéra-
tions élémentaires seront très oûteuses.

Dans le as de la multipli ation en représentation polynomiale il est fa ile d'obtenir une


ondition né essaire sur le dimensionnement de l'anneau dans le as parti ulier d'un an-
neau modulaire.
120 Chapitre 12. Représentation de Fourier et algorithme de Montgomery

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.

En ee tuant les onversions né essaires, un algorithme de Montgomery est réalisable en


représentation de Fourier omme ela est présenté dans [58℄.
Le résultat théorique obtenu est qu'un algorithme de multipli ation modulaire de Mont-
gomery peut être ee tué en représentation de Fourier en un oût de O(n log(n)).

L'utilisation pratique de et algorithme (pour une implémentation) reste toutefois dis u-


table.
Si la omplexité asymptotique annon ée est en O(n log(n)), le nombre d'opérations élé-
mentaires en pratique est élevé. De plus, es opérations sont ee tuées sur un anneau qui
a une apa ité de sto kage né essairement supérieure au double de la taille de r selon la
proposition 20 et ne onstituent pas, à notre sens, une méthode e a e pour l'implémen-
tation de la multipli ation modulaire.

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.

13.1 Problèmes à résoudre


Nous proposons de résoudre les problèmes suivants qui apparaissent dans les algorithmes
de rédu tion modulaire :

1. Rédu tion modulo Xn − 1 :


Connaissant une représentation de Fourier a ∈ A2n
e de Pa (X), trouver la représen-
n
tation de Fourier de Pa (X) mod X − 1

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 ?

Solution du premier problème


Le premier problème se ren ontre notamment dans l'algorithme de Montgomery à l'étape
n
où l'on doit al uler Q(X), e al ul se fait modulo R(X) = X − 1 à partir de données
2n
non réduites et appartenant à A[X]/(X − 1).

Proposition 21 (Rédu tion) .


Soit e
a = (ea0 , . . . , e
a2n−1 ) la représentation de Fourier d'un polynme PA (X) élément de
A[X]/(X 2n − 1),
alors b
a = (e
a0 , e a2n−2 ) est la représentation de Fourier dans An de l'élément PA (X)
a2 , . . . , e
n
mod X − 1 de A[X]/(X n − 1)

Justi ations :
On utilise l'égalité suivante :

PA (X) mod X n − 1 = PA (X) div X n + Pa (X) mod X n

On obtient don une expression simple de PA (X) mod X n − 1,

PA (X) mod X n − 1 = a0 + an + (a1 + an+1 )X + · · · + (an−1 + a2n−1 )X n−1

Rappelons i i le diagramme "papillon" (gure 13.1.0.0) de la transformée de Fourier rapide


sur un exemple ave 2n = 8.

+ + +
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

Fig. 13.1  Transformée de Fourier rapide d'ordre 8

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.

Solution du deuxième problème


Le deuxième problème, pour reprendre l'exemple de l'algorithme de Montgomery, est posé
lorsque Q(X) est utilisé pour la multipli ation Q(X) × PN (X).

Q(X) est donné par sa représentation de Fourier dans An .


Or le produit de Cau hy porte
2n
sur les représentations de Fourier de Q(X) et N(X) dans A .

Il est alors né essaire d'avoir une méthode d'extension de la représentation de Fourier de


An à A2n .

On onsidère l'inje tion naturelle dénie de la manière suivante :


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

où K est une matri e ir ulante de première ligne de terme générique kj = 2n−1 (1 −


−j −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.

Démontrons dans un premier temps le lemme suivant :


124 Chapitre 13. Comment rester en représentation de Fourier ?

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

Il reste à trouver, pour j ∈ {0, . . . , n − 1}, les oe ients e


a2j+1 .
Considérons les deux matri es de Vandermonde suivante :
13.1. Problèmes à résoudre 125

 V dM2n (θ) de terme générique θij pour 0 ≤ i, j ≤ 2n − 1


 V dMn (ω) de terme générique ω ij pour 0 ≤ i, j ≤ n − 1
Par dénition de la transformée de Fourier,

   
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.

13.2 Expli itation des morphismes intervenant


On onsidère le diagramme suivant :

e
A/(X 2α − 1) A2α

i j

e
A/(X α − 1) Aα

Le morphisme j est don déni parFθ ◦ i ◦ Fω−1 .


Le oût de al ul du morphisme j est en O(n log(n)) (2 FFT).

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.

SiDK est la diagonalisation de K , on peut é rire K = V dM × D × V dM −1 .


Or si X est un ve teur, al uler V dM × X peut être fait par une FFT et a un oût en
O(n log(n)).
   
e
a1 b
a0
 e   b 
 a3   a1 
Finalement, le oût de l'opération  .  = K  ..  est également en
 ..   . 
e
a2n−1 b
an−1
O(n log(n)).
Con lusion

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 :

 une multipli ation-addition-addition


 une multipli ation partie-basse

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.

Utilisation - Prote tion - Amélioration


En onsidérant l'ar hite ture développée omme une boîte noire délivrant le résultat
d'une multipli ation modulaire de Montgomery, il est possible d'ee tuer la rédu tion
d'un nombre de 2n + 2 hires modulo un nombre de n hires grâ e à trois utilisations
de l'ar hite ture ainsi qu'à une addition modulaire, sans au une modi ation matérielle.
131

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.

Enn, la stratégie onsistant à minimiser le nombre de types d'opérations élémentaires a


été poussée plus loin.
Un algorithme de Montgomery sans multipli ation partie basse est proposé par T. Blum
[18℄. La onséquen e immédiate d'utilisation de et algorithme est de supprimer le multi-
plieur partie-basse dans l'ar hite ture e qui représente un gain onstant d'environ 28%
de la surfa e matérielle quelque soit la taille du module.
Le sur oût relatif (en pour entage) en temps d'exé ution lié à ette supression dé roît si
la taille du module augmente. Le ompromis temps-surfa e obtenu est don de plus en
plus intéressant à mesure que la taille du module augmente et meilleur que le ompromis
obtenu dans l'ar hite ture développée.
Ce résultat onrme que l'idée de her her à minimiser le nombre de types d'opérations
élémentaires est parti ulièrement e a e.

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).

L'idée d'utiliser et algorithme a un in onvénient majeur on ernant la onversion nale


de la représentation de Montgomery à la représentation lassique. Cet in onvénient relevé
par Blum on erne la taille de la sortie nale qui n'est pas omprise entre 0 et N − 1.
Cette onversion nale n'apparait qu'une seule fois dans un long pro essus d'exponentia-
tion modulaire. Elle peut être ee tuée en logi iel omme Blum le suggère.
Il nous semble ependant intéressant de proposer une solution entièrement matérielle pour
réaliser l'exponentiation modulaire. Nous suggérons d'utiliser l'algorithme ave multipli-
ation partie basse pour ette dernière onversion. La multipli ation partie-basse étant
réalisée par le multiplieur-additionneur qui est sous-utilisé une seule fois pour un long
pro essus d'exponentiation.
Nous donnons alors la preuve que ette méthode permet d'obtenir la onversion nale
dans l'ensemble souhaité.
132

Multipli ation modulaire parallèle


Si, dans ertaines représentations, le oût linéaire de la multipli ation reste très intéres-
sant, l'utilisation de es représentations en ryptographie asymétrique reste problématique
à ause de la division.

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.

Nos tentatives pour rester en représentation de Fourier sont en ourageantes, malheureu-


n
sement, seule la rédu tion modulo X − 1 est triviale (proposition 21).
L'extension n'est pas triviale (proposition 22). Cependant, plutt que de al uler deux
FFT de taille 2n pour ee tuer la onversion, nous avons montré que la détermination de
n oe ients est triviale et que le al ul des n oe ients suivants né essite deux FFT
de taille n.
Enn le dernier problème onsistant à trouver une division par Xn − 1 e a e est resté
ouvert.

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

[13℄ L. Batina, S. B. Örs, P. Preneel, and J. Vandewalle. Hardware implementation of a


Montgomery Modular multiplier in a systoli array. April 2003.

[14℄ F. Bernard. S alable hardware implementing high-radix montgomery multipli ation


algorithm. Journal of System Ar hite ture, 53(2-3) :117126, 2007.

[15℄ F. Bernard, E. Garrido, and A. Sauzet. Montgomery modu-


o
lar multipli ation devi e. patent n : WO/2006/103288, 2006.
http ://www.wipo.int/p tdb/en/wo.jsp ?wo=2006103288.

[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.

[18℄ T. Blum. Modular Exponentiation on Re ongurable Hardware. PhD thesis, Fa ulty


of the Wor ester Polyte hni Institute, April 1999.

[19℄ T. Blum and C. Paar. Montgomery Modular Exponentiation on Re ongurable


th
Hardware. In Pro . 14 symp. on Computer Arithmeti , 14-16 april 1999.

[20℄ A. D. Booth. A signed binary multipli ation te hnique. Q. J. Me h. Appl. Math.,


pages 236240, 1951.

[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.

[23℄ B. Crouzevialle and P. Guillot. Implantation de la multipli ation de Montgomery en


langage VHDL. Te hni al report, THOMSON-CSF Communi ations, 2000.

[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.

[30℄ M. Drutarovský, V. Fis her, and M. ’imka. Comparison of two implementations of


s alable Montgomery opro essor embedded in re ongurable hardware. In Pro ee-
dings of the XIX Conferen e on Design of Cir uits and Integrated Systems  DCIS
2004, pages 240245, Bordeaux, Fran e, November 2426, 2004.
135

[31℄ S. E. Eldridge and C. D. Walter. Hardware Implementation of Montgomery's Modular


Multipli ation Algorithm. IEEE Transa tions on Computers, 42(6) :693699, June
1993.

[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.

[34℄ L. Goubin. A Rened Power-Analysis Atta k on Ellipti Curve Cryptosystems. In


Advan es in Cryptology - PKC'03, volume 2567 of LNCS, pages 199210, 2003.

[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.

[38℄ R Hughey and E. Ri e. Multipre ision division : Expanded version.


http ://www. se.u s .edu/resear h/kestrel/papers/new2.pdf.

[39℄ J. Jae, B. Jun, and P. Ko her. Timing Atta ks on Implementations of Die-


Hellman, RSA, DSS, and Other Systems. In Advan es in Cryptology : Pro eedings of
CRYPTO'96, volume LNCS 1109, pages 104113, 1996.

[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.

[44℄ A. Karatsuba and Y. P. Ofman. Multipli ation of multipla e numbers by automata.


Doklady Akademiia Nauk SSSR, 145 :293294, 1962.

[45℄ D. Knuth. The Art of Computer Programming, volume 2 of Seminumeri al Algo-


rithms. Addison-Wesley, 1969.

[46℄ N. Koblitz. Ellipti urve ryptosystems. Mathemati s of Computation, 48 :203209,


1987.

[47℄ P. Kornerup. A systoli , linear-array multiplier for a lass of right-shift algorithms.


IEEE Transa tions on Computers, 43(8) :892898, August 1994.

[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.

[51℄ Ç. K. Koç, A. F. Ten a, and G. Todorov. High-Radix Design of a s alable modular


multiplier. In Ç. K. Koç D. Na a he and C. Paar (Eds), editors, CHES'01, volume
LNCS 2162, pages 185201, 2001.

[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.

[54℄ V. Miller. Use of ellipti urves in ryptography. In Crypto 85, 1985.

[55℄ P. L. Montgomery. Modular Multipli ation Without Trial Division. Mathemati s of


Computation, 44(170) :519521, April 1985.

[56℄ P Naudin and C. Quitté. Algorithmique algébrique. Masson LMI, 1992.

[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.

[62℄ M. Shand and J. Vuillemin. Fast Implementations of RSA Cryptography. In Pro


11th IEEE Symp. on Computer Arith., pages 252259, Windsor, ONT, Canada, July
1993.

[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.

[65℄ C. D. Walter. Te hniques for the Hardware Implementation of Modular Multipli-


ation. In Pro . 2nd IMACS Internat. Conf. on Cir uits, Systems & Computers,
volume 2, pages 945949, Athens, O tober 1998.

[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.

Vous aimerez peut-être aussi