Etude de l’algorithme de Canteaut-Chabaud.
Matthieu Legeay
Octobre 2009
R´esum´e
1 Introduction
1.1 G´en´eralit´es sur les codes
Toute l’´etude se fera dans le corps fini `a q´el´ements Fq.
Soit Fn
ql’espace vectoriel des n-uplets sur le corps Fq.
Un (n, M)code C sur Fqest un sous-ensemble de Fn
qde taille M. Si Cest alors un sous-espace
vectoriel de dimension kde Fn
q, on appelle dans ce cas Cun [n, k]code lin´eaire sur Fq(on a
d’ailleurs k= logqM).
On ´ecrit g´en´eralement les vecteurs de Fn
qcomme les mots a1a2...ansur l’alphabet Fqet on ap-
pelle les vecteurs de Cles mots du code.
Il y a deux outils communs qui permettent de caract´eriser un [n, k] code lin´eaire.
Matrice g´en´eratrice : Une matrice g´en´eratrice pour un [n, k] code lin´eaire Cest une matrice
Gde taille k×ndont les lignes forment une base de C. On dit que Gest sous forme syst´ematique
si Gest de la forme [Idk|A], o`u Idkest la matrice identit´e de taille k×k.
En appliquent `a Gles op´erations suivantes :
permutation de lignes
addition d’une ligne avec le multiple scalaire d’une autre
multiplication d’une ligne par un scalaire non nul de Fq
on obtient une matrice g´en´eratrice du mˆeme code C.
En revanche, en appliquant `a Gles op´erations suivantes :
permutation de colonnes
multiplication d’une colonne par un scalaire non nul de Fq
on obtient une matrice g´en´eratrice d’un code ´equivalent `a C.
Par cons´equent, pour tout code lin´eaire C, on peut toujours trouver un code ´equivalent C0dont
la matrice g´en´eratrice est sous forme syst´ematique.
L’application lin´eaire de Fk
qdans Fn
qd´efinie par a7→ aG est l’op´eration de codage.
Ainsi si Gest sous forme syst´ematique et si on veut coder xFq, on calcule xG = [x, xA] ;
les kpremiers bits sont alors les bits d’information et les nksuivants sont les bits de redondance.
1
Matrice de parit´e : Le code dual de Cest le [n, n k] code lin´eaire Cd´efini par
C=vFn
q|u·v= 0,uC.
Une [n, n k] matrice g´en´eratrice Hde Cest appel´ee matrice de parit´e du code C.
La matrice de parit´e caract´erise bien Ccar on a la relation C=xFn
q|Hx>= 0.
Si G= [Idk|A] est la matrice g´en´eratrice sous forme syst´ematique du code C, alors H=
[A>|Idnk] est la matrice de parit´e de Csous forme syst´ematique.
Un invariant important d’un code est la distance minimale entre les mots du code.
La distance de Hamming d(x, y) entre deux vecteurs de Fn
qest le nombre de coordonn´ees o`u x
et ydiff`erent. La distance de Hamming est bien une distance.
La distance minimale d’un code Cest la plus petite distance de Hamming entre des mots de
code distincts, clairement d(C) = min {d(x, y), x, y C , x 6=y}.
Le poids de Hamming d’un vecteur xde Fn
qest le nombre wt(x) de coordonn´ees non nulles. On
a facilement d(x, y) = wt(xy) et si Cest un code lin´eaire, alors la distance minimale de Cest
le poids minimum parmi les mots du code non nuls, c’est `a dire
d(C) = min {wt(x), x C , x 6= 0}=w(C).
Si la distance/le poids minimal dd’un [n, k] code est connu, on dit que c’est un [n, k, d] code.
Le r´esultat important est qu’un [n, k, d] code d´etecte d1 erreurs et en corrige e=d1
2.
2
2 Cryptanalyse du syst`eme de McEliece
Comme pour tout syst`eme de chiffrement, l’int´erˆet port´e aux deux cryptosyst`emes pr´esent´es
pr´ec´edemment est leur attaque. Celle-ci revient `a trouver un algorithme g´en´eral de d´ecodage effi-
cace des codes lin´eaires jusqu’`a une distance fix´ee. Contrairement au probl`eme du d´ecodage com-
plet d’un code lin´eaire, il n’a jamais ´et´e d´emontr´e que ce probl`eme ´etait NP-difficile. Mais l’exis-
tence d’un algorithme polynomial pour le r´esoudre paraˆıt peu probable. Ainsi toute am´elioration
des algorithmes existant est donc digne d’int´erˆet mˆeme si elle aboutit `a un algorithme exponen-
tiel.
Je vais donc passer en revue diff´erents algorithmes de d´ecodage et m’attacher sur certains
qui furent un tournant dans la r´eflexion sur la cryptanalyse des syst`emes bas´es sur les codes
correcteurs.
Dans toute la suite, il s’agira de d´ecoder un [n, k, d] code lin´eaire Csur Fq.
cd´esignera le mot `a d´ecoder, form´e de la somme d’un mot du code xet d’un vecteur d’erreur e
de poids t.
On supposera d’ailleurs que eest le seul vecteur de poids tdans le coset C+c(ce qui est
raisonnable, puisque cette probabilit´e est tr`es forte pour des codes al´eatoires de taille suffisante).
Get Hseront les matrices g´en´eratrices et de parit´e de C.
2.1 Algorithmes exhaustifs
Les algorithmes ”basiques” de d´ecodage sont ceux dits exhaustifs qui ´enum`erent :
soit tous les mots du code
soit tous les vecteurs d’erreur
D´ecodage par recherche exhaustive parmi tous les mots du code
Pour tous les vecteurs mde longueur k,
1. Calculer le mot de code mG o`u Gest la matrice g´en´eratrice de C.
2. Calculer wt(cmG).
La solution est obtenue pour le vecteur mqui minimise wt(cmG).
D´ecodage par recherche exhaustive parmi tous les vecteurs d’erreur
Soit s=Hc>. Tant que s6=s0faire :
1. Choisir un vecteur xde longueur nket de poids inf´erieur ou ´egal `a t.
2. Calculer son syndrome s0=Hx>.
Ces algorithmes sont bien sˆur longs et coˆuteux car ils n´ecessitent de passer en revue tous les
vecteurs d’une certaine taille.
En revanche les algorithmes qui vont suivre utilisent des propri´et´es qui leur permettent de
s’arrˆeter `a n’importe quel moment.
3
2.2 D´ecodage par ensembles d’information g´en´eralis´e sur Fq
Ce principe est une technique classique, introduite par Prange [7] en 1962 pour les codes
cycliques, g´en´eralis´ee par la suite et encore utilis´ee aujourd’hui.
Contrairement aux algorithmes exhaustifs pr´ec´edents, le d´ecodage par ensemble d’informa-
tion exploite la redondance du code : il repose sur la constatation qu’il suffit de trouver un
ensemble de kpositions d’information ne contenant aucune erreur parmi ses coordonn´ees pour
d´ecoder c.
Soit N={1, . . . , n}. Si Iest un sous-ensemble de Net J=N\Ison ensemble compl´ementaire,
on note G= (U, V )Ila d´ecomposition de Gpar rapport `a I; cela signifie que U= (Gi)iIet
V= (Gj)jJo`u (G1, . . . , Gn) est la d´ecomposition en colonnes de la matrice G.
D´efinition 2.1. (Ensemble d’information)
Un sous-ensemble Ide Nde taille kest un ensemble d’information pour Csi et seulement si
la restriction de C`a ces kpositions forme un espace vectoriel de dimension k; ce qui ´equivaut
`a G= (U, V )Iavec Uinversible.
De la mˆeme mani`ere, un ensemble de redondance de Cest le compl´ementaire dans Nd’un
ensemble d’information.
De tels ensembles d’information existent bien comme peut le montrer le r´esultat suivant de
la th´eorie des codes correcteurs :
Proposition 2.2. Tout ensemble de nd+ 1 positions contient un ensemble d’information.
D´emonstration. Soit Kun ensemble de spositions et G= (A, B)K.
Supposons que Kne contienne aucun ensemble d’information.
Ainsi, le rang de Aest strictement inf´erieur `a s.
On peut donc trouver une combinaison lin´eaire des lignes de A´egale `a 0, et par cons´equent un
mot du code xqui a des 0 sur ces spositions. Puisque wt(x)d,nsdet donc snd.
On obtient le r´esultat par contrapos´ee.
Ainsi d`es lors que l’on trouve un ensemble d’information Ine contenant aucune position
d’erreurs (voir FIGURE 1), il suffit de d´ecomposer c= (cI, cJ)Iet G= (U, V )Ipour obtenir le
vecteur erreur. En effet, on a c=x+e, o`u x=mG, donc mU =xIet x=mG =xIU1G.
Or cI=xI, car Ine contient pas de positions d’erreurs.
Par cons´equent e=cx=ccIU1G= (0 · · · 0, cJcIU1V)Iet m=cIU1.
Figure 1 Motifs d’erreurs corrig´es par l’algorithme de d´ecodage par ensembles d’information,
avec Iun ensemble d’information.
C’est cette propri´et´e qui est `a l’origine de l’algorithme dont parlait McEliece dans son article
[2] au sujet de la cryptanalyse de son syst`eme.
4
D´ecodage par ensembles d’information g´en´eralis´e sur Fq
Tant qu’un vecteur d’erreurs de poids inf´erieur ou ´egal `a tn’a pas ´et´e trouv´e :
1. Choisir al´eatoirement un ensemble d’information I.
2. Mettre Gsous forme syst´ematique U1G= (Id, Z)I, avec Z=U1V,
et d´ecomposer csous la forme (cI, cJ)I.
3. Calculer wt(cJcIZ).
Si ce poids est inf´erieur ou ´egal `a t, alors e= (0 · · · 0, cJcIZ)Iet m=cIU1.
Coˆut de l’algorithme : La probabilit´e de choisir kz´eros dans le vecteur d’erreurs eest Q=(nt
k)
(n
k).
C’est `a dire que le cryptanalyste doit faire environ 1
Qessais avant de r´eussir, et pour chaque
essai doit inverser la sous-matrice Ude Gde taille k×k.
En supposant que cette inversion de matrice requiert αk3(αest petit quand k > n
2), le facteur
total de travail attendu, c’est `a dire le nombre total d’op´erations binaires `a effectuer en moyenne
pour que l’algorithme trouve la solution, est W=αk3×(n
k)
(nt
k).
2.3 Algorithme de Lee-Brickell g´en´eralis´e sur Fq
Un des probl`emes qui apparaˆıt dans le dernier algorithme est que kpositions choisies
al´eatoirement ne forment pas toujours un ensemble d’information, `a moins que le code ne soit
un code MDS (Maximum Distance Separable code).
Plutˆot que de rechercher `a nouveau kpositions d’information totalement diff´erente, l’algo-
rithme de Lee-Brickell [8] tient compte du fait que parmi ces kpremiers choix de positions, sans
doute un certain nombre sont `a garder.
Dans le d´ecodage par ensembles d’information, l’´elimination de Gauss permettant de mettre
la matrice g´en´eratrice sous forme syst´ematique est de loin la proc´edure la plus coˆuteuse. Afin
de trouver un meilleur compromis entre le nombre d’it´erations et le coˆut de chacune d’elles, il
est donc pr´ef´erable d’augmenter l´eg`erement le facteur de travail de chaque it´eration pour per-
mettre d’en diminuer le nombre `a effectuer, en ne modifiant par exemple qu’un petit nombre de
positions.
Dans cette d´emarche, l’algorithme de Lee-Brickell autorise au plus ppositions d’erreurs dans
l’ensemble d’information (pest un param`etre de l’algorithme) : c’est donc un algorithme de
d´ecodage par ensembles d’information avec peffacements (voir FIGURE 2).
Figure 2 – Motifs d’erreurs corrig´es par l’algorithme de Lee-Brickell, avec Iun ensemble d’in-
formation.
5
1 / 23 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 !