Vous êtes sur la page 1sur 44

UNIVERSITE MOHAMED PREMIER FACULTE DES SCIENCES DEPRTEMENT DE MATHEMATIQUE ET INFORMATIQUE

OUJDA

Projet de fin dtude

Introduction en thorie des codes

Prpar par les tudiants : Bouchlaghem Soufiane. Larhlid Abdelghani. El-Hajouji Hamid. Professeur directeur: Mhammed Ziane.

Anne universitaire : 2011/2012

Table des matires


0.1 Remerciement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1 Thorie des codes


1.1 1.2 Codage mono-alphabtique . . . . . . . . . . . . . . . . . . . . . . . . Codage poly-alphabtique . . . . . . . . . . . . . . . . . . . . . . . .

4
4 6

2 Comprssion des donnes et transformation en ondelette


2.1 2.2 Les dirent type de compression Thorie de l'information 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Contenu d'information et contexte

9
9 10 10 10 11 11 12 13

Mesure de la quantit d'information : . . . . . . . . . . . . . . Quantit d'information relative un vnement L'entropie comme mesure de la quantit de l'information

Codage prxe : . . . . . . . . . . . . . . . . . . . . . . . . . .

Transformation en ondelette . . . . . . . . . . . . . . . . . . . . . . .

3 Corps nis
3.1 3.2 3.3 Corps nis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Construction de corps ni : . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Polynme irrductible : . . . . . . . . . . . . . . . . . . . . . . Fonction de Mbius : . . . . . . . . . . . . . . . . . . . . . . . . . . .

17
17 18 19 20

4 Le nouveau standard AES (Rijndal)


4.1 4.2 4.3 4.4 4.5 Principe de l'algorithme : . . . . . . . . . . . . . . . . . . . . . . . . . Reprsentation d'un blocs de 128 bits : . . . . . . . . . . . . . . . . . 4.2.1 Exemple : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L'algorithme de chirement AES : . . . . . . . . . . . . . . . . . . . . Exemple de AES : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scurit de AES : . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21
21 22 23 23 27 30

5 Arithmtique sur les entiers :


5.1 5.2 5.3 Rappel : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Groupes associs

31
31 31 32

Z Z

: . . . . . . . . . . . . . . . . . . . . . . . . . .

PGCD (plus grand commun diviseur) . . . . . . . . . . . . . . . . . .

5.4 5.5 5.6 5.7

Thormes fondamentaux L'algorithme d'Euclide 5.5.1 5.6.1

. . . . . . . . . . . . . . . . . . . . . . . .

32 33 34 35 35 36

. . . . . . . . . . . . . . . . . . . . . . . . . .

Notion de p.p.c.m dans

Z Z

. . . . . . . . . . . . . . . . . . . .

Les nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . Dcomposition en facteurs premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pgcd, ppcm et dcomposition primaire

6 Groupe quotient Z Z/nZ Z


6.1 6.2 Relation de congruence modulo n Groupe 6.2.1 6.2.2 6.2.3 6.3 6.4 6.5 RSA 6.3.1 6.4.1 . . . . . . . . . . . . . . . . . . .

37
37 37 38 38 38 39 39 41 42 43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Z Z/nZ Z

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Thorme de Fermat : Formule pour

Fonction de l'indicatrice d'Euler : . . . . . . . . . . . . . . . .

(n)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Principe de RSA . . . . . . . . . . . . . . . . . . . . . . . . .

Signature numriques . . . . . . . . . . . . . . . . . . . . . . . . . . .

Bibliographie :

Mcanisme gnral de signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

0.1 Remerciement
En prambule ce mmoire, je souhaitais adresser mes remerciements les plus sincres aux personnes qui m'ont apport leur aide et qui ont contribue a l'laboration de ce mmoire. je tiens remercier sincrement Monsieur Ziane qui en tant que Directeur de ce mmoire , s'est toujours montre l'coute et trs disponible tout au long de la ralisation de ce mmoire, ainsi pour l'inspiration, l'aide et le temps qu'il a bien voulu nous consacrer et sans qui, ce mmoire n'aurais jamais vu le jour. Nos remerciement s'adressent galement Monsieur Benlcouiri pour sa gnrosit et la grand patience dont il a su faire preuve malgr ses charge personnelle. il nous a beaucoup servi au niveau de la thorie d'information. je le souhaite un bon courage a son chemin acadmique Et aussi grace au plusieurs ouvrages de Monsieur Azizi, ainsi son cours,il nous a facilite la comprhence de plusieurs partie de ce petit travail. Enn, nous adressons nos plus sincre remerciement tous nos proches et amis qui nous ont toujours soutenues et encourags au cours de ralisation de ce travail.

Chapitre 1 Thorie des codes


La thorie des codes et la cryptographie sont la science qui traite de la communication en prsence d'adversaires. L'ide fondamentale et le sujet traditionnel de la cryptographie et la thorie des codes est le chirement. Chirer un messages ou des donnes enregistres sert les garder secrets.

1.1 Codage mono-alphabtique


Dnition 1.1
Un codage est dit mono-alphabtique s'il xiste une bijection entre l'alphabet source * et l'alphabet du code *, c'est dire que chaque lettre du message clair est code par le mme chire ou lettre dans tout le message chir.

Jules Csar (-100, -44)


a D n Q b E o R c F p S d G q T e H r U f I s V g J t W

: Le premier exemple de chire mono-alphabtique

est le chire de Csar qui est dnie par l'application : h K u X i L v Y j M w Z k N x A l O y B m P z C

C'est dire on dcale l'alphabet de trois lettres, en utilisant les minuscules pour l'alphabet des messages clairs et les majuscules pour l'alphabet du code. La fonction de codage est C(x)= x+3 mod[26]. Par exemple pour coder le mot " Mohamed premier " avec dcalage de 5 lettre *L'alphabet source : ensemble ni d'lments appeles caractre avec lequel le message clair est crit *L'alphabet du code : ensemble ni d'lments appeles caractre avec lequel le message crypt est crit *La clef : c'est une mthode de codage connu seulement par l'metteur et le rcpteur

(La clef *) on obtiendra : RTMFRJI UWJRNJW.

Chirement par multiplication :


Pour que l'application : 1, et

x t

mod 26 admet un inverse il sut que pgcd(t,26) =

t < 26

donc les valeurs possible de t sont :

1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25.


Pour le codage par multiplication, on a besoin de telle application ; l'astuce est la possibilit de trouver l'application inverse c'est--dire l'application de dcodage.

Exemple

: Soit la cl de chirement t=7 ,et soit le texte " MABQFA " crypt par

par la fonction

C (x) = t x

mod 26.

L'application de dcodage est : D(x)= M=13 ; A=1 ; B=2 ; Q=17 ; F=6 ;A=1 D(13)=13=M. D(1)=15=O. D(2)=4=D. D(17)=21=U. D(6)=12=L. D(1)=15=O.

t1

x mod 26=

15 x

mod 26.

D'o le message clair est " MODULO ". En combinant le chirement additif et le chirement multiplicatif, on obtient le chirement ane.

Exemple de chirement ane : Chirement ATBASH :

L'application de codage ici est C(x)= 26-x+1, ou bien on peut coder avec des tableaux dont les lettres de code sont choisis alatoirement.

Avantages et points faibles des codes mono-alphabetiques :


Pour le code de Csar et le chirement par multiplication, sont trs simple utiliser et rappeler, mais il n'y a que 26 possibilits pour Csar, et 13 possibilits pour l'autre.

Gnralement le codage mono-alphabtique est cassable par l'analyse frqueneme tielle, c'est une mthode d'attaque dcouverte par Al-Kindi au 9 sicle. L'ide est d'examiner la frquence des lettres d'un message chir, en eet, la frquence dpend de la lettre :

On a l'ordre suivant : E,A,I,S,T,N,R,U,L,O,D,M,P,C,V,Q,G,B,F,J,H,Z,X,Y,K,W.

1.2 Codage poly-alphabtique


En 1467, Le savant Italien Leone Battista Alberti expose pour la premire fois le chirement par substitution polyalphabtique qu'il applique l'aide d'un disque chirer. Ce procd consiste remplacer chaque lettre du texte en clair par une lettre de l'alphabet code et changer plusieurs fois d'alphabet de substitution au cours du chirement, rendant la cryptanalyse par analyse de frquence inecace. Il sagit donc d'utiliser une suite des clefs mono-alphabtiaques.

Chire de Vigenre :

Invent en 1586 par le diplomate Franais Blaise de Vigenere, et c'est le chirement qui a rsist jusqu'au 1863. Pour utiliser ce systme, on a besoin du carr de Vigenre situer au dessous, et d'une cls. Celle-ci consiste en une suite de lettres, on crit la cl plusieurs fois en dessous du message clair jusqu' la n.

Exemple :
Chirons le message suivant : "projet de n tude" avec la cl " CAMCON", l'aide de la table de Vigenre, l'intersection de colonne o situ la lettre du message clair avec la ligne o situ la lettre de la cl P C R R A R O M Z J C L E O S T N I D C F E A E F M R I C K N O B E N R T C V U A U D M P E C G

Table de Vigenre :

Donc le message chir est "RRZLSIFERKBRVUPG"

-Remarquons que la lettre E dans le message clair n'est pas chire de la mme manire, ce qui montre que ce type de chirement rsiste l'analyse frquentielle, ce qui le rend dicile de l'attaquer, mais bien sr il y a des techniques pour le cryptanalys. En cryptanalyse, on appelle recherche exhaustive ou attaque par force brute, une attaque qui consiste tester toutes les cls de dchirement pour retrouver le clair. Cependant, pour casser le systme de Vigenre, la recherche exhaustive sur la cl peut prendre un temps trs grand selon sa longueur. En eet, pour toute longueur t 26 du mot de passe, il existe t mots de passe dirents. Si l'on teste tous les mots de 26 passe ayant 20 lettres, il faut eectuer 20 tests, ce qui est totalement hors de porte. La cryptanalyse de ce systme a donc requis l'utilisation de techniques plus nes que la force brute. Elle est base sur l'observation que si la mme lettre apparat dcale d'un multiple de la longueur du mot de passe, alors elle sera chire de la mme faon. Cela permet de dduire la longueur de la cl. Des statistiques sur les lettres montrent que certains digrammes ou trigrammes (combinaison de 2 ou 3 lettres conscutives) sont plus frquentes que d'autres. Par exemple, le trigramme "

the " en anglais apparat trs frquemment alors que la probabilit d'apparition du trigramme " xyz " est quasi nulle. Toutes ces observations ont permis d'attaquer cacement le chirement de Vigenre. Pour diuser certaines proprits statistiques du langage clair (comme la frquence de digrammes ou de trigrammes) sur tout le message chir, l'ide est d'changer la position des lettres entre le clair et le chir : c'est le principe du chirement par permutation. Pendant longtemps, les systmes de chirement taient bass sur une succession de substitutions et de permutations.

Chapitre 2 Comprssion des donnes et transformation en ondelette


La compression de donnes est l'opration qui consiste rduire la taille de l'information pour son stockage et son transport, elle traite donc de la manire dont on peut rduire l'espace ncessaire la reprsentation d'une certaine quantit d'information.

2.1 Les dirent type de compression


Les dirents algorithmes de compression sont choisis en fonction de : - Leur taux de compression. - La qualit de compression. - La vitesse de compression et de dcompression. On distingue deux grandes familles de compression :

Compression sans perte

La compression est dite sans perte lorsqu'il n'y a aucune perte de donnes sur l'information d'origine aprs la compression.

Si on note M le message initial, M' le message compress, compression et C(M)=M' D(M')=M ; D(C(M))=M ;

C ()

la fonction de

D()

la fonction de dcompression, alors on a :

Compression avec perte

La compression est dite avec perte si la donne compresse n'est pas identique avec l'origine, et ne s'applique qu'aux donnes perceptibles, en gnral sonores ou visuelles, qui peuvent subir une modication, parfois importante, sans que cela ne soit perceptible par un humain. La perte d'information est irrversible, il est impossible

de retrouver les donnes d'origine aprs une telle compression. D(M')

M.

Les type de compression :


La compression physique : elle agit directement sur les donnes ; il s'agit ainsi
de regarder les donnes redondantes d'une suite de bits une autre.

La compression logique : elle est eectue par un raisonnement logique en substituant une information par une information quivalente.

Compression symtrique : la mme mthode est utilise pour compresser et


dcompresser l'information il faut donc la mme quantit de travail de chacune de ces oprations.

Compression asymetrique : L'algorithme de dcompression est dirent de celui


de compression, ce qui peut tre exploite pour avoir un algorithme de compression performant et un algorithme de dcompression rapide.

2.2 Thorie de l'information


La thorie de l'information donne le cadre mathmatique aux codes compresseurs, elle permet de mesurer l'incertitude dans le transfert des messages avant la rception.

2.2.1 Contenu d'information et contexte


Pour crire math, il faut moins de bits pour crire la science, pourtant la phrase  je fait des math contient bien plus d'informations que l'indication  je fait la sciences . Donc le contenu d'information smantique d'un message dpend du contexte : c'est le couple message + contexte qui constitue le vritable porteur d'informations.

2.2.2 Mesure de la quantit d'information :


Le comprendre avec un exemple de wikipedia : Considrons

botes numrotes de 1

N.

Un individu A a cach au hasard un

objet dans une de ces botes. Un individu B doit trouver le numro de la bote o est cach l'objet. Pour cela, il a le droit de poser des questions l'individu A auxquelles celui-ci doit rpondre sans mentir par OUI ou NON. Mais chaque question pose reprsente un cot payer par l'individu B (par exemple un Dirham). Un individu C sait dans quelle bote est cach l'objet. Il a la possibilit de vendre cette information l'individu B. B n'acceptera ce march que si le prix de C est infrieur ou gal au cot moyen que B devrait dpenser pour trouver la bote en posant des questions A. L'information dtenue par C a donc un certain prix. Ce prix reprsente la

10

quantit d'information reprsente par la connaissance de la bonne bote : c'est le nombre moyen de questions poser pour identier cette bote. Nous la noterons I. Si Si Si

N = 1, I = 0. Il n'y a qu'une seule bote. Aucune question n'est ncessaire. N = 2, I = 2. On demande si la bonne bote est la bote numro 1. La rponse N = 4, N = 2.
On demande si la bote porte le numro 1 ou 2. La rponse

OUI ou NON dtermine alors sans ambigut quelle est la bote cherche. permet alors d'liminer deux des botes et il sut d'une dernire question pour trouver quelle est la bonne bote parmi les deux restantes. k Si N = 2 , I = k . On crit les numros des botes en base 2. Les numros ont au plus chire 0 ou le chire 1. En

k chires binaires,

et pour chacun des rangs de ces chires, on demande si la bote cherche possde le

questions, on a dtermin tous les chires binaires de

la bonne bote. Cela revient galement poser de dichotomie). On est donc amen poser ne se produit que dans le cas de

questions, chaque question ayant mais cette conguration

pour but de diviser successivement le nombre de botes considres par 2 (mthode

I = log2 (N ),

vnements quiprobables.

2.2.3 Quantit d'information relative un vnement


Supposons maintenant que les botes soient colores, et qu'il y ait

botes rouges.

Supposons galement que C sait que la bote o est cach l'objet est rouge. Quel est le prix de cette information ? Sans cette information, le prix payer est Muni de cette information, le prix payer n'est plus que

log2 (N ).

log2 (n). Le prix de l'information " la bote cherche est rouge " est donc log2 (N ) log2 (n) = log2 (N/n). On dnit ainsi la quantit d'information comme une fonction croissante de N/n avec : N le nombre d'vnements possibles n le nombre d'lments du sous-ensemble
dlimit par l'information An de mesurer cette quantit d'information, on pose :

I = log2 (N/n)

2.2.4 L'entropie comme mesure de la quantit de l'information


L'entropie est la mthode utile mesurer la quantit d'information moyenne contenu dans un ensemble de message ou un ensemble d'vnement, et il permet de mesurer l'incertitude priori. Supposons maintenant que les botes soient de diverses couleurs :

n1

botes de

C1 , n2 botes de n1 + n2 + . . . + nk = N.
couleur

couleur

C 2 , nk

botes de couleurs

Ck

, avec

La personne C sait de quelle couleur est la bote recherche. Quel est le prix de cette information ? L'information " la bote est de couleur ventualit a une probabilit

C1 " vaut log N/n1 , et cette n1 /N . L'information " la bote est de couleur C2 " vaut
11

log2 (N/n2 ). (N/n1 )log2 (N/n1 ) + (N/n2 )log2 (N/n2 ) + k vnements disjoints de probabilits respectives p1 , p2 , , pk avec p1 + p2 + + pk = 1, alors la quantit d'information correspondant cette distribution de probabilit est p1 log2 (1/p1 ) + . . . + pk log2 (1/pk ) . Cette quantit s'appelle entropie de la distribution de probabilit.
Le prix moyen de l'information est donc

+ (N/nk )log2 (N/nk ).

Plus gnralement, si on considre

L'entropie permet donc de mesurer la quantit d'information moyenne d'un ensemble d'vnements (en particulier de messages) et de mesurer son incertitude. On la note =k H et H (I ) = i i=1 pi log2 (pi )

2.2.5 Codage prxe :


Notons et

X = {x1 , x2 . . . xn } li = l(h(xi )) la longueur

l'alphabet du message, et du chirement de

h()

l'application de cryptage,

xi . i k,
chaque code

Un codage est appel prxe si pour tout i 1 prxe d'aucun autre code

h(xi )

n'est le

h(xj ).

Thorme 2.1
Si

(Ingalit de Kraft) :
i=k

h()

est prxe alors on a :

2li 1
i=1

Posons la longueur moyenne de

h()
i= k

:
i= k

L(h) =
i=1

pi l(h(xi )) =
i=1

pi li

Thorme 2.2

Notons

avec le codage prxe

Linf = infh L(h), h(), alors on a :

la longueur moyenne minimale obtenue

H (X ) Linf H (X ) + 1
o H(X) est l'entropie de

X = {x1 , x2 . . . xn } S
(ou l'alphabet

Thorme 2.3
Si

(Thorme de SHANNON) :

est un code injectif (uniquement dchirable) de l'alphabet clair

source) vers l'alphabet code

V , |V | = q

alors il vrie :

L(k )
De plus il existe un code

H (S ) log2 (q ) V
de

uniquement dchirable de S sur un alphabet

taille q et de longueur moyenne

L(k )

qui vrie

L(k ) <

H (S ) +1 log2 (q )
12

2.3 Transformation en ondelette


Transformer de Fourier ( rappel) : Si f 1 (IR), c--d note f : IR C I la transform de Fourier de f, dnit par : 1 f ( ) = 2 f (x)eix dx;
IR IR

|f (t)|dt <

, on

IR

F : f f
s'appelle la transformation de Fourier, et

est bien dnit puisque

|f (x)eix | = |f (x)| 1 (IR)

Proposition 2.3.1

Si

f 1 (IR) f f

est continue et

1 f < 2

et
|k|

lim f (k ) = 0
1 2 IR

- Si -Si

xf 1 (IR) f C1 (IR)

et

f (k ) =

f (x)(ix)eikx)dx

