La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Confidentialité I : Chiffrement symétrique IFT6271--Hiver 2014 3 e cours Louis Salvail.

Présentations similaires


Présentation au sujet: "Confidentialité I : Chiffrement symétrique IFT6271--Hiver 2014 3 e cours Louis Salvail."— Transcription de la présentation:

1 Confidentialité I : Chiffrement symétrique IFT6271--Hiver e cours Louis Salvail

2 Confidentialité par chiffrement Une des principales méthodes pour assurer la confidentialité des données est le chiffrement. Les méthodes de chiffrement offrent deux outils qui fonctionnent à partir dune clé : C := E K (M) chiffre le message M avec la clé K ; D K (C) déchiffre le message C avec la clé K. Nous voulons que, sans connaître la clé K, C=E K (M) ne donne pas dinformation sur M.

3 Le scénario M KK M C ? ?

4 nécessite une clé de 4 lettres! Le seul chiffre parfaitement sûr A:=0, B:=1,..., Y:=24, Z:=25. A:=0, B:=1,..., Y:=24, Z:=25. F+Y := 5+24 (mod 26) = 29 (mod 26) = 29 (mod 26) = 3 = 3 := D. := D. F+Y := 5+24 (mod 26) = 29 (mod 26) = 3 := D. ALL O QZAB QML P Un message de 4 lettres QZAB ALL O Q:=Q+A M:=Z+L L:=A+L P:=B+O EK(M)EK(M) Q-Q:=A M-Z:=L L-A:=L P-B:=O DK(M)DK(M)

5 Ce qui le rend à peu près inutilisable lorsque les communications sont fréquentes! Il nest pas trop difficile de se convaincre que, si la clé est aléatoire, le message chiffré ne contient pas dinformation sur le message clair (Shannon, 1949). Cependant, la clé doit être aussi longue que le message et ne doit être utilisée quune seule fois! Tout système de chiffrement qui dissimule toute linformation sur le message clair à quiconque ne connaissant pas la clé aura la même faiblesse (Shannon, 1949). Est-ce la panacée? NON!NON!

6 Dans la pratique Un système de chiffrement devrait nécessiter une clé secrète de longueur indépendante de la longueur du message à transmettre. Un système de chiffrement devrait permettre de chiffrer plusieurs messages avec la même clé. Malheureusement, il nest pas possible quun tel système cache toute linformation sur le message clair même à un adversaire qui ne connaît rien sur la clé secrète! Nous sommes dans limpasse!

7 Une autre approche Relaxons un peu la condition quun chiffre ne doit pas donner dinformation sur le message clair : Un cryptogramme C ne doit pas donner dinformation sur le message clair M à quiconque ne pouvant essayer les déchiffrements de C avec (presque) toutes les clés. Noter que si ladversaire avait le temps de calculer tous les déchiffrements possibles de C, alors il pourrait sans doute déterminer de linformation sur M en conservant les messages qui sont bien formés. Une attaque de ce type est appelée « recherche exhaustive de clés ». Notre notion de sécurité relaxée dira dun système de chiffrement quil est sûr sil ne peut être attaqué que par la recherche exhaustive de clés.

8 Est-ce raisonnable? Supposons que le déchiffrement de C avec clé K peut seffectuer en 1μs sur un ordinateur (ce qui est pas mal rapide). Combien de temps est nécessaire pour effectuer une recherche exhaustive de clés lorsque la clé est de longueur : 16 bits? 2 16 X sec = X = 0,06 sec. 32 bits? 2 32 X sec = 4295 secs. 64 bits? secs = années. 128 bits? 2 64 X années >>>>>>> lâge de lunivers ! OUI!OUI!

9 Chiffres symétriques Un chiffre est appelé symétrique si la clé de chiffrement est la même que celle pour le déchiffrement. La clé peut être réutilisée pour le chiffrement de plusieurs messages. Ces systèmes sont habituellement très performants! La longueur des clés secrètes doit être assez grande pour exclure la recherche exhaustive des clés. Ceci nest cependant pas une garantie de sécurité...

10 Un peu dhistoire Le chiffre de César: Chiffrement : A->D, B->E, C->F,..., X->A, Y->B, Z->C. Déchiffrement : A->X, B->Y, C->Z,..., X->U, Y->V, Z->W. Quand César transmettait le message : UHWLUHCYRXV alors RETIREZVOUS..... Le chiffre de César na donc pas de clé secrète!!!!! NON SÛR!

