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

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

Embed Size (px)

Citation preview

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

Confidentialité I : Chiffrement symétrique

IFT6271--Hiver 20143e cours

Louis Salvail

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

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 d’une clé :

C := EK(M) chiffre le message M avec la clé K ;

DK’(C) déchiffre le message C avec la clé K’.

Nous voulons que, sans connaître la clé K, C=EK(M) ne donne pas d’information sur M.

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

Le scénario

M

K K

MC

?

?

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

nécessite une nécessite une clé de 4 clé de 4 lettres!lettres!

Le seul chiffre parfaitement sûr AA:=:=00, , BB:=:=11,..., ,..., YY:=:=2424, ,

ZZ:=:=2525..AA:=:=00, , BB:=:=11,..., ,..., YY:=:=2424, ,

ZZ:=:=2525..FF++YY := := 55++2424 (mod (mod 26) 26) = = 2929 (mod 26) (mod 26) = = 33 := := DD..

FF++YY := := 55++2424 (mod (mod 26) 26) = = 2929 (mod 26) (mod 26) = = 33 := := DD..

ALLO

QZAB

QMLP

Un message de Un message de 4 lettres4 lettres

QZAB

ALLO

QQ:=:=QQ++AAMM:=:=ZZ++LLLL:=:=AA++LLPP:=:=BB++OO

EK(M)

QQ--QQ:=:=AAMM--ZZ:=:=LLLL--AA:=:=LLPP--BB:=:=OO

DK(M)

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

Ce qui le rend à peu près Ce qui le rend à peu près inutilisable lorsque les inutilisable lorsque les communications sont communications sont

fréquentes!fréquentes!

Ce qui le rend à peu près Ce qui le rend à peu près inutilisable lorsque les inutilisable lorsque les communications sont communications sont

fréquentes!fréquentes!Il n’est pas trop difficile de se convaincre que, si la clé est aléatoire, le message chiffré ne contient pas d’information sur le message clair (Shannon, 1949).

Cependant, la clé doit être aussi longue que le message et ne doit être utilisée qu’une seule fois!

Tout système de chiffrement qui dissimule toute l’information sur le message clair à quiconque ne connaissant pas la clé aura la même faiblesse (Shannon, 1949).

Est-ce la panacée?NO

N!

NON!

NON!

NON!

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

Dans la pratiqueUn 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 n’est pas possible qu’un tel système cache toute l’information sur le message clair même à un adversaire qui ne connaît rien sur la clé secrète!

Nous sommes dans l’impasse!

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

Une autre approcheRelaxons un peu la condition qu’un chiffre ne doit pas donner d’information sur le message clair :

Un cryptogramme C ne doit pas donner d’information sur le message clair M à quiconque ne pouvant essayer les déchiffrements de C avec (presque) toutes les clés.

Noter que si l’adversaire avait le temps de calculer tous les déchiffrements possibles de C, alors il pourrait sans doute déterminer de l’information 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 d’un système de chiffrement qu’il est sûr s’il ne peut être attaqué que par la recherche exhaustive de clés.

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

Est-ce raisonnable?Supposons que le déchiffrement de C avec clé K peut s’effectuer 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? 216 X 10-6sec = 65536 X 10-6 = 0,06 sec.

32 bits? 232 X 10-6sec = 4295 secs.

64 bits? 15848931924611secs = 584 940 années.

128 bits? 264 X 584 940 années >>>>>>> l’âge de l’univers!

OUI

!OUI

!OUI

!OUI

!

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

Chiffres symétriquesUn 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 n’est cependant pas une garantie de sécurité...

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

Un peu d’histoireLe 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 n’a donc pas de clé secrète!!!!!

NO

N S

ÛR!

NO

N S

ÛR!

NO

N S

ÛR!

NO

N S

ÛR!

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

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!!!!

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

Alphabet mélangé(chiffrement par substitution

monoalphabétique)

Dans ce chiffre, la clé correspond à une permutation des lettres de l’alphabet :

[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]

ELEPHANTESQUE -> XGXITDVCXZBFX

Le nombre de clés possibles est 26! = 4.03 X 1026

> 291!

Est-ce sûr?

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

Cryptanalyse statistiqueRemarquez 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 s’attend à ce que la lettre de C, deuxième quant à sa fréquence, devrait être la version chiffrée de ‘A’.

En continuant ainsi, beaucoup d’information sur le message M peut être obtenue à partir de C.