f paire(impaire) alors f est paire(impaire) 1 1 -f (IR) tel que f (IR) 1 f ( x) = 2 F : L2 (IR) L2 (IR) ; f f f (k )eikx dk
IR

est un isomorphisme d'espaces de Hilbert.

Le transfert des images par le Fax : Le fax permet le transfert des images par
un canal tlphonique, pour obtenir l'arrive une image semblable l'originale dans un format qui puisse transiter par le canal. Le premier procd de transmission est le scanner de l'image par l'appareil ; la mthode de codage est la suivante : La largeur de l'image est divise en 1728 colonne de largeur gale, la hauteur est divise en lignes, de faon former des carrs de mme taille, ces carrs sont appel les pixels. Chaque pixel se voit attribuer la couleur noire si a cette endroit l'image est fonce, et ce carre sera cod par 1, sinon sera cod par 0 si le carre est de couleur clair. Donc on code chaque ligne par une suite de 1728 '0' et '1' ; mais une ligne entirement blanche ne sera pas cod par une suite de 1728 zro, mais par le code 1728 0,
13

D'une image une suite de pixels :

et en format binaire (pour permettre de le transmet par le canal) c--d cette ligne sera cod par  11011000000 0 , donc on a remplac un message de 1728 bits par 12 bits et en appliquant cet algorithme pour chaque ligne ; pour avoir une grande de pixels, il ne reste qu' restituer l'image, la mthode consiste donc imprimer sur une feuille la suite de carrs noirs ou blancs correspondants. L'image de dpart sera dgrade, puisque les carrs d'origine n'tait pas entirement noirs ou blancs. Il sert donc d'un codage avec perte, et on utilise ce type de codage pour les informations audio-visuel o on estime que l'information importante n'est pas altre. - On constate que les couleurs de deux pixels voisins ne sont pas indpendantes, et il sera plus utile de coder un ensemble de pixels comme une fonction (que chacun indpendamment comme une valeur), on code alors par blocs de pixels,par une fonction priodique ou presque priodique d'o le codage agisse sur des fonctions plutt que sur des chires et des codes. Pour les sons on peut coder chaque instant une frquence et un amplitude, et le codage sera alors une fonction particulire qui s'applique elle-mme sur des fonctions, et on l'appellera une transform. Si un message peut s'exprimer comme une fonction priodique frquence

h,

variant avec le temp, de priode

sons, le message peut s'exprimer comme une amplitude

2 comme le cas pour les H variant en fonction de la

La transforme de Fourier est un procd de codage permettant de passer d'une prsentation une autre :

codage H ( ) =
IR

h(t)e2it dt H ( )e2it d

dcodage h(t) =
d'un codage symtrique, priodicit de

IR

On remarque que le procd de codage et de dcodage est identique, d'o on parle

H ( )

est donc plus conomique puisqu'il tire parti de la

h.

La transform est donc ecace pour la compression des message.

Pour les messages cods avec des informations discrtes ncessite la transforme de Fourier discrte, qui suit le mme principe mais avec des fonctions discrtes. Supposons maintenant que nos fonctions et et
k=n1

h(t)
2i n

et

H ( )

H0 , H2 . . . Hn1 ,

et posons

=e

, On a donc

sont discrtes c--d n = 1

h0 , h2 . . . hn1

=
k=0

2in 1 n 2i 1 n

= 0.

et la transform de Fourier discrte (TFD)

1 codage Hk = n
14

j =n1

hj kj
j =0

dcodage hj = 1n
TFD(h)= [ H0 . . . Hn1 ]
k=n1 1 Hk kj k=0 n k=n1 1 i=n1 1 = hi ki kj k=0 i=0 n n i=n1 =n1 (ij )k 1 =n hi k i=0 k=0

k=n1 k=0

Hk kj

hj

1 n

i=n1 i=0

hi

0 n

si i=j si i=j

, .

D'o le dcodage est correct et on peut crire la

transformation TFD sous la forme matricielle

1 H = h n H = t (H0 H1 . . . Hn1 ) h = t (h0 h1 . . . hn1 )


o

et

= (k,j )k,j = ( kj )k,j 1 1 kj k,j = n 1 Hk = n


j =n1

hj kj
j =0

si

est pair,

n = 2m 1 Hk = ( n 1 = ( n 1 = ( n
j =m1 j =m1 j =m1

hj
j =0 kj

kj

+
j =m

hj kj )

j =nm+1

hj
j =0

+
j =0 j =m1

hj +m k(j +m) )

j =m1

hj
j =0

kj

+
j =0

hj +m kj omegakm )

1 = n
Or

j =m1

(hj + km hj +m ) kj .
j =0

km = (1)k .
car

n = 2m = 1.
15

D'o si k paire

1 Hk = n
et

j =m1

(hj + hj +m ) kj
j =0

1 T F D(h) = [h0 + hm , . . . , hm1 + hn1 ] n

de mme on montre que si k est impair que

1 T F D(h) = [h0 hm , . . . , hm1 hn1 ]. n

16

Chapitre 3 Corps nis


Les corps nis sont une des plus belles structures algbriques. Ils sont a la base de nombreuses applications algorithmique, notamment en cryptographie et en codage de l'information. Rcemment ils ont trouv de nouvelles applications avec le dveloppement de l'informatique, en thorie des codes, ils permettent par exemple de dterminer des codes correcteurs ecaces. Ils interviennent galement en cryptographie, dans la conception des chirements cl secrte comme le standard du logarithme discret. que dans celle des chirements cl publique, travers, entre autres, le problme

AES, ainsi

3.1 Corps nis


Dnition 3.1
une addition i) Un anneau

et une multiplication

(A, +, ) est un ensemble non vide dans lequel on dnit telles que :

(A, +) 1.

est un groupe commutatif d'lment neutre 0.

ii) La multiplication est associative , distributive sur l'addition et possde un lment neutre Ont dit que

(A, +, )

est un corps si tout lment de

(A , )

est inversible.

Remarque 3.1
Z Z/pZ Z

Tout corps

vant que la caractristique

K contient un sous corps isomorphe Q I ou Z Z/pZ Z suide K est nulle ou p. Puisque tout corps nis n'admet
p
et admet

pas Q I comme sous corps donc a pour caractristique un nombre premier comme sous corps qu'on note Pour tout corps ni

Fp .

Thorme 3.1

K de cardinal q le groupe multiplicatif K

est

cyclique et d'ordre

n = q 1.

On appelle lment primitif de primitive de l'unit d'ordre Toute racine primitif

un gnrateur de ce groupe (c'est une racine

de

K dnit alors un isomorphisme de groupe


: (Z Z/nZ Z, +) (K , .)
17

).

k k
et son inverse :

: (K , .) (Z Z/nZ Z, +)
C'est une situation typique de la cryptographie (Die-Hellman, ElGamal).

Remarque :
(q 1) lment 2)Si a Fq est primitif pgcd(k, q 1) = 1.
1)Il y a primitif dans tant la fonction d'Euler. k les lment primitif sont les a avec 1 k <

Fq ,

q1

et

Proposition 3.1.1
dnie par

Soit

n n 1K est de la forme nZ Z avec n > 0. L'anneau Z Z/nZ Z s'identie alors que n est premier.
On appelle

K un corps ni, le morphisme canonique : Z Z K , comme K est ni ne peut tre injective donc le noyau
un sous-anneau

du corps

ce qui implique

F le sous corps premier de K il est contenu dans tout sous corps de K. C'est donc le plus petit sous-corps de K. Pour la mme raison c'est le seul sous-corps de K isomorphe Z Z/pZ Z, et on peut
l'identier Soit

Z Z/pZ Z. : F K K,
Si

un sous corps d'un corps ni

K.

Alors l'addition

multiplication

dnit sur

+ : K K K et la K une structure de F-espace vectoriel ce

qui permet de dduire le rsultat suivant :

Proposition 3.1.2

K est un corps ni, alors son cardinal est de la forme pd (p le caractristique de K et d = dimF (K)).
n
du corps

On peut montrer encore pour la rciproque que pour tout entier n IN, p premier il n existe un corps de cardinal p , (qui se prsente comme l'unique extension de degr

Z Z/pZ Z).

Ce corps est not

Fp

n.

Proposition 3.1.3
alors :

Soit

un corps ni de caractristique

p,

de cardinal

q = pn

Si

F est un sous-corps de K alors |F| = pd , telle que d divise n. d Pour tout diviseur d de n il existe un unique sous-corps de K de cardinal p , et
Fq .

