Universit´e Pierre et Marie Curie
Master Informatique Sp´ecialit´e SESI
2014-2015
TP de MASSOC
V´erification formelle
Lucien Goubet
Emmanuelle Encrenaz
09 janvier 2015
1
Exercice 1 : Bonne ann´ee !
Figure 1 – Circuit myst`ere
Le but de cet exercice est de d´eterminer le comportement du circuit myst`ere repr´esent´e par la
figure1. Pour ce faire nous allons moeliser ce circuit en une formule bool´eenne afin de prouver
certaines propri´et´es `a l’aide d’un SAT-solver.
1. Donner l’expression bool´eenne des sorties du circuit myst`ere
an+1 =
bn+1 =
cn+1 =
2. Mod´elisation SAT
Les registres (c,b,a) poss`edent initialement les valeurs (0,1,0) respectivement. Nous cherchons `a
prouver que (c,b,a) =(0,0,0) au cycle 1 `a l’aide du SAT-solver dans CVC3 1:
1. http ://www.cs.nyu.edu/acsys/cvc3/doc/user doc.html
2
Mod´elisez le probl`eme sous la forme : circuit0.circuit1.prop sachant que circuitirepr´esente
l’´etat du circuit au cycle i et prop la propri´et´e que nous cherchons `a v´erifier.
Mettez sous forme conjonctive
Donnez la formule CNF obtenue au SAT-solver. Qu’en d´eduisez-vous ?
Le descriptif de CVC3 est donn´e dans le r´epertoire T P MASSOC/document utiles/cvc3.pdf et
quelques directives de prise en main sont donn´ees page 8 de cet ´enonc´e.
3. Mod´elisation SMT
CVC3 est un outil permettant de r´esoudre des probl`emes SMT. `
A la diff´erence des probl`emes
SAT,
les probl`emes exprim´es ne sont pas obligatoirement sous forme CNF
nous pouvons lui donner des variables autres que bool´eennes telles que des entiers ou des
tableaux de bits
nous pouvons lui donner des op´erateurs complexes tel que la multiplication ou la division.
Sans passer par la forme CNF :
Prouvez que (c,b,a) =(0,0,0) au cycle 1
Prouvez que (c,b,a) =(0,0,1) au cycle 2
Prouvez que (c,b,a) =(1,0,1) au cycle 3
Prouvez que (c,b,a) =(0,1,0) au cycle 4
D´eduisez-en la machine `a ´etats du circuit
La machine `a ´etat du circuit est cyclique. Sachant que (c,b,a) repr´esente le codage binaire d’un
chiffre, quel est le nombre compos´e par la concat´enation des chiffres obtenues aux cycles 0, 1, 2,
3 ?
Cycle 0 1 2 3
(c,b,a) (0, 1, 0) ...... ...... ......
Chiffre 2 ...... ...... ......
3
Exercice 2 : Optimisation de codes
Dans cette partie, nous utiliserons les preuves formelles pour optimiser du code assembleur. Le de-
scriptif du jeu d’instructions ARM est donn´e dans le r´epertoire T P MASSOC/documents utiles/armRef erence.pdf
Soit le code suivant :
o r r x , a , b
and y , a , b
eo r s , x , y
On suppose que les registres a, b, x, y et z sont tous sur quatre bits. `
A l’aide de CVC3, prouvez
que ce code assembleur est ´equivalent `a
eo r s , a , b
Soit le code suivant :
o r r x , a , b
and y , a , b
add s , x , y
On suppose que les registres a, b, x, y et z sont tous sur quatre bits. `
A l’aide de CVC3, prouvez
que ce code assembleur est ´equivalent `a
add s , a , b
4
Exercice 3 : S´ecurit´e
Les attaques physiques permettent de casser des syst`emes contenant des informations sensibles.
Une attaque physique possible est l’injection de faute par impulsions ´electromagn´etiques. Un
mod`ele de faute possible de cette attaque est le remplacement de l’instruction en cour d’ex´ecution
par un nop 2. Dans cet exercice nous verrons comment outrepasser une s´ecurit´e avec ce type
d’attaque et comment s’en d´efendre.
i f ( c o d e S a i s i==c od eSe cre t )
deverrouiller=1;
e l s e
deverrouiller=0;
Le code C ci-dessus permet de prot´eger l’acc`es `a des donn´ees sensibles (codes bancaires, carte
d’acc`es). Les variables qui y sont utilis´ees sont des entiers (vecteur de bits) sur 16 bits.
1. `
A l’aide de CVC3, prouvez que le code respecte les propri´et´es de s´ecurit´e suivantes :
1. (codeSaisi =codeSecret)deverrouiller = 1
2. (codeSaisi 6=codeSecret)deverrouiller 6= 1
2. Prouvez que le code suivant respecte ´egalement les mˆemes propri´et´es :
deverrouiller = (codeSaisi codeSecret)+2
3. En supposant que le registre r12 contient la variable deverrouiller, r11 codeSaisie et r10
codeSecret, le code assembleur correspondant s’´ecrit :
eo r r12 , r11 , r10
mvn r12 , r12
add r12 , r12 , #2
Si la deuxi`eme instruction assembleur est remplac´ee par un nop `a cause d’une attaque, est-
ce que les propri´et´es de s´ecurit´e sont toujours garanties ? Comment un attaquant peut-il donc
d´everrouiller le syst`eme sans d´etenir le bon mot de passe ?
2. No OPeration
5
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !