ELGamal
Andreea Dragut ([email protected]) Cours de cryptographie Chapitre IV
4.0.1 Fonctions conjectur´ees `a sens unique : Le probl`eme du lo-
garithme discret
Definition. Un groupe cyclique G, est un groupe dans lequel il existe un ´el´ement gtel
que tout ´el´ement du groupe puisse s’exprimer sous forme d’un multiple/puissance de g, cet
´el´ement gest appel´e g´en´erateur du groupe et on note G=< g >.
En notation additive : (G, +) [n]g
En notation multiplicative : (G, ·)gn
Definition. Soit Gun groupe et gG, alors le groupe sous-groupe Hg´en´er´e par g, not´e
H=< g >, est le plus petit sous-groupe de Gcontenant g.
Definition. L’ordre d’un ´el´ement gd’un groupe Gest l’ordre du sous-groupe H=< g >
g´en´er´e par cet ´el´ement. L’ordre de gest not´e ordre(g)ou o(g). Si l’ordre est fini, il est le
plus petit entier m > 0
En notation additive : mg = 0
En notation multiplicative : gm= 1
On peut dire que si l’ordre de gest fini ordre(g) = |H|=|< g > |la cardinalit´e
sous-groupe H=< g > en´er´e par g.
Exemple. Trouver l’ordre de l’´el´ement 2dans
F
11 = (Z/11Z)={1,2, ..., 10}le groupe multiplicatif de restes modulo 11
F
17 = (Z/17Z)={1,2, ..., 16}le groupe multiplicatif de restes modulo 17
Dans F
11 nous avons 20= 1, 21= 2, 22= 4, 23= 8, 245, 2510, 269, 277,
283, 296. Mais 210 1 et on commence `a r´ep´eter les ´el´ements.
Donc ordre(2) = 10 et il g´en`ere tout le groupe G.
Dans F
17 nous avons 20= 1, 21= 2, 22= 4, 23= 8,24= 16, 2515, 2613, 279.
Mais 281 et on commence `a r´ep´eter les ´el´ements. Donc 2 n’est pas un g´en´erateur pour
1
F
17. Il g´en´ere que le sous-groupe H=<2>={1,2,4,8,9,13,15,16}et son ordre est la
cardinalit´e de ce sous-groupe, donc 8.
Le probl`eme DLP peut ˆetre formul´e pour un groupe g´en´erique Het < g >=GH.
On va ´etudier apr`es le DLP sur des groupes particuliers : le groupe multiplicatif (Z/pZ)
et le groupe additif de courbes elliptiques. Pour certains groupes le probl`eme du logarithme
discret est ”difficile” : soit on ne connaˆıt aucun algorithme sous-exponentiel qui r´esout le
probl`eme DLP, soit on ne connaˆıt aucun algorithme qui r´esout le probl`eme DLP pour des
tailles grandes (disons de 1024 bits et plus).
Definition. [Le probl`eme du logarithme discret DLP] Soit Hun groupe et gun
g´en´erateur d’ordre pd’un sous-groupe GH.´
Etant donn´es AG, trouver xtel que
A=gxlogg(A) = x.
Le syst`eme de chiffrement El Gamal est bas´e sur le probl`eme du logarithme discret, c’est
`a dire d’inverser l’exponentielle modulaire. Il a ´et´e cr´e par Taher Elgamal. Cet algorithme
est utilis´e par GNU Privacy Guard et de r´ecentes versions de PGP.
La cl´e priv´ee de de ElGamal est a. La cl´e publique de ElGamal est A=ga(mod p),
o`u gHavec un ordre pgrand. D´ecrypter cl´e publique de ElGamal en partant de sa cl´e
publique revient `a r´esoudre un probl`eme du logarithme discret pour y=A.
Cr´eation d’un param`etre publique
Un tiers parti de confiance ”Trent” :
Hle groupe choisi
gHavec un ordre pgrand
Cr´eation de cl´e
on choisit 1 ap1.
on calcule A=ga(mod p)
on publie la cl´e publique (H, p, g, A)
Cryptage
Input :
la cl´e publique (H, p, g, A)
le message m
une cl´e ´eph´em`ere k
calcul :
y1=gk(mod p)
y2=m·Ak(mod p)
Output : (y1, y2)
2
D´ecryptage
Input :
la cl´e priv´ee a
le message chiffr´e (y1, y2)
calcul : (ya
1)1y2(mod p)
Th´eor`eme. [El Gamal fonctionne correctement] Soit Hun groupe et gun g´en´erateur
d’ordre pd’un sous-groupe GH(donc Gap´el´ements). Soit la cl´e priv´ee atel que
1ap=ord(G). Soit le message xet une cl´e ´eph´em`ere k. En calculant A=ga
(mod p),y1=gk(mod p),y2=m·Ak(mod p)selon l’algorithme du ElGamal nous avons
que (ya
1)1y2x(mod p)
Preuve. On peut calculer (ya
1)1parce que avec la cl´e priv´ee on peut calculer d’abord z=ya
1
(mod p)et apr`es z1(mod p).
(ya
1)1y2(gak)1(m·Ak)(gak)1m(ga)k
parce que A=ga(mod p)donc (ya
1)1y2m(mod p).
Algorithmes g´en´eriques pour r´esoudre le probl`eme DLP
Proposition. Soit Gun groupe et gGun ´el´ement d’ordre Np=ord(G). Le probl`eme
DLP :trouver xtel que gx=Apeut ˆetre r´esolu en O(N) = O(Sx)pas.
Preuve. On g´en`ere par multiplication successive la liste des valeurs Sxpour x= 0,1, . . . , N
1. S’il existe une solution gx=Aon va la retrouver dans la liste.
Le probl`eme DLP et l’algorithme de Shanks peuvent ˆetre formul´es pour un groupe
g´en´erique Het < g >=GH.
Proposition. [Shanks – pas de b´eb´e, pas de g´eant] Soit (G, ·)un groupe et gG
un ´el´ement d’ordre N > 2(pour H=G=Zp,N=p1. L’algorithme suivant r´esout le
probl`eme DLP en O(Nlog N)pas.
1. soit s= 1 + bNc>N
2. calculer gs
3. cr´eer deux listes
L1e, g, g2, g3, . . . , gs
L2A, A ·gs, A ·g2s, A ·g3s, . . . , A ·gs2
4. trouver une occurence commune gr0=A·gk0·s
5. x=r0+k0·sest une solution pour gx=A.
Complexit´e d’attaque de Shanks :O(slog s)'O(Nlog N)
cr´eer les deux listes : 2smultiplications
3
si une occurrence commune existe, on peut la trouver en O(log s)
Preuve. On utilise le th´eor`eme d’Euclide.
Soit x0la solution du DLP gx=A.
Alors, ils existent k0, r0entiers tels que x0=sk0+r0,0r0< s, donc 1x0< N.
q0=x0r0s < N
s< s, parce que nous avons choisi s < N.
On peut r´ecrire gx0=Acomme L13gr0=A·gk0·s,L2,0r < s,0k < s. Donc
chaque liste a au plus s´el´ements.
R´eduction `a un probl`eme connu
Supposons que dans le groupe Gon peut r´esoudre (DLP) gx=A(mod ord(g) = p) ”fa-
cilement” (c.`a-d. en complexit´e sous-exponentielle). Alors, dans un groupe plus gen´eral on
essaye de r´eduire ”facilement” le (DLP) dans le groupe H`a plusieurs probl`emes (DLP)
gx=A(mod ord(g) = p) dans des sous-groupes de type G=< g >, avec ord(g) = pun
entier premier. Ce dernier probl`eme ´etant similaire au (DLP) gx=A(mod ord(g) = p).
1. G=< g > avec ord(g) = pk: en construisant gpk1qui est un ´el´ement d’ordre p.
2. G=< g > avec ord(g) = pk1
1, . . . , pkn
n: en construisant gi=gN/pki
iqui est un ´el´ement
d’ordre ord(gi) = pki
iet en utilisant le th´eor`eme des restes chinois pour assembler les
solutions.
Proposition. Soit Gun groupe, pun nombre premier, gG. Il faut Sppas pour r´esoudre
le probl`eme
DLPp:gx=het ord(g) = p
Alors si ord(g) = pkil faut O(kSp)pour r´esoudre DLP gx=h.
Preuve (´ebauche).Soit xla solution du DLP.
x=x0+x1p+··· +xpk1
k1
ord(gpk1) = p ´elever `a la puissance pk1, donc
hpk1= (gx)pk1
= (gx0+x1p+···+xk1pk1)pk1
=gx
0pk1·(gpk)
|{z}
=1
x1+x2p+···+xk1pk1
=gpk1x0
(DLPpfacile) :(gpk1)x0=hpk1, gpk1Get son ordre est
ord(gpk1) = p
4
Pour d´eterminer x1, il faut ´elever `a la puissance pk2. Donc
hpk2=gx0pk2·gxpk1
1
(gpk1)x1= (h·gx0)pk2
Proposition. Soit Gun groupe et gG,ord(g) = N=pk1
1·pkt
t. Soit un algorithme qui
r´esout DLPpki
i
en O(Spiki)pas, alors DLP gx=hpeut ˆetre r´esolu dans O(Pt
i=1 Spiki+log N)
pas.
Algorithme Pohling Hellmann
1. Pour chaque 1 it,gi=gN/pki
i(mod N) et hi=hN/pki
i(mod N), ord(gi) = pki
iest
soit zila solution du DLPigizi=hi.
2. on r´esout le syst`eme
xz1(mod pk1
1)
.
.
.
xzt(mod pkt
t)
Preuve. Le premier pas prend O(PkiSpi)et le syst`eme du th´eor`eme des restes chinois
prend O(log N)pas.
Si xest la solution du syst`eme de congruences pour chaque iil existe un wientier et
x=zi+pki
iwi.
(gx)N/pki
i=g
(zi+pki
iwi)N
pki
i
=g
Nzi
pki
i·gNwi=g
Nzi
pki
i(gN)wi
gN1 (mod N)parce que ord(g) = N
=g
N
pki
izi
=gzi
i=hi=h
N
pki
i
Donc N
pki
i
xN
pki
i
loggh(mod N).
Parce que pgcd N
pki
i
,N
pkj
j= 1 pour tout i6=j, nous avons qu’il existe les entiers
α1, . . . , αt
α1
N
pk1
1
+··· +αt
N
pkt
t
= 1
donc t
X
i=1
αi
N
pki
i·x
t
X
i=1
αi
N
pki
i
logg(h) (mod N)
donc x= loggh(mod N).
5
1 / 14 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!