• Aucun résultat trouvé

S´ecurit´e Prouv´ee et Complexit´e de probl`emes

Chapitre 1 : Notations et Rappels G´ en´ eraux

1.3 Rappels sur la Cryptographie

1.3.1 S´ecurit´e Prouv´ee et Complexit´e de probl`emes

ecurit´e Prouv´ee

Il est g´en´eralement acquis que la s´ecurit´e prouv´ee a ´et´e introduite en 1984 par Goldwasser

et Miccali [22]. Ce domaine permet d’analyser de mani`ere formelle la s´ecurit´e d’une

primitive cryptographique. Ainsi, il est n´ecessaire de d´efinir pr´ecis´ement ce que le terme

”s´ecurit´e” signifie pour un sch´ema donn´e. En fait, il faut donc pr´ecis´ement ´etablir les

objectifs que doit remplir le sch´ema ´etudi´e et quelles sont les attaques auxquelles il doit

pouvoir r´esister.

Par exemple, un sch´ema de chiffrement a pour objectif de prot´eger la confidentialit´e

d’un message. En fonction du contexte, certains sc´enarios d’attaques sont envisageables:

on parle demod`ele de s´ecurit´e. En g´en´eral, un mod`ele de s´ecurit´e se d´efinit `a travers un jeu

interactif entre un attaquant et un challengeur qui contrˆole l’environnement de ce dernier.

Pour gagner un jeu, un attaquant doit r´ealiser des tˆaches dont on veut g´en´eralement

prouver qu’elles sont difficiles. Par exemple, dans le cas du chiffrement, l’attaquant peut

avoir pour objectif de retrouver un clair `a partir d’un chiffr´e donn´e.

En g´en´eral, pour prouver la s´ecurit´e d’une primitive, l’id´ee est d’´etablir une r´eduction

entre le mod`ele de s´ecurit´e et un probl`eme jug´e difficile. Plus pr´ecis´ement, gagner un jeu

associ´e `a un mod`ele de s´ecurit´e permettra alors de r´esoudre un probl`eme difficile.

Mod`ele de l’oracle al´eatoire Introduit par Bellare et Rogaway [23], le mod`ele de

l’oracle al´eatoire ou ROM (pour Random Oracle Model) suppose que toute fonction de

hachage1 se comporte comme une fonction al´eatoire. Autrement dit, leurs sorties sont

indistinguables de valeurs al´eatoires. Ainsi, prouver la s´ecurit´e d’un sch´ema dans le ROM

revient `a remplacer toute fonction de hachage par un oracle al´eatoire. `A chaque appel,

l’oracle retourne une sortie uniform´ement distribu´ee dans l’espace d’arriv´ee; ´evidemment

sur une entr´ee d´ej`a rencontr´ee l’oracle retourne la mˆeme sortie.

Mod`ele standard Contrairement au ROM, le mod`ele standard ne pose aucune

hypoth`ese sur les fonctions de hachage utilis´ees. Les preuves de s´ecurit´e dans ce mod`ele

sont donc g´en´eralement consid´er´ees comme plus fortes. En effet, certains travaux ont

soulign´e que la s´ecurit´e dans le ROM pouvait conduire `a des instanciations non s´ecuris´ees

dans le mod`ele standard [24, 25]2.

La factorisation et le calcul du logarithme discret sont des probl`emes consid´er´es comme

standards puisque largement ´eprouv´es par la communaut´e, notamment depuis leur usages

respectifs dans la conception des c´el`ebres cryptosyst`emes RSA [27] et ElGamal [28]. Ces

probl`emes sont donc consid´er´es comme r´esistants aux technologies actuelles (Shorr a

montr´e que ces deux probl`emes pouvaient r´esolus en temps polynomial par l’ordinateur

quantique [29]). Ainsi, proposer un cryptosyst`eme dont la s´ecurit´e se r´eduirait `a un tel

probl`eme reviendrait `a prouver sa s´ecurit´e dans le mod`ele standard.

Complexit´e de probl`emes

Notions de complexit´e Certains probl`emes, comme la factorisation ou le logarithme

discret, sont consid´er´es difficiles car largement ´etudi´es par la communaut´e sans qu’aucun

algorithme efficace –c’est-`a-dire en temps polynomial– de r´esolution n’ait ´et´e produit.

D’autre part, certains probl`emes jouissent d’assomptions de s´ecurit´e plus formelles. En

cryptographie, on relie souvent la difficult´e d’un probl`eme `a sa classe de complexit´e. Les

d´efinitions rappel´ees ici sont informelles pour la plupart. Le lecteur est invit´e `a consulter

des ouvrages adapt´es tels que [30] pour plus de d´etails.

Avant d’introduire les classes de complexit´e, nous rappelons ce qu’est une machine

de Turing en reprenant les explications donn´ees par E. Bresson dans son manuscrit de

