Vous êtes sur la page 1sur 44

Scurit et Cryptologie

Adrien Goffon
Bureau H207 / adrien.goeffon@univ-angers.fr

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Scurit informatique
Le stockage et lachemination dinformations (via des rseaux internet, des voies tlphoniques ou en main propre)
relvent de linformatique.
La scurit informatique regroupe les moyens permettant lintgrit et la confidentialit dinformations.
Plusieurs critres relvent de la scurit informatique :
garantir lexactitude et la conformit des informations (intgrit)
garantir laccessibilit des informations et des systmes (disponibilit)
sauf laccessibilit de certaines informations des personnes non autorises (confidentialit)
prouver et enregistrer tout accs une information (traabilit)
de manire gnrale, protger contre des actions non intentionnelles (sret) ou intentionnelles malveillantes
(scurit).
Lauthentification (assurance de lidentit de lexpditeur) est galement une proprit de scurit importante dans
les protocoles dchange de messages.
Une vulnrabilit est une faille de scurit. La vulnrabilit est un niveau dexposition.
Une attaque est un moyen dexploiter une vulnrabilit. Une menace est une possibilit identifie dattaque.
Le risque prend en compte la probabilit de menace (fonction de la vulnrabilit, lensemble des menaces et les
prventions de menaces ou contre-mesures) mais galement la gravit dune attaque russie.
Dans la plupart des cas, la scurisation des informations passe par le chiffrement, procd qui permet de rendre
une information incomprhensible a tout individu nayant pas sa connaissance une information supplmentaire
(la cl de chiffrement).
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement
Premier exemple de texte chiffr :
SFOEF AWPVT BNJOV JUDIF AUPOZ NPOUB OB
Cas simple et facile dchiffrer :
chiffrement par dcalage (ou chiffrement de Csar)
dcalage : +1
Pour retrouver le message (texte clair), appliquer le dcalage inverse (-1 ou +25) puis retrouver les espaces :
S<->R, F<->E, O<->N
SFOEF AWPVT BNJOV JUDIF AUPOZ NPOUB OB
SFOEFAWPVTBNJOVJUDIFAUPOZNPOUBOB
RENDEZVOUSAMINUITCHEZTONYMONTANA
RENDEZ-VOUS A MINUIT CHEZ TONY MONTANA
Csar remplaait chaque lettre par la troisime suivante dans lordre alphabtique lors de ses conversations
secrtes et militaires.
Le mme message chiffr avec un dcalage de 3 :
UHQGH CYRXV DPLQX LWFKH CWRQB PRQWD QD

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement
Avant lapparition des ordinateurs, les applications taient essentiellement militaires et diplomatiques.

Sur les champs de bataille, le chiffrement des messages devaient rpondre certaines contraintes :
rapides traiter par un le codeur / dcodeur connaissant la mthode de chiffrement
de courte dure de vie et donc rapides apprendre pour les codeurs

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement
Avant lapparition des ordinateurs, les applications taient essentiellement militaires et diplomatiques.

Les Rossignol, cryptographes du XVIIme sicle, ont conu en 1691 un


code appel Grand Chiffre qui fut impossible casser jusquen 1893
(par Bazeries).
Ce code et ses variations furent utiliss comme mthode de cryptage des
Rois de France (et en particulier de Louis XIV) puis de lArme franaise.
Son dcryptage a permis dmettre une nouvelle hypothse concernant
lidentit de lhomme au masque de fer (le gnral Bulonde ?).
Loriginalit du code rside principalement dans les points suivants :
les textes (franais) crypts devenait des suite de nombres
587 nombres reprsentaient des syllabes (code de base)
711 nombres codaient des lettres (131 nombres pour la lettre e)
certains nombres codaient des mots entiers ou plusieurs syllabes
des nombres ne codaient rien
des nombres signifiaient dignorer le nombre prcdent
des nombres modifiaient le genre du mot

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Stganographie
Quelques applications sociales galement, notamment pour la correspondance entre amants
(par cryptographie mais aussi stganographie, consistant cacher un message dans un autre).
Exemple avec la (probablement fausse mais clbre) lettre de George Sand Alfred de Musset
Cher ami,
Je suis toute mue de vous dire que j'ai
bien compris l'autre jour que vous aviez
toujours une envie folle de me faire
danser. Je garde le souvenir de votre
baiser et je voudrais bien que ce soit
une preuve que je puisse tre aime
par vous. Je suis prte montrer mon
affection toute dsintresse et sans calcul, et si vous voulez me voir ainsi
vous dvoiler, sans artifice, mon me
toute nue, daignez me faire visite,
nous causerons et en amis franchement
je vous prouverai que je suis la femme
sincre, capable de vous offrir l'affection
la plus profonde, comme la plus troite
amiti, en un mot : la meilleure pouse
dont vous puissiez rver. Puisque votre
me est libre, pensez que l'abandon ou je
vis est bien long, bien dur et souvent bien
insupportable. Mon chagrin est trop
gros. Accourrez bien vite et venez me le
faire oublier. vous je veux me soumettre entirement.
Votre poupe

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Quand je mets vos pieds un ternel hommage,


Voulez-vous qu'un instant je change de visage ?
Vous avez captur les sentiments d'un coeur
Que pour vous adorer forma le crateur.
Je vous chris, amour, et ma plume en dlire
Couche sur le papier ce que je n'ose dire.
Avec soin de mes vers lisez les premiers mots,
Vous saurez quel remde apporter mes maux.

Cette insigne faveur que votre coeur rclame


Nuit ma renomme et rpugne mon me. .

Stganographie
Un exemple plus rcent de stganographie :

Limage de gauche est une photographie numrique originale.


Limage de droite cache le texte intgral de cinq pices de Shakespeare :
Le Roi Lear, Hamlet, Macbeth, Le Marchand de Venise, Jules Csar.
Dans une image 1024x768 non compresse, on peu cacher aisment 1024x768x3 bits dinformations (294 Ko :
3 bits de poids faible par pixel cod sur 24 bits), soit davantage que le texte (compress) de ces cinq pices.
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Cryptographie
La cryptologie est la science (autrefois un art) qui traite du chiffrement des informations symbolises par des
messages (ensemble de signes). Elle englobe deux spcialits : la cryptographie et la cryptanalyse.
La cryptographie a trait au chiffrement des messages : comment crer un texte chiffr (cryptogramme) ?
La cryptographie cl secrte (ou cryptographie symtrique) utilisera la mme cl pour le chiffrement et le
dchiffrement.