ce sont les seuls sous-corps de

3.2 Construction de corps ni :


L'outil qui permet la construction des corps nis est la relation de congruence, congruence sur les entiers pour les corps nis premiers, congruence sur les polynmes coecients dans un corps ni premier pour le cas gnral.
18

Exemple :
Le plus petit corps ni est not

F2 . Il est compos de deux lments distincts, 0 qui est

l'lment neutre pour l'addition, et 1 qui est lment neutre pour la multiplication.

3.2.1 Polynme irrductible :


Pour construire de nouveaux corps nis, on utilise la structure d'anneau Euclidien de

Fp [X ]

de la mme faon que l'on a utilis celle de

Z Z

pour construire les corps

premiers. Les polynmes irrductibles jouent le rle des nombres premiers. Soit

P est un polynme de degr n 1, on note K[X ]/(P ) l'ensemble des polynme sur K de
un corps, on note l'anneau des polynmes sur le corps Si degr infrieur strictement multiplication modulo

K[X]
n

K.

muni des oprations arithmtique d'addition et de la

P.
pas de diviseurs

Dnition 3.2
non trivial

P (X ) est un polynme irrductible P (X) n'a (c--d 1 et P (X) sont les seuls diviseurs de P (X ) ).
Soit

Thorme 3.2
2) Si

Fp

un corps de cardinal

p,

alors : sur

1) Il existe des polynmes irrductibles de tout degr dans

P est un polynme irrductible de degr n m Fp [X ], et P ne divise pas X p X , m < n.

F p [X ]. n Fp alors P divise X p X

dans

Thorme 3.3
pgcd(P,X P n'a pas

: Soit

un polynme dans

pm

F p [X ]

de degr

n,

alors :

irrductible

X )=1 , 1 m n/2. de racine dans Fpm , 1 m n/2.

Exemple :(construction un corps ayant 23 lment) F8 = F2 /(P ) o P est un polynme irrductible de degr 3 sur F2 [X].
2m ne divise pas X 8 Tout d'abord, on peut factoriser X X : X 8 X = X (X 7 1). 7 Or X 1 = Q1 (X )Q2 (X )

divise

X2 X

et

m = 1,

2.

Q1 (X ) = X 1. Q2 (X ) = X 6 + X 5 + X 4 + X 3 + X 2 + X + 1 Q2 (X ) = (X 3 + X 2 + 1)(X 3 + X + 1)(mod2). 8 Finalement, X X scrit sous forme de produits de facteurs 8 X X = X (X 1)(X 3 + X 2 + 1)(X 3 + X + 1). Donc les polynmes irrductibles de degr 3 sur F2 [X ] sont : P1 (X ) = X 3 + X 2 + 1 et P2 (X ) = X 3 + X + 1. donc F8 = F2 [a] o a est une racine de P1 ou P2 .

irrductibles :

Proposition 3.2.1

: Si

P (X )

est irrductible alors

Fp [X ]/(P )

est un corps.

19

Proposition 3.2.2
P

F un corps ni de cardinal pn . alors il existe un polynme Fp [X ] unitaire irrductible de degr n telle que F = Fp [X ]/(P ).
Soit Il existe un corps de cardinal

Corollaire 3.1

pn

si et seulement s'il existe un poly-

nme irrductible

P F p [ x]
Soit

de degr

n.

Proposition 3.2.3
ductible

F un corps de cardinal pn . Alors pour tout polynme irr Fp [X] de degr n l'anneau quotient Fp [X ]/(P ) est isomorphe F.
Deux corps nis de mme cardinal sont isomorphes.

Corollaire 3.2

3.3 Fonction de Mbius :


Dnition 3.3
La fonction de Mbius est dnie par si n=0 ; si n possde un facteur carr ; si n est un produit de r premiers distincts deux a deux.

:IN IN 1 0 n (n) = (1)r

Exemple :
(23 )=0. (15) = (3 5) = (1)2 = 1.

Thorme 3.4
2)n

1)(nm)

= (n) (m)

si

pgcd(m, n) = 1.

d|n

(d) = 0.
Soient

Thorme 3.5
On note a alors :

n, r IN ; p

premier et

Iq (n)=Card{
1 n
n

des polynmes

q = pr . irrductibles P dans Fq [X]

et deg

P =n

}. On

Iq (n) =

d|n

(d)q d .

20

Chapitre 4 Le nouveau standard AES (Rijndal)


Le 2 janvier 1997, l'Institut National des Standards et Technologies du Dpartement du Commerce des Etats-Unis d'Amrique annonce le dveloppement d'une norme nationale pour le traitement de l'information nomme AES (Advanced Encryption Standard), ou Norme de Chirement Avanc. C'est un systme trs rapide et qui assure une trs bonne scurit encodant 128 bits avec des clefs de 128 ,192 ou 256 bits. Toutes les oprations d'AES sont des oprations sur les octets considrs comme des 8 8 4 3 lments du corps ni 2 lments, F256 . On a g (X ) = X + X + X + X + 1 est bien un polynme irrductible sur F2 [X ]. Ainsi l'octet b7 b6 . . . b0 est considr comme 7 le polynme b7 X . . . + b1 X + b0 , on rappelle que (F2 [X ]/g (X )) est cyclique dont le gnrateur est X+1, donc tout lment non nul de i unique par (X + 1) modulo g (X ) avec 0 i < 255.

F256

se reprsente de manire

4.1 Principe de l'algorithme :


Des blocs d'octes de texte claire sont organiss sous forme matricielle, cette matrice aura ncessairement quatre ligne et un nombre de colonnes fonction de la taille choisi du bloc. On note et

Nb

le nombre des colonnes dans une matrice pour crire un bloc d'octets,

Nk

ce mme nombre pour une clef.

Par exemple pour les ux d'entre/sortie qui dans AES, correspondent des squences de 16 octets, on obtiendra des matrices de 4 lignes et mme, -la matrice associe une cl de 128 bits aura 4 lignes et

Nb = 4

colonnes. De

Nk = 4 colonnes ; -avec une cl de 192 bits, la matrice aura 4 lignes et Nk = 6 colonnes ; -pour une cl de 256 bits, la matrice aura 4 lignes et Nk = 8 colonnes ;
Si on se reporte au niveau de scurit conseill pour le Chirement cl secrte on voit que : 1) AES avec 128 bits de cl est conseill pour des applications de niveau de scurit
21

lev. 2) AES avec 192 bits de cl est conseill pour une scurit "top level secret". Mais s'il est bien spci que 192 bits sont susante pour cette scurit trs leve, pour des raisons de compatibilit c'est en dnitive AES 256 bits de cls qui sera utilis. Pour tre tout a fait exact, l'algorithme AES n'est pas exactement celui de Rijndael dans la mesure o ce dernier supporte des tailles de blocs plus nombreux qu'AES. AES xe la taille de blocs a 128 bits reprsent par pour une reprsentation matricielle). AES utilise des cls de 128, 192 ou 256 bits. La longueur de cl est caractrise de faon similaire par

Nb = 4

Nb

rete le

