48
Introduction ` a la Cryptographie 2. Chiffrement sym´ etrique (1) E. Thom´ e (cours et TD) ´ Equipe Caramba, INRIA Nancy Telecom Nancy, 2A TRS – 2016 http://www.loria.fr/ ~ thome/teaching/2016-esial-crypto/

E. Thom e (cours et TD) · 2016-03-08 · Introduction a la Cryptographie 2. Chi rement sym etrique (1) E. Thom e (cours et TD) Equipe Caramba, INRIA Nancy Telecom Nancy, 2A TRS {

  • Upload
    lyque

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Introduction a la Cryptographie

2. Chiffrement symetrique (1)

E. Thome (cours et TD)

Equipe Caramba, INRIA Nancy

Telecom Nancy, 2A TRS – 2016

http://www.loria.fr/~thome/teaching/2016-esial-crypto/

Plan

De Cesar a maintenant

Vernam

Alea et Generateurs pseudo-aleatoires

Chiffrement a flot

2 / 42

Cesar

Le chiffrement de Cesar :

message clair constitue de lettres (26).

cle = un decalage constant.

message chiffre : chaque lettre decalee.

Inconvenients :

L’espace de cles est trop faible.

Le meme decalage est utilise pour toutes les lettres : lesproprietes statistiques sont preservees.

3 / 42

Proprietes statistiques

Sur un texte, les frequences d’occurence des differents symbolessont tres differentes. Exemple sur 100 pages au hasard deWikipedia (caracteres ascii de 0 a 256).

Anglais Francais

Si on se restreint aux lettres de l’alphabet, ca marche aussi.

4 / 42

Vigenere

Un peu mieux que Cesar.

message clair constitue de lettres (26).

Une cle constituee de K valeurs de decalage δ1, . . . , δK .

message chiffre : cKi+j = ’a’ + ((mKi+j − ’a’) + δj) mod 26.

Qu’est-ce que ca change ?

La recherche exhaustive des cles est plus difficile (si K estgrand),

mais pour j constant, les lettres mKi+j sont decalees pareil :les proprietes statistiques sont preservees si on� saucissonne �.

5 / 42

Vu autrement

Une autre facon de voir Cesar.

Message = suite d’elements de Z/26Z.

Cle = un decalage modulo 26.

Une autre facon de voir Vigenere, avec une cle de longueur k .

Message = suite d’elements de (Z/26Z)k .

Cle = un vecteur de decalage dans (Z/26Z)k .

Sauf que la longueur de cle fait aussi partie de la cle. Mais cane fait qu’ajouter un cout polynomial, pas exponentiel.

En substance, c’est donc assez semblable.

Tous les elements subissent le meme traitement ⇒ faiblesse.

On retrouve d’ailleurs ce genre de faiblesse plus tard (ECB).

6 / 42

Abstraction

Pourquoi considerer qu’un message = des elements de Z/26Z ?

. . . aucune raison.

Beaucoup plus generiquement, on considere qu’un messageest une suite d’octets, voire de bits. Cela permet d’abstraire lecontenu.

7 / 42

Plan

De Cesar a maintenant

Vernam

Alea et Generateurs pseudo-aleatoires

Chiffrement a flot

8 / 42

Vernam

Le chiffrement de Vernam, a.k.a. One-Time-Pad (1917).

Phase initiale. Alice et Bob creent et se partagent une suitealeatoire � infinie � de bits qui constituent la cle.

k0, k1, . . . kN .

Communication. Supposons que les bits de cle k0, . . . kα−1 ontdeja servi.

Alice chiffre son message m0, . . . ,mb−1 de b bits :

(c0, . . . , cb−1) = (m0 ⊕ kα, . . . ,mb−1 ⊕ kα+b−1).

Bob se rappelle qu’on en etait a kα, et dechiffre :

(m0, . . . ,mb−1) = (c0 ⊕ kα, . . . , cb−1 ⊕ kα+b−1).

9 / 42

Vernam

Le chiffrement de Vernam possede un avantage unique.

Si la suite (ki ) est purement aleatoire, alors il n’y a aucunespoir de retrouver (mi ) a partir de (ci ).

Si ci = 0 : Pr(mi = 0) = Pr(ki = 0) = 12 ,

et Pr(mi = 1) = Pr(ki = 1) = 12 .

Si ci = 1 : Pr(mi = 0) = Pr(ki = 1) = 12 ,

et Pr(mi = 1) = Pr(ki = 0) = 12 .

Attention : ca ne vaut que si chaque bit ki est utilise uneunique fois. Sinon les probabilites sur ki ne sont plusindependantes.

Le chiffrement de Vernam possede un inconvenient unique.

Pour chiffrer 1Mo de messages, il faut 1Mo de cle.

Quand on est a court de cle... on recycle : mauvaise idee !

10 / 42

Recyclage de cle dans OTP

Si on suppose qu’il y a eu recyclage, on peut chercher deuxmessages chiffres avec des suites non disjointes des bits de la cle.

(c0, . . . , cb−1) = (m0 ⊕ kα, . . . ,mb−1 ⊕ kα+b−1),

(c ′0, . . . , c′b−1) = (m′0 ⊕ kβ, . . . ,m

′b−1 ⊕ kβ+b−1).

On suppose [α, α + b[∩[β, β + b[= [γ, γ + r [ :

(cγ−α, . . . , cγ−α+r−1) = (mγ−α ⊕ kγ , . . . ,mγ−α+r−1 ⊕ kγ+r−1),

(c ′γ−β, . . . , c′γ−β+r−1) = (m′γ−β ⊕ kγ , . . . ,m

′γ−β+r−1 ⊕ kγ+r−1).

On a alors cγ−α+i ⊕ c ′γ−β+i = mγ−α+i ⊕m′γ−β+i , qui n’est pasaleatoire.

11 / 42

Proprietes statistiques

Quelle est la distribution statistique de mα ⊕mβ, ou mα et mβ

sont deux lettres d’un texte ?

Exemple sur 100 pages au hasard de Wikipedia (ascii, 0 a 256).

Anglais Francais

[On peut aussi regarder la distribution de mα + mβ (resultatsemblable).]

Si des bits de cle sont reutilises, on peut chercher lesalignements et retrouver des fragments de messages.

Projet Venona (1943-1980) : etant donne un corpus demessages, tenter de deviner ces alignements : du calcul !

Difficile quand les messages codes sont courts !

12 / 42

Plan

De Cesar a maintenant

Vernam

Alea et Generateurs pseudo-aleatoires

Chiffrement a flot

13 / 42

Generer de l’alea

Pour One-Time-Pad, il faut fabriquer de l’alea. Plusieurspossibilites.

Croire que c’est facile.

Mettre un singe devant un clavier.

Ecouter le rayonnement cosmique ou toute autre sourcephysique.

En pratique, un ordinateur est assez deterministe.

Il existe des generateurs aleatoires �materiels�, exploitant l’alea�physique�. Un chat dans un sac.

14 / 42

Comment ne pas faire ?

Merci Sony pour des grands moments d’amusement. . .

15 / 42

Comment ne pas faire ?

Merci Sony pour des grands moments d’amusement. . .

15 / 42

/dev/random

Un systeme linux fournit l’interface /dev/random, qui produit del’alea.

Ressource utilisee : certains evenements juges aleatoires,associe a une information �x bits d’entropie�.

Frappe d’une touche au clavier. Temps exact, valeur de latouche.Mouvements de la souris.Temps exact d’arrivee d’un paquet IP.. . .

Le systeme a un compteur d’�entropie collectee�.

Cet input est fourni a un programme interne qui melange.

Resultat produit : des bits d’alea. Chaque bit produit en sortieest soustrait du compteur d’�entropie collectee�.

Lorsque le compteur descend a zero, plus de bit produit tantque le compteur ne remonte pas.

16 / 42

Interlude : entropie

Notion de Quantite d’information.

Plusieurs messages possibles, chacun avec une proba. Pr(m).On veut une grandeur decroissante avec Pr(m), et additive.

QI(message = m) = log(1/Pr(m)).

Entropie : moyenne des QI qui peuvent etre transmises.

E =∑m

−Pr(m) logPr(m).

17 / 42

Interlude : entropie

Entropie en bits : e =∑−p log2 p.

Informellement, un message d’entropie e �contient� e bitsd’information.

Un codage optimal pour la reponse occupe e bits en moyenne.

Exemple : 10 bits d’alea pur : 10 bits d’entropie.

Exemple : cas uniforme, 16 reponses equiprobables : e =

4 bits.

Exemple : messages A,B,C , avec pA = 0.5, pB = pC = 0.25 :

e = 12 + 2

4 + 24 = 3

2 .

Codage optimal :0 pour A, 10 pour B, 11 pour C . 32 bits en

moyenne.

18 / 42

Interlude : entropie

Entropie en bits : e =∑−p log2 p.

Informellement, un message d’entropie e �contient� e bitsd’information.

Un codage optimal pour la reponse occupe e bits en moyenne.

Exemple : 10 bits d’alea pur : 10 bits d’entropie.

Exemple : cas uniforme, 16 reponses equiprobables : e = 4 bits.

Exemple : messages A,B,C , avec pA = 0.5, pB = pC = 0.25 :

e =

12 + 2

4 + 24 = 3

2 .

Codage optimal :0 pour A, 10 pour B, 11 pour C . 32 bits en

moyenne.

18 / 42

Interlude : entropie

Entropie en bits : e =∑−p log2 p.

Informellement, un message d’entropie e �contient� e bitsd’information.

Un codage optimal pour la reponse occupe e bits en moyenne.

Exemple : 10 bits d’alea pur : 10 bits d’entropie.

Exemple : cas uniforme, 16 reponses equiprobables : e = 4 bits.

Exemple : messages A,B,C , avec pA = 0.5, pB = pC = 0.25 :

e = 12 + 2

4 + 24 = 3

2 .

Codage optimal :

0 pour A, 10 pour B, 11 pour C . 32 bits en

moyenne.

18 / 42

Interlude : entropie

Entropie en bits : e =∑−p log2 p.

Informellement, un message d’entropie e �contient� e bitsd’information.

Un codage optimal pour la reponse occupe e bits en moyenne.

Exemple : 10 bits d’alea pur : 10 bits d’entropie.

Exemple : cas uniforme, 16 reponses equiprobables : e = 4 bits.

Exemple : messages A,B,C , avec pA = 0.5, pB = pC = 0.25 :

e = 12 + 2

4 + 24 = 3

2 .

Codage optimal :0 pour A, 10 pour B, 11 pour C . 32 bits en

moyenne.

18 / 42

Retour sur /dev/random

Le systeme de generation d’alea collecte e bits d’entropie.

Il est alors pret a laisser filer e bits d’alea produit.

Au mieux, un attaquant tres fort pourra retrouver l’alea injecte enentree, pas davantage.

Pas de nouvelle entropie, pas d’alea produit : on veut qu’il soitimpossible d’inferer.

Quand on lit dans /dev/random, ca peut bloquer : quand il n’y apas assez d’entropie collectee.

Autre version /dev/urandom, qui continue a produire de l’aleameme quand il n’y a plus d’entropie nouvelle. Si un attaquantreussit a inverser la fonction de melange et deviner l’etat interne,danger.

19 / 42

Generateurs pseudo-aleatoires

Une autre facon de fabriquer de l’alea : les generateurspseudo-aleatoires (PRNG).

On part d’une graine (aleatoire).

Cette graine alimente un etat interne.

Le generateur met a jour son etat interne apres chaque bitproduit.

etat interne pseudo-alea r0, r1 . . .

graine

20 / 42

Generateurs pseudo-aleatoires

Une fois la graine specifiee, le comportement du generateurpseudo-aleatoire est deterministe.

Usages :

Alea dans les ordinateurs :

Pas cher a implanter.Modelisation d’evenements aleatoires.Aussi : reproductibilite des tests.

Crypto : utiliser une graine secrete, connue de Alice et Bob, etfaire du One-Time-Pad avec.

21 / 42

Generateurs pseudo-aleatoires

On trouve plusieurs appreciations de ce qu’est un bon PRNG.

Si l’objectif est la modelisation d’evenements aleatoires :

on veut un bon comportement statistique (0 et 1 equilibres,idem pour tous les motifs, etc, etc).

Si l’objectif est la crypto, on veut bien plus. Un adversaire doted’une puissance de calcul polynomiale doit etre incapable de :

predire le bit suivant avec une chance de succes > 1/2.

distinguer une suite produite par le PRNG d’un vrai alea, avecune chance de succes > 1/2.

(evidemment) retrouver l’etat interne et la graine du PRNG.

On rappelle le contexte des lois de Kerckhoffs : le mecanisme duPRNG est connu, seule la graine est inconnue.

22 / 42

Un exemple de PRNG

Le rand() de la plupart des langages de programmation n’a pas debut cryptographique. Exemple propose par POSIX.1-2001 :

static unsigned long x = 1;

int rand(void) {

x = x * 1103515245 + 12345;

return((unsigned int)(x/65536) % 32768);

}

void srand(unsigned seed) { x = seed; }

C’est un generateur lineaire congruentiel (LCG).

Chaque valeur produite donne directement 15 bits de l’etatinterne. A partir de quelques (3) valeurs, on retrouve toutl’etat interne (exercice, cf TD).

23 / 42

Etat interne connu et feedback secret

Certains PRNG sont tellement simples qu’il n’est meme pascompletement utile de connaıtre leurs caracteristiques pour lesattaquer.

Exemple du LCG, si on connaıt une suite d’etats internesx0, x1, . . ., mais pas le lien entre eux : trivial.

24 / 42

PRNGs : les LFSRs

LFSR=

Linear Feedback Shift Register ;

registre a decalage a retroaction lineaire.

Le LFSR est un exemple basique et important de PRNGnotamment pour son faible cout en materiel.

0

x0

1

x1

0

x2

1

x3

1

x4

1

x5

0

x6

ki

L’etat interne a l’etape i + 1 decoule de l’etat interne a l’etape i :

x(i+1)k+1 = x

(i)k , x

(i+1)0 = x

(i)6 ⊕ x

(i)2 .

25 / 42

Analyse mathematique du LFSR

x(i+1)k+1 = x

(i)k , x

(i+1)0 = x

(i)6 ⊕ x

(i)2 .

Le vecteur X = (x0 . . . x6) evolue ainsi :

X (i+1) = X (i) ×M, ou M =

0 1 0 0 0 0 00 0 1 0 0 0 01 0 0 1 0 0 00 0 0 0 1 0 00 0 0 0 0 1 00 0 0 0 0 0 11 0 0 0 0 0 0

.

Les coefficients sont pris dans le corps a deux elements Z/2Z.

Le polynome de retroaction se lit sur la premiere colonne.

z7 + z4 + 1.

26 / 42

Periode d’un LFSR

Un LFSR se met a boucler lorsqu’il retombe sur un etat interneanterieur.

Question : pour quelle valeur de k atteint-on Mk = 1 ?

Les valeurspropres de M vivent dans une extension du corps Z/2Z.

27 / 42

Periode d’un LFSR

Un LFSR se met a boucler lorsqu’il retombe sur un etat interneanterieur.

Question : pour quelle valeur de k atteint-on Mk = 1 ? Les valeurspropres de M vivent dans une extension du corps Z/2Z.

27 / 42

Interlude : corps finis

Les corps finis sont omnipresents en crypto (LFSR, AES, ECC, . . . ).

Soit K un corps fini.

K contient un sous-corps premier de la forme Z/pZ.Le nombre premier p est la caracteristique de K .NB : Un corps fini n’est jamais un sous-corps de R ou C.

K est aussi un espace vectoriel sur Z/pZ.

Sa dimension n est appelee degre. On a #K = pn .

⇒ un corps fini a pour cardinal une puissance d’un nombre premier

28 / 42

Interlude : corps finis

Reciproquement, soit p premier. Z/pZ[x ] est un anneau integre.

Soit f ∈Z/pZ[x ] irreductible de degre n, et R =Z/pZ[x ]/(f ).

R est un anneau : trivial (produit : a(x)b(x) mod f (x)).

R est un corps : algorithme de Bezout.Si a est un polynome premier avec f , alors il existe u et v t.q. :

a(x)u(x) + f (x)v(x) = 1.

Le polynome u(x) est alors un inverse de a(x) dans R.

Quelques points moins immediats :

Il existe des polynomes irreductibles de tout degre.⇒ pour tout q = pn, il existe un corps fini de cardinal q.

Tous les corps finis de meme cardinal sont isomorphes.On note ainsi Fq �le� corps fini a q elements.

Une myriade d’autres proprietes.29 / 42

Basic number theory background needed

It is difficult to avoid some familiarity with :

Finite fields ; to start with, Fp =Z/pZ. Simplest is F2.

Integers modulo p.In F2, 2 is null. 2x + 1 is a constant polynomial.Operations in Fp are like in Z, + reduction ;Inversion by extended GCD.

Finite fields (cont’d) : extensions of prime fields.

Polynomials over Fp modulo a defining polynomial f (x).Cardinality is pdeg f .

Chinese remainder theorem. Because for n composite, Z/nZ isno longer a field.

CRT is a way to break Z/nZ in several pieces ;CRT provides a way to stick the pieces together.

30 / 42

Finite field basics

There are two kinds of finite fields :

Prime fields : p elements, for p prime ;

Extension fields : pn elements, for some n > 1.

Characteristic and degree

For a finite field K with #K = pn :

The prime number p is the characteristic (must be prime).

The integer n is the degree (thus : prime fields have degree 1).

Theorem: all finite fields with the same size pn are isomorphic.

(we may use various representations, though.)

31 / 42

Key properties

An finite field Fpn contains Fpk for all k | n.

For computing in a finite field, we work with :

For Fp : with integers, which we may reduce modulo p whenwe like.

(a× b) mod p = ((a mod p)× (b mod p)) mod p ;(a + b) mod p = ((a mod p) + (b mod p)) mod p ;Warning ! ax 6= ax mod p ;

For exponents : mod(p − 1) (Fermat’s little theorem).

For Fpn : we have to consider polynomials over Fp, modulo adefining polynomial f ∈ Fp[x ].

The defining polynomial must be irreducible.We have both reduction modulo f , and also modulo p.

32 / 42

The Frobenius map

Frobenius

In a finite field K = Fpn :

For all x ∈ K , we have xpn

= x ;

The map x 7→ xp is linear : (x + y)p = xp + yp.

33 / 42

Finite fields in cryptography

In cryptography :

Prime fields are rather frequently seen ;

Extension fields are less frequent. We do have them in thecontext of pairings, or extensions of binary fields.

34 / 42

Periode d’un LFSR

Supposons que le polynome de retroaction f est irreductible.

Dans K = F2n , ou n = deg f , alors la matrice M est diagonalisable.

On a donc X (i) = X (0) × P ×∆i × P−1.

Quel est l’ordre ω de x dansZ/pZ[x ]/(f ) ∼= F2n ?

Le sous-groupe 〈x〉 est un sous-groupe de F×2n .

Au mieux, l’ordre de x est 2n − 1 polynome primitif.

Cas plus general : f = f1 . . . fk avec deg fj = nj et∑

nj = n :

ordre maximum =∏j

2nj − 1, plus petit.

Pour maximiser la periode, on choisit f (irreductible et) primitif.

35 / 42

Periode d’un LFSR

Supposons que le polynome de retroaction f est irreductible.

Dans K = F2n , ou n = deg f , alors la matrice M est diagonalisable.

On a donc X (i) = X (0) × P ×∆i × P−1.

Quel est l’ordre ω de x dansZ/pZ[x ]/(f ) ∼= F2n ?

Le sous-groupe 〈x〉 est un sous-groupe de F×2n .

Au mieux, l’ordre de x est 2n − 1 polynome primitif.

Cas plus general : f = f1 . . . fk avec deg fj = nj et∑

nj = n :

ordre maximum =∏j

2nj − 1, plus petit.

Pour maximiser la periode, on choisit f (irreductible et) primitif.

35 / 42

Synthese (attaque) d’un LFSR

Soit un LFSR de largeur n.

Si le polynome de retroaction est connu : n bits observespermettent de retrouver l’etat interne.

Si on ne connaıt pas f , il suffit de 2n bits pour retrouver l’etatinterne et f : algorithme de Berlekamp-Massey ou d’Euclide.(preuve au tableau).Cout calculatoire : O(n2).

36 / 42

(presque) dernier mot sur les LFSR

Moralite : un LFSR c’est simple, mais pas tres solide tel quel.

Il faut voir les LFSR comme des briques de base.

37 / 42

Plan

De Cesar a maintenant

Vernam

Alea et Generateurs pseudo-aleatoires

Chiffrement a flot

38 / 42

Chiffrement a flot

Le point-cle dans One-Time-Pad : la difficulte a generer etpartager une volumineuse suite de chiffrement.

Palliatif : utiliser un (PRNG) pour fabriquer une suite chiffrante(ki ). La graine du generateur pseudo-aleatoire sert de cle.

Chargement de l’etat interne a partir de la graine.Un etat interne bit(s) de cle, et etat interne suivant.

⊕(XOR) chiffre c0, . . .

(K , date)→ PRNG → k0, k1, k2 . . . .

message m0, . . .

39 / 42

Chiffrement a flot : quel PRNG ?

Il existe beaucoup, beaucoup de chiffrements a flot.

Nombre d’entre eux s’appuyent sur des LFSR.

registre filtres par des fonctions booleennesRegistres a retard.. . .

Il y en a aussi plein d’autres.

Attention, la tambouille n’est pas une garantie de serieux !

40 / 42

Registres filtres

0 1 0 1 1 1 0

φ

ki

On utilise pour la fonction φ une fonction booleenne aux bonnesproprietes.

Si φ est une fonction lineaire : aucun interet.

On recherche les fonctions �les moins lineaires possibles�.

Tres utilises, mais φ ne doit pas etre de trop petit degre.

41 / 42

Registres a retard

Le cryptosysteme A5/1 (GSM) utilise des LFSRs a retard.

181716 13 8 0

2120 10 0

0710202122

Concerne des centaines de millions de portables.

Diverses attaques, globalement assez mechantes.

Certaines attaques utilisent juste une suite chiffree, et utilisentdes tables (2TB).D’autres utilisent la suite chiffrante (donc un coupleclair/chiffre), et sont naturellement plus rapides. 42 / 42