Vous êtes sur la page 1sur 41

SÉCURITÉ

INFORMATIQUE
Support de cours L3 SI

19/03/2020 Support de cours 1


Objectifs

■ Présenter aux étudiants les problèmes de


sécurité posés par les ressources
informatiques et réseaux
■ Leur décrire les outils cryptologiques qui
répondent à ces problèmes

19/03/2020 Support de cours 2


Contenu de la matière

■ Introduction à la sécurité
■ Outils de cryptages
■ Travaux pratiques
■ Exposés

19/03/2020 Support de cours 3


INTRODUCTION À LA
SÉCURITÉ

19/03/2020 Support de cours 4


Introduction à la sécurité
■ objectifs et critères de sécurité
■ menaces informatiques
■ logiciels malveillants
■ criminalité informatique
■ réponses apportées par la cryptologie - cryptographie
historique.

19/03/2020 Support de cours 5


Introduction
■ L’objectif fondamental de la cryptographie est de permettre à
deux personnes appelées traditionnellement, Alice et Bob de
communiquer a travers un canal peu sur de telle sorte qu’un
opposant passif Eve ne puisse pas comprendre ce qui est
échangé et que les données échangées ne puissent pas être
modifiées ou manipulées par un opposant actif Martin.
■ Un système cryptographique ne se conçoit pas
indépendamment des attaques dont il peut être l’objet. On
indiquera donc pour chaque système cryptographique
quelques attaques et sa résistance à ces attaques.

19/03/2020 Support de cours 6


Qu’est ce que la cryptographie
■ La cryptographie ou science du secret est un art très
ancien, c’est
– l’art de remplacer un secret encombrant par un secret
miniature
■ Le secret encombrant est le contenu du message il est
remplacé par un petit secret qui est la clef de déchiffrement
dont la taille est en général de quelques centaines à
quelques milliers de bits à comparer aux mégabits d’un
message.

19/03/2020 Support de cours 7


Qu’est ce que la cryptographie
■ La cryptographie est l’art de rendre inintelligible, de crypter, de coder,
un message pour ceux qui ne sont pas habilités à en prendre
connaissance. Le chiffre, le code est le procédé, l’algorithme, la
fonction, qui permet de crypter un message.
■ La cryptanalyse est l’art pour une personne non habilitée, de
décrypter, de décoder, de déchiffrer, un message. C’est donc
l’ensemble des procédés d’attaque d’un système cryptographique.
■ La cryptologie est l’ensemble formé de la cryptographie et de la
cryptanalyse.

19/03/2020 Support de cours 8


Qu’est ce que la cryptographie
■ La cryptologie fait partie d’un ensemble de théories et de techniques
liées à la transmission de l’information (théorie des ondes électro-
magnétiques, théorie du signal, théorie des codes correcteur
d’erreurs, théorie de l’information, théorie de la complexité,...).
■ Un expéditeur Alice veut envoyer un message à un destinataire Bob en
évitant les oreilles indiscrète d’Eve, et les attaques malveillantes de
Martin.
■ Pour cela Alice se met d’accord avec Bob sur le cryptosystème qu’ils
vont utiliser.

19/03/2020 Support de cours 9


Qu’est ce que la cryptographie
■ L’information qu’Alice souhaite transmettre à Bob est le texte clair. Le
processus de transformation d’un message, M, pour qu’il devienne
incompréhensible a Eve est appelé le chiffrement ou la codage. On
génère ainsi un message chiffré, C, obtenu grâce à une fonction de
chiffrement,
– E, par C = E(M).
■ Le processus de reconstruction du message clair a partir du message
chiffré est appelé le déchiffrement ou décodage et utilise une fonction
de déchiffrement, D. On demande que pour tout message clair M
– D(C) = D(E(M)) = M
■ Autrement dit on demande que tout message codé provienne d’un et
d’un seul message clair (D est une fonction surjective des messages
codés vers les messages clairs et E est une fonction injective des
messages clairs sur les messages codés).
19/03/2020 Support de cours 10
Qu’est ce que la cryptographie
■ Un algorithme cryptographique est l’ensemble des fonctions
(mathématiques ou non) utilisées pour le chiffrement et le déchiffrement.
■ En pratique les fonctions E et D sont paramétrées par des clés, Ke la clé de
chiffrement et Kd la clef de déchiffrement, qui peuvent prendre l’une des
valeurs d’un ensemble appelé espace des clefs.
■ On a donc la relation suivante:
– E ke (M ) = C
– D kd (C) = M
■ Le type de relation qui unit les clés Ke et Kd permet de définir deux grandes
catégories de systèmes cryptographiques
– Les systèmes à clef secrètes ou symétriques: (DES, AES, IDEA,
Blowfish,...)
– Les systèmes à clefs publiques ou asymétriques: (RSA, El-Gamal, un
cryptosystème elliptique,...)
19/03/2020 Support de cours 11
Qu’est ce que la cryptographie
■ En outre les fonctions de codage E et de décodage D
peuvent fonctionner de deux façons:
– en continu: chaque nouveau bit est manipulé
directement
– par bloc: chaque message est d’abord partitionné en
blocs de longueur fixe. Les fonctions de chiffrement et
déchiffrement agissent alors sur chaque bloc.