nombre de mots de 32 bits dans un bloc (c'est aussi le nombre de colonnes ncessaire

Nk = 4

, 6 ou 8.

AES excute une squence de tours qui seront dtaills dans la suite. On note

Nr Nb

le nombre de tours qui doivent tre eectus. Ce nombre dpend des valeurs de et de

Nk .

Les direntes congurations possibles sont dtailles dans le tableau suivant :

Nk AES-128 AES-192 AES-256 4 6 8

Nb 4 4 4

Nr 10 12 14

Comme on l'a vu prcdemment, AES opre sur des blocs vus comme une matrice

4 Nb

d'lment de

F256

le texte claire subit

Nr

iterations d'une transformation qui

dpend chaque tour d'une autre cl dduit de la cls de chirrent de l'utilisateurs.

4.2 Reprsentation d'un blocs de 128 bits :


7 . . . 0 une suite de bits alors, 7 . . . 0 = (7 6 5 4 )16 (3 2 1 0 )16 = 7 x7 + . . . + 1 x + 0 donc la reprsentation de 128 bits de texte quelconque (clair chir, de l'tat, de clef,. . . ) est squentielle : M = 0 1 . . . 127 = a0 a1 . . . a15 avec les ai dsignent les octets et les i les bits,
Soit matricielement :

a0 a1 a2 a3

a4 a8 a5 a9 a6 a10 a7 a11
22

a12 a13 a14 a15

4.2.1 Exemple :
L'octet 10110111 (en notation syntaxique) est : b7 en notation hexadecimale, X 7 + X 5 + X 4 + X 2 + X +1 en notation polynmiale dans le corps F256 = F2 [x]/X 8 + X 4 + X 3 + X + 1.

4.3 L'algorithme de chirement AES :


Avant le premier tour on eectue une opration de ou exclusif avec les bits de la clef de tours (Add Roundkey), suivie par Nr tours, chacune divis en quatre tapes sauf eme dans la dernire, la 3 tape est omise :

1er

tape

SubBytes

Est une substitution non linaire lors de laquelle les 16 octets de l'tat sont traits indpendamment, chaque lment de la matrice est permut selon une table de sub1 stitution inversible not SBox, cette table drive la fonction inverse t : a a dnie de

F256

dans

F256 , qui est connue pour ses bonnes proprits de non linarit.

An d'viter des attaques bases sur de simples proprits algbriques, la boite-S est construite en combinant cette fonction inverse avec une transformation ane inversible

on

b7 1 0 0 0 1 1 1 1 a7 0 b6 1 1 0 0 0 1 1 1 a6 1 b5 1 1 1 0 0 0 1 1 a5 1 b4 1 1 1 1 0 0 0 1 a4 0 + bi = f (ai ) = a3 0 b 1 1 1 1 1 0 0 0 3 b2 0 1 1 1 1 1 0 0 a2 0 b1 0 0 1 1 1 1 1 0 a1 1 b0 0 0 0 1 1 1 1 1 a0 1 a donc SBox[ai ]=f (t(ai ))=transf Ane(inverse(ai )) pour tout ai F256 .

l'lment 00 ne change pas car n'ayant pas d'inverse. Les concepteurs ont galement fait en sorte que cette boite-S n'admette pas de point xe, ni de point xe oppos :

SBox[a] + a = 00 pour tout a F256 SBox[a] + a = F F pour tout a F256


23


a7

a6 a5 a4 a3 a2 a1 a0

b7 a7 b6 a6 b5 a5 a4 f b4 t b3 a 3 b2 a 2 b1 a1 b0 a0

Remarque : InvSubBytes
L'opration inverse consiste eectuer la mme manipulation mais a partir de la 1 Boite-S inverse S note InvSBox. 1 1 1 Comme la fonction t est son propre inverse, on a : SBox [a] = t (f (a)) = 1 t(f (a)) pour tout a F256 .

2eme tape

Shif tRows

dcalage cyclique des ligne de l'tat


La procdure consiste oprer une rotation gauche sur chaque ligne du tableau d'entre, on dcale la ligne position Pour

de

Ci

cases c--d le nombre des octets dcals dpend

de la ligne considre si bien que l'lment en position j de la ligne i est dplac en

j Ci modulo (Nb ), avec Ci = i pour Nb 6. Nb > 6 les valeurs de Ci sont dtaills dans la table
Nb 7 8 C0 0 0 C1 1 1 C2 2 3

suivante :

a0 a1 a2 a3

a4 a8 a5 a9 a6 a10 a7 a11

a12 a0 a4 a8 a12 a13 a5 a9 a13 a1 a10 a14 a2 a6 a14 a15 a15 a3 a7 a11 Ci
lments.

L'opration inversShiftrows est trs simple, elle consiste videment ectuer au niveau le la ligne i un dcalage cyclique droite de

tape M ixColumns Mlange sur les colonnes du "carr"


3eme
Chaque colonne de l'tat est considre comme un vecteur de longueur 4 sur le corps

F256 .
Le mlange sur les colonnes des carrs consiste multiplier chaque colonne du tableau des donnes avec une matrice circulaire C On extrait une matrice circulaire
24

partir d'un seul vecteur, on passe d'une ligne la suivante par permutation circulaire elle est de la forme :

c0 c3 c2 c1

c1 c0 c3 c2

c2 c1 c0 c3

c3 c2 c1 c0

02 03 01 01 02 01 02 03 01 01 Soit le vecteur V = alors la matrice circulaire associ est C = 01 01 02 03 01 03 01 01 02 03 b0 a0 b1 a1 donc = C b2 a2 b3 a3 x x+1 1 1 1 x x+1 1 En pratique en fait les oprations polynmiales avec C (x) = 1 1 x x + 1 x+1 1 1 x c'est quivalent dire encore que chaque vecteur V (x) est le produit A(x) V (x) 4 3 2 modulo(x + 1) o A(x) = 03x + 01x + 01x + 02.

Remarque :
Comme

03x3 + 01x2 + 01x + 02 et x4 + 1 sont premiers entre eux, A(x) est bien 4 inversible modulo x + 1 et la transformation MixColumn est galement inversible,
ce qui permet de dcrypter. Notons que l'inverse de

A(x)

est le polynme

D(x) = 0bx3 + 0dx2 + 09x + 0e.

4eme

tape

AddRoundkey

La procdure AddRoundkey, il s'agit d'une addition des deux matrices. la matrice de l'tat et la matrice de la clef de l'tat ou la clef de tour actuel.

Gnration des cls de tour(KeyExpansion) :


On obtient les cls de tour partir de la clef de Chirement de l'utilisateur par l'algorithme suivant : On considre chaque vecteur de (4 octet) un mots ; on gnre partir de la clef de l'utilisateur K de (4Nk octes) une clef multiple K de 4Nb (Nr + 1) octets, on disposera ainsi de

Nr + 1

clefs de tours chacune de

4Nb

octets.

K0 K1

les les

Nb Nb

premires mots de la cl multiple. mots suivante de la cl multiple.


25

. . .

. . . les

KNr

Donc Dans ou

Nb dernires mots de la cl multiple. K = (K0 , K1 , . . . , KNr ). eme la suite, on notera w [i] la (i + 1) colonne

de

K Nk 6

L'algorithme utilis pour la diversication de clef dire lgrement selon que

Nk > 6.

Dans tous les cas, les

Nk

modications aux

Nk

premieres colonnes de

premires colonnes de K sont recopies sans K . Les colonnes suivantes sont dnies

rcursivement partir des colonnes prcdentes. KeyExpansion utilise notamment les deux fonctions et le tableau de constantes suivant : - SubWord qui est une fonction prenant en entre un mot de 4 octets et applique la boite SBox sur chacun des octets. -La fonction RotWord qui prend en entre un mot de 4 octets a =[a0 , a1 , a2 , a3 ] et eectue une permutation circulaire de faon a renvoyer le mot Le tableau de constantes de tours sivement par : i1

[a1 , a2 , a3 , a0 ].
qui est dni rcur-

Rcon[i],

indpendant de

Nk ,

Rcon[i] = [x

, 00, 00, 00], i 1. 4Nk octets. K de 4Nb (Nr + 1)

Enn, l'algorithme suivant rsume la gnration des clef : Entres une clef K de Pour Sorties une clef multiple octets.

i=0

Nk 1

Faire

W[i] = K[i] Fin Pour Pour i = Si i mod

Nk

Nb (Nr + 1) 1
Alors ET (i mod

Faire

tmp = W[i-1]

Nk = 0

tmp = SubWord(RotWord(tmp)) + Rcon[i/Nk ] Sinon, si (Nk Fin Si W[i] = Fin Pour.

> 6)

Nk = 4)

Alors

tmp=SubWord(tmp) ;

W [i Nk ] + tmp

Exemple Nb = 4 :
Soit w(0), w(1), w(2), w(3), les vecteurs de la clef de l'utilisateur w[i] est dnit par :

K0 ,

pour

i 4,

w(i) = w(i 4) w (i 1)
avec

SBox(w(i 1)) plus concretement :

w (i 1)=

w(i-1) Rcon[k]

si si

i = 4k , k IN i = 4k , k IN

26

a0 SBox(a0 ) a1 SBox(a1 ) w(4k-1)= w(4k-1) = SBox(a2 ) a2 SBox(a3 ) a3

xk1 00 + 00 . 00

4.4 Exemple de AES :


Soit le texte clair : 4a a3 3c 69 4f 4f 3b ad 59 7f f3 d9 ec e8 32 0c La cl de chirement : 43 c6 84 53 33 25 0c 80 1d 2b c3 97 e2 cc 40 b3 Tour numro 0 :

4a a3 3c 69

4f 4f 3b ad

59 7f f3 d9

ec e8 32 0c

43 c6 84 53

33 25 0c 80

1d 2b c3 97

09 e2 65 cc = 40 b8 3a b3

7c 6a 37 2d

44 54 30 4e

0e 24 72 bf

Tour numro 1 : La Boite SubBytes ; Soit l'lment

a0 = 09, SBox(09) = f (t(a0 )) = f (a0 1 ) = f ((09)1 )

g (X ) = (X + 1)(x + X + X + 1) + X X 3 + 1 = X 2X + 1 1 = (X 3 + 1) X 2 X X 2 = X 8 + X 4 + X 3 + X + 1 (X 3 + 1)(X 5 + X 2 + X + 1) 1 = (X 3 + 1)(X 6 + X 3 + X 2 + X + 1) (X 8 + X 4 + X 3 + X + 1)X (X 3 + 1)(X 6 + X 3 + X 2 + X + 1) 1mod(g (X )) 6 3 2 3 1 d'o X + X + X + X + 1 est l'inverse de X + 1 modulo g (X ) (09) = 4F .
On se ramne la transformation ane de 4F

Soit b l'inverse multiplicatifs de 09, 09 (en notation hexadecimal), est 00001001 en 3 notation syntaxique, X + 1 en notation polynmial dans le corps F256 /g (X ) o 8 4 3 g (X ) = X + X + X + X + 1. 3 5 2 2

1 1 1 1 1 0 0 0

0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0

0 0 0 1 1 1 1 1

1 0 0 0 1 1 1 1

1 1 0 0 0 1 1 1

1 1 1 0 0 0 1 1

1 1 1 1 0 0 0 1

1 1 1 1 1 0 1 0 0 1 0 0 + = 0 0 0 0 1 0 1 1 0 0 0 0

d'o le rsultat nal f(4F)=01.


27

Ainsi de suite pour chaque octets, d'o la matrice de l'tat :

SBox(09) SBox(65) SBox(b8) SBox(3a)

SBox(7c) SBox(6a) SBox(37) SBox(2d)

SBox(44) SBox(54) SBox(30) SBox(4e)

01 SBox(0e) SBox(24) 4d = SBox(72) 6c 80 SBox(bf )

10 02 9a d8

1b 20 04 2f

ab 36 40 08

2)Maintenant l'tape ShiftRows :

01 4d 6c 80

10 02 9a d8

1b 20 04 2f

ab 01 02 36 04 40 08 08

10 20 40 80

1b 36 6c d8

ab 4d 9a 2f

3)MixClumns : 4 3 8 On a 1b=X + X + X + 1 = X . 9 5 4 2 1 Ainsi X = X + X + X + X =36. 10 6 5 3 2 X = X + X + X + X =6c. X 11 = X 7 + X 6 + X 4 + X 3 =d8. X 12 = X 8 + X 7 + X 5 + X 4 =ab. X 13 = X 6 + X 3 + X 2 + 1=4d. X 14 = X 7 + X 4 + X 3 + X 1 =9a. X 15 = X 5 + X 3 + X 2 + X 1 + 1=2f.

