• Aucun résultat trouvé

Sécurité d’un système de chiffrement

Partie I Introduction à la cryptologie partagée 23

1.4 Modèle de sécurité

1.4.4 Sécurité d’un système de chiffrement

Dans cette section, nous définissons un système de chiffrement et nous en donnons deux exemples très importants. Puis, nous définissons différentes notions de sécurité et nous montrons la sécurité sé-mantique du cryptosystème El Gamal.

Description d’un schéma de chiffrement

Définition 10 Système de chiffrement à clé publique. Un schéma de chiffrement à clé publique se com-pose d’un triplet d’algorithmes s’exécutant en temps polynomial(K,E,D).

– L’algorithme de génération des clésK est un algorithme probabiliste en temps polynomial qui prend en entrée un paramètre de sécuriték(que l’on note souvent en notation unaire1k) et produit une paire(pk,sk) pkest appelée la clé publique, et sk la clé secrète correpondante.

On notera(pk,sk) ∈ K(1k). On dira aussi que la paire(pk,sk)correspond à la paire de clés de chiffrement/déchiffrement.

– L’algorithme de chiffrement E est un algorithme probabiliste en temps polynomial qui prend en entrée un paramètre de sécurité 1k, une clé publique pk choisie par K(1k), et une chaîne m∈ {0,1}k, appelée le message, et qui produit une chaîne en sortiec∈ {0,1}appelé le chiffré.

On utilisera la notationc∈ Epk(m;r)pour dire quecest un chiffrement du messagemen utilisant la clé publiquepkavec un paramètrekde sécurité et un randomr.

– L’algorithme de déchiffrementDest un algorithme en temps polynomial qui prend en entrée un paramètre de sécurité1k, une clé secrète sk choisie dansK(1k), quelques fois un randoms et un chiffré c ∈ Epk(m;r) et qui produit une chaînem0 ∈ {0,1} telle que pour toute paire (pk,sk) dans K(1k), pour tout message m, et pour tout chiffré c ∈ Epk(m;r), la probabilité Pr[Dsk(c;s)6=m0]est négligeable.

Comment utiliser un tel système?

Pour utiliser un système de chiffrement à clé publique(K,E,D)avec comme paramètre de sécurité 1k, l’utilisateur Alice exécute l’algorithme de génération de clésK(1k)pour obtenir une paire (pk,sk) de clés de chiffrement/déchiffrement. Alice publie alorspkdans un fichier public (annuaire), et conserve secrète la clésk. Si Bob souhaite envoyer un message à Alice, alors il a besoin d’obtenirpket exécute Epk(m;r). Ensuite, Alice calcule le messagem=Dsk(c).

Description du schéma de chiffrement RSA

Le système de chiffrement à clé publique le plus utilisé à l’heure actuelle est le chiffrement RSA [163]. La sécurité de ce cryptosystème est basée sur le problème RSA. La clé publique d’Alice est constituée de pk = (N, e), où N = pq est un module RSA et eest l’exposant public premier avec ϕ(N) = (p−1)(q−1). La clé secrète d’Alice est constituée de l’exposant privésk =dtel queed = 1 modϕ(N). Il est aisé de calculer l’inversedde emoduloϕ(N) en utilisant l’algorithme d’Euclide étendu. Cependant, à partir deN, il est difficile de calculerd. Pour envoyer un message chiffré à Alice, Bob obtient la clé publique et calculec=memodN. Pour déchiffrer le chiffréc, Alice calculecdmod N. La validité de l’opération utilise le théorème d’Euler. Pour toutx ∈ZN,xϕ(N) = 1 modN. Ainsi, quand Alice calculecdmodN, elle obtient

med =m1+kϕ(N) =m×(mϕ(N))k=m×(1)k =mmodN

Remarque 2 On peut remarquer que la relationmed =mmodest valable pour toutm∈ZN.

Description du schéma de chiffrement El Gamal