Donnes
en clair

Cl Secrte

Cl Secrte

Algorithme
symtrique

Algorithme
symtrique

Donnes
chiffres

Donnes
chiffres

Problme de lchange des cls secrtes

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Donnes
en clair

Cryptographie
La cryptologie est la science (autrefois un art) qui traite du chiffrement des informations symbolises par des
messages (ensemble de signes). Elle englobe deux spcialits : la cryptographie et la cryptanalyse.
La cryptographie a trait au chiffrement des messages : comment crer un texte chiffr (cryptogramme) ?
La cryptographie cl publique (ou cryptographie asymtrique) utilisera deux cls : une cl publique pour le
chiffrement et une cl secrte pour le dchiffrement.

Cl Publique

Cl Publique

Algorithme
asymtrique

Donnes
en clair

Cl Prive

Algorithme
asymtrique

Donnes
chiffres

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Donnes
chiffres

Donnes
en clair

Cryptosystme
Un cryptosystme permet de dfinir la plupart des protocoles dchange de messages.
Il se dfinit par un quintuplet =(M,C,K,E,D) o :
- M est lensemble des textes clairs possibles,
- C est lensemble des textes chiffrs possibles,
- K est lensemble des cls possibles,
- E est lensemble des fonctions de chiffrement possibles ek : M C
- D est lensemble des fonctions de dchiffrement possibles dk : C M
- mM, kK, ekE, dkD, dk(ek (m)) = m.
Canal sr

Cl Secrte

k
m

Algorithme
symtrique

Algorithme
symtrique

ek(m)
Donnes
en clair

Donnes
chiffres

Cl Secrte

ek(m)

ek(m)
Donnes
chiffres

Protocole
1. Alice a comme entre le texte clair m
2. Alice et Bob conviennent de
3. Ils font en sorte de possder resp. 2
fonctions ek et dk pour une mme cl k
4. Alice calcule c = ek(m) et lenvoie Bob
(lattaquant potentiel Oscar a accs ek(m)
et connat )
5. Bob calcule dk(c), soit m.

dk(ek(m))=m

Donnes
en clair

Oscar
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Cryptanalyse
La cryptanalyse sintresse au dchiffrement des messages partir du cryptogramme uniquement (sans cl) : estce quune attaque peut permettre de dchiffrer un message, et ainsi mettre mal la scurit de lalgorithme de
chiffrement ?
On dtermine une attaque par les donnes que lon dispose ou que lon peut gnrer :
Attaque texte chiffr seul : retrouver le message clair (ou la cl)
Attaque texte clair connu : retrouver la cl en analysant messages chiffrs disponibles et messages clairs correspondants
Attaque texte clair choisi : possibilit de choisir des textes clairs et de gnrer leurs quivalents chiffrs
Attaque texte chiffr choisi : possibilit de choisir des textes chiffrs et de gnrer leurs quivalents clairs

Exemple dattaque texte clair choisi : la Bataille de Midway (juin 1942)


1. Ltat-major japonais communique avec un de ses postes avancs par ondes radios en utilisant une cl secrte.
2. Les amricains ont alors transmis un message en clair (factice mais important en apparence) entre deux de leurs postes.
3. Les japonais ont alors immdiatement envoy ce message leur tat-major, mais chiffr.
4. Les amricains ont leur tour intercept ce message chiffr, sachant quil comporterait leur propre message intercept.
5. Disposant la fois de leur message initial choisi et de son quivalent chiffr, les amricains ont pu calculer la cl secrte.

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Cryptosystmes alphabtiques
Soit A lalphabet latin compos des 26 lettres A, B, , Z. Considrons lensemble A en bijection avec lintervalle
dentiers [0,25] et muni des oprateurs darithmtique modulaire lmentaires (addition et multiplication), i.e. A = Z/26Z.
A

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

(0 + 4) mod 26 = 4,
(14 + 14) mod 26 = 2
(10 20) mod 26 = 16
(3 7) mod 26 = 21

A + E = E
O + O = C
K U = Q
D H = V

Les cryptosystmes alphabtiques sont utilises en cryptographie classique.


On distingue le chiffrement par transposition (changer lordre des lettres, cf. TD) du chiffrement par substitution
(remplacer les lettres, exemples clbres suivre).

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement par dcalage


Chiffrement par dcalage
Ensemble des textes clairs M : tous les mots m = m1m2ml (quel que soit l) tel que mi A.
Ensemble des textes chiffrs C = M
Ensemble des cls K : alphabet A ( |K| = 26 ).
Toute fonction de chiffrement ek est telle que ek(m) = (m1+k)(m2 +k)(ml +k), m = m1m2ml M
Toute fonction de dchiffrement dk est telle que dk(c) = (c1-k)(c2 -k)(cl -k), c = c1c2cl C
Exemple : texte de lexemple initial chiffr en utilisant la cl k = D = 3
RENDEZVOUSAMINUITCHEZTONYMONTANA
+ DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
UHQGHCYRXVDPLQXLWFKHCWRQBPRQWDQD
Dchiffrement connaissant k
UHQGHCYRXVDPLQXLWFKHCWRQBPRQWDQD
- DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
RENDEZVOUSAMINUITCHEZTONYMONTANA
Cryptanalyse du chiffrement par dcalage
En supposant que le texte clair soit en langage naturel et quil existe un algorithme dcidant si un mot appartient
ou non une langue donne, alors lattaque exhaustive sur lespace des cls est aise (il est extrmement peu
probable quun texte en langage naturel suffisamment long puisse gnrer par simple simple dcalage non nul un
autre texte en langage naturel). Connatre ou supputer la langue est cependant ncessaire.
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement affine
Chiffrement affine
Gnralisation du chiffrement par dcalage.
Une cl est un couple (k1,k2) o k1 est premier avec 26 et k2 [0,25].
Toute lettre mi est chiffre par la lettre ci = k1 mi + k2 (fonction inversible : (k1)-1 (ci - k2 ) = mi ).
Cryptanalyse : |K| = 364, une attaque exhaustive est toujours possible.
Thorme de Bachet-Bzout : a,b Z, u,v tels que u a + v b = PGCD(a,b).
Thorme de Bzout : Soient a,b Z*. a et b sont premiers entre eux si et seulement si u,y tels que u a + v b = 1.
Dans Z/nZ, tous les nombres premiers avec n possdent un inverse multiplicatif (et uniquement ceux-ci) :
Soit a Z/nZ premier avec n, alors a-1 Z/nZ est le nombre u tel que u a + v n = 1.
Calculer a-1 dans Z/nZ revient calculer les coefficients de Bzout du couple (a,n), ce que permet lalgorithme
dEuclide tendu.
Exemple : calcul de linverse de 15 dans Z/26Z
26 = 1 15 + 11
15 = 1 11 + 4
11 = 2 4 + 3
4=13+1

