Upload
rolande-sellier
View
109
Download
3
Embed Size (px)
Citation preview
Eléments de cryptographie
Cryptographie
Présentation
En 2012, la cryptologie joue un rôle fondamental dans l'ensemble des activités humaines liées à l'utilisation des NTIC. Elle permet d'assurer : Confidentialité, Intégrité Authentification
qui sont nécessaires à l'activité économique et au commerce.
Plan Vocabulaire Historique Stéganopraphie Généralités Cryptographie symétrique
Chiffrement par blocs Chiffrement par flots
Cryptographie asymétrique Fonctions de hachage Cryptographie hybride Conclusion
Vocabulaire - I
Nécessité de préciser le sens de certains termes en raison d'une certaine confusion et des multiples anglicismes utilisés :
chiffrement : transformation à l'aide d'une clé de chiffrement d'un message en clair en un message incompréhensible si on ne dispose pas d'une clé de déchiffrement (en anglais encryption) ;
Vocabulaire - II
chiffre : anciennement code secret, par extension l'algorithme utilisé pour le chiffrement ;
cryptogramme : message chiffré décrypter : retrouver le message clair
correspondant à un message chiffré sans posséder la clé de déchiffrement (terme que ne possèdent pas les anglophones, qui eux « cassent » des codes secrets) [1];
Vocabulaire - III cryptographie : étymologiquement « écriture
secrète », devenue par extension l'étude de cet art (donc aujourd'hui la science visant à créer des cryptogrammes, c'est-à-dire à chiffrer) ;
cryptanalyse : science analysant les cryptogrammes en vue de les décrypter ;
cryptologie : science regroupant la cryptographie et la cryptanalyse.
Vocabulaire - IV
le terme « crypter » n'a pas de raison d'être : le couple chiffrer/déchiffrer et le sens du mot « décrypter » vont dans le sens de l'Académie française qui précise que le mot est à bannir et celui-ci ne figure pas dans son dictionnaire, en tout cas pas dans le sens où on le trouve en général utilisé.
Cryptograpie – Historique 1
Plus vieux document chiffré : XVIeme siècle av. JC. en Irak – recette secrete en supprimant consonnes et lettres
Grèce : Xe et XXIe siècle – utilisation de la cytale – transposition avec bande de cuir enroulée sur un baton
Hébreux : transpositions de lettre
Cryptographie – Historique - 2
Code de César : substitution alphabétique => décalage de x caractères (3 pour César) - ROT13
Faible sécurité : analyse statistique sur les fréquences de lettres
Modification => substitution polyalphabétique => la position de chaque lettre correspond à un alphabet de déchiffrement
Cryptographie – Historique - 3
Carré de Polybe : chaque lettre est remplacée par sa position dans un carré
Chiffre de Vigenere – 1586 : utilisation d'une clé permettant de se repérer dans un tableau de lettres 26 x 26 : la lettre de la clé donne la colonne, celui du texte donne la ligne Chiffrement et déchiffrement simples Peu sensible à l'analyse de fréquence des lettres Cassé au XIXe par Ch. Babbage (1850)
Cryptograpie – Historique - 4
La machine Enigma 1920 Utilisée par l'armée allemande Subsitution polyalphabétique -(rotors) Transposition élémentaires (connectors) 1016 possibilités (très élevé pour l'époque) Cassée par l'équipe d'Alan Turing en 1945 à
Bechley Park à l'aide de Colossus (1er ordinateur) de même que le code Lorenz utilisée par la hiérarchie allemande.
Cryptograpie – Historique - 4
Les Navajos - 1944 : WindTalkers Années 60 : utilisation des ordinateurs 1975 : algorithme DES 1976 : Diffie Hellman : idée de la cryptographie
à clé publique 1977 : mise en oeuvre cryptographie à clé
publique RSA - Rivers Shamir et Adleman
La stéganographie cryptographie : art du secret stéganographie : art de la dissimulation. On
s'efforce de rendre le message inaperçu Hérodote : tablette de bois gravée puis recouverte
de cire, tatouage sur le crâne micro point des services secrets allemands en
1939-1945 correspondance G. Sand Alfred de Musset
La stéganographie transport d'un message dans une image :
bits de poids faible (format BMP) modification de la compression (JPEG) modification de la palette (GIF et PNG)
transport d'un message dans un son : bits peu significatifs (MP3) changement de pistes (MIDI)
utilisable pour le tatouage des documents (Watermarking)
Principe de Kerchoff
Auguste Kerchoff (1883) La cryptographie militaire « l'algorithme de chiffrement doit pouvoir tomber
sans inconvénients aux mains de l'ennemi » la force du chiffrement réside sur la clé, en effet :
la confidentialité de l'algorithme est difficile à garantir. le caractère public de l'algorithme améliore ses qualités
intrinsèques
Types d'attaque
Attaque en aveugle (exhaustive ou « brute force »).
Attaque à clairs connus. Attaque à clairs choisis. Attaque à clairs choisis adaptatifs. Attaque à chiffrés choisis. Attaque à clé choisie.
L’attaque en force brute Dite encore « attaque en aveugle » ou attaque
exhaustive Consiste à essayer toutes les combinaisons de
clés Prend habituellement un temps considérable à
moins qu’une faiblesse soit découverte
Les rainbow tables Appelées tables arc en ciel ensemble de pairs mot de passe /empreinte
précalculées (120 Go pour Windows) permettant de trouver rapidement un mot de passe du fait de l'absence de « salage »
Un même mot de passe produit toujours la même empreinte
RainbowCrack, ophtcrack exemples : empreintes LM/NTML pour Windows ophtcrack
Attaque par dictionnaire
consiste à tester un grand nombre de mots choisis dans un dictionnaire adapté au contexte
John the Ripper
Cryptographie symétrique
on utilise le même algorithme pour chiffrer et déchiffrer
également appelée cryptographie à clé secrète impose l'existence d'un secret partagé
Crytographie – Les clés plus la clé est longue, plus l'algorithme est
résistant à une attaque exhaustive : clé de n bits => en moyenne 2 n-1 essais pour
trouver la bonne clé AES : 128 bits => 2128 clés possibles ~ 3,4 1038
La sécurité provient de la complexité et du temps nécessaire pour explorer l'espace de clés.
Algorithmes basés sur des propriétés mathématiques qui peuvent être évaluées précisément (nombre premiers, factorisation, .)
Crytographie – Chiffre de Vernam Masque jetable – chiffre de Vernam clé totalement aléatoire de longueur égale à
celle du message (Gilbert Vernam – 1917) utilisée une seule fois => système parfaitement sûr
Le chifrement/déchiffrement se fait par Ou Exclusif (XOR)
Problème : la clé fait la même longueur que le messages => clé de 20 Mo
Crytographie – Chiffre de Vernam - suite
One Time Password : clé à usage unique : téléphone rouge Maison Blanche – le Kremlin Problème : gestion du dictionnaire de clés lourde et
complexe
Crytographie – Les tours
le chiffrement est fait en utilisant deux transformation (permutation et substitution). Un tour (round) consiste à effectuer les deux.
nombre de tours élevé => plus grande sécurité au prix d'une plus grande charge de calcul => lenteur (cf. AES/DES)
la valeur de l'algorithme est toutefois plus importante que le nombre de tours
Cryptographie symétrique – II
Transposition : Permutation (P-BOX). Opérations mathématiques : x3 mod pq, ...
Substitution (S-BOX): Tableaux indexés (n x m). Opérations binaires : XOR, ...
Chiffrement par blocs
les données sont traitées par bloc de taille (habituellement fixe) d'une puissance de 2 comprise entre 32 et 512
quleques exemples d'algorithmes de chiffrement par blocs : DES, AES, Blowfish, TwoFish
un chiffrement par bloc peut être utilisé comme fonction de hachage
Cryptographie symétrique : DES - I Data Encryption Standard - 1977 1er algorithme de chiffrement pour l’industrie. Standard américain FIPS 46-2. Principes de base :
Produit de substitutions/transpositions. blocs de 64 bits clé de 56 bits 16 tours
Cryptographie symétrique : DES - II 255 opérations nécessaires Bilan
lenteur d'exécution espace de clé trop petit => attaque en un temps
raisonnable on utilise maintenant le Triple DES, IDEA ou AES
Cryptographie symétrique : Triple DES
ou 3DES 3 applications successives de l'algorithme DES
avec 2 ou 3 clés différentes. force de la clé : 112 et non 168 48 tours !!! assez lent et remplacé par AES
Cryptographie symétrique : AES
Advanced Encryption Standard choisi en 2000 par le NIST utilise l'algorithme Rijndael conçu par Joan
Daemen et Vincent Rijmen, Fonctionnement
bloc de 128 bits clé : 128, 192 ou 256 bits.
Pour une clé de 128, 192 ou 256, AES nécessite respectivement 10, 12 ou 14 tours.
Cryptographie symétrique : AES – II
il n'a pas été cassé la seule méthode est la « force brute ».
L'algorithme Rijndael a été conçu de telle manière à rendre des méthodes classiques comme la cryptanalyse linéaire ou différentielle très difficiles.
les recommandations de la NSA documents secret : 128, 192 ou 256 bits documents très secrets : 192 ou 256 bits
Cryptographie symétrique : Blowfish
conçu par Bruce Schneier en 1993 Taille du bloc : 64 bits Longueur clé : 32 à 448 bits (par tranche de 8
bits) 16 tours 5 fois plus rapide que 3DES utilisé dans de nombreux logiciels propriétaires
et libres (GnuPG et OpenSSH)
Cryptographie symétrique : Blowfish – II
pas de vulnérabilité importantes décelées à ce jour
seule attaque possible : exhaustive
Cryptographie symétrique : Twofish conçu par Bruce Schneier, Niels Ferguson,
John Kelsey, Doug Whiting, David Wagner et Chris Hal en 2000
Taille du bloc : 128 bits Longueur clé : 128, 192, 256 bits 16 tours parmi les 5 finalistes du concours AES
Cryptographie symétrique : Twofish
assez rapide conçu pour être utilisé dans les cartes à puces
et les systèmes embarqués attaque : exhaustive
Cryptographie symétrique : IDEA International Data Encryption Algorithm 1991 Blocs de 64 bits Clé de 128 bits 8,5 tours Très sûr – breveté par Médiacrypt
Chiffrement par flot
utilise un générateur de nombre pseudo-aléatoires sur lequel on opère un XOR (⊕ bit à bit avec le flux de données
Chiffrement du message M avec la clé K : M ⊕ K = C
Déchiffrement du message C avec la clé K : C ⊕ K = (M ⊕ K) ⊕ K = M ⊕(K ⊕ K) = M
Exemples : RC4, A5 (GSM), E0 (BlueTooth)
Générateur de nombres pseudo aléatoires Algorithme génerant des nombres présentant les
caractéristiques du hasard. En cryptographie, il doit être proche de l'aléas
parfait et résister à des analyses statistiques permettant de prédire la suite
Quelques noms Yarrow (utilisé par /dev/urandom dans Mac OsX) Fortuna Blum Blum Shub ISAAC
Générateur de nombres pseudo aléatoires - II
Un générateur peut utiliser le désordre d'un système (mouvements souris, clavier, ...) comme source d'aléa et à envoyer le résultat à une fonctionne de hachage comme MD5 ou SHA-1
Cryptographie symétrique : RC4
Ronald's Code 4 concu par Ronald Rivest de RSA Security en
1987 – marque déposée mais algo non breveté utilisé dans SSL ou WEP générateur de bits pseudo-aléatoires dont le
résultat est combiné avec le texte en clair via une opération XOR, le déchiffrement se fait de la même manière .
Utilise une permutation de tous les octets et des pointeurs d'index
Cryptographie symétrique : RC4 - II
La permutation est initialisée grâce à la clé de taille variable, typiquement entre 40 et 256 bits, grâce au key schedule (génération de sous-clé) de RC4.
peu sûr au point de vue cryptographique => attaque WEP
Cryptographie symétrique : RC5
chiffrement par bloc, évolution de RC4 blocs de 32, 64 ou 128 bits taille de clé : de 0 à 2048 (multiple de 8) 1994 de 1 à 255 tours (12 à l'origine)
Cryptographie symétrique : Shacal
Chiffrement symétrique par blocs basé sur des fonctions de type SHA-1
Gemplus (cartes à puce) Taille bloc :64 bits Clé : 128 à 512 bits 80 tours
Crytographie asymétrique : Diffie Hellman
Whifield Diffie et Martin Hellman : inventeurs de la cryptographie à clé publique – 1976
Idée décrite mais pas de dipositif développé
Crytographie asymétrique
également appelée cryptographie à clé publique
Algorithmes lents utilisés seulement pour les échanges de clés et non pour le flot de données
Crytographie asymétrique : RSA
algorithme de cryptographie asymétrique à clé publique développé par Rivest Shamir Adelman (1977) – breveté et tombé dans le domaine public en 2000
utilisation d'une paire de clés publique pour chiffrer privée pour déchiffrer
Permet d'assurer l'authentification
Crytographie asymétrique : RSA - II
Utilise les propriétés des factorielles (très difficile à casser), le petit théorème de Fermat et des tests de primalité
Pb : factoriser rapidement un grand nombre Cryptanalisé depuis 25 ans : pas de failles Plus grand nombre factorisé : 663 bits en 2005 Clés RSA : entre 1024 et 2048 bits Utilise par de nombreuses application SSL,
SSH
Crytographie asymétrique : El Gamal
conçu par Taher El Gamal basé sur les logarithmes discrets utilisé pour le chiffrement et la signature
électronique utilisation libre utilisé dans GnuPG et PGP
Crytographie asymétrique : DSA
Digital Signature Algorithm – 1993 algorithme de signature électronique Utilisée par les Etats Unis (NIST) à l'époque
où RSA était breveté peut être utilisé gratuitement
Les fonctions de hachage - I un fonction de hachage est une fonction qui fait
subir une succession de traitements à une donnée en entrée pour en produire une « empreinte » servant à identifier la donnée initiale.
Les fonctions de hachage sont très utiles en cryptographie où elles sont utilisées pour chiffrer une donnée initiale sans que l'opération inverse de décryptage soit possible, à moins d'essayer une attaque exhaustive
Les fonctions de hachage – II
fonction non injective petite modification sur l'entrée => gros effet sur
l'empreinte (effet avalanche) éviter les collisions problème : même entrée => même empreinte :
utilisation d'un sel aléatoire ajouté à l'entrée pour changer l'empreinte
Les fonctions de hachage – III
le sel permet de lutter contre les attaques par dictionnaire et par rainbow table (passwd Linux).
Exemples de fonctions de hachage : MD5, SHA-1, SHA-256, SHA-512, Whirlpool, Tiger
Les fonctions de hachage : MD5 Message Digest 5 inventé par Donald Rivest pour améliorer MD4
(utilisé pour les mdp Windows) permet d'obtenir une empreinte numérique de
128 bits (32 caractères) faille grave découverte en 1996, il n'est plus
considéré comme sûr au niveau cryptographique
cassé en 2004 par des chercheurs chinois : création de collisions complètes
Les fonctions de hachage : MD5 - Suite remplacé par SHA-1 et ses variantes décrit dans la RFC 1231 encore utilisé pour la vérification d'intégrité de
transferts de fichier (FTP, ...) Ex md5 de la chaine « Salut » :
1560c8afac2fa4c0b61d6b7774406c8bpour la chaine « salut « , on obtient :6aba532a54c9eb9aa30496fa7f22734d
sous Linux, la commande md5sum permet de calculer l'empreinte
Les fonctions de hachage : SHA-1
Secure Hash Algorithme 1 conçue par la NSA produit un hash ou condensat de 160 bits possibilité de trouver une collision complète
avec 263 opérations (à la limite du faisable) plus lent que MD5 de plus en plus remplacée par SHA-256 et
SHA-512 plus robustes
Code d'authentification de message appelé CAM ou HMAC (keyed-hash message
authentication code) semblable à une empreinte de hachage mais
utilise en plus une clé secrète Le CAM assure que le message est inchangé
(intégrité) et vient de l’expéditeur (authentification, par l’utilisation de la clé secrète).
Exemple : HMAC-MD5, HMAC-SHA1
Cryptographie hybride ou mixte utilise les deux familles d'algorithmes :
symétrique et asymétrique crypto. symétrique : rapide mais nécessite un
secret partagé. Comment transmettre la clé ? on utilise la cryptographie asymétrique qui permet
l'authentification pour le transfert de la clé Une clé aléatoire est générée pour un algorithme
symetrique (AES, 3DES, ...), elle sera utilisé ensuite pour chiffrer le message.
Cette clé est crypté grâce à la clé publique du destinataire (RSA, Diffie Hellman)
Cryptographie hybride ou mixte - suite
On envoie donc le message chiffré avec l'algorithme symetrique accompagné de la clé chiffrée correspondante.
Le destinataire déchiffre le message avec sa clé privée puis dechifre le message grace à la clé symétrique.
Le transfert se fait en chiffrement symétrique plus rapide
En conclusion
Algorithme secret ≠ sécurité élevée. Au contraire ...
Rien n’est acquis en cryptographie. Taille de clé variable adaptée à l'état de la
technique. « Seuls les paranoïaques survivent »...
... peut-être !