Le système de chiffrement El Gamal [66] est basé sur le problème du logarithme discret. Dans ce cryptosystème, les paramètres sont(g, q, p)tels queq|p−1oùpetqsont des nombres premiers etgest un générateur d’un sous-groupeGdeZpd’ordre premierq. La clé publiquepkest un entiery=gx∈G et la clé privée estsk=x∈Zq.

Pour chiffrer un message m pour Alice, Bob génère un random r ∈ Zq et calcule (A, B) = (gr, myr). Pour déchiffrerc, Alice calculeB/Ax=m× (gyrr)x =m×(g(gxr))rx =m.

Attaques contre les systèmes de chiffrement Par ordre croissant de force, on distingue :

– Dans les attaques à clairs choisis (CPA= Chosen Plaintext Attack), l’adversaire obtient les textes chiffrés des textes clairs de son choix. Cette attaque ne peut pas être évitée dans le cadre d’un chiffrement à clé publique car on donne la clé publique à l’adversaire.

– Dans les attaques à chiffrés choisis non-adaptatives (CCA1 = non-adaptive Chosen-Ciphertext At-tack), aussi appelée “lunch-time attacks”, formalisées par Naor et Yung [129], l’adversaire obtient en plus de la clé publique, l’accès à un oracle de déchiffrement. L’adversaire peut utiliser cet oracle uniquement pendant la période précédant la réception du chiffré ciblec. Le terme non-adaptative fait référence au fait que les questions à l’oracle de déchiffement ne peuvent pas dépendre du chiffréc.

– Dans les attaques à chiffrés choisis adaptatives (CCA2 = adaptive Chosen-Ciphertext Attack), dues à Rackoff et Simon [160], l’adversaire obtient en plus de la clé publique l’accès à un oracle de déchiffrement, mais cette fois-ci, l’adversaire peut l’utiliser même après la réception du chiffré ciblecavec la seule restriction qu’il ne peut pas demander le déchiffrement dec. L’attaque est dite

“adaptative” parce que les questions à l’oracle de déchiffrement peuvent dépendre du chiffré cible c.

Notions de sécurité

Il existe trois notions de sécurité pour un système de chiffrement : la “one-wayness”, la “sécurité sémantique”, et la “non-malléabilité”.

La notion de sécurité de base requise pour un système de chiffrement est la one-wayness, qui signifie grosso modo qu’à partir du chiffré, on ne peut pas retrouver le message clair en entier.

Définition 11 One-Wayness. Un système de chiffrement à clé publique est ditone-waysi aucun atta-quant probabiliste en temps polynomial ne peut retrouver le message clair à partir d’un chiffré donné, avec une probabilité non négligeable. De manière formelle, on écrit qu’un système de chiffrement asy-métrique est(t, ε)-OWsi pour tout adversaireAayant un tempstborné, sa probabilité d’inversion est inférieure àε:

Succow(A)def= Pr

m←M,rR

h

(sk,pk)← K(1k) :A(Epk(m;r))=? mi

< ε où la probabilité est aussi prise sur les randomsrde chiffrement de l’adversaire.

Une propriété de plus en plus demandée aujourd’hui est la sécurité sémantique [98] aussi connue sous le nom d’indistinguabilité des chiffrés ou sécurité polynomiale car elle correspond à la sécurité parfaite dans le modèle calculatoire.

Définition 12 Sécurité sémantique. Un système de chiffrement à clé publique est ditsémantiquement sûrsi aucun attaquant probabiliste en temps polynomial ne peut apprendre un seul bit d’information sur le clair à partir du chiffré, excepté sa longueur. De manière formelle, on écrit qu’un système de chiffrement asymétrique est(t, ε)-INDsi pour tout adversaireA= (A1, A2)ayant un tempstborné,

Advind(A)def= 2×Pr

(pk,sk)← K(1k), (m0, m1, s)←A1(pk), c← Epk(mb;r) :A2(c, s)=? b

−1< ε

où la probabilité est prise sur les randoms de l’adversaire et les messagesm0 etm1de taille identique dans l’espace des messagesM.