11 César avec une clé! Nous pouvons facilement ajouter une clé au chiffre de César. La clé est 0 K 25 et indique le décalage appliqué à chaque lettre du message. Le chiffre de César est le cas spécial K=3. Pour montrer que ce chiffre est peu sûr, essayez de déchiffrer : ID RTHR UDMV IZH UT IZH UZHMBV! 26 clés possibles est bien trop peu!!!!

12 Alphabet mélangé (chiffrement par substitution monoalphabétique) Dans ce chiffre, la clé correspond à une permutation des lettres de lalphabet : [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z][A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z] [D,H,Q,A,X,E,W,T,U,P,L,G,M,V,K,I,B,Y,Z,C,F,J,K,N,S,O][D,H,Q,A,X,E,W,T,U,P,L,G,M,V,K,I,B,Y,Z,C,F,J,K,N,S,O] ELEPHANTESQUE -> XGXITDVCXZBFX Le nombre de clés possibles est 26! = 4.03 X > 2 91 ! Est-ce sûr?

13 Cryptanalyse statistique Remarquez quétant donné un message chiffré C, le tableau des fréquences des lettres de C contient les mêmes valeurs que celui des lettres du message clair M. Si M est un message en français, la lettre la plus fréquente est E. Ainsi, il est très probable que la lettre la plus fréquente de C soit en fait la version chiffrée de E. La procédure peut être répétée. La deuxième lettre la plus fréquente en français est le A. On sattend à ce que la lettre de C, deuxième quant à sa fréquence, devrait être la version chiffrée de A. En continuant ainsi, beaucoup dinformation sur le message M peut être obtenue à partir de C. Même avec plus de 2 91 clés possibles, M nest pas chiffré de façon sûre! Lanalyse fréquentielle a été découverte par Al Kindi au 9e siècle, peut-être en étudiant le Coran (il faut des textes écrits pour y parvenir!).

14 La machine Enigma La machine Enigma permettait à larmée allemande de communiquer dune façon jugée alors sûre. Elle effectue un chiffrement symétrique à laide de 3 rotors (embrouilleurs, ou roues), chacun induisant une permutation de lalphabet (3 rotors avant la guerre, 4 ensuite). La clé secrète est de taille (environ ) : 6 dispositions des 3 rotors, chaque roue peut être placée de 26 façons différentes ( possibilités), et substitutions de quelques (6) paires de lettres. Brisé par les Polonais à cause du mode dutilisation (de courts messages étaient répétés).

15 La machine... Alan Turing à Bletchley Park

16 Substitutions et transpositions Shannon (1949) propose dutiliser des fonctions pour créer des transformations de mixage qui distribuent les messages intelligibles uniformément sur lensemble des messages chiffrés possibles. Un exemple commun est lutilisation de transpositions (permutations), de substitutions et dopérations linéaires simples. Évidemment, toutes ces opérations doivent être inversibles pour permettre le déchiffrement... P A T A T E Q B U C V G Substitution 1 G U V B C Q Transposition 1 Substitution H V W D E S Transposition 2 V H D W S E

17 Data Encryption Standard (DES) DES est un standard NIST (des années 1970) pour le chiffrement à clé secrète de blocs de données de taille fixe. Sa version la plus simple (et la moins sûre) : Chiffre des blocs de données de 64 bits. La clé secrète est longue de 56 bits (en fait 64 bits dont 8 bits servent à tester la parité de chaque bloc de 8 bits de clé).

18 Ceci applique une substitution définie par la clé de ronde Bloc de données à chiffrer : Permutation initiale Ronde 1 Ronde 2 Ronde 16 G0G0 D0D0 K0K0 F(D 0,K 0 ) +G 0 D1=D1= G1=D0G1=D0 Notez que sil y avait moins de 16 rondes, certaines attaques connues pourraient briser DES. DES dérive 16 clés de 48bits, une pour chaque ronde, à partir dune seule clé de 64(56) bits. Les clés DES sont codées sur 64 bits (8 octets) mais chaque octet contient un bit de parité (de sorte que la parité de chaque bloc est impaire). Le résultat est une clé de 64-8=56 bits!