26 = 1 15 + 11
15 = 1 11 + 4
11 = 2 4 + 3
4=13+1

(4)
(+3)
(1)

(4) 26 + (+7) 15 = 1

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Les nombres inversibles dans Z/26Z :


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

15 1 = 7
17 1 = 23
19 1 = 11
21 1 = 5
23 1 = 17
25 1 = 25

Chiffrement monoalphabtique par permutation


Chiffrement monoalphabtique par permutation
tendre lespace des cls lensemble des permutations sur A ( |K| = 26! 4.1026).
Si la permutation est la cl, chaque lettre mi du message clair est chiffr en ci = (mi).
Le dchiffrement se fait en utilisant la permutation inverse : mi = -1(ci).
Cryptanalyse du chiffrement par dcalage
Attaque exhaustive impossible : 1 anne 3.107 secondes. 10M processeurs x 1000M cls/secondes 1000 ans.
actuellement : Selon la Loi de Moore, les 1000 ans en 2010 deviennent 3 jours dans 50 ans.
Une attaque texte clair connu donne immdiatement la permutation (cl) partielle voire totale.
Attaque texte chiffr seul possible en utilisant les proprits a priori du message en clair;

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement monoalphabtique par permutation

Frquence dapparition des caractres en langue anglaise :


1 - E 0.127
2 - T 0.091 A 0.082 O 0.075 I 0.070 N 0.067
3 - D 0.043 L 0.040
4 - C 0.028 U 0.028 M 0.024 W 0.023 F 0.022
5 - B 0.015 V 0.010 K 0.008 J 0.002 X 0.001

S 0.063

H 0.061

R 0.060

G 0.020
Q 0.001

Y 0.020
Z 0.001

P 0.019

Digrammes les plus courants (29/676) en langue anglaise :


TH HE IN ER AN RE ED ON ES ST EN AT TO NT HA NB OU EA AS OR TI IS ET AR TE SE HO OF
Trigrammes les plus courants (12/17576) en langue anglaise :
THE ING AND HER ERE ENT THA NTH WAS RTH FOR DTH

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement monoalphabtique par permutation


Exemple dattaque texte chiffr seul
On cherche dchiffrer le texte suivant :
YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
NZUCDNJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR
Hypothse 1 : chiffrement monoalphabtique par permutation.
Hypothse 2 : message clair en langue anglaise.

tape 1 : tablir la frquence des caractres et des digrammes


Z

20

16

15

13

11

11

10

10

4 : DZ MD MR ZW
3 : CD CH FM IF NM NZ ZU
2 : CF DI EJ EY FQ FZ HZ JM JN JX MX NC QF RN RW RZ SM UC UM VE WD WN XC XZ YF YI YV ZC ZD ZJ ZR ZV
1 : BT CE CJ CM CR CS CV CW DD DH DJ DM DR DU DY EC EF EX FC FE FW FY GC HN HS IE IR JB JC JJ JY JZ
KC ME MF MJ MQ MY MZ ND PC QC QZ RE RJ RT SZ TN TX UN VM VY VZ WG WI WJ WQ XJ XY YR YS YU YY ZK ZN ZP

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement monoalphabtique par permutation


Frquence dapparition des caractres en langue anglaise :
1 - E 0.127
2 - T 0.091 A 0.082 O 0.075 I 0.070 N 0.067
3 - D 0.043 L 0.040
4 - C 0.028 U 0.028 M 0.024 W 0.023 F 0.022
5 - B 0.015 V 0.010 K 0.008 J 0.002 X 0.001

S 0.063

H 0.061

R 0.060

G 0.020
Q 0.001

Y 0.020
Z 0.001

P 0.019

Digrammes les plus courants (29/676) en langue anglaise :


TH HE IN ER AN RE ED ON ES ST EN AT TO NT HA NB OU EA AS OR TI IS ET AR TE SE HO OF
Trigrammes les plus courants (12/17576) en langue anglaise :
THE ING AND HER ERE ENT THA NTH WAS RTH FOR DTH

20

16

15

13

11

11

10

10

4 : DZ MD MR ZW
3 : CD CH FM IF NM NZ ZU
2 : CF DI EJ EY FQ FZ HZ JM JN JX MX NC QF RN RW RZ SM UC UM VE WD WN XC XZ YF YI YV ZC ZD ZJ ZR ZV
1 : BT CE CJ CM CR CS CV CW DD DH DJ DM DR DU DY EC EF EX FC FE FW FY GC HN HS IE IR JB JC JJ JY JZ KC ME MF MJ
MQ MY MZ ND PC QC QZ RE RJ RT SZ TN TX UN VM VY VZ WG WI WJ WQ XJ XY YR YS YU YY ZK ZN ZP

On en dduit :
(Z) = E (caractres de plus hautes frquence : 20/168 = 0,119)
(D) {R,S,T} par tude des digrammes anglais E et E (Z et Z dans le texte chiffr)
(W) {D,N,A} : ZW apparat 4 fois et WZ 0 fois
(N) = H
-1(T) {J,W} donc (J) = T et (D) {R,S}
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement monoalphabtique par permutation


