Vous êtes sur la page 1sur 33

Réseau Avancé

Chapitre3 : Cryptographie et sécurité des


Réseaux
Introduction
❑ Depuis fort longtemps, les hommes ont tenté de rendre sécuritaires leurs
communications confidentielles. Différentes techniques ont été utilisées.

❑ Au début, il s’agissait seulement de cacher l’existence du message. Cette


technique s’appelle la stéganographie.

❑ Puis, des techniques de plus en plus sophistiquées furent utilisées pour


rendre les messages compréhensibles seulement par leurs destinataires
légitimes.

❑ Tout au cour de l’histoire, une difficile bataille eut lieu entre les
constructeurs de code (cryptographes) et ceux qui essayaient de les
briser (les cryptanalystes). Il n’est toujours pas clair, même aujourd’hui,
qui sera le vainqueur.

2
Stéganographie

❑ Le plus ancien exemple de stéganographie a été rapporté par


Hérodote. C’était lors du conflit entre la Grèce et la Perse au 5ième
siècle av. J.-C.

❑ Les Perses voulaient conquérir la Grèce et avaient préparé pendant


5 années une imposante armée. Heureusement pour les Grecques,
Damaratus, un Grec exilé en Perse eu vent de ce projet.

❑ Il inscrivit son message sur des tablettes de bois et les recouvrit de


cire. Les tablettes avaient donc l’air vierges. Elles n’attirèrent pas
l’attention des gardes tout au long du parcours.

❑ Les Grecques, une fois mis au courant de l’attaque perse à venir,


eurent le temps de se préparer et lors de l’attaque, ils mirent l’armé
perse en déroute.

3
Stéganographie

❑ Hérodote rapporte aussi l’histoire d’Histaïaeus qui, pour transmettre un


message, rasa la tête de son messager et inscrivit le message sur son
crane. Une fois les cheveux repoussés, le messager put circuler sans
attirer l’attention.

❑ Durant la Deuxième Guerre mondiale, les Allemands utilisaient la


technique du micropoint. Il s’agit de photographier avec un microfilm le
document à transmettre. La taille du microfilm était de moins d’un
millimètre de diamètre. On plaçait le micropoint à la place du point final
d’une lettre apparemment anodine.

❑ En 1941, le FBI repéra le premier micropoint. De nombreux messages


furent par la suite interceptés.

4
Chiffrement de César

➢ Cette technique simple de chiffrement effectuant un


décalage est appelé chiffrement de César.

❑ Par exemple, avec un décalage de trois, mon nom


devient
ALAIN TAPP = DODLQCWDSS
(On décale aussi les espaces…)

➢ Cette technique de chiffrement est-elle sécuritaire?

5
Chiffrement de César

❑ On intercepte le message
FAGEMYREMPURZV_EMZR_R FMNMDAZR
➔ Essayons différents décalages…

1: E_FDLXQDLOTQYUZDLYQZQZELMLC_YQ
2: DZECKWPCKNSPXTYCKXPYPYDKLKBZXP
3… 4… 5… 6… 7… 8… 9… 10… 11… 12…
13: TOUS_LES_CHEMINS_MENENT_A_ROME

➔ Clairement, le chiffrement de César n’est pas


sécuritaire.

6
Substitution mono-alphabétique

❑ Essayons autre chose.


_ABCDEFGHIJKLMNOPQRSTUVWXYZ
RDOHXAMTC_BKPEZQIWNJFLGVYUS

TOUS_LES_CHEMINS_MENENT_A_ROME devient
FQLJRPAJRHCAE_ZJREAZAZFRDRNQEA

❑ Le décodage devrait être plus difficile. Peut-on


essayer tous les décodages possibles?

Il y a 27!=10 888 869 450 418 352 160 768 000 000
possibilités…
7
Substitution mono-alphabétique
❑ La substitution mono-alphabétique apparaît déjà dans le kàma-sùtra qui fut
écrit au 5ième siècle mais qui est basé sur des écrits datant du 4ième siècle
av. J.-C.

