8inf433 introduction à la cryptographie. terminologie expéditeur destinataire message –texte en...

36
8INF433 Introduction à la cryptographie

Upload: emilien-rousselle

Post on 04-Apr-2015

130 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

8INF433

Introduction à la cryptographie

Page 2: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Terminologie

• Expéditeur

• Destinataire

• Message– texte en claire– texte chiffré (cryptogramme)

texte en clair texte chiffré texte en clairChiffrement Déchiffrement

Page 3: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Terminologie

• Cryptographie: art et science du chiffrement

• Cryptanalyse: Art et science du déchiffrement

• Cryptologie: Branche de l'informatique théorique qui traite de la cryptographie et de la cryptanalyse

Page 4: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Formalisation

• M : suite de caractères (message)

• Fonction de chiffrementE(M)=C

• Fonction de déchiffrementD(C)=M

• On doit avoir D(E(M))=M

Page 5: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Algorithme cryptographique

• Paire de fonctions utilisées pour le chiffrement et le déchiffrement.

• Algorithme restreint: l'algorithme est secret– N'est plus utilisé– La conception d'un tel algorithme nécessite un expert– On ne peut utiliser d'algorithmes commerciaux– Différents algorithmes pour différents utilisateurs.

Page 6: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Clef cryptographique

• Valeur K provenant d'un grand ensemble de valeurs possibles (espace des clefs).

• En général on a besoin de deux clefs– K1 : pour le chiffrement– K2 : pour le déchiffrement

• L'algorithme cryptographique est connu de tous mais dépend des deux clefs:– EK1

(M)=C

– DK2(C)=M

Page 7: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Clef cryptographique

Le secret réside dans la (ou les) clef(s) et non dans les détails de l'algorithmes.

Chiffrement DéchiffrementM

K1 K2

C M

Page 8: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Deux types d'algorithmes

• Algorithmes à clef secrète– K1 peut être calculé à partir K2 et vice versa.– On a souvent K1=K2

– K1 et K2 doivent être secrètes

• Algorithmes à clef publique– K1K2

– K2 ne peut pas être calculé à partir de K1

– K1 peut être publique – K2 doit être secrète (clef privée)

Page 9: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Algorithme à clef secrète

• DES, AES, etc.

• Chiffre à substitution: Chaque caractère du message est remplacé par un autre caractère.

– Exemple: Chaque caractère du message est remplacé par celui qui se trouve K places plus loin (modulo 26)

• Code de Jules César: K=3

– Si le message est en binaire, on peut le segmenter en blocs de longueur L et remplacer chaque bloc B par

(B+K) mod 2L

où K < 2L est la clef.

– Machines à rotors (Enigma)

Page 10: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Algorithme à clef secrète

• Chiffre à transposition: Les caractères du message sont inchangés mais leur position est modifiée.– Exemple (transposition simple en colonne):

"L'assassin est le docteur Matrix, regardez derrière l'horloge"

LASSASSINESTLEDOCTEURMATRIXREGARDEZDERRIERELHORLOGE

"LEERE OASUE RRSTR GRLSL MAIOA EAREG SDTDR ESORE EICIZ LNTXD H"

Page 11: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Algorithme à clef secrète

• Technique du masque jetable (one–time pad, 1919): Seule méthode connue 100% sécure.

– On veut chiffrer un message.

MASQUEJETABLE– On choisit de façon aléatoire une séquence de caractères:

TBFRGFARFMIKL– On effectue une substitution pour obtenir un message totalement

aléatoire:

GCYIBKKWZNKWQ

Page 12: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Algorithme à clef secrète

– Si on ne connait pas la clef TBFRGFARFMIKL alors il est impossible de retrouver le message original.

– Toutes les clef sont également probables et celle-ci aurait aussi bien pu être

RXDCXFHVQBYRX– Si on déchiffre GCYIBKKWZNKWQ avec cette clef on obtient:

OEUFSDECAILLES– Si on avait choisit la clef:

RTFDAPUVHMGNX

on aurait obtenu le texte en clair:

OISEAUPARADIS

Page 13: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Échange de clefs

Le principal problème de la technique du masque jetable est la distribution de la clef.

Le premier algorithme d'échange de clefs a été inventé par Diffie et Hellman en 1976.

Alice et Bernard se mettent d'accord sur deux grands entiers n et g de telle manière que g soit primitif par rapport à n.

Page 14: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Nombres primitifs

g est primitif par rapport à n si tous les nombres entre 1et n-1 peuvent être exprimés sous la forme: gi mod n.

Exemple: g=2 et n=11210 = 1024 = 1 (mod 11)

