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
S´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.
D´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 q ∈ Q 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
Dans le document
Protocoles cryptographiques pour l’authentification numérique et le respect de la vie privée
(Page 32-35)