CRYPTOGRAPHIE

publicité
CRYPTOGRAPHIE
Amel Guetat
Licence Pro ATC
05/02/2008
INTRODUCTION - HISTORIQUE
La cryptographie est la science de l’écriture secrète
Du grec kruptos, caché et graphein qui signifie écrire
Première apparition dans le domaine militaire
Code de César : substitutions mono-alphabétiques simples
http://www.bibmath.net/crypto/substi/cesar.php3
Enigma: substitution poly-alphabétique
Aujourd’hui applications militaires et civiles
INTRODUCTION - TERMINOLOGIE
Cryptographie :
Conception de formules mathématiques permettant de
transformé un message clair en un message chiffré
Message
Chiffrement
en clair
Message
Déchiffrement
chiffré
Message
en clair
Algorithme (formule)
Algorithme (formule)
+ clé (secret)
+ clé (secret)
Décryptage : retrouver le message en clair sans la clé
Cryptanalyse : l’art du décryptage
INTRODUCTION - OBJECTIFS
La confidentialité d’informations sensibles
Historiquement la première utilisation
Intégrité
L’authenticité
S’assurer de l’identité d’un
Authentification
individu ou d’une application distante
Le contrôle d’intégrité
Non-Répudiation
Détecter toute altération
Confidentialité
d’information (stockée ou transmise)
La non-répudiation
Empêcher un expéditeur de pouvoir nier son envoi
CONFIDENTIALITÉ DES DONNÉES
Concept
permettant de s’assurer que
l’information ne peut être lue que par les
personnes autorisées
Solution
dans le monde réel :
Utilisation d’enveloppes scellées
Verrouillage avec clés
Mesures de Sécurité physique
Utilisation de l’encre invisible
etc
AUTHENTIFICATION
Concept
permettant de s’assurer que
l’identité de l’interlocuteur et bien celle qu’il
prétend
Techniques
traditionnelles :
Some Thing you Know
: mot de passe
Some Thing you Have
: carte à puce
Some Thing you Are : empreinte digitale
INTÉGRITÉ DES DONNÉES
Ensemble
de moyens et techniques
permettant
de
restreindre
la
modification
des
données
aux
personnes autorisées
NON-RÉPUDIATION
Ensemble
de moyens et techniques
permettant de prouver la participation d’une
entité dans un échange de données
PRINCIPAUX TYPES D’ALGORITHMES
Algorithmes à clé secrète ou symétriques
Algorithmes à clé publique ou asymétrique
Algorithmes de condensation
Algorithmes de signature numérique
Algorithmes d’échange de clés
CRYPTOGRAPHIE SYMÉTRIQUE :
PRINCIPES
Clé
01010000111
Clé
01010000111
Texte clair
Cryptage
Voici le
numéro
de ma
carte de
crédit
111111,
Internet
Décryptage Texte clair
Voici le
numéro
de ma
carte de
crédit
111111,
☺☼♀☻
♠♣▼╫◊
♫◙◘€£
¥₪Ω‫٭‬
Texte crypté
Emetteur
Récepteur
CRYPTOGRAPHIE SYMÉTRIQUE :
MODES OPÉRATIONNELS
Cryptage par flux
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
Cryptage par bloc
Opère sur des blocs de données de taille fixe
Implémentation logicielle en générale
ALGORITHME SYMÉTRIQUE
Principalement
deux opérations
Substitution (remplacement d’un caractère)
Transposition (changement de position d’un caractère)
Avantage
Rapidité
Inconvénients
Problème de la confidentialité de l’échange des clés
Algorithme d’échange de clés
Une paire de clé par interlocuteurs gestion exponentielle
CRYPTOGRAPHIE SYMÉTRIQUE :
EXEMPLES
DES : Data Encryption Standard
Développé par IBM
Standard depuis 1977
Utilise des clé de taille 56 bits
DES n’offre plus un niveau de sécurité acceptable
3DES a remplacé DES mais il est extrêmement
lourd
CRYPTOGRAPHIE SYMÉTRIQUE :
EXEMPLES
AES
: Advanced Encryption Standard
(Rijndael)
Développé par Vincent Rijmen et Joan
Daemen
Standard cryptographique depuis 2000
Sélectionné parmi une vingtaine
d’algorithmes qui ont participés à un
concours lancé par NIST
Utilise des clés de tailles 128, 192 et 256
bits
ALGORITHME ASYMÉTRIQUE
Une clé pour chiffrer, une autre clé pour déchiffrer
Clé C1 publique
Hello
Chiffrement
world
Clé C2 privée
f}ÊO ð;6tÊb
ØÃÉm\u000
Déchiffrement
Utilisation asymétrique des clés
Chiffrement avec C1 déchiffrement avec C2
Chiffrement avec C2 déchiffrement avec C1
Hello
world
CRYPTOGRAPHIE ASYMÉTRIQUE :
PRINCIPES
Chaque personne dispose d’une paire de clé :
: connue uniquement par son
propriétaire
Clé publique : publiée dans des annuaires
publiques
Clé privée
Si on crypte avec l’une de ces clés le décryptage se
fait uniquement avec l’autre
CRYPTOGRAPHIE ASYMÉTRIQUE
PREMIER MODE (1)
Clé privée
du récepteur
Clé publique
du récepteur
Texte clair
Cryptage
Voici le
numéro
de ma
carte de
crédit
111111,
Internet
Décryptage
Voici le
numéro
de ma
carte de
crédit
111111,
☺☼♀☻
♠♣▼╫◊
♫◙◘€£
¥₪Ω‫٭‬
Texte crypté
Emetteur
Texte clair
Récepteur
CRYPTOGRAPHIE ASYMÉTRIQUE
PREMIER MODE (2)
Ce
mode assure la
confidentialité des
données
Confidentialité
CRYPTOGRAPHIE ASYMÉTRIQUE
DEUXIÈME MODE (1)
Clé publique
de l’émetteur
Clé privée
de l’émetteur
Texte clair
Cryptage
Voici le
numéro
de ma
carte de
crédit
111111,
Internet
Décryptage
Voici le
numéro
de ma
carte de
crédit
111111,
☺☼♀☻
♠♣▼╫◊
♫◙◘€£
¥₪Ω‫٭‬
Texte crypté
Emetteur
Texte clair
Récepteur
CRYPTOGRAPHIE ASYMÉTRIQUE
DEUXIÈME MODE (2)
Ce
mode assure
l’authenticité de
l’émetteur ainsi que
la non-répudiation
Authentification
Non-Répudiation
AVANTAGES ET INCONVÉNIENTS
Avantages
Confidentialité : pas d’échange de clé secrète
Tout le monde peut écrire secrètement à A avec sa clé
publique
Authentification : c’est aussi un algorithme de signature
A peut écrire en prouvant que c’est bien lui
Inconvénient
Très lent à l ’exécution
CRYPTOGRAPHIE ASYMÉTRIQUE :
EXEMPLES
RSA
(Ron Rivest, Adi Shamir et
leonard Adelman) : algorithme utilisé
pour le cryptage et la signature
électronique
Diffie-Hellman
: algorithme utilisé pour
l’échange et la distribution des clés
symétriques
ALGORITHME ASYMÉTRIQUE
Exemple
RSA (Rivest Shamir Adleman - 1977)
Choisir deux grands nombres premiers P et Q, N = P × Q
Choisir la clé de chiffrement E : E premier avec (P−1) × (Q−1)
Calcul de la clé de déchiffrement D :D × E ≡ 1 mod [(P−1)(Q−1)]
Clé publique (E,N)
M
C = ME (mod [N])
Clé privée (D,N)
C
M = CD (mod [N])
M
ALGORITHME ASYMÉTRIQUE
RSA (suite)
La longueur en bits de N donne la longueur de la clé RSA
Blocs M de taille inférieure à N
Clé de 512, 768, 1024 et 2048 bits
« Cassage » de clé par factorisation des grands nombres
Clé de 512 bits cassée en 1999
Sûr avec une longueur de clé importante (1024 bits)
Clé publique (17,35)
15
C = 1517 (mod [35])
Clé privée (5,35)
C
M = C5 (mod [35])
15
EXERCICE 1: CODE DE CÉSAR
But: Décaler les lettres de l’alphabet avec un nombre k.
A B C D E F G H I J
0 1 2 3 4 5 6 7 8 9
Message chiffré=(Message initiale+clé) mod 26
Message initiale = (Message chiffré - clé) mod 26
Exemple: NSA avec une clé k=5 SXF
• Déchiffrer le message suivant et trouver la clé k du décalage.
SH WYVJOHPUL MVPZ VU JVTTLUJL HCLJ
SLZ AW
• quelle est le nombre maximal d’essaie à faire pour trouver la solution ?
EXERCICE 2: CHIFFREMENT AFFINE
Clé: (k1,k2)
et pgcd(k1,26)=1
Chiffrement d’un message M
Avec k1, k2 є [0,25]
C=(k1*M + k2) mod 26
Déchiffrement d’un message C
M=(k1)-1 * (C-k2) mod 26
Exemple: le clé est (3,11)
• chiffrement Message= NSA : 13 - 18 - 0 24 - 13 - 11 YNL
• Déchiffrement : (k1)-1 = 3-1 mod 26 = 9 car 3*9 mod 26=1
EXERCICE 2 :
Chiffrer
une phrase quelconque selon une clé
de votre choix (maximum 5 mots):
Ex: Licence
professionnel ATC
Échanger
les messages ainsi chiffrés avec un
de vos collègues.
Déchiffrer la phrase de votre collègue et donner
le temps de calcul pour effectuer cette
opération.
Quel est le nombre de combinaisons maximum
nécessaire pour déchiffrer un code affine?
Attention: k1, k2 є [0,25]
et pgcd(k1,26)=1
L'ANALYSE DES FRÉQUENCES
Méthode de cryptanalyse
Al-Kindi au IXe siècle
Examiner la fréquence des lettres
employées dans un message chiffré
Fréquemment utilisée pour décoder
des messages chiffrés par
substitution (Chiffre de Vigenère ou le
Chiffre de César).
CHIFFRE DE VIGENÈRE
Système de Chiffrement
De Vigenère au
XVIe siècle
Chiffrement
polyalphabétique:
Exemple:
Clé: ECS
M: HELLOWORLD
ECSECSECSE
C: LGDPQOSTHD
Lettre en Clair
Clé
EXERCICE 3 :
Chiffrer
une phrase quelconque en utilisant le
tableau de Vigenère selon une clé de votre choix.
Échanger
les messages ainsi chiffrés avec un de
vos collègues.
Déchiffrer
vos messages respectifs.
EXERCICES 1 BIS
Profiter
de la figure suivante pour accélérer le
temps de déchiffrement. (cryptanalyse)
Fréquences des lettres en Français
EXERCICE 4 : RSA
1.
2.
3.
4.
Détailler la procédure à suivre pour générer un
couple clé publique et clé privée par l’algorithme
de RSA.
Chiffrer le message « 21 » avec la clé publique
(103, 143). Le calcul peut être facilement fait à la
main en remarquant que 214 ≡ 1 (mod 143).
Sachant que N=11x13, calculer la clé privée
associée à la clé publique (103, 143).
Déchiffrer le message obtenu en 2. pour retrouver
le message en clair.
ALGORITHME DE CONDENSATION (HACHAGE)
Hello
Condensation
world
H
Longueur quelconque
Condensé /
Empreinte
Longueur fixe (128 bits par exemple)
Propriétés:
Grande dispersion: Un petit écart entre deux documents doit créer un grand écart
entre les condensés
Absence de collision: 2 textes différents ne génèrent pas un même condensé:
T1 ≠ T2 H(T1) ≠ H(T2)
Irréversibilité:
Connaissant T, il est facile de trouver H(T)
Connaissant H(T), il est très difficile d’obtenir T
Exemples
MD5 (Message Digest - 1991): génère un condensé de 128 bits
SHA 256 : génère un condensé de 256 bits
ALGORITHME DE SIGNATURE NUMÉRIQUE
Garantir
l’intégrité d’un document
Authenticité
=
?
Vérification
SIGNATURE NUMÉRIQUE (SUITE)
Exemple
RSA (Clé publique (E,N) - Clé privée (D,N))
Émetteur : signe M
S = M E (mod [N])
Récepteur : vérifie la signature
M ' = S D (mod [N]) ; M ' = M ⇒ OK
ALGORITHME D’ÉCHANGE DE CLÉS
Garantir la confidentialité de la clé secrète
Exemple
D-H (Diffie-Hellman)
Génération à distance d’une clé secrète
Sûreté
Impossible pour un espion d’obtenir la clé échangée
Attaque par le milieu possible
Basé sur le problème du logarithme discret
ALGORITHME D’ÉCHANGE DE CLÉS
Schéma de l’algorithme de Diffie-Hellman
Alice
g et p grands ; (p-1)/2 premier
Bob
g premier par rapport à p
Choix de deux entiers g et p
Choix de x (entier)
X = g
x
(mod
[p])
Choix de y (entier)
Y = gy
(mod
[p])
X
Y
Calcul de
Calcul de
C = Yx
(mod
[p])
C = Xy
Communication secrète - Clé C
(mod
[p])
ATTAQUES CRYPTOGRAPHIQUES
Cryptanalyse
Attaques à texte chiffré
Messages chiffrés (même algo., clé) décryptage
Attaques à texte en clair connu
Messages clairs et équivalents chiffrés découverte de
la clé
Attaques à texte clair choisi
Chiffrer un message en clair facilite la découverte de la
clé
LES CERTIFICATS NUMÉRIQUES
Protocoles cryptographiques asymétriques
Basés sur la diffusion et la connaissance des clés publiques
Problème
Qu’est-ce qui vous prouve qu’une clé publique appartient bien
à votre correspondant et non à un espion ?
Solution : un certificat numérique
« Carte d’identité » en quelque sorte
Associe à une identité une clé publique
Certification par une autorité de confiance (le tiers de confiance)
Tiers de confiance - autorité de certification (CA)
Doit s’assurer de l’exactitude des données du certificat
Signe le certificat avec sa clé publique
CERTIFICATION NUMÉRIQUE D’UNE CLÉ
PUBLIQUE
APPLICATIONS - MESSAGERIE
PGP (Pretty Good Privacy - P. Zimmermann)
Protocole cryptographique hybride
Échange d’une clé secrète par cryptographie à clé asymétrique
(RSA)
Échange par cryptographie à clé symétrique (IDEA)
Pas de certificat : climat de confiance
Versions gratuites et commerciales
S/MIME (Secure/Multipurpose Internet Mail Extensions)
Chiffrement (hybride) et/ou signature
(DES ou RC2) et/ou (MD5 ou SHA avec RSA)
Certificat X.509 v3
Intégré dans Microsoft Outlook Express et Netscape Messenger
APPLICATIONS - SECURE SOCKET LAYER
Commerce électronique : SSL
Netscape
SSL v1 (1994), SSL v3(1995)
TLS (Transport Layer Security) en 1999
Fonctionne suivant un mode client/serveur.
Entre les couches applications (HTTP, FTP, SMTP, etc.) et la
couche transport TCP.
Caractéristiques au niveau sécurité
Authentification du serveur
Confidentialité des données échangées
Intégrité des données échangées
En option: Authentification ou Authentification forte du client
avec l'utilisation d'un certificat numérique.
Indépendance / plate-forme
Téléchargement