19 Dérivation des clés pour les rondes DES L a clé de 56 bits est permutée. E lle est ensuite séparée en 2 clés de 28 bits. À chaque ronde, chaque partie est décalée dune ou deux positions vers la gauche (dépendant de la ronde). D es sous-clés de 48 bits sont extraites en prenant 24 bits dans chaque partie de 28 bits. L es 24 bits considérés varient en fonction de la ronde. C haque bit de clé original est utilisé dans environ 14 des 16 sous-clés générées (une par ronde).

20 Les rondes F(D n,K n )+G n E: fonction dexpansion S: fonction de substitution E La fonction E double certains des 32 bits pour en obtenir 48 dans un ordre un peu modifié. Le bloc D n, à la sortie de E, est scindé en 8 blocs de 6 bits D n1,D n2,...,D n8 Le sous-bloc D ni est utilisé pour lévaluation de la fonction de substitution S i. Le premier et dernier bit du sous-bloc indiquent la rangé de S i à consulter tandis que les 4 bits du milieu indiquent la colonne de S i à consulter. S D n1 = rang=01col=0110 sortie : 1101=13 Nous revenons à 32 bits!!!!

21 Linsécurité de DES simple Une clé de 56 bits nest pas suffisante pour sassurer quune fouille exhaustive des clés nest pas possible. Cest probablement pourquoi ce système de chiffrement a été adopté comme tel ( 72,057,594,037,927,936 clés ) : De nombreux processeurs peuvent déchiffrer plus de 92 milliards de clés/sec. Un grand organisme peut accomplir une fouille exhaustive en déchiffrant en parallèle à laide de plusieurs machines. Des machines dédiées peuvent briser DES pour moins de $ en quelques heures. Des versions plus fortes ont été proposées. Triple-DES est un système de chiffrement avec 112 bits de clé très utilisé dans le monde bancaire: 3DES KK (M) = DES K (DES K -1 (DES K (M))). 2 chiffrements plus 1 déchiffrement DES avec deux clés sont nécessaires pour éviter certaines attaques. 72 Billiards

22 Briser DES (56 bits) Cherche 92 milliards de clés/sec. Kocher et Jaffe ont gagné $ en 1998 : Défi DES organisé par RSA. A déterminé une clé en 56 heures. Coût : $

23 DES : modes de fonctionnement (ECB) Comment utiliser DES pour chiffrer des données de beaucoup plus que 64 bits? Nous pourrions décomposer un long message M en blocs de 64 bits M=(M 1,M 2,..,M s ), cest lElectronic Codebook Mode: M1M1M1M1 M2M2M2M2 M3M3M3M3 M4M4M4M4 DES K (M 1 ) DES K (M 2 ) DES K (M 3 ) DES K (M 4 ) C1C1C1C1 C2C2C2C2 C3C3C3C3 C4C4C4C4 Supposons que M= ou M= Il est possible de déterminer lequel des deux messages a été chiffré en observant le cryptogramme... === TOUT À FAIT NON SÛR!

24 ECB est mauvais

25 Modes de fonctionnement CBC pour DES Important de choisir ce vecteur au hasard. Permet à deux chiffrements du même message avec la même clé de produire des cryptogrammes différents. C1C1 C2C2 CnCn C=(IV,C 1,C 2,..., C n ) C1C1 C2C2 CnCn

26 Autres modes Voilà le résultat en mode CBC : Il y a bien dautres modes : PCBC : Propagating Cipher Block Chaining Mode, CFB : Cipher Feedback Mode, OFB : Output Feedback Mode, CTR : Counter Mode.

27 Mode CFB Considéré comme très sûr. Plus lent que ECB. C1C1 C2C2 CnCn C=(IV,C 1,C 2,..., C n ) C 0 = IV, Chiffrement : C i = M i DES K (C i-1 ). Déchiffrement : M i =DES K (C i-1 ) C i. Vous navez besoin que du code pour chiffrer et non celui pour déchiffrer!

28 Mode OFB Se comporte un peu comme le masque jetable. Il est assez rapide (streamcipher). Considéré moins sûr que les modes CBC et CFB, cependant : Deux messages clairs avec un bit de différence produisent deux cryptogrammes comportant un bit de différence, ce qui permet de corriger des erreurs de transmission. C1C1 C2C2 CnCn C=(IV,C 1,C 2,..., C n ) Ce qui est aussi une faiblesse car de linformation sur les messages clairs devient accessible!

