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

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

Présentations similaires


Présentation au sujet: "8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte."— Transcription de la présentation:

1 8INF433 Introduction à la cryptographie

2 Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte chiffré texte en clair ChiffrementDéchiffrement

3 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

4 Formalisation M : suite de caractères (message) Fonction de chiffrement E(M)=C Fonction de déchiffrement D(C)=M On doit avoir D(E(M))=M

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

6 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 –K 1 : pour le chiffrement –K 2 : pour le déchiffrement L'algorithme cryptographique est connu de tous mais dépend des deux clefs: –E K 1 (M)=C –D K 2 (C)=M

7 Clef cryptographique Le secret réside dans la (ou les) clef(s) et non dans les détails de l'algorithmes. ChiffrementDéchiffrement M K1K1 K2K2 CM

8 Deux types d'algorithmes Algorithmes à clef secrète –K 1 peut être calculé à partir K 2 et vice versa. –On a souvent K 1 =K 2 –K 1 et K 2 doivent être secrètes Algorithmes à clef publique –K 1 K 2 –K 2 ne peut pas être calculé à partir de K 1 –K 1 peut être publique –K 2 doit être secrète (clef privée)

9 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 2 L où K < 2 L est la clef. –Machines à rotors (Enigma)

10 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" LASSASSIN ESTLEDOCT EURMATRIX REGARDEZD ERRIERELH ORLOGE "LEERE OASUE RRSTR GRLSL MAIOA EAREG SDTDR ESORE EICIZ LNTXD H"

11 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

12 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

13 É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 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.

14 Nombres primitifs g est primitif par rapport à n si tous les nombres entre 1et n-1 peuvent être exprimés sous la forme: g i mod n. Exemple: g=2 et n= = 1024 = 1 (mod 11) 2 1 = 2 = 2 (mod 11) 2 8 = 256 = 3 (mod 11) 2 2 = 4 = 4 (mod 11) 2 4 =16 = 5 (mod 11) 2 9 = 512 = 6 (mod 11) 2 7 = 128 = 7 (mod 11) 2 3 = 8 = 8 (mod 11) 2 6 = 64 = 9 (mod 11) 2 5 = 32 = 10 (mod 11)

15 Protocole de Diffie et Hellman (1976) Alice choisit un grand nombre entier aléatoire x et envoie à Bernard le résultat du calcul: A=g x mod n Bernard choisit un grand nombre entier aléatoire y et envoie à Alice le résultat du calcul: B=g y mod n Alice calcule k = B x mod n Bernard calcule k' = A y mod n Les valeurs k et k' sont toutes deux égales à g xy mod n

16 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) = g x 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.

17 Cryptologie à clef publique Clef publique K 1 Clef privée K 2 Fonction de chiffrement: E K 1 (M) Fonction de déchiffrement: D K 2 (C) D K 2 (E K 1 (M)) = E K 1 (D K 2 (M)) = M

18 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 K 1 de Bernard et envoie: C = E K 1 (M) Bernard reçoit C et utilise sa clef privée K 2 pour calculer: M = D K 2 (C)

19 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 = D K 2 (M) –Puis il envoie à Alice le message: (M,S) –Pour vérifier que le message a bien été envoyé par Bernard, Alice calcule: T = E K 1 (S) –Si M = T alors Alice sait que seul Bernard a pu signer ce message et que le message n'a pas été modifié.

20 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) = M e mod n Fonction de déchiffrement: D(C) = C d mod n

21 Étape 1 Comment trouver un nombre premier aléatoire: 1.On choisit un grand nombre impair au hasard 2.On effectue le test de Miller-Rabin pour déterminer s'il est premier 3.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.

22 É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.

23 É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é.

24 Étape 4 Nous 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.

25 É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.

26 Pourquoi cela fonctionne-t-il? Si M mod p = 0 alors M ed mod p = M mod p=0 Sinon M ed mod p = M 1+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 : M ed mod q = M mod q

27 Pourquoi cela fonctionne-t-il? Theorème du reste chinois: Soit p 1, p 2,..., p k des nombres relativement premiers. Alors le système d'équations x = a i mod p i (1 i k ) Possède une solution unique modulo n=p 1 p 2...p k Corollaire: On a b = a mod p et b = a mod q si et seulement si b = a mod n

28 Pourquoi cela fonctionne-t-il? Conclusion: Si M < n=pq alors M ed mod p = M M ed mod q = M donc par le théorème du reste chinois: M ed mod n = M

29 Utilisation de RSA Puisque D(E(M)) = M mod n alors on doit avoir M

30 Exemple d'utilisation de RSA Prenons p=47 et q=71 n = 3337 et (n) = = 3220 Choisissons e=79 et d=1019 (on peut vérifier que ed = = ) Pour chiffrer le message on commence par le diviser en petit blocs de trois chiffres: m 1 m 2 m 3 m 4 m 5 m 6 = En utilisant la clef (e,n)=(79, 3337) on calcule le premier bloc: mod 3337 = 1570 = c 1

31 Exemple d'utilisation de RSA Les autres blocs sont chiffrés de la même manière et on obtient: c 1 c 2 c 3 c 4 c 5 c 6 = Pour déchiffrer le message on utilise la clef (d,n)=(1019, 3337) et on obtient pour le premier bloc: mod 3337 = 668 = m 1 Le reste du message en clair est obtenu de la même manière.

32 Signature numérique Nous 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 m 1 m 2... m t de longueur fixe. 2.Calculer s 1 = m 1 d mod n 3.Pour i = 2 à t faire s i = (m i s i-1 ) d mod n 4.La signature est S = s t Note: L'opérateur est le OU-exclusif.

33 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').

34 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 t 2 bits) telle que g(x) "semble" aléatoire. Soit f(x) une fonction à sens unique telle que RSA ( f(x)= x e 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 t 2 fois.

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

36 Jouer à pile ou face Alice 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.

37 Jouer à pile ou face Autre méthode: Bernard choisit deux séquences x et y de bits aléatoires de sorte que le premier bit de x et y est différent. Bernard utilise sa clef publique pour calculer x'=E(x) et y'=E(y) puis il envoie x' et y' à Alice Alice choisit z' {x', y'} et envoie z' à Bernard. Bernard envoie x et y à Alice Alice utilise la clef publique de Bernard pour vérifier que x'=E(x) et y'=E(y). Alice et Bernard connaissent z {x,y} tel que z'=E(z). Si le premier bit de z est 1 alors Alice gagne sinon Bernard gagne.


Télécharger ppt "8INF433 Introduction à la cryptographie. Terminologie Expéditeur Destinataire Message –texte en claire –texte chiffré (cryptogramme) texte en clair texte."

Présentations similaires


Annonces Google