Académique Documents
Professionnel Documents
Culture Documents
McEliece
Sommaire
I. Historique de la cryptographie......................................................................2
II. Prsentation du systme de McEliece............................................................2
1. Posons le problme......................................................................................2
2. Construction des paramtres du code..........................................................3
3. Le chiffrement..............................................................................................5
4. Le dchiffrement...........................................................................................5
III. Sret du systme de McEliece......................................................................7
5. Une premire attaque...................................................................................7
6. Une mthode probabiliste............................................................................8
7. En conclusion.............................................................................................10
Annexes.................................................................................................................11
1. Nombre moyen de tirages avant de trouver une matrice inversible........11
2. Construction des corps finis....................................................................11
3. Trouver un lment primitif..................................................................13
4. Trouver P un polynme irrductible.......................................................14
5. Calcul explicite dans un corps fini..........................................................16
6. Complexit de la mthode du pivot de Gauss..........................................17
7. Dtermination de k colonnes indpendantes...........................................19
8. Primalit et factorisation.........................................................................21
9. Quelques procdures crites sous Maple................................................22
10. Dmonstration des thormes.................................................................24
11. La loi franaise sur la cryptographie......................................................26
Bibliographie........................................................................................................27
Cryptographie Chiffre de McEliece
La cryptographie peut tre dcrite par limage suivante : Bob veut envoyer un message secret (en gnral Bonjour )
Alice mais pour cela il doit utiliser un canal public. Seulement, Oscar espionne et coute tous les changes qui se font par
lintermdiaire de ce canal. Lide naturelle est donc de chiffrer le message afin que seul Alice puisse le dchiffrer.
Formellement, on peut rsumer tout cela par le schma suivant :
Les cls que nous voyons apparatre sur le schma sont des paramtres personnels que lon prend en compte lors des
tapes de chiffrement et de dchiffrement et qui permettent dapporter une diversit quasiment infinie.
Nous allons dans ce mmoire prsenter principalement un systme de chiffrement particulier propos par McEliece. Nous
expliquons dans un premier temps son fonctionnement et nous testons par la suite (ce qui est indispensable pour tout systme
cryptographique) la scurit quil fournit. Nous nous sommes efforcs par ailleurs dtudier en Annexes les problmes
pratiques que lon rencontre avec McEliece et galement de prsenter quelques procdures.
Signalons finalement que, dans un souci de clart, nous avons adopt le code suivant : les thormes sont annoncs par un
trait bleu en marge et sont dmontrs en Annexes, les exemples sont annoncs par un trait rouge en marge et les quelques
dmonstrations isoles sont annonces par un trait vert en marge.
I. Historique de la cryptographie
Les systmes cryptographiques sont utiliss depuis trs longtemps et rpondaient lorigine des besoins militaires. On
sait par exemple que Jules Csar utilisait le chiffre suivant : chaque lettre du message transmettre tait remplace par celle
qui la suivait dans lalphabet. Par exemple, le mot BONJOUR tait cod par CPOKPVS. Lutilisation de cls est galement
apparue rapidement et le chiffrement de Jules Csar a alors fait place au chiffrement de Vigenre. Toutefois tous ces systmes
utilisaient une cl prive, cest--dire que la cl de chiffrement et la cl de dchiffrement taient en ralit identiques. Ceci
prsente un dfaut important : avant de pouvoir discuter en toute scurit, Bob et Alice devaient stre mis daccord sur la cl
commune, et cela en utilisant forcment un canal public. Oscar pouvait alors intercepter facilement le renseignement et puis
dchiffrer tous les messages par la suite.
La grande rvolution de la cryptographie moderne a t lintroduction des systmes cl publique, par Diffie et Hellman,
pour lesquels la cl de chiffrement et la cl de dchiffrement ne sont pas identiques. Ainsi, Alice peut informer Bob
publiquement (en pratique par lintermdiaire dun annuaire ou dun serveur de cls) de la cl de chiffrement sans pour autant
compromettre la scurit du chiffre. Bien sr, il y a un revers la mdaille : comme il existe forcment un lien entre les cls de
chiffrement et de dchiffrement, pour que ces mthodes puissent tre utilises, il doit tre calculatoirement difficile de reformer
la cl de dchiffrement partir celle de chiffrement, alors que lopration inverse doit tre aise. De tels problmes trouvent
gnralement leur solution dans les mathmatiques et notamment en arithmtique, par exemple pour RSA.
Cette nouvelle ide a apport de nouvelles perspectives la cryptographie et trs vite de nombreux systmes
cryptographiques cl publique sont ns. Cependant, trs souvent dans la prcipitation, les systmes crs se sont avrs peu
efficaces soit parce que trop compliqus mettre en uvre, soit parce que noffrant pas assez de scurit. Le systme de
McEliece est lun dentre eux et, comme nous allons le voir, illustre bien cette priode hsitante et rvolutionnaire.
II. Prsentation du systme de McEliece
Dans tout ce qui suit F2 dsigne lensemble {0,1} que lon munit dune structure de corps.
Attention ! Pour crire les messages qui seront reprsents par des vecteurs en ligne et non en colonne, nous allons
transposer toutes les matrices.
1. Posons le problme
Donnons-nous un entier n strictement positif et posons E=F2
n
. E est alors un espace vectoriel sur F2 que lon peut munir de
la norme suivante que lon appelle le poids :
( ) ) ( ) ( , ,...,
1
1
R dans x x w pose on E x x x
n
i
i n
La distance dfinie par cette norme est appele distance de Hamming.
Page 2
Cryptographie Chiffre de McEliece
Soit maintenant F un sous-espace vectoriel de E de dimension k. On appelle distance minimale de F la quantit suivante :
( ) { } { } 0 , min F x x w d
i)On a alors la proprit suivante :
Si x est un lment de E, alors il existe au plus un couple (x,e) vrifiant ( )
( )
'
+
<
e x x
d
e w F x
S
'
2
,
:
Sil existe, le vecteur e est alors appel le vecteur derreur.
Et rciproquement si pour tout x lment de E, il existe au plus un couple (x,e) vrifiant ( )
( )
'
+
e x x
t e w F x
S
'
,
: ' o t est
un entier, alors la distance minimale de F est strictement suprieure (2t).
Le problme est alors le suivant : Si on se donne x, existe-t-il un couple solution et sil existe, comment peut-on le
trouver ?
Ce problme est en gnral difficile mais il se trouve que si F a une structure particulire (que nous qualifierons de
sympathique), alors on peut trouver des algorithmes efficaces pour rpondre la question. Cest sur cette remarque que repose
le principe du systme de McEliece.
Avant dexposer celui-ci, nous allons remarquer que lon peut trouver une application linaire de F2
k
dans E, qui ralise une
bijection de F2
k
dans F. Appelons alors G la matrice canonique de cette application. La donne de G entrane bien videmment
celle de F (on dit que F est le code engendr par G), cest--dire au lieu de se donner un sous-espace vectoriel de E de
dimension k, on peut se donner une matrice de taille (k,n) (Attention, on transpose !) coefficients dans F2; cest ce que nous
ferrons par la suite.
Exposons donc maintenant le principe du systme de McEliece. Alice choisit une matrice sympathique G de taille (k,n),
une matrice inversible S de taille (k,k) et une matrice de permutation P de taille (n,n), calcule ensuite le produit G=SGP. Elle
rend ensuite publique la matrice G et le nombre maximal derreurs, que lon notera t, quelle sait corriger avec un algorithme
simple.
Bob veut alors envoyer le message m Alice. Pour cela, il calcule le produit de m par G auquel il ajoute un vecteur
derreur de poids convenable (infrieur ou gal au nombre publi). Il envoie alors Alice le vecteur calcul que lon appellera
x. Mathmatiquement cela scrit ( ) t e w o e G m x + ' . ' .
Lorsque Alice reoit x, elle calcule ( ) t e w P e w o P e G S m P x +
) . ( . . . '.
1 1 1
. Comme G est une matrice
sympathique, elle peut facilement liminer le vecteur derreur et donc retrouver G S m . . . Connaissant S et G, elle retrouve
ensuite le message original m.
Oscar, quant lui, est confront au problme difficile puisquil ne connat que G (qui nest pas une matrice sympathique),
ainsi il ne peut pas a priori liminer lerreur et retrouver le message.
2. Construction des paramtres du code
Bien que pratiquement, la construction des paramtres doive obligatoirement dbuter par la construction de G, nous
prsentons ici un ordre diffrent gradu par la difficult que revt chaque construction.
Notons galement que nous utiliserons ici un code sympathique de la classe BCH, alors que McEliece avait suggr un
code sympathique de la classe de Goppa. Ceci ne change en rien ltat desprit du systme de chiffrement.
1. Construction de la matrice S
Il sagit ici de construire une matrice de taille (k,k) inversible et alatoire. La premire ide consiste gnrer une premire
matrice alatoire. On regarde ensuite si elle est inversible (par la mthode du pivot de Gauss qui est rapide lorsque les
coefficients sont dans F2 voir Annexe 6). Si cest le cas, on a trouv une matrice S convenable, sinon on ritre le procd
jusqu russite. Toutefois, pour que cette mthode soit raisonnable, il faut sassurer que le nombre de matrices que lon va
gnrer ne soit pas trop grand mme pour des valeurs de k leves.
On montre (voir Annexe 1) que le nombre moyen de matrices gnrer nexcde pas quatre. Ainsi cette mthode est
satisfaisante.
La procdure 1 prsente en Annexes renvoie une matrice inversible et son inverse.
2. Construction de la matrice P
Construire la matrice P revient gnrer une permutation de lensemble {1,2,,n}. La premire ide simpliste consisterait
engendrer un nombre alatoire entre 1 et n. On le compare ensuite ceux engendrs prcdemment : sil est distinct de tous,
on passe llment suivant, sinon on essaye avec un autre nombre. Il est clair que cette mthode devient rapidement trs
lente.
On peut proposer lalgorithme suivant plus efficace :
Page 3
Cryptographie Chiffre de McEliece
1. On dfinit la liste LST par LST(i)=i et r par r=0
2. On gnre un nombre alatoire a entre 1 et n-r (r dfinit ltape en cours)
3. On place en (r+1) position de la permutation le nombre LST(a)
4. On remplace alors LST(a) dj choisi par LST(n-r) pas encore choisi
On remarque que les LST(i) (i n-r) ne pourront plus tre choisis par la suite
5. On ajoute 1 r
6. On recommence ltape 2 jusqu ce que la permutation soit toute gnre (i.e. r=n)
La procdure 2 prsente en Annexes renvoie une matrice de permutation et son inverse.
3. Construction de la matrice G
Nous allons prsenter ici une catgorie de matrices sympathiques. Notre tude repose en particulier sur la thorie
mathmatique des corps finis dont nous prsentons les bases en Annexes. Dautre part, afin de ne pas noyer un lecteur non
averti dans des formules simplement thoriques, nous allons accompagner notre expos dun exemple.
Tout dabord choisissons un entier r strictement positif et un entier t strictement positif et pas trop grand .
Posons alors n=2
r
1 et dfinissons sur
nZ
Z
, la relation binaire suivante :
( ) ( ) y x N k y x
nZ
Z
y et x
k
2 / ,
Cette relation est une relation dquivalence. On peut alors poser
1 2
1
+
t
l
t
l .
POUR NOTRE EXEMPLE, CHOISISSONS r=4 ET t=1. ON A ALORS n=15 ET { } { }
9 , 12 , 6 , 3 8 , 4 , 2 , 1 .
Considrons maintenant un lment primitif du corps fini r
F
2
(voir Annexes 2 & 3) et formons le polynme
( ) ( )
t
i
i
t
X X A
ii) On a alors la proprit suivante : At est un polynme coefficients dans F2.
SUR NOTRE EXEMPLE, CELA DONNE
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
9 12 6 3 8 4 2
. . . . . . . X X X X X X X X X A
SELON LLEMENT PRIMITIF CHOISI, ON PEUT TROUVER PLUSIEURS POLYNOMES (QUI CONVIENNENT TOUS). ON PEUT PAR EXEMPLE PARVENIR
(VOIR ANNEXE 5) SI ON CHOISIT
1
2
+
:
( )
8 4 2
1 X X X X X A + + + +
Considrons maintenant lapplication linaire
[ ] [ ]
,
_
P A P
X F X F
t
n k
.
:
1 2 1 2
,
_
+ + + +
8 4 2
14 2 6 2
1 .
:
X X X X X P P
X F X F
.
CE QUI NOUS DONNE G (ATTENTION, ON TRANSPOSE !) :
,
_
1 0 0 0 1 0 1 1 1 0 0 0 0 0 0
0 1 0 0 0 1 0 1 1 1 0 0 0 0 0
0 0 1 0 0 0 1 0 1 1 1 0 0 0 0
0 0 0 1 0 0 0 1 0 1 1 1 0 0 0
0 0 0 0 1 0 0 0 1 0 1 1 1 0 0
0 0 0 0 0 1 0 0 0 1 0 1 1 1 0
0 0 0 0 0 0 1 0 0 0 1 0 1 1 1
G
La procdure 3 prsente en Annexes gnre une matrice G sympathique.
Page 4
Cryptographie Chiffre de McEliece
4. En conclusion
Nous verrons plus loin, lorsque nous tudierons le dchiffrement que lon peut corriger facilement jusqu t erreurs. Cest
donc la valeur que lon doit rendre publique avec la matrice G.
On notera galement que cest seulement lors de la gnration de G que lon peut dterminer le paramtre k. Ainsi, il est
ncessaire de construire G avant de construire S.
CELA DIT, REPRENONS LEXEMPLE PRCDENT ET CONSTRUISONS S ET P.
ON PEUT PAR EXEMPLE CHOISIR
,
_
1 1 1 0 1 1 1
1 1 0 1 1 1 1
1 0 1 0 0 0 1
0 1 0 0 0 0 1
0 0 0 0 1 1 0
1 1 0 0 0 0 1
0 0 0 0 0 1 0
S
ET POUR P LA MATRICE DE PERMUTATION ASSOCIEE A (3,11,4,6,13,5,14,2,10,9,12,7,8,1,15).
ALICE PUBLIE
,
_
1 0 1 0 0 1 0 1 0 0 1 1 1 0 1
1 1 1 0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 0 1 0 0 1 1 1 1 0
0 1 1 0 1 1 1 0 0 0 1 1 1 1 1
0 1 1 1 1 0 1 0 0 0 1 0 0 0 0
1 0 1 1 1 0 1 0 0 0 1 1 1 0 1
0 0 0 0 1 0 1 0 0 1 1 1 0 0 0
' G ET t=1.
Il ne reste plus qu vrifier que G na pas une tte trop sympathique, mais l il nexiste pas, notre connaissance, de
veritables critres (car il peut toujours exister un cas facile que lon na pas encore tudi).
3. Le chiffrement
Le chiffrement est facile mettre en uvre : il sagit tout dabord de mettre son message sous forme dune suite de bits.
Ensuite, on dcoupe celui-ci en blocs de k bits. On multiplie chacun deux par la matrice G qui est publique et on ajoute au
rsultat obtenu un vecteur derreur alatoire de poids infrieur la valeur publie. On met alors bout bout tous les blocs de n
bits obtenus pour obtenir le message chiffr transmettre.
SUPPOSONS QUE BOB VEUILLE ENVOYER ALICE LE MESSAGE SECRET
m = (1,0,1,0,1,1,0).
IL CALCULE ALORS LE PRODUIT m.G (TOUJOURS DANS F2). IL OBTIENT
c = m.G = (1,0,0,1,0,0,1,1,0,1,1,0,0,0,0).
IL CHOISIT UN VECTEUR DERREUR DE POIDS INFERIEUR OU EGAL A 1. PAR EXEMPLE,
e = (0,0,0,0,0,0,0,0,0,0,1,0,0,0,0).
IL ENVOIE ENSUITE LE MESSAGE C ALICE.
c = c + e = (1,0,0,1,0,0,1,1,0,1,0,0,0,0,0).
La procdure 4 prsente en Annexes permet de chiffrer un message. On notera le paralllisme entre les procdures de
construction dun vecteur derreur alatoire et dune matrice de permutation alatoire.
4. Le dchiffrement
dsigne toujours llment primitif de r
F
2
choisi lors que la construction de la matrice G.
Tout dabord, prcisons que si p=(p0, , pd), on notera ( )
d
i
i
i
X p X P
0
de telle sorte que p reprsente les coordonnes
de P dans la base canonique. Dautre part, on gardera les notations employes dans le paragraphe prcdent. Le dchiffrement
se dcompose alors en quatre tapes.
En premier lieu, on calcule
' . . . '. '
1 1
e r P e G S m P c r + +
puis le polynme suivant, appel polynme
syndrome :
( ) ( )
t
i
i i
Z R Z S
2
1
1
. '
Page 5
Cryptographie Chiffre de McEliece
ALICE RECOIT LE MESSAGE ENVOYE PAR BOB ET CALCULE r=(0,0,1,0,0,0,0,0,1,0,0,1,1,1,0).
ELLE DETERMINE ALORS ( )
13 12 11 8 2
' X X X X X X R + + + +
PUIS ELLE CALCULE ENSUITE ( ) ( ) ( ) Z Z S . 1
2 3 2
+ + + + (VOIR ANNEXE 5)
On applique alors lalgorithme dEuclide tendu aux polynmes Z
2t
et S(Z) mais on sarrte non pas au dernier reste non
nul mais au premier reste de degr strictement infrieur t. On obtient ainsi lgalit :
( ) ( ) ( ) ( )
( )
( )
'
<
+
t R
t R
avec Z S Z B Z Z A Z R
i
i
i
t
i i
deg
deg
. .
1 2
ICI t=1. LALGORITHME DEUCLIDE ETENDU DONNE (VOIR ANNEXE 5) :
( )
( ) ( )
( ) ( ) ( )
2 3 3 2 3
2 2 3
2
2
. 1 1 1 . 1
1 0 1 .
0 1
+ + + + + + + +
+ + + +
Z Z
Z
Z
Z S en t Coefficien Z en t Coefficien Reste Quotient
DO ON TIRE LGALITE SUIVANTE : ( ) ( ) [ ] ( ) Z S Z Z . 1 1
2 3 2 3
+ + + + + + .
Notons maintenant le nombre derreurs contenues dans le message. On a par hypothse t.
Dfinissons alors les (rj) par lgalit suivante :
( )
1
'
j
r
j
X X E
.
iii) On a alors la relation suivante : ( ) { }
j B Zros
j
r n
i
1 ,
Ainsi, ayant calcul le polynme Bi, on trouve facilement les (rj) simplement en essayant successivement toutes les
puissances de .
POUR NOTRE EXEMPLE, ALICE CALCULE (VOIR ANNEXE 5) :
( )
( )
( )
( ) 1 0 1 1
15 14 13 12
1 1
11 10 9 8
1
7 6 5 4
1 1
3 2 1
2 3 3
3 2 2 3 2
3 2 3 2 3 3
2
+ + + + +
+ + + + + + +
+ + + +
+
m
i
m
i
m
i
m
i
B
m
B
m
B
m
B
m
AINSI LE COEFFICIENT ERRON EST CELUI DU MONME EN X.
ALICE RETROUVE AINSI ( )
13 12 11 8 2
X X X X X X X R + + + + +
ALICE AURAIT BIEN SR DU SARRTER LORSQUELLE A DCOUVERT LA RACINE PARCE QU'ELLE SAIT QUE LE MESSAGE ENVOY RENFERME
UNE UNIQUE ERREUR ET EVITER AINSI LE CALCUL DE BI(
15
).
On effectue finalement la division exacte de R par At. Le quotient de cette division est le vecteur de coordonnes m.S.
Comme on connat linverse de S, on dtermine facilement m.
Remarquons toutefois que si on a calcul auparavant le quotient Ct de la division exacte de (X
n
+ 1) par At, on a alors :
( ) ( )
( )
( )
( ) ( )
( )
( )
( )
( )
k
A
R
et
X A
X R
X
X A
X R
X A X C
X A
X R
X C X R
t t
n
t
t t
t
t
<
,
_
'
+
t e w
e G m c ' . '
.
La mthode de dchiffrement a pr
ouv lexistence et lunicit de ce couple mais comment peut-on faire pour le dterminer ?
5. Une premire attaque
5. Un peu dalgbre linaire
Dfinissons tout dabord sur E, ce qui pourrait sapparenter un produit scalaire par : Y X y x
t
. (dans F2) o X et Y
sont les coordonnes respectives de x et de y dans la base canonique (attention, on transpose !).
On dit, toujours par analogie, que x et y sont orthogonaux si 0 y x et on note y x .
Nous insistons bien sur le fait que ceci nest pas un vritable produit scalaire. Par exemple le fait que x soit orthogonal
lui-mme ne veut pas dire quil est nul mais seulement quil est de poids pair.
On note ensuite si G est un sous-espace vectoriel de E : { } y x G y E x G
, / .
iv) On a alors la proprit suivante :
G
est un sous-espace vectoriel de E de codimension la dimension de G. De l dcoule
( ) F F
.
Dfinissons alors la matrice H en crivant en ligne les vecteurs dune base de
F
. On a alors :
( ) ( ) ( ) ( ) F F x F de base une toute orthogonal est x H x
t
0 .
On dispose ainsi dun test permettant de reconnatre si x est un lment du code. La quantit
H x
t
.
sappelle le syndrome
de x (on notera quil dpend de H, mais sa nullit nen dpend pas).
6. Dtermination de H
G est par hypothse de rang maximal. Donc on peut trouver k colonnes qui forment une famille libre. Autrement dit, on
peut trouver M une matrice de permutation (voir Annexe 7) telle que : ( )
2 1
'. G G M G o G1 est une matrice inversible de
taille (k,k) et G2 une matrice quelconque de taille (k,n-k).
Posons alors ( ) ( ) M Id G G H
t
k n
t
. .
2
1
1
,
_
G G G G G
Id
G G
M M G G H G
k n
t
, ce qui assure le
rsultat annonc
POUR NOTRE EXEMPLE, OSCAR PEUT PARVENIR :
Page 7
Cryptographie Chiffre de McEliece
,
_
0 0 0 0 0 0 0 0 1 1 0 1 1 0 0
0 1 0 1 1 0 1 1 0 0 0 0 1 0 0
1 0 0 1 1 0 0 0 0 0 0 1 0 0 0
0 1 0 1 1 0 0 0 1 0 1 0 1 0 0
0 1 0 0 1 0 0 1 1 0 0 1 0 1 0
0 0 1 0 1 0 0 1 1 0 0 1 1 0 0
0 1 0 1 0 0 0 1 0 0 0 0 0 0 1
0 0 0 1 1 1 0 1 0 0 0 1 1 0 0
H
REMARQUONS QUE OSCAR NE DOIT EFFECTUER CE TRAVAIL SEULEMENT LORSQUE ALICE PUBLIE LA MATRICE G ET PAS CHAQUE FOIS
QUIL VEUT DCHIFFRER UN MESSAGE.
7. Algorithme dattaque
On raisonne sur les valeurs que peut prendre le vecteur derreur. Il y en a
t
i
i
n
C
0
. On a en gnral une approximation
suffisante de ce nombre en prenant la valeur
t
n
C .
On dresse alors un tableau o lon met en correspondance tous les vecteurs derreur possibles et leur syndrome. Cette
opration ne doit tre effectue, comme la prcdente, quune seule fois.
OSCAR DRESSE ALORS LE TABLEAU SUIVANT ( COMPLTER) :
( ) ( )
( ) ( )
( ) ( ) 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
' Syndrome erreur d Vecteur
CE TABLEAU COMPTE NORMALEMENT 16 LIGNES.
Lorsque lon intercepte le message chiffr, on calcule alors son syndrome. Le vecteur derreur est le seul lment en
correspondance dans le tableau prcdent avec le syndrome calcul. On retrouve alors le message clair.
En effet, on a par hypothse e G m c + ' . ' do c et e ont le mme syndrome car m.G est un mot du code. Il reste voir
que deux vecteurs derreur distincts ont des syndromes distincts. Mais, si tel ntait pas le cas, alors la diffrence de ces deux
vecteurs aurait un syndrome nul et serait donc un mot du code. Seulement, le poids de cette diffrence serait infrieur (2t),
mais on a vu que la distance minimale du code est suprieure (2t+1), ce qui est contradictoire. Ceci fonde lalgorithme
propos.
LORSQUE OSCAR INTERCEPTE C = (1,0,0,1,0,0,1,1,0,1,0,0,0,0,0), IL CALCULE SON SYNDROME.
IL TROUVE ALORS ( ) 0 1 1 1 1 1 0 1 '. H c
t
IL CHERCHE ENSUITE DANS LE TABLEAU LE VECTEUR DERREUR CORRESPONDANT, AINSI IL OBTIENT LE MESSAGE CORRIGE : C =
(1,0,0,1,0,0,1,1,0,1,1,0,0,0,0).
IL PEUT ALORS ECRIRE : ( ) ( ) ( )
2 1
1
2
1
1
1
2 1
. . . . . . ' . C C c M G m M G m M G G m G m
DO IL TROUVE ( ) 0 1 1 0 1 0 1 . .
1
1 1
G M C m , CE QUI EST BIEN LE MESSAGE CLAIR.
8. En conclusion
On a pu remarquer sur lexemple prcdent que cet algorithme est trs efficace pour de petits codes (cest dire pour des
valeurs de n et de t suffisamment petites).
Cependant dans la pratique les valeurs de n et de t sont suffisamment grandes. Supposons, ce qui est plus raisonnable (ce
sont les quantits suggres par McEliece), que n=1024 et que t=50. Alors, le nombre de vecteurs derreur possibles est
monstrueux, de lordre de
86
10
. Ainsi, le calcul de tous les lments du tableau de dchiffrement serait pratiquement
impossible, car trop long, et le stockage de toutes ces informations demanderait beaucoup plus de mmoire que ne peuvent en
contenir un milliard de milliards de disques durs de 10 Gigaoctets.
On peut essayer de fixer une limite raisonnable : cette approche devient totalement impraticable ds que lon choisit n
suprieur 150.
Page 8
Cryptographie Chiffre de McEliece
6. Une mthode probabiliste
Nous allons prsenter ci-dessous lalgorithme dattaque :
1. (Voir Annexe 7) On permute les colonnes de G pour obtenir la matrice ( )
2 1 0
G G G o G1 est une matrice
inversible de taille k. On sait que cela est possible car G est de rang maximal.
2. On effectue la mme permutation sur le message capt c et on obtient ( ) ' ' '
2 1 0
c c c .
3. On calcule le produit
' .
1
1
G G T
.
4. Pour chaque vecteur derreur e de longueur k et de poids infrieur , on calcule la quantit suivante :
( ) ' . ' '
0
r T e c e + + . Si le poids de ce vecteur est infrieur ou gal t, alors le message clair est donn par
( )
1
1 0
. '
+ G e c m .
5. Si aucun succs na t rencontr, on recommence ltape 1 (avec une autre permutation).
Remarquons tout de suite que la mthode prcdente est le cas particulier un peu amlior o lon prendrait =t. Nous
verrons plus loin que cest un trs mauvais choix.
Vrifions maintenant, le rsultat nonc ltape 4. Les galits crites fournissent ' ' . ' e G m c + avec ( ) t e w ' . Or nous
avons vu que cette dcomposition est unique, ce qui permet de conclure.
Nous allons essayer de dterminer la vitesse de cet algorithme en fonction de . Pour cela, appelons
1
t le temps ncessaire
une vrification (cest--dire ltape 4 en ne considrant quun vecteur derreur) et
2
t le temps ncessaire lexcution des
tapes 1, 2 et 3. On pourra considrer ltape 5 comme trs rapide.
Le temps ncessaire pour excuter ltape 4 vaut alors
0
1 1
.
i
i
k
C t T do on en dduit le temps ncessaire pour effectuer
un cycle :
0
1 2
.
i
i
k
C t t T .
Calculons le nombre moyen de cycles que lon va devoir effectuer avant de russir. Il est clair que la russite passe par un
choix judicieux de la permutation. Pour tre plus clair, lalgorithme russit si et seulement si les k bits retenus dans le vecteur
'
1
c contiennent moins de erreurs. Dterminons alors la probabilit de cet vnement (en considrant que le fait que lon ne
tire que des groupes de colonnes indpendantes ninfluence pas le rsultat).
Nous allons supposer en outre pour simplifier les calculs que le message intercept contient exactement t erreurs, ce qui est
le cas le plus dfavorable pour cet algorithme probabiliste.
Le nombre de tirages de k bits parmi n bits vaut :
k
n
C .
Le nombre de tirages contenant exactement i erreurs est donn par :
i k
t n
i
t
C C
. .
On en dduit que la probabilit recherche vaut :
k
n
i
i k
t n
i
t
C
C C
0
.
. On peut montrer alors que dans ces conditions (voir Annexe
1) le nombre moyen de tirages est gal linverse de la probabilit, soit :
( )
0
.
i
i k
t n
i
t
k
n
C C
C
m
Finalement le temps dexcution moyen de lalgorithme vaut :
( ) ( )
,
_
0
1 2
0
. .
.
.
i
i
k
i
i k
t n
i
t
k
n
C t t
C C
C
T m
Essayons alors de dterminer une relation entre t1 et t2. Pour cela, on appellera opration toute addition, multiplication ou
comparaison entre deux bits.
Prcisons galement que dans les calculs qui vont tre faits, nous ne garderons chaque fois que le terme dominant dans un
souci de simplification.
Page 9
Cryptographie Chiffre de McEliece
On peut montrer (voir Annexe 7) que ltape 1 ncessite environ ( ) k n k + . 4 .
2
oprations. Les tapes 2 et 5 sont trs
rapides. Il est facile de voir que ltape 3, demande environ
2
. . 2 k n
oprations. De mme ltape 4 requiert environ k n. . 2
oprations. Ainsi on peut raisonnablement penser que :
( )
n
k
k
k n
k n k n k
t
t
. 2
. 3
. . 2
. . 2 . 4 .
2 2 2
1
2
+
+ +
+ +
0
0
2
.
.
. 2
. 3
.
i
i k
t n
i
t
i
i
k
C C
C
n
k
k
K o K est une constante positive ne dpendant pas de .
On peut alors chercher optimiser ce temps.
Prenons maintenant des valeurs numriques. Comme la suggr McEliece, testons la rapidit de notre algorithme avec
n=1024, k=534 et t=50. La fonction dfinie ntant pas spcialement facile tudier, construisons plutt le tableau suivant :
( )
05 , 236 47 , 280 55 , 285 52 , 287 48 , 288 81 , 288 16 , 287 log
50 10 5 3 2 1 0
10
,
_
p
p
k k
x x Vect Card et F Card .
On en dduit que le nombre de matrices inversibles est
( )
k
p
p k
1
1
2 2
.
Ainsi, la probabilit de tomber sur une matrice inversible vaut :
( )
,
_
,
_
k
p
p
k
p
p k
k
k
p
p k
k
u
1 1
1
1
1
2
1
1
2
1
1
2
2 2
2
Calculons alors le nombre moyen de tirages effectuer dfini par ( ) m u u t
k
m
m
k k
. . 1
1
1
Or aprs drivation justifie par une convergence normale sur tout compact de la fonction drive, on a le rsultat suivant :
] [
( )
,
_
,
_
1
2
1
1
1
1
1
. , 1 , 1
m m
m m
x
x
x
dx
d
x
dx
d
x m x
Donc il vient
( ) ( )
( ) ] [ ( ) 1 , 1 1
1
1 1
2
k
k
k
k
k
u a on car
u
u
u
t
Posons maintenant
( )
,
_
k
p
p
k k
u v
1
2
1
1 ln ln
. On a alors la minoration suivante :
( ) ( ) x x x . 2 ln . 2 1 ln ,
2
1
, 0
1
]
1
,
_
p
p
k
p
p
k
v N k
Et finalement
4
1
4
1
,
k
k
k
t
u
donc et u N k
Le nombre moyen de tirages est donc infrieur quatre.
On notera que lon a dmontr au passage le rsultat suivant que lon rutilisera plus loin : si lors dun tirage alatoire, p
dsigne la probabilit pour que lobjet tir convienne, alors le nombre moyen de tirages avant de tomber sur un objet adquat
vaut
p
1
.
2. Construction des corps finis
On considre K un corps fini commutatif de caractristique 2.
On a alors les rgles de calcul suivantes :
( ) x x encore ou x x x K x + + 0 1 1 . ,
( ) ( )
2 2 2 2 2 2
. . 2 , , y x y y x x y x K y x + + + +
Page 11
Cryptographie Chiffre de McEliece
On en dduit, par une rcurrence immdiate, que :
( ) ( )
r r r
y x y x N r K y x
2 2 2 2
, , , + +
9. Extension algbrique
On considre dsormais un polynme P coefficients dans K et irrductible dans K.
On dfinit la relation binaire suivante :
( ) [ ] ( ) ( ) ( ) ( ) R Q divise P R Q X K R Q , ,
2
Cette relation est une relation dquivalence et on notera
[ ]
P
X K
son ensemble quotient.
Nous allons montrer que
[ ]
P
X K
peut tre muni dune structure de corps qui prolonge celle de K.
La fait que lon ait limplication suivante :
( ) ( )
( ) ( )
'
+ +
'
' '. .
' '
'
'
R Q R Q
R Q R Q
R R
Q Q
permet de dfinir laddition et la
multiplication dans
[ ]
P
X K
.
Lassociativit, la commutativit, lexistence dlments neutres et dun oppos sont des proprits immdiates. Le seul
point dlicat est linversibilit de tout lment non nul.
Soit alors
[ ]
P
X K
Q
tel que 0 Q
(ie Q nest pas un multiple de P). Comme P est irrductible, P et Q sont alors
premiers entre eux. Le thorme de Bezout permet dcrire :
( ) [ ] ( ) ( ) ( ) ( ) ( ) 1 . . / ,
2
+ X Q X V X P X U X K V U et donc 1 . Q V
Donc Q
est inversible et
[ ]
,
_
+ , , '
P
X K
K est bien un corps.
Finalement, remarquons quil sagit encore dun corps commutatif de caractristique 2 et que le sous-corps de K1 form des
polynmes constants est isomorphe K (ainsi K1 prolonge bien K).
Dautre part si K compte n lments alors K en dnombre
( ) P
n
deg
.
Enfin, notons
X
. On a videmment P divise P et donc si on considre P comme polynme coefficients dans K, il
vient P()=0 et donc [ ] ( ) ( ) ( ) X P X X P X K P
1 1
. / ' .
10. Construction
Prenons maintenant un entier strictement positif r et K=F2.
Posons alors n = 2
r
- 1 et
( ) X X X X X P
n
r
+1 2
.
Nous allons montrer par rcurrence quil existe un sur-corps K de K tel que P soit scind dans K
Lhypothse de rcurrence est la suivante :
( ) ( ) [ ] ( ) ( )
+
i
k
k i
i
i i i
X Q X P X K Q et K et K de surcorps K i HR
0
1
0
. / ,..., :
On a ( ) ( ) 1 .
n
X X X P , ce qui initialise notre rcurrence.
Si on suppose HR(i-1), pour i compris entre 1 et n, alors le polynme Q est de degr suprieur ou gal 1. On peut donc
trouver un polynme irrductible Q0 divisant Q. Le rsultat de lextension algbrique prouve alors HR(i) et donc lhrdit.
Le rsultat annonc correspond HR(n) et est donc dmontr.
Considrons maintenant lensemble suivant : { } x x K x F
n
r
+1
2
/ ' . Il sagit dun sous-corps de K de cardinal 2
r
.
En effet, on a bien
.
2
r
F
De plus, si x et y sont des lments de r
F
2
, alors, comme K est commutatif et de
caractristique 2, les rgles de calcul permettent dcrire :
( ) ( ) y x y x y x y x y x
r r r r
+ + +
2 2 2 2
et
( ) y x y x y x
r r r
. . .
2 2 2
Page 12
Cryptographie Chiffre de McEliece
Dautre part
( ) ( ) ( ) 1 . . .
2
1
2
1 2
2
1
r r
r
r
y y y y y y
do
( )
1
2
1
y y
r
.
Finalement r
F
2
est bien un sous-corps de K.
Reste montrer quil est de cardinal 2
r
. Pour cela, calculons ( ) 1 1 . 2 '
n r
X X P . On en dduit que P ne sannule
pas et donc les racines de P sont simples. Comme P est scind dans K, il en a 2
r
, ce qui revient dire que r
F
2
est bien de
cardinal 2
r
.
Finalement, on a bien construit un corps de cardinal 2
r
(qui existe donc). On peut montrer en outre que ce corps est unique
un isomorphisme prs, ce qui justifie la notation r
F
2
.
On peut remarquer enfin que lon a montr que r
F
2
est un corps de caractristique 2.
3. Trouver un lment primitif
r dsigne toujours un entier strictement positif et on a n = 2
r
1. On dsigne par r
F
2
le corps fini 2
r
lments (voir Annexe
2) et par
*
2
r
F ce corps priv de llment nul. On se propose dans un premier temps de dmontrer que ( ) ,
*
2
r
F est un groupe
cyclique.
Remarquons tout dabord que ( ) ,
*
2
r
F est un groupe fini de cardinal n.
Notons alors
d
d
p p n
...
1
1
o les pi sont des nombres premiers deux deux distincts et les i sont des entiers
strictement positifs.
Soit { } d i ,..., 2 , 1 . Posons
( ) 1
i
i
p
X X P
. On a alors
( )
1
. '
i
i i
p
i
X p X P
.
Or n est un nombre impair, car il prcde un nombre pair, donc
i
i
p
aussi.
Comme r
F
2
est de caractristique 2 (voir Annexe 2), on en dduit que
( )
1
'
i
i
p
X X P
.
Do P nadmet que 0 comme racine et donc les racines de P sont toutes simples.
Il vient alors { }
i
i
i
r
i
p
p x F x Card
1 /
*
2
. Et de mme { }
1 *
2
1 /
1
i
i
i
r
i
p
p x F x Card
.
Or on a
1
>
i i
i i
p p
do on en dduit que :
'
1
1
/
1
*
2 i
i
i
i
r
p
i
p
i
i
x
x
F x
.
Autrement dit, pour tout i, il existe un lment xi dordre
i
i
p
.
Le produit de tous les xi fournit alors un lment dordre n, ce qui prouve que ( ) ,
*
2
r
F est un groupe cyclique
Les lments qui engendrent ( ) ,
*
2
r
F sont appels les lments primitifs.
Comment dterminer un lment primitif quelconque ? Une premire ide consiste gnrer un lment alatoire et
vrifier sil est primitif. Sil ne lest pas, on recommence le procd jusqu russite. Vrifions si cet algorithme est acceptable.
Pour cela, il faut dnombrer le nombre dlments primitifs. Or si est lun dentre eux, on peut crire :
{ }
1 2 *
2
,..., , , 1
n
r
F et
) , (
) (
i n PGCD
n
ordre
i
.
Ainsi, il y a autant dlments primitifs que de nombres la fois infrieurs n et premiers avec n. La fonction indicatrice
dEuler que lon note calcule ce nombre et on a la relation suivante :
( )
,
_
d
i i
d
p
n n Alors p p n Si
d
1
1
1
1 . ...
1
On en dduit (voir Annexe 1) que le nombre moyen de tirages effectuer est donn par :
Page 13
Cryptographie Chiffre de McEliece
,
_
d
i i
n
p
t
1
1
1
1
Or un rsultat danalyse prouve que
,
_
premier p
p
1
est une srie divergente, ce qui assure que la suite (tn) prend
malheureusement des valeurs aussi grandes que lon veut lorsque n dcrit lensemble des entiers naturels. Toutefois, on peut
regarder les valeurs prises par tn lorsque r est compris entre 1 et 15 (ce qui regroupe largement toutes les applications
pratiques).
214 , 1 32767 15 705 , 1 1023 10 033 , 1 31 5
548 , 1 16383 14 183 , 1 511 9 875 , 1 15 4
000 , 1 8191 13 992 , 1 255 8 167 , 1 7 3
370 , 2 4095 12 008 , 1 127 7 500 , 1 3 2
057 , 1 2047 11 750 , 1 63 6 000 , 1 1 1
n n n
t n r t n r t n r
Les rsultats obtenus sont rassurants. Pour se convaincre pleinement, la procdure suivante crite sous Maple prouve que
pour excder le nombre de 10 tirages, il faut choisir r suprieur 343.
minr :=
proc(emax)
local n,nb,e;
e := 1;
nb := 0;
n := 1;
while e < emax do n := nextprime(n); nb := evalf(nb+log(n));
e := evalf(e/(1-1/n)) od;
floor(nb/log(2))+1
end
Il reste vrifier que tester si un lment est primitif est une opration rapide.
Supposons que lon vienne de gnrer llment alatoire . Il suffit, pour le tester, de calculer les exponentielles i
p
n
pour i allant de 1 d et de vrifier que chacun des nombres calculs est diffrent de lunit. Essayons alors de majorer d.
d est dfini par
d
d
p p n
...
1
1
donc on en dduit que
d
d
r
p p n 2 ... 2
1
> et donc 1 r d .
Notons que cette majoration est trs grossire et quen gnral d est bien plus petit que cela. Toutefois, elle permet de
conclure que le nombre de calculs effectuer est trs rduit.
Enfin, on dispose dalgorithmes puissants pour effectuer une exponentielle (voir Annexe 5) donc lalgorithme propos est
efficace.
Remarquons cependant que la dtermination de la dcomposition en facteurs premiers de n nest pas toujours facile si n est
grand, mais dans la pratique n nexcde que trs rarement 10 000.
4. Trouver P un polynme irrductible de F
2
[X]
r dsigne toujours un entier strictement positif et on a n = 2
r
1. On dsigne par r
F
2
le corps fini 2
r
lments (voir Annexe
2). Appelons un lment primitif de r
F
2
(voir Annexe 3) et considrons le polynme suivant : ( ) X X X P
r
2
. P se
dcompose en produits de polynmes irrductibles sur F2[X] de la faon suivante:
k
P P P ...
1
. Or annule P donc
( ) 0 /
i
P i et par hypothse Pi est un polynme irrductible. Montrons que Pi est un polynme de degr r.
Page 14
Cryptographie Chiffre de McEliece
Pour cela, notons ( )
i
P r deg ' et considrons
[ ]
i
P
X F
K
2
(voir Annexe 2). Alors K est un corps de cardinal 2
r
et
donc si on note encore
X
, on a
'
2
r
, ce qui scrit galement X X divise P
r
i
'
2
. Comme annule Pi, on en
dduit que
'
2
r
ou encore
1
1 2
'
+ + +
r
r
m
m
r m
r m
m r
r r m m r r
Donc il vient
( )
r
r
r
r
1
2
2 2
+
. Ainsi le nombre de tirages moyen est infrieur
2
1
2 1
r
r
2
et sil est premier avec tous les
X X
q
r
2
.
Considrons maintenant q un facteur premier de r. Si R ntait pas premier avec
X X
q
r
2
et qui est premier avec tous les
X X
q
r
2
do on dduirait que d est un diviseur de r et puis un diviseur strict.
Mais alors on pourrait trouver q un facteur premier de r tel que d divise
q
r
, ce qui impliquerait que R0 divise
X X
q
r
2 ,
do la contradiction. Ainsi, on a bien dmontr le thorme.
On peut alors proposer lalgorithme suivant :
Soit R un polynme de degr r. On crit tout dabord
d
d
r r r
...
1
1
o les ri sont des nombres premiers deux deux
distincts et les i sont des entiers strictement positifs. Cette opration est relativement rapide si r nest pas trop grand.
Remarquons galement quil nest pas ncessaire de la rpter pour chaque polynme R que lon doit tester.
Page 15
Cryptographie Chiffre de McEliece
On calcule ensuite les Qi, reste de la division euclidienne de
i
r
X
2
par R. Il existe des algorithmes puissants (voir Annexe 5)
pour effectuer ces calculs et dautre part on a 1 r d (voir Annexe 3), donc relativement peu de divisions effectuer. Ainsi
cette tape est globalement rapide.
On vrifie enfin si tous les polynmes ( ) X X Q
i
sont premiers avec R (simplement en appliquant lalgorithme
dEuclide) et puis si
X X
r
2
est un diviseur de R (en calculant le reste de la division euclidienne de
r
X
2
par R). Le thorme
prcdent prouve que si cest le cas R est irrductible, sinon il ne lest pas.
En conclusion, pour des valeurs de r par trop grandes (ce qui est en gnral le cas), on peut considrer que la mthode
propose est trs acceptable.
5. Calcul explicite dans un corps fini
Soit r un entier strictement positif et le corps fini de cardinal 2
r
, r
F
2
(voir Annexe 2). Considrons dautre part un
polynme irrductible de degr r coefficients dans F2 dindtermine (voir Annexe 4). Alors r
F
2
est isomorphe
[ ]
P
K
(voir Annexe 2). Nous allons donc considrer que les lments de r
F
2
sont des polynmes rduits modulo P, laddition et la
multiplication se dfinissent alors de faon naturelle.
CHOISISSONS PAR EXEMPLE r=4 ET ( ) 1
2 3 4
+ + + + P (COMME CEST GALEMENT LE CAS DANS TOUT LE MMOIRE)
ET CONSIDRONS ( ) 1
3
+ + X ET ( ) +
2
Y .
ON PEUT ALORS CALCULER :
( ) ( ) 1
2 3
+ + + Y X
( ) ( ) ( ) [ ] P Y X
2 3 4 5
. + + +
On remarquera que pour laddition la rduction modulo P est dj faite alors que pour une multiplication, il est ncessaire
de pratiquer une division euclidienne.
11. Calcul de linverse
Supposons que lon veuille calculer linverse de X qui est non nul modulo P. Comme P est irrductible, X et P sont alors
premiers entre eux et lalgorithme dEuclide permet alors de trouver des polynmes U et V qui vrifient P.U+X.V=1. Cette
galit rduite modulo P prouve alors que V est linverse de X.
CONSIDRONS TOUJOURS LES MMES PARAMTRES ET CALCULONS LINVERSE DE LLMENT ( ) 1
3
+ X . LALGORITHME DEUCLIDE
SE PRSENTE ALORS COMME SUIT :
( )
1 1
1 1
1 1
0 1
2
2
3
2 3 4
+ +
+ +
+
+ + + +
X en t Coefficien Reste Quotient
VRIFIONS EN CALCULANT ( ) ( ) ( ) [ ] P X 1 1 1 .
2 3 4 5 2
+ + + + + + +
12. Calcul de puissances
Soit X un lment de r
F
2
et n un entier relatif. Une ide innocente pour calculer lexponentielle modulaire X
n
serait la
suivante : si n est positif, on multiplie X par lui-mme n fois, ce qui fournit le rsultat, sinon, on calcule linverse de X (par
lalgorithme dEuclide) que lon multiplie par lui-mme (-n) fois. Il est assez vident que cette mthode sera fort lente si n
atteint de trop grandes valeurs.
Si X est nul, le calcul est vite fait. On supposera donc par la suite X non nul. On sait qualors
1
1 2
r
X
. Ainsi, si on note
m le reste de la division euclidienne de n par (2
r
-1), on a
m n
X X
et donc il suffit en fait de calculer X
m
pour avoir le
rsultat. Lintrt est double. Tout dabord, bien sr, les valeurs prises par m sont relativement petites et donc le calcul pourra
Page 16
Cryptographie Chiffre de McEliece
tre acclr. Mais galement, m est par dfinition toujours positif, ainsi on a dtourn le calcul de linverse si n tait au dpart
ngatif.
Ecrivons ensuite m en base 2 :
i
i
m 2
. Le plus grand lment de est alors [ ] ( ) r m E d + 1 log
2
. On calcule
alors, par lvations au carr successives, les quantits suivantes pour i allant de 0 d :
i
X X
i
2
. Remarquons que le fait
que r
F
2
soit de caractristique 2 et que donc on ait ( )
2 2 2
y x y x + + prouve quune lvation au carr est une opration
simple effectuer. Lexponentielle cherche est alors gale
i
i
n
X X
.
Ce qui est encore plus intressant, cest que lon peut effectuer de manire simple la dcomposition en base 2 en mme
temps que le calcul. En effet 0 est un lment de veut simplement dire que m est impair, ce qui suggre lalgorithme suivant :
1. On affecte m la valeur du reste de la division euclidienne de n par (2
r
-1).
2. On affecte la valeur 1 la variable RES (pour rsultat).
3. On pose X0=X et i=0.
4. Si m est impair, on substitue RES le produit de RES par Xi.
5. On calcule Xi+1=Xi
2
.
6. On ajoute 1 i.
7. On enlve m le dernier chiffre de son criture binaire. Autrement dit, on remplace m par la partie entire de sa moiti.
8. Si m est non nul, on reprend ltape 4. Sinon, RES renferme le rsultat de lopration demande
On obtient sous Maple, la procdure suivante o MULT est une procdure externe qui effectue la multiplication des
polynmes et la rduit modulo P.
puis := proc(p,n)
local res,c,m;
res := 1;
c := p;
m := mods(n,15);
while 0 < m do
if m mod 2 = 1 then res := mult(res,c) fi;
m := floor(1/2*m); c := mult(c,c)
od;
res
end
Pour effectuer cette mthode, il faut donc faire une division euclidienne, moins de r lvations au carr et moins de r
multiplications. Il sagit donc dune mthode rapide.
On remarquera finalement que pour (n=-1), on obtient ici une autre mthode du calcul de linverse plus rapide si r est grand
mais moins efficace si r est petit.
CALCULONS LINVERSE DE LLMENT ( ) 1
3
+ X AVEC CETTE NOUVELLE MTHODE.
COMME r=4, IL SAGIT EN FAIT DE CALCULER X
14
, ON CRIT ALORS 8 4 2 14 + + . ON CALCULE ALORS :
( ) 1
3
0
+ X
( ) 1 1
6
1
+ + X
( ) 1
2
2
+ X
( ) + + +
2 3 4
3
1 X
ON TROUVE ENFIN : 1 . .
2 3 4 6
3 2 1
1
+ + + + +
X X X X .
ON RETROUVE BIEN LE MME RSULTAT.
6. Complexit de la mthode du pivot de Gauss
Comme les oprations vont seffectuer dans le corps F2, nous allons considrer que laddition, la multiplication et la
comparaison des nombres sont aussi rapides les unes que les autres. Ainsi, on ne dnombrera que le nombre doprations
effectuer pour excuter la mthode du pivot de Gauss.
Donnons-nous une matrice carre M de taille n, inversible ou non.
Page 17
Cryptographie Chiffre de McEliece
On cherche tout dabord construire une suite (Pi) telle que lon ait chaque tape : ( )
i i i
N M P o
'
M N M et inversible est N
m alors l k et i l si
i i i
l k l k
1
, ,
.
, 1
On part de la position initiale ( )
n
I M P
0
.
Voyons comment on peut passer de Pi-1 Pi pour i suprieur ou gal 1.
Remarquons tout dabord que permuter deux colonnes dune matrice A ou remplacer une colonne de A par la somme
delle-mme et dune autre peut tre fait au moyen de la multiplication droite de A par une matrice inversible. Ainsi, on
pourra se contenter de faire des oprations sur les colonnes.
Ceci dit, posons
( )
l k i
m M
, 1
et appelons
l
C les colonnes de
1 i
M . Lalgorithme est alors le suivant :
On cherche un entier l0 (par la mthode exhaustive) vrifiant :
'
1
0
,
0
l i
m
n l i
.
Si aucun entier ne convient, alors les i premires lignes de
1 i
M sont lies et donc
1 i
M nest pas inversible, ce qui
prouve, par l mme que M nest pas inversible. Ainsi, on a termin le test.
Si on a trouv un entier convenable, on permute les colonnes
i
C et
0
l
C
et on obtient ainsi une nouvelle matrice
( )
l k
m M
,
' '
. Ensuite, pour l variant de (i+1) n, on remplace la colonne
l
C par
l i
C C + si le coefficient
l i
m
,
'
est non nul
de sorte que lon obtienne finalement une matrice
i
M satisfaisant la condition souhaite.
On a vu que toutes ces oprations peuvent se rsumer par lcriture suivante : S M M
i i
.
1
o S est une matrice
inversible. Dfinissons alors
i
N par S N N
i i
.
1
(ce qui revient effectuer les mmes oprations sur
1 i
N que celles que
lon a effectues sur
1 i
M ). Alors on a bien
i
N inversible, comme produit de deux matrices inversibles et la relation :
( ) ( ) M N M S N S M N M
i i i i i i
1
1 1
1
1 1
1
. . . . .
Si on est arriv construire Pn, alors il est clair que M est une matrice inversible (car Mn est inversible). Ainsi, on est ce
moment capable de rpondre la question de linversibilit de M.
Comptons alors le nombre doprations maximum que lon a du effectuer. Pour la i tape, on a au plus :
( ) 1 . 2 + i n comparaisons
n . 6 oprations dues la permutation des deux colonnes
( ) i n n . . 2 additions
Ainsi le nombre doprations est certainement major par ( ) ( ) [ ] ( )
+ + +
1
0
3 2
4 . 2 . 2 2 . 8 . 2
n
i
n i n n n
Si on veut de plus calculer linverse de M dans le cas o il sagit dune matrice inversible, on limine alors successivement
les 1 superflus de la matrice
n
M qui ne se trouvent pas sur la diagonale.
Pour cela, on procde encore par rcurrence. Il sagit de construire cette fois une suite ( )
i i i
N M Q ' ' qui vrifierait
'
,
_
M N M et inversible est N
frieure in re triangulai est A o
I
A
M
i i i
i
i
i
i
1
' . ' '
0
'
Le couple ( )
n n
N M Q
1
qui convient permet dinitialiser la rcurrence.
Supposons que lon ait construit le couple
i
Q . Alors, en remplaant successivement la (n-i) colonne par la somme des (n-
i) et k colonne si le coefficient
( )
i n k i
M
,
'
est gal 1, pour k variant de (n-i+1) n, on obtient la matrice
1
'
+ i
M . De mme
que prcdemment, on construit la matrice
1
'
+ i
N et on a ainsi lhrdit de la rcurrence.
Finalement la matrice
n
M' nous donne linverse de M.
Comptons le nombre doprations que demande cet algorithme. Pour ltape i, il faut au plus :
Page 18
Cryptographie Chiffre de McEliece
i comparaisons
i n. . 2 additions
Ainsi le nombre doprations pour cette tape est infrieur ( )
3
1
1
1 . 2 . n n i
n
i
+
.
Si on regroupe les deux rsultats, on obtient le rsultat suivant : le nombre doprations ncessaires pour tester si une
matrice est inversible et le cas chant pour linverser est infrieur ( )
3
2 . 2 + n
.
On remarque alors que lalgorithme du pivot de Gauss est raisonnablement rapide mme lorsque n prend des valeurs
grandes.
Pour se convaincre de la rapidit de cet algorithme, valuons le nombre doprations quil est ncessaire de faire pour
multiplier deux matrices carres de taille n. Pour le calcul de chaque coefficient, il faut faire n multiplications et (n-1)
additions. Comme il y a n
2
coefficients calculer, le nombre cherch vaut ( ) 1 . 2 .
2
n n qui est de lordre de grandeur du
nombre calcul pour linversion.
Ainsi lorsque les coefficients sont dans F2, inverser une matrice est presque aussi rapide que, par exemple, llever au
carr ! Signalons toutefois que le pivot de Gauss demande un effort de gestion assez important, ce qui ralentit quelque peu
le calcul.
7. Dtermination de k colonnes indpendantes
Donnons-nous des entiers n et k vrifiant n k 1 et une matrice M de taille (k,n) de rang maximal. Notons Ci les
colonnes de M. Le problme est de trouver ( )
k
,...,
1
tel que la matrice
( )
k
C C
...
1
soit inversible. Ce qui revient en
fait chercher deux matrices G et H telles que G soit une matrice inversible de taille k et que la juxtaposition de G et de H
fournisse une permutation des colonnes de M.
Nous allons prsenter un algorithme permettant darriver au rsultat. Nous insistons sur le fait quil sinspire grandement de
lalgorithme du pivot de Gauss prsent prcdemment. Cest pourquoi nous lappellerons algorithme du pivot de Gauss
tendu.
On se donne tout dabord une permutation de lensemble { } n ,..., 1 , que lon peut facilement gnrer comme nous
lavons dcrit dans le mmoire.
Nous allons alors construire G et H.
Pour cela, on construit par rcurrence une suite
( )
p p p p p
H S A G u , , ,
vrifiant les conditions suivantes :
( )
( )
( )
( ) ( )
( )
( )
( ) ( )
( )
'
>
p p
C S C
(que lon calcule dans la pratique).
Appelons L le nombre de colonnes de Gp.
On cherche alors par la mthode exhaustive un entier l0 vrifiant :
( )
'
+
1
1
0
0
l
C
k l L
.
Deux cas se prsentent alors. Si lon na trouv aucun entier convenable, alors la matrice
( ) C A
p
nest pas de rang
maximal. Linversibilit de Sp, lgalit
( )
( )
( )
1
.
+
p p p p
C G S C A
et le fait que Gp soit de rang maximal prouvent que
Page 19
Cryptographie Chiffre de McEliece
( ) ( )
( ) ( )
( ) ( )
( )
p p p
C C rang G rang C C rang
... ...
1 1 1
+
. Ainsi lon peut dfinir up+1 de la faon suivante :
( )
( )
1 1 1 1 1
; ; ;
+ + + + +
p p p p p p p p p
C H H S S A A G G
.
Si lon est parvenu trouver un l0 convenable, posons
( ) C A A
p
4
1
. La probabilit qui nous intresse, cest ( )
k
T C P .
Pour la dterminer, il nous faut auparavant calculer P(C). Un rsultat darithmtique permet dapporter une rponse
satisfaisante. Celui-ci dit que si N est grand, alors le nombre de nombres premiers infrieurs N est de lordre de
N
N
ln
.
Fixons nous donc une borne suprieure N aux nombres alatoires que lon gnre. On a ainsi le rsultat suivant :
( )
N
C P
ln
1
1
. Les thormes classiques de probabilit permettent dcrire :
( ) ( ) ( ) ( ) ( ) ( )
N N
C T P C P C T P C P C T P T P
k k k k
ln
1
ln
1
1 . . . +
,
_
+
et ( ) ( ) ( ) ( )
,
_
N
C T P C P C T P C T P
k k k
ln
1
1 . .
Do on trouve aisment la probabilit recherche :
( )
( )
( ) ( ) ( ) N
N
N C T P T P
C T P
T C P
k
k k
k
k
ln 1 4
1 ln
1 ln . 1
1
1
+
Pratiquement pour le systme RSA, on souhaite obtenir des nombres premiers dune soixantaine de chiffres, ce qui
correspond peu prs ( ) 140 1 ln N . Ainsi aprs cinquante essais infructueux, la probabilit que le nombre test soit
compos est infrieure
28
10
, ce qui est vraiment ridicule . A titre de comparaison, on a autant de chance davoir laisser
passer miraculeusement un nombre compos que de gagner au Loto quatre fois daffile.
Pratiquement, pour gnrer de grands nombres premiers alatoires dune centaines de chiffres, on gnre des nombres
impairs dune centaine de chiffres et on teste leur primalit par lalgorithme prcdent. Ltude ci-dessus prouve alors que le
nombre moyen de tirages effectuer est de lordre de 115, et donc il sagit ici dune mthode rapide et relativement sre.
La factorisation, elle, est beaucoup plus complique. En effet, il sagit de trouver des diviseurs stricts sans se contenter de
dire seulement quils existent. Bien sr, on connat des mthodes plus labores que la recherche exhaustive qui consisterait
tester tous les ventuels diviseurs jusqu en trouver un. Ces algorithmes sont bass sur des thories assez complexes comme
par exemple l'tude des courbes elliptiques mais ont des temps d'excution qui croissent rapidement avec la taille du nombre
tester et qui utilisent des mthodes probabilistes certes plus rapides mais moins sres (c'est--dire que l'on est pas sr a priori
de parvenir un rsultat). En effet, le nombre le plus grand factoris ce jour ne compte pas plus de 129 chiffres et il a fallu de
nombreux ordinateurs travaillant nuit et jour pour arriver ce rsultat.
9. Quelques procdures crites sous MAPLE
Toutes ces procdures fonctionnent aprs avoir charg le package LINALG.
Procdure 1 : Gnration dune matrice inversible alatoire et de son inverse
has2 := proc() rand() mod 2 end
Page 22
Cryptographie Chiffre de McEliece
findinv := proc(k)
local dt;
global s,invs;
dt := 0;
while dt mod 2 = 0 do s := randmatrix(k,k,entries = has2);
dt := det(s) od;
invs := inverse(s)*dt;
invs := z2(invs);
[evalm(s),evalm(invs)]
end
On notera que cette procdure fait appel la sous-procdure Z2 qui permet de rester avec des coefficients dans F2.
Procdure 2 : Gnration dune matrice de permutation et de son inverse
perm := proc(n)
local lst,chx,i,j,r;
global pm,invpm;
lst := matrix([[seq(i,i = 1 .. n)]]);
pm := matrix([seq([seq(0,i = 1 .. n)],j = 1 .. n)]);
for r from 0 to n-1 do
chx := (rand() mod (n-r))+1;
pm[r+1,lst[1,chx]] := 1; lst[1,chx] := lst[1,n-r]
od;
invpm := transpose(pm);
[evalm(pm),evalm(invpm)]
end
Procdure 3 : Gnration dune matrice sympathique et du couple (n,k)
gencode :=
proc(err,r)
local a2,i,j,cf,i1,j1;
global grp,alpha,a,n,k,t,ainv,g;
t := err;
readlib(GF);
grp := GF(2,r); (Cette opration construit le corps fini de cardinal 2
r
)
a := 1;
alpha := grp[PrimitiveElement]();
a2 := grp[`^`](alpha,2);
cf := alpha;
for i by 2 to (2*t+1) do
for j to r do a := mult(a,x+cf); cf := grp[`^`](cf,2) od;
cf := grp[`*`](cf,a2)
od;
n := 2^r-1;
k := n-degree(a,x);
ainv := diveuc(x^(n-1)+1,a)[1];
g := matrix([seq([seq(coeff(expand(a*x^j1),x,i1),i1 = 0 .. n-1)],j1 = 0 .. k-1)])
end
On notera que cette procdure fait appel la sous-procdure DIVEUC qui effectue la division euclidienne de deux
polynmes et renvoie la liste [Quotient, Reste] et la sous-procdure MULT qui multiplie deux polynmes.
Procdure 4 : Chiffrement du message MES
erreur := proc()
local lst,err,chx,i;
lst := matrix([[seq(i,i = 1 .. n)]]);
err := matrix([[seq(0,i = 1 .. n)]]);
for i from 0 to t-1 do
Page 23
Cryptographie Chiffre de McEliece
chx := (rand() mod (n-i))+1;
err[1,lst[1,chx]] := 1; lst[1,chx] := lst[1,n-i]
od;
evalm(err)
end
codage := proc(mes)
local cod;
cod := z2(mes &* gp + erreur()); evalm(cod)
end
Procdure 5 : Dchiffrement du message MES
decodage := proc(mes)
local xs,i,msg,yp;
yp := z2(mes &* invpm);
xs := finderr(sum(yp[1,i+1]*x^i,i = 0 .. n-1));
xs := matrix([[seq(coeff(xs,x,i),i = 0 .. k-1)]]);
msg := z2(xs &* invs);
evalm(msg)
end
finderr :=
proc(p)
local val,i,s,err,dec;
val := alpha;
s := 0;
for i from 0 to 2*t-1 do
s := s+calcul(p,val)*x^i; val := grp[`*`](val,alpha) od;
s := algo(s);
val := alpha;
err := 0;
dec := p;
for i to n while err < degree(s,x) do
if calcul(s,val) = 0 then dec := moins(dec,x^(n-i));
err := err+1 fi;
val := grp[`*`](val,alpha)
od;
multn(dec,ainv)
end
On notera que cette procdure fait appel la sous-procdure ALGO qui met en uvre lalgorithme dEuclide et renvoie le
polynme Bi dfini prcdemment et la sous-procdure MULTN qui multiplie deux polynmes modulo X
n
.
10. Dmonstration des thormes
13. Thorme i)
( ) Si (x1,e1) et (x2,e2) sont deux couples qui vrifient (S), alors on a lgalit suivante :
2 2 1 1
' e x e x x + + et donc F x x e e
2 1 1 2
Mais on a galement ( ) ( ) ( ) d e w e w e e w < +
2 1 1 2
. Do on en dduit que 0
1 2
e e .
Ainsi on a bien dmontr lunicit voulue.
( ) Pour la rciproque, raisonnons par labsurde. Si ( ) t x w F x . 2 /
0 0
, alors on pourrait crire :
( )
( )
'
+
t x w
t x w
avec x x x
2
1
2 1 0
.
Ce qui fournit deux dcompositions distinctes et convenables pour le vecteur x2 (x2=x0+x1 et x2=0+x2), ce qui est
suppos faux.
Page 24
Cryptographie Chiffre de McEliece
14. Thorme ii)
Remarquons tout dabord que la structure de
t
permet de dfinir lapplication
,
_
x x
t t
. 2
:
,
_
.
Ecrivons maintenant ( )
d
i
i
i t
X X A
1
. . La relation prcdente devient alors, toujours en appliquant les mmes rgles
de calcul :
{ }
2
2
1
. 2 2
1
. 2
, ,..., 1 . . F soit d i donc et X X
i i i
d
i
i
i
d
i
i
i
Autrement dit, At est un polynme coefficient dans F2.
15. Thorme iii)
On peut montrer facilement laide dune rcurrence que :
( ) ( ) ( )
1 1 1
deg . 2 deg 1 . .
+ +
i i
i
i i i i
R t B et B A B A
On peut alors en dduire que Ai et Bi sont premiers entre eux et que ( ) t B
i
deg .
Posons alors
( ) ( )
1
. 1
j
r
Z Z
j
et remarquons que :
{ } ( ) ( ) ( ) ( )
i i i i
E E R R t i ' ' ' , . 2 ,..., 1 +
Calculons alors ( ) ( ) ( )
,
_
,
_
1
. 2
. . 2
. 2
1 1
1
. 2
1
1
. 1
. 1
. . . . '
j
r
t
r t
r
t
m j
r
m
r
t
m
m m
Z
Z
Z Z R Z S
j
j
j j j
.
Posons alors
( ) ( ) ( )
,
_
k j
j k
k
r
r
r
j
r
r
Z Z
Z
Z
k
j
k
j
j
1 1 1 1
. 1 . . 1 .
. 1
1
.
de sorte que lon ait :
( ) ( ) ( ) [ ]
t
Z Z Z Z S
. 2
. . On remarquera que ( ) t < 1 deg et ( ) t deg
Dautre part lgalit fournie par lalgorithme dEuclide permet dcrire : ( ) ( ) ( ) [ ]
t
i i
Z Z R Z B Z S
. 2
. .
Do, il vient ( ) ( ) ( ) ( ) ( ) ( ) ( ) [ ]
t
i i i
Z Z Z R Z B Z Z S Z B Z
. 2
. . . . .
Mais on a dautre part ( ) t R B
i i
. 2 . . deg < do on trouve . .
i i
R B .
est scind et ses racines sont les
j
r
et on a
( ) ( ) 0 1 .
1
j k
k
r r r r
j k j j
. Ceci prouve que les polynmes et
sont premiers entre eux et donc le thorme de Gauss permet de prouver lexistence dun polynme Q vrifiant
'
.
.
Q R
Q B
i
i
. Lgalit fournie par lalgorithme dEuclide scrit alors :
( ) ( ) ( ) ( ) ( ) ( ) Z S Z Z Q Z Z A Z Z Q
t
i
. . . .
. 2
+
On en dduit que Q est un diviseur commun Ai et Bi. Mais on a vu que ces polynmes sont premiers entre eux. Ainsi, Q
est un polynme constant non nul (car Ri ne peut tre nul). Donc les racines de Bi sont exactement celles de , ce qui dmontre
le rsultat voulu.
16. Thorme iv)
On vrifie que lon a bien
G 0
et
E G
G
, alors :
( ) ( ) ( )
+ + + G y x donc g y g x g y x G g 0 ,
Page 25
Cryptographie Chiffre de McEliece
Ceci prouve que
G
est un sous-espace vectoriel de E. (On remarquera quil nest pas utile de prendre un scalaire, comme
lhabitude, qui ne pourrait valoir ici que 0 ou 1).
Notons d la dimension de G et considrons dsormais ( )
d G
e e B ,...,
1
une base de G. Dfinissons alors :
{ } ( ) ( ) ( ) ( ) x e x e x u et e x x e d i
d i i
* *
1
*
,..., : : , ,..., 1
Toutes ces applications sont linaires et on a immdiatement u Ker G
.
Dautre part si 1,, d sont des scalaires vrifiant
d
i
i i
e
1
*
0 .
, alors
0 . ,
1
,
_
d
i
i i
e x E x
do on dduit que
d
i
i i
e
1
0 . puis que 0 ...
1
d
. Autrement dit, la famille ( )
* *
1
,...,
d
e e est libre dans E
*
. Un thorme de cours
prouve alors de ( ) d G codim u Ker codim
, ce quil fallait dmontrer.
Dautre part, si F x , alors y x F y
, do on trouve
( )
F x
. Lgalit des dimensions des deux sous-
espaces vectoriels prouve finalement que
( )
F F
.
11. La loi franaise sur la cryptographie
Il est intuitivement vident que la sret dun chiffre repose principalement sur la longueur de la cl que lon utilise. Bien
sr, cela dpend galement du systme cryptographique. On value en gnral la scurit dun systme cryptographique en
calculant la taille minimale dune cl qui le rend calculatoirement inviolable. Par cette dfinition, nous voyons que le systme
de chiffrement de McEliece est peu sr.
Le tableau suivant rpertorie les systmes cryptographiques prsents dans ce mmoire et la taille minimale dune cl le
rendant sr.
500
000 100
000 1
) (
RSA
Hellman Merkle
McEliece
Vigenre
bits en nimale mi Taille Systme
Le symbole infini signifie que lon connat des algorithmes rapides pour casser le chiffre quelle que soit la longueur de
la cl.
Nous constatons aisment quune cl de quarante bits apparat comme ridicule. Ctait pourtant la limite fixe par la loi
franaise jusqu lanne dernire. Il y a bien sr des raisons politiques tout cela mais nous nallons pas nous attarder l-
dessus.
Voyons plutt ce que reprsentent quarante bits.
Pour le chiffre de Vigenre, il sagit dun mot de cinq lettres. Un systme dattaque statistique base sur une tude de la
frquence des lettres dans un langage donn permet de retrouver la cl en un temps record dautant plus rapide que le message
chiffrer est long.
Pour le systme de McEliece, signalons simplement que lexemple ridicule qui est prsent dans ce mmoire utilise dj
une cl de 128 bits.
Pour le chiffrement de Merkle-Hellmann, il sagit au maximum dune suite de cinq nombres infrieurs 250, et donc
retrouver le message original par une tude exhaustive est encore une opration plus rapide que celle du dchiffrement.
Pour le chiffrement RSA, quarante bits correspondent un modulus denviron douze chiffres, un nombre plutt simple
factoriser mme avec une vulgaire calculatrice programmable.
Signalons enfin que la mme restriction est en vigueur aux Etats-Unis sur le rseau Internet. Outre par cette pratique qui
nassure plus aucune confidentialit tous les particuliers et toutes les socits utilisant le rseau, la socit amricaine RSA
Data Security a organis un concours afin de dnoncer ce scandale . Une offre de cinquante mille dollars tait faite ceux
qui seraient capables de dcrypter des messages chiffrs avec des cls allant de 40 256 bits. La rponse ne sest pas fait
attendre : trois heures et demi plus tard, le premier chiffre utilisant une cl de quarante bits a t cass, il disait : Voil
pourquoi vous devez utiliser une clef plus longue .
Page 26
Cryptographie Chiffre de McEliece
BIBLIOGRAPHIE
Douglas Stinson, Cryptographie Thorie et Pratique, pages 1 35
Douglas Stinson, Cryptographie Thorie et Pratique, pages 101 111
Douglas Stinson, Cryptographie Thorie et Pratique, pages 132 137
Douglas Stinson, Cryptographie Thorie et Pratique, pages 170 178
Andr Warusfel, Structures algbriques finies, pages 190 202
Michel Demazure, Cours dalgbre, pages 47 51
Michel Demazure, Cours dalgbre, pages 60 64
Michel Demazure, Cours dalgbre, pages 89 92
Michel Demazure, Cours dalgbre, pages 195 246
Science&Vie, Juin 1997, La clef du secret, page 180
Cours de M. Bruno Martin, professeur lESSI, Complexit & Thorie des codes
Page 27