Même avec plus de 291 clés possibles, M n’est pas chiffré de façon sûre!

L’analyse 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!).

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

La machine EnigmaLa machine Enigma permettait à l’armée allemande de communiquer d’une façon jugée alors sûre.

Elle effectue un chiffrement symétrique à l’aide de 3 rotors (embrouilleurs, ou roues), chacun induisant une permutation de l’alphabet (3 rotors avant la guerre, 4 ensuite).

La clé secrète est de taille (environ 1016) :

6 dispositions des 3 rotors,

chaque roue peut être placée de 26 façons différentes (17 576 possibilités), et

substitutions de quelques (6) paires de lettres.

Brisé par les Polonais à cause du mode d’utilisation (de courts messages étaient répétés).

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

La machine...

Alan Turing à Alan Turing à Bletchley ParkBletchley Park

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

Substitutions et transpositions

Shannon (1949) propose d’utiliser des fonctions pour créer des transformations de mixage qui distribuent les messages intelligibles uniformément sur l’ensemble des messages chiffrés possibles.

Un exemple commun est l’utilisation de transpositions (permutations), de substitutions et d’opérations linéaires simples.

Évidemment, toutes ces opérations doivent être inversibles pour permettre le déchiffrement...

PATA

TE

QBUCVG

+1+1

+2+2

Substitution 1Substitution 1

GUVBCQ

Transposition 1Transposition 1 Substitution 2Substitution 2

+1+1

+2+2

HVWD

ES

Transposition 2Transposition 2

VHDWSE

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

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é).

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

Ceci applique une substitutiondéfinie par la clé de ronde

1 2 3 4 5 6.

..6

16

26

36

4

58

50

42

34

26

18

...

31

23

15

7

Bloc de données à chiffrer :

Permutation initiale

Ron

de

1R

on

de

2R

on

de

16

G0

D0

K0

F(D0,K0)

+G0

D1

=G1=D0

Notez que s’il y avait moins de 16 rondes, certaines attaques connues pourraient briser DES.

DES dérive 16 DES dérive 16 clés de 48bits, clés de 48bits,

une pour chaque une pour chaque ronde, à partir ronde, à partir d’une seule clé d’une seule clé de 64(56) bits.de 64(56) bits.

DES dérive 16 DES dérive 16 clés de 48bits, clés de 48bits,

une pour chaque une pour chaque ronde, à partir ronde, à partir d’une seule clé d’une seule clé de 64(56) bits.de 64(56) bits.

Les clés DES sont Les clés DES sont codées sur 64 bits (8 codées sur 64 bits (8 octets) mais chaque octets) mais chaque

octet contient un bit de octet contient un bit de parité (de sorte que la parité (de sorte que la parité de chaque bloc parité de chaque bloc

est impaire). Le est impaire). Le résultat est une clé de résultat est une clé de

64-8=56 bits!64-8=56 bits!

Les clés DES sont Les clés DES sont codées sur 64 bits (8 codées sur 64 bits (8 octets) mais chaque octets) mais chaque

octet contient un bit de octet contient un bit de parité (de sorte que la parité (de sorte que la parité de chaque bloc parité de chaque bloc

est impaire). Le est impaire). Le résultat est une clé de résultat est une clé de

64-8=56 bits!64-8=56 bits!

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

Dérivation des clés pour les rondes DES

✴La clé de 56 bits est permutée.

✴Elle est ensuite séparée en 2 clés de 28 bits.

✴À chaque ronde, chaque partie est décalée d’une ou deux positions vers la gauche (dépendant de la ronde).

✴Des sous-clés de 48 bits sont extraites en prenant 24 bits dans chaque partie de 28 bits.

✴Les 24 bits considérés varient en fonction de la ronde.

✴Chaque bit de clé original est utilisé dans environ 14 des 16 sous-clés générées (une par ronde).

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

Les rondes

F(Dn,Kn)+Gn

E: fonction d’expansion

S: fonction de substitution

E 32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 1312 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 2524 25 26 27 28 2928 29 30 31 32 1

La fonction E double certains des 32 bits pour en obtenir 48 dans un ordre un peu modifié.

Le bloc Dn , à la sortie de E, est scindé en 8 blocs de 6 bits Dn1,Dn2,...,Dn8

Le sous-bloc Dni est utilisé pour l’évaluation de la fonction de substitution Si. Le premier et dernier bit du sous-bloc indiquent la rangé de Si à consulter tandis que les 4 bits du milieu indiquent la colonne de Si à consulter.