21 = 2 = 2 (mod 11)28 = 256 = 3 (mod 11)22 = 4 = 4 (mod 11)24 =16 = 5 (mod 11)29 = 512 = 6 (mod 11)27 = 128 = 7 (mod 11)23 = 8 = 8 (mod 11)26 = 64 = 9 (mod 11)25 = 32 = 10 (mod 11)

Page 15: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Protocole de Diffie et Hellman (1976)

• Alice choisit un grand nombre entier aléatoire x et envoie à Bernard le résultat du calcul:

A=gx mod n

• Bernard choisit un grand nombre entier aléatoire y et envoie à Alice le résultat du calcul:

B=gy mod n

• Alice calcule k = Bx mod n

• Bernard calcule k' = Ay mod n

• Les valeurs k et k' sont toutes deux égales à gxy mod n

Page 16: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Fonction à sens unique

• Fonction facile à calculer mais dont l'inverse est difficile à calculer (même de façon probabiliste).

• Logarithme discrêt: fonction inverse de:

f(x) = gx mod n

• Factorisation: Il est possible de multiplier efficacement deux grands nombres entiers mais aucun algorithme efficace n'est connu pour factoriser un grand nombre.

Page 17: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Cryptologie à clef publique

• Clef publique K1

• Clef privée K2

• Fonction de chiffrement: EK1(M)

• Fonction de déchiffrement: DK2(C)

• DK2(EK1

(M)) = EK1(DK2

(M)) = M

Page 18: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Comment cela fonctionne?

• Chaque utilisateur doit posséder une clef publique et une clef privée.

• Si Alice veut envoyer un message M à Bernard elle utilise la clef publique K1 de Bernard et envoie:

C = EK1(M)

• Bernard reçoit C et utilise sa clef privée K2 pour calculer:

M = DK2(C)

Page 19: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Quel est l'avantage?

1. N'importe qui peut envoyer un message à Bernard en utilisant sa clef publique.

2. Bernard peut utiliser sa clef privée pour signer un message M:– Il calcule d'abord:

S = DK2(M)

– Puis il envoie à Alice le message:(M,S)

– Pour vérifier que le message a bien été envoyé par Bernard, Alice calcule:

T = EK1(S)

– Si M = T alors Alice sait que seul Bernard a pu signer ce message et que le message n'a pas été modifié.

Page 20: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

RSA (Rivest, Shamir et Adleman 1978)

1. Choisir aléatoirement deux grand nombres premiers p et q différents.

2. Calculer n=pq et (n)=(p-1)(q-1)

3. Choisir un entier e impair relativement premier à (n)

4. Calculer d tel que ed mod (n) = 1

5. Publier la clef publique (e,n)

6. Garder secrète la clef privée (d,n)

• Fonction de chiffrement: E(M) = Me mod n

• Fonction de déchiffrement: D(C) = Cd mod n

Page 21: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Étape 1

Comment trouver un nombre premier aléatoire:

1. On choisit un grand nombre impair au hasard2. On effectue le test de Miller-Rabin pour déterminer s'il

est premier3. S'il n'est pas premier on l'incrémente de 2 puis on

refait l'étape précédente

Théorème de densité des nombres premiers: Pour tout entier k, il y a environ k/lg k nombres premiers plus petit que k.

Page 22: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Étape 2

Calculer n=pq et (n)=(p-1)(q-1)

Nous avons déjà vu des algorithmes efficaces pour calculer le produit de deux grands nombres entiers.

Page 23: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Étape 3

On veut un entier e impair et relativement premier à (n).

On choisit e<(n) au hasard puis on appelle Euclide(e, (n)):

Euclide(a,b)

si b=0 alors retourner a

sinon retourner Euclide(b,a mod b)

Si e n'est pas relativement premier à (n) alors on incrémente e successivement jusqu'à ce que l'on obtienne le nombre désiré.

Page 24: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Étape 4Nous avons besoin de l'algorithme d'Euclide étendu qui permet de trouver

trois valeurs entières (d,x,y) tels que:t = PGCD(a,b) = ax + by

Euclide_étendu(a,b)si b=0 alors retourner (a,1,0)sinon

