le chiffrement
DESCRIPTION
TRANSCRIPT
Présentation de
Ghazel Hanen
1
2
3
4
Science mathématique permettant d’effectuer des opérations sur un texte intelligible afin d’assurer une ou plusieurs propriétés de la sécurité de l’information.
5
Confidentialité
Non Répudiation
Intégrité
Authentification
La sécurité d’un système cryptographique ne doit pas
reposer sur la non divulgation des fonctions de chiffrement et de
déchiffrement utilisées mais sur la non divulgation des clés
utilisées pour les paramétrer.
6
Cryptographie à clé unique
7
Aussi dit « à clé secrète » Permet à partir d’une seul clé secrète de chiffrer et
de déchiffrer des données Problème de distribution des clés (canaux sécurisés) Exigences:
Un algorithme de cryptage solide. Une clé secrète partagée et connue entre l’émetteur et
le récepteur. Suppose que l’algorithme de cryptage est connu à
l’avance Exemples :
Algorithmes : ROT13, DES, IDEA, AES Taille des clés : 56-128-192-256-… bits
8
9
Voici le numérode ma carte de crédit 111111,
Texte clair
Clé01010000111
Clé01010000111
ÉmetteurRécepteur
Voici le numérode ma carte de crédit 111111,
Texte clairCryptage Décryptage
♠♣◊€£¥₪Ω٭
Texte crypté
Internet
Transmission par canal sécurisé
Cryptanalyste
Milieu non
sécuriséBobAlice
Utilisation de la même clé de chiffrement par les deux
interlocuteurs10
Cryptage par flux (Stream Cipher) Principe: Principe: Traite les éléments d’entrée de façon continue,
produisant à la fois un élément de sortie (crypté). La clé est aussi longue que le stream de données. Mode adapté pour la communication en temps réel: Pas
besoin d’attendre l’arrivé du block entier Implémenté en général sur des supports hardware.
Cryptage par bloc (Bloc Cipher) Principe: Principe: Le texte est divisé en différents blocks de taille
fixe. Un block est traité à la fois, produisant un block de données cryptées.
le block doit être entièrement disponible avant le traitement La même fonction et la même clé est utilisée pour
crypter les blocks successifs. Implémentation d’une manière logicielle en générale.
11
Algorithme symétrique : 2 modes
12
Chiffrement symétrique en stream
Chiffrement symétrique en bloc :
ECB : Electric Code Block
CBC : Cipher Block Chaining
EMi-1 Ci-1
EMi Ci
ECB Mode
EMi-1 Ci-1
EMi Ci
CBC Mode
Substitution Remplacement de chaque élément (bit, lettre, groupe de
bits ou de lettres) dans le texte clair par un autre élément.
Transposition Réarrangement des éléments du texte clair
La plupart des systèmes utilisent plusieurs étapes de transposition et de substitution.
Aucune information ne doit être perdue durant ces deux opérations.
13
Cette méthode correspond à substituer un caractère ou un groupe de caractères par un autre dans le texte à chiffrer.
Plusieurs types de crypto-systèmes par substitution : monoalphabétique (code César) consiste à remplacer chaque
lettre du message par une autre lettre de l'alphabet homophonique permet de faire correspondre à chaque lettre
du message en clair un ensemble possible d'autres caractères c'est un peu similaire aux méthodes employées par les mordus de SMS ;
polyalphabétique (code Vigenère) consiste à utiliser une suite de chiffrement, monoalphabétique réutilisée périodiquement ;
polygrammes consiste à substituer un groupe de caractères (polygramme) dans le message par un autre groupe de caractères.
14
Exemple: ROT13 (code de César sur Internet )
Site : http://www.apprendre-en-ligne.net/crypto/cesar/
Décalage de chaque lettre de l’alphabet latin de 13 lettres
15
n o p k l m
tt ee aa uu
gg rr nn hh
a b c x y z
…
Message en clair
Clé de chiffrement
Message en chiffré
bb aa
oonn
z a bm n o
…bb
tt ee aa uuaa
16
Phase de chiffrement
Phase de déchiffrement
Problèmes rendant la cryptanalyse de cet algorithme simple: Algorithme de cryptage et de décryptage connu. Seulement 25 clés à essayer. Le langage du message clair est connu et facilement
identifiable.
17
Exemple: Rail fence technique Principe: Le texte clair est réécrit comme une
séquence de lignes, puis réordonnée comme une séquence de colonnesKey: 4 3 1 2 5 6 7
Plaintext: a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
Ciphertext: TTNA APTM TSUO AODW COIX KNLY PETZ
Cryptanalyse possible vue que l’algorithme préserve la fréquence de distribution des lettres du texte original.
18
Algorithmes de chiffrement en continu (Stream Cipher) Exemple : RC4 (RSA Security)
Taille de la clé variable (128 bits en pratique).
Algorithmes de chiffrement par blocs (Block Cipher) Chiffrement par blocs de texte clair: 64 bits (DES), 128 bits
(AES).
DES (clé 56 bits), 3DES (clé de 168 bits ou 112 bits).
RC2 (clé 128 bits), Blowfish (clé 128bits, jusqu'à 448 bits), AES (clé 128, 192, 256 bits).
19
20
Algorithme Nom et commentaires Type de chiffrement Longueur de
la clé
Normalisé
DES Data Encryption Standard en bloc de 64 bits 56 bits FIPS Pub 81,1981 ANSIX3.92, X3.105, X3.106ISO 8372 ISO/IEC10116
IDEA International Data EncryptionAlgorithm,
en bloc de 64 bits 128 bits
RC2 dévelopé par Ronald Rivest en bloc de 64 bits variable,40b.export.
Non et propriétaire
RC4 dévelopé par R. Rivest enfilé variable40/ 128bits
Non, mais divulgé surl’Internet en 1994
RC5 dévelopé par R. Rivest en bloc de 32, 64 ou128 bits
variablejusqu’à2048 bits
Non et propriétaire
SKIPJACK Confidentiel développé aux ÉtatsUnis par la NSA (National SecurityAgency - Agence de sécuriténationale des États Unis) pour desapplications sur la carte PCMCIAFortezza.
en bloc de 64 bits 80 bits Secret défence aux États-Unis
Triple DES en bloc de 64 bits 112 bits ANSI X9.52
21
Avantages : Confidentialité des données. Rapidité, et facilité de mise en œuvre sur des circuits.
Limitations : Problématique de l'échange de la clé de chiffrement
Établissement préalable d'un canal sûr pour la transmission de la clé
Une tierce partie ne peut pas s’assurer de l’authenticité des messages.
Problème de la distribution des clés de cryptage Nécessité d’établir un canal sécurisé pour la transmission de
la clé Nombre de clés échangées (en n²).
L’algorithme « Advanced Encryption Standard »
22
DES pour « Data Encryption Standard ».
Introduit en 1977. Chiffrage symétrique par blocs Dérivé de l’algorithme Lucifer d’IBM
Fonctionne sur des blocs de 64 bits et des clés de 56 bits Adapté aux besoins techniques de l’époque. Aujourd’hui
les capacités et efficacités matérielles sont meilleures. Matériel spécialisé peut déterminer une clé DES 56 bits
en seulement quelques heures.
Besoin évident d’un nouveau standard de chiffrement.
23
1997: NIST(National Institute of Standards and Technology) lance la sélection de l’Advanced Encryption Standard qui remplacera le DES
Sélection des algorithmes s’est faite par : Sécurité prouvé contre des classes d’attaques Rapport coût-efficacité (matériel et logiciel) Architecture algorithmique Propriété intellectuelle
Présenté sous forme de concours: Deux tours de sélection 21 candidats (grandes entreprises, universitaires, et individus) 5 finalistes (MARS, RC6, Rijndael, Serpent, Twofish) Ouverture à la communauté par le biais de groupes de
discussion et de conférences
24
Concepteurs belges: Vincent Rijmen Joan Daeman
Publié en 1998 Chiffrage symétrique par blocs Dérivé de l’algorithme Square (des mêmes
concepteurs)
Le Rijndael: blocs de 128, 160, 192, 224 ou 256 bits, clé de 128, 160, 192, 224 ou 256 bits, et un nombre de rondes allant de 10 à 14. L’AES est un sous-ensemble: blocs de 128bits, clés de
128, 192, 256 bits, et 10, 12 ou 14 rondes.
Joan Daeman et Vincent Rijmen
25
26
Taille clé
(bits)
Taille de bloc (bits)
128 192 256
128 10 12 14
192 12 12 14
256 14 14 14
Tableau de nombre de rondes pour le Rijndael, déterminé en fonction de la taille des blocs et de la taille de la clé
AES
27
DES AES
Taille de clé 56 bits 128, 192 ou 256 bits
Type de chiffre Chiffre à bloc symétrique Chiffre à bloc symétrique
Taille de bloc 64 bits 128, 192 ou 256 bits
Résistance à la cryptanalyse Vulnérable à la cryptanalyse linéaire et différentielle; tables de substitution faibles
Résistant contre des attaques différentielles, linéaires et par interpolation.
Sécurité Prouvé comme inadéquat Considéré sécurisé
Clés possibles 256 2128,2192 ou 2256
Clés possibles composées de caractères ASCII affichables*
957 9516, 9524 ou 9532
Recherche sur toutes les clés possibles à 50 milliard de clés par seconde**
Pour une clé de 56 bits: 400 jours
Pour une clé de 128 bits: 5 x 1021 years
Source :* - Il y a 95 caractères ASCII affichables** - Temps affiché pour une recherche sur 100% des clés. ¨En théorie, une clé peut être trouvée après 50% de recherche.
AddRoundKeyAddRoundKey
SubBytesSubBytes
ShiftRowsShiftRows
AddRoundKeyAddRoundKey
SubBytesSubBytes
ShiftRowsShiftRows
MixColumnsMixColumns
AddRoundKeyAddRoundKey
12345678910
ronde
ronde initiale
9 rondes
ronde finale
0
Clé de chiffrage
Clé de ronde n
Clé de ronde 10
Le chiffrement se fait sur 10 rondescomposées de 4 étapes.
28
bloc départ
bloc arrivé
19 a0
3d f4
e3 e2
be 2b
9a e9
c6 f8
8d 48
2a 08
d4 e0
27 bf
11 98
ae f1
b8 1e
b4 41
5d 52
e5 30
19d4
S-BOX
Substituer chaque élément du bloc de données par l’élément correspondant dans la table de substitution (notée S-Box) telles que définie par Rijndael.
29
Animation basée sur une réalisation d’Enrique Zabala.
d4 e0 b8 1e
Décalage d’un octet
Décalage de 2 octets
Décalage de 3 octets
Effectuer un décalage cyclique sur chaque ligne en partant de la gauche, de 0 éléments pour la première ligne, puis 1 élément pour la deuxième, en
incrémentant le nombre d’élément à chaque ligne.
30
Animation basée sur une réalisation d’Enrique Zabala.
bf 4127 b4
11 98 5d 52
ae f1 e5 30
e0
b4
52
ae
b8
41
11
f1
1e
27
98
e5
=
04
66
81
e5
.d4
bf
5d
30
e0
cb
19
9a
48
f8
d3
7a
28
06
26
4c
Multiplier chaque colonne du bloc par un polynôme de degré 3 modulo un polynôme de degré 4 (tous deux constants et inversibles, tels que définis par Rijndael), ce qui revient à faire une multiplication matricielle pour chacune
des colonnes.31
Animation basée sur une réalisation d’Enrique Zabala.
04
66
81
e5
e0
cb
19
9a
48
f8
d3
7a
28
06
26
4c
a0
fa
fe
17
88
54
2c
b1
23
a3
39
39
2a
6c
76
05
Clé de ronde
(XOR)
a4
9c
7f
f2
68
9f
35
2b
6b
5b
ea
43
02
6a
50
49
Application d’un XOR terme-à-terme avec la clé de ronde.
32
Animation basée sur une réalisation d’Enrique Zabala.
Clé de chiffrage
Clé de ronde 2
Clé de ronde 10
Clé de ronde 1
…cf
09
ae f7
28
ab
7e
2b
4fd2
15
15
3c
a6
88
16
01000000
02000000
04000000
08000000
10000000
20000000
40000000
1b000000
80000000
36000000
fa
a0
fe
17
54
88
2cb1
a3
23
3939
6c
2a
7605
c2
f2
95
f2
96
7a
b943
a3
23
3939
59
73
f6
7f
14
d0
f9
a8
ee
c9
25
89
3f
e1
0cc8
63
b6
0c
a6
09
cf
4f
3c
84eb01
7e
2b
1516
ae
28
d2a6
fa
a0
fe
17
54
88
2cb1
8a
cf
09
4f
3c
==
Tableau de constantes de rondes
33
Animation basée sur une réalisation d’Enrique Zabala.
Chiffrement de documents confidentiels L’algorithme AES est utilisé pour protéger des
documents confidentiels.
Voix sur IP: Skype “Skype uses AES (Advanced Encryption
Standard), […] which is used by U.S. Government organizations to protect sensitive, information.”
WiFi: pour le WPA2 (norme IEEE 802.11i) Utilise l’algorithme AES plutôt que RC4 (utilisé par
WEP et WPA)
Compression de fichiers: WinRAR et WinZip
The Committee on National Security
Systems
34
NESSIE (New European Schemes for Signatures, Integrity and Encryption) Standard définit par l’Union
Européenne
CRYPTREC (Cryptography Research and Evaluation Committee) Standard japonais
Recommandent tous deux l’utilisation de l’AES
35
Key Size 1995 2005 2015 2030
40 bit key .2 seconds 2 milliseconds .02 milliseconds .02 microseconds
56 bit key 3.6 hours 2 minutes
1 second 1 millisecond
64 bit key 38 days 9 hours 5.5 minutes .3 seconds
80 bit key 7000 years 70 years 251 days 6 hours
112 bit key 10(13) years 10(11) years 10(9) years 10(6) years
128 bit key 10(18) years 10(16) years 10(14) years 10(11) years
36
Attaque exhaustive (brute force)
Attaques sur des versions simplifiées Certaines attaques effectuées avec succès en réduisant le nombre de rondes à 7, 8, et 9 (en ajoutant une contrainte supplémentaire sur la clé) publiées en 2000
Attaques sur la version complète Méthode XSL a suscité un débat au sein de la
communauté de la cryptologie
37
Publiée par Nicolas Courtois et Josef Pieprzyk en 2002 sous-entend pouvoir casser AES.
Attaque porte sur l’architecture de chiffrage du Rijndael.
Si possible, est une « certificational weakness »: requiert un nombre trop important de ressources, donc ne pose (actuellement) pas de problème à la sécurité réelle d’un système.
Démontré en 2004 par Claus Diem comme ne pouvant pas casser l’AES.
38
En 2004, lors de la conférence AES 4 à Bonn Vincent Rijmen, co-concepteur du Rijndael: "The XSL
attack is not an attack. It is a dream.“ Nicolas Courtois, auteur de la méthode XSL, répond: "It
will become your nightmare".
Sources :
39
40
Cryptographie à double clés.
41
Initié dans les années 70 Whyfield Diffie Martin Hellman Ralph Merkle
But : Permettre les échanges chiffrés sans entente préalable sur une clé commune
42
Appelé aussi: cryptographie à clé publique / à paire de clés / asymétrique
Représente une révolution dans l’histoire de la cryptographie
Utilisation de deux clés:
Clé publique: Connue par tout le monde, et peut être utilisée pour crypter des messages ou pour vérifier la signature.
Clé privée: Connue par le récepteur uniquement, utilisée pour décrypter les messages, ou pour créer la signature.
43
Si on crypte avec l’une de ces clés le décryptage se fait uniquement avec l’autre.
Impossible de trouver la clé privée à partir de la clé publique.
Exemples : RSA (Rivest, Shamir & Adleman) El-Gamal Diffie-Hellman ECC (Elliptic curve cryptography)…
44
45
Cryptage Internet
Internet
DécryptageVoici le numérode ma
carte de crédit
111111,
♠♣◊€£¥₪Ω٭
Texte clair
Clé publiquedu récepteur
Clé privéedu récepteur
Émetteur Récepteur
Voici le numérode ma
carte de crédit
111111,
Texte clair
Texte crypté
Scénario: confidentialité
46
Cryptage Internet
Internet
DécryptageVoici le numérode ma
carte de crédit
111111,
♠♣◊€£¥₪Ω٭
Texte clair
Clé privéede l’émetteur
Clé publiquede l’émetteur
ÉmetteurRécepteur
Voici le numérode ma
carte de crédit
111111,
Texte clair
Texte crypté
Scénario: authenticité de l’émetteur et non répudiation d’envoi
Milieu non
sécuriséAA AA BBBBAA BB
BobAlice
47
Basé sur une paire de clés (publique et privée)
Fonction mathématique « à sens unique » liant l’une à l’autre Multiplication vs. Factorisation Exponentiation vs. Logarithme
Plus dur est l’opération inverse (« reverse ») par rapport à l’opération de base (« forward »), plus l’algorithme peut être qualifié de sûr
48
Exemple Multiplication vs. Division : 165*285 = 47025 47025 = x * y ?
Exemple Exponentiation vs. Logarithme : 17^13 = 9904578032905937 logx 9904578032905937 = y ?
49
3 utilisations : Chiffrage / déchiffrage Signature numérique (Digital Signature) Echange de clé (Key Exchange)
Garantie : Authentification Confidentialité Intégrité Non-répudiation
50
Clé publique de BobClé publique de Bob Clé privée de BobClé privée de Bob
Alice peut verrouiller un message avec le cadenas de Bob
Seul Bob peut ouvrir le cadenas51
Source :
52
From:AliceBonjour
BobSignature
From:AliceBonjour
Bob
BobAlice
Signature
OK !OK !
53
From:AliceBob, tu es renvoyé
Signature Eve
From:AliceBob, tu es renvoyé
Bob
Alice
Signature Eve
BAD!BAD!
Eve54
Permet la discussion sans accord préalable sur une clé commune
Peut être utilisé pour communiquer une clé de chiffrage symétrique de façon confidentielle (algorithmes symétriques plus efficaces)
55
« Elliptic Curve Cryptography »
56
Idée d’utiliser les courbes elliptiques pour la cryptographie née en 1985 Victor Miller (IBM) Neal Koblitz (University of Washington)
Libre, grand potentiel, mais trop lent Certicom
Société Canadienne crée en 1985 Nouvelles implémentations des algorithmes ECC Premier produit commercial basé sur ECC en 1997 Place prépondérante dans l’exploitation de l’ECC En relation avec N. Koblitz
N. Koblitz
57
Les courbes elliptiques sont définies sur tous les ensembles possibles (réels, complexes, entiers, …)
Equation d’une courbe Elliptique: y² = x³ + ax + b
58
Source :
Exemples de courbes :
59
Source :
Exemples de courbes :
60
Utilisé sur des groupes finis en cryptographie
Groupe mathématique doté de la loi +
Source :
P + Q = R(Addition)
2P= R(Doublement)
61
Chiffrement / déchiffrement ECIES : Elliptic Curve Integrated Encryption Scheme
(El-Gamal ) Signature numérique (Digital Signature)
ECDSA : Elliptic Curve Digital Signature Algorithme ECPVS : Elliptic Curve Pintsov Vanstone Signature ECNR: Elliptic Curve Nyberg Rueppel
Echange de clé (Key Exchange) ECDH : Elliptic Curve Diffie-Hellman ECMQV : Elliptic Curve Menezes-Qu-Vanstone
62
P
BobAliceE(a,b,K)
kBPkA
PkA = 2
E(a,b,K)PkB = 3
kAPkB
PkA PkB
2P = PkA
3P = PkB
4P
5P
-6P
6P = kBPkA = kAPkB
PkA PkB
PirateE(a,b,K)PPkA
PkB
Clé ???
63
y
x
A et B s’accordent sur la courbe et le domaine utilisé pour l’échange.A et B s’accordent sur le point d’origine de l’échange.A et B choisissent au hasard une clé privée de x bits selon niveau de sécurité.
A et B calculent puis s’échangent leur clé publique Pk.
A et B calculent le produit de leur clé privée et de la clé publique de l’autre. Le résultat est identique pour A et B et sera utilisé comme clé pour
l’échange.
Les valeurs utilisées ici sont très réduites afin de simplifier la compréhension et la lisibilité.
Source :
64
La difficulté de casser l’algorithme est basée sur le problème des logarithmes discrets (DLP)
Pour l’ECC, rallonger la clé permet d’augmenter le temps de cassage de tn
En comparaison RSA (Factorisation), DSA (Petit Théorème de Fermat), Diffie-Hellman (DLP) le temps augmente de t√n
65
Source :
66
Pollard-Rho (le plus efficace)
Baby-step giant-step
Pohlig Hellman’s reduction
Xedni
Attaque exhaustive (Brute force)
67
ECC-224 plus rapide que RSA-1024
Sources :
68
Parfait pour périphériques mobiles Facile à gérer en hardware Clés réduites, réduit bande passante Faible consommation (chaleur, batterie)
Intérêts serveurs Faible consommation de ressource système (plus de
requêtes satisfaites) Consommation électrique réduite
Cryptographie conçue pour durer
69
Motorola
Alcatel-Lucent :Certicom's technology enables operators to offer virtual private network (VPN) solutions to the growing base of DSL users
RIM : large-scale deployment of Certicom's high-performance, highly efficient ECC within its secure wireless devices
NSA70
71
Le « ECC/TLS Interoperability Forum » a été créé en 2006 pour promouvoir l’usage de l’ECC dans le cadre du protocole HTTPS. Les membres actuels sont des représentants de Apache/OpenSSL, Certicom, IBM, Microsoft, Mozila/Firefox, NSA, Red Hat, RSA, Sun et Verisign.
72
Fin de présentation.
73