Remarque 3 Cette notion n’est valable que pour des schémas de chiffrement probabilistes car dans le cas déterministe, il est aisé de distinguer un chiffré dem0et un chiffré dem1en effectuant le chiffrement.

Une autre notion de sécurité a aussi été définie : la non-malléabilité [64].

Définition 13 La non-malléabilité. La non-malléabilité (NM) formalise l’incapacité d’un adversaire à obtenir un nouveau chiffréy0à partir d’un chiffréyde telle sorte que les clairsxetx0 des chiffrésy et y0soient significativement reliés.

Une relation entre les clairs peut êtrex0 =x+1, par exemple. Cette notion capture la notion de résistance du chiffré à une tentative de modification. Nous ne détaillons pas cette notion car elle a été prouvée équivalente à la sécurité sémantique contre des attaques parallèles [12].

Le jeu de la sécurité sémantique

On peut représenter le jeu d’un adversaireCPAà travers le schéma de la figure 1.4 :

b0

Sib=b0,Agagne le jeu

Challengeur A

m0,m1

c=Epk(mb, r) pk

A1

A2

b

FIG. 1.4: Jeu de la sécurité sémantique contre des attaques CPA.

Le jeu de la sécurité sémantique est le suivant. L’adversaire A est composé de deux algorithmes (A1, A2)et obtient la clé publique du système. L’adversaire exécute l’algorithmeA1 qui retourne deux messagesm0etm1. Un challengeur tire au hasard un bitbet chiffremb avecEpour obtenirc. Il envoie ensuite (m0, m1, c)à l’adversaire qui exécuteA2 sur(m0, m1, c). L’algorithme A2 retourne un bitb0. Si la probabilité de succès de l’adversaire diminuée de la probabilité de deviner au hasard (à pile ou

face =1/2) est non négligeable (supérieure à l’inverse de la valeur d’un polynômeQen le paramètre de sécurité), on dit alors que le chiffrement n’est pas sûr. Dans ce cas, l’algorithmeA = (A1, A2)est un distingueur des chiffrés dem0 etm1.

En d’autres termes, la sécurité sémantique dit qu’il est impossible en temps polynomial enkqu’un algorithme trouve deux messages m0, m1 sur lesquels il puisse en temps polynomial distinguer entre c ∈ Epk(m0;r)etc ∈ Epk(m1;r). Il est équivalent de dire que le chiffrement dem0 est indistinguable du chiffrement dem1au sens de l’indistinguabilité polynomiale24.

Relation entre les notions de sécurité pour les cryptosystèmes

Nous présentons maintenant les relations entre les attaques et les notions de sécurité. Ceci permettra de mieux appréhender la sécurité que nous voulons atteindre.

Un moyen commode d’organiser la définition des chiffrements sécurisés est de considérer séparément les buts et les modes d’attaques. On obtient ainsi chaque définition comme le couple d’un but et d’un mode d’attaque particulier.

On peut mixer les butsNM, IND, OW et les modes d’attaques CPA, CCA1, CCA2 pour obtenir les neuf combinaisons :OW-CPA, OW-CCA1, OW-CCA2, IND-CPA, IND-CCA1, IND-CCA2, NM-CPA, NM-CCA1, NM-CCA2.

Le schéma 1.5 présente les théorèmes suivants dus principalement à Bellare, Desai, Pointcheval et Rogaway [5]. Le premier théorème important est que la non-malléabilité contre une attaque adaptative à chiffrés choisis est équivalente à la sécurité sémantique. Aujourd’hui, on considère que la notion de sécurité la plus forte est IND-CCA2. Une flèche pleine signifie qu’il y a une implication et une flèche

IND−CCA2 NM−CCA2

NM−CCA1

IND−CCA1 NM−CPA

IND−CPA

FIG. 1.5: Relation entre les objectifs et la force des adversaires.

barrée signifie que l’implication est fausse.

