Vous êtes sur la page 1sur 46

Introduction à la cryptographie

F.HACHOUF 2020 1
PLAN

1.Introduction ( Problèmes de sécurité des échanges


, Historique , Principe général)
2. Cryptographie à clé secrète ( symétrique )

3. Cryptographie à clé publique ( asymétrique )


4. Fonction de hachage et signature numérique
5.Certificat numérique et PKI

2 2
F.HACHOUF 2020
Objectifs

• Comprendre le principe de la cryptographie moderne .

• Comprendre le principe de la cryptographie symétrique et


asymétrique

• Comprendre le principe de SSL /TLS et OpenSSL

• Comprendre le principe de la signature numérique

• Comprendre le principe des certificats numériques et les PKI

F.HACHOUF 2020 3
Introduction
• Avant , l’environnement de l’entreprise était :
–Centralisé
–Avec des échanges en papiers
–Et pas d’accès distant.
–Une relation de confiance est établie entre l’entreprise et ses
collaborateurs
• Aujourd’hui , avec l’utilisation des réseaux informatiques :
–C’est un environnement distribué sur plusieurs sites ,
–Avec des accès distants,
–Des échanges de documents numériques,
–Utilisation d’Internet
–Difficile de maintenir la relation de confiance .

F.HACHOUF 2020 4
Environnement de l’entreprise

Internet

Les échanges ne sont plus sûrs !!!!!!!! 5


F.HACHOUF 2020
Problèmes de Sécurité des échanges sur Internet

• Les problèmes de sécurité des échanges sont dus à des failles


notamment dans les protocoles de communication (exemple :
ftp et telnet )
• Toute information circulant sur Internet peut être capturée et
enregistrée .
• Toute information circulant sur Internet peut être capturée
et modifiée .
• Toute personne ou machine peut engendrer une fausse
identification .
• Toute personne ou machine peut nier l’envoi ou la
réception d’une donnée .

F.HACHOUF 2020 6
Besoins de sécurité des échanges sur Internet
• Pour assurer la sécurité des échanges sur Internet il faut utiliser
un mécanisme qui permet :
– La Confidentialité : Consiste à empêcher qu’un tiers intercepte les
données confidentielles échangées durant une session .

– L’ Intégrité  : Consiste à empêcher toute modification non autorisée des


données.

– L’ Authentification : Consiste à vérifier l’identité de l’utilisateur ou de


la machine qui veut accéder à un système informatique.

– Non répudiation  : consiste à garantir qu’un correspondant ne puisse


nier qu’un message lui a été envoyé ou il a envoyé lui-même un message.
Pour sécuriser les échanges et répondre à ces besoins
utiliser la cryptographie .
F.HACHOUF 2020 7
Définition de la cryptographie

• Le mot cryptographie vient du grec :


• kryptos (caché)

• et graphein (écrire) .

• La cryptographie est la science d’écriture et de lecture des messages codés .

• La cryptographie est une science mathématique permettant d’effectuer des

opérations sur un texte clair afin d’assurer une ou plusieurs propriétés de la

sécurité de l’information ( authentification , confidentialité , intégrité et non

répudiation ).

F.HACHOUF 2020 8
Définition de la cryptographie

• Afin de protéger un message, on lui applique une transformation qui le rend


incompréhensible, c’est ce qu’on appelle chiffrement ou cryptage.

• Inversement, le déchiffrement ou décryptage est l’action qui permet de


reconstituer le texte en clair à partir du texte chiffré.

• Cryptanalyse : la science permettant d’étudier les systèmes


cryptographiques en vue de les tester ou de les casser ( trouver des failles )

• Cryptologie : la science qui regroupe la cryptographie et la cryptanalyse.

• La cryptographie est un élément de base de la sécurité informatique.

F.HACHOUF 2020 9
Schéma d’un système de cryptographie

Chiffrement Déchiffrement
Texte en clair Texte chiffré Texte en clair

•M : suite de caractères (message)


•Fonction ( algorithme )de chiffrement
• E(M)=C
•Fonction (algorithme )de déchiffrement
• D(C)=M
•On doit avoir D(E(M))=M

