Académique Documents
Professionnel Documents
Culture Documents
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….
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:
• Clés: La clé de cryptage et la clé de décryptage sont les mêmes et donc doivent être gardées
secrètes.
• 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.
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
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.
• 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 ;
• 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 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.