Par exemple, si un schéma est sûr contre les attaques à chiffrés choisis tentant de malléer le clair, alors le schéma est aussi sémantiquement sûr contre les attaques à chiffrés choisis. Ou bien, si un schéma est sûr contre les attaques à clairs choisis cherchant à malléer le clair, alors le schéma n’est pas obliga-toirement sémantiquement sûr contre les attaques à chiffrés choisis non-adaptatives.

24. On verra la notion d’indistinguabilité au chapitre 2.

Pour éclaicir ces notions, donnons quelques exemples basés sur le chiffrement RSA sans ajouter de padding particulier comme le propose PKCS#1 v1.5 ou PKCS#1 v2 avec OAEP [10].

Remarque 4 Le chiffrement RSA ne cache pas d’information partielle. Si un attaquant connaît l’es-pace des messages dans lequel Alice choisit ses clairs et que celui-ci est petit, alors un attaquant peut retrouver le clair. En effet, si Alice doit choisir entre0ou1, un adversaire, Eve, peut refaire le même chif-frement et en comparant les chiffrés, elle retrouve le clair. Ceci provient du fait que RSA est un système de chiffrement déterministe.

Remarque 5 Le chiffrement RSA est malléable. Supposons qu’Alice veuille envoyer à Bob un ordre de virement. Alors en voyant passer le chiffrécdem, Eve peut le malléer en chiffrant1/2. L’ordre de virement que recevra Bob sera alorsc0=c(1/2)eet Eve aura réussi à malléermenm0 =m/2.

De même, dans un protocole d’enchères, les utilisateurs chiffrent un montant et un protocole déter-mine le montant maximum sans déchiffrer toutes les enchères. Dans ce cas, tous les utilisateurs voient passer les montants chiffrés et on ne doit pas pouvoir calculerc0 =E(m+ 1)après avoir vuc=E(m).

Remarque 6 Le chiffrement RSA n’est pas sécurisé contre les attaques à chiffrés choisis. Dans ces attaques, un adversaire veut déchiffrer un chiffré “cible”c. Cependant, Bob ne veut pas donner le clair à Eve pour certaines raisons. Pourtant, Bob accepte de déchiffrer pour Eve d’autres chiffrés. En particulier, Eve peut générer un chiffréc0 = c×xe modN,pour un nombrexet elle peut demander à Bob de le déchiffrer pour elle. Elle obtient ainsim0 et peut calculerm=m0/xmodN.

Les deux dernières remarques proviennent de la multiplicativité du cryptosystème RSA.

Ces attaques peuvent toutefois être contrées en utilisant un chiffrement randomisé comme RSA PKCS#1 qui revient à encoder les données sous un certain format avant d’appliquer l’algorithme RSA.

Le formatage des données brise la relation de multiplicativité car le format n’est pas multiplicatif : f(x)×f(y) 6= f(xy). Le clair se présente alors sous la formef(m, r), oùr est une chaîne aléatoire etf une fonction non cryptographique facile à calculer pour tout le monde. On n’utilise jamais RSA tel quel car l’hypothèse de “one-wayness” du problème RSA dit qu’il est difficile en temps “raisonnable” à partir d’uny ∈ZN quelconque de trouver unxen entier tel quey=xemodN, mais ne dit rien sur la difficulté de calculer un bit dexpar exemple ce qui casserait la sécurité sémantique. Le but du padding RSA est de randomiser l’instance sur laquelle appliquer la fonction RSA, de façon à pouvoir utiliser le problème RSA pour unypris au hasard dansZN et non dans un sous-ensemble de petite taille.

Exemple : la sécurité sémantique du cryptosystème El Gamal

Dans cette section, nous allons montrer que le cryptosystème El Gamal est sémantiquement sûr sous l’hypothèse que le problème DDH est difficile. Pour ce faire, nous allons utiliser une preuve par réduction, en montrant qu’un adversaireA qui sait casser la sécurité sémantique du schéma El Gamal peut être utilisé pour construire un attaquant B qui sait casser le problème DDH réputé difficile. On conclut en disant que comme le problème DDH est un problème difficile, un tel attaquantBn’existe pas, en conséquence de quoi l’adversaireAn’existe pas non plus.