F.HACHOUF 2020 10
Bref Historique
• La cryptographie a été utilisée avant l’avènement de l’informatique et elle
s’est développée plus pendant les guerres !!!!!!!!!!!!!!
• 50 av. JC. : Julius Cesar utilise une simple substitution de l’alphabet pour les
communications .
• 1918 : Gilbert Vernam, mathématicien américain, inventa le one-time pad,
l’algorithme de chiffrement le plus sûr jusqu’à aujourd'hui, mais
impraticable
• 1923 : Dr. Albert Scherbius, hollondais résidant en Allemagne, met au point
la machine Enigma qui sert à encoder des messages.
• 1925 : La marine de guerre allemande reprend le projet Enigma .
• 1937 : Enigma M3 est adoptée par la Wehrmacht, l’armée allemande
• 1939 : début de la seconde guerre mondiale, où des milliers de scientifiques
britanniques, polonais et français travaillaient pour solutionner Enigma, et
les milliers de messages chiffrés. L’équipe de Alan Turing trouva la
solution

F.HACHOUF 2020 11
Bref Historique
•1976 : IBM publie un algorithme de chiffrement nommé le DES (Data
Encryption Standard)
•1976 : Whitfield Diffie et Martin Hellman introduisent l’idée d’un système à
clé publique
•1978 : l’algorithme de chiffrement à clé publique RSA est publié par Rivest,
Shamir et Adleman
•1991 : Phil Zimmermann rend disponible sa première version de PGP
•1992 : MD5 est développé par Ronald L. Rivest
•1994 : Ron Rivest, déjà auteur de RC2 et RC4, publie RC5
•2000 : Rijndael devient l’AES, le standard du chiffrement avancé

F.HACHOUF 2020 12
Types de cryptographie

• On distingue la cryptographie ancienne et la cryptographie


moderne
• La cryptographie ancienne :
• Les algorithmes utilisés sont secrets .

• La cryptographie moderne :
• Les algorithmes sont connus par tout le monde.
• La sécurité repose uniquement sur le secret d’une clé ( donnée utilisée par
l’algorithme pour le chiffrement ) .
F(message , clé )= MessageCrypté

F.HACHOUF 2020 13
La cryptographique ancienne

• La cryptographie ancienne utilise une paire de fonctions


( algorithmes ) pour le chiffrement et le déchiffrement.

• Les algorithmes sont secrets


• La conception d'un tel algorithme nécessite des experts.
• On ne peut pas utiliser des algorithmes commerciaux
• Différents algorithmes pour différents utilisateurs.
• Pratiquement , elle n’est plus utilisée.

F.HACHOUF 2020 14
La cryptographique moderne

• Dans la cryptographie moderne, les algorithmes


cryptographiques dépendent d’un paramètre appelé clé.
• Le secret réside dans la (ou les) clé(s) et non dans les détails de
l'algorithme.

K1 K2

M C M
Chiffrement Déchiffrement

E (M,K1)=C
D(C,K2)=M

Si on ne connaît pas la clé K2 on ne pourra pas décrypter le


message F.HACHOUF 2020 15
Clés cryptographiques

• La valeur de la clé K provient d'un grand ensemble de valeurs


possibles (espace des clés )  plus l’espace des clés est grand plus
l’algorithme est sûr .

• Par exemple , si la clé est sous forme binaire sur n bits alors  2n
possibilités ).
• Si on ne connaît pas la clé il faut essayer 2 n combinaisons pour
pouvoir décrypter le message .

• En général on a besoin de deux clés


• K1 : pour le chiffrement
• K2 : pour le déchiffrement

• Pour le chiffrement E (M,K1)=C


• Et pour le déchiffrement D(C,K2)=M

F.HACHOUF 2020 16
Deux types d'algorithmes de
chiffrement moderne
• Algorithmes à clé secrète ( symétriques )
• On a K1=K2
• K1 doit être secrète
Pour le chiffrement E (M,K1)=C Et pour le déchiffrement D(C,K1)=M

• Algorithmes à clé publique ( asymétriques )


• K1K2
• K2 ne peut pas être calculée à partir de K1
• K1 peut être publique
• K2 doit être secrète (clé privée)

Pour le chiffrement E (M,K1)=C Et pour le déchiffrement


D(C,K2)=M

F.HACHOUF 2020 17
Emplacement de la cryptographie dans le modèle
OSI

7 Application : pgp , md5, https


, imaps ,….
6 Présentation

5 Session : SSH

4 Transport : SSL/TLS