S1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 71 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 82 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 03 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

DDn1n1=001101=001101rang=01rang=01col=0110col=0110

sortie : 1101=13sortie : 1101=13

Nous revenons Nous revenons à 32 bits!!!!à 32 bits!!!!

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

L’insécurité de DES simpleUne clé de 56 bits n’est pas suffisante pour s’assurer qu’une fouille exhaustive des clés n’est pas possible. C’est 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 à l’aide de plusieurs machines.

Des machines dédiées peuvent briser DES pour moins de 100 000 $ 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:

3DESKK’(M) = DESK(DESK’-1(DESK(M))).

2 chiffrements plus 1 déchiffrement DES 2 chiffrements plus 1 déchiffrement DES avec deux clés sont nécessaires pour avec deux clés sont nécessaires pour

éviter certaines attaques.éviter certaines attaques.

72 Billiards72 Billiards72 Billiards72 Billiards

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

Briser DES (56 bits)

Cherche 92 milliards de

clés/sec.

Kocher et Jaffe ont gagné 10 000 $ en 1998 : Défi DES organisé par RSA.

A déterminé une clé en 56 heures.

Coût : 250 000 $

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

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=(M1,M2,..,Ms), c’est l’Electronic Codebook Mode:

MM11 MM22 MM33 MM44

DESK(M1)

DESK(M2)

DESK(M3)

DESK(M4)

CC11 CC22 CC33 CC44

Supposons que M=000...000 ou M=110100...110110001Il est possible de déterminer lequel des deux messages a été chiffré en observant le cryptogramme...

= = =

TO

UT À

FAIT

TO

UT À

FAIT

NO

N S

ÛR!

NO

N S

ÛR!

TO

UT À

FAIT

TO

UT À

FAIT

NO

N S

ÛR!

NO

N S

ÛR!

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

ECB est mauvais

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

Modes de fonctionnement CBC pour DES

Important de choisir ce vecteur au Important de choisir ce vecteur au hasard. Permet à deux chiffrements hasard. Permet à deux chiffrements du même message avec la même du même message avec la même

clé de produire des cryptogrammes clé de produire des cryptogrammes différents.différents.

C1

C2

Cn

C=(IV,C1,C2,...,Cn)

C1

C2

Cn

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

Autres modesVoilà le résultat en mode CBC :

Il y a bien d’autres modes :

PCBC : Propagating Cipher Block Chaining Mode,

CFB : Cipher Feedback Mode,

OFB : Output Feedback Mode,

CTR : Counter Mode.

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

Mode CFB

Considéré comme très sûr.

Plus lent que ECB.

C1 C2 Cn

C=(IV,C1,C2,...,Cn)

C0 = IV,

Chiffrement : Ci = Mi⊕DESK(Ci-1) .

Déchiffrement : Mi=DESK(Ci-1)⊕Ci .

Vous n’avez besoin que du code pour chiffrer et non celui pour déchiffrer!

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

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.

C1 C2 Cn

C=(IV,C1,C2,...,Cn)

Ce qui est Ce qui est aussi une aussi une

faiblesse car faiblesse car de de

l’information l’information sur les sur les

messages messages clairs devient clairs devient accessible!accessible!

Ce qui est Ce qui est aussi une aussi une

faiblesse car faiblesse car de de

l’information l’information sur les sur les

messages messages clairs devient clairs devient accessible!accessible!

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

Chiffrement de flux («streamcipher»)

Un streamcipher est un chiffre qui permet le chiffrement de messages de longueurs arbitraires. Il est construit à partir d’un générateur pseudo-aléatoire G(k) :

Gk∈{0,1}n

G(k)1

G(k)2

G(k)3

G(k)4

G(k)5

..

.

G doit être tel qu’il 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

⊕M1 M2 M3 M4 M5 ...

=C1 C2 C3 C4 C5 ...

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

OFB et streamcipher

...

Le mode OFB consiste à transformer un chiffre par bloc en un chiffre de flux («streamcipher») :

EEk EEkEEkEEk

⊕ ⊕ ⊕ ⊕M1

M2 Mt-1 Mt

IV

StreamStream

C1 C2 Ct-1 Ct

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

Autres modes

CTR est un mode qui permet de paralléliser le chiffrement.