❑ Le premier usage révélé de chiffrement par substitution dans un usage


militaire est rapporté par Jules César dans La guerre des Gaules. César
utilisait fréquemment le chiffrement et en particulier le décalage de trois
caractères.

❑ La substitution mono-alphabétique fut la technique de chiffrement la plus


utilisée durant le premier millénaire. Nombreux savants de l’antiquité
tenaient cette technique pour inviolable.

❑ Ce sont les Arabes qui réussirent à briser ce code et qui inventèrent la


cryptanalyse au 9ième siècle.

8
Exemple

BQPSNRSJXJNJXLDPCLDLPQBE_QRKJXHNKPKSJPJIKSPUNBDKIQRB
KPQPBQPZITEJQDQBTSKPELNIUNPHNKPBKPCKSSQWKPSLXJPSNV
VXSQCCKDJPBLDWPXBPSNVVXJPGKPJKDXIPZLCEJKPGKSPSJQJXSJX
HNKSPGPLZZNIIKDZKPGKSPGXVVKIKDJKSPBKJJIKS

➢ Comment déchiffrer ce message?


❑ Chaque lettre est chiffrée de la même façon…

❑ Certaines lettres sont utilisées plus souvent.

9
Occurrence des lettres
En français Dans le cryptogramme
_ 19.3 L 4.7 H 0.8 P 14.3 D 4.6 W 1.0
E 13.9 O 4.1 G 0.8 K 12.8 L 4.1 U 1.0
A 6.7 D 2.9 B 0.6 S 9.2 V 3.1 T 1.0
S 6.3 P 2.5 X 0.4 J 9.2 Z 2.6 _ 0.5
I 6.1 C 2.4 Y 0.3 X 5.6 G 2.6 O 0.0
T 6.1 M 2.1 J 0.3 Q 5.6 C 2.6 M 0.0
N 5.6 V 1.3 Z 0.1 N 5.6 E 2.0 F 0.0
R 5.3 Q 1.3 K 0.0 B 5.1 R 1.5 A 0.0
U 5.2 F 0.9 W 0.0 I 4.6 H 1.5 Y 0.0

10
Exemple
Remplaçons P par _ et K par E
BQ_SNRSJXJNJXLD_CLDL_QBE_QREJXHNE_ESJ_JIES_UNBDEIQRBE
_Q_BQ_ZITEJQDQBTSE_ELNIUN_HNE_BE_CESSQWE_SLXJ_SNVVX
SQCCEDJ_BLDW_XB_SNVVXJ_GE_JEDXI_ZLCEJE_GES_SJQJXSJXHN
ES_G_LZZNIIEDZE_GES_GXVVEIEDJES_BEJJIES

Remplaçons Q par A et B par L

LA_SNRSJXJNJXLD_CLDL_ALE_AREJXHNE_ESJ_JIES_UNLDEIARLE_A
_LA_ZITEJADALTSE_ELNIUN_HNE_LE_CESSAWE_SLXJ_SNVVXSACC
EDJ_LLDW_XL_SNVVXJ_GE_JEDXI_ZLCEJE_GES_SJAJXSJXHNES_G_
LZZNIIEDZE_GES_GXVVEIEDJES_LEJJIES

11
Exemple

Remplaçons S par S et G par D


LA_SNRSJXJNJXLD_CLDL_ALE_AREJXHNE_ESJ_JIES_UNLDEIARLE_A
_LA_ZITEJADALTSE_ELNIUN_HNE_LE_CESSAWE_SLXJ_SNVVXSACC
EDJ_LLDW_XL_SNVVXJ_DE_JEDXI_ZLCEJE_DES_SJAJXSJXHNES_D_L
ZZNIIEDZE_DES_DXVVEIEDJES_LEJJIES

Remplaçons J par T et I par R