Donc la matrice devient

1 x 2 x x3

x3 x8 x 5 x9 x6 x10 x7 x11

x12 x13 x14 x15


ainsi l'ordre de (X+1) est 255 et ordre est de la forme

X+1 est un gnrateur de x=51.

(F2 [X ]/g (X )) ,

Donc dans le cas gnral tout lment de

(F2 [X ]/g (X ))

(X +1)i , 0

i < 255.
MixColumns demande d'eectuer le produit matriciel suivant : 3 8 12

x x+1 1 1 1 1 x x x + 1 1 1 1 x x + 1 x2 x+1 1 1 x x3

x x x 5 x9 x6 x10 x7 x11

x x13 x14 x15

x3 x7 x11 x15 1 x4 x8 x12 = 4 5 3 7 2 7 5 4 3 x +x+1 x +x +x+1 x +x +x x +x +x +x 4 2 6 3 7 6 4 3 2 6 5 3 2 x +x +1 x +x +x+1 x +x +x +x +x x +x +x +x +x+1


28

08 01 = 13 15

80 10 2b 4b

d8 1b 86 dc

2f ab . b8 6f 43 c6 84 53 33 25 0c 80 1d 2b c3 97 e2 cc 40 b3 K1 = w(4) w(5) w(6) w(7)

4) AddRoundkey :

La clef initiale est :

La clef de tour numro 1 est donne par avec :


w(4)=w(0)w(3) w(5)=w(1)w(4) w(6)=w(2)w(5) w(7)=w(3)w(6)

1 SBox(cc) x 4a SBox (40) 00 09 w(3) = SBox(b3) +00=6d SBox(e2) 00 98 09 3a cf ea w(4) = w(5) = e9 e5 cb 4b 26 c5 c1 0d w(6) = w(7) = 26 66 dc 6f et par suite : 09 3a 27 c5 cf ea c1 0d K1 = e9 e5 26 66 , cb 4b dc 6f et f in de la tour numero f inalement la 1 : 08 80 d8 2f 09 3a 27 c5 01 10 16 ab cf ea c1 0d 13 26 86 b8 e9 e5 26 66 15 46 dc 6f cb 4b dc 6f 01 ba f f ea ce f f da a6 = f a ce a0 de. de 00 00 00
Tour numro 2 : On traite le rsultat nal de tour

n 1

comme tour

n 1.

29

Tour numro 3 : On traite le rsultat nal de tour . . . Tour numro 9 : On traite le rsultat nal de tour l'tat.

n 2 n 8

comme tour

n 1. n 1.

comme tour

Tour numro 10 : Seulement trois tapes : On se passe du ltrage des colonnes de

4.5 Scurit de AES :


La Boite SBox a t construite pour tre rsistante la cryptanalyse. En particulier, elle ne possde pas de point xe ni de point oppos ni de point inverse (SBox(a)= a, a , SBox1 (a)). Ensuite, l'oprateur ShiftRows permet de diuser largement les donnes en sparant les octets originellement conscutifs. Enn, combine avec MixColumn, elle permet qu'aprs plusieurs tours chaque bit de sortie dpend de tous les bits en entre. Par ailleurs, MixColumn est un code linaire de distance maximale. Il n'y a actuellement aucune attaque signicative sur AES. Il convient cependant de temprer notre propos dans la mesure o ce standard est encore relativement recent et n'est donc soumis a la cryptanalyse mondiale que depuis un peu plus de 7 ans.

30

Chapitre 5 Arithmtique sur les entiers :


Nous supposons acquise les notions de base sur l'ensemble des entiers naturels des entiers relatifs

IN

Z Z.

Ainsi les calculs dans l'anneau quotient

Z Z/nZ Z.

Une tude

plus approfondie de ce dernier fait l'objet de ce chapitre .

5.1 Rappel :
Dnition 5.1
Soient

et

deux entiers relatifs. On dit que

divise

est un multiple de

a),

et on note

a/b,

s'il existe un entier

tel que

b (ou b = an.

que

Proposition 5.1.1
Soient

(Division Euclidienne ) unique couple

aZ Z, b IN il existe un a = bq + r avec 0 r b 1. q r

(q, r) Z Z IN a b
par

tel que :

est appel quotient de la division euclidienne de est appel rest de la division euclidienne de par

b,

5.2

Groupes associs Z Z:
(sous-groupe de

Thorme 5.1

Z Z.) nZ Z
o

Tous sous groupe de

Z Z

est de la forme

est un entier positif.

dmonstration : Soit H un sous-groupe de Z Z. si H est le sous-groupe {0}. On a H = 0Z Z et H


H

est engendre par

0.

Si

contient

un lment strictement positif. Notons alors n le plus petit lment du sous-ensemble non vide H IN de IN. L'entier n appartenant le sous-groupe nZ Z est inclus dans . Soit alors h un lment. La division euclidienne de h par n IN permet

d'crire :

h = qn + r

avec

qZ Z

et

0 r n 1.
31

Les relations

hH

et

qn H

r = h qn car H est un sous groupe,ce qui prouve que r H IN on obtient nalement r = 0 et h = qn nZ Z cela valant pour tout h H , il vient H= nZ Z. L'entier n est alors un gnrateurs de H. Tout sous groupe H de Z Z peut donc s'crire nZ Z avec un unique entier n IN cet entier s 'appelle le gnrateur positif de H .
impliquent que

5.3 PGCD (plus grand commun diviseur)


a1 , a2 , . . . , an des entiers. Il existe un unique entier naturel d tel que : a1 Z Z + . . . + an Z Z = dZ Z.L'entier d est appel le plus grand commun diviseur (p.g.c.d.) de a1 , a2 , . . . , an et on note d = pgcd(a1 , a2 , . . . , an ). L'entier d est aussi le plus grand entier naturel divisant tous les ai (1 i n). -lorsque pgcd(a1 , a2 , . . . , an ) = 1, on dit que les entiers a1 , a2 , . . . , an sont premiers
Soient entre eux dans leur ensemble.

Dnition 5.2

Remarque :
-Le pgcd de deux entiers

et

se note aussi

ab

Proprit 5.3.1

Soient

a1 , a2 , . . . , an

des entiers non nuls, on a

-pgcd(a1 , a2 , . . . , an ) est le plus grand entier qui divise -Les diviseurs communs

ai

ai (1 i n)

sont les diviseurs de

(1 i n) pgcd(a1 , a2 , . . . , an )

a Z Z,

pgcd(aa1 , aa2 , . . . , aan ) = |a|pgcd(a1 , a2 , . . . , an ),

Dmonstration :
- On pose d=pgcd(a1 , a2 , . . . , an ).

a1 Z Z + . . . + an Z Z = dZ Z. C'est dire que i (1 i n) ai dZ Z alors il existe qi Z Z i (1 i n) tel que ai = qi d, ce qui montre que d divise ai (1 i n). - On pose H =a1 Z Z + . . . + an Z Z,on a d H alors il existe i Z Z (1 i n) tels que d = 1 a1 + . . . + n an . Si un entier r divise ai (1 i n), il existe qi Z Z (1 i n) tels que ai = rqi (1 i n), il vient alors d = r(i qi + . . . + n qn ) et r divise d.
Alors on a

5.4 Thormes fondamentaux


Thorme 5.2
u1 , . . . , u n
(Bzout) Soient

a1 , a2 , . . . , an des entiers non nuls. Les entiers a1 , a2 , . . . , an

sont premiers entre eux dans leurs ensemble si et seulement s'il existe des entiers non nuls tels que

u1 a1 + . . . + un an = 1.
32

Dmonstration :
d = pgcd(a1 , a2 , . . . , an ) on a a1 Z Z + . . . + an Z Z = dZ Z.Donc si d = 1. (1 , 2 , . . . , n ) Z Zn tel que 1 a1 + . . . + n an = 1. ) supposons que s'il existe (1 , 2 , . . . , n ) Z Zn tels que 1 a1 + . . . + n an = 1 , alors le plus petit lment strictement positif du sous-groupe engendr par (a1 , a2 , . . . , an ) est 1, c'est dire que pgcd(a1 , a2 , . . . , an ) = 1.
Posons Alors il existe