YIFQFMZRWQFYVECFMDZPCVMRZWNMDZVEJBTXCDDUMJ
NDIFEFMDZCDMQZKCEYFCJMYRNCWJCSZREXCHZUNMXZ
NZUCDNJXYYSMRTMEYIFZWDYVZVYFZUMRZCRWNZDZJJ
XZWGCHSMRNMDHNCMFQCHZJMXJZWIEJYUCFWDJNZDIR

Exemple tir de
Cryptography: theory and practice (Douglas Robert Stinson)

------END-----A---E-A--NEDH--E------A----H-------EA---E-A---A---NHAD-A-EN--A-E-H--E
HE-A-H------N------ED---E---E--NEANDHE-E--ED-A---NH---HA---A-E----ED-----A-D--HE--N

OURFRIENDFROMPARISEXAMINEDHISEMPTYGLASSWIT
HSURPRISEASIFEVAPORATIONHADTAKENPLACEWHILE
HEWASNTLOOKINGIPOUREDSOMEMOREWINEANDHESETT
LEDBACKINHISCHAIRFACETILTEDUPTOWARDSTHESUN

Our friend from Paris examined his empty glass with surprise, as if evaporation had taken place while he wasnt looking. I poured some more wine
and he settled back in his chair, face tilted up towards the sun.

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
Chiffrement de Vigenre
Dchiffrer chaque caractre selon la place quil occupe dans le texte en clair.
La cl k est un mot (chiffrement polyalphabtique : le texte clair est dcoup en blocs de taille |k|), donc M=C=K
ci = mi + k(1 + (i-1) mod |k|) et mi = ci - k(1 + (i-1) mod |k|)
Exemple
MAYTHEFORCEBEWITHYOU
+ STARWARSSTARWARSSTAR
ETYKDEWGJVESAWZLZROL

ETYKDEWGJVESAWZLZROL
- STARWARSSTARWARSSTAR
MAYTHEFORCEBEWITHYOU

Cryptanalyse
Utilise lindice de concidence dun couple de mots (w,w) :

I ( w, w ) =

fi (resp. fi ) dsigne le nombre doccurrences du caractre dindice i dans w (resp. w)

25

i= 0

f i f i
w . w

Proprit : 2 textes ont un indice de concidence proche de i pi


pi est la frquence dapparition du caractre dindice i dans le langage tudi (En anglais,

i pi

0.065)

Indice de concidence dun couple de mots relativement un dcalage d : I(w,w,d) = I(w+d|w|,w)


d|w| est le mot tel que (d|w|)i = wi + d. En anglais et si d>0, I(w,w,d) est proche de 1/26 = 0.038 (I(w,w,d) [0.031,0.045] avec une forte probabilit).
I(w,w,d) 0.065 si d=0
I(w,w,d) [0.031,0.045] sinon
Ce rsultat est indpendant de la position des caractres, donc est extensible tout couple de mots extraits de deux mots anglais.
Donc :

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
Droulement dune attaque sur un chiffrement de Vigenre
But : trouver la cl k partir du mot chiffr c
1. Calculer la longueur de la cl k
2. Calculer les dcalages des |k| mots extraits
On note c(i,j) le mot extrait de c compos des lettres dindice x tel que x mod i = j mod i.
Exemple : calcul de c(5,3) avec c=ETYKDEWGJVESAWZLZROL.
ETYKD EWGJV ESAWZ LZROL
c(5,3) = YGAR

Proprits (si |k| est la longueur de la cl) :


j [1,|k|], I ( c(|k|,j) , c(|k|,j) , 0 ) 0.065 (si c est issu dun message en langue anglaise)
Plus gnralement, k est un multiple de |k| j [1,k], I ( c(k,j) , c(k,j) , 0 ) 0.065
d : ( I ( c(|k|,j) , c(|k|,j) , d ) 0.065 ) ( d = kj kj )

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
Exemple dattaque texte chiffr seul
On cherche dchiffrer le texte suivant :
CHREEVOAHMAERATBIAXXWTNXBEEOPHBSBQMQEQERBWRVXUOAKXAOSXXWEAHBWQIMMQMNKGRFVGXWTRZXWIAXLX
FPSKAUTEMNDCMGTSXMXBTUIADNGMGPSRELXNJELXVRVPRTULHDNQWTWDTYGBPHXTFALJHASVBFXNGLLCHRZBWE
LEKMSJIKNBHWRJGNMGJSGLXFEYPHAGNRBIEQJTAMRVLCRREMNDGLXRRIMGNSNRWCHRQHAEYEVTAQEBBIPEEWEV
KAKOEWADREMXMTBHHCHRTKDNVRICHRCLQOHPWQAIIWXNRMGWOIIFKEE
Hypothse 1 : chiffrement de Vigenre.
Hypothse 2 : message clair en langue anglaise.
tape 1 : calculer la longueur de la cl
calculer les mots extraits c(i,j)
j [1,i], calculer I ( c(i,j) , c(i,j) )
si j [1,i], I ( c(i,j) , c(i,j) ) 0.065 alors i est trs probablement la longueur de la cl k.
tape 2 : calculer la cl
Calculer les indices I ( c(|k|,i) , c(|k|,j) , d), {i,j}, i,j [1,|k|] et d [0,25]
si I ( c(|k|,i) , c(|k|,j) , d) 0.065 et d [0,25] \ {d}, I ( c(|k|,i) , c(|k|,j) , d) / 0.065, alors d = kj kj
Le systme dquations rsultant permet dexprimer tous les dcalages en fonction dun seul.
Lattaque revient alors une attaque sur un chiffrement par dcalage simple. La recherche du caractre de plus
grande frquence permet de calculer le dcalage et de retrouver la cl.
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
tape 1 : calculer la longueur de la cl
calculer les mots extraits c(i,j)
j [1,i], calculer I ( c(i,j) , c(i,j) )
si j [1,i], I ( c(i,j) , c(i,j) ) 0.065 alors i est trs probablement la longueur de la cl k.
c(1,1) est le mot lui-mme :
CHREEVOAHMAERATBIAXXWTNXBEEOPHBSBQMQEQERBWRVXUOAKXAOSXXWEAHBWQIMMQMNKGRFVGXWTRZXWIAXLX
FPSKAUTEMNDCMGTSXMXBTUIADNGMGPSRELXNJELXVRVPRTULHDNQWTWDTYGBPHXTFALJHASVBFXNGLLCHRZBWE
LEKMSJIKNBHWRJGNMGJSGLXFEYPHAGNRBIEQJTAMRVLCRREMNDGLXRRIMGNSNRWCHRQHAEYEVTAQEBBIPEEWEV
KAKOEWADREMXMTBHHCHRTKDNVRICHRCLQOHPWQAIIWXNRMGWOIIFKEE
I ( c(1,1) , c(1,1) ) = 0.045
j=1
i=1

