Sunteți pe pagina 1din 14

Chapitre 2

Les codes en cryptographie


L
e premier, McEliece eut lide, en 1978, dutiliser la thorie des codes correcteurs derreurs
des ns cryptographiques, et plus prcisment pour un algorithme de chiffrement asym-
trique. Le principe du protocole quil dcrivit consiste faire envoyer par Alice un message
contenant un grand nombre derreurs, erreurs que seul Bob sait dtecter et corriger.
2.1 Chiffrer avec des codes
2.1.1 Le cryptosystme de McEliece
La scurit du systme repose donc sur deux problmes distincts (voir chapitre prcdent) :
lindistingabilit entre un code structur et un code alatoire ;
le problme du dcodage dun code alatoire.
Le cryptosystme de base
Soit n = 2
m
, x le message, G la matrice gnratrice sous forme systmatique dun code,
x

= xG est de la forme (x[y) o y est (n k)-bits. Ce sont ces n k bits (redondance) qui
permettent de corriger des erreurs. Il faut m bits pour corriger une erreur, soit, pour corriger t
erreurs, mt bits au plus (gnralement moins car les erreurs sont interchangeables). Comme on a
2
m
k redondances, on peut corriger t
0
erreurs, avec t
0
(2
m
k)/m. Par exemple, avec m = 10
(donc n = 1024) et k = 512, on peut corriger 52 erreurs au moins. Un tel code est gnr par un
polynme de degr t de F
2
m.
Dans le cryptosystme de McEliece, la matrice gnratrice G est la cl secrte de Bob. Pour
fabriquer une cl publique, on multiplie G gauche par une matrice binaire non singulire (i.e.
inversible) S de dimension (k, k). Cette nouvelle matrice G

= SG sera donc toujours une matrice


gnratrice dun code : le produit de S par G revient, en effet, prendre une combinaison linaire
des lignes de G. Cependant, il est facile de retrouver G partir de G

. Il suft de faire une limina-


tion gaussienne pour obtenir la matrice identit en premire partie de G. Pour parer cette attaque,
on multiplie droite G par une matrice de permutation P de dimension (n, n). La cl publique de
Bob sera alors :
G

= SGP.
19
2.1 Chiffrer avec des codes Chapitre 2
1. [Gnration de cls] Soit G la matrice gnratrice sous forme systmatique dun
code, on choisit alatoirement S une matrice binaire inversible de dimension (k, k)
et une matrice de permutation P de dimension (n, n). On calcule la cl ublique :
G

= SGP.
2. [Chiffrement] Bob publie G

= SGP. Si Alice veut envoyer le message x (consti-


tu de k bits) Bob. Alice gnre un mot de n bits alatoires e de poids t, elle
calcule et envoie Bob
y = xG

+e.
3. [Dchiffrement] Pour y = xG

+e, la connaissance des secrets permet :


(a) de calculer u = yP
1
, u est alors un mot du code de Goppa de matrice gnra-
trice SG contenant t erreurs ;
(b) de dterminer u

en corrigeant les erreurs de u;


(c) calculer x = u

S
1
.
FIGURE 2.1 Le protocole de McEliece
Le principal avantage de cette mthode est sa facilit dimplmentation : les seules oprations
sont des oprations bit bit. Par contre, limplmentation ncessite beaucoup de place mmoire.
Ce cryptosystme, reposant sur un problme difcile de la thorie des codes, na pas rencontr
de vritable soutien dans la communaut cryptographique. Lune des principales raisons de cet
tat de fait est la taille de la cl. Pourtant, le cryptosystme de McEliece possde des proprits
intressantes, citons notamment
la scurit crot beaucoup plus avec la taille des cls que pour le systme RSA;
la rapidit du chiffrement.
Un autre avantage est de reposer sur un problme trs diffrent des algorithmes asymtriques
usuels. En consquence de quoi une perce thorique dans le domaine de la factorisation, qui rui-
nerait RSA, naffecterait en rien ce cryptosystme.
Le cryptosystme de McEliece rsiste ce jour toute tentative de cryptanalyse, mais est ra-
rement utilis en pratique du fait de la grande taille des cls. On peut cependant noter quil a t
utilis pour le chiffrement dans Entropy, une alternative Freenet
1
2.1.2 La variante de Niederreiter
En 1986, Harald Niederreiter a propos un autre cryptosystme fond sur la thorie des codes.
Le cryptosystme de Niederreiter a t prouv quivalent celui de McEliece en 1994 par Y.X. Li,
R.H. Deng et X.M. Wang [75].
1. Entropy est un rseau dcentralis de communication peer-to-peer, conu pour rsister la censure, tout comme
Freenet. Entropy est une base de donnes crite en C. Il rassemble les contributions de bande passante et despace
de stockage de membres pour permettre aux utilisateurs de publier anonymement ou rcuprer des informations de
toutes sortes. Le nom Entropy est lacronyme de Emerging Network To Reduce Orwellian Potency Yield, en rfrence
George Orwell auteur de 1984 et de sa police de la pense totalitaire esclavagisant des personnes par le contrle de
leurs informations.
20
2.2 Signer avec des codes Chapitre 2
1. [Gnration de cls] Soit ( un code linaire q-aire t-correcteur de longueur n et
de dimension k. Soit H une matrice de parit de (. On choisit alatoirement S
inversible et P une matrice de permutation. On calcule H

telle que :
H

= SHP
o H

sera publique, et sa dcomposition constituera le secret, avec la connaissance


dun algorithme de dcodage par syndromes efcace dans (.
2. [Chiffrement] Pour un texte clair x choisi dans lespace E
q,n,t
des mots de F
n
q
de
poids de Hamming t (lespace des erreurs) : y est le cryptogramme correspondant
x ssi :
y = H

x
T
.
3. [Dchiffrement] Pour y = H

x
T
, la connaissance des secrets permet :
(a) de calculer S
1
y(= HPx
T
);
(b) de trouver Px
T
partir de S
1
y grce lalgorithme de dcodage par syn-
dromes de (;
(c) de trouver x en appliquant P
1
Px
T
.
FIGURE 2.2 Le protocole de Niederreiter
2.2 Signer avec des codes
2.2.1 Le schma de signature de Courtois, Finiasz et Sendrier
La construction dun schma de signature pour les codes correcteurs nest pas aussi naturelle
que pour RSA. En effet, lopration de dcodage nest pas inversible, cest--dire quil nest pos-
sible de dcoder un lment alatoire dans lespace entier que si cet lment est une distance
sufsamment petite du code. En gnral, la proportion de tels lments est trs faible. Le schma
que Courtois, Finiasz et Sendrier proposent [39], utilise des codes de Goppa avec une faible capa-
cit de correction t, dans ce cas, la proportion de mots dcodables est
1
t!
. Le schma de signature
consiste alors en la concatnation dun hach du message h(M), une suite dlments croissants
0,1,2,. . . et qui calcule la valeur du hach jusqu ce que la valeur du hach h(M[i
0
) corresponde
un mot dcodable. La signature est alors le mot dcod associ la valeur du hach h(M[i
0
)). Les
paramtres proposs par les auteurs sont n = 2
16
1 et t = 9.
Soit M un message signer. Soit h une fonction de hachage valeurs dans 0, 1
nk
. On
cherche un moyen de trouver un s E
q,n,t
tel que h(M) = H

s
T
. Il sagit donc de dchiffrer h(M).
Le principal problme est que h(M) nest pas a priori dans lespace darrive de x H

x
T
. Cest
dire que h(M) nest pas a priori dans lespace des chiffrs par le systme de Niederreiter. Pour
contourner cette difcult on utilise le protocole propos par Courtois, Finiasz et Sendrier dans
[39].
21
2.2 Signer avec des codes Chapitre 2
1. i 0
2. tant que h(M[i) nest pas un syndrome dcodable faire i i + 1
3. calculer s = D(h(M[i))
FIGURE 2.3 Protocole de Courtois-Finiasz-Sendrier
Soit D() un algorithme de dcodage par syndrome :
On obtient en sortie un couple s, j tel que h(M[j) = H

s
T
. On peut remarquer quon a
ncessairement s de poids t.
Dans [41], une preuve de scurit est donne dans le modle de loracle alatoire. Nous utilise-
rons le nouveau schma que lauteur dcrit, appel mCFS, pour donner une preuve de scurit de
notre schma. Nous reviendrons sur cette construction dans le chapitre 5.
2.2.2 Le schma didentication de Stern
Le schma de base
Le schma de Stern est un schma interactif divulgation nulle de connaissance qui a pour
protagonistes un prouveur not P et un vrieur not V . Le prouveur cherchera sidentier auprs
du vrieur.
Soient n et k deux entiers tels que n k. Le schma de Stern ncessite une (nk) n matrice
publique H

dnie sur F
2
.
Soit t n un entier. Pour des raisons de scurit (discutes dans [129]) il est recommand que
t soit choisi juste au dessus de la borne de Gilbert-Varshamov (voir [85]). La matrice H

et le poids
t sont des paramtres du protocole et seront utiliss par plusieurs prouveurs diffrents.
Chaque prouveur P reoit une cl secrte de n-bits s
P
(aussi note s sil ny a pas dambiguit
sur le prouveur) de poids de Hamming t et calcule un identiant public i
P
tel que i
P
= H

s
T
P
.
Cet identiant est calcul une fois pour toute pour H

donne et peut alors tre utilis pour de


nombreuses authentications. Quand un utilisateur P a besoin de prouver V quil est la personne
associe son identiant public i
P
, alors les deux protagonistes suivent le protocole suivant o h
est une fonction de hachage standard :
Remarque 1
Lorsque b vaut 1, durant la quatrime tape du schma de Stern, on peut noter que H

y
T
vient
directement de la relation H

(y s)
T
car nous avons :
H

y
T
= H

(y s)
T
i
P
= H

(y s)
T
H

s
T
.
Comme prouv dans [129], le protocole est divulgation nulle de connaissance. Pour un tour
dexcution, la probabilit quune personne malhonnte russisse tricher est de 2/3. An dob-
tenir un degr de scurit , le protocole doit tre excut un nombre de fois k tel que lon ait la
relation (2/3)
k
. Quand le nombre ditrations vrie la dernire condition, alors la scurit du
problme repose sur le problme NP-complet de dcodage par syndrome (SD).
22
2.2 Signer avec des codes Chapitre 2
1. [Commitment Step] P choisit alatoirement y F
n
et une permutation dnie
sur F
n
2
. Alors P envoie V les engagements c
1
, c
2
et c
3
tels que :
c
1
= h([H

y
T
); c
2
= h((y)); c
3
= h((y s)).
2. [Challenge Step] V envoie b 0, 1, 2 P.
3. [Answer Step] Trois possibilits :
si b = 0 : P rvle y et .
si b = 1 : P rvle (y s) et .
si b = 2 : P rvle (y) et (s).
4. [Verication Step] Trois possibilits :
si b = 0 : V vrie que c
1
, c
2
sont corrects.
si b = 1 : V vrie quec
1
, c
3
sont corrects.
si b = 2 : V vrie que c
2
, c
3
sont corrects, et que le poids de (s) est bien t.
5. Itre les tapes 1,2,3,4 jusqu ce que le niveau de scurit recherch soit atteint.
FIGURE 2.4 Le protocole de Stern
La probabilit de triche est obtenue de la faon suivante
Le tricheur prend un vecteur y et une permutation . Il remplace le secret s par un vecteur arbi-
traire t de poids p et calcule les engagements quil transmet au vrieur. Le tricheur ne russira
que si b est gal 0 ou 2, car le vrieur calculera les engagements vrier uniquement
partir des donnes que le prouveur a fourni. Sa probabilit de triche est donc de (2/3)
r
. Dans le
cas ou b = 1, le vrieur utilisera lidentiant i pour retrouver H(y) = H(y s) i , comme
le tricheur a fourni (y t) au lieu de (y s), le vrieur ne retrouvera donc pas H(y), et la
vrication sera fausse.
Si le tricheur procde comme prcdement mais calcule c
1
= , H(y t) i) , il pourra tricher
pour b = 1 et b = 2, mais pas pour b = 0, car dans ce cas, le vrieur calculera c
1
= , H(y)).
Le tricheur prpare , y et (y t), avec t tel que H(t) = i, mais avec t de poids diffrent de
p. Le tricheur russira quand b = 0 ou b = 1, car lorsque b = 2, la vrication du poids de t.
chouera. Il y a donc dans ce cas la mme probabilit de triche (2/3)
r
.
Remarque 2
En utilisant lheuristique de Fiat-Shamir (vu au chapitre 1), il est possible thoriquement de
convertir le protocole didentication de Stern en un protocole de signature, mais la signature
obtenue est trs longue (quelque 150-kbit pour une scurit de 2
80
oprations binaires). Re-
marquons que cela est consquent par rapport aux schmas de signature classique, mais cette
taille reste raisonnable compte tenu des capacits de mmoire actuelles. De plus, nous prsen-
tons dans la section 3.5 page 66 une mthode qui permet de raliser cette signature sur carte
puce sans avoir besoin de stocker la liste de tous les engagements. Ceci cote un temps plus
long dexcution mais permet dutiliser le protocole didentication en signature sans ajout de
mmoire.
Le schma de Stern possde de nombreux avantages. Le premier de tous, sa scurit repose sur
un problme qui nest pas un des deux problmes utiliss traditionnellement en cryptographie,
23
2.2 Signer avec des codes Chapitre 2
savoir la factorisation et le problme du logarithme discret. Ceci donne une bonne alternative aux
nombreux cryptosystmes dont la scurit repose sur les deux problmes prcdents, spcialement
dans lventualit ou un ordinateur quantique puisse exister. Le second avantage du schma de
Stern est quil ne ncessite que des oprations trs simples (tel que : x-or ou dcalage binaire)
et ne ncessite aucun crypto-processeur contrairement au cas dune identication base sur des
problmes darithmtique.
En dpit de ces avantages, le schma de Stern na que rarement t utilis depuis sa publication
en 1993. En effet, le schma prsente les deux inconvnients suivants, qui eux deux rendent le
schma impraticable dans de nombreuses applications :
1. de nombreux tours sont ncessaires (typiquement 28 si nous voulons que le tricheur ait une
probabilit de succs infrieur 2
16
),
2. la cl publique H

est trs grande (typiquement 150-kbit).


Le premier point est inhrent au protocole interactif et ne constitue pas un rel inconvnient. Par
exemple, si le prouveur et le vrieur peuvent tre connects ensemble pendant une longue priode,
alors lidentication peut tre effectue graduellement. Dans ce cas, le processus didentication
complet est ralis en excutant, de temps en temps durant une priode prescrite (i.e. une heure),
une itration de lalgorithme 2.2.2 page 23 jusqu ce que le niveau de scurit espr soit atteint.
De tels schmas dauthentication graduels peuvent tre de grand intrt dans la tlvision page
ou dans les systmes o une machine (i.t. une photocopieuse ou une machine caf) veut identier
un matriel physique (i.t. une cartouche dencre ou de caf).
Le deuxime inconvnient a t rcemment trait par Gaborit et Girault dans [50]. Dans leur
article, les auteurs proposent dutiliser des matrices doublement circulantes pour dcrotre la taille
de la cl publique sans apparemment dgrader le niveau de scurit du protocole. Nous dcrivons
cette ide dans la section suivante :
Construction quasi-cyclique
Lide de [50] est de remplacer la matrice alatoire H

par la matrice de parit dun type parti-


culier de codes alatoires : les codes doublement circulants.
Cette ide vient du fait que dans le cryptosystme NTRU
2
la cl publique consiste en le quotient
f
g
o f et g sont des polynmes tronqus de lanneau quotient R = Z
q
[x]/(x
n
1) pour n et q des
paramtres du systme (typiquement 251 et 128). Pour chiffrer, nous devons multiplier ces deux
polynmes dans lanneau R. Ce produit peut tre vu comme la multiplication de deux matrices
circulantes.
Soit un entier. Une matrice alatoire doublement circulante 2 H est une matrice de la
forme :
H = (I[A) ,
o A est une matrice circulante, qui est de la forme suivante :
2. NTRU= Number Theorists aRe Us ou encore N-th degree TRUncated polynomial ring. Le schma de chiffrement
a t propos en 1996, le schma de signature en 2002 mais partiellement cass par Nguyen et Regev en 2006 (voir
www.ntru.com)
24
2.2 Signer avec des codes Chapitre 2
A =

a
1
a
2
a
3
a

a
l
a
1
a
2
a
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
2
a
3
a
4
a
1

,
o (a
1
, a
2
, a
3
, , a

) est un vecteur de F

2
.
Comme nous pouvons facilement le vrier, reprsenter H ne ncessite pas de stocker tous les
coefcients de la matrice (comme cest le cas dans le schma de Stern originel) mais ncessite
seulement le vecteur de -bits (a
1
, a
2
, a
3
, , a

) (qui constitue la premire ligne de A). Soit n gal


2, les paramtres du nouveau schma ont les tailles suivantes :
Donnes prives : le secret s de n-bits.
Donnes publiques : le syndrome public i
P
de taille
n
2
et la premire ligne de A de taille
n
2
,
soit n bits.
Comme expliqu dans [50] le comportement de ces matrices en terme de distance minimale est
le mme que celui des matrices alatoires. De mme, il semble que le problme du dcodage par
syndrome reste difcile dans le cas particulier des codes doublement circulants (voir [50] pour plus
de dtails).
Comme la nouvelle version du schma de Stern ncessite des paramtres de plus petite taille et
nutilise toujours que des oprations lmentaires. Cette version devient trs attractive pour des im-
plmentations. Ceci est spcialement vrai dans des environnements mmoire (RAM,PROM,etc.)
limite.
Dans le but de rsister aux attaques par dcodage, les auteurs de [50] prconisent des paramtres
dau moins = 347 et t = 74. Ces choix mnent en effet un niveau de scurit dau moins 2
85
oprations binaires avec une cl (publique et secrte) de 694 bits.
Remarque 3
Comme dans larticle originel propos par Stern, tous les utilisateurs peuvent utiliser la mme
matrice H, et ce sont seulement les paramtres secrets x et le syndrome s qui sont individuels.
Dans certaines applications, H peut aussi tre considre comme un paramtre secret.
2.2.3 Le schma de signature de Kabatianskii, Krouk et Smeets
Kabatianskii Krouk et Smeets ont mis au point un schma que nous dtaillerons dans la section
4 page 71.
25
2.3 Les attaques : cryptanalyse du schma de McEliece Chapitre 2
2.3 Les attaques : cryptanalyse du schma de McEliece
Dans cette section inspire de [95], nous dcrivons les attaques connues du cryptosystme de
McEliece (voir McEliece [86], Kobara et Imai [58, 59], Adams et Meijer [1], Rao et Nam [115],
Park [100], Gibbon [51], Korzhik et Turkin [70], van Tilborg [133], Lee et Brickell [73], Simmons
[127], Beth et al. [17], Loidreau et Sendrier [78], Berson [16], Sidelnikov and Shestakov [126], et
Engelbert, Overbeck et Schmidt [44]). La classication est de Kobara et Imai [58].
Bien quaucun algorithme efcace pour dcomposer G

en (S, G, P) nait t dcouvert [91],


une attaque structurelle a t dcouverte dans [78]. Cette attaque rvle une part de la structure de
G

qui est gnr partir dun code de Goppa binaire. Cependant, cette attaque peut tre vite
simplement en nutilisant pas de cl publique faible.
Le cas suivant que nous devons considrer est quun code de Goppa quivalent G

(qui nest
pas ncessairement G), dont lalgorithme de dcodage est connu, soit trouv. Cette probabilit
qui est estime dans [1] et [51], est trs petite. Toutes les autres attaques connues sont utilises
pour dchiffrer le message chiffr sans casser la cl publique. Nous classons ces attaques en deux
grandes catgories : attaques critiques et attaques non-critiques.
Les attaques non-critiques sont celle qui dpendent fortement des paramtres et peuvent alors
tre contrecarres seulement en augmentant la valeur de ces paramtres.
Les attaques critiques sont plus rapides que les attaques non-critiques et ralisables pour des
paramtres ralistes. Elles peuvent seulement tre vites en utilisant des conversions adaptes
(voir Kobara et Imai [58]) et en vitant les codes ayant une faiblesse structurelle.
De manire intressante, toutes les attaques critiques exploitent des faiblesses structurelles des
codes utiliss ou ncessitent des informations additionnelles, comme par exemple une connaissance
partielle des textes en clair. Sans ces informations additionnelles, aucun algorithme efcace nest
connu pour dchiffrer un texte chiffr arbitraire laide du cryptosystme de McEliece.
2.3.1 Attaques non-critiques
Les deux attaques suivantes peuvent tre rendues infaisables simplement en augmentant la taille
des paramtres. Kobara et Imai suggrent dans [58] dappliquer les modication de P. Loidreau
[77] pour accrotre la scurit. Dans [59], ils montrent que cette modication, bien quaugmentant
la scurit contre les attaques clairs connus (CPA), est vulnrable de nouvelles attaques de
type CPA quils ont dveloppes. Il est alors intressant dutiliser ces modications dans le cas du
cryptosystme de McEliece.
La cryptanalyse de McEliece
McEliece proposa aussi une attaque contre son protocole. Elle consiste choisir alatoirement
k bits du mot reu x en esprant quil ny ait pas derreurs sur ces bits l. Soient x
k
le vecteur
uniquement form par les k bits choisis et G

k
la matrice G

dont on ne garde que les k colonnes


correspondants aux k bits choisis. Sil ny a effectivement pas derreurs dans les k bits choisis,
alors :
x
k
G

1
k
= u.
26
2.3 Les attaques : cryptanalyse du schma de McEliece Chapitre 2
Linversion de la matrice G

k
ncessite O(k
3
) oprations. La probabilit de navoir aucune erreur
en choisissant alatoirement k bits est :
T =

nt
k

n
k
.
Le cot de lalgorithme est donc k
3
/T.
En 1988, Lee et Brickell amliorrent cette attaque. Comme G

est la matrice gnratrice dun


code de distance minimale suprieure 2t, si x
k
G

1
k
nest pas le vritable message u, alors
uG

+ x
k
G

1
k
G

est de poids au plus 2t (cest la diffrence entre le vrai message et le message


trouv par le cryptanalyste). De l, si x +x
k
G

1
k
G

est de poids infrieur ou gal t, alors on peut


dire que x
k
G

1
k
= u.
On peut gnraliser cet algorithme de la manire suivante en permettant davoir quelques erreurs
dans le vecteur x
k
:
Soit j un paramtre dont la valeur sera discute par la suite :
1. Soit x
k
un k-bit choisis alatoirement parmi les bits du message reu x. Soit G

k
la matrice
forme par les colonnes de G

correspondant aux k bits pris de x. On calcule G

1
k
G

et
x +x
k
G

1
k
G

.
2. On choisit un k-bit e
k
de poids infrieur ou gal j (e
k
modlisera lerreur). Si (x +
x
k
G

1
k
G

) + e
k
(G

1
k
G

) est de poids infrieur ou gal t, on sarrte : u = +x


k
G

1
k
.
3. Si lon a utilis tous les vecteurs possibles e
k
tels que [e
k
[ j, on recommence ltape 1,
sinon ltape 2.
Soit Q
i
la probabilit quil y ait exactement i erreurs dans x
k
,
Q
i
=

t
i

n t
k i

n
k

.
On doit excuter T
j
fois ltape 1 avec :
T
j
= 1/
j

i=0
Q
i
.
Soit N
j
le nombre de vecteurs e
k
distincts, de poids infrieur ou gal j :
N
j
=
j

i=0

k
i

.
tant donn que ltape 1 ncessite peu prs ak
3
oprations, avec a petit, et ltape 2 ncessite bk
oprations avec b petit, le cot de cet algorithme est de lordre de :
T
j
(ak
3
+N
j
bk)
On choisit alors j minimisant ce cot. Dans la plupart des cas, avec des dimensions raisonnables,
il faudra prendre j = 2. Par exemple, si lon prend n = 1024, k = 644, t = 38, lattaque ncessite
2
73,4
oprations lmentaires.
27
2.3 Les attaques : cryptanalyse du schma de McEliece Chapitre 2
Attaque par ensemble dinformations
De toutes les attaques gnrales (i.e., pas sur des codes spciques) cette attaque semble tre celle
qui possde la plus petite complexit. On essaie de retrouver les k symboles dinformations de la
manire suivante :
1. La premire tape consiste choisir k des n coordonnes alatoirement en esprant avoir
slectionn toutes les t positions derreurs.
2. On essaie alors de retrouver le message en rsolvant le systme linaire de taille kk (binaire
sur F
q
).
FIGURE 2.5 Dcodage par ensemble dinformations
Soit G

k
, c
k
et z
k
reprsentant les k colonnes prisent dans G

, c et z, respectivement. Elles vri-


ent la relation suivante :
c
k
= mG

k
+z
k
.
Si z
k
= 0 et G

k
est non singulier, m peut tre retrouv par
m = c
k
G

1
k
.
Le cot de calcul de cette version (appele attaque par ensemble dinformations originale) est
T(k) P
n,k,t
, o
P
n,k,t
=
k1
i=0

1
t
n i

.
La quantit T(k) est le cot moyen doprations ncessaires pour rsoudre un systme linaire
k k sur F
q
. Comme mentionn dans [86], la rsolution dun systme binaire de taille k k
ncessite environ k
3
oprations. Sur F
q
, cela ncessite au moins (k log
2
q)
3
oprations.
De plus, si z
k
,= 0, m peut tre retrouv en devinant z
k
positions parmis les lments de pe-
tits poids de Hamming [73, 33]. On appelera cette attaque attaque par ensemble dinformations
gnralise (generalized information-set-decoding (GISD) attack). Une itration de lalgorithme
seffectue de la manire suivante :
1. Permutation les colonnes de la matrice gnratrice de manire alatoire.
2. Faire une limination gaussienne des colonnes de la matrice pour obtenir la forme G =
(I
k
[A), avec les permuts correspondants du chiffr c = (c
1
+e
1
[c
2
+e
2
).
3. Deviner que lerreur e
1
est de poids au plus p et vrier que lerreur e = (e
1
[e
2
) est de poids
t.
La probabilit quune permutation des colonnes mne une conguration favorable est
(p, n, k, t) =
p

i=0

nt
ki

t
i

n
k
.
Pour chaque itration, une estimation du nombre doprations est :
28
2.3 Les attaques : cryptanalyse du schma de McEliece Chapitre 2
1.
k
2
n
2
pour llimination gaussienne ;
2. environ
k
2
+

p
i=1

k
i

i additions sur les mots de (n k)-bits de A.


Alors, une estimation du cot de cet algorithme est
W(p, n, k, t) =
k
2
n
2
+ (n k)[
k
2
+

p
i=1

k
i

i]
(p, n, k, t)
.
Actuellement la version donne par A. Canteaut et F. Chabaud dans [23] est la plus aboutie
dans ce cadre. La version gnralise de cet algorithme et son cot en nombre de calculs ont t
tudis par F. Chabaud [33], par exemple. Cet algorithme est sensiblement plus rapide que la version
originale (o z
k
est suppos tre 0), mais reste inapplicable pour des paramtres appropris (voir
[58]).
Recherche de mot de petits poids
Cette attaque utilise un algorithme qui trouve un mot de petit poids parmi les mots de code
gnrs par une matrice gnratrice arbitraire en utilisant une base de donnes obtenue par pr-
calcul [128, 23]. Comme le mot de code de poids minimum de la matrice gnratrice (k + 1) n
suivante :
[G

[c]
t
est le vecteur erreur z de c o c = mG

+ z, cet algorithme peut tre utilis pour retrouver m


partir dun message chiffr c.
Le cot prcis de cette attaque a t valu par A. Canteaut et F. Chabaud dans [23]. Il est
montr impossible dinverser c (retrouver m) pour des paramtres appropris, i.e. n 2048 et des
paramtres k et t optimiss. Mme en utilisant les paramtres originaux (n, k, t) = (1024, 524, 50)
suggrs dans [86], cette attaque a un cot de lordre de 2
64.2
oprations binaires.
2.3.2 Attaques critiques
Les attaques suivantes ne peuvent pas tre vites en augmentant la taille des paramtres. Elles
utilisent des faiblesses structurelles ou ncessitent de linformation supplmentaire.
Attaque texte clair partiel
Avoir une connaissance partielle du texte clair rduit de manire drastique le cot de calculs des
attaques contre le cryptosystme de McEliece [23, 57]. Par exemple, soient m

et m
r
reprsentant
les k

bits de gauche et les k


r
bits restant du message clair m, i.e. k = k
l
+ k
r
et m = (m
l
[m
r
).
Supposons quun adversaire connaisse m
r
. Alors, la difcult de retrouver le message clair inconnu
m

dans le cryptosystme de McEliece PKC avec pour paramtres (n, k) est quivalent au fait de
retrouver le message clair en entier dans le cas dun chiffrement laide de McEliece de paramtres
(n, k
l
), puisque
c = mG

+z
c = m
l
G

l
+m
r
G

r
+z
c +m
r
G

r
= m
l
G

l
+z
c

= m
l
G

l
+z
29
2.3 Les attaques : cryptanalyse du schma de McEliece Chapitre 2
o G

et G

r
sont les k

lignes suprieures et k
r
les autres lignes de G

, respectivement.
Attaque par renvoi de message
Supposons maintenant que, cause dun accident, ou du fait de laction du cryptanalyste, la
fois
c
1
= mG

+e
1
et
c
2
= mG

+e
2
,
e
1
,= e
2
, sont envoys. Ceci est appel un renvoi de message. Dans ce cas, il est facile pour le
cryptanalyste de retrouver m partir du systme des c
i
. Nous examinerons seulement le cas o
i = 2. Lattaque est encore plus facile si i > 2. Remarquons que c
1
+c
2
= e
1
+e
2
(mod2).
Un renvoi de message peut tre facilement dtect en observant le poids de Hamming de la
somme de deux cryptogrammes. Quand les messages sont diffrents, le poids attendu de la somme
est denviron 512 (pour les paramtres originaux de McEliece, en gnral le poids attendu est k).
Alors que quand les deux messages sont identiques, le poids de la somme ne peut excder 100 (ou
en gnral 2t). Heiman [56] a montr que le renvoi de message peut tre dtect. Nous verrons
comment lexploiter.
Dans la suite, nous utiliserons les paramtres originaux proposs par McEliece (n, k, t) =
(1024, 524, 50). Les rsultats pour dautres paramtres sont essentiellement les mmes. Tout dabord
nous calculons deux ensembles partir de (c
1
+c
2
). On dnit L
0
et L
1
de la manire suivante :
L
0
= l 1..n : c
1
() +c
2
() = e
1
() +e
2
() = 0
L
1
= l 1..n : c
1
() +c
2
() = e
1
() +e
2
() = 1
Nous voulons tirer un avantage du fait que
L
0
est plus probable si ni c
1
() ni c
2
() ne sont altrs que par une erreur, alors que
L
1
implique quexactement un de c
1
() ou c
2
() est altr par une erreur.
Supposons que les vecteurs derreurs e
1
et e
2
sont choisis indpendamment, alors pour nimporte
quel 1..n, la probabilit que les deux vecteurs erreurs soient 1 sur la position dindice est
P(e
1
() = e
2
() = 1) =

50
1024

2
0.0024.
En dautres termes, pour la plupart des L
0
on a e
1
() = e
2
() = 0. Le cryptanalyste peut
essayer de deviner les 524 colonnes non perturbes de celles indexes par L
0
.
Quelle est la pertinence de cette stratgie ?
Soit p
i
la probabilit que prcisment i coordonnes sont perturbes simultanment par e
1
et e
2
.
Alors
p
i
= P([ : e
1
() = 1 : e
2
() = 1[ = i) =

50
i

974
50i

1024
50
,
alors, e
2
doit choisir i positions derreurs parmi les 50 perturbes par e
1
et les 50i restantes parmi
celles inchanges par e
1
. De plus, le nombre attendu de L
1
est
E([L
1
[) =
50

i=0
(100 2i)p
i
95.1,
30
2.3 Les attaques : cryptanalyse du schma de McEliece Chapitre 2
comme tout pour lequel e
1
() = e
2
() = 1 divise [L
1
[ par deux.
Par exemple, supposons que lon ait [L
1
[ = 94. Alors [L
0
[ = 930, o seulement 3 positions sont
perturbes. Nous observons que la probabilit de deviner les 524 colonnes non perturbes parmi
celles indexes par L
0
est

927
524

930
524
0.0828,
le cryptanalyste peut alors esprer un succs dans ce cas avec seulement 12 suppositions. Ces r-
sultats sont meilleurs dun facteur de 10
15
que ceux obtenus en devinant k colonnes non perturbes
sans renvoi de message.
Attaque par messages relis
Nous allons maintenant gnraliser lattaque par renvoi de message. Nous supposons que nous
avons deux cryptogrammes :
c
1
= m
1
G

+e
1
et
c
2
= m
2
G

+e
2
,
o e
1
,= e
2
. Les messages m
1
et m
2
peuvent tre diffrents, mais nous supposons que le cryptana-
lyste connat une relation linaire, par exemple, m
1
+ m
2
, entre ces deux messages. Ce que nous
appellerons la condition de messages relis. Dans ce cas, lattaquant peut retrouver les m
i
partir
de lensemble des c
i
en en chiffrant un et en utilisant la mthode prcdente. En combinant les deux
cryptogrammes prcdents, nous obtenons :
c
1
+c
2
= m
1
G

+m
2
G

+e
1
+e
2
.
Remarquons que m
1
G

+m
2
G

= (m
1
+m
2
)G

, une valeur que le cryptanalyste peut calculer sous


la condition de messages relis partir de la relation connue et la cl publique. Il rsout alors :
c
1
+c
2
+ (m
1
+m
2
)G

= e
1
+e
2
et ralise une attaque par renvoi de messages, en utilisant (c
1
+ c
2
+ (m
1
+ m
2
)G

) au lieu de
(c
1
+c
2
).
Remarque
Lattaque par renvoi de messages est un cas particulier de lattaque par messages relis o
m
1
+m
2
= 0.
Nous pouvons nous prmunir de ce genre dattaques en utilisant des fonctions de hachage.
Hormis, ces attaques gnrales, il existe dautres types dattaques contre le cryptosystme de
McEliece qui utilise des codes spciques. Parmi elles, nous montrerons deux attaques importantes,
une contre les codes de Reed-Solomon Gnraliss (GRS) et une contre les codes de Goppa gnrs
par un polynme gnrateur binaire. Nous verrons ces attaques l plus en dtail dans le chapitre 7
page 121.
Lefcacit des attaques sur le cryptosystme de McEliece est essentiellement base sur le fait
que pour un succs il est ncessaire de pouvoir corriger les erreurs de poids infrieur ou gal
31
2.3 Les attaques : cryptanalyse du schma de McEliece Chapitre 2
t. Lattaque devient beaucoup plus difcile, si le dcodage ncessite une capacit de correction
totale, cest dire la capacit de corriger tous les mots du code. De manire gnrale, le dcodage
total nest pas une fonction trappe mais une fonction one-way car un tel dcodage est un problme
NP-complet. Le schma de signature de KKS utilise cette ide voir chapitre 4 page 71.
32

S-ar putea să vă placă și