Upload
philippe-fabre
View
118
Download
6
Embed Size (px)
Citation preview
Le chiffrement Le chiffrement asymétriqueasymétrique
11/04/23 Pr 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
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
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
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
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
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
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
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
Le subset sum problemLe subset sum problem
11/04/23 Pr BELKHIR Abdelkader
Séquence super-croissanteSéquence super-croissante
11/04/23 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
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
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
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
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
Merkle-Hellman (exemple)Merkle-Hellman (exemple)
11/04/23 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
Fonction d’EulerFonction d’EulerThéorème:
11/04/23 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
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
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
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
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
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
RSA: ExempleRSA: Exemple
11/04/23 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
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
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
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
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
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
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
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.
ComparaisonComparaison
11/04/23 Pr BELKHIR Abdelkader