3 Réseau : IPsec

2 Liaison de données : L2TP

1 Physique

F.HACHOUF 2020 18
• Le modèle OSI (de l'anglais Open Systems Interconnection) est une
norme de communication, en réseau, de tous les systèmes
informatiques. C'est un modèle de communications entre ordinateurs
proposé par l'ISO (International Organization for Standardization en
français Organisation Internationale de Normalisation) qui décrit les
fonctionnalités nécessaires à la communication et l'organisation de ces
fonctions.

F.HACHOUF 2020 19
SSL (Secure Socket Layer)
• Le protocole SSL (Secure Socket Layer) a été développé par la
société Netscape Communications Corporation pour permettre
aux applications client/serveur de communiquer de façon
sécurisée.
• TLS (Transport Layer Security) est une évolution de SSL
réalisée par l’IETF.

• Il assure trois garanties cryptographique:

• L’authentification

• La confidentialité

• L’intégrité
F.HACHOUF 2020 20
SSL et la pile TCP/IP
• SSL est un protocole qui s’intercale entre TCP/IP et les
applications qui s’appuient sur TCP.

Couche Application
SSL
Couche transport

Couche Internet

Couche accès réseau

F.HACHOUF 2020 21
OpenSSL
• OpenSSL est une boîte à outils cryptographiques implémentant
les protocoles SSL et TLS .
• OpenSSL offre :
• Une bibliothèque de programmation en C permettant de
réaliser des applications client/serveur sécurisées s’appuyant
sur SSL/TLS.
• Une commande en ligne (OpenSSL) permettant :
– la création de clés privé et publique
– la création de certificats
– le calcul d’empreintes
– le chiffrement et déchiffrement à clé secrète .

• Intégration à multiple langages


–PHP,
–Perl

F.HACHOUF 2020 22
La cryptographie à clé secrète
( Symétrique )

F.HACHOUF 2020 2323


Introduction
• Les systèmes à clé secrète (ou symétrique) utilisent une même
clé et un même algorithme de chiffrement pour chiffrer et
déchiffrer un message.
• L’émetteur et le destinataire doivent utiliser la même clé .

F.HACHOUF 2020 24
Cryptographie Symétrique : Modes
Opérationnels
• Cryptage par bloc
• Division du texte clair en blocs fixes, puis chiffrement
bloc par bloc
• Opère sur des blocs de données de taille fixe
• Implémentation logicielle en générale

• Cryptage par flux


• Le bloc a une dimension unitaire (1 bit, 1 octet, …), ou
une taille relativement petite.
• Opère sur un flux continu de données
• Mode adapté pour la communication en temps réel
• Implémenté en général sur des supports hardwares

F.HACHOUF 2020 25
Quelques algorithmes à clé secrète

• Chiffrement par bloc


• DES: IBM, Standard NIST 1976
• 3DES: W. Diffie, M. Hellman, W. Tuchmann 1978.
• IDEA: Xuejia Lai et James Massey en 1992
• Blowfish: Bruce Schneier en 1993
• AES (Rijndael): Joan Daemen et Vincent Rijmen 2000
• Chiffrement par flux
• RC4: Ron Rivest 1987
• SEAL: Don Coppersmith et Phillip Rogaway pour IBM
1993.

F.HACHOUF 2020 26
Exemple 1 :
Cryptage par Substitution 
• Le code de César est le plus vieil algorithme de chiffrement
symétrique par substitution connu.
• Il consiste à remplacer chaque lettre du message d’origine
par une lettre de l‘alphabet situé n positions plus loin (par
une simple translation).
• N constitue la clé secrète.
• Exemple :
La clé est 3 :
Texte clair : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Texte chiffré: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

F.HACHOUF 2020 27
Exemple 2 : Cryptage par transposition
(permutation ) 
• Le principe de codage par transposition est de modifier selon une loi prédéfinie
l’ordre des caractères.
• La méthode de pliage constitue un exemple simple de chiffrement par
transposition.
• Elle consiste à écrire le message d’origine dans une matrice (écriture en ligne)
comportant autant de colonnes que la clé secrète.
• La clé secrète est constituée de numéros de colonnes.
• Le cryptogramme est obtenu en lisant cette matrice en colonnes selon l’ordre
défini par la clé .
• Exemple :
• Le message d’origine:
UNE PLANCHE A VOILE
• La clé de codage : 4312 1 2 3 4
• Le message crypté : U N E P
PCVE ENAL ULHO NAEL
L A N C