0.045

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
tape 1 : calculer la longueur de la cl
calculer les mots extraits c(i,j)
j [1,i], calculer I ( c(i,j) , c(i,j) )
si j [1,i], I ( c(i,j) , c(i,j) ) 0.065 alors i est trs probablement la longueur de la cl k.
c(2,1) :
C R E O H A R T I X W N B E P B B M E E B R X O K A S X E H W I M M K R V X T Z W A L
P K U E N C G S M B U A N M P R L N E X R P T L D Q T D Y B H T A J A V F N L C R B E
L K S I N H R G M J G X E P A N B E J A R L R E N G X R M N N W H Q A Y V A E B P E E
A O W D E X T H C R K N R C R L O P Q I W N M W I F E
I ( c(2,1) , c(2,1) ) = 0.046
j=1
i=1
i=2

j=2

0.045
0.046

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
tape 1 : calculer la longueur de la cl
calculer les mots extraits c(i,j)
j [1,i], calculer I ( c(i,j) , c(i,j) )
si j [1,i], I ( c(i,j) , c(i,j) ) 0.065 alors i est trs probablement la longueur de la cl k.
c(2,2) :
H E V A M E A B A X T X E O H S Q Q Q R W V U A X O X W A B Q M Q N G F G W R X I X X
F S A T M D M T X X T I D G G S E X J L V V R U H N W W T G P X F L H S B X G L H Z W
E M J K B W J N G S L F Y H G R I Q T M V C R M D L R I G S R C R H E E T Q B I E W V
K K E A R M M B H H T D V I H C Q H W A I X R G O I K E
I ( c(2,2) , c(2,2) ) = 0.041
j=1
i=1
i=2

j=2

0.045
0.046 0.041

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
tape 1 : calculer la longueur de la cl
calculer les mots extraits c(i,j)
j [1,i], calculer I ( c(i,j) , c(i,j) )
si j [1,i], I ( c(i,j) , c(i,j) ) 0.065 alors i est trs probablement la longueur de la cl k.
c(3,1) :
C E O M R B X T B O B Q E R R U K O X A W M M G V W Z I L
P A E D G X B I N G R X E V P U D W D G H F J S F G C Z E
K J N W G G G F P G B Q A V R M G R M S W R A E A B P W
K O A E M H H K V C C O W I X M O F E
I ( c(3,1) , c(3,1) ) = 0.043
j=1
i=1
i=2
i=3

j=2

j=3

0.045
0.046 0.041
0.043

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
tape 1 : calculer la longueur de la cl
calculer les mots extraits c(i,j)
j [1,i], calculer I ( c(i,j) , c(i,j) )
si j [1,i], I ( c(i,j) , c(i,j) ) 0.065 alors i est trs probablement la longueur de la cl k.
c(5,5) = EMTXBHMRXXXBMGXXLKMGXAGLLPHTGTHFLBKKRGXHBTLMXGWHVBEAAXHKILWWGF
E
M
T
X
B
H
M
R
X
X
X
B
M
G
K
M
G
X
A
G
L
L
P
H
T
G
T
H
K
K
R
G
X
H
B
T
L
M
X
G
W
H
A
A
X
H
K
I
L
W
W
G
F
I ( c(5,5) , c(5,5) ) = 0.072
j=1
i=1
i=2
i=3
i=4
i=5

0.045
0.046
0.043
0.042
0.063

j=2

j=3

j=4

j=5

0.041
0.050 0.047 0.047
0.039 0.046 0.040
0.068 0.069 0.061 0.072

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

|k|=5

F
V

L
B

B
E

Chiffrement de Vigenre
tape 2 : calculer la cl
Calculer les indices I ( c(|k|,i) , c(|k|,j) , d), {i,j}, i,j [1,|k|] et d [0,25]
si I ( c(|k|,i) , c(|k|,j) , d) 0.065 et d [0,25] \ {d}, I ( c(|k|,i) , c(|k|,j) , d) / 0.065, alors d = kj kj
Le systme dquations rsultant permet dexprimer tous les dcalages en fonction dun seul.
Lattaque revient alors une attaque sur un chiffrement par dcalage simple. La recherche du caractre de plus
grande frquence permet de calculer le dcalage et de retrouver la cl.

d [0,25], I ( c(5,1) , c(5,2) , d) [0.025,0.052] sauf pour d = 9 (= 0.068)


d [0,25], I ( c(5,1) , c(5,3) , d) [0.024,0.056]
d [0,25], I ( c(5,1) , c(5,4) , d) [0.027,0.055]
d [0,25], I ( c(5,1) , c(5,5) , d) [0.024,0.054] sauf pour d = 16 (= 0.070)
d [0,25], I ( c(5,2) , c(5,3) , d) [0.028,0.056] sauf pour d = 13 (= 0.067)
d [0,25], I ( c(5,2) , c(5,4) , d) [0.022,0.055]
d [0,25], I ( c(5,2) , c(5,5) , d) [0.029,0.054] sauf pour d = 7 (= 0.080)
d [0,25], I ( c(5,3) , c(5,4) , d) [0.023,0.053]
d [0,25], I ( c(5,3) , c(5,5) , d) [0.025,0.056] sauf pour d = 20 (= 0.072)
d [0,25], I ( c(5,4) , c(5,5) , d) [0.024,0.055] sauf pour d = 11 (= 0.061)

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vigenre
tape 2 : calculer la cl
Calculer les indices I ( c(|k|,i) , c(|k|,j) , d), {i,j}, i,j [1,|k|] et d [0,25]
si I ( c(|k|,i) , c(|k|,j) , d) 0.065 et d [0,25] \ {d}, I ( c(|k|,i) , c(|k|,j) , d)
/ 0.065, alors d = kj kj
Le systme dquations rsultant permet dexprimer tous les dcalages en fonction dun seul.
Lattaque revient alors une attaque sur un chiffrement par dcalage simple. La recherche du caractre de plus
grande frquence permet de calculer le dcalage et de retrouver la cl.