19/03/2020 Support de cours 12


Notions de base
Les quatre buts de la cryptographie
■ Confidentialité : mécanisme pour transmettre des données de
telle sorte que seul le destinataire autorisé puisse les lire.
■ Intégrité : mécanisme pour s’assurer que les données reçues
n’ont pas été modifiées durant la transmission.
■ Authentification : mécanisme pour permettre d’identifier des
personnes ou des entités et de certifier cette identité.
■ Non-répudiation : mécanisme pour enregistrer un acte ou un
engagement d’une personne ou d’une entité de telle sorte que
celle-ci ne puisse pas nier avoir accompli cet acte ou pris cet
engagement.

19/03/2020 Support de cours 13


Terminologie
■ Alphabet A : ensemble fini de symboles utilisés pour écrire les
messages.
■ Message clair m : chaîne de caractères composée de lettres de
l’alphabet A et dont on veut en général conserver la confidentialité. On
note M l’ensemble de tous les messages clairs possibles.
■ Message crypté c : 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 pas d’information sur ce
message clair. On note C l’ensemble de tous les messages cryptés.
■ 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.
19/03/2020 Support de cours 14
Terminologie
■ Signature s : chaîne de caractères associées à un message donné (et
aussi possiblement à une entité) et le caractérisant.
■ Transformation Tk : fonction qui associe à un message clair ou crypté, une
autre donnée qui peut être un message clair, crypté ou une signature. En
général, ce sont des fonctions qui dépendent de clés.
■ Clé k : donnée supplémentaire permettant de construire les fonctions de
cryptage et de décryptage. Sans connaissance de la clé de décryptage, le
décryptage doit être impossible. On note K l’ensemble de toutes les clés.
■ Protocole : description de l’ensemble des données nécessaires pour
mettre en place le mécanisme de cryptographie : ensemble des messages
clairs, des messages cryptés, des clés possibles, des transformations...

19/03/2020 Support de cours 15


Exemples historiques de protocoles de
cryptographie
■ La scytale
■ Le cryptogramme de César
■ La permutation de lettres
■ Le chiffrement de Vigenère
■ Le chiffrement de Hill

19/03/2020 Support de cours 16


Scytale

Message crypté

19/03/2020 Support de cours 17


La cryptographie à travers l'histoire
■ L'antiquité
– On trouve des trace de cryptographie (atbash) dans l'Ancien testament ainsi
que dans l'Egypte antique.
■ L'âge artisanal
– Peu ou prou, la sécurité repose sur le secret du système utilisé.
■ La mécanisation
– La cryptanalyse par « texte en clair choisi » devient possible puisque le
cryptanalyste peut disposer d'une machine à crypter.
■ L'âge industriel et informatique
– L'usage généralisé des réseaux informatiques rend obligatoire la
généralisation de la cryptographie : par exemple, en février 2000, l'Europe
s'inquiète de l'existence du programme ECHELON de surveillance mondiale de
toute les communications par les USA.

19/03/2020 Support de cours 18


L'âge Artisanal
■ Système à transposition
– 404 avant notre ère : le texte étant enroulé sur une scytale permet de changer
l'ordre des lettres du message.
■ Système à substitution
– Cryptanalyse par l'analyse des fréquences des lettres (al-Kindi, IXeme siècle).
– Chiffre de César
– Introduction de la cryptographie en occident : XIIIcme siècle, Roger Bacon.
– Système fragilisé par l'utilisation de clés facilement mémorisables.

19/03/2020 Support de cours 19


