FR2988944A1 - Procede de masquage des donnees composant un profil utilisateur associe a un noeud d'un reseau. - Google Patents
Procede de masquage des donnees composant un profil utilisateur associe a un noeud d'un reseau. Download PDFInfo
- Publication number
- FR2988944A1 FR2988944A1 FR1252716A FR1252716A FR2988944A1 FR 2988944 A1 FR2988944 A1 FR 2988944A1 FR 1252716 A FR1252716 A FR 1252716A FR 1252716 A FR1252716 A FR 1252716A FR 2988944 A1 FR2988944 A1 FR 2988944A1
- Authority
- FR
- France
- Prior art keywords
- node
- user profile
- data structure
- elements
- representative
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000000873 masking effect Effects 0.000 title claims abstract description 17
- 230000006870 function Effects 0.000 claims description 17
- 238000001914 filtration Methods 0.000 claims description 11
- 230000001419 dependent effect Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 3
- 238000011524 similarity measure Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Business, Economics & Management (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
L'invention concerne un procédé de masquage des données composant un profil utilisateur associé à un noeud d'un réseau, un profil utilisateur étant composé d'un sous-ensemble d'éléments présents parmi un ensemble d'éléments possibles. Le procédé de masquage comporte une étape d'obtention (32) d'une structure de données initiale comportant un nombre prédéterminé d'éléments binaires, un dit élément binaire pouvant prendre une valeur parmi deux valeurs possibles, la structure de données initiale étant représentative des éléments présents dans le profil utilisateur, et, pour au moins une partie desdits éléments binaires, une étape d'application (34) d'une opération probabiliste d'inversion de la valeur dudit élément binaire, fonction d'une valeur de probabilité calculée à partir d'un paramètre de confidentialité prédéterminé, permettant d'obtenir une structure de données masquée représentative des éléments présents dans le profil utilisateur. L'invention concerne également un procédé d'estimation de similarité entre un premier noeud et un deuxième noeud d'un réseau utilisant au moins une structure de données masquée obtenue par le procédé de masquage de données.
Description
Procédé de masquage des données composant un profil utilisateur associé à un noeud d'un réseau La présente invention concerne un procédé de masquage des données composant un profil utilisateur associé à un noeud d'un réseau, et un procédé d'estimation de la similarité entre un premier noeud et un deuxième noeud d'un réseau, chaque noeud ayant un profil utilisateur associé. L'invention se situe dans le domaine du respect de la vie privée dans les réseaux, notamment les réseaux distribués. De nos jours, la communication via Internet est largement généralisée, et de nombreux réseaux distribués sont créés sur la base des données et préférences émanant des utilisateurs, comme par exemple les réseaux sociaux. Typiquement, un tel réseau distribué est formé de noeuds, chaque noeud étant associé à un utilisateur et ayant un profil utilisateur associé, composé d'un sous-ensemble d'éléments présents parmi un ensemble d'éléments possibles, relatifs aux particularités ou aux préférences de l'utilisateur. Diverses applications utilisent le profil utilisateur, par exemple pour créer des groupes d'utilisateurs ayant des intérêts communs ou pour des systèmes de recommandation, aptes à proposer à un utilisateur de nouveaux produits conformes à ses intérêts. De telles applications nécessitent de calculer une similarité entre profils utilisateurs afin de déterminer leur proximité au sens des données ou préférences exprimées dans les profils utilisateur. Il est connu, dans un réseau centralisé dans lequel les noeuds représentatifs des utilisateurs sont considérés comme des clients, d'utiliser un serveur central pour effectuer un tel calcul de similarité. Cela pose deux types de problèmes, d'une part un problème de confidentialité des données constituant le profil utilisateur, et d'autre part, un problème de puissance de calcul à mettre en oeuvre par un tel serveur central effectuant les calculs de similarité. Un objectif de l'invention est de proposer un procédé de masquage des données composant un profil utilisateur, permettant d'obtenir une représentation d'un profil utilisateur qui présente des garanties en termes de confidentialité tout en présentant une bonne utilité pour un calcul de similarité entre profils associés aux noeuds d'un réseau. A cet effet, l'invention concerne, selon un premier aspect, un procédé de masquage des données composant un profil utilisateur associé à un noeud d'un réseau, un profil utilisateur étant composé d'un sous-ensemble d'éléments présents parmi un ensemble d'éléments possibles. Le procédé de l'invention comporte les étapes suivantes : - obtention d'une structure de données initiale comportant un nombre prédéterminé d'éléments binaires, un dit élément binaire pouvant prendre une valeur parmi deux valeurs possibles, la structure de données initiale étant représentative des éléments présents dans le profil utilisateur, et - pour au moins une partie desdits éléments binaires, application d'une opération probabiliste d'inversion de la valeur dudit élément binaire, fonction d'une valeur de probabilité dépendante d'un paramètre de confidentialité prédéterminé, permettant d'obtenir une structure de données masquée représentative des éléments présents dans le profil utilisateur.
Avantageusement, le procédé de l'invention permet d'obtenir une structure de données masquée représentative des éléments présents dans le profil utilisateur, qui respecte un niveau de confidentialité prédéterminé. Le procédé de masquage des données selon l'invention peut présenter une ou plusieurs des caractéristiques ci-dessous : - l'étape d'obtention comprend l'application d'une opération de filtrage sur ledit sous-ensemble d'éléments présents permettant d'obtenir une structure probabiliste de données représentative de la présence d'éléments dans le profil utilisateur parmi l'ensemble d'éléments possibles avec un niveau de certitude associé ; - ladite opération de filtrage est un filtrage de Bloom, associant un nombre M de valeurs binaires audit sous-ensemble d'éléments présents, les M valeurs binaires étant obtenues par application successive et indépendante de K fonctions de hachage, chaque fonction de hachage réalisant une association pseudo-aléatoire entre un élément présent dans le profil utilisateur et un élément binaire correspondant qui est mis à une première valeur binaire parmi les deux valeurs binaires possibles ; - ledit paramètre de confidentialité est un paramètre de confidentialité différentielle E relatif à la confidentialité des éléments binaires de ladite structure de données initiale, et ladite valeur de probabilité est comprise entre 1/(1+exp(E)) et 0,5 ; - ledit paramètre de confidentialité dépend en outre du nombre K de fonctions de hachage appliqué, et ladite valeur de probabilité est comprise entre 1/(1+exp(E/K)) et 0,5.
Selon un deuxième aspect, l'invention concerne un procédé d'estimation de similarité entre un premier noeud et un deuxième noeud d'un réseau, chaque noeud ayant un profil utilisateur associé, un profil utilisateur étant composé d'un sous-ensemble d'éléments présents parmi un ensemble d'éléments possibles. Le procédé d'estimation comporte les étapes de : -obtention d'une structure de données initiale ou d'une structure de données masquée obtenue par application d'un procédé de masquage tel que brièvement décrit ci-dessus, représentative du profil utilisateur associé au premier noeud, -réception d'une structure de données masquée représentative du profil utilisateur associé au deuxième noeud obtenue par application d'un procédé de masquage tel que brièvement décrit ci-dessus, et -estimation d'une valeur de similarité entre lesdits premier noeud et deuxième noeud en fonction desdites structures de données. Avantageusement, l'estimation de similarité peut être mise en oeuvre sur un noeud quelconque du réseau, dans la mesure où l'estimation de similarité se fait à partir des structures de données masquées obtenues. En particulier lorsque l'estimation de similarité est mise en oeuvre sur divers noeuds du réseau, comme dans un système distribué de type pair-à-pair, cela permet de s'affranchir du besoin d'un serveur central effectuant tous les calculs.
Le procédé d'estimation de similarité selon l'invention peut présenter une ou plusieurs des caractéristiques ci-dessous : - il est mis en oeuvre sur ledit premier noeud, et à l'étape d'obtention, une structure de données initiale représentative du profil utilisateur associé au premier noeud est obtenue ; - l'étape d'estimation comporte le calcul d'un produit scalaire entre ladite structure de données initiale et ladite structure de données masquée ; - il est mis en oeuvre sur un noeud du réseau différent desdits premier noeud et deuxième noeud, et à l'étape d'obtention, une structure de données masquée représentative du profil utilisateur associé au premier noeud est obtenue.
D'autres caractéristiques et avantages de l'invention ressortiront de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles : -la figure 1 est un exemple de réseau mettant en oeuvre l'invention, -la figure 2 est un schéma représentant les blocs fonctionnels d'un dispositif apte à mettre en oeuvre un procédé de masquage de données et/ou un procédé d'estimation de similarité selon l'invention, -la figure 3 est un organigramme représentatif des étapes mises en oeuvre pour le masquage des données composant un profil utilisateur selon un mode de réalisation de l'invention, et -la figure 4 est un organigramme représentatif des étapes mises en oeuvre dans un procédé d'estimation de similarité selon un mode de réalisation de l'invention.
La figure 1 représente schématiquement un réseau 1 selon un mode de réalisation de l'invention, constitué de noeuds 2, 4, 6, chaque noeud du réseau étant apte à communiquer avec les autres noeuds du réseau et ayant un profil utilisateur associé. Bien évidemment, un réseau selon l'invention est en pratique constitué d'un nombre quelconque de noeuds, le nombre de noeuds pouvant évoluer dynamiquement. En pratique, un noeud du réseau est mis en oeuvre par un dispositif programmable de type ordinateur personnel, ayant des capacités de calcul et des capacités de connexion à un réseau de communications. Par exemple, les noeuds 2, 4, 6 sont connectés via le réseau Internet.
Les noeuds 2, 4, 6 du réseau 1 ont chacun un identifiant, les identifiants étant notés respectivement A, B et C. Chaque noeud a un profil utilisateur associé, composé d'un sous-ensemble d'éléments présents parmi un ensemble d'éléments possibles. L'ensemble d'éléments possibles est fini ou pas.
Par exemple, les éléments présents désignent des adresses de type URL (« Uniform Resource Locator ») de documents pour lesquels l'utilisateur a exprimé une préférence. Chaque noeud calcule et mémorise une représentation initiale du profil utilisateur associé, notée respectivement PA pour le noeud A, PB pour le noeud B, et Pc pour le noeud C. Cette représentation initiale, appelée également profil privé, est calculée de manière déterministe. Par ailleurs, chaque noeud calcule et stocke une représentation masquée du profil utilisateur associé, appelée également profil public, notée respectivement P*A pour le noeud A, P*B pour le noeud B, et P*c pour le noeud C, le calcul étant effectué selon un des modes de réalisation de l'invention explicités en détail ci-après en référence à la figure 3. Cette représentation masquée est probabiliste, un niveau d'incertitude étant introduit sur les éléments la constituant, de manière à préserver la confidentialité et à empêcher qu'un tiers puisse déduire les éléments présents dans le profil utilisateur à partir de sa représentation masquée.
Ainsi, les représentations masquées peuvent être publiées, c'est-à-dire transmises à d'autres noeuds du réseau 1, tout en garantissant la confidentialité et un niveau de sécurité par rapport à des attaques malveillantes cherchant à retrouver les données du profil utilisateur masquées ou dissimulées. Les représentations initiales sont des représentations privées, qui sont stockées localement sur chaque noeud et ne sont pas rendues publiques.
Comme illustré par les flèches représentées sur la figure 1, les noeuds respectifs envoient la représentation masquée de leur profil à d'autres noeuds du réseau. Chaque noeud est apte à calculer une valeur de similarité selon une mesure de similarité prédéterminée, entre une représentation masquée de profil reçue d'un autre noeud et sa propre représentation initiale, comme expliquée en détail ci-après. En variante, chaque noeud transmet son profil public à un serveur central ou à un autre noeud du réseau qui effectue les calculs de similarité entre deux profils publics, donc dans leur représentation masquée. Dans l'exemple de la figure 1, le noeud A reçoit les représentations masquées des noeuds B et C, le noeud B reçoit les représentations masquées des noeuds A et C. Chacun des noeuds A et B est apte à calculer des valeurs de similarité entre noeuds, et à fournir ces valeurs à des applications clientes par exemple. Ces noeuds A et B jouent alors un rôle de serveur dans le réseau 1. Par exemple, le noeud A peut estimer les similarités s(A, B) et s(A, C) à partir de PA, P*B et P*c, et le noeud B peut estimer les similarités s(B, A) et s(B,C) à partir de PB, P*A et P*c. Le noeud C ne reçoit pas de représentation masquée d'autres noeuds donc ne peut pas effectuer de calcul de similarité. Le noeud C joue un rôle de client. Chaque noeud d'un réseau selon l'invention est mis en oeuvre sur un dispositif programmable, tel qu'un ordinateur, dont les principaux blocs fonctionnels sont schématiquement représentés à la figure 2. Ainsi, un dispositif programmable 10 apte à mettre en oeuvre l'invention comprend un écran 12, un moyen 14 de saisie des commandes d'un utilisateur, par exemple un clavier, pouvant être intégré dans un écran tactile, une unité centrale de traitement 16, apte à exécuter des instructions de programme de commande lorsque le dispositif programmable est mis sous tension. Le dispositif programmable 10 comporte également des moyens de stockage d'informations 18, par exemple des registres, aptes à stocker des instructions de code exécutable permettant la mise en oeuvre logicielle d'un procédé de masquage des données et/ou d'un procédé d'estimation de similarité selon l'invention.
De plus, le dispositif programmable 10 comporte des moyens de communication 20 avec un réseau de communications. Les divers blocs fonctionnels du dispositif 10 décrits ci-dessus sont par exemple connectés via un bus de communication 22. La figure 3 illustre les principales étapes d'un mode de réalisation du procédé de masquage des données représentatives d'un profil utilisateur associé à un noeud N d'un réseau selon l'invention, mis en oeuvre par une unité centrale de traitement 16 d'un dispositif 10 associé au noeud N. Un tel procédé de masquage est par exemple mis en oeuvre à chaque mise à jour du profil utilisateur associé au noeud N par l'utilisateur, par exemple à chaque fois que l'utilisateur exprime une nouvelle préférence. En variante, un tel procédé de masquage est mis en oeuvre périodiquement ou à la demande. Dans une première étape 30, les éléments présents dans le profil utilisateur du noeud N sont récupérés. Ces éléments sont stockés dans une mémoire 18 du dispositif 10. Par exemple, le profil utilisateur est composé de S éléments PU(N)={pl,..., ps}, qui sont des éléments présents, chaque élément présent ayant un identifiant unique associé. Par exemple, l'identifiant est un numéro associé à un élément présent. Ensuite, à l'étape suivante 32, une représentation initiale du profil utilisateur est générée, sous forme de structure de données PN={bo, bm_i} comportant un nombre prédéterminé M d'éléments binaires, c'est-à-dire des éléments pouvant prendre une valeur parmi deux valeurs possibles {Va, Vb}. Dans le mode de réalisation préféré, les valeurs possibles sont Va=0, Vb=1, donc chaque b, est égal à 0 ou à 1, et la structure de données initiale PN est obtenue en appliquant un filtre de Bloom sur les éléments présents p, dans le profil utilisateur PU(N).
De manière connue, un filtre de Bloom est une structure probabiliste compacte de représentation des données, permettant de déterminer avec une certaine probabilité qu'un élément est présent dans un ensemble de données. Le nombre M d'éléments binaires de la structure de données PN est fixe, quelque soit le nombre S d'éléments présents dans le profil utilisateur PU(N).
Pour obtenir la structure de données initiale par filtre de Bloom, un nombre K de fonctions de hachage (en anglais « hash functions ») est utilisé. Chaque fonction de hachage réalise une mise en correspondance entre un élément présent dans le profil utilisateur PU(N) et un indice i compris entre 0 et M-1, et la valeur de l'élément binaire d'indice i, b,, est mise à 1, ou plus généralement à une première valeur parmi les deux valeurs possibles. En pratique, une fonction de hachage h appliquée à un élément présent pk effectue un tirage pseudo-aléatoire avec comme racine l'identifiant unique de pk, modulo M, ce qui permet d'obtenir une valeur numérique : h(pk)=I. L'élément b de la structure de données initiale est alors mis à la valeur 1 : b1=1.
La prise en compte d'un nouvel élément présent ps+, ou addition d'un élément du profil utilisateur se fait par l'application successive et indépendante de chacune des K fonctions de hachage h(Ps-0), et la mise à la valeur 1 des bits désignés de la structure de données PN, indépendamment des valeurs déjà prises par les bits b, de la structure des données. Par ailleurs, la structure de données PN obtenue par filtre de Bloom est également utilisable pour vérifier la présence ou non d'un élément pk dans le profil utilisateur associé au noeud N. Si au moins un bit correspondant à une position binaire obtenue par les K fonctions de hachage appliquées avec l'élément pk est égal à 0, l'élément pk est avec certitude absent du profil utilisateur. Par contre, le fait que tous les bits correspondant à une position binaire obtenue par les K fonctions de hachage appliquées avec l'élément pk sont égaux à 1 ne permet de déduire la présence de l'élément pk dans le profil utilisateur qu'avec une certaine probabilité, car il est possible que des collisions se présentent. Ainsi, une structure obtenue par filtrage de Bloom est représentative des éléments présents dans le profil utilisateur avec un niveau de certitude associé.
Ensuite, à l'étape 34, on obtient une représentation masquée du profil utilisateur, notée PA*, 1, par application d'une opération probabiliste d'inversion (ou `flip' en anglais) d'une ou plusieurs valeurs binaires de la structure de données précédemment obtenue. Dans le mode de réalisation préféré, pour chaque bit b, de la structure de données initiale, on applique une inversion de la valeur binaire ou pas, selon le résultat d'un tirage aléatoire, avec une probabilité p. On effectue un tirage d'une variable uniforme X, dans l'intervalle [0 ,1] Le principe de l'opération d'inversion flip de la valeur de l'élément binaire b, est le suivant : Si X p alors y, = flip(b,)=1-b, Sinon, y ) =bi. De manière plus générale, si X p, l'élément binaire bi change de valeur et prend l'autre valeur possible, sinon il reste inchangé. Selon une alternative, l'opération probabiliste d'inversion n'est appliquée que sur un sous-ensemble des éléments binaires de la structure de données initiale, par exemple sur un élément binaire b, sur deux, ou bien sur un sous-ensemble d'éléments binaires de la structure de données initiale choisis également de manière pseudo-aléatoire. Une structure de données P*N, correspondant à une représentation masquée du profil utilisateur est ainsi obtenue à l'issue de l'étape 34.
L'opération probabiliste d'inversion est appliquée avec une probabilité p. Il apparaît clairement que la valeur de p a un fort impact sur le niveau de confidentialité obtenu, et aussi sur le niveau d'utilité pour des calculs de similarité de la représentation masquée obtenue. En effet, une valeur de p=1/2 aboutit à un résultat aléatoire, qui préserve totalement la confidentialité mais dans ce cas la représentation masquée n'est d'aucune utilité pour un calcul de similarité. Il est important de déterminer une valeur de probabilité p avec un niveau de confidentialité prédéterminé, selon une métrique de confidentialité choisie, tout en préservant un niveau d'utilité suffisant.
En utilisant la métrique de confidentialité différentielle, en anglais « differential privacy », définie dans l'article « Differential privacy : a survey of results », par C. Dwork, publié dans Proceedings of the 5th International Conference on Theory and Applications of Models of Computation, Xi'an, China, 25-29 Avril 2008, pages 1-19, on peut calculer p en fonction du paramètre de confidentialité E relatif à la confidentialité de chaque élément binaire b, par : exp(-e)-Pr[flip(1)] = ] < Pr[flip(0) = bt] exp(e) - Pr[flip(1) = bi] où exp représente la fonction exponentielle et Pr[A] la probabilité d'un événement A. Un élément binaire b, a la valeur 0 ou 1. La confidentialité Ede chaque élément binaire b, selon cette métrique de confidentialité est assurée pour une valeur de probabilité p telle que : 1 p < 1 . 1+ exp(e) 2 Dans un mode de réalisation alternatif, la valeur de probabilité p est calculée pour assurer une confidentialité au niveau des éléments p, présents dans le profil utilisateur à partir duquel la structure de données est calculée. Pour cela, le nombre K de fonctions de hachage est également pris en compte.
La métrique suivante est utilisée. Soient deux profils PU1 et PU2 qui ne diffèrent que par un seul élément p,, présent dans PU1 et absent dans PU2. On note PNi et PN2 les structures de données initiales obtenues par filtrage de Bloom associées à ces profils, et P*N1 et P*N2 les structures de données masquées obtenues par application d'une opération probabiliste d'inversion selon le mode de réalisation décrit ci-dessus.
Un paramètre de confidentialité E est défini par les équations suivantes : exp(-e)Pr[p, E /3;2] Pr[p, E PNB] exp(e)Pr[p, E /3;2] exp(-e)Pr[p, E PNB ] Pr[p, E P;r2 exp(e)Pr[p, E PNB ] La confidentialité de chaque élément présent p, selon cette métrique de confidentialité est assurée pour une valeur de probabilité p telle que : 1 1 où p ou K est le nombre de fonctions de hachage utilisé dans le filtrage 1+ exp(e/K) 2 de Bloom. L'étape 34 est suivie d'une étape 36 de publication dans le réseau de la représentation masquée P*N calculée.
Le mode de réalisation décrit ci-dessus comporte l'application d'un filtrage de Bloom pour obtenir une représentation initiale sous forme de structure de données initiale, puis l'application d'une opération probabiliste d'inversion pour obtenir une représentation masquée avec un niveau de confidentialité associé. Selon un mode de réalisation alternatif, si l'ensemble P d'éléments possibles p, dans un profil utilisateur est dénombrable et fini, égal à un nombre G d'éléments possibles, à l'étape 32 la représentation initiale du profil utilisateur est obtenue par génération d'une structure de données initiale sous forme d'un vecteur de taille G, indiquant la présence ou l'absence d'un élément dans le profil utilisateur : PN=[bi,...,bd où b,=1 si l'élément p, est présent dans le profil utilisateur, et b,=0 si l'élément p, est absent du profil utilisateur. Dans ce mode de réalisation alternatif, l'étape 34 d'application d'une opération probabiliste d'inversion est appliquée sur ce vecteur PN, de la manière expliquée ci-dessus. L'étape 34 est suivie d'une étape optionnelle, non représentée sur la figure 3, d'application d'un filtre de Bloom après l'opération probabiliste d'inversion.
La figure 4 illustre les étapes d'un procédé d'estimation de similarité entre noeuds d'un réseau distribué ayant des profils utilisateur associés selon un mode de réalisation de l'invention. Dans ce mode de réalisation le procédé d'estimation de similarité est mis en oeuvre sur un premier noeud A du réseau distribué, qui effectue l'estimation de similarité entre son propre profil utilisateur associé et le profil utilisateur associé à un deuxième noeud B du réseau. Pour effectuer l'estimation de similarité on utilise, dans ce mode de réalisation, les structures de données calculées comme détaillé ci-dessus en référence à la figure 3, c'est-à-dire la structure de données initiale PA du noeud A et la structure de données masquée P*B représentative du profil du noeud B.
Le procédé d'estimation de similarité est mis en oeuvre par une unité centrale de traitement 16 d'un dispositif programmable 10 associé au noeud A. Dans une première étape 40 le noeud A reçoit, en provenance du noeud B, une structure de données masquée P*B représentative des éléments présents dans le profil utilisateur du noeud B. Comme expliqué précédemment, la structure de données masquée ou profil public P*B du noeud B présente une garantie de confidentialité avec un niveau de confidentialité prédéterminé. Ensuite à l'étape 42, le noeud A récupère une structure de données initiale PA représentative du profil utilisateur associé à ce noeud A. Il n'est pas nécessaire d'utiliser la structure de données masquée P*A, car le noeud A n'a pas besoin de garantir une confidentialité dans la mesure où les calculs sont effectués sur ce noeud. En pratique, la structure de données initiale PA est calculée comme expliqué ci- dessus en référence à la figure 3, ou récupérée dans une mémoire 18 du dispositif programmable 10 si elle a été calculée précédemment.
Dans le mode de réalisation préféré, les représentations de données sont calculées par application d'un filtrage de Bloom, puis par application d'une opération probabiliste d'inversion pour obtenir une structure de données masquée. A l'étape suivante 44, un calcul d'estimation de similarité entre les profils utilisateurs des noeuds A et B est effectué. Le noeud A ne disposant pas du profil privé du noeud B, PB, seule une estimation de similarité à partir des deux structures de données présentes, respectivement PA et P*B, peut être calculée. Selon un mode de réalisation, l'estimateur de la similarité entre le noeud A et le noeud B est calculé à partir du produit scalaire entre PA et P*B. Le produit scalaire est équivalent à une mesure de similarité cosinus (ou « cosine similarity » en anglais) pour des vecteurs binaires. Si on note PA } et P *B ={1)0,...,Vm_i}, le produit scalaire SP est : M-1 SP =o Afin d'obtenir un estimateur sans biais, SP*, c'est-à-dire un estimateur dont l'espérance est égale à l'espérance du produit scalaire entre PA et PB, la formule suivante est appliquée : M-1 M-1 Ib - pIbt s(A, B) = SP* t-0 i=o 1- 2 p En variante, un estimateur sans biais est calculé sur la base d'une somme binaire BS entre les structures de données représentatives des profils PA et P*B : - BS p M-1 BS* = où BS = 1-2p i=0 Ainsi, une estimation de similarité entre les noeuds A et B est obtenue sur le noeud A, à partir du profil public du noeud B et du profil privé du noeud A.
En variante, chacun des noeuds A et B envoie son profil public, respectivement P*A et P*13 , à un serveur central ou à un noeud tiers, différent des noeuds A et B, qui effectue un calcul d'estimation de similarité entre les profils utilisateurs des noeuds A et B. Dans ce cas, il est également possible d'obtenir un estimateur SP* non-biaisé pour le calcul de la similarité, où P* AuM_1et P *B{v0,...,VM_1: M-1 M-1 (2p -1)p(Iu. +1v i) + - np2 s(A, B) = SP* = i=o i=o (1- 2p) 2 M-1 M-1 M-1 Avec Si' np2 + (p - 2p2 )(In, + ) + (1 - 4p + 4p2)Iutv, i=0 i=0 i=0 Avantageusement, les divers estimateurs de similarité explicités ci-dessus ont de bonnes performances pour obtenir des noeuds similaires à un noeud donné, c'est-à-dire ayant un profil utilisateur proche du profil utilisateur du noeud donné. Ainsi, grâce à l'invention, un profil utilisateur est à la fois masqué pour garantir sa confidentialité et assurer qu'on peut le distribuer à un tiers sans risque de dévoiler ses données privées, tout en restant utilisable pour des calculs de similarité entre profils utilisateurs.
Claims (1)
- REVENDICATIONS1.- Procédé de masquage des données composant un profil utilisateur associé à un noeud d'un réseau, un profil utilisateur (PU(N)) étant composé d'un sous-ensemble d'éléments présents parmi un ensemble d'éléments possibles, caractérisé en ce qu'il comporte les étapes de: - obtention (32) d'une structure de données initiale (PN) comportant un nombre prédéterminé d'éléments binaires, un dit élément binaire pouvant prendre une valeur parmi deux valeurs possibles, la structure de données initiale étant représentative des éléments présents dans le profil utilisateur (PU(N)), et - pour au moins une partie desdits éléments binaires, application (34) d'une opération probabiliste d'inversion de la valeur dudit élément binaire, fonction d'une valeur de probabilité dépendante d'un paramètre de confidentialité prédéterminé, permettant d'obtenir une structure de données masquée (P*N) représentative des éléments présents dans le profil utilisateur.2.- Procédé selon la revendication 1, caractérisé en ce que l'étape d'obtention comprend l'application d'une opération de filtrage sur ledit sous-ensemble d'éléments présents permettant d'obtenir une structure probabiliste de données représentative de la présence d'éléments dans le profil utilisateur parmi l'ensemble d'éléments possibles avec un niveau de certitude associé.3.- Procédé selon la revendication 2, caractérisé en ce que ladite opération de filtrage est un filtrage de Bloom, associant un nombre M de valeurs binaires audit sous-ensemble d'éléments présents, les M valeurs binaires étant obtenues par application successive et indépendante de K fonctions de hachage, chaque fonction de hachage réalisant une association pseudo-aléatoire entre un élément présent dans le profil utilisateur et un élément binaire correspondant qui est mis à une première valeur binaire parmi les deux valeurs binaires possibles.4.- Procédé selon l'une des revendications précédentes, caractérisé en ce que ledit paramètre de confidentialité est un paramètre de confidentialité différentielle E relatif à la confidentialité des éléments binaires de ladite structure de données initiale, et en ce que ladite valeur de probabilité est comprise entre 1/(1+exp(E)) et 0,5.5.- Procédé selon la revendication 3, caractérisé en ce que ledit paramètre de confidentialité dépend en outre du nombre K de fonctions de hachage appliqué, et en ce que ladite valeur de probabilité est comprise entre 1/(1+exp(e/K)) et 0,5.6.- Procédé d'estimation de similarité entre un premier noeud (A) et un deuxième noeud (B) d'un réseau, chaque noeud ayant un profil utilisateur associé, un profil utilisateurétant composé d'un sous-ensemble d'éléments présents parmi un ensemble d'éléments possibles, caractérisé en ce qu'il comporte les étapes de : -obtention (42) d'une structure de données initiale (PA) ou d'une structure de données masquée (P*A) obtenue par application d'un procédé conforme à l'une quelconque des revendications 1 à 5, représentative du profil utilisateur associé au premier noeud (A), -réception (40) d'une structure de données masquée (P*B) représentative du profil utilisateur associé au deuxième noeud (B) obtenue par application d'un procédé conforme à l'une quelconque des revendications 1 à 5, et -estimation (44) d'une valeur de similarité entre lesdits premier noeud (A) et deuxième noeud (B) en fonction desdites structures de données.7.- Procédé d'estimation de similarité selon la revendication 6, caractérisé en ce qu'il est mis en oeuvre sur ledit premier noeud (A) et en ce qu'à l'étape d'obtention (42), une structure de données initiale (PA) représentative du profil utilisateur associé au premier noeud (A) est obtenue.8.- Procédé d'estimation de similarité selon la revendication 7, caractérisé en ce que l'étape d'estimation (44) comporte le calcul d'un produit scalaire entre ladite structure de données initiale (PA) et ladite structure de données masquée (P*B).9.- Procédé d'estimation de similarité selon la revendication 6, caractérisé en ce qu'il est mis en oeuvre sur un noeud du réseau différent desdits premier noeud (A) et deuxième noeud (B), et en ce qu'à l'étape d'obtention (42), une structure de données masquée (P*A) représentative du profil utilisateur associé au premier noeud (A) est obtenue.25
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1252716A FR2988944B1 (fr) | 2012-03-27 | 2012-03-27 | Procede de masquage des donnees composant un profil utilisateur associe a un noeud d'un reseau. |
PCT/EP2013/056133 WO2013144031A1 (fr) | 2012-03-27 | 2013-03-22 | Procédé de masquage des données composant un profil utilisateur associé à un noeud d'un réseau |
EP13711894.9A EP2832074A1 (fr) | 2012-03-27 | 2013-03-22 | Procédé de masquage des données composant un profil utilisateur associé à un noeud d'un réseau |
US14/388,523 US20170154112A1 (en) | 2012-03-27 | 2013-03-22 | Method of masking data making up a user profile associated with a node of a network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1252716A FR2988944B1 (fr) | 2012-03-27 | 2012-03-27 | Procede de masquage des donnees composant un profil utilisateur associe a un noeud d'un reseau. |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2988944A1 true FR2988944A1 (fr) | 2013-10-04 |
FR2988944B1 FR2988944B1 (fr) | 2014-12-05 |
Family
ID=47997468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1252716A Active FR2988944B1 (fr) | 2012-03-27 | 2012-03-27 | Procede de masquage des donnees composant un profil utilisateur associe a un noeud d'un reseau. |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170154112A1 (fr) |
EP (1) | EP2832074A1 (fr) |
FR (1) | FR2988944B1 (fr) |
WO (1) | WO2013144031A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10977322B2 (en) * | 2015-11-09 | 2021-04-13 | WP Company, LLC | Systems and methods for recommending temporally relevant news content using implicit feedback data |
-
2012
- 2012-03-27 FR FR1252716A patent/FR2988944B1/fr active Active
-
2013
- 2013-03-22 WO PCT/EP2013/056133 patent/WO2013144031A1/fr active Application Filing
- 2013-03-22 EP EP13711894.9A patent/EP2832074A1/fr not_active Withdrawn
- 2013-03-22 US US14/388,523 patent/US20170154112A1/en not_active Abandoned
Non-Patent Citations (5)
Title |
---|
CYNTHIA DWORK ED - MANINDRA AGRAWAL ET AL: "Differential Privacy: A Survey of Results", 22 May 2007, THEORY AND APPLICATIONS OF MODELS OF COMPUTATION; [LECTURE NOTES IN COMPUTER SCIENCE], SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 1 - 19, ISBN: 978-3-540-79227-7, XP019088402 * |
FELIX PUTZE ET AL: "Cache-, Hash and Space-Efficient Bloom Filters", 6 June 2007, EXPERIMENTAL ALGORITHMS; [LECTURE NOTES IN COMPUTER SCIENCE;;LNCS], SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 108 - 121, ISBN: 978-3-540-72844-3, XP019060485 * |
MOHAMMAD ALAGGAN ET AL: "Private Similarity Computation in Distributed Systems: From Cryptography to Differential Privacy", 13 December 2011, PRINCIPLES OF DISTRIBUTED SYSTEMS, SPRINGER BERLIN HEIDELBERG, BERLIN, HEIDELBERG, PAGE(S) 357 - 377, ISBN: 978-3-642-25872-5, XP019170798 * |
SHIVA PRASAD KASIVISWANATHAN ET AL: "What Can We Learn Privately?", FOUNDATIONS OF COMPUTER SCIENCE, 2008. FOCS '08. IEEE 49TH ANNUAL IEEE SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 25 October 2008 (2008-10-25), pages 531 - 540, XP031366986, ISBN: 978-0-7695-3436-7 * |
WEI DONG ET AL: "Secure friend discovery in mobile social networks", INFOCOM, 2011 PROCEEDINGS IEEE, IEEE, 10 April 2011 (2011-04-10), pages 1647 - 1655, XP031953347, ISBN: 978-1-4244-9919-9, DOI: 10.1109/INFCOM.2011.5934958 * |
Also Published As
Publication number | Publication date |
---|---|
WO2013144031A1 (fr) | 2013-10-03 |
US20170154112A1 (en) | 2017-06-01 |
EP2832074A1 (fr) | 2015-02-04 |
FR2988944B1 (fr) | 2014-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9167035B2 (en) | Contact information in a peer to peer communications network | |
WO2017037151A1 (fr) | Méthode d'interrogation confidentielle d'un service géodépendant par cryptographie homomorphe | |
EP2953291B1 (fr) | Stockage distribue securise par calcul multipartite | |
CA2895189C (fr) | Signature de groupe utilisant un pseudonyme | |
FR3030168A1 (fr) | Procede de choix d'au moins un service et dispositif associe | |
EP2494491A1 (fr) | Identification par controle de donnees biometriques d'utilisateur | |
EP3493459B1 (fr) | Procédé de partage d'une clé servant à dériver des clés de session pour crypter et authentifier des communications entre un objet et un serveur | |
FR2988944A1 (fr) | Procede de masquage des donnees composant un profil utilisateur associe a un noeud d'un reseau. | |
EP3143505B1 (fr) | Architecture de correlation d'evenements pour la surveillance de supercalculateur | |
Beierle | Do you like what I like? Similarity estimation in proximity-based mobile social networks | |
EP2826200A1 (fr) | Procede de cryptage d'une pluralite de donnees en un ensemble securise | |
FR3003968A1 (fr) | Procede de stockage de donnees dans un systeme informatique effectuant une deduplication de donnees. | |
FR2864659A1 (fr) | Procede de recherche d'entite dans un environnement virtuel | |
Alouf | Technical Perspective: Can We Uncover Private Backbone Infrastructures? | |
WO2015079191A2 (fr) | Procédé permettant d'obtenir un système de tenue de situation active décentralisée multiagents | |
FR2912529A1 (fr) | Couplage d'un programme informatique ou de donnees a un systeme de reference et verification associee. | |
EP4246880A1 (fr) | Protection d'une clef secrete | |
WO2023031288A1 (fr) | Procédé de détermination d'une topologie d'interconnexion entre commutateurs d'un réseau de communication, produit programme d'ordinateur et dispositif correspondants | |
EP4158924A1 (fr) | Regroupement de trajectoires dans le domaine chiffre | |
EP3063898B1 (fr) | Signature à pseudonyme pour carte à puce | |
FR2987711A1 (fr) | Delegation de calculs cryptographiques | |
EP2462715A1 (fr) | Procede de recherche d'une entite a l'aide d'un dispositif verificateur et dispositifs associes | |
FR2987534A1 (fr) | Methode d'inventaire de reseau. | |
FR2968872A1 (fr) | Systeme de gestion globale de filtrage personnalise base sur un circuit d'echange d'informations securise et procede associe | |
FR3017734A1 (fr) | Recommandation de produits d'un catalogue a partir d'un produit selectionne et d'un moteur de recherche |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 5 |
|
PLFP | Fee payment |
Year of fee payment: 6 |