Corollaire 5.1 Thorme 5.3


bc
et si

Soient

a,b

et

trois entiers non nuls on a : et

pgcd(a, bc) = 1 (pgcd(a, b) = 1


(Gauss) Soient

pgcd(a, c) = 1). a
divise le produit

a, b

et

trois entiers non nuls. Si

et

sont premiers entre eux, alors a divise

c.

Dmonstration :
kZ Z tel que bc = ak ,si pgcd(a, b) = 1 alors d'aprs le thorme de Bzout il existe (u, v ) Z Z2 tel que au + bv = 1 acu + bcv = c a(cu + kv ) = c d'ou a divise c.
On a

divise

bc

alors il existe

Thorme 5.4
Si

(Euclide) Soient a,b,q et r a = bq + r pgcd(a, b) = pgcd(b, r).

des entiers non nuls.

Dmonstration :
-Un diviseur commun -Un diviseur commun

a et b b et r

divise divise

bq bq

et donc aussi et donc aussi

r = a bq . a = bq + r. b
et

Alors les diviseurs communs

et

sont donc les diviseurs communs

r.

Exemple :
kZ Z, calculons le pgcd de (5k 2 et 2k 1). On a 5k 2 = 2(2k 1) + k pgcd(5k 2, 2k 1) = pgcd(2k 1, k ) 2k + (1)(2k 1) = 1 pgcd(2k 1, k ) = 1 d'o pgcd(5k 2, 2k 1) = 1.
Soit

5.5 L'algorithme d'Euclide


Cet algorithme a t tabli et baptis ainsi par Bzout, il est bas sur le thorme prcdente et permet de calculer le pgcd de deux entiers a et b en eectuant un nombre ni de divisions euclidiennes. Soient

et

deux entiers strictement positifs, on poser0

=a

et

r 1 = b,

et tant que

ri > 0

on eectue les divisions euclidiennes successives suivantes.


33

r0 r1 . . .

= r1 q1 + r2 = r2 q2 + r3 = rk1 qk1 + rk = rk qk + rk+1

o o . . . o o

0 r2 < r1 0 r3 < r2
. . .

rk2 rk1

0 rk < rk1 0 rk+1 < rk

La suite des restes

(r1 , r2 , . . .) tant une suite strictement dcroissante d'entiers

positifs, on obtient ncessairement un reste nul au bout d'un nombre ni division. Il rsulte de le thorme prcdente que pour chaque

k 0

on a

pgcd(a, b) =

pgcd(rk , rk+1 ). Notons par rn le

dernier reste non nul. On a donc

rn+1 = 0,

ce qui signie que :

pgcd(a, b) = pgcd(rn , rn+1 ) = pgcd(rn , 0) = rn


D'o l'algorithme d'Euclide : On eectue les divisions euclidiennes successives dcrites prcdemment jusqu'a obtenir un reste nul, le pgcd de a et b est le dernier
reste non nul.

Exemple :
L'algorithme d'Euclide appliqu

a = 1236

et

b = 96

donne :

1236 = 96 12 + 84, 96 = 84 1 + 12, 84 = 12 7 + 0, donc pgcd(a, b) = 12.

5.5.1 Notion de p.p.c.m dans Z Z


Dnition 5.3 Soient a1 , a2 , . . . , an des entiers. Il existe un unique entier naturel d tel que : a1 Z Z . . . an Z Z = dZ Z. Ainsi dni, d s'appelle le ppcm de a1 , a2 , . . . , an et on note d = ppcm(a1 , a2 , . . . , an ). L'entier d est aussi le plus petit entier naturel non nul multiple de tous les ai , (1 i n).

Remarque :
-Le ppcm de deux entiers -On a.

et

se note aussi

a b.

a Z Z,

ppcm(aa1 , aa2 , . . . , aan ) = |a|ppcm(a1 , a2 , . . . , an ).

Proposition 5.5.1

Pour deux entiers

et

on a

pgcd(a, b) ppcm(a, b) =| ab |.

34

Dmonstration :
d = pgcd(a, b), a = da1 et b = db1 avec pgcd(a1 , b1 ) = 1 et m = ppcm(a, b). Il existe x y tels que m = ax = by alors da1 b1 = ab1 = a1 b montrons que da1 b1 est un multiple commun a et b. Il existe donc k Z Z tel que da1 b1 = km il vient alors da1 b1 = km = kax d'o b1 = kx et de mme , a1 = ky . Enn pgcd(a1 , b1 ) = kpgcd(x, y ) = 1 donc k = 1 et il s'ensuite m = da1 b1 puis md = ab. d'o le rsultat pgcd(a, b) ppcm(a, b) =| ab |.
Posons

5.6 Les nombres premiers


Dnition 5.4
un nombre premier, ou entier premier, est un lment

p IN

qui

est strictement suprieur 1 et dont les seuls diviseurs sont 1 et lui-mme.

Exemple
les nombres premiers sont

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, . . .

Remarque :
Les rsultats suivant s'obtiennent aisment :

p est premier avec tout nombre qu'il ne divise pas. En eet, pour tout entier a,le pgcd de a et p est un diviseur positif de p, donc 1 ou p. Si ce n'est pas p, c'est 1.
i) Si est premier, alors ii) Si

vaut

Il en rsulte que deux nombres premiers distincts sont toujours premiers entre eux.

est premier et divise un produit de facteurs, alors

divise l'un des facteurs.

En eet, sinon

serait premier avec chacun des facteurs, donc avec le produit .

(Le rsultat est faux si divise ni 2 ni 6).

n'est pas premier, par exemple 4 divise

26

mais 4 ne

5.6.1 Dcomposition en facteurs premiers


Thorme 5.5
faon unique
n 1 2 n = p 1 p2 . . . pn ,

Tout entier naturel strictement plus grand que 1(a

> 1)

s'crit de

o les entiers

pi

sont des nombres premiers vriantp1

< p2 < < pn

el lesi

1in
Les

sont des entiers strictement positifs. Cette criture est appele dcomposition primaire de l'entier

Dnition 5.5
p1 , . . . , p n

a 2.

correspondent aux facteurs premiers de a.

Exemple :
12 = 22 3,50 = 21 52,84 = 22 3 7.
35

5.7 Pgcd, ppcm et dcomposition primaire


Thorme 5.6
Soient

a, b IN

tels que

a, b 2.

A partir des dcompositions

primaires de a et b on peut crire simultanment : 1 2 n n 1 2 a = p 1 p2 . . . pn et b = p1 p2 . . . pn avec p1 , . . . , pn nombres premiers deux deux distincts et 1 , . . . , N , 1 , . . . , N IN on a :

pgcd(a, b) = N i=1 pi

min(i ,i )

, et ppcm(a, b) = N i=1 pi

max(i ,i )

Dmonstration :
Soit
i i = pgcd(a, b) et d = n . Puisque d|a et d|b, on a d| . Inversement, i=1 pi i n comme |a et |b on peut crire : = i=1 pi avec 0 i i , i Ainsi i min(i , i ) pour tout i {1, 2, . . . , n} et donc |d. Par double divisibilit = d. Pour obtenir la formule relative au ppcm, on exploite les proprits pgcd(a, b) ppcm(a, b) = ab et min(, ) + max(, ) = + .

min( , )

Exemple :
a = 308 et b = 2340 : 2 2 2 0 0 0 2 On a a = 11 7 2 et b = 13 5 3 2 on peut crire a = 13 11 7 5 3 2 0 0 2 2 0 0 0 0 0 2 et b = 13 11 7 5 3 2 , alors pgcd(a, b) = 13 11 7 5 3 2 = 4 2 2 et ppcm(a, b) = 13 11 5 3 2 = 180180.
Pour

36

Chapitre 6 Groupe quotient Z Z/nZ Z


6.1 Relation de congruence modulo n
On appelle relation de congruence modulo

Dnition 6.1

n,

et on note :

x y (mod n)
la relation dnie sur

Z Z

par

y x nZ Z. n
est une relation d'quiva-

Proposition 6.1.1
lence sur

La relation de congruence modulo

Z Z.

Remarque :
1)La relation de congruence modulo 2)x

0(

mod

) si et seulement si

0 est l'galit. n divise x.


(mod

Proposition 6.1.2
1) Si 2)Si

Soient x, y , z et t des entiers. x y (mod n) et z t (mod n) alors (x + z ) (y + t) x y (mod n) et z t (mod n) alors xz yt (mod n).

n).

6.2
Soit

Groupe Z Z/nZ Z
n
un entier positif. Soit

Dnition 6.2

appartenant

pour la relation de congruence

Z Z. On note modulo n. On note

d'quivalences de la relation de congruence

x la classe d'quivalence de x par Z Z/nZ Z l'ensemble des classes modulo n.


par

Proposition 6.2.1

L'ensemble

Z Z/nZ Z

muni de la correspondance

((x, y ) x + y )

est un groupe ablien.

37

Remarques :
i) Pour tout entier ii)

x, x = x + nZ Z. Z Z/nZ Z = { 0, 1, . . . , (n 1)}.

En particulier,

0 = nZ Z.

6.2.1 Thorme de Fermat :


Dnition 6.3
cZ Z
tel que Soit

ac 1 a

(mod

a Z Z, on n).

dit que

est inversible sur

Z Z/nZ Z,

s'il existe un

Thorme 6.1
entre eux.

