Академический Документы
Профессиональный Документы
Культура Документы
OUJDA
Prpar par les tudiants : Bouchlaghem Soufiane. Larhlid Abdelghani. El-Hajouji Hamid. Professeur directeur: Mhammed Ziane.
4
4 6
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
21
21 22 23 23 27 30
31
31 31 32
Z Z
: . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
32 33 34 35 35 36
. . . . . . . . . . . . . . . . . . . . . . . . . .
Z Z
. . . . . . . . . . . . . . . . . . . .
Les nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . Dcomposition en facteurs premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pgcd, ppcm et dcomposition primaire
37
37 37 38 38 38 39 39 41 42 43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Z Z/nZ Z
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
(n)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Principe de RSA . . . . . . . . . . . . . . . . . . . . . . . . .
Signature numriques . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bibliographie :
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.
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
x t
t < 26
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.
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.
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 :
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 :
-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.
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 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
M.
La compression logique : elle est eectue par un raisonnement logique en substituant une information par une information quivalente.
botes numrotes de 1
N.
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
la bonne bote. Cela revient galement poser de dichotomie). On est donc amen poser ne se produit que dans le cas de
I = log2 (N ),
vnements quiprobables.
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)
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
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 )
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()
2li 1
i=1
h()
i= k
:
i= k
L(h) =
i=1
pi l(h(xi )) =
i=1
pi li
Thorme 2.2
Notons
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) :
V , |V | = q
alors il vrie :
L(k )
De plus il existe un code
H (S ) log2 (q ) V
de
L(k )
qui vrie
L(k ) <
H (S ) +1 log2 (q )
12
|f (t)|dt <
, on
IR
F : f f
s'appelle la transformation de Fourier, et
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
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
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,
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
H ( )
h.
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
h0 , h2 . . . hn1
=
k=0
2in 1 n 2i 1 n
= 0.
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
, .
et
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
16
AES, ainsi
et une multiplication
(A, +, ) est un ensemble non vide dans lequel on dnit telles que :
(A, +) 1.
ii) La multiplication est associative , distributive sur l'addition et possde un lment neutre Ont dit que
(A, +, )
(A , )
est inversible.
Remarque 3.1
Z Z/pZ Z
Tout corps
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
est
cyclique et d'ordre
n = q 1.
de
).
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
K.
Alors l'addition
multiplication
dnit sur
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).
Fp
n.
Proposition 3.1.3
alors :
Soit
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 .
Exemple :
Le plus petit corps ni est not
l'lment neutre pour l'addition, et 1 qui est lment neutre pour la multiplication.
Fp [X ]
Z Z
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.
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
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
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 )
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
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
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
et deg
P =n
}. On
Iq (n) =
d|n
(d)q d .
20
F256
se reprsente de manire
Nb
le nombre des colonnes dans une matrice pour crire un bloc d'octets,
Nk
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 .
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
Nr
a0 a1 a2 a3
a4 a8 a5 a9 a6 a10 a7 a11
22
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.
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 :
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
de
Ci
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
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
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.
Nr + 1
4Nb
octets.
K0 K1
les les
Nb Nb
. . .
. . . 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
Nk > 6.
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
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
Nk
Nb (Nr + 1) 1
Alors ET (i mod
Faire
tmp = W[i-1]
Nk = 0
> 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
w (i 1)=
w(i-1) Rcon[k]
si si
i = 4k , k IN i = 4k , k IN
26
xk1 00 + 00 . 00
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
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
10 02 9a d8
1b 20 04 2f
ab 36 40 08
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.
1 x 2 x x3
x3 x8 x 5 x9 x6 x10 x7 x11
(F2 [X ]/g (X )) ,
(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
08 01 = 13 15
80 10 2b 4b
d8 1b 86 dc
4) AddRoundkey :
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
30
IN
Z Z.
Z Z/nZ Z.
Une tude
5.1 Rappel :
Dnition 5.1
Soient
et
divise
est un multiple de
a),
et on note
a/b,
tel que
b (ou b = an.
que
Proposition 5.1.1
Soient
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
Z Z
est de la forme
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
Dnition 5.2
Remarque :
-Le pgcd de deux entiers
et
se note aussi
ab
Proprit 5.3.1
Soient
a1 , a2 , . . . , an
-pgcd(a1 , a2 , . . . , an ) est le plus grand entier qui divise -Les diviseurs communs
ai
ai (1 i n)
(1 i n) pgcd(a1 , a2 , . . . , an )
a Z Z,
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
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
Soient
a,b
et
pgcd(a, c) = 1). a
divise le produit
a, b
et
et
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
Dmonstration :
-Un diviseur commun -Un diviseur commun
a et b b et r
divise divise
bq bq
r = a bq . a = bq + r. b
et
et
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
et
=a
et
r 1 = b,
et tant que
ri > 0
r0 r1 . . .
o o . . . o o
0 r2 < r1 0 r3 < r2
. . .
rk2 rk1
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) =
rn+1 = 0,
Exemple :
L'algorithme d'Euclide appliqu
a = 1236
et
b = 96
donne :
Remarque :
-Le ppcm de deux entiers -On a.
et
se note aussi
a b.
a Z Z,
Proposition 5.5.1
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
p IN
qui
Exemple
les nombres premiers sont
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.
En eet, sinon
26
mais 4 ne
> 1)
s'crit de
o les entiers
pi
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.
Exemple :
12 = 22 3,50 = 21 52,84 = 22 3 7.
35
a, b IN
tels que
a, b 2.
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
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
Z Z.
Remarque :
1)La relation de congruence modulo 2)x
0(
mod
) si et seulement si
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
Proposition 6.2.1
L'ensemble
Z Z/nZ Z
muni de la correspondance
((x, y ) x + y )
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.
ac 1 a
(mod
a Z Z, on n).
dit que
Z Z/nZ Z,
s'il existe un
Thorme 6.1
entre eux.
Z Z/nZ Z
si et seulement si
et
sont premiers
Corollaire 6.1
(mod
Soit
p).
Soit
premier et
ne divise pas
a.
Alors on a
(mod
p).
premier et
p).
Dnition 6.4
n,
et on note
(n),
le nombre
n,
premiers avec
n.
Exemples
1)(6)
= 2. (p) = p 1.
est :
Alors
(n)
(n) = n(1
.
1 1 1 )(1 ) . . . (1 ) p1 p2 pr
38
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.
1. Choisir deux grands nombres premiers moins 150 chires dcimaux chacun. 2. Calculer
et
q.
Il faut que
et
contiennent au
n=p
premier avec
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
pour crypter et dcrypter. Pire encore, on peut calculer trs rapidement la cl prive
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
9 mod55
137 mod55
7;
etc . . . 9 4 13 7 1 1
40
7 28
5 25
Abdelghani envoie 04
07
01
28
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.
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.
(n)
q=
(n) (p 1)(
n 1) = 0 p2 + p((n) n 1) + n = 0. q
=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 :
dS dA
nS , eS nA , eA
sigK (M ) = M dA mod nA S
Celui de vrication :
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