29 Chiffrement de flux («streamcipher») Un streamcipher est un chiffre qui permet le chiffrement de messages de longueurs arbitraires. Il est construit à partir dun générateur pseudo-aléatoire G(k) : G k {0,1} n G(k)1G(k)1 G(k)2G(k)2 G(k)3G(k)3 G(k)4G(k)4 G(k)5G(k)5... G doit être tel quil est impossible de faire la différence efficacement entre G(k), lorsque k est choisi aléatoirement, et une vraie séquence aléatoire de longueur beaucoup plus grande que n. beaucoup plus long que n M 1 M 2 M 3 M 4 M 5... = C 1 C 2 C 3 C 4 C 5...

30 OFB et streamcipher... Le mode OFB consiste à transformer un chiffre par bloc en un chiffre de flux («streamcipher») : E k E k E k E k M1M1 M2M2 M t-1 MtMt IV Stream C 1 C 2 C t-1 C t

31 Autres modes CTR est un mode qui permet de paralléliser le chiffrement. OCB est un mode qui ne nécessite pas un vecteur dinitialisation IV aléatoire, seulement une nouvelle valeur à chaque fois. Il peut aussi assurer lintégrité des messages du même coup... XTS pour chiffrer des données à accès direct (pas un flux).

32 AES: Advanced Encryption Standard Le système DES a été remplacé pour un nouveau système appelé AES : Advanced Encryption Standard. Il est devenu le nouveau standard NIST en Sa conception est similaire à celle de DES. Il chiffre des blocs de 128 bits avec des clés secrètes de 128, 192 ou 256 bits. Consomme peu de mémoire et est très efficace. Évidemment, il nest pas plus sûr que DES, si un bon mode de fonctionnement nest pas utilisé...

33 AES AddRoundKey : Calcul des XOR des octets du bloc à chiffrer avec la matrice de la clé courante. SubByte : Substitue chaque octet du bloc à chiffrer. Shiftrows : Applique des rotations aux rangées 2, 3, 4 de la matrice. Voyons le bloc courant comme une matrice 4X4 doctets : Mixcol : Multiplie chaque colonne du bloc courant par une matrice. Les multiplications sont dans un corps fini et les additions, des XOR.

34 Chiffrement dun flux de données («streamcipher») Certaines méthodes de chiffrement sont spécifiquement conçues pour chiffrer un flux de données continu par opposition aux méthodes par blocs comme DES et AES. Lidée est la suivante : Une séquence pseudo-aléatoire est générée à partir dune valeur initiale IV et dune clé K en utilisant un générateur G : G K (IV)= r 1,r 2,r 3,... Le i-ième bit du message m i est chiffré par c i = r i m i Le message chiffré C=(IV, c 1,c 2,c 3,...) est alors transmis. Un chiffre par blocs en mode OFB est presque un chiffrement de flux. Cette séquence est appelée flux de clés («keystream»).

35 Chiffrement de flux (II) Le chiffrement de flux de données défini précédemment est du type asynchrone puisque le flux de clés est indépendant du message clair. Un problème est que la perte/lajout dun bit au cryptogramme rend le décodage très problématique... Par contre, un bit derreur naffecte que le bit du message clair correspondant. Ceci ouvre la porte aux attaques qui modifient quelques bits du message transmis. Il y a aussi des méthodes de chiffrement de flux synchrones qui permettent une resynchronisation après un certain nombre de bits. La différence entre un chiffre par flux et un chiffre par blocs est que ce dernier demande au message clair dêtre au moins de la taille du bloc. Les messages plus courts doivent être soumis au remplissage («padding»). Ceci est inutile pour le chiffrement de flux. Imaginez que les données sont reçus et chiffrées par DES en paquets de 32bits. Ceci produira un cryptogramme 2 fois plus long que celui par flot.

36 RC4 RC4 est le chiffre de flux le plus connu. Il sagit du Rivest Cipher 4 développé pour RSA en Le code de RC4 était maintenu secret jusquà ce quun cyberpunk le rende public en Utilisé par exemple pour WEP, WPA (réseaux sans fil) et SSL. Très très rapide. Des faiblesses sont connues. Les premiers octets de la séquence pseudo-aléatoire (flux de clés) doivent être éliminés (1024!) parce que biaisés.