L'âge Artisanal
■ Chiffre homophonique
– Cryptanalyse par l'étude des digrammes (groupe de deux lettres consécutives).
Chaque lettre est remplacée par un symbole. Le nombre de symboles
disponibles est proportionnel à la fréquence de la lettre. De ce fait une même
lettre peut être figurée par des symboles différents : le texte chiffré semble régi
par une règle d'équiprobabilité. (Voir les travaux de Shannon en 1949).
■ Système de Vigénère (1586)
– Cryptanalyse par Babbage (1854) et Kasiski (1863).
– Chiffre poly-alphabétique.
– Babbage aurait tenu secrets ses travaux pour en faire bénéficier l'Angleterre
pendant la guerre de Crimée.
■ Grand chiffre de Louis XIII et Louis XIV (1626)
– Cryptanalyse par Bazeries (1890).
– Dû aux père et fils Rossignol. Système à substitution syllabique.
19/03/2020 Support de cours 20
L'âge Artisanal
■ Le chiffre du livre
– Quelques exemples de cryptanalyse réussie existent (Painvin
pendant la Première Guerre mondiale).
– La clé est un livre convenu. Une lettre est remplacée par le
numéro de la page et le numéro de la lettre dans la page.
■ Masque jetable (one time pad) (Vernam 1917)
– Cryptanalyse impossible d'après les travaux de Shannon (1949).
– Principe très simple. Distribution des clés compliquée.
– Problème de création de clés totalement aléatoires.

19/03/2020 Support de cours 21


La mécanisation
■ Enigma (1918) (et autres systèmes à rotors)
– Cryptanalyse réalisée en Pologne par Rejewski en 1933,
puis par Alan Turing et les équipes de Bletchley Park en
1939-40.
– Enigma apparaît comme un chiffre de Vigénère de
longueur 263
– Les travaux de Bletchley Park ont abouti à la création de
Colossus, premier ordinateur au monde, dont les plans
ont été détruits après la guerre pour des raisons de
secret.

19/03/2020 Support de cours 22


L'âge industriel et informatique
■ Le temps du secret est révolu : les systèmes proposés
doivent être totalement publics et leurs faiblesses doit
pouvoir être discutées publiquement.
■ Ce principe a du mal à entrer dans les esprits : en février
2000 Serge Humpich se voit condamné en France à dix
mois de prison avec sursis et 50000 Fr d'amende pour avoir
mis en évidence une faiblesse du système des cartes
bancaires.
■ Cryptographie publique et libre ou secrète et tolérée? : les
législateurs hésitent.

19/03/2020 Support de cours 23


L'âge industriel et informatique
■ Lucifer (1970) et le DES (1976)
– DES cassé en juin 1998. Le DES s'est révélé résistant à la cryptanalyse
différentielle dont les principes ne seront redécouverts par des universitaires
(non tenus au secret) que bien après la création du DES.
■ IDEA(1992)
■ Echange de clés (Diffie et Hellmann 1976)
– Le problème de la distribution des clés est résolu.
■ Sac à dos (Hellmann 1978)
– Premier exemple de système à clé publique. Cassé très peu de temps après
son invention.
■ RSA (Rivest, Shamir, Adleman 1978)
– RSA-155 cassé en août 1999. RSA reste solide avec des clés plus longues que
155 chiffres.
19/03/2020 Support de cours 24
L'âge industriel et informatique
■ Courbes elliptiques (Miller et Koblitz 1985)
– L'utilisation des courbes elliptiques permet de résoudre le
problème du logarithme discret ainsi que la factorisation des
grand nombres : RSA et l'échange de clés sont fragilisés.
– Les courbes elliptiques permettent de nouveaux développements
cryptographiques, déjà implémentées dans les cartes à puces.
■ PGP (P. Zimmermann 1991)
– Le système « grand public » qui a fait trembler la NSA. Utilise IDEA
et RSA.

19/03/2020 Support de cours 25


Actuellement
■ Cryptographie quantique (début en 1988)
– L'ordinateur quantique donnerait des moyens de calculs
inégalés à la cryptanalyse.
– Peut-être la fin de la cryptographie mathématique, mais
peut-être enfin la sécurité indiscutable et absolue des
communications.

19/03/2020 Support de cours 26


Les nombres Premiers
■ un nombre p est premier s’il admet exactement deux
diviseurs, 1 et lui même.
■ N.B. Cette définition exclut 1 de la liste des nombres
premiers.
■ Il est facile de vérifier de tête que 7, 13 ou 31 sont des
nombres premiers.
■ Quelle méthode adopter pour montrer que 4999 est
premier ?

19/03/2020 Support de cours 27


Crible d’Eratosthène
■ Comment créer une liste des nombres premiers ?
■ La méthode proposée par Eratosthène connue sous le nom de « Crible
d’Eratosthène » donne une solution.
– Ecrire tous les nombres de 2 à 1000.
– 2 est premier, on le souligne et on raie tous les multiples de 2 .
– Le premier nombre non rayé est 3. Il est donc premier, on le souligne et on
raie tous ses multiples.
– Etc.
– Arrivé à 32, qui est supérieur à la racine carrée de 1000, on a terminé :
tous les nombres qui n’ont pas été rayés sont premiers.
■ La méthode peut paraître efficace, mais elle devient inutilisable pour une table
des nombres premiers jusqu’à 1 0 .0 0 0 .0 0 0 par exemple