OCB est un mode qui ne nécessite pas un vecteur d’initialisation IV aléatoire, seulement une nouvelle valeur à chaque fois. Il peut aussi assurer l’intégrité des messages du même coup...

XTS pour chiffrer des données à accès direct (pas un flux).

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

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 2001.

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 n’est pas plus sûr que DES, si un bon mode de fonctionnement n’est pas utilisé...

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

AESAddRoundKey : 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 d’octets :

Mixcol : Multiplie chaque colonne du bloc courant par une matrice. Les multiplications sont dans un corps fini et les additions, des XOR.

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

Chiffrement d’un 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.

L’idée est la suivante :

Une séquence pseudo-aléatoire est générée à partir d’une valeur initiale IV et d’une clé K en utilisant un générateur G :

GK(IV)= r1,r2,r3, ...

Le i-ième bit du message mi est chiffré par

ci = ri⊕mi

Le message chiffré C=(IV, c1,c2,c3,...) est alors transmis.

Un chiffre par blocs en Un chiffre par blocs en mode OFB est mode OFB est

presque un presque un chiffrement de flux.chiffrement de flux.

Cette séquence est appelée Cette séquence est appelée flux de clés («keystream»).flux de clés («keystream»).

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

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/l’ajout d’un bit au cryptogramme rend le décodage très problématique...

Par contre, un bit d’erreur n’affecte 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 Imaginez que les données sont reçus et chiffrées par DES en reçus et chiffrées par DES en

paquets de 32bits. Ceci produira paquets de 32bits. Ceci produira un cryptogramme 2 fois plus un cryptogramme 2 fois plus

long que celui par flot.long que celui par flot.

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

RC4

RC4 est le chiffre de flux le plus connu. Il s’agit du Rivest Cipher 4 développé pour RSA en 1987.

Le code de RC4 était maintenu secret jusqu’à ce qu’un cyberpunk le rende public en 1993.

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.

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

RC4 (II)Génération de clés (key scheduling):

ffor i from 0 to 255or i from 0 to 255 S[i] := iS[i] := iendforendforj := 0j := 0for i from 0 to 255for i from 0 to 255 j := (j + S[i] + key[i mod keylength]) mod 256j := (j + S[i] + key[i mod keylength]) mod 256 swap(S[i],S[j])swap(S[i],S[j])endforendfor

Initialise un tableau S (une Initialise un tableau S (une permutation) à l’aide d’une clé permutation) à l’aide d’une clé de 1 à 256 octets. La plupart de 1 à 256 octets. La plupart

du temps entre 5 et 16.du temps entre 5 et 16.

i := 0i := 0j := 0j := 0while GeneratingOutput:while GeneratingOutput: i := (i + 1) mod 256i := (i + 1) mod 256 j := (j + S[i]) mod 256j := (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]endwhileendwhile La sortie (un nouveau bit de flux La sortie (un nouveau bit de flux

de clés) est obtenue en regardant de clés) est obtenue en regardant S(S(i)+S(j) mod 256). S(i) et S(j) S(S(i)+S(j) mod 256). S(i) et S(j)

sont permutés...sont permutés...

Flux de clés (keystream):

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

Utilisation de RC4Attention : 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 n’en 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 l’utilisation d’une fonction de hachage H et poser K’ = H(K,IV). Il faut utiliser une bonne fonction de hachage.

Une autre approche est l’utilisation de K’=(K,IV) avec IV public... ceci cause des problèmes étant donné la faiblesse relative de RC4.

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

Analyse de cas

Une compagnie de portes et fenêtres vient de mettre en marché des fenêtres avec contrôle radio pour l’ouverture et la fermeture de celles-ci.

Pratique pour les fenêtres qui sont difficiles d’accès.

Les compagnies d’assurance 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...

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

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 d’un chiffrement de flux comme RC4 et DES en mode CBC?

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

RC4 et DES en mode CBCEn général, l’intégrité et l’origine 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.

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

DES en mode CBCDES en mode CBC :

Modifier le message pour le rendre intelligible est plus difficile que pour RC4. Ceci n’implique pas que l’approche 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 d’authentification de message... Le chiffrement n’est 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.

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

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 d’initialisation.

Même dans ce cas, il se pourrait que le système ne soit pas sûr, car aucun de ceux-ci n’a é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 Bien des réalisations posent IV=0, ce qui est une bien IV=0, ce qui est une bien

mauvaise idée....mauvaise idée....