LA_SNRSTXTNTXLD_CLDL_ALE_ARETXHNE_EST_TRES_UNLDERARL
E_A_LA_ZRTETADALTSE_ELNRUN_HNE_LE_CESSAWE_SLXT_SNVVX
SACCEDT_LLDW_XL_SNVVXT_DE_TEDXR_ZLCETE_DES_STATXSTXH
NES_D_LZZNRREDZE_DES_DXVVEREDTES_LETTRES

12
Exemple

Remplaçons X par I, H par Q et N par U


LA_SURSTITUTILD_CLDL_ALE_ARETIQUE_EST_TRES_UULDERARLE_
A_LA_ZRTETADALTSE_ELURUU_QUE_LE_CESSAWE_SLIT_SUVVISAC
CEDT_LLDW_IL_SUVVIT_DE_TEDIR_ZLCETE_DES_STATISTIQUES_D_
LZZURREDZE_DES_DIVVEREDTES_LETTRES

Remplaçons V par F et D par N

LA_SURSTITUTILN_CLNL_ALE_ARETIQUE_EST_TRES_UULNERARLE_
A_LA_ZRTETANALTSE_ELURUU_QUE_LE_CESSAWE_SLIT_SUFFISAC
CENT_LLNW_IL_SUFFIT_DE_TENIR_ZLCETE_DES_STATISTIQUES_D_
LZZURRENZE_DES_DIFFERENTES_LETTRES

13
Exemple
Remplaçons R par B et L par O

LA_SUBSTITUTION_CONO_ALE_ARETIQUE_EST_TRES_UULNERABLE
_A_LA_ZRTETANALTSE_EOURUU_QUE_LE_CESSAWE_SOIT_SUFFIS
ACCENT_LONW_IL_SUFFIT_DE_TENIR_ZOCETE_DES_STATISTIQUES
_D_OZZURRENZE_DES_DIFFERENTES_LETTRES

Finalement

LA_SUBSTITUTION_MONO_ALPHABETIQUE_EST_TRES_VULNERABL
E_A_LA_CRYPTANALYSE_POURVU_QUE_LE_MESSAGE_SOIT_SUFFIS
AMMENT_LONG_IL_SUFFIT_DE_TENIR_COMPTE_DES_STATISTIQUE
S_D_OCCURRENCE_DES_DIFFERENTES_LETTRES

14
Le chiffre indéchiffrable

❑ Au 16ième siècle, on brisait les codes de façon routinière. La balle était dans le
camp des cryptographes. Vigenère inventa un code simple et subtile. Il s'agit
d’une amélioration du chiffre par décalage. On choisit un mot de code par
exemple ALAIN et on l’utilise pour chiffrer.

ALAIN=1,12,1,9,14
ALAINALAINALAINALAINALAINALAINALAINALAINA
LE_CODE_DE_VIGENERE_EST_IL_INDECHIFFRABLE
MQALBEQAMSAGJPSOQSNNFDUIWMLJWRFOIRTGCBKZF

❑ Clairement, une attaque statistique simple ne fonctionnera pas. Si le mot de


code est suffisamment long (une phrase), essayer toutes les clefs est aussi
impossible.

➢ Le chiffre de Vigenère est-il indéchiffrable?

15
Briser le chiffre indéchiffrable!

❑ Les cryptanalystes furent déjoués


pendant près de 3 siècles par le chiffre
de Vigenère.

❑ Au 19ième siècle, Charles Babbage


réussit à le briser.

❑ La technique est relativement simple.

16
Cryptage Symétrique
• Utiliser une même clé secrète K pour chiffrer et
déchiffrer
• But : garantir la confidentialité

Clé = K B
A

Canal sécurisé et
Message M authentifié
C M=Dec K (C)
C=EncK(M)
Canal non sécurisé

17
Cryptage Symétrique

• Méthode:
- Le message M à chiffrer est scindé en un nombre de bloc
de taille fixe: M=x
1 2
, x ,n ..x
- Cryptage des blocs
- Le cryptogramme C est obtenu en concaténant
les cryptogrammes des blocs

• Modes de chiffrement par