19/03/2020 Support de cours 28


Facteurs premiers
■ Existe-t-il de grands nombres premiers ? La réponse a été fournie par
Euclide.
Théorème :
Tout nombre N admet au moins un facteur premier (sauf N = 0 et N = 1
bien sûr).
■ (c’est-à-dire tout nombre N est divisible par un nombre premier.)
■ En effet, soit N est premier et il est divisible par lui-même, soit N n’est
pas premier et il admet un certain nombre de diviseurs. Appelons P le
plus petit de ces diviseurs. P est premier car sinon P aurait un diviseur
D, plus petit que P, et qui diviserait N.

19/03/2020 Support de cours 29


Facteurs premiers
Théorème :
L’ensemble des nombres premiers est infini.
■ En effet, si on suppose que cet ensemble est fini, il est composé
de n nombres p1, p2..., pn alors N = p1*p2*…*pn + 1 est soit
premier, mais il n’est pas dans la liste finie citée puisque plus
grand que chacun des pi; soit admet un diviseur premier qui ne
peut être aucun des pi puisqu’il n’est divisible par aucun des p1,
p2,...pn. Dans les deux cas, il est établi que la liste n’est pas
complète.
■ On peut donc trouver des nombres premiers aussi grands que
l’on veut.

19/03/2020 Support de cours 30


Facteurs premiers
Théorème :
Tout entier peut se décomposer en produit de facteurs premiers, (sauf 0
et 1)
■ (L’unicité de cette décomposition sera démontrée plus tard)
■ En effet, si n est premier la décomposition est toute trouvée.
■ Sinon n admet un facteur premier p1, et un quotient q1: n = p1q1
avec q1 < n.
■ On recommence avec q, jusqu’à obtenir un quotient premier.
■ Conclusion : tout entier n peut s’écrire n = p1αI p2 α2... pr αr

19/03/2020 Support de cours 31


Liste des nombres premiers
■ La liste des nombres premiers (jusqu’à n) peut s’obtenir à la main
par le crible d’Eratosthène.
■ Pour pouvoir disposer de listes plus complètes, on pourra utiliser
l’une ou l’autre des deux procédures qui suivent.
■ La première utilise prim1(n), la deuxième crée la liste des nombres
premiers et l’utilise pour minimiser le nombre de divisions à
effectuer pour trouver le nombre premier suivant.
■ Sur l’ordinateur de l’auteur, la première a fourni la liste des
nombres premiers inférieurs à 100 000 en 621 ms, la deuxième
en 196 ms.

19/03/2020 Support de cours 32


Décomposition en facteurs premiers
■ L’idée est qu’un nombre est soit premier, soit admet un
diviseur premier.
■ S’il admet un diviseur premier, on effectue la division et on
recommence avec le quotient obtenu.

19/03/2020 Support de cours 33


ELEMENTS D’ARITHMETIQUE
Congruences dans Z
■ Chacun sait que s’il est 3 heures, dans 2 heures il sera 5 heures.
Normal puisque 3 + 2 = 5. De même, s’il est 11 heures, dans 2
heures il sera 1 heure. Normal puisque 11+2=1. Comment arrive-t-
on à ce résultat surprenant ? En fait le reste de la division de 13 par
12 est 1 : les calculs d’heure se font modulo 12. On devrait en fait
écrire 11+2=1 Mod(12) ou encore 11 +2 = 1 [12].
■ On peut bien sûr généraliser et faire des calculs modulo n, n étant un
entier quelconque.
■ Si avec les heures, on travaille avec douze nombres, de 0 à 11, dans
les calculs modulo n, on travaille avec n nombres, de 0 à n-1 .

19/03/2020 Support de cours 34