d [0,25], I ( c(5,1) , c(5,2) , d) [0.025,0.052] sauf pour d = 9 (= 0.068)


d [0,25], I ( c(5,1) , c(5,3) , d) [0.024,0.056]
d [0,25], I ( c(5,1) , c(5,4) , d) [0.027,0.055]
d [0,25], I ( c(5,1) , c(5,5) , d) [0.024,0.054] sauf pour d = 16 (= 0.070)
d [0,25], I ( c(5,2) , c(5,3) , d) [0.028,0.056] sauf pour d = 13 (= 0.067)
d [0,25], I ( c(5,2) , c(5,4) , d) [0.022,0.055]
d [0,25], I ( c(5,2) , c(5,5) , d) [0.029,0.054] sauf pour d = 7 (= 0.080)
d [0,25], I ( c(5,3) , c(5,4) , d) [0.023,0.053]
d [0,25], I ( c(5,3) , c(5,5) , d) [0.025,0.056] sauf pour d = 20 (= 0.072)
d [0,25], I ( c(5,4) , c(5,5) , d) [0.024,0.055] sauf pour d = 11 (= 0.061)

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

k1 k2 = 9

k1 k5 = 16
k2 k3 = 13

k2 k5 = 7

k3 k5 = 20
k4 k5 = 11

Chiffrement de Vigenre
tape 2 : calculer la cl
Calculer les indices I ( c(|k|,i) , c(|k|,j) , d), {i,j}, i,j [1,|k|] et d [0,25]
si I ( c(|k|,i) , c(|k|,j) , d) 0.065 et d [0,25] \ {d}, I ( c(|k|,i) , c(|k|,j) , d) / 0.065, alors d = kj kj
Le systme dquations rsultant permet dexprimer tous les dcalages en fonction dun seul.
Lattaque revient alors une attaque sur un chiffrement par dcalage simple. La recherche du caractre de plus
grande frquence permet de calculer le dcalage et de retrouver la cl.
k1 k2 = 9
k1 k5 = 16
k2 k3 = 13
k2 k5 = 7
k3 k5 = 20
k4 k5 = 11

k2 = k1 + 17
k3 = k1 + 4
k4 = k1 5
k5 = k1 16

k2 = k1 + 17
k3 = k1 + 4
k4 = k1 + 21
k5 = k1 + 10

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

k = ( k1 , k1 + 17 , k1 + 4, k1 + 21, k1 + 10 )

Chiffrement de Vigenre
tape 2 : calculer la cl
Calculer les indices I ( c(|k|,i) , c(|k|,j) , d), {i,j}, i,j [1,|k|] et d [0,25]
si I ( c(|k|,i) , c(|k|,j) , d) 0.065 et d [0,25] \ {d}, I ( c(|k|,i) , c(|k|,j) , d) / 0.065, alors d = kj kj
Le systme dquations rsultant permet dexprimer tous les dcalages en fonction dun seul.
Lattaque revient alors une attaque sur un chiffrement par dcalage simple. La recherche du caractre
de plus grande frquence permet de calculer le dcalage et de retrouver la cl.
k1 k2 = 9
k1 k5 = 16
k2 k3 = 13
k2 k5 = 7
k3 k5 = 20
k4 k5 = 11

k2 = k1 + 17
k3 = k1 + 4
k4 = k1 5
k5 = k1 16

k2 = k1 + 17
k3 = k1 + 4
k4 = k1 + 21
k5 = k1 + 10

k = ( k1 , k1 + 17 , k1 + 4, k1 + 21, k1 + 10 )

On recherche maintenant le caractre de plus grande frquence (chiffrant E) dans lensemble des textes :
c(5,1), c(5,1)+9, c(5,1)+22, c(5,1)+5 et c(5,1)+16.
La recherche retourne N, donc k1 = N E = J.

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

k2 = J + 17
k3 = J + 4
k4 = J + 21
k5 = J + 10

k = ( J, A , N , E , T )

Chiffrement de Vigenre
On peut alors retrouver le texte clair initial :
CHREEVOAHMAERATBIAXXWTNXBEEOPHBSBQMQEQERBWRVXUOAKXAOSXXWEAHBWQIMMQMNKGRFVGXWTRZXWIAXLX
FPSKAUTEMNDCMGTSXMXBTUIADNGMGPSRELXNJELXVRVPRTULHDNQWTWDTYGBPHXTFALJHASVBFXNGLLCHRZBWE
LEKMSJIKNBHWRJGNMGJSGLXFEYPHAGNRBIEQJTAMRVLCRREMNDGLXRRIMGNSNRWCHRQHAEYEVTAQEBBIPEEWEV
KAKOEWADREMXMTBHHCHRTKDNVRICHRCLQOHPWQAIIWXNRMGWOIIFKEE

JANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJ
ANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJA
NETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJAN
ETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANE
TJANETJANETJANETJANETJANETJANETJANETJANETJANETJANETJANE
THEALMONDTREEWASINTENTATIVEBLOSSOMTHEDAYSWERELONGEROFTENENDINGWITHMAGNIFICENTEVENINGSO
FCORRUGATEDPINKSKIESTHEHUNTINGSEASONWASOVERWITHHOUNDSANDGUNSPUTAWAYFORSIXMONTHSTHEVINE
YARDSWEREBUSYAGAINASTHEWELLORGANIZEDFARMERSTREATEDTHEIRVINESANDTHEMORELACKADAISICALNEI
GHBORSHURRIEDTODOTHEPRUNINGTHEYSHOULDHAVEDONEINNOVEMBER
The almond tree was in tentative blossom. The days were longer, often ending with magnificent evenings of corrugated pink skies. The hunting
season was over, with hounds and guns put away for six months. The vineyards were busy again as the well-organized farmers treated their
vines and the more lackadaisical neighbors hurried to do the pruning they should have done in November.
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement par bloc