- ECB (Electronic CodeBook)
- CBC( Cipher bloc Chaining)
- CBF (Cipher FeedBack)
- OFB (Output FeedBack)
18
ECB
Chaque bloc est chiffré à part

19
CBC
Chaque bloc du cryptogramme dépend du bloc de texte e
clair et de tous les blocs précédents

20
Chiffrement symétrique : critique
• Comment établir la clé K d'une manière sécurisée (confidentialité)?
- Solution 1 : Key transport
l'un crée la clé et la transmet à l'autre (chiffrement asymétrique)
- Solution 2 : Key agreement
une clé partagée est dérivée par 2 entités ou + (protocole de DH)
• Comment mettre à jour la clé K ?
- Clé de session : temporaire
- Clé à long terme
Besoin de N(N-1) clés pour N utilisateurs => trop de clés
==> Sol : utiliser un centre de distribution de clé (KDC)
Chaque entité partage une clé avec le centre ( qui connaîtra toutes)
K1S S (KDC)
K2S KnS 21
U1 …... Un
U2
Introduction et Généralité
❑ Bob souhaitent communiquer en privé

❑ Eve, une oreille indiscrète, souhaite savoir ce qu'Alice et Bob disent Alice
envoie un message spécifique x, écrit en binaire, a son ami Bob :
✓ Alice encode le message en E(x) et l'envoie
✓ Bob applique une fonction de décryptage D(.) pour le décoder :
D(E(x)) = x
✓ Eve va intercepter e(x) : par exemple, elle peut être un ≪ sniffer ≫
sur le réseau

❑ Dans l'idéal, la fonction d'encryptage e est choisie de façon a ce que sans


connaitre D(.), Eve ne puisse rien tirer de l'information qu'elle a
interceptée
✓ la connaissance de E(x) ne dit rien sur ce que x pourrait être
❑ Une fonction d'encryptage E : <messages> ➔ <messages encryptes> doit
être inversible -afin de rendre le décryptage possible- et est donc une
bijection. Son inverse est la fonction de décryptage D(.).

22
Algorithmes de chiffrement
❑ Cryptographie symétrique (ou a clé privé) :

✓ Les clés de cryptage et de décryptage sont identiques

✓ Expéditeur et destinataire possèdent tous deux la clef du


coffre qui contient le message et qui fait la navette entre
les deux.

❑ Cryptographie asymétrique (ou a clé publique)


✓ Les clés de cryptage et de décryptage sont distinctes

✓ L'expéditeur a une clef pour fermer le coffre, et le


destinataire une clef distincte, qu'il est le seul à posséder
et qui permet d'ouvrir ce coffre. La clef de fermeture ne
permet d'ouvrir le coffre. Elle est publique.
23
Symétrique Vs. Asymétrique
❑ Limitation: Pas d'intégrité et d'identification de l'auteur

❑ Si Alice, Bob et Cédric partage le même lien de communication alors ils


partagent la même clé de chiffrement symétrique.

24
Cryptage Asymétrique (1)
❑ Utilisation d’une paire de clés:
– Publique: Connue par tout le monde, utilisée généralement pour crypter ou
vérifier la signature des messages
– Privée: Connue uniquement par le détenteur, utilisée pour décrypter et
signer des messages

❑ Impossible de trouver la clé privée à partir de la clé publique


❑ Exemples: RSA, Diffie-Hellman, El Gamal
❑ Généralement dix fois plus lent que le cryptage symétrique
❑ Utilisé généralement pour
– Cryptage / décryptage: assurer la confidentialité.
– Signature numérique: assurer l’authentification et la non répudiation.
– Distribution de clés: se mettre d’accord sur une clé de session.

❑ Clés à grande taille (ex: RSA: 1024-2048-…)

25
Cryptage asymétrique (2)

