Eléments de 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 » : 1560c8afac2fa4c0b61d6b7774406c8b pour 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 !