H E A V

O I L E

F.HACHOUF 2020 28
Exemple 3 : L’algorithme DES

• L'algorithme DES (Data Encryption Standard ), a été créé


dans les laboratoires de IBM en 1976.
• C'est un chiffrement qui transforme des blocs de 64 bits avec
une clé secrète de 56 bits au moyen de permutations et de
substitutions.
• La clé est constituée de 64 bits .
• 56 bits sont générés aléatoirement et utilisés dans
l'algorithme
• Les huit autres bits sont des bits de parité.

F.HACHOUF 2020 29
Principe de DES
simple substitution et transposition

H V
P Q G
V H
A B U +1
+1 D
T U V W
D W
A C B
+2 E S
T V C +2
S E
E G Q

F.HACHOUF 2020 30
Principe de DES
• Chiffrement par blocs
• Entrée : bloc de 64 bits
• Sortie : bloc de 64 bits
• DES utilise 16 sous clés .
• Chaque clé est générée à partir
de la clé secrète
• DES utilise 16 tours ( itérations )
• Chaque itération effectue une
permutation et une substitution en
utilisant une sous clé ( effectuer des
OU exclusif à chaque fois ).
• Pour déchiffrer refaire le même
processus dans le sens inverse

F.HACHOUF 2020 31
Avantages et inconvénients de DES
•Avantages :
•DES offre des performances excellentes à des débits très élevés (dizaine/
centaine de Mégabits/seconde).
-Utilisation multiple : Transmission de données informatiques, Cryptage de
chaînes de télévision .

•Inconvénients : Problème de longueur des clés ( actuellement 56 bits est


insuffisant )

•Des puces spéciales permettant l'essai de 106 clés par seconde ont été
construites
•DES Challenge I 1997: DESCHALL en 96 j
•DES Challenge II-1 1998: Distributed.net en 41j
•DES Challenge II-2 1998: EFF Deep Crack 56h
•DES Challenge III 1999: Deep Crack et Distributed.net 22h15
•En 2000 AES devient le standard à la place
F.HACHOUF de DES
2020 32
Triple DES ( 3DES )

• Appliquer le DES trois fois avec trois clés ( 128 bits)


• Généralement la première et la troisième sont égales
• Cette algorithme est très sûre mais il est très lent

F.HACHOUF 2020 33
L’AES
• AES : Advanced Encryption Standard
• C’est le nouveau standard de cryptage
symétrique à partir de 2000
• Inventé créé par V. Rijmen et J.Daemen.
• AES : chiffrage de blocs de 128/192/256
bits
• avec une clé de 128/192/256 bits
• Le nombre de tours varie entre 10 et 14
selon la taille des blocs et la longueur des
clés.

F.HACHOUF 2020 34
Chiffremet symétrique avec OpenSSL
openssl enc -des -in test.doc -out test.cry
• enc : chiffrement
• des : algorithme de chiffrement à clé secrete
• test.doc : fichier en entrée en clair
• Test.cry : fichier en sortie chiffré
• Pour déchiffrer utiliser la même commande mais avec l’option –d

openssl enc -des -d -in test.cry -out test.doc


Remarque :
Pour choisir l’algorithme il suffit juste de changer le nom ( par exemple des3 )
openssl enc -des3 -in plaintext.doc -out ciphertext.bin

F.HACHOUF 2020 35
Chiffremet symétrique avec OpenSSL
• C’est possible de visualiser la clé de cryptage générée en utilisant l’option –P

openssl enc -des -P

• Le résultat key=DA9886B0BE9D1FE1
• Utiliser en suite cette clé pour le cryptage et le dycryptage .

openssl enc -des -k 784A259FB9A3AC74 -in test.txt -out test.cry


openssl enc -des -k 784A259FB9A3AC74 -in test.cry -out test.dec -d

F.HACHOUF 2020 36
Problèmes de la cryptographie symétrique
• La cryptographie à clé secrète présente l’inconvénient de la complexité de
gestion des clés secrètes .
• Pour n personnes communicantes, il faut gérer n*(n-1)/2 clés (car chaque
deux communicants possèdent leur propre clé de chiffrement).
• Pour une centaine de personne par exemple, il faut 4950 clés, ce qui n’est
pas pratique pour sécuriser les communications au sein d’une organisation
avec des milliers de communicants .