Contrairement la cryptographie classique, la cryptographie moderne manipule des chaines de bits (donc des
mots binaires). La cryptographie symtrique moderne utilise deux types de chiffrement manipulant des mots
binaires : le chiffrement par bloc et le chiffrement par flot.
Le chiffrement par bloc consiste en premier lieu d couper le message m en n blocs de taille constante. Les
cryptosystmes se distinguent par la longueur des blocs, leur mode dopration et le systme de chiffrement des
blocs.
Les modes doprations courants sont les suivants :
ECB : ci = ek(mi), les blocs sont chiffrs sparment les uns aprs les autres.
Deux blocs identiques seront toujours chiffrs de la mme manire.
OFB : ci = mi yi avec yi = ek(yi-1) et y0 vecteur dinitialisation alatoire.
CFB : ci = mi ek(ci-1) avec c0 vecteur dinitialisation alatoire.
CBC : ci = ek(ci-1 mi) avec c0 vecteur dinitialisation alatoire.

Dictionnaire de codes
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement par bloc


Contrairement la cryptographie classique, la cryptographie moderne manipule des chaines de bits (donc des
mots binaires). La cryptographie symtrique moderne utilise deux types de chiffrement manipulant des mots
binaires : le chiffrement par bloc et le chiffrement par flot.
Le chiffrement par bloc consiste en premier lieu d couper le message m en n blocs de taille constante. Les
cryptosystmes se distinguent par la longueur des blocs, leur mode dopration et le systme de chiffrement des
blocs.
Les modes doprations courants sont les suivants :
ECB : ci = ek(mi), les blocs sont chiffrs sparment les uns aprs les autres.
Deux blocs identiques seront toujours chiffrs de la mme manire.
OFB : ci = mi yi avec yi = ek(yi-1) et y0 vecteur dinitialisation alatoire.
CFB : ci = mi ek(ci-1) avec c0 vecteur dinitialisation alatoire.
CBC : ci = ek(ci-1 mi) avec c0 vecteur dinitialisation alatoire.

Chiffrement rtroaction de sortie


Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement par bloc


Contrairement la cryptographie classique, la cryptographie moderne manipule des chaines de bits (donc des
mots binaires). La cryptographie symtrique moderne utilise deux types de chiffrement manipulant des mots
binaires : le chiffrement par bloc et le chiffrement par flot.
Le chiffrement par bloc consiste en premier lieu d couper le message m en n blocs de taille constante. Les
cryptosystmes se distinguent par la longueur des blocs, leur mode dopration et le systme de chiffrement des
blocs.
Les modes doprations courants sont les suivants :
ECB : ci = ek(mi), les blocs sont chiffrs sparment les uns aprs les autres.
Deux blocs identiques seront toujours chiffrs de la mme manire.
OFB : ci = mi yi avec yi = ek(yi-1) et y0 vecteur dinitialisation alatoire.
CFB : ci = mi ek(ci-1) avec c0 vecteur dinitialisation alatoire.
CBC : ci = ek(ci-1 mi) avec c0 vecteur dinitialisation alatoire.

Chiffrement rtroaction
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement par bloc


Contrairement la cryptographie classique, la cryptographie moderne manipule des chaines de bits (donc des
mots binaires). La cryptographie symtrique moderne utilise deux types de chiffrement manipulant des mots
binaires : le chiffrement par bloc et le chiffrement par flot.
Le chiffrement par bloc consiste en premier lieu d couper le message m en n blocs de taille constante. Les
cryptosystmes se distinguent par la longueur des blocs, leur mode dopration et le systme de chiffrement des
blocs.
Les modes doprations courants sont les suivants :
ECB : ci = ek(mi), les blocs sont chiffrs sparment les uns aprs les autres.
Deux blocs identiques seront toujours chiffrs de la mme manire.
OFB : ci = mi yi avec yi = ek(yi-1) et y0 vecteur dinitialisation alatoire.
CFB : ci = mi ek(ci-1) avec c0 vecteur dinitialisation alatoire.
CBC : ci = ek(ci-1 mi) avec c0 vecteur dinitialisation alatoire.

Enchainement des blocs


Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement par bloc


Contrairement la cryptographie classique, la cryptographie moderne manipule des chaines de bits (donc des
mots binaires). La cryptographie symtrique moderne utilise deux types de chiffrement manipulant des mots
binaires : le chiffrement par bloc et le chiffrement par flot.
Le chiffrement par bloc consiste en premier lieu d couper le message m en n blocs de taille constante. Les
cryptosystmes se distinguent par la longueur des blocs, leur mode dopration et le systme de chiffrement des
blocs.
Les modes doprations courants sont les suivants :
ECB : ci = ek(mi), les blocs sont chiffrs sparment les uns aprs les autres.
Deux blocs identiques seront toujours chiffrs de la mme manire.
OFB : ci = mi yi avec yi = ek(yi-1) et y0 vecteur dinitialisation alatoire.
CFB : ci = mi ek(ci-1) avec c0 vecteur dinitialisation alatoire.
CBC : ci = ek(ci-1 mi) avec c0 vecteur dinitialisation alatoire.

Image originale

Chiffrement en ECB

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement en CBC

Chiffrement par bloc


Le cur de lalgorithme de chiffrement par bloc est son systme de chiffrement des blocs. La majorit des
algorithmes actuels ont une structure en rseau de Feistel.
Feistel a dcouvert dans les annes 50 comment gnrer partir dune cl secrte courte (par rapport au message
chiffrer) un message pseudo-alatoire, cest--dire comment construire une fonction bijective pseudo-alatoire.
Il sagit en fait de transformer une fonction pseudo-alatoire non ncessairement bijective en une fonction bijective,
ce que permet un rseau de Feistel.
La dfinition dun rseau de Feistel inclut :
une longueur de bloc paire 2l
un nombre de rondes n
un gnrateur de sous-cls g tel que g(k) = (k1,,kn) avec |ki| = l
une fonction f : {0,1}l {0,1}l {0,1}l non ncessairement bijective.
Les algorithmes de chiffrement clef secrte DES (chiffrement standard
jusquen 2001) et Blowfish (un des chiffrements les plus utiliss
actuellement) sont bass sur les rseaux de Feistel.

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement de Vernam
Scurit inconditionnelle : la connaissance du message chiffr napporte aucune information sur le message clair.
Dans un cryptosystme inconditionnellement sr, tout message chiffr doit pouvoir tre le chiffrement de tout
message clair. Tous les cryptosystmes bass sur la rptition de la cls ne sont pas inconditionnellement srs.
Le chiffrement de Vernam (ou masque jetable) est le seul qui possde un degr de scurit absolu. Il possde
dimportantes difficults de mise en uvre bien quil soit extrmement simple par dfinition.
Le chiffrement de Vernam consiste additionner (oprateur XOR : ) au message clair m une cl k telle que :
|k| |m|
k soit gnre alatoirement et spcifiquement.
Mme une attaque exhaustive sur lensemble des cls ne pourra donner dinformation sur le contenu du message
clair.
Les difficults de mise en uvre sont les suivantes :
pour que le systme soit inconditionnellement sr, la cl ne doit jamais pouvoir tre intercepte (donc vhiculer
dans une valise diplomatique)
la mme cl ne doit pas tre utilise pour chiffrer deux messages
si c1 = m1 k et c2 = m2 k, alors c1 c2 = m1 m2
la cl doit thoriquement tre gnre de manire purement alatoire (impossible)

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Chiffrement par flot


