Vous êtes sur la page 1sur 32

INTRODUCTION À LA

CRYPTOGRAPHIE

SEDDIK ILIAS
CRYPTOGRAPHIE
C’est la discipline qui traite de la transmission confidentielle de données
La cryptograpie est la science qui utilise les mathématiques pour le cryptage et le
décryptage de données. Elle vous permet ainsi de stocker des informations
confidentielles ou de les transmettre sur des réseaux non sécurisés (tels que l'Internet),
afin qu'aucune personne autre que le destinataire ne puisse les lire.

La cryptanalyse: est l'étude des informations cryptées, afin d'en découvrir le secret. La
cryptanalyse classique implique une combinaison intéressante de raisonnement
analytique, d'application d'outils mathématiques, de recherche de modèle...
Alphabet : ensemble fini de symboles utilisés pour écrire les messages.
Message clair: chaîne de caractères composée de lettres de l’alphabet A et dont on
veut en général conserver la confidentialité.
Message crypté: chaîne de caractères composée de lettres de l’alphabet A,
correspondant à un message clair, et dont la diffusion à des entités non autorisées ne
doit pas dévoiler d’information sur ce message clair.
Cryptage: transformation d’un message clair en un message crypté.
Décryptage: transformation inverse du cryptage qui permet de retrouver à partir d’un
message crypté, le message clair correspondant.
HISTORIQUE DE LA CRYPTOGRAPHIE
Chiffrement de César
Simple décalage d’un chiffre des lettres du message sur
l’alphabet.
A → E B → F C → G ….. V → Z W → A X → B Y → C….

Exemple avec un décalage de 3:

INTTIC LQWWLF
On peut considérer que la clé est un entier entre 1 et la taille de
l’alphabet (26 pour l’alphabet latin)
Pour le casser, il suffit donc juste de tester les différente possibilité
de clés.
Il n’est donc pas sécurisé.
HISTORIQUE DE LA CRYPTOGRAPHIE
Substitution mono-alphabétique (par substitution)
Une cryptographie par dictionnaire, c’est-à-dire que chaque caractère en clair a un caractère
correspondant pour le chiffrer.
Le choix des correspondances doit se faire au hasard.
Le nombre de possibilités passe à 26! = 403 291 461 126 605 635 584 000 000
Exemple: Message chiffré avec une substitution par dictionnaire:
BQPSNRSJXJNJXLDPCLDLPQBE_QRKJXHNKPKSJPJIKSPUNBDKIQRBKPQPBQPZITEJQDQBTSKPELNIUNPHNKPB
KPCKSSQWKPSLXJPSNVVXSQCCKDJPBLDWPXBPSNVVXJPGKPJKDXIPZLCEJKPGKSPSJQJXSJXHNKSPGPLZZNIIK
DZKPGKSPGXVVKIKDJKSPBKJJIKS
Chaque lettre est chiffrée de la même façon, et chacune a une certaine fréquence dans chaque
langue…
En comparant la fréquence des lettres en langue française avec la fréquence dans le
cryptogramme, on peut essayer de substituer les lettres une après l’autre, Par exemple la plus
fréquente sera le « e »
Grâce à cette simple analyse statistique, on peut rapidement déduire le message d’origine:
LA_SUBSTITUTION_MONO_ALPHABETIQUE_EST_TRES_VULNERABLE_A_LA_CRYPTANALYSE_P
HISTORIQUE DE LA CRYPTOGRAPHIE
Chiffre de Vigenère:
Au 16ième siècle, 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
ALAINALAINALAINALAINALAINALAINALAINAL
AINA
LE_CODE_DE_VIGENERE_EST_IL_INDECHIFFRAB
LE
MQALBEQAMSAGJPSOQSNNFDUIWMLJWRFOI
RTGCBKZF
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.
HISTORIQUE DE LA CRYPTOGRAPHIE
Chiffre de Vigenère:
Le chiffrement de Vigenère n’est cependant pas infaillible si on connait la taille de la
clé.
Les mathématiciens Friedman, Babbage, Kasiski ont prouvé que ce chiffrement peut être
cassé statistiquement si la clé n’est pas trop grande.
En regroupant les caractères fréquentiellement selon la taille de la clé, on peut
refaire n analyses statistique comme pour un chiffrement par substitution (où n st
la taille de la clé)
Pour récupérer la taille de la clé, un calcul d’indice de coïncidence (qui repose sur
la distribution probabiliste des lettres dans une langue) peut être appliqué, le
regroupement donnant l’indice le plus proche de celui de la langue est le bon.
HISTORIQUE DE LA CRYPTOGRAPHIE
Chiffre de Vernam:
Le seul chiffrement offrant une sécurité théorique absolue.
C’est une variante du chiffrement de Vigenère où:
1. La clé ait au moins la même longueur que le message à chiffrer
2. Elle n’est utilisée qu’une seule fois
3. Elle est générée de façon aléatoire

Cependant, cette méthode est inapplicable dans les conditions réels vu la complexité de
ses conditions d’application.
HISTORIQUE DE LA CRYPTOGRAPHIE
L’ère de l’informatique:
Lors de la 2ème guerre mondiale, l’Allemagne utilisait une
machine de cryptage mécanique nommée Enigma.
Toute attaque statistique est inutile puisque chaque lettre du
message est chiffré de façon différente.
Inutile d’essayer de deviner la clef. Il y en a trop
(10586916764424000 au total)
Le mathématicien britannique Alan Turing invente une
machine électrique (basée sur le concept de machine de
Turing, qui donnera l’ordinateur) qui va casser Enigma et
changer en grande partie le cours de la guerre.
C’est l’entrée dans l’ère de la cryptographie informatique
CONCEPTS DE BASE
Quelques concepts de la cryptographie moderne:

• La sécurité du protocole repose dans le secret des clés et non celui des algorithmes (principe
de Kerckhoff)
• Simplicité: Un protocole ne doit jamais essayer de faire plus que ce qu’il est sens´e faire.
Exemple : extension des protocoles d’identification.
• Le Maillon Faible: Un protocole n’est jamais aussi sûr que sa composante la plus faible.
• Raisonnement paranoïaque: Un protocole avec une faiblesse, aussi petite qu’elle soit, est un
protocole qui n’est plus sûr. Exemple : le protocole WEP
• Modèle de sécurité: Un protocole n’est jamais parfait. L’essentiel est d’obtenir le niveau de
sécurité souhaité.
CONCEPTS DE BASE
Types de cryptographie:

Les algorithmes de cryptographie se divisent principalement en 2 catégories:


1. Le chiffrement à clé symétrique: où la même clé est utilisé pour chiffrer et déchiffrer les
messages. On y distingue 2 principales méthode:
• Chiffrement par flux
• Chiffrement par bloc
2. Le chiffrement à clé asymétrique: où on aura une clé publique qui sera transmise (pour le
chiffrement en général), et une clé privée qui restera sur la machine (pour le déchiffrement
en général)
CRYPTOGRAPHIE SYMÉTRIQUE

• Clés: La clé de cryptage et la clé de décryptage sont les mêmes et donc doivent être gardées
secrètes.

• Transformations: Transformations similaires pour codage et décodage (protocoles


symétriques).

• Avantage: Algorithmes en général très rapides.

• Inconvénient: Il faut pouvoir échanger la clé !


CRYPTOGRAPHIE SYMÉTRIQUE
Chiffrement par flux
Principe: Le chiffrement de flux est basé sur le principe du One-Time Pad, c'est-à-
dire l'opération bit à bit XOR.
On utilise une clé secrète de taille fixe, qui peut être plus petite que le message en clair. Un
générateur de nombres aléatoires transforme ensuite cette clé en un code de même longueur que le
message appelé flux de clé.
L’opération XOR est ensuite appliquée sur le message clair pour obtenir le message chiffré.
Toutes ces opérations sont inversées pour récupérer le message en clair.
L’un des paramètres essentiels est la non réutilisation des mêmes clés de chiffrement, on utilise
souvent des compteurs pour les mettre à jour.
Exemples de chiffrement par flux:
• WEP et WPA: Protocoles WiFi basés sur RC4 qui est un chiffrement à flux, il est aujourd’hui
considéré comme faible étant donné que ces clés sont prévisibles.
• Salsa20
• OpenSSH
CRYPTOGRAPHIE SYMÉTRIQUE
Chiffrement par blocs
Principe: Le message est coupé en blocs de même taille (64 bits, 128 bits, 196 bits, 256
bits...) qui sont encryptés et combinés suivant plusieurs modes d’opération.
Le chiffrement par blocs est le plus utilisé aujourd’hui, en particulier AES(Advanced
Encryption Standard) qui est très présent sur les réseaux sans fil et sur le Web.
CRYPTOGRAPHIE SYMÉTRIQUE
Chiffrement par blocs (ECB)
Dans le mode de
chiffrement par bloc le plus
simple, appelé ECB, on réalise le
chiffrement de chaque bloc
séparément et rassemblez tous les
blocs en sortie pour former le
texte chiffré.
Il est aujourd’hui considéré
comme peu sécurisé étant donné
que les mêmes blocs en clair
donneront les même blocs chiffrés
(comme pour le chiffrement par
substitution)
CRYPTOGRAPHIE SYMÉTRIQUE
Chiffrement par blocs (CBC)
Ce mode consiste à
effectuer l'opération XOR entre le
bloc clair actuel et le bloc chiffré
précédent, avant de chiffrer le
bloc actuel. Pour le premier bloc, il
n'y a pas de bloc précédent. On
effectue l'opération XOR avec une
variable aléatoire appelée vecteur
d'initialisation qui sera transmis en
clair.
Le vecteur d’initialisation doit être
régulièrement changé afin d’éviter
les attaques de message en clair
choisi (CPA : Chosen Plaintext
Attack).
Les chiffrements CBC sont par
CRYPTOGRAPHIE SYMÉTRIQUE
Chiffrement par blocs (CTR)
Ce mode imite le
fonctionnement d'un chiffrement
de flux, en utilisant
un compteur qui s'incrémente à
chaque bloc. Le compteur et la clé
sont chiffrés avec la fonction de
chiffrement de bloc, ce qui donne
un flux pseudo-aléatoire découpé
en blocs.
Un de ces grands avantages est
que le chiffrement et le
déchiffrement peuvent être
parallélisés sur plusieurs
processeurs, et donc être plus
rapides.
CRYPTOGRAPHIE SYMÉTRIQUE
Chiffrement DES
Histoire: Crée par IBM. Standard du NIST (National Institute of Standards and Technology)
depuis 1976 : norme FIPS 46-3.
Bloc: Codage par blocs de 64 bits.
Clé: 64 bits avec 8 bits de parité chaque 8 bits donc 56 bits effectifs (recherche exhaustive
divisée par 256).
Spécificités:
• Plusieurs applications augmentent la sureté
• Vulnérable aux attaques par relations linéaires
• Considère comme obsolète et non sûr car l’espace des clés est trop petit
• Repose sur les diagrammes de Feistel.
CRYPTOGRAPHIE SYMÉTRIQUE
Chiffrement AES (Advanced Encryption Standard)

• Histoire: En 1997, le NIST annonce la création d’un nouveau protocole de cryptographie à


clé secrète nommé A.E.S. et lance un appel d’offre. En 1998, quinze protocoles candidats sont
retenus et soumis aux critiques de la communauté cryptographique. En octobre 2000, le NIST
annonce le choix du protocole Rijndael crée par J. Daemen et V. Rijmen. Ce protocole remplace
D.E.S. comme standard du NIST (norme FIPS 197).

• Bloc: Codage par blocs de 128 bits.

• Clé: Clé de 128 (10 rondes), 192 (12 rondes) ou 256 bits (14 rondes).

• Spécificités: Grande résistance à toutes les attaques connues ; très grande rapidité pour le
cryptage et le décryptage ; utilise des méthodes de substitution-permutation et non les
diagrammes de Feistel (ou généralisations) ; possède une véritable structure mathématique.
CRYPTOGRAPHIE SYMÉTRIQUE
Chiffrement AES (Advanced Encryption Standard)
• Depuis juin 2003, le gouvernement américain a
annoncé que A.E.S. peut être utilisé pour crypter les
informations classifiées. Les informations classées au
niveau TOP SECRET doivent utiliser des clés de
longueur 192 ou 256 bits.

• Si on essaie toutes les clés possibles. Pour les plus


courtes, il faut en tester 2128, soit environ 700 000 000
000 fois l’âge de l’univers pour un test de 1 000 000
000 clés par seconde. Pour les plus longues, il faut en
tester 2 256, soit environ 2 · 1050 fois l'âge de l’univers
pour un test de 1 000 000 000 clés par seconde.
Toutes les attaques efficaces contre A.E.S. sont des
CRYPTOGRAPHIE SYMÉTRIQUE

Même si certaines de ces méthodes de chiffrement sont toujours très utilisées, les
méthodes à clés symétriques comportent toutes un point faible: l’échange de la clé en
clair !
CRYPTOGRAPHIE ASYMÉTRIQUE
En 1976, les cryptologues Diffie et Hellman ont proposé une solution révolutionnaire à ce
problème : le protocole d'échange de clés Diffie-Hellman. Ce système a posé les bases de la
cryptographie asymétrique et a permis de généraliser l'usage de la cryptographie dans les
communications informatiques.
CRYPTOGRAPHIE ASYMÉTRIQUE
Chiffrement RSA

L'année suivant, en 1977, les cryptologues Rivest, Shamir et Adleman ont déposé un brevet
pour le système de chiffrement asymétrique RSA basé sur le problème de la factorisation des
grands nombres. Ce système a permis le développement du chiffrement à clé publique. Il
repose sur une paire de clés privée et publique, et sur des fonctions de chiffrement et de
déchiffrement définies comme ceci :

Soit m le message en clair, c le texte chiffré, PriB la clé privée de Bob, PubB la clé publique de
Bob, E() la fonction de chiffrement et D() la fonction de déchiffrement.

c = E(PubB,m) et m=D(PriB,c)
Cette technique permet donc d’avoir une clé publique (qui sera transmise en réseau) qui va
permettre de chiffrer les messages, et une clé privée qui ne sera jamais transmise et servira à
les déchiffrer.
CRYPTOGRAPHIE ASYMÉTRIQUE
Chiffrement RSA

Les systèmes de chiffrement asymétriques


ont cependant l’inconvénient d’être très
lents.

Ils sont donc en général hybridés avec des


chiffrements symétriques, en étant utilisé
seulement au début de la communication
pour l’établir et échanger la clé de
chiffrement symétrique.
LES SIGNATURES NUMÉRIQUES
En plus de la confidentialité, des algorithmes comme RSA permettent de signer un message,
c'est-à-dire d'apporter la preuve que l'expéditeur est bien la personne qu'il prétend être.

Une signature numérique a la même utilité qu'une signature manuscrite. Cependant, une
signature manuscrite peut être facilement imitée, alors qu'une signature numérique est
pratiquement infalsifiable. De plus, elle atteste du contenu des informations, ainsi que de
l'identification du signataire.
Cependant, signer directement le message a plusieurs inconvénients :
• la longueur. La taille de la signature d'un message est aussi longue que le message, ce qui
double donc la quantité d'informations à envoyer sur le réseau ;
• la lenteur. Les fonctions de signature et de vérification ne sont pas très rapides, ce qui
ralentit les performances du SI.
• la traçabilité. La signature du message permet de retrouver le contenu du message. Le
message n'est donc pas confidentiel.
Pour éviter ces problèmes, vous ne signez pas directement le message mais le haché du
LES FONCTIONS DE HACHAGE
En informatique, une fonction de hachage est une fonction qui prend en entrée des données
arbitraires, c'est-à-dire de différents types et tailles, et qui fournit en sortie une donnée de
taille fixée.

Il est beaucoup plus rapide de comparer des hachés, qui ont un format fixe et une petite
taille, plutôt que de comparer des données de grande taille comme des fichiers. Les
fonctions de hachage sont donc très utilisées en informatique.

Il est utilisé pour de nombreuses fonctions:

• Contrôler l'intégrité d'un message

• Stocker des mots de passe

• Générer des nombres pseudo-aléatoires

• Preuve de travail des blockchains


LES FONCTIONS DE HACHAGE
LES FONCTIONS DE HACHAGE
Les algorithmes de hachage les plus connus sont:

• MD5: lgorithme de hachage très rapide mais sans clé, ce qui limite un peu son efficacité
• SHA-1 (Secure Hash Algorithm version 1) est aujourd'hui considérée comme vulnérable,
car des chercheurs ont démontré qu'il était possible de trouver des collisions, et l'ont
prouvé en créant 2 fichiers PDF différents ayant le même haché avec SHA-1. Il ne faut
donc plus l'utiliser ;

• SHA-2, est LA fonction standard de hachage cryptographique. C'est donc la fonction de


hachage qu'il vous est conseillé d'utiliser. Elle est déclinée en plusieurs versions, dont SHA-
256 dont le haché est de 256 bits ; elle fournit une sécurité de 128 bits contre les collisions
et est la plus utilisée actuellement ;

• en 2015, une troisième version, SHA-3, a été sélectionnée comme alternative à SHA-
2. Cette fonction ne remplace pas SHA-2 qui est toujours la fonction conseillée. Elle
servira d'alternative dans le cas où des chercheurs réussiraient à casser la sécurité de SHA-
2 à l'avenir.
EXEMPLE DE SIGNATURE
Json Web Tokens (JWT)
JWT ou JSON Web Token est un standard ouvert décrit dans la RFC 7519 qui
permet l’authentification d’un utilisateur à l’aide d’un jeton (token) signé. Le
principe est le suivant :
LES CERTIFICATS DE SÉCURITÉ
Lors de l'utilisation des systèmes de cryptographie de clé publique, les utilisateurs doivent
constamment vérifier qu'ils cryptent vers la clé du bon utilisateur, ce qui constitue un problème
(vulnérabilité aux MITM).
Les certificats numériques ou certificats simplifient la tâche qui consiste à déterminer si une clé
publique appartient réellement à son détenteur supposé. Ils contiennent des informations qui se
référent à la clé publique d’un nœud identifié.
Un certificat contient en général 4 informations importantes :
• l’identifiant de la personne ou du serveur à qui appartiennent la clé publique et le
certificat. Pour une personne, cela peut être son adresse email. Pour un serveur web, c'est
en général son nom de domaine

• la clé publique de la personne ou du serveur ;

• les dates de début et de fin de validité de la clé publique et du certificat ;

• la signature du certificat qui permet de prouver que la clé publique est bien celle de
LES CERTIFICATS DE SÉCURITÉ
Un certificat ne contient que des informations
publiques. Son rôle est d'associer un identifiant à une
clé publique, avec une confiance fournie par la
signature du certificat.

Le format de certificat le plus courant est le standard


X.509, utilisé notamment par HTTPS, IPsec, PGP et
SSH. En plus des informations de base, un certificat
X.509 contient des informations complémentaires :
• le nom de l'algorithme de chiffrement et de
signature avec lesquels la clé publique du
certificat est compatible.
• le rôle du certificat.
LES CERTIFICATS DE SÉCURITÉ
Infrastructure de clé publique
L'infrastructure de clé publique (Public Key Infrastructure, ou PKI) désigne l'ensemble des serveurs
servant à signer, distribuer et valider les certificats. Une PKI est composée d'une autorité de
certification (CA), d'une autorité de dépôt (Repository) et d'une liste de révocation de certificats.
Autorité de certification
Il s'agit d'un serveur qui possède une paire de clés privée/publique et un certificat autosigné
appelé certificat racine (en anglais root certificate). Tous les utilisateurs de la PKI font confiance à
ce certificat racine.
Autorité de dépôt
Ce serveur fait office d'annuaire. Il contient tous les certificats signés par l'autorité de certification.
Ainsi, lorsqu‘un nœud a besoin de la clé publique d’un autre, il peut faire une recherche auprès
de l'autorité de dépôt.
Un exemple connu de PKI est Active Directory de Microsoft, le service d'annuaire intégré
RESSOURCES COMPLÉMENTAIRES
• Introduction à la cryptographie
• Vue d’ensemble de la cryptographie moderne
• Tester en ligne différents algorithmes de cryptographie/hachage

Vous aimerez peut-être aussi