26
Algorithme RSA
❑ Étapes
1. Sélectionner deux entiers premiers entre eux « p » et « q »
2. Calculer n = p x q
3. Calculer φ(n)=(p-1)(q-1)
4. Sélectionner « e » tel que: pgcd(φ(n),e)=1 ; 1<e<φ(n)
▪ En général « e » est un entier de petite taille.
5. Calculer d=e-1 mod φ(n). En d’autre terme: d.e = 1 mod (φ(n))
6. Clé publique: Kpu={e,n}
7. Clé privée Kpr = {d,n}

❑ Pour crypter un message M < n, l’émetteur:


– Obtient une clé publique du récepteur et calcule « C= Me mod n »

❑ Pour décrypter un message crypté C le récepteur


– Utilise sa clé privée et calcule « M = Cd mod n »

27
Exemple 1 :

▪ p = 17, q = 11, n = p x q= 187


▪ (n) = 16 x 10 =160,
▪ Choisir e = 7,
▪ d.e =1 (mod (n)) ➔ d = 23

28
Rappel (1)

❑ A mod B est le reste de la division entière de A par B


❑ La multiplication et le modulo :
➔ (A mod B) (C mod B) = A * C mod B

❑ L'exponentielle et le modulo
➔ an mod m = (a mod m)n mod m
❑ Pierre Fermat :
Si on utilise un nombre premier comme module, alors quand on élève un
nombre à la puissance (nombre premier -1), on obtient 1
✓ Pour n'importe quel nombre m et pour p premier :
➔ m( p – 1 ) mod p = 1
✓ Exemple : 7 10 mod 11 = 1 …pas besoin de calcul car 11 est premier

29
Rappel (2)

❑ Leonhard Euler :
✓ Lorsqu'on utilise un module comme étant le produit de deux nombres
premiers on a :
Soit n = p * q, avec p et q premiers, et quelque soit m
➔ m( p – 1 ) ( q – 1 ) mod n = 1

✓ Exemple : soit p = 11 et q = 5, n = 55 et (p – 1)(q – 1) = 10 * 4 = 40


38 40 mod 55 = 1

✓ Si on manipule le résultat d'Euler en multipliant par m l'équation :


➔ m * m( p – 1 ) ( q – 1 ) mod n = m
➔ m( p – 1 ) ( q – 1 ) + 1 mod n = m

30
Exemple 2
❑ Soient deux nombres premiers au hasard: p = 29, q = 37, on calcule n = pq =
29 * 37 = 1073

❑ On doit choisir e au hasard tel que e n'ai aucun facteur en commun avec (p-
1)(q-1):
(p-1)(q-1) = (29-1)(37-1) = 1008

❑ On prend e = 71

❑ On choisit d tel que 71*d mod 1008 = 1, on trouve d = 1079

➔ la clé publique est (e,n) = (71,1073) (=clé de chiffrement)

➔ la clé privée est (d,n) = (1079,1073) (=clé de déchiffrement)

31
Exemple 2 (2)
❑ Chiffrement du message 'HELLO'.

✓ On prend le code ASCII de chaque caractère et on les met bout à bout:


m = 7269767679

✓ Il faut découper le message en blocs qui comportent moins de chiffres


que n

✓ n comporte 4 chiffres, on découpe notre message en blocs de 3 chiffres:


726 976 767 900 (on complète avec des zéros)

✓ On chiffre chacun de ces blocs :


– 726^71 mod 1073 = 436
– 976^71 mod 1073 = 822
– 767^71 mod 1073 = 825
– 900^71 mod 1073 = 552

✓ ➔ Le message chiffré est 436 822 825 552.

Chapitre 3 : Cryptage Asymétrique


32
Exemple

❑ Complexité algorithmique de la méthode:


✓ recherche de nombres premiers de grande taille, et choix de
clés très longue
✓ Réalisation des opérations modulo n

❑ Problème d’implémentation sur les équipements disposants de


faible puissance de calcul (ex: cartes bancaire, stations mobiles,
etc.)
❑ La méthode est officiellement sûre si des contraintes de longueur
des clés et d’usage sont respectées.

❑ ➔ Solution: Utilisation de RSA pour l’échange des clés secrètes


de session d'un algorithme symétrique à clés privées.

33