Le chiffrement par flot reprend le concept du chiffrement de Vernam sans imposer ses proprits de scurit
inconditionnelle. Typiquement, le fonctionnement dun algorithme de chiffrement par flot est le suivant :
Lors du chiffrement, on choisit (ou gnre pseudo-alatoirement) un vecteur dinitialisation quelconque v
Lalgorithme public gnre une suite pseudo-alatoire s de la longueur du message clair m partir de v et
dune cl prive k
Le message se chiffre simplement en c = m s
Lmetteur envoie v avec le message chiffr c
Le rcepteur doit alors connatre k pour dchiffrer c avec le vecteur dinitialisation v.
Contrairement au chiffrement de Vernam, le chiffrement par flot nest pas inconditionnellement sr.

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Cryptographie cl publique
La cryptographie cl publique (invente en 1976 par Diffie et Hellman) permet le partage dinformation chiffre
via des voies non ncessairement scurises. Ce schma permet de remdier au principal inconvnient des
chiffrements cl prive.

Cl Publique

Cl Publique

Algorithme
asymtrique

Donnes
en clair

Cl Prive

Algorithme
asymtrique

Donnes
chiffres

Donnes
chiffres

Donnes
en clair

Mettre en pratique ce schma ncessite dutilier une fonction de chiffrement sens unique brche secrte.
Une fonction sens unique est une fonction f : A B telle que le calcul de f est dit facile et le calcul de f-1 difficile.
Une fonction sens unique f admet pour brche secrte une information k le calcul de f-1 sachant k est facile.
Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

RSA
Le systme RSA, invent en 1977 par Rivest, Shamir et Adleman (suite leurs travaux entams pour montrer la
vulnrabilit du protocole de Diffie-Hellman, et de tout cryptosystme cl publique par extension), utilise
larithmtique modulaire (exponentiation modulaire) pour produire des fonctions sens unique brche secrte.
RSA est bas sur :
la simplicit de multiplier des grands nombres (plus de 100 chiffres)
limpossibilit actuelle de factoriser dans le cas gnral des nombres de plus de 200 chiffres
la dcomposition des nombres en facteurs premiers est NP-complet

Thorme (RSA) :
Soient p et q deux nombres premiers. On pose n = p q.
Si e est un entier premier avec (p 1) (q 1), alors il existe un entier d positif,
tel que z d = 1 mod (p 1) (q 1), et, pour cet entier d et un entier a quelconque : aed = a mod n.

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

RSA
Avant le chiffrement :
Choisir deux grands nombres premiers distincts, p et q
Calculer le module de chiffrement n = p q, et son indicatrice dEuler z = (n) = (p 1) (q 1)
Choisir un nombre e (exposant de chiffrement) tel que e et z soient premiers entre eux
Trouver d (exposant de dchiffrement) tel que e d = 1 mod z (d peut tre choisi et e dduit).
Chiffrement dun message M (considr comme une chaine de bits) :
Dcomposer M en blocs (sous-messages) m tels que m < n
Dcomposition en messages de k bits avec k le plus grand entier tel que 2k < n

Pour chiffrer m, calculer c = me mod n


Pour dchiffrer c, calculer m = cd mod n
La cl publique est (e,n), et la cl prive est d (plus exactement (d,n)).
Cryptanalyse :
La factorisation de n permet de retrouver p et q, donc z = (p 1) (q 1)
z et e permettent de retrouver d par lalgorithme dEuclide, donc m connaissant c.
Mais factoriser un nombre est un problme NP-complet (1025 annes pour un nombre de 500 chiffres).

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

RSA
Avant le chiffrement :
Choisir deux grands nombres premiers distincts, p et q
Calculer le module de chiffrement n = p q, et son indicatrice dEuler z = (n) = (p 1) (q 1)
Choisir un nombre e (exposant de chiffrement) tel que e et z soient premiers entre eux
Trouver d (exposant de dchiffrement) tel que e d = 1 mod z (d peut tre choisi et e dduit).
Chiffrement dun message M (considr comme une chaine de bits) :
Dcomposer M en blocs (sous-messages) m tels que m < n
Dcomposition en messages de k bits avec k le plus grand entier tel que 2k < n

Pour chiffrer m, calculer c = me mod n


Pour dchiffrer c, calculer m = cd mod n

Exemple
p = 3, q = 11
n = 33, z = 20
d = 7, e = 3

La cl publique est (e,n), et la cl prive est d (plus exactement (d,n)).

M = ZORRO = (25,14,17,17,14)
Calcul des me = m3 : (15625,2744,4913,4913,2744)
Calcul des c = m3 mod 33 (16,5,29,29,5)

C = (16,5,29,29,5)
cd = c7 : (268435456,78125,17249876309,17249876309,78125)
Calcul des m = c7 mod 33 (25,14,17,17,14) = ZORRO

quivalent un chiffrement monoalphabtique car 33 = 1 26 + r (en pratique, un bloc contient 1024 bits soit 128 caractres)

Cours Scurit Cryptologie M2 CDSII adrien.goeffon@univ-angers.fr

Vous aimerez peut-être aussi