F.HACHOUF 2020 37
La cryptographie à clé publique
( Asymetrique )

F.HACHOUF 2020 3838


Introduction
• Dans la cryptographie à clé publique (ou cryptographie
asymétrique) chaque communicant utilisent deux clés,
• L’une est connue par tous (clé publique), l’autre n’est connue
que par lui-même (clé privée).
• Les deux clés sont reliées mathématiquement entre elles de telle
sorte qu’il est impossible de retrouver la clé privée en
connaissant la clé publique.
• La cryptographie publique peut être utilisée pour assurer :
• Confidentialité
• Authentification

F.HACHOUF 2020 39
Principe de la cryptographie asymétrique

F.HACHOUF 2020 40
Relation entre les clés publique et privé

• Soit K_pub et K_priv respectivement la clé publique et la clé


privé d’une personne A.
• M le texte à chiffrer , C le texte crypté et F l’algorithme de
chiffrement
• Le message crypté avec l’une des clé ne peut être décrypté
qu’avec l’autre.

F(M,K_pub)=C  F(C,K_priv)=M
F(M,K_priv)=C  F(C,K_pub)=M

F.HACHOUF 2020 41
Cryptographie Asymétrique
Premier Mode : Confidentialité des données

K_pubB K_privB
A B
Texte clair Texte clair
Cryptage Internet Décryptage
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit ♠♣▼╫◊ crédit
111111, 111111,
♫◙◘€£
¥₪Ω‫٭‬
Texte crypté
K_pubA, K_privA K_pubB,K_privB
K_pubB K_pubA

F(M, K_pubB) = C  F(C,K_privB)=M


F(C’, K_privA) = M’  F(M’,K_pubA)=C’
F.HACHOUF 2020 42
Cryptographie Asymétrique
Premier Mode : Authentification
A K_pubA
K_privA B
Texte clair Texte clair
Cryptage Internet Décryptage
Voici le Voici le
numéro numéro
de ma de ma
carte de ☺☼♀☻ carte de
crédit ♠♣▼╫◊ crédit
111111, 111111,
♫◙◘€£
¥₪Ω‫٭‬
Texte crypté
K_pubA, K_privA K_pubB,K_privB
K_pubB K_pubA

F(M,K_privA)=C  F(C,k_pubA)=M

L’information cryptée par la clé privée de A ne peut être déchiffrée que par
la clé publique de A  donc c’est A qui 2020
F.HACHOUF a envoyé le message chiffrée 43
Principe des Algorithmes à clés publiques

• Les algorithmes à clé publique reposent sur les bases de


l’arithmétique .
• Elle se base sur la résolution du log discret ou
la factorisation des grands nombres premiers .
• Le choix des ces nombres détermine la force ou la faiblesse
de l’algorithme de cryptage  les nombres sont assez
grands de l’ordre 10100 .
• Deux principaux algorithmes :
• RSA (Rivest, Shamir et Adleman).
• DSA ( Digital Signature Algorithm )

F.HACHOUF 2020 44
Le RSA
• Inventé par (Rivest, Shamir et Adleman).
• Il utilise des clés très longues (jusqu’à 1024 bits)

• RSA offre toutes les garanties cryptographiques


(confidentialité, intégrité, authentification et non répudiation).
• Cet algorithme est très largement utilisé, par exemple dans les
navigateurs pour les sites sécurisés et pour chiffrer les emails.

• L'algorithme est remarquable par sa simplicité. Il est basé sur


les nombres premiers.
• La sécurité apportée par le système RSA se fonde sur la
difficulté à factoriser le produit de deux grands nombres
premiers  personne n’a pu le faire en un temps raisonnable..

F.HACHOUF 2020 45
RSA dans la pratique
• Dans la pratique, ce n'est pas si simple à programmer.

• Dans la pratique , on n’utilise pas les algorithmes


asymétriques pour chiffrer toutes les données, car
c’est trop lent à calculer par rapport aux algorithmes
de cryptographie symétrique.

• La cryptographie publique est plus utilisée pour


assurer l’authentification mais pour la
confidentialité des données on utilise la cryptographie
symétrique .
F.HACHOUF 2020 46

Vous aimerez peut-être aussi