(t',x',y') = Euclide_étendu(b,a mod b)retourner (t,x,y) = (t',y',x'- a/b y')

En supposant que l'appel récursif fonctionne correctement on obtient:

t = t' = bx' + (a mod b) y'

= bx' + (a - a/b b) y'

= ay' + b (x' - a/b y')

Ce qui correspond bien aux valeurs retournées par l'algorithme.

Page 25: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Étape 4 (suite)

L'algorithme d'Euclide étendu calcule un triplet (t,x,y) tel que:

t = PGCD(a,b) = ax + by

On a donc

1 = PGCD(e, (n)) = ex + (n) y

Ce qui implique

ex mod (n) = 1

Il suffit donc de prendre d=x.

Page 26: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Pourquoi cela fonctionne-t-il?Si M mod p = 0 alors Med mod p = M mod p=0

Sinon

Med mod p = M1+k(p-1)(q-1) mod p (pour un certain k)

= M(M(p-1))k(q-1) mod p

= M(1)k(q-1) mod p (Fermat) = M mod p

Similairement : Med mod q = M mod q

Page 27: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Pourquoi cela fonctionne-t-il?Theorème du reste chinois:

Soit p1, p2, ..., pk des nombres relativement premiers.Alors le système d'équations

x = ai mod pi (1i k )Possède une solution unique modulo n=p1p2...pk

Corollaire: On a

b = a mod p etb = a mod q

si et seulement si b = a mod n

Page 28: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Pourquoi cela fonctionne-t-il?

Conclusion: Si M < n=pq alors

Med mod p = M

Med mod q = M

donc par le théorème du reste chinois:

Med mod n = M

Page 29: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Utilisation de RSA

• Puisque

D(E(M)) = M mod n

alors on doit avoir M<n

• Pour chiffrer de plus long messages il suffit de le diviser en blocs M=M1 M2 ... Mt de sorte que Mi<n pour tout 1≤i≤t

• On peut aussi utiliser RSA pour transmettre une clef et ensuite utiliser un algorithme à clef secrète.

Page 30: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Exemple d'utilisation de RSA

• Prenons p=47 et q=71

• n = 3337 et (n) = 4670 = 3220

• Choisissons e=79 et d=1019(on peut vérifier que ed = 80501 = 1+ 25 3220)

• Pour chiffrer le message 688232687966668 on commence par le diviser en petit blocs de trois chiffres:

m1 m2 m3 m4 m5 m6 = 688 232 687 966 668

• En utilisant la clef (e,n)=(79, 3337) on calcule le premier bloc:

68879 mod 3337 = 1570 = c1

Page 31: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Exemple d'utilisation de RSA

• Les autres blocs sont chiffrés de la même manière et on obtient:

c1 c2 c3 c4 c5 c6 = 1570 2756 2091 2276 2423

• Pour déchiffrer le message on utilise la clef (d,n)=(1019, 3337) et on obtient pour le premier bloc:

15701019 mod 3337 = 668 = m1

• Le reste du message en clair est obtenu de la même manière.

Page 32: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Signature numériqueNous avons vu que Bernard pouvait signer un message M en utilisant

sa clef privée pour calculer S = D(M) et envoyer (M,S).

En général, M est trop grand pour que ce calcul puisse être effectué de manière efficace et on veut une signature qui ne soit pas trop longue.

On peut alors utiliser le chaînage par bloc:1. M est divisé en bloc m1 m2 ... mt de longueur fixe.2. Calculer s1 = m1

d mod n3. Pour i = 2 à t faire si= (mi si-1)d mod n4. La signature est S = st

Note: L'opérateur est le OU-exclusif.

Page 33: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Fonction de hachage à sens unique

En pratique, on ne signe pas le message lui-même mais plutôt une empreinte digitale obtenue à l'aide d'une fonction de hachage h satisfaisant les propriétés suivantes:

1. Étant donné M, il est facile de calculer h(M).2. Étant donné h(M) , il est difficile de calculer M.3. Étant donné M, il est difficile de trouver un autre message M' tel

que h(M)=h(M').

On exige quelquefois une quatrième propriété:

4. Il est difficile de trouver deux messages aléatoires M et M' tels que h(M)=h(M').

Page 34: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Nombres pseudo-aléatoires

Un générateur de nombres pseudo-aléatoires est une fonction g qui prend en entrée une séquence x de t bits et produit en sortie une séquence g(x) plus longue (disons t2 bits) telle que g(x) "semble" aléatoire.

Soit f(x) une fonction à sens unique telle que RSA ( f(x)= xe mod n où (e,n) est la clef publique).

• Si x est une séquence de bits aléatoires on calcule f(x) et on choisit un des bits

• On calcule ensuite f(f(x)) et on choisit un des bits• On poursuit de la même manière t2 fois.

Page 35: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Nombres pseudo-aléatoires

Si on utilise RSA, il suffit de prendre le bit le plus significatif.

Le bit le moins significatif ne produit pas de bon résultat.

Page 36: 8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte

Jouer à pile ou faceAlice et Bernard veulent jouer à pile ou face par téléphone. Comment peuvent-ils

y parvenir s'il ne se font pas confiance?

• Bernard choisit un nombre x d'un ensemble contenant autant de nombres pairs que de nombres impairs.

• Bernard calcule y=f(x) où f est une fonction à sens unique telle que RSA

• Bernard envoie y à Alice

• Alice choisit un bit b et envoie son choix à Bernard

• Bernard envoie x à Alice

• Alice vérifie que y=f(x)

• Alice gagne si b représente la parité de x.