th`ese [31]. Imagin´e par Turing en 1936, le concept de machine de Turing permet de donner

une d´efinition pr´ecise au concept d’algorithme.

efinition 18 (Machine de Turing). Une machine de Turing est un triplet, Q, δ)

v´erifiant les propri´et´es suivantes:

Σest un ensemble fini non vide appel´e alphabet et contenant un ´el´ement particulier,

not´e I ;

Q est un ensemble fini non vide, appel´e ensemble des ´etats. Q contient un ´el´ement

particulier q0 appel´e ´etat initial et un sous-ensemble Q0 non vide dont les ´el´ements

sont appel´es ´etats finaux ;

δ est une application de Σ×Q dans {←,,→} ×Σ×Q.

Fonctionnement d’une machine de Turing Un tel concept se voit comme un

automate comportant un ruban infini et une tˆete de lecture/´ecriture. Le ruban est

compos´e de cases o`u la tˆete de lecture/´ecriture peut lire/´ecrire des symboles de Σ et

se d´eplacer vers la gauche ou la droite du ruban. On initialise la machine dans l’´etatq0, le

ruban ne contenant que des symbolesI pour un nombre fini de cases et la tˆete est plac´e le

plus `a gauche de ces cases. Maintenant, en fonction du symbole σ lu sur la case courante

et de l’´etat de la machine qQ et en notant (v , σ0, q0) = δ(σ, q), on d´eplace la tˆete de

lecture comme indiqu´e par v, on y ´ecrit σ0 et on met la machine dans l’´etat q0.

L’hypoth`ese de Church-Turing assure que tout ce que peut faire un ordinateur peut ˆetre

r´ealis´e par une machine de Turing de telle sorte qu’un algorithme peut ˆetre identifi´e `a une

machine de Turing. Une machine satisfaisant la D´efinition 18 est dite d´eterministe puisque

pour une instance donn´ee, l’enchaˆınement des instructions m`ene aux mˆemes transitions.

Machine de Turing non d´eterministe Une variante de la d´efinition pr´ec´edente

consiste `a consid´erer une machine dont la fonction d’´etat peut prendre plusieurs valeurs

`a la fois et peut donc ex´ecuter plusieurs instructions en mˆeme temps. Ainsi, les calculs

d’une machine de Turing d´eterministe forment une suite alors que ceux d’une machine non

d´eterministe forment un arbre de calcul non lin´eaire dans lequel chaque chemin correspond

`a une suite de calculs possibles. Pour un probl`eme donn´e, une machine de Turing non

d´eterministe b´en´eficiera d’une capacit´e de r´esolution sup´erieure mais d’un point de vue

de la th´eorie de l’information ces deux mod`eles sont ´equivalents : une machine non

d´eterministe calcule exactement les mˆemes fonctions qu’une machine non d´eterministe

mais avec des temps de calcul diff´erents.

Classes de complexit´e Nous d´efinissons informellement les classes de complexit´e qui

nous int´eressent dans ce manuscrit en les reliant aux notions de machines de Turing

´evoqu´ees ci-dessus. Rappelons d’autre part qu’un probl`eme de d´ecision est un probl`eme

pour lequel la r´eponse au probl`eme est ”oui” ou ”non”.

Classe P. Contient les probl`emes de d´ecision qui peuvent ˆetre d´ecid´es par une

machine de Turing d´eterministe en temps polynomial par rapport `a sa taille d’entr´ee.

C’est l’ensemble des probl`emes faisables oufaciles.

Classe NP. Ensemble des probl`emes de la classe P Contient l’ensemble des

probl`emes qui peuvent ˆetre d´ecid´es par une machine de Turing non d´eterministe

en temps polynomial par rapport `a la taille de l’entr´ee. Intuitivement, cela revient

`a dire que l’on peut v´erifierrapidement(i.e. par une machine de Turing d´eterministe

en temps polynomial) si un candidat est bien solution d’une instance donn´ee. C’est

le cas par exemple du probl`eme du voyageur de commerce.

Classe NP-difficile (NP-hard). Ensemble des probl`emes au moins aussi difficiles

que ceux de la classe NP. Plus pr´ecis´ement, un probl`eme Q est dit NP-difficile si

pour tout probl`emeQ0 ∈NP, il existe une r´eduction polynomiale deQ vers Q0.

Classe NP-complet. Intersection des classes NP-difficile et NP.

Une des questions fondamentales de la th´eorie de la complexit´e est de savoir si P =

NP, i.e. s’il existe des probl`emes qui sont dans NP sans ˆetre dans P. Baser la s´ecurit´e

d’un cryptosyst`eme sur un probl`eme NP-complet apporte un argument suppl´ementaire

pour croire en sa robustesse puisque casser (en temps polynomial) ledit cryptosyst`eme

reviendrait `a montrer que P = NP alors que ce probl`eme reste ouvert apr`es des d´ecennies

d’intenses recherches et que, pour beaucoup dans la communaut´e, il semblerait que P 6=

NP. La situation est r´esum´ee par la Figure 1.1

Figure 1.1: Repr´esentation ensembliste des classes de complexit´e