• Aucun résultat trouvé

Notre mod`ele est une extension des mod`eles classiques

Le but de cette section est de prouver la terminaison pour notre syst`eme d’inf´erence d´efini dans la Section 5.8 du Chapitre 5 et ceci pour les protocoles sans variables d’indice et sans mpairs g´en´erant des indices. Notons que pour ces protocoles, un syst`eme de contraintes ne contien- drait ni quantificateurs, ni variables d’indices et par cons´equent pas de contraintes maˆıtres. Ce

6.5. Notre mod`ele est une extension des mod`eles classiques 175 r´esultat permet de justifier le fait que notre mod`ele est une extension des mod`eles classiques de v´erification de protocoles cryptographiques. Nous commen¸cons tout d’abord par d´efinir dans la Section 6.5.1 le poids d’un syst`eme de contraintes en fonction de ses ingr´edients, `a savoir les blocs de contraintes, les contraintes ´el´ementaires et les termes. Nous montrerons par la suite en Section 6.5.2 que, pour chacune des r`egles de notre syst`eme d’inf´erence, le poids du syst`eme de contraintes initial est sup´erieur `a celui du syst`eme de contraintes r´esultant.

6.5.1 Poids des termes, contraintes ´el´ementaires, blocs et syst`emes de contraintes

Nous d´efinissons tout d’abord le poids k k des termes, des contraintes ´el´ementaires, des blocs de contraintes et des syst`emes de contraintes. Afin de d´efinir le poids d’un terme, nous avons be- soin d’introduire quelques d´efinitions telles que la notion de rang d’un terme (D´efinition 6.5.1.1) et la notion de taille d’un terme (D´efinition 6.5.1.2).

D´efinition 6.5.1.1 Rang d’un terme.

Le rang d’un terme t est d´efini comme suit : – r(X) = max{l | X ⊏lY , Y ∈ X } pour X ∈ X – r(t) = max{r(Y ) | Y < t, Y ∈ X }

D´efinition 6.5.1.2 Taille d’un terme.

Nous d´efinissons la taille d’un terme t, not´ee |t|, comme suit : – |t| = 1 pour t ∈ X ∪ C

– |f (u1, .., um)| = 1 + |u1| + .. + |um| – |h(u)| = 2 + |u| pour h ∈ H

Nous ´etendons cette d´efinition aux ensembles de termes : |E| = Σt∈E|t| pour E ⊂ T . Nous pouvons maintenant d´efinir les poids des termes, des contraintes ´el´ementaires et fina- lement des blocs de contraintes et des syst`emes de contraintes. Nous commen¸cons par d´efinir le poids d’un terme :

D´efinition 6.5.1.3 Poids d’un terme.

Soit p la taille du protocole, i.e. la somme des tailles des messages. Nous d´efinissons le poids d’un terme t, not´e ktk, comme suit :

– kXk = pr(X) + 1 pour X ∈ X – kck = 1 pour c ∈ C

– kf (u1, .., um)k = 1 + ku1k + .. + kumk – kh(u)k = 2 + kuk pour h ∈ H

Nous ´etendons cette d´efinition d’une mani`ere naturelle aux ensembles de termes : kEk = Σt∈Ektk pour E ⊂ T .

Ensuite, le poids d’une contrainte ´el´ementaire est donn´ee par la D´efinition 6.5.1.4. D´efinition 6.5.1.4 Poids d’une contrainte ´el´ementaire.

Soit st le nombre de sous-termes du protocole. Nous d´efinissons le poids d’une contrainte ´el´ementaire ctr, not´e kctrk, comme suit :

– kt ∈ F orge(E, K)k = hst − #K, ktk + kEk + |E| + 1i – kt ∈ F orgec(E, K)k = hst − #K, ktk + kEk + |E|i – kt ∈ Sub(w, E, E, K)k = hst − #K, ktk + kwk + |E| + 1i – kt ∈ Subd(w, E, E, K)k = hst − #K, ktk + kwk + |E|i

176 Chapitre 6. D´ecidabilit´e pour les protocoles param´etr´es bien tagu´es `a clefs autonomes – kt = uk = h0, ktk + kuki