On peut conclure car la réduction du problème DDH au jeu de la sécurité sémantique du crypto-système El Gamal peut s’effectuer en temps polynomial. Ainsi, si on avait un tel adversaire qui sache résoudre le jeu de la sécurité sémantique, alors, on pourrait l’utiliser pour construire un algorithme qui s’exécuterait en temps polynomial et qui utiliserait l’adversaireAcomme une boîte noire.

La figure 1.6 représente comment utiliser l’adversaire Aafin de construire un attaquantBpour ré-soudre le problème DDH. Il est ensuite immédiat de vérifier que cette réduction fonctionne en temps polynomial. Le temps d’exécution deBest borné par la même constanteT que le temps deA.

m0,m1

Sib=b0,

cb

répondre "bon triplet"

Sinon,

"mauvais triplet"

problème du DDH

Bcherche à résoudre le ButiliseApour résoudre le problème DDH sachant queAsait résoudre le problème El Gamal

Challengeur BSimulateur AAdversaire

b0

A1

A2

cb = (A, mbC) (g, gx, gy, gz) = (g, A, B, C)

pk=B pk

FIG. 1.6: Preuve de sécurité du cryptosystème El Gamal.

Soitεl’avantage de l’adversaireApour casser la sécurité sémantique du cryptosystème El Gamal.

Cherchons avec quelle probabilité en voyant un triplet DDH ou non, l’attaquantBest un bon distingueur.

Si le triplet est un vrai triplet DDH, alors le simulateurBgagne le jeu DDH avec la même probabilité que A. Dans le cas contraire, le distingueurBse trompe en répondant “bon triplet” lorsque le triplet est ef-fectivement un triplet DDH mais pour lequel l’adversaire n’est pas arrivé à casser la sécurité sémantique.

Ainsi,Best un distingueur de triplet DDH avec la même probabilitéε.

Remarque sur la sécurité sémantique du cryptosystème El Gamal

On peut remarquer que si l’on n’impose pas que les clairs soient pris dans le sous-groupehgi, alors le cryptosystème El Gamal peut être cassé sans que le problème DDH le soit.

En effet, soit un groupe d’ordre2q engendré pargdansZp. L’élémentg2 engendre un sous-groupe cyclique d’ordre q. Désignons par (A, B) = (gr, yr.m) un chiffré El Gamal. L’attaquant choisit un messagem0 qui est un carré modulopetm1 qui n’est pas un carré. Le sous-groupe des éléments qua-dratiques et les éléments non-quaqua-dratiques génèrent tout le groupehgi = Zp. Pour tester si un nombre est un non-residu quadratique il suffit de l’élever à la puissanceqmodulop. Si l’on obtient1, le nombre est clairement un carré, sinon c’est un non-residu quadratique car pour toutx∈Zp,xp−1 = 1 modp.

L’attaquant gagne le jeu de sécurité sémantique s’il arrive à distinguer sic = E(mb;r) contient le chiffré dem0ou celui dem1. On peut distinguer plusieurs cas :

1. Siyest un non-residu quadratique et

– sirest pair (que l’on peut tester en calculant le symbole de Legendre25deA(=gr)), alors

25. Le symbole de Legendre dexmodulop, noté(x|p)vautxp−12 modpet indique sixest un résidu quadratique(x|p) = 1

yrest un carré. Dans ce cas, siB(=mb.yr)chiffrem0, alorsB est un carré, sinonB n’en est pas un. On teste alors en calculant le symbole de Legendre deB.

– sirest impair (que l’on peut tester en calculant le symbole de Legendre deA), alorsyrn’est pas un carré et siB =m0yrn’est pas un carré alors que siB=m1yr, alorsBest un carré.

2. Siyest un résidu quadratique alorsyrest un carré et siBchiffrem0, alorsB est un carré, sinon Bn’en est pas un.

En conclusion, en testant la résiduosité deBet deAon peut distinguer entre le chiffré dem0et celui de m1 et donc gagner le jeu de la sécurité sémantique.