Cryptographie introduction 1. introduction
Quelques problèmes… L’assaillant peut espionner depuis une machine du réseau local L’assaillant peut espionner en accédant à distance. L’assaillant peut espionner en prenant le contrôle de tout ou partie des supports physiques de transmission Paires torsadées, câbles coaxiaux, fibres optiques Liaisons radio, liaisons satellite
Place du chiffrement symétrique Deux choix principaux Au niveau physique Le chiffrement peut être fait indépendamment sur chaque support de transmission Nécessite de déchiffrer à chaque équipement intermédiaire pour traiter l’information et donc de nombreuses paires de clés De bout en bout Le chiffrement est fait entre émetteur et destinataire finals de l’information Nécessite seulement des équipements aux extrémités avec des clés partagées
Carctéristiques des deux choix
Placement du chiffrement Par rapport au modèle de référence OSI Le niveau physique concerne les couches 1 ou 2 Le niveau de bout en bout peut être vu dans la couche 3, 4 ou 6 ou 7 Plus le chiffrement est placé dans les couches hautes et Moins il y a d’informations chiffrées mais meilleur est le niveau de sécurité Si le chiffrement est placé dans la couche application, cela suppose que toutes les entêtes de protocoles transitent en clair….
Portée du chiffrement
Analyse de trafic Quand on utilise le chiffrement de bout en bout, il faut laisser les entêtes en clair pour que le réseau assure correctement sa fonction de routage Même si les contenus sont protégés, les “modèles de trafic” ne le sont pas A priori, les deux sont souhaitables Protection des contenus de bout en bout et authentification Protection des flux de données
Distribution des clés Les algorithmes de chiffrement symétriques nécessitent le partage d’une clé secrète Il faut donc assurer le transport sûr de cette clé Si la clé est compromise lors de la phase de distribution, toutes les communications le seront !
Schémas de distribution de clés Plusieurs variantes pour 2 partenaires A choisit une clé et la tansmet physiquement à B (valise diplomatique par exemple) Une tierce partie C choisit un clé et assure la distribution à A et B Si A et B ont déjà partagé une clé auparavant, ils peuvent utiliser l’ancienne clé pour chiffrer la nouvelle Si A et B ont des communications sûres avec une tierce partie C, C peut relayer les clés entre A et B
Scénario de distribution KDC : Centre de distribution des clés
Distribution de clés : quelques considérations Dans les grands réseaux, il faudra plusieurs KDC, une hiérarchie de KDC… et donc une confiance entre les KDC Pour améliorer la sécurité, les clés ont une durée de vie limitée impact sur le trafic et la charge des KDC… On peut imaginer des mécanismes automatiques de génération des clés… mais il faut faire confiance aux systèmes La distribution des clés doit être décentralisée pour plus d’efficacité
Distribution de clés : quelques considérations (suite) un utilisateur souhaitant communiquer avec plusieurs personnes en assurant de niveaux de confidentialité distincts doit utiliser autant de clés privées qu'il a d'interlocuteurs. Pour un groupe de N personnes utilisant un cryptosystème à clés secrètes, il est nécessaire de distribuer un nombre de clés égal à N * (N-1) / 2.
Chiffrement symétrique : bilan Les systèmes traditionnels de chiffrement symétrique utilisent une clé partagée entre émetteur et destinataire Si la clé unique est découverte, toutes les communications sont compromises Le chiffrement est dit symétrique car les opérations sont identiques des deux côtés Permet de fournir la confidentialité
Chiffrement symétrique : bilan Algorithmes utilisant ce système DES (Data Encryption Standard, très répandu) : les données sont découpées en blocs de 64 bits et codées grâce à la clé secrète de 56 bits propre à un couple d’utilisateurs. Triple-DES permet d’utiliser des clés de 168 bits mais les délais de calculs sont nettement plus longs. IDEA, RC2, RC4 Avantage Rapide Inconvénients Il faut autant de clés que de couples de correspondants La non-répudiation n’est pas assurée. Mon correspondant possédant la même clé que moi peut fabriquer un message en usurpant mon identité Distribution de clés
Data Encryption Standard
Les insuffisances Les systèmes à clé secrète sont insuffisants à deux points de vue Distribution des clés – comment avoir en général des communications sûres sans faire “confiance” à un KDC ? Signatures numériques – comment vérifier qu’un message provient bien de l’émetteur prétendu ?
Vers le chiffrement asymétrique Avancée très significative… utilise deux clés : l’une est publique (dans un annuaire, par exemple) l’autre est secrète ou privée (jamais transmise) Le chiffrement est dit asymétrique car le fonctionnement est différent entre émeteeur et destinataire Les méthodes utilisées ne sont plus substitution ou transposition mais des aspects complexes de la théorie des nombres et autres problèmes dits NP- complets….
Comment ça marche ? Le chiffrement asymétrique utilise deux cléss qui sont liées l’une à l’autre la clé publique, que tout le monde peut connaître, sert à chiffrer les messages et vérifier les signatures la clé privée, connue de son seul propriétaire, est utilisée pour déchiffrer les messages chiffrés avec la clé publique correspondante et créer des signatures La clé utilisée pour chiffrer les messages ou vérifier les signatures ne peut pas déchiffrer les messages ni créer des signatures
Chiffrement asymétrique : confidentialité Alice utilise la clé publique de Bob Bob Le texte d’Alice est totalement confidentiel car seul Bob a sa clé privée et peut donc le déchiffrer
Chiffrement asymétrique : authentification Bob est sûr de l’identité de l’émetteur Alice car elle seul a pu chiffrer un message avec sa clé privée Alice utilise sa clé privée pour signer
Applications du chiffrement asymétrique trois catégories Chiffrement/déchiffrement : l’émetteur chiffre son message en utilisant la clé publique du récepteur Signature numérique : l’émetteur signe son propre message en utilisant sa clé privée Echange de clés : deux partenaires peuvent s’échanger des clés de session
La sécurité apportée par les algorithmes asymétriques De même que pour les algorihtmes symétriques, les attaques brutales sont théoriquement possibles mais tout se passe comme si les clées étaient de très grande taille (>512bits) Il y a une énorme différence de complexité entre le chiffrement simple et le déchiffrement difficile Le problème du déchiffrement est connu, il est difficile à résoudre à cause du coût des calculs Les méthodes utilisées travaillent sur des grands nombres (plusieurs centaines de chiffres…)
RSA Inventé par Rivest, Shamir et Adleman (MIT) en 1977 Le chiffrement est basé sur la fonction exponentielle dans un corps de Galois sur des nombres entiers modulo un nombre premier L’exponentielle prend O((log n) 3 ) opérations (simple !) Les nombres entiers sont codés en binaire sur 1024 bits… Le déchiffrement nécessite de décomposer les nombres en facteurs premiers La factorisation prend O(e log n log log n ) opérations (difficile)
RSA : fonctionnement (1) Chaque utilisateur génère sa clé ainsi : Choisir deux (grands) nombres premiers au hasard : p, q Calculer leur produit n=p·q et la grandeur ø(n)=(p-1)(q-1) Choisir au hasard une clé de chiffrement e Telle que 1 < e < ø(n), pgcd(e,ø(n))=1 résoudre l’équation suivante pour trouver la clé de déchiffrement d e·d = 1 mod ø(n) and 0 ≤ d ≤ n Publier la clé de chiffrement : KU= {e,n} Garder secret la clé de déchiffrement : KR= {d,n}
RSA : fonctionnement (2) Pour chiffrer un message M L’émetteur va chercher la clé publique du destinataire KU={e,n} et calcule C=M e mod n avec 0 ≤ M < n Pour déchiffrer le cryptogramme C Le récepteur utilise sa clé secrète KR={d,n} et calcule M=C d mod n Remarque : le message M doit être un nombre plus petit que n (il faut découper les messages de façon adéquate)
Pourquoi RSA marche ? Il faut connaître le Théorème d’Euler a ø(n) mod n = 1 où pgcd(a,n)=1 Dans RSA, nous avons n=p·q ø(n)=(p-1)(q-1) e et d sont choisis pour être inverses mod ø(n) D’où il existe un k tel que e·d=1+k·ø(n) donc C d = (M e ) d = M 1+k·ø(n) = M 1 ·(M ø(n) ) k = M 1 ·(1) k = M 1 = M mod n
Exemple : choix des clés p=17, q=11 n=pq=17×11=187 ø(n)=(p–1)(q-1)=16×10=160 e: pgcd(e,160)=1 et e<160 choisissons e=7 Determinons d: de=1 mod 160 et d<160 d=23 puisque 23×7=161=10×160+1 Clé publique KU={7,187} Clé secrète KR={23,187}
Exemple : chiffrement et déchiffrement message M = 88 ( 88<187 ) chiffrement C = 88 7 mod 187 = 11 déchiffrement M = mod 187 = 88
Exponentielle Propriété du produit arithmétique [(a mod n) (b mod n)]mod n = (a b)mod n On décompose l’exposant en binaire (somme de puissances de 2) Cela prend O(log 2 n) pour un nombre n 7 5 = 7 4 ·7 1 = 3·7 = 10 (mod 11) = ·3 1 = 5·3 = 4 (mod 11)
RSA : Génération des clés Les utilisateurs doivent Déterminer deux nombres premiers au hasard - p,q choisir e ou d et calculer l’autre Les nombres premiers p,q ne doivent pas être facilement trouvables à partir du produit n=p·q Cela signifie que p,q doivent être suffisamment grands
Sécurité apportée par RSA trois façons pour attaquer un système RSA Recherche par force brutale (rendue impossible du fait de la taille des nombres) Recherche mathématique (rendue difficile car le calcul de l’indicateur d’Euler ø(n), n’est pas simple à partir du nombre n) Recherche récente exploitant les délais de calculs pour l’algo de déchiffrement
Factoriser le nombre n L’approche mathématique peut prendre 3 formes factoriser n=p·q, puise trouver ø(n) et donc d déterminer directement ø(n) et trouver d trouver d directement On considère ces trois approches comme équivalentes Peu d’améliorations au fil des années Depuis 1999 on sait traiter des nombres de 155 chiffres décimaux (qui s’écrivent sur 512 bits) Un premier pas récemment avec un algorithmé amélioré “Quadratic Sieve” to “Generalized Number Field Sieve” to “Special Number Field Sieve” RSA est considéré comme sûr sauf découverte nouvelle Encore faut-il que p et q soient de même taille et que les autres contraintes soient respectées….