En outre, un bloc de contraintes est constitu´e de plusieurs contraintes ´el´ementaires. Le poids d’un bloc est alors donn´e par la D´efinition 6.5.1.5.

D´efinition 6.5.1.5 Poids d’un bloc de contraintes.

Soient N cE le nombre maximal de contraintes d’´egalit´e de la forme X = u o`u X ∈ X et N cN le nombre maximal de contraintes n´egatives de type F orge. Consid´erons un bloc de contraintes B = ctr1∧ ..ctrl. Nous d´esignons par N cB le nombre de contraintes n´egatives dans B, ScB le nombre de contraintes sous-maˆıtres dans B et EcB le nombre de contraintes d’´egalit´e de la forme X = u (X ∈ X ) dans B. Ensuite, nous notons hi l’ordre lexicographique et [] le multi-ensemble.

Nous d´efinissons alors le poids d’un bloc B comme suit :

kBk = N cN − N cB, N cE − ScB, [kctrik]ctri∈B, N cE − EcB

Finalement, vu qu’un syst`eme de contraintes est constitu´e de plusieurs blocs de contraintes, nous pouvons maintenant d´efinir le poids d’un tel syst`eme de contraintes :

D´efinition 6.5.1.6 Poids d’un syst`eme de contraintes.

Consid´erons un syst`eme de contraintes : S = B1 ∧ ..Bl. Nous d´efinissons le poids de S comme suit :

kSk = [kBik]Bi∈S

6.5.2 Terminaison pour les protocoles sans indices et sans mpair

Le but de cette section est de prouver la Proposition 6.2.0.6 de la Section 6.2 : Proposition 6.2.0.6 Terminaison pour les protocoles sans indices et sans mpair(, ).

L’algorithme 6.2 termine pour les protocoles sans variables d’indices et sans mpair(, ). Preuve. Nous prouvons la Proposition 6.2.0.6 en montrant que chaque r`egle de notre syst`eme d’inf´erence d´efini en Section 5.8 du Chapitre 5 fait diminuer le poids de notre syst`eme de contraintes S, i.e. consid´erant une r`egle r, kpost(r)k < kpre(r)k. Tout d’abord, notons que les r`egles de notre syst`eme d’inf´erence n’´eliminent pas de contraintes n´egatives. Ainsi, ∀B ∈ S, N cN − N cB reste inchang´e ou bien diminue pour le cas de la R`egle [5.31]. Par cons´equent, la R`egle [5.31] fait diminuer kSk. Les R`egles [5.3], [5.14], [5.20], [5.22] et [5.32] ´eliminent un bloc du syst`eme de contraintes vu qu’elles m`enent toutes `a ⊥. Elles font donc diminuer kSk. La R`egle [5.22] ´elimine une contrainte d’un certain bloc de S vu qu’elle m`ene `a ⊤. Elle diminue alors kSk. La R`egle [5.1] change une contrainte d’´egalit´e ctr ∈ B en une autre de la forme (X = u) o`u X ∈ X. Ainsi, le nombre de contraintes sous-maˆıtres et le poids de contraintes de B demeurent inchang´es. En outre, N cE − EcB diminue vu que EcB augmente. Par cons´equent, kBk diminue et ainsi fait kSk.

La R`egle [5.8] ajoute une contrainte sous-maˆıtre `a un bloc B ∈ S. Ainsi, kSk diminue. Pour la R`egle [5.2], vu que (X = u)sm ∈ B, alors kXk > kuk.

En effet, kuk ≤ |u| ∗ pmax{r(Y )|Y <u,Y ∈X } ≤ pr(X)+1. Ensuite, kY = Xk = kY k + kXk > kY k + kuk = kY = uk. En outre, le nombre de contraintes sous-maˆıtres reste inchang´e. Ainsi, kSk diminue.

Pour la R`egle [5.9], nous avons kpre(R [5.9])k > kpost(R [5.9])k. En effet, kpre(R [5.9])k = hk, ktk + kEk + |E| + 1i et kpost(R [5.9])k = [hk, ktk + kEk + |E|i, hk, ktk + kwk + |E| + 1i], o`u k = st − #K et w ∈ E. En outre, la R`egle [5.9] ne change pas le nombre de contraintes

6.6. Terminaison pour les protocoles bien tagu´es avec clefs autonomes 177