est inversible dans

Z Z/nZ Z

si et seulement si

et

sont premiers

Corollaire 6.1
(mod

Soit

p premier, et p ne divise pas c. Si ac bc (mod p), alors a b ap1 1

p).
Soit

Thorme 6.2 Thorme 6.3


Soit

premier et

ne divise pas

a.

Alors on a

(mod

p).

premier et

(Thorme de Fermat : ) a entier. Alors ap a (mod

p).

6.2.2 Fonction de l'indicatrice d'Euler :


Soit

un entier strictement positif. On appelle indicateur d'Euler de

Dnition 6.4

n,

et on note

(n),

le nombre

d'entiers, compris entre 1 et

n,

premiers avec

n.

Exemples
1)(6)

= 2. (p) = p 1.

2)Si p est un nombre premier,

6.2.3 Formule pour (n) :


Thorme 6.4
Si la dcomposition en facteurs premiers de l'entier
r 1 2 n = p 1 p2 . . . pr .

est :

Alors

(n)

peut se calculer l'aide de la formule suivante :

(n) = n(1
.

1 1 1 )(1 ) . . . (1 ) p1 p2 pr

38

Thorme 6.5 Thorme 6.6


a, b IN

n un entier naturel 2, et (Z Z/nZ Z)+ l'ensemble des lments inversibles de (Z Z/nZ Z) , alors (Z Z/nZ Z)+ est un groupe d'ordre (n). (n) + (n) a (Z Z/nZ Z) , a =1 a 1 mod n.
(D'Euler :) Soit Soit n un entier ab(n)+1 a mod n. naturel sons forme carr, alors on a,

6.3

RSA

Introduction
Le cryptage est historiquement l'une des premieres applications de l'informatique. Ce domaine, qui tait il y a encore quelques annes, rserv aux militaires et aux grandes entreprises, concerne aujourdhui tous ceux qui souhaitent transmettre des donnes protges, qu'ils soient professionnel ou particulier. Pour cela, il existe de nombreuses mthodes de cryptage, mais peu d'entre elles sont reconnues comme sres. La mthode RSA fait depuis longtemps partie de cette catgorie. Dans ce projet, nous allons dvelopper un petit programme de cryptage et dcryptage bas sur ce chire. Le but ne sera pas de dvelopper un programme au code  incassable , mais plutt de comprendre comment fonctionne le cryptage RSA.

Prsentation du cryptage RSA


Le cryptage RSA, du nom de ses concepteurs, Ron Rivest, Adi Shamir et Leonard Adleman, est le premier algorithme de chirement asymtrique. Il a t dcouvert en 1977 au Massachusetts Institute of Technology. Un chirement asymtrique est un cryptage o l'algorithme de chirement n'est pas le mme que celui de dchirement, et o les cls utilises sont direntes. L'intrt est norme : il n'y a plus besoin de transmettre la cl son destinataire, il sut de publier librement les cls de cryptage. N'importe qui peut alors crypter un message, mais seul son destinataire, qui possde la cl de dcodage, pourra le lire. En quelques annes, RSA s'est impos pour le cryptage comme pour l'authentication et a progressivement supplant son concurrent, le DES. Le RSA est bas sur la thorie des nombres premiers, et sa robustesse tient du fait qu'il nexiste aucun algorithme de dcomposition d'un nombre en facteurs premiers. Alors qu'il est facile de multiplier deux nombres premiers, il est trs dicile de retrouver ces deux entiers si l'on en connat le produit.

6.3.1 Principe de RSA


Gnration de cls
Le systme de codage RSA, dans lequel un utilisateur cre son couple (clef publique, clef prive) en utilisant la procdure suivante :
39

1. Choisir deux grands nombres premiers moins 150 chires dcimaux chacun. 2. Calculer

et

q.

Il faut que

et

contiennent au

n=p

et garde la dcomposition de n secrte.

3. Choisir un petit entier 5. Publier la paire 6. Garder secrte

premier avec

4. Calculer d, l'inverse de e par la multiplication modulo

(n) = (p 1)(q 1). (n).


publique RSA. sa clef prive RSA.

Ke = (e, n) comme sa clef la paire Kd = (d, n) qui est

7.(n) doit tre secrte.

Cryptage et dcryptage
Pour crypter un mot, il sut de le mettre la puissance reprsente mot crypt.

e.

Le reste modulo

c te mod n
Pour dcrypter, on utilise la mme opration, mais en mettant la puissance

d:

t cd mod n
Une fois

e, d et n calculs, on peut dtruire p, q et (n), qui ne sont pas ncessaires

pour crypter et dcrypter. Pire encore, on peut calculer trs rapidement la cl prive

d partir de p et q, il ne faut donc pas conserver ces nombres.

Exemple
Voici un exemple de l'utilisation de RSA, avec des petits nombres : Abdelghani souhaiterait envoyer le message suivant Souane : IMAGE . Malheureusement, Karim les espionne, et pourrait intercepter ce message. Nos deux compres vont donc crypter leurs changes avec la mthode RSA.

p = 5 et q = 11. n = 5 11 = 55, et (n) = 4 10 = 40. Il choisit ensuite e = 7, qui est premier avec 40. L'inverse de 7 modulo 40 est d = 23.
Souane a choisi Il en dduit Souane peut donc maintenant publier ses cls publiques, par exemple sur son site internet :

K7 = (7, 55)

Abdelghani va utiliser ces cls pour crypter son message, mais il doit avant tout convertir son texte en une suite de nombres , IMAGE  devient : I 9 M 13 A 1 G 7 E 5

Il sut Abdelghani de coder chaque nombre comme expliqu ci-dessus. Il obtient : 7

9 mod55

137 mod55

7;

etc . . . 9 4 13 7 1 1
40

7 28

5 25

Abdelghani envoie 04

d=23. Il va pouvoir retrouver le message original :


423 mod55
= 9,

07

01

28

25 souane, qui va le dcrypter avec sa cl

723 mod55

= 13, ect . . . 9 4 I 13 7 M 1 1 A 7 28 G 5 25 E

Souane va pouvoir lire le message de son ami, sans que Karim n'ait pu le dchirer.

Attaques du code RSA


Si Karim est vraiment curieux et veut absolument dcrypter le message de Abdelghani, il devra essayer de forcer le code RSA. Pour cela, il faut qu'il dtermine la cl prive Pour ce faire, il doit tenter de trouver

d partir de ce qu'il connat, c'est dire n et e (qui sont publiques). p et q partir de n. Comme nous le din

sions prcdemment, il n'existe pas de mthode miraculeuse pour retrouver ces deux nombres. Il faut tenter toutes les combinaisons de nombres premiers pour trouver celle dont le produit donnera . Selon le principe fondamental de la thorie des nombres, la dcomposition en facteurs premiers est unique, Karim sera donc sr d'avoir trouv les bonnes valeurs de Une fois

partir de

et q trouv, il ne lui reste plus qu'a dterminer (n), et de calculer d e et (n), de la mme faon que lors de la gnration de la cl. Karim

p et q.

pourra alors dcoder le message crypt.

Attaque pour (n) connu


Si

(n)

est connu du, il peut trouver une factorisation de n : n=pq,

(n) = (p 1)(q 1),


et en posant et q :

q=

n , il obtient une equation du second degr dont les solutions sont p p

(n) (p 1)(

n 1) = 0 p2 + p((n) n 1) + n = 0. q

6.4 Signature numriques


Si le but traditionnel de la cryptographie est l'tablissement de communication condentielles en prsence d'indiscrets, ce n'est pas son seul intrt. En eet, la cryptographie moderne tant cl secrte qu'a cl publique possde un grand nombre d'autres applications du fait de la gnration massive de communications numriques par Internet.
41

6.4.1 Mcanisme gnral de signature


Un procde de signature est compos, d'un algorithme priv de signature not sig qui, un message clair M et pour une cl xe K, retourne une signature S :
sigK (M )

=S

D'un prdicat public de verication not ver qui, une cl xe K et pour tout couple clair/signature(M,S), va verier la validit de la signature S pour le message claire M :

verK (M, S ) = vrai S = sigK (M )

Signature par RSA


Le premier exemple de procd de signature est le systme cl publique RSA. Abdelghani dsire envoyer un message M sign Souan. Ils disposent pour cela de leurs systmes RSA respectifs : Priv Souan Abdelghani Publics

dS dA

nS , eS nA , eA

Le procd de signature est alors :

sigK (M ) = M dA mod nA S
Celui de vrication :

verK (M, S ) = vrai S eA mod nA M.

42

6.5 Bibliographie :

Jean-Guillaume Dumas, Jean-Louis Roch, Eric Tannier, Sbastien Varrette, THEORIE DES CODES .Compression, cryptage, correction , DUNOD, 2007. Johannes Buchmann, INTRODUCTION A LA CRYPTOGRAPHIE, DUNOD, 2006. Gilles Dubertret, INITIATION A LA CRYPTOGRAPHIE,Vuibert Information, 2me edition. Bruno Martin, Codage,cryptologie et applications, 2004. Jean-Jacques Risler, Pascal Boyer , ALGEBRE POUR LA LICENCE, groupe , anneaux, corps, DUNOD 2006. A.Azizi polycopier "CRYPTOGRAPHIE" master informatique . SiteWeb : www.wikepidia.com.

43