• Aucun résultat trouvé

7.2 DisCSP sécurisés et résolution

7.2.1 Méthodes sans utilisation des techniques cryptographiques 107

Ces méthodes sont introduites pour la première fois par Meseguer et Jimenez [89]. Ils ont présenté deux modèles qui permettent de résoudre en partie la question de protection des données privées dans les CSP distribués.

Le premier modèle est basé sur la notion d'exploitation des contraintes par-tiellement connues. Il permet de partager les contraintes impliquant des variables détenues par des agents diérents, tout en conservant la structure du problème. Par exemple, si on note Cij l'ensemble des contraintes entre deux variables xi

et xj qui sont possédées par deux agents diérents, alors quelques contraintes de l'ensemble Cij sont connues par l'agent qui détient la variable xi, et les autres contraintes de l'ensemble Cijsont connues par l'agent qui détient xj. Ces contraintes partiellement connues peuvent être dénies de la manière suivante :  Ci(j) contient les contraintes qui sont connues par l'agent qui détient la variable xi. Dans ce modèle, chaque contrainte de Ci(j)est dénie par une liste des tuples interdits de dxi× dxj.

 C(i)j contient les contraintes qui sont connues par l'agent qui détient la variable xj. De même, chaque contrainte de C(i)j est dénie par une liste des tuples interdits de dxi× dxj.

 Ci(j)S C(i)j = Cij, l'union des deux sous-ensembles constitue l'ensemble initial de toutes les contraintes qui portent sur les deux variables. Ce modèle est basé sur la notion de contraintes partiellement connues an que chaque agent puisse avoir une vue partielle des contraintes qui portent sur ses variables. L'objectif est de pouvoir aecter une valeur à une variable de manière à satisfaire toutes les contraintes, et en révélant le moins possible les contraintes. Pour illustrer le principe des contraintes privées, il sut de considérer le problème du jeu d'échec, dans lequel un agent est spécialisé dans

Chapitre VII CSP sécurisés distribués le déplacement d'une pièce. Par exemple, on peut considérer deux agents, l'un s'occupant de la reine et un autre s'occupant d'un cavalier. L'agent s'occupant de la reine ne connaît que les déplacements possibles pour cette pièce et ne connaît pas les déplacements possibles pour le cavalier. Les règles de déplacements sont des contraintes privées.

Le second modèle consiste à protéger les valeurs qui peuvent être aec-tées aux variables de chaque agent. Brito et al. [15, 17], ont proposé que les agents communiquent et s'échangent des aectations partielles. Plus précisé-ment, chaque agent transmet à ses voisins l'ensemble des valeurs interdites à leurs variables. Autrement dit, lors de la vérication de ses contraintes locales, l'agent ne va pas envoyer la valeur ou les valeurs assignée(s) à sa/ses variables, par contre il va transmettre les valeurs interdites aux variables des agents voi-sins.

De plus, les agents sont ordonnés selon une priorité xée dans une phase de pré-traitement. Il est clair que cet algorithme n'assure pas un niveau sécurité satisfaisant. En eet, les agents prioritaires vont réduire progressivement les do-maines des agents les moins prioritaires. Finalement, l'agent le moins prioritaire aura un domaine fortement réduit dans lequel il sera statistiquement beaucoup plus probable de trouver la valeur instanciée à sa variable. De plus, lorsqu'un agent a un domaine vide, il doit informer les agents les plus prioritaires, an qu'ils changent leurs valeurs. Ce qui constitue une information sur l'activité des agents prioritaires. On peut en déduire que cet algorithme assure son ni-veau de sécurité le meilleur lorsque le problème admet beaucoup de solutions, c'est-à-dire lorsqu'il y a peu d'échecs et que toutes les valeurs du domaine sont équiprobables.

7.2.2 Méthodes avec utilisation des techniques

cryptogra-phiques

Parmi ces méthodes, on peut citer l'algorithme de Yokoo et al. [170]. Les auteurs présentent, d'une manière très théorique, un modèle générique pour résoudre les DisCSP sécurisés. Ce modèle est basé sur l'utilisation d'un tiers de conance, et sur la propriété d'homomorphisme. Il consiste à coder les contraintes sous la forme de matrices carrées de taille m ∗ m, où m est la taille des domaines des variables. On note ces matrices Ci

xi,xj. La matrice Ci

xi,xj code la contrainte connue par l'agent Ai concernant les deux variables xiet xj. Dans le cas où l'arité des contraintes est n, les matrices à construire sont des matrices dans Rn, donc très coûteuses en temps de calcul. Un élément de la matrice Ci

xi,xj[di, dj] = 1 si le couple (di, dj) est autorisé aux variables (xi, xj et Cxii,xj[di, dj] = 0dans le cas contraire. Les élements des matrices sont cryptés

Chapitre VII CSP sécurisés distribués par une fonction de cryptage homomorphique E.

Soient par exemple deux agents A1et A2. Chaque agent détient une variable, respectivement x1 et x2, et le domaine de chaque variable est {1, 2, 3, 4}. On suppose que l'agent A1 connait la contrainte x1 = x2. L'agent A1 construit alors la matrice suivante :

C1 x1,x2 =

1 2 3 4

1 E(1) E(Z) E(Z) E(Z) 2 E(Z) E(1) E(Z) E(Z) 3 E(Z) E(Z) E(1) E(Z) 4 E(Z) E(Z) E(Z) E(1)

De la même manière, l'agent A2 génère la matrice de la contrainte qui relie les deux variables x1 et x2. On suppose que l'agent A2 connait la contrainte x1> x2. Donc, A2 génère la matrice suivante :

C2 x1,x2 =

1 2 3 4

1 E(Z) E(Z) E(Z) E(Z) 2 E(1) E(Z) E(Z) E(Z) 3 E(1) E(1) E(Z) E(Z) 4 E(1) E(1) E(1) E(Z)

Ci

xi,xj représente implicitement la contrainte entre les variables xiet xj. Elle est connue par l'agent Ai. Ces matrices sont envoyées aux agents intermédiaires appelés agents intelligents. Chaque agent intelligent est responsable d'une paire de variables xi et xj, sachant que l'agent Ai connaît une partie des contraintes reliant les variables xiet xj et que l'agent Aj en connaît l'autre partie. L'agent intelligent construit la matrice globale qui relie les deux variables en utilisant la propriété de chirement homomorphique (E(a) ∗ E(b) = E(a ∗ b)).

Ensuite, il eectue un certain nombre de permutations aléatoires sur les lignes et les colonnes de la matrice. La matrice ainsi permutée est envoyée aux serveurs externes (le  search controller et les  decryptors ). Ces deux serveurs externes recherchent, en coopérant, la solution pour le problème en appliquant l'algorithme de Backtracking.

Cette méthode n'engendre aucune perte d'information privée des agents par-ticipant. Par contre, si les variables n'ont pas les mêmes tailles de domaine, les agents devront construire des matrices de taille (m1 + m2) ∗ (m1 + m2) avec m1 la taille du domaine de la variable x1 et m2 la taille du domaine de la variable x2. Ce qui augmente signicativement les communications entre les agents par-ticipants et les agents intelligents, ainsi que les communications entre le search

Chapitre VII CSP sécurisés distribués controller et les decryptors pour la recherche d'une solution. Un autre défaut majeur de cet algorithme est qu'il ne tire pas prot du parallélisme. Les agents participants restent au repos pendant que le calcul s'eectue au niveau des agents intelligents. De plus, à notre connaissance, il n'y a pas d'implémentation eectuée.

Une manière d'améliorer cet algorithme est d'utiliser une notation binaire (par exemple la position des valeurs dans le domaine) an de n'utiliser que de simples opérateurs logiques (AND, OR, NOT). Il est également possible de s'inspirer de ce formalisme pour transformer des problèmes de satisfaction de contraintes en des problèmes de satisfaction d'expressions booléennes (SAT).

En 2005, un autre article proposé par Zivan et al. [106] améliore les travaux de Yokoo. Il présente deux protocoles de résolution de DisCSP sécurisés : un protocole centralisé et un autre distribué. Dans le protocole centralisé, les agents participants envoient leurs matrices chirées directement à un serveur central, qui réalise la recherche. Dans le protocole distribué, plusieurs serveurs coopèrent dans la recherche de solution, en ajoutant des liens de communication. Chaque serveur ne s'occupe que de deux agents participant. Ces travaux n'ont cependant pas été implémentés par les auteurs.

Chapitre VII CSP sécurisés distribués

7.3 Conclusion

Nous observons que deux grandes catégories d'approches ont été propo-sées pour la préservation de la condentialité des informations détenues par les agents. La première approche consiste en l'utilisation de perturbations du modèle de contraintes partiellement connues. La seconde approche utilise des techniques cryptographiques et en particulier la propriété d'homomorphisme de certains cryptosystèmes asymétriques. Cette seconde approche assure un niveau de sécurité supplémentaire par rapport à la première contre les attaques ex-térieures. Néanmoins, elle ne garantit pas un niveau plus élevé au niveau de la protection des données privées contre les participants. Au contraire, elle de-mande plus de calcul pour les opérations de chirement et déchirement. Nous observons aussi que l'intervention des intrus extérieurs, et les actes internes mal-veillants sont en général non traités dans ces modèles. Il est donc nécessaire de développer d'autres techniques qui permettent de renforcer la sécurité de ces modèles. Dans le chapitre suivant, nous proposons un compromis entre ces deux approches pour améliorer la condentialité.

Chapitre 8

Approche parallèle,

coopérative, et sécurisée

Privacy is not something that I'm merely entitled to, it's an absolute prerequisite. Marlon Brando Le chapitre 6 avait pour but de proposer une technique performante PC qui permet aux diérentes entités d'un système distribué de collaborer pour résoudre le problème de manière ecace. Dans ce chapitre, nous nous intéres-sons plus particulièrement à raner cette stratégie an de préserver les données privées de chaque agent sans utilisation d'un tiers de conance. En particulier, nous présentons une version sécurisée de PC_BT qui exploite un mécanisme de chirement asymétrique. Ensuite, nous examinons les propriétés et les caracté-ristiques de cette technique, et la comparons avec les méthodes existantes.

8.1 La stratégie proposée

Dans cette section, nous allons décrire la stratégie proposée pour résoudre les Secure DisCSP sans utilisation d'un tiers de conance. Cette stratégie réduit le coût des communications, garantit le même niveau de condentialité que les protocoles existants présentés dans le chapitre 7, et utilise un chirement à clé publique. Une partie de ce travail a été présentée dans [120, 125].