37 RC4 (II) Génération de clés (key scheduling): f or i from 0 to 255 S[i] := i S[i] := iendfor j := 0 for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256 j := (j + S[i] + key[i mod keylength]) mod 256 swap(S[i],S[j]) swap(S[i],S[j])endfor Initialise un tableau S (une permutation) à laide dune clé de 1 à 256 octets. La plupart du temps entre 5 et 16. i := 0 j := 0 while GeneratingOutput: i := (i + 1) mod 256 i := (i + 1) mod 256 j := (j + S[i]) mod 256 j := (j + S[i]) mod 256 swap(S[i],S[j]) swap(S[i],S[j]) output S[(S[i] + S[j]) mod 256] output S[(S[i] + S[j]) mod 256]endwhile La sortie (un nouveau bit de flux de clés) est obtenue en regardant S(S(i)+S(j) mod 256). S(i) et S(j) sont permutés... Flux de clés (keystream):

38 Utilisation de RC4 Attention : si deux flux de données sont chiffrés avec la même clé, alors il faut faire quelque chose pour éviter que la même séquence aléatoire soit générée... Il faut donc faire intervenir une valeur IV (RC4 nen a pas directement) utilisée une seule fois seulement avec la même clé K. Il faut aussi indiquer comment générer une nouvelle clé K en combinant la clé initiale (long terme) K avec IV : Une approche est lutilisation dune fonction de hachage H et poser K = H(K,IV). Il faut utiliser une bonne fonction de hachage. Une autre approche est lutilisation de K=(K,IV) avec IV public... ceci cause des problèmes étant donné la faiblesse relative de RC4.

39 Analyse de cas Une compagnie de portes et fenêtres vient de mettre en marché des fenêtres avec contrôle radio pour louverture et la fermeture de celles-ci. Pratique pour les fenêtres qui sont difficiles daccès. Les compagnies dassurance ne sont pas heureuses. Elles veulent des garanties que les fenêtres ne peuvent être ouvertes quà partir du contrôle que possède le propriétaire...

40 Solution? Nous pourrions faire en sorte que les transmissions du contrôle vers la fenêtre soient chiffrées. Est-ce une bonne idée? Est-il important de chiffrer les messages dans ce scénario? Quelle est la différence entre les utilisations dun chiffrement de flux comme RC4 et DES en mode CBC?

41 RC4 et DES en mode CBC En général, lintégrité et lorigine des messages ne peuvent pas être assurées par une méthode de chiffrement seule. Cependant, certains modes de fonctionnement peuvent offrir quelques protections (mais pas contre les redites, si le système est non interactif). Voyons en premier lieu le chiffrement de flux comme RC4 : Rapide, simple. Facile de modifier un message, comme transformer une fermeture en une ouverture, Pertes de synchronisation inévitables. Pour resynchroniser, il faut faire intervenir un IV et les composantes doivent pouvoir être capables de calcul.

42 DES en mode CBC DES en mode CBC : Modifier le message pour le rendre intelligible est plus difficile que pour RC4. Ceci nimplique pas que lapproche est sûre. Les problèmes de resynchronisation sont moins importants ici. Nous verrons la semaine prochaine comment cette tâche peut être accomplie de la bonne façon en utilisant un code dauthentification de message... Le chiffrement nest pas la bonne approche! Comme mentionné précédemment, ces codes peuvent être construits à partir de DES/AES en mode CBC (avec IV=0) en publiant le message clair avec le résultat du dernier chiffrement seulement.

43 Conclusion : chiffrement symétrique Pour assurer que le chiffrement à clé secrète fonctionne comme il devrait : Vous devez avoir un bon système de chiffrement par blocs, Un mode de fonctionnement approprié et Une bonne façon de choisir le vecteur dinitialisation. Même dans ce cas, il se pourrait que le système ne soit pas sûr, car aucun de ceux-ci na été démontré comme tel. Ces systèmes sont rapides : 1-10 Mo/sec sur un PC décent et beaucoup plus rapides sur du matériel dédié. Parfait pour le chiffrement de flux. En général, à mesure que le nombre de messages chiffrés avec la même clé augmente, la sécurité se détériore. Bien des réalisations posent IV=0, ce qui est une bien mauvaise idée....


Télécharger ppt "Confidentialité I : Chiffrement symétrique IFT6271--Hiver 2014 3 e cours Louis Salvail."

Présentations similaires


Annonces Google