INF4420: Sécurité Informatique Cryptographie I
Transcription
INF4420: Sécurité Informatique Cryptographie I
INF4420: Sécurité Informatique Cryptographie I José M. Fernandez M-3109 340-4711 poste 5433 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Aperçu du module – Cryptographie (3 sem.) Définitions et histoire Notions de base (théorie de l'information) Chiffrement Méthodes "classiques" Cryptanalyse de base Chiffrement symétrique Chiffrement à clé publique Autres primitives cryptographiques Principes d'applications Risques résiduels RÉFÉRENCES : Stinson, « Cryptography : Theory and Practice », chap. 1,2,3,4. Bishop, « Computer Security : Art and Science », chap. 9,10,11,32. 2 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Définition et nomenclature Historique Modèle de Shannon Source d’information Codage et compression Entropie et redondance Aperçu – Crypto I (aujourd’hui) Chiffrement Chiffrement et codage Algorithmes « classiques » Cryptanalyse de base Force brute Reconnaissance de texte Analyse de fréquences Texte et cryptogramme choisi 3 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Un peu de grec classique… Kryptos = "caché", "secret" Graphos = écriture => Cryptographie => Cryptanalyse Logos = "savoir" => Cryptologie Stéganos = "couvert", "étanche" => Stéganographie Définitions et terminologie Un peu d'américain… Alice Bob Ève (Charlie) Encrypt and Decrypt Un peu de français !!! Chiffrer et déchiffrer Coder et décoder Crypter et décrypter (!) Irène !!! (l'ingénieure) Un peu de math… 4 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Historique Les trois ères de la cryptographie « Classique » • Jusqu’au masque jettable « Moderne » • Crypto électro-mécanique et WWII • Guerre froide … • Crypto électronique et informatique - DES « Âge d’or » • Chiffrement à clé publique • Cryptologie et autres tâches cryptographiques • Internet et enjeux commerciaux 5 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Source Modèle de Shannon Codeur Canal Décodeur Récepteur Alice Bob Source Irène Produit des symboles d'un "alphabet" (sigma) Fonctionne "sur demande" (d'où le "bouton") Codage Regroupe et transforme les symboles de la source dans un format pouvant être transmis ou sauvegardé Canal Peut introduire du bruit Transmission peuvent être interceptés Décodage Permet de reconstruire le message original (séquence des symboles de source) 6 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Source d'informations Alphabet Ensemble discret fini Σ = {σ σ1, …, σM} Par convention taille de Σ, |Σ Σ| = M Contrôle un "bouton" qui permet d'obtenir un symbole à la fois Principe de la boîte noire Autre que le bouton et un nombre petit d'observations (symboles), on ne peut rien savoir sur le contenu ou fonctionnement de la source (sauf peut-être Alice, mais pas Ève, Irène ou Bob). Pourquoi cette abstraction ?? Permet de discuter de l'efficacité du codage (théorie de l'information) Permet d'analyser correctement la résistance à certaines menaces • Algorithmes de chiffrement • Choix de mots de passes et phrases de passe 7 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Sources dérivées Source par bloc Étant donné une source S, et un entier positif b, la source Sb représente la source obtenue en encapsulant S par une boîte qui mets b symboles de S dans un tampon ("buffer") avant de les sortir à l'extérieur Noter que l'alphabet de Sb est maintenant Σb Source par échantillonnage Étant donné une source S, et un entier positif b, la source S1/b représente la source obtenue en encapsulant S par une boîte qui émet seulement le 1er symbole de chaque b symboles sortie de S dans L'alphabet de S1/b est le même que S, soit Σ 8 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Modélisation de la source Interprétations "Déterministe" • La boîte "connaît" à l'avance toute la séquence de symboles (potentiellement infinie…) Probabiliste • La boîte choisit les symboles au fur et à mesure selon un distribution de probabilité Processus markovien ou "sans mémoire" : p_i = Prob (S => " σi"), ∀ 1<i<M e.g. Prob (Sb => " σi , σj") = pi pj Processus non-markovien Les probabilités de symboles peuvent dépendre des symboles antérieurs sortis de la source… 9 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Codage Translittération Un codage traduit les symboles de source vers un autre "alphabet" Τ = { τ1, …, τN}, Fonction de codage F : Σ Τ, • τ = F(σ), représente comment le symbole σ devra être transmis Fonction de décodage F-1: Τ Σ • σ ' = F-1(τ), si σ ' ≠ σ, il n'y a eu une erreur de transmission/codage 10 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Efficacité du codage - Compression Compression Dans certaines circonstances, on voudrait pouvoir coder en utilisant moins de bande passante, p.ex. tel que N < M Efficacité du code est mesuré en bits transmis par chaque symbole de source émis 1er Théorème de Shannon • 1. Efficacité maximum d'un code compresseur est approx. égale à H(S) • 2. Il existe un code compresseur (sans erreur) avec efficacité H(S)+1 11 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Entropie de Shannon Définitions H(S) = Σ i pi log2 1/pi • Q: Comment est-ce qu'on calcule pi si la source n'est pas Markovienne? • A: En utilisant les fréquences de symboles, calculés sur la chaîne infinie… Propriétés Σ = 0,1 • Prob (S="0") = Prob (S="1") = 1/2 => H(S) = 1 bit (valeur maximal) • Prob (S="1") = 1; Prob (S="0") = 0 => H(S) = 0 bit (valeur minimal) Σ arbitraire, |Σ Σ| = N • Valeur minimale H(S) = 0 , quand Prob (S= σ)=1 pour un σ donné • Valeur maximale H(S) = log N bits, quand Prob (S= σi) = Prob (S= σj), ∀ σi , σj ∈ Σ Source markovienne • Si S est markovien, alors H(Sb) = b*H(S) • Sinon, en général H(Sb) ≤ b*H(S) 12 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Interprétation de l’entropie d’une source Interprétation de H(S) 1er théorème dit que • chaque symbole émit par S peut être codé individuellement avec en moyenne H(S) bits Mais si, on permet que le codage regroupe 2 lettres à la fois ? Alors, par 1er théorème on peut coder chaque digramme (2 symboles) avec H(S2) bits, soit H(S2)/2 bits par symbole Taux de compression Sans compression log N bits par symbole Avec compression par bloc de b lettres H(Sb)/b bits par lettre H (S b ) / b Taux de compression = log N 13 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Entropie du langage de la source À cause des propriétés de H, plus b est grand plus le taux de compression sera élevé, jusqu’à une certaine limite On définit l’entropie HL du langage associé à la source S (langage = ensemble de chaînes que S génère) H (S b ) H L ( S ) = lim b →∞ b qui représente le « minimum » de bits par symboles qu’il sera nécessaire pour coder des chaînes de symboles émises par S, même si on permet de coder par blocs de plusieurs symboles à la fois. 14 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Correction d'erreur Code correcteur d'erreur L'introduction de bruit dans le canal est compensé en utilisant code "correcteur d'erreur" t.q. Prob (F-1(σ σ') = σ) 1, quand σ' est le symbole reçu via le canal L'efficacité du code correcteur d'erreur Dépend du niveau de bruit introduit par le canal • celui-ci peut être mesuré avec l'entropie de Shannon Se mesure également en nombre de bits nécessaires par symbole de source, pour un code qui corrige "presque toutes les erreurs" 2e Théorème de Shannon • Établit le lien entre l'efficacité du code correcteur d'erreur et le niveau de bruit du canal 15 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Modèle de Shannon révisé Ève σ Source τ Codeur τ' Chiffr. τ Déchif. σ Décodeur Récepteur Bob Alice Irène 16 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Modèle de Shannon révisé Ève Peut intercepter impunément tous les mots de codes τ transmis sur le canal Irène Choisit l'algorithme de chiffrement Détermine la politique de choix et gestion de clés Doit tenir en compte le codage • en considérant les caractéristiques de la source (DP, entropie, etc.) • en influençant le choix de codage (si possible) • en choisissant et adaptant l'algorithme de chiffrement en conséquence (choix de taille de clés, compression/décompression, etc.) Pourquoi : voir TP 1… 17 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Algorithme de chiffrement – Concepts généraux Alphabet Entrée : Τ Sortie : en général Τ, mais peut-être un autre alphabet Fonction de chiffrement Clé de chiffrement = ke τ' = E(ke, τ) = Ek1 (ττ) Fonction de déchiffrement Clé de déchiffrement = kd τ = D(kd, τ') = Dk2(ττ) Ne corrige pas les erreurs donc, En général τ = τ' 18 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Algorithmes "classiques" mono-alphabétiques Algorithme de César Source • texte en caractères latin Codage • lettres chiffres de 1 à 26 (20 pour être historiquement exact) Chiffrement • x x+3 mod 26 Clés • nil Algorithme de décalage Source et codage • idem Chiffrement • x x + k mod 26 Clés Algorithme de substitution Source • Idem Codage • aucun Chiffrement • x π(x) Clé • π (une table de substitution) Algorithme afin Source et codage • lettres en chiffres Chiffrement • x a x + b mod 26 Clé • (a,b) où a, b ∈ {1,…,26} • k ∈ {1,…,26} 19 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Algorithme de Vigenère Algorithme de Vigenère Source • Texte en caractères latin Codage • lettres chiffres de 1 à 26 Clé • K = k1 k2 … km , mot/phrase de longueur m Chiffrement • xi (xi + k i mod m ) mod 26 C S + E E C X I Y N S 3 5 3 9 14 19 5 24 25 19 22 10 1 V J A 8 H 7 G E E S X T Y P S A E 5 19 20 16 5 24 25 19 1 5 21 14 5 16 9 24 25 19 5 24 16 5 ... 25 19 ... 6 F 19 13 24 21 S M N U 15 24 ... O X ... 10 17 19 J Q S 9 I U X N Y E S P E I X 7 G P Y E ... S ... 20 INF INF4420 4420 Sécurité SécuritéInformatique Informatique Méthode de cryptanalyse de base Force brute Taille de l’espace de clés Critère de reconnaissance ou succès • Patron ou format reconnaissable • Le texte « fait du sens » • Le texte « marche », e.g. mot de passe, etc. Analyse fréquentielle Établir le tableau des fréquences Connaître les fréquences de la source Codage connu Rétro-ingénierie de l'algorithme de chiffrement: • Marche pour les algorithmes de substitution mono-alphabétiques • Peut marcher pour les poly-alphabétiques, si fréquences connues Mesure de facilité ENTROPIE !!!! • (mais attention : entropie de la source vs. entropie du langage) COMPRÉSSIBILITÉ !!! 21