Impl´
ementation d’un multiplieur de Montgomery s´
ecuris´
e et cascadable
Sylvain GUILLEY
GET / T´
el´
ecom Paris, CNRS LTCI,
D´
epartement communication et ´
electronique
46 rue Barrault, 75634 Paris Cedex 13, France.
R´
esum´
e
Pour des questions de facilit´
e d’int´
egration et de
r´
eutilisabilit´
e, les multiplieurs de Montgomery doivent ˆ
etre
rendus modulaires. De plus, ils doivent r´
esister aux at-
taques sur leur impl´
ementation mat´
erielle. Cet article
pr´
esente un multiplieur qui satisfait `
a ces deux contraintes.
1. Introduction
La conception de processeurs d´
edi´
es `
a la cryptographie
asym´
etrique (chiffrement ou signature) soul`
eve deux d´
efis.
Tout d’abord, la taille des op´
erandes utilis´
es dans les
algorithmes augmente rapidement : l’accroissement expo-
nentiel des capacit´
es de calcul (loi de Moore) profite aux
attaques de recherche exhaustive de cl´
es. En mˆ
eme temps,
les attaques «court-circuit », c’est-`
a-dire plus rapides que
les attaques en force brute, continuent `
a s’affiner. Cette
tendance conduit `
a une augmentation du temps de calcul
pour les impl´
ementations logicielles ou `
a une augmenta-
tion de la taille et de la consommation en ´
energie des
impl´
ementations mat´
erielles.
Ensuite, les impl´
ementations des algorithmes sont de-
venues la cible d’attaques. On peut classer ces attaques en
deux cat´
egories, selon qu’elles sont passives ou actives. Les
attaques passives consistent `
a analyser des fuites d’infor-
mation, comme le temps de calcul (timing attack, not´
ee
TA [4]) ou la consommation instantan´
ee [5]. La connais-
sance du profil de consommation peut, par simple recon-
naissance de motifs, aider `
a l’identification d’une partie
du calcul. Cette attaque est appel´
ee SPA. La DPA permet,
quant `
a elle, de retrouver l’activit´
e d’une porte logique par
l’analyse conjointe de nombreux profils de consommation.
Par ailleurs, un attaquant peut aussi d´
ecider de modifier le
d´
eroulement du calcul, quitte `
a ce que son intervention soit
d´
etect´
ee par le mat´
eriel. Cette strat´
egie est `
a l’origine des
attaques par fautes (fault attacks, not´
ees FA [2]).
La plupart des algorithmes asym´
etriques s’appuient sur
des calculs dans des anneaux ou des corps multiplicatifs,
comme (Z/M Z,×). Parmi les algorithmes de multiplica-
tion modulaire propos´
es `
a ce jour, celui de Montgomery [6]
est `
a la fois le plus rapide et le plus appropri´
e pour le calcul
sur les grands nombres.
L’objectif de cet article est de proposer une architec-
ture mat´
erielle d’un multiplieur de Montgomery qui ap-
porte une solution aux deux d´
efis mentionn´
es plus haut.
Pour r´
eduire la taille de l’impl´
ementation, le multiplieur est
cascad´
e en un (ou plusieurs) op´
erateurs traitant des donn´
ees
de taille r´
eduite.
La suite de l’article est organis´
ee de la fac¸on suivante :
l’algorithme de multiplication modulaire de Montgomery,
not´
e MMM dans la suite, est expos´
e dans la section 2. La
section 3 pr´
esente la version cascad´
ee de l’algorithme de
MMM. L´
evaluation de la s´
ecurit´
e de cet algorithme est
l’objet de la section 4. Enfin, l’article se termine par des
remerciements (section 5) et une conclusion (section 6).
2. Multiplication de Montgomery
´
Etant donn´
es trois nombres A,Bet Mv´
erifiant 0
A, B 2×M([7] explique les bornes), l’algorithme de
MMM [6] calcule A×B×2−dlog2(M)e−2mod Mou la
mˆ
eme quantit´
e plus M. Le d´
etail de l’algorithme est expos´
e
ci-dessous pour une impl´
ementation 1-bit s´
erie / parall`
ele :
Algorithme 1 Multiplication Modulaire de Montgomery
1: W:= 0; /* W est l’accumulateur */
2: for i:= 0 to log2(M)+ 1 do
3: if (Ai)then
4: W+ = B;/* «Accumulation »*/
5: end if
6: if (W0)then
7: W+ = M;/* «R´
eduction »*/
8: end if
9: W >>= 1; /* Ici, W est pair */
10: end for
11: return W;/* R´
esultat de la MMM
*/
Cet algorithme s’impl´
emente naturellement avec un
chemin de donn´
ee de taille log2(M)+ 2 bits. La valeur
typique de ce nombre est 2 048 bits pour RSA.
3. Impl´
ementations
Cette taille de chemin de donn´
ee est ´
elev´
ee. La
r´
ealisation mat´
erielle d’un tel bloc posera in´
evitablement
des probl`
emes lors de l’´
etape de conception physique (ba-
ckend). Par ailleurs, cette taille est sujette `
a des change-
ments inopin´
es : la publication d’une nouvelle cryptanalyse
peut n´
ecessiter un redimensionnement du jour au lende-
main. Pour ces deux raisons, il est souhaitable de d´
ecouper
le multiplieur en petits modules, manipulant des quantit´
es
de nbits, avec par exemple n∈ {8,16,32,64}.
3.1. Algorithme MMM cascad´
e
Le d´
ecoupage de l’algorithme 1 pr´
esente une difficult´
e
majeure. Si les calculs sont effectu´
es de fac¸on s´
equentielle
sur les mots wj(jpart de 0et s’incr´
emente `
a chaque
it´
eration) de l’accumulateur W=Pj2n·jwj, la valeur
de chaque wjdevient inconnue au bout de nit´
erations, `
a
cause du d´
ecalage `
a droite syst´
ematique de W(ligne 9 de
l’Alg. 1). Cet inconv´
enient est illustr´
e dans le tableau 1(a).
Une premi`
ere fac¸on de lever cette difficult´
e consiste
`
a repr´
esenter les op´
erandes dans un autre syst`
eme de
num´
eration, o`
u ils sont codables sur nbits. Une mise en
œuvre possible est l’utilisation du RNS [1].
Une deuxi`
eme solution s’appuie sur un calcul glis-
sant. La d´
ecoupe de l’accumulateur Wd´
epend alors
de l’it´
eration icourante : on d´
efinit wi,j par W=
Pj2n·jiwi,j , comme repr´
esent´
e dans le tableau 1(b).
TAB.1. Deux fac¸ons de d´
ecouper les it´
erations de la
MMM en ´
etapes manipulant des nombres de nbits. Les
`
eches symbolisent les retenues entrantes et sortantes.
(a) D´
ecoupage droit
wj
...
j
i
0
n1
LSB
MSB
MSB
(b) D´
ecoupage diagonal
wj
...
j j 1
Cette derni`
ere solution a ´
et´
e retenue parce que la re-
construction de W`
a l’issue du calcul est imm´
ediate. Les
ressources n´
ecessaires pour son impl´
ementation sont :
un registre de nbits pour les valeurs glissantes de wj,
deux FIFO de 2×nbits pour les valeurs de bjet mj
qui, du point de vue du registre de wj, se d´
ecalent
d’un bit `
a gauche `
a chaque it´
eration i[0, n[,
deux FIFO de nbits diff´
erentes pour les retenues
carry {b, m}de l’accumulation de Bet de M,
deux FIFO de nbits pour la m´
emorisation des accu-
mulations de B(mot aj) et des r´
eductions modulaires
(mot not´
ered)`
a effectuer. Ces FIFO sont initialis´
ees
lors du calcul sur les bits de poids faible (j= 0).
TAB.2. Temps d’ex´
ecution moyen d’une exponentia-
tion modulaire logicielle (´
evalu´
e avec time ···).
Nombre de bits Temps d’ex´
ecution [s]
GMP MMM cascad´
e
28= 256 0.000 0.100
29= 512 0.000 0.710
210 = 1024 0.030 5.310
211 = 2048 0.190 40.990
212 = 4096 1.290 322.000
213 = 8192 7.110 2571.740
3.2. Mod`
ele logiciel de l’algorithme MMM cascad´
e
L’algorithme cascad´
e a ´
et´
e valid´
e par logiciel contre :
– la fonction BN mod mul montgomery de la bi-
blioth`
eque OpenSSL (http://www.openssl.org),
la fonction d’exponentiation modulaire mpz powm
de la biblioth`
eque GMP (http://www.swox.com/gmp).
La fonctionnalit´
e de l’algorithme se conforme aux r´
esultats
de ces deux tests.
L’impl´
ementation logicielle de l’algorithme MMM cas-
cad´
e a ´
et´
e optimis´
ee pour les processeurs INTEL. A titre
d’exemple, les accumulations sont effectu´
ees par la fonc-
tion impure suivante utilisant la macro GNU asm de g++ :
static inline void full_add (
unsigned int & accu ,
unsigned int & carry ,
unsigned int opr )
{asm (
"mov $0,%0\n"
"add %3,%1\n"
"adcl $0,%0\n"
"add %4,%1\n"
"adcl $0,%0\n"
: "=d"(carry) , "=a"(accu)
: "a"(accu) , "g"(opr) , "g"(carry)
) ;
}
Comme indiqu´
e dans le tableau 2, la performance logi-
cielle de l’algorithme MMM cascad´
e est m´
ediocre. La rai-
son est que l’impl´
ementation est 1-bit s´
erie / parall`
ele : le
multiplieur du processeur de calcul n’est donc pas utilis´
e,
alors que OpenSSL et GMP le sollicitent.
3.3. Description mat´
erielle de la MMM cascad´
ee
Le mat´
eriel r´
ealisant une it´
eration de l’algorithme de
MMM (Alg. 1) se r´
eduit `
a deux additionneurs. Ce bloc
est appel´
eOP pour signifier qu’il prend en charge la par-
tie op´
erative du calcul. Une impl´
ementation possible est un
double additionneur `
a propagation de retenue (carry pro-
pagation adder, CPA). Une autre alternative consisterait
en l’utilisation d’un additionneur sans retenue (carry save
adder, CSA). Les deux architectures ont ´
et´
e d´
ecrites. Une
tranche d’un bit k[0, n[de OP en CPA est repr´
esent´
ee
dans la figure 1. Les op´
erandes sur nbits s’´
ecrivent :
wj=Pn1
k=0 2kwk
j(idem pour bjet mj).
Les enchaˆ
ınements des it´
erations n´
ecessitent des re-
gistres de m´
emorisation ainsi qu’un contrˆ
oleur. Ces
FA1
carry bk
in
wk
j
carry mk
in
FA0
mk
j
bk
j
carry mk
out =carry mk+1
in
wk+1
j
k[0, n[
carry bk
out =carry bk+1
in
FIG.1. Mat´
eriel (full-adders, FA) r´
ealisant les deux ac-
cumulations des lignes 4 et 7 de l’Alg. 1 sur un bit k.
aj
carry m
carry b
mj
bj
wj,in red
OP
1-bit
···
wj,out
n
n
Op´erateur
nbits
Contrˆoleur
n
n
n-bit CTRL
FIG.2. Mat´
eriel de m´
emorisation (registres ) et de
contrˆ
ole (CTRL) associ´
e`
a l’op´
erateur nbits OP.
TAB.3. R´
esultats de synth`
ese logique du bloc de plus
haut niveau MMM WORAM 1PORT pour n= 32.
Technologie Aire Vitesse
APEX 20K200EFC484 934 LCELLs 38.2MHz
ASIC : 2λ= 0,25 µm279 000 µm2135 MHz
ASIC : 2λ= 0,13 µm32 235 µm2200 MHz
ressources additionnelles sont instanci´
ees autour de
l’op´
erateur OP, comme illustr´
e dans la Fig. 2.
Une m´
emoire externe, par exemple une RAM, stocke les
op´
erandes dans leur int´
egralit´
e. La mise `
a jour des registres
de la Fig. 2 et l’´
ecriture de mots de nbits dans la m´
emoire
s’appuie sur un ordonnancement strict des acc`
es `
a la RAM.
Une conception rigoureuse du bloc de contrˆ
ole CTRL per-
met de se passer d’acc`
es concomitants `
a la RAM d`
es que
n5, de sorte qu’une m´
emoire simple port est suffisante.
La synth`
ese logique a ´
et´
e r´
ealis´
ee sur le bloc de plus
haut niveau : MMM WORAM 1PORT. Il s’agit du mat´
eriel
repr´
esent´
e dans la Fig. 2 ´
equip´
e d’une interface lui permet-
tant de se relier directement `
a une RAM synchrone simple
port. Les r´
esultats de synth`
ese sont list´
es dans la table 3.
TAB.4. Contre-mesures du module RSA.
TA
[4] SPA
[5] DPA
[5] FA
[2] Contre-mesure
xTemps d’ex´
ecution constant
Utiliser la MMM.
xMasquage de la cl´
e
EE+rnd ·φ(M).
x x Profil r´
egulier des traces
Echelle de Montgomery.
x x Masquage des donn´
ees
⇒ ×1 × rnd dans MMM.
xInt´
egrit´
e de calcul
Preuve par 2n1[3].
4. S´
ecurit´
e structurelle de l’algorithme
L’algorithme RSA calcule l’exponentielle C=
AEmod Md’un message Aencod´
e comme un grand en-
tier avec la cl´
eE. L’exponentiation peut utiliser l’algo-
rithme «square-and-multiply »ou «l’´
echelle de Montgo-
mery, qui font tous deux appel `
a la multiplication MMM.
Le niveau de s´
ecurit´
e du module RSA utilisant le bloc
de MMM cascad´
e peut ˆ
etre adapt´
e en fonction des appli-
cations. La table 4 montre les techniques utilisables pour
lutter contre les attaques physiques sur le cryptoprocesseur.
5. Remerciements
Ce travail a b´
en´
efici´
e des riches commentaires et des
suggestions fructueuses de Philippe Hoogvorst et de Re-
naud Pacalet ({hoogvorst, pacalet}@enst.fr).
6. Conclusion
Un multiplieur modulaire cascadable de nNbits
a´
et´
e d´
ecrit. L’impl´
ementation d´
emontre la fonctionna-
lit´
e du multiplieur. Dans le cadre de calcul de chiffre-
ments ou de signatures RSA, le multiplieur est robuste
vis-`
a-vis des attaques connues. Le passage `
a une architec-
ture n-bit parall`
ele/parall`
ele (i.e. en radix 2n) am´
eliorera
consid´
erablement les performances en vitesse de calcul.
R´
ef´
erences
[1] J.-C. Bajard. An RNS Montgomery Modular Multiplication
Algorithm. IEEE Transactions on computer, 47(7), 1998.
[2] R. J. L. Dan Boneh, Richard A. Demillo. On the Importance
of Checking Cryptographic Protocols for Faults. Advances in
Cryptology, Proceedings Eurocrypt’97, pages 37–51, 1997.
[3] P. Hoogvorst and S. Guilley. Proof by 2m1: a low-cost
method to check arithmetic computations. SEC 2005, 2005.
[4] P. Kocher, J. Jaffe, and B. Jun. Timing Attacks on Implemen-
tations of Diffie-Hellman, RSA, DSS, and Other Systems.
CRYPTO’96, 1109 :104–113, 1996.
[5] P. Kocher, J. Jaffe, and B. Jun. Differential Power Analysis :
Leaking Secrets. CRYPTO’99, 1666 :388–397, 1999.
[6] P. Montgomery. Modular Multiplication Without Trial Divi-
sion. Mathematics of Computation, 44, 1995.
[7] C. Walter. Montgomery exponentiation needs no final sub-
stractions. Electronics Letters, 35(21) :1831–1832, 1999.
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !