35
Le chiffrement Le chiffrement asymétrique asymétrique 18/06/22 Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Embed Size (px)

Citation preview

Page 1: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Le chiffrement Le chiffrement asymétriqueasymétrique

11/04/23 Pr BELKHIR Abdelkader

Pr Belkhir Abdelkader

Page 2: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Cryptographie asymétriqueCryptographie asymétrique

Le chiffrement par clé publique • Merkle-Hellman • RSA : Rivest - Shamir - Adleman • El Gamal• Comparaisons

11/04/23 Pr BELKHIR Abdelkader

Page 3: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Chiffrement asymétriqueChiffrement asymétrique

11/04/23

E Dm mc

Algorithme de chiffrement

Algorithme de déchiffrement

Ma clé publique = pk

La clé de chiffrement publique est pkLa clé sk reste privée et sert au déchiffrement uniquement

Sk clé privée

La clé public ne permet pas de déchiffrer (en particulier, elle ne permet pas de retrouver la clé privée

Pr BELKHIR Abdelkader

Page 4: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Définition formelleDéfinition formelle

Un chiffrement à clé publique se compose de trois algorithmes:

11/04/23

Algorithme de génération de clés:KG(l)=(pk, sk); il produit un couple (clé publique, clé privée)

Algorithme de chiffrement:E(m,pk)=c utilise la clé publique pk pour chiffrer un message m

Algorithme de déchiffrement:D(c,sk)=m : utilise la clé privée sk pour retrouver m

Pr BELKHIR Abdelkader

Page 5: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Restes ChinoisRestes ChinoisComment travailler avec plusieurs modules ?ThéorèmeSi m et n sont premiers entre eux alors la condition :

est équivalente à : a b (mn)Preuve: Si a b (mn) les deux relations a b (m) et a b (n) ont bien lieu.Réciproquement si ces deux relations ont lieu alors il existe k1 et k2 tels que : a - b = k1m = k2n

On voit alors que m divise k2n et comme il est premier avec n il divise k2. Si bien que : a - b = k3mn

11/04/23 Pr BELKHIR Abdelkader

Page 6: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Restes Chinois : un exemple Restes Chinois : un exemple numériquenumériqueRésoudre z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14z mod 3 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2z mod 5 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4Le couple (2; 3) correspond à z = 8

Comment résoudre le problème sans calculer le tableau ?

11/04/23 Pr BELKHIR Abdelkader

Page 7: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Restes Chinois : un exemple Restes Chinois : un exemple numériquenumériqueSoient m et n premiers entre eux. On cherche toutes les solutions entières de :

Théorème des restes chinoisSoit u et v deux entiers tels que un + vm = 1. L'entier c défini par l'égalité c = aun + bvm est solution puisquec = a(1 − vm) + bvm = a + vm(b − a) a (mod m),c = aun + b(1 − un) = b + un(a − b) b (mod n).Il est facile de vérifier que pour tout entier k Z, l'entier x = c + kmn est aussi solution

11/04/23 Pr BELKHIR Abdelkader

Page 8: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Preuve du théorèmePreuve du théorèmePar un calcul direct on vérifie que x = bum + avn est bien une solution. On vérifie alors que pour tout entier k, x + kmn est aussi une solution.Si maintenant x et y sont deux solutions, par différence on obtient :

ce qui nous permet de conclure : y = x + kmngrâce au théorème précédentRemarque: Il y a donc une solution unique y vérifiant 0≤y<mn; ce qui peut s’exprimer encore en disant qu’il y a une unique solution dans Z/mnZ.

11/04/23 Pr BELKHIR Abdelkader

Page 9: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

GénéralisationGénéralisationThéorèmeSi les entiers n1,n2,..,nk sont deux à deux

premiers entre eux, alors le système :

a une solution unique modulo n = n1n2...nk.

11/04/23 Pr BELKHIR Abdelkader

Page 10: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Le subset sum problemLe subset sum problem

11/04/23 Pr BELKHIR Abdelkader

Page 11: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Séquence super-croissanteSéquence super-croissante

11/04/23 Pr BELKHIR Abdelkader

Page 12: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Les séquences super-croissantesLes séquences super-croissantes

Une séquence de nombres est un séquence supercroissante (super-increasing sequence) si chaque nombre de cette séquence est plus grand ou égal à la somme des éléments qui le précédent dans la séquence.

Le problème de la somme des sous-ensembles (subset sum problem) se résout en une complexité polynomiale pour les séquences super-croissantes.

11/04/23 Pr BELKHIR Abdelkader

Page 13: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Subset sum problem (exemple 1)Subset sum problem (exemple 1)Soit la séquence super-croissante suivante :E = {6, 15, 37, 83, 190, 386, 781, 1580}. Existe-t-il un sous-

ensemble de E tel que la somme des éléments de sous ensemble donne s = 1221 ?

L’algorithme évolue ainsi :

Quand la boucle de l’algorithme se termine s vaut toujours 2 (et non 0), cela indique qu’il n’y a pas de sous-ensemble de valeurs de E telles que leur somme égale s. En effet, si nous prenons les éléments de E correspondant au xi qui valent 1, nous avons :781+386+37+15 = 1219 1221.11/04/23 Pr BELKHIR Abdelkader

Page 14: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Subset sum problem (exemple 2)Subset sum problem (exemple 2)Si avec la même séquence E :E = {6, 15, 37, 83, 190, 386, 781, 1580}, nous cherchons un sous-ensemble dont la somme serait s = 619, alors nous avons :

Quand la boucle de l’algorithme se termine s vaut 0 ce qui signifie que nous avons trouvé un sous-ensemble de valeurs de E telles que leur somme égale s. Si nous prenons les éléments de E correspondant au xi qui valent 1, nous avons : 386+190+37+6 = 619.

11/04/23 Pr BELKHIR Abdelkader

Page 15: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Merkle-HellmanMerkle-HellmanGénération des clésUn entier n est fixé comme paramètre commun

1. choisir une séquence super-croissante de n éléments bi et un modulus M tels que :

M > b1 +. . .+bn

2. choisir un entier W ∈ [1,M − 1] tel que W soit premier avec M

3. calculer ∀i ∈ [1, n] : ai = W · bi mod M

La clé publique est (a1, . . . , an)

La clé secrète est (M,W, b1, . . . , bn)

11/04/23 Pr BELKHIR Abdelkader

Page 16: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Merkle-Hellman (suite)Merkle-Hellman (suite)Chiffrement

Soit x un message à chiffrer de n bits

Calculer y = x1 · a1 +. . .+xn · an

Déchiffrementcalculer d = W−1 · y mod Mrésoudre le « subset sum problem» sur la séquence

des bi avec la somme égale à d le message clair x est tel que

d = x1 · b1 +. . .+xn · bn

11/04/23 Pr BELKHIR Abdelkader

Page 17: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Merkle-Hellman (exemple)Merkle-Hellman (exemple)

11/04/23 Pr BELKHIR Abdelkader

Page 18: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Fonction d’EulerFonction d’EulerDéfinitionLa fonction d’Euler (n) représente le

nombre d’éléments dans Zn*

(n) est le nombre d’éléments de {0, …,n} qui sont premiers avec n

(1) = 1 car Z1*= {0}

11/04/23 Pr BELKHIR Abdelkader

Page 19: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Fonction d’EulerFonction d’EulerThéorème:

11/04/23 Pr BELKHIR Abdelkader

Page 20: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Théorème d’EulerThéorème d’Euler

11/04/23 Pr BELKHIR Abdelkader

Pour tout a et n, si pgcd(a; n) = 1 alors

Page 21: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Le chiffrement RSALe chiffrement RSA

Génération des clés

1. choisir aléatoirement deux grands premiers distincts p et q approximativement de la même taille

2. calculer n = p*q et (n) = (p − 1)(q − 1)3. choisir un entier e aléatoire ∈]1, (n)[ tel que

pgcd(e, (n))=14. calculer l’unique d ∈ ]1, (n)[ tel que e · d ≡ 1

(mod (n))

La clé publique est (n, e)

La clé secrète est d

11/04/23 Pr BELKHIR Abdelkader

Page 22: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

RSA (suite)RSA (suite)

ChiffrementSoit le message x ∈ Zn à chiffrer. Calculer :

y = xe mod n

Déchiffrementy est déchiffré en calculant :

x = yd mod n

11/04/23 Pr BELKHIR Abdelkader

Page 23: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Déchiffrement de RSADéchiffrement de RSAPreuve : par définition et propriétés des

opérations modulo n, on a :Dk(Ek(M)) = ((M)e mod n)d mod n

= (Me)d mod n = Me∗d mod nEt donc :Me∗d = Mk∗(n)+1 = Mk∗(n).M mod n

= 1.M mod n = M mod n

11/04/23 Pr BELKHIR Abdelkader

Page 24: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

RSA - Exemple (suite)RSA - Exemple (suite)

Lorsqu’Alice veut envoyer un messagex = 10010111111110 (=9726 en décimal)

à Bob à qui appartient la clé publique ci-dessus, elle calcule :

y = xe mod n = 97263533 mod 11413 = 5761Bob déchiffre le message chiffré y en

calculant :x = yd mod n = 57616597 mod 11413 = 9726

11/04/23 Pr BELKHIR Abdelkader

Page 25: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

RSA - ExempleRSA - Exemple

Soient p = 101, q = 113Donc n = p · q = 11413Et (n) = 100 · 112 = 11200 (= 26 · 52 · 7)Soit e = 3533, nous avons bien (e, (n)) =

1Alors d = 6597 qui vérifie e · d ≡ 1 (mod (n))

La clé publique est (e, n) = (3533, 11413)La clé privée est d = 6597

11/04/23 Pr BELKHIR Abdelkader

Page 26: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

RSA: ExempleRSA: Exemple

11/04/23 Pr BELKHIR Abdelkader

Page 27: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Contrainte sur l’usage des Contrainte sur l’usage des clésclés

Théorème : Connaissant une clé publique (e, n) et la clé privée associée d, nous pouvons factoriser n

Preuve : Nous avons ed ≡ 1 (mod (n))Pour n’importe quel entier a ∈ Zn

∗ nous avons :aed−1 ≡ 1 (mod n)Nous pouvons écrire ed−1 = 2st avec t entier impair

Si est une racine carrée triviale de 1 modulo n on choisit un autre entier aSinon (avec z qui est une racine carrée non triviale de1 modulo n) nous avons z2 ≡ 1 (mod n) et n divisez2 − 1, donc n divise (z − 1)(z +1)

11/04/23 Pr BELKHIR Abdelkader

Page 28: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Contrainte sur l’usage des clés Contrainte sur l’usage des clés (suite)(suite)Que valent (z − 1, n) et (z +1, n) ?Ces deux plus grands commun diviseur ne peuvent prendre

comme valeurs que 1, p, q ou n

Aucun des deux pgcd ne peut valoir n. En effet, si (z − 1,n) = n alors z − 1 est un multiple de n, donc z ≡ 1 (mod n) et z est une racine carrée triviale de 1. Le raisonnement est le même si (z +1, n) = n

De même, les deux pgcd ne peuvent être simultanément égaux à 1, car si (z−1, n) = 1 et (z+1, n) = 1 alors n ne divise pas z2 − 1

Conclusion : au moins un des deux pgcd vaut p ou q

Corollaire : Deux utilisateurs ne peuvent avoir le même n dans leur clé publique 11/04/23 Pr BELKHIR Abdelkader

Page 29: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Attaque cycliqueAttaque cyclique

Soit Alice qui envoie à Bob un message y chiffré avecsa clé RSA (e, n)Oscar intercepte ce message y qu’il sait être à destination de Bob et « surchiffre » itérativement ce message chiffré. Il calcule ainsi :

11/04/23 Pr BELKHIR Abdelkader

Page 30: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

Définition-L’ordre du groupe, |G|, est le

nombre d’éléments dans G.-L’ordre d’un élément a d’un groupe

G est le plus petit t > 0 tel que at=e (élément neutre).

Notation Ord(a;G) ou Ord(a)

11/04/23 Pr BELKHIR Abdelkader

Page 31: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

El GamalEl GamalGénération des clés1. choisir aléatoirement un grand premier p2. trouver un générateur du groupe

multiplicatif Z∗p

3. choisir aléatoirement un entier a ∈ [1, p − 2]4. calculer = a mod p

La clé publique est (p, , )La clé secrète est a

11/04/23 Pr BELKHIR Abdelkader

Page 32: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

El GamalEl GamalSoit un entier premier p très grand et p − 1 doit avoir un grand facteur premier. On produit :– une clé secrète s, telle que s ∈ (1...p − 2),– une clé publique reposant sur l’entier p, un entier a premier avec p, et l’entier P tel queP = as mod pLe nombre a est pris tel que a ∈ (0...p − 1) et ∀ k ∈ (1...p − 2) :

ak 1 mod p

11/04/23 Pr BELKHIR Abdelkader

Page 33: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

El Gamal (suite)El Gamal (suite)Chiffrement

Soit un message M, avec M < p. On détermine un nombre aléatoire k qui n’est connu que de celui qui chiffre et différent à chaque message. On calcule alors

C1 = ak mod p

C2 = M.Pk mod p

On obtient alors le message chiffré C = (C1,C2)

DéchiffrementSoient (C1, C2) représentant le chiffré :

M = C1−s · C2 mod p

11/04/23 Pr BELKHIR Abdelkader

Page 34: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

El Gamal - ExempleEl Gamal - Exemple

11/04/23 Pr BELKHIR Abdelkader

Soient p = 2579, a = 2, s = 765. Il vient – Clé privée Sk = (765)– Clé publique Pk = (2579, 2, 949) car 2765 mod 2579 = 949Pour chiffrer M = 1299, on choisit k = 853. Il vientC1 = 2853 mod 2579 = 435C2 = 1299 949∗ 853 mod 2579 = 2396On peut effectivement vérifier que 2396/(435765) mod 2579 = 1299.

Page 35: Le chiffrement asymétrique 10/01/2015Pr BELKHIR Abdelkader Pr Belkhir Abdelkader

ComparaisonComparaison

11/04/23 Pr BELKHIR Abdelkader