Congruences dans Z
■ On trouvera ci-dessous les tables de multiplications modulo 12 et modulo
31. (Les lignes et colonnes 0 n’ont pas été représentées pour des raisons
évidentes).
– (Le lecteur est invité à dresser d’autres tables semblables sur son
tableur préféré, en utilisant la fonction Mod : cela représente déjà un
petit exercice intéressant de manipulation d’un tableur)
■ L’observation des tables modulo 31 et 12 nous réservent quelques
surprises.
■ Par exemple on constate que :
– 4*3 = 0 [12] Un produit de deux nombres non nuls peut être nul.
– 8 = 4*2 = 4*5 [12] On ne peut donc pas simplifier le 4 dans l’égalité
4*2 = 4*5
19/03/2020 Support de cours 35
Congruences dans Z
■ Par contre, ces problèmes n’apparaissent pas dans la table de
multiplication modulo 31. Dans chaque ligne et chaque colonne on trouve
une et une seule fois chaque nombre de 1 à 30. En particulier on trouve
une seule fois le nombre 1.
■ Par exemple 14*20 = 1 [31] ce qui signifie que l’inverse, pour la
multiplication modulo 31, de 14 est 20, de la même façon que l ’inverse
de 5 pour la multiplication ordinnaire est 1/5, puisque 5 * 1/5 = 1.
■ Ce résultat peut s’écrire Inv(14) = 20 [31] ou encore 1/14= 20 [31] ou
encore 14-1 = 20 [31] (le langage MAPLE utilise la notation 1/14 mod(31)).
■ Finalement, tout nombre, sauf 0, a un inverse modulo 31, et cet inverse
peut être trouvé facilement à l’aide du tableau. Par contre seuls 1, 7 et 11
ont un inverse modulo 12.

19/03/2020 Support de cours 36


Congruences dans Z
■ On arrive ainsi à résoudre l’équation 14x = 5 [31] :
– Inv(14)*14 x = Inv(14)*5 [31]
– x = 20*5 [31]
– x = 7 [31]
■ Par contre il n’est pas question de résoudre 9x = 10 [12] puisque 9 n’a
pas d’inverse modulo 12.
■ En chemin il faudra aborder les notions algébriques de groupes,
anneaux et corps, ce qui obligera à une révision complète des
mécanismes de calcul appris à l’école.
■ La théorie des congruences a par ailleurs d’autres applications. Nous
verrons comment on peut l’utiliser en cryptographie, c’est-à-dire l’art
d’envoyer des messages secrets.
19/03/2020 Support de cours 37
Congruence
■ Depuis l’école primaire, chacun sait faire un division : par exemple 7
divisé par 3. Il y va 2 fois et il reste 1.
■ Une écriture plus formalisée de ce calcul est : 7 = 3*2 + 1.
– 2 est le quotient, et 1 est le reste de la division de 7 par 3.
■ Cette division est appelée la division Euclidienne, et une structure
algébrique dans laquelle une telle division est possible est appelée
Anneau Euclidien.
Théorème :
■ Z est un anneau Euclidien, c’est-à-dire que pour a et b entiers donnés,
il existe q et r uniques tels que
– a = b*q + r avec 0 < r < |b|
19/03/2020 Support de cours 38
Définition 1
a et b sont congrus modulo n s'ils ont même reste par la
division par n.
■ Par exemple 10 et 1 sont congrus modulo 9. On écrit
10=1 [9] ou 10 = 1 mod (9). On a de même - 8 = 1 [9].
■ On a vite fait de remarquer que tous les nombres congrus
à 1 mod(9) sont de la forme : multiple de 9 + 1. Ce qui
fait que deux nombres sont congrus modulo 9 si leur
différence est un multiple de 9.

19/03/2020 Support de cours 39


Définition 2
■ a et b sont congrus modulo n si b - a est un multiple de n ou encore si b - a
= k*n
■ Le choix dans les exemples ci-dessus de la congruence modulo 9 n’est pas
fortuit : pourquoi, dans la preuve par 9. se permet-on de remplacer 5734 par
5 + 7 + 3 + 4=19 puis par 1 ?
■ La première réponse est que 5734 = 1 [9] comme on peut le vérifier en
effectuant la division. Il reste cependant à expliquer cette règle d’addition
des chiffres de 5734.
– Or 5734 = 5*1000 + 7*100 + 3*30 + 4
– Mais 1000 = 1 [9], 100 = 1 [9] et 10 = 1[9]. On peut donc écrire
– 5734 = 5*1000 +7*100 + 3*30 + 4
– = 5*1 +7*1 +3*1 +4 [9]
– = 19 [9]
– = 1 [9]
19/03/2020 Support de cours 40
Théorème
■ Si x = x’ [n] et y = y’ [n] Alors x + y = x’+y’ [n] et x*y = x’*y’ [n]
Démonstration :
■ Si x = x’ [n] et y = y’ [n] , c’est-à-dire x - x’ = k*n et y - y’ =
k’*n (x - x’ et y - y’ multiples de n)
– alors (x - x ’) + (y - y ’) = (x + y) - (x’ + y’) = k*n + k’*n =
(k + k’)*n.
■ Pour la multiplication, la démonstration est similaire après
avoir écrit :
– x*y — x’*y’ = (x - x’)*y + (y - y’